/* Compact desktop login. Content remains reachable at high zoom or short heights. */
@media (min-width: 761px) {
    .login-shell { min-height:100svh; }
    .story-panel { padding:28px 42px 24px; }
    .story-content { padding:22px 0; max-width:420px; }
    .story-content h1 { font-size:clamp(29px,2.8vw,40px); line-height:1.15; margin:18px 0; }
    .story-content > p { font-size:12px; line-height:1.7; max-width:340px; }
    .record-illustration { margin-top:22px; padding:16px 20px; max-width:390px; }
    .illustration-top { padding-bottom:12px; }
    .process-step { padding:12px 0; }
    .login-panel { padding:26px 42px 22px; }
    .login-main { padding:22px 0; }
    .welcome-icon { width:40px; height:40px; margin-bottom:18px; }
    .login-main h2 { font-size:30px; margin:10px 0 8px; }
    .login-description { margin-bottom:23px; font-size:12px; }
    .field { margin-bottom:16px; }
    .login-form .field input { height:45px; }
    .password-toggle { top:4px; }
    .session-note { margin-bottom:18px; }
    .login-form .primary-button { height:45px; }
    .help { margin-top:17px; }
    .access-note { margin-top:24px; }
}
@media (min-width:761px) and (max-height:700px) {
    .story-panel { padding:16px 35px; }
    .story-content { padding:10px 0; }
    .story-content h1 { font-size:30px; margin:13px 0; }
    .story-content > p { margin:10px 0; }
    .record-illustration { margin-top:15px; padding:12px 16px; }
    .process-step { padding:9px 0; }
    .login-panel { padding:16px 35px; }
    .login-main { padding:14px 0; }
    .welcome-icon { margin-bottom:12px; width:34px; height:34px; }
    .login-description { margin-bottom:18px; }
    .access-note { margin-top:18px; }
}
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.appbar { background:#fff; border-bottom:1px solid #e3e8e2; display:flex; align-items:center; gap:30px; padding:12px 30px; position:sticky; top:0; z-index:20; min-height:68px; }
.app-brand { display:flex; align-items:center; gap:10px; text-decoration:none; white-space:nowrap; font-size:19px; letter-spacing:-.5px; color:#657269; }
.app-brand strong { color:#264b3d; font-weight:600; }
.main-navigation { display:flex; align-items:center; gap:5px; }
.main-navigation > a,.nav-dropdown > summary { padding:11px 13px; text-decoration:none; font-size:13px; border-radius:8px; color:#526158; white-space:nowrap; }
.main-navigation > a:hover,.nav-dropdown > summary:hover { background:#f2f5ef; }
.main-navigation > a[aria-current="page"] { color:#214c38; background:#eaf1e4; font-weight:600; }
.nav-dropdown { position:relative; }
.nav-dropdown > summary { list-style:none; cursor:pointer; display:flex; align-items:center; gap:9px; }
.nav-dropdown > summary::-webkit-details-marker { display:none; }
.nav-dropdown-panel { position:absolute; top:calc(100% + 10px); left:0; min-width:205px; border:1px solid #e0e6dc; background:#fff; padding:8px; border-radius:12px; box-shadow:0 12px 35px #1b38261a; }
.nav-dropdown-panel a,.nav-dropdown-panel button { display:block; width:100%; padding:12px; text-align:left; background:transparent; border:0; border-radius:6px; color:#354d3d; text-decoration:none; font-size:13px; }
.nav-dropdown-panel a:hover,.nav-dropdown-panel button:hover { background:#f1f5ed; }
.appbar-actions { display:flex; align-items:center; gap:16px; margin-left:auto; }
.session-picker { display:flex; align-items:center; gap:8px; }
.session-picker label { font-size:11px; color:#68786a; }
.session-picker select { border:1px solid #dfe5d9; padding:9px 10px; border-radius:7px; background:#fafcf7; color:#324e39; font:inherit; font-size:12px; }
.session-apply { padding:9px; border:1px solid #dfe5d9; background:white; color:#3d5944; border-radius:7px; font-size:11px; }
.account-dropdown > summary { padding:0; }
.account-avatar { display:grid; place-items:center; width:36px; height:36px; border-radius:50%; background:#214b3c; color:white; font-size:13px; }
.account-dropdown .nav-dropdown-panel { right:0; left:auto; }
.account-dropdown strong,.account-dropdown small { display:block; padding:8px 12px 0; font-size:12px; }
.account-dropdown small { font-size:10px; color:#68786a; padding-bottom:10px; }
.menu-toggle { display:none; background:transparent; border:0; font-size:23px; color:#36523f; }
.session-unavailable { font-size:11px; color:#806321; }
.admin-main { padding-top:45px; padding-bottom:60px; }
.admin-main h1 { font-size:32px; font-weight:550; letter-spacing:-1px; }
.admin-grid { display:grid; grid-template-columns:minmax(280px,380px) minmax(0,1fr); gap:26px; align-items:start; margin-top:30px; }
.admin-card { background:white; padding:26px; border:1px solid var(--line); border-radius:12px; min-width:0; }
.admin-card h2 { font-size:18px; margin:0 0 23px; font-weight:550; }
.success-notice { padding:16px 20px; background:#eaf4e5; border:1px solid #c6dfb8; border-radius:8px; font-size:13px; line-height:1.7; }
.session-list > div { display:flex; justify-content:space-between; padding:18px 0; border-bottom:1px solid var(--line); }
.session-list strong { font-size:15px; font-weight:550; }
.session-list span { color:#71806e; font-size:12px; }
@media(max-width:1500px) {
    .appbar { gap:15px; padding:12px 20px; flex-wrap:wrap; }
    .menu-toggle { display:block; order:-1; }
    .main-navigation { display:none; order:4; width:100%; flex-wrap:wrap; border-top:1px solid #e5eade; padding-top:12px; }
    .main-navigation.is-open { display:flex; }
    .appbar-actions { gap:10px; }
}
@media(max-width:600px) {
    .appbar { padding:10px 14px; gap:10px; }
    .app-brand { font-size:16px; gap:7px; }
    .app-brand img { width:30px; height:30px; }
    .session-picker label,.session-apply { display:none; }
    .session-picker select { padding:8px 5px; font-size:11px; max-width:90px; }
    .account-avatar { width:31px; height:31px; }
    .main-navigation { align-items:stretch; flex-direction:column; }
    .main-navigation .nav-dropdown-panel { position:static; box-shadow:none; margin-top:5px; }
    .admin-grid { grid-template-columns:1fr; }
    .admin-card { padding:20px; }
}
/* Menus overlay the page; opening them never changes the content position. */
.appbar { z-index:100; min-height:60px; padding-top:8px; padding-bottom:8px; flex-wrap:nowrap; }
.workspace { max-width:1440px; padding:18px 28px; }
.workspace-main,.import-main,.admin-main { padding:8px 0 28px; }
.workspace-main h1 { font-size:25px; margin:8px 0 12px; }
.ready-panel { margin:18px 0; padding:16px; }
.nav-dropdown-panel { display:block; opacity:0; visibility:hidden; transform:translateY(-5px); transition:opacity .18s,transform .18s,visibility .18s; z-index:110; }
.nav-dropdown[open] .nav-dropdown-panel { opacity:1; visibility:visible; transform:translateY(0); }
.nav-dropdown.closing .nav-dropdown-panel,.nav-dropdown.opening .nav-dropdown-panel { opacity:0; visibility:hidden; transform:translateY(-5px); }
.details-dialog { width:min(850px,94vw); max-height:85svh; border:1px solid var(--line); border-radius:14px; padding:24px; color:var(--ink); }
.details-dialog::backdrop { background:#122e2766; }
.details-dialog > form { text-align:right; }
.fields-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px 24px; }
.fields-grid > div { min-width:0; }
@media(max-width:1500px) {
 .main-navigation { display:flex; position:absolute; top:100%; left:12px; width:min(350px,calc(100vw - 24px)); flex-direction:column; align-items:stretch; padding:10px; background:#fff; border:1px solid var(--line); border-radius:10px; box-shadow:0 16px 35px #173c2526; opacity:0; visibility:hidden; transform:translateY(-6px); transition:opacity .18s,transform .18s,visibility .18s; }
 .main-navigation.is-open { opacity:1; visibility:visible; transform:translateY(0); }
 .main-navigation .nav-dropdown-panel { position:absolute; left:0; top:100%; width:100%; box-shadow:0 12px 25px #173c2526; }
}
@media(max-width:600px) { .workspace { padding:12px; } .fields-grid { grid-template-columns:1fr; } }
.student-filters { display:flex; align-items:end; flex-wrap:wrap; gap:12px; margin:18px 0; }
.student-filters label,.edit-fields label,.review-note { display:block; font-size:12px; font-weight:600; }
.student-filters input,.student-filters select,.edit-fields input,.review-note input,.review-note select,.review-note textarea { display:block; width:100%; min-height:38px; margin-top:7px; padding:9px; background:white; color:var(--ink); border:1px solid var(--line); border-radius:6px; font:inherit; font-weight:400; }
.student-heading { display:flex; justify-content:space-between; align-items:center; gap:16px; margin:15px 0; }
.student-heading p { font-size:12px; color:var(--muted); }
.review-layout { display:grid; grid-template-columns:minmax(0,1.7fr) minmax(300px,1fr); gap:20px; align-items:start; }
.edit-fields { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:15px; }
.edit-fields small { display:block; margin-top:8px; color:var(--muted); font-weight:400; }
.review-sidebar { display:grid; gap:20px; }
.review-note { margin:16px 0; }
.review-note textarea { min-height:70px; resize:vertical; }
.document-row { display:flex; justify-content:space-between; align-items:center; padding:10px 0; border-bottom:1px solid var(--line); font-size:13px; }
.document-row small { display:block; color:var(--muted); font-size:10px; margin-top:5px; }
.document-image { display:block; max-width:100%; height:auto; margin:auto; }
@media(max-width:1000px) { .review-layout { grid-template-columns:1fr; } }
@media(max-width:600px) { .edit-fields { grid-template-columns:repeat(2,minmax(0,1fr)); } .student-heading { align-items:start; flex-direction:column; } }
.source-grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:12px; }
.source-grid dd { font-size:13px; padding-top:5px; }
.review-layout { margin-top:20px; }
.review-sections { display:grid; gap:18px; }
.review-sections .edit-fields { grid-template-columns:repeat(2,minmax(0,1fr)); }
.document-gallery { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.document-thumb { background:#f8faf5; border:1px solid var(--line); border-radius:8px; padding:8px; text-align:left; font-size:12px; color:var(--ink); }
.document-thumb img { width:100%; height:110px; object-fit:contain; background:white; }
.document-thumb span,.document-thumb small { display:block; margin-top:5px; }
.changed-cell,.missing-subject { background:#fff0b8; color:#694500; padding:5px 8px; border-radius:4px; }
.subject-alert { background:#fff0b8; padding:10px 28px; font-size:12px; }
.change-before { text-decoration:line-through; color:#8b4545; }
@media(max-width:760px) { .source-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }

.verification-link,.message-preview { overflow-wrap:anywhere; font-size:13px; line-height:1.8; background:#f1f5ec; padding:14px; border-radius:8px; }

.identity-strip{position:sticky;top:var(--appbar-height,68px);z-index:15;display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) minmax(130px,.7fr);gap:18px;background:#fff1bf;border:1px solid #dfca82;border-radius:10px;padding:15px 20px;margin:16px 0;box-shadow:0 5px 15px #2a352817}
.identity-strip span{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.7px;color:#785d16;margin-bottom:6px}.identity-strip strong{font-size:14px;overflow-wrap:anywhere}
.comparison-panel{background:#fffaf0;border:1px solid #eee0b6;border-radius:10px;padding:18px 24px;margin:18px 0}.comparison-panel h2{font-size:16px;margin:0 0 12px}.comparison-panel ul{color:#9b392b;font-size:13px;line-height:1.9;padding-left:18px}.comparison-panel p{font-size:13px;color:#277246}
.edit-fields .save-indicator{display:block;color:#238445;font-size:11px;min-height:18px;padding-top:5px}.edit-fields .save-indicator.save-error{color:#af332b}.government-card{margin:24px 0;border-top:4px solid #5283b9;background:#f7faff}.government-card summary{font-size:13px;color:#31577e;padding:12px 0}
.search-workspace{max-width:1600px}.search-filters{display:grid;grid-template-columns:minmax(120px,.8fr) minmax(240px,2fr) repeat(3,minmax(120px,.8fr)) auto;gap:16px;background:linear-gradient(120deg,#e5f1ff,#edf5df);border:1px solid #cddfd7;padding:22px;border-radius:16px;margin:24px 0}.search-filters label{color:#214d50;font-weight:600}.search-filters input,.search-filters select{background:white;border-color:#b9cfc5}.student-results{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.student-result{display:flex;flex-direction:column;gap:10px;padding:22px;border:1px solid #d5e3d8;border-left:4px solid #527f68;border-radius:12px;background:white;text-decoration:none;transition:background .18s,box-shadow .18s}.student-result:hover{background:#f1f7eb;box-shadow:0 4px 15px #1c493314}.student-result strong{font-size:15px}.student-result span{font-size:12px;color:#65746a}[aria-busy="true"]{opacity:.6}
@media(max-width:1100px){.search-filters{grid-template-columns:repeat(3,minmax(0,1fr))}.student-results{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.identity-strip{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:12px}.identity-strip strong{font-size:12px}.identity-strip span{font-size:9px}.search-filters{grid-template-columns:1fr 1fr;padding:16px}.search-filters label:nth-child(2){grid-column:1/-1;grid-row:1}.student-results{grid-template-columns:1fr}.review-sections .edit-fields{grid-template-columns:1fr}}
[hidden]{display:none!important}

.udise-upload .import-fields{grid-template-columns:minmax(150px,.8fr) minmax(250px,2fr) auto;align-items:end}.udise-upload button{min-height:38px}@media(max-width:760px){.udise-upload .import-fields{grid-template-columns:1fr}}

.identity-strip{grid-template-columns:minmax(105px,.6fr) repeat(3,minmax(0,1fr)) minmax(145px,.8fr);gap:12px}
.identity-value{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.identity-strip .identity-checks{display:inline-flex;gap:5px;margin:0;white-space:nowrap}.identity-strip .match-badge{display:inline-grid;place-items:center;width:21px;height:21px;border-radius:50%;margin:0;font-size:15px;font-weight:800;letter-spacing:0}
.identity-strip .udise-match{color:#16723b}.identity-strip .school-match{color:#145fb2}.match-badge.udise-match{background:#e3f5e7}.match-badge.school-match{background:#e4efff}.match-badge.not-matched{outline:1px solid currentColor}
.identity-strip .match-legend{grid-column:1/-1;display:flex;align-items:center;flex-wrap:wrap;gap:6px 14px;border-top:1px solid #decf94;padding-top:7px}.identity-strip .match-legend span{margin:0;font-size:10px;text-transform:none;letter-spacing:0}
.source-grid .mismatch-value{background:#fff0e8;border:1px solid #d97b5d;border-radius:7px;padding:9px}.mismatch-note{font-size:10px;color:#a13620}.edit-fields input.mismatch-field{border-color:#cb6a4f;background:#fff4ef}
@media(max-width:900px){.identity-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.identity-admission{grid-column:1/-1;display:flex;gap:10px;align-items:center}.identity-admission span{margin:0}.identity-strip .match-legend{font-size:9px}.identity-strip .match-legend span:last-child{display:none}}
.report-counts{display:flex;flex-wrap:wrap;gap:10px;margin:20px 0}.report-counts>span{padding:16px;border:1px solid #ccd5cf;border-radius:10px}.report-counts strong{font-size:22px;margin-left:10px}.report-good{background:#e4f3e8}.report-bad{background:#fbe2e2}.report-confirmed{background:#e4efff}.report-record{padding:20px;margin:16px 0;border:1px solid #d5dbd7;border-radius:12px}.report-record h2{font-size:17px}.report-details{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;background:#ffffffb0;padding:12px}.report-details dt{font-size:11px;color:#52645b}.report-details dd{margin:4px 0;overflow-wrap:anywhere;font-size:13px}.report-record small{font-size:12px;margin-left:15px}@media(max-width:700px){.report-details{grid-template-columns:repeat(2,minmax(0,1fr))}}@media print{@page{size:A4 landscape;margin:12mm}.appbar,.subject-alert,.no-print,.skip-link{display:none!important}.workspace,.workspace-main{margin:0;padding:0;max-width:none}.report-record{border-radius:0;break-before:page;print-color-adjust:exact;-webkit-print-color-adjust:exact}.report-details{grid-template-columns:repeat(4,minmax(0,1fr))}.report-details>div{break-inside:avoid}.report-counts{print-color-adjust:exact;-webkit-print-color-adjust:exact}details{display:block}}
.student-call-panel{display:flex;flex-wrap:wrap;align-items:center;gap:14px;background:#e9f4eb;padding:14px;border-radius:12px;margin:16px 0}.student-call-panel p{margin:0}.reports-workspace .student-filters{display:flex;flex-wrap:wrap;align-items:end;gap:12px}.reports-workspace .student-filters>label{flex:1 1 140px}.reports-workspace .report-record{overflow-wrap:anywhere}@media(max-width:700px){.reports-workspace .student-filters>label{flex:1 1 42%;min-width:0}.reports-workspace .student-filters>button{flex:1 1 42%;min-width:0}.reports-workspace .report-counts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.reports-workspace .report-counts>span{padding:12px;font-size:12px}.reports-workspace .report-counts strong{display:block;font-size:23px;margin:5px 0 0}.report-record h2{line-height:1.5}.report-record small{display:block;margin:4px 0}.student-call-panel .primary-button{width:100%;text-align:center}}

/* Full-height overlay drawer on every screen size. */
.appbar {z-index:200;isolation:isolate}
.menu-toggle{display:block;order:-1;cursor:pointer;padding:6px}
.main-navigation{position:fixed!important;inset:0 auto 0 0!important;width:min(360px,100vw)!important;height:100dvh!important;max-height:100dvh!important;box-sizing:border-box;display:flex!important;flex-direction:column;align-items:stretch;flex-wrap:nowrap!important;gap:6px;padding:18px 18px calc(24px + env(safe-area-inset-bottom))!important;background:#fff;border:0;box-shadow:12px 0 60px #122d3c33;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:none;z-index:220;visibility:hidden;opacity:0;transform:translateX(-100%)!important;transition:transform .22s ease,opacity .22s,visibility .22s}
.main-navigation::-webkit-scrollbar{display:none}
.main-navigation.is-open{visibility:visible;opacity:1;transform:translateX(0)!important}
.drawer-heading{display:flex;justify-content:space-between;align-items:center;padding:10px 10px 22px;color:#183e51;font-size:21px}
.drawer-heading button{border:0;background:#eef3f7;border-radius:50%;width:38px;height:38px;font-size:25px;color:#28445b;cursor:pointer}
.main-navigation a{display:block;padding:12px 14px;text-decoration:none;color:#40576a;border-radius:9px;font-size:14px;white-space:normal}
.main-navigation a:hover,.main-navigation a[aria-current=page]{background:#e9f4ef;color:#185c44}
.nav-group{border-top:1px solid #edf0f4;padding-top:6px;flex-shrink:0}
.nav-group summary{padding:14px 12px;font-weight:600;color:#25485d;cursor:pointer;font-size:14px;list-style:none;display:flex;justify-content:space-between}
.nav-group summary:after{content:'+'}.nav-group[open] summary:after{content:'−'}
.nav-group>div{padding-left:10px;border-left:2px solid #d8eae1;margin:0 10px 10px}
.drawer-backdrop{position:fixed;inset:0;border:0;border-radius:0;background:#10293d66;z-index:190;width:100%;height:100%;cursor:pointer}
body.navigation-open{overflow:hidden}
@media(prefers-reduced-motion:reduce){.main-navigation{transition:none}}

