@font-face{font-family:Nunito Sans;font-style:normal;font-weight:200 1000;font-stretch:100%;font-display:swap;src:url(../media/f813d0b748b050e0-s.1jg2wqmry50dw.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:Nunito Sans;font-style:normal;font-weight:200 1000;font-stretch:100%;font-display:swap;src:url(../media/dcd150d580a10316-s.097t91mu4nbwo.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Nunito Sans;font-style:normal;font-weight:200 1000;font-stretch:100%;font-display:swap;src:url(../media/d261779aa92de579-s.2a66m7dsu0m6t.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:Nunito Sans;font-style:normal;font-weight:200 1000;font-stretch:100%;font-display:swap;src:url(../media/24ce79ed121239f3-s.1puy2ov14w4rp.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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Nunito Sans;font-style:normal;font-weight:200 1000;font-stretch:100%;font-display:swap;src:url(../media/f141b5b7abe57afc-s.p.3bm7l-ln3bnu5.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:Nunito Sans Fallback;src:local(Arial);ascent-override:99.71%;descent-override:34.82%;line-gap-override:0.0%;size-adjust:101.39%}.Mefjcq_className{font-family:Nunito Sans,Nunito Sans Fallback;font-style:normal}
:root{--purple:#5b2a8a;--purple-deep:#3d1866;--red:#d3202a;--teal:#3dbbb0;--teal-deep:#17776f;--gold:#d9a518;--paper:#f3eff9;--ink:#1d1830;--muted:#675f78;--line:#e0d9ec;--tint:#efe8f8;--ok:#1d6b3a;--ok-bg:#e8f5ec;--bad:#9d1c22;--bad-bg:#fbeaea}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--paper);color:var(--ink);font-size:16px;line-height:1.55}h1,h2,h3{line-height:1.25}a{color:var(--purple)}:focus-visible{outline:3px solid var(--teal-deep);outline-offset:2px}.topbar :focus-visible,.hero :focus-visible{outline-color:#fff}.muted{color:var(--muted)}.loading-page{justify-content:center;align-items:center;min-height:100vh;display:flex}.center-page{background-color:var(--purple-deep);background-image:radial-gradient(circle 260px at 0% 0%, var(--teal) 99%, transparent 100%), radial-gradient(circle 200px at 100% 100%, var(--red) 99%, transparent 100%), radial-gradient(circle 110px at 0% 100%, var(--gold) 99%, transparent 100%), radial-gradient(circle 70px at 100% 8%, var(--gold) 99%, transparent 100%);justify-content:center;align-items:center;min-height:100vh;padding:32px 16px;display:flex}.panel{border-top:5px solid var(--gold);background:#fff;border-radius:14px;width:100%;max-width:440px;padding:28px;box-shadow:0 12px 40px #14082859}.brand{text-align:center;margin-bottom:18px}.brand-logo{width:190px;height:auto}.brand p{color:var(--muted);margin:8px 0 0}.stack{gap:10px;display:grid}.panel-footer{text-align:center;margin:18px 0 0;font-size:.95rem}label{margin:16px 0 6px;font-size:.92rem;font-weight:700;display:block}input,select{width:100%;color:var(--ink);font:inherit;background:#fff;border:1px solid #cfc7de;border-radius:8px;padding:11px 12px}input:focus,select:focus{border-color:var(--purple)}.hint{color:var(--muted);margin:6px 0 0;font-size:.88rem}.row{gap:12px;display:flex}.row>*{flex:1;min-width:0}.row>.narrow{flex:0 0 120px}form .btn{margin-top:22px}.btn{border:1px solid var(--purple);background:var(--purple);color:#fff;font:inherit;text-align:center;cursor:pointer;border-radius:8px;padding:11px 18px;font-weight:700;text-decoration:none;display:inline-block}.btn:hover{background:var(--purple-deep)}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-block{width:100%;display:block}.btn-outline{color:var(--purple);background:0 0}.btn-outline:hover{background:var(--tint)}.btn-ghost{color:var(--purple);border-color:var(--line);background:0 0}.btn-ghost:hover{background:var(--tint)}.btn-light{color:var(--purple-deep);background:#fff;border-color:#fff}.btn-light:hover{background:var(--tint)}.btn-danger{color:var(--red);border-color:var(--red);background:0 0}.btn-danger:hover{background:var(--bad-bg)}.btn-small{padding:6px 12px;font-size:.9rem}.rows .btn,.topbar .btn{margin-top:0}.alert{border-radius:8px;margin:16px 0 0;padding:10px 12px;font-size:.95rem}.alert-error{background:var(--bad-bg);color:var(--bad)}.alert-success{background:var(--ok-bg);color:var(--ok)}.alert-info{background:var(--tint);color:var(--purple-deep)}.topbar{background:var(--purple-deep);border-bottom:4px solid var(--gold)}.topbar-inner{justify-content:space-between;align-items:center;gap:12px;max-width:960px;margin:0 auto;padding:10px 16px;display:flex}.topbar-brand{color:#fff;align-items:center;gap:12px;min-width:0;display:flex}.logo-badge{background:#fff;border-radius:10px;flex:none;place-items:center;width:62px;height:58px;padding:3px;display:grid}.logo-badge img{width:100%;height:auto}.school-name{font-size:1.1rem;font-weight:800;line-height:1.2}.school-name small{color:#e3d6f5;font-size:.82rem;font-weight:400;display:block}.topbar-user{align-items:center;gap:10px;display:flex}.role-tag{background:var(--gold);color:var(--ink);border-radius:999px;padding:3px 10px;font-size:.82rem;font-weight:800}.hero{background-color:var(--purple);background-image:radial-gradient(circle 170px at 94% 15%, var(--teal) 99%, transparent 100%), radial-gradient(circle 90px at 82% 120%, var(--red) 99%, transparent 100%), radial-gradient(circle 46px at 99% 92%, var(--gold) 99%, transparent 100%)}.hero-inner{color:#fff;max-width:960px;margin:0 auto;padding:30px 16px 34px}.hero-hello{color:#eadcff;margin:0 0 4px}.hero h1{margin:0;font-size:1.9rem}.page{max-width:960px;margin:0 auto;padding:8px 16px 64px}.section{border:1px solid var(--line);border-top:5px solid var(--purple);background:#fff;border-radius:12px;margin-top:22px;padding:20px 22px 22px}.page>.section:nth-child(4n+2){border-top-color:var(--teal)}.page>.section:nth-child(4n+3){border-top-color:var(--red)}.page>.section:nth-child(4n+4){border-top-color:var(--gold)}.section h2{color:var(--purple-deep);margin:0 0 4px;font-size:1.1rem}.section>p{color:var(--muted);margin:0 0 12px}.rows{border-top:1px solid var(--line);margin:12px 0 0;padding:0;list-style:none}.rows li{border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:14px 0;display:flex}.rows li:last-child{border-bottom:0}.rows .who{min-width:0}.rows .who strong{display:block}.rows .who span{color:var(--muted);font-size:.92rem}.rows .actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.rows select{width:auto;padding:7px 10px}.facts{grid-template-columns:max-content 1fr;gap:6px 18px;margin:12px 0 0;display:grid}.facts dt{color:var(--muted)}.facts dd{word-break:break-word;margin:0;font-weight:700}.big-number{color:var(--teal-deep);margin:10px 0 0;font-size:2.6rem;font-weight:800;line-height:1}.soon{color:var(--muted);margin:12px 0 0;padding-left:20px}.soon li{margin:4px 0}@media (max-width:600px){.center-page{background-image:radial-gradient(circle 150px at 0% 0%, var(--teal) 99%, transparent 100%), radial-gradient(circle 120px at 100% 100%, var(--red) 99%, transparent 100%), radial-gradient(circle 60px at 0% 100%, var(--gold) 99%, transparent 100%)}.row{flex-direction:column;gap:0}.row>.narrow{flex:1}.panel{padding:22px 18px}.school-name small{display:none}.school-name{font-size:1rem}.hero{background-image:radial-gradient(circle 60px at 100% 0%, var(--teal) 99%, transparent 100%), radial-gradient(circle 34px at 100% 100%, var(--gold) 99%, transparent 100%)}.hero h1{font-size:1.5rem}.hero-inner{padding-right:56px}}.subnav{border-bottom:1px solid var(--line);background:#fff}.subnav-inner{gap:4px;max-width:960px;margin:0 auto;padding:0 16px;display:flex;overflow-x:auto}.subnav a{color:var(--muted);white-space:nowrap;border-bottom:3px solid #0000;padding:12px 14px;font-weight:700;text-decoration:none}.subnav a:hover{color:var(--purple)}.subnav a.active{color:var(--purple-deep);border-bottom-color:var(--gold)}.inline-form{flex-wrap:wrap;align-items:flex-end;gap:10px;margin-top:12px;display:flex}.inline-form>div{flex:180px;min-width:0}.inline-form label,.inline-form .btn{margin-top:0}.chips{flex-wrap:wrap;gap:6px;margin-top:6px;display:flex}.chip{background:var(--tint);color:var(--purple-deep);border-radius:999px;align-items:center;gap:4px;padding:2px 4px 2px 10px;font-size:.88rem;display:inline-flex}.chip button{color:var(--purple-deep);cursor:pointer;background:0 0;border:0;border-radius:999px;padding:2px 6px;font-size:1.1rem;line-height:1}.chip button:hover{background:var(--line)}.code{letter-spacing:.08em;color:#5b4300;background:#fff7dc;border:1px solid #ecd48a;border-radius:6px;padding:4px 9px;font-family:ui-monospace,Consolas,monospace;font-weight:700}.alert.toast{z-index:20;max-width:560px;margin:0 auto;position:fixed;bottom:16px;left:16px;right:16px;box-shadow:0 6px 24px #14082840}.table-wrap{margin-top:14px;overflow-x:auto}.score-table{border-collapse:collapse;width:100%;min-width:520px}.score-table th,.score-table td{text-align:left;border-bottom:1px solid var(--line);padding:8px 10px}.score-table th{color:var(--muted);font-size:.85rem}.score-table th small{font-weight:400}.score-table input{width:84px;padding:8px 10px}.score-table .total{color:var(--teal-deep);font-weight:800}.save-bar{margin-top:16px}.term-tag{background:var(--teal);color:var(--ink);vertical-align:middle;border-radius:999px;margin-left:10px;padding:2px 9px;font-size:.8rem;font-weight:800;display:inline-block}.report-head{border-bottom:3px solid var(--gold);align-items:center;gap:16px;padding-bottom:14px;display:flex}.report-logo{width:84px;height:auto}.report-head h2{margin:0;font-size:1.4rem}.report-head p{color:var(--muted);margin:0}.report-head .report-title{color:var(--purple-deep);margin-top:4px;font-weight:800}.report-facts{margin:16px 0 4px}.report-summary{flex-wrap:wrap;gap:6px 26px;margin:16px 0 0;font-weight:700;display:flex}.report-key{color:var(--muted);margin:14px 0 0;font-size:.85rem}.signatures{flex-wrap:wrap;gap:32px;margin-top:46px;display:flex}.signatures div{border-top:1px solid var(--ink);color:var(--muted);flex:200px;padding-top:6px;font-size:.9rem}@page{size:A4;margin:0}@media print{body{background:#fff}.topbar,.subnav,.hero,.no-print,.toast{display:none!important}.page{max-width:none;padding:14mm}.section{margin:0;padding:0;border:0!important}.table-wrap{overflow:visible}}.score-table .owing{color:var(--red);font-weight:800}.voided{color:var(--muted);text-decoration:line-through}textarea{width:100%;color:var(--ink);font:inherit;resize:vertical;background:#fff;border:1px solid #cfc7de;border-radius:8px;padding:11px 12px}textarea:focus{border-color:var(--purple)}.comment-list li{display:block}.comment-list label{margin:0 0 6px}.report-comments{margin:18px 0 0}.report-comments p{margin:6px 0}.seg{border:1px solid #cfc7de;border-radius:8px;display:inline-flex;overflow:hidden}.seg button{color:var(--ink);font:inherit;cursor:pointer;background:#fff;border:0;border-left:1px solid #cfc7de;padding:8px 14px;font-size:.9rem}.seg button:first-child{border-left:0}.seg button[aria-pressed=true].s-present{background:var(--teal-deep);color:#fff}.seg button[aria-pressed=true].s-late{background:var(--gold);color:var(--ink);font-weight:700}.seg button[aria-pressed=true].s-absent{background:var(--red);color:#fff}.tally{flex-wrap:wrap;gap:6px 20px;margin:12px 0 0;font-weight:700;display:flex}.avatar{object-fit:cover;background:var(--gold);width:36px;height:36px;color:var(--ink);border-radius:50%;flex:none;place-items:center;font-weight:800;display:inline-grid}.avatar-lg{width:88px;height:88px;font-size:2rem}.account-link{color:#fff;align-items:center;gap:8px;font-size:.95rem;text-decoration:none;display:inline-flex}.account-link:hover .account-text{text-decoration:underline}.avatar-row{flex-wrap:wrap;align-items:center;gap:18px;margin-top:8px;display:flex}.narrow-form{max-width:440px}@media (max-width:600px){.account-text{display:none}}.rows .who>span{display:block}.rows li>.pay-form{border-top:1px dashed var(--line);flex:100%;margin-top:0;padding-top:10px}.mini{width:110px;padding:7px 9px}.warn{background:#fff3d6;border-radius:6px;margin-top:4px;padding:4px 8px;font-size:.88rem;color:#6b4300!important}.topbar-left{align-items:center;gap:12px;min-width:0;display:flex}.topbar-brand{color:#fff;align-items:center;gap:12px;min-width:0;text-decoration:none;display:flex}.menu-btn{color:#fff;cursor:pointer;background:0 0;border:1px solid #fff6;border-radius:8px;flex:none;place-items:center;width:42px;height:42px;display:inline-grid}.menu-btn:hover{background:#ffffff24}.backdrop{z-index:30;background:#14082880;position:fixed;inset:0}.drawer{z-index:40;visibility:hidden;background:#fff;flex-direction:column;width:min(310px,86vw);transition:transform .2s,visibility .2s;display:flex;position:fixed;top:0;bottom:0;left:0;transform:translate(-100%);box-shadow:4px 0 24px #1408284d}.drawer.open{visibility:visible;transform:none}.drawer-head{background:var(--purple-deep);border-bottom:4px solid var(--gold);color:#fff;justify-content:space-between;align-items:center;gap:10px;padding:14px 16px;display:flex}.drawer-head strong{display:block}.drawer-head small{color:#e3d6f5}.drawer nav{flex:1;padding:10px 8px;overflow-y:auto}.drawer nav a{color:var(--ink);border-radius:8px;padding:12px 14px;font-weight:700;text-decoration:none;display:block}.drawer nav a.active{background:var(--tint);color:var(--purple-deep);box-shadow:inset 4px 0 0 var(--gold)}.drawer-foot{border-top:1px solid var(--line);gap:8px;padding:12px 16px;display:grid}@media (prefers-reduced-motion:reduce){.drawer{transition:none}}@media print{.drawer,.backdrop{display:none!important}}.captcha{margin-top:18px}.check{align-items:flex-start;gap:8px;margin:12px 0;font-weight:400;display:flex}.check input{width:auto;margin-top:4px}.qr{border:1px solid var(--line);background:#fff;border-radius:10px;width:190px;height:190px;margin:10px 0;padding:8px;display:block}.secret{letter-spacing:.06em;word-break:break-all;font-family:ui-monospace,Consolas,monospace;font-weight:700}.steps{margin:8px 0;padding-left:20px}:root{--page:#e1d5f1;--card:#fcfaff;--tint-strong:#e9defa}body{background-color:var(--page);background-image:radial-gradient(230px at 100% 0,#3dbbb061 99%,#0000 100%),radial-gradient(170px at 0 100%,#d3202a33 99%,#0000 100%),radial-gradient(100px at 97% 94%,#d9a51866 99%,#0000 100%);background-attachment:fixed}.hero-inner{padding:36px 16px 58px}.hero h1{font-size:2.1rem}.page{margin-top:-28px;padding-top:0;position:relative}.section{--accent:var(--purple);background:var(--card);border:0;border-radius:14px;margin-top:20px;padding:18px 22px 22px;overflow:hidden;box-shadow:0 3px 12px #3d186629}.page>.section:first-child{margin-top:0}.page>.section:nth-child(4n+2){--accent:var(--teal-deep)}.page>.section:nth-child(4n+3){--accent:var(--red)}.page>.section:nth-child(4n+4){--accent:var(--gold)}.section>h2:first-child{background:var(--accent);color:#fff;margin:-18px -22px 16px;padding:13px 22px;font-size:1.05rem}.page>.section:nth-child(4n+4)>h2:first-child{color:var(--ink)}.section>h2 .term-tag{color:var(--purple-deep);background:#fff}.score-table th{background:var(--tint-strong);color:var(--purple-deep)}.score-table tbody tr:nth-child(2n) td{background:#f4eefc}.big-number{background:var(--tint-strong);border-radius:12px;padding:6px 18px;display:inline-block}.drawer{background:var(--purple-deep)}.drawer-head{background:#2a0f4a}.drawer nav a{color:#f1e9ff;align-items:center;gap:12px;display:flex}.drawer nav a:before{content:"";background:var(--teal);border-radius:50%;flex:none;width:10px;height:10px}.drawer nav a:nth-child(3n+2):before{background:var(--gold)}.drawer nav a:nth-child(3n+3):before{background:#ff6b73}.drawer nav a:hover{background:#ffffff1f}.drawer nav a.active{color:#fff;box-shadow:inset 4px 0 0 var(--gold);background:#ffffff2e}.drawer-foot{border-top:1px solid #fff3}.drawer-foot .btn-outline,.drawer-foot .btn-ghost{color:#fff;background:0 0;border-color:#ffffff73}.drawer-foot .btn-outline:hover,.drawer-foot .btn-ghost:hover{background:#ffffff24}.drawer :focus-visible{outline-color:var(--gold)}@media print{body{background:#fff!important}.page{margin-top:0}.section{box-shadow:none;background:#fff;overflow:visible}}
