/* Unified administrative desktop workspace. Mobile portal assets are separate. */
#portal:has(.portal-top-nav){--workspace-accent:#145b81;--workspace-line:#d9e3ec;font-size:14px;background:#f3f6fa}
#portal:has(.portal-top-nav) main{padding:18px 22px 32px}
#portal:has(.portal-top-nav) .page-head{margin-bottom:15px;align-items:center}
#portal:has(.portal-top-nav) .page-head h1,#portal:has(.portal-top-nav) .exam-app h1{font-size:23px;letter-spacing:-.35px}
#portal:has(.portal-top-nav) h2{font-size:17px;line-height:1.4}
#portal:has(.portal-top-nav) h3{font-size:15px}
#portal:has(.portal-top-nav) input,#portal:has(.portal-top-nav) select{padding:9px 11px;border-radius:8px;min-height:38px;font-size:14px}
#portal:has(.portal-top-nav) .action,#portal:has(.portal-top-nav) .exam-app button{border-radius:8px;padding:8px 12px;font-size:13px;line-height:1.35;min-height:35px;border:1px solid #c8d8e5;background:#f7fafc;color:#27475f}
#portal:has(.portal-top-nav) .action:not(.secondary),#portal:has(.portal-top-nav) [data-ex=save],#portal:has(.portal-top-nav) [data-ex=publish]{background:#145b81;color:#fff;border-color:#145b81}
#portal:has(.portal-top-nav) button:hover:not(:disabled){filter:brightness(.97)}
#portal:has(.portal-top-nav) button:focus-visible,#portal:has(.portal-top-nav) summary:focus-visible{outline:3px solid #7fb7dd;outline-offset:2px}
#portal:has(.portal-top-nav) button:disabled{opacity:.5;cursor:default}
.workspace-breadcrumb{font-size:12px;color:#62778a;margin-bottom:10px}
.workspace-tabs{display:flex;flex-wrap:wrap;gap:6px;padding:5px 0 13px;border-bottom:1px solid #d9e3ec;margin-bottom:14px}
.workspace-tabs button{font:inherit;font-size:13px;padding:9px 14px;border:1px solid #c7d8e5;background:#fff;border-radius:8px;color:#365369;cursor:pointer}
.workspace-tabs button.active,#portal .exam-app .ex-tabs button.active{background:#145b81;color:#fff;border-color:#145b81}
.workspace-section{min-width:0}.workspace-section[hidden]{display:none!important}
.workspace-pager{display:flex;align-items:center;justify-content:flex-end;gap:8px;padding:11px 0;color:#536c80;font-size:12px}.workspace-pager>span{margin-right:auto}.workspace-pager button{padding:7px 13px;border:1px solid #cbd9e5;border-radius:7px;background:#fff;color:#365369}
.workspace-hint{padding:10px 13px;border-left:3px solid #84adcb;background:#edf5fb;color:#36546b;font-size:13px}
.workspace-archive-selector{max-width:520px;margin-bottom:12px}.workspace-archive-selector label{margin:0}.workspace-archive-selector select{width:100%}
#portal .archive-day[hidden]{display:none!important}#portal .archive-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:8px}
#portal .archive-days details{border:0;padding:0;margin:0}#portal .archive-days details>summary{display:none}
#portal .workspace-secondary-col{display:none}#portal .workspace-show-codes .workspace-secondary-col{display:table-cell}
#portal .ex-head{align-items:flex-start}.exam-app .ex-head>div:last-child{max-width:60%}
#portal .ex-table,#portal .table-wrap{border:1px solid #d9e3ec;border-radius:10px;max-height:65vh;overflow:auto;background:#fff}
#portal .ex-table th,#portal .table-wrap th{position:sticky;top:0;z-index:2;background:#eaf1f7;font-size:12px;white-space:normal}
#portal .ex-table td,#portal .table-wrap td{padding:9px 10px;font-size:13px;line-height:1.35;border-bottom:1px solid #e5ecf2}
#portal .ex-table tbody tr:nth-child(even),#portal .table-wrap tbody tr:nth-child(even){background:#f7fafd}
#portal .ex-table tbody tr:hover,#portal .table-wrap tbody tr:hover{background:#eef6fc}
#portal .cal-grid{max-height:70vh;overflow:auto}#portal .cal-grid table{min-width:1000px}#portal .cal-grid td,#portal .cal-grid th{padding:6px 4px;font-size:12px}
.paper-session{border:1px solid #d9e3ec;border-radius:9px;background:#fff;margin:9px 0}.paper-session>summary{cursor:pointer;padding:10px 13px;font-weight:700;color:#294d68}.paper-session>summary h3{display:inline;margin:0}.paper-session>.ex-table{margin:0 10px 10px}
#modal:has([data-wide-pdf]){width:min(1240px,95vw);max-width:95vw;height:92vh;max-height:92vh;border-radius:14px}#modal:has([data-wide-pdf]) form{padding:18px;height:100%;overflow:hidden}#modal:has([data-wide-pdf]) iframe{height:calc(92vh - 145px)!important;display:block;background:#e9eef3}
#portal .workspace-distribution .ex-selects{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:6px;align-items:start}
#portal .workspace-distribution details.ex-panel{margin-bottom:12px}
#portal .workspace-distribution .ex-panel{padding:15px;border:1px solid #d9e3ec;border-radius:11px;box-shadow:none}
#portal .quick-menu{gap:10px}#portal .quick-menu button{border-radius:12px;min-height:100px}
@media(max-width:1023px){.exam-app .ex-head>div:last-child{max-width:100%}.workspace-pager{flex-wrap:wrap}#portal .cal-grid table{min-width:850px}}
@media(prefers-reduced-motion:no-preference){.admin-workspace>.workspace-breadcrumb{animation:workspace-enter .12s ease-out}@keyframes workspace-enter{from{opacity:.3;transform:translateY(2px)}to{opacity:1;transform:translateY(0)}}}
@media print{.workspace-tabs,.workspace-pager,.workspace-breadcrumb{display:none!important}#portal .ex-table,#portal .table-wrap{max-height:none;overflow:visible}}
/* Compact administrator forms: useful widths rather than full-row fields. */
#portal:has(.portal-top-nav) main{padding:12px 18px 24px}
#portal:has(.portal-top-nav) .ex-head,#portal:has(.portal-top-nav) .page-head{margin-bottom:10px}
#portal:has(.portal-top-nav) .ex-tabs,#portal:has(.portal-top-nav) .native-tabs,#portal:has(.portal-top-nav) .work-tabs{display:flex;flex-wrap:wrap;gap:4px;margin:8px 0;padding:4px 0}
#portal:has(.portal-top-nav) .ex-tabs button,#portal:has(.portal-top-nav) .native-tabs button{padding:7px 10px;min-height:32px;font-size:13px}
#portal:has(.portal-top-nav) .ex-bar{justify-content:flex-start;align-items:end;gap:7px;margin:8px 0}
#portal:has(.portal-top-nav) .ex-bar>label{flex:0 1 250px;min-width:160px;margin:0}
#portal:has(.portal-top-nav) .ex-bar>input:not([type=checkbox]),#portal:has(.portal-top-nav) .ex-bar>select{width:240px;flex:0 1 240px;max-width:100%}
#portal:has(.portal-top-nav) .ex-panel{padding:10px 12px;margin:8px 0}
#portal:has(.portal-top-nav) .ex-small{margin:6px 0}
#portal:has(.portal-top-nav) .ex-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px}
#portal:has(.portal-top-nav) .module-card,#portal:has(.portal-top-nav) .native-card{padding:12px;margin:8px 0}
#portal:has(.portal-top-nav) .native-tools,#portal:has(.portal-top-nav) .toolbar{display:flex;flex-wrap:wrap;gap:7px;align-items:end;justify-content:flex-start}
#portal:has(.portal-top-nav) .native-tools>input,#portal:has(.portal-top-nav) .native-tools>select{flex:0 1 230px;width:230px;max-width:100%}
#portal:has(.portal-top-nav) .ex-table td{padding:7px 8px}
#portal .paper-upload-controls{display:grid;grid-template-columns:minmax(110px,160px) minmax(210px,1fr) auto auto;gap:8px;align-items:center;white-space:normal}
#portal .paper-upload-controls .ex-paper-upload{display:flex;align-items:center;gap:7px;font-size:12px;margin:0;white-space:nowrap}
#portal .paper-upload-controls input.ex-paper-file{width:220px;max-width:100%;min-width:100px;font-size:12px;padding:4px;min-height:30px}
#portal .paper-upload-controls button{white-space:nowrap;padding:7px 9px}
#portal .import-choice-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:10px 0}
#portal .import-choice-grid section{border:1px solid #d9e3ec;padding:12px;border-radius:9px;background:#fff}
#portal .import-choice-grid h3{margin:0 0 8px}#portal .import-choice-grid .action{margin:3px}
#portal .student-migration-summary{font-size:12px;color:#326e52;margin:8px 0}
#portal #responsibilityOriginalFrame,#portal #dutyOriginalFrame{height:max(620px,calc(100vh - 210px))!important;border-radius:9px!important}
@media(max-width:1050px){#portal .paper-upload-controls{grid-template-columns:1fr auto auto}#portal .paper-upload-controls>span{grid-column:1/-1}}
@media(max-width:700px){#portal .import-choice-grid{grid-template-columns:1fr}#portal .paper-upload-controls{grid-template-columns:1fr 1fr}#portal .paper-upload-controls .ex-paper-upload{grid-column:1/-1;flex-wrap:wrap}}

/* v205: clear navigation hierarchy and persistent exam actions. */
#portal:has(.portal-top-nav){background:#edf1f5;--workspace-accent:#173b60;--workspace-line:#c8d5e3}
#portal #nav.portal-top-nav>button,#portal .portal-nav-group>summary{background:#d7e4f2;border:1px solid #94afcb;color:#244b70}
#portal .portal-nav-group.active-group>summary,#portal .portal-nav-group[open]>summary,#portal #nav.portal-top-nav>button.active{background:#173b60;color:#fff;border-color:#173b60;box-shadow:0 2px 5px #173b6022}
#portal .portal-nav-group.active-group>summary::after,#portal .portal-nav-group[open]>summary::after{color:#fff}
#portal .portal-nav-group:not(.active-group):not([open])>summary:hover{background:#cbdff0;color:#173b60}
#portal .portal-nav-dropdown{border-color:#a9bfd6;box-shadow:0 10px 28px #173b602e}
#portal .exam-app>.ex-head{position:sticky;top:var(--exam-global-offset,0px);z-index:18;background:#fff;border:1px solid #c4d3e2;border-top:4px solid #173b60;border-radius:10px;padding:12px 14px;box-shadow:0 4px 12px #173b6014;align-items:center;gap:12px;margin-bottom:8px}
#portal .exam-app .ex-head>.ex-head-actions{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:7px;max-width:none;flex:1}
#portal:has(.portal-top-nav) .exam-app>.ex-tabs{position:sticky;top:calc(var(--exam-global-offset,0px) + var(--exam-head-height,90px));z-index:17;background:#dce6f0;border:1px solid #bdccdc;border-radius:9px;padding:6px;gap:6px;box-shadow:0 3px 8px #173b600c}
#portal:has(.portal-top-nav) .exam-app .ex-tabs button,#portal:has(.portal-top-nav) .exam-app .workspace-tabs button,#portal:has(.portal-top-nav) .exam-app .cal-toolbar button{background:#d1e1f1;color:#234d74;border:1px solid #8eabc7;font-weight:600;border-radius:7px}
#portal:has(.portal-top-nav) .exam-app .ex-tabs button.active,#portal:has(.portal-top-nav) .exam-app .workspace-tabs button.active,#portal:has(.portal-top-nav) .exam-app .cal-toolbar button.active{background:#173b60;color:#fff;border-color:#173b60;box-shadow:0 2px 4px #173b6022}
#portal:has(.portal-top-nav) .exam-app button:not(.active){background:#dceaf7;color:#234d74;border-color:#83a7c9}
#portal:has(.portal-top-nav) .exam-app button[data-tone=positive],#portal:has(.portal-top-nav) .exam-app button[data-ex=save]{background:#176849;color:#fff;border-color:#176849;font-weight:700}
#portal:has(.portal-top-nav) .exam-app button[data-tone=danger]{background:#fff0ef;color:#9d2935;border-color:#e3a9af}
#portal:has(.portal-top-nav) .exam-app button:focus-visible,#portal:has(.portal-top-nav) .exam-app summary:focus-visible{outline:3px solid #4688c8;outline-offset:2px}
#portal .exam-app .ex-session-context{position:static;background:#f6f9fc;border-color:#bacde0}
#portal .exam-app .ex-panel{border-color:#cbd7e4;box-shadow:0 1px 3px #173b6008}
#portal .exam-app .compact-action-menu{position:relative}
#portal .exam-app .compact-action-menu>summary{background:#e0eaf4;color:#244b70;border:1px solid #adc4dc;border-radius:7px;padding:8px 10px}
#portal .exam-app .compact-action-menu[open]>summary{background:#173b60;color:#fff;border-color:#173b60}
@media(max-width:700px){#portal .exam-app>.ex-head{position:static}#portal:has(.portal-top-nav) .exam-app>.ex-tabs{position:sticky;top:0}#portal .exam-app .ex-head>.ex-head-actions{justify-content:flex-start;flex-basis:100%}}
@media print{#portal .exam-app>.ex-head,#portal .exam-app>.ex-tabs{display:none!important}}

#portal .exam-app .cal-grid table{min-width:calc(460px + var(--cal-course-columns,4)*64px)}

#portal:has(.portal-top-nav) .exam-app .cal-grid td,#portal:has(.portal-top-nav) .exam-app .cal-grid th{vertical-align:middle;text-align:center;padding:6px 8px;font-size:11px}
#portal:has(.portal-top-nav) .exam-app .cal-grid input,#portal:has(.portal-top-nav) .exam-app .cal-grid select{height:32px;min-height:32px;padding:5px 6px;font-size:11px;border-radius:6px}
#portal:has(.portal-top-nav) .exam-app .cal-grid button{min-height:32px;padding:6px 9px;font-size:11px;white-space:nowrap}
#portal:has(.portal-top-nav) .exam-app .cal-grid .cal-cell-action button{min-height:18px;height:18px;padding:2px 5px;font-size:10px}

/* v206: compact exam workspace at normal browser zoom. */
#portal:has(.portal-top-nav) .exam-app{font-family:"Segoe UI",Arial,sans-serif;font-size:12px;font-weight:500;color:#142f47;line-height:1.3}
#portal:has(.portal-top-nav) .exam-app h1{font-size:20px;font-weight:700;letter-spacing:0}
#portal:has(.portal-top-nav) .exam-app h2{font-size:15px;font-weight:700;margin:0 0 7px}
#portal:has(.portal-top-nav) .exam-app h3{font-size:13px;font-weight:700;margin:0 0 6px}
#portal:has(.portal-top-nav) .exam-app label{font-size:11.5px;font-weight:600;color:#213e57}
#portal:has(.portal-top-nav) .exam-app .ex-small{font-size:11px;font-weight:500;color:#40576b;line-height:1.3}
#portal:has(.portal-top-nav) .exam-app input,#portal:has(.portal-top-nav) .exam-app select{font-family:inherit;font-size:12px;font-weight:600;color:#17344d;min-height:29px;padding:4px 6px;border-radius:5px;box-sizing:border-box}
#portal:has(.portal-top-nav) .exam-app button,#portal:has(.portal-top-nav) .exam-app .ex-tabs button,#portal:has(.portal-top-nav) .exam-app .workspace-tabs button,#portal:has(.portal-top-nav) .exam-app .cal-toolbar button{font-family:inherit;font-size:11.5px;font-weight:600;min-height:29px;padding:5px 8px;border-radius:5px;line-height:1.25}
#portal:has(.portal-top-nav) .exam-app .ex-panel{padding:9px 10px;margin:7px 0;border-radius:7px}
#portal:has(.portal-top-nav) .exam-app .ex-grid{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:6px}
#portal:has(.portal-top-nav) .exam-app .ex-bar{gap:6px;margin-bottom:7px}
#portal:has(.portal-top-nav) .exam-app .ex-table th,#portal:has(.portal-top-nav) .exam-app .ex-table td{padding:5px 6px;font-size:11.5px;line-height:1.25}
#portal:has(.portal-top-nav) .exam-app .ex-table th{font-weight:700;color:#193b58}
#portal:has(.portal-top-nav) .exam-app .ex-table td{font-weight:500;color:#18354e}
#portal:has(.portal-top-nav) .exam-app>.ex-head{padding:8px 10px;gap:8px;margin-bottom:6px;border-top-width:3px}
#portal:has(.portal-top-nav) .exam-app .ex-head-actions{gap:5px}
#portal:has(.portal-top-nav) .exam-app>.ex-tabs{gap:4px;padding:4px;margin:5px 0}
#portal:has(.portal-top-nav) .exam-app .cal-toolbar{gap:6px;margin-bottom:7px}
#portal:has(.portal-top-nav) .exam-app .ex-session-context{padding:7px 9px;gap:8px;margin:6px 0 8px;font-size:11.5px}
#portal:has(.portal-top-nav) .exam-app .ex-session-context label{min-width:200px}
#portal:has(.portal-top-nav) .exam-app .ex-session-context select{width:300px}
#portal:has(.portal-top-nav) .exam-app .cal-grid table{width:100%;min-width:calc(460px + var(--cal-course-columns,4)*64px);table-layout:fixed}
#portal:has(.portal-top-nav) .exam-app .cal-grid th{height:38px;font-size:10px;font-weight:700;letter-spacing:0;padding:5px 3px;line-height:1.15}
#portal:has(.portal-top-nav) .exam-app .cal-grid td{padding:4px 3px;font-size:10.5px;font-weight:600;line-height:1.2}
#portal:has(.portal-top-nav) .exam-app .cal-grid .cal-cell{grid-template-rows:22px 12px 26px 16px;gap:1px;min-height:79px}
#portal:has(.portal-top-nav) .exam-app .cal-grid .cal-course-label{max-height:22px;font-size:10.5px;font-weight:650;line-height:1.05;color:#16334c}
#portal:has(.portal-top-nav) .exam-app .cal-grid .cal-categories,#portal:has(.portal-top-nav) .exam-app .cal-grid .cal-category{font-size:9px;font-weight:600;line-height:1.1;color:#41566b}
#portal:has(.portal-top-nav) .exam-app .cal-grid input,#portal:has(.portal-top-nav) .exam-app .cal-grid select{min-height:26px;height:26px;font-size:10.5px;font-weight:600;padding:3px 3px;color:#17344d;border-radius:4px}
#portal:has(.portal-top-nav) .exam-app .cal-grid button{min-height:26px;padding:4px 5px;font-size:10.5px;font-weight:600}
#portal:has(.portal-top-nav) .exam-app .cal-grid .cal-cell-action button{min-height:16px;height:16px;padding:1px 3px;font-size:9px}
#portal:has(.portal-top-nav) .exam-app .cal-grid .cal-staff-names{font-size:10px;font-weight:600;line-height:1.2;margin-bottom:4px}
#portal:has(.portal-top-nav) .exam-app .cal-grid col:first-child{width:112px!important}
#portal:has(.portal-top-nav) .exam-app .cal-grid col:nth-child(2){width:80px!important}
#portal:has(.portal-top-nav) .exam-app .cal-grid col:nth-child(3){width:84px!important}
#portal:has(.portal-top-nav) .exam-app .cal-grid col:nth-child(4){width:112px!important}
#portal:has(.portal-top-nav) .exam-app .cal-grid col:last-child{width:72px!important}
#portal:has(.portal-top-nav) .exam-app .ex-selects{gap:5px}
#portal:has(.portal-top-nav) .exam-app .ex-selects label{padding:4px 6px}
#portal:has(.portal-top-nav) .exam-app .ex-report-groups{gap:8px}
#portal:has(.portal-top-nav) .exam-app .ex-report-list{gap:5px}

body:has(.exam-app .ex-head-actions) #modal{font-family:"Segoe UI",Arial,sans-serif;font-size:12px;color:#17344d}
body:has(.exam-app .ex-head-actions) #modal label{font-size:11.5px;font-weight:600;color:#213e57}
body:has(.exam-app .ex-head-actions) #modal input:not([type=checkbox]):not([type=radio]),body:has(.exam-app .ex-head-actions) #modal select,body:has(.exam-app .ex-head-actions) #modal textarea{font-family:inherit;font-size:12px;font-weight:600;color:#17344d;min-height:28px;padding:4px 6px;box-sizing:border-box}
body:has(.exam-app .ex-head-actions) #modal th,body:has(.exam-app .ex-head-actions) #modal td{padding:5px 6px;font-size:11.5px}
body:has(.exam-app .ex-head-actions) #modal button{font-size:11.5px;font-weight:600;min-height:29px;padding:5px 8px}
body:has(.exam-app .ex-head-actions) #modal button.primary{background:#176849;border-color:#176849;color:#fff}

/* v207: the interactive selection is primary; its repeated result is secondary. */
#portal:has(.portal-top-nav) .exam-app select{background:#fff;border:1px solid #7797b7;color:#133750;font-size:12px;font-weight:600;box-shadow:0 1px 2px #173b6010}
#portal:has(.portal-top-nav) .exam-app select:hover{border-color:#356c9e;background:#f7fbff}
#portal:has(.portal-top-nav) .exam-app select:focus{outline:2px solid #3178b8;outline-offset:1px;border-color:#3178b8;background:#fff}
#portal:has(.portal-top-nav) .exam-app .cal-grid .cal-cell{grid-template-rows:12px 10px 32px 16px;gap:1px;min-height:73px}
#portal:has(.portal-top-nav) .exam-app .cal-grid .cal-course-label{display:block;margin:0;max-height:12px;line-height:12px;font-size:8.5px;font-weight:400;color:#64788a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:center}
#portal:has(.portal-top-nav) .exam-app .cal-grid .cal-categories,#portal:has(.portal-top-nav) .exam-app .cal-grid .cal-category{font-size:8px;font-weight:400;color:#708296;line-height:10px}
#portal:has(.portal-top-nav) .exam-app .cal-grid select{height:32px;min-height:32px;padding:4px 4px;font-size:11.5px;font-weight:650;color:#123851;background:#fff;border:1px solid #6489ae;border-radius:5px;box-shadow:0 1px 3px #173b6014}
body:has(.exam-app .ex-head-actions) #modal select{background:#fff;border:1px solid #7797b7;font-size:12px;font-weight:600;color:#133750}
body:has(.exam-app .ex-head-actions) #modal select:focus{outline:2px solid #3178b8;outline-offset:1px}
