:root{--sf-bg:#faf8f5;--sf-card:#fff;--sf-dark:#221f1c;--sf-text:#4a443d;--sf-muted:#7d746a;--sf-ice:#e8e0d5;--sf-frost:#f2eee8;--sf-accent:#3f5f52;--sf-accent-hover:#314c41;--sf-accent-ink:#345044;--sf-warm:#b5763f;--sf-warm-bg:#f6ece1;--sf-warm-ink:#7a5520;--sf-warm-fill:#a06634;--sf-line:#e2dcd2;--sf-danger:#b3453f;--sf-success:#3f5f52;--sf-on-accent:#fff;--sf-topline:linear-gradient(90deg, var(--sf-accent), var(--sf-ice), var(--sf-warm));--sf-class-1:oklch(54% .075 152);--sf-class-2:oklch(54% .1 42);--sf-class-3:oklch(52% .085 258);--sf-class-4:oklch(55% .075 300);--sf-class-5:oklch(52% .09 88);--sf-class-6:oklch(52% .06 200);--mono:var(--font-body);--type-hero:clamp(2.6rem, 6vw, 4.4rem);--type-title:clamp(2rem, 4.5vw, 3.2rem);--type-subtitle:clamp(1.5rem, 3vw, 2rem);--type-body:15px;--type-md:.95rem;--type-sm:.88rem;--type-xs:.8rem;--type-label-xs:.6rem;--type-label-sm:.64rem;--type-label-md:.68rem;--type-label-lg:.72rem;--weight-display:400;--weight-name:600;--weight-label:600;--weight-price:700;--tracking-display:-.03em;--tracking-tight:-.02em;--tracking-label:.1em;--tracking-label-sm:.08em;--tracking-kicker:.18em;--leading-display:1.08;--leading-body:1.7;--sf-container:1400px;--sf-panel-max:1440px;--sf-gutter:clamp(16px, 3vw, 56px);--radius-sm:3px;--radius-md:4px;--radius-lg:6px;--radius-round:999px;--shadow-sm:0 1px 2px #221f1c0a;--shadow-md:0 2px 10px #221f1c0f;--shadow-lg:0 6px 24px #221f1c14;--shadow-dropdown:0 16px 48px #221f1c14;--shadow-float:0 2px 12px #221f1c1f;--ease-out:cubic-bezier(.22, 1, .36, 1);--dur-fast:.15s;--dur-med:.25s;--row:44px;--control:38px;--gutter:clamp(20px, 3vw, 40px);--line-faint:color-mix(in srgb, var(--sf-line) 55%, transparent);--accent-tint:color-mix(in srgb, var(--sf-accent) 9%, var(--sf-card));--ink:var(--sf-dark);--text-muted:var(--sf-text);--text-dim:var(--sf-muted);--radius:var(--radius-sm);--t:var(--dur-fast);--t-reveal:var(--dur-med);--t-move:.5s;--tease:var(--ease-out);--shadow:var(--shadow-md);--asini-font-sans:var(--font-body);--asini-surface:var(--sf-card);--asini-text:var(--sf-dark);--asini-border:var(--sf-line);--asini-border-strong:color-mix(in srgb, var(--sf-accent) 35%, var(--sf-line));--asini-radius-sm:var(--radius-sm);--asini-accent:var(--sf-warm);font-family:var(--font-body);font-size:var(--type-body);color:var(--sf-text);background:var(--sf-bg);font-variant-numeric:tabular-nums;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;line-height:1.5}:root[data-theme=dark]{--sf-bg:#1c211f;--sf-card:#242a27;--sf-dark:#eaeeea;--sf-text:#c7cec9;--sf-muted:#929b95;--sf-ice:#39423d;--sf-frost:#2b322e;--sf-accent:#8fb6a1;--sf-accent-hover:#a5c8b4;--sf-accent-ink:#a5c8b4;--sf-warm:#d9a778;--sf-warm-bg:#2f2a20;--sf-warm-ink:#e8bf99;--sf-warm-fill:#d9a778;--sf-line:#363d39;--sf-danger:#d8837b;--sf-success:#8fb6a1;--sf-on-accent:#1c211f;--sf-class-1:oklch(74% .07 152);--sf-class-2:oklch(75% .09 42);--sf-class-3:oklch(73% .08 258);--sf-class-4:oklch(74% .07 300);--sf-class-5:oklch(74% .08 88);--sf-class-6:oklch(73% .06 200);--shadow-sm:0 1px 3px #0003;--shadow-md:0 4px 20px #00000040;--shadow-lg:0 8px 36px #0000004d;--shadow-dropdown:0 16px 48px #00000059;--shadow-float:0 2px 12px #0006;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@media (width<=759px){:root{--control:44px;--gutter:16px;--type-title:1.5rem;--type-subtitle:1.25rem}}@media (hover:none){:root{--control:44px}}*{box-sizing:border-box}body{background:var(--sf-bg);min-height:100vh;color:var(--sf-text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0}body:before{content:"";background:var(--sf-topline);height:3px;display:block}::selection{background:var(--sf-ice);color:var(--sf-dark)}:focus-visible{outline:2px solid var(--sf-warm);outline-offset:2px;border-radius:2px}a{color:var(--sf-dark);transition:color var(--dur-fast) ease;text-decoration:none}a:hover{color:var(--sf-accent)}a:visited{color:var(--sf-dark)}h1{font-family:var(--font-display);font-weight:var(--weight-display);font-size:var(--type-title);line-height:var(--leading-display);letter-spacing:var(--tracking-tight);color:var(--sf-dark);margin:0}h2{font-family:var(--font-display);font-weight:var(--weight-display);font-size:var(--type-subtitle);color:var(--sf-dark);letter-spacing:var(--tracking-tight);margin:28px 0 10px}h3{font-size:.95rem;font-weight:var(--weight-name);color:var(--sf-dark);margin:0 0 8px}p{margin:0 0 8px;line-height:1.7}.mono{font-family:var(--mono)}.mono button,.mono select{font-family:var(--font-body)}.muted{color:var(--sf-text)}.dim{color:var(--sf-muted)}.msg{color:var(--sf-accent-ink);animation:appear var(--t) var(--tease)}.msg.bad,.danger{color:var(--sf-danger)}.present{color:var(--sf-success)}.right{text-align:right}.sf-num{font-family:var(--font-display);letter-spacing:-.01em;font-variant-numeric:lining-nums tabular-nums;color:var(--sf-dark);font-weight:500}.th{font-family:var(--mono);font-size:var(--type-label-sm);font-weight:var(--weight-label);color:var(--sf-muted);text-transform:uppercase;letter-spacing:var(--tracking-label-sm)}.kicker{font-family:var(--mono);font-size:var(--type-label-lg);font-weight:var(--weight-label);color:var(--sf-accent-ink);text-transform:uppercase;letter-spacing:var(--tracking-kicker);margin:0 0 4px;display:block}.cls .t,.frame>.head .t,.cal .wb .t,.now span{font-family:var(--font-display);letter-spacing:-.01em;font-variant-numeric:lining-nums tabular-nums;font-weight:500}.shell{flex-direction:column;min-height:100vh;display:flex}.side{padding:18px var(--gutter) 12px;flex-wrap:wrap;align-items:center;gap:6px 20px;display:flex}.home-dot{border-radius:var(--radius-round);background:var(--sf-card);border:1px solid var(--sf-line);width:36px;height:36px;box-shadow:var(--shadow-float);transition:border-color var(--dur-fast) ease;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.home-dot:hover{border-color:var(--sf-accent)}.home-dot i{background:var(--sf-accent);border-radius:50%;width:7px;height:7px;display:block}.side-head{align-items:center;gap:10px;min-width:0;display:flex}.brand-block{min-width:0}.brand{font-family:var(--font-display);font-weight:var(--weight-display);letter-spacing:var(--tracking-tight);color:var(--sf-dark);white-space:nowrap;text-overflow:ellipsis;font-size:1.15rem;overflow:hidden}.brand-block .kicker{font-size:var(--type-label-xs);color:var(--sf-warm);letter-spacing:var(--tracking-label);margin:1px 0 0}.nav{font-size:var(--type-sm);flex-direction:column;align-items:stretch;gap:2px;display:flex}.nav-group{font-family:var(--mono);font-size:var(--type-label-sm);font-weight:var(--weight-label);text-transform:uppercase;letter-spacing:var(--tracking-label-sm);color:var(--sf-muted);margin-top:18px;padding:0 12px 6px}.nav-group:first-child{margin-top:0}.nav a{border-radius:var(--radius-sm);color:var(--sf-text);transition:color var(--t) var(--tease), background-color var(--t) var(--tease), border-color var(--t) var(--tease), box-shadow var(--t) var(--tease);border:1px solid #0000;align-items:center;gap:10px;padding:8px 10px 8px 12px;font-weight:500;display:flex;position:relative}.nav a .ico{width:18px;height:18px;color:var(--sf-muted);transition:color var(--t) var(--tease);flex-shrink:0}.nav a .label{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.nav a:hover{color:var(--sf-dark);background:color-mix(in srgb, var(--sf-card) 60%, transparent);text-decoration:none}.nav a:hover .ico{color:var(--sf-dark)}.nav a[aria-current=page]{color:var(--sf-dark);background:var(--sf-card);border-color:var(--sf-line);box-shadow:var(--shadow-float)}.nav a[aria-current=page] .ico{color:var(--sf-accent-ink)}.nav a[aria-current=page]:before{content:"";background:var(--sf-accent);border-radius:0 2px 2px 0;width:3px;position:absolute;top:7px;bottom:7px;left:-1px}.nav a[aria-expanded=true]{color:var(--sf-dark)}.nav a[aria-expanded=true] .ico{color:var(--sf-accent-ink)}.nav .n{border-radius:var(--radius-round);text-align:center;background:var(--sf-accent);min-width:20px;color:var(--sf-on-accent);font-variant-numeric:tabular-nums;padding:0 7px;font-size:.7rem;font-weight:600;line-height:20px}.nav .chev{width:14px;height:14px;color:var(--sf-muted);transition:transform var(--t) var(--tease);flex-shrink:0}.nav a[aria-expanded=true] .chev{transform:rotate(90deg)}.nav .nav-sub{border-left:1px solid var(--sf-line);flex-direction:column;gap:1px;margin:2px 0 8px 21px;padding-left:10px;display:flex}.nav .nav-sub a{color:var(--sf-muted);border:0;padding:5px 10px;font-size:.92em;font-weight:400}.nav .nav-sub a[aria-current=page]{color:var(--sf-dark);box-shadow:none;background:0 0;font-weight:500}.nav .nav-sub a[aria-current=page]:before{border-radius:50%;width:6px;height:6px;top:50%;bottom:auto;left:-13.5px;transform:translateY(-50%)}.account{font-size:var(--type-sm);flex-wrap:wrap;align-items:center;gap:8px;margin-left:auto;display:flex}.account .badge{background:0 0;border:0;padding:0}.theme-toggle{background:linear-gradient(90deg, var(--sf-dark) 50%, var(--sf-card) 50%);border:1px solid var(--sf-line);cursor:pointer;border-radius:50%;flex-shrink:0;width:24px;height:24px;min-height:0;padding:0}.theme-toggle:hover{border-color:var(--sf-accent)}@media (hover:none){.theme-toggle{position:relative}.theme-toggle:after{content:"";position:absolute;inset:-10px}}.menu{position:relative}.menu>summary{cursor:pointer;border-radius:var(--radius-sm);border:1px solid var(--sf-line);background:var(--sf-card);color:var(--sf-dark);max-width:220px;transition:border-color var(--t) var(--tease), background-color var(--t) var(--tease);align-items:center;gap:10px;padding:6px 10px 6px 6px;list-style:none;display:inline-flex}.menu>summary::-webkit-details-marker{display:none}.menu>summary:hover{border-color:var(--sf-accent)}.menu>summary .avatar{background:var(--sf-accent);width:26px;height:26px;color:var(--sf-on-accent);border-radius:50%;flex-shrink:0;place-items:center;font-size:.72rem;font-weight:600;display:inline-grid}.menu>summary .who-line{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:var(--type-xs);flex:1;overflow:hidden}.menu>summary .chev{width:14px;height:14px;color:var(--sf-muted);transition:transform var(--t) var(--tease);flex-shrink:0}.menu[open]>summary{border-color:var(--sf-accent)}.menu[open]>summary .chev{transform:rotate(180deg)}.menu>.menu-body{z-index:20;background:var(--sf-card);border:1px solid var(--sf-line);border-radius:var(--radius-md);min-width:240px;box-shadow:var(--shadow-dropdown);font-size:var(--type-sm);flex-direction:column;gap:10px;padding:14px 16px;display:flex;position:absolute;top:calc(100% + 8px);right:0}.menu>.menu-body a:hover{text-underline-offset:4px;text-decoration:underline}.menu .pick{flex-direction:column;gap:8px;display:flex}.menu select{max-width:100%}.sheet{width:100%;max-width:none;padding:clamp(20px, 4vh, 36px) var(--gutter) 64px;min-width:0}@media (width>=760px){.shell{flex-direction:row}.side{z-index:5;background:var(--sf-frost);border-right:1px solid var(--sf-line);flex-flow:column;flex-shrink:0;align-self:flex-start;align-items:stretch;gap:0;width:clamp(212px,15vw,252px);height:100dvh;padding:20px 14px 16px;position:sticky;top:0}.home-dot{width:32px;height:32px}.side-head{border-bottom:1px solid var(--line-faint);padding:0 4px 16px}.brand{white-space:normal;font-size:1.02rem;line-height:1.25}.nav{flex:1;min-height:0;margin:16px -4px 0;padding:0 4px;overflow-y:auto}.account{border-top:1px solid var(--line-faint);margin-top:auto;margin-left:0;padding-top:12px}.menu{flex:100%}.menu>summary{justify-content:space-between;width:100%;max-width:100%}.menu>.menu-body{inset:auto auto calc(100% + 8px) 0}}.tabbar{display:none}@media (width<=759px){.side{padding-top:calc(18px + env(safe-area-inset-top,0px));padding-bottom:10px}.side .nav,.brand-block .kicker{display:none}.menu>summary{max-width:44px;padding:0 8px}.menu>summary .who-line,.menu>summary .chev{display:none}.account .theme-toggle{justify-content:center;width:44px;padding:0}.page-head{gap:8px;margin-bottom:14px;padding-bottom:10px}.page-head .inline{gap:8px}.page-head .inline .btn{padding:0 14px}h2{margin:20px 0 8px}.sheet{padding-bottom:calc(96px + env(safe-area-inset-bottom,0px))}.tabbar{left:12px;right:12px;bottom:calc(10px + env(safe-area-inset-bottom,0px));background:var(--sf-card);border:1px solid var(--sf-line);border-radius:var(--radius-round);box-shadow:var(--shadow-float);z-index:30;padding:0 6px;display:flex;position:fixed}.tabbar a,.tabbar summary{font-size:var(--type-label-lg);font-weight:var(--weight-label);text-transform:uppercase;letter-spacing:var(--tracking-label-sm);color:var(--sf-muted);cursor:pointer;flex:1;justify-content:center;align-items:center;min-height:44px;padding:13px 0;list-style:none;display:flex}.tabbar summary::-webkit-details-marker{display:none}.tabbar a[aria-current=page],.tabbar summary[aria-current=page]{color:var(--sf-accent-ink)}.tabbar a:active,.tabbar summary:active{background:var(--sf-frost);border-radius:var(--radius-round)}.tabbar .n{border-radius:var(--radius-round);background:var(--sf-accent);min-width:20px;color:var(--sf-on-accent);font-variant-numeric:tabular-nums;padding:0 6px;font-size:.72rem;line-height:20px}.tabbar details{flex:1;display:flex;position:relative}.tabbar details>div{background:var(--sf-card);border:1px solid var(--sf-line);border-radius:var(--radius-md);min-width:220px;max-width:min(78vw,320px);box-shadow:var(--shadow-dropdown);padding:6px 0;position:absolute;bottom:calc(100% + 10px);right:0}.tabbar details>div a{font-size:var(--type-md);color:var(--sf-dark);text-transform:none;letter-spacing:normal;overflow-wrap:anywhere;white-space:normal;min-height:0;padding:12px 16px;font-weight:400;display:block}.tabbar details>div a[aria-current=page]{color:var(--sf-accent-ink);font-weight:var(--weight-label)}.tabbar details>div form{padding:4px 16px 8px}}button,.btn,input,select,textarea{font:inherit;letter-spacing:inherit;color:var(--sf-dark)}button,.btn{min-height:var(--control);border-radius:var(--radius-sm);font-size:var(--type-sm);font-weight:var(--weight-label);letter-spacing:.01em;border:1px solid var(--sf-line);background:var(--sf-card);color:var(--sf-dark);cursor:pointer;white-space:nowrap;transition:background-color var(--t) var(--tease), border-color var(--t) var(--tease), color var(--t) var(--tease), box-shadow var(--t) var(--tease), transform var(--t) var(--tease), opacity var(--t) var(--tease);justify-content:center;align-items:center;gap:8px;padding:0 16px;display:inline-flex}button:hover,.btn:hover{border-color:var(--sf-accent);color:var(--sf-accent-ink);text-decoration:none}button:active,.btn:active{transform:scale(.98)}button.primary,.btn.primary{background:var(--sf-accent);border-color:var(--sf-accent);color:var(--sf-on-accent)}button.primary:hover,.btn.primary:hover{background:var(--sf-accent-hover);border-color:var(--sf-accent-hover);color:var(--sf-on-accent);box-shadow:var(--shadow-md)}button.warm{background:var(--sf-warm-fill);border-color:var(--sf-warm-fill);color:var(--sf-on-accent)}button.warm:hover{background:color-mix(in srgb, var(--sf-warm-fill) 88%, #000);border-color:color-mix(in srgb, var(--sf-warm-fill) 88%, #000);color:var(--sf-on-accent)}button.ghost,.btn.ghost{min-height:0;color:var(--sf-muted);white-space:normal;text-align:left;text-decoration:underline;-webkit-text-decoration-color:var(--sf-accent);text-decoration-color:var(--sf-accent);text-underline-offset:4px;background:0 0;border-color:#0000;padding:0;font-weight:400;transform:none}button.ghost:hover,.btn.ghost:hover{color:var(--sf-dark);box-shadow:none;border-color:#0000}button.ghost.danger{color:var(--sf-danger);-webkit-text-decoration-color:var(--sf-danger);text-decoration-color:var(--sf-danger)}button.ghost.danger:hover{color:var(--sf-danger)}button[aria-pressed=true]{background:var(--sf-accent);border-color:var(--sf-accent);color:var(--sf-on-accent)}button:disabled,.btn:disabled{opacity:.5;cursor:default;box-shadow:none;color:var(--sf-muted);transform:none}input,select,textarea{min-height:var(--control);border:1px solid var(--sf-line);border-radius:var(--radius-sm);background:var(--sf-card);color:var(--sf-dark);max-width:100%;transition:border-color var(--t) var(--tease), box-shadow var(--t) var(--tease);padding:0 12px}input:hover,select:hover,textarea:hover{border-color:color-mix(in srgb, var(--sf-accent) 35%, var(--sf-line))}input:focus,select:focus,textarea:focus{border-color:var(--sf-accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--sf-accent) 16%, transparent);outline:none}input[type=number]{width:100px}input::placeholder,textarea::placeholder{color:var(--sf-muted);opacity:.72}textarea{height:auto;padding:8px 12px;line-height:1.6}input[type=checkbox]{width:18px;height:18px;accent-color:var(--sf-accent);vertical-align:middle}label{align-items:center;gap:8px;display:inline-flex}kbd{font-family:var(--mono);background:var(--sf-frost);border:1px solid var(--sf-line);border-radius:var(--radius-sm);color:var(--sf-muted);padding:1px 6px;font-size:.7rem}button.primary kbd{background:color-mix(in srgb, var(--sf-on-accent) 16%, var(--sf-accent));color:var(--sf-on-accent);border-color:#0000}.badge{font-family:var(--mono);font-size:var(--type-label-sm);font-weight:var(--weight-label);text-transform:uppercase;letter-spacing:var(--tracking-label);color:var(--sf-accent-ink);background:var(--sf-frost);border-radius:var(--radius-sm);white-space:nowrap;padding:3px 8px;display:inline-block}.badge.new{color:var(--sf-warm);background:var(--sf-warm-bg)}.ico{vertical-align:-3px;width:16px;height:16px;color:var(--sf-muted);flex-shrink:0}.ico.ico-leaf{color:var(--sf-success)}.who{align-items:center;gap:10px;min-height:28px;display:inline-flex}.who .mark,.who .mark[aria-pressed=true]{border-radius:var(--radius-sm);min-height:0;font:inherit;letter-spacing:inherit;text-align:left;cursor:pointer;color:inherit;background:0 0;border:0;align-items:center;gap:10px;padding:0;font-weight:400;display:inline-flex;transform:none}.who .mark.busy{opacity:.5}.who .absent{color:var(--sf-danger)}.row.att-present{background:color-mix(in srgb, var(--sf-success) 8%, var(--sf-card))}.row.att-present .who .mark,.row.att-present .who .mark[aria-pressed=true]{color:var(--sf-muted)}.row.att-absent{background:color-mix(in srgb, var(--sf-danger) 8%, var(--sf-card))}.row.att-absent .who .mark{color:var(--sf-danger)}.who .glyph{border:1.5px solid var(--sf-line);background:var(--sf-card);color:#0000;width:22px;height:22px;min-height:0;box-shadow:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;padding:0;font-size:12px;line-height:1;display:inline-flex}@media (hover:hover){.who .mark:hover .glyph{border-color:var(--sf-success)}}.who .mark[aria-pressed=true] .glyph{background:var(--sf-success);border-color:var(--sf-success);color:var(--sf-on-accent)}.who .glyph.no{background:color-mix(in srgb, var(--sf-danger) 12%, var(--sf-card));border-color:var(--sf-danger);color:var(--sf-danger)}@media (hover:none),(width<=1279px){.who,.who .mark{min-height:44px}.who .glyph{width:32px;height:32px;font-size:14px}.actions button.ghost,.inline>button.ghost{min-height:44px;margin:-12px -8px;padding:12px 8px}.stepper>button,.stepper>.when,.seg>button{min-height:44px}.stepper>button{min-width:44px}.ico{width:20px;height:20px}}@media (width<=1279px){.who{gap:12px}}.cls{min-height:var(--row);border-bottom:1px solid var(--line-faint);text-align:left;width:100%;font-weight:400;font-size:inherit;cursor:pointer;white-space:normal;box-shadow:none;background:0 0;border-top:0;border-left:0;border-right:0;border-radius:0;grid-template-columns:88px 1fr 150px 90px 80px 90px;align-items:center;gap:8px;padding:0 16px;display:grid}.cls>*{min-width:0}.cls{transition:background-color var(--t-reveal) var(--tease), color var(--t-reveal) var(--tease)}@media (hover:hover){.cls:hover{background:var(--sf-frost)}}.cls.past{color:var(--sf-muted)}.cls .t{font-size:1.25rem}.cls.open{background:var(--sf-accent);color:var(--sf-on-accent)}.cls.open:hover{background:var(--sf-accent-hover)}.cls.open .dim,.cls.open .teacher,.cls.open .t{color:color-mix(in srgb, var(--sf-on-accent) 72%, var(--sf-accent))}.cls.open .t{color:var(--sf-on-accent)}.reveal{background:var(--sf-card);border-bottom:1px solid var(--sf-line)}.frame{background:var(--sf-card);border:1px solid var(--sf-line);border-radius:var(--radius-md);box-shadow:var(--shadow-md);animation:appear var(--t) var(--tease);margin:14px 0 10px;overflow:hidden}@keyframes appear{0%{opacity:0}}.frame>.head{background:var(--sf-accent);min-height:56px;color:var(--sf-on-accent);grid-template-columns:88px 1fr 150px 90px 80px 110px;align-items:center;gap:8px;padding:0 16px;display:grid}.frame>.head .t{font-size:1.6rem}.frame>.head .soon{color:var(--sf-on-accent);font-weight:var(--weight-name)}.frame>.head .muted,.frame>.head .dim{color:color-mix(in srgb, var(--sf-on-accent) 72%, var(--sf-accent))}.row{min-height:var(--row);border-bottom:1px solid var(--line-faint);transition:background-color var(--t) var(--tease);align-items:center;gap:8px;padding:0 16px;display:grid}@media (hover:hover){.row:hover{background:var(--sf-frost)}.row.sel:hover{background:var(--accent-tint)}}.row.sel .nr{color:var(--sf-accent-ink);font-weight:var(--weight-name);text-underline-offset:4px;text-decoration:underline;text-decoration-thickness:2px}.row.sub{background:var(--sf-frost);padding:10px 16px}.row.walkin{border-bottom:0;flex-direction:column;align-items:stretch;gap:8px;display:flex}.walkin .inline>input[type=text],.walkin .inline>input[type=email]{flex:160px;min-width:0}.walkin .inline>select{flex:0 auto}@media (width<=759px){.walkin .inline>input,.walkin .inline>input[type=text],.walkin .inline>input[type=email],.walkin .inline>select{flex-basis:100%}.walkin .inline>button.primary{width:100%;margin-left:0}}details.more>summary{cursor:pointer;color:var(--sf-muted);font-size:var(--type-sm);width:max-content}details.more>summary:hover{color:var(--sf-dark)}details.more[open]>summary{margin-bottom:8px}.row.tools{background:var(--sf-frost);border-bottom:0;flex-wrap:wrap;gap:12px 24px;padding:12px 16px;display:flex}.desk-rows{transition:background-color var(--t-move) var(--tease);grid-template-columns:1fr 300px auto;align-items:start;padding-top:8px;padding-bottom:8px}.desk-rows>:not(.stack){flex-wrap:wrap;align-items:center;gap:8px;min-height:28px;display:flex}.client-rows{grid-template-columns:250px 320px 90px 130px 1fr}.row .actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:12px;display:flex}.now{align-items:center;gap:10px;height:20px;margin:2px 0;display:flex}.now i{background:var(--sf-warm);flex:1;height:1px;display:block}.now span{color:var(--sf-warm-ink);font-size:.85rem}.day{font-weight:var(--weight-name);color:var(--sf-dark);justify-content:space-between;align-items:baseline;margin:18px 0 4px;display:flex}.day:first-child{margin-top:0}.inline{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.stack{flex-direction:column;gap:8px;display:flex}.field{text-align:left;flex-direction:column;align-items:stretch;gap:4px;display:flex}.field>span{font-family:var(--mono);font-size:var(--type-label-md);font-weight:var(--weight-label);text-transform:uppercase;letter-spacing:var(--tracking-label-sm);color:var(--sf-muted)}.inline.fields{align-items:flex-end}.inline.fields .field>span{color:var(--sf-muted)}.page-head{border-bottom:1px solid var(--sf-line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 20px;margin-bottom:18px;padding-bottom:14px;display:flex}.page-head>.page-title{flex-wrap:wrap;align-items:center;gap:8px 18px;display:flex}.page-head h2{margin:0}.seg{border:1px solid var(--sf-line);border-radius:var(--radius-sm);background:var(--sf-card);display:inline-flex;overflow:hidden}.seg>button{min-height:34px;box-shadow:none;color:var(--sf-muted);font-weight:var(--weight-label);background:0 0;border:0;border-radius:0;padding:0 14px}.seg>button+button{border-left:1px solid var(--sf-line)}@media (hover:hover){.seg>button:hover{color:var(--sf-dark);background:var(--sf-frost)}}.seg>button[aria-pressed=true]{background:var(--sf-accent);color:var(--sf-on-accent)}.stepper{border:1px solid var(--sf-line);border-radius:var(--radius-sm);background:var(--sf-card);align-items:center;display:inline-flex;overflow:hidden}.stepper>button{min-width:34px;min-height:34px;box-shadow:none;color:var(--sf-muted);background:0 0;border:0;border-radius:0;padding:0;font-size:20px;line-height:1;transform:none}@media (hover:hover){.stepper>button:hover{color:var(--sf-dark);background:var(--sf-frost)}}.stepper>button.reset{font-size:var(--type-sm);border-left:1px solid var(--sf-line);padding:0 12px}.stepper>.when{border-left:1px solid var(--sf-line);border-right:1px solid var(--sf-line);min-height:34px;font-size:var(--type-sm);font-weight:var(--weight-label);color:var(--sf-dark);white-space:nowrap;font-variant-numeric:tabular-nums;cursor:pointer;align-items:center;padding:0 12px;display:inline-flex;position:relative}@media (hover:hover){.stepper>.when:hover{background:var(--sf-frost)}}.stepper>.when:focus-within{box-shadow:inset 0 0 0 2px color-mix(in srgb, var(--sf-accent) 40%, transparent)}.stepper>.when input{opacity:0;cursor:pointer;border:0;width:100%;height:100%;min-height:0;padding:0;position:absolute;inset:0}nav.top{border-bottom:1px solid var(--sf-line);flex-wrap:wrap;align-items:baseline;gap:4px 12px;margin-bottom:16px;padding:10px 0;display:flex}nav.top .spacer{flex:1}.sub-rows .row{min-height:36px;padding:0}.cols{grid-template-columns:1.3fr 1fr 1fr;gap:32px;padding:16px;display:grid}@media (width<=1279px){.cls{grid-template-columns:92px 1fr 150px 80px 90px}.cls .t{font-size:1.35rem}.cls .dur{display:none}.frame>.head{grid-template-columns:92px 1fr 150px 80px 120px;min-height:60px}.frame>.head .t{font-size:1.7rem}.frame>.head .dur{display:none}.client-rows{grid-template-columns:200px 1fr 80px 110px auto}.cols{gap:24px}}@media (width<=1023px){.desk-rows{grid-template-columns:1fr auto;row-gap:6px;padding:10px 12px}.desk-rows>:nth-child(2){grid-column:1/-1}}@media (width<=759px){.cls{grid-template-columns:92px 1fr 56px;min-height:56px;padding:8px 0}.cls .teacher,.cls .price{display:none}.frame>.head{grid-template-columns:92px 1fr;min-height:64px;padding:8px 12px}.frame>.head .teacher,.frame>.head .price{display:none}.client-rows{grid-template-columns:1fr auto;row-gap:4px;padding:10px 12px}.client-rows>:nth-child(2),.client-rows>:nth-child(5){grid-column:1/-1}.cols{grid-template-columns:1fr;gap:20px;padding:12px}.row.tools{padding:12px}}.keys{font-size:var(--type-xs);color:var(--sf-muted);flex-wrap:wrap;gap:18px;margin-top:24px;display:flex}@media (width<=1279px){.keys .key{display:none}}.subnav{border:1px solid var(--sf-line);border-radius:var(--radius-md);background:color-mix(in srgb, var(--sf-frost) 70%, var(--sf-card));flex-wrap:wrap;gap:2px 4px;margin:0 0 20px;padding:4px;display:flex}.subnav a{border-radius:var(--radius-sm);font-family:var(--mono);font-size:.7rem;font-weight:var(--weight-label);text-transform:uppercase;letter-spacing:.07em;color:var(--sf-muted);transition:color var(--t) var(--tease), background-color var(--t) var(--tease), border-color var(--t) var(--tease);border:1px solid #0000;align-items:center;padding:8px 16px;display:inline-flex}.subnav a:hover{color:var(--sf-dark);background:var(--sf-card);text-decoration:none}.subnav a[aria-current=page]{color:var(--sf-dark);background:var(--sf-card);border-color:var(--sf-line);box-shadow:var(--shadow-sm)}.meter{align-items:center;gap:6px;min-width:0;display:inline-flex}.meter i{border-radius:var(--radius-round);background:var(--line-faint);flex-shrink:0;width:40px;height:3px;display:block;position:relative;overflow:hidden}.meter i:before{content:"";width:var(--fill,0%);border-radius:inherit;background:var(--sf-accent);transition:width var(--t-move) var(--tease);position:absolute;inset:0 auto 0 0}.meter.hi i:before,.meter.full i:before{background:var(--sf-warm-fill)}.meter.full .mono{color:var(--sf-warm-ink);font-weight:var(--weight-label)}.cal{background:var(--sf-card);border:1px solid var(--sf-line);border-radius:var(--radius-md);grid-template-columns:48px repeat(7,1fr);margin:12px 0 8px;display:grid;overflow:hidden}.cal.day{grid-template-columns:48px repeat(var(--cols), 1fr)}.cal .wt{grid-template-rows:repeat(var(--rows), 14px);padding-top:28px;display:grid}.cal .wt span{text-align:right;color:var(--sf-muted);grid-column:1;padding:2px 8px 0 0;font-size:11px}.cal .wd{border-left:1px solid var(--line-faint);flex-direction:column;min-width:0;display:flex}.cal .wd.closed{background:var(--sf-frost)}.cal .wh{height:28px;font-size:12px;font-weight:var(--weight-name);color:var(--sf-dark);border-bottom:1px solid var(--line-faint);align-items:baseline;gap:6px;padding:4px 8px 0;display:flex}.cal .wd.today .wh{color:var(--sf-accent-ink)}.cal .wg{grid-template-rows:repeat(var(--rows), 14px);flex:1;grid-auto-columns:1fr;padding:0 2px;display:grid}.cal .wb{background:var(--accent-tint);border:1px solid var(--line-faint);border-radius:var(--radius-sm);text-align:left;white-space:normal;cursor:pointer;min-width:0;height:auto;box-shadow:none;transition:background-color var(--t) var(--tease), border-color var(--t) var(--tease);margin:1px;padding:3px 6px;font-size:12px;font-weight:400;line-height:1.35;display:block;overflow:hidden}@media (hover:hover){.cal .wb:hover{border-color:var(--sf-accent)}}.cal .wb[aria-pressed=true]{background:var(--accent-tint);color:inherit;border-color:var(--sf-accent)}.cal .wb .t{font-weight:500}.cal .wb>.dim{display:block}.cal .wb.past{color:var(--sf-muted);background:var(--sf-card)}.cal .wb.off{color:var(--sf-muted);background:var(--sf-card);border-style:dashed;text-decoration:line-through}.cal .cal-now{border-top:1px solid var(--sf-warm);z-index:1;pointer-events:none;grid-column:1/-1;height:0}@media (width<=759px){.cal{background:0 0;border:0;border-radius:0;display:block;overflow:visible}.cal .wt,.cal .cal-now{display:none}.cal .wd{border-left:0}.cal .wh{height:auto;font-size:inherit;border-bottom:0;padding:14px 0 4px}.cal .wg{flex-direction:column;gap:6px;padding:0;display:flex}.cal .wb{font-size:inherit;margin:0;padding:8px 10px}}.page{width:100%;max-width:1080px;padding:clamp(20px, 4vh, 36px) var(--gutter) 64px;margin:0 auto}.page.narrow{background:var(--sf-card);border:1px solid var(--sf-line);border-radius:var(--radius-md);max-width:26rem;box-shadow:var(--shadow-sm);margin:9vh auto 0;padding:28px 28px 24px}.page.narrow input{width:100%}.page.narrow .card{border:0;margin:12px 0 8px;padding:0}table{border-collapse:collapse;background:0 0;width:100%}.scroll{background:var(--sf-card);border:1px solid var(--sf-line);border-radius:var(--radius-md);margin:0 0 16px;padding:4px 8px 6px;overflow-x:auto}.scroll tbody tr:last-child>td{border-bottom:0}th,td{text-align:left;border-bottom:1px solid var(--line-faint);vertical-align:top;padding:10px 12px}th{font-family:var(--mono);font-weight:var(--weight-label);color:var(--sf-muted);font-size:var(--type-label-sm);text-transform:uppercase;letter-spacing:var(--tracking-label-sm);border-bottom-color:var(--sf-line)}@media (width<=759px){.stackrows thead{display:none}.stackrows tr{border-bottom:1px solid var(--sf-line);padding:10px 0;display:block}.stackrows tbody tr:last-child{border-bottom:0}.stackrows td{border:0;padding:2px 0;display:block}.stackrows td:before{content:attr(data-th);font-family:var(--mono);font-size:var(--type-label-md);font-weight:var(--weight-label);text-transform:uppercase;letter-spacing:var(--tracking-label-sm);color:var(--sf-muted);margin-right:8px;display:inline-block}.stackrows td:empty{display:none}.stackrows button{white-space:normal;text-align:left}}form.inline{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.card{background:var(--sf-card);border:1px solid var(--sf-line);border-radius:var(--radius-md);margin-bottom:12px;padding:14px 16px}.panel{background:var(--sf-card);border:1px solid var(--sf-line);border-radius:var(--radius-md);margin:0 0 16px;padding:6px 0 8px}.panel>.day,.panel>p,.panel>h3{padding:0 16px}.panel>.now{margin:2px 16px}.panel>.row:last-child,.panel>.cls:last-child{border-bottom:0}.panel>.frame{margin-left:12px;margin-right:12px}.grid{grid-template-columns:repeat(auto-fit,minmax(19rem,1fr));gap:12px;display:grid}code{font-family:var(--mono);background:var(--sf-frost);border-radius:var(--radius-sm);padding:0 4px;font-size:.9em}pre{font-family:var(--mono);font-size:12px;overflow-x:auto}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}:root{--editing:var(--sf-warm);--editing-foreground:#fff}.cennik-doc>h2{margin:0 0 8px;font-size:1.05rem}.cennik-doc>.panel>p{padding:0 16px}.cennik-bar{flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 12px;display:flex}.cennik-list{flex-direction:column;display:flex}.cennik-row{border-bottom:1px solid var(--line-faint);align-items:baseline;gap:4px 12px;padding:10px 16px;display:grid}.cennik-row:last-child{border-bottom:0}.cennik-row.termin{grid-template-columns:minmax(9rem,1.4fr) 7rem 7rem 7rem 5rem 5rem}.cennik-row.product{grid-template-columns:minmax(9rem,1.4fr) 6rem 6.5rem 4.5rem 5.5rem 7rem 6rem 4.5rem}.cennik-row.product.archived .who{color:var(--text-dim);font-style:italic}.cennik-row.item{grid-template-columns:minmax(8rem,1fr) 6rem 6rem minmax(8rem,1.2fr) 4rem}.cennik-row .who,.cennik-row .cell{min-width:0}.cennik-row .cell.num{text-align:right;font-variant-numeric:tabular-nums}.cennik-row .cell.bool{text-align:center}.cennik-row .dim{color:var(--text-dim)}.cennik-row input[type=checkbox]{accent-color:var(--editing)}.cennik-list .node-gap{margin:0}@media (width<=1023px){.cennik-row{grid-template-columns:1fr 1fr!important}.cennik-row .who{grid-column:1/-1}}.lp-doc{max-width:60rem;margin:0 auto}.lp-header h1{font-family:var(--font-display);font-weight:400;font-size:var(--type-subtitle);margin:0;line-height:1.15}.lp-header .muted{margin:4px 0 0}.lp-columns{grid-template-columns:1fr 16rem;align-items:start;gap:32px;display:grid}.lp-sections{flex-direction:column;gap:28px;display:flex}.lp-section>h2{margin:0 0 10px;font-size:1.05rem}.lp-move{gap:4px;margin-left:8px;display:inline-flex}.lp-move button{border:1px solid var(--border,#00000026);color:var(--text-dim);border-radius:var(--radius-sm,6px);font-size:var(--type-sm);cursor:pointer;background:0 0;padding:0 6px}.lp-move button:disabled{opacity:.35;cursor:default}.lp-paragraphs{flex-direction:column;gap:10px;display:flex}.lp-paragraph p{margin:0}.lp-photos{grid-template-columns:repeat(auto-fill,minmax(12rem,1fr));gap:12px;display:grid}.lp-photo img{aspect-ratio:4/3;object-fit:cover;border-radius:var(--radius-md,8px);background:var(--bg-inset,#0000000d);width:100%;display:block}.lp-photo .lp-alt{font-size:var(--type-md);color:var(--text-dim);margin:4px 0 0}.lp-add-photo{border:1px dashed var(--line-faint);cursor:pointer;font-size:var(--type-md);color:var(--text-dim);border-radius:999px;margin-top:10px;padding:6px 14px;display:inline-block}.lp-add-photo:hover{border-color:var(--editing);color:var(--editing)}.lp-notes{white-space:pre-line;margin:0}.lp-contact{border:1px solid var(--line-faint);border-radius:var(--radius-md,8px);font-size:var(--type-md);flex-direction:column;gap:8px;padding:14px 16px;display:flex}.lp-contact p{justify-content:space-between;gap:12px;margin:0;display:flex}.lp-k{color:var(--text-dim)}.lp-aside{position:sticky;top:24px}@media (width<=899px){.lp-columns{grid-template-columns:1fr}.lp-aside{position:static}}@media (hover:none){.nav a{min-height:44px}.nav .nav-sub a{min-height:40px;padding-top:8px;padding-bottom:8px}.menu>summary{min-height:44px}.theme-toggle:after{content:"";position:absolute;inset:-10px}input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=hidden]),select,textarea{font-size:16px}button.ghost,.btn.ghost{min-height:44px;margin:-12px -8px;padding:12px 8px}.stepper>button,.stepper>.when,.seg>button{min-height:44px}.stepper>button{min-width:44px}button,.btn,.cls,.tabbar a,.tabbar summary,.seg>button,.stepper>button,.wb{-webkit-tap-highlight-color:transparent;touch-action:manipulation}}
