:root{--page: #DEF0F2;--plate: #FFFFFF;--band: #C3E4E8;--line: #A9D8DD;--line-soft: #D3EBEE;--line-field: #419AA4;--ink: #1F3943;--ink-muted: #4C6672;--marine: #165D6D;--marine-deep: #134251;--aqua-ink: #1B6C76;--gold: #C9A227;--gold-ink: #765F17;--gold-lift: #E3C877;--gold-wash: #F3EACD;--on-dark: #E7F4F6;--on-dark-soft: #9FC9D1;--green: #1E7B45;--green-wash: #E1F3E8;--red: #B42318;--red-wash: #FCE8E6;--amber-ink: #8A5A00;--amber-wash: #FFF1D6;--muted-wash: #EEF3F4;--font-ui: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-display: "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;--radius: 10px}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--page);color:var(--ink);font:15px/1.5 var(--font-ui);-webkit-font-smoothing:antialiased}h1,h2,h3{font-family:var(--font-display);color:var(--marine);font-weight:600;margin:0 0 8px;line-height:1.2}h1{font-size:28px}h2{font-size:22px}h3{font-size:17px}p{margin:0 0 10px}a{color:var(--aqua-ink)}small,.muted{color:var(--ink-muted)}.small{font-size:13px}.topbar{background:var(--marine-deep);color:var(--on-dark);position:sticky;top:0;z-index:20}.topbar-inner{max-width:1120px;margin:0 auto;padding:10px 16px;display:flex;gap:16px;align-items:center;flex-wrap:wrap}.brand{font-family:var(--font-display);font-size:18px;color:var(--on-dark);white-space:nowrap}.brand b{color:var(--gold-lift);font-weight:600}.nav{display:flex;gap:4px;flex-wrap:wrap}.nav button{background:transparent;color:var(--on-dark);border:0;border-radius:999px;padding:6px 12px;font:inherit;font-size:14px;cursor:pointer}.nav button:hover{background:#ffffff14}.nav button.active{background:var(--gold);color:var(--marine-deep);font-weight:600}.nav .badge{background:var(--gold-lift);color:var(--marine-deep);border-radius:999px;padding:0 6px;font-size:11px;margin-left:4px}.main{max-width:1120px;margin:0 auto;padding:20px 16px 80px}.banner{background:var(--gold-wash);color:var(--gold-ink);padding:8px 16px;text-align:center;font-size:14px}.banner.danger{background:var(--red-wash);color:var(--red)}.card{background:var(--plate);border-radius:var(--radius);padding:16px;box-shadow:0 1px 2px #13425114;margin-bottom:16px}.card.tight{padding:12px}.row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.row.between{justify-content:space-between}.stack>*+*{margin-top:10px}.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}.split{display:grid;grid-template-columns:280px 1fr;gap:16px;align-items:start}@media (max-width: 760px){.split{grid-template-columns:1fr}}hr{border:0;border-top:1px solid var(--line-soft);margin:14px 0}.field{display:block;font-size:13px;color:var(--ink-muted)}.field>label,.field>legend{display:block;margin-bottom:3px;padding:0}fieldset.field{border:0;margin:0;padding:0;min-width:0}input,select,textarea{font:inherit;color:var(--ink);background:#fff;border:1px solid var(--line-field);border-radius:8px;padding:7px 9px;width:100%}input[type=checkbox],input[type=radio]{width:auto;accent-color:var(--aqua-ink)}textarea{min-height:70px;resize:vertical}input:focus,select:focus,textarea:focus,button:focus-visible{outline:2px solid var(--gold);outline-offset:1px}.check{display:flex;gap:8px;align-items:flex-start;font-size:14px;color:var(--ink)}.check input{margin-top:3px}.btn{font:inherit;font-size:14px;border-radius:8px;padding:7px 14px;cursor:pointer;border:1px solid var(--line-field);background:#fff;color:var(--aqua-ink);white-space:nowrap}.btn:hover{background:var(--muted-wash)}.btn.primary{background:var(--aqua-ink);border-color:var(--aqua-ink);color:#fff;font-weight:600}.btn.primary:hover{background:var(--marine)}.btn.danger{color:var(--red);border-color:#e3a39c}.btn.small{padding:3px 9px;font-size:13px}.btn.ghost{border-color:transparent;background:transparent}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.on{background:var(--aqua-ink);color:#fff;border-color:var(--aqua-ink)}.pill{display:inline-block;border-radius:999px;padding:1px 9px;font-size:12px;font-weight:600;white-space:nowrap}.pill.paid{background:var(--green-wash);color:var(--green)}.pill.overdue,.pill.expired{background:var(--red-wash);color:var(--red)}.pill.awaiting,.pill.soon{background:var(--amber-wash);color:var(--amber-ink)}.pill.neutral,.pill.replaced,.pill.void{background:var(--muted-wash);color:var(--ink-muted)}.pill.gold{background:var(--gold-wash);color:var(--gold-ink)}.pill.plenty{background:var(--green-wash);color:var(--green)}.note{border-left:3px solid var(--gold);background:var(--gold-wash);color:var(--gold-ink);padding:8px 12px;border-radius:6px;font-size:14px}.note.error{border-color:var(--red);background:var(--red-wash);color:var(--red)}.note.info{border-color:var(--aqua-ink);background:#e6f4f6;color:var(--marine)}table.list{width:100%;border-collapse:collapse;font-size:14px}table.list th{text-align:left;font-weight:600;color:var(--ink-muted);font-size:12px;text-transform:uppercase;letter-spacing:.03em;padding:6px 8px;border-bottom:1px solid var(--line-soft)}table.list td{padding:8px;border-bottom:1px solid var(--line-soft);vertical-align:top}table.list td.num,table.list th.num{text-align:right;font-variant-numeric:tabular-nums}.scrollx{overflow-x:auto}.lesson{display:grid;grid-template-columns:80px 1fr;gap:10px;padding:10px 0;border-bottom:1px solid var(--line-soft)}.lesson:last-child{border-bottom:0}.lesson .time{font-variant-numeric:tabular-nums;color:var(--marine);font-weight:600}.lesson.dim{opacity:.6}.lesson .who{font-weight:600}.controls{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}.week{display:grid;gap:8px;grid-template-columns:repeat(var(--cols),minmax(130px,1fr))}.week .day{background:var(--plate);border-radius:var(--radius);padding:8px;min-height:120px}.week .day h3{font-size:14px;margin-bottom:6px;font-family:var(--font-ui)}.week .day.closed{background:var(--muted-wash)}.block{border-radius:6px;padding:5px 7px;margin-bottom:5px;font-size:13px;background:#e6f4f6;border-left:3px solid var(--aqua-ink);cursor:pointer}.block.pencil{background:#fff;border:1px dashed var(--line-field);border-left-width:3px;color:var(--ink-muted)}.block.pause,.block.off{background:var(--muted-wash);border-left-color:var(--ink-muted);color:var(--ink-muted)}.block.makeup{border-left-color:var(--gold);background:var(--gold-wash)}.steps{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:14px}.steps span{font-size:12px;padding:2px 9px;border-radius:999px;background:var(--band);color:var(--marine)}.steps span.now{background:var(--gold);color:var(--marine-deep);font-weight:600}.wizard{max-width:720px;margin:0 auto}.scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:#13425173;display:flex;align-items:flex-start;justify-content:center;padding:40px 12px;overflow-y:auto;z-index:50}.modal{background:var(--plate);border-radius:12px;padding:18px;width:100%;max-width:560px;box-shadow:0 10px 30px #0003}.modal.wide{max-width:860px}.invoice-doc{background:#fff;color:#222;padding:32px;font-size:14px;border:1px solid var(--line-soft)}.invoice-doc .inv-head{display:flex;justify-content:space-between;gap:16px;border-bottom:3px solid var(--inv-accent, #0E6E78);padding-bottom:14px;margin-bottom:16px;flex-wrap:wrap}.invoice-doc h1{color:var(--inv-accent, #0E6E78);font-family:var(--font-display);font-size:26px;margin:0}.invoice-doc .inv-title{text-align:right}.invoice-doc .inv-title strong{font-size:20px;color:var(--inv-accent, #0E6E78);letter-spacing:.04em}.invoice-doc table{width:100%;border-collapse:collapse;margin:12px 0}.invoice-doc th{text-align:left;border-bottom:1px solid #ccc;padding:6px 4px;font-size:12px;color:#555}.invoice-doc td{padding:6px 4px;border-bottom:1px solid #eee}.invoice-doc td.num,.invoice-doc th.num{text-align:right;font-variant-numeric:tabular-nums}.invoice-doc .totals td{border:0}.invoice-doc .grand td{font-weight:700;font-size:16px;border-top:2px solid var(--inv-accent, #0E6E78)}.invoice-doc .pay{background:#f6f8f8;padding:12px;border-radius:6px;margin-top:14px}.invoice-doc .logo{max-height:60px;max-width:200px;display:block;margin-bottom:6px}@media print{body{background:#fff}body.printing .topbar,body.printing .main,body.printing .banner,body.printing .no-print{display:none!important}body.printing .scrim{position:static;background:none;padding:0;display:block}body.printing .modal{box-shadow:none;padding:0;max-width:none}body.printing .invoice-doc{border:0;padding:0}}
