/* RC5: approved workspace finish. Existing routes, permissions and forms remain authoritative. */
:root { --workspace-ink:#171717; --workspace-muted:#575757; --workspace-line:#dedede; --workspace-paper:#fff; --workspace-ground:#f5f5f5; --workspace-action:#111111; }
body:has(.shell) { background:var(--workspace-ground); color:var(--workspace-ink); font-family:'Montserrat',Arial,Helvetica,sans-serif; font-size:1rem; line-height:1.5; }
.shell { display:grid; grid-template-columns:minmax(0,1fr); grid-template-rows:auto 1fr; min-height:100vh; }
.sidebar { background:var(--workspace-paper); color:var(--workspace-ink); display:grid; grid-template-columns:150px minmax(0,1fr) 175px; align-items:center; gap:24px; padding:18px max(24px,calc((100vw - 1360px)/2)); border-bottom:1px solid var(--workspace-line); min-width:0; }
.sidebar .logo { width:145px; }
.sidebar > div > .eyebrow { display:none; }
.sidebar .nav { display:flex; flex-wrap:wrap; align-items:start; gap:4px; min-width:0; }
.sidebar .nav a,.sidebar .nav-group summary { color:var(--workspace-muted); padding:9px 11px; font-size:.875rem; border-radius:6px; line-height:1.5; }
.sidebar .nav a.active,.sidebar .nav a:hover,.sidebar .nav-group summary:hover,.sidebar .nav-group[open] summary { background:#ededed; color:var(--workspace-ink); }
.sidebar .nav a.active { font-weight:600; }
.sidebar .nav-group-primary { border:0; margin:0; padding:0; }
.sidebar .nav-group a { margin:3px 0; }
.sidebar .nav-group-primary { position:relative; }
.sidebar .nav-group-primary.active > summary { color:var(--workspace-ink); font-weight:600; }
.sidebar .nav-group-menu { display:none; position:absolute; top:calc(100% + 6px); right:0; z-index:50; width:250px; max-width:calc(100vw - 32px); max-height:min(65vh,460px); overflow-y:auto; padding:6px; border:1px solid var(--workspace-line); border-radius:8px; background:var(--workspace-paper); box-shadow:0 8px 24px rgb(0 0 0 / .1); }
.sidebar .nav-group-primary[open] > .nav-group-menu { display:grid; gap:2px; }
.sidebar .nav-group-menu a { margin:0; }
.sidebar .sidebar-bottom { margin:0; gap:4px; text-align:right; min-width:0; }
.sidebar .account { display:grid; gap:1px; overflow-wrap:anywhere; font-size:.8125rem; }
.sidebar .account strong { color:var(--workspace-ink); }
.sidebar .account span { color:var(--workspace-muted); font-size:.75rem; }
.sidebar .account-settings-link { color:var(--workspace-muted); font-size:.75rem; }
.sidebar #logoutButton { justify-self:end; background:transparent; color:var(--workspace-ink); border:1px solid var(--workspace-line); padding:5px 10px; min-height:32px; font-size:.75rem; }
.shell .main { width:100%; max-width:1360px; min-width:0; margin:0 auto; padding:32px 32px 60px; }
.shell .main > .eyebrow,.shell .main .page-heading-row .eyebrow { color:var(--workspace-muted); }
.shell .main h1 { font-family:'League Spartan',Arial,sans-serif; font-size:clamp(1.85rem,3vw,2.5rem); font-weight:500; letter-spacing:-.035em; line-height:1.2; margin:6px 0 10px; }
.shell .main h2,.shell .main h3 { font-family:'Montserrat',Arial,Helvetica,sans-serif; font-weight:600; letter-spacing:0; line-height:1.4; }
.shell .main h2 { font-size:1.0625rem; }
.shell .main h3 { font-size:1rem; }
.shell .main .card { background:var(--workspace-paper); border-color:var(--workspace-line); border-radius:10px; box-shadow:none; min-width:0; }
.shell .main .button { display:inline-flex; align-items:center; justify-content:center; gap:6px; background:var(--workspace-action); text-decoration:none; border-radius:6px; min-height:40px; padding:9px 13px; font-size:.875rem; font-weight:500; line-height:1.4; white-space:normal; }
.shell .main .button.light { background:var(--workspace-paper); color:var(--workspace-ink); border-color:var(--workspace-line); }
.shell .main .button.danger-button { background:var(--danger); }
.shell .main .button:disabled { opacity:.55; cursor:not-allowed; }
.shell .main .helper,.shell .main .subtle { color:var(--workspace-muted); line-height:1.55; }
.shell .main .helper,.shell .main small { font-size:.8125rem; }
.shell .main .pill,.shell .main .badge { border-radius:5px; font-size:.75rem; line-height:1.4; }
.shell .main .status { font-size:.875rem; overflow-wrap:anywhere; }
.shell .main .status:empty { display:none; }
.shell .main .metric,.shell .main .executive-kpi strong { font-family:'Montserrat',Arial,Helvetica,sans-serif; font-size:clamp(1.3rem,2.4vw,1.9rem); line-height:1.3; overflow-wrap:anywhere; font-variant-numeric:tabular-nums; }
.shell .main .executive-kpis { grid-template-columns:repeat(auto-fit,minmax(min(100%,210px),1fr)); }
.shell .main .executive-kpi { padding:20px; }
.shell .main .executive-kpi > span { font-size:.875rem; }
.shell .main .executive-kpi > small { color:var(--workspace-muted); line-height:1.5; }
.shell .main .table-wrap { max-width:100%; overflow:auto; }
.shell .main :is(input,select,textarea) { max-width:100%; font-size:1rem; }
.shell .main details.card > summary { padding:2px 0; font-size:.9375rem; }
.workspace-columns { display:grid; grid-template-columns:minmax(0,1.6fr) minmax(260px,1fr); gap:22px; margin-top:24px; align-items:start; }
.workspace-primary,.workspace-aside { display:grid; gap:18px; min-width:0; }
.workspace-primary > .card,.workspace-aside > .card { margin:0; }
.workspace-list { margin:16px -20px -20px; }
.workspace-task { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:12px; padding:18px 20px; border-top:1px solid var(--workspace-line); align-items:center; }
.workspace-task h3 { margin:0 0 6px; }
.workspace-task p { margin:4px 0; font-size:.875rem; }
.workspace-task .task-owner { color:var(--workspace-muted); font-size:.8125rem; }
.workspace-task .button { font-size:.8125rem; }
.workspace-stamp { font-size:.75rem; color:var(--workspace-muted); margin-top:14px; }
.workspace-bank dl { margin:20px 0; }
.workspace-bank dl > div { display:flex; flex-wrap:wrap; justify-content:space-between; gap:8px; border-top:1px solid var(--workspace-line); padding:11px 0; font-size:.875rem; }
.workspace-bank dt { color:var(--workspace-muted); }
.workspace-bank dd { margin:0; font-variant-numeric:tabular-nums; }
.workspace-bank .eyebrow { color:var(--workspace-muted); font-size:.75rem; }
.workspace-bank h2 { font-family:'League Spartan',Arial,sans-serif; font-size:1.6rem; font-weight:500; margin:10px 0; }
.workspace-bank p { font-size:.875rem; }
.workspace-links { margin-top:28px; }
.workspace-links .grid { margin-top:12px; grid-template-columns:repeat(auto-fit,minmax(min(100%,210px),1fr)); }
.workspace-links .shortcut-card { text-decoration:none; padding:18px 20px; }
.workspace-links .shortcut-card:hover { border-color:var(--workspace-action); }
.workspace-links .shortcut-card h2 { margin-bottom:6px; }
.workspace-links .shortcut-card p { margin:0; font-size:.875rem; }
.workspace-primary #pendingSheets { margin:0; }
.workspace-home-page .instructor-groups { margin:14px 0; }
.workspace-home-page .instructor-group { font-size:.9375rem; }
.student-home-summary { display:grid; grid-template-columns:minmax(0,1.6fr) minmax(260px,1fr); gap:22px; margin-top:24px; }
.student-home-summary .card { margin:0; }
.student-home-summary .next-action-card { border-top:3px solid var(--workspace-action); }
.student-home-summary .next-action-card h2 { font:500 1.65rem/1.3 'League Spartan',Arial,sans-serif; margin:15px 0; }
.student-home-summary .metric { margin:15px 0 8px; }
.student-home-page #detail { margin-top:22px; }
.student-home-page #detail > .card { margin:0; }
.student-home-page .student-launchpad .student-launch-grid { grid-template-columns:repeat(auto-fit,minmax(min(100%,190px),1fr)); }
.student-home-page .contract-hours-disclosure { margin-top:22px; }
.student-home-page .readiness-score { font-size:2rem; }
.workspace-notice { padding:12px 14px; border-left:3px solid #946d28; background:#faf4e8; color:#684c1b; font-size:.875rem; }
:focus-visible { outline:3px solid #946d28; outline-offset:3px; }
@media(max-width:1050px) { .sidebar { grid-template-columns:130px minmax(0,1fr); gap:14px; } .sidebar .sidebar-bottom { grid-column:1/-1; display:flex; align-items:center; justify-content:flex-end; gap:14px; flex-wrap:wrap; text-align:left; } .sidebar .account { margin-right:auto; } }
@media(max-width:780px) { .workspace-columns,.student-home-summary { grid-template-columns:1fr; } .shell .main { padding:26px 20px 44px; } .sidebar { grid-template-columns:minmax(0,1fr); padding:18px 20px; } .sidebar .nav { gap:3px; } .sidebar .nav a,.sidebar .nav-group summary { padding:9px 10px; } .finance-cockpit-grid,.finance-intelligence-detail { grid-template-columns:minmax(0,1fr); } }
@media(max-width:480px) { .shell .main { padding:24px 14px 40px; } .sidebar { padding:16px; } .workspace-task { grid-template-columns:1fr; } .workspace-task .button { justify-self:start; } .sidebar .sidebar-bottom { gap:10px; } .shell .main .page-heading-row { flex-wrap:wrap; } .shell .main .card { padding:18px; } .workspace-list { margin:16px -18px -18px; } .shell .main .grid { grid-template-columns:minmax(0,1fr); } }
@media(pointer:coarse) { .shell .main .button,.sidebar .nav a,.sidebar .nav-group summary,.sidebar #logoutButton { min-height:44px; } }
@media(max-width:780px) { .sidebar .nav { position:relative; } .sidebar .nav-group-primary { position:static; } .sidebar .nav-group-menu { left:0; right:auto; width:min(250px,100%); } }
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto!important; transition:none!important; animation:none!important; } }

.shell .main details.card { padding:18px 20px; }
.shell .main .portal-dropdown > summary { padding:0; }
.shell .main .portal-dropdown-body { padding:18px 0 0; }
.shell .main table th { font-size:.8125rem; font-weight:600; letter-spacing:0; text-transform:none; line-height:1.4; }
/* Personal instructor work stays above the rest of the home workspace. */
.personal-grade-queue {border-top:4px solid #153b61;margin-bottom:1.25rem}
.personal-grade-heading {display:flex;align-items:center;justify-content:space-between;gap:1rem}
.personal-grade-heading h2 {margin:.35rem 0}
.personal-grade-queue .pending-sheet {min-width:0;min-height:64px}
.personal-grade-queue .pending-sheet strong,.personal-grade-queue .pending-sheet span {overflow-wrap:anywhere}
.personal-grade-empty {padding:.8rem 0}
@media(max-width:600px){.personal-grade-heading{align-items:flex-start}.personal-grade-queue .actions{flex-wrap:wrap}.personal-grade-queue button{min-height:44px}.personal-grade-queue .pending-sheet{gap:.6rem}}
