@font-face{font-family:Manrope;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/a342834df7752944-s.3hd2l7bm32o7k.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Manrope;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/d3fe2f289711ac3f-s.1l2zhvq5eocqf.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Manrope;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/58c4895d0a0ef7cc-s.2vhvl9vrvk-va.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Manrope;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/bfc7db5c00d21bc5-s.173xwsdme27n8.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Manrope;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/6ab0db14f70d8ed6-s.13hnt-xgp82zk.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Manrope;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/a343f882a40d2cc9-s.p.1sj6eobyi31rd.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Manrope Fallback;src:local(Arial);ascent-override:103.31%;descent-override:29.07%;line-gap-override:0.0%;size-adjust:103.19%}.manrope_b7d5735e-module__suUhcW__className{font-family:Manrope,Manrope Fallback;font-style:normal}.manrope_b7d5735e-module__suUhcW__variable{--font-manrope:"Manrope", "Manrope Fallback"}
:root{--ink:#1f2b25;--muted:#6f7b75;--line:#e4e9e5;--paper:#f5f7f4;--white:#fff;--green:#315f4d;--green-soft:#e4eee8;--orange:#e66f3d}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--paper);color:var(--ink);font-family:var(--font-manrope), system-ui, sans-serif;margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}.shell{grid-template-columns:248px 1fr;min-height:100vh;display:grid}.mobile-header,.mobile-menu-close,.mobile-nav-overlay{display:none}.sidebar{color:#fff;background:#18382d;flex-direction:column;height:100vh;padding:30px 22px 22px;display:flex;position:sticky;top:0}.brand{letter-spacing:-.8px;align-items:center;gap:10px;font-size:24px;font-weight:800;display:flex}.brand span{color:#18382d;background:#dbe9df;border-radius:12px;place-items:center;width:34px;height:34px;font-family:Georgia,serif;font-size:22px;display:grid}nav{gap:6px;margin-top:48px;display:grid}nav a{color:#c6d7cf;border-radius:10px;justify-content:space-between;align-items:center;padding:12px 14px;font-size:14px;font-weight:650;text-decoration:none;display:flex}nav a:hover,nav a.active{color:#fff;background:#2a4b3f}nav b{text-align:center;color:#18382d;background:#dce9e0;border-radius:9px;min-width:22px;padding:3px 6px;font-size:11px}.privacy-note{background:#214337;border:1px solid #3b5b50;border-radius:12px;margin-top:auto;padding:15px}.privacy-note span{color:#d8e8df;font-size:12px;font-weight:750}.privacy-note p{color:#9fb8ad;margin:5px 0 0;font-size:11px;line-height:1.45}.profile{border-top:1px solid #365548;align-items:center;gap:10px;margin-top:16px;padding-top:16px;display:flex}.profile-button{color:#fff;text-align:left;background:0 0;border-bottom:0;border-left:0;border-right:0;width:100%}.profile-button:disabled{cursor:default}.avatar{background:#ec8a60;border-radius:50%;place-items:center;width:36px;height:36px;font-size:12px;font-weight:800;display:grid}.profile strong,.profile small{display:block}.profile strong{font-size:13px}.profile small{color:#9fb8ad;margin-top:2px;font-size:10px}.content{min-width:0;padding:32px 42px 24px}.topbar{justify-content:space-between;align-items:center;margin-bottom:26px;display:flex}.topbar p{color:var(--muted);text-transform:uppercase;letter-spacing:.7px;margin:0 0 3px;font-size:12px;font-weight:650}h1{letter-spacing:-1px;margin:0;font-size:28px}.student-pill{border:1px solid var(--line);background:#fff;border-radius:12px;align-items:center;gap:8px;padding:10px 13px;font-size:13px;font-weight:750;display:flex}.student-pill small{color:var(--muted);font-weight:550}.online-dot{background:#52aa72;border-radius:50%;width:8px;height:8px;box-shadow:0 0 0 3px #dff2e5}.hero{background:linear-gradient(120deg,#dcebe2,#eaf1e5 60%,#f3e9d6);border-radius:22px;justify-content:space-between;align-items:center;gap:30px;min-height:190px;padding:34px 38px;display:flex;overflow:hidden}.eyebrow{color:var(--green);text-transform:uppercase;letter-spacing:1.3px;margin-bottom:7px;font-size:10px;font-weight:800;display:block}.hero h2{letter-spacing:-.7px;max-width:670px;margin:0;font-family:Georgia,serif;font-size:32px;font-weight:500;line-height:1.17}.hero h2 em{color:var(--green);font-style:normal}.hero p{color:#5e6f66;max-width:650px;margin:12px 0 0;font-size:13px}.hero-score{aspect-ratio:1;text-align:center;border:10px solid #315f4d24;border-top-color:var(--green);background:#ffffff8c;border-radius:50%;flex:0 0 120px;place-content:center;display:grid}.hero-score strong{letter-spacing:-1px;font-size:27px}.hero-score span{color:var(--muted);font-size:9px}.metric-grid{grid-template-columns:repeat(4,1fr);gap:14px;margin:18px 0;display:grid}.metric-grid article{border:1px solid var(--line);background:#fff;border-radius:16px;min-height:128px;padding:20px}.metric-grid article>span{color:var(--muted);font-size:11px;font-weight:700}.metric-grid strong{letter-spacing:-1px;margin:9px 0 5px;font-size:28px;display:block}.metric-grid strong small{color:var(--muted);font-size:14px}.metric-grid p{color:var(--muted);margin:0;font-size:10px}.metric-grid p.positive{color:#3f8c63}.meter{background:#eef1ee;border-radius:4px;height:4px;margin-top:13px;overflow:hidden}.meter i{border-radius:inherit;background:#e68b53;height:100%;display:block}.two-column{grid-template-columns:1.15fr .85fr;gap:18px;display:grid}.panel{border:1px solid var(--line);background:#fff;border-radius:18px;min-width:0;padding:23px}.panel-heading{justify-content:space-between;align-items:center;margin-bottom:18px;display:flex}.panel-heading h3,.modal h3{letter-spacing:-.4px;margin:0;font-size:18px}.primary-button,.secondary-button,.text-button{border:0;border-radius:9px;font-size:11px;font-weight:750}.primary-button{color:#fff;background:var(--green);padding:10px 13px}.primary-button:hover{background:#244d3e}.secondary-button{color:var(--ink);background:#edf0ed;padding:10px 13px}.text-button{color:var(--green);background:0 0;padding:6px}.timeline{display:grid}.session{grid-template-columns:62px 3px 1fr auto;gap:13px;min-height:76px;display:grid;position:relative}.session-time{text-align:right}.session-time strong,.session-time small{display:block}.session-time strong{font-size:12px}.session-time small{color:var(--muted);margin-top:3px;font-size:9px}.session>i{border-radius:4px;width:3px;height:100%}.session-copy span{text-transform:uppercase;letter-spacing:.6px;font-size:9px;font-weight:800}.session-copy h4,.task h4{margin:3px 0;font-size:12px}.session-copy p,.task p{color:var(--muted);margin:0;font-size:9px}.status{border-radius:7px;align-self:start;padding:4px 7px;font-size:9px;font-weight:750}.status.ready{color:#347354;background:#e5f2e9}.warning{color:#9e5d36;background:#fff1e7;border-radius:8px;margin:8px 0 0;padding:9px;font-size:11px}.task-list{gap:2px;display:grid}.task{border-bottom:1px solid #edf0ed;grid-template-columns:38px 1fr auto;align-items:center;gap:10px;padding:11px 0;display:grid}.task:last-child{border:0}.subject-icon{border-radius:11px;place-items:center;width:36px;height:36px;font-size:13px;font-weight:800;display:grid}.source{text-transform:uppercase;border-radius:7px;padding:4px 7px;font-size:8px;font-weight:750}.source.satchel{color:#6b5792;background:#eee9f6}.source.manual{color:#637069;background:#edf0ee}footer{color:#8a948e;text-align:center;padding:20px 0 0;font-size:10px}.gate{background:radial-gradient(circle at 20% 10%,#e0ece4,#0000 34%),radial-gradient(circle at 85% 80%,#f4e6d3,#0000 32%),#f5f7f4;place-items:center;min-height:100vh;padding:24px;display:grid}.gate-card{border:1px solid var(--line);background:#fffffff0;border-radius:22px;width:min(440px,100%);padding:38px;box-shadow:0 22px 70px #1f362b1f}.gate-card.compact{text-align:center}.gate-card .brand{margin-bottom:34px}.brand.dark{color:var(--ink)}.gate-card h1{margin:0 0 8px;font-family:Georgia,serif;font-size:31px;font-weight:500}.gate-card>p{color:var(--muted);margin:0 0 24px;font-size:12px;line-height:1.6}.gate-card form{gap:14px;display:grid}.gate-card label{color:#445149;gap:6px;font-size:11px;font-weight:750;display:grid}.gate-card input{background:#fbfcfb;border:1px solid #dce2de;border-radius:9px;outline:0;width:100%;padding:12px}.gate-card input:focus{border-color:#739485;box-shadow:0 0 0 3px #e6eee9}.password-control{position:relative}.password-control input{padding-right:44px}.password-toggle{color:#66766e;background:0 0;border:0;border-radius:8px;place-items:center;width:34px;height:34px;padding:0;display:grid;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.password-toggle:hover{color:var(--green);background:#edf3ef}.password-toggle:focus-visible{outline-offset:1px;outline:2px solid #739485}.password-toggle svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:19px;height:19px}.wide{width:100%;margin-top:5px;padding:12px}.switch{width:100%;margin-top:14px}.form-notice{color:#8a4a2d;background:#fff0e7;border-radius:9px;padding:10px 12px;font-size:10px;line-height:1.45}.modal-backdrop{z-index:10;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0f1c1694;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal{background:#fff;border-radius:18px;width:min(560px,100%);max-height:90vh;padding:28px;overflow-y:auto;box-shadow:0 30px 80px #0000003d}.modal-heading{justify-content:space-between;align-items:start;margin-bottom:22px;display:flex}.close{color:#718078;background:0 0;border:0;font-size:26px;line-height:1}.modal label{color:#445149;gap:6px;margin-top:14px;font-size:11px;font-weight:750;display:grid}.modal input,.modal select,.modal textarea{width:100%;color:var(--ink);background:#fbfcfb;border:1px solid #dce2de;border-radius:9px;outline:none;padding:11px 12px;font-size:12px}.modal input:focus,.modal select:focus,.modal textarea:focus{border-color:#739485;box-shadow:0 0 0 3px #e6eee9}.form-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}.modal-actions{justify-content:flex-end;gap:8px;margin-top:24px;display:flex}@media (max-width:1050px){.shell{grid-template-columns:84px 1fr}.sidebar{padding:25px 13px}.brand,.sidebar nav a{justify-content:center;font-size:0}.sidebar nav b,.privacy-note,.profile div:not(.avatar){display:none}.profile{justify-content:center}.content{padding:28px}.metric-grid{grid-template-columns:repeat(2,1fr)}.two-column{grid-template-columns:1fr}}@media (max-width:680px){.shell{display:block}.mobile-header{z-index:30;color:#fff;background:#18382d;justify-content:space-between;align-items:center;min-height:66px;padding:10px 14px;display:flex;position:sticky;top:0;box-shadow:0 7px 20px #1431272e}.mobile-header .brand{justify-content:flex-start;font-size:22px}.mobile-header .brand span{width:32px;height:32px}.mobile-menu-button{color:#fff;background:#214337;border:1px solid #416054;border-radius:10px;flex-wrap:wrap;justify-content:center;align-items:center;gap:4px;width:68px;min-height:42px;padding:7px 10px;display:flex}.mobile-menu-button span{background:currentColor;border-radius:50%;width:5px;height:5px;display:block}.mobile-menu-button strong{flex-basis:100%;font-size:10px;line-height:1}.mobile-nav-overlay{z-index:40;visibility:hidden;opacity:0;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0b1b158c;border:0;transition:opacity .2s,visibility .2s;display:block;position:fixed;inset:0}.mobile-nav-overlay.visible{visibility:visible;opacity:1}.sidebar{z-index:50;align-items:stretch;width:min(84vw,320px);height:100dvh;padding:24px 20px 20px;transition:transform .22s;position:fixed;inset:0 auto 0 0;overflow-y:auto;transform:translate(-105%);box-shadow:20px 0 50px #04130d47}.sidebar.mobile-open{transform:translate(0)}.sidebar>.brand{justify-content:flex-start;padding-right:48px;font-size:24px}.mobile-menu-close{color:#fff;background:#214337;border:1px solid #416054;border-radius:10px;place-items:center;width:38px;height:38px;padding:0;font-size:27px;line-height:1;display:grid;position:absolute;top:20px;right:18px}.sidebar nav{margin-top:34px;display:grid}.sidebar nav button{justify-content:space-between;min-height:46px;font-size:14px}.sidebar nav button b{display:inline-block}.privacy-note{display:block}.profile{border-top:1px solid #365548;justify-content:flex-start;margin:16px 0 0;padding-top:16px}.profile div:not(.avatar){display:block}.content{padding:20px 14px}.topbar{align-items:flex-start;gap:12px}.topbar h1{font-size:22px}.student-pill{flex:none;padding:9px 10px}.student-pill small{display:none}.hero{align-items:start;padding:25px}.hero h2{font-size:26px}.hero-score{display:none}.metric-grid{grid-template-columns:1fr 1fr}.metric-grid article{min-height:118px;padding:16px}.form-row{grid-template-columns:1fr}}@media (max-width:420px){.metric-grid{grid-template-columns:1fr}.metric-grid article{min-height:108px}.topbar{flex-wrap:wrap}}.sidebar nav button{color:#c6d7cf;text-align:left;background:0 0;border:0;border-radius:10px;justify-content:space-between;align-items:center;width:100%;padding:12px 14px;font-size:14px;font-weight:650;display:flex}.sidebar nav button:hover,.sidebar nav button.active{color:#fff;background:#2a4b3f}.sidebar nav button b{text-align:center;color:#18382d;background:#dce9e0;border-radius:9px;min-width:22px;padding:3px 6px;font-size:11px}.two-column.single-column{grid-template-columns:minmax(0,1fr)}.feature-status{margin-top:18px}.feature-status>p{max-width:760px;color:var(--muted);margin:8px 0 18px;font-size:13px;line-height:1.6}.status.pending{color:#855426;background:#f7ead8;display:inline-block}.report-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:18px;display:grid}.report-grid div{background:#f4f7f4;border-radius:12px;padding:18px}.report-grid strong,.report-grid span{display:block}.report-grid strong{font-size:26px}.report-grid span{color:var(--muted);margin-top:4px;font-size:11px}.timetable-panel{overflow:hidden}.timetable-count{color:var(--green);background:var(--green-soft);border-radius:9px;padding:6px 9px;font-size:10px;font-weight:750}.timetable-grid{grid-template-columns:repeat(5,minmax(150px,1fr));gap:10px;padding-bottom:4px;display:grid;overflow-x:auto}.timetable-day{border:1px solid var(--line);background:#f8faf8;border-radius:13px;min-width:0}.timetable-day>header{border-bottom:1px solid var(--line);background:#fff;border-radius:13px 13px 0 0;justify-content:space-between;gap:8px;padding:12px;display:flex}.timetable-day>header strong{font-size:11px}.timetable-day>header span{color:var(--muted);font-size:9px}.timetable-lessons{gap:8px;padding:9px;display:grid}.timetable-lesson{border:1px solid var(--line);background:#fff;border-left-width:3px;border-radius:10px;min-height:86px;padding:10px}.timetable-lesson time,.timetable-lesson strong,.timetable-lesson span{display:block}.timetable-lesson time{color:var(--muted);margin-bottom:7px;font-size:9px;font-weight:650}.timetable-lesson strong{font-size:11px;line-height:1.3}.timetable-lesson span{color:var(--muted);margin-top:4px;font-size:9px;line-height:1.35}.no-lessons{color:var(--muted);text-align:center;margin:18px 0;font-size:10px}.timetable-empty{text-align:center;place-content:center;max-width:560px;min-height:290px;margin:0 auto;display:grid}.timetable-empty>span{width:54px;height:54px;color:var(--green);background:var(--green-soft);border-radius:16px;place-items:center;margin:0 auto 14px;font-size:27px;display:grid}.timetable-empty h3{margin:0;font-family:Georgia,serif;font-size:22px;font-weight:500}.timetable-empty p{max-width:450px;color:var(--muted);margin:8px auto 0;font-size:12px;line-height:1.55}@media (max-width:1050px){.sidebar nav button{justify-content:center;font-size:0}.sidebar nav button b{display:none}}@media (max-width:680px){.sidebar nav button{justify-content:space-between;min-height:46px;font-size:14px}.sidebar nav button b{display:inline-block}.report-grid{grid-template-columns:1fr}.timetable-grid{grid-template-columns:repeat(5,minmax(210px,1fr))}}
