/* V1402: one coherent responsive shell, preserving original navy/teal dental identity. */
body.nv1500{--ppu-brand-accent:#30c2cc;--ppu-brand-soft:#e3f6f6;--ppu-header:#0b2743;--ppu-header-2:#10465e;--ppu-container:1260px}
body.nv1500[data-accent="royal"]{--ppu-brand-accent:#8caeff;--ppu-brand-soft:#e9eeff}
body.nv1500[data-accent="indigo"]{--ppu-brand-accent:#b39aff;--ppu-brand-soft:#f0eafd}
body.nv1500[data-accent="emerald"]{--ppu-brand-accent:#50d9b2;--ppu-brand-soft:#dff9ef}
body.nv1500[data-accent="sunset"]{--ppu-brand-accent:#f5b08c;--ppu-brand-soft:#fff0e5}
body.nv1500[data-accent="graphite"]{--ppu-brand-accent:#bccbdb;--ppu-brand-soft:#eef2f7}
body.nv1500 .nv-header{background:linear-gradient(110deg,var(--ppu-header),var(--ppu-header-2))!important;border-bottom:1px solid #ffffff22;box-shadow:0 7px 25px #0d2b4224;min-height:68px}
body.nv1500 .nv-header .nv-symbol{background:linear-gradient(140deg,#ffffff1e,#ffffff08);border:1px solid #ffffff20;box-shadow:inset 0 0 0 1px #ffffff0b;color:var(--ppu-brand-accent)}
body.nv1500 .nv-header :is(.nv-hbutton,.nv-search){transition:background .22s ease,transform .22s ease,border-color .22s ease}
body.nv1500 .nv-header :is(.nv-hbutton,.nv-search):hover{background:#ffffff19;transform:translateY(-1px)}
body.nv1500 .nv-header :is(.nv-hbutton,.nv-search):focus-visible{outline:3px solid var(--ppu-brand-accent);outline-offset:3px}
body.nv1500 .nv-topnav{border-bottom:2px solid var(--ppu-brand-accent)}
body.nv1500 .nv-nav-inner .nv-active{color:var(--ppu-brand-accent)}
/* Compact footer aligned to exactly the same layout width as the header and content. */
body.nv1500 footer.footer.nv-footer{display:block!important;box-sizing:border-box;width:100%;max-width:none;min-height:0!important;margin:0!important;padding:0!important;border:0!important;border-top:2px solid var(--ppu-brand-accent)!important;border-radius:0!important;background:linear-gradient(135deg,#0a223a,#103b51)!important;color:#e9f4f9!important;text-align:start;overflow:visible!important;box-shadow:none!important}
body.nv1500 footer.footer.nv-footer .h54-footer-shell{box-sizing:border-box;width:min(calc(100% - 48px),var(--ppu-container));max-width:var(--ppu-container);padding:28px 0 18px;margin-inline:auto;display:grid;grid-template-columns:minmax(235px,1.5fr) repeat(3,minmax(115px,.8fr));gap:clamp(16px,2.5vw,28px);align-items:start}
body.nv1500 .h54-footer-mark{width:42px;height:42px;flex:0 0 42px;background:color-mix(in srgb,var(--ppu-brand-accent) 14%,transparent);color:var(--ppu-brand-accent);border:1px solid #ffffff28}
body.nv1500 .h54-footer-brand{gap:12px;align-items:start}
body.nv1500 .h54-footer-brand strong{color:#f7feff;font-size:13px;line-height:1.8}
body.nv1500 .h54-footer-brand p{color:#c0d7e3;font-size:11px;line-height:1.8;margin:5px 0 9px;max-width:37ch}
body.nv1500 .h54-footer-brand small{color:var(--ppu-brand-accent);font-size:9px}
body.nv1500 .h54-footer-col{gap:4px}
body.nv1500 .h54-footer-col h3{color:#fff;font-size:12px;margin:0 0 7px}
body.nv1500 .h54-footer-col button{color:#d2e4ec;font-size:11px;line-height:1.6;padding:5px 0;min-height:30px}
body.nv1500 .h54-footer-col button:hover{color:var(--ppu-brand-accent)}
body.nv1500 footer.footer.nv-footer .h54-footer-bottom{box-sizing:border-box;width:min(calc(100% - 48px),var(--ppu-container));max-width:var(--ppu-container);margin:auto;padding:13px 0 19px;gap:14px;font-size:10px;color:#b9d1df}
body.nv1500 .h54-to-top{color:var(--ppu-brand-accent);white-space:nowrap}
/* Newsletter is a real opt-in form using the existing Google Apps Script newsletter API. */
body.nv1500 footer.footer .h2090-news-section{grid-column:1/-1;min-width:0;display:grid;grid-template-columns:minmax(210px,.9fr) minmax(0,1.65fr);gap:clamp(16px,2.5vw,30px);align-items:center;margin-top:1px;padding:20px 0 4px;border-top:1px solid #ffffff29}
body.nv1500 footer.footer .h2090-news-copy h3{font-size:13px;color:#fff}
body.nv1500 footer.footer .h2090-news-copy p{font-size:10.5px;line-height:1.9;color:#bdd5e2;opacity:1}
body.nv1500 footer.footer .h2090-news-copy>span{background:#ffffff12;color:var(--ppu-brand-accent);border-radius:11px}
body.nv1500 footer.footer .h2090-news-form{display:grid;grid-template-columns:minmax(105px,.7fr) minmax(180px,1fr) auto;gap:9px;align-items:center;min-width:0}
body.nv1500 footer.footer .h2090-news-form>input:not(.h2090-news-trap){min-width:0;width:100%;box-sizing:border-box;background:#f8fcff;color:#153149;border:1px solid #bfd3df;border-radius:11px;min-height:42px;padding:10px 12px;font-size:12px}
body.nv1500 footer.footer .h2090-news-form>input:not(.h2090-news-trap)::placeholder{color:#64798c;opacity:1}
body.nv1500 footer.footer .h2090-news-form>button[type="submit"]{background:var(--ppu-brand-accent);color:#061d2a;min-height:42px;padding:8px 15px;border-radius:11px;white-space:nowrap;transition:filter .2s,transform .2s}
body.nv1500 footer.footer .h2090-news-form>button[type="submit"]:hover{filter:brightness(1.1);transform:translateY(-1px)}
body.nv1500 footer.footer .h2090-news-form>button[type="submit"]:disabled{opacity:.6;cursor:wait;transform:none}
body.nv1500 footer.footer .h2091-news-preferences{grid-column:1/-1;display:flex;gap:8px 16px;flex-wrap:wrap;border:0;padding:1px 0;margin:0;min-width:0}
body.nv1500 footer.footer .h2091-news-preferences legend{float:inline-start;margin-inline-end:12px;font-size:10px;line-height:1.9;color:#d8e9ef}
body.nv1500 footer.footer .h2091-news-preferences label{font-size:10px;color:#d8e9ef;white-space:normal}
body.nv1500 footer.footer .h2091-news-consent{grid-column:1/-1;display:flex;gap:7px;align-items:flex-start;color:#e1edf2;font-size:10px;line-height:1.75}
body.nv1500 footer.footer .h2091-news-consent input,body.nv1500 footer.footer .h2091-news-preferences input{accent-color:var(--ppu-brand-accent);flex:0 0 auto}
body.nv1500 footer.footer .h2091-news-policy{color:var(--ppu-brand-accent);background:transparent;border:0;cursor:pointer;text-decoration:underline;padding:0;font:inherit}
body.nv1500 footer.footer .h2091-news-disclosure{grid-column:1/-1;color:#b9d5df;font-size:10px;line-height:1.8;margin:0}
body.nv1500 footer.footer .h2090-news-form [role="status"]{grid-column:1/-1;min-height:15px;color:var(--ppu-brand-accent);font-size:11px}
body.nv1500 footer.footer :is(button,input):focus-visible{outline:3px solid var(--ppu-brand-accent);outline-offset:3px}
/* Modern animated sun/moon sliding control on the ACTUAL active header (no duplicate hidden topbar). */
body.nv1500 #v103Header .ppu-theme-switch{width:76px;min-width:76px;min-height:40px;height:40px;padding:3px;border-radius:999px!important;border:1px solid #ffffff38;background:#ffffff12!important;display:inline-flex!important;align-items:center;justify-content:center;flex:0 0 auto}
.ppu-theme-track{position:relative;width:68px;height:32px;display:block;overflow:hidden;border-radius:999px;background:linear-gradient(120deg,#d5f3ff,#a6dcec);box-shadow:inset 0 1px 5px #0003;transition:background .35s ease}
.ppu-theme-track svg{position:absolute;width:17px;height:17px;top:8px;color:#276481;transition:color .3s,transform .35s ease;stroke-linecap:round;stroke-linejoin:round}
.ppu-switch-sun{left:9px}.ppu-switch-moon{right:9px}
.ppu-theme-thumb{position:absolute;z-index:1;top:3px;left:3px;width:26px;height:26px;border-radius:50%;background:#fffefa;box-shadow:0 2px 7px #0b345a55;transform:translateX(0);transition:transform .4s cubic-bezier(.22,.68,.2,1.25),background .3s,box-shadow .3s}
.ppu-theme-switch.is-dark .ppu-theme-track{background:linear-gradient(115deg,#122940,#254965)}
.ppu-theme-switch.is-dark .ppu-theme-track svg{color:#f1d08a}
.ppu-theme-switch.is-dark .ppu-theme-thumb{background:#ecf3ff;transform:translateX(36px);box-shadow:0 2px 9px #010a18aa}
body.nv1500 #v103Header .ppu-palette-trigger{width:auto;padding-inline:10px;gap:7px;white-space:nowrap}
body.nv1500 #v103Header .ppu-news-trigger{color:var(--ppu-brand-accent)}
.ppu-palette-label{font-size:10px;font-weight:700}
.ppu-palette-popover{position:fixed;z-index:100000;box-sizing:border-box;width:min(302px,calc(100vw - 20px));padding:16px;background:var(--panel,#fff);color:var(--ink,#16354c);border:1px solid var(--border,#aec3d4);box-shadow:0 24px 80px #001d3d4d;border-radius:17px;text-align:start;direction:inherit}
.ppu-palette-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.ppu-palette-heading strong{font-size:15px}.ppu-palette-close{border:0;background:transparent;color:inherit;font-size:24px;cursor:pointer;line-height:1}
.ppu-palette-popover p{font-size:10px;line-height:1.7;color:var(--muted,#667b8c);margin:7px 0 13px}.ppu-palette-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.ppu-palette-option{display:flex;align-items:center;gap:8px;padding:10px 8px;border-radius:10px;background:var(--panel2,#f3f8fc);border:1px solid var(--border,#d6e1ea);color:inherit;cursor:pointer;text-align:start;font:600 11px inherit}.ppu-palette-option[aria-pressed="true"]{border:2px solid var(--ppu-brand-accent);padding:9px 7px}.ppu-palette-option:hover{filter:brightness(.96)}.ppu-palette-option:focus-visible{outline:3px solid var(--ppu-brand-accent);outline-offset:2px}.ppu-palette-swatch{background:var(--ppu-swatch);width:19px;height:19px;flex:0 0 19px;border-radius:50%;box-shadow:0 0 0 2px #ffffffc5,0 0 0 3px #7997a26b}
/* Existing logo customization / academic descriptions preserved. */
.ppu-brand-preview{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.ppu-brand-preview img{width:56px;height:56px;object-fit:contain;border-radius:12px;background:#fff;padding:5px;border:1px solid #d7e0e8}.ppu-brand-panel{margin:12px 0;padding:14px;border:1px solid var(--border,#d6dfe8);border-radius:14px}.ppu-brand-panel input[type=file]{max-width:100%;font:inherit}.ppu-brand-panel button{margin:5px;padding:8px 12px;border-radius:10px;border:1px solid var(--border,#aaa);background:var(--panel,#fff);color:inherit;cursor:pointer}
.v52-course-entry{border-bottom:1px solid #e2ecef;padding-bottom:6px}.v52-course-entry:last-child{border-bottom:0}.h2092-description{margin:1px 12px 11px;color:#345b6a;font-size:14px}.h2092-description summary{cursor:pointer;font-weight:700;color:#087b73;padding:5px 0}.h2092-description p{margin:4px 0 9px;line-height:2;white-space:pre-line}.h2092-fullcatalog{margin:14px 0 22px}.h2092-fullcatalog a{display:inline-block;padding:9px 16px;background:#087b73;border-radius:10px;color:white;text-decoration:none;font-weight:700}.h2092-fullcatalog a:focus-visible,.h2092-description summary:focus-visible{outline:3px solid #199f99;outline-offset:3px}
.v1400-personal-panel{margin:1.2rem 0;padding:1rem;border:1px solid var(--line,#afcbd2);border-radius:16px;min-width:0}.v1400-personal-panel legend{font-weight:700;padding:0 .5rem}.v1400-personal-selectors,.v1400-personal-editor{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,185px),1fr));gap:.8rem;margin:.75rem 0}.v1400-personal-panel label{display:grid;gap:.4rem;min-width:0}.v1400-personal-panel select{max-width:100%;min-width:0;width:100%;background:var(--card,#fff);color:var(--text,#172b36);border:1px solid var(--line,#9fb7c1);padding:.5rem;border-radius:9px}.v1400-personal-panel select:focus-visible{outline:3px solid #198b93;outline-offset:2px}
@media(max-width:950px){body.nv1500 footer.footer.nv-footer .h54-footer-shell{grid-template-columns:repeat(3,minmax(0,1fr))}body.nv1500 .h54-footer-brand{grid-column:1/-1;max-width:500px}body.nv1500 footer.footer .h2090-news-section{grid-template-columns:1fr}body.nv1500 #v103Header .ppu-palette-label{display:none}}
@media(max-width:650px){body.nv1500 footer.footer.nv-footer .h54-footer-shell{width:min(calc(100% - 30px),var(--ppu-container));grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 12px;padding:24px 0 12px}body.nv1500 footer.footer.nv-footer .h54-footer-bottom{width:min(calc(100% - 30px),var(--ppu-container));gap:9px;padding:12px 0 calc(90px + env(safe-area-inset-bottom))}body.nv1500 .h54-footer-col button{font-size:10px}body.nv1500 .h54-footer-brand{grid-column:1/-1}body.nv1500 footer.footer .h2090-news-section{grid-column:1/-1;grid-template-columns:minmax(0,1fr)}body.nv1500 footer.footer .h2090-news-form{grid-template-columns:minmax(0,1fr) auto}body.nv1500 footer.footer .h2090-news-form>input[name="displayName"]{grid-column:1/-1}body.nv1500 footer.footer .h2090-news-form>input[name="email"]{grid-column:1}body.nv1500 footer.footer .h2090-news-form>button[type="submit"]{grid-column:2;grid-row:2}body.nv1500 #v103Header .ppu-theme-switch{min-width:65px;width:65px;height:38px}body.nv1500 #v103Header .ppu-theme-switch .ppu-theme-track{transform:scale(.85)}body.nv1500 #v103Header .ppu-palette-trigger{padding-inline:7px}}
@media(max-width:390px){body.nv1500 footer.footer.nv-footer .h54-footer-shell{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}body.nv1500 footer.footer .h2090-news-form{grid-template-columns:minmax(0,1fr)}body.nv1500 footer.footer .h2090-news-form>input[name="email"],body.nv1500 footer.footer .h2090-news-form>button[type="submit"]{grid-column:1;grid-row:auto}body.nv1500 #v103Header .ppu-news-trigger{display:none}}
@media(prefers-reduced-motion:reduce){.ppu-theme-track,.ppu-theme-track svg,.ppu-theme-thumb,body.nv1500 .nv-header :is(.nv-hbutton,.nv-search){transition:none!important}body.nv1500 footer.footer .h2090-news-form>button[type="submit"]{transition:none!important}}
@media print{body.nv1500 footer.footer.nv-footer{display:none!important}}

.ppu-brand-entry{width:100%;margin-top:12px;padding:10px;border:1px solid var(--border,#ccc);border-radius:10px;color:inherit;background:var(--panel2,#f0f6f8);cursor:pointer;font:600 11px inherit}.ppu-brand-entry:focus-visible{outline:3px solid var(--ppu-brand-accent);outline-offset:2px}
.ppu-brand-dialog{max-width:min(94vw,480px);border:1px solid var(--border,#cbd5e1);border-radius:20px;background:var(--panel,#fff);color:var(--ink,#172b4d);padding:24px;box-shadow:0 18px 65px #0004;direction:inherit}.ppu-brand-dialog::backdrop{background:#06172c99}.ppu-brand-dialog h2{margin-top:0}.ppu-brand-actions{display:flex;gap:8px;flex-wrap:wrap}.ppu-brand-actions button{font:inherit;cursor:pointer;border:1px solid var(--border,#aaa);border-radius:10px;padding:9px 12px;background:var(--panel,#fff);color:inherit}.ppu-brand-dialog :is(button,input):focus-visible{outline:3px solid var(--ppu-brand-accent);outline-offset:3px}

/* Override older generic H2091 form layout so the action stays beside email on desktop. */
@media(min-width:651px){body.nv1500 footer.footer .h2090-news-form>button[type="submit"]{grid-column:auto!important;grid-row:auto!important;min-width:106px}}
/* Previously hard-coded light theme title colors obscured sections in dark mode. */
body.nv1500.dark #app :is(.nv-sectiontitle h2,.h54-term-title h2,.h54-course h3,.h54-editorial-heading h2){color:#e8f5ff!important}
body.nv1500.dark #app :is(.nv-sectiontitle p,.h54-course p,.h54-editorial-heading p){color:#b8d0e2!important}

/* The newsletter action is explicitly positioned on the FIRST row (not below the consent text). */
@media(min-width:651px){
 body.nv1500 footer.footer .h2090-news-form>input[name="displayName"]{grid-column:1;grid-row:1}
 body.nv1500 footer.footer .h2090-news-form>input[name="email"]{grid-column:2;grid-row:1}
 body.nv1500 footer.footer .h2090-news-form>button[type="submit"]{grid-column:3!important;grid-row:1!important}
 body.nv1500 footer.footer .h2090-news-form>.h2091-news-preferences{grid-column:1/-1;grid-row:2}
 body.nv1500 footer.footer .h2090-news-form>.h2091-news-consent{grid-column:1/-1;grid-row:3}
 body.nv1500 footer.footer .h2090-news-form>.h2091-news-disclosure{grid-column:1/-1;grid-row:4}
 body.nv1500 footer.footer .h2090-news-form>#v51NewsletterStatus{grid-column:1/-1;grid-row:5}
}

/* 2028: theme tokens use the core design engine, without a competing state store. */
body.nv1500{--ppu-page-accent:#087e8c;--ppu-page-soft:#e3f6f6}
body.nv1500[data-accent="royal"]{--ppu-page-accent:#285dc9;--ppu-page-soft:#e9eeff}
body.nv1500[data-accent="indigo"]{--ppu-page-accent:#6756be;--ppu-page-soft:#f0eafd}
body.nv1500[data-accent="emerald"]{--ppu-page-accent:#08765b;--ppu-page-soft:#dff9ef}
body.nv1500[data-accent="sunset"]{--ppu-page-accent:#ae5b31;--ppu-page-soft:#fff0e5}
body.nv1500[data-accent="graphite"]{--ppu-page-accent:#536477;--ppu-page-soft:#eef2f7}
body.nv1500:not(.dark){--primary:var(--ppu-page-accent);--soft:var(--ppu-page-soft);--v101-turquoise:var(--ppu-page-accent)}
body.nv1500.dark{--primary:var(--ppu-brand-accent);--v101-turquoise:var(--ppu-brand-accent)}
body.nv1500 :is(.nv-header,.nv-topnav,footer.footer){--focus-accent:var(--ppu-brand-accent)}
body.nv1500 #app :is(a,button,input,select,textarea):focus-visible{outline:3px solid var(--primary);outline-offset:3px}
body.nv1500 .ppu-palette-reset{display:block;width:100%;margin:12px 0 0;padding:10px 12px;cursor:pointer;border:1px solid var(--border,#cbd5e1);border-radius:10px;background:var(--panel2,#f0f6f8);color:inherit;font:inherit;font-weight:700}
body.nv1500 .ppu-palette-reset:focus-visible{outline:3px solid var(--ppu-brand-accent);outline-offset:2px}
body.nv1500[data-motion="reduce"] .ppu-theme-track,body.nv1500[data-motion="reduce"] .ppu-theme-thumb{transition:none!important}

/* 2028.1: contextual icons, settings hub, academic submenu and compact responsive layout. */
body.nv1500 .nv-symbol svg,body.nv1500 .h54-footer-mark svg {color:var(--ppu-brand-accent)}
body.nv1500 .nv-card-icon svg,body.nv1500 .nv-side-link svg,body.nv1500 .h40-program-icon svg{display:block;flex-shrink:0;stroke-width:1.9;transition:transform .2s ease}
body.nv1500 .nv-card:is(:hover,:focus-visible) .nv-card-icon svg{transform:scale(1.09)}
body.nv1500 .nv-card:focus-visible,body.nv1500 .ppu-program-overview-item:focus-visible{outline:3px solid var(--ppu-brand-accent);outline-offset:3px}
body.nv1500 #v103Header .ppu-settings-trigger{display:inline-flex;align-items:center;gap:7px;white-space:nowrap;padding-inline:9px;max-width:130px}
.ppu-settings-label{font-size:12px;font-weight:700}
.ppu-settings-dialog{width:min(94vw,570px);max-height:min(88dvh,780px);overflow:auto;border:1px solid var(--border,#c6d7e0);border-radius:24px;background:var(--panel,#fff);color:var(--ink,#173048);box-shadow:0 25px 90px #001b374d;padding:24px;direction:inherit}
.ppu-settings-dialog::backdrop{background:#02152b9c;backdrop-filter:blur(3px)}
.ppu-settings-dialog .ppu-settings-head{display:flex;align-items:start;justify-content:space-between;gap:20px}
.ppu-settings-dialog .ppu-settings-head h2{margin:2px 0 0;font-size:clamp(18px,3.5vw,24px);line-height:1.5}
.ppu-settings-dialog .ppu-settings-head small{color:var(--muted,#607686);font-weight:800;letter-spacing:.05em}
.ppu-settings-close{font:inherit;font-size:24px;line-height:1;min-height:42px;min-width:42px;border:1px solid var(--border,#d8e2ea);color:inherit;background:transparent;border-radius:12px;cursor:pointer}
.ppu-settings-note{font-size:12px;color:var(--muted,#627989);line-height:1.9;margin:10px 0 18px}
.ppu-settings-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,185px),1fr));gap:12px}
.ppu-settings-tiles button{display:flex;align-items:center;gap:11px;text-align:start;min-width:0;border:1px solid var(--border,#d5e1e7);background:var(--panel2,#f2f7f9);color:inherit;border-radius:15px;padding:14px;min-height:80px;font:inherit;cursor:pointer}
.ppu-settings-tiles button:disabled{opacity:.5;cursor:not-allowed}.ppu-settings-tiles button span:last-child{display:grid;gap:5px;min-width:0}.ppu-settings-tiles button strong{font-size:13px}.ppu-settings-tiles button small{font-size:11px;line-height:1.5;color:var(--muted,#627989)}
.ppu-setting-symbol{display:grid;place-items:center;width:38px;height:38px;min-width:38px;background:var(--ppu-brand-soft,#e3f6f6);color:var(--ppu-header,#133956);border-radius:12px;font-size:21px}
#ppu-owner-settings{border-top:1px solid var(--border,#d5e1e7);margin-top:20px;padding-top:12px}#ppu-owner-settings[hidden]{display:none!important}#ppu-owner-settings h3{font-size:15px}#ppu-owner-settings p{font-size:12px;line-height:1.8;color:var(--muted,#667)}.ppu-owner-setting{border:1px solid var(--border,#ccc);border-radius:10px;background:var(--panel2,#f2f7fa);color:inherit;padding:10px;margin:5px;cursor:pointer;font:inherit}
.ppu-settings-dialog button:focus-visible{outline:3px solid var(--ppu-brand-accent);outline-offset:3px}
.ppu-program-overview{border-top:1px solid var(--border,#d6e6ec);padding:12px 16px;margin-top:12px}.ppu-program-overview>strong{font-size:13px}.ppu-program-overview>p{font-size:10px;line-height:1.8;color:var(--muted,#697c89);margin:9px 0 0}
.ppu-program-overview-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin-top:10px}.ppu-program-overview-item{font:inherit;display:flex;align-items:center;gap:9px;border:1px solid var(--border,#d5e1e7);border-radius:12px;background:var(--panel2,#f3f8fb);color:inherit;padding:11px;min-width:0;text-align:start;cursor:pointer}.ppu-program-overview-item svg{flex:none;color:var(--ppu-brand-accent,#1b8f9d)}.ppu-program-overview-item span{display:grid;gap:5px;min-width:0}.ppu-program-overview-item b{font-size:11px;line-height:1.5}.ppu-program-overview-item small{font-size:9px;line-height:1.6;color:var(--muted,#667)}
body.nv1500 .nv-popover:has(.ppu-program-overview){max-width:min(900px,calc(100vw - 18px))}
.catalog-retry{border:1px solid #447fba;background:#176cab;color:white;border-radius:999px;padding:10px 18px;font-weight:700;cursor:pointer}
@media(max-width:800px){body.nv1500 .nv-cardgrid{grid-template-columns:repeat(2,minmax(0,1fr))!important}body.nv1500 .ppu-program-overview-grid{grid-template-columns:1fr}body.nv1500 .nv-card{min-width:0}body.nv1500 #v103Header .ppu-settings-label{display:none}body.nv1500 #v103Header .ppu-settings-trigger{width:40px;padding:0;justify-content:center}body.nv1500 .h40-program-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,190px),1fr))}}
@media(max-width:480px){body.nv1500 .nv-cardgrid{grid-template-columns:minmax(0,1fr)!important}body.nv1500 #app,body.nv1500 .main{min-width:0;max-width:100%;overflow-wrap:anywhere}body.nv1500 :is(.nv-popover,.nv-sidebar,.h54-page,.h40-academics){max-width:100vw;min-width:0}body.nv1500 .nv-card{padding:11px;gap:10px}body.nv1500 .nv-card-icon{width:38px;height:38px;flex:none}body.nv1500 .nv-card-copy{min-width:0}body.nv1500 .nv-card-copy strong{font-size:12px}body.nv1500 .nv-card-copy small{line-height:1.65}body.nv1500 #v103Header .nv-header-tools{gap:4px}body.nv1500 .ppu-settings-dialog{width:calc(100vw - 18px);padding:17px;border-radius:18px}}
@media(prefers-reduced-motion:reduce){body.nv1500 .nv-card-icon svg{transition:none!important}}

/* A standard refresh arrow is attached to actual retry operations, never a decorative fake control. */
.ppu-retry-icon{width:19px;height:19px;flex:none;display:inline-block;vertical-align:middle;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;transform-origin:50% 50%}
button.ppu-retry,.ppu2090-connectivity-retry{display:inline-flex!important;justify-content:center;align-items:center;gap:9px;min-height:40px;min-width:40px;border-radius:11px;transition:background .18s ease,transform .18s ease}
button.ppu-retry:hover,.ppu2090-connectivity-retry:hover{filter:brightness(1.08)}
button.ppu-retry:active,.ppu2090-connectivity-retry:active{transform:scale(.97)}
button.ppu-retry:focus-visible,.ppu2090-connectivity-retry:focus-visible{outline:3px solid #55c9ef;outline-offset:3px}
button.ppu-retry.is-refreshing .ppu-retry-icon,.ppu2090-connectivity-retry[aria-busy="true"] .ppu-retry-icon{animation:ppu-refresh-spin .75s linear infinite}
.ppu2090-connectivity-retry:disabled{opacity:.8;cursor:progress}
@keyframes ppu-refresh-spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){button.ppu-retry,.ppu2090-connectivity-retry{transition:none!important}button.ppu-retry.is-refreshing .ppu-retry-icon,.ppu2090-connectivity-retry[aria-busy="true"] .ppu-retry-icon{animation:none!important}}

/* 2028.2: academic menu entries are real program destinations, not generic links. */
.ppu-programs-hub{padding:4px 16px 8px}
.ppu-programs-hub-link{width:100%;display:flex;align-items:center;gap:14px;text-align:start;min-height:68px;padding:13px 17px;border:1px solid var(--border,#badce0);border-radius:15px;background:linear-gradient(120deg,#eaf8f7,#f7fbff);color:#153e52;cursor:pointer;transition:transform .16s ease,background .16s ease}
.ppu-programs-hub-link span{display:flex;flex:1;flex-direction:column;gap:4px}
.ppu-programs-hub-link strong{font-size:14px;font-weight:800}
.ppu-programs-hub-link small{font-size:12px;color:#537482}
.ppu-programs-hub-link:hover{background:#d8f3f2;transform:translateY(-1px)}
.ppu-program-overview-item{min-height:102px;gap:12px;align-items:center}
.ppu-program-overview-item .ui-icon,.ppu-program-overview-item svg{flex-shrink:0}
.ppu-context-settings{border-style:dashed!important}
.ppu-student-preferences{margin:18px 0;padding:18px 20px;border:1px solid var(--line,#c7e1e2);border-radius:16px;background:var(--surface,#f6fafa)}
.ppu-student-preferences h2{font-size:1.05rem;margin:0 0 6px}
.ppu-student-preferences p{margin:0 0 12px;line-height:1.65}
.dark .ppu-programs-hub-link{background:#213c4b;color:#d9f7f9;border-color:#4b6770}
.dark .ppu-programs-hub-link small{color:#bdd2d5}
.dark .ppu-programs-hub-link:hover{background:#295567}
@media(max-width:700px){.ppu-program-overview-grid{grid-template-columns:1fr!important}.ppu-program-overview-item{width:100%;min-height:74px}.ppu-programs-hub{padding:4px 10px}.ppu-programs-hub-link{padding:10px 13px}.ppu-student-preferences{padding:15px}}
@media(prefers-reduced-motion:reduce){.ppu-programs-hub-link{transition:none}.ppu-programs-hub-link:hover{transform:none}}

.ppu-context-theme{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:10px 14px;margin:5px 9px;border-top:1px solid var(--line,#ccdddf);font-weight:700}
.ppu-context-theme .ppu-theme-switch{flex:none;min-width:62px}
@media(max-width:540px){.ppu-context-theme{flex-wrap:wrap}}
