@font-face{font-family:Outfit;src:url(/assets/outfit-latin-var-D6ftewdU.woff2)format("woff2");font-weight:400 700;font-display:swap}@font-face{font-family:Geist;src:url(/assets/geist-latin-var-BGnTDqni.woff2)format("woff2");font-weight:400 600;font-display:swap}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f4f4f2;--surface:#eaeae6;--raised:#fbfbf9;--hover:#f0f0ec;--ink:#161616;--ink-2:#5c5c60;--ink-3:#8a8985;--line:#e0e0db;--line-strong:#cfcfc9;--tan:#c9ad92;--tan-deep:#b99a7c;--tan-soft:#ece3d8;--on-tan:#161616;--contrast-bg:#161616;--contrast-fg:#f4f4f2;--ok-bg:#e3ebdf;--ok-fg:#2f5a2c;--ok-line:#6f9a68;--warn-bg:#f4e2d6;--warn-fg:#8a3a12;--warn-line:#c9784b;--due-bg:#efe4d3;--due-fg:#6b4a1d;--muted-bg:#e7e7e3;--muted-fg:#5c5c60;--danger:#a3361b;--danger-bg:#f6e0d9;--focus:#161616;--scrim:#16161652;--shadow-pop:0 1px 0 var(--line), 0 24px 48px -28px #3c302459;--grain-opacity:.03;--grain-blend:multiply;--font-display:"Outfit", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--font-body:"Geist", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono:ui-monospace, "SF Mono", Menlo, monospace;--r-pill:999px;--r-card:16px;--r-input:10px;--r-label:6px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--text-xs:.78rem;--text-sm:.875rem;--text-base:.95rem;--control-h:38px;--control-h-sm:32px;--wrap:1180px;--gutter:16px;--ease:cubic-bezier(.16, 1, .3, 1);--z-bar:40;--z-modal:50;--z-grain:60;--z-skip:70}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#131313;--surface:#1d1d1c;--raised:#1a1a19;--hover:#222221;--ink:#ecebe7;--ink-2:#a8a6a1;--ink-3:#7a7873;--line:#2b2b29;--line-strong:#3a3a37;--tan:#cdb398;--tan-deep:#dcc6ae;--tan-soft:#2a2520;--on-tan:#161616;--contrast-bg:#ecebe7;--contrast-fg:#161616;--ok-bg:#22301f;--ok-fg:#a9cfa0;--ok-line:#6f9a68;--warn-bg:#3a2418;--warn-fg:#f0b392;--warn-line:#c9784b;--due-bg:#33291c;--due-fg:#e5c79a;--muted-bg:#262625;--muted-fg:#a8a6a1;--danger:#f08a6c;--danger-bg:#3a1f17;--focus:#ecebe7;--scrim:#0000008c;--shadow-pop:0 0 0 1px var(--line), 0 24px 48px -24px #0009;--grain-opacity:.045;--grain-blend:screen}}@media (width>=768px){:root{--gutter:32px}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{background:var(--bg);min-height:100dvh;color:var(--ink);font-family:var(--font-body);font-size:var(--text-base);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;line-height:1.55}body:after{content:"";pointer-events:none;z-index:var(--z-grain);opacity:var(--grain-opacity);mix-blend-mode:var(--grain-blend);background:url(/assets/grain-BNxf-SGQ.png);position:fixed;inset:0}h1,h2,h3{font-family:var(--font-display);letter-spacing:-.02em;text-wrap:balance;margin:0;font-weight:600;line-height:1.15}h1{letter-spacing:-.03em;font-size:clamp(1.7rem,1.4rem + 1vw,2.15rem)}h2{font-size:1.12rem}h3{letter-spacing:-.01em;font-size:1rem}p{text-wrap:pretty;margin:0}strong{font-weight:600}a{color:inherit;-webkit-text-decoration-color:var(--tan);text-decoration-color:var(--tan);text-underline-offset:3px;text-decoration-thickness:1.5px}a:hover{-webkit-text-decoration-color:var(--ink);text-decoration-color:var(--ink)}code{font-family:var(--font-mono);font-size:.9em}img{max-width:100%;height:auto}::selection{background:var(--tan-soft)}:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:6px}.muted{color:var(--ink-2)}.stack{gap:var(--space-4);flex-direction:column;display:flex}.row{gap:var(--space-2);flex-wrap:wrap;align-items:center;display:flex}.skip-link{z-index:var(--z-skip);background:var(--ink);color:var(--bg);border-radius:var(--r-pill);padding:8px 16px;font-weight:600;text-decoration:none;position:absolute;top:-64px;left:16px}.skip-link:focus{top:10px}.shell{min-height:100dvh}.topbar{z-index:var(--z-bar);align-items:center;gap:var(--space-5);min-height:64px;padding:10px max(var(--gutter), (100% - var(--wrap)) / 2);background:color-mix(in oklab, var(--bg) 86%, transparent);-webkit-backdrop-filter:saturate(1.4)blur(12px);backdrop-filter:saturate(1.4)blur(12px);border-bottom:1px solid var(--line);display:flex;position:sticky;top:0}.brand{border-radius:8px;flex:none;align-items:center;gap:10px;text-decoration:none;display:flex}.brand-logo{width:auto;height:36px;display:block}.brand-name{font-family:var(--font-display);letter-spacing:-.01em;white-space:nowrap;font-size:1.02rem;font-weight:600}.brand-logo+.brand-name{display:none}.nav{scrollbar-width:none;border-radius:var(--r-pill);background:var(--surface);gap:2px;min-width:0;padding:3px;display:flex;overflow-x:auto}.nav::-webkit-scrollbar{display:none}.nav a{border-radius:var(--r-pill);font-size:var(--text-sm);color:var(--ink-2);white-space:nowrap;transition:color .2s var(--ease), background-color .2s var(--ease);flex:none;padding:6px 13px;font-weight:500;text-decoration:none}.nav a:hover{color:var(--ink)}.nav a.active{background:var(--raised);color:var(--ink);box-shadow:0 1px 2px #3c30241f, 0 0 0 1px var(--line);font-weight:600}.account{align-items:center;gap:var(--space-3);font-size:var(--text-sm);flex:none;margin-left:auto;display:flex}.account-who{flex-direction:column;align-items:flex-end;line-height:1.25;display:flex}.account-email{color:var(--ink);font-weight:500}.account-role{color:var(--ink-3);font-size:var(--text-xs);text-transform:capitalize}.content{width:min(100% - 2 * var(--gutter), var(--wrap));padding:var(--space-6) 0 var(--space-7);animation:page-in .5s var(--ease) backwards;margin-inline:auto}@keyframes page-in{0%{opacity:0;transform:translateY(6px)}}.content>.stack{gap:var(--space-5)}.page-head{justify-content:space-between;align-items:flex-end;gap:var(--space-4);padding-bottom:var(--space-1);flex-wrap:wrap;display:flex}.page-head h1+.muted,.page-head h1+p{margin-top:6px}.page-status{min-height:60dvh;color:var(--ink-2);place-items:center;display:grid}.card{background:var(--raised);border:1px solid var(--line);border-radius:var(--r-card);padding:var(--space-5)}.card.stack{gap:var(--space-4)}.tiles{background:var(--raised);border:1px solid var(--line);border-radius:var(--r-card);grid-template-columns:repeat(auto-fit,minmax(170px,1fr));display:grid;overflow:hidden}.tile{box-shadow:-1px 0 0 var(--line), 0 -1px 0 var(--line);flex-direction:column;gap:6px;padding:18px 22px 20px;display:flex}.tile-label{color:var(--ink-2);font-size:var(--text-sm);font-weight:500}.tile-value{font-family:var(--font-display);letter-spacing:-.03em;font-variant-numeric:tabular-nums;font-size:1.85rem;font-weight:600;line-height:1.05}.tile-value.warn{color:var(--warn-fg)}.tile-link{color:inherit;transition:background-color .2s var(--ease);text-decoration:none}.tile-link:hover{background:var(--hover)}.tile-link .tile-label:after{content:" →";color:var(--ink-3);transition:color .2s var(--ease)}.tile-link:hover .tile-label:after{color:var(--ink)}.split{gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(340px,1fr));align-items:start;display:grid}.btn{justify-content:center;align-items:center;gap:var(--space-2);min-height:var(--control-h);border-radius:var(--r-pill);background:var(--raised);color:var(--ink);box-shadow:inset 0 0 0 1px var(--line-strong);font:500 var(--text-sm)/1 var(--font-body);white-space:nowrap;cursor:pointer;transition:background-color .2s var(--ease), box-shadow .2s var(--ease), transform .15s var(--ease);border:0;padding:0 16px;text-decoration:none;display:inline-flex}.btn:hover:not(:disabled){background:var(--hover);box-shadow:inset 0 0 0 1px var(--ink-3)}.btn:active:not(:disabled){transform:scale(.98)}.btn:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:var(--r-pill)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--tan);color:var(--on-tan);font-weight:600;box-shadow:inset 0 -1px #1616161f,0 6px 16px -10px #785c4099}.btn-primary:hover:not(:disabled){background:var(--tan-deep);box-shadow:inset 0 -1px #1616161f,0 6px 16px -10px #785c4099}.btn-ghost{box-shadow:none;color:var(--ink-2);background:0 0}.btn-ghost:hover:not(:disabled){background:var(--surface);box-shadow:none;color:var(--ink)}.btn-sm{min-height:var(--control-h-sm);padding:0 12px;font-size:.82rem}.field{min-width:0;font-size:var(--text-sm);color:var(--ink-2);border:0;flex-direction:column;gap:6px;margin:0;padding:0;font-weight:500;display:flex}.field>legend{margin-bottom:6px;padding:0}.field.checkbox{align-items:center;gap:var(--space-2);min-height:var(--control-h);color:var(--ink);cursor:pointer;flex-direction:row;align-self:end;font-weight:450}input:not([type=checkbox]):not([type=radio]):not([type=color]),select,textarea{min-width:0;min-height:var(--control-h);border:1px solid var(--line-strong);border-radius:var(--r-input);background-color:var(--raised);color:var(--ink);font:400 var(--text-base)/1.3 var(--font-body);transition:border-color .2s var(--ease), box-shadow .2s var(--ease);padding:0 12px}textarea{resize:vertical;min-height:88px;padding:10px 12px}select{appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M3 4.5 6 7.5 9 4.5' fill='none' stroke='%238a8985' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;padding-right:34px!important}input::placeholder,textarea::placeholder{color:var(--ink-3)}input:not([type=checkbox]):not([type=radio]):hover,select:hover,textarea:hover{border-color:var(--ink-3)}input:focus,select:focus,textarea:focus{border-color:var(--ink);box-shadow:0 0 0 3px var(--tan-soft);outline:none}input:disabled,select:disabled,textarea:disabled{background-color:var(--surface);color:var(--ink-2);cursor:not-allowed}input[type=checkbox],input[type=radio]{width:16px;height:16px;accent-color:var(--ink);cursor:pointer;margin:0}input[type=color]{width:56px;height:var(--control-h);border:1px solid var(--line-strong);border-radius:var(--r-input);background:var(--raised);cursor:pointer;padding:3px}.search{background:var(--raised) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Ccircle cx='7' cy='7' r='4.75' fill='none' stroke='%238a8985' stroke-width='1.6'/%3E%3Cpath d='m10.5 10.5 3 3' stroke='%238a8985' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat 12px center;width:min(100%,420px);padding-left:36px!important}.form-grid{gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(190px,1fr));display:grid}.span-all,.form-actions{grid-column:1/-1}.form-actions{gap:var(--space-2);padding-top:var(--space-1);flex-wrap:wrap;align-items:center;display:flex}.fieldset-plain{border:0;min-width:0;margin:0;padding:0}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip{align-items:center;gap:var(--space-2);min-height:var(--control-h-sm);border-radius:var(--r-pill);background:var(--raised);box-shadow:inset 0 0 0 1px var(--line-strong);color:var(--ink);cursor:pointer;-webkit-user-select:none;user-select:none;transition:background-color .2s var(--ease), box-shadow .2s var(--ease);padding:0 12px;font-weight:450;display:inline-flex;position:relative}.chip input{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.chip:hover{box-shadow:inset 0 0 0 1px var(--ink-3)}.chip.on{background:var(--ink);color:var(--bg);box-shadow:none;font-weight:550}.chip:has(input:focus-visible){outline:2px solid var(--focus);outline-offset:2px}.table{border-collapse:collapse;width:100%;font-size:var(--text-sm)}.table th,.table td{border-bottom:1px solid var(--line);text-align:left;vertical-align:middle;padding:11px 12px}.table th{color:var(--ink-3);font-weight:500;font-size:var(--text-xs);letter-spacing:.02em;white-space:nowrap;border-bottom-color:var(--line-strong);padding-top:9px;padding-bottom:9px}.table tbody tr{transition:background-color .15s var(--ease)}.table tbody tr:hover{background:var(--hover)}.table tbody tr:last-child td{border-bottom:0}.table td a{font-weight:550;text-decoration:none}.table td a:hover{text-decoration:underline;-webkit-text-decoration-color:var(--tan);text-decoration-color:var(--tan)}.table tr.muted-row td,.table tr.cancelled td{color:var(--ink-3)}.table tr.cancelled td:first-child{text-decoration:line-through;-webkit-text-decoration-color:var(--ink-3);text-decoration-color:var(--ink-3)}.num{font-variant-numeric:tabular-nums;text-align:right!important}.neg{color:var(--danger)}.pos{color:var(--ok-fg)}.stack:not(.card)>.table{background:var(--raised);border:1px solid var(--line);border-radius:var(--r-card);border-collapse:separate;border-spacing:0;overflow:hidden}.card>.table{margin:0 calc(-1 * var(--space-5));width:calc(100% + 2 * var(--space-5))}.card>.table:last-child{margin-bottom:calc(-1 * var(--space-5) + 4px)}.card>.table th:first-child,.card>.table td:first-child,.stack:not(.card)>.table th:first-child,.stack:not(.card)>.table td:first-child{padding-left:var(--space-5)}.card>.table th:last-child,.card>.table td:last-child,.stack:not(.card)>.table th:last-child,.stack:not(.card)>.table td:last-child{padding-right:var(--space-5)}.card>.table>tbody:first-child>tr:first-child>td{border-top:1px solid var(--line)}.badge{margin-left:var(--space-1);border-radius:var(--r-label);font-size:var(--text-xs);white-space:nowrap;background:var(--muted-bg);color:var(--muted-fg);padding:2px 8px;font-weight:600;line-height:1.5;display:inline-block}.badge:first-letter{text-transform:uppercase}.badge:first-child{margin-left:0}.badge-present,.badge-active,.badge-marked,.badge-paid{background:var(--ok-bg);color:var(--ok-fg)}.badge-absent,.badge-warn,.badge-partial,.badge-sent,.badge-lateCancelled,.badge-unmarked{background:var(--due-bg);color:var(--due-fg)}.badge-expired,.badge-void,.badge-overdue,.badge-cancelled-lesson{background:var(--warn-bg);color:var(--warn-fg)}.badge-cancelled,.badge-removed,.badge-completed,.badge-inactive,.badge-archived{background:var(--muted-bg);color:var(--muted-fg)}.inline-confirm{gap:var(--space-2);flex-direction:column;max-width:380px;display:flex}.calendar{padding:0;overflow-x:auto}.cal-head,.cal-body{grid-template-columns:60px repeat(7,minmax(112px,1fr));min-width:860px;display:grid}.cal-head{border-bottom:1px solid var(--line-strong)}.cal-day-head{font-size:var(--text-sm);border-left:1px solid var(--line);align-items:center;gap:6px;padding:10px 12px;font-weight:600;display:flex}.cal-day-head .muted{font-family:var(--font-display);letter-spacing:-.02em;margin-left:auto;font-size:1.1rem;font-weight:500}.cal-day-head.today .muted{border-radius:var(--r-pill);background:var(--ink);min-width:30px;height:30px;color:var(--bg);place-items:center;padding:0 6px;font-size:1rem;font-weight:600;display:inline-grid}.cal-body{position:relative}.cal-hour{color:var(--ink-3);text-align:right;font-variant-numeric:tabular-nums;padding-right:10px;font-size:.7rem;transform:translateY(-.55em)}.cal-hours .cal-hour:first-child{visibility:hidden}.cal-col{border-left:1px solid var(--line);position:relative}.cal-col.today{background:color-mix(in oklab, var(--tan-soft) 45%, transparent)}.cal-slot{border-top:1px solid var(--line)}.cal-slot:first-child{border-top:0}.cal-event{color:var(--ink);background:var(--tan-soft);box-shadow:inset 3px 0 0 var(--tan-deep);transition:transform .15s var(--ease), box-shadow .15s var(--ease);border-radius:8px;padding:4px 8px;font-size:.74rem;line-height:1.3;text-decoration:none;position:absolute;left:4px;right:4px;overflow:hidden}.cal-event strong{font-variant-numeric:tabular-nums;display:block}.cal-event:hover{box-shadow:inset 3px 0 0 var(--tan-deep), 0 8px 18px -12px #3c302480;z-index:1;transform:translateY(-1px)}.cal-event.state-marked,.cal-key.state-marked{background:var(--ok-bg);box-shadow:inset 3px 0 0 var(--ok-line);color:var(--ok-fg)}.cal-event.state-partial{background:var(--due-bg);box-shadow:inset 3px 0 0 var(--warn-line)}.cal-event.state-cancelled,.cal-key.state-cancelled{background:var(--muted-bg);box-shadow:inset 3px 0 0 var(--line-strong);color:var(--ink-3);text-decoration:line-through}.cal-repeat{color:var(--ink-3)}.cal-key{vertical-align:-1px;background:var(--tan-soft);width:12px;height:12px;box-shadow:inset 3px 0 0 var(--tan-deep);border-radius:3px;margin:0 6px 0 14px;display:inline-block}.cal-key:first-child{margin-left:0}.legend{font-size:var(--text-sm)}.scope{gap:var(--space-3);flex-wrap:wrap;display:flex}.cal-single .cal-head,.cal-single .cal-body{min-width:0}.cal-single .cal-event{width:min(100% - 8px,520px);padding:6px 10px;font-size:.8rem;right:auto}.cal-event-len{color:var(--ink-2);font-weight:400}.cal-day-link{cursor:pointer;font:inherit;color:inherit;transition:background-color .15s var(--ease);background:0 0;border:0;border-radius:6px;margin:-2px -6px;padding:2px 6px}.cal-day-link:hover{background:var(--surface)}.mcal{padding:0;overflow:hidden}.mcal-head,.mcal-body{grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.mcal-head{border-bottom:1px solid var(--line-strong)}.mcal-wd{font-size:var(--text-xs);color:var(--ink-3);letter-spacing:.02em;padding:10px 12px;font-weight:600}.mcal-day{min-width:0;min-height:118px;box-shadow:-1px 0 0 var(--line), 0 -1px 0 var(--line);flex-direction:column;gap:3px;padding:6px 6px 8px;display:flex}.mcal-body .mcal-day:nth-child(-n+7){box-shadow:-1px 0 0 var(--line)}.mcal-day.out{background:color-mix(in oklab, var(--surface) 40%, transparent)}.mcal-day.out .mcal-num{color:var(--ink-3)}.mcal-day.today{background:color-mix(in oklab, var(--tan-soft) 45%, transparent)}.mcal-num{border-radius:var(--r-pill);cursor:pointer;min-width:28px;height:28px;font:500 .95rem/1 var(--font-display);color:var(--ink);letter-spacing:-.01em;font-variant-numeric:tabular-nums;transition:background-color .15s var(--ease);background:0 0;border:0;align-self:flex-start;padding:0 6px}.mcal-num:hover{background:var(--surface)}.mcal-day.today .mcal-num{background:var(--ink);color:var(--bg);font-weight:600}.mcal-ev{min-width:0;color:var(--ink);background:var(--tan-soft);box-shadow:inset 2px 0 0 var(--tan-deep);transition:filter .15s var(--ease);border-radius:6px;gap:5px;padding:2px 6px;font-size:.74rem;line-height:1.45;text-decoration:none;display:flex}.mcal-ev:hover{filter:brightness(.96)}.mcal-time{font-variant-numeric:tabular-nums;flex:none;font-weight:600}.mcal-who{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.mcal-ev.state-marked{background:var(--ok-bg);box-shadow:inset 2px 0 0 var(--ok-line);color:var(--ok-fg)}.mcal-ev.state-partial{background:var(--due-bg);box-shadow:inset 2px 0 0 var(--warn-line)}.mcal-ev.state-cancelled{background:var(--muted-bg);box-shadow:inset 2px 0 0 var(--line-strong);color:var(--ink-3);text-decoration:line-through}.mcal-more{cursor:pointer;font:600 .74rem/1.45 var(--font-body);color:var(--ink-2);background:0 0;border:0;border-radius:6px;align-self:flex-start;padding:1px 6px}.mcal-more:hover{background:var(--surface);color:var(--ink)}.tabs{border-radius:var(--r-pill);background:var(--surface);flex-wrap:wrap;gap:2px;margin-right:auto;padding:3px;display:inline-flex}.tab{border-radius:var(--r-pill);min-height:30px;font:500 var(--text-sm)/1 var(--font-body);color:var(--ink-2);cursor:pointer;transition:color .2s var(--ease), background-color .2s var(--ease);background:0 0;border:0;padding:0 13px}.tab:hover{color:var(--ink)}.tab.on{background:var(--raised);color:var(--ink);box-shadow:0 1px 2px #3c30241f, 0 0 0 1px var(--line);font-weight:600}.modal-backdrop{z-index:var(--z-modal);padding:12vh var(--gutter) var(--gutter);background:var(--scrim);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);animation:fade-in .2s var(--ease) both;justify-content:center;align-items:flex-start;display:flex;position:fixed;inset:0}.modal{width:min(460px,100%);box-shadow:var(--shadow-pop);animation:pop-in .3s var(--ease) both;border:0}@keyframes fade-in{0%{opacity:0}}@keyframes pop-in{0%{opacity:0;transform:translateY(8px)scale(.98)}}body.sheet-open{overflow:hidden}.sheet-root{z-index:var(--z-modal);position:fixed;inset:0}.sheet-scrim{background:var(--scrim);animation:fade-in .25s var(--ease) both;position:absolute;inset:0}.sheet{background:var(--bg);width:min(580px,100vw);box-shadow:-1px 0 0 var(--line), -24px 0 48px -24px #28201859;animation:sheet-in .38s var(--ease) both;outline:none;flex-direction:column;display:flex;position:absolute;top:0;bottom:0;right:0}@keyframes sheet-in{0%{opacity:0;transform:translate(32px)}}.sheet-bar{align-items:center;gap:var(--space-2);border-bottom:1px solid var(--line);flex:none;padding:12px 16px 12px 24px;display:flex}.sheet-kicker{color:var(--ink-3);font-size:var(--text-xs);letter-spacing:.06em;margin-right:auto;font-weight:600}.sheet-body{overscroll-behavior:contain;flex:1;padding:22px 24px 48px;overflow-y:auto}.lesson-sheet .lesson-title{letter-spacing:-.025em;font-size:1.45rem}.lesson-sheet .page-head{align-items:flex-start}.lesson-sheet .card{padding:var(--space-4)}.icon-btn{border-radius:var(--r-pill);width:36px;height:36px;color:var(--ink-2);cursor:pointer;transition:background-color .2s var(--ease);background:0 0;border:0;place-items:center;display:inline-grid}.icon-btn:hover{background:var(--surface);color:var(--ink)}.att-list{margin:0;padding:0;list-style:none}.att{border-top:1px solid var(--line);gap:10px;padding:14px 0;display:grid}.att:last-child{padding-bottom:2px}.att-head{flex-wrap:wrap;align-items:center;gap:6px 8px;display:flex}.att-name{margin-right:2px;font-weight:600;text-decoration:none}.att-name:hover{text-decoration:underline;-webkit-text-decoration-color:var(--tan);text-decoration-color:var(--tan)}.att-head .badge{margin-left:0}.att-note{font-size:var(--text-sm)}.att-left{font-variant-numeric:tabular-nums;margin-left:auto}.picker{width:min(100%,460px);position:relative}.picker-input{width:100%}.picker-list{z-index:5;background:var(--raised);max-height:320px;box-shadow:var(--shadow-pop), 0 0 0 1px var(--line);animation:pop-in .18s var(--ease) both;border-radius:12px;margin:0;padding:6px;list-style:none;position:absolute;top:calc(100% + 6px);left:0;right:0;overflow-y:auto}.picker-list li{cursor:pointer;border-radius:8px;align-items:baseline;gap:10px;padding:8px 10px;display:flex}.picker-list li.on{background:var(--surface)}.picker-name{color:var(--ink);white-space:nowrap;font-weight:550}.picker-meta{color:var(--ink-3);font-size:var(--text-sm);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.picker-list .picker-empty{color:var(--ink-2);cursor:default}.picker-multi{gap:var(--space-2)}.chip-x{border-radius:var(--r-pill);background:color-mix(in oklab, currentColor 18%, transparent);width:18px;height:18px;color:inherit;font:600 .9rem/1 var(--font-body);cursor:pointer;border:0;place-items:center;margin:0 -6px 0 0;padding:0;display:inline-grid}.chip-x:hover{background:color-mix(in oklab, currentColor 32%, transparent)}.paynow{gap:var(--space-5);flex-wrap:wrap;align-items:center;display:flex}.paynow-qr{width:168px;height:168px;box-shadow:0 0 0 1px var(--line);background:#fff;border-radius:12px;padding:8px}.paynow-qr svg{width:100%;height:100%;display:block}.error{color:var(--danger);font-size:var(--text-sm);font-weight:500}.success{color:var(--ok-fg);font-size:var(--text-sm);font-weight:500}.empty{color:var(--ink-2);padding:var(--space-5);text-align:center;background:repeating-linear-gradient(-45deg, transparent 0 8px, color-mix(in oklab, var(--surface) 55%, transparent) 8px 9px);box-shadow:inset 0 0 0 1px var(--line);border-radius:12px}.auth-card{width:min(100% - 2 * var(--gutter), 420px);background:var(--raised);box-shadow:var(--shadow-pop);gap:var(--space-4);animation:pop-in .4s var(--ease) both;border-radius:20px;flex-direction:column;margin:max(12vh,48px) auto 48px;padding:clamp(24px,5vw,36px);display:flex}.auth-card:before{content:"LessonKaki · Staff";color:var(--ink-3);font-size:var(--text-xs);letter-spacing:.06em;margin-bottom:4px;font-weight:600;display:block}.auth-card h1{font-size:1.75rem}.auth-card .btn{min-height:44px}.auth-card .field input{min-height:46px;font-size:1rem}.auth-card ol{margin:0;padding-left:1.2em}.auth-card ol>li::marker{color:var(--ink-3);font-weight:600}.auth-card img{box-shadow:0 0 0 1px var(--line);background:#fff;border-radius:12px;padding:8px}.secret-key{background:var(--surface);font-family:var(--font-mono);letter-spacing:.08em;word-break:break-all;-webkit-user-select:all;user-select:all;border-radius:8px;margin-top:6px;padding:8px 10px;display:block}@media (width<=1100px){.account-who{display:none}}@media (width<=860px){.topbar{flex-wrap:wrap;row-gap:10px}.nav{order:3;width:100%}}@media (width<=640px){.content{padding-top:var(--space-5)}.card{padding:var(--space-4)}.card>.table{margin:0 calc(-1 * var(--space-4));width:calc(100% + 2 * var(--space-4))}.table{display:block;overflow-x:auto}.table th,.table td{white-space:nowrap}.tile{padding:14px 16px 16px}.tile-value{font-size:1.5rem}.sheet-body{padding:18px 16px 40px}.mcal-day{min-height:76px;padding:4px 3px 6px}.mcal-ev{padding:1px 3px;font-size:.66rem}.mcal-who{display:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.form-grid .lesson-type{grid-column:span 2}.field-help{color:var(--ink-3);font-size:var(--text-xs);font-weight:400}.subject-row{gap:var(--space-3);padding:var(--space-4) 0;border-top:1px solid var(--line)}.subject-row:first-child{border-top:0;padding-top:0}.subject-row.is-archived{opacity:.6}.subject-row-head{gap:var(--space-3)}.subject-name{width:min(100%,320px);font-weight:600}.length-input{width:120px;min-height:var(--control-h-sm)!important;border-radius:var(--r-pill)!important}.lesson-types-preview{padding:var(--space-3) var(--space-4);background:var(--surface);font-size:var(--text-sm);border-radius:12px}.lesson-types-preview ul{margin:6px 0 0;padding-left:1.1em}@media (width<=640px){.form-grid .lesson-type{grid-column:1/-1}}.usual-length{width:min(100%,260px)}.cal-off,.mcal-off{cursor:pointer;text-align:left;color:var(--ink-2);font:inherit;background:repeating-linear-gradient(-45deg, var(--muted-bg) 0 6px, color-mix(in oklab, var(--muted-bg) 55%, transparent) 6px 12px);box-shadow:inset 3px 0 0 var(--ink-3);border:0}.cal-off{border-radius:8px;flex-wrap:wrap;align-content:flex-start;gap:0 4px;padding:4px 8px;font-size:.74rem;line-height:1.3;display:flex;position:absolute;left:4px;right:4px;overflow:hidden}.cal-off:hover,.mcal-off:hover,.cal-off strong{color:var(--ink)}.cal-off-note{color:var(--ink-3)}.mcal-off{box-shadow:inset 2px 0 0 var(--ink-3);border-radius:6px;padding:2px 6px;font-size:.72rem;font-weight:600;line-height:1.45}.cal-key-off{background:var(--muted-bg);box-shadow:inset 3px 0 0 var(--ink-3)}.capacity-field{width:min(100%,360px)}.conflict{background:var(--due-bg);color:var(--due-fg);box-shadow:inset 3px 0 0 var(--warn-line);font-size:var(--text-sm);border-radius:12px;padding:12px 16px}.conflict ul{margin:4px 0 0;padding-left:1.1em}.package-select{width:min(100%,420px);min-height:var(--control-h-sm)!important;font-size:var(--text-sm)!important}.package-picks{gap:6px;display:grid}.package-pick{color:var(--ink);flex-wrap:wrap;align-items:center;gap:12px;font-weight:500;display:flex}.package-pick>span{min-width:140px}.conflict-none{background:var(--ok-bg);color:var(--ok-fg);box-shadow:inset 3px 0 0 var(--ok-line)}.cal-holiday{color:var(--warn-fg);white-space:nowrap;text-overflow:ellipsis;flex-basis:100%;order:3;font-size:.68rem;font-weight:600;overflow:hidden}.cal-day-head{flex-wrap:wrap}.cal-closed{cursor:default;opacity:.85;border-radius:0;left:0;right:0}.mcal-holiday{color:var(--warn-fg);background:var(--warn-bg);white-space:nowrap;text-overflow:ellipsis;border-radius:6px;padding:1px 6px;font-size:.7rem;font-weight:600;overflow:hidden}.mcal-holiday.closed{color:var(--ink-2);background:repeating-linear-gradient(-45deg, var(--muted-bg) 0 6px, color-mix(in oklab, var(--muted-bg) 55%, transparent) 6px 12px)}.discount-row{flex-wrap:nowrap}.discount-row select{width:110px}.discount-row input{width:120px}.sale-total{font-size:1rem}.staff-note{background:var(--tan-soft);color:var(--ink);font-size:var(--text-sm);white-space:pre-wrap;border-radius:10px;max-width:60ch;margin-top:8px;padding:8px 12px}.att-notes{margin-top:0}.invoice-notes .row{justify-content:space-between}
