@font-face{font-family:Lato;font-style:normal;font-display:swap;font-weight:400;src:url(/build/assets/lato-latin-ext-400-normal-CK4GAP86.woff2)format("woff2"),url(/build/assets/lato-latin-ext-400-normal-NoO0okhb.woff)format("woff");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:Lato;font-style:normal;font-display:swap;font-weight:400;src:url(/build/assets/lato-latin-400-normal-BEhtfm5r.woff2)format("woff2"),url(/build/assets/lato-latin-400-normal-B11PyLys.woff)format("woff");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:Lato;font-style:normal;font-display:swap;font-weight:700;src:url(/build/assets/lato-latin-ext-700-normal-C6gwlRgY.woff2)format("woff2"),url(/build/assets/lato-latin-ext-700-normal-oVW-9CSr.woff)format("woff");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:Lato;font-style:normal;font-display:swap;font-weight:700;src:url(/build/assets/lato-latin-700-normal-BUGMgin4.woff2)format("woff2"),url(/build/assets/lato-latin-700-normal-DAdL7O4w.woff)format("woff");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:Lato;font-style:normal;font-display:swap;font-weight:900;src:url(/build/assets/lato-latin-ext-900-normal-BhetttCG.woff2)format("woff2"),url(/build/assets/lato-latin-ext-900-normal-CjTVdnWO.woff)format("woff");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:Lato;font-style:normal;font-display:swap;font-weight:900;src:url(/build/assets/lato-latin-900-normal-C3uaq3BA.woff2)format("woff2"),url(/build/assets/lato-latin-900-normal-CZBfLiEO.woff)format("woff");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}:root{--yellow:#f7cf19;--yellow-soft:#fdf3c4;--yellow-deep:#c9a400;--ink:#1a1a1a;--muted:#5f5a52;--taupe:#766550;--line:#e6e1d6;--bg:#faf8f3;--card:#fff;--ok:#2e7d32;--bad:#b3261e;--r:10px}*{box-sizing:border-box}html,body{margin:0}body{color:var(--ink);background:var(--bg);font-family:Lato,system-ui,-apple-system,Segoe UI,sans-serif;font-size:15px;line-height:1.45}button,select,input,textarea{font:inherit;color:inherit}header.top{border-bottom:1px solid var(--line);background:#fff}.top-inner{flex-wrap:wrap;align-items:center;gap:16px;max-width:1180px;margin:0 auto;padding:14px 20px;display:flex}.top img{flex:none;width:64px;height:64px}.brand h1{letter-spacing:.2px;margin:0;font-size:22px;font-weight:900}.brand p{color:var(--muted);margin:2px 0 0;font-size:14px}.top .who{color:var(--muted);text-align:right;align-items:center;gap:10px;margin-left:auto;font-size:13px;display:flex}.band{background:linear-gradient(90deg, var(--yellow) 0 70%, var(--taupe) 70% 100%);height:6px}nav.tabs{flex-wrap:wrap;gap:4px;max-width:1180px;margin:0 auto;padding:0 20px;display:flex}nav.tabs button{cursor:pointer;color:var(--muted);background:0 0;border:0;border-bottom:3px solid #0000;padding:12px 14px;font-weight:700}nav.tabs button[aria-selected=true]{color:var(--ink);border-bottom-color:var(--yellow)}nav.tabs button:focus-visible{outline:2px solid var(--taupe);outline-offset:-2px}main{max-width:1180px;margin:0 auto;padding:20px}.notice{background:var(--yellow-soft);border-radius:var(--r);border:1px solid #ebd983;margin-bottom:16px;padding:10px 14px;font-size:14px}.notice.err{background:#fbe9e7;border-color:#f2b8b5}.grid{grid-template-columns:minmax(300px,400px) 1fr;align-items:start;gap:20px;display:grid}@media (width<=860px){.grid{grid-template-columns:1fr}}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:18px}.card h2{margin:0 0 12px;font-size:17px;font-weight:900}.card h2 small{color:var(--muted);font-size:14px;font-weight:400}.cal-head{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.cal-head strong{text-transform:capitalize;font-size:16px}.iconbtn{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:8px;width:44px;height:44px;font-size:16px;line-height:1}.iconbtn:hover{background:var(--yellow-soft)}.cal{grid-template-columns:repeat(7,1fr);gap:4px;display:grid}.cal .dow{color:var(--muted);text-align:center;text-transform:uppercase;padding:4px 0;font-size:12px;font-weight:700}.day{aspect-ratio:1;cursor:pointer;background:#fff;border:1px solid #0000;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;font-size:14px;font-weight:700;display:flex;position:relative}.day:hover:not(:disabled){border-color:var(--yellow-deep)}.day.out{visibility:hidden}.day:disabled{color:#8f897d;cursor:default;background:0 0}.day.today{box-shadow:inset 0 0 0 2px var(--taupe)}.day.sel{background:var(--yellow);border-color:var(--yellow-deep)}.day .cnt{color:var(--taupe);font-size:10px;font-weight:700;position:absolute;bottom:4px}.day.sel .cnt{color:var(--ink)}.legend{color:var(--muted);flex-wrap:wrap;gap:14px;margin-top:12px;font-size:12px;display:flex}.legend i{vertical-align:-2px;border-radius:3px;width:12px;height:12px;margin-right:5px;display:inline-block}.legend .swatch-selected{background:var(--yellow)}.legend .swatch-today{box-shadow:inset 0 0 0 2px var(--taupe)}.legend b{color:var(--taupe)}.field{margin-bottom:16px}.field>label,.field>.lbl,.cfg-label{text-transform:uppercase;letter-spacing:.4px;color:var(--taupe);margin-bottom:6px;font-size:13px;font-weight:700;display:block}select,.text-input{border:1px solid var(--line);background:#fff;border-radius:8px;width:100%;min-height:44px;padding:10px 12px}select:focus,textarea:focus,input:focus{outline:2px solid var(--yellow);outline-offset:0;border-color:var(--yellow-deep)}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:999px;min-height:44px;padding:8px 14px;font-size:14px;font-weight:700}.chip:hover:not(:disabled){border-color:var(--yellow-deep)}.chip[aria-pressed=true]{background:var(--yellow);border-color:var(--yellow-deep)}.primary{background:var(--ink);color:#fff;cursor:pointer;border:0;border-radius:8px;min-height:44px;padding:12px 20px;font-weight:900}.primary:hover:not(:disabled){background:#000}.primary:disabled{opacity:.4;cursor:not-allowed}.primary.destructive,.primary.destructive:hover:not(:disabled){background:var(--bad)}.ghost{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:8px;min-height:44px;padding:8px 12px;font-weight:700}.ghost:hover{background:var(--yellow-soft)}.danger{color:var(--bad)}.times{align-items:flex-end;gap:10px;display:flex}.times>div{flex:1}.times span{color:var(--muted);padding-bottom:10px}.tl{color:var(--muted);margin-bottom:3px;font-size:12px;display:block}.summary{background:var(--bg);color:var(--muted);border-radius:8px;margin-bottom:14px;padding:10px 12px;font-size:14px}.summary b{color:var(--ink)}.msg{margin-top:12px;font-size:14px;font-weight:700}.msg.ok{color:var(--ok)}.msg.bad{color:var(--bad)}.table-scroll{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:14px}th,td{text-align:left;border-bottom:1px solid var(--line);vertical-align:top;padding:9px 8px}th{text-transform:uppercase;letter-spacing:.4px;color:var(--taupe);font-size:12px}tr.mine td:first-child{box-shadow:inset 3px 0 0 var(--yellow)}.empty{color:var(--muted);padding:14px 0;font-size:14px}.toolbar{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px;display:flex}.toolbar .sp{flex:1}.toolbar h2{margin:0}.cfg{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;display:grid}textarea{border:1px solid var(--line);resize:vertical;border-radius:8px;width:100%;min-height:200px;padding:10px;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:13px}textarea.tall{min-height:260px}.hint{color:var(--muted);margin-top:4px;font-size:12px}.cfg-intro{margin-top:-6px;margin-bottom:14px}.hidden{display:none!important}footer{max-width:1180px;color:var(--muted);margin:0 auto;padding:10px 20px 30px;font-size:12px}.dlg{z-index:10;background:#00000059;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.dlg .card{width:100%;max-width:420px}.dlg .summary{margin:0}.dlg .row{justify-content:flex-end;gap:8px;margin-top:14px;display:flex}.spaced{margin-top:22px}.spaced-sm{margin-top:16px}.closed-box{text-align:center;max-width:640px;margin:60px auto;padding:0 20px}.closed-box h2{margin:0 0 8px;font-size:22px;font-weight:900}.closed-box p{color:var(--muted);margin:0}.teacher-form{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));align-items:end;gap:12px;margin-bottom:12px;display:grid}.teacher-form .field{margin-bottom:0}.check{align-items:center;gap:8px;min-height:44px;display:flex}.row-actions{flex-wrap:wrap;gap:6px;display:flex}.login-wrap{max-width:400px;margin:48px auto;padding:0 20px}.login-wrap .card{padding:24px}.field-error{color:var(--bad);margin:0 0 14px;font-size:14px;font-weight:700}.login-wrap .primary{width:100%}
