:root{font-family:Inter,Segoe UI,Arial,sans-serif;color:#172033;background:#f5f7fb}*{box-sizing:border-box}body{margin:0}.topbar{height:68px;background:#fff;border-bottom:1px solid #e5e9f1;display:flex;align-items:center;justify-content:space-between;padding:0 max(5vw,24px)}.brand{font-size:20px;font-weight:700;color:#172033}.brand span{font-weight:500;color:#56697f;margin-left:8px;font-size:15px}nav{display:flex;gap:20px}a{color:#334155;text-decoration:none;font-weight:600}.shell{max-width:1180px;margin:36px auto;padding:0 22px}.hero{background:linear-gradient(120deg,#172554,#334b80);color:#fff;border-radius:18px;padding:34px;display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:22px}h1{font-size:28px;margin:8px 0}.hero p{color:#dbeafe}.eyebrow{font-size:12px;letter-spacing:2px;font-weight:700}.button,button{background:#f97316;color:#fff;border:0;border-radius:9px;padding:12px 18px;font-weight:700;cursor:pointer}.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:20px 0}.metric,.panel{background:#fff;border:1px solid #e5e9f1;border-radius:14px;padding:22px}.metric span{display:block;color:#56697f;font-size:13px}.metric strong{display:block;font-size:30px;margin-top:8px}.panel{margin-top:18px}.panel h2{margin-top:0}.subject-list,.links{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.subject-list article,.links div{padding:15px;background:#f8fafc;border:1px solid #e7ebf2;border-radius:10px;font-weight:600}.subject-list small{display:block;color:#56697f;margin-top:4px}.auth{max-width:440px;margin:50px auto}.auth label{display:block;margin:14px 0 6px;font-weight:600}.auth input{width:100%;padding:12px;border:1px solid #cbd5e1;border-radius:8px}.auth button{width:100%;margin-top:20px}.error{color:#b91c1c}.muted{color:#56697f}footer{text-align:center;padding:30px;color:#56697f;font-size:12px}@media (max-width:750px){.grid{grid-template-columns:repeat(2,1fr)}.subject-list,.links{grid-template-columns:1fr}.hero{display:block}.hero .button{display:inline-block;margin-top:12px}}.table-wrap{width:100%;overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:13px}th,td{text-align:left;padding:11px 10px;border-bottom:1px solid #e5e9f1;white-space:nowrap}th{color:#56697f;font-weight:700;background:#f8fafc}.topbar{height:60px;padding:0 max(16px,calc((100% - 1180px)/2 + 22px));gap:12px;position:sticky;top:0;z-index:40}.brand{display:flex;align-items:baseline;gap:8px;color:#172033;text-decoration:none;white-space:nowrap;flex:none}.brand b{font-size:20px;font-weight:700}.brand span{font-size:14px;font-weight:500;color:#56697f;margin:0}.topbar nav{display:flex;align-items:center;gap:14px;min-width:0}.who{display:inline-flex;align-items:center;gap:8px;min-width:0;color:#172033;font-weight:600}.who em{font-style:normal;max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.avatar{width:32px;height:32px;border-radius:50%;background:#172554;color:#fff;display:inline-grid;place-items:center;font-style:normal;font-size:14px;font-weight:700;flex:none}.logout{min-height:36px;padding:6px 14px}.shell{margin:22px auto 36px}@media (max-width:639px){.brand span,.who em,.nav-link{display:none}.topbar{height:56px}.shell{margin-top:14px;padding:0 14px}}.subnav{display:flex;gap:6px;padding:6px max(14px,calc((100% - 1180px)/2 + 22px));background:#fff;border-bottom:1px solid #e5e9f1;overflow-x:auto;position:sticky;top:60px;z-index:39}.subnav a{flex:0 0 auto;min-height:44px;display:inline-flex;align-items:center;padding:0 16px;border-radius:999px;font-size:14px;font-weight:700;color:#475569}.subnav a.on{background:#172554;color:#fff}.subnav a:focus-visible{outline:2px solid #2563eb;outline-offset:2px}@media (max-width:639px){.subnav{top:56px}}:root{--ink:#0f2a43;--ink2:#35506b;--mute:#566f89;--line:#dbe7f5;--bg:#f4f8fd;--card:#fff;--pri:#2a62d6;--pri2:#2159c4;--soft:#e8f1ff;--side:#eef5fe;--ok:#166534;--okbg:#dcf5e8;--warn:#92400e;--warnbg:#fff1d6;--sh:0 1px 2px rgba(30,70,130,.05),0 2px 8px rgba(30,70,130,.05)}body{background:var(--bg);color:var(--ink);font-family:Inter,Segoe UI,system-ui,-apple-system,Arial,sans-serif;-webkit-font-smoothing:antialiased}:focus-visible{outline:2px solid #2563eb;outline-offset:2px}.st-app{display:grid;grid-template-columns:248px minmax(0,1fr);min-height:calc(100vh / var(--z,1))}.st-side{position:sticky;top:0;height:calc(100vh / var(--z,1));display:flex;flex-direction:column;background:var(--side);border-right:1px solid var(--line);padding:18px 14px}.st-logo{display:flex;align-items:center;gap:12px;padding:6px 8px 20px;color:var(--ink)}.st-logo i{width:38px;height:38px;border-radius:11px;background:linear-gradient(135deg,#60a5fa,#3b82f6);color:#fff;display:grid;place-items:center;font-style:normal;font-weight:700;font-size:17px;box-shadow:0 4px 10px #3b82f64d}.st-logo span{display:flex;flex-direction:column;line-height:1.15}.st-logo b{font-size:17px}.st-logo small{color:var(--mute);font-size:12px;font-weight:500}.st-nav{display:flex;flex-direction:column;gap:2px}.st-nav .grp{margin:14px 10px 6px;font-size:12px;letter-spacing:1.6px;font-weight:700;color:#8aa2bb;text-transform:uppercase}.st-nav a{display:flex;align-items:center;gap:12px;min-height:44px;padding:0 12px;border-radius:10px;color:var(--ink2);font-weight:600;font-size:14px;transition:background .15s}.st-nav a svg{width:20px;height:20px;flex:none;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.st-nav a:hover{background:#2f6fe414;color:var(--pri2)}.st-nav a.on{background:#dbeafe;color:#1d4ed8;box-shadow:inset 3px 0 #60a5fa}.st-nav .soon{margin-left:auto;font-size:12px;font-weight:700;letter-spacing:.4px;color:#8aa2bb;background:#e4edf8;border-radius:999px;padding:2px 8px}.st-me{margin-top:auto;display:flex;align-items:center;gap:10px;padding:12px 8px 4px;border-top:1px solid var(--line)}.st-av{width:36px;height:36px;border-radius:50%;background:#cfe3fb;color:#1d4ed8;display:grid;place-items:center;font-weight:700;flex:none}.st-me div{min-width:0;flex:1;line-height:1.25}.st-me b{display:block;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.st-me small{color:var(--mute);font-size:12px}.st-out{all:unset;cursor:pointer;width:34px;height:34px;border-radius:9px;display:grid;place-items:center;color:var(--ink2)}.st-out:hover{background:#2f6fe41a;color:var(--pri2)}.st-out svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.st-main{min-width:0;display:flex;flex-direction:column}.st-mtop{display:none}.st-page{max-width:1240px;width:100%;margin:0 auto;padding:26px 28px 12px}.st-foot{padding:22px;font-size:12px;color:var(--mute);text-align:center}.st-tabs,.st-more{display:none}.st-slim{display:flex;align-items:center;gap:12px;height:56px;padding:0 16px;background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:40}.st-slim a.back{display:inline-flex;align-items:center;gap:6px;font-weight:700;color:var(--ink2);min-height:44px}.st-slim .sp{flex:1}.st-slim .st-logo{padding:0}.st-slim .st-logo i{width:30px;height:30px;font-size:15px;border-radius:9px}@media (max-width:899px){.st-app{display:block;padding-bottom:70px}.st-side{display:none}.st-mtop{display:flex;align-items:center;gap:10px;height:56px;padding:0 14px;background:#fffffff0;backdrop-filter:blur(8px);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:40}.st-mtop .st-logo{padding:0}.st-mtop .st-logo i{width:32px;height:32px;font-size:16px}.st-mtop .sp{flex:1}.st-page{padding:16px 14px 6px}.st-tabs{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));position:fixed;left:0;right:0;bottom:0;z-index:60;background:#fff;border-top:1px solid var(--line);padding:4px 4px calc(4px + env(safe-area-inset-bottom));box-shadow:0 -4px 16px #1e468214}.st-tabs a,.st-tabs button{all:unset;box-sizing:border-box;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:54px;font-size:12px;font-weight:600;color:var(--mute);cursor:pointer;border-radius:12px;position:relative;-webkit-tap-highlight-color:transparent}.st-tabs svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.st-tabs .on{color:var(--pri)}.st-tabs .on:before{content:"";position:absolute;top:0;width:28px;height:3px;border-radius:0 0 3px 3px;background:var(--pri)}.st-more.open{display:flex;position:fixed;inset:0;z-index:90;align-items:flex-end;background:#0f2a4380}.st-more .box{background:#fff;width:100%;border-radius:18px 18px 0 0;padding:8px 14px calc(14px + env(safe-area-inset-bottom));box-shadow:0 -12px 40px #0f2a4340}.st-more .grab{width:36px;height:4px;border-radius:2px;background:var(--line);margin:4px auto 10px}.st-more a,.st-more button{all:unset;box-sizing:border-box;display:flex;align-items:center;gap:14px;min-height:52px;padding:0 10px;border-radius:12px;color:var(--ink);font-weight:600;cursor:pointer;width:100%}.st-more a:hover,.st-more button:hover{background:#f4f8fd}.st-more svg{width:22px;height:22px;fill:none;stroke:var(--pri);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.st-more .soon{margin-left:auto;font-size:12px;font-weight:700;color:#8aa2bb;background:#e4edf8;border-radius:999px;padding:2px 8px}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}@media print{.st-side,.st-mtop,.st-tabs,.st-more,.st-slim,.st-foot{display:none!important}.st-app{display:block}}.auth{background:#fff;border:1px solid var(--line);border-radius:18px;padding:30px;box-shadow:0 12px 40px #1e46821f;margin:0}.auth h1{font-size:28px;margin:4px 0 6px}.auth p{color:var(--mute)}.auth input{border-color:#cbd5e1;border-radius:12px;min-height:46px}.auth input:focus{outline:2px solid #c7ddf9;border-color:#60a5fa}.auth button{background:linear-gradient(135deg,#e0f2fe,#dbeafe);border:1px solid #93c5fd;color:#0b4f9c;font-weight:600;box-shadow:0 2px 8px #2563eb26;border-radius:999px;min-height:48px;font-size:15.5px}.auth button:hover{filter:brightness(.97)}.auth button[disabled]{opacity:.6}.print-report{position:fixed;left:-9999px;top:0;width:760px;background:#fff;color:#0f2a43;padding:24px;font-size:13px}.print-report table{width:100%;border-collapse:collapse;margin:6px 0 14px}.print-report th,.print-report td{border:1px solid #cbd5e1;padding:5px 8px;text-align:left}.print-report h2{font-size:15px;margin:14px 0 4px}@media print{body *{visibility:hidden}.print-report,.print-report *{visibility:visible}.print-report{position:absolute;left:0;top:0;width:100%;padding:0}}.st-load{position:fixed;left:0;right:0;top:0;height:3px;z-index:200;overflow:hidden;background:#2f6fe426}.st-load:after{content:"";position:absolute;inset:0;width:40%;background:#2a62d6;border-radius:3px;animation:stload 1s ease-in-out infinite}@keyframes stload{0%{transform:translate(-100%)}to{transform:translate(260%)}}@media (prefers-reduced-motion:reduce){.st-load:after{animation:none;width:100%;opacity:.6}}.st-update{position:fixed;left:50%;transform:translate(-50%);bottom:calc(76px + env(safe-area-inset-bottom));z-index:150;display:flex;align-items:center;gap:12px;max-width:calc(100vw - 24px);padding:10px 12px 10px 16px;border-radius:14px;background:#0f2a43;color:#fff;font-size:14px;box-shadow:0 10px 30px #0f2a4359}.st-update button{all:unset;cursor:pointer;padding:8px 14px;border-radius:10px;background:#4f8cff;color:#fff;font-weight:700}.st-update button:focus-visible{outline:2px solid #fff;outline-offset:2px}@media (min-width:900px){.st-update{bottom:24px}}.st-theme{all:unset;box-sizing:border-box;cursor:pointer;width:40px;height:40px;border-radius:12px;display:grid;place-items:center;color:var(--ink2,#334155);flex:none}.st-theme:hover{background:#2f6fe41a}.st-theme:focus-visible{outline:2px solid #2563eb;outline-offset:2px}.st-theme svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.st-skip{position:fixed;left:12px;top:-60px;z-index:400;background:#0f2a43;color:#fff;padding:10px 16px;border-radius:10px;font-weight:700;text-decoration:none;transition:top .15s}.st-skip:focus{top:12px;outline:3px solid #fff;outline-offset:2px}#main:focus{outline:none}:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:2px solid #2563eb;outline-offset:2px}.st-offline,.st-online,.st-notice{position:fixed;left:50%;transform:translate(-50%);z-index:300;display:flex;align-items:center;gap:10px;max-width:min(560px,calc(100vw - 24px));font-size:14px;line-height:1.35;border-radius:14px;box-shadow:0 10px 30px #0f2a4340}.st-offline{top:10px;padding:10px 14px;background:#fff1d6;color:#7a4a00;border:1px solid #f3d38a}.st-offline svg{flex:none;width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.st-online{top:10px;padding:9px 16px;background:#dcf5e8;color:#14532d;border:1px solid #9bd8b4;font-weight:700}.st-notice{bottom:calc(84px + env(safe-area-inset-bottom));padding:10px 6px 10px 16px;background:#0f2a43;color:#fff}.st-notice button{all:unset;cursor:pointer;width:36px;height:36px;border-radius:10px;display:grid;place-items:center;color:#cbd5e1}.st-notice button:hover{background:#ffffff1f}.st-notice button:focus-visible{outline:2px solid #fff}@media (min-width:900px){.st-notice{bottom:24px}}@media (prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.st-mtop .st-logo{min-height:44px;align-items:center}html[data-theme=paper]{--tint:#f7ebd0}html[data-theme=mint]{--tint:#e4f6ea}html[data-theme=lavender]{--tint:#ece8fb}html[data-theme=midnight]{--tint:#d8e4fa}html[data-theme=forest]{--tint:#d1e5db}html[data-theme=plum]{--tint:#eddff9}html[data-theme=paper]:after,html[data-theme=mint]:after,html[data-theme=lavender]:after,html[data-theme=midnight]:after,html[data-theme=forest]:after,html[data-theme=plum]:after{content:"";position:fixed;inset:0;z-index:2147483647;pointer-events:none;background:var(--tint);mix-blend-mode:multiply}html[data-theme=dark],html[data-theme=midnight],html[data-theme=forest],html[data-theme=plum]{background:#fff;filter:invert(1) hue-rotate(180deg)}html[data-theme=dark] img,html[data-theme=dark] video,html[data-theme=dark] canvas,html[data-theme=dark] .keep-colours,html[data-theme=midnight] img,html[data-theme=midnight] video,html[data-theme=midnight] canvas,html[data-theme=midnight] .keep-colours,html[data-theme=forest] img,html[data-theme=forest] video,html[data-theme=forest] canvas,html[data-theme=forest] .keep-colours,html[data-theme=plum] img,html[data-theme=plum] video,html[data-theme=plum] canvas,html[data-theme=plum] .keep-colours{filter:invert(1) hue-rotate(180deg)}html[data-theme=dark] body,html[data-theme=midnight] body,html[data-theme=forest] body,html[data-theme=plum] body{background:#dfe6ef}html[data-theme=contrast]{filter:contrast(1.3)}@media print{html[data-theme]{filter:none!important;zoom:1!important}html[data-theme]:after{display:none!important}html[data-theme] img,html[data-theme] video{filter:none!important}}.st-aa{font-weight:700;font-size:15px;letter-spacing:-.3px}.st-ap-scrim{position:fixed;inset:0;z-index:310;background:#0f2a4380}.st-ap{position:fixed;z-index:320;left:0;right:0;bottom:0;max-height:calc(88vh / var(--z,1));overflow:auto;background:#fff;border-radius:20px 20px 0 0;padding:8px 18px calc(18px + env(safe-area-inset-bottom));box-shadow:0 -12px 40px #0f2a434d}.st-ap .grab{width:44px;height:5px;border-radius:3px;background:#d3dff0;margin:4px auto 6px}.st-ap header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.st-ap h2{margin:0;font-size:20px}.st-ap-x{all:unset;cursor:pointer;width:44px;height:44px;border-radius:12px;display:grid;place-items:center;color:#35506b;font-size:17px}.st-ap-x:hover{background:#eef4ff}.st-ap-x:focus-visible{outline:2px solid #2563eb}@media (min-width:700px){.st-ap{left:50%;right:auto;bottom:auto;top:calc(6vh / var(--z,1));width:min(640px,calc(100vw / var(--z,1) - 24px));transform:translate(-50%);border-radius:20px;padding:18px 22px 22px}.st-ap .grab{display:none}}.st-mtop{container-type:inline-size;container-name:mtop}@container mtop (max-width:300px){.st-mtop .st-logo span{display:none}.st-mtop .st-theme:not(.st-aa-btn){display:none}.st-mtop{gap:6px;padding:0 10px}}small{font-size:max(11.5px,.8333em)}b,strong{font-weight:700}
