/* 2028.3 | scoped settings workspace and audit of selected light-only legacy surfaces */
body.nv1500{--s283-panel:var(--panel,#ffffff);--s283-text:var(--ink,#19384b);--s283-muted:var(--muted,#647987);--s283-border:var(--border,#d5e3e9);--s283-soft:var(--panel2,#f3f8fb)}
body.nv1500.dark{--s283-panel:#162c3a;--s283-text:#edf6fd;--s283-muted:#b1c9d7;--s283-border:#365261;--s283-soft:#203947;color-scheme:dark}
.s283-settings{max-width:1120px;margin:0 auto;padding:clamp(12px,2vw,25px);color:var(--s283-text);direction:inherit}
.s283-settings *{box-sizing:border-box}.s283-hero{display:flex;gap:20px;align-items:center;background:linear-gradient(122deg,#102f50,#126b7d);border-radius:24px;padding:clamp(23px,4vw,42px);color:white;margin-bottom:16px}
.s283-hero>span{border-radius:19px;background:#ffffff20;padding:18px;display:grid;place-items:center}.s283-hero svg{width:34px;height:34px}.s283-hero h1{color:white;font-size:clamp(22px,3.2vw,34px);margin:2px 0}.s283-hero p{color:#e6f8fd;margin:0;font-size:13px}.s283-hero small{letter-spacing:.04em;color:#b2e7ef}
.s283-jumps{display:flex;gap:9px;flex-wrap:wrap;margin-bottom:20px}.s283-jumps a{padding:8px 15px;text-decoration:none;background:var(--s283-soft);border:1px solid var(--s283-border);border-radius:999px;color:var(--s283-text);font-weight:750}
.s283-panel{background:var(--s283-panel);border:1px solid var(--s283-border);border-radius:20px;padding:clamp(18px,3vw,26px);margin-block:15px;box-shadow:0 6px 24px #07263d08}
.s283-panel h2{color:var(--s283-text);font-size:1.2rem;margin:0 0 6px}.s283-panel h3{color:var(--s283-text);margin:19px 0 10px;font-size:1rem}.s283-panel p,.s283-meta{color:var(--s283-muted);font-size:13px;line-height:1.9}
.s283-choice,.s283-colors,.s283-owner-actions{display:flex;gap:9px;flex-wrap:wrap}.s283-choice button,.s283-colors button,.s283-action{font:inherit;color:var(--s283-text);border:1px solid var(--s283-border);background:var(--s283-soft);border-radius:12px;cursor:pointer;padding:11px 16px;min-height:44px;display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:730;transition:transform .2s ease,background .2s ease}
.s283-choice button[aria-pressed=true],.s283-colors button[aria-pressed=true]{border-color:var(--ppu-page-accent,#1a8299);background:color-mix(in srgb,var(--ppu-page-accent,#1a8299) 13%,var(--s283-panel));box-shadow:inset 0 0 0 1px var(--ppu-page-accent,#1a8299)}
.s283-choice button:hover,.s283-action:hover,.s283-colors button:hover{transform:translateY(-2px)}.s283-colors button i{width:20px;height:20px;display:inline-block;border-radius:50%;border:2px solid #ffffffb8}
.s283-settings :is(button,a):focus-visible{outline:3px solid var(--ppu-page-accent,#0a8fa7);outline-offset:3px}.s283-settings button:disabled{opacity:.65;cursor:progress}
.s283-split{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:23px}.s283-pill{border-radius:7px;background:var(--s283-soft);border:1px solid var(--s283-border);padding:4px 9px;font-weight:700}
.s283-report{border:1px dashed var(--s283-border);background:var(--s283-soft);padding:16px;border-radius:12px;margin:20px 0;font-size:13px;line-height:1.8;overflow-wrap:anywhere}
.s283-checks{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}.s283-check{border:1px solid var(--s283-border);background:var(--s283-panel);border-radius:11px;padding:13px;display:grid;gap:8px}.s283-check small{color:var(--s283-muted)}.s283-check[data-status=pass]{border-inline-start:4px solid #23966f}.s283-check[data-status=warn]{border-inline-start:4px solid #d3a044}.s283-check[data-status=fail]{border-inline-start:4px solid #db6267}
.s283-meta{padding:20px;text-align:center}
/* Navigation modes persist locally; existing permission checks and routes are unchanged. */
@media(min-width:761px){body.nv1500[data-s283-nav=side] #sidebar.nv-sidebar{inert:unset;display:flex!important;position:fixed!important;inset-inline-start:0!important;inset-inline-end:auto!important;top:var(--nv-header-height,86px)!important;bottom:0!important;max-height:calc(100dvh - 86px);transform:none!important;visibility:visible!important;z-index:40;box-shadow:none;border-inline-end:1px solid var(--s283-border)}body.nv1500[data-s283-nav=side] .nv-topnav{display:none!important}}
@media(max-width:760px){body.nv1500[data-s283-nav=bottom] #topNavigation.nv-topnav{position:fixed!important;inset: auto 0 0!important;display:block!important;width:100%;max-width:100vw;max-height:82px;overflow:auto hidden;z-index:100;box-shadow:0 -5px 20px #0003;transform:none!important}body.nv1500[data-s283-nav=bottom] #topNavigation .nv-nav-inner{display:flex!important;overflow:auto hidden;flex-wrap:nowrap;}body.nv1500[data-s283-nav=bottom] #topNavigation .nv-drop{display:none!important}body.nv1500[data-s283-nav=bottom] #topNavigation .nv-nav-inner>.nv-link{display:inline-flex!important;min-width:max-content}body.nv1500[data-s283-nav=bottom]{padding-bottom:70px}body.nv1500[data-s283-nav=side] .nv-trigger{display:inline-flex!important}}
/* Color normalization for sections previously using unguarded #fff backgrounds. */
body.nv1500.dark #app :is(.h40-program,.h40-assistant-group,.h40-year,.h40-course,.h40-academic-body,.h54-course,.h54-term,.h54-editorial-grid article,.h54-card,.v1300-faculty-page article,.nv-breakdown,.nv-stat,.nv-card,.nv-quick,.h30-quality,.h30-note,.h40-assistant-course,.h54-page .h54-panel){background:var(--s283-panel)!important;color:var(--s283-text)!important;border-color:var(--s283-border)!important}
body.nv1500.dark #app :is(.h40-course p,.h40-program small,.h54-course p,.h54-editorial-grid p,.nv-stat span,.h40-head p,.nv-card small,.h30-note small,.h40-program-tail){color:var(--s283-muted)!important}
body.nv1500.dark #app :is(input,select,textarea){background:var(--s283-soft)!important;color:var(--s283-text)!important;border-color:var(--s283-border)!important}
body.nv1500.dark #app :is(.h40-assistant-note,.h40-results-bar,.h40-section-label,.h40-filter-bar,.h54-course-filter,.h40-year-panel){background:var(--s283-soft)!important;color:var(--s283-text)!important;border-color:var(--s283-border)!important}
/* Keep program icons centered within their cards, not floating at the top. */
body.nv1500 .h40-program{display:grid;grid-template-columns:52px minmax(0,1fr);grid-template-rows:auto auto;align-content:center;align-items:center;column-gap:11px;position:relative;min-height:126px}
body.nv1500 .h40-program-icon{position:static!important;grid-row:1/3;grid-column:1;width:50px;height:50px;margin:0;display:grid;place-items:center;align-self:center}
body.nv1500 .h40-program-icon svg{width:25px;height:25px;display:block}
body.nv1500 .h40-program-content{grid-column:2;grid-row:1;min-width:0}.h40-program-tail{grid-column:2;grid-row:2;justify-self:start;margin-top:6px}
body.nv1500 .h40-head-orbit{pointer-events:none;opacity:.12}
/* Search row balances label, field and controls across viewports. */
body.nv1500 .h40-academics :is(input[type=search],input[type=text]){max-width:100%;min-height:44px}
/* Deliberate footer hierarchy without enlarging overall height. */
body.nv1500 footer.footer.nv-footer{background:linear-gradient(155deg,#0d2639,#173b50);color:#e7f2fa;border-top:3px solid var(--ppu-page-accent,#1998a1)}
body.nv1500 footer.footer.nv-footer :is(.h54-footer-brand p,.h54-footer-bottom,.h54-footer-col button,.h2090-news-copy p){color:#c0d8e5!important}
body.nv1500 footer.footer.nv-footer :is(.h54-footer-col h3,.h2090-news-copy h3){color:#f0f9ff!important}
body.nv1500 footer.footer.nv-footer .h54-footer-shell{max-width:1220px;gap:clamp(18px,3vw,42px)}
body.nv1500 footer.footer.nv-footer .h54-footer-col button:hover{color:#fff!important;text-decoration:underline}
/* Icon-only retry: accessible label remains on its button. */
button[data-h40-retry],button.ppu-retry{min-width:44px;min-height:44px}
@media(max-width:620px){.s283-split{grid-template-columns:1fr}.s283-hero{gap:12px}.s283-hero>span{padding:11px}.s283-hero svg{width:24px;height:24px}.s283-choice button{flex:1 1 auto}.s283-panel{border-radius:15px}.h40-program-grid{grid-template-columns:1fr 1fr!important}.h40-program{grid-template-columns:36px minmax(0,1fr)!important;min-height:118px!important;padding:12px!important}.h40-program-icon{width:34px!important;height:34px!important}.h40-program-icon svg{width:19px!important;height:19px!important}.h40-program-content strong{font-size:12px!important}}
@media(max-width:390px){.h40-program-grid{grid-template-columns:1fr!important}}
@media(prefers-reduced-motion:reduce){.s283-settings button,.s283-settings a{transition:none!important}.s283-settings button:hover{transform:none}}

button.ppu-retry,button.ppu2090-connectivity-retry{font-size:0!important;padding:9px 12px!important;min-width:44px;min-height:44px}button.ppu-retry .ppu-retry-icon,button.ppu2090-connectivity-retry .ppu-retry-icon{width:22px;height:22px}button.ppu2090-connectivity-retry>span{display:none}button.ppu-retry[aria-busy=true] svg,button.ppu2090-connectivity-retry[aria-busy=true] svg{animation:s283-spin .85s linear infinite}@keyframes s283-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){button.ppu-retry[aria-busy=true] svg,button.ppu2090-connectivity-retry[aria-busy=true] svg{animation:none}}

/* Owner-published recognition from existing TeamUpdates records; never automatically awarded. */
.p283-award{display:inline-flex;align-items:center;gap:5px;width:max-content;max-width:100%;border-radius:999px;font-size:11px;font-weight:800;padding:4px 9px;border:1px solid transparent}.p283-award svg{width:17px;height:17px;flex:none}.p283-award[data-award=gold]{color:#7d540a;background:#fff3d5;border-color:#e5b955}.p283-award[data-award=silver]{color:#536172;background:#eff3f8;border-color:#bbc9d6}.p283-award[data-award=bronze]{color:#854d2d;background:#fff0e5;border-color:#dfaa84}body.dark .p283-award[data-award=gold]{background:#43361b;color:#ffdf91}body.dark .p283-award[data-award=silver]{background:#2e3a47;color:#e0e9f2}body.dark .p283-award[data-award=bronze]{background:#483426;color:#ffd2ae}
