:root{--ink:#16225a;--ink-soft:#2c3b7a;--paper:#f6f5f1;--card:#fff;--line:#dcdde6;--text:#1b1f33;--muted:#646a85;--accent:#3550c4;--accent-ink:#fff;--good:#1f7a4d;--good-bg:#e3f3ea;--warn:#9a5b00;--warn-bg:#fdf0d9;--bad:#b3261e;--bad-bg:#fbe4e2;--neutral-bg:#e9ecf7;--font-display:"Cormorant Garamond","Georgia",serif;--font-body:"Manrope",system-ui,-apple-system,"Segoe UI",sans-serif;--radius:10px;color-scheme:light}@media (prefers-color-scheme:dark){:root{--ink:#0f1638;--ink-soft:#1d2858;--paper:#12141f;--card:#1b1e2c;--line:#2d3146;--text:#e8e9f2;--muted:#9a9fb8;--accent:#8aa0ff;--accent-ink:#0d1230;--good:#6fd3a0;--good-bg:#183528;--warn:#f2c46b;--warn-bg:#3a2c12;--bad:#ff8f87;--bad-bg:#3d1b19;--neutral-bg:#252a40;color-scheme:dark}}*{box-sizing:border-box}body,html{margin:0}body{background:var(--paper);color:var(--text);font-family:var(--font-body);font-size:15px;line-height:1.5}a{color:var(--accent)}h1,h2,h3{font-weight:600;line-height:1.2;text-wrap:balance;margin:0}h1{font-family:var(--font-display);font-size:2.2rem;letter-spacing:.01em}h2{font-size:1.05rem}h3{font-size:.95rem}p{margin:0}.eyebrow{font-family:var(--font-display);font-style:italic;font-size:1.15rem;color:var(--accent);margin-bottom:2px}.muted{color:var(--muted)}.small{font-size:.85rem}.num{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap}.right{text-align:right}.topbar{background:var(--ink);color:#fff;padding-top:env(safe-area-inset-top,0);position:-webkit-sticky;position:sticky;top:0;z-index:10}.topbar-inner{display:flex;flex-wrap:wrap;align-items:center;gap:8px 24px;padding:10px max(16px,env(safe-area-inset-right,0px)) 10px max(16px,env(safe-area-inset-left,0px));max-width:1280px;margin:0 auto}.brand{color:#fff;text-decoration:none;font-weight:600;letter-spacing:.04em;text-transform:uppercase;font-size:.8rem}.brand-script{font-family:var(--font-display);font-style:italic;text-transform:none;font-size:1.35rem;letter-spacing:0}.nav{display:flex;flex-wrap:wrap;gap:2px;flex:1 1}.nav-link{color:#dfe3f7;text-decoration:none;padding:6px 10px;border-radius:6px;font-size:.9rem;display:inline-flex;align-items:center;gap:6px}.nav-link:focus-visible,.nav-link:hover{background:hsla(0,0%,100%,.12);color:#fff}.badge{background:#f2c46b;color:#2a1d00;border-radius:999px;font-size:.72rem;font-weight:700;padding:0 7px;min-width:20px;text-align:center}.who{display:flex;align-items:center;gap:10px;font-size:.8rem;color:#c8cdea}.who-role{text-transform:uppercase;letter-spacing:.06em;font-size:.7rem}@media (max-width:720px){.who-email{display:none}}.page{max-width:1280px;margin:0 auto;padding-block:24px 64px;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));display:grid;grid-gap:24px;gap:24px}.page-head{justify-content:space-between;align-items:flex-end;gap:12px}.page-actions,.page-head{display:flex;flex-wrap:wrap}.page-actions{gap:8px}.grid{grid-gap:16px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.grid,.grid-2{display:grid;gap:16px}.grid-2{grid-gap:16px;grid-template-columns:repeat(auto-fit,minmax(380px,1fr))}@media (max-width:480px){.grid-2{grid-template-columns:1fr}}.stack{display:grid;grid-gap:10px;gap:10px;align-content:start}.row{align-items:center}.row,.spread{display:flex;flex-wrap:wrap;gap:8px}.spread{justify-content:space-between;align-items:baseline}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:16px;display:grid;grid-gap:12px;gap:12px;min-width:0}.card-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px;flex-wrap:wrap}.stat{display:grid;grid-gap:2px;gap:2px}.stat-value{font-family:var(--font-display);font-size:2rem;font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;line-height:1.1}.stat-label{color:var(--muted);font-size:.85rem}.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--radius);background:var(--card)}table{width:100%;border-collapse:collapse}td,th{padding:9px 12px;text-align:left;border-bottom:1px solid var(--line);vertical-align:top}th{font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:600;background:var(--paper)}tr:last-child td{border-bottom:0}tfoot td{font-weight:700;background:var(--paper)}.pill{display:inline-block;border-radius:999px;padding:1px 9px;font-size:.78rem;font-weight:600;white-space:nowrap}.pill.good{background:var(--good-bg);color:var(--good)}.pill.warn{background:var(--warn-bg);color:var(--warn)}.pill.bad{background:var(--bad-bg);color:var(--bad)}.pill.neutral{background:var(--neutral-bg);color:var(--ink-soft)}.pill.muted{background:var(--paper);color:var(--muted);border:1px solid var(--line)}@media (prefers-color-scheme:dark){.pill.neutral{color:var(--text)}}.balance{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:700}.balance.good{color:var(--good)}.balance.warn{color:var(--warn)}.balance.bad{color:var(--bad)}label{font-size:.85rem;font-weight:600;color:var(--muted)}input,select,textarea{font:inherit;color:var(--text);background:var(--card);border:1px solid var(--line);border-radius:8px;padding:8px 10px;width:100%;min-width:0}.btn:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.form-grid{display:grid;grid-gap:10px 12px;gap:10px 12px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));align-items:end}.field{display:grid;grid-gap:4px;gap:4px;min-width:0}.check{display:flex;align-items:center;gap:8px;font-weight:500;color:var(--text)}.check input{width:auto}.code-input{font-size:1.5rem;letter-spacing:.3em;text-align:center;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.btn{font:inherit;font-weight:600;font-size:.88rem;border-radius:8px;padding:8px 14px;border:1px solid var(--line);background:var(--card);color:var(--text);cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.btn.primary,.btn:hover{border-color:var(--accent)}.btn.primary{background:var(--accent);color:var(--accent-ink)}.btn.good{background:var(--good-bg);border-color:transparent;color:var(--good)}.btn.ghost{background:transparent;border-color:hsla(0,0%,100%,.3);color:inherit}.btn.small{padding:4px 10px;font-size:.8rem}.btn.danger{color:var(--bad)}details.more>summary{cursor:pointer;list-style:none}details.more>summary::-webkit-details-marker{display:none}details.more[open]>summary{margin-bottom:6px}.status-menu{display:grid;grid-gap:4px;gap:4px}.status-menu .btn{justify-content:flex-start;white-space:normal;text-align:left}.alert{background:var(--bad-bg);color:var(--bad)}.alert,.notice{padding:10px 14px;border-radius:8px}.notice{background:var(--good-bg);color:var(--good)}.hint{background:var(--neutral-bg);padding:10px 14px;border-radius:8px;font-size:.9rem}.empty{color:var(--muted);padding:18px;text-align:center}form[data-busy] button[type=submit]{opacity:.6;cursor:wait;pointer-events:none}.login{min-height:100vh;display:grid;place-items:center;padding-block:24px;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));background:var(--ink)}.login-card{background:var(--card);border-radius:14px;padding:32px 28px;width:100%;max-width:400px}.login-card,.student-class{display:grid;grid-gap:14px;gap:14px}.big-balance{font-family:var(--font-display);font-size:3.4rem;line-height:1;font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.pay-options{display:flex;flex-wrap:wrap;gap:8px}.pay-options form{flex:1 1 140px}.pay-options .btn{width:100%;justify-content:center;flex-direction:column;gap:0;padding:10px}.pay-options .btn small{font-weight:500;opacity:.85}.list{display:grid}.list-item{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center}.list-item:last-child{border-bottom:0}@media (prefers-reduced-motion:reduce){*{transition:none!important}}details>summary{list-style:none;cursor:pointer}details>summary::-webkit-details-marker{display:none}details>summary h2,details>summary h3{display:inline}details>summary:after{content:"＋";float:right;color:var(--muted)}details[open]>summary:after{content:"−"}details>summary:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:6px}.sched-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--radius);background:var(--card)}.sched{display:grid;grid-template-columns:52px repeat(7,minmax(110px,1fr));min-width:820px}.sched-corner,.sched-dayhead{position:-webkit-sticky;position:sticky;top:0;background:var(--paper);border-bottom:1px solid var(--line);padding:8px;font-size:.85rem;z-index:2}.sched-dayhead.is-today{color:var(--accent);box-shadow:inset 0 -2px 0 var(--accent)}.sched-hours{border-right:1px solid var(--line)}.sched-hour{font-size:.72rem;color:var(--muted);text-align:right;padding:2px 6px 0 0;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.sched-col{position:relative;border-left:1px solid var(--line)}.sched-col.is-today{background:color-mix(in srgb,var(--accent) 5%,transparent)}.sched-line{position:absolute;left:0;right:0;border-top:1px dashed var(--line)}.sched-event{position:absolute;left:3px;right:3px;border-radius:6px;padding:3px 6px;background:var(--tc);color:#fff;font-size:.75rem;line-height:1.25;overflow:hidden;box-shadow:0 1px 2px rgba(0,0,0,.15);cursor:default}.sched-event.is-unknown{background:var(--card);color:var(--text);border:1.5px dashed var(--tc)}.sched-event.is-unmarked{outline:2px solid var(--warn);outline-offset:-2px}.sched-event.is-cancelled{opacity:.45;text-decoration:line-through}.sched-time{font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.sched-title{word-break:break-word}.sched-flag{position:absolute;top:2px;right:4px;font-weight:800;background:var(--warn-bg);color:var(--warn);border-radius:999px;width:16px;height:16px;display:grid;place-items:center;font-size:.7rem}.sched-dot{width:10px;height:10px;border-radius:50%;display:inline-block}.fin-bar{height:8px;background:var(--neutral-bg);overflow:hidden}.fin-bar,.fin-bar>span{display:block;border-radius:999px}.fin-bar>span{height:100%;background:var(--accent)}:root{--s1:#3550c4;--s2:#c2581f}@media (prefers-color-scheme:dark){:root{--s1:#7088f0;--s2:#cf7a42}}.chart{margin:0;display:grid;grid-gap:8px;gap:8px}.chart-scroll{overflow-x:auto}.chart-svg{width:100%;min-width:480px;height:auto;display:block}.chart-legend{display:flex;gap:16px;flex-wrap:wrap;font-size:.85rem;color:var(--muted)}.chart-legend span{display:inline-flex;align-items:center;gap:6px}.sw{width:12px;height:12px;border-radius:3px;display:inline-block}.chart-bar.s1,.sw.s1{background:var(--s1);fill:var(--s1)}.chart-bar.s2,.sw.s2{background:var(--s2);fill:var(--s2)}.chart-grid{stroke:var(--line);stroke-width:1}.chart-base{stroke:var(--muted);stroke-width:1}.chart-axis{fill:var(--muted);font-size:11px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.chart-hit{fill:transparent}.chart-col:hover .chart-hit{fill:var(--neutral-bg)}.chart-col:hover .chart-bar{opacity:.85}.statement{max-width:960px;margin:0 auto;display:grid;grid-gap:20px;gap:20px;padding-block:24px 48px;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}.statement-actions{gap:8px}.statement-actions,.statement-head{display:flex;justify-content:space-between}.statement-head{gap:16px;flex-wrap:wrap;align-items:flex-end;border-bottom:2px solid var(--ink);padding-bottom:16px}.statement-total{font-family:var(--font-display);font-size:2.4rem;font-weight:600;line-height:1;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}@media print{.no-print,.topbar{display:none!important}body{background:#fff;color:#000}.table-wrap{border:0;overflow:visible}th{background:#f2f2f2!important}}.page-loading{display:grid;grid-gap:12px;gap:12px;justify-items:center;padding:64px 16px}.page-loading-bar{width:160px;height:4px;border-radius:999px;background:var(--neutral-bg);position:relative;overflow:hidden}.page-loading-bar:after{content:"";position:absolute;inset:0;width:40%;background:var(--accent);border-radius:999px;animation:loadslide 1s ease-in-out infinite}@keyframes loadslide{0%{transform:translateX(-100%)}to{transform:translateX(250%)}}@media (prefers-reduced-motion:reduce){.page-loading-bar:after{animation:none;width:100%;opacity:.4}}.nav-link.is-active{background:hsla(0,0%,100%,.16);color:#fff;font-weight:600}.subnav{order:1;flex-basis:100%;display:flex;flex-wrap:wrap;gap:4px;border-top:1px solid hsla(0,0%,100%,.12);padding-top:8px}.subnav-link{color:#c8cdea;text-decoration:none;padding:4px 10px;border-radius:999px;font-size:.85rem;display:inline-flex;align-items:center;gap:6px}.subnav-link:focus-visible,.subnav-link:hover{color:#fff;background:hsla(0,0%,100%,.1)}.subnav-link.is-active{background:#fff;color:var(--ink);font-weight:600}.stu-stats{display:grid;grid-gap:10px;gap:10px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.stu-stat{display:grid;grid-gap:2px;gap:2px;padding:12px 14px;border-radius:var(--radius);background:var(--card);border-left:1px solid var(--line);color:var(--text);text-decoration:none;border:1px solid var(--line);border-left-width:4px}a.stu-stat:hover{border-color:var(--accent)}.stu-stat.is-active{box-shadow:0 0 0 2px var(--accent) inset}.stu-stat.bad{border-left-color:var(--bad)}.stu-stat.warn{border-left-color:var(--warn)}.stu-stat.good{border-left-color:var(--good)}.stu-stat-value{font-family:var(--font-display);font-size:1.6rem;font-weight:600;line-height:1.1;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.stu-stat.bad .stu-stat-value{color:var(--bad)}.stu-stat.warn .stu-stat-value{color:var(--warn)}.stu-stat.good .stu-stat-value{color:var(--good)}.stu-stat-label{font-size:.8rem;color:var(--muted)}.stu-filters{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.stu-filters input[name=q]{flex:1 1 220px}.stu-table td{vertical-align:middle}.stu-table tr:hover td{background:color-mix(in srgb,var(--accent) 4%,transparent)}.stu-table tr.is-paused td{opacity:.6}.stu-name{font-weight:600;color:var(--text);text-decoration:none}.stu-name:hover{color:var(--accent);text-decoration:underline}.sort-link{color:inherit;text-decoration:none}.sort-link.is-active,.sort-link:hover{color:var(--accent)}.fmt{font-size:.78rem;padding:2px 8px;border-radius:999px;background:var(--neutral-bg);white-space:nowrap}.fmt-pair{background:color-mix(in srgb,#b4507a 14%,transparent)}.fmt-group{background:color-mix(in srgb,#1f7a6d 14%,transparent)}.fmt-premium{background:color-mix(in srgb,#a8661b 16%,transparent)}.bal-cell{display:inline-grid;justify-items:end;gap:2px}.bal-pill{font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;padding:3px 10px;border-radius:999px;white-space:nowrap;font-size:.85rem}.bal-pill.bad{background:var(--bad-bg);color:var(--bad)}.bal-pill.warn{background:var(--warn-bg);color:var(--warn)}.bal-pill.good{background:var(--good-bg);color:var(--good)}.bal-money{font-size:.8rem;color:var(--muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap}.bal-money.is-debt{color:var(--bad);font-weight:600}details.sched-event{padding:0}details.sched-event>summary{list-style:none;cursor:pointer;padding:3px 6px;height:100%;display:block}details.sched-event>summary::-webkit-details-marker{display:none}details.sched-event>summary:after{content:none}details.sched-event>summary:hover{filter:brightness(1.08)}details.sched-event[open]{overflow:visible;z-index:5;box-shadow:0 0 0 2px var(--text)}.sched-auto{position:absolute;bottom:2px;right:4px;font-size:.62rem;opacity:.85;text-transform:uppercase;letter-spacing:.04em}.sched-pop{position:absolute;top:calc(100% + 4px);left:0;width:240px;z-index:6;background:var(--card);color:var(--text);border:1px solid var(--line);border-radius:10px;box-shadow:0 8px 24px rgba(0,0,0,.18);padding:10px;display:grid;grid-gap:8px;gap:8px;text-decoration:none;cursor:default;white-space:normal}.sched-pop.to-left{left:auto;right:0}.sched-pop-head{display:grid;grid-gap:2px;gap:2px}.sched-pop-actions{display:grid;grid-gap:4px;gap:4px}.sched-pop-actions .btn{justify-content:flex-start;text-align:left;width:100%}.btn.ghost-plain{background:transparent;border-color:transparent;color:var(--muted)}details.sched-event.is-cancelled{opacity:1;text-decoration:none}details.sched-event.is-cancelled>summary{opacity:.45;text-decoration:line-through}.sched-pop{font-size:.85rem;line-height:1.35}.sched-event{color:#1b1f33;box-shadow:0 1px 2px rgba(0,0,0,.12)}.teacher-swatch{width:16px;height:16px;border-radius:50%;display:inline-block;border:1px solid rgba(0,0,0,.12)}.color-picker{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.color-dot{width:26px;height:26px;border-radius:50%;border:2px solid transparent;cursor:pointer;padding:0;box-shadow:inset 0 0 0 1px rgba(0,0,0,.1)}.color-dot:hover{transform:scale(1.1)}.color-dot.is-active{border-color:var(--text);box-shadow:0 0 0 2px var(--card) inset}.color-dot.is-taken:not(.is-active){opacity:.35}.sched-dot{border:1px solid rgba(0,0,0,.12)}.money-strip{display:grid;grid-gap:10px;gap:10px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.money-tile{display:grid;grid-gap:2px;gap:2px;padding:14px 16px;border-radius:var(--radius);background:var(--card);border:1px solid var(--line)}.money-tile.good{background:var(--good-bg);border-color:transparent}.money-tile.good .money-value{color:var(--good)}.money-tile.warn{background:var(--warn-bg);border-color:transparent}.money-tile.warn .money-value{color:var(--warn)}.money-value{font-family:var(--font-display);font-size:1.7rem;font-weight:600;line-height:1.1;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.money-label{font-size:.82rem;color:var(--muted)}.team-grid{display:grid;grid-gap:16px;gap:16px;grid-template-columns:repeat(auto-fill,minmax(340px,1fr))}@media (max-width:420px){.team-grid{grid-template-columns:1fr}}.team-card{border-top:6px solid var(--tc)}.team-head{display:flex;gap:12px;align-items:center}.teacher-swatch.big{width:34px;height:34px;flex:none}.team-name{color:var(--text);text-decoration:none}.team-name:hover{color:var(--accent);text-decoration:underline}.team-facts{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:6px;gap:6px}.team-facts>div{display:grid;background:var(--paper);border-radius:8px;padding:8px;text-align:center}.team-facts strong{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-size:1rem}.team-facts span{font-size:.72rem;color:var(--muted)}.team-pay{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;padding:10px 12px;border-radius:8px;background:color-mix(in srgb,var(--tc) 22%,var(--card))}.team-pay>div{display:grid}.team-pay-value{font-family:var(--font-display);font-size:1.5rem;font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.teacher-link{color:inherit;text-decoration:none;border-bottom:1px dotted}.teacher-link:hover{color:var(--accent)}.hero{position:relative;overflow:hidden;border-radius:18px;padding:22px 22px 18px;background:linear-gradient(135deg,color-mix(in srgb,var(--tc) 70%,var(--card)) 0,color-mix(in srgb,var(--tc) 22%,var(--card)) 100%);color:var(--text);display:grid;grid-gap:18px;gap:18px;isolation:isolate}.hero:after,.hero:before{content:"";position:absolute;border-radius:50%;z-index:-1;pointer-events:none;background:color-mix(in srgb,var(--tc) 45%,transparent)}.hero:before{width:260px;height:260px;right:-70px;top:-110px}.hero:after{width:140px;height:140px;right:140px;bottom:-80px;opacity:.6}.hero-top{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;align-items:flex-start}.hero-eyebrow{font-style:italic;font-size:1.2rem;opacity:.8}.hero-eyebrow,.hero-title{font-family:var(--font-display)}.hero-title{font-size:clamp(2rem,5vw,2.8rem);line-height:1.05;font-weight:600}.hero-sub{margin-top:4px;color:color-mix(in srgb,var(--text) 75%,transparent)}.hero-aside{display:flex;gap:8px;flex-wrap:wrap}.hero-tiles{display:grid;grid-gap:10px;gap:10px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.hero-tile{display:grid;grid-gap:2px;gap:2px;padding:12px 14px;border-radius:12px;background:color-mix(in srgb,var(--card) 72%,transparent);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.hero-tile-value{font-family:var(--font-display);font-size:1.6rem;font-weight:600;line-height:1.1;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.hero-tile-label{font-size:.8rem;color:var(--muted)}.hero-tile.good .hero-tile-value{color:var(--good)}.hero-tile.warn .hero-tile-value{color:var(--warn)}.hero-tile.bad .hero-tile-value{color:var(--bad)}.palier{display:grid;grid-gap:6px;gap:6px}.palier-track{position:relative;height:10px;border-radius:999px;background:var(--neutral-bg)}.palier-fill{position:absolute;inset:0 auto 0 0;border-radius:999px;background:linear-gradient(90deg,color-mix(in srgb,var(--tc,var(--accent)) 60%,var(--accent)),var(--tc,var(--accent)))}.palier-tick{position:absolute;top:-3px;bottom:-3px;width:2px;background:var(--text);opacity:.35;border-radius:2px}.palier-legend{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;font-size:.82rem}.section-title{display:flex;align-items:center;gap:10px}.section-title:before{content:"";width:10px;height:10px;border-radius:3px;background:var(--tc,var(--accent));transform:rotate(45deg);flex:none}.pay-card{border-top:6px solid var(--tc,var(--line))}.pay-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;flex-wrap:wrap}.pay-total{font-family:var(--font-display);font-size:2rem;font-weight:600;line-height:1;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;text-align:right}.pay-chips{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:8px;gap:8px}.pay-chip{border-radius:10px;padding:8px 10px;background:color-mix(in srgb,var(--tc,var(--accent)) 16%,var(--card));display:grid;grid-gap:1px;gap:1px}.pay-chip.is-empty{opacity:.5}.pay-chip strong{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.pay-chip span{font-size:.75rem;color:var(--muted)}@media (max-width:480px){.pay-chips{grid-template-columns:1fr}}.pay-grid{display:grid;grid-gap:16px;gap:16px;grid-template-columns:repeat(auto-fill,minmax(420px,1fr))}@media (max-width:520px){.pay-grid{grid-template-columns:1fr}}.steps{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:8px;gap:8px;counter-reset:step}@media (max-width:640px){.steps{grid-template-columns:1fr 1fr}}.step{display:grid;grid-gap:2px;gap:2px;padding:10px 12px;border-radius:12px;background:color-mix(in srgb,var(--card) 72%,transparent);font-size:.85rem}.step strong:before{counter-increment:step;content:counter(step);display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;margin-right:6px;background:var(--neutral-bg);font-size:.75rem}.step.is-done strong:before{content:"✓";background:var(--good);color:#fff}.step.is-current{box-shadow:0 0 0 2px var(--accent) inset}.step span{color:var(--muted);font-size:.78rem}.mini-cards{display:grid;grid-gap:10px;gap:10px;grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}.mini-card{border-radius:12px;padding:12px 14px;background:var(--card);display:grid;grid-gap:6px;gap:6px;border:1px solid var(--line);border-left:4px solid var(--tc,var(--accent))}.mini-card h3{font-size:.95rem}.next-lesson{display:flex;align-items:center;gap:14px}.date-badge{display:grid;place-items:center;min-width:58px;padding:6px 8px;border-radius:12px;background:var(--card);text-align:center;line-height:1.1;box-shadow:0 1px 3px rgba(0,0,0,.08)}.date-badge b{font-family:var(--font-display);font-size:1.6rem}.date-badge small{font-size:.7rem;text-transform:uppercase;color:var(--muted);letter-spacing:.04em}.ring{--p:0;width:120px;height:120px;flex:none;place-items:center;background:conic-gradient(var(--ring,var(--good)) calc(var(--p) * 1%),var(--neutral-bg) 0)}.ring,.ring>div{border-radius:50%;display:grid}.ring>div{width:92px;height:92px;background:var(--card);place-items:center;text-align:center;line-height:1}.ring b{font-family:var(--font-display);font-size:2.4rem;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.ring small{font-size:.7rem;color:var(--muted)}.ring.good{--ring:var(--good)}.ring.warn{--ring:#e0a43a}.ring.bad{--ring:var(--bad)}.balance-row{display:flex;align-items:center;gap:18px;flex-wrap:wrap}.pack{position:relative}.pack .btn{min-height:70px}.pack-tag{position:absolute;top:-9px;left:50%;transform:translateX(-50%);font-size:.68rem;background:var(--accent);color:var(--accent-ink);padding:1px 8px;border-radius:999px;white-space:nowrap;z-index:1}.timeline{display:grid;grid-gap:0;gap:0}.tl-item{display:grid;grid-template-columns:14px 1fr auto;grid-gap:10px;gap:10px;align-items:start;padding:8px 0;position:relative}.tl-item:before{content:"";position:absolute;left:6px;top:22px;bottom:-8px;width:2px;background:var(--line)}.tl-item:last-child:before{display:none}.tl-dot{width:14px;height:14px;border-radius:50%;margin-top:3px;background:var(--neutral-bg);border:2px solid var(--card);box-shadow:0 0 0 1px var(--line)}.tl-dot.good{background:var(--good)}.tl-dot.warn{background:#e0a43a}.tl-dot.bad{background:var(--bad)}.tl-dot.pay{background:var(--accent)}.tl-item .muted{font-size:.8rem}.badges{display:grid;grid-gap:8px;gap:8px;grid-template-columns:repeat(auto-fill,minmax(96px,1fr))}.badge-card{display:grid;justify-items:center;grid-gap:4px;gap:4px;padding:10px 6px;border-radius:12px;background:var(--paper);text-align:center;filter:grayscale(1);opacity:.45}.badge-card.is-earned{filter:none;opacity:1;background:color-mix(in srgb,var(--tc,#f6e08f) 30%,var(--card));box-shadow:0 1px 3px rgba(0,0,0,.08)}.badge-emoji{font-size:1.7rem;line-height:1}.badge-title{font-size:.72rem;line-height:1.2}.levelbar{display:grid;grid-gap:4px;gap:4px;padding-top:18px}.levelbar-track{position:relative;height:10px;border-radius:999px;background:linear-gradient(90deg,#f7b5cb33,#f6e08f55,#a8e0c255,#a9c7f755)}.levelbar-fill{inset:0 auto 0 0;background:linear-gradient(90deg,#f7b5cb,#f6e08f,#a8e0c2,#a9c7f7)}.levelbar-fill,.levelbar-now{position:absolute;border-radius:999px}.levelbar-now{top:-22px;transform:translateX(-50%);font-size:.75rem;font-weight:700;background:var(--text);color:var(--card);padding:1px 6px;white-space:nowrap}.levelbar-target{position:absolute;top:-6px;transform:translateX(-50%);font-size:1rem}.levelbar-scale{position:relative;height:16px;font-size:.7rem;color:var(--muted)}.levelbar-scale span{position:absolute;transform:translateX(-50%)}.celebrate{display:grid;grid-gap:8px;gap:8px}.celebrate-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:12px;background:linear-gradient(90deg,#fdf0d9,color-mix(in srgb,#f7b5cb 25%,var(--card)));flex-wrap:wrap}@media (prefers-color-scheme:dark){.celebrate-item{background:color-mix(in srgb,#f6e08f 14%,var(--card))}}.celebrate-item .em{font-size:1.5rem}.celebrate-item .grow{flex:1 1;min-width:160px}.birthday-banner{border-radius:16px;padding:16px 18px;background:linear-gradient(120deg,#f7b5cb,#f6e08f,#a9c7f7);color:#1b1f33;font-weight:600;font-size:1.05rem}.level-select{padding:2px 6px;font-size:.8rem;width:auto}.level-chip{margin-left:6px;font-size:.7rem;font-weight:700;padding:1px 6px;border-radius:999px;background:var(--neutral-bg);color:var(--ink-soft);vertical-align:middle}.kanban{display:grid;grid-gap:12px;gap:12px;grid-template-columns:repeat(5,minmax(220px,1fr));overflow-x:auto;padding-bottom:6px}.kanban-col{display:grid;align-content:start;grid-gap:8px;gap:8px;padding:10px;border-radius:14px;background:color-mix(in srgb,var(--tc) 22%,var(--paper));min-width:220px}.kanban-head{display:flex;justify-content:space-between;align-items:center;font-weight:700}.kanban-count{background:var(--card);border-radius:999px;padding:0 8px;font-size:.8rem}.lead-card{display:grid;grid-gap:4px;gap:4px;padding:10px 12px;border-radius:12px;background:var(--card);box-shadow:0 1px 3px rgba(0,0,0,.08);border-left:4px solid var(--tc)}.lead-late{color:var(--bad);font-weight:600}.award-form{display:grid;grid-gap:10px;gap:10px}.award-custom summary{cursor:pointer}.awards{display:grid;grid-gap:10px;gap:10px;grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.award-card{position:relative;display:flex;gap:12px;align-items:flex-start;padding:12px 14px;border-radius:14px;background:linear-gradient(135deg,color-mix(in srgb,var(--tc,#f6e08f) 35%,var(--card)),var(--card));box-shadow:0 1px 3px rgba(0,0,0,.08)}.award-emoji{font-size:2rem;line-height:1}.award-note{font-family:var(--font-display);font-style:italic;font-size:1.05rem}.award-x{position:absolute;top:4px;right:4px}.autopay-on{display:flex;justify-content:space-between;gap:10px;align-items:center;flex-wrap:wrap;background:var(--good-bg)}.autopay-check,.autopay-on{padding:10px 12px;border-radius:12px}.autopay-check{align-items:flex-start;gap:8px;font-size:.85rem;background:var(--paper)}.autopay-check input{margin-top:3px}.pack .btn{width:100%}.pay-options .pack{flex:1 1 140px}.goals{display:grid;grid-gap:10px;gap:10px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.goal{display:grid;grid-gap:6px;gap:6px;align-content:start;padding:14px;border-radius:14px;background:color-mix(in srgb,var(--tc,var(--accent)) 16%,var(--card))}.goal-emoji{font-size:1.6rem;line-height:1}.goal-big{font-family:var(--font-display);font-size:2rem;font-weight:600;line-height:1;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.goal-money{color:var(--good);font-size:1.05rem}.sched-wrap{border-radius:16px;box-shadow:0 2px 10px rgba(22,34,90,.06)}.sched-dayhead{display:flex;align-items:center;gap:6px}.sched-dayhead.is-today{background:color-mix(in srgb,var(--accent) 10%,var(--paper))}.sched-dayhead.is-today strong:after{content:" · сьогодні";font-weight:500;font-size:.75rem}.sched-daycount{margin-left:auto;font-size:.7rem;font-weight:700;background:var(--card);border-radius:999px;padding:0 7px;color:var(--muted)}.sched-col.is-weekend,.sched-dayhead.is-weekend{background-image:repeating-linear-gradient(135deg,transparent 0 10px,color-mix(in srgb,var(--neutral-bg) 45%,transparent) 10px 11px)}.sched-event{border-radius:10px;background:linear-gradient(160deg,color-mix(in srgb,var(--tc) 85%,#fff) 0,var(--tc) 100%);transition:transform .12s ease,box-shadow .12s ease}.sched-event:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(0,0,0,.15);z-index:3}.sched-event.is-held{box-shadow:inset 3px 0 0 rgba(27,31,51,.35)}.sched-event.is-held .sched-time:before{content:"✓ "}.sched-now{left:0;right:0;height:2px;z-index:4;pointer-events:none}.sched-now,.sched-now:before{position:absolute;background:#e5484d}.sched-now:before{content:"";left:-4px;top:-4px;width:10px;height:10px;border-radius:50%}@media (prefers-reduced-motion:reduce){.sched-event{transition:none}.sched-event:hover{transform:none}}.view-toggle{display:inline-flex;gap:4px;padding:4px;border-radius:999px;background:var(--neutral-bg);width:-moz-fit-content;width:fit-content}.subnav-pill{padding:6px 14px;border-radius:999px;text-decoration:none;color:var(--text);font-size:.9rem}.subnav-pill.is-active{background:var(--card);box-shadow:0 1px 3px rgba(0,0,0,.12);font-weight:600}.level-form{gap:6px}.cel-chips{display:flex;flex-wrap:wrap;gap:6px}.cel-chip{display:inline-flex;align-items:center;gap:6px;padding:4px 6px 4px 10px;border-radius:999px;background:color-mix(in srgb,#f6e08f 30%,var(--card));font-size:.82rem;border:1px solid var(--line)}.cel-chip.birthday{background:color-mix(in srgb,#f7b5cb 35%,var(--card))}.cel-chip.skill{background:color-mix(in srgb,#a8e0c2 35%,var(--card))}.cel-chip .btn.small{padding:2px 8px}.attn{display:flex;gap:10px;align-items:center;padding:10px 12px;border-radius:10px;text-decoration:none;color:var(--text);border-bottom:1px solid var(--line)}.attn:hover{background:var(--paper)}.attn>span:nth-child(2){flex:1 1}.attn.warn{border-left:4px solid var(--warn)}.attn.bad{border-left:4px solid var(--bad)}.today-list{display:grid;grid-gap:6px;gap:6px}.today-item{display:grid;grid-template-columns:52px 1fr auto;grid-gap:10px;gap:10px;align-items:center;padding:8px 10px;border-radius:10px;background:color-mix(in srgb,var(--tc) 40%,var(--card))}.today-item.is-past{opacity:.55}.today-time{font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.today-title{font-weight:600}.team-mini{display:grid;grid-gap:10px;gap:10px;grid-template-columns:repeat(auto-fill,minmax(170px,1fr))}.team-mini-card{display:grid;grid-gap:2px;gap:2px;padding:12px 14px;border-radius:14px;text-decoration:none;color:var(--text);background:color-mix(in srgb,var(--tc) 30%,var(--card));border-top:5px solid var(--tc)}.team-mini-card:hover{box-shadow:0 4px 12px rgba(0,0,0,.1)}.team-mini-sum{font-family:var(--font-display);font-size:1.4rem;font-weight:600}.forecast-grid{display:grid;grid-gap:14px;gap:14px;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.forecast{border-top:6px solid var(--tc);background:linear-gradient(180deg,color-mix(in srgb,var(--tc) 18%,var(--card)),var(--card) 60%)}.forecast-rows{display:grid;grid-template-columns:1fr auto;grid-gap:6px 12px;gap:6px 12px;align-items:baseline;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.forecast-net{color:var(--good);font-size:1.1rem}.public-fields{grid-column:1/-1;border:1px dashed var(--line);border-radius:12px;padding:12px;display:grid;grid-gap:10px;gap:10px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.public-fields legend{padding:0 6px;font-weight:600;font-size:.85rem}.public-page{max-width:980px;margin:0 auto;padding:24px max(16px,env(safe-area-inset-left,0px)) 48px;display:grid;grid-gap:20px;gap:20px}.public-page.is-embed{padding-top:8px}.public-head{font-size:1rem;color:var(--ink)}.public-brand{text-transform:uppercase;letter-spacing:.06em;font-weight:600;font-size:.8rem}.public-groups{display:grid;grid-gap:14px;gap:14px;grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.public-section{display:grid;grid-gap:10px;gap:10px}.slot-list{display:grid;grid-gap:8px;gap:8px}.slot-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;padding:10px 12px;border-radius:12px;border:1px solid var(--line);border-left:6px solid var(--tc,var(--line))}.slot-row.is-off{opacity:.55}.slot-row .grow{flex:1 1 200px}.public-group{display:grid;grid-gap:8px;gap:8px;align-content:start;padding:16px;border-radius:16px;background:linear-gradient(160deg,color-mix(in srgb,var(--tc) 40%,var(--card)),var(--card) 70%);border:1px solid var(--line);border-top:6px solid var(--tc)}.public-group.is-chosen{box-shadow:0 0 0 3px var(--accent)}.free-chip{font-size:.75rem;font-weight:700;color:var(--good);background:var(--good-bg);padding:2px 8px;border-radius:999px}.public-form{max-width:560px}.public-thanks{text-align:center}.hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}.review-form{gap:16px;border-top:6px solid #f7b5cb}.review-grid{display:grid;grid-gap:12px;gap:12px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.stars{border:0;padding:0;margin:0;display:grid;grid-gap:4px;gap:4px}.stars legend{font-size:.85rem;font-weight:600;margin-bottom:4px}.stars-row{display:inline-flex;flex-direction:row-reverse;justify-content:flex-end;gap:2px}.stars-row input{position:absolute;opacity:0;width:1px;height:1px}.stars-row label{font-size:1.8rem;color:var(--neutral-bg);cursor:pointer;line-height:1}.stars-row input:checked~label{color:#f2b705}.stars-row label:hover,.stars-row label:hover~label{color:#f6d365}.stars-row input:focus-visible+label{outline:2px solid var(--accent);border-radius:4px}.pill-radio{padding:6px 12px;border-radius:999px;background:var(--paper);border:1px solid var(--line)}.nps-row{display:flex;flex-wrap:wrap;gap:4px}.nps input{position:absolute;opacity:0;width:1px;height:1px}.nps span{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:8px;background:var(--paper);border:1px solid var(--line);cursor:pointer;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.nps input:checked+span{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.nps input:focus-visible+span{outline:2px solid var(--accent)}.sub-form{display:grid;grid-gap:4px;gap:4px;padding-top:6px;border-top:1px dashed var(--line)}.sub-form select{flex:1 1;min-width:0}.hero.compact{padding:14px 16px;gap:10px;border-radius:14px}.hero.compact .hero-title{font-size:1.7rem}.hero.compact .hero-sub{font-size:.85rem}.hero.compact .hero-tiles{grid-template-columns:repeat(3,1fr);gap:6px}.hero.compact .hero-tile{padding:8px 10px}.hero.compact .hero-tile-value{font-size:1.1rem}.hero.compact .hero-tile-label{font-size:.72rem}.hero.compact:before{width:160px;height:160px;top:-80px;right:-50px}.hero.compact:after{display:none}.text-bad{color:var(--bad)}.text-warn{color:var(--warn)}details.card>summary{list-style:none}details.card>summary:after{content:" ▾";color:var(--muted)}details.card[open]>summary{margin-bottom:10px}.stripe-pick{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));grid-gap:4px 16px;gap:4px 16px;max-height:260px;overflow:auto;padding:4px 0}.stripe-pick .check{font-weight:400}.pay-royalties{margin-top:4px}.pay-edit>summary{list-style:none;cursor:pointer;display:inline-block}.pay-edit>summary::-webkit-details-marker{display:none}.pay-edit[open]>summary{margin-bottom:8px}.pay-edit-body{min-width:min(560px,80vw);text-align:left;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--card)}.bal-pill.neutral{background:var(--neutral-bg);color:var(--ink-soft)}