@font-face{font-family:Lexend Deca;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/8aad2d60f83adb5a-s.35r5-1l8wvwa9.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Lexend Deca;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/969f0adf11a48ffa-s.1f1_lokdt1-ze.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Lexend Deca;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/85ba544592656337-s.p.3957fab39g-87.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Lexend Deca Fallback;src:local(Arial);ascent-override:90.98%;descent-override:22.74%;line-gap-override:0.0%;size-adjust:109.91%}.lexend_deca_781f9e60-module__yqR2Gq__className{font-family:Lexend Deca,Lexend Deca Fallback;font-style:normal}.lexend_deca_781f9e60-module__yqR2Gq__variable{--font-display:"Lexend Deca", "Lexend Deca Fallback"}
@font-face{font-family:Jost;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/39c55468420adfa6-s.1ti1r54sj8aa0.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Jost;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/9b8f0e32b229dbc1-s.3mtm4mi9aq8dw.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Jost;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/81cef6a21128489e-s.p.00r2o6pv87vbs.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Jost Fallback;src:local(Arial);ascent-override:111.45%;descent-override:39.06%;line-gap-override:0.0%;size-adjust:96.01%}.jost_35d2aee8-module__5YL61G__className{font-family:Jost,Jost Fallback;font-style:normal}.jost_35d2aee8-module__5YL61G__variable{--font-sans:"Jost", "Jost Fallback"}
:root{--bg:#f7f4ef;--surface:#fffdf9;--surface-2:#f8f4ed;--ink:#241b27;--ink-soft:#4c414f;--muted:#766c79;--faint:#9b929e;--line:#e4ddd3;--line-soft:#eee8e0;--brand:#523158;--brand-soft:#704a77;--accent:#9b6b24;--accent-soft:#bd8b3f;--good:#357654;--good-bg:#e7f2eb;--warn:#9b681d;--warn-bg:#f8eedb;--info:#425f8b;--info-bg:#eaf0f8;--draft:#77707e;--draft-bg:#f0edf2;--shadow:0 1px 2px #241b270a, 0 12px 36px -24px #241b274d;--shadow-hover:0 2px 4px #241b270d, 0 18px 42px -26px #241b2761;--radius:18px;--radius-sm:12px;--serif:var(--font-display), "Iowan Old Style", Georgia, serif;--sans:var(--font-sans), ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif}@media (prefers-color-scheme:dark){:root{--bg:#171219;--surface:#211a24;--surface-2:#29212d;--ink:#f7f1f8;--ink-soft:#ddd2df;--muted:#aea2b0;--faint:#817684;--line:#3b303f;--line-soft:#302735;--brand:#d1afd7;--brand-soft:#bb90c3;--accent:#dfad5d;--accent-soft:#ecc47f;--good:#7fc79c;--good-bg:#20352a;--warn:#e0b15c;--warn-bg:#38301c;--info:#93aedb;--info-bg:#232b3a;--draft:#9a90a6;--draft-bg:#2a2331;--shadow:0 1px 2px #00000052, 0 16px 42px -26px #000000d9;--shadow-hover:0 2px 5px #00000061, 0 22px 50px -28px #000000f2}}:root[data-theme=light]{--bg:#f7f4ef;--surface:#fffdf9;--surface-2:#f8f4ed;--ink:#241b27;--ink-soft:#4c414f;--muted:#766c79;--faint:#9b929e;--line:#e4ddd3;--line-soft:#eee8e0;--brand:#523158;--brand-soft:#704a77;--accent:#9b6b24;--accent-soft:#bd8b3f;--good:#357654;--good-bg:#e7f2eb;--warn:#9b681d;--warn-bg:#f8eedb;--info:#425f8b;--info-bg:#eaf0f8;--draft:#77707e;--draft-bg:#f0edf2;--shadow:0 1px 2px #241b270a, 0 12px 36px -24px #241b274d;--shadow-hover:0 2px 4px #241b270d, 0 18px 42px -26px #241b2761}:root[data-theme=dark]{--bg:#171219;--surface:#211a24;--surface-2:#29212d;--ink:#f7f1f8;--ink-soft:#ddd2df;--muted:#aea2b0;--faint:#817684;--line:#3b303f;--line-soft:#302735;--brand:#d1afd7;--brand-soft:#bb90c3;--accent:#dfad5d;--accent-soft:#ecc47f;--good:#7fc79c;--good-bg:#20352a;--warn:#e0b15c;--warn-bg:#38301c;--info:#93aedb;--info-bg:#232b3a;--draft:#9a90a6;--draft-bg:#2a2331;--shadow:0 1px 2px #00000052, 0 16px 42px -26px #000000d9;--shadow-hover:0 2px 5px #00000061, 0 22px 50px -28px #000000f2}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;font-size:15px;line-height:1.5}.num{font-variant-numeric:tabular-nums}button{cursor:pointer;font-family:inherit}a{color:inherit}h1,h2,h3{text-wrap:balance;margin:0}.wrap{max-width:1120px;margin:0 auto;padding:0 20px}header{z-index:20;background:color-mix(in srgb, var(--bg) 88%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);position:sticky;top:0}.bar{align-items:center;gap:14px;padding:14px 0;display:flex}.keys{border:1.5px solid var(--ink);border-radius:4px;flex:none;width:40px;height:26px;display:flex;overflow:hidden}.keys span{border-right:1px solid var(--ink);flex:1}.keys span:last-child{border-right:0}.keys .b{background:var(--ink);flex:.6}.brand-name{font-family:var(--serif);letter-spacing:.01em;font-size:20px;font-weight:600;line-height:1}.brand-sub{color:var(--muted);letter-spacing:.03em;margin-top:2px;font-size:11.5px}.grow{flex:1}.ghost{border:1px solid var(--line);color:var(--ink-soft);background:0 0;border-radius:9px;align-items:center;gap:7px;padding:7px 12px;font-size:13px;transition:all .15s;display:inline-flex}.ghost:hover{border-color:var(--muted);background:var(--surface)}.ribbon{letter-spacing:.08em;text-transform:uppercase;color:var(--accent);border:1px solid color-mix(in srgb, var(--accent) 40%, var(--line));border-radius:999px;padding:4px 9px;font-size:11px;font-weight:600}.intro{padding:30px 0 8px}.intro h1{font-family:var(--serif);letter-spacing:-.01em;font-size:clamp(26px,4vw,38px);font-weight:600;line-height:1.08}.intro h1 em{color:var(--brand);font-style:italic}.intro p{max-width:60ch;color:var(--ink-soft);margin:12px 0 0;font-size:16px}.semester-pill{background:var(--surface);border:1px solid var(--line);color:var(--muted);border-radius:999px;align-items:center;gap:8px;margin-top:16px;padding:6px 16px;font-size:13px;display:inline-flex}.semester-pill b{color:var(--ink);font-weight:600}.kpis{grid-template-columns:repeat(5,1fr);gap:12px;margin:22px 0 6px;display:grid}.kpi{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:14px 16px}.kpi .k-lab{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-size:11.5px;font-weight:600}.kpi .k-val{font-family:var(--serif);margin-top:6px;font-size:26px;font-weight:600;line-height:1}.kpi.money .k-val{color:var(--accent)}.kpi .k-sub{color:var(--faint);margin-top:5px;font-size:12px}.flow{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);align-items:stretch;gap:0;margin:26px 0 18px;display:flex;overflow:hidden}.step{border-right:1px solid var(--line-soft);flex:1;align-items:center;gap:11px;padding:14px 16px;display:flex;position:relative}.step:last-child{border-right:0}.step .dot{background:var(--draft-bg);width:26px;height:26px;color:var(--draft);border:1.5px solid #0000;border-radius:50%;flex:none;place-items:center;font-size:12.5px;font-weight:700;display:grid}.step.done .dot{background:var(--good-bg);color:var(--good)}.step.active .dot{background:var(--brand);color:var(--surface);border-color:var(--brand)}.step .s-lab{text-transform:uppercase;letter-spacing:.05em;color:var(--faint);font-size:11px;font-weight:600}.step .s-name{color:var(--ink-soft);margin-top:1px;font-size:13.5px;font-weight:600}.step.active .s-name{color:var(--ink)}.action{flex-wrap:wrap;align-items:center;gap:16px;margin-bottom:20px;display:flex}.primary{background:var(--brand);color:var(--surface);box-shadow:0 4px 14px -6px color-mix(in srgb, var(--brand) 60%, transparent);border:0;border-radius:11px;align-items:center;gap:10px;padding:12px 22px;font-size:15px;font-weight:600;transition:all .15s;display:inline-flex}.primary:hover{background:var(--brand-soft);transform:translateY(-1px)}.primary:disabled{opacity:.45;cursor:not-allowed;box-shadow:none;transform:none}.action .hint{color:var(--muted);max-width:46ch;font-size:13.5px}.action .hint b{color:var(--ink-soft);font-weight:600}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.thead{border-bottom:1px solid var(--line);text-transform:uppercase;letter-spacing:.05em;color:var(--muted);background:var(--surface-2);grid-template-columns:2.4fr 1.5fr .9fr 1.1fr 1.2fr 34px;gap:12px;padding:12px 18px;font-size:11.5px;font-weight:600;display:grid}.thead .r{text-align:right}.frow{border-bottom:1px solid var(--line-soft)}.frow:last-child{border-bottom:0}.fmain{cursor:pointer;text-align:left;width:100%;color:inherit;background:0 0;border:0;grid-template-columns:2.4fr 1.5fr .9fr 1.1fr 1.2fr 34px;align-items:center;gap:12px;padding:14px 18px;font-size:15px;transition:background .15s;display:grid}.fmain:hover{background:var(--surface-2)}.who{align-items:center;gap:12px;min-width:0;display:flex}.av{color:#fff;width:34px;height:34px;font-size:13px;font-weight:600;font-family:var(--serif);border-radius:9px;flex:none;place-items:center;display:grid}.who .s{white-space:nowrap;text-overflow:ellipsis;font-size:14.5px;font-weight:600;overflow:hidden}.who .p{color:var(--muted);font-size:12.5px}.sched{color:var(--ink-soft);font-size:13.5px}.sched span{color:var(--faint)}.lessons{text-align:right;font-size:14px}.lessons .pend{color:var(--faint)}.tuition{text-align:right;font-family:var(--serif);font-size:16px;font-weight:600}.tuition .pend{color:var(--faint);font-family:var(--sans);font-size:14px;font-weight:400}.stat{justify-content:flex-end;display:flex}.chip{white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:4px 10px;font-size:11.5px;font-weight:600;display:inline-flex}.chip svg{width:12px;height:12px}.chip.draft{background:var(--draft-bg);color:var(--draft)}.chip.calc{background:var(--info-bg);color:var(--info)}.chip.inv{background:var(--warn-bg);color:var(--warn)}.chip.sent{background:var(--info-bg);color:var(--info)}.chip.paid{background:var(--good-bg);color:var(--good)}.chip.warn{background:var(--warn-bg);color:var(--warn)}.caret{color:var(--faint);place-items:center;transition:transform .2s;display:grid}.frow.open .caret{transform:rotate(90deg)}.caret svg{width:16px;height:16px}.detail{background:var(--surface-2);border-top:1px dashed var(--line);padding:4px 18px 22px;animation:.25s fade}@keyframes fade{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}.dgrid{grid-template-columns:1fr 1fr;gap:16px;margin-top:16px;display:grid}.dgrid.wide{grid-template-columns:.9fr 1.1fr}.card{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:16px 18px}.card h4{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);align-items:center;gap:8px;margin-bottom:12px;font-size:11.5px;font-weight:600;display:flex}.qb{letter-spacing:.03em;color:var(--good);background:var(--good-bg);text-transform:none;border-radius:6px;margin-left:auto;padding:3px 8px;font-size:10.5px;font-weight:600}.months{flex-direction:column;gap:8px;display:flex}.mrow{grid-template-columns:52px 1fr;align-items:baseline;gap:10px;display:grid}.mrow .mn{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:12px;font-weight:600}.days{flex-wrap:wrap;gap:6px;display:flex}.day{text-align:center;background:var(--surface-2);border:1px solid var(--line-soft);min-width:26px;color:var(--ink-soft);border-radius:7px;padding:3px 7px;font-size:12.5px}.workshop-selection{border:1px solid var(--line-soft);background:var(--surface-2);border-radius:10px;margin-top:16px;padding:12px}.workshop-selection .field{gap:6px;display:grid}.workshop-selection select{border:1px solid var(--line);background:var(--surface);width:100%;min-height:38px;color:var(--ink);font:inherit;border-radius:9px;padding:7px 10px}.workshop-selection .field-hint{margin-top:7px;display:block}.workshop-overview{border-bottom:1px solid var(--line);background:var(--surface-2);padding:18px 20px}.workshop-overview-head{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:14px;display:flex}.workshop-overview h2{font-family:var(--serif);margin:0;font-size:16px;font-weight:600}.workshop-overview p{color:var(--muted);margin:3px 0 0;font-size:12.5px}.workshop-pending-filter{flex:none;min-height:36px;padding:7px 11px;font-size:12.5px}.workshop-date-counts{grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin:0;display:grid}.workshop-date-count{border:1px solid var(--line-soft);background:var(--surface);border-radius:10px;min-width:0;padding:10px}.workshop-date-count dt{min-height:36px;color:var(--muted);font-size:11px;font-weight:600;line-height:1.35}.workshop-date-count dd{font-family:var(--serif);margin:4px 0 0;font-size:24px;font-weight:600;line-height:1}.workshop-date-count span{color:var(--faint);font-size:11px}.workshop-date-count.pending{border-color:color-mix(in srgb, var(--warn) 24%, var(--line-soft));background:var(--warn-bg)}.workshop-date-count.pending dd,.workshop-date-count.pending dt{color:var(--warn)}.workshop-filter-empty{color:var(--muted);text-align:center;padding:28px 20px}.sched-foot{border-top:1px solid var(--line-soft);color:var(--muted);justify-content:space-between;margin-top:12px;padding-top:12px;font-size:13px;display:flex}.sched-foot b{color:var(--ink)}.inv-head{justify-content:space-between;align-items:flex-start;margin-bottom:10px;display:flex}.inv-head .to{font-size:13px}.inv-head .to b{font-size:14.5px}.inv-head .meta{text-align:right;color:var(--muted);font-size:12px}.inv-head .meta b{color:var(--ink);font-family:var(--serif);font-size:14px}.lines{border-top:1px solid var(--line);margin-top:6px}.line{border-bottom:1px solid var(--line-soft);grid-template-columns:1fr auto;gap:10px;padding:8px 0;font-size:13.5px;display:grid}.line .d{color:var(--ink-soft)}.line .d span{color:var(--faint);font-size:12px}.line .a{text-align:right}.line.disc .a{color:var(--good)}.line.total{border-bottom:0;padding-top:11px;font-size:15px;font-weight:700}.line.total .a{font-family:var(--serif);color:var(--accent);font-size:18px}.installs{flex-direction:column;gap:6px;margin-top:10px;display:flex}.inst{color:var(--muted);background:var(--surface-2);border-radius:7px;justify-content:space-between;padding:7px 11px;font-size:12.5px;display:flex}.inst b{color:var(--ink-soft)}.msg{background:var(--surface);border:1px solid var(--line);border-radius:12px;grid-column:1/-1;margin-top:16px;padding:0;overflow:hidden}.msg .m-top{border-bottom:1px solid var(--line-soft);background:var(--surface-2);align-items:center;gap:9px;padding:11px 16px;display:flex}.msg .m-top .ico{background:var(--info-bg);width:26px;height:26px;color:var(--info);border-radius:7px;place-items:center;display:grid}.msg .m-top .ico svg{width:15px;height:15px}.msg .m-top .t{font-size:13px;font-weight:600}.msg .m-top .t span{color:var(--muted);font-weight:400}.msg .m-top .chip{margin-left:auto}.msg .m-body{color:var(--ink-soft);white-space:pre-line;padding:15px 18px;font-size:14px;line-height:1.6}.msg .m-body b{color:var(--ink)}.m-link{color:var(--brand-soft);text-underline-offset:2px;text-decoration:underline}.rowacts{flex-wrap:wrap;align-items:center;gap:10px;margin-top:14px;display:flex}.rowacts .note{color:var(--muted);font-size:12.5px}.mini{background:var(--surface);border:1px solid var(--line);color:var(--ink-soft);border-radius:9px;align-items:center;gap:7px;padding:8px 14px;font-size:13px;font-weight:500;transition:all .15s;display:inline-flex}.mini:hover{border-color:var(--muted)}.mini.go{background:var(--good-bg);color:var(--good);border-color:#0000}.mini svg{width:14px;height:14px}.foot{color:var(--faint);text-align:center;border-top:1px solid var(--line);margin-top:20px;padding:26px 0 40px;font-size:12.5px}.foot b{color:var(--muted);font-weight:600}@media (max-width:860px){.workshop-date-counts{grid-template-columns:repeat(3,minmax(0,1fr))}.kpis{grid-template-columns:repeat(2,1fr)}.flow{flex-wrap:wrap}.step{border-bottom:1px solid var(--line-soft);flex:50%}.thead{display:none}.fmain{grid-template-columns:1fr auto;grid-auto-rows:min-content;row-gap:8px;padding:14px 16px}.who{grid-column:1/2}.stat{grid-column:2/3;align-self:start}.sched{order:3;grid-column:1/-1}.lessons{text-align:left;order:4;grid-column:1/2}.tuition{order:4;grid-column:2/3}.caret{display:none}.dgrid,.dgrid.wide{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}.panel-head{border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:14px 18px;display:flex}.panel-title{font-family:var(--serif);font-size:16px;font-weight:600}.panel-head-actions{align-items:center;gap:10px;display:flex}.primary.compact{border-radius:9px;padding:8px 14px;font-size:13.5px}.empty{text-align:center;flex-direction:column;align-items:center;gap:8px;padding:48px 20px;display:flex}.empty-title{font-family:var(--serif);font-size:18px;font-weight:600}.empty-sub{color:var(--muted);margin-bottom:8px;font-size:13.5px}.detail-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:12px 2px 2px;display:flex}.detail-meta{color:var(--muted);font-size:12.5px;font-weight:600}.detail-tools{align-items:center;gap:8px;display:flex}.mini.danger{color:var(--warn)}.mini.danger:hover{border-color:var(--warn);background:var(--warn-bg)}.modal-backdrop{z-index:60;background:color-mix(in srgb, var(--ink) 45%, transparent);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);justify-content:center;align-items:flex-start;padding:6vh 18px 40px;animation:.18s fade;display:flex;position:fixed;inset:0;overflow-y:auto}.modal{background:var(--surface);border:1px solid var(--line);border-radius:16px;width:100%;max-width:560px;box-shadow:0 20px 60px -20px #00000080}.modal-head{border-bottom:1px solid var(--line-soft);justify-content:space-between;align-items:center;padding:18px 22px;display:flex}.modal-title{font-family:var(--serif);font-size:19px;font-weight:600}.modal-x{color:var(--muted);background:0 0;border:0;border-radius:8px;padding:6px;font-size:17px;line-height:1}.modal-x:hover{background:var(--surface-2);color:var(--ink)}.form{flex-direction:column;gap:16px;padding:20px 22px 22px;display:flex}.fgrid{grid-template-columns:1fr 1fr;gap:14px;display:grid}.fgrid.two{grid-template-columns:1fr 1fr}.field{flex-direction:column;gap:6px;display:flex}.field>span{color:var(--ink-soft);letter-spacing:.01em;font-size:12px;font-weight:600}.field-hint{color:var(--faint)!important;font-size:11.5px!important;font-weight:400!important}.field input,.field select,.field textarea{color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:9px;width:100%;padding:9px 11px;font-family:inherit;font-size:14px}.field textarea{resize:vertical;font-variant-numeric:tabular-nums}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--brand);box-shadow:0 0 0 3px color-mix(in srgb, var(--brand) 18%, transparent);outline:none}.form-error{background:var(--warn-bg);color:var(--warn);border-radius:9px;padding:9px 13px;font-size:13px;font-weight:500}.form-actions{justify-content:flex-end;gap:10px;margin-top:2px;display:flex}.skeleton{background:linear-gradient(90deg, var(--surface-2) 25%, var(--line-soft) 37%, var(--surface-2) 63%);background-size:400% 100%;border-radius:8px;animation:1.4s infinite shimmer}@keyframes shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}@media (max-width:560px){.workshop-overview{padding:16px}.workshop-overview-head{flex-direction:column}.workshop-pending-filter{width:100%}.workshop-date-counts{grid-template-columns:repeat(2,minmax(0,1fr))}.workshop-date-count dt{min-height:30px}.fgrid,.fgrid.two{grid-template-columns:1fr}}html{background:var(--bg);scroll-behavior:smooth;min-width:320px}body{background:radial-gradient(circle at 12% -8%, color-mix(in srgb, var(--accent) 7%, transparent) 0, transparent 32rem), radial-gradient(circle at 92% 8%, color-mix(in srgb, var(--brand) 8%, transparent) 0, transparent 34rem), var(--bg);letter-spacing:-.005em;min-height:100vh;font-size:14.5px;line-height:1.55}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}.wrap{max-width:1180px;padding-inline:28px}header{background:color-mix(in srgb, var(--bg) 78%, transparent);border-bottom-color:color-mix(in srgb, var(--line) 78%, transparent);box-shadow:0 1px 0 color-mix(in srgb, var(--surface) 50%, transparent);-webkit-backdrop-filter:blur(18px)saturate(150%)}.bar{gap:12px;min-height:72px;padding-block:10px}.brand-lockup{align-items:center;gap:12px;display:flex}.keys{background:var(--brand);width:42px;height:30px;box-shadow:0 7px 18px -10px color-mix(in srgb, var(--brand) 80%, transparent);border:0;border-radius:10px;gap:2px;padding:3px}.keys span,.keys span:last-child{background:color-mix(in srgb, var(--surface) 94%, transparent);border:0;border-radius:2px 2px 4px 4px}.keys .b{background:color-mix(in srgb, var(--ink) 86%, var(--brand));border-radius:2px 2px 3px 3px;height:60%}.brand-name{letter-spacing:-.025em;font-size:21px;font-weight:650}.brand-sub{color:var(--muted);letter-spacing:.11em;margin-top:4px;font-size:9.5px;font-weight:650}.header-tools{align-items:center;gap:9px;display:flex}.ribbon{border-color:color-mix(in srgb, var(--accent) 28%, var(--line));background:color-mix(in srgb, var(--accent) 8%, var(--surface));letter-spacing:.12em;padding:5px 10px;font-size:9.5px}.ghost,.mini,.primary{border-radius:var(--radius-sm);letter-spacing:-.01em;justify-content:center;min-height:40px;font-weight:650;transition:background-color .18s,border-color .18s,color .18s,box-shadow .18s,transform .18s}.ghost{border-color:color-mix(in srgb, var(--line) 90%, var(--ink));background:color-mix(in srgb, var(--surface) 64%, transparent);padding:9px 13px}.ghost:hover{border-color:color-mix(in srgb, var(--brand) 30%, var(--line));background:var(--surface);color:var(--brand);box-shadow:0 8px 20px -16px color-mix(in srgb, var(--brand) 65%, transparent);transform:translateY(-1px)}.theme-toggle svg{transition:transform .22s}.theme-toggle:hover svg{transform:rotate(-12deg)}.intro{padding:64px 0 16px;position:relative}.intro:before{content:"STUDIO OPERATIONS, IN RHYTHM";color:var(--accent);letter-spacing:.16em;margin-bottom:15px;font-size:10.5px;font-weight:750;display:block}.intro h1{letter-spacing:-.042em;max-width:930px;font-size:clamp(34px,4.7vw,56px);font-weight:600;line-height:1.03}.intro h1 em{color:var(--brand-soft);text-decoration:underline;-webkit-text-decoration-color:color-mix(in srgb, var(--accent) 42%, transparent);text-decoration-color:color-mix(in srgb, var(--accent) 42%, transparent);text-underline-offset:7px;text-decoration-thickness:2px}.intro p{max-width:68ch;color:var(--muted);margin-top:22px;font-size:16px;line-height:1.7}.semester-pill{border-color:var(--line-soft);background:color-mix(in srgb, var(--surface) 86%, transparent);margin-top:24px;padding:8px 15px 8px 11px;box-shadow:0 8px 24px -22px #241b2759}.semester-pill:before{content:"";background:var(--good);width:8px;height:8px;box-shadow:0 0 0 4px color-mix(in srgb, var(--good) 12%, transparent);border-radius:50%}.kpis{gap:14px;margin:32px 0 10px}.kpi{border-color:color-mix(in srgb, var(--line) 86%, transparent);min-height:126px;box-shadow:var(--shadow);padding:20px;transition:border-color .18s,box-shadow .18s,transform .18s;position:relative;overflow:hidden}.kpi:after{content:"";background:color-mix(in srgb, var(--brand) 35%, transparent);opacity:0;width:3px;transition:opacity .18s;position:absolute;inset:0 auto 0 0}.kpi:hover{border-color:color-mix(in srgb, var(--brand) 22%, var(--line));box-shadow:var(--shadow-hover);transform:translateY(-2px)}.kpi:hover:after{opacity:1}.kpi .k-lab{color:var(--muted);letter-spacing:.12em;font-size:10px;font-weight:750}.kpi .k-val{letter-spacing:-.035em;margin-top:13px;font-size:32px;line-height:.95}.kpi .k-sub{margin-top:11px;font-size:11.5px}.flow{border-color:color-mix(in srgb, var(--line) 88%, transparent);box-shadow:var(--shadow);margin:30px 0 20px}.step{gap:12px;min-height:76px;padding:16px 18px;transition:background-color .18s}.step .dot{border:1px solid var(--line);width:31px;height:31px;font-size:11.5px}.step.active .dot{color:#fff;box-shadow:0 7px 16px -9px color-mix(in srgb, var(--brand) 80%, transparent)}.step .s-lab{letter-spacing:.12em;font-size:9px}.step .s-name{margin-top:2px;font-size:13px}.action{gap:18px;margin-bottom:26px}.primary{color:#fff;border:1px solid color-mix(in srgb, var(--brand) 86%, #000);background:linear-gradient(180deg, color-mix(in srgb, var(--brand) 92%, #fff), var(--brand));box-shadow:0 10px 22px -14px color-mix(in srgb, var(--brand) 90%, transparent), inset 0 1px #ffffff24;padding:11px 20px}.primary:hover{background:linear-gradient(180deg, color-mix(in srgb, var(--brand-soft) 90%, #fff), var(--brand-soft));box-shadow:0 14px 26px -15px color-mix(in srgb, var(--brand) 90%, transparent), inset 0 1px #ffffff2e}.primary:active,.ghost:active,.mini:active{transform:translateY(0)scale(.985)}.action .hint{color:var(--muted);line-height:1.55}.panel{border-color:color-mix(in srgb, var(--line) 88%, transparent);box-shadow:var(--shadow)}.panel-head{background:color-mix(in srgb, var(--surface) 96%, var(--surface-2));min-height:68px;padding:15px 20px}.panel-title{letter-spacing:-.02em;font-size:18px}.panel-head-actions{gap:8px}.primary.compact{border-radius:11px;min-height:38px;padding:8px 14px}.thead{border-bottom-color:var(--line-soft);background:var(--surface-2);color:var(--faint);letter-spacing:.11em;padding:11px 20px;font-size:9.5px;font-weight:750}.frow{border-bottom-color:var(--line-soft);position:relative}.fmain{min-height:72px;padding:15px 20px;transition:background-color .18s,box-shadow .18s}.fmain:hover{background:color-mix(in srgb, var(--brand) 3.5%, var(--surface));box-shadow:inset 3px 0 color-mix(in srgb, var(--brand) 45%, transparent)}.frow.open .fmain{background:color-mix(in srgb, var(--brand) 5%, var(--surface));box-shadow:inset 3px 0 var(--brand)}.who{gap:13px}.av{border-radius:12px;width:39px;height:39px;box-shadow:inset 0 0 0 1px #ffffff24,0 8px 16px -12px #241b27cc}.who .s{letter-spacing:-.01em;font-size:14px}.who .p{margin-top:2px;font-size:11.5px}.sched{font-size:13px}.tuition{letter-spacing:-.015em;font-size:17px}.chip{border:1px solid color-mix(in srgb, currentColor 12%, transparent);letter-spacing:.01em;min-height:25px;padding:4px 9px;font-size:10.5px}.caret{transition:color .18s,transform .22s}.fmain:hover .caret{color:var(--brand)}.detail{border-top:1px solid var(--line-soft);background:color-mix(in srgb, var(--surface-2) 84%, var(--surface));padding:5px 20px 24px}.detail-toolbar{padding:14px 2px 3px}.detail-meta{letter-spacing:.03em;text-transform:uppercase;font-size:11px}.dgrid{gap:18px;margin-top:17px}.card,.msg{border-color:color-mix(in srgb, var(--line) 90%, transparent);border-radius:15px;box-shadow:0 9px 28px -25px #241b2773}.card{padding:19px 20px}.card h4{letter-spacing:.1em;margin-bottom:15px;font-size:10px}.card h4>svg{width:15px;height:15px;color:var(--brand)}.qb{border-radius:999px;padding:4px 8px;font-size:9px}.months{gap:10px}.day{background:var(--surface-2);border-radius:8px}.inst{border:1px solid var(--line-soft);border-radius:9px;padding:8px 11px}.msg{margin-top:18px}.msg .m-top{padding:12px 16px}.msg .m-body{padding:17px 19px;line-height:1.7}.m-link{color:var(--brand);text-underline-offset:3px;font-weight:650;text-decoration-thickness:1px}.mini{border-color:var(--line);min-height:35px;padding:7px 12px}.mini:hover{border-color:color-mix(in srgb, var(--brand) 30%, var(--line));background:color-mix(in srgb, var(--brand) 5%, var(--surface));color:var(--brand);transform:translateY(-1px)}.foot{margin-top:30px;padding:30px 0 48px;line-height:1.7}.modal-backdrop{-webkit-backdrop-filter:blur(9px)saturate(120%);background:#160e1894;align-items:center;padding:32px 18px}.modal{border-color:color-mix(in srgb, var(--line) 88%, transparent);border-radius:22px;max-height:calc(100vh - 64px);animation:.2s cubic-bezier(.22,1,.36,1) modal-in;overflow-y:auto;box-shadow:0 30px 80px -28px #0a050cb8,0 8px 24px -18px #0a050c80}@keyframes modal-in{0%{opacity:0;transform:translateY(10px)scale(.985)}}.modal-head{z-index:2;background:color-mix(in srgb, var(--surface) 92%, transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);padding:20px 24px;position:sticky;top:0}.modal-title{letter-spacing:-.025em;font-size:22px}.modal-x{border:1px solid #0000;width:34px;height:34px;padding:0;font-size:20px}.modal-x:hover{border-color:var(--line)}.form{gap:18px;padding:22px 24px 24px}.fgrid{gap:16px}.field{gap:7px}.field>span{font-size:11.5px;font-weight:700}.field input,.field select,.field textarea{border-color:var(--line);background:color-mix(in srgb, var(--bg) 62%, var(--surface));border-radius:11px;min-height:43px;padding:10px 12px;transition:border-color .16s,background-color .16s,box-shadow .16s}.field textarea{min-height:112px}.field input:hover,.field select:hover,.field textarea:hover{border-color:color-mix(in srgb, var(--brand) 25%, var(--line))}.field input:focus,.field select:focus,.field textarea:focus{background:var(--surface);border-color:var(--brand);box-shadow:0 0 0 4px color-mix(in srgb, var(--brand) 12%, transparent)}.field input::placeholder,.field textarea::placeholder{color:var(--faint)}.form-error{border:1px solid color-mix(in srgb, var(--warn) 18%, transparent);border-radius:11px;padding:11px 13px}.form-actions{gap:9px;padding-top:3px}.empty{padding:64px 20px}.empty-title{font-size:21px}.skeleton{border-radius:10px}.loading-page{padding-top:64px}.loading-title{width:min(60%,620px);height:44px;margin-bottom:20px}.loading-copy{width:min(78%,720px);height:18px;margin-bottom:36px}.loading-label{width:68%;height:11px;margin-bottom:14px}.loading-value{width:52%;height:28px}.loading-flow{border-radius:var(--radius);height:76px;margin:30px 0}.loading-panel{border-radius:var(--radius);height:340px}:focus-visible{outline:3px solid color-mix(in srgb, var(--accent) 82%, #fff);outline-offset:3px}@media (max-width:860px){.intro{padding-top:48px}.intro h1{max-width:740px}.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.kpi:last-child{grid-column:1/-1}.step{min-height:70px}.fmain{padding:16px 18px}}@media (max-width:560px){.wrap{padding-inline:16px}.bar{flex-wrap:wrap;min-height:64px;padding-block:10px}.brand-sub,.ribbon{display:none}.header-tools{justify-content:space-between;gap:6px;width:100%}.header-tools .ghost{min-width:0;padding-inline:10px}.theme-toggle{width:40px;padding:0;font-size:0}.theme-toggle svg{width:17px;height:17px}.intro{padding-top:40px}.intro:before{margin-bottom:12px;font-size:9px}.intro h1{font-size:clamp(31px,10vw,40px);line-height:1.06}.intro h1 br{display:none}.intro p{margin-top:18px;font-size:14.5px}.semester-pill{border-radius:14px;flex-wrap:wrap;align-items:flex-start;line-height:1.45}.semester-pill:before{margin-top:5px}.kpis{grid-template-columns:1fr;gap:10px}.kpi,.kpi:last-child{grid-column:auto;min-height:108px;padding:17px 18px}.kpi .k-val{font-size:29px}.flow{border-radius:15px}.step{border-right:0;flex-basis:100%;min-height:58px;padding:12px 15px}.step:last-child{border-bottom:0}.action{align-items:stretch}.action form:first-child,.action form:first-child .primary{width:100%}.action .grow{display:none}.panel-head{align-items:flex-start;padding:16px}.panel-head-actions{width:100%}.panel-head-actions>*{flex:1}.fmain{padding:15px 14px}.detail{padding-inline:14px}.detail-tools{width:100%}.detail-tools>*{flex:1}.detail-tools form .mini,.detail-tools>.mini{width:100%}.card{padding:16px}.card h4{flex-wrap:wrap}.qb{margin-left:0}.mrow{grid-template-columns:44px 1fr}.sched-foot,.inv-head,.msg .m-top{gap:10px}.msg .m-top{flex-wrap:wrap}.msg .m-top .chip{margin-left:35px}.ba{padding:21px 20px}.modal-backdrop{align-items:flex-end;padding:12px}.modal{border-radius:20px;max-height:calc(100vh - 24px)}.modal-head,.form{padding-inline:18px}.form-actions .ghost,.form-actions .primary{flex:1}.loading-page{padding-top:42px}}.brand-mark{object-fit:cover;border:1px solid var(--line);width:44px;height:44px;box-shadow:var(--shadow);background:#f7f4ef;border-radius:12px;flex:none}.intro{z-index:0;position:relative}.intro:before{content:"";z-index:-1;opacity:.6;pointer-events:none;background:url(/brand/hero-bg.jpg) 100% 0/contain no-repeat;width:min(760px,72%);height:560px;position:absolute;top:-46px;right:-32px;-webkit-mask-image:linear-gradient(270deg,#000 35%,#0000 92%);mask-image:linear-gradient(270deg,#000 35%,#0000 92%)}@media (prefers-color-scheme:dark){.intro:before{opacity:0}}:root[data-theme=light] .intro:before{opacity:.6}:root[data-theme=dark] .intro:before{opacity:0}@media (max-width:720px){.intro:before{display:none}}.empty-art{object-fit:contain;mix-blend-mode:multiply;border-radius:16px;width:180px;height:180px;margin-bottom:4px}@media (prefers-color-scheme:dark){.empty-art{mix-blend-mode:normal;background:#f7f4ef;padding:10px}}:root[data-theme=light] .empty-art{mix-blend-mode:multiply;background:0 0;padding:0}:root[data-theme=dark] .empty-art{mix-blend-mode:normal;background:#f7f4ef;padding:10px}.login-wrap{background:radial-gradient(120% 80% at 100% 0%, color-mix(in srgb, var(--brand) 10%, transparent), transparent 60%), var(--bg);place-items:center;min-height:100dvh;padding:24px;display:grid}.login-card{background:var(--surface);border:1px solid var(--line);width:100%;max-width:400px;box-shadow:var(--shadow);border-radius:20px;padding:28px 28px 30px}.login-brand{align-items:center;gap:12px;margin-bottom:22px;display:flex}.login-title{font-family:var(--serif);letter-spacing:-.01em;font-size:24px;font-weight:600}.login-sub{color:var(--muted);margin:8px 0 22px;font-size:14px;line-height:1.5}.login-form{flex-direction:column;gap:16px;display:flex}.login-form .primary{justify-content:center;width:100%}.mini{text-decoration:none}.lessons-card{margin-top:16px}.lesson-rows{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:8px;display:grid}.lesson-row{border:1px solid var(--line-soft);background:var(--surface-2);border-radius:9px;flex-wrap:wrap;align-items:center;gap:8px;padding:6px 8px;display:flex}.lesson-row select{flex:130px;min-width:0;max-width:100%}.lesson-row.nonbill{opacity:.7}.lesson-date{font-variant-numeric:tabular-nums;color:var(--ink-soft);min-width:78px;font-size:12.5px}.lesson-row .chip{padding:2px 7px;font-size:10px}.lesson-select{color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:7px;margin-left:auto;padding:3px 6px;font-family:inherit;font-size:12px}.lesson-waive{color:var(--faint);cursor:pointer;white-space:nowrap;flex:none;align-items:center;gap:4px;min-height:34px;padding-inline:2px;font-size:12px;display:inline-flex}.lesson-waive input{width:16px;height:16px;accent-color:var(--brand);margin:0}.lesson-row.nonbill .lesson-waive{color:var(--text)}.lesson-x{color:var(--faint);background:0 0;border:0;border-radius:6px;padding:2px 4px;font-size:12px}.lesson-x:hover{color:var(--warn);background:var(--warn-bg)}.makeup-add{border-top:1px solid var(--line-soft);align-items:center;gap:8px;margin-top:12px;padding-top:12px;display:flex}.makeup-add input[type=date]{color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:6px 9px;font-family:inherit;font-size:13px}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.field.full{grid-column:1/-1}.frow.inactive .fmain{opacity:.55}.frow.inactive.open .fmain,.frow.inactive .detail{opacity:.72}.lesson-badges{align-items:center;gap:6px;margin-left:auto;display:inline-flex}.lesson-badges .qb{margin-left:0}.makeup-count{color:var(--info);background:var(--info-bg)}.payment-card{margin-top:18px}.payment-open{color:var(--warn);background:var(--warn-bg)}.payment-balance{border:1px solid var(--line-soft);background:var(--surface-2);color:var(--ink-soft);border-radius:10px;padding:10px 12px;font-size:13px}.payment-balance b{color:var(--ink)}.payment-credit{color:var(--good);font-weight:650}.payment-list{margin-top:10px}.payment-item{border-bottom:1px solid var(--line-soft);min-height:36px;color:var(--muted);grid-template-columns:1fr auto 26px;align-items:center;gap:10px;font-size:12.5px;display:grid}.payment-item b{color:var(--ink-soft)}.payment-empty{color:var(--muted);padding:7px 0;font-size:12.5px}.payment-form{align-items:center;gap:8px;margin-top:12px;display:flex}.payment-form label{width:min(190px,100%);position:relative}.payment-prefix{color:var(--muted);position:absolute;top:50%;left:11px;transform:translateY(-50%)}.payment-form input{border:1px solid var(--line);background:var(--surface);width:100%;min-height:35px;color:var(--ink);font:inherit;font-variant-numeric:tabular-nums;border-radius:9px;padding:7px 10px 7px 25px}.payment-form input:focus{border-color:var(--brand);box-shadow:0 0 0 3px color-mix(in srgb, var(--brand) 12%, transparent);outline:none}.payment-error{color:var(--warn);margin-top:9px;font-size:12.5px}.reports-main{padding-top:48px;padding-bottom:64px}.report-heading{justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:34px;display:flex}.report-heading h1{font-family:var(--serif);letter-spacing:-.035em;margin-top:7px;font-size:clamp(32px,5vw,48px);font-weight:600}.report-heading p{color:var(--muted);margin:10px 0 0}.report-eyebrow{color:var(--accent);letter-spacing:.14em;text-transform:uppercase;font-size:10px;font-weight:750}.report-section{margin-top:24px}.report-section>h2{font-family:var(--serif);margin:0 0 12px;font-size:20px;font-weight:600}.report-summary{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}.report-total{min-height:112px}.report-total .k-val{font-size:clamp(24px,3vw,32px)}.report-panel{overflow:hidden}.report-panel .panel-head{min-height:60px}.report-table-wrap{overflow-x:auto}.report-table{border-collapse:collapse;width:100%;font-size:13.5px}.report-table th,.report-table td{border-bottom:1px solid var(--line-soft);text-align:left;vertical-align:middle;padding:12px 18px}.report-table th{background:var(--surface-2);color:var(--faint);letter-spacing:.11em;text-transform:uppercase;font-size:9.5px;font-weight:750}.report-table th.num,.report-table td.num{text-align:right}.report-table tbody tr:last-child td{border-bottom:0}.report-table tbody tr.inactive{opacity:.55}.report-balance{color:var(--warn);font-weight:700}.report-empty{color:var(--muted);text-align:center!important;padding-block:26px!important}@media (max-width:680px){.report-summary{grid-template-columns:1fr}.report-total{min-height:96px}.lesson-badges{flex-wrap:wrap;width:100%;margin-left:0}.payment-form{flex-direction:column;align-items:stretch}.payment-form label,.payment-form .mini{width:100%}}@media print{header .header-tools,.print-hide{display:none!important}header{box-shadow:none;background:#fff;border-bottom:1px solid #bbb;position:static}body{color:#111;background:#fff;font-size:11pt}.reports-main{max-width:none;padding:24px 0 0}.report-section,.report-panel,.report-summary{break-inside:avoid}.panel,.kpi{box-shadow:none}}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#e7ebf3;--surface:#ffffffb8;--surface-2:#ffffff6b;--surface-solid:#f7f9fc;--ink:#1d2432;--ink-soft:#3c485e;--muted:#5c677a;--faint:#636e82;--line:#3442602e;--line-soft:#3442601c;--brand:#44578e;--brand-soft:#5d73a9;--accent:#8a5a17;--accent-soft:#aa7629;--good:#266747;--good-bg:#daf1e4c7;--warn:#87530d;--warn-bg:#f9e9c9d1;--info:#355a86;--info-bg:#dee9f8d1;--draft:#665e70;--draft-bg:#ebe7efd1;--glass-bg:#ffffff9e;--glass-bg-strong:#ffffffb3;--glass-highlight:#ffffff8a;--glass-border:#ffffffd1;--glass-line:#38496c29;--glass-blur:blur(20px) saturate(165%);--shadow:0 1px 0 #ffffffad inset, 0 20px 52px -32px #18203680, 0 8px 24px -20px #18203647;--shadow-hover:0 1px 0 #ffffffc7 inset, 0 26px 58px -32px #18203694, 0 12px 28px -20px #18203657;--ambient:radial-gradient(circle at 8% 5%, #e5ae577a 0, transparent 34%), radial-gradient(circle at 88% 2%, #7e92be94 0, transparent 38%), radial-gradient(circle at 14% 88%, #469ba861 0, transparent 40%), radial-gradient(circle at 92% 84%, #b95b8357 0, transparent 38%), linear-gradient(145deg, #ece9e2 0%, #e6ebf5 48%, #e2e9ef 100%)}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0e1320;--surface:#1e2538bd;--surface-2:#232b4085;--surface-solid:#1c2334;--ink:#f4f6fb;--ink-soft:#d6dded;--muted:#aab6cb;--faint:#8f9ab0;--line:#e5edff2b;--line-soft:#e5edff1a;--brand:#a9c0ea;--brand-soft:#c6d6f4;--accent:#efbf6b;--accent-soft:#f5cf8d;--good:#82d0a4;--good-bg:#1d4b35b8;--warn:#f0bc61;--warn-bg:#5b4119b3;--info:#9dc0ef;--info-bg:#273e5eb3;--draft:#c0b5cb;--draft-bg:#43374ec2;--glass-bg:#1319288a;--glass-bg-strong:#171d2ea3;--glass-highlight:#ffffff12;--glass-border:#ffffff26;--glass-line:#ffffff1f;--shadow:0 1px 0 #ffffff14 inset, 0 24px 64px -34px #000000e6, 0 10px 28px -20px #000000b8;--shadow-hover:0 1px 0 #ffffff1f inset, 0 30px 72px -34px #000000f2, 0 14px 32px -20px #000000c7;--ambient:radial-gradient(circle at 8% 4%, #d5963957 0, transparent 34%), radial-gradient(circle at 88% 0%, #5672b299 0, transparent 39%), radial-gradient(circle at 12% 90%, #1b7b8f66 0, transparent 42%), radial-gradient(circle at 94% 86%, #97306266 0, transparent 38%), linear-gradient(145deg, #0e1322 0%, #131a2c 50%, #0c1220 100%)}}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#e7ebf3;--surface:#ffffffb8;--surface-2:#ffffff6b;--surface-solid:#f7f9fc;--ink:#1d2432;--ink-soft:#3c485e;--muted:#5c677a;--faint:#636e82;--line:#3442602e;--line-soft:#3442601c;--brand:#44578e;--brand-soft:#5d73a9;--accent:#8a5a17;--accent-soft:#aa7629;--good:#266747;--good-bg:#daf1e4c7;--warn:#87530d;--warn-bg:#f9e9c9d1;--info:#355a86;--info-bg:#dee9f8d1;--draft:#665e70;--draft-bg:#ebe7efd1;--glass-bg:#ffffff9e;--glass-bg-strong:#ffffffb3;--glass-highlight:#ffffff8a;--glass-border:#ffffffd1;--glass-line:#38496c29;--shadow:0 1px 0 #ffffffad inset, 0 20px 52px -32px #18203680, 0 8px 24px -20px #18203647;--shadow-hover:0 1px 0 #ffffffc7 inset, 0 26px 58px -32px #18203694, 0 12px 28px -20px #18203657;--ambient:radial-gradient(circle at 8% 5%, #e5ae577a 0, transparent 34%), radial-gradient(circle at 88% 2%, #7e92be94 0, transparent 38%), radial-gradient(circle at 14% 88%, #469ba861 0, transparent 40%), radial-gradient(circle at 92% 84%, #b95b8357 0, transparent 38%), linear-gradient(145deg, #ece9e2 0%, #e6ebf5 48%, #e2e9ef 100%)}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0e1320;--surface:#1e2538bd;--surface-2:#232b4085;--surface-solid:#1c2334;--ink:#f4f6fb;--ink-soft:#d6dded;--muted:#aab6cb;--faint:#8f9ab0;--line:#e5edff2b;--line-soft:#e5edff1a;--brand:#a9c0ea;--brand-soft:#c6d6f4;--accent:#efbf6b;--accent-soft:#f5cf8d;--good:#82d0a4;--good-bg:#1d4b35b8;--warn:#f0bc61;--warn-bg:#5b4119b3;--info:#9dc0ef;--info-bg:#273e5eb3;--draft:#c0b5cb;--draft-bg:#43374ec2;--glass-bg:#1319288a;--glass-bg-strong:#171d2ea3;--glass-highlight:#ffffff12;--glass-border:#ffffff26;--glass-line:#ffffff1f;--shadow:0 1px 0 #ffffff14 inset, 0 24px 64px -34px #000000e6, 0 10px 28px -20px #000000b8;--shadow-hover:0 1px 0 #ffffff1f inset, 0 30px 72px -34px #000000f2, 0 14px 32px -20px #000000c7;--ambient:radial-gradient(circle at 8% 4%, #d5963957 0, transparent 34%), radial-gradient(circle at 88% 0%, #5672b299 0, transparent 39%), radial-gradient(circle at 12% 90%, #1b7b8f66 0, transparent 42%), radial-gradient(circle at 94% 86%, #97306266 0, transparent 38%), linear-gradient(145deg, #0e1322 0%, #131a2c 50%, #0c1220 100%)}html{background:var(--bg)}body,.login-wrap{background:var(--ambient);background-attachment:fixed}body{min-height:100vh}header,.kpi,.flow,.panel,.card,.msg,.modal,.login-card{background:linear-gradient(135deg, var(--glass-highlight), transparent 46%), var(--glass-bg);border:1px solid var(--glass-border);box-shadow:var(--shadow);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur)}header{background:var(--glass-bg-strong);border-width:0 0 1px;border-color:var(--glass-border);box-shadow:0 1px 0 var(--glass-border) inset, 0 14px 38px -30px #190e2a9e}.kpi,.flow,.panel,.card,.msg,.modal,.login-card{border-radius:18px}.kpi:hover{border-color:color-mix(in srgb, var(--brand) 30%, var(--glass-border))}.brand-mark{border:1px solid var(--glass-border);background:var(--glass-bg-strong);box-shadow:0 1px 0 var(--glass-highlight) inset, 0 12px 30px -20px #190e2ab3;padding:3px}.intro:before{background-image:none;display:none}.intro h1{text-shadow:0 1px #ffffff29;font-weight:560}.intro h1 em{color:var(--brand);-webkit-text-decoration-color:color-mix(in srgb, var(--accent) 55%, transparent);text-decoration-color:color-mix(in srgb, var(--accent) 55%, transparent)}.semester-pill,.ribbon,.ghost,.mini,.flow,.panel,.msg{overflow:hidden}.step,.frow,.panel-head,.thead,.detail,.msg .m-top,.report-table th,.report-table td{border-color:var(--glass-line)}.step.active{background:linear-gradient(135deg, color-mix(in srgb, var(--brand) 16%, transparent), color-mix(in srgb, var(--surface) 42%, transparent))}.step.done{background:color-mix(in srgb, var(--good) 7%, transparent)}.step.active .dot{color:#fff}.panel-head,.thead,.detail,.msg .m-top,.report-table th{background:color-mix(in srgb, var(--surface-2) 84%, transparent)}.fmain:hover,.frow.open .fmain{background:color-mix(in srgb, var(--brand) 8%, transparent)}.card,.msg,.modal,.login-card{background-color:var(--glass-bg-strong)}.msg .m-body,.report-table td,.tuition,.line .a,.kpi .k-val{text-shadow:none}.chip,.lesson-row,.payment-item,.inst,.day{-webkit-backdrop-filter:none;backdrop-filter:none}.lesson-row,.payment-item,.inst,.day,.payment-balance{background:color-mix(in srgb, var(--surface-2) 74%, transparent);border-color:var(--glass-line)}.payment-item{border:1px solid var(--glass-line);border-radius:9px;padding-inline:9px}.payment-list{flex-direction:column;gap:6px;display:flex}.modal-backdrop{-webkit-backdrop-filter:none;backdrop-filter:none;background:#0c08149e}.modal{background:linear-gradient(135deg, var(--glass-highlight), transparent 46%), var(--glass-bg-strong)}.modal-head{background:color-mix(in srgb, var(--surface) 82%, transparent);-webkit-backdrop-filter:none;backdrop-filter:none}.field input:focus,.field select:focus,.field textarea:focus,.payment-form input:focus{background:var(--surface);border-color:var(--brand);box-shadow:0 0 0 4px color-mix(in srgb, var(--brand) 20%, transparent)}.login-card{padding:32px}.skeleton{background:linear-gradient(90deg, color-mix(in srgb, var(--surface-2) 80%, transparent) 25%, color-mix(in srgb, var(--glass-border) 70%, transparent) 38%, color-mix(in srgb, var(--surface-2) 80%, transparent) 63%);background-size:400% 100%}:focus-visible{outline:3px solid var(--accent);outline-offset:3px;box-shadow:0 0 0 6px color-mix(in srgb, var(--surface-solid) 76%, transparent)}@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){header,.kpi,.flow,.panel,.card,.msg,.modal,.login-card{background:var(--surface-solid)}}@media (max-width:860px){header,.kpi,.flow,.panel,.card,.msg,.modal,.login-card{--glass-blur:blur(18px) saturate(155%)}}@media (max-width:560px){.kpi,.flow,.panel,.card,.msg,.modal,.login-card{border-radius:16px}.login-card{padding:25px 22px 27px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media print{body,.login-wrap{background:#fff}header,.kpi,.flow,.panel,.card,.msg,.modal,.login-card{box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;background:#fff;border-color:#bbb}}.m-actions{flex-wrap:wrap;align-items:center;gap:10px;padding:0 18px 16px;display:flex}.semester-controls{flex-wrap:wrap}.semester-switcher,.semester-switcher label{align-items:center;display:inline-flex}.semester-switcher select{border:1px solid var(--glass-line);background:color-mix(in srgb, var(--surface) 74%, transparent);max-width:190px;min-height:34px;color:var(--ink);font:inherit;border-radius:9px;padding:5px 30px 5px 10px;font-weight:700}.semester-switcher select:disabled{opacity:.65}.semester-switch-status,.semester-switch-error{margin-left:7px;font-size:11px}.semester-switch-status{color:var(--muted)}.semester-switch-error{color:var(--warn)}.semester-meta{color:var(--ink-soft)}.semester-new.ghost{min-height:34px;padding:5px 10px}.check-field{min-height:44px;color:var(--ink-soft);align-items:center;gap:10px;font-weight:650;display:flex}.check-field input{width:18px;height:18px;accent-color:var(--brand)}.choice{min-height:44px;color:var(--ink-soft);cursor:pointer;align-items:flex-start;gap:10px;padding:6px 0;font-weight:650;display:flex}.choice input{width:18px;height:18px;min-height:0;accent-color:var(--brand);flex:none;margin-top:2px}.semester-carry-hint{margin:-12px 0 0 28px}.today-main{max-width:760px;padding-top:42px;padding-bottom:72px}.today-heading{margin-bottom:24px}.today-heading h1{font-family:var(--serif);letter-spacing:-.04em;margin-top:6px;font-size:clamp(38px,9vw,56px);font-weight:600}.today-heading p{color:var(--muted);margin:7px 0 0;font-size:16px}.today-list{grid-template-columns:1fr;gap:16px;display:grid}.today-card{border:1px solid var(--glass-border);background:linear-gradient(135deg, var(--glass-highlight), transparent 46%), var(--glass-bg);box-shadow:var(--shadow);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border-radius:20px;padding:22px}.today-card-head{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.today-card h2{font-family:var(--serif);letter-spacing:-.025em;font-size:28px;font-weight:600}.today-time{color:var(--ink-soft);margin-top:4px;font-size:19px;font-weight:700}.today-status{border:1px solid var(--line);background:var(--draft-bg);min-height:30px;color:var(--draft);letter-spacing:.05em;text-transform:uppercase;border-radius:999px;align-items:center;padding:5px 10px;font-size:11px;font-weight:750;display:inline-flex}.today-status.status-attended,.today-status.status-makeup{border-color:color-mix(in srgb, var(--good) 28%, var(--line));background:var(--good-bg);color:var(--good)}.today-status.status-missed,.today-status.status-cancelled{border-color:color-mix(in srgb, var(--warn) 28%, var(--line));background:var(--warn-bg);color:var(--warn)}.today-status.status-excused{border-color:color-mix(in srgb, var(--info) 28%, var(--line));background:var(--info-bg);color:var(--info)}.today-status-actions{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:22px;display:grid}.today-status-button,.today-cancel,.today-makeup button,.today-makeup input{min-height:48px;font:inherit;border-radius:12px}.today-status-button{border:1px solid var(--glass-line);background:color-mix(in srgb, var(--surface) 66%, transparent);color:var(--ink-soft);font-weight:750}.today-status-button:hover,.today-status-button.selected{transform:translateY(-1px);box-shadow:0 10px 24px -18px}.today-status-button.status-attended:hover,.today-status-button.status-attended.selected{border-color:color-mix(in srgb, var(--good) 48%, var(--line));background:var(--good-bg);color:var(--good)}.today-status-button.status-missed:hover,.today-status-button.status-missed.selected{border-color:color-mix(in srgb, var(--warn) 48%, var(--line));background:var(--warn-bg);color:var(--warn)}.today-status-button.status-excused:hover,.today-status-button.status-excused.selected{border-color:color-mix(in srgb, var(--info) 48%, var(--line));background:var(--info-bg);color:var(--info)}.today-status-button:disabled,.today-cancel:disabled,.today-makeup button:disabled,.today-makeup input:disabled{cursor:wait;opacity:.62}.today-cancel{border:1px solid var(--glass-line);width:100%;color:var(--muted);background:0 0;margin-top:10px;font-size:13px;font-weight:700}.today-cancel:hover,.today-cancel.selected{border-color:color-mix(in srgb, var(--warn) 38%, var(--line));background:var(--warn-bg);color:var(--warn)}.today-makeup{border-top:1px solid var(--glass-line);margin-top:18px;padding-top:18px}.today-makeup>label{color:var(--ink-soft);margin-bottom:8px;font-size:13px;font-weight:750;display:block}.today-makeup>div{grid-template-columns:minmax(0,1fr) auto;gap:10px;display:grid}.today-makeup input{border:1px solid var(--glass-line);background:color-mix(in srgb, var(--surface) 72%, transparent);width:100%;color:var(--ink);padding:9px 12px}.today-feedback{margin:12px 0 0;font-size:13px;font-weight:650}.today-feedback.error{color:var(--warn)}.today-feedback.success{color:var(--good)}.today-empty h2{font-family:var(--serif);font-size:26px;font-weight:600}.today-empty p{color:var(--muted);margin:8px 0 0}@media (max-width:560px){.semester-controls{width:100%}.semester-meta{width:calc(100% - 20px);margin-left:20px}.semester-switcher select{max-width:min(190px,100vw - 130px)}.today-main{padding-top:30px}.today-card{border-radius:17px;padding:18px}.today-status-actions{grid-template-columns:1fr}.today-status-button{min-height:54px;font-size:16px}.today-makeup>div{grid-template-columns:1fr}.today-makeup button{width:100%}}@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){.today-card{background:var(--surface-solid)}}.readonly-note{border:1px solid var(--line);border-left:3px solid var(--accent,#8b7fc7);background:var(--surface);color:var(--muted);border-radius:10px;margin-top:14px;padding:10px 14px;font-size:13.5px}.readonly-note b{color:var(--ink)}.readonly-note a{color:inherit;text-decoration:underline}.report-note{color:var(--muted);margin:0 0 12px;font-size:13px;line-height:1.5}.history-term{border-top:1px solid var(--line-soft);padding:4px 0}.history-term:first-of-type{border-top:0}.history-term>summary{cursor:pointer;align-items:baseline;gap:12px;padding:9px 2px;font-size:14px;display:flex}.history-term>summary::-webkit-details-marker{color:var(--muted)}.history-meta{color:var(--muted);font-size:12.5px}.history-term[open]>summary{margin-bottom:4px}.infotip{vertical-align:super;margin-left:4px;display:inline-block;position:relative}.infotip-btn{border:1.5px solid var(--accent);width:22px;height:22px;color:var(--accent);font-family:var(--serif);cursor:pointer;background:0 0;border-radius:50%;font-size:13px;font-style:italic;font-weight:700;line-height:1}.infotip-btn:hover{background:var(--accent);color:#fff}.infotip-pop{z-index:40;background:var(--surface);border:1px solid var(--line);width:min(340px,80vw);font-family:var(--sans);letter-spacing:0;color:var(--ink-soft);text-align:left;border-radius:10px;padding:12px 14px;font-size:13.5px;font-style:normal;font-weight:400;line-height:1.55;position:absolute;top:30px;left:-8px;box-shadow:0 10px 30px #140f1924}.infotip-pop p{margin:0 0 8px}.infotip-more{margin:0;font-weight:600}.infotip-more a{color:var(--accent)}.guide .intro{padding-bottom:18px}.guide-section{margin:0 0 18px;padding:18px 20px}.guide-steps{color:var(--ink-soft);gap:9px;margin:10px 0 4px;padding-left:22px;line-height:1.55;display:grid}.guide-steps b{color:var(--ink)}.guide-note{color:var(--ink-soft);max-width:68ch;margin:8px 0;line-height:1.55}.guide-note b{color:var(--ink)}.danger-zone{border-top:1px dashed var(--line);flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:14px;margin-top:26px;padding-top:14px;display:flex}.danger-hint{color:var(--ink-soft);text-align:right;max-width:46ch;font-size:12px;line-height:1.45}.login-split{grid-template-columns:minmax(0,460px) minmax(0,420px);align-items:center;gap:34px;display:grid}.login-art{border-radius:18px;width:100%;height:auto;box-shadow:0 18px 50px #1e14232e}@media (max-width:900px){.login-split{grid-template-columns:minmax(0,420px)}.login-art{display:none}}.empty-art{border-radius:14px;width:300px;max-width:80%;height:auto;margin:0 auto 14px;display:block}.today-empty{text-align:center;padding:26px 20px 30px}.guide-intro{grid-template-columns:minmax(0,1fr) minmax(0,340px);align-items:center;gap:26px;display:grid}.guide-intro .guide-art{border-radius:14px;grid-area:1/2/span 2;width:100%;height:auto;box-shadow:0 12px 34px #1e142324}@media (max-width:760px){.guide-intro{grid-template-columns:1fr}.guide-intro .guide-art{grid-area:auto/1;max-width:340px}}.project-heading{align-items:center}.project-invoice-table{min-width:980px}.project-invoice-form{width:100%;min-width:0}.modal:has(.project-invoice-form){max-width:880px}.project-lines{border:0;gap:12px;margin:0;padding:0;display:grid}.project-lines>legend{color:var(--ink-soft);margin-bottom:2px;font-size:12px;font-weight:700}.project-line{border:1px solid var(--line-soft);border-radius:var(--radius-sm);background:var(--surface-2);grid-template-columns:minmax(0,1.8fr) minmax(0,.8fr) auto auto;align-items:end;gap:12px;padding:14px;display:grid}.project-taxable{white-space:nowrap;min-height:43px}.project-line .mini{min-height:43px}.project-line .mini:disabled{opacity:.4;cursor:not-allowed}.report-panel>.project-export-note{margin:0;padding:12px 20px 0}.project-client-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}tr.muted-row td{opacity:.55}.project-preview{border:1px solid var(--line-soft);border-radius:var(--radius-sm);background:var(--surface-2);gap:6px;padding:12px 14px;display:grid}.project-preview-head{color:var(--ink-soft);font-size:12px;font-weight:700}.project-preview-list{font-variant-numeric:tabular-nums;flex-wrap:wrap;gap:6px 14px;margin:0;padding:0;font-size:13px;list-style:none;display:flex}.project-preview-total{font-variant-numeric:tabular-nums;font-weight:700}.project-invoice-form .hint{color:var(--ink-soft);margin:0;font-size:13px}.project-delete{color:var(--warn)}.project-delete:hover{border-color:var(--warn);background:var(--warn-bg)}@media (max-width:680px){.project-heading{flex-direction:column;align-items:stretch}.project-heading>.primary{justify-content:center;width:100%}.project-invoice-form{min-width:0}.project-line{grid-template-columns:1fr}.project-line .mini{width:100%}.project-form-actions .grow{display:none}}.project-heading-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.project-export-note{color:var(--ink-soft);max-width:62ch;margin:-6px 0 18px;font-size:13px}.inline-form{display:inline}.inline-form button{margin:6px 4px 0 0}@media (max-width:600px){.infotip-pop{width:auto;position:fixed;inset:auto 16px 16px}.infotip-btn{width:32px;height:32px;font-size:16px}}.guide-section{scroll-margin-top:96px}.infotip-pop{background:var(--surface);opacity:1;-webkit-backdrop-filter:none;backdrop-filter:none}@media (max-width:600px){.infotip-pop{z-index:1000}}.send-by-text{font-family:var(--serif);font-size:18px}.google-signin{justify-content:center;align-items:center;width:100%;margin-top:1rem;text-decoration:none;display:flex}.login-or{text-align:center;opacity:.7;margin:.9rem 0 .2rem;font-size:.85rem}.privacy-card{max-width:40rem}.privacy-card h2{margin:1.2rem 0 .4rem;font-size:1rem}.privacy-card p{margin:0 0 .6rem;line-height:1.55}.login-legal{text-align:center;opacity:.7;margin-top:1rem;font-size:.8rem}.detail-tools{flex-wrap:wrap}.send-note{color:var(--muted);flex:1 0 100%;font-size:12.5px}.send-note.err{color:var(--warn)}
