:root{color-scheme:light;--navy:#102b43;--navy2:#173b58;--ink:#19334f;--muted:#657b8f;--sky:#eaf2f7;--panel:#fff;--line:#d7e3eb;--teal:#08aeb0;--teal-pale:#e0f5f3;--blue:#2a76bd;--gold:#ffc84b;--shadow:0 12px 32px rgba(16,43,67,.08);font-family:Tahoma,"Segoe UI",Arial,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--sky);color:var(--ink);min-height:100vh}.portal-shell{min-height:100vh;display:grid;grid-template-columns:250px minmax(0,1fr)}.sidebar{position:sticky;top:0;height:100vh;background:linear-gradient(180deg,var(--navy),#0d2237);color:#edf7ff;padding:25px 17px;display:flex;flex-direction:column;z-index:5}.brand{display:flex;gap:12px;align-items:center;color:inherit;text-decoration:none;padding:3px 8px 23px}.brand-mark{width:45px;height:45px;border-radius:15px;background:linear-gradient(145deg,#36d2ca,#1b7cc0);display:grid;place-items:center;color:white;font-size:25px;font-weight:800;box-shadow:0 7px 18px #04c7c43b}.brand strong,.brand small{display:block}.brand strong{font-size:20px;letter-spacing:.02em}.brand small{color:#b3cad9;margin-top:4px;font-size:12px}.local-badge{display:flex;align-items:center;gap:8px;margin:0 5px 22px;padding:9px 11px;border:1px solid #ffffff24;background:#ffffff0d;border-radius:10px;color:#cfe8ef;font-size:12px}.status-dot{width:8px;height:8px;border-radius:50%;background:#ffc84b;box-shadow:0 0 0 4px #ffc84b24}.main-nav{display:grid;gap:7px}.nav-link{border:0;background:transparent;color:#c5d6e1;text-align:right;font:inherit;padding:12px 13px;border-radius:10px;cursor:pointer;display:flex;gap:12px;align-items:center;transition:background .18s,color .18s}.nav-link>span{font-size:19px;width:21px;text-align:center;color:#71d9d1}.nav-link:hover,.nav-link:focus-visible{background:#ffffff12;color:#fff;outline:2px solid #51cbc4;outline-offset:1px}.nav-link.active{background:#22babc;color:#09273b;font-weight:700}.nav-link.active>span{color:#09273b}.sidebar-foot{margin-top:auto;border-top:1px solid #ffffff20;padding:15px 7px 3px;font-size:11px;line-height:1.65;color:#bbcedb}.sidebar-foot strong{color:#f4d992}.sidebar-foot p{margin:6px 0 0}.main-area{min-width:0;display:flex;flex-direction:column}.topbar{height:84px;padding:0 clamp(18px,4vw,50px);display:flex;align-items:center;gap:17px;background:#f7fafc;border-bottom:1px solid var(--line)}.page-heading{flex:1}.eyebrow{display:block;color:var(--teal);font-size:12px;font-weight:700;letter-spacing:.03em;margin-bottom:5px}.page-heading h1{font-size:20px;margin:0;color:var(--navy)}.top-actions{display:flex;align-items:center;gap:12px}.local-chip{padding:8px 11px;border:1px solid #d6e3ed;background:#fff;border-radius:999px;font-size:11px;color:#516a7f}.mode-switch{display:flex;border:1px solid var(--line);background:#edf3f7;border-radius:11px;padding:3px}.mode-button{border:0;background:transparent;color:#516a7f;border-radius:8px;padding:8px 11px;font:inherit;font-size:12px;cursor:pointer}.mode-button.active{background:#fff;color:var(--navy);box-shadow:0 2px 8px #163d5515;font-weight:700}.mode-button:focus-visible,.button:focus-visible,.menu-toggle:focus-visible{outline:3px solid #19b5b6;outline-offset:2px}.menu-toggle{display:none}.content-wrap{width:min(100%,1460px);padding:25px clamp(18px,4vw,50px) 38px;margin:0 auto;flex:1}.safety-banner{display:flex;gap:12px;align-items:center;border:1px solid #e4d19a;background:#fff9e9;border-radius:12px;padding:11px 14px;color:#5d4c26;margin-bottom:21px;font-size:12px;line-height:1.7}.safety-banner p{margin:0}.safety-icon{flex:0 0 25px;width:25px;height:25px;border-radius:50%;display:grid;place-items:center;background:#f5c34a;color:#453307;font-weight:800}.safety-banner.amber{background:#fff5df;border-color:#efd38f}.welcome-card{min-height:225px;border-radius:20px;padding:32px 36px;background:radial-gradient(circle at 86% 25%,#2e99b11c,transparent 27%),linear-gradient(115deg,#fff 0%,#f6fbfd 67%,#e3f4f4 100%);border:1px solid #d7e6ed;box-shadow:var(--shadow);display:flex;align-items:center;justify-content:space-between;gap:22px;overflow:hidden}.welcome-card h2{font-size:clamp(24px,3vw,34px);margin:8px 0 10px;color:var(--navy)}.welcome-card p{max-width:680px;color:#587087;line-height:1.8;margin:0 0 22px}.welcome-orbit{width:145px;height:145px;flex:0 0 145px;border-radius:50%;display:grid;place-items:center;position:relative;background:#e1f5f2;border:1px solid #b4e8e3;color:#0d6e82;font-size:62px;font-weight:800}.welcome-orbit:before,.welcome-orbit:after{content:"";position:absolute;border:1px solid #8edbd3;border-radius:50%;inset:13px}.welcome-orbit:after{inset:-12px;border-color:#cae8ef}.welcome-orbit i{position:absolute;width:12px;height:12px;background:var(--gold);border-radius:50%;top:9px;right:29px}.button{display:inline-flex;justify-content:center;align-items:center;text-decoration:none;border:1px solid var(--line);border-radius:10px;min-height:43px;padding:10px 16px;background:#fff;color:var(--navy);font:inherit;font-weight:700;cursor:pointer;transition:transform .16s,box-shadow .16s,filter .16s}.button:hover{transform:translateY(-1px);box-shadow:0 6px 14px #173a5319}.button.primary{background:var(--navy2);border-color:var(--navy2);color:#fff}.button.primary:hover{filter:brightness(1.11)}.stats-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:17px 0 29px}.stat-card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:17px 19px;display:flex;align-items:center;gap:13px;box-shadow:0 5px 14px #173a5308}.stat-icon{width:41px;height:41px;border-radius:12px;display:grid;place-items:center;background:var(--teal-pale);color:#087f84;font-size:20px}.stat-value{font-size:22px;color:var(--navy);font-weight:800}.stat-label{font-size:12px;color:var(--muted);margin-top:3px}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:14px;margin:0 0 13px}.section-heading h2{font-size:21px;margin:0;color:var(--navy)}.subtle{font-size:12px;color:var(--muted)}.subject-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px}.subject-card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:16px;min-height:138px;box-shadow:0 4px 13px #173a5307}.subject-top{display:flex;align-items:center;gap:10px}.subject-icon{width:37px;height:37px;border-radius:11px;background:#e7f4f1;color:#079a94;display:grid;place-items:center;font-weight:800}.subject-card:nth-child(2) .subject-icon{background:#edf0fa;color:#606fc2}.subject-card:nth-child(3) .subject-icon{background:#eaf3fb;color:#3875ad}.subject-card:nth-child(4) .subject-icon{background:#fff2e6;color:#c78035}.subject-card h3{margin:0;font-size:15px;color:var(--navy)}.subject-card p{font-size:11px;line-height:1.6;color:var(--muted);margin:12px 0 0}.catalog-list{margin-top:10px;display:grid;gap:7px}.catalog-course{border:1px solid #e1eaf0;border-radius:9px;background:#f8fbfd;padding:9px 10px}.catalog-course summary{cursor:pointer;color:#284d69;font-size:12px;font-weight:700}.catalog-course summary:focus-visible{outline:2px solid var(--teal);border-radius:4px}.catalog-course ul{margin:8px 0 0;padding-inline-start:20px;color:#62798b;font-size:11px;line-height:1.8}.lower-heading{margin-top:29px}.workflow-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.workflow-card{background:#fff;border:1px solid var(--line);border-radius:13px;padding:15px;min-height:134px}.step-number{display:inline-flex;width:27px;height:27px;align-items:center;justify-content:center;border-radius:8px;background:#e0f5f3;color:#068d91;font-size:11px;font-weight:800}.workflow-card h3{margin:11px 0 6px;font-size:14px;color:var(--navy)}.workflow-card p,.info-card p{font-size:12px;color:var(--muted);line-height:1.75;margin:0}.view-panel[hidden]{display:none!important}.view-panel{display:none}.view-panel.active{display:block}.page-section-heading{margin:9px 0 18px}.two-column{display:grid;grid-template-columns:1.15fr .85fr;gap:15px}.info-card{background:#fff;border:1px solid var(--line);border-radius:15px;padding:20px;box-shadow:0 7px 18px #173a5308}.card-icon{width:39px;height:39px;border-radius:11px;display:grid;place-items:center;font-size:20px;margin-bottom:12px}.card-icon.teal{background:#e0f5f3;color:#078d8b}.card-icon.blue{background:#e8eff9;color:#306dad}.info-card h3{margin:0 0 8px;font-size:17px;color:var(--navy)}.compact-catalog{display:grid;gap:12px;margin-top:15px}.compact-subject{border-top:1px solid #e8eef2;padding-top:11px}.compact-subject strong{color:#2a4a64;font-size:13px}.compact-subject p{margin-top:5px}.check-list{padding-inline-start:20px;color:#526e82;line-height:2;font-size:12px}.callout{border-right:3px solid var(--gold);padding:9px 11px;background:#fff8e8;border-radius:5px;margin-top:14px!important}.empty-state{background:#f9fbfc;border:1px dashed #c7d8e2;border-radius:15px;text-align:center;padding:28px 15px;margin-top:16px}.empty-state h3{margin:9px 0 5px;color:var(--navy);font-size:16px}.empty-state p{margin:0;color:var(--muted);font-size:12px;line-height:1.7}.empty-icon{margin:auto;width:37px;height:37px;border-radius:50%;display:grid;place-items:center;background:#e8f4f6;color:#258899;font-size:23px}.review-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px;margin-top:18px}.review-steps article{padding:17px;border:1px solid var(--line);background:#fff;border-radius:13px}.review-steps b,.review-steps span{display:block}.review-steps b{color:var(--navy);margin-bottom:8px}.review-steps span{font-size:12px;color:var(--muted);line-height:1.7}.note-block{margin-top:16px}.login-placeholder{max-width:640px;margin:34px auto 17px;text-align:center;background:#fff;border:1px solid var(--line);border-radius:18px;padding:34px 28px;box-shadow:var(--shadow)}.login-mark{width:53px;height:53px;margin:0 auto 14px;border-radius:15px;background:#e4f5f3;color:#0d8d8c;display:grid;place-items:center;font-size:27px}.login-placeholder h2{margin:7px 0 10px;color:var(--navy)}.login-placeholder>p{max-width:490px;margin:0 auto;color:var(--muted);line-height:1.8;font-size:13px}.login-checks{display:flex;justify-content:center;flex-wrap:wrap;gap:8px;margin-top:19px}.login-checks span{background:#f2f6f8;border:1px solid #e1e9ee;border-radius:99px;padding:7px 10px;color:#526c7e;font-size:11px}.future-card{max-width:640px;margin:auto}.footer{text-align:center;color:#73889a;border-top:1px solid #dce6ed;padding:14px;font-size:11px}.mobile-scrim{display:none}
@media(max-width:1120px){.subject-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.workflow-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.top-actions{gap:7px}.local-chip{display:none}}
@media(max-width:780px){.portal-shell{grid-template-columns:minmax(0,1fr)}.sidebar{position:fixed;inset-block:0;right:0;width:min(82vw,290px);height:100dvh;transform:translateX(105%);transition:transform .2s;box-shadow:-12px 0 32px #071c2b30}.sidebar.open{transform:translateX(0)}.mobile-scrim{position:fixed;inset:0;background:#071b2dcc;z-index:4}.mobile-scrim.show{display:block}.topbar{height:auto;min-height:75px;padding:12px 15px;gap:11px}.menu-toggle{display:grid;place-items:center;width:40px;height:40px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--navy);font-size:20px;cursor:pointer}.page-heading h1{font-size:17px}.page-heading .eyebrow{font-size:10px}.top-actions{flex-direction:column;align-items:flex-end;gap:4px}.mode-switch{padding:2px}.mode-button{font-size:10px;padding:7px 8px}.content-wrap{padding:15px 13px 26px}.welcome-card{padding:22px 19px;min-height:0}.welcome-card p{font-size:13px}.welcome-orbit{width:76px;height:76px;flex-basis:76px;font-size:34px}.welcome-orbit:before{inset:7px}.welcome-orbit:after{inset:-7px}.welcome-orbit i{width:8px;height:8px;top:5px;right:14px}.stats-grid{gap:8px;margin:12px 0 23px}.stat-card{padding:11px 8px;gap:7px}.stat-icon{width:31px;height:31px;font-size:15px;border-radius:9px}.stat-value{font-size:18px}.stat-label{font-size:10px}.section-heading h2{font-size:17px}.subject-grid{gap:9px}.subject-card{padding:12px;min-height:126px}.subject-card h3{font-size:13px}.subject-card p{font-size:10px}.workflow-grid{gap:9px}.workflow-card{padding:12px;min-height:145px}.workflow-card h3{font-size:13px}.workflow-card p{font-size:11px}.two-column{grid-template-columns:1fr}.review-steps{grid-template-columns:1fr}.page-section-heading{align-items:center}.page-section-heading .button{font-size:12px;padding:8px 11px}.safety-banner{align-items:flex-start;padding:10px;font-size:11px}.footer{padding:11px}}
@media(max-width:430px){.topbar{flex-wrap:wrap}.page-heading{min-width:calc(100% - 60px)}.top-actions{width:100%;align-items:stretch;margin-inline-start:51px}.mode-switch{width:100%;justify-content:stretch}.mode-button{flex:1}.welcome-card{gap:12px;padding:20px 14px}.welcome-card h2{font-size:22px}.welcome-card p{font-size:12px}.welcome-orbit{width:58px;height:58px;flex-basis:58px;font-size:27px}.stats-grid{grid-template-columns:1fr}.stat-card{padding:10px 12px}.subject-grid,.workflow-grid{grid-template-columns:1fr 1fr}.subject-card{min-height:135px}.safety-banner p{font-size:10px}.login-placeholder{padding:25px 17px}}

/* Supabase Auth scaffold; disabled until a separate isolated test project is configured. */
.auth-card{max-width:720px;text-align:right}
.auth-card>p{max-width:none;margin:0;color:var(--muted);line-height:1.8;font-size:13px}
.auth-form{display:grid;gap:8px;max-width:480px;margin:22px auto 12px}
.auth-form label{font-size:13px;font-weight:700;color:var(--navy);margin-top:5px}
.auth-form input{width:100%;min-height:44px;border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:#fff;color:var(--ink);font:inherit;direction:ltr;text-align:left}
.auth-form input:focus-visible{outline:3px solid #19b5b6;outline-offset:2px}
.auth-submit{width:100%;margin-top:8px}
.auth-submit:disabled{opacity:.56;cursor:not-allowed;transform:none;box-shadow:none}
.auth-message{max-width:480px;margin:11px auto 0!important;padding:10px 12px;border:1px solid #d8e3eb;border-radius:10px;background:#f4f8fb;color:#405c72!important;font-size:12px!important;text-align:center}
.auth-message.warning{background:#fff7e3;border-color:#efd392;color:#654d16!important}
.auth-message.error{background:#fff1ef;border-color:#f1c2ba;color:#8a3429!important}
.auth-message.success{background:#e9f7ef;border-color:#b6dfc7;color:#1c6640!important}
.auth-identity{max-width:540px;margin:18px auto 0;padding:18px;border:1px solid #b7dfcc;border-radius:13px;background:#f1faf5;text-align:right}
.auth-identity h3{margin:0 0 8px;color:#194b35;font-size:16px}
.auth-identity p{margin:0 0 10px;color:#345b48;font-size:12px;line-height:1.7;overflow-wrap:anywhere}
.auth-identity ul{margin:8px 0 14px;padding-inline-start:22px;color:#345b48;font-size:12px;line-height:1.8}
.auth-identity .auth-readonly-note{padding:9px 10px;border-radius:8px;background:#e4f3ea;color:#365745}
html[data-real-auth-active="true"] .mode-switch{display:none!important}
.auth-config{max-width:540px;margin:16px auto 8px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:#f7fafc}
.auth-config summary{cursor:pointer;font-weight:700;color:var(--navy)}
.auth-config>p{margin:9px 0;color:var(--muted);font-size:12px;line-height:1.7}
.auth-config .auth-form{margin:12px 0 8px}
.auth-config .auth-message{max-width:none}
.auth-identity[hidden]{display:none!important}
@media(max-width:780px){.auth-card{padding:26px 18px}.auth-form{max-width:none}.auth-identity{max-width:none}.auth-card .login-checks{justify-content:flex-start}}
@media(max-width:430px){.auth-card{padding:23px 15px}.auth-form input{font-size:16px}.auth-identity{padding:14px}}
