/* App controls use the website's existing colours and typography. */
.pwa-app-nav[hidden],.pwa-connection[hidden],.pwa-update[hidden],
[data-install-app][hidden],[data-install-guide][hidden],
[data-install-status][hidden],[data-app-install-item][hidden]{display:none!important}
.pwa-app-nav{display:flex;align-items:center;gap:18px;padding:12px 0;font-size:.9rem;font-weight:800}
.pwa-app-nav button{font:inherit;border:1px solid var(--border);border-radius:9px;padding:7px 13px;background:#fff;color:var(--blue-dark);cursor:pointer}
.pwa-app-nav button:disabled{opacity:.5;cursor:default}
.pwa-connection{padding:12px 0;background:#fff7df;color:#674400;border-bottom:1px solid #f0dfa8;font-size:.92rem}
.pwa-form-note{padding:10px 13px;border-radius:10px;background:#fff7df;color:#674400;font-size:.92rem}
.pwa-form-note[hidden]{display:none!important}
.contact-form button[type="submit"]:disabled,.contact-form input[type="submit"]:disabled{opacity:.55;cursor:not-allowed}
.pwa-update{position:fixed;left:18px;bottom:18px;z-index:1300;width:min(440px,calc(100% - 116px));padding:18px;border:1px solid var(--border);border-top:4px solid var(--blue);border-radius:16px;background:#fff;box-shadow:0 12px 40px rgba(15,39,68,.2);color:var(--ink)}
.pwa-update p{margin:0 0 12px;font-weight:700;line-height:1.4}
.pwa-update-actions{display:flex;gap:10px;flex-wrap:wrap}
.pwa-update button{font:inherit;font-weight:800;border:0;border-radius:9px;padding:8px 14px;cursor:pointer;background:var(--blue-dark);color:#fff}
.pwa-update .pwa-later{background:var(--light);color:var(--ink);border:1px solid var(--border)}
.pwa-install-hero{display:grid;grid-template-columns:1.2fr .8fr;align-items:center;gap:48px}
.pwa-app-card{background:#fff;border:1px solid var(--border);border-top:5px solid var(--blue);border-radius:24px;padding:32px;box-shadow:var(--shadow)}
.pwa-app-card .pwa-app-icon{display:block;width:96px;height:96px;margin-bottom:22px;border-radius:20px;box-shadow:0 5px 18px rgba(15,39,68,.1)}
.pwa-app-card .pwa-app-wordmark{display:block;width:min(100%,280px);height:auto;border-radius:0}
.pwa-app-card p{color:var(--muted)}
.pwa-feature-list{margin:24px 0;padding-left:22px;color:var(--ink)}
.pwa-feature-list li{margin:10px 0}
.pwa-guide-card ol{padding-left:22px;margin:18px 0 0;color:#475569}
.pwa-guide-card li{padding-left:3px;margin:12px 0}
.pwa-install-hint{max-width:800px;margin:30px auto 0;text-align:center;color:var(--muted)}
#installation-instructions{scroll-margin-top:110px}
.pwa-offline-page{max-width:850px}
.pwa-offline-links{display:flex;gap:12px;flex-wrap:wrap;margin:30px 0}
.pwa-offline-links a{background:#fff;border:1px solid var(--border);border-radius:12px;padding:12px 16px;font-weight:800}
.pwa-app-nav a:focus-visible,.pwa-offline-links a:focus-visible,[data-app-install-link]:focus-visible,
.pwa-app-nav button:focus-visible,.pwa-update button:focus-visible,[data-install-app]:focus-visible,
[data-install-guide]:focus-visible,[data-retry-page]:focus-visible{outline:3px solid var(--blue-dark);outline-offset:4px}
@media(max-width:900px){.pwa-install-hero{grid-template-columns:1fr;gap:30px}.pwa-app-card{max-width:620px}.pwa-update{font-size:.9rem}}
@media(max-width:600px){.pwa-app-card{padding:24px}.pwa-update{left:12px;bottom:12px;width:calc(100% - 94px);padding:14px}.pwa-update button{padding:8px 11px}.pwa-offline-links{flex-direction:column}}

.main-nav a.student-nav{color:var(--blue-dark);background:#edf8ff;font-weight:800}

@media(min-width:1051px){.compact-header .main-nav{flex-wrap:wrap;justify-content:center;flex:1}.compact-header .logo-link,.compact-header .header-cta{flex-shrink:0}}
.pwa-install-hero .eyebrow{text-transform:none}
