@font-face{font-family:__Plus_Jakarta_Sans_532bb9;font-style:normal;font-weight:200 800;font-display:swap;src:url(/_next/static/media/6fe53d21e6e7ebd8-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:__Plus_Jakarta_Sans_532bb9;font-style:normal;font-weight:200 800;font-display:swap;src:url(/_next/static/media/8ebc6e9dde468c4a-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:__Plus_Jakarta_Sans_532bb9;font-style:normal;font-weight:200 800;font-display:swap;src:url(/_next/static/media/9e7b0a821b9dfcb4-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:__Plus_Jakarta_Sans_532bb9;font-style:normal;font-weight:200 800;font-display:swap;src:url(/_next/static/media/636a5ac981f94f8b-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:__Plus_Jakarta_Sans_Fallback_532bb9;src:local("Arial");ascent-override:98.88%;descent-override:21.15%;line-gap-override:0.00%;size-adjust:104.98%}.__className_532bb9{font-family:__Plus_Jakarta_Sans_532bb9,__Plus_Jakarta_Sans_Fallback_532bb9;font-style:normal}.__variable_532bb9{--font-body:"__Plus_Jakarta_Sans_532bb9","__Plus_Jakarta_Sans_Fallback_532bb9"}@font-face{font-family:__Fraunces_482ce5;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/fb526027db1fc1ae-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:__Fraunces_482ce5;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/4da3161b738b07dd-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:__Fraunces_482ce5;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/af4bf8399d1aacdf-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:__Fraunces_Fallback_482ce5;src:local("Times New Roman");ascent-override:84.71%;descent-override:22.09%;line-gap-override:0.00%;size-adjust:115.45%}.__className_482ce5{font-family:__Fraunces_482ce5,__Fraunces_Fallback_482ce5;font-style:normal}.__variable_482ce5{--font-display:"__Fraunces_482ce5","__Fraunces_Fallback_482ce5"}:root{--color-primary:var(--color-brand-600);--color-primary-hover:var(--color-brand-700);--color-focus:var(--color-brand-600);--color-accent-soft:var(--color-accent-tint);--gradient-hero:linear-gradient(155deg,color-mix(in srgb,var(--color-primary) 58%,#000) 0%,var(--color-primary) 100%);--color-hero-ink:#fff;--color-hero-sub:hsla(0,0%,100%,.92);--color-hero-chip:hsla(0,0%,100%,.16);--color-hero-chip-border:hsla(0,0%,100%,.55);--color-on-danger:#fff;--radius-sm:6px;--radius-md:12px;--radius-lg:16px;--radius-pill:999px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-6:24px;--space-8:32px;--space-12:48px;--icon-menu:16px;--icon-menu-nav:22px;--font-sans:var(--font-body),"Segoe UI",sans-serif;--display-font:var(--font-display),Georgia,serif;--text-sm:0.875rem;--text-base:1rem;--text-lg:1.25rem;--text-xl:1.75rem;--text-2xl:2.5rem;--shadow-sm:0 1px 2px color-mix(in srgb,var(--color-text) 8%,transparent);--shadow-md:0 10px 28px color-mix(in srgb,var(--color-brand-600) 14%,transparent);--shadow-card:0 1px 2px color-mix(in srgb,var(--color-text) 8%,transparent),0 10px 24px -14px color-mix(in srgb,var(--color-text) 28%,transparent);--tap:44px;--surface-2:var(--color-surface-2);--surface-muted:var(--color-surface-2);--border:var(--color-border);--accent:var(--color-accent)}:root,[data-theme=light],[data-theme=teal]{--color-brand-50:#e6f7f5;--color-brand-100:#b8ebe4;--color-brand-200:#7dd3c8;--color-brand-500:#0d9488;--color-brand-600:#0f766e;--color-brand-700:#115e59;--color-accent:#ea580c;--color-accent-tint:#ffedd5;--color-accent-ink:#9a3412;--color-bg:#eef5f4;--color-bg-accent:#dceeea;--color-surface:#fff;--color-surface-2:#f3faf8;--color-border:#c9ddd9;--color-text:#0f1f1d;--color-text-muted:#4a635f;--color-on-primary:#fff;--color-success:#15803d;--color-warning:#b45309;--color-danger:#c81e1e}[data-theme=royal]{--color-brand-50:#eaf0fb;--color-brand-100:#c7d6f4;--color-brand-200:#93afe8;--color-brand-500:#2f5fc4;--color-brand-600:#1e4aa8;--color-brand-700:#14377f;--color-accent:#f2b705;--color-accent-tint:#fff1c2;--color-accent-ink:#7a5600;--color-bg:#f3f6fc;--color-bg-accent:#e3ebf8;--color-surface:#fff;--color-surface-2:#f5f8fd;--color-border:#cfd9ec;--color-text:#101a33;--color-text-muted:#4a5878;--color-on-primary:#fff;--color-success:#15803d;--color-warning:#b45309;--color-danger:#c81e1e}[data-theme=maroon]{--color-brand-50:#fbeff0;--color-brand-100:#f2cfd3;--color-brand-200:#e2a0a8;--color-brand-500:#a8283a;--color-brand-600:#8b1c2d;--color-brand-700:#6b1422;--color-accent:#b8892b;--color-accent-tint:#f6ead0;--color-accent-ink:#6f4f0c;--color-bg:#fbf5e9;--color-bg-accent:#f5ebd6;--color-surface:#fffdf8;--color-surface-2:#fbf3e3;--color-border:#e6d9bd;--color-text:#2a1a1a;--color-text-muted:#66524f;--color-on-primary:#fff;--color-success:#15803d;--color-warning:#a8470a;--color-danger:#c81e1e}[data-theme=forest]{--color-brand-50:#ecf6ee;--color-brand-100:#c8e6cf;--color-brand-200:#94cfa4;--color-brand-500:#2f8f4e;--color-brand-600:#25773f;--color-brand-700:#1b5a30;--color-accent:#f59e0b;--color-accent-tint:#fdecc8;--color-accent-ink:#8a4b08;--color-bg:#f1f6ef;--color-bg-accent:#e3eedf;--color-surface:#fff;--color-surface-2:#f5faf3;--color-border:#cfdfc9;--color-text:#13241a;--color-text-muted:#4b6354;--color-on-primary:#fff;--color-success:#15803d;--color-warning:#a8470a;--color-danger:#c81e1e}[data-theme=indigo]{--color-brand-50:#eef0ff;--color-brand-100:#d0d5fb;--color-brand-200:#a5aef6;--color-brand-500:#5b5bd6;--color-brand-600:#4a46c4;--color-brand-700:#3a36a0;--color-accent:#ff6b57;--color-accent-tint:#ffe5e0;--color-accent-ink:#b3321f;--color-bg:#f4f4fc;--color-bg-accent:#e6e7f8;--color-surface:#fff;--color-surface-2:#f7f7fd;--color-border:#d8daf0;--color-text:#16162e;--color-text-muted:#55577a;--color-on-primary:#fff;--color-success:#15803d;--color-warning:#a8470a;--color-danger:#c81e1e;--gradient-hero:linear-gradient(155deg,color-mix(in srgb,var(--color-primary) 58%,#000) 0%,#7a3fd1 100%);--display-font:var(--font-body),"Segoe UI",system-ui,sans-serif}[data-theme=dark],[data-theme=midnight]{--color-brand-50:#0f2a33;--color-brand-100:#123a46;--color-brand-200:#1a5566;--color-brand-500:#22b8cf;--color-brand-600:#22d3ee;--color-brand-700:#a5f0fb;--color-accent:#f5b14c;--color-accent-tint:#3a2a10;--color-accent-ink:#fbc978;--color-bg:#0b1220;--color-bg-accent:#0f1829;--color-surface:#121b2d;--color-surface-2:#182338;--color-border:#243148;--color-text:#e8eef8;--color-text-muted:#9db0cc;--color-on-primary:#04222a;--color-success:#4ade80;--color-warning:#fbbf24;--color-danger:#f87171;--gradient-hero:linear-gradient(155deg,#0f3140,#0b1220);--display-font:var(--font-body),"Segoe UI",system-ui,sans-serif;--shadow-sm:0 1px 2px rgba(0,0,0,.4);--shadow-md:0 10px 28px rgba(0,0,0,.45);--shadow-card:0 1px 2px rgba(0,0,0,.4),0 10px 24px -14px rgba(0,0,0,.6);--color-on-danger:#2a0a0a;color-scheme:dark}*,:after,:before{box-sizing:border-box}body,html{margin:0;padding:0}html[data-text=large]{font-size:112.5%}body{font-family:var(--font-sans);background-color:var(--color-bg);background-image:radial-gradient(ellipse 90% 55% at 0 -10%,var(--color-brand-100),transparent 55%),radial-gradient(ellipse 70% 45% at 100% 0,color-mix(in srgb,var(--color-accent) 12%,transparent),transparent 50%),linear-gradient(180deg,var(--color-bg-accent) 0,var(--color-bg) 42%,color-mix(in srgb,var(--color-bg) 70%,var(--color-surface)) 100%);background-attachment:fixed;color:var(--color-text);font-size:var(--text-base);line-height:1.5;-webkit-font-smoothing:antialiased;min-height:100vh}.dash-value,.portal-brand,h1,h2{font-family:var(--display-font);letter-spacing:-.02em}a{color:var(--color-primary);text-decoration:none}a:hover{color:var(--color-primary-hover)}.container{max-width:960px;margin:0 auto}.card,.container{padding:var(--space-6)}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease}a.card:hover{border-color:var(--color-brand-200);box-shadow:var(--shadow-md);transform:translateY(-2px);color:inherit}.btn-primary{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);background:var(--color-primary);color:var(--color-on-primary);border:none;border-radius:var(--radius-md);padding:var(--space-3) var(--space-6);min-height:var(--tap);font-size:var(--text-base);font-weight:700;font-family:inherit;cursor:pointer;transition:background .15s ease,transform .15s ease}.btn-primary:hover{background:var(--color-primary-hover);color:var(--color-on-primary);transform:translateY(-1px)}.muted{color:var(--color-text-muted)}.portal-shell{min-height:100vh;display:flex;flex-direction:column;padding-bottom:calc(72px + env(safe-area-inset-bottom));animation:portal-in .35s ease-out}@keyframes portal-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.portal-top{justify-content:space-between;gap:var(--space-4);padding:var(--space-4) var(--space-4);border-bottom:1px solid var(--color-border);background:var(--gradient-hero);color:var(--color-hero-ink);position:-webkit-sticky;position:sticky;top:0;z-index:10;box-shadow:var(--shadow-md)}.portal-top,.portal-top-actions{display:flex;flex-wrap:wrap;align-items:center}.portal-top-actions{justify-content:flex-end;gap:var(--space-2)}.portal-top .btn-ghost{border-color:var(--color-hero-chip-border);color:var(--color-hero-ink);background:var(--color-hero-chip)}.portal-top .btn-ghost:hover{background:var(--color-hero-chip-border);color:var(--color-hero-ink)}.locale-switcher select{min-width:8.5rem;padding:.35rem .55rem;border-radius:8px;min-height:var(--tap);border:1px solid var(--color-hero-chip-border);background:var(--color-hero-chip);color:var(--color-hero-ink);font:inherit;font-size:var(--text-sm)}.locale-switcher select option{color:var(--color-text);background:var(--color-surface)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.portal-brand{font-weight:700;font-size:var(--text-lg);letter-spacing:-.02em;color:var(--color-hero-ink)}.portal-subtitle{color:var(--color-hero-sub);font-size:var(--text-sm)}.portal-body{display:grid;grid-template-columns:minmax(0,1fr);grid-gap:var(--space-4);gap:var(--space-4);width:100%;max-width:1100px;margin:0 auto;padding:var(--space-4);flex:1 1}.portal-side{display:none;flex-direction:column;gap:4px;padding:var(--space-3);background:color-mix(in srgb,var(--color-surface) 88%,transparent);border:1px solid var(--color-border);border-radius:var(--radius-lg);align-self:start;position:-webkit-sticky;position:sticky;top:88px}.portal-nav-link{display:flex;justify-content:space-between;align-items:center;padding:var(--space-3);border-radius:var(--radius-md);color:var(--color-text);border-left:3px solid transparent;transition:background .15s ease,border-color .15s ease}.portal-nav-link.active,.portal-nav-link:hover{background:var(--color-brand-50);color:var(--color-brand-700)}.portal-nav-link.active{border-left-color:var(--color-accent);font-weight:600}.portal-stub{font-size:11px;color:var(--color-text-muted);border:1px solid var(--color-border);border-radius:6px;padding:1px 6px}.portal-main{min-width:0}.portal-page h1{margin:0 0 var(--space-4);font-size:var(--text-xl);color:var(--color-brand-700)}.portal-page-head{display:flex;flex-wrap:wrap;gap:var(--space-3);align-items:center;justify-content:space-between;margin-bottom:var(--space-4)}.portal-page-head h1{margin:0}.portal-bottom{position:fixed;left:0;right:0;bottom:0;display:grid;grid-template-columns:repeat(5,1fr);grid-gap:2px;gap:2px;background:var(--color-surface);border-top:1px solid var(--color-border);padding:6px 4px calc(6px + env(safe-area-inset-bottom));z-index:20}.portal-bottom-link{display:flex;align-items:center;justify-content:center;min-height:48px;text-align:center;font-size:12px;line-height:1.2;color:var(--color-text-muted);padding:4px 2px;border-radius:var(--radius-sm);background:transparent;border:0;font-family:inherit;cursor:pointer;overflow-wrap:anywhere}.portal-bottom-link.active{background:var(--color-brand-50);font-weight:600}.btn-ghost{background:transparent;border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3);color:var(--color-text);cursor:pointer}.btn-danger{display:inline-flex;align-items:center;gap:var(--space-2);background:var(--color-danger);color:var(--color-on-danger);border:none;border-radius:var(--radius-md);padding:var(--space-3) var(--space-6);font-size:var(--text-base);cursor:pointer}.btn-danger:disabled,.btn-primary:disabled{opacity:.6;cursor:not-allowed}.admin-toolbar{display:flex;flex-wrap:wrap;gap:var(--space-4);margin-bottom:var(--space-4);align-items:end}.admin-form label,.admin-toolbar label{display:grid;grid-gap:var(--space-1);gap:var(--space-1);font-size:var(--text-sm)}.admin-form input,.admin-form select,.admin-form textarea,.admin-toolbar select{padding:var(--space-3);border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);font-size:var(--text-base);min-width:12rem;font-family:inherit}.admin-form input:focus,.admin-form select:focus,.admin-form textarea:focus,.admin-toolbar select:focus{border-color:var(--color-brand-500);box-shadow:0 0 0 3px var(--color-brand-100);outline:none}.admin-form fieldset{border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-4);margin:0 0 var(--space-4);display:grid;grid-gap:var(--space-3);gap:var(--space-3);background:var(--color-surface-2)}.admin-form legend{padding:0 var(--space-2);font-weight:600;color:var(--color-brand-700)}.admin-form .field-hint{color:var(--color-text-muted);font-size:var(--text-sm)}.admin-actions{display:flex;flex-wrap:wrap;gap:var(--space-3)}.admin-table-wrap{overflow:auto}.admin-table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.admin-table td,.admin-table th{text-align:left;padding:var(--space-3);border-bottom:1px solid var(--color-border);vertical-align:middle}.admin-table th{font-weight:600;background:var(--color-brand-50)}.admin-table tbody tr:hover{background:color-mix(in srgb,var(--color-brand-50) 70%,transparent)}.admin-dl{display:grid;grid-gap:var(--space-3);gap:var(--space-3);margin:0}.admin-dl div{display:grid;grid-gap:2px;gap:2px}.admin-dl dt{color:var(--color-text-muted);font-size:var(--text-sm)}.admin-dl dd{margin:0}.status-pill{display:inline-block;padding:2px 8px;border-radius:6px;font-size:12px;text-transform:capitalize;background:var(--color-surface-2);border:1px solid var(--color-border)}.status-pill.status-active,.status-pill.status-admitted,.status-pill.status-contacted,.status-pill.status-present{color:var(--color-success);border-color:color-mix(in srgb,var(--color-success) 45%,var(--color-surface));background:color-mix(in srgb,var(--color-success) 12%,var(--color-surface))}.status-pill.status-applied,.status-pill.status-late,.status-pill.status-trial,.status-pill.status-visited{color:var(--color-warning);border-color:color-mix(in srgb,var(--color-warning) 45%,var(--color-surface));background:color-mix(in srgb,var(--color-warning) 12%,var(--color-surface))}.status-pill.status-absent,.status-pill.status-cancelled,.status-pill.status-lost,.status-pill.status-suspended{color:var(--color-danger);border-color:color-mix(in srgb,var(--color-danger) 45%,var(--color-surface));background:color-mix(in srgb,var(--color-danger) 12%,var(--color-surface))}.dash-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:var(--space-3);gap:var(--space-3)}.dash-hero{grid-column:1/-1;border-top:3px solid var(--color-accent);background:linear-gradient(135deg,var(--color-surface) 0,var(--color-brand-50) 100%)}.dash-grid>a.card:not(.dash-hero){border-top:3px solid var(--color-brand-500)}.dash-hero h2{margin:0 0 var(--space-2)}.dash-label{color:var(--color-text-muted);font-size:var(--text-sm);font-weight:600;text-transform:uppercase;letter-spacing:.04em}.dash-value{font-size:1.6rem;font-weight:700;margin-top:var(--space-1);color:var(--color-brand-700)}.portal-json{overflow:auto;font-size:12px;background:var(--color-surface-2);padding:var(--space-3);border-radius:var(--radius-md)}.portal-error{color:var(--color-danger)}.portal-loading{padding:var(--space-8)}.stack{display:grid;grid-gap:var(--space-4);gap:var(--space-4)}.simple-list{margin:0;padding-left:1.1rem}.child-switcher{display:flex;flex-direction:column;gap:4px;font-size:var(--text-sm)}.child-switcher select{padding:var(--space-2);border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text)}.auth-shell{min-height:100vh;display:grid;place-items:center;padding:var(--space-6)}.auth-card{width:100%;max-width:420px;border-top:4px solid var(--color-accent)}.auth-brand{font-family:var(--display-font);font-size:var(--text-2xl);font-weight:700;color:var(--color-brand-700);margin:0 0 var(--space-2);line-height:1.1}@media (min-width:860px){.portal-shell{padding-bottom:0}.portal-body{grid-template-columns:220px minmax(0,1fr)}.portal-side{display:flex}.portal-bottom{display:none}.dash-grid{grid-template-columns:repeat(3,1fr)}.dash-hero{grid-column:1/-1}}.gc-dialog{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);color:var(--color-text);box-shadow:var(--shadow-md);padding:var(--space-6);width:min(32rem,calc(100vw - var(--space-6)));max-height:calc(100vh - var(--space-6));overflow:auto}.gc-dialog::-webkit-backdrop{background:color-mix(in srgb,var(--color-text) 45%,transparent)}.gc-dialog::backdrop{background:color-mix(in srgb,var(--color-text) 45%,transparent)}.gc-dialog-title{margin:0;font-size:var(--text-lg)}.gc-dialog .admin-form input,.gc-dialog .admin-form textarea{min-width:0;width:100%;box-sizing:border-box}.admin-form input[type=checkbox]{min-width:0;width:auto}.check-row{display:flex!important;align-items:center;gap:var(--space-2)}.check-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(10rem,1fr));grid-gap:var(--space-2);gap:var(--space-2)}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(10rem,1fr));grid-gap:var(--space-3);gap:var(--space-3)}.stat-grid .card{padding:var(--space-3)}.quota-row{display:grid;grid-gap:var(--space-1);gap:var(--space-1);margin-bottom:var(--space-3)}.quota-row progress{width:100%;height:.6rem;accent-color:var(--color-primary)}.quota-row.quota-near progress{accent-color:var(--color-warning)}.quota-row.quota-over progress{accent-color:var(--color-danger)}.status-pill.status-ok,.status-pill.status-succeeded{color:var(--color-success);border-color:var(--color-success)}.status-pill.status-degraded,.status-pill.status-pending,.status-pill.status-queued,.status-pill.status-running{color:var(--color-warning);border-color:var(--color-warning)}.status-pill.status-disabled,.status-pill.status-down,.status-pill.status-failed,.status-pill.status-locked{color:var(--color-danger);border-color:var(--color-danger)}.table-actions{display:flex;flex-wrap:wrap;gap:var(--space-2)}.btn-small{padding:var(--space-1) var(--space-3)}.btn-small,.notice{font-size:var(--text-sm)}.notice{border-left:3px solid var(--color-warning);padding:var(--space-2) var(--space-3);background:var(--color-surface-2);border-radius:var(--radius-sm)}.admin-table td.wrap{max-width:22rem;overflow-wrap:anywhere}@media (max-width:640px){.gc-dialog{padding:var(--space-4)}}.install-card{grid-column:1/-1;display:grid;grid-gap:var(--space-3);gap:var(--space-3);border-left:4px solid var(--color-accent)}.install-card ol,.install-card p{margin:var(--space-1) 0 0}.install-steps{padding-left:1.2rem}.install-card-actions{display:flex;flex-wrap:wrap;gap:var(--space-2)}.stack-form{display:grid;grid-gap:var(--space-4);gap:var(--space-4);margin-top:var(--space-4)}.field{display:grid;grid-gap:var(--space-1);gap:var(--space-1)}.input-lg{min-height:44px;width:100%;border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);font-size:var(--text-base);font-family:inherit}.input-lg,.secret-box{padding:var(--space-3)}.secret-box{display:grid;grid-gap:var(--space-3);gap:var(--space-3);border:1px dashed var(--color-warning);border-radius:var(--radius-md);background:var(--color-surface-2)}.secret-value{display:block;padding:var(--space-3);font-size:var(--text-lg);letter-spacing:.04em;overflow-wrap:anywhere;-webkit-user-select:all;-moz-user-select:all;user-select:all;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm)}.portal-more-backdrop{position:fixed;inset:0;z-index:30;background:color-mix(in srgb,var(--color-text) 45%,transparent);display:flex;align-items:flex-end}.portal-more-sheet{width:100%;max-height:80vh;overflow:auto;background:var(--color-surface);border-radius:var(--radius-lg) var(--radius-lg) 0 0;padding:var(--space-4) var(--space-4) calc(var(--space-4) + env(safe-area-inset-bottom))}.portal-more-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-3)}.portal-more-list{display:grid;grid-template-columns:1fr 1fr;grid-gap:var(--space-2);gap:var(--space-2)}.portal-more-link{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);min-height:48px;padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);font:inherit;text-align:left;cursor:pointer}@media (min-width:860px){.portal-more-backdrop{display:none}}.card,.portal-main,.portal-page{min-width:0;max-width:100%}.portal-main img,.portal-main video{max-width:100%;height:auto}.portal-main table{max-width:100%}.card:has(>.admin-table),.card:has(>table){overflow-x:auto}@media (max-width:640px){.portal-body{padding:var(--space-3)}.admin-toolbar{gap:var(--space-3)}.admin-form input,.admin-form select,.admin-form textarea,.admin-toolbar input,.admin-toolbar select{min-width:0;max-width:100%}.admin-toolbar label{flex:1 1 100%}.admin-form input:not([type=checkbox]):not([type=radio]),.admin-form select,.admin-form textarea,.admin-toolbar input,.admin-toolbar select{width:100%}.admin-table{display:block;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.admin-table td,.admin-table th{padding:var(--space-2);white-space:nowrap}.admin-table td.wrap{white-space:normal}.portal-page-head{align-items:flex-start}.auth-shell{padding:var(--space-4);align-items:start}.dash-grid{grid-template-columns:1fr 1fr}.dash-value{font-size:1.35rem}}@media (pointer:coarse){.admin-form button,.admin-form input:not([type=checkbox]):not([type=radio]),.admin-form select,.admin-table input:not([type=checkbox]):not([type=radio]),.admin-table select,.admin-toolbar button,.admin-toolbar input:not([type=checkbox]):not([type=radio]),.admin-toolbar select,.btn-danger,.btn-ghost,.btn-primary,.child-switcher select,.portal-nav-link{min-height:44px}.admin-table td input:not([type=checkbox]):not([type=radio]){min-width:8rem}.admin-form input[type=checkbox],.admin-form input[type=radio],.check-row input[type=checkbox]{width:22px;height:22px}.btn-small,.check-row{min-height:44px}.btn-small{padding-inline:var(--space-3)}}.btn-danger,.btn-ghost{min-height:var(--tap);font-family:inherit;font-weight:600;border-radius:var(--radius-md)}.btn-ghost:hover{background:var(--color-brand-50);color:var(--color-brand-700)}.btn-outline{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:var(--tap);padding:0 var(--space-4);border-radius:var(--radius-md);border:1.5px solid var(--color-primary);background:transparent;color:var(--color-primary);font:inherit;font-weight:700;cursor:pointer}.btn-outline:hover{background:var(--color-brand-50);color:var(--color-primary-hover)}.admin-form input:not([type=checkbox]):not([type=radio]),.admin-form select,.admin-toolbar input:not([type=checkbox]):not([type=radio]),.admin-toolbar select,.input-lg{min-height:var(--tap)}.admin-form input:focus,.admin-form select:focus,.admin-form textarea:focus,.admin-toolbar select:focus,.input-lg:focus{border-color:var(--color-focus);box-shadow:0 0 0 3px color-mix(in srgb,var(--color-focus) 25%,transparent);outline:none}:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.admin-table th{font-size:.8125rem;text-transform:uppercase;letter-spacing:.04em;color:var(--color-brand-700)}.status-pill{border-radius:var(--radius-pill);padding:2px 10px;font-weight:600}.portal-page h1{color:var(--color-text)}.portal-top-brand{display:flex;align-items:center;gap:var(--space-3);min-width:0}.portal-logo{width:44px;height:44px;border-radius:var(--radius-md);object-fit:contain;background:var(--color-hero-chip);padding:4px}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:var(--tap);height:var(--tap);border-radius:var(--radius-pill);border:0;cursor:pointer;background:var(--color-brand-50);color:var(--color-brand-700)}.icon-btn--hero{background:var(--color-hero-chip);color:var(--color-hero-ink)}.icon-btn:hover{color:inherit;filter:brightness(1.08)}.portal-nav-label{display:inline-flex;align-items:center;gap:var(--space-2)}.portal-bottom-link{flex-direction:column;gap:2px;font-size:11px;font-weight:700}.portal-bottom-pill{display:flex;align-items:center;justify-content:center;width:52px;height:28px;border-radius:14px}.portal-bottom-link.active{background:transparent;color:var(--color-brand-700)}.portal-bottom-link.active .portal-bottom-pill{background:var(--color-brand-100);color:var(--color-brand-700)}[data-theme=dark] .portal-bottom-link.active .portal-bottom-pill,[data-theme=midnight] .portal-bottom-link.active .portal-bottom-pill{color:var(--color-brand-700)}.portal-col{min-width:0;display:flex;flex-direction:column;gap:var(--space-4)}.portal-more-link{min-height:var(--tap)}@media (max-width:859px){.portal-top--hero-home{display:none}}.gc-side,.gc-top{display:none}@media (min-width:860px){.portal-shell--school .portal-top{display:none}.portal-shell--school .portal-body{max-width:none;padding:0;gap:0;grid-template-columns:248px minmax(0,1fr)}.portal-shell--school .portal-col{gap:0}.portal-shell--school .portal-main{padding:var(--space-6)}.gc-side{display:flex;flex-direction:column;gap:2px;padding:18px 14px;background:color-mix(in srgb,var(--color-primary) 76%,#000);color:var(--color-on-primary);position:-webkit-sticky;position:sticky;top:0;height:100vh;overflow-y:auto}[data-theme=dark] .gc-side,[data-theme=midnight] .gc-side{background:var(--color-surface);color:var(--color-text);border-right:1px solid var(--color-border)}.gc-top{display:flex;align-items:center;gap:var(--space-4);min-height:68px;padding:0 var(--space-6);background:var(--color-surface);border-bottom:1px solid var(--color-border);position:-webkit-sticky;position:sticky;top:0;z-index:10}}.gc-side-brand{gap:10px;padding:0 6px 16px;font-family:var(--display-font);font-size:1.1875rem;font-weight:700}.gc-side-brand,.gc-side-mark{display:flex;align-items:center}.gc-side-mark{width:36px;height:36px;border-radius:10px;background:var(--color-accent);color:var(--color-bg);justify-content:center;font-weight:800}[data-theme=forest] .gc-side-mark,[data-theme=maroon] .gc-side-mark,[data-theme=royal] .gc-side-mark{color:var(--color-text)}.gc-side-label{font-size:11px;font-weight:800;letter-spacing:.09em;text-transform:uppercase;opacity:.85;padding:12px 10px 4px}.gc-side-item{display:flex;align-items:center;gap:10px;min-height:40px;padding:0 10px;border-radius:10px;font-size:.875rem;font-weight:600;color:inherit;opacity:.92}.gc-side-item:hover{background:color-mix(in srgb,currentColor 12%,transparent);color:inherit;opacity:1}.gc-side-item.active{background:color-mix(in srgb,currentColor 20%,transparent);opacity:1}.gc-side .portal-stub{color:inherit;border-color:currentColor;margin-left:auto}.gc-search{position:relative;max-width:420px;display:flex;align-items:center;gap:10px;padding:0 14px;border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-bg);color:var(--color-text-muted)}.gc-search,.gc-search input{flex:1 1;min-height:var(--tap)}.gc-search input{min-width:0;border:0;background:transparent;color:var(--color-text);font:inherit;outline:none}.gc-search:focus-within{border-color:var(--color-focus);box-shadow:0 0 0 3px color-mix(in srgb,var(--color-focus) 25%,transparent)}.gc-search-results{position:absolute;top:calc(100% + 6px);left:0;right:0;margin:0;padding:6px;list-style:none;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);z-index:20}.gc-search-results button{display:flex;align-items:center;gap:10px;width:100%;min-height:var(--tap);padding:0 10px;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--color-text);font:inherit;text-align:left;cursor:pointer}.gc-search-results button:hover{background:var(--color-brand-50)}.gc-top-user{margin-left:auto;display:flex;align-items:center;gap:10px;min-width:0}.gc-top-name{font-weight:700;font-size:.875rem;overflow:hidden;text-overflow:ellipsis;max-width:220px}.gc-top-role{font-size:.75rem}.gc-avatar{width:40px;height:40px;border-radius:50%;background:var(--color-brand-100);color:var(--color-brand-700);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:.875rem;flex:none}.gc-home{margin:calc(-1 * var(--space-4));margin-bottom:0}.gc-hero{position:relative;background:var(--gradient-hero);color:var(--color-hero-ink);overflow:hidden;padding:18px 18px 72px;border-radius:0 0 var(--radius-lg) var(--radius-lg)}.gc-hero--compact{padding-bottom:20px}.gc-hero-decor{position:absolute;right:0;top:0;pointer-events:none;width:min(390px,100%);height:240px}.gc-hero-decor line{stroke:var(--color-hero-ink);stroke-opacity:.07;stroke-width:2}.gc-hero-decor path{fill:none;stroke:var(--color-accent);stroke-width:2.5}.gc-hero-decor path+path{stroke-opacity:.5;stroke-width:1.2}.gc-hero-row{position:relative;gap:12px}.gc-hero-row,.gc-logo{display:flex;align-items:center}.gc-logo{width:44px;height:44px;flex:none;border-radius:var(--radius-md);border:1.5px solid var(--color-hero-chip-border);background:var(--color-hero-chip);justify-content:center;font-size:.75rem;font-weight:800;overflow:hidden}.gc-logo img{width:100%;height:100%;object-fit:contain}.gc-school{flex:1 1;min-width:0;font-family:var(--display-font);font-weight:700;font-size:.9375rem;line-height:1.2}.gc-school small{display:block;font-family:var(--font-sans);font-weight:500;font-size:.75rem;color:var(--color-hero-sub)}.gc-greet{position:relative;margin:16px 0 0;font-size:1.6875rem;line-height:1.15;color:var(--color-hero-ink)}.gc-hero-sub{position:relative;margin:2px 0 14px;font-size:.8125rem;color:var(--color-hero-sub)}.gc-chips{position:relative;display:flex;flex-wrap:wrap;gap:8px}.gc-chip{display:inline-flex;align-items:center;gap:8px;min-height:var(--tap);padding:0 14px 0 6px;border-radius:22px;border:1.5px solid var(--color-hero-chip-border);background:var(--color-hero-chip);color:var(--color-hero-ink);font:inherit;font-weight:700;font-size:.8125rem;cursor:pointer}.gc-chip.on{background:var(--color-surface);color:var(--color-text);border-color:transparent}.gc-chip .gc-avatar{width:32px;height:32px;font-size:.8125rem}.gc-stat{display:inline-flex;align-items:center;min-height:36px;padding:0 12px;border-radius:18px;font-size:.75rem;font-weight:700;background:var(--color-hero-chip);border:1px solid var(--color-hero-chip-border)}.gc-main{position:relative;display:flex;flex-direction:column;gap:12px;padding:0 16px 18px;margin-top:-54px}.gc-main--flat{margin-top:0;padding-top:16px}.gc-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:14px;box-shadow:var(--shadow-card);min-width:0}.gc-card h2{margin:0;font-size:1.0625rem}.gc-row{display:flex;align-items:center;gap:12px}.gc-row--between{justify-content:space-between}.gc-lbl{font-weight:700;letter-spacing:.04em;text-transform:uppercase}.gc-lbl,.gc-muted{font-size:.75rem;color:var(--color-text-muted)}.gc-ic{width:36px;height:36px;border-radius:var(--radius-md);background:var(--color-brand-100);color:var(--color-brand-700);display:flex;align-items:center;justify-content:center;flex:none}.gc-chip-p,.gc-chip-t{display:inline-flex;align-items:center;gap:4px;min-height:24px;padding:0 10px;border-radius:12px;font-size:.75rem;font-weight:700;white-space:nowrap}.gc-chip-t{background:var(--color-accent-tint);color:var(--color-accent-ink)}.gc-chip-p{background:var(--color-brand-50);color:var(--color-brand-700)}.gc-big{font-family:var(--display-font);font-size:1.625rem;font-weight:700;line-height:1}.gc-two{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-gap:12px;gap:12px}.gc-ring{position:relative;width:88px;height:88px;flex:none}.gc-ring b{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-family:var(--display-font);font-size:1.375rem;font-weight:700}.gc-ring .track{stroke:var(--color-brand-100)}.gc-ring .value{stroke:var(--color-brand-500)}.gc-bar{height:6px;border-radius:3px;background:var(--color-brand-100);overflow:hidden}.gc-bar i{display:block;height:100%;background:var(--color-brand-500);border-radius:3px}.gc-fee{background:linear-gradient(135deg,var(--color-brand-50),var(--color-surface) 70%)}.gc-fee-amount{font-family:var(--display-font);font-size:2.125rem;font-weight:700;margin:6px 0 2px}.gc-listrow{display:flex;align-items:flex-start;gap:12px;padding:10px 0;border-top:1px solid var(--color-border)}.gc-listrow:first-of-type{margin-top:8px}.gc-listrow>div:nth-child(2){flex:1 1;min-width:0}.gc-listrow b{font-weight:700}.gc-empty{margin:8px 0 0;color:var(--color-text-muted);font-size:.875rem}.gc-link{min-height:var(--tap);display:inline-flex;align-items:center;font-size:.8125rem;font-weight:700}.gc-marks-score{font-family:var(--display-font);font-size:1.25rem;font-weight:700}.gc-marks-score small{font-family:var(--font-sans);font-size:.8125rem;font-weight:600;color:var(--color-text-muted)}@media (min-width:860px){.gc-home{margin:0}.gc-hero{border-radius:var(--radius-lg)}.gc-main{padding:0;margin-top:-54px;padding-inline:var(--space-4)}.gc-cols{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-gap:12px;gap:12px}}.gc-tl{display:grid;grid-template-columns:52px 22px minmax(0,1fr);grid-column-gap:6px;column-gap:6px}.gc-tl-time{font-size:.75rem;font-weight:700;color:var(--color-text-muted);padding-top:3px;text-align:right}.gc-tl-time.now{color:var(--color-brand-700)}.gc-tl-rail{position:relative}.gc-tl-rail:before{content:"";position:absolute;left:10px;top:0;bottom:-12px;width:2px;background:var(--color-border)}.gc-tl:last-child .gc-tl-rail:before{bottom:12px}.gc-tl-dot{position:absolute;left:5px;top:5px;width:12px;height:12px;border-radius:50%;background:var(--color-surface);border:2px solid var(--color-brand-500)}.gc-tl-dot.done{background:var(--color-brand-500)}.gc-tl-dot.now{left:2px;top:3px;width:18px;height:18px;background:var(--color-primary);border:4px solid var(--color-brand-100)}.gc-tl-body{padding-bottom:12px;min-width:0}.gc-period{background:var(--color-surface);border:1px solid var(--color-border);border-radius:14px;padding:10px 12px}.gc-period.done{background:transparent;border:0;padding:3px 0;color:var(--color-text-muted)}.gc-period.now{border:2px solid var(--color-primary);background:var(--color-brand-50);padding:12px 14px;box-shadow:var(--shadow-card)}.gc-now-chip{display:inline-flex;align-items:center;min-height:22px;padding:0 10px;border-radius:11px;background:var(--color-primary);color:var(--color-on-primary);font-size:.6875rem;font-weight:800;letter-spacing:.05em}.gc-admin-head{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--space-3);flex-wrap:wrap}.gc-admin-head h1{margin:0;font-size:1.875rem}.gc-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));grid-gap:16px;gap:16px}.gc-kpi{display:flex;flex-direction:column;gap:2px}.gc-kpi-value{font-family:var(--display-font);font-size:1.875rem;font-weight:700;line-height:1.1;margin-top:10px}.gc-admin-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(0,1fr);grid-gap:16px;gap:16px}@media (max-width:859px){.gc-admin-grid{grid-template-columns:minmax(0,1fr)}}.gc-plot{display:flex;align-items:flex-end;gap:10px;height:200px;border-bottom:2px solid var(--color-border);margin-top:10px;overflow-x:auto}.gc-col{flex:1 1;min-width:28px;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:4px}.gc-col b{font-size:.6875rem;color:var(--color-text-muted);font-weight:700}.gc-col i{display:block;width:100%;max-width:34px;border-radius:6px 6px 0 0;background:var(--color-brand-500)}.gc-col i.low{background:var(--color-accent)}.gc-col-labels{display:flex;gap:10px;margin-top:6px;overflow-x:auto}.gc-col-labels span{flex:1 1;min-width:28px;text-align:center;font-size:.6875rem}.gc-col-labels span,.gc-legend{font-weight:700;color:var(--color-text-muted)}.gc-legend{display:inline-flex;align-items:center;gap:6px;font-size:.75rem}.gc-legend i{display:inline-block;width:10px;height:10px;border-radius:3px;background:var(--color-accent)}.gc-qa{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));grid-gap:10px;gap:10px;margin-top:10px}.gc-qa a{display:flex;align-items:center;justify-content:center;gap:8px;min-height:56px;border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-brand-50);font-weight:700;font-size:.8125rem;text-align:center}.gc-qa a,.gc-qa a:hover{color:var(--color-brand-700)}.gc-qa a:hover{border-color:var(--color-brand-500)}.gc-module-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));grid-gap:12px;gap:12px;margin-top:10px}.gc-module{display:flex;gap:12px;align-items:flex-start;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:12px;color:var(--color-text)}.gc-module:hover{border-color:var(--color-brand-500);color:var(--color-text);box-shadow:var(--shadow-md)}.gc-module b{display:block;font-size:.9375rem}.gc-picker{display:flex;flex-direction:column;gap:12px;max-width:560px}.gc-sw-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-gap:12px;gap:12px}.gc-sw{position:relative;display:flex;flex-direction:column;gap:6px;text-align:left;padding:8px;min-height:var(--tap);border-radius:var(--radius-lg);border:1.5px solid var(--color-border);background:var(--color-surface);color:var(--color-text);font:inherit;cursor:pointer}.gc-sw.sel{border:2px solid var(--color-primary);padding:7.5px}.gc-sw-name{font-weight:700;font-size:.8125rem;padding:2px 2px 0}.gc-sw-dots{display:flex;gap:6px;align-items:center;flex-wrap:wrap;padding:0 2px 2px}.gc-sw-dots i{width:14px;height:14px;border-radius:50%;display:block;border:1px solid var(--color-border)}.gc-sw-tick{position:absolute;right:8px;top:8px;width:24px;height:24px;border-radius:12px;background:var(--color-primary);color:var(--color-on-primary);display:flex;align-items:center;justify-content:center}.gc-seg{display:grid;grid-gap:4px;gap:4px;padding:4px;border-radius:14px;background:var(--color-brand-50);border:1px solid var(--color-border)}.gc-seg--3{grid-template-columns:repeat(3,minmax(0,1fr))}.gc-seg--2{grid-template-columns:repeat(2,minmax(0,1fr))}.gc-seg button{min-height:var(--tap);border-radius:10px;border:0;background:transparent;font:inherit;font-weight:700;font-size:.8125rem;color:var(--color-text-muted);display:flex;align-items:center;justify-content:center;gap:6px;cursor:pointer}.gc-seg button.on{background:var(--color-surface);color:var(--color-brand-700);box-shadow:var(--shadow-sm)}@media (max-width:400px){.gc-greet{font-size:1.5rem}.gc-fee-amount{font-size:1.875rem}.gc-two{gap:10px}}@media (max-width:640px){.gc-home{margin:calc(-1 * var(--space-3)) calc(-1 * var(--space-3)) 0}}.gc-module span{display:block}.gc-chat-fab{position:fixed;right:var(--space-4);bottom:calc(var(--space-4) + env(safe-area-inset-bottom));z-index:30;width:56px;height:56px;border-radius:var(--radius-pill);border:0;display:inline-flex;align-items:center;justify-content:center;background:var(--color-primary);color:var(--color-on-primary,#fff);box-shadow:var(--shadow-md);cursor:pointer}.gc-chat-fab:hover{background:var(--color-primary-hover)}.gc-chat-chip:focus-visible,.gc-chat-fab:focus-visible,.gc-chat-iconbtn:focus-visible,.gc-chat-lang:focus-visible{outline:3px solid var(--color-focus);outline-offset:2px}@media (max-width:859px){.portal-shell .gc-chat-fab{bottom:calc(76px + env(safe-area-inset-bottom))}}.gc-chat-backdrop{position:fixed;inset:0;z-index:40;display:flex;align-items:flex-end;justify-content:flex-end;padding:var(--space-4);background:color-mix(in srgb,var(--color-text) 35%,transparent)}.gc-chat-panel{display:flex;flex-direction:column;width:min(26rem,100%);height:min(40rem,100%);background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);overflow:hidden}@media (max-width:859px){.gc-chat-backdrop{padding:0}.gc-chat-panel{width:100%;height:88vh;border-radius:var(--radius-lg) var(--radius-lg) 0 0}}.gc-chat-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);padding:var(--space-3) var(--space-4);background:var(--color-primary);color:var(--color-on-primary,#fff)}.gc-chat-head h2{margin:0;font-size:var(--text-base)}.gc-chat-head-actions{display:flex;align-items:center;gap:var(--space-1)}.gc-chat-iconbtn,.gc-chat-lang{min-width:36px;min-height:36px;display:inline-flex;align-items:center;justify-content:center;padding:0 var(--space-2);border-radius:var(--radius-sm);border:1px solid color-mix(in srgb,currentColor 45%,transparent);background:transparent;color:inherit;font:inherit;font-size:var(--text-sm);cursor:pointer}.gc-chat-log{flex:1 1;overflow-y:auto;display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-3);background:var(--color-bg)}.gc-chat-msg{max-width:92%;padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);font-size:var(--text-sm);line-height:1.45;overflow-wrap:anywhere;white-space:pre-wrap}.gc-chat-msg--bot{align-self:flex-start;background:var(--color-surface);border:1px solid var(--color-border)}.gc-chat-msg--user{align-self:flex-end;background:var(--color-primary);color:var(--color-on-primary,#fff)}.gc-chat-badge{display:inline-block;margin-right:var(--space-2);padding:0 6px;border-radius:var(--radius-pill);background:var(--color-accent-tint);color:var(--color-accent-ink);font-size:11px;font-weight:700;vertical-align:middle}.gc-chat-typing{display:inline-flex;gap:4px;padding:4px 0}.gc-chat-typing i{width:6px;height:6px;border-radius:var(--radius-pill);background:var(--color-text-muted);animation:gc-chat-bounce 1s ease-in-out infinite}.gc-chat-typing i:nth-child(2){animation-delay:.15s}.gc-chat-typing i:nth-child(3){animation-delay:.3s}@keyframes gc-chat-bounce{0%,80%,to{opacity:.3;transform:translateY(0)}40%{opacity:1;transform:translateY(-3px)}}@media (prefers-reduced-motion:reduce){.gc-chat-typing i{animation:none;opacity:.7}}.gc-chat-cards{display:grid;grid-gap:var(--space-2);gap:var(--space-2);margin-top:var(--space-2);white-space:normal}.gc-chat-card{padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);background:var(--color-surface-2);border:1px solid var(--color-border)}.gc-chat-card h4{margin:0 0 var(--space-1);font-size:var(--text-sm)}.gc-chat-card dl{margin:0;display:grid;grid-gap:2px;gap:2px}.gc-chat-card-row{display:flex;justify-content:space-between;gap:var(--space-3)}.gc-chat-card-row dt{color:var(--color-text-muted)}.gc-chat-card-row dd{margin:0;font-weight:600;text-align:right}.gc-chat-card-row small{display:block;font-weight:400;color:var(--color-text-muted)}.gc-chat-card-note{margin:var(--space-1) 0 0;font-size:12px;color:var(--color-text-muted)}.gc-chat-links{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-2)}.gc-chat-link{display:inline-flex;align-items:center;min-height:36px;padding:0 var(--space-3);border-radius:var(--radius-pill);background:var(--color-brand-50);color:var(--color-brand-700);border:1px solid var(--color-brand-100,var(--color-border));font-weight:600;text-decoration:none}.gc-chat-chips{display:flex;gap:var(--space-2);overflow-x:auto;padding:var(--space-2) var(--space-3);border-top:1px solid var(--color-border)}.gc-chat-chip,.gc-chat-chips{background:var(--color-surface)}.gc-chat-chip{flex:0 0 auto;min-height:34px;padding:0 var(--space-3);border-radius:var(--radius-pill);border:1px solid var(--color-border);color:var(--color-text);font:inherit;font-size:var(--text-sm);cursor:pointer}.gc-chat-chip:hover:not(:disabled){background:var(--color-brand-50);border-color:var(--color-brand-500)}.gc-chat-form{display:flex;gap:var(--space-2);padding:var(--space-3);border-top:1px solid var(--color-border);background:var(--color-surface)}.gc-chat-form input{flex:1 1;min-height:44px;padding:0 var(--space-3);border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);font:inherit}.gc-chat-notice{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);background:var(--color-accent-tint);color:var(--color-accent-ink);font-size:var(--text-sm)}.gc-chat-notice p{margin:0}.gc-chat-enquiry{display:grid;grid-gap:var(--space-2);gap:var(--space-2);padding:var(--space-3);border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-surface);font-size:var(--text-sm)}.gc-chat-enquiry h3{margin:0;font-size:var(--text-base)}.gc-chat-enquiry label{display:grid;grid-gap:2px;gap:2px}.gc-chat-enquiry label.check-row{display:flex}.gc-chat-enquiry input[type=email],.gc-chat-enquiry input[type=tel],.gc-chat-enquiry input[type=text],.gc-chat-enquiry textarea{min-height:40px;padding:var(--space-2);border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);font:inherit}.gc-chat-enquiry-actions{display:flex;gap:var(--space-2)}.gc-chat-hp{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.gc-side-item,.portal-more-link,.portal-nav-label,.portal-nav-link{gap:var(--space-2)}.gc-side-item>svg,.portal-nav-label>svg{flex:none;width:var(--icon-menu);height:var(--icon-menu)}.portal-bottom-pill>svg{flex:none;width:var(--icon-menu-nav);height:var(--icon-menu-nav)}.hpc-level{display:inline-block;padding:.1rem .5rem;border:1px solid var(--color-border);border-radius:999px;font-size:var(--text-sm);font-weight:600;background:var(--color-surface)}.hpc-select{min-width:8rem}.hpc-picker{display:flex;gap:var(--space-3);flex-wrap:wrap;align-items:flex-end}.hpc-grid{overflow-x:auto}.hpc-grid table,.hpc-table{width:100%;border-collapse:collapse}.hpc-grid td,.hpc-grid th,.hpc-table td,.hpc-table th{border:1px solid var(--color-border);padding:.3rem .5rem;text-align:left;vertical-align:top}.hpc-level-cell{white-space:nowrap}.hpc-latest{color:var(--color-text-muted);font-size:var(--text-sm)}.hpc-legend{display:flex;flex-wrap:wrap;gap:var(--space-2);margin:var(--space-2) 0}.hpc-sheet{background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border);padding:12mm;margin-bottom:var(--space-4);max-width:210mm}.hpc-sheet-head{display:flex;gap:var(--space-3);align-items:center;border-bottom:2px solid var(--color-text);padding-bottom:var(--space-2)}.hpc-sheet-logo{height:18mm;width:auto}.hpc-sheet-school{font-size:var(--text-lg);font-weight:700}.hpc-sheet-title{margin:0;font-size:var(--text-lg)}.hpc-sheet-meta{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:var(--space-1) var(--space-4);gap:var(--space-1) var(--space-4);margin:var(--space-3) 0}.hpc-sheet-meta dt{font-weight:600;display:inline}.hpc-sheet-meta dd{display:inline;margin:0 0 0 var(--space-1)}.hpc-block{margin-bottom:var(--space-3);page-break-inside:avoid;break-inside:avoid}.hpc-exam{margin-bottom:var(--space-2)}.hpc-sheet-foot{display:flex;flex-wrap:wrap;gap:var(--space-4);margin-top:var(--space-5)}.hpc-sign{flex:1 1;min-width:40mm;border-top:1px solid var(--color-text);padding-top:var(--space-1);text-align:center}.hpc-foot-text{flex-basis:100%}@page{size:A4;margin:10mm}@media print{body *{visibility:hidden!important}.hpc-print-root,.hpc-print-root *{visibility:visible!important}.hpc-print-root{position:absolute;left:0;top:0;width:100%}.hpc-no-print{display:none!important}.hpc-sheet{border:none;margin:0;padding:0;max-width:none;page-break-after:always;break-after:page}.hpc-sheet:last-child{page-break-after:auto;break-after:auto}}.tt-main-tabs,.tt-subtabs{display:flex;flex-wrap:wrap;gap:var(--space-2)}.tt-main-tabs button{min-height:var(--tap);font-size:var(--text-base)}.tt-toolbar{display:flex;justify-content:space-between;align-items:center;gap:var(--space-4);flex-wrap:wrap}.tt-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));grid-gap:var(--space-3);gap:var(--space-3);align-items:end}.tt-total{display:grid;grid-gap:2px;gap:2px}.tt-total strong{font-size:var(--text-xl);color:var(--color-primary)}.tt-chips{display:flex;flex-wrap:wrap;gap:var(--space-1);align-items:center}.tt-chip{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:var(--radius-pill);background:var(--color-surface-2);border:1px solid var(--color-border);font-size:.8rem}.tt-chip button{color:var(--color-text-muted);padding:0 2px;font-size:1rem;line-height:1}.tt-chip button,.tt-link{border:none;background:transparent;cursor:pointer}.tt-link{color:var(--color-primary);text-decoration:underline;padding:0;font:inherit;font-size:.8rem}.tt-confirm{border-left:4px solid var(--color-warning);background:var(--color-surface-2)}.tt-ok{border-left-color:var(--color-success)}.tt-issues{list-style:none;margin:0;padding:0;display:grid;grid-gap:var(--space-2);gap:var(--space-2)}.tt-issues li{padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);background:var(--color-surface-2);border-left:4px solid var(--color-border)}.tt-sev-error{border-left-color:var(--color-danger)!important}.tt-sev-warning{border-left-color:var(--color-warning)!important}.tt-sev-info{border-left-color:var(--color-brand-500)!important}.tt-stats .card{display:grid;grid-gap:var(--space-1);gap:var(--space-1);padding:var(--space-4)}.tt-big{font-size:var(--text-xl);line-height:1.15}.tt-good{color:var(--color-success)}.tt-bad{color:var(--color-danger)}.tt-draft-head{justify-content:space-between;align-items:center}.tt-draft-head,.tt-view-bar{display:flex;gap:var(--space-4);flex-wrap:wrap}.tt-view-bar{align-items:end}.tt-legend{display:flex;flex-wrap:wrap;gap:var(--space-4);font-size:var(--text-sm);align-items:center}.tt-swatch{display:inline-block;width:14px;height:14px;border-radius:3px;vertical-align:-2px;margin-right:4px}.tt-swatch-conflict{background:color-mix(in srgb,var(--color-danger) 30%,var(--color-surface));border:2px solid var(--color-danger)}.tt-swatch-changed{background:var(--color-surface);border:2px dashed var(--color-warning)}.tt-swatch-blocked{background:repeating-linear-gradient(135deg,var(--color-surface-2),var(--color-surface-2) 3px,var(--color-border) 3px,var(--color-border) 5px);border:1px solid var(--color-border)}.tt-grid-wrap{overflow-x:auto}.tt-grid{width:100%;border-collapse:separate;border-spacing:4px;table-layout:fixed;min-width:720px}.tt-grid th{background:var(--color-surface-2);color:var(--color-text);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);font-size:var(--text-sm);text-align:left}.tt-grid thead th{text-align:center;background:var(--color-primary);color:var(--color-on-primary)}.tt-grid .tt-grid-corner{width:9rem;text-align:left}.tt-time{display:block;font-weight:400;font-size:.75rem}.tt-break-row td,.tt-time{color:var(--color-text-muted)}.tt-break-row td{text-align:center;font-size:var(--text-sm);background:var(--color-surface-2);padding:var(--space-1)}.tt-break-row td,.tt-cell{border-radius:var(--radius-sm)}.tt-cell{vertical-align:top;border:1px solid var(--color-border);background:var(--color-surface);padding:var(--space-2);min-height:3.6rem;height:4.4rem;font-size:.95rem}.tt-cell-body{display:grid;grid-gap:1px;gap:1px;line-height:1.25}.tt-cell-body+.tt-cell-body{margin-top:var(--space-2);padding-top:var(--space-2);border-top:1px dashed var(--color-border)}.tt-cell-body span{color:var(--color-text-muted);font-size:.82rem}.tt-cell-body .tt-room{color:var(--color-text);font-size:.75rem}.tt-lock{font-size:.7rem!important;text-transform:uppercase;letter-spacing:.04em}.tt-cell-empty{color:var(--color-text-muted);font-size:.75rem;background:var(--color-surface)}.tt-cell-blocked,.tt-cell-off{background:repeating-linear-gradient(135deg,var(--color-surface-2),var(--color-surface-2) 6px,var(--color-border) 6px,var(--color-border) 8px)}.tt-tone-0{background:color-mix(in srgb,var(--color-brand-500) 16%,var(--color-surface));border-color:color-mix(in srgb,var(--color-brand-500) 45%,var(--color-border))}.tt-tone-1{background:color-mix(in srgb,var(--color-accent) 22%,var(--color-surface));border-color:color-mix(in srgb,var(--color-accent) 45%,var(--color-border))}.tt-tone-2{background:color-mix(in srgb,var(--color-success) 16%,var(--color-surface));border-color:color-mix(in srgb,var(--color-success) 45%,var(--color-border))}.tt-tone-3{background:color-mix(in srgb,var(--color-warning) 16%,var(--color-surface));border-color:color-mix(in srgb,var(--color-warning) 45%,var(--color-border))}.tt-tone-4{background:color-mix(in srgb,var(--color-brand-700) 18%,var(--color-surface));border-color:color-mix(in srgb,var(--color-brand-700) 45%,var(--color-border))}.tt-tone-5{background:color-mix(in srgb,var(--color-text-muted) 16%,var(--color-surface));border-color:color-mix(in srgb,var(--color-text-muted) 45%,var(--color-border))}.tt-tone-6{background:var(--color-surface-2)}.tt-cell-conflict{background:color-mix(in srgb,var(--color-danger) 22%,var(--color-surface))!important;border:2px solid var(--color-danger)!important}.tt-cell-changed{outline:2px dashed var(--color-warning);outline-offset:-3px}.tt-avail .tt-toggle{padding:0;height:2.6rem}.tt-avail .tt-toggle button{width:100%;height:100%;border:none;background:transparent;cursor:pointer;color:var(--color-danger);font-size:.75rem;font-weight:700}.tt-cell-blocked-on{background:color-mix(in srgb,var(--color-danger) 18%,var(--color-surface));border-color:var(--color-danger)}.tt-avail thead th{font-size:.8rem}.tt-days{display:flex;flex-wrap:wrap;gap:var(--space-4);align-items:center;margin:var(--space-3) 0}.tt-day-pick{display:grid;grid-gap:var(--space-1);gap:var(--space-1)}.tt-teacher{border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);background:var(--color-surface)}.tt-teacher summary{cursor:pointer;min-height:var(--tap);display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-1)}.tt-bars{display:grid;grid-gap:var(--space-2);gap:var(--space-2)}.tt-bar-row{display:grid;grid-template-columns:minmax(8rem,16rem) 1fr 3rem;grid-gap:var(--space-3);gap:var(--space-3);align-items:center}.tt-bar{height:12px;border-radius:var(--radius-pill);background:var(--color-surface-2);border:1px solid var(--color-border);overflow:hidden}.tt-bar>div{height:100%;background:var(--color-brand-500);border-radius:var(--radius-pill)}.tt-run-head{display:flex;justify-content:space-between;gap:var(--space-4);align-items:center;flex-wrap:wrap}.tt-go{font-size:var(--text-lg);padding:var(--space-3) var(--space-8)}.tt-picks{display:grid;grid-template-columns:repeat(auto-fill,minmax(10rem,1fr));grid-gap:var(--space-1) var(--space-3);gap:var(--space-1) var(--space-3);margin-top:var(--space-2);max-height:12rem;overflow:auto}.tt-job{display:grid;grid-gap:var(--space-2);gap:var(--space-2);padding:var(--space-4);border-radius:var(--radius-md);background:var(--color-surface-2);border:1px solid var(--color-border)}.tt-job-failed{border-color:var(--color-danger)}.tt-job-done{border-color:var(--color-success)}.tt-progress{height:16px;border-radius:var(--radius-pill);background:var(--color-surface);border:1px solid var(--color-border);overflow:hidden}.tt-progress>div{height:100%;background:var(--gradient-hero);transition:width .6s ease}.tt-row-open{background:var(--color-surface-2)}.tt-sub-layout{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);grid-gap:var(--space-4);gap:var(--space-4);align-items:start}@media (max-width:960px){.tt-sub-layout{grid-template-columns:minmax(0,1fr)}}.tt-sugg{position:-webkit-sticky;position:sticky;top:var(--space-4);display:grid;grid-gap:var(--space-3);gap:var(--space-3)}.tt-ranked,.tt-sub-list{list-style:none;margin:var(--space-3) 0 0;padding:0;display:grid;grid-gap:var(--space-2);gap:var(--space-2)}.tt-ranked li,.tt-sub-list li{display:flex;justify-content:space-between;gap:var(--space-3);align-items:center;flex-wrap:wrap;padding:var(--space-3);border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-surface)}.tt-sub-open{border-left:4px solid var(--color-danger)!important}.tt-sub-covered{border-left:4px solid var(--color-success)!important}.tt-sub-active{box-shadow:0 0 0 2px var(--color-primary)}.tt-sub-who{display:grid;grid-gap:var(--space-1);gap:var(--space-1);justify-items:end}.tt-best{border-color:var(--color-success)!important;background:color-mix(in srgb,var(--color-success) 8%,var(--color-surface))!important}.tt-ranked{counter-reset:rank}.tt-score{display:grid;grid-gap:var(--space-1);gap:var(--space-1);justify-items:end}.tt-score span{font-size:var(--text-lg);font-weight:700;color:var(--color-primary)}@media print{.tt-draft-head .row,.tt-main-tabs,.tt-view-bar button{display:none!important}}.group-cards{display:grid;grid-gap:var(--space-4);gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.group-card{display:flex;align-items:center;gap:var(--space-3);text-align:left;cursor:pointer;min-height:88px}.group-card:disabled{cursor:progress;opacity:.7}.group-card-body{display:grid;grid-gap:2px;gap:2px;flex:1 1;min-width:0}.group-card-logo,.group-card-mark{width:48px;height:48px;border-radius:var(--radius-md);object-fit:contain;flex:none}.group-card-mark{display:grid;place-items:center;background:var(--color-primary);color:var(--color-on-primary,#fff);font-weight:700;font-size:var(--text-lg)}.institution-switcher select{max-width:260px;min-height:36px;border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);padding:0 var(--space-2)}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.gc-spinner{display:inline-block;width:14px;height:14px;border:2px solid;border-right:2px solid transparent;border-radius:50%;animation:gc-spin .8s linear infinite;vertical-align:middle}@keyframes gc-spin{to{transform:rotate(1turn)}}@media (prefers-reduced-motion:reduce){.gc-spinner{animation-duration:2.4s}}.gc-dialog-message{margin:0;white-space:pre-wrap;overflow-wrap:anywhere}