*{box-sizing:border-box;margin:0;padding:0}
:root{--bg:#f7f9fc;--text:#101828;--muted:#5f6c80;--primary:#0f62fe;--primary-dark:#0847b9;--card:#fff;--border:#e5eaf2;--soft:#edf4ff;--shadow:0 18px 45px rgba(16,24,40,.08);--danger:#b42318;--success:#067647}
html{scroll-behavior:smooth;min-height:100%}body{font-family:Arial,Helvetica,sans-serif;background:var(--bg);color:var(--text);line-height:1.55;min-height:100vh;display:flex;flex-direction:column}main{flex:1 0 auto}a{color:inherit;text-decoration:none}
.container{width:min(1120px,calc(100% - 32px));margin:0 auto}.site-header{background:rgba(255,255,255,.94);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:200;backdrop-filter:blur(12px)}
.nav{min-height:72px;display:flex;align-items:center;gap:20px}.brand{display:flex;align-items:center;gap:11px;font-weight:800;white-space:nowrap}.brand-logo{width:44px;height:44px;object-fit:cover;border-radius:50%;border:2px solid #dce8ff;box-shadow:0 4px 12px rgba(15,98,254,.15)}.brand-copy{display:flex;flex-direction:column;line-height:1.1}.brand-copy span{font-size:17px}.brand-copy small{font-size:11px;color:var(--muted);margin-top:4px;letter-spacing:.02em}.nav-links{display:flex;align-items:center;gap:20px;margin-left:16px;font-weight:700;font-size:14px;color:var(--muted)}.nav-links a:hover{color:var(--primary)}.nav-spacer{flex:1}.mode-badge{display:inline-flex;align-items:center;gap:7px;background:var(--soft);color:var(--primary);border:1px solid #cfe0ff;border-radius:999px;padding:7px 11px;font-size:12px;font-weight:800}.mode-dot{width:7px;height:7px;border-radius:50%;background:currentColor}.logout-link{font-weight:700;color:var(--muted);font-size:14px}.logout-link:hover{color:var(--primary)}
.page{padding:32px 0 56px}.page-head{margin-bottom:24px}.eyebrow{color:var(--primary);font-weight:800;text-transform:uppercase;letter-spacing:.04em;font-size:12px;margin-bottom:6px}h1{font-size:clamp(30px,4vw,44px);line-height:1.08;letter-spacing:-.035em;margin-bottom:9px}h2{font-size:26px;line-height:1.18;letter-spacing:-.025em;margin-bottom:16px}h3{font-size:19px;margin-bottom:8px}.muted{color:var(--muted)}
.card{background:var(--card);border:1px solid var(--border);border-radius:20px;padding:24px;box-shadow:0 10px 28px rgba(16,24,40,.05);margin-bottom:18px}.card.soft{background:linear-gradient(135deg,#fff 0%,#f4f8ff 100%);border-color:#d5e4ff}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:16px}.stat-card{background:#fff;border:1px solid var(--border);border-radius:20px;padding:22px;box-shadow:0 10px 28px rgba(16,24,40,.05);position:relative;overflow:hidden}.stat-card:before{content:"";position:absolute;left:0;right:0;top:0;height:4px;background:var(--primary)}.stat-card strong{display:block;font-size:30px;margin-top:3px}.stat-card span{color:var(--muted);font-weight:700;font-size:14px}
label{display:block;font-weight:700;font-size:14px;margin-bottom:6px}input,select,textarea{width:100%;padding:11px 12px;border:1px solid #cfd8e6;background:#fff;border-radius:10px;font-size:15px;color:var(--text);outline:none;margin-bottom:14px}textarea{min-height:92px;resize:vertical}input:focus,select:focus,textarea:focus{border-color:#8bb6ff;box-shadow:0 0 0 3px rgba(15,98,254,.09)}
.btn,button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:11px 17px;border:0;border-radius:11px;background:var(--primary);color:#fff;font-weight:800;cursor:pointer;font-size:14px;transition:.18s ease}.btn:hover,button:hover{background:var(--primary-dark);transform:translateY(-1px)}.btn.secondary{background:#fff;color:var(--text);border:1px solid var(--border)}.btn.secondary:hover{background:#f9fbff;box-shadow:0 8px 20px rgba(16,24,40,.06)}.btn.danger{background:var(--danger)}.btn.small{min-height:36px;padding:8px 11px;font-size:13px}.actions{display:flex;gap:8px;flex-wrap:wrap}
.flash{padding:12px 15px;border:1px solid #f2d57c;background:#fff9e8;border-radius:11px;margin-bottom:16px;font-weight:700;color:#6d5200}.flash.error{border-color:#f4b9b4;background:#fff2f1;color:#912018}
.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse}th,td{padding:12px 10px;border-bottom:1px solid var(--border);text-align:left;vertical-align:middle}th{font-size:12px;text-transform:uppercase;letter-spacing:.035em;color:var(--muted)}td{font-size:14px}.badge{display:inline-flex;align-items:center;background:var(--soft);color:var(--primary);border:1px solid #d8e6ff;border-radius:999px;padding:4px 8px;font-size:12px;font-weight:800}.badge.success{background:#ecfdf3;border-color:#abefc6;color:var(--success)}.badge.gray{background:#f2f4f7;border-color:#eaecf0;color:#475467}
.login-shell{min-height:calc(100vh - 73px);display:grid;align-items:center;padding:42px 0;background:radial-gradient(circle at top left,#dcecff,transparent 34%),linear-gradient(180deg,#fff 0%,var(--bg) 100%)}.login-grid{display:grid;grid-template-columns:.95fr 1.05fr;gap:28px;align-items:stretch}.intro-card{background:#101828;color:#fff;border-radius:24px;padding:34px;box-shadow:var(--shadow);display:flex;flex-direction:column;justify-content:center}.intro-card .eyebrow{color:#8bb6ff}.intro-card h1{font-size:40px}.intro-card p{color:#d0d5dd;font-size:17px;margin:4px 0 20px}.intro-pills{display:flex;flex-wrap:wrap;gap:9px;margin-top:16px}.intro-pills span{border:1px solid #344054;background:#1d2939;border-radius:999px;padding:7px 10px;font-size:12px;font-weight:800;color:#eaecf0}.login-cards{display:grid;gap:16px}.login-card{background:#fff;border:1px solid var(--border);border-radius:20px;padding:24px;box-shadow:0 10px 28px rgba(16,24,40,.06)}
.question{background:#fff;border:1px solid var(--border);border-radius:16px;padding:19px;margin-bottom:14px}.question-title{font-weight:800;margin-bottom:12px}.option{display:flex;gap:9px;align-items:flex-start;padding:9px 10px;border-radius:10px}.option:hover{background:#f6f9ff}.option input{width:auto;margin:3px 0 0}.exam-head{position:sticky;top:73px;z-index:10;background:rgba(255,255,255,.96);border:1px solid var(--border);border-radius:16px;padding:14px 16px;margin-bottom:16px;display:flex;align-items:center;gap:14px;box-shadow:0 8px 20px rgba(16,24,40,.06);backdrop-filter:blur(10px)}.exam-head .exam-title{font-weight:800}.exam-head .save-status{font-size:12px;color:var(--muted);margin-left:auto}.timer{font-weight:900;font-size:18px;color:var(--primary);white-space:nowrap}.result-score{font-size:38px;font-weight:900;color:var(--primary);letter-spacing:-.03em;margin:6px 0 12px}
.site-footer{background:#fff;border-top:1px solid var(--border);padding:24px 0;color:var(--muted);font-size:13px;margin-top:auto;flex-shrink:0}.footer-grid{display:flex;justify-content:space-between;gap:20px;align-items:center}.footer-brand{font-weight:800;color:var(--text)}

.import-header{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;margin-bottom:14px}.import-header h2{margin-bottom:6px}.template-actions{justify-content:flex-end}.import-note{background:#f7f9fc;border:1px solid var(--border);border-radius:12px;padding:11px 13px;color:var(--muted);font-size:13px;margin-bottom:16px}.import-form{display:grid;grid-template-columns:minmax(280px,1fr) auto;gap:14px;align-items:end}.import-form input{margin-bottom:0}.import-form button{margin-bottom:0;white-space:nowrap}
/* Responsive navigation: keep admin/student links visible on tablets and phones. */
@media(max-width:900px){
  .login-grid{grid-template-columns:1fr}
  .mode-badge{display:none}
  .nav{min-height:auto;flex-wrap:wrap;column-gap:12px;row-gap:0;padding-top:8px}
  .nav-links{display:flex;order:4;width:100%;margin:8px 0 0;gap:0;border-top:1px solid var(--border);color:var(--muted);font-size:13px}
  .nav-links a{flex:1;min-width:0;text-align:center;padding:10px 5px;border-bottom:3px solid transparent;white-space:nowrap}
  .nav-links a:hover,.nav-links a:focus{color:var(--primary);background:#f7faff;border-bottom-color:var(--primary)}
  .logout-link{white-space:nowrap}
  .exam-head{top:105px}
}
@media(max-width:620px){
  .import-header{flex-direction:column}.template-actions{justify-content:flex-start}.import-form{grid-template-columns:1fr}
  .nav{gap:8px;padding-top:7px}.brand-logo{width:40px;height:40px}.brand-copy span{font-size:15px}.brand-copy small{display:none}
  .nav-links{font-size:12px;margin-top:7px}.nav-links a{padding:9px 2px}
  .logout-link{font-size:13px}
  .page{padding-top:22px}.card{padding:18px}.intro-card{padding:26px 20px}.intro-card h1{font-size:32px}.btn,button{width:100%}.actions .btn{width:auto}
  .exam-head{top:96px;align-items:flex-start;flex-wrap:wrap}.exam-head .save-status{margin-left:0;width:100%}.footer-grid{align-items:flex-start;flex-direction:column}
}
@media(max-width:390px){
  .container{width:min(100% - 20px,1120px)}
  .brand-copy span{font-size:14px}
  .nav-links{font-size:11px}
  .nav-links a{padding:9px 1px}
}

/* Offline V2.02 download call-to-action */
.intro-main{display:flex;flex-direction:column;justify-content:center;flex:1}
.offline-download-box{margin-top:28px;padding-top:20px;border-top:1px solid #344054;display:flex;align-items:center;justify-content:space-between;gap:16px}
.offline-download-copy{display:flex;flex-direction:column;gap:2px;min-width:0}.offline-download-copy strong{font-size:13px;color:#fff}.offline-download-copy span{font-size:11px;color:#98a2b3}
.offline-download-btn{display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;border-radius:10px;padding:10px 13px;background:#fff;color:#101828;font-size:12px;font-weight:900;border:1px solid #d0d5dd;transition:.18s ease}.offline-download-btn:hover{background:#edf4ff;color:#0f62fe;transform:translateY(-1px)}
.setup-shell{display:flex;justify-content:center}.setup-card{width:min(620px,100%);background:#fff;border:1px solid var(--border);border-radius:22px;padding:30px;box-shadow:var(--shadow)}.setup-card h1{font-size:34px}.setup-copy{margin-bottom:22px}.setup-note{margin-top:16px;padding:12px 14px;border-radius:12px;background:#f7f9fc;border:1px solid var(--border);font-size:12px;color:var(--muted)}
@media(max-width:620px){.offline-download-box{align-items:stretch;flex-direction:column}.offline-download-btn{width:100%}.setup-card{padding:22px}}

/* V2.10 assessment management additions */
.stat-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.dashboard-shortcuts{grid-template-columns:repeat(4,minmax(0,1fr))}.shortcut-card{display:flex;flex-direction:column;gap:7px;background:#fff;border:1px solid var(--border);border-radius:18px;padding:20px;box-shadow:0 10px 28px rgba(16,24,40,.05);transition:.18s ease}.shortcut-card:hover{transform:translateY(-2px);border-color:#b9d2ff;box-shadow:0 16px 34px rgba(16,24,40,.08)}.shortcut-card strong{font-size:17px}.shortcut-card span{color:var(--muted);font-size:13px}
.page-actions{margin:-8px 0 20px}.filter-grid{display:grid;grid-template-columns:2fr repeat(4,1fr);gap:12px}.bank-add-controls{display:flex;gap:10px;align-items:end;flex-wrap:wrap}.bank-add-controls select{min-width:220px;margin:0}.bank-add-controls button{min-height:42px}.table-check{width:18px;height:18px;margin:0}.mini-meta{font-size:12px;color:var(--muted);margin-top:5px}.builder-summary{grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:18px}.integrity-options{display:grid;gap:9px;padding:14px 16px;border:1px solid var(--border);border-radius:14px;background:#fafcff;margin:4px 0 16px}.checkline{display:flex;align-items:flex-start;gap:9px;margin:0;font-weight:700}.checkline input{width:auto;margin:4px 0 0}.generation-summary{margin-top:18px;background:#eef6ff;border:1px solid #cfe0ff;border-radius:12px;padding:13px 15px;color:#174ea6;font-size:13px;font-weight:700}.result-toolbar{display:flex;align-items:flex-end;justify-content:space-between;gap:18px}.toolbar-form{min-width:280px}.toolbar-form select{margin-bottom:0}.badge.warning{background:#fff8e7;border-color:#f7d98a;color:#8a5b00}.system-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.integrity-banner{margin-bottom:16px;background:#fff8e7;border:1px solid #f2d57c;color:#6d5200;border-radius:12px;padding:11px 14px;font-size:13px;font-weight:700}.integrity-banner.active{background:#fff1f0;border-color:#f4b9b4;color:#912018}button:disabled,.btn:disabled{opacity:.55;cursor:not-allowed;transform:none!important}

@media(max-width:1100px){.dashboard-shortcuts{grid-template-columns:repeat(2,minmax(0,1fr))}.filter-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:900px){
  .admin-nav{flex-wrap:wrap}.admin-nav a{flex:0 0 25%;max-width:25%}
  .stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .result-toolbar{align-items:stretch;flex-direction:column}.toolbar-form{min-width:0;width:100%}
}
@media(max-width:620px){
  .admin-nav a{flex:0 0 33.333%;max-width:33.333%;font-size:11px}
  .dashboard-shortcuts,.builder-summary,.system-grid,.filter-grid{grid-template-columns:1fr}
  .bank-add-controls{width:100%;flex-direction:column;align-items:stretch}.bank-add-controls select{min-width:0;width:100%}.bank-add-controls button{width:100%}
  .result-toolbar .actions{width:100%}.result-toolbar .actions .btn{flex:1}
}
@media(max-width:1100px) and (min-width:901px){
  .nav{min-height:auto;flex-wrap:wrap;column-gap:12px;row-gap:0;padding-top:8px}
  .admin-nav{display:flex;order:4;width:100%;margin:8px 0 0;gap:0;border-top:1px solid var(--border);font-size:12px}
  .admin-nav a{flex:1;text-align:center;padding:9px 4px;border-bottom:3px solid transparent;white-space:nowrap}
}

/* Compact mobile/tablet navigation — mirrors the Learn with Hemant hamburger + drawer pattern. */
.mobile-menu-toggle{display:none;width:42px;height:42px;min-height:42px;padding:0;border:1px solid var(--border);border-radius:10px;background:#fff;color:var(--text);align-items:center;justify-content:center;flex-direction:column;gap:5px;box-shadow:0 4px 12px rgba(16,24,40,.05)}
.mobile-menu-toggle:hover{background:#f7faff;transform:none}.mobile-menu-toggle span{display:block;width:20px;height:2px;border-radius:2px;background:#344054;transition:.2s ease}
.mobile-menu{position:fixed;inset:0;width:100vw;height:100dvh;z-index:1000;visibility:hidden;pointer-events:none;overflow:hidden}.mobile-menu.is-open{visibility:visible;pointer-events:auto}.mobile-menu-backdrop{position:absolute;inset:0;width:100%;height:100%;border:0;border-radius:0;background:rgba(16,24,40,.48);opacity:0;transition:opacity .22s ease}.mobile-menu.is-open .mobile-menu-backdrop{opacity:1}.mobile-menu-panel{position:absolute;top:0;right:0;width:min(360px,88vw);height:100dvh;background:#fff;box-shadow:-20px 0 50px rgba(16,24,40,.18);transform:translateX(102%);transition:transform .24s ease;display:flex;flex-direction:column;overflow-y:auto}.mobile-menu.is-open .mobile-menu-panel{transform:translateX(0)}
.mobile-menu-head{min-height:74px;padding:12px 18px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:12px}.mobile-menu-brand .brand-logo{width:40px;height:40px}.mobile-menu-brand .brand-copy span{font-size:15px}.mobile-menu-close{width:40px;height:40px;min-height:40px;padding:0;border:1px solid var(--border);border-radius:10px;background:#fff;color:#344054;font-size:27px;font-weight:400;line-height:1}.mobile-menu-close:hover{background:#f7faff;color:var(--primary);transform:none}
.mobile-menu-links{padding:14px 18px 24px;display:flex;flex-direction:column;gap:3px}.mobile-menu-links a{display:flex;align-items:center;min-height:46px;padding:11px 12px;border-radius:10px;color:#344054;font-size:14px;font-weight:800;border:1px solid transparent}.mobile-menu-links a:hover,.mobile-menu-links a:focus{background:#f3f7ff;color:var(--primary);border-color:#e1ebff}.mobile-menu-links .mobile-logout{margin-top:12px;padding-top:14px;border-top:1px solid var(--border);border-radius:0;color:#475467}.mobile-menu-links .mobile-logout:hover{background:transparent;color:var(--primary);border-left-color:transparent;border-right-color:transparent;border-bottom-color:transparent}
body.mobile-menu-open{overflow:hidden}

@media(max-width:1100px){
  .site-header .nav{min-height:68px;flex-wrap:nowrap;padding-top:0;gap:10px}
  .site-header .desktop-nav,.site-header .desktop-logout{display:none!important}
  .mobile-menu-toggle{display:inline-flex;flex:0 0 42px}
  .brand{min-width:0}.brand-copy{min-width:0}.brand-copy span{overflow:hidden;text-overflow:ellipsis}
  .exam-head{top:76px}
}
@media(max-width:620px){
  .site-header .nav{min-height:64px;padding-top:0}
  .site-header .brand-logo{width:40px;height:40px}
  .site-header .brand-copy span{font-size:15px}.site-header .brand-copy small{display:block;font-size:10px}
  .mobile-menu-toggle{width:40px;height:40px;min-height:40px;flex:0 0 40px}
  .mobile-menu-panel{width:min(340px,92vw)}
  .exam-head{top:72px}
}
@media(max-width:390px){
  .site-header .brand-copy span{font-size:14px}.site-header .brand-copy small{font-size:9px}
  .mobile-menu-head{padding-left:14px;padding-right:14px}.mobile-menu-links{padding-left:14px;padding-right:14px}
}

/* Drawer robustness fix: the drawer is a body-level overlay, never constrained by the sticky header. */
.mobile-menu-panel{max-width:100%;overscroll-behavior:contain}
.mobile-menu.is-open{display:block}
@media(min-width:1101px){
  .mobile-menu{display:none!important}
}


/* Preloaded question-bank library */
.preloaded-bank-card{border:1px solid #cfe0ff;background:linear-gradient(180deg,#fff 0%,#fbfdff 100%)}
.preloaded-summary{display:flex;gap:10px;flex-wrap:wrap;margin:14px 0 18px}
.preloaded-category-form{min-width:min(100%,360px)}
.inline-form{display:flex;gap:8px;align-items:center}
.inline-form select{min-width:190px}
.mini-note{font-size:.9rem;color:#6b7280;margin:.45rem 0 0}
.unit-details summary{cursor:pointer;font-weight:700;color:#2458c6}
.unit-list{display:grid;gap:5px;margin-top:8px;min-width:260px}
.unit-list span{font-size:.88rem;color:#536176}
.compact-actions{align-items:center;flex-wrap:wrap}
.compact-actions form{margin:0}
.preloaded-table td{vertical-align:top}
@media(max-width:760px){
  .preloaded-bank-card .import-header{display:block}
  .preloaded-category-form{margin-top:16px}
  .inline-form{display:grid;grid-template-columns:1fr}
  .inline-form select{min-width:0;width:100%}
  .preloaded-table{min-width:900px}
}

/* Prepared unit question-paper sets */
.unit-paper-sets{margin-top:12px;padding-top:10px;border-top:1px solid var(--line,#dce4ef);display:grid;gap:8px}
.unit-paper-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.unit-paper-row>span{min-width:56px;font-weight:800;color:var(--ink,#0f172a)}
.unit-paper-row form{margin:0}
.btn.tiny,button.tiny{padding:6px 9px;font-size:12px;border-radius:9px}


/* Student result performance grade + visible exam parts */
.result-card{display:flex;align-items:center;justify-content:space-between;gap:28px}
.result-main{min-width:0}
.result-performance{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:190px;padding:18px 22px;border-left:1px solid var(--border)}
.result-grade-label{font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:8px}
.result-grade{display:inline-flex;align-items:center;justify-content:center;min-width:150px;padding:11px 18px;border-radius:999px;font-size:24px;font-weight:900;border:1px solid transparent}
.result-percent{margin-top:7px;font-size:14px;font-weight:800;color:var(--muted)}
.result-grade.outstanding{background:#ecfdf3;color:#067647;border-color:#abefc6}
.result-grade.very-good{background:#eff8ff;color:#175cd3;border-color:#b2ddff}
.result-grade.good{background:#f0fdf4;color:#15803d;border-color:#bbf7d0}
.result-grade.average{background:#fff8e7;color:#8a5b00;border-color:#f7d98a}
.result-grade.poor{background:#fff1f0;color:#b42318;border-color:#fecdca}
@media(max-width:700px){
  .result-card{align-items:flex-start;flex-direction:column}
  .result-performance{width:100%;min-width:0;border-left:0;border-top:1px solid var(--border);padding:18px 0 0;align-items:flex-start}
  .result-grade{min-width:0;font-size:21px}
}


/* Student-facing activity monitoring: intentionally neutral; detailed signals remain staff-only. */
.badge.activity-neutral{background:#eef4ff;border-color:#c9d9ff;color:#315b9a}

/* Faculty/Admin integrity drill-down on Results page. */
.integrity-details{position:relative;min-width:132px}
.integrity-details>summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;gap:8px;white-space:nowrap}
.integrity-details>summary::-webkit-details-marker{display:none}
.integrity-view-label{font-size:12px;font-weight:800;color:var(--primary)}
.integrity-popover{margin-top:10px;width:310px;max-width:min(82vw,310px);padding:14px 15px;border:1px solid var(--border);border-radius:14px;background:#fff;box-shadow:0 14px 34px rgba(16,24,40,.14);text-align:left}
.integrity-popover-title{font-size:15px;font-weight:900;color:var(--text);padding-bottom:10px;border-bottom:1px solid var(--border);margin-bottom:4px}
.integrity-metric-row{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:8px 0;font-size:13px;color:var(--muted)}
.integrity-metric-row strong{font-size:15px;color:var(--text)}
.integrity-metric-row.total{border-top:1px solid var(--border);margin-top:2px;padding-top:10px;font-weight:800}
.integrity-log-title{margin-top:10px;padding-top:10px;border-top:1px solid var(--border);font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}
.integrity-log{margin-top:5px;max-height:180px;overflow:auto}
.integrity-log-item{display:grid;grid-template-columns:105px 1fr;gap:10px;padding:8px 0;border-bottom:1px solid #eef1f6;font-size:12px}
.integrity-log-item:last-child{border-bottom:0}
.integrity-log-time{color:var(--muted);font-size:11px}
.integrity-log-item strong{display:block;color:var(--text);font-size:12px}
.integrity-log-item small{display:block;color:var(--muted);margin-top:2px;line-height:1.35}
@media(max-width:760px){.integrity-popover{width:270px}.integrity-log-item{grid-template-columns:1fr}.integrity-log-time{margin-bottom:-5px}}

/* Institution-ready V14 additions */
.role-chip,.mobile-role{display:inline-flex;align-items:center;border:1px solid #d9e4f7;background:#f5f8ff;color:#344054;border-radius:999px;padding:6px 10px;font-size:11px;font-weight:800;white-space:nowrap}.mobile-role{margin:12px 18px 0;border-radius:10px;justify-content:center}.badge.danger-badge{background:#fff1f0;border-color:#fecdca;color:#b42318}.setup-card.setup-wide{width:min(920px,100%)}.branding-row{display:grid;grid-template-columns:150px 1fr;gap:20px;align-items:center;margin:8px 0 18px}.institution-preview-logo{width:120px;height:120px;border-radius:18px;object-fit:contain;border:1px solid var(--border);background:#fff;padding:8px}.exam-centre-grid{grid-template-columns:1.3fr .7fr}.access-url{border:1px solid #bfd4ff;background:#f5f9ff;border-radius:12px;padding:14px 16px;font-family:Consolas,monospace;font-size:18px;font-weight:800;color:#174ea6;word-break:break-all;margin-bottom:14px}.qr-card{text-align:center}.qr-card img{width:min(260px,80%);height:auto;border-radius:16px;border:1px solid var(--border);padding:12px;background:#fff;margin:4px auto 14px}.readiness-list{display:grid;gap:8px;margin-top:18px}.readiness-list>div{display:flex;justify-content:space-between;gap:16px;padding:9px 0;border-bottom:1px solid var(--border)}.readiness-list span{color:var(--muted)}.checklist-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 18px}.checklist-grid span{display:block;padding:9px 11px;border-radius:10px;background:#fff;border:1px solid var(--border);font-size:13px}.backup-grid{grid-template-columns:1.2fr .8fr}.card-divider{border:0;border-top:1px solid var(--border);margin:24px 0}.inline-role-form{display:flex;gap:6px;align-items:center}.inline-role-form select,.inline-role-form input{width:auto;min-width:130px;margin:0;padding:8px}.inline-role-form .btn{white-space:nowrap}.grade-distribution{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.grade-distribution>div{border:1px solid var(--border);border-radius:14px;padding:16px;text-align:center;background:#fff}.grade-distribution strong{display:block;font-size:25px;color:var(--primary)}.grade-distribution span{display:block;font-size:12px;font-weight:800;color:var(--muted);margin-top:3px}.attainment-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.compact-head{margin-top:30px}.builder-summary{grid-template-columns:repeat(4,minmax(0,1fr))}
@media(max-width:1100px){.desktop-role{display:none}.checklist-grid{grid-template-columns:1fr}.exam-centre-grid,.attainment-grid{grid-template-columns:1fr}.grade-distribution{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:700px){.branding-row{grid-template-columns:1fr}.grade-distribution{grid-template-columns:repeat(2,minmax(0,1fr))}.inline-role-form{flex-direction:column;align-items:stretch}.inline-role-form select,.inline-role-form input{width:100%}.builder-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}
.network-refresh-note{margin-top:10px;color:var(--muted);font-size:12px;line-height:1.5}.network-refresh-note.network-refresh-error{color:var(--danger)}

/* Custom subject catalog */
.subject-catalog-card{border-color:#cfe0ff;background:linear-gradient(180deg,#fff 0%,#fbfdff 100%)}
.subject-catalog-summary{font-size:13px;font-weight:800;color:var(--muted);white-space:nowrap;padding-top:4px}
.subject-catalog-form{display:grid;grid-template-columns:1fr 1fr 1fr auto;gap:14px;align-items:end;margin:16px 0 22px;padding:16px;border:1px solid var(--border);border-radius:14px;background:#f8fbff}
.subject-catalog-form input,.subject-catalog-form button{margin-bottom:0}
.field-help{display:block;font-size:11px;color:var(--muted);margin-top:-6px}
.subject-catalog-groups{display:grid;gap:16px}
.subject-group{padding-top:2px}
.subject-group-title{font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.06em;color:#175cd3;margin-bottom:8px}
.subject-chips{display:flex;flex-wrap:wrap;gap:9px}
.subject-chip{display:flex;flex-direction:column;gap:2px;min-width:190px;max-width:320px;padding:10px 12px;border:1px solid var(--border);border-radius:12px;background:#fff;color:var(--text);text-decoration:none;transition:.16s ease}
.subject-chip:hover{border-color:#9fc0ff;transform:translateY(-1px);box-shadow:0 7px 18px rgba(16,24,40,.06)}
.subject-chip strong{font-size:13px}
.subject-chip span{font-size:11px;color:var(--muted)}
.subject-category-badge{display:inline-flex;margin-bottom:5px}
.subject-filter-grid{grid-template-columns:1.5fr repeat(5,1fr)}
@media(max-width:1100px){.subject-catalog-form{grid-template-columns:repeat(2,minmax(0,1fr))}.subject-filter-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:700px){.subject-catalog-summary{white-space:normal}.subject-catalog-form,.subject-filter-grid{grid-template-columns:1fr}.subject-chip{min-width:100%;max-width:none}}

/* V14.3: custom subject question workflow */
.subject-workspace-card{border-color:#b9d2ff;background:linear-gradient(180deg,#ffffff 0%,#f7fbff 100%);scroll-margin-top:96px}
.subject-workspace-counts{display:flex;gap:8px;align-items:center;justify-content:flex-end;flex-wrap:wrap}
.subject-empty-state{margin:14px 0;padding:14px 16px;border:1px dashed #b9c9e5;border-radius:14px;background:#f8fbff}
.subject-empty-state p{margin:6px 0 0}
.subject-workspace-actions{margin-top:14px;flex-wrap:wrap}
#add-bank-question,#bulk-import,#bank-questions{scroll-margin-top:96px}
@media(max-width:700px){.subject-workspace-counts{justify-content:flex-start}.subject-workspace-actions .btn{width:100%;text-align:center}}


/* Custom subject -> exam bridge */
.subject-exam-bridge{margin-top:18px;padding-top:18px;border-top:1px solid var(--line,#dfe6ef);display:flex;gap:18px;align-items:flex-end;justify-content:space-between;flex-wrap:wrap}
.subject-exam-bridge>div{flex:1 1 360px}
.subject-exam-bridge p{margin:6px 0 0}
.subject-exam-form{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap}
.subject-exam-form label{min-width:145px;margin:0}
.subject-exam-form input{margin-top:6px;min-width:120px}
@media (max-width:700px){.subject-exam-form{width:100%}.subject-exam-form label,.subject-exam-form button{width:100%}.subject-exam-form input{width:100%}}

/* Student answer review — available only for submitted attempts. */
.answer-review-head .muted{max-width:760px}
.answer-review-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.answer-review-summary>div{display:flex;flex-direction:column;gap:3px;padding:4px 8px}
.answer-review-summary strong{font-size:18px;color:var(--text)}
.answer-review-summary span{font-size:12px;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.answer-question-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px}
.answer-question-head h2{font-size:19px;margin:0;line-height:1.45;letter-spacing:-.01em}
.answer-comparison{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.answer-box{border:1px solid var(--border);border-radius:14px;padding:15px;background:#f8fafc;display:flex;flex-direction:column;gap:7px}
.answer-box.answer-correct,.correct-answer{background:#ecfdf3;border-color:#abefc6}
.answer-box.answer-wrong{background:#fff6f5;border-color:#fecdca}
.answer-label{font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.answer-box strong{font-size:15px;line-height:1.45}
.answer-options-details{margin-top:14px;border-top:1px solid var(--border);padding-top:12px}
.answer-options-details summary{cursor:pointer;color:var(--primary);font-weight:800;font-size:13px}
.answer-option-list{display:grid;gap:8px;margin-top:12px}
.answer-option-row{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:#fff;font-size:13px}
.answer-option-row.correct-option{border-color:#abefc6;background:#f6fef9}
.answer-option-row.selected-wrong-option{border-color:#fecdca;background:#fff8f7}
.answer-option-tags{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end;flex-shrink:0}
@media(max-width:700px){
  .answer-review-summary{grid-template-columns:1fr}
  .answer-question-head{flex-direction:column}
  .answer-comparison{grid-template-columns:1fr}
  .answer-option-row{flex-direction:column}
  .answer-option-tags{justify-content:flex-start}
}

/* Staff password reset workflow */
.staff-account-actions{align-items:flex-start}
.password-reset-panel{position:relative}
.password-reset-panel>summary{list-style:none;user-select:none}
.password-reset-panel>summary::-webkit-details-marker{display:none}
.password-reset-panel[open]>summary{border-color:#b9cdf8;background:#f5f8ff}
.password-reset-form{display:grid;gap:7px;min-width:270px;margin-top:8px;padding:13px;border:1px solid var(--border);border-radius:12px;background:#fff;box-shadow:0 12px 28px rgba(16,24,40,.10)}
.password-reset-form label{font-size:12px;margin:0}
.password-reset-form input{margin:0;min-width:240px;padding:9px 10px}
.password-reset-form .btn{margin-top:2px}
@media(max-width:700px){.password-reset-panel,.password-reset-form{width:100%}.password-reset-form{min-width:0}.password-reset-form input{min-width:0;width:100%}.staff-account-actions{flex-direction:column;align-items:stretch}}

/* V2.10 enterprise exam controls */
.skip-link{position:fixed;left:12px;top:-60px;z-index:9999;background:#fff;border:2px solid #175cd3;border-radius:8px;padding:10px 14px;font-weight:800}.skip-link:focus{top:12px}
.question-type-grid{grid-template-columns:2fr 1fr;align-items:end}.multi-answer-grid{display:flex;gap:14px;flex-wrap:wrap;margin:8px 0 14px}.exam-free-answer{max-width:520px;font-size:16px}.exam-question .mini-meta{margin:6px 0 12px}.true-false-options{display:grid;grid-template-columns:repeat(2,minmax(0,220px));gap:10px}.command-centre-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.live-summary{display:flex;gap:8px;flex-wrap:wrap}.live-monitor-card{border-color:#cbdcf8}.badge.warning{background:#fff4e5;color:#8a4b08;border-color:#fedf89}.exam-question input:focus-visible,.exam-question button:focus-visible,.exam-question label:focus-within{outline:3px solid rgba(23,92,211,.22);outline-offset:2px}
[data-qtype-section][hidden]{display:none!important}
@media(max-width:760px){.question-type-grid,.command-centre-grid,.true-false-options{grid-template-columns:1fr}.live-summary{justify-content:flex-start}}
.mfa-enrol-grid{display:grid;grid-template-columns:minmax(180px,240px) 1fr;gap:24px;align-items:center;margin:18px 0}.mfa-qr{width:220px;max-width:100%;height:auto;border-radius:12px;background:#fff;padding:10px}.secret-code{display:block;padding:12px;overflow-wrap:anywhere;font-size:1rem}.setup-steps{line-height:1.7}
@media(max-width:700px){.mfa-enrol-grid{grid-template-columns:1fr}.mfa-qr{width:190px}}
.essay-answer{min-height:220px;resize:vertical;line-height:1.55}
.manual-grade-card{margin-bottom:18px}.essay-response{margin:16px 0}.essay-response-text{white-space:pre-wrap;padding:14px;border:1px solid rgba(127,127,127,.25);border-radius:10px;margin-top:8px;line-height:1.6;max-height:440px;overflow:auto}
.prewrap-answer{white-space:pre-wrap}.grader-comment{display:block;margin-top:8px;white-space:pre-wrap}
.edge-import-card{margin:20px 0}.edge-import-action{display:flex;align-items:end}
.integrity-danger{border-color:#b42318;background:#fff4f2;color:#7a271a}


/* V27.1 UI fit + Super Admin navigation cleanup */
body{overflow-x:hidden}

/* The login page must fit a normal laptop/desktop viewport without artificial card margins. */
.login-shell{
  min-height:calc(100vh - 145px);
  padding:28px 0;
  align-items:center;
}
.login-grid{
  grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);
  gap:28px;
  align-items:stretch;
}
.login-cards{
  align-content:center;
  gap:16px;
  min-width:0;
}
.login-card{
  width:100%;
  max-width:none;
  margin:0;
  padding:22px 24px;
}
.login-card h2{margin-bottom:10px}
.login-card h3{margin-bottom:12px}
.login-card input{margin-bottom:12px}
.intro-card{min-height:0}

/* Compact desktop Super Admin navigation. */
.admin-nav{min-width:0}
.nav-dropdown{position:relative;color:var(--muted)}
.nav-dropdown>summary{
  list-style:none;
  cursor:pointer;
  display:inline-flex;
  align-items:center;
  gap:6px;
  min-height:38px;
  padding:7px 10px;
  border:1px solid transparent;
  border-radius:10px;
  color:var(--muted);
  font-weight:800;
  white-space:nowrap;
  user-select:none;
}
.nav-dropdown>summary::-webkit-details-marker{display:none}
.nav-dropdown>summary:hover,.nav-dropdown>summary:focus-visible,.nav-dropdown[open]>summary{
  color:var(--primary);
  background:#f3f7ff;
  border-color:#dbe8ff;
  outline:none;
}
.nav-dropdown-caret{font-size:11px;transition:transform .16s ease}
.nav-dropdown[open] .nav-dropdown-caret{transform:rotate(180deg)}
.nav-dropdown-menu{
  position:absolute;
  right:0;
  top:calc(100% + 9px);
  z-index:300;
  width:560px;
  max-width:calc(100vw - 40px);
  display:grid;
  grid-template-columns:1fr 1fr 1fr;
  gap:8px;
  padding:12px;
  border:1px solid var(--border);
  border-radius:16px;
  background:#fff;
  box-shadow:0 20px 48px rgba(16,24,40,.16);
}
.nav-dropdown-section{min-width:0;padding:4px}
.nav-dropdown-label{
  display:block;
  padding:6px 9px 7px;
  color:#667085;
  font-size:10px;
  font-weight:900;
  letter-spacing:.07em;
  text-transform:uppercase;
}
.nav-dropdown-menu a{
  display:block;
  width:100%;
  padding:9px 10px;
  border-radius:9px;
  color:#344054;
  font-size:13px;
  font-weight:800;
  white-space:normal;
}
.nav-dropdown-menu a:hover,.nav-dropdown-menu a:focus-visible{
  background:#f3f7ff;
  color:var(--primary);
  outline:none;
}
.placement-nav-dropdown .nav-dropdown-menu{
  width:260px;
  grid-template-columns:1fr;
}
.mobile-menu-section-label{
  display:block;
  margin:11px 12px 3px;
  color:#667085;
  font-size:10px;
  font-weight:900;
  letter-spacing:.07em;
  text-transform:uppercase;
}

@media(max-width:1100px){
  .login-shell{min-height:auto;padding:26px 0}
  .login-grid{grid-template-columns:1fr;max-width:760px}
  .intro-card{min-height:330px}
}
@media(max-width:700px){
  .login-shell{padding:18px 0 24px}
  .login-grid{gap:16px}
  .intro-card{min-height:auto;padding:24px 20px}
  .login-card{padding:20px}
}
@media(max-height:780px) and (min-width:1101px){
  .login-shell{padding:18px 0;align-items:start}
  .intro-card{padding:28px}
  .intro-card h1{font-size:34px}
  .offline-download-box{margin-top:20px;padding-top:16px}
  .login-card{padding:18px 22px}
  .login-card input{padding:9px 11px;margin-bottom:10px}
  .login-card .btn,.login-card button{min-height:40px;padding:9px 15px}
}

/* V28 Student Practice & Learning Centre */
.practice-dashboard-banner{display:flex;align-items:center;justify-content:space-between;gap:24px;background:linear-gradient(135deg,#f5f9ff,#fff)}
.practice-dashboard-banner h2{margin:4px 0 8px}.practice-dashboard-banner p{margin:0;max-width:760px}
.practice-stats{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:22px}
.practice-layout{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(320px,.8fr);gap:20px;margin-bottom:20px}
.practice-builder-form .grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.practice-mode-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:16px 0}
.practice-mode-card{display:flex;gap:10px;align-items:flex-start;border:1px solid var(--border);border-radius:14px;padding:14px;background:#fff;cursor:pointer}
.practice-mode-card:has(input:checked){border-color:#7aa7ff;box-shadow:0 0 0 3px #eaf2ff}.practice-mode-card input{width:auto;margin-top:3px}.practice-mode-card span{display:flex;flex-direction:column;gap:4px}.practice-mode-card small{color:var(--muted);line-height:1.4}
.practice-duration-row{display:grid;grid-template-columns:180px 130px 1fr;gap:12px;align-items:end;margin-bottom:16px}.practice-duration-row label{align-self:center;margin:0}.practice-duration-row input{margin:0}
.practice-quick-actions{display:grid;gap:12px}.practice-quick-actions form{margin:0}.practice-action-btn{width:100%;display:flex;justify-content:space-between;align-items:center;text-align:left}.practice-action-btn strong{font-size:14px}.practice-action-btn span{font-size:12px;font-weight:600;color:var(--muted)}
.practice-performance-list{display:grid;gap:15px}.practice-performance-row{display:grid;grid-template-columns:minmax(160px,1fr) minmax(120px,1fr) 52px;gap:12px;align-items:center}.practice-performance-row>div:first-child{display:flex;flex-direction:column;gap:2px}.practice-performance-row>div:first-child span{font-size:12px;color:var(--muted)}.practice-progress{height:9px;background:#edf2f7;border-radius:999px;overflow:hidden}.practice-progress span{display:block;height:100%;background:var(--primary);border-radius:inherit}
.practice-attempt-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start}.practice-timer{min-width:150px;border:1px solid var(--border);border-radius:14px;padding:12px 16px;background:#fff;text-align:center;position:sticky;top:88px}.practice-timer span{display:block;color:var(--muted);font-size:11px;font-weight:800;text-transform:uppercase}.practice-timer strong{font-size:25px}.practice-timer .urgent{color:#b42318}
.practice-info-banner{margin-bottom:18px}.practice-question-card{margin-bottom:16px}.practice-question-card h3,.practice-result-question h3{font-size:18px;line-height:1.55;margin:14px 0}.practice-question-meta{display:flex;flex-wrap:wrap;gap:7px;align-items:center}.practice-marks{margin-left:auto;color:var(--muted);font-size:12px;font-weight:800}.practice-options{display:grid;gap:10px}.practice-option{display:flex;gap:10px;align-items:flex-start;border:1px solid var(--border);border-radius:12px;padding:12px 14px;cursor:pointer;background:#fff}.practice-option:hover{border-color:#b7ccf4;background:#f9fbff}.practice-option input{width:auto;margin-top:3px}.practice-free-answer{max-width:100%}
.practice-feedback-actions{display:flex;align-items:flex-start;gap:12px;margin-top:14px}.practice-feedback{flex:1;border-radius:10px;padding:10px 12px;font-size:13px;line-height:1.45}.practice-feedback.correct{background:#ecfdf3;color:#067647;border:1px solid #abefc6}.practice-feedback.incorrect{background:#fff8e7;color:#7a4d00;border:1px solid #f6d787}.practice-feedback.error{background:#fff1f0;color:#b42318;border:1px solid #fecdca}.practice-feedback strong{display:block;margin-bottom:3px}
.practice-submit-bar{position:sticky;bottom:0;z-index:10;display:flex;justify-content:flex-end;gap:10px;padding:14px 0;background:linear-gradient(180deg,rgba(247,249,252,0),#f7f9fc 32%)}
.practice-result-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px}.practice-result-summary>div{border-right:1px solid var(--border);padding-right:14px}.practice-result-summary>div:last-child{border-right:0}.practice-result-summary span{display:block}.practice-result-summary strong{display:block;font-size:24px;margin-top:5px}.practice-result-actions{margin:16px 0 20px}.practice-result-actions form,.bookmark-form{margin:0}.practice-answer-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:14px 0}.practice-answer-grid>div{border:1px solid var(--border);background:#fafbfc;border-radius:12px;padding:12px}.practice-answer-grid span{display:block;color:var(--muted);font-size:11px;font-weight:800;text-transform:uppercase;margin-bottom:5px}.practice-explanation{background:#f5f9ff;border-left:4px solid var(--primary);padding:12px 14px;border-radius:10px;margin:12px 0}.practice-explanation p{margin:6px 0 0;line-height:1.5}.practice-bulk-controls{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.bulk-separator{font-size:12px;color:var(--muted);font-weight:800}.practice-release-state{min-height:44px;border:1px solid var(--border);border-radius:10px;padding:11px 12px;background:#fafbfc;color:var(--muted)}
@media(max-width:980px){.practice-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.practice-layout{grid-template-columns:1fr}.practice-builder-form .grid{grid-template-columns:1fr 1fr}.practice-result-summary{grid-template-columns:1fr 1fr}.practice-result-summary>div{border-right:0}.practice-dashboard-banner{align-items:flex-start;flex-direction:column}}
@media(max-width:650px){.practice-stats,.practice-builder-form .grid,.practice-mode-grid,.practice-result-summary,.practice-answer-grid{grid-template-columns:1fr}.practice-duration-row{grid-template-columns:1fr}.practice-performance-row{grid-template-columns:1fr}.practice-progress{width:100%}.practice-attempt-head{flex-direction:column}.practice-timer{position:static;width:100%}.practice-feedback-actions{flex-direction:column}.practice-feedback{width:100%}.practice-submit-bar{justify-content:stretch}.practice-submit-bar>*{flex:1}.practice-action-btn{align-items:flex-start;flex-direction:column}.practice-marks{margin-left:0}.practice-dashboard-banner .btn{width:100%;text-align:center}}

/* V31 Practical Marks Register */
.practical-page-head,.practical-register-head,.practical-live-head{display:flex;justify-content:space-between;align-items:flex-end;gap:18px}.practical-page-head p,.practical-register-head p,.practical-live-head p{margin:6px 0 0}.back-link{display:inline-block;margin-bottom:7px;font-weight:800;font-size:13px;color:var(--primary)}
.practical-register-form{grid-template-columns:repeat(3,minmax(0,1fr))}.practical-roster-upload{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:end;margin-top:14px}.practical-roster-upload input{margin:0}.small-text{font-size:12px;margin-top:3px}
.practical-register-stats{grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:20px}.practical-setup-grid{grid-template-columns:1fr 1fr;align-items:start}.practical-setup-card{height:100%}.practical-setup-card textarea{margin:0 0 12px}.practical-or{display:block;margin:12px 0 7px;color:var(--muted);font-size:12px;font-weight:800}.import-hint{font-size:12px;color:var(--muted);line-height:1.5;margin:12px 0 0}
.practical-live-progress{display:flex;flex-direction:column;align-items:flex-end;padding:12px 16px;border:1px solid var(--border);border-radius:14px;background:#fff}.practical-live-progress strong{font-size:24px}.practical-live-progress span{font-size:11px;color:var(--muted);font-weight:700}.practical-live-toolbar{display:grid;grid-template-columns:minmax(520px,1fr) auto;gap:24px;align-items:end;position:sticky;top:74px;z-index:20}.practical-experiment-picker{min-width:0}.practical-experiment-picker select{margin:0;width:100%}.practical-live-actions{align-items:end;flex-wrap:wrap}.practical-live-actions input{width:230px;margin:0}.practical-live-actions form{margin:0}
.practical-live-table-card{padding:0;overflow:hidden}.practical-live-table{margin:0}.practical-live-table th{position:sticky;top:0;background:#f8fafc;z-index:2}.practical-live-table td{vertical-align:middle}.practical-live-table select,.practical-live-table input{margin:0;min-width:100px}.practical-live-table td:nth-child(3){min-width:220px}.practical-live-table td:nth-child(6){min-width:180px}.practical-marks-input{font-weight:800;font-size:16px}.practical-save-state{display:inline-flex;min-width:58px;justify-content:center;font-size:11px;font-weight:900;color:#667085}.practical-save-state.saving{color:#b54708}.practical-save-state.saved{color:#067647}.practical-save-state.error{color:#b42318}.practical-sticky-save{position:sticky;bottom:0;z-index:15;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px 18px;margin-top:12px;border:1px solid var(--border);border-radius:14px;background:rgba(255,255,255,.97);box-shadow:0 -8px 28px rgba(16,24,40,.08)}.practical-sticky-save span{font-size:12px;color:var(--muted);font-weight:700}
@media(max-width:1000px){.practical-register-form{grid-template-columns:1fr 1fr}.practical-setup-grid{grid-template-columns:1fr}.practical-live-toolbar{grid-template-columns:1fr;position:static}.practical-live-actions{justify-content:flex-start}.practical-live-actions input{width:100%}}
@media(max-width:650px){.practical-page-head,.practical-register-head,.practical-live-head{align-items:flex-start;flex-direction:column}.practical-register-form,.practical-register-stats{grid-template-columns:1fr}.practical-roster-upload{grid-template-columns:1fr}.practical-register-head>.actions{width:100%}.practical-register-head>.actions>*{flex:1}.practical-live-progress{align-items:flex-start;width:100%}.practical-sticky-save{align-items:stretch;flex-direction:column}.practical-live-table td:nth-child(3){min-width:170px}}
/* V32 practical component marks */
.practical-marks-settings{margin-bottom:20px}.practical-marks-settings-grid{grid-template-columns:repeat(4,minmax(130px,1fr)) auto;align-items:end;gap:14px}.practical-marks-settings-grid input{margin:0}.practical-settings-action button{white-space:nowrap}.practical-total-badge{display:flex;align-items:baseline;gap:8px;padding:8px 12px;border-radius:12px;background:#f2f6ff;color:var(--primary);font-weight:800}.practical-total-badge strong{font-size:20px}.practical-component-table{min-width:1500px}.practical-component-table td:nth-child(3){min-width:210px}.practical-component-table td:nth-child(10){min-width:170px}.practical-component-input{width:92px!important;min-width:92px!important;font-weight:800;text-align:center}.practical-total-input{width:92px!important;min-width:92px!important;font-weight:900;text-align:center;background:#f8fafc!important}
@media(max-width:1000px){.practical-marks-settings-grid{grid-template-columns:1fr 1fr}.practical-settings-action{grid-column:1/-1}.practical-settings-action button{width:100%}}
@media(max-width:650px){.practical-marks-settings-grid{grid-template-columns:1fr}.practical-settings-action{grid-column:auto}}


/* V33 compact practical mark-entry table */
.practical-live-table-card .table-wrap{overflow-x:visible}
.practical-component-table{width:100%;min-width:0!important;table-layout:fixed}
.practical-component-table th,.practical-component-table td{padding:9px 5px}
.practical-component-table th{font-size:11px;line-height:1.2;letter-spacing:.015em;white-space:normal}
.practical-component-table td{font-size:13px}
.practical-component-table th:nth-child(1),.practical-component-table td:nth-child(1){width:34px}
.practical-component-table th:nth-child(2),.practical-component-table td:nth-child(2){width:112px}
.practical-component-table th:nth-child(3),.practical-component-table td:nth-child(3){width:178px;min-width:0!important}
.practical-component-table th:nth-child(4),.practical-component-table td:nth-child(4){width:112px}
.practical-component-table th:nth-child(5),.practical-component-table td:nth-child(5){width:82px}
.practical-component-table th:nth-child(6),.practical-component-table td:nth-child(6){width:76px;min-width:0!important}
.practical-component-table th:nth-child(7),.practical-component-table td:nth-child(7){width:96px}
.practical-component-table th:nth-child(8),.practical-component-table td:nth-child(8){width:72px}
.practical-component-table th:nth-child(9),.practical-component-table td:nth-child(9){width:76px}
.practical-component-table th:nth-child(10),.practical-component-table td:nth-child(10){width:58px;min-width:0!important}
.practical-component-table select{width:100%!important;min-width:0!important;padding:9px 7px;font-size:13px}
.practical-component-table .practical-component-input,.practical-component-table .practical-total-input{width:100%!important;min-width:0!important;padding:9px 5px;font-size:14px}
.practical-component-table .practical-student-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.practical-component-table .practical-save-state{min-width:0;width:100%;font-size:10px}
.practical-component-table input[type="hidden"]{display:none}
@media(max-width:900px){.practical-live-table-card .table-wrap{overflow-x:auto}.practical-component-table{min-width:930px!important}}

/* V40 student exam organization: Subject > Unit > Exam */
.student-exam-groups{display:grid;gap:18px}
.student-exam-subject{padding:0;overflow:hidden}
.student-exam-subject>h2{margin:0;padding:18px 24px;border-bottom:1px solid var(--border);font-size:22px}
.student-exam-unit+.student-exam-unit{border-top:1px solid var(--border)}
.student-exam-unit-title{padding:10px 24px;background:#f8fafc;color:#344054;font-size:13px;font-weight:900}
.student-exam-table{margin:0}
.student-exam-table th,.student-exam-table td{padding-top:12px;padding-bottom:12px}
.student-exam-table th:first-child,.student-exam-table td:first-child{padding-left:24px}
.student-exam-table th:last-child,.student-exam-table td:last-child{padding-right:24px}
@media(max-width:700px){
  .student-exam-subject>h2{padding:16px 18px;font-size:20px}
  .student-exam-unit-title{padding:9px 18px}
  .student-exam-table th:first-child,.student-exam-table td:first-child{padding-left:18px}
  .student-exam-table th:last-child,.student-exam-table td:last-child{padding-right:18px}
}


/* V45 Practical register delete icon */
.practical-register-leading{display:flex;align-items:center;gap:10px}
.practical-register-leading form{flex:0 0 auto}
.practical-delete-icon{
  width:30px;min-width:30px;height:30px;min-height:30px;padding:0;
  border:1px solid #f0b4ae;border-radius:8px;background:#fff;color:var(--danger);
  box-shadow:none;transform:none
}
.practical-delete-icon:hover{background:#fff4f3;color:#912018;transform:none;box-shadow:none}
.practical-delete-icon svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}


/* V53 Admin exam organization: Subject > Exams */
.admin-exam-subject-group{margin-top:18px;padding-top:18px;border-top:1px solid var(--border)}
.admin-exam-subject-group:first-of-type{margin-top:8px;padding-top:0;border-top:0}
.admin-exam-subject-group>h3{margin:0 0 10px;font-size:19px;line-height:1.35}
.admin-exam-subject-group table{margin:0}


/* V54 Super Admin exam metadata edit icon */
.exam-edit-icon{
  width:30px;min-width:30px;height:30px;min-height:30px;padding:0;
  border:1px solid #b9cffd;border-radius:8px;background:#fff;color:var(--primary);
  box-shadow:none;transform:none
}
.exam-edit-icon:hover{background:#f2f6ff;color:#0b4cc4;transform:none;box-shadow:none}
.exam-edit-icon svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}


.rotating-pin-box{display:flex;align-items:center;gap:14px;margin:14px 0 20px;padding:14px 18px;border:1px solid #cfe0ff;border-radius:14px;background:#f5f8ff;width:max-content;max-width:100%}
.rotating-pin-value{font-size:32px;font-weight:800;letter-spacing:.18em;color:#0b5cff;font-variant-numeric:tabular-nums}
.rotating-pin-timer{min-width:46px;font-weight:800;color:#5d6b82;font-variant-numeric:tabular-nums}
.secure-fullscreen-lock[hidden]{display:none!important}
.secure-fullscreen-lock{position:fixed;inset:0;z-index:10000;background:rgba(8,18,38,.94);display:flex;align-items:center;justify-content:center;padding:24px}
.secure-fullscreen-card{background:#fff;border-radius:18px;padding:28px;min-width:280px;text-align:center;box-shadow:0 20px 60px rgba(0,0,0,.35)}
.secure-fullscreen-card h2{margin:0 0 18px}

/* V57 silent secure-exam shell */
.secure-exam-shell{position:fixed;inset:0;z-index:20000;background:#fff}
.secure-exam-frame{display:block;width:100%;height:100%;border:0;background:#fff}
body.secure-exam-running{overflow:hidden}
body.secure-exam-running>.site-header,
body.secure-exam-running>.mobile-menu,
body.secure-exam-running>main,
body.secure-exam-running>.site-footer,
body.secure-exam-running>.skip-link{visibility:hidden}
body.secure-exam-running>.secure-exam-shell{visibility:visible}
.silent-fullscreen-guard[hidden]{display:none!important}
.silent-fullscreen-guard{position:fixed;inset:0;z-index:30000;background:#f4f7fb;cursor:default;display:grid;place-items:center;padding:24px}
.fullscreen-reentry-card{width:min(560px,100%);background:#fff;border:1px solid #d9e2ef;border-radius:18px;box-shadow:0 18px 55px rgba(15,23,42,.14);padding:30px;text-align:center}
.fullscreen-reentry-card h2{margin:0 0 10px;font-size:30px;color:#0f172a}
.fullscreen-reentry-card p{margin:8px 0 18px;line-height:1.55}
.fullscreen-reentry-card .btn{min-width:180px}
body.secure-exam-shell-page>.site-header,
body.secure-exam-shell-page>.mobile-menu,
body.secure-exam-shell-page>.site-footer,
body.secure-exam-shell-page>.skip-link{display:none!important}
body.secure-exam-shell-page main.page{padding-top:0;padding-bottom:0;min-height:100vh}
body.secure-exam-shell-page main.page>.container{max-width:1240px;padding-top:20px;padding-bottom:30px}
body.secure-exam-shell-page .exam-head{top:0}
body.secure-exam-shell-page .exam-question:first-of-type{scroll-margin-top:88px}
body.secure-exam-running .secure-exam-shell{visibility:visible!important}

/* V2.22 practical-file first-page scanner */
.practical-register-stats{grid-template-columns:repeat(4,minmax(0,1fr))}
.practical-file-stat:before{background:var(--success)}
.practical-file-scanner{border-color:#cfe4d8;background:linear-gradient(180deg,#fff 0%,#fbfffc 100%)}
.practical-file-received-badge{display:inline-flex;align-items:center;gap:5px;white-space:nowrap;padding:8px 12px;border-radius:999px;background:#ecfdf3;border:1px solid #abefc6;color:#067647;font-size:12px;font-weight:800}.practical-file-received-badge strong{font-size:17px}
.practical-scanner-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(260px,.8fr);gap:22px;align-items:start}.practical-scan-actions{display:flex;gap:10px;flex-wrap:wrap}.practical-hidden-file{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;white-space:nowrap!important;clip-path:inset(50%)!important}
.practical-scan-preview-wrap{min-height:220px;border:1px dashed #b9c6d8;border-radius:16px;background:#f8fafc;display:grid;place-items:center;overflow:hidden}.practical-scan-preview-empty{color:var(--muted);font-weight:800;font-size:13px}.practical-scan-preview{display:block;max-width:100%;max-height:360px;object-fit:contain;background:#fff}
.practical-scan-progress{margin-top:15px;padding:13px 14px;border-radius:12px;border:1px solid #d7e3f5;background:#f7faff}.practical-scan-progress strong{display:block;margin-top:7px;font-size:12px;color:#344054}.practical-scan-progress-bar{height:8px;border-radius:999px;background:#e5eaf2;overflow:hidden}.practical-scan-progress-bar span{display:block;height:100%;width:2%;border-radius:999px;background:var(--primary);transition:width .2s ease}
.practical-scan-result{margin-top:14px;padding:13px 14px;border:1px solid #d7e3f5;border-radius:12px;background:#f8fafc}.practical-scan-result strong{display:block;margin-bottom:4px}.practical-scan-result p{margin:0;color:#475467;font-size:13px;line-height:1.45}.practical-scan-result.success{background:#ecfdf3;border-color:#abefc6}.practical-scan-result.success strong{color:#067647}.practical-scan-result.warning{background:#fffaeb;border-color:#fedf89}.practical-scan-result.warning strong{color:#b54708}.practical-scan-result.error{background:#fef3f2;border-color:#fecdca}.practical-scan-result.error strong{color:#b42318}.practical-scan-candidates{display:flex;flex-wrap:wrap;gap:8px;margin-top:11px}.practical-scan-candidates .btn{width:auto}
.practical-scan-manual{margin-top:15px;padding-top:14px;border-top:1px solid var(--border)}.practical-scan-manual>label{display:block;margin-bottom:7px;font-size:12px;font-weight:800;color:#475467}.practical-scan-manual-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center}.practical-scan-manual-row select{margin:0}.practical-scan-manual-row button{white-space:nowrap}
.practical-file-cell{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.practical-file-cell small{color:var(--muted);font-size:11px}.badge.practical-file-received{background:#ecfdf3;border-color:#abefc6;color:#067647}.badge.practical-file-missing{background:#f2f4f7;border-color:#e4e7ec;color:#667085}.practical-file-cell form{margin:0}.practical-file-remove{width:24px!important;min-width:24px!important;min-height:24px!important;height:24px;padding:0!important;border-radius:50%;background:#fff!important;border:1px solid #fecdca!important;color:#b42318!important;font-size:16px;line-height:1;box-shadow:none}.practical-file-remove:hover{background:#fef3f2!important;transform:none!important}
@media(max-width:1000px){.practical-register-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.practical-scanner-grid{grid-template-columns:1fr}.practical-scan-preview-wrap{min-height:180px}}
@media(max-width:650px){.practical-register-stats{grid-template-columns:1fr 1fr}.practical-scan-actions{display:grid;grid-template-columns:1fr}.practical-scan-actions .btn{width:100%}.practical-scan-manual-row{grid-template-columns:1fr}.practical-scan-manual-row button{width:100%}.practical-file-received-badge{align-self:flex-start}}

/* V2.23 experiment-specific practical record tracking */
.practical-scan-experiment-step{margin:4px 0 20px;padding:14px 16px;border:1px solid #bcd2f7;border-radius:14px;background:#f7faff}.practical-scan-experiment-step label,.practical-scan-step-title{display:flex;align-items:center;gap:8px;font-weight:850;color:#172b4d;margin-bottom:8px}.practical-scan-experiment-step label span,.practical-scan-step-title span{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--primary);color:#fff;font-size:12px}.practical-scan-experiment-step select{margin:0;max-width:720px}.practical-scan-experiment-step small{display:block;margin-top:7px;color:var(--muted);font-size:12px;line-height:1.45}
.practical-record-tracker-card{border-color:#d6e2f3}.practical-record-tracker{min-width:max-content}.practical-record-tracker th:not(:nth-child(-n+3)),.practical-record-tracker td:not(:nth-child(-n+3)){min-width:145px;text-align:center}.practical-record-tracker .practical-file-cell{justify-content:center}.practical-legacy-notice{margin:4px 0 14px;padding:11px 13px;border:1px solid #fedf89;border-radius:12px;background:#fffaeb;color:#7a4a00;font-size:12px;line-height:1.5}.practical-legacy-notice strong{color:#b54708}
.practical-mark-record-status{display:block;margin-top:4px;font-size:10px;font-weight:800;line-height:1.25}.practical-mark-record-status.received{color:#067647}.practical-mark-record-status.missing{color:#98a2b3}
@media(max-width:650px){.practical-scan-experiment-step select{width:100%}.practical-file-received-badge{white-space:normal;text-align:center;justify-content:center}}

/* V83.1: Record marks awarded automatically from scanned experiment receipts. */
.practical-auto-record-mark{font-weight:800;background:#f0fdf4;border-color:#86efac}

/* V88.1 privacy-first compact practical record scanner */
.practical-file-scanner-compact{padding-top:18px;padding-bottom:18px}
.practical-scanner-compact-header{margin-bottom:12px}
.practical-scanner-compact-row{display:grid;grid-template-columns:minmax(420px,1fr) auto;gap:12px;align-items:end}
.practical-scanner-compact-field label{display:block;margin-bottom:7px;font-size:12px;font-weight:850;color:#344054}
.practical-scanner-compact-field select{margin:0;width:100%;max-width:none}
.practical-scanner-compact-action{display:flex;align-items:end}
.practical-scan-button{white-space:nowrap;min-height:46px;display:inline-flex;align-items:center;justify-content:center}
.practical-scan-progress-inline{margin-top:10px;color:var(--muted);font-size:12px}
.practical-scan-result-compact{margin-top:10px;padding:10px 12px}
.practical-scan-result-compact p{margin-top:2px}
.practical-file-scanner-compact .practical-scan-manual{margin-top:12px;padding-top:12px}
@media(max-width:760px){.practical-scanner-compact-row{grid-template-columns:1fr}.practical-scanner-compact-action,.practical-scan-button{width:100%}}

/* V90 Theory Class experiment/date tracking */
.theory-register-stats{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:20px}
.theory-live-toolbar{grid-template-columns:minmax(520px,1fr) auto}
.theory-live-table{min-width:760px!important}
.theory-live-table td:nth-child(3){min-width:260px}
.theory-live-table td:nth-child(4){min-width:190px}
.theory-date-input{min-width:165px!important;margin:0}
@media(max-width:1000px){.theory-register-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.theory-live-toolbar{grid-template-columns:1fr}}
@media(max-width:650px){.theory-register-stats{grid-template-columns:1fr 1fr}}

.audit-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.audit-grid>div{padding:12px;border:1px solid #e2e8f0;border-radius:12px}.audit-grid span{display:block;font-size:12px;color:#64748b;margin-bottom:5px}.audit-grid strong{word-break:break-word}.audit-grid .wide{grid-column:1/-1}@media(max-width:800px){.audit-grid{grid-template-columns:1fr}}

.exam-submit-confirm{position:fixed;inset:0;z-index:10000;background:rgba(15,23,42,.55);display:flex;align-items:center;justify-content:center;padding:20px}
.exam-submit-confirm[hidden]{display:none}
.exam-submit-confirm-card{width:min(460px,100%);background:#fff;border-radius:18px;padding:24px;box-shadow:0 24px 70px rgba(15,23,42,.3)}
.exam-submit-confirm-card h2{margin:0 0 8px}.exam-submit-confirm-card p{margin:0 0 20px;color:#475569}.exam-submit-confirm-card .actions{display:flex;justify-content:flex-end;gap:10px}

.sequential-progress-badge{display:inline-flex;align-items:center;padding:7px 11px;border:1px solid #cbd5e1;border-radius:999px;font-weight:800;font-size:13px;background:#f8fafc;color:#334155}.sequential-nav{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:18px}.sequential-security-note{font-size:13px;color:#64748b}.sequential-nav button:disabled{opacity:.58;cursor:not-allowed}@media(max-width:700px){.sequential-nav{align-items:stretch;flex-direction:column}.sequential-nav button{width:100%}}

/* V107 Attendance */
.attendance-form-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.attendance-cidr-row{margin-top:16px}.attendance-detail-grid{grid-template-columns:1.05fr .95fr}.attendance-state-row{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:10px}.attendance-session-actions{margin-top:18px}.attendance-session-actions form{margin:0}.attendance-url{font-size:13px;margin-top:4px}.attendance-room-code{display:flex;align-items:center;justify-content:center;gap:14px}.attendance-room-code span{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:#667085}.attendance-room-code strong{font-size:30px;letter-spacing:.16em;color:#174ea6}.attendance-student-card,.student-attendance-item{display:flex;align-items:center;justify-content:space-between;gap:18px}.attendance-student-card h2{margin-bottom:4px}.student-attendance-list{display:grid;gap:10px}.student-attendance-item{border:1px solid var(--border);border-radius:12px;padding:13px 14px;background:#fff}.attendance-check-card{max-width:760px;margin-left:auto;margin-right:auto}.attendance-room-code-form{border-top:1px solid var(--border);margin-top:18px;padding-top:18px}.attendance-room-code-entry{display:grid;grid-template-columns:1fr auto;gap:10px}.attendance-room-code-entry input{margin:0;font-size:20px;letter-spacing:.12em;text-align:center}.attendance-biometric-box{border-top:1px solid var(--border);margin-top:18px;padding-top:18px}.attendance-fallback-form{border-top:1px solid var(--border);margin-top:18px;padding-top:18px}.attendance-success{text-align:center;padding:18px 8px}.attendance-success-icon{width:68px;height:68px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 12px;background:#ecfdf3;color:#067647;font-size:38px;font-weight:900}.attendance-ok{color:#067647}.attendance-bad{color:#b42318}.attendance-client-message{margin-top:14px}.integrity-banner.success{background:#ecfdf3;border-color:#abefc6;color:#067647}
@media(max-width:980px){.attendance-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.attendance-detail-grid{grid-template-columns:1fr}}
@media(max-width:650px){.attendance-form-grid{grid-template-columns:1fr}.attendance-student-card,.student-attendance-item,.attendance-state-row{align-items:flex-start;flex-direction:column}.attendance-student-card .actions,.student-attendance-item>div:last-child{width:100%}.attendance-student-card .btn,.student-attendance-item .btn{width:100%}.attendance-room-code-entry{grid-template-columns:1fr}.attendance-room-code-entry button{width:100%}}
.attendance-verification-cell{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:190px}.attendance-verification-cell form{margin:0}.attendance-verification-cell .btn{width:auto}

/* V116 placement readiness */
.placement-head{display:flex;justify-content:space-between;align-items:flex-start;gap:18px}
.placement-head p{margin:.35rem 0 0;color:var(--muted,#64748b)}
.placement-filter-form{display:flex;gap:18px;align-items:end;justify-content:space-between;flex-wrap:wrap}
.placement-filter-form>div:first-child{min-width:min(520px,100%);flex:1}
.placement-context{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding-bottom:4px}
.placement-stat-grid{grid-template-columns:repeat(4,minmax(0,1fr));margin:18px 0}
.placement-two-col{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr);gap:18px;margin:18px 0}
.placement-skill-list,.placement-passport-grid,.placement-plan-list{display:grid;gap:12px}
.placement-skill-row{display:grid;grid-template-columns:minmax(180px,1fr) minmax(180px,1.5fr) 64px;gap:14px;align-items:center;padding:10px 0;border-bottom:1px solid var(--border,#e2e8f0)}
.placement-skill-row>div:first-child{display:grid;gap:3px}.placement-skill-row span{font-size:.86rem;color:var(--muted,#64748b)}
.placement-progress{height:10px;border-radius:999px;background:#edf2f7;overflow:hidden}.placement-progress span{display:block;height:100%;background:linear-gradient(90deg,#2563eb,#0ea5e9);border-radius:inherit}.placement-progress.large{height:12px}
.placement-gap-list{display:grid;gap:10px;margin:10px 0 18px}.placement-gap-list>div{display:flex;justify-content:space-between;gap:12px;padding:12px;border:1px solid var(--border,#e2e8f0);border-radius:12px}
.placement-remedial-form{margin-top:18px}.placement-mock-card{margin-top:18px}.placement-mock-form .grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.code-note{margin-top:12px;padding:10px 12px;border-radius:10px;background:#f8fafc;color:#475569;font-size:.9rem}
.placement-passport-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.placement-passport-skill{border:1px solid var(--border,#e2e8f0);border-radius:14px;padding:16px}.placement-passport-top,.placement-passport-meta{display:flex;justify-content:space-between;gap:12px;align-items:center}.placement-passport-top{margin-bottom:12px}.placement-passport-meta{margin-top:9px}.placement-passport-meta span{font-size:.84rem;color:var(--muted,#64748b);text-align:right}
.placement-plan-row{display:flex;justify-content:space-between;gap:14px;align-items:center;padding:12px 0;border-bottom:1px solid var(--border,#e2e8f0)}.placement-plan-row>div:first-child{display:grid;gap:3px}.placement-plan-row>div:last-child{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.placement-plan-row span:not(.badge){font-size:.86rem;color:var(--muted,#64748b)}
.passport-note p{margin:.35rem 0 0;color:var(--muted,#64748b)}
@media(max-width:900px){.placement-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.placement-two-col,.placement-passport-grid{grid-template-columns:1fr}.placement-mock-form .grid{grid-template-columns:1fr 1fr}.placement-skill-row{grid-template-columns:1fr 100px}.placement-skill-row .placement-progress{grid-column:1/-1;grid-row:2}.placement-skill-row>strong{text-align:right}}
@media(max-width:620px){.placement-stat-grid,.placement-mock-form .grid{grid-template-columns:1fr}.placement-filter-form>div:first-child{min-width:100%}.placement-plan-row{align-items:flex-start;flex-direction:column}.placement-plan-row>div:last-child{justify-content:flex-start}.placement-passport-meta{align-items:flex-start;flex-direction:column}.placement-passport-meta span{text-align:left}}

/* Public SEO landing content — intentionally isolated from authenticated UI. */
.intro-learn-link{display:inline-flex;align-items:center;gap:8px;margin-top:20px;width:max-content;color:#b9d2ff;font-size:13px;font-weight:800}
.intro-learn-link:hover{color:#fff}
.public-seo-section{padding:64px 0;background:#fff;border-top:1px solid var(--border)}
.public-seo-soft{background:linear-gradient(180deg,#f8fbff 0%,#f4f7fb 100%)}
.public-section-heading{max-width:790px;margin-bottom:30px}
.public-section-heading h2{font-size:clamp(28px,3.2vw,38px);margin-bottom:12px}
.public-section-heading p{color:var(--muted);font-size:16px;line-height:1.75}
.public-feature-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.public-feature-card{background:#fff;border:1px solid var(--border);border-radius:18px;padding:22px;box-shadow:0 8px 24px rgba(16,24,40,.04)}
.public-feature-number{display:inline-flex;margin-bottom:14px;color:var(--primary);font-size:12px;font-weight:900;letter-spacing:.08em}
.public-feature-card h3{font-size:18px;margin-bottom:8px}
.public-feature-card p{color:var(--muted);font-size:14px;line-height:1.65}
.public-workflow-layout{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:54px;align-items:start}
.public-workflow-layout .public-section-heading{margin-bottom:0}
.public-workflow-list{list-style:none;display:grid;gap:12px;counter-reset:workflow}
.public-workflow-list li{display:grid;grid-template-columns:120px 1fr;gap:18px;align-items:start;padding:18px 20px;border:1px solid #dce6f5;border-radius:15px;background:#fff}
.public-workflow-list strong{color:var(--primary);font-size:15px}
.public-workflow-list span{color:#475467;font-size:14px;line-height:1.55}
.public-faq-layout{display:grid;grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr);gap:50px;align-items:start}
.public-faq-layout .public-section-heading{margin-bottom:0}
.public-faq-list{display:grid;gap:10px}
.public-faq-list details{border:1px solid var(--border);border-radius:14px;background:#fff;padding:0 18px}
.public-faq-list summary{cursor:pointer;padding:17px 0;font-weight:800;color:#25324a}
.public-faq-list p{padding:0 0 18px;color:var(--muted);font-size:14px;line-height:1.65}
@media(max-width:980px){.public-feature-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.public-workflow-layout,.public-faq-layout{grid-template-columns:1fr;gap:24px}}
@media(max-width:620px){.public-seo-section{padding:44px 0}.public-feature-grid{grid-template-columns:1fr}.public-workflow-list li{grid-template-columns:1fr;gap:4px;padding:16px}.intro-learn-link{width:auto}}

/* V119 public visual guides + auto-updating release feed */
.footer-identity{display:flex;flex-direction:column;gap:2px}.footer-links{display:flex;align-items:center;justify-content:flex-end;gap:16px;flex-wrap:wrap}.footer-links a{font-weight:800;color:#475467}.footer-links a:hover{color:var(--primary)}
.public-blog-hero,.public-guide-detail-hero,.public-update-detail-hero{padding:70px 0;background:radial-gradient(circle at 10% 0%,#dcecff,transparent 34%),linear-gradient(180deg,#fff 0%,#f7f9fc 100%);border-bottom:1px solid var(--border)}
.public-blog-hero.compact{padding:54px 0}.public-blog-hero-grid,.public-guide-detail-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(360px,.95fr);gap:42px;align-items:center}.public-blog-hero h1,.public-guide-detail-hero h1,.public-update-detail-hero h1{max-width:760px}.public-blog-hero p,.public-guide-detail-hero>div>div>p,.public-update-detail-wrap>p{max-width:760px;color:var(--muted);font-size:17px;line-height:1.7}.public-blog-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:24px}
.public-guide-preview,.public-guide-summary-card,.public-update-filter-card,.public-related-guide-card{background:#101828;color:#fff;border:1px solid #25324a;border-radius:24px;padding:26px;box-shadow:0 20px 50px rgba(16,24,40,.14)}.public-guide-preview-head{display:flex;justify-content:space-between;gap:16px;align-items:center;font-weight:900;margin-bottom:22px}.public-live-dot{display:inline-flex;align-items:center;gap:7px;font-size:11px;color:#b9d2ff;text-transform:uppercase;letter-spacing:.05em}.public-live-dot:before{content:"";width:8px;height:8px;border-radius:50%;background:#75e0a7}.public-mini-flow{display:grid;grid-template-columns:1fr auto 1fr auto 1fr;gap:8px;align-items:center;margin-top:10px}.public-mini-flow span{padding:12px 8px;border:1px solid #344054;border-radius:12px;background:#1d2939;text-align:center;font-size:12px;font-weight:800}.public-mini-flow b{color:#8bb6ff}.public-guide-preview p{color:#98a2b3;font-size:13px;line-height:1.6;margin-top:20px}
.public-guide-section{padding:68px 0;background:#fff}.public-guide-soft{background:#f7f9fc;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.public-heading-row{max-width:none;display:flex;justify-content:space-between;align-items:flex-end;gap:20px}.public-heading-row>div{max-width:790px}
.public-guide-card-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.public-guide-card{display:flex;flex-direction:column;min-height:100%;background:#fff;border:1px solid var(--border);border-radius:20px;padding:22px;box-shadow:0 8px 24px rgba(16,24,40,.04);transition:.18s ease}.public-guide-card:hover{transform:translateY(-3px);border-color:#b9d2ff;box-shadow:0 15px 34px rgba(16,24,40,.08)}.public-guide-card-top{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:18px}.public-guide-icon{display:inline-flex;width:42px;height:42px;align-items:center;justify-content:center;border-radius:13px;background:#101828;color:#fff;font-weight:900;font-size:12px;letter-spacing:.04em}.public-guide-icon.large{width:58px;height:58px;border-radius:17px;font-size:14px;margin-bottom:18px}.public-guide-card h3 a:hover,.public-update-card h3 a:hover,.public-update-row h2 a:hover{color:var(--primary)}.public-guide-card>p{color:var(--muted);font-size:14px;line-height:1.65;margin-bottom:16px}.public-audience-chips{display:flex;gap:5px;flex-wrap:wrap}.public-audience-chips span{display:inline-flex;border:1px solid #d8e6ff;background:#edf4ff;color:#174ea6;border-radius:999px;padding:4px 8px;font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.03em}.public-audience-large{margin-top:20px}.public-audience-large span{padding:6px 10px;font-size:11px}.public-guide-card-capabilities{display:flex;gap:6px;flex-wrap:wrap;margin-top:auto;padding-top:4px}.public-guide-card-capabilities span{background:#f7f9fc;border:1px solid var(--border);border-radius:999px;padding:5px 8px;color:#475467;font-size:11px;font-weight:700}.public-card-link{display:inline-flex;margin-top:18px;color:var(--primary);font-size:13px;font-weight:900}
.public-back-link{display:inline-flex;margin-bottom:26px;color:#475467;font-size:13px;font-weight:800}.public-back-link:hover{color:var(--primary)}.public-guide-summary-card h2{color:#fff}.public-guide-summary-card p,.public-related-guide-card p{color:#cbd5e1;line-height:1.65}.public-capability-list{display:grid;gap:8px;margin-top:20px}.public-capability-list span{display:block;padding:9px 10px;border-radius:10px;background:#1d2939;border:1px solid #344054;color:#eaecf0;font-size:13px;font-weight:700}
.public-workflow-visual{overflow:hidden;border:1px solid #dbe4f0;border-radius:24px;background:#f8fbff;box-shadow:0 14px 36px rgba(16,24,40,.06)}.public-workflow-toolbar{display:flex;justify-content:space-between;gap:16px;padding:14px 18px;background:#101828;color:#d0d5dd;font-size:12px;font-weight:800}.public-workflow-toolbar span:first-child{color:#fff}.public-workflow-nodes{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) auto minmax(0,1fr) auto minmax(0,1fr);gap:10px;align-items:stretch;padding:28px}.public-workflow-node{position:relative;background:#fff;border:1px solid var(--border);border-radius:17px;padding:20px}.public-workflow-step{position:absolute;right:14px;top:12px;color:#b9c4d4;font-size:12px;font-weight:900}.public-workflow-node small{display:block;color:var(--primary);font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.05em;margin-bottom:9px}.public-workflow-node h3{padding-right:25px}.public-workflow-node p{color:var(--muted);font-size:13px;line-height:1.6}.public-workflow-arrow{display:flex;align-items:center;justify-content:center;color:#8bb6ff;font-size:24px;font-weight:900}.public-visual-latest{display:grid;grid-template-columns:minmax(220px,.8fr) minmax(0,1.4fr) auto;gap:18px;align-items:center;padding:18px 22px;border-top:1px solid #dbe4f0;background:#fff}.public-visual-latest>div{display:grid;gap:3px}.public-visual-latest span{color:var(--primary);font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.05em}.public-visual-latest strong{font-size:13px}.public-visual-latest p{color:var(--muted);font-size:13px;line-height:1.55}.public-visual-latest a{color:var(--primary);font-size:12px;font-weight:900;white-space:nowrap}.public-visual-latest.muted-update{grid-template-columns:minmax(220px,.8fr) 1.7fr}.public-visual-latest.muted-update p{grid-column:auto}
.public-update-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.public-update-card{background:#fff;border:1px solid var(--border);border-radius:18px;padding:21px;box-shadow:0 8px 22px rgba(16,24,40,.04)}.public-update-meta{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px}.public-update-meta span{color:var(--primary);font-size:12px;font-weight:900}.public-update-meta time{color:var(--muted);font-size:11px;font-weight:700}.public-update-card p{color:var(--muted);font-size:14px;line-height:1.65;margin-bottom:14px}.public-highlight-list{margin:14px 0 0 18px;color:#475467;font-size:13px;line-height:1.7}
.public-update-filter-card strong{display:block;margin-bottom:12px}.public-filter-links{display:flex;gap:7px;flex-wrap:wrap}.public-filter-links a{padding:7px 10px;border:1px solid #344054;border-radius:999px;background:#1d2939;color:#d0d5dd;font-size:11px;font-weight:900}.public-filter-links a.active,.public-filter-links a:hover{background:#fff;color:#101828}.public-update-filter-card p{color:#98a2b3;font-size:12px;line-height:1.6;margin-top:16px}.public-update-filter-card code{color:#d1e0ff}
.public-update-timeline{display:grid;gap:0}.public-update-row{display:grid;grid-template-columns:120px minmax(0,1fr);gap:28px;padding:28px 0;border-bottom:1px solid var(--border)}.public-update-date{display:flex;align-items:flex-start}.public-update-date time{color:var(--muted);font-size:12px;font-weight:700}.public-update-row-body h2{margin:10px 0 8px}.public-update-row-body>p{max-width:850px;color:var(--muted);line-height:1.7}.public-empty-state{max-width:620px;margin:20px auto;text-align:center;padding:40px;border:1px solid var(--border);background:#fff;border-radius:20px}.public-empty-state p{color:var(--muted);margin-bottom:18px}
.public-update-detail-wrap{max-width:850px}.public-update-detail-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(300px,.8fr);gap:32px;align-items:start}.public-update-explainer>p{color:var(--muted);font-size:16px;line-height:1.75}.public-update-highlight-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:28px 0}.public-update-highlight-cards>div{display:grid;gap:10px;padding:18px;border:1px solid var(--border);border-radius:15px;background:#f8fbff}.public-update-highlight-cards span{color:var(--primary);font-size:11px;font-weight:900}.public-update-highlight-cards strong{font-size:14px;line-height:1.45}.public-safety-note{margin-top:28px;padding:18px;border-left:4px solid var(--primary);background:#f7f9fc;border-radius:0 14px 14px 0}.public-safety-note p{color:var(--muted);font-size:13px;line-height:1.6;margin-top:5px}.public-related-guide-card{position:sticky;top:96px}.public-related-guide-card .eyebrow{color:#8bb6ff}.public-related-guide-card h2{color:#fff}.public-related-guide-card .btn{margin-top:20px}
@media(max-width:1050px){.public-guide-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.public-update-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.public-workflow-nodes{grid-template-columns:1fr 1fr;gap:14px}.public-workflow-arrow{display:none}}
@media(max-width:820px){.public-blog-hero-grid,.public-guide-detail-grid,.public-update-detail-grid{grid-template-columns:1fr}.public-related-guide-card{position:static}.public-visual-latest{grid-template-columns:1fr}.public-visual-latest.muted-update{grid-template-columns:1fr}.public-heading-row{align-items:flex-start;flex-direction:column}.public-update-highlight-cards{grid-template-columns:1fr}.footer-links{justify-content:flex-start}}
@media(max-width:620px){.public-blog-hero,.public-guide-detail-hero,.public-update-detail-hero{padding:44px 0}.public-guide-section{padding:44px 0}.public-guide-card-grid,.public-update-grid{grid-template-columns:1fr}.public-workflow-toolbar{align-items:flex-start;flex-direction:column}.public-workflow-nodes{grid-template-columns:1fr;padding:18px}.public-update-row{grid-template-columns:1fr;gap:10px;padding:22px 0}.public-mini-flow{grid-template-columns:1fr}.public-mini-flow b{transform:rotate(90deg);text-align:center}.public-blog-actions .btn{width:auto}.footer-links{gap:10px 14px}}

/* Student multi-language code editor */
.code-editor-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:18px}.code-editor-heading p{margin:.35rem 0 0}.code-editor-card{padding:0;overflow:hidden}.code-editor-toolbar{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;padding:18px 20px;border-bottom:1px solid var(--border);background:#fff}.code-editor-toolbar label{display:grid;gap:6px;color:#344054;font-size:12px;font-weight:800}.code-editor-toolbar select{min-width:180px;margin:0}.code-workspace{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(300px,.75fr);min-height:540px;background:#101828}.code-side-panel{display:grid;grid-template-rows:minmax(180px,.7fr) minmax(260px,1fr);border-left:1px solid #344054}.code-pane{display:flex;min-width:0;flex-direction:column}.code-pane-title{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 14px;background:#1d2939;color:#f2f4f7;font-size:12px;font-weight:800}.code-pane-title small{color:#98a2b3}.code-pane textarea,.code-pane pre{width:100%;height:100%;min-height:0;margin:0;border:0;border-radius:0;resize:none;background:#101828;color:#e5e7eb;font:14px/1.65 Consolas,"Courier New",monospace;tab-size:4}.code-pane textarea{padding:18px}.code-pane textarea:focus{outline:2px solid #84adff;outline-offset:-2px}.code-input-pane{border-bottom:1px solid #344054}.code-input-pane textarea{min-height:140px;background:#0c1424}.code-output-pane pre{overflow:auto;padding:18px;white-space:pre-wrap;word-break:break-word;background:#07101f;color:#d0d5dd}.code-output-pane pre.code-output-success{color:#86efac}.code-output-pane pre.code-output-error{color:#fda4af}.code-clear-output{border:0;background:transparent;color:#84adff;font:inherit;cursor:pointer}.code-editor-note{margin:0;padding:12px 20px;border-top:1px solid #344054;background:#1d2939;color:#98a2b3;font-size:12px}.code-editor-toolbar .actions{margin:0}.code-editor-toolbar .btn:disabled{opacity:.6;cursor:wait}
.code-source-editor{display:grid;grid-template-columns:52px minmax(0,1fr);flex:1;min-height:0;background:#101828}.code-line-numbers{width:auto!important;height:100%;min-height:0;margin:0;overflow:hidden;padding:18px 10px;border-right:1px solid #344054;border-radius:0;background:#0c1424;color:#667085;text-align:right;white-space:pre;user-select:none;font:14px/1.65 Consolas,"Courier New",monospace}.code-source-input{position:relative;min-width:0;min-height:0}.code-source-input .code-bracket-layer,.code-source-input #code-source{position:absolute;inset:0;width:100%;height:100%;min-height:0;margin:0;padding:18px;border:0;border-radius:0;overflow:auto;white-space:pre;word-wrap:normal;font:14px/1.65 Consolas,"Courier New",monospace;tab-size:4}.code-source-input .code-bracket-layer{z-index:1;background:#101828;color:#e5e7eb;pointer-events:none}.code-source-input #code-source{z-index:2;resize:none;background:transparent;color:transparent;-webkit-text-fill-color:transparent;caret-color:#f9fafb}.code-source-input #code-source:focus{outline:2px solid #84adff;outline-offset:-2px}.code-source-input #code-source::selection{background:rgba(96,165,250,.36)}.code-matching-bracket{border-radius:2px;outline:1px solid #fbbf24;background:#854d0e;color:#fef3c7;font:inherit}
@media(max-width:900px){.code-workspace{grid-template-columns:1fr;min-height:0}.code-side-panel{grid-template-columns:1fr 1fr;grid-template-rows:360px;border-left:0;border-top:1px solid #344054}.code-input-pane{border-right:1px solid #344054;border-bottom:0}}
@media(max-width:650px){.code-editor-heading,.code-editor-toolbar{align-items:stretch;flex-direction:column}.code-editor-toolbar .actions{display:grid;grid-template-columns:1fr 1fr}.code-editor-toolbar select{width:100%}.code-workspace>.code-pane{min-height:440px}.code-side-panel{grid-template-columns:1fr;grid-template-rows:190px 280px}.code-input-pane{border-right:0;border-bottom:1px solid #344054}}
.mock-section-picker{max-width:1050px;margin:24px auto}.mock-section-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:22px}.mock-section-grid form{margin:0}.mock-section-card{width:100%;min-height:150px;text-align:left;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:8px;padding:22px;border-radius:16px}.mock-section-card strong{font-size:1.15rem}.mock-section-card span,.mock-section-card small{opacity:.9}.mock-technical-layout{display:grid;grid-template-columns:minmax(360px,.85fr) minmax(520px,1.15fr);gap:18px;align-items:start}.mock-question-column{min-width:0}.mock-code-column{position:sticky;top:16px;min-width:0}.embedded-code-editor{margin:0}.embedded-code-editor .code-workspace{grid-template-columns:minmax(0,1fr)}.embedded-code-editor .code-side-panel{display:grid;grid-template-columns:1fr 1fr}.embedded-code-editor .code-source-editor{min-height:420px}.embedded-code-editor #code-source,.embedded-code-editor #code-bracket-layer{min-height:420px}
.mock-technical-layout .exam-question{margin-bottom:12px}.mock-technical-nav{position:sticky;bottom:12px;z-index:8;margin-top:12px;padding:12px;border:1px solid #dbe3ef;border-radius:12px;background:rgba(255,255,255,.96);box-shadow:0 8px 22px rgba(16,24,40,.10)}.mock-code-column .embedded-code-editor .code-workspace{min-height:0}.mock-code-column .embedded-code-editor .code-source-editor{height:clamp(320px,43vh,430px);min-height:320px}.mock-code-column .embedded-code-editor #code-source,.mock-code-column .embedded-code-editor #code-bracket-layer{min-height:320px}.mock-code-column .embedded-code-editor .code-side-panel{grid-template-rows:clamp(220px,25vh,270px);min-height:220px}.mock-code-column .code-output-pane pre{font-size:15px;line-height:1.7}
@media(max-width:1050px){.mock-technical-layout{grid-template-columns:1fr}.mock-code-column{position:static}.mock-section-grid{grid-template-columns:1fr}}
.mock-question-entry-card{overflow:visible}.mock-entry-section-picker{margin-bottom:18px}.mock-entry-or{display:flex;align-items:center;gap:14px;margin:24px 0;color:#64748b;font-weight:800;font-size:.8rem;letter-spacing:.12em}.mock-entry-or::before,.mock-entry-or::after{content:"";height:1px;background:#dbe3ef;flex:1}.mock-entry-or span{padding:5px 10px;border:1px solid #dbe3ef;border-radius:999px;background:#f8fafc}.inline-csv-import h3{margin-top:0}.inline-csv-import form{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.inline-csv-import input[type=file]{flex:1;min-width:260px}
.mock-drive-settings{margin:18px 0 24px;padding:20px;border:1px solid #bfdbfe;border-radius:16px;background:#eff6ff}.mock-drive-settings h2,.mock-drive-settings h3{margin-top:0}.input-with-suffix{display:flex;align-items:center;gap:8px}.input-with-suffix input{min-width:0}.input-with-suffix span{font-weight:700;color:#475569}.mock-drive-student-schedule{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:16px 0}.mock-drive-student-schedule>div{padding:12px;border-radius:12px;background:#f8fafc;border:1px solid #dbe3ef}.mock-drive-student-schedule span{display:block;font-size:.78rem;color:#64748b}.mock-drive-student-schedule strong{display:block;margin-top:4px}.mock-student-messages{margin:16px 0;padding:13px 16px;border:1px solid #bfdbfe;border-radius:12px;background:#eff6ff;color:#1e3a8a}.mock-student-messages p{margin:0;font-weight:650}.mock-student-messages p+p{margin-top:7px;padding-top:7px;border-top:1px solid #dbeafe}.sequential-nav>.actions{margin:0}@media(max-width:720px){.mock-drive-student-schedule{grid-template-columns:1fr}}
.secure-exam-locked-card{display:flex;min-height:100vh;box-sizing:border-box;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:32px;text-align:center;background:#f8fafc;color:#101828}.secure-exam-locked-card h1{margin:0;font-size:clamp(2rem,5vw,3.5rem)}.secure-exam-locked-card p{max-width:700px;margin:0 0 10px;color:#475467;font-size:1.08rem;line-height:1.65}
.android-download[hidden]{display:none}
.android-file-actions{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-bottom:14px}.android-files .android-file-actions button{padding:8px;background:#123b73;color:#dbeafe;text-align:center;font-size:11px;font-weight:800}.android-file-group{display:grid;gap:3px;margin-bottom:13px}.android-file-group>b{padding:5px 10px;color:#667085;font-size:10px;text-transform:uppercase;letter-spacing:.06em}.android-selected-actions{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding-top:12px;border-top:1px solid #344054}.android-files .android-selected-actions button{padding:7px;background:#1d2939;color:#d0d5dd;text-align:center;font-size:11px}.android-files .android-selected-actions button:disabled{opacity:.35;cursor:not-allowed}.android-files>small{display:block;padding:10px 4px;color:#667085;font-size:10px;line-height:1.5}
.android-qr[hidden]{display:none}.android-install-options{display:flex;align-items:center;gap:22px;flex-wrap:wrap}.android-qr{display:flex;align-items:center;gap:14px;padding:12px;border:1px solid #344054;border-radius:14px;background:#101828}.android-qr img{width:150px;height:150px;padding:6px;border-radius:8px;background:#fff}.android-qr div{display:grid;gap:5px;max-width:220px}.android-qr strong{color:#fff}.android-qr small{line-height:1.5}@media(max-width:560px){.android-install-options{align-items:stretch;flex-direction:column}.android-download{align-self:flex-start}.android-qr{align-items:flex-start;flex-direction:column}.android-qr img{width:180px;height:180px}}

/* Browser-based Android Studio workspace */
.android-lab{padding:0;overflow:hidden}.android-toolbar{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;padding:18px 20px}.android-toolbar label{display:grid;gap:6px;font-size:12px;font-weight:800;color:#344054}.android-toolbar input{min-width:260px;margin:0}.android-flow{display:flex;align-items:center;justify-content:center;gap:12px;padding:11px 18px;border-block:1px solid var(--border);background:#f8fafc;color:#475467;font-size:12px;font-weight:800}.android-flow b{color:var(--primary)}.android-workspace{display:grid;grid-template-columns:270px minmax(0,1fr);min-height:560px;background:#101828}.android-files{padding:16px 10px;border-right:1px solid #344054;background:#0c1424;color:#d0d5dd}.android-files strong{display:block;padding:8px 10px 13px;color:#fff}.android-files button{width:100%;padding:10px;border:0;border-radius:7px;background:transparent;color:#98a2b3;text-align:left;cursor:pointer}.android-files button:hover,.android-files button.active{background:#1d2939;color:#fff}.android-editor-pane{display:flex;min-width:0;flex-direction:column}.android-editor-pane textarea{flex:1;min-height:520px;margin:0;padding:20px;border:0;border-radius:0;resize:none;background:#101828;color:#e5e7eb;font:14px/1.65 Consolas,"Courier New",monospace;tab-size:4}.android-result{display:grid;gap:12px;padding:18px 20px;border-top:1px solid #344054;background:#07101f;color:#fff}.android-result>div{display:flex;justify-content:space-between;gap:12px}.android-result small,.android-result p{color:#98a2b3}.android-result pre{max-height:220px;overflow:auto;margin:0;padding:14px;border:1px solid #344054;border-radius:10px;background:#101828;color:#86efac;white-space:pre-wrap}.android-download{justify-self:start}.android-result p{margin:0;font-size:13px}.android-toolbar .btn:disabled{opacity:.6;cursor:wait}@media(max-width:720px){.android-toolbar{align-items:stretch;flex-direction:column}.android-toolbar input{width:100%;min-width:0}.android-flow{align-items:flex-start;flex-direction:column}.android-flow b{display:none}.android-workspace{grid-template-columns:1fr}.android-files{display:flex;overflow:auto;border-right:0;border-bottom:1px solid #344054}.android-files strong{display:none}.android-files button{width:auto;white-space:nowrap}.android-editor-pane textarea{min-height:480px}.android-result>div{flex-direction:column}}
/* V2.58: experiment-specific student marks collection */
.student-window-form{display:grid;grid-template-columns:minmax(125px,auto) minmax(185px,1fr) minmax(185px,1fr) auto;gap:8px;align-items:center;min-width:650px}
.student-window-form small{grid-column:1/-1}
.student-window-form input[type="datetime-local"]{min-width:180px}
.practical-experiment-picker select{width:100%;max-width:900px}
.practical-student-marks-grid{grid-template-columns:repeat(4,minmax(145px,1fr));margin:14px 0}
@media(max-width:800px){.student-window-form{grid-template-columns:1fr;min-width:260px}.practical-student-marks-grid{grid-template-columns:1fr 1fr}}
