:root{color:#223831;font-synthesis:none;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--surface:#fff;--muted:#65766d;--line:#dbe2da;--accent:#245e51;--soft:#e8eee7;--error:#a12a2a;background:#f4f5ef;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}*{box-sizing:border-box}.grade-buttons{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-block:12px;display:grid}.grade-buttons button[aria-pressed=true]{outline:2px solid var(--accent);outline-offset:-2px}.grade-component{border-bottom:1px solid var(--line);padding-block:12px}.grade-summary{margin-block:8px;font-weight:600;display:block}.student-select{text-align:left;background:var(--soft);width:100%;color:inherit}.settings-grid{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;display:grid}fieldset{border:1px solid var(--line);border-radius:12px;min-width:0;margin-block:16px}.journal-dialog{overscroll-behavior:contain;border:1px solid var(--line);background:var(--surface);width:min(760px,100% - 16px);max-height:calc(100dvh - 24px);color:inherit;border-radius:18px;padding:18px;overflow-y:auto}.journal-dialog::backdrop{background:#0009}.dialog-heading{justify-content:space-between;align-items:center;gap:12px;display:flex}.attendance-controls{grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;margin-block:12px;display:grid}.attendance-controls button{overflow-wrap:anywhere;padding:12px 3px;font-size:.82rem}.attendance-controls button[aria-pressed=true]{outline:2px solid var(--accent);outline-offset:-2px}.attendance-badge{border:1px solid var(--line);border-radius:12px;margin-block:8px;padding:6px 9px;font-size:.8rem;display:inline-block}.risk-orange{color:#914600;background:#fff1cf;border-color:#b56710}.risk-red{color:#9c2020;background:#ffe7e7;border-color:#b22424}.attendance-stats{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px;display:grid}.attendance-stats dt{color:var(--muted);font-size:.8rem}.attendance-stats dd{margin:4px 0 0;font-weight:600}.attendance-history{padding-left:20px}.attendance-history li{margin-block:14px}.attendance-history small{display:block}body{margin:0}button,input,a{-webkit-tap-highlight-color:transparent}button,input{font:inherit}button,a{touch-action:manipulation}button{background:var(--accent);color:#fff;cursor:pointer;border:0;border-radius:12px;min-height:46px;padding:12px 18px;font-weight:600}button:disabled{opacity:.48;cursor:not-allowed}button:hover:not(:disabled){filter:brightness(.94)}a{color:inherit}a:focus-visible,button:focus-visible,input:focus-visible,summary:focus-visible{outline-offset:4px;outline:3px solid #bd8730}header{justify-content:space-between;align-items:center;gap:16px;max-width:1152px;margin:auto;padding:28px 32px;display:flex}.brand{align-items:center;gap:12px;font-size:20px;font-weight:700;text-decoration:none;display:flex}.brand small{color:var(--muted);margin-top:4px;font-size:11px;font-weight:400;display:block}.logo{background:var(--accent);color:#fff;border-radius:13px;place-items:center;width:44px;height:44px;display:grid}.quiet,.secondary{background:var(--soft);color:inherit}.danger{color:var(--error);border:1px solid var(--line);background:0 0}main{max-width:1088px;margin:auto;padding:12px 32px 130px}.local{color:var(--muted);flex-wrap:wrap;align-items:center;gap:9px;margin:6px 0 38px;font-size:12px;display:flex}.local>span:first-child{color:var(--accent)}.local-detail{margin-left:auto}.eyebrow{text-transform:uppercase;letter-spacing:1.5px;color:var(--muted);font-size:11px;font-weight:700}h1{letter-spacing:-1.8px;margin:12px 0 20px;font-size:clamp(32px,5vw,52px);line-height:1.13}h2{letter-spacing:-.4px;margin:0 0 12px;font-size:20px}h3{margin:0 0 8px;font-size:16px}p{color:var(--muted);overflow-wrap:anywhere;margin:8px 0 16px;line-height:1.6}.lead{max-width:560px;margin-bottom:30px;font-size:17px}.card{background:var(--surface);border:1px solid var(--line);border-radius:20px;margin-bottom:20px;padding:26px}.empty{padding:40px 28px}.empty h2{margin-top:14px}.badge{background:var(--soft);color:var(--muted);border-radius:8px;padding:7px 10px;font-size:11px;display:inline-block}.choices{grid-template-columns:1fr 1fr;gap:18px;margin:32px 0;display:grid}.choices button{text-align:left;background:var(--surface);color:inherit;border:1px solid var(--line);flex-direction:column;gap:16px;padding:30px;font-weight:400;line-height:1.5;display:flex}.choices strong{font-size:18px}.choices button>span:last-child{color:var(--muted);font-size:14px}.choice-icon{color:var(--accent);font-size:30px}.backup{border-top:1px solid var(--line);color:var(--muted);max-width:740px;margin-top:42px;padding-top:22px;font-size:12px}.backup p{margin-bottom:0}.group-layout{grid-template-columns:minmax(230px,.8fr) minmax(0,1.4fr);gap:24px;display:grid}label{color:var(--muted);margin:16px 0;font-size:13px;display:block}input{border:1px solid var(--line);background:var(--surface);width:100%;min-height:48px;color:inherit;border-radius:10px;margin-top:8px;padding:10px 12px;display:block}.group-button{width:100%;color:inherit;border:1px solid var(--line);text-align:left;background:0 0;margin:12px 0;display:block}.group-button[aria-pressed=true]{background:var(--soft);border-color:var(--accent)}.group-button small{color:var(--muted);margin-top:6px;font-size:12px;display:block}.actions{flex-wrap:wrap;gap:8px;display:flex}.actions button{padding:10px 12px;font-size:12px}.student,.read-row{border-top:1px solid var(--line);overflow-wrap:anywhere;padding:20px 0}.student p{font-size:12px}.read-row span{color:var(--muted);margin-top:6px;display:block}.count{color:var(--muted);font-size:24px}.notice{background:var(--soft);border-radius:12px;padding:12px 16px;font-size:13px}.error{border:1px solid var(--error);color:var(--error);border-radius:12px;justify-content:space-between;align-items:center;gap:12px;margin-bottom:24px;padding:16px;display:flex}.error button{color:inherit;background:0 0}nav{border-top:1px solid var(--line);background:var(--surface);padding:10px 20px max(12px, env(safe-area-inset-bottom));z-index:2;justify-content:center;gap:60px;display:flex;position:fixed;bottom:0;left:0;right:0}nav a{text-align:center;min-width:70px;min-height:48px;color:var(--muted);border-radius:10px;padding:4px 12px;font-size:11px;text-decoration:none}nav a span{margin-bottom:4px;font-size:23px;display:block}nav a[aria-current]{color:var(--accent);background:var(--soft);font-weight:700}summary{cursor:pointer;min-height:44px;padding:10px 0;font-size:13px}@media (width<=640px){header{padding:20px}.brand small{font-size:10px}main{padding:8px 20px 130px}.local{margin-bottom:28px}.local-detail{width:100%;margin-left:16px}.choices,.group-layout{grid-template-columns:1fr}.choices button{padding:24px}.card{padding:22px}.empty{padding:32px 22px}nav{gap:clamp(4px,2vw,22px)}nav a{flex:1;min-width:0;max-width:110px}h1{letter-spacing:-1px}.quiet{padding:10px;font-size:12px}}@media (prefers-color-scheme:dark){:root{color:#e4eae3;--surface:#1e2b25;--muted:#a7b9ad;--line:#35453b;--accent:#428b73;--soft:#293e32;--error:#ff9a92;background:#141e1a}}.backup-settings form{border-top:1px solid var(--line);margin-top:24px;padding-top:20px}.check{align-items:center;gap:12px;min-height:48px;display:flex}.check input{flex-shrink:0;width:24px;min-height:24px;margin:0}.backup-settings .notice button{margin-top:10px}select,textarea{font:inherit;border:1px solid var(--line);background:var(--surface);width:100%;min-height:48px;color:inherit;border-radius:10px;margin-top:8px;padding:10px 12px;display:block}textarea{resize:vertical;min-height:140px}.group-tabs,.date-nav{flex-wrap:wrap;align-items:center;gap:8px;margin:16px 0;display:flex}.group-tabs button[aria-pressed=true]{background:var(--accent);color:#fff}.date-nav label{flex:1;min-width:150px;margin:0}.lesson-card form,.card form+form{border-top:1px solid var(--line);margin-top:16px;padding-top:16px}.card li{overflow-wrap:anywhere}.review-mark{border-radius:.4rem;padding:.1rem .3rem;font-weight:650;display:inline-block}.review-positive{color:#493b00;background:#fde68a}.review-debt{color:#fff;background:#b91c1c}.preserve-text{white-space:pre-wrap;overflow-wrap:anywhere}textarea{width:100%;min-height:5rem;font:inherit;border:1px solid var(--line);background:var(--surface);color:inherit;border-radius:.6rem;padding:.7rem}.card,.group-layout>section{min-width:0}.semester-scroll{border:1px solid var(--line);overscroll-behavior-x:contain;border-radius:.6rem;max-width:100%;max-height:70vh;overflow:auto}.semester-scroll:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.semester-table{border-collapse:separate;border-spacing:0;width:max-content}.semester-table th,.semester-table td{border-right:1px solid var(--line);border-bottom:1px solid var(--line);vertical-align:top;overflow-wrap:anywhere;min-width:11rem;max-width:13rem;padding:.5rem}.semester-table th{background:var(--surface)}.semester-table thead th{z-index:2;position:sticky;top:0}.semester-table th:first-child{z-index:1;min-width:9rem;max-width:10rem;position:sticky;left:0}.semester-table thead th:first-child{z-index:3}.journal-cell{text-align:left;width:100%;min-height:5rem}.journal-cell>span{display:block}.analytics-page,.analytics-block,.analytics-page>*,.student-analytics{min-width:0;max-width:100%}.analytics-rings{grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem;margin-block:1rem;display:grid}.analytics-ring{color:inherit;background:var(--surface,transparent);overflow-wrap:anywhere;border:1px solid var(--border,#aaa5);border-radius:1rem;flex-direction:column;justify-content:flex-start;align-items:center;gap:.4rem;min-width:0;padding:.5rem .25rem;display:flex}.analytics-ring svg{width:100%;max-width:110px;height:auto}.analytics-ring strong{font-size:.85rem}.analytics-ring small{font-size:.73rem;font-weight:400}.analytics-ring .ring-track{stroke:#8883}.analytics-ring .ring-fill{stroke:#397be5}.analytics-ring:nth-child(2) .ring-fill{stroke:#95b}.analytics-ring:nth-child(3) .ring-fill{stroke:#21906c}.analytics-trend{overflow-wrap:anywhere;border-inline-start:4px solid;padding:.65rem}.analytics-trend.up{border-color:#209462}.analytics-trend.down{border-color:#cf5151}.analytics-trend.stable{border-color:#c79c23}.analytics-trend.unknown{border-color:#888}.analytics-scroll{max-width:100%;margin-block:1rem;overflow:auto}.analytics-scroll table{border-collapse:collapse;width:100%;min-width:800px}.analytics-scroll th,.analytics-scroll td{text-align:start;border-bottom:1px solid #8884;padding:.65rem}.analytics-scroll td small{display:block}.analytics-scroll button{text-align:start}.analytics-layout-row{border-bottom:1px solid #8884;padding:.8rem 0}.analytics-layout-row .actions{flex-wrap:wrap}.analytics-layout-row label{align-items:center;gap:.5rem;display:flex}.analytics-layout-row input[type=checkbox]{width:auto}.analytics-bar{text-align:start;width:100%;color:inherit;background:0 0;border:1px solid #8884;margin-block:.5rem;display:block;position:relative;overflow:hidden}.analytics-bar span{z-index:1;padding:.5rem;display:block;position:relative}.analytics-bar i{background:#397be528;display:block;position:absolute;inset:0 auto 0 0}.analytics-source{white-space:normal;overflow-wrap:anywhere;max-width:100%}.analytics-detail-student{border-bottom:1px solid #8885;padding-block:1rem}.analytics-page select,.analytics-page input{max-width:100%}@media (width<=420px){.analytics-page .actions{flex-wrap:wrap}.analytics-block{padding-inline:.8rem}}.reports-page,.reports-page>*,.reports-page fieldset,.desktop-summary fieldset{min-width:0;max-width:100%}.student-comparison{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:.75rem;display:grid}.student-comparison>*,.student-comparison select{min-width:0;max-width:100%}.student-comparison select{text-overflow:ellipsis;overflow:hidden}.student-comparison>label{overflow:hidden}.student-comparison>label select:focus-visible{outline-offset:-3px}.student-comparison .card{overflow-wrap:anywhere}@media (width<=480px){.student-comparison{gap:.4rem}.student-comparison .card{padding:.65rem}.student-comparison h2{font-size:1rem}.student-comparison h3{font-size:.95rem}.student-comparison ul{padding-left:1rem}}
