@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-cyrillic-ext-400-normal-BQZuk6qB.woff2) format("woff2"),url(/assets/inter-cyrillic-ext-400-normal-DQukG94-.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-cyrillic-400-normal-obahsSVq.woff2) format("woff2"),url(/assets/inter-cyrillic-400-normal-HOLc17fK.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-greek-ext-400-normal-DGGRlc-M.woff2) format("woff2"),url(/assets/inter-greek-ext-400-normal-KugGGMne.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-greek-400-normal-B4URO6DV.woff2) format("woff2"),url(/assets/inter-greek-400-normal-q2sYcFCs.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-vietnamese-400-normal-DMkecbls.woff2) format("woff2"),url(/assets/inter-vietnamese-400-normal-Bbgyi5SW.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-latin-ext-400-normal-C1nco2VV.woff2) format("woff2"),url(/assets/inter-latin-ext-400-normal-77YHD8bZ.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-latin-400-normal-C38fXH4l.woff2) format("woff2"),url(/assets/inter-latin-400-normal-CyCys3Eg.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-cyrillic-ext-500-normal-B0yAr1jD.woff2) format("woff2"),url(/assets/inter-cyrillic-ext-500-normal-BmqWE9Dz.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-cyrillic-500-normal-BasfLYem.woff2) format("woff2"),url(/assets/inter-cyrillic-500-normal-CxZf_p3X.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-greek-ext-500-normal-C4iEst2y.woff2) format("woff2"),url(/assets/inter-greek-ext-500-normal-2j5mBUwD.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-greek-500-normal-BIZE56-Y.woff2) format("woff2"),url(/assets/inter-greek-500-normal-Xzm54t5V.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-vietnamese-500-normal-DOriooB6.woff2) format("woff2"),url(/assets/inter-vietnamese-500-normal-mJboJaSs.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-latin-ext-500-normal-CV4jyFjo.woff2) format("woff2"),url(/assets/inter-latin-ext-500-normal-BxGbmqWO.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-latin-500-normal-Cerq10X2.woff2) format("woff2"),url(/assets/inter-latin-500-normal-BL9OpVg8.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-cyrillic-ext-600-normal-Dfes3d0z.woff2) format("woff2"),url(/assets/inter-cyrillic-ext-600-normal-Bcila6Z-.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-cyrillic-600-normal-CWCymEST.woff2) format("woff2"),url(/assets/inter-cyrillic-600-normal-4D_pXhcN.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-greek-ext-600-normal-DRtmH8MT.woff2) format("woff2"),url(/assets/inter-greek-ext-600-normal-B8X0CLgF.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-greek-600-normal-plRanbMR.woff2) format("woff2"),url(/assets/inter-greek-600-normal-BZpKdvQh.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-vietnamese-600-normal-Cc8MFFhd.woff2) format("woff2"),url(/assets/inter-vietnamese-600-normal-BuLX-rYi.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-latin-ext-600-normal-D2bJ5OIk.woff2) format("woff2"),url(/assets/inter-latin-ext-600-normal-CIVaiw4L.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-latin-600-normal-LgqL8muc.woff2) format("woff2"),url(/assets/inter-latin-600-normal-CiBQ2DWP.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-cyrillic-ext-700-normal-BjwYoWNd.woff2) format("woff2"),url(/assets/inter-cyrillic-ext-700-normal-LO58E6JB.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-cyrillic-700-normal-CjBOestx.woff2) format("woff2"),url(/assets/inter-cyrillic-700-normal-DrXBdSj3.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-greek-ext-700-normal-qfdV9bQt.woff2) format("woff2"),url(/assets/inter-greek-ext-700-normal-BoQ6DsYi.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-greek-700-normal-C3JjAnD8.woff2) format("woff2"),url(/assets/inter-greek-700-normal-BUv2fZ6O.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-vietnamese-700-normal-DlLaEgI2.woff2) format("woff2"),url(/assets/inter-vietnamese-700-normal-BZaoP0fm.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-latin-ext-700-normal-Ca8adRJv.woff2) format("woff2"),url(/assets/inter-latin-ext-700-normal-TidjK2hL.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-latin-700-normal-Yt3aPRUw.woff2) format("woff2"),url(/assets/inter-latin-700-normal-BLAVimhd.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@layer base,components,layouts,responsive;@layer base{:root{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:var(--ink);background:var(--surface);font-synthesis:none;font-weight:400;font-size:14px;line-height:1.5}*{box-sizing:border-box}body{margin:0;min-width:320px}button,input,select,textarea{font:inherit;color:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button{border:0;background:none}button:disabled,a[aria-disabled=true]{opacity:.5;cursor:not-allowed}a{color:var(--teal);text-underline-offset:3px}a:not(.button):hover{color:var(--teal-dark)}input,select,textarea{width:100%;border:1px solid var(--control-border);border-radius:6px;padding:10px 12px;min-height:42px;background:var(--surface);outline:none;transition:border-color .15s,box-shadow .15s}input[type=checkbox],input[type=radio]{width:17px;height:17px;min-height:17px;margin:0;accent-color:var(--teal);flex-shrink:0}input[type=date],input[type=number]{font-variant-numeric:tabular-nums}input:disabled,select:disabled,textarea:disabled,input:read-only{background:var(--paper)}textarea{resize:vertical;line-height:1.55}::placeholder{color:var(--muted);opacity:1}:focus-visible{outline:3px solid var(--focus);outline-offset:3px}input:focus,select:focus,textarea:focus{border-color:var(--teal);box-shadow:0 0 0 2px color-mix(in srgb,var(--teal) 18%,transparent)}::selection{color:var(--teal-dark);background:var(--teal-pale)}input,textarea{caret-color:var(--teal)}*{scrollbar-width:thin;scrollbar-color:var(--muted) var(--paper)}h1,h2,h3,p{margin:0}h1,h2,h3{color:var(--navy);text-wrap:balance}h1{font-size:26px;line-height:1.25;letter-spacing:-.035em;font-weight:600}h2{font-size:18px;line-height:1.4;letter-spacing:-.02em;font-weight:600}h3{font-size:15px;line-height:1.4;font-weight:600}p{line-height:1.65}strong{font-weight:600}small{font-size:12px}label{display:flex;flex-direction:column;gap:7px;font-size:13px;font-weight:500}fieldset{border:0;padding:0;margin:0}legend{font-size:13px;font-weight:600;margin-bottom:10px;padding:0}svg{flex-shrink:0;stroke-width:1.8;vertical-align:middle}table{border-collapse:collapse;width:100%;font-variant-numeric:tabular-nums}th{text-align:left;font-weight:500}}@layer components{.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;padding:10px 16px;border:1px solid transparent;border-radius:6px;font-size:13px;font-weight:500;line-height:1.35;text-decoration:none;white-space:nowrap;transition:background .15s,border-color .15s,color .15s}.button.primary{background:var(--teal);color:var(--on-accent)}.button.primary:hover:not(:disabled){background:var(--teal-dark)}.button.secondary{border-color:var(--line);background:var(--surface);color:var(--ink)}.button.secondary:hover:not(:disabled){background:var(--surface-hover);border-color:var(--control-border)}.button.danger{background:var(--danger);color:var(--on-accent)}.button.small{min-height:35px;padding:7px 11px;font-size:12px}.button.full{width:100%}.button-count{display:inline-flex;justify-content:center;align-items:center;border-radius:4px;min-width:22px;padding:1px 5px;background:color-mix(in srgb,var(--on-accent) 15%,transparent);font-size:12px}.icon-button{display:inline-flex;justify-content:center;align-items:center;width:36px;min-width:36px;height:36px;padding:7px;border-radius:5px;color:var(--muted)}.icon-button:hover:not(:disabled){background:var(--surface-hover);color:var(--teal)}.text-button{display:inline-flex;align-items:center;gap:7px;font-size:13px;font-weight:500;padding:4px 0;color:var(--teal);text-decoration:none}.text-button:hover{text-decoration:underline}.text-link{color:var(--teal);font-size:12px;font-weight:500}.align-start{align-self:flex-start}.button-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.no-wrap{flex-wrap:nowrap}.justify-end{justify-content:flex-end}.form-grid{display:grid;gap:18px}.form-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.span-two{grid-column:span 2}.field-hint{color:var(--muted);font-size:12px;font-weight:400;line-height:1.6}.optional{color:var(--muted);font-size:12px;font-weight:400}.required-mark{color:var(--danger);display:inline}.notice{display:flex;align-items:flex-start;gap:10px;border:1px solid var(--success-border);background:var(--success-soft);color:var(--success);padding:12px 14px;border-radius:6px;font-size:13px;line-height:1.6;margin-bottom:18px}.notice .text-button{margin-left:8px;flex-shrink:0}.notice p{margin-top:7px}.notice.error{color:var(--danger);background:var(--danger-soft);border-color:var(--danger-border)}.notice.warning{color:var(--warning);background:var(--warning-soft);border-color:var(--warning-border)}.notice.success{color:var(--success);background:var(--success-soft);border-color:var(--success-border)}.notice.warning .text-button{color:var(--warning)}.notice.error .text-button{color:var(--danger)}.notice .button-row{margin-top:12px}.quiet-note{color:var(--muted);font-size:12px;display:flex;gap:7px;align-items:flex-start}.save-message{color:var(--success);font-size:12px;display:inline-flex;align-items:center;gap:6px}.tag{display:inline-flex;width:fit-content;align-items:center;border-radius:4px;background:var(--paper);color:var(--muted);padding:3px 8px;font-size:11px;font-weight:500;white-space:nowrap}.tag-valid{color:var(--success);background:var(--success-soft)}.tag-warning{color:var(--warning);background:var(--warning-soft)}.tag-error{color:var(--danger);background:var(--danger-soft)}.valid-text{color:var(--success)}.danger-text{color:var(--danger)}.checkbox-field{display:flex;flex-direction:row;align-items:center;min-height:42px;gap:9px}.brand{display:inline-flex;align-items:center;gap:10px;font-size:23px;font-weight:650;letter-spacing:-.05em;color:var(--navy);text-decoration:none}.brand-symbol{display:inline-flex;justify-content:center;align-items:center;width:36px;height:37px;border-radius:7px;background:var(--teal);color:var(--on-accent)}.dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--muted);flex-shrink:0}.dot.present,.dot.connected{background:var(--teal)}.dot.absent{background:var(--danger)}.dot.empty{background:var(--muted)}.status-badge{display:inline-flex;align-items:center;justify-content:flex-start;gap:6px;padding:5px 8px;border-radius:4px;font-size:12px;font-weight:500;max-width:100%;line-height:1.4;text-align:left}.status-present{color:var(--success);background:var(--success-soft)}.status-absent{color:var(--danger);background:var(--danger-soft)}.status-late{color:var(--warning);background:var(--warning-soft)}.status-excused{color:var(--muted);background:var(--info-soft)}.status-empty{color:var(--muted);background:transparent;font-weight:400}.status-minutes{white-space:nowrap}.status-badge.compact{font-size:11px;padding:5px 7px;gap:5px}.dialog{padding:0;border:0;border-radius:12px;width:min(540px,calc(100% - 32px));max-height:calc(100dvh - 48px);box-shadow:0 20px 80px var(--shadow);color:var(--ink);overflow:auto}.dialog-wide{width:min(760px,calc(100% - 32px))}.dialog::backdrop{background:var(--overlay)}.dialog-full-cover::backdrop{background:var(--paper)}.dialog-heading{display:flex;align-items:center;justify-content:space-between;padding:20px 24px 14px;border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--surface);z-index:2}.dialog-heading h2{font-size:20px}.dialog-body{padding:22px 24px 24px}.dialog-body form{display:flex;flex-direction:column;gap:18px}.dialog-body>p+p{margin-top:12px}.dialog-context{color:var(--muted);margin-bottom:20px}.dialog-footer{display:flex;align-items:center;justify-content:flex-end;gap:10px;border-top:1px solid var(--line);padding-top:20px;margin-top:6px}.dialog-body>.dialog-footer{margin-top:24px}.status-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.status-options legend{margin-bottom:10px}.status-option{display:flex;align-items:center;flex-direction:row;gap:9px;padding:11px 10px;border:1px solid var(--line);border-radius:6px;min-height:44px;cursor:pointer}.status-option.selected{background:var(--success-soft);border-color:var(--control-border);color:var(--teal-dark)}.status-option>svg{margin-left:auto}.conflict-panel{margin-bottom:0}.empty-state{display:flex;flex-direction:column;align-items:center;text-align:center;gap:12px;padding:70px 24px;color:var(--muted)}.empty-state>svg{color:var(--muted);margin-bottom:2px}.empty-state p{max-width:52ch}.empty-state .button{margin-top:7px}.compact-empty{padding:36px 20px}.skeleton-table{display:grid;gap:1px;margin-top:20px;border:1px solid var(--line)}.skeleton-table>div{height:60px;background:var(--paper);animation:breathe 1.8s ease-in-out infinite alternate}.spin{animation:spin 1s linear infinite}.table-scroll{overflow:auto;max-width:100%;border:1px solid var(--line);border-radius:6px}.data-table{font-size:13px}.data-table th,.data-table td{padding:13px 16px;border-bottom:1px solid var(--line)}.data-table thead th{font-size:12px;color:var(--muted);background:var(--paper);white-space:nowrap}.data-table tbody tr:last-child th,.data-table tbody tr:last-child td{border-bottom:0}.data-table tbody th{font-weight:500}.data-table tbody tr:hover{background:var(--surface-hover)}.data-table .number{text-align:right}.data-table td{max-width:300px}.data-table td,.data-table th{overflow-wrap:anywhere}.data-table td>small{display:block}.totals-line{display:grid;grid-template-columns:repeat(4,1fr);padding:26px 0 30px;border-bottom:1px solid var(--line);margin:0 0 28px}.totals-line>div{display:flex;flex-direction:column;gap:5px;border-right:1px solid var(--line);padding:0 22px}.totals-line>div:first-child{padding-left:0}.totals-line>div:last-child{border-right:0}.totals-line strong{font-size:25px;color:var(--navy);line-height:1.3;font-variant-numeric:tabular-nums;letter-spacing:-.025em}.totals-line strong small{font-size:13px;font-weight:400;color:var(--muted)}.totals-line span{color:var(--muted);font-size:12px}.tabs{display:flex;gap:26px;border-bottom:1px solid var(--line);margin-bottom:26px}.tabs>button{display:flex;align-items:center;gap:8px;color:var(--muted);font-weight:500;padding:0 0 13px;border-bottom:2px solid transparent}.tabs>button.active{color:var(--teal);border-color:var(--teal)}.back-link{margin-bottom:22px}.preserve-lines{white-space:pre-wrap}.sticky-form-footer{position:sticky;bottom:0;background:var(--surface);padding:16px 0;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:16px;z-index:4;margin-top:26px}.sticky-form-footer>span{font-size:13px;color:var(--muted)}}@layer layouts{.startup-state{min-height:100dvh;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:20px;background:var(--paper);color:var(--muted)}.skip-link{position:fixed;top:-80px;left:240px;background:var(--surface);z-index:100;padding:12px 20px;border:1px solid var(--teal)}.skip-link:focus{top:10px}.sidebar{width:220px;background:var(--paper);border-right:1px solid var(--line);position:fixed;inset:0 auto 0 0;display:flex;flex-direction:column;padding:0 13px;z-index:30}.sidebar-brand{height:92px;padding:0 13px;display:flex;align-items:center;justify-content:space-between}.sidebar nav{flex:1;overflow-y:auto;padding-bottom:18px}.nav-group-label{padding:12px 13px 9px;font-size:10px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.09em}.admin-nav-label{margin-top:26px}.nav-item{width:100%;text-align:left;display:flex;align-items:center;gap:11px;padding:11px 12px;min-height:43px;margin:2px 0;font-size:12px;line-height:1.4;color:var(--muted);border-radius:5px}.nav-item:hover{color:var(--teal);background:var(--surface-hover)}.nav-item.active{color:var(--teal-dark);background:var(--teal-pale);font-weight:600}.nav-item svg{color:var(--muted)}.nav-item.active svg{color:var(--teal)}.sidebar-bottom{margin-top:auto;border-top:1px solid var(--line);padding:15px 9px 20px}.sidebar-demo{display:flex;gap:7px;align-items:center;color:var(--warning);font-size:10px;font-weight:500;margin-bottom:16px}.user-panel{display:flex;align-items:center;gap:10px;margin-bottom:10px}.user-avatar{display:flex;width:33px;height:33px;justify-content:center;align-items:center;border:1px solid var(--line);border-radius:50%;font-size:11px;font-weight:600;color:var(--teal-dark)}.user-panel>div{min-width:0;display:flex;flex-direction:column}.user-panel strong{font-size:12px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.user-panel small{font-size:10px;color:var(--muted);margin-top:2px}.logout-button{display:flex;align-items:center;gap:9px;padding:6px 0;color:var(--muted);font-size:11px}.logout-button:hover{color:var(--danger)}.shell-main{margin-left:220px;min-width:0}.contextbar{display:flex;align-items:center;gap:25px;min-height:96px;border-bottom:1px solid var(--line);padding:17px 32px;background:var(--surface)}.class-select{width:200px;min-width:150px;display:grid;grid-template-columns:1fr;gap:2px}.class-select>label{font-size:10px;font-weight:500;color:var(--muted);margin-left:2px}.class-select select{border:0;border-radius:3px;padding:2px 24px 2px 0;font-size:19px;font-weight:600;color:var(--navy);min-height:30px;cursor:pointer}.class-select>span{font-size:10px;color:var(--muted);margin-left:2px}.context-divider{height:39px;width:1px;background:var(--line)}.date-control{display:flex;flex-direction:column;gap:6px}.date-control>label{display:block;font-size:10px;color:var(--muted)}.date-control>label>span{margin-left:12px;color:var(--ink);font-weight:600}.date-navigation{display:flex;align-items:center;gap:2px}.date-navigation input{width:138px;min-height:34px;height:34px;font-size:12px;border:0;padding:5px 6px;font-weight:500}.date-navigation .icon-button{width:28px;min-width:28px;height:30px}.today-button{margin-left:9px}.context-spacer{flex:1}.session-indicator{display:grid;grid-template-columns:16px auto;gap:0 5px;align-items:center;color:var(--muted);font-size:11px;font-variant-numeric:tabular-nums}.session-indicator>span{color:var(--muted)}.session-indicator small{grid-column:span 2;font-size:9px;margin-top:4px}.session-indicator.urgent,.session-indicator.urgent>span{color:var(--warning)}.workspace-demo-line{display:flex;align-items:center;gap:7px;padding:6px 32px;background:var(--warning-soft);border-bottom:1px solid var(--warning-border);color:var(--muted);font-size:10px}.workspace-demo-line>span:last-child{margin-left:auto;color:var(--muted)}.session-warning{display:flex;gap:8px;padding:10px 32px;background:var(--warning-soft);color:var(--warning);font-size:12px}.main-content{padding:30px 32px 40px;max-width:1600px;margin:auto;outline:none}.workspace-section{min-width:0}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:0 0 25px}.section-heading>div>p{color:var(--muted);font-size:12px;margin-top:7px}.compact-heading{margin-bottom:18px}.register-toolbar{display:flex;align-items:center;gap:12px;padding:0 0 18px}.search-field{position:relative;display:flex;flex-direction:row;align-items:center;width:260px;min-width:170px}.search-field>svg{position:absolute;left:12px;color:var(--muted)}.search-field>input{padding-left:37px;min-height:39px;border-color:var(--control-border);font-size:12px}.inline-select>select{border-color:var(--control-border);font-size:12px;min-height:39px}.toolbar-spacer{flex:1}.day-summary{display:flex;align-items:center;gap:18px;font-size:10px;color:var(--muted);margin:0 0 12px;min-height:20px;flex-wrap:wrap}.day-summary>strong{font-size:11px;color:var(--muted);font-weight:500}.day-summary>span{display:inline-flex;gap:6px;align-items:center}.day-summary>.save-message{margin-left:auto;font-size:10px}.day-summary>.summary-freshness{display:none}.attendance-table{min-width:790px;table-layout:fixed}.attendance-table .student-column{width:26%;position:sticky;left:0;z-index:2;background:var(--surface)}.attendance-table thead .student-column{background:var(--paper);padding:15px 20px;color:var(--ink);font-size:11px}.student-column>small{display:block;color:var(--muted);font-size:10px;margin-top:4px}.attendance-table thead th{background:var(--paper);height:77px;border-bottom:1px solid var(--line);border-right:1px solid var(--line);vertical-align:top}.attendance-table thead th:last-child{border-right:0}.attendance-table thead th>button{width:100%;height:76px;padding:12px 8px;text-align:center;color:var(--muted);display:flex;flex-direction:column;align-items:center;gap:2px;position:relative}.attendance-table thead th>button:hover{background:var(--surface-hover)}.attendance-table thead th>button>span:first-child{font-size:10px;font-weight:500}.attendance-table thead th>button>strong{color:var(--ink);font-size:15px;font-weight:500}.attendance-table th.selected-day{background:var(--teal-pale)}.attendance-table th.selected-day>button{box-shadow:inset 0 2px var(--teal)}.today-label{font-size:8px;color:var(--teal);position:absolute;bottom:5px}.attendance-table td{text-align:center;height:63px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:0 4px}.attendance-table td.selected-day{background:var(--paper)}.attendance-table tbody th{height:63px;border-bottom:1px solid var(--line)}.attendance-table tbody tr:last-child th,.attendance-table tbody tr:last-child td{border-bottom:0}.attendance-table tbody tr:hover td{background:var(--surface-hover)}.attendance-table td:last-child{border-right:0}.student-link{display:flex;align-items:center;gap:13px;text-align:left;width:100%;min-width:0;padding:12px 16px}.student-link>span:last-child{min-width:0}.student-link strong{display:block;font-size:11px;color:var(--ink);font-weight:500;line-height:1.5;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.student-link small{display:block;font-size:9px;color:var(--muted);font-weight:400;margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.student-link:hover strong{text-decoration:underline;text-underline-offset:3px;color:var(--teal)}.row-number{color:var(--muted);font-size:9px;width:15px;font-weight:400}.attendance-cell{display:flex;align-items:center;justify-content:center;width:100%;height:53px;padding:2px;gap:2px;border-radius:4px;position:relative}.attendance-cell:hover:not(:disabled){background:var(--surface-hover)}.note-indicator{color:var(--muted);position:absolute;right:2px;top:6px}.register-footer{display:flex;justify-content:space-between;color:var(--muted);font-size:9px;padding:11px 1px;gap:14px}.register-footer>span:first-child{display:flex;align-items:center;gap:6px}.day-note{margin-top:25px;padding-top:20px;border-top:1px solid var(--line)}.day-note>div{display:flex;align-items:center;gap:9px;color:var(--muted)}.day-note h2{font-size:13px;letter-spacing:0}.day-note>div>span{font-size:10px;color:var(--muted);margin-left:5px}.day-note>p{color:var(--muted);font-size:12px;margin:10px 0 5px;white-space:pre-wrap}.day-note .text-button{font-size:11px}.day-note+.quiet-note{margin-top:30px;font-size:10px;color:var(--muted)}.mobile-register,.mobile-header,.mobile-only{display:none}.lesson-list{border-top:1px solid var(--line)}.lesson-row{display:flex;gap:25px;padding:25px 0;border-bottom:1px solid var(--line);align-items:flex-start}.lesson-date{width:105px;flex-shrink:0;display:flex;flex-direction:column;gap:5px}.lesson-date strong{font-size:12px}.lesson-date span{font-size:12px;color:var(--muted)}.lesson-content{flex:1;min-width:0}.learning-field{display:inline-block;font-size:11px;color:var(--teal);padding:3px 8px;background:var(--teal-pale);border-radius:3px;margin-bottom:9px}.lesson-content h2{font-size:16px;line-height:1.6;letter-spacing:0;white-space:pre-wrap}.lesson-content p{color:var(--muted);font-size:13px;margin:8px 0}.lesson-content>small{display:block;font-size:11px;color:var(--muted);margin-top:10px}.subtle-count{color:var(--muted);font-size:12px}.directory-list{border-top:1px solid var(--line)}.directory-row{display:flex;align-items:center;gap:18px;padding:18px 8px;width:100%;text-align:left;border-bottom:1px solid var(--line)}.directory-row:hover{background:var(--surface-hover)}.person-initials{display:flex;align-items:center;justify-content:center;width:37px;height:37px;border-radius:50%;background:var(--paper);color:var(--muted);font-size:11px;font-weight:500}.directory-person{width:230px;display:flex;flex-direction:column;gap:3px}.directory-person strong{font-size:13px}.directory-person small{color:var(--muted);font-size:11px}.directory-company{display:flex;align-items:center;gap:9px;color:var(--muted);flex:1;font-size:12px}.student-profile-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:25px}.student-profile-heading h2{font-size:23px}.student-profile-heading p{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--muted);margin-top:6px}.range-form{display:flex;gap:14px;align-items:flex-end;padding:20px 0}.range-form label{width:170px}.report-range{padding:0 0 25px;border-bottom:1px solid var(--line)}.subsection-title{margin:28px 0 15px}.history-row{display:flex;gap:20px;align-items:center;padding:14px 0;border-bottom:1px solid var(--line)}.history-row>strong{min-width:110px;font-size:12px}.history-row>p{flex:1;font-size:12px;color:var(--muted)}.history-row>small{font-size:11px;color:var(--muted)}.invitation-result{background:var(--paper);padding:20px;border-radius:6px;margin-bottom:20px}.invitation-result>p{font-size:12px;color:var(--muted);margin:8px 0 16px;max-width:80ch}.invitation-result>.text-button{margin-top:10px}.input-action{display:flex;gap:8px}.export-section{margin-top:38px;padding-top:25px;border-top:1px solid var(--line)}.export-section>div:first-child{display:flex;align-items:flex-start;gap:12px}.export-section>div:first-child>svg{color:var(--muted);margin-top:3px}.export-section p{color:var(--muted);font-size:12px;margin-top:4px}.export-controls{display:flex;align-items:flex-end;gap:20px;margin-top:22px}.export-controls>label{width:230px}.checklist-table th:not(:first-child),.checklist-table td{text-align:center}.checklist-table th:first-child{position:sticky;left:0;min-width:200px;background:var(--surface)}.checklist-table thead th:first-child{background:var(--paper)}.check-control{display:inline-flex;align-items:center;justify-content:center;width:29px;height:29px;border:1px solid var(--control-border);border-radius:5px}.check-control.checked{color:var(--on-accent);background:var(--teal);border-color:var(--teal)}.check-control.pending{opacity:.5}.exam-row{display:flex;align-items:center;gap:22px;padding:22px 0;border-bottom:1px solid var(--line)}.exam-date{width:74px;padding:10px 6px;text-align:center;background:var(--paper);border-radius:6px;flex-shrink:0}.exam-date>strong{display:block;font-size:24px;line-height:1.2;color:var(--teal-dark)}.exam-date>span{display:block;font-size:10px;color:var(--muted);margin-top:5px}.exam-body{flex:1}.exam-body h2{font-size:15px}.exam-body p{color:var(--muted);font-size:12px;margin:5px 0}.exam-body small{color:var(--muted);font-size:11px}.role-indicator{display:flex;gap:7px;color:var(--muted);font-size:11px;align-items:center}.admin-resource-tabs{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 30px;padding:0 0 22px;border-bottom:1px solid var(--line)}.admin-resource-tabs>button{padding:8px 12px;font-size:12px;border-radius:5px;color:var(--muted);border:1px solid transparent}.admin-resource-tabs>button:hover{background:var(--surface-hover)}.admin-resource-tabs>button.active{background:var(--teal-pale);border-color:var(--control-border);color:var(--teal-dark);font-weight:600}.admin-table{min-width:720px}.admin-table td{font-size:12px}.admin-table .icon-button{width:31px;height:31px;min-width:31px}.period-row{display:flex;align-items:center;gap:20px;padding:24px 0;border-bottom:1px solid var(--line)}.period-row>svg{color:var(--muted)}.period-row>div:first-of-type{flex:1}.period-row h2{font-size:16px}.period-row h2 .tag{margin-left:10px}.period-row p{font-size:12px;color:var(--muted);margin:6px 0 3px}.period-row small{color:var(--muted);font-size:11px}.period-editor-controls{display:flex;gap:35px;align-items:flex-end;padding:0 0 25px}.period-editor-controls>label{width:350px;max-width:100%}.weekday-options{display:flex;gap:6px}.weekday-options>label{display:flex;flex-direction:row;align-items:center;gap:5px;padding:8px;border:1px solid var(--line);border-radius:5px;font-size:12px}.weekday-options>label.selected{background:var(--teal-pale);border-color:var(--control-border)}.weekday-options input{width:13px;height:13px;min-height:13px}.calendar-toolbar{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding:20px 0 7px;gap:16px}.calendar-toolbar strong{font-size:15px}.calendar-toolbar>span{color:var(--teal);font-size:12px}.calendar-hint{margin-bottom:25px}.period-calendar{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:28px;row-gap:34px}.month-calendar h3{font-size:13px;padding-bottom:11px}.calendar-column-head,.calendar-week{display:grid;grid-template-columns:27px repeat(6,1fr);align-items:center;width:100%}.calendar-column-head{color:var(--muted);text-align:center;font-size:9px;padding:7px 0;border-bottom:1px solid var(--line)}.calendar-week{padding:3px 0;min-height:30px;font-size:11px;border-radius:4px;text-align:center;margin:2px 0}.calendar-week:hover{background:var(--surface-hover)}.calendar-week>span{padding:3px 0}.calendar-week .week-number{color:var(--muted);font-size:9px;font-weight:500}.calendar-week.selected{background:var(--teal-pale);color:var(--teal-dark)}.calendar-week.selected .week-number{color:var(--teal-dark)}.calendar-week .other-month{color:var(--muted)}.calendar-week .non-school-day{opacity:.45}.calendar-week .today{outline:1px solid var(--teal);border-radius:4px}.workflow-steps{display:flex;align-items:center;gap:18px;font-size:12px;padding-bottom:25px;margin-bottom:25px;border-bottom:1px solid var(--line);color:var(--muted)}.workflow-steps>.active{color:var(--teal-dark);font-weight:600}.import-source{border-bottom:1px solid var(--line);padding-bottom:25px}.file-picker{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--paper);border:1px dashed var(--control-border);border-radius:7px;padding:30px 20px;margin:23px 0 17px;cursor:pointer;color:var(--muted);overflow:hidden}.file-picker:hover{background:var(--surface-hover)}.file-picker>strong{font-size:13px;color:var(--teal-dark);margin-top:5px;overflow-wrap:anywhere}.file-picker>span{font-size:11px;color:var(--muted);font-weight:400}.file-picker>input{position:absolute;inset:0;opacity:0;cursor:pointer}.file-picker:focus-within{outline:3px solid var(--focus);outline-offset:3px}.import-mapping{padding:28px 0;border-bottom:1px solid var(--line)}.import-mapping .notice{margin-top:18px;margin-bottom:0;align-items:center}.import-preview-toolbar{display:flex;align-items:center;gap:18px;padding:25px 0 15px}.import-preview-toolbar>label{margin-left:auto}.import-preview-toolbar select{font-size:12px;min-height:35px}.status-counts{display:flex;gap:12px;font-size:11px;color:var(--muted)}.import-preview-table{max-height:500px}.import-preview-table thead{position:sticky;top:0;z-index:2}.import-preview-table th,.import-preview-table td{font-size:11px;padding:10px 12px;min-width:80px}.import-preview-table th:first-child,.import-preview-table td:first-child{min-width:40px}.import-preview-table td:last-child{min-width:200px}.row-invalid{background:var(--warning-soft)}.row-issue{font-size:10px;color:var(--warning);margin-top:5px}.promotion-config{padding-bottom:28px;border-bottom:1px solid var(--line)}.promotion-config>label{max-width:350px}.class-selection{margin:24px 0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.class-selection>label{display:grid;grid-template-columns:18px 1fr auto;align-items:center;gap:4px 10px;border:1px solid var(--line);border-radius:6px;padding:13px}.class-selection input{grid-row:span 2}.class-selection strong{font-size:13px}.class-selection span{grid-column:2;font-size:11px;color:var(--muted)}.class-selection small{grid-column:3;grid-row:1 / span 2;font-size:10px;color:var(--muted)}.class-selection>label.selected{background:var(--paper);border-color:var(--control-border)}.promotion-preview{padding-top:28px}.promotion-target{display:grid;grid-template-columns:160px 24px 1fr;align-items:center;gap:18px;border-bottom:1px solid var(--line);padding:18px 0}.promotion-from{display:flex;flex-direction:column;gap:5px}.promotion-from span,.promotion-from small{font-size:11px;color:var(--muted)}.transition-arrow{color:var(--muted)}.target-fields{grid-template-columns:1fr 1fr 120px;gap:12px}.target-fields input,.target-fields select{min-height:36px;font-size:12px}.target-fields label{font-size:11px}.target-fields .checkbox-field{grid-column:span 3;min-height:23px}.promotion-target>.notice{grid-column:1 / -1;margin:0}.promotion-preview>.quiet-note{margin:18px 0}.jobs-section{padding-top:34px;margin-top:25px;border-top:1px solid var(--line)}.job-row{padding:22px 0;border-bottom:1px solid var(--line)}.job-heading{display:flex;align-items:center;gap:14px}.job-heading>small{margin-left:auto;color:var(--muted);font-size:11px}.job-row>p{color:var(--muted);font-size:12px;margin-top:10px}.job-progress{display:flex;align-items:center;gap:12px;margin:16px 0}.job-progress>span{font-size:11px;color:var(--muted)}.job-progress progress{height:6px;appearance:none;flex:1;border:0;border-radius:5px;overflow:hidden}.job-progress progress::-webkit-progress-bar{background:var(--paper)}.job-progress progress::-webkit-progress-value{background:var(--teal)}.job-class-list{list-style:none;margin:0 0 17px;padding:0;font-size:12px}.job-class-list li{display:flex;gap:14px;padding:5px 0}.job-class-list li>span{font-size:11px}.confirmation-list{list-style:none;padding:15px 0;margin:15px 0;border-block:1px solid var(--line)}.confirmation-list li{display:flex;flex-direction:column;gap:4px;padding:8px 0}.confirmation-list li span{color:var(--muted);font-size:12px}.outbox-row{display:flex;align-items:center;gap:18px;padding:23px 0;border-bottom:1px solid var(--line)}.outbox-row>svg{color:var(--muted)}.outbox-content{flex:1}.outbox-content h2{font-size:14px}.outbox-content p{font-size:12px;color:var(--muted);margin:5px 0 3px}.outbox-content small{font-size:10px;color:var(--muted)}.login-page{background:var(--paper);min-height:100dvh;display:flex;flex-direction:column}.login-header{height:110px;display:flex;align-items:center;justify-content:space-between;max-width:1220px;width:100%;padding:0 48px;margin:auto}.login-header>span{color:var(--muted);font-size:12px}.login-layout{display:grid;grid-template-columns:1fr 410px;gap:100px;align-items:center;width:100%;max-width:1160px;padding:60px 48px 80px;margin:auto}.login-intro h1{font-size:42px;line-height:1.2;font-weight:500;letter-spacing:-.04em;margin:26px 0 20px}.login-intro>p{max-width:38ch;color:var(--muted);font-size:15px}.login-rule{width:42px;height:3px;background:var(--teal)}.login-illustration{margin-top:44px;max-width:350px;border-top:1px solid var(--line)}.mini-register-heading{display:flex;align-items:center;gap:12px;padding:19px 0;color:var(--teal-dark);font-size:12px;font-weight:500;border-bottom:1px solid var(--line)}.mini-register-row{display:flex;align-items:center;gap:14px;padding:14px 0;color:var(--muted);font-size:12px;border-bottom:1px solid var(--line)}.mini-register-row>span:first-of-type{color:var(--muted)}.mini-dot{width:7px;height:7px;border-radius:50%;border:1px solid var(--control-border);margin-left:auto}.login-panel{padding:34px 32px 25px;background:var(--surface);border:1px solid var(--line);border-radius:12px}.login-panel h2{font-size:21px}.login-panel>p{color:var(--muted);font-size:12px;margin:8px 0 24px}.login-form{display:flex;flex-direction:column;gap:17px}.login-form>label{font-size:12px}.password-wrap{position:relative}.password-wrap>input{padding-right:46px}.password-wrap>.icon-button{position:absolute;top:3px;right:4px}.login-form>.text-button{font-size:11px;margin-top:-6px}.login-form>.notice{margin:0}.login-form>.button.primary{min-height:44px}.demo-login{border-top:1px solid var(--line);padding-top:21px;margin-top:3px}.demo-login>span{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:10px;margin-bottom:12px}.demo-login p{font-size:10px;color:var(--muted);margin:11px 0 0}.login-panel>.login-privacy{font-size:9px;color:var(--muted);text-align:center;margin:20px 0 0}.login-footer{text-align:center;color:var(--muted);font-size:10px;padding:20px 30px 28px;margin-top:auto}.portal-page{min-height:100dvh;background:var(--paper)}.portal-header{height:85px;background:var(--surface);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 35px}.portal-header>span{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted)}.portal-main{max-width:890px;margin:auto;padding:30px 30px 20px}.demo-banner{display:flex;align-items:center;gap:8px;padding:10px 14px;border-radius:5px;background:var(--warning-soft);color:var(--muted);font-size:11px;margin-bottom:30px}.portal-activation{background:var(--surface);border:1px solid var(--line);border-radius:12px;max-width:460px;margin:30px auto;padding:35px}.portal-symbol{width:54px;height:54px;display:flex;justify-content:center;align-items:center;color:var(--success);background:var(--success-soft);border-radius:10px;margin-bottom:20px}.portal-activation h1{font-size:24px}.portal-activation>p{font-size:13px;color:var(--muted);margin:15px 0}.portal-facts{display:flex;flex-direction:column;gap:14px;margin:25px 0;padding:20px 0;border-block:1px solid var(--line)}.portal-facts>div{display:flex;gap:11px;font-size:12px;color:var(--muted)}.portal-student-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:30px}.portal-student-heading p{color:var(--muted);font-size:13px;margin-top:6px}.session-chip{display:flex;gap:7px;align-items:center;font-size:11px;color:var(--muted)}.session-chip.urgent{color:var(--danger)}.portal-week-controls{display:flex;align-items:center;gap:8px;padding-bottom:23px}.portal-week-controls input{font-size:12px;min-height:38px}.portal-week-controls>.text-button{margin-left:auto}.portal-instruction{font-size:12px;color:var(--muted);margin-bottom:17px}.portal-attendance{background:var(--surface);border:1px solid var(--line);border-radius:7px;overflow:hidden}.portal-day{padding:21px 22px;border-bottom:1px solid var(--line)}.portal-day:last-child{border-bottom:0}.portal-day-main{display:flex;align-items:center;gap:25px}.portal-day-main>strong{width:110px;font-size:13px}.portal-day-main>.button,.portal-day-main>.confirmed-label{margin-left:auto}.portal-record-note{padding-left:135px;color:var(--muted);font-size:11px;margin-top:10px}.portal-day>.notice{margin:15px 0 0}.portal-day>.save-message{margin-top:9px}.portal-day>small{display:block;color:var(--muted);margin-top:8px}.confirmed-label{display:flex;align-items:center;gap:7px;font-size:12px;color:var(--success)}.portal-footer{display:flex;align-items:center;justify-content:center;gap:7px;color:var(--muted);font-size:10px;padding:30px 0 20px}@keyframes spin{to{transform:rotate(360deg)}}@keyframes breathe{0%{background:var(--paper)}to{background:var(--paper)}}}@layer responsive{.nav-item{font-size:13px}.nav-group-label,.sidebar-demo{font-size:11px}.user-panel strong{font-size:13px}.user-panel small,.logout-button{font-size:11px}.class-select>label,.class-select>span,.date-control>label{font-size:11px}.workspace-demo-line{font-size:11px;color:var(--warning)}.workspace-demo-line>span:last-child{color:var(--warning)}.section-heading>div>p{font-size:13px}.search-field>input,.inline-select>select{font-size:13px}.day-summary{font-size:12px}.day-summary>strong{font-size:12px}.day-summary>.save-message{font-size:11px}.attendance-table thead .student-column{font-size:12px}.student-column>small{font-size:11px}.attendance-table thead th>button>span:first-child{font-size:11px}.attendance-table thead th>button>strong{font-size:16px}.student-link strong{font-size:13px}.student-link small{font-size:11px}.row-number{font-size:10px}.attendance-cell .status-badge.compact,.register-footer{font-size:11px}.day-note h2{font-size:15px}.day-note>div>span{font-size:12px}.day-note>p,.day-note .text-button{font-size:13px}.day-note+.quiet-note{font-size:11px}.today-label{font-size:9px}.status-empty{color:var(--muted)}.manual-mapping{margin:0 0 22px;padding:14px 0}.manual-mapping>summary{color:var(--teal);font-weight:500;cursor:pointer;font-size:13px}.manual-mapping>.field-hint{margin:10px 0 16px}.mapping-checkboxes{display:grid;gap:10px;grid-template-columns:repeat(2,minmax(0,1fr));padding:14px;border:1px solid var(--line);border-radius:6px;max-height:230px;overflow:auto}.mapping-checkboxes>label{display:flex;flex-direction:row;align-items:center;gap:9px;font-size:12px}@media(min-width:1500px){.main-content{padding:36px 42px 48px}.attendance-table{font-size:14px}.student-link strong{font-size:13px}.student-link small{font-size:11px}.status-badge.compact{font-size:12px}.attendance-table td,.attendance-table tbody th{height:68px}}@media(max-width:1200px){.contextbar{gap:14px;padding-inline:24px}.main-content{padding-inline:24px}.class-select{width:160px}.session-indicator small{display:none}.session-indicator{min-width:47px}.workspace-demo-line{padding-inline:24px}.register-toolbar{flex-wrap:wrap}.register-toolbar>.toolbar-spacer{min-width:0}.search-field{width:230px}.period-calendar{grid-template-columns:repeat(2,minmax(0,1fr))}.period-editor-controls{flex-wrap:wrap;gap:22px}.promotion-target{grid-template-columns:1fr;gap:12px}.transition-arrow{display:none}.promotion-from{flex-direction:row;align-items:center;gap:15px}.directory-person{width:180px}.directory-row>.text-link{display:none}.login-layout{gap:55px}}@media(max-width:1050px){.desktop-register{display:none}.mobile-register{display:block}.day-tabs{display:flex;border:1px solid var(--line);border-radius:6px;overflow:hidden;background:var(--paper);margin-bottom:7px}.day-tabs>button{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;padding:10px;color:var(--muted);border-right:1px solid var(--line)}.day-tabs>button:last-child{border-right:0}.day-tabs>button.active{background:var(--teal-pale);color:var(--teal-dark);box-shadow:inset 0 -2px var(--teal)}.day-tabs>button>span{font-size:10px}.day-tabs>button>strong{font-size:18px}.mobile-student-row{display:flex;align-items:center;padding:6px 0;border-bottom:1px solid var(--line);gap:8px;min-height:72px}.mobile-student-row .student-link{flex:1;padding:12px 2px}.mobile-student-row .student-link strong{font-size:13px}.mobile-student-row .student-link small{font-size:11px}.mobile-status-button{min-height:45px;padding:6px 0 6px 8px;max-width:50%}.mobile-status-button .status-badge{font-size:12px}.mobile-status-button:hover{background:var(--surface-hover);border-radius:5px}.contextbar{flex-wrap:wrap;gap:13px}.context-divider{display:none}.class-select{flex:1}.date-control{margin-left:0}.session-indicator,.context-spacer{display:none}.class-selection{grid-template-columns:1fr}.directory-company{font-size:11px}.export-controls{align-items:flex-start;flex-direction:column}}@media(max-width:800px){.sidebar{transform:translate(-100%);transition:transform .2s ease-out;width:250px}.sidebar.open{transform:translate(0)}.shell-main{margin-left:0}.sidebar-brand{height:78px}.nav-item{font-size:13px;min-height:45px}.nav-group-label{padding-top:10px}.sidebar-bottom{padding-bottom:20px}.mobile-only{display:inline-flex}.nav-backdrop{position:fixed;inset:0;z-index:29;background:var(--overlay);width:100%}.mobile-header{display:flex;align-items:center;gap:14px;height:58px;padding:0 18px;background:var(--paper);border-bottom:1px solid var(--line)}.mobile-header>.tag{margin-left:auto}.mobile-brand{font-size:20px;font-weight:600;letter-spacing:-.04em;color:var(--navy)}.demo-tag{background:var(--warning-soft);color:var(--muted);font-size:10px}.contextbar{min-height:86px;padding:13px 22px}.class-select{min-width:120px}.date-control{max-width:60%}.date-navigation input{width:130px;font-size:12px}.class-select select{font-size:19px}.workspace-demo-line{padding:6px 22px;font-size:9px}.main-content{padding:26px 22px 35px}.section-heading{margin-bottom:22px}.section-heading h1{font-size:24px}.section-heading>div>p{font-size:12px}.section-heading>.button>span{display:none}.register-toolbar>.search-field{flex:1;min-width:170px}.register-toolbar>.inline-select{min-width:130px}.register-toolbar>.toolbar-spacer{display:none}.register-toolbar>.primary{margin-left:auto}.day-summary{gap:12px;font-size:10px;margin:3px 0 14px}.day-summary>.save-message{flex-basis:100%;margin:0}.register-footer{font-size:9px}.day-note{margin-top:18px}.skip-link{left:20px}.dialog{max-height:calc(100dvh - 30px)}.login-header{height:88px;padding:0 26px}.login-header>span{font-size:10px}.login-layout{max-width:520px;display:block;padding:25px 22px}.login-intro{display:none}.login-panel{padding:30px 27px}.login-footer{padding-top:30px}.history-row{gap:12px;flex-wrap:wrap}.history-row>p{flex-basis:50%;order:3;margin-left:122px}.history-row>small{margin-left:auto}.directory-row{gap:12px;flex-wrap:wrap}.directory-person{flex:1;width:auto}.directory-company{flex-basis:100%;margin-left:49px;margin-top:-6px}.role-indicator{font-size:10px}.form-grid.three{grid-template-columns:repeat(2,minmax(0,1fr))}.period-calendar{column-gap:22px}.portal-header{padding-inline:25px}.portal-main{padding:25px 22px}}@media(max-width:520px){:root{font-size:14px}h1{font-size:23px}.contextbar{padding:13px 18px;display:grid;grid-template-columns:1fr;gap:12px}.class-select{width:100%;display:grid;grid-template-columns:1fr auto;align-items:center}.class-select label{display:none}.class-select select{max-width:180px}.class-select>span{font-size:10px}.date-control{max-width:100%;width:100%;gap:6px}.date-control>label{display:flex;justify-content:space-between;padding:0 3px}.date-control>label>span{font-size:10px}.date-navigation{justify-content:space-between}.date-navigation input{flex:1;width:auto;max-width:180px;text-align:center}.date-navigation .icon-button{height:34px;width:32px;min-width:32px}.today-button{margin-left:4px;min-width:57px}.workspace-demo-line{padding:6px 18px}.workspace-demo-line>span:last-child{display:none}.main-content{padding:24px 18px 30px}.section-heading{gap:12px;align-items:flex-start}.section-heading h1{font-size:23px}.section-heading>div>p{font-size:11px;max-width:36ch}.section-heading>.button{padding:9px;min-height:36px}.section-heading>.button>span{display:none}.register-toolbar{gap:9px;padding-bottom:16px}.register-toolbar>.search-field{width:100%;min-width:0;flex:1 0 100%}.register-toolbar>.search-field>input{font-size:16px;min-height:44px}.register-toolbar>.inline-select{width:auto;min-width:145px;flex:1}.register-toolbar>.inline-select>select{font-size:14px;min-height:44px}.register-toolbar>.button{min-height:44px}.register-toolbar>.primary{width:100%;font-size:12px;min-height:40px;justify-content:center}.day-summary{gap:10px}.day-summary>strong{flex-basis:100%;font-size:11px;margin-bottom:1px}.day-tabs>button{padding:9px 5px}.mobile-student-row .student-link strong{font-size:12px}.mobile-student-row .student-link small{font-size:10px}.mobile-status-button .status-badge{font-size:11px;padding:6px}.mobile-student-row{gap:5px}.register-footer{align-items:flex-start}.register-footer>span:last-child{text-align:right;max-width:140px}.day-note>div{flex-wrap:wrap}.form-grid.two,.form-grid.three{grid-template-columns:1fr;gap:15px}.span-two{grid-column:span 1}.dialog{width:calc(100% - 20px);max-height:calc(100dvh - 20px)}.dialog-heading{padding:17px 19px 12px}.dialog-heading h2{font-size:18px}.dialog-body{padding:19px}.dialog-footer{justify-content:stretch}.dialog-footer>.button{flex:1;padding:10px}.notice{font-size:12px;flex-wrap:wrap}.notice>svg{width:17px}.notice>.text-button{margin-left:0}.status-option{font-size:11px;padding:10px 8px}.status-option input{width:15px;height:15px;min-height:15px}.status-options{gap:7px}.range-form{display:grid;grid-template-columns:1fr 1fr;gap:12px}.range-form label{width:auto}.range-form>.button{grid-column:span 2}.totals-line{grid-template-columns:1fr 1fr;row-gap:22px;padding:24px 0;margin-bottom:20px}.totals-line>div:nth-child(3){padding-left:0}.totals-line>div:nth-child(2){border-right:0}.totals-line strong{font-size:23px}.totals-line span{font-size:10px}.student-profile-heading{flex-direction:column;align-items:flex-start}.student-profile-heading h2{font-size:21px}.student-profile-heading>.button{width:100%}.input-action{flex-wrap:wrap}.invitation-result{padding:17px}.invitation-result .input-action>.button{width:100%}.history-row>p{margin-left:0;flex-basis:100%}.history-row>strong{min-width:95px}.history-row>.status-badge{margin-left:auto}.history-row>small{margin-left:0;order:4}.lesson-row{gap:12px;flex-wrap:wrap}.lesson-date{width:75px}.lesson-date strong,.lesson-date span{font-size:10px}.lesson-content h2{font-size:14px}.lesson-row>.button{margin-left:87px}.lesson-content{flex-basis:60%}.exam-row{gap:12px;flex-wrap:wrap}.exam-date{width:60px}.exam-body{min-width:180px}.exam-row>.button-row{margin-left:72px}.tabs{gap:22px;font-size:12px}.admin-resource-tabs{gap:3px}.admin-resource-tabs>button{padding:8px;font-size:11px}.role-indicator{display:none}.period-row{flex-wrap:wrap;gap:12px}.period-row>.button-row{margin-left:36px}.period-row>div:first-of-type{flex-basis:80%}.period-editor-controls{padding-bottom:20px}.weekday-options{gap:4px}.weekday-options>label{padding:9px 6px;font-size:11px}.weekday-options input{width:12px;height:12px;min-height:12px}.period-calendar{grid-template-columns:1fr;gap:30px}.calendar-week{min-height:36px;font-size:12px}.calendar-column-head{font-size:10px}.calendar-toolbar{flex-direction:column;align-items:flex-start;gap:8px}.calendar-toolbar strong{font-size:13px}.calendar-toolbar .button-row{gap:6px}.calendar-hint{font-size:11px;margin-top:10px}.sticky-form-footer{flex-direction:column;align-items:stretch;gap:10px}.sticky-form-footer>.button-row{justify-content:stretch}.sticky-form-footer>.button-row>.button{flex:1}.workflow-steps{gap:10px;font-size:10px}.workflow-steps svg{width:12px}.import-source>.button-row>.button{width:100%}.import-preview-toolbar{flex-wrap:wrap;gap:10px}.import-preview-toolbar>label{margin-left:0;flex-basis:100%}.status-counts{margin-left:auto;gap:7px;font-size:10px}.class-selection>label{grid-template-columns:18px 1fr auto;gap:4px 8px;padding:12px}.class-selection small{font-size:9px}.class-selection span{font-size:10px}.promotion-config>.button{width:100%}.target-fields{grid-template-columns:1fr 1fr}.target-fields .checkbox-field{grid-column:2;align-self:end;min-height:36px}.promotion-from{flex-wrap:wrap;gap:6px 12px}.promotion-from strong{flex-basis:100%}.job-heading{flex-wrap:wrap;gap:8px}.job-heading>small{font-size:10px}.job-class-list li{flex-wrap:wrap}.outbox-row{flex-wrap:wrap;gap:12px}.outbox-content{flex-basis:80%}.outbox-row>.tag{margin-left:33px}.outbox-row>.button{margin-left:auto}.login-header{height:80px;padding:0 22px}.login-header>span{display:none}.login-layout{padding:15px 15px 25px}.login-panel{padding:27px 22px}.login-panel h2{font-size:20px}.portal-header{padding:0 19px;height:74px}.portal-header .brand{font-size:21px}.portal-header>span{font-size:10px;gap:5px}.portal-main{padding:20px 16px}.portal-activation{padding:25px 22px;margin:0 auto}.portal-student-heading{flex-wrap:wrap;gap:13px;margin-bottom:23px}.portal-student-heading h1{font-size:23px}.portal-week-controls{gap:2px;flex-wrap:wrap}.portal-week-controls>label{flex:1}.portal-week-controls>.text-button{flex-basis:100%;margin-top:8px}.portal-day{padding:17px}.portal-day-main{gap:10px;flex-wrap:wrap}.portal-day-main>strong{width:auto;font-size:12px}.portal-day-main>.status-badge{margin-left:auto;font-size:11px}.portal-day-main>.button{margin:5px 0 0;width:100%;min-height:40px}.portal-day-main>.confirmed-label{flex-basis:100%;margin:5px 0 0;font-size:11px}.portal-record-note{padding-left:0}.portal-footer{align-items:flex-start;font-size:9px;text-align:center}.session-warning{padding:10px 18px;font-size:11px}.empty-state{padding:45px 12px}.empty-state p{font-size:12px}.export-controls>.button-row{width:100%}.export-controls>.button-row>.button{flex:1}}@media(max-width:800px){.day-summary>.summary-freshness{display:inline-flex;font-size:11px;color:var(--muted)}}@media(max-width:520px){.mobile-header{height:48px}.contextbar{padding:10px 18px;gap:8px}.date-control{gap:3px}.workspace-demo-line{display:none}.main-content{padding-top:18px}.attendance-view .section-heading{margin-bottom:15px}.attendance-view .section-heading>div>p{display:none}.attendance-view .register-toolbar{padding-bottom:10px}.attendance-view .day-summary{row-gap:5px;margin-bottom:10px}.attendance-view .day-summary>strong{display:none}.attendance-view .day-summary>.summary-freshness{flex-basis:100%}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}}:root,:root[data-theme=light]{color-scheme:light;--surface:#ffffff;--paper:#f4f7f6;--surface-hover:#edf3f1;--ink:#24353c;--navy:#193c45;--muted:#52696c;--teal:#17615f;--teal-dark:#124b4b;--teal-pale:#e8f2ef;--on-accent:#ffffff;--line:#dce5e2;--control-border:#879e98;--focus:#337c86;--danger:#a63834;--danger-soft:#fff0ed;--danger-border:#e6bdb7;--on-danger:#ffffff;--warning:#785115;--warning-soft:#fff4df;--warning-border:#ddc68e;--success:#28644d;--success-soft:#e8f4ec;--success-border:#b6d5c0;--info:#3c5d70;--info-soft:#edf2f6;--stripe:#f2f6f5;--day-background:#eaf2ef;--day-stripe:#e3eee9;--recorded-bg:#dceee7;--recorded-ink:#184e3c;--overlay:#142c3b99;--shadow:#153b432e;--border:var(--line)}:root[data-theme=dark]{color-scheme:dark;--surface:#17242e;--paper:#111c25;--surface-hover:#253947;--ink:#e2eaf0;--navy:#f0f5f8;--muted:#adbeca;--teal:#8cd8cb;--teal-dark:#b5ebe2;--teal-pale:#233d40;--on-accent:#112e2e;--line:#364a58;--control-border:#718a9b;--focus:#9ce5ef;--danger:#ffb7ae;--danger-soft:#492c30;--danger-border:#995b5b;--on-danger:#412321;--warning:#f2d18b;--warning-soft:#443924;--warning-border:#977e4b;--success:#a2dfb9;--success-soft:#233e35;--success-border:#56836c;--info:#b5d2e8;--info-soft:#2b3b4b;--stripe:#1c2e3a;--day-background:#243d46;--day-stripe:#294852;--recorded-bg:#2c504d;--recorded-ink:#d0f5eb;--overlay:#050d16bf;--shadow:#00000059}:root[data-theme=blue]{color-scheme:light;--surface:#ffffff;--paper:#eef4fc;--surface-hover:#e7effb;--ink:#263a54;--navy:#153761;--muted:#506681;--teal:#245caa;--teal-dark:#194981;--teal-pale:#e4eefc;--on-accent:#ffffff;--line:#d4dfef;--control-border:#8199b9;--focus:#245caa;--danger:#a3343b;--danger-soft:#fff0f1;--danger-border:#e6bdbf;--on-danger:#ffffff;--warning:#785115;--warning-soft:#fff4df;--warning-border:#ddc68e;--success:#245e48;--success-soft:#e9f5ef;--success-border:#b6d5c0;--info:#385f8d;--info-soft:#eaf1fc;--stripe:#f0f5fc;--day-background:#e4eefc;--day-stripe:#dbe7f9;--recorded-bg:#dceafa;--recorded-ink:#17477d;--overlay:#152c4c99;--shadow:#173e7030}html,body,.dialog{color:var(--ink);background:var(--surface)}.button.primary,.brand-symbol,.check-control.checked{color:var(--on-accent)}.button.danger{color:var(--on-danger)}::selection{color:var(--on-accent);background:var(--teal)}:focus-visible{outline-color:var(--focus)}input,textarea{caret-color:var(--teal)}*{scrollbar-color:var(--control-border) var(--paper)}.sidebar-bottom .theme-picker{margin-bottom:16px}.sidebar-bottom .session-indicator{display:flex;gap:6px;margin:8px 0}.sidebar-bottom .session-indicator small{display:inline;margin:0;font-size:11px}.login-header{gap:20px;flex-wrap:wrap}@media(max-width:520px){.login-header{height:auto;min-height:86px;padding-block:16px;gap:12px}.login-header .theme-picker>span{display:none}}@media(forced-colors:active){.recorded-label{border:1px solid CanvasText;padding:2px 4px}.attendance-table .is-recorded,.mobile-student-row .is-recorded{outline:1px solid CanvasText;outline-offset:-1px}}.contextbar{display:grid;grid-template-columns:minmax(230px,1fr) minmax(290px,1fr);align-items:start;gap:20px;padding:24px 32px}.contextbar.attendance-context{grid-template-columns:minmax(230px,1fr) minmax(290px,1.15fr) minmax(205px,.9fr) auto;align-items:center;gap:20px}.app-shell .contextbar .class-context{width:100%;min-width:0}.contextbar .class-context .class-picker-control{min-height:78px;padding:12px}.contextbar .class-context .class-picker-field label{font-size:12px;margin-bottom:4px}.contextbar .class-context .class-picker-field input{font-size:23px;min-height:32px}.contextbar .class-context .class-picker-field input::placeholder{font-size:17px}.contextbar .date-control{width:100%;max-width:none;padding:12px;gap:8px;border:1px solid var(--control-border);border-radius:6px;align-self:start;min-height:78px}.contextbar .date-control>label{display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:8px;font-size:12px}.contextbar .date-control>label>span{margin:0;white-space:nowrap;color:var(--ink);font-size:12px}.contextbar .date-navigation{display:grid;grid-template-columns:36px minmax(120px,1fr) 36px auto;gap:4px}.contextbar .date-navigation input{width:100%;max-width:none;min-width:0;padding:4px;min-height:38px;height:auto;font-size:16px;text-align:center}.contextbar .date-navigation .icon-button{min-width:36px;width:36px;height:38px}.contextbar .today-button{margin-left:0;min-height:38px}.attendance-count{display:flex;align-items:center;gap:12px;color:var(--teal);min-height:58px}.attendance-count>div{min-width:0}.attendance-count strong{display:block;color:var(--ink);font-size:17px;line-height:1.5;font-variant-numeric:tabular-nums}.attendance-count small{display:block;color:var(--muted);font-size:12px;margin-top:3px}.company-mail-button{min-height:46px;white-space:normal;max-width:235px;text-align:start}.attendance-view{--student-row-height:56px}.attendance-actions{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:8px}.attendance-heading>div:first-child{flex-shrink:0}.attendance-actions .button{min-height:40px;white-space:nowrap}.contextbar .date-navigation select{min-width:0;width:100%;min-height:38px;padding:4px;font-size:13px}.week-picker-error{font-size:12px;color:var(--danger);margin-top:8px}.attendance-view .section-heading{margin-bottom:16px}.attendance-view .attendance-table{min-width:950px}.attendance-table .student-column{width:29%}.attendance-table .group-column{width:11%;text-align:start;padding:0 8px}.attendance-table thead .group-column{vertical-align:middle;color:var(--muted);font-size:12px}.attendance-table tbody tr{background:var(--surface)}.attendance-table tbody tr:nth-child(2n){background:var(--stripe)}.attendance-table tbody .student-column{background:inherit;padding:0}.attendance-table td.selected-day{background:var(--day-background)}.attendance-table tbody tr:nth-child(2n) td.selected-day{background:var(--day-stripe)}.attendance-table tbody tr:hover td{background:var(--surface-hover)}.attendance-table tbody .student-column.is-recorded{background:var(--recorded-bg)}.attendance-view .attendance-table tbody tr,.attendance-view .attendance-table tbody th,.attendance-view .attendance-table tbody td{height:var(--student-row-height)}.attendance-table .student-link{height:calc(var(--student-row-height) - 1px);min-height:0;padding:6px 10px;gap:8px}.attendance-view .attendance-cell{height:44px;min-height:0}.attendance-view .student-details{overflow:hidden}.attendance-view .student-link>span:last-child{display:block;min-width:0;width:100%}.attendance-view .student-link strong{font-size:15px;line-height:20px;font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.attendance-view .student-link small{font-size:12px;line-height:16px;margin-top:2px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.attendance-table .row-number{width:16px;font-size:10px;flex-shrink:0}.attendance-view .register-footer{font-size:11px;flex-wrap:wrap}.attendance-view .register-footer>span:last-child{max-width:none;text-align:start}.mobile-register-head,.attendance-view .mobile-student-row{display:grid;grid-template-columns:minmax(0,1fr) 85px minmax(90px,130px);gap:8px}.mobile-register-head{font-size:11px;color:var(--muted);padding:12px 8px 8px}.attendance-view .mobile-student-row{padding:0 8px;align-items:center;height:var(--student-row-height);min-height:0;background:var(--surface)}.attendance-view .mobile-student-row:nth-child(2n){background:var(--stripe)}.attendance-view .mobile-student-row>.student-details{align-self:stretch;display:flex;align-items:center;margin-left:-8px;padding-left:8px}.attendance-view .mobile-student-row .is-recorded{background:var(--recorded-bg)}.attendance-view .mobile-student-row .student-link{height:calc(var(--student-row-height) - 1px);padding:6px 4px}.attendance-view .mobile-student-row .student-link strong{font-size:15px}.attendance-view .mobile-student-row .student-link small{font-size:11px;white-space:nowrap}.attendance-view .mobile-status-button{max-width:none;width:100%;height:44px;padding:0;overflow:hidden}.attendance-view .mobile-status-button .status-badge{font-size:12px;padding:6px;overflow-wrap:anywhere}.attendance-view .mobile-group-column{min-width:0}.attendance-view .mobile-group-column .student-group-button{padding:8px 2px;font-size:12px}.attendance-view .status-badge{max-width:100%;gap:4px;line-height:16px}.attendance-view .status-badge>svg{flex-shrink:0}.attendance-view .status-badge>span{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.attendance-view .status-minutes{display:block;font-size:10px;line-height:14px}@media(max-width:1300px){.contextbar.attendance-context{grid-template-columns:minmax(220px,1fr) minmax(300px,1.2fr);gap:16px 24px}.attendance-count{min-height:44px}.company-mail-button{justify-self:end;width:auto;max-width:none}}@media(max-width:1050px){.contextbar,.contextbar.attendance-context{padding:20px 24px;grid-template-columns:minmax(180px,1fr) minmax(300px,1.4fr);gap:16px}}@media(max-width:800px){.contextbar,.contextbar.attendance-context{padding:18px 22px}}@media(max-width:620px){.contextbar,.contextbar.attendance-context{grid-template-columns:minmax(0,1fr);padding:16px 18px;gap:12px}.contextbar .class-context .class-picker-control{min-height:70px}.contextbar .date-control{min-height:78px}.contextbar .date-navigation .icon-button{height:44px}.contextbar .date-navigation input,.contextbar .today-button{min-height:44px}.attendance-count{padding-top:4px}.attendance-count strong{font-size:17px}.company-mail-button{justify-self:stretch;width:100%;justify-content:center}.attendance-view .attendance-heading{align-items:flex-start;flex-wrap:wrap;gap:12px}.attendance-actions{justify-content:flex-start}.attendance-actions .button{min-height:44px;font-size:12px}.mobile-register-head,.attendance-view .mobile-student-row{grid-template-columns:minmax(0,1fr) 64px 90px;gap:6px}.attendance-view .mobile-group-column .student-group-button{flex-direction:row;align-items:center;gap:3px}.attendance-view .mobile-student-row .student-link strong{font-size:14px}.attendance-view .mobile-status-button .status-badge{font-size:11px}}@layer components{.settings-page{max-width:1050px}.settings-form{display:grid;gap:24px;max-width:850px}.settings-section{display:grid;gap:18px;padding:26px 0;border-bottom:1px solid var(--line)}.settings-section:first-child{padding-top:4px}.settings-section h2{display:flex;align-items:center;gap:10px}.setting-switches{display:grid;gap:18px}.setting-switches>label{flex-direction:row;align-items:flex-start;gap:12px}.setting-switches input{margin-top:3px}.setting-switches span{display:grid;gap:4px}.setting-switches small{max-width:70ch;color:var(--muted);font-weight:400;line-height:1.6}.short-field{max-width:340px}.short-field input{max-width:110px}.branding-section{margin-top:30px}.asset-row{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:14px 0;border-bottom:1px solid var(--line)}.asset-row>span{display:grid;gap:4px}.asset-row small{color:var(--muted)}.settings-details{display:grid;grid-template-columns:minmax(150px,.7fr) minmax(0,2fr);gap:12px 22px;margin:0}.settings-details dt{color:var(--muted)}.settings-details dd{margin:0;overflow-wrap:anywhere}.legacy-setting-note,.system-details{margin-top:28px}.legacy-setting-note summary,.system-details summary{cursor:pointer;color:var(--teal);padding:10px 0}.legacy-setting-note p{color:var(--muted);max-width:75ch;padding:12px 0}.system-details .settings-details{margin-top:20px}.license-preview{display:grid;gap:20px;padding:18px;background:var(--paper)}.license-preview>.button{justify-self:start}.feedback-row{padding:18px 0;border-bottom:1px solid var(--line)}.feedback-row summary{display:flex;align-items:center;gap:14px;cursor:pointer;flex-wrap:wrap}.feedback-row summary strong{flex:1}.feedback-row summary small{color:var(--muted)}.feedback-row>p,.feedback-row>.button-row{margin-top:16px}.preserve-lines{white-space:pre-wrap;overflow-wrap:anywhere}.diagnostics-text{font-size:12px;white-space:pre-wrap;overflow-wrap:anywhere;color:var(--muted)}.release-notes{margin:0;padding-left:20px;line-height:1.8}.update-result{display:grid;gap:20px}.package-line{display:block}.class-teacher-label{margin:0 0 12px}.login-school-logo{margin:0;max-width:180px;max-height:58px}.sidebar-school-name{margin:0 17px 10px;font-size:12px;font-weight:500;color:var(--muted)}.school-logo{max-width:175px;max-height:72px;object-fit:contain;display:block;margin:0 17px 12px}.system-navigation{margin-top:16px}.system-navigation>summary{cursor:pointer;padding:12px 17px;font-size:12px;color:var(--muted);font-weight:600}}@layer responsive{@media(max-width:800px){.sidebar:not(.open){visibility:hidden}}@media(max-width:600px){.settings-details{grid-template-columns:1fr;gap:3px}.settings-details dd{margin-bottom:12px}.settings-section{padding:24px 0}.asset-row{flex-direction:column;align-items:stretch;gap:12px}.settings-form>.button-row{flex-direction:column;align-items:stretch}.feedback-row summary{gap:8px}.feedback-row summary strong{flex-basis:100%}}}.class-context[data-v-2b481739]{position:relative;width:250px;min-width:200px;display:grid;gap:5px}.class-context.is-open[data-v-2b481739]{z-index:35}.class-picker-control[data-v-2b481739]{display:flex;align-items:center;gap:10px;min-height:66px;padding:8px 11px;border:1px solid var(--teal);border-radius:6px;background:var(--teal-pale);color:var(--teal-dark);cursor:text}.class-picker-control[data-v-2b481739]:focus-within{outline:2px solid var(--teal);outline-offset:2px}.class-picker-control.disabled[data-v-2b481739]{opacity:.65;cursor:default}.class-picker-control>svg[data-v-2b481739]{flex-shrink:0}.class-picker-field[data-v-2b481739]{flex:1;min-width:0}.class-picker-field label[data-v-2b481739]{display:block;margin-bottom:2px;font-size:11px;font-weight:500;color:var(--teal-dark);cursor:text}.class-picker-field input[data-v-2b481739]{display:block;width:100%;padding:0;min-height:26px;border:0;border-radius:0;background:transparent;color:var(--teal-dark);font-size:18px;font-weight:650;line-height:1.4;outline:none;box-shadow:none}.class-picker-field input[data-v-2b481739]::placeholder{color:var(--teal-dark);font-size:15px;font-weight:450;opacity:1}.class-picker-chevron.expanded[data-v-2b481739]{transform:rotate(180deg)}.class-picker-period[data-v-2b481739]{font-size:11px;color:var(--muted)}.class-picker-dropdown[data-v-2b481739]{position:absolute;inset-block-start:calc(100% + 5px);inset-inline-start:0;display:flex;flex-direction:column;width:400px;min-width:100%;max-width:calc(100vw - 36px);background:var(--surface);border:1px solid var(--teal);border-radius:6px;overflow:hidden}.class-picker-dropdown.above[data-v-2b481739]{inset-block-start:auto;inset-block-end:calc(100% + 5px)}.class-picker-results[data-v-2b481739]{padding:5px;margin:0;min-height:0;list-style:none;overflow-y:auto;overscroll-behavior:contain}.class-picker-results button[data-v-2b481739]{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:56px;gap:10px;padding:9px 10px;text-align:left;border-radius:4px;color:var(--ink)}.class-picker-results button.highlighted[data-v-2b481739]{background:var(--teal-pale);color:var(--teal-dark)}.class-picker-results button>span[data-v-2b481739]{display:grid;gap:3px;overflow-wrap:anywhere}.class-picker-results strong[data-v-2b481739]{font-size:15px}.class-picker-results small[data-v-2b481739]{font-size:12px}.class-picker-results svg[data-v-2b481739]{flex-shrink:0}.class-picker-empty[data-v-2b481739]{padding:12px 10px;font-size:14px;color:var(--muted)}.class-picker-footer[data-v-2b481739]{flex-shrink:0;display:flex;flex-wrap:wrap;align-items:center;gap:2px 12px;padding:7px 14px;border-top:1px solid var(--line);background:var(--paper);font-size:12px;color:var(--muted)}.class-picker-footer label[data-v-2b481739]{display:flex;flex-direction:row;align-items:center;gap:7px;margin-left:auto;min-height:36px;color:var(--ink);font-size:12px}.class-picker-footer input[data-v-2b481739]{flex-shrink:0}@media(max-width:1200px){.class-context[data-v-2b481739]{width:220px;min-width:180px}}@media(max-width:520px){.class-context[data-v-2b481739]{width:100%;min-width:0}.class-picker-control[data-v-2b481739]{min-height:60px}.class-picker-dropdown[data-v-2b481739]{width:100%}.class-picker-footer label[data-v-2b481739]{min-height:40px}}select[data-v-09eaf951]{margin-block-start:6px;min-height:44px;font-size:16px}.group-editor-error[data-v-09eaf951]{margin-block-start:18px}.group-editor-error p[data-v-09eaf951]:first-child{margin-block-start:0}.group-editor-error .button[data-v-09eaf951]{margin-block-start:12px;white-space:normal}.student-details[data-v-3f98c566]{min-width:0}.student-group-button[data-v-3f98c566]{display:flex;align-items:center;gap:6px;min-height:44px;width:100%;padding:8px;color:var(--teal);border-radius:4px;font-size:12px;font-weight:500;text-align:start}.student-group-button span[data-v-3f98c566]{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.student-group-button svg[data-v-3f98c566]{flex-shrink:0}.student-group-button[data-v-3f98c566]:hover:not(:disabled){background:var(--teal-pale)}.student-group-button[data-v-3f98c566]:disabled{color:var(--muted)}.register-feedback[data-v-3f98c566]{margin:0 0 14px}.exam-cancelled .exam-date[data-v-68a17b7f],.exam-cancelled h2[data-v-68a17b7f]{text-decoration:line-through}.exam-cancelled[data-v-68a17b7f]{opacity:.75}.week-day-editor[data-v-f361adbd]{margin-top:2rem}.week-day-editor fieldset[data-v-f361adbd]{margin-block:1rem}.existing-weeks[data-v-f361adbd]{max-height:45vh;overflow:auto;display:grid;gap:.7rem;margin-block:1rem}.personal-settings[data-v-697d0f30]{max-width:900px}.setting-section[data-v-697d0f30]{padding:28px 0;border-top:1px solid var(--line)}.setting-section h2[data-v-697d0f30]{display:flex;gap:10px;align-items:center}.setting-section p[data-v-697d0f30]{margin:10px 0 20px;line-height:1.6}.setting-section .form-grid[data-v-697d0f30]{max-width:580px}.setting-section fieldset[data-v-697d0f30]{border:0;padding:0;margin:0 0 20px}.setup-secret[data-v-697d0f30]{overflow-wrap:anywhere;font-variant-numeric:tabular-nums}.setting-section img[data-v-697d0f30]{max-width:100%;height:auto}.audit-filters[data-v-76410cb9]{display:flex;align-items:end;flex-wrap:wrap;gap:16px;margin-bottom:24px}.audit-filters label[data-v-76410cb9]{display:grid;gap:7px;min-width:140px;flex:1}.audit-history small[data-v-76410cb9]{display:block;margin-top:6px;color:var(--muted)}.audit-history pre[data-v-76410cb9]{font:inherit;white-space:pre-wrap;overflow-wrap:anywhere;min-width:160px;max-width:420px;margin:0;line-height:1.5}.audit-pages[data-v-76410cb9]{margin-top:24px;justify-content:space-between}.audit-history td[data-v-76410cb9]{vertical-align:top}@media(max-width:600px){.audit-filters label[data-v-76410cb9]{min-width:calc(50% - 16px)}.audit-pages[data-v-76410cb9]{flex-wrap:wrap}}.message-editor[data-v-6973b944]{display:grid;gap:8px}.editor-toolbar[data-v-6973b944]{display:flex;gap:4px;flex-wrap:wrap}.editor-toolbar button[data-v-6973b944]{display:grid;place-items:center;padding:9px;border:1px solid var(--border);border-radius:6px;background:var(--surface,var(--surface));color:inherit;cursor:pointer}.editor-toolbar button[data-v-6973b944]:hover{background:var(--surface-subtle,var(--line))}.editor-content[data-v-6973b944]{min-height:180px;padding:14px;border:1px solid var(--border);border-radius:8px;background:var(--surface,var(--surface));line-height:1.6;overflow-wrap:anywhere}.editor-content[data-v-6973b944]:focus{outline:2px solid var(--accent,var(--success));outline-offset:2px}.editor-content[data-v-6973b944] p{margin:.4em 0}.editor-content[data-v-6973b944] a{text-decoration:underline}.editor-link[data-v-6973b944]{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.editor-link input[data-v-6973b944]{flex:1;min-width:200px}.editor-link p[data-v-6973b944]{width:100%;color:var(--danger,var(--danger))}small[data-v-6973b944]{color:var(--muted)}.message-form[data-v-2d54a394]{display:grid;gap:20px;max-width:900px}.message-form>label[data-v-2d54a394]{display:grid;gap:8px}.message-form textarea[data-v-2d54a394]{width:100%;min-height:180px}.recipients[data-v-2d54a394]{max-height:350px;overflow:auto;border-block:1px solid var(--border,var(--line));padding:16px 0}.company-choice[data-v-2d54a394]{display:flex;align-items:center;gap:12px;padding:10px 4px}.company-choice input[data-v-2d54a394]{width:auto}.company-choice small[data-v-2d54a394]{display:block;color:var(--muted,var(--muted));margin-top:4px}.message-preview[data-v-2d54a394]{margin-top:36px;padding-top:24px;border-top:1px solid var(--border,var(--line))}.body-preview[data-v-2d54a394]{white-space:pre-wrap}.rich-preview[data-v-2d54a394]{white-space:normal}.message-preview li[data-v-2d54a394]{margin:8px 0}.file-label[data-v-2d54a394]{max-width:450px}.department-select[data-v-51b32e8f]{display:grid;gap:8px;max-width:500px;margin-bottom:28px}.mail-settings[data-v-51b32e8f]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;max-width:900px}.mail-settings label[data-v-51b32e8f]{display:grid;gap:8px}.wide[data-v-51b32e8f]{grid-column:1/-1}.mail-settings textarea[data-v-51b32e8f]{width:100%}.test-mail[data-v-51b32e8f]{border-top:1px solid var(--border,var(--line));padding-top:28px;margin-top:32px}@media(max-width:650px){.mail-settings[data-v-51b32e8f]{grid-template-columns:1fr}}.pwa-install[data-v-1993d38e]{margin-block-start:20px}.pwa-install>.button[data-v-1993d38e]{min-height:44px;white-space:normal;text-align:start}.pwa-install-navigation[data-v-1993d38e]{margin-block-start:0}.pwa-install-help[data-v-1993d38e]{margin-block-start:12px;padding-block:12px;border-block-start:1px solid var(--line);font-size:14px;line-height:1.6;color:var(--ink);text-align:start}.pwa-install-navigation .pwa-install-help[data-v-1993d38e]{padding-inline:12px}.pwa-help-heading[data-v-1993d38e]{display:flex;align-items:flex-start;gap:8px}.pwa-help-heading strong[data-v-1993d38e]{flex:1;padding-block:6px;font-size:14px}.pwa-help-heading .icon-button[data-v-1993d38e]{flex-shrink:0;min-width:36px;min-height:36px}.pwa-install-help p[data-v-1993d38e]{margin-block:8px 0;overflow-wrap:anywhere}.pwa-help-note[data-v-1993d38e]{color:var(--muted)}.theme-picker[data-v-8ae47761]{display:flex;flex-direction:row;align-items:center;gap:12px;font-size:12px}.theme-picker>span[data-v-8ae47761]{display:flex;align-items:center;gap:7px;color:var(--muted)}.theme-picker select[data-v-8ae47761]{flex:1;width:auto;min-width:88px;min-height:44px;padding:8px;font-size:13px}.pwa-update[data-v-81055ef9]{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:12px 24px;border-block-end:1px solid var(--line);background:var(--teal-pale);color:var(--ink)}.pwa-update-icon[data-v-81055ef9]{color:var(--teal-dark);flex-shrink:0}.pwa-update-copy[data-v-81055ef9]{display:flex;align-items:baseline;gap:4px 12px;flex-wrap:wrap;flex:1;min-width:180px;font-size:14px;line-height:1.5}.pwa-update-copy strong[data-v-81055ef9]{font-weight:600}.pwa-update .button[data-v-81055ef9]{min-height:44px;white-space:normal}.pwa-update-error[data-v-81055ef9]{flex-basis:100%;margin:0;font-size:14px;line-height:1.5}@media(max-width:520px){.pwa-update[data-v-81055ef9]{padding-inline:18px;align-items:flex-start}.pwa-update-icon[data-v-81055ef9]{margin-block-start:3px}.pwa-update .button[data-v-81055ef9]{margin-inline-start:30px}}
