.demo-* spec helpers — and the two SPA-colliding rules .toolbar / .field+label,which the legacy stylesheets own until their W2 retrofit). Owns: structure vars + component vocabulary + the default "Register" skin. Themes (theme-<id>.css) retint/reskin only. Spec: docs/specs/2026-07-13-v5-w0-theme-foundation-spec.md ============================================================ */ @font-face{font-family:Cabin Sketch;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/cabin-sketch-400-C5NWYc2T.woff2) format("woff2")}@font-face{font-family:Cabin Sketch;font-style:normal;font-weight:700;font-display:swap;src:url(/assets/cabin-sketch-700-VOpvQvG7.woff2) format("woff2")}@font-face{font-family:Caveat;font-style:normal;font-weight:500 700;font-display:swap;src:url(/assets/caveat-var-C1hSzPvX.woff2) format("woff2")}@font-face{font-family:Gochi Hand;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/gochi-hand-400-D3Iu69dp.woff2) format("woff2")}@font-face{font-family:Kalam;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/kalam-400-BthBl_aR.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20B9}@font-face{font-family:Kalam;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/kalam-400-devanagari-Dy6c0U2e.woff2) format("woff2");unicode-range:U+0900-097F,U+1CD0-1CF9,U+200C-200D,U+20A8,U+20B9,U+25CC,U+A830-A839,U+A8E0-A8FF}@font-face{font-family:Kalam;font-style:normal;font-weight:700;font-display:swap;src:url(/assets/kalam-700-D2H-9ISU.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20B9}@font-face{font-family:Kalam;font-style:normal;font-weight:700;font-display:swap;src:url(/assets/kalam-700-devanagari-BeU_-hjz.woff2) format("woff2");unicode-range:U+0900-097F,U+1CD0-1CF9,U+200C-200D,U+20A8,U+20B9,U+25CC,U+A830-A839,U+A8E0-A8FF}:root{--paper: #F5F6F2;--card: #FFFFFF;--card-tint: #FBFBF8;--ink: #17201D;--ink-2: #6B7672;--ink-3: #9AA3A0;--line: #E9EBE5;--accent: #0E7C66;--accent-deep: #0B3D33;--accent-ink: #0A5A4B;--accent-soft: #DFEEE8;--accent-mist: #EEF4F0;--attention: #B97324;--attention-soft: #F9F0E1;--ok: #2E7D5B;--ok-soft: #E4F1EA;--danger: #B3403A;--danger-soft: #F7EAE8;--sans: "IBM Plex Sans", "IBM Plex Sans Devanagari", system-ui, sans-serif;--serif: "IBM Plex Serif", Georgia, serif;--mono: "IBM Plex Mono", ui-monospace, monospace;--r-card: 20px;--r-inner: 14px;--r-input: 12px;--r-pill: 999px;--shadow-sm: 0 2px 16px rgba(23, 32, 29, .05);--shadow-md: 0 6px 28px rgba(23, 32, 29, .07);--shadow-lg: 0 16px 48px rgba(23, 32, 29, .12)}.wash{position:relative;overflow:hidden}.wash:before{content:"";position:absolute;pointer-events:none;width:520px;height:520px;top:-260px;right:-140px;background:radial-gradient(closest-side,#0e7c661a,#0e7c6600)}.t-display{font:600 32px/40px var(--serif);letter-spacing:-.01em}.t-title{font:600 20px/28px var(--sans);letter-spacing:-.01em}.t-body-lg{font:400 16px/24px var(--sans)}.t-label{font:500 13px/16px var(--sans)}.t-eyebrow{font:500 11px/16px var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}.t-caption{font:400 12px/17px var(--sans);color:var(--ink-2)}.t-mono{font:400 13px/20px var(--mono);font-variant-numeric:tabular-nums}.t-mono-b{font:500 13px/20px var(--mono);font-variant-numeric:tabular-nums}.t-hero{font:600 44px/50px var(--sans);letter-spacing:-.02em;font-variant-numeric:tabular-nums}.t-hero .unit{font:500 16px/24px var(--sans);color:var(--ink-2);letter-spacing:0}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}.app{display:flex;min-height:100%;background:var(--paper)}.rail{width:64px;flex:none;display:flex;flex-direction:column;align-items:center;padding:18px 0;gap:6px}.rail .logo{width:36px;height:36px;border-radius:12px;background:var(--accent-deep);color:#fff;display:grid;place-items:center;font:600 14px/1 var(--serif);margin-bottom:14px;box-shadow:var(--shadow-sm)}.rail-item{width:42px;height:42px;border-radius:14px;border:none;background:transparent;color:var(--ink-3);display:grid;place-items:center;cursor:pointer;font-size:17px;position:relative}.rail-item:hover{background:var(--card);color:var(--ink);box-shadow:var(--shadow-sm)}.rail-item.active{background:var(--card);color:var(--accent-ink);box-shadow:var(--shadow-sm)}.rail-item .dot{position:absolute;top:8px;right:8px;width:7px;height:7px;border-radius:999px;background:var(--attention);border:1.5px solid var(--paper)}.rail .spacer{flex:1}.rail .unit-chip{font:500 9px/1.2 var(--sans);letter-spacing:.05em;color:var(--ink-2);background:var(--card);border-radius:10px;padding:6px 5px;text-align:center;box-shadow:var(--shadow-sm)}.main{flex:1;min-width:0;padding:36px 40px 72px}.context{width:300px;flex:none;padding:36px 32px 72px 0}.pagehead{display:flex;align-items:flex-end;gap:18px;margin-bottom:8px}.pagehead .sub{color:var(--ink-2);padding-bottom:6px}.pagehead .grow{flex:1}.kbtn{display:inline-flex;align-items:center;gap:10px;border:none;background:var(--card);color:var(--ink-2);border-radius:var(--r-pill);padding:10px 18px;font:400 13px/16px var(--sans);cursor:pointer;white-space:nowrap;box-shadow:var(--shadow-sm)}.kbtn kbd{font:500 11px/1 var(--mono);background:var(--paper);border-radius:6px;padding:3px 7px;color:var(--ink-3)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:var(--r-pill);font:500 13px/16px var(--sans);padding:11px 20px;cursor:pointer;border:none;transition:background .15s ease-out,box-shadow .15s ease-out,transform .15s ease-out}.btn:active{transform:scale(.98)}.btn-primary{background:var(--accent-deep);color:#fff}.btn-primary:hover{background:var(--accent-ink)}.btn-secondary{background:var(--card);color:var(--ink);box-shadow:inset 0 0 0 1px var(--line)}.btn-secondary:hover{background:var(--card-tint)}.btn-tertiary{background:transparent;color:var(--accent-ink)}.btn-tertiary:hover{background:var(--accent-soft)}.btn-mint{background:var(--accent-soft);color:var(--accent-ink)}.btn-mint:hover{background:#d2e7de}.btn-danger{background:var(--danger);color:#fff}.btn:disabled{opacity:.35;cursor:not-allowed}.btn-big{padding:16px 26px;font-size:15px;min-height:52px}.card{background:var(--card);border-radius:var(--r-card);box-shadow:var(--shadow-sm)}.card-deep{background:var(--accent-deep);color:#fff;border-radius:var(--r-card);box-shadow:var(--shadow-md)}.card-deep .t-caption{color:#ffffff8c}.card-mint{background:var(--accent-soft);border-radius:var(--r-card)}.queue-section{margin:30px 0 12px;display:flex;align-items:center;gap:10px}.queue-section .count{font:500 11px/1 var(--mono);color:var(--attention);background:var(--attention-soft);border-radius:var(--r-pill);padding:4px 9px}.queue-section .count.quiet{color:var(--ink-2);background:var(--card)}.qcard{background:var(--card);border-radius:var(--r-card);box-shadow:var(--shadow-sm);padding:18px 22px;margin-bottom:12px;display:flex;align-items:center;gap:18px;transition:box-shadow .15s ease-out,transform .15s ease-out}.qcard:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.qcard .marker{width:10px;height:10px;border-radius:999px;flex:none}.qcard.needs .marker{background:var(--attention);box-shadow:0 0 0 5px var(--attention-soft)}.qcard.sched .marker{background:var(--ink-3);box-shadow:0 0 0 5px var(--paper)}.qcard.catch .marker{background:var(--accent);box-shadow:0 0 0 5px var(--accent-soft)}.qcard .body{flex:1;min-width:0}.qcard .sentence{font:500 16px/24px var(--sans);letter-spacing:-.005em}.qcard .meta{margin-top:5px;display:flex;gap:12px;align-items:center}.qcard .module-glyph{font:500 10px/1 var(--sans);letter-spacing:.07em;color:var(--ink-2);background:var(--paper);border-radius:var(--r-pill);padding:4px 9px}.qcard .actions{display:flex;gap:8px;flex:none}.qcard.done{opacity:.5}.stamp{width:30px;height:30px;border-radius:999px;background:var(--ok-soft);color:var(--ok);display:grid;place-items:center;font-size:14px;flex:none}.btn-guide{background:var(--card);box-shadow:inset 0 0 0 1px var(--accent-soft);color:var(--accent-ink)}.btn-guide:before{content:"✦";font-size:12px}.btn-guide:hover{background:var(--accent-soft)}.ctx-card{background:var(--card);border-radius:var(--r-card);box-shadow:var(--shadow-sm);padding:20px 22px;margin-bottom:18px}.ctx-card h4{font:500 11px/16px var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);margin-bottom:12px}.ctx-item{display:flex;gap:12px;padding:9px 0;align-items:center}.ctx-item+.ctx-item{border-top:1px solid var(--line)}.ctx-item .time{font:500 12px/18px var(--mono);color:var(--ink-3);flex:none}.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:24px 0 8px}.kpi{border-radius:var(--r-card);padding:20px 22px;cursor:pointer;background:var(--card);box-shadow:var(--shadow-sm);transition:box-shadow .15s ease-out,transform .15s ease-out}.kpi:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.kpi .num{font:600 30px/38px var(--sans);letter-spacing:-.02em;font-variant-numeric:tabular-nums}.kpi .lbl{font:400 12px/17px var(--sans);color:var(--ink-2);margin-top:3px}.kpi.deep{background:var(--accent-deep);color:#fff}.kpi.deep .lbl{color:#ffffff8c}.kpi.warn .num{color:var(--attention)}.kpi .spark{margin-top:10px;display:flex;align-items:flex-end;gap:3px;height:26px}.kpi .spark i{flex:1;border-radius:3px;background:var(--accent-soft)}.kpi.deep .spark i{background:#ffffff2e}.kpi .spark i.hi{background:var(--accent)}.kpi.deep .spark i.hi{background:#7fd6bf}.chips{display:flex;gap:8px;margin:16px 0;flex-wrap:wrap}.chip{display:inline-flex;align-items:center;gap:7px;background:var(--attention-soft);color:var(--attention);border:none;border-radius:var(--r-pill);font:500 12px/16px var(--sans);padding:8px 15px;cursor:pointer}.chip.active{box-shadow:inset 0 0 0 1.5px var(--attention)}.chip.neutral{background:var(--card);color:var(--ink-2);box-shadow:var(--shadow-sm)}.select{border:none;background:var(--card);border-radius:var(--r-pill);font:400 13px/16px var(--sans);padding:9px 16px;color:var(--ink);cursor:pointer;box-shadow:var(--shadow-sm)}.toolbar .grow{flex:1}.table-wrap{background:var(--card);border-radius:var(--r-card);overflow:hidden;box-shadow:var(--shadow-sm)}table.data{width:100%;border-collapse:collapse}table.data th{text-align:left;font:500 11px/16px var(--sans);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);padding:16px 18px 10px;border-bottom:1px solid var(--line)}table.data td{padding:14px 18px;border-bottom:1px solid var(--line);vertical-align:middle}table.data tr:last-child td{border-bottom:none}table.data tbody tr{cursor:pointer}table.data tbody tr:hover{background:var(--card-tint)}table.data tbody tr.selected{background:var(--accent-mist)}table.data.compact td{padding:7px 18px}td.num,th.num{text-align:right}.person{display:flex;align-items:center;gap:12px}.avatar{width:34px;height:34px;border-radius:12px;background:var(--accent-soft);color:var(--accent-ink);display:grid;place-items:center;font:500 12px/1 var(--sans);flex:none}.person .nm{font-weight:500}.person .id{font:400 11px/15px var(--mono);color:var(--ink-3)}.tag{display:inline-flex;align-items:center;gap:6px;font:500 12px/16px var(--sans);border-radius:var(--r-pill);padding:4px 11px}.tag:before{content:"";width:6px;height:6px;border-radius:999px;background:currentColor}.tag-ok{background:var(--ok-soft);color:var(--ok)}.tag-warn{background:var(--attention-soft);color:var(--attention)}.tag-danger{background:var(--danger-soft);color:var(--danger)}.tag-muted{background:var(--paper);color:var(--ink-2)}.tag-lock:before{content:"🔒";width:auto;height:auto;background:none;font-size:10px}.bulkbar{position:sticky;bottom:18px;margin-top:18px;background:#17201df0;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#fff;border-radius:var(--r-pill);padding:12px 14px 12px 24px;display:flex;align-items:center;gap:14px;box-shadow:var(--shadow-lg)}.bulkbar .btn-secondary{background:#ffffff1a;color:#fff;box-shadow:none}.drawer{width:480px;flex:none;background:var(--card);border-radius:var(--r-card) 0 0 var(--r-card);box-shadow:var(--shadow-lg);padding:30px 32px;overflow:auto}.drawer .close{float:right}.drawer-field{padding:13px 0;border-bottom:1px solid var(--line);display:flex}.drawer-field .k{width:140px;flex:none;color:var(--ink-3);font-size:13px;padding-top:2px}.drawer-footer{display:flex;gap:8px;margin-top:24px}.jumprow{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}.jump{display:inline-flex;align-items:center;gap:7px;background:var(--paper);border:none;border-radius:var(--r-pill);font:500 12px/16px var(--sans);color:var(--ink);padding:8px 14px;cursor:pointer}.jump:hover{background:var(--accent-soft);color:var(--accent-ink)}.jump:after{content:"↗";color:var(--ink-3);font-size:11px}.jump:hover:after{color:var(--accent-ink)}.field .help{font:400 12px/17px var(--sans);color:var(--ink-2);margin-top:6px}.field .err{font:400 12px/17px var(--sans);color:var(--danger);margin-top:6px}.input{width:100%;border:1px solid transparent;border-radius:var(--r-input);background:var(--paper);font:400 14px/20px var(--sans);padding:12px 14px;color:var(--ink)}.input:focus{outline:none;border-color:var(--accent);background:var(--card);box-shadow:0 0 0 3px var(--accent-soft)}.input.invalid{border-color:var(--danger);background:var(--card)}.input.suggested{background:var(--accent-soft)}.toast{display:inline-flex;align-items:center;gap:12px;background:#17201df0;color:#fff;border-radius:var(--r-pill);padding:13px 20px;font:400 13px/18px var(--sans);box-shadow:var(--shadow-lg)}.toast .undo{color:#7fd6bf;font-weight:500;cursor:pointer}.toast.error{background:var(--danger);border-radius:16px}.cmdk-overlay{background:#17201d59;border-radius:var(--r-card);padding:60px 0 80px;display:flex;justify-content:center}.cmdk{width:640px;max-width:92%;background:var(--card);border-radius:22px;box-shadow:var(--shadow-lg);overflow:hidden;align-self:flex-start}.cmdk .q{display:flex;gap:10px;padding:18px 22px;border-bottom:1px solid var(--line);font:400 17px/24px var(--sans)}.cmdk .q .caret{color:var(--ink-3)}.cmdk .grp{font:500 10px/14px var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);padding:14px 22px 6px}.cmdk .row{display:flex;align-items:center;gap:12px;padding:11px 22px;cursor:pointer}.cmdk .row:hover,.cmdk .row.sel{background:var(--accent-mist)}.cmdk .row .dest{margin-left:auto;font:400 12px/16px var(--sans);color:var(--ink-3)}.counter-shell{max-width:720px;margin:0 auto;padding:40px 28px 88px}.counter-top{display:flex;align-items:center;margin-bottom:40px}.counter-top .exit{color:var(--ink-3);font-size:13px}.session-card{margin-left:auto;background:var(--accent-deep);color:#fff;border-radius:var(--r-inner);padding:12px 20px;text-align:right;box-shadow:var(--shadow-md)}.session-card .amt{font:600 24px/30px var(--mono);font-variant-numeric:tabular-nums}.session-card .lbl{font:400 11px/15px var(--sans);color:#ffffff8c}.bigsearch{width:100%;border:none;border-radius:18px;font:400 20px/28px var(--sans);padding:20px 26px;background:var(--card);box-shadow:var(--shadow-md)}.bigsearch:focus{outline:none;box-shadow:var(--shadow-md),0 0 0 3px var(--accent-soft)}.paychoice{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:22px 0}.paychoice button{min-height:64px;border-radius:var(--r-inner);border:none;background:var(--paper);font:500 15px/22px var(--sans);cursor:pointer;color:var(--ink)}.paychoice button.sel{background:var(--accent-soft);color:var(--accent-ink);box-shadow:inset 0 0 0 2px var(--accent)}.sessionlog{margin-top:44px}.sessionlog .row{display:flex;gap:14px;padding:11px 4px;border-bottom:1px solid var(--line);font:400 13px/18px var(--sans);color:var(--ink-2)}.sessionlog .row .amt{margin-left:auto;font:500 13px/18px var(--mono);color:var(--ink)}.p-head{padding:22px 22px 0}.p-head .row1{display:flex;align-items:center;gap:12px}.p-head .childname{font:600 26px/34px var(--serif)}.p-head .chev{color:var(--ink-3)}.p-head .lang{margin-left:auto;font:500 12px/16px var(--sans);color:var(--ink-2);background:var(--card);border-radius:var(--r-pill);padding:6px 12px;box-shadow:var(--shadow-sm)}.p-avatar{width:48px;height:48px;border-radius:16px;background:var(--accent-soft);color:var(--accent-ink);display:grid;place-items:center;font:500 16px/1 var(--sans)}.calm{margin:18px 22px;border-radius:var(--r-pill);padding:11px 16px;font:500 13px/18px var(--sans);text-align:center}.calm.ok{background:var(--ok-soft);color:var(--ok)}.calm.attn{background:var(--attention-soft);color:var(--attention)}.feed{padding:0 22px 22px;flex:1;overflow:auto}.feed h5{font:500 10px/14px var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);margin:20px 4px 10px}.fitem{background:var(--card);border-radius:var(--r-inner);box-shadow:var(--shadow-sm);padding:14px 16px;margin-bottom:10px;display:flex;gap:13px;align-items:flex-start}.fitem .ico{width:34px;height:34px;border-radius:11px;display:grid;place-items:center;flex:none;font-size:14px;background:var(--paper)}.fitem .tx{flex:1;font:400 14px/20px var(--sans)}.fitem .tx .cap{font:400 12px/17px var(--sans);color:var(--ink-2);margin-top:3px}.fitem.pay{background:var(--attention-soft);box-shadow:var(--shadow-md)}.fitem.pay .ico{background:var(--card)}.ptabs{display:flex;border-top:1px solid var(--line);background:var(--card)}.ptabs div{flex:1;text-align:center;padding:13px 0 18px;font:500 11px/14px var(--sans);color:var(--ink-3)}.ptabs div.on{color:var(--accent-ink)}.ptabs div span{display:block;font-size:18px;margin-bottom:3px}.m-head{padding:22px 22px 0}.m-body{padding:0 16px 16px;flex:1;overflow:auto}.m-tabs{display:flex;border-top:1px solid var(--line);background:var(--card)}.m-tabs div{flex:1;text-align:center;padding:12px 0 16px;font:500 11px/14px var(--sans);color:var(--ink-3)}.m-tabs div.on{color:var(--accent-ink)}.m-tabs div span{display:block;font-size:18px;margin-bottom:2px}.qcard.m{padding:15px 17px;gap:12px;flex-wrap:wrap;border-radius:18px;margin-bottom:10px}.qcard.m .sentence{font-size:14px;line-height:20px}.qcard.m .actions{width:100%;justify-content:flex-end;gap:6px}.qcard.m .actions .btn{padding:9px 16px;font-size:12px}.m-head{padding:10px 26px 0}.m-body{padding:0 18px 18px}.m-tabs div{padding:13px 0 20px}.subnav{width:210px;flex:none;padding:8px 0 0 4px}.subnav .item{display:block;width:100%;text-align:left;border:none;background:transparent;font:400 13px/18px var(--sans);color:var(--ink-2);padding:9px 14px;border-radius:var(--r-pill);cursor:pointer;margin-bottom:2px}.subnav .item:hover{background:var(--card);color:var(--ink)}.subnav .item.on{background:var(--card);color:var(--ink);font-weight:500;box-shadow:var(--shadow-sm)}.appr-row{background:var(--card);border-radius:var(--r-inner);box-shadow:var(--shadow-sm);padding:16px 20px;margin-bottom:10px;display:flex;align-items:center;gap:16px}.appr-row .what{flex:1}.appr-row .what b{font-weight:500}.seg{display:flex;background:var(--paper);border-radius:var(--r-pill);padding:4px;gap:2px;flex:none}.seg button{border:none;background:transparent;color:var(--ink-2);font:500 12px/16px var(--sans);padding:7px 14px;border-radius:var(--r-pill);cursor:pointer}.seg button.on{background:var(--accent-deep);color:#fff}.seg button.on2{background:var(--card);color:var(--ink);box-shadow:var(--shadow-sm)}@media(max-width:1279px){.context{display:none}}.dotgrid{background-image:radial-gradient(var(--line) 1px,transparent 1px);background-size:22px 22px}.ghostnum{font:600 32px/1 var(--serif);color:var(--accent-soft);font-variant-numeric:tabular-nums;flex:none}.trend{display:inline-flex;align-items:center;gap:4px;font:500 12px/16px var(--sans);border-radius:var(--r-pill);padding:3px 9px;background:var(--ok-soft);color:var(--ok);font-variant-numeric:tabular-nums}.trend:before{content:"↗";font-size:11px}.trend.down{background:var(--danger-soft);color:var(--danger)}.trend.down:before{content:"↘"}.trend.flat{background:var(--paper);color:var(--ink-2)}.trend.flat:before{content:"→"}.viz-card{background:var(--card);border-radius:var(--r-card);box-shadow:var(--shadow-sm);padding:22px 24px}.viz-head{display:flex;align-items:flex-start;gap:12px;margin-bottom:2px}.viz-head .grow{flex:1}.viz-sum{font:600 34px/40px var(--sans);letter-spacing:-.02em;font-variant-numeric:tabular-nums}.viz-sum .u{font:500 14px/20px var(--sans);color:var(--ink-2);letter-spacing:0}.viz-legend{display:flex;gap:16px;flex-wrap:wrap;margin-top:14px}.viz-legend span{display:inline-flex;align-items:center;gap:7px;font:400 12px/16px var(--sans);color:var(--ink-2)}.viz-legend i{width:10px;height:10px;border-radius:3px;flex:none}.viz{width:100%;display:block;overflow:visible}.viz .grid line{stroke:var(--line);stroke-width:1}.viz .line{fill:none;stroke:var(--accent);stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}.viz .ghost{fill:none;stroke:var(--ink-3);stroke-width:1.25;opacity:.22;stroke-linecap:round;stroke-linejoin:round}.viz .dot-ring{fill:var(--card);stroke:var(--accent);stroke-width:3}.viz .ruler line{stroke:var(--line);stroke-width:1.5;stroke-linecap:round}.viz .xlab{font:500 10px/1 var(--sans);fill:var(--ink-3);text-anchor:middle}.viz .anno-box{fill:var(--card);stroke:var(--line)}.viz .anno-t{font:500 11px/1 var(--sans);fill:var(--ink)}.viz .anno-s{font:500 10px/1 var(--sans);fill:var(--accent-ink)}.barsviz{display:flex;align-items:flex-end;gap:16px;height:190px;margin-top:10px}.barsviz .bar{flex:1;height:100%;display:flex;flex-direction:column;justify-content:flex-end;gap:9px}.barsviz .stack{width:100%;height:var(--h);border-radius:12px;background:linear-gradient(180deg,var(--cap, #A9E4C9) 0 var(--capstop, 26%),var(--accent) var(--capstop, 26%) 62%,var(--accent-deep))}.barsviz .bar .bv{text-align:center;font:500 13px/16px var(--mono);font-variant-numeric:tabular-nums}.barsviz .bar .bl{text-align:center;font:500 10px/13px var(--sans);text-transform:uppercase;letter-spacing:.05em;color:var(--ink-3)}.gauge{position:relative;width:var(--g, 150px);height:var(--g, 150px);flex:none}.gauge svg{transform:rotate(-90deg);display:block}.gauge .track{fill:none;stroke:var(--accent-soft);stroke-width:13}.gauge .val{fill:none;stroke:var(--accent);stroke-width:13;stroke-linecap:round}.gauge .center{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;text-align:center}.gauge .center .n{font:600 27px/30px var(--sans);font-variant-numeric:tabular-nums;letter-spacing:-.02em}.gauge .center .l{font:400 11px/15px var(--sans);color:var(--ink-2);margin-top:1px}.barrow{display:flex;align-items:flex-end;gap:3px;height:38px}.barrow i{flex:1;background:var(--accent-soft);border-radius:3px}.barrow i.on{background:var(--accent)}.barrow i.hi{background:var(--accent-deep)}.recon{display:flex;align-items:center;gap:22px}.recon .big{font:600 22px/28px var(--sans);letter-spacing:-.01em}.recon .kv{display:flex;flex-direction:column;gap:3px}.recon .kv .k{font:400 11px/15px var(--sans);color:var(--ink-3)}.recon .kv .v{font:500 15px/20px var(--mono);font-variant-numeric:tabular-nums}.m-fabtabs{display:flex;align-items:center;justify-content:space-around;margin:8px 14px 16px;padding:11px 16px 12px;background:var(--card);border-radius:26px;box-shadow:var(--shadow-lg)}.m-fabtabs div{font:500 10px/13px var(--sans);color:var(--ink-3);text-align:center;cursor:pointer}.m-fabtabs div span{display:block;font-size:17px;margin-bottom:3px}.m-fabtabs div.on{color:var(--accent-ink)}.m-fabtabs .m-fab{width:52px;height:52px;border-radius:50%;background:var(--accent-deep);color:#fff;display:grid;place-items:center;font:400 24px/1 var(--sans);margin-top:-26px;box-shadow:var(--shadow-md)}.grid-2-1{display:grid;grid-template-columns:2fr 1fr;gap:16px;margin:16px 0}.grid-3-2{display:grid;grid-template-columns:3fr 2fr;gap:16px;margin:16px 0}.mini .row{display:flex;align-items:baseline;gap:10px;padding:7px 0;border-bottom:1px solid var(--line);font:400 13px/18px var(--sans)}.mini .row:last-child{border-bottom:none}.mini .row .rn{font:500 11px/18px var(--mono);color:var(--ink-3);width:22px;flex:none}.mini .row .nm{flex:1}.mini .row .vv{font:500 12px/18px var(--mono);font-variant-numeric:tabular-nums}.mini .row .st{font:500 10px/14px var(--sans);color:var(--accent-ink)}@media(prefers-reduced-motion:no-preference){.barsviz .stack{height:0;transition:height 1s cubic-bezier(.2,.7,.2,1)}.animate.in .barsviz .stack{height:var(--h)}.barrow i{transform:scaleY(.08);transform-origin:bottom;transition:transform .7s cubic-bezier(.2,.7,.2,1)}.animate.in .barrow i{transform:none}.viz .dot-ring,.viz .anno{opacity:0;transition:opacity .45s ease 1s}.animate.in .viz .dot-ring,.animate.in .viz .anno{opacity:1}.stagger>*{opacity:0;transform:translateY(12px)}.stagger.in>*{opacity:1;transform:none;transition:opacity .55s ease,transform .55s cubic-bezier(.2,.7,.2,1)}.stagger.in>*:nth-child(1){transition-delay:.02s}.stagger.in>*:nth-child(2){transition-delay:.08s}.stagger.in>*:nth-child(3){transition-delay:.14s}.stagger.in>*:nth-child(4){transition-delay:.2s}.stagger.in>*:nth-child(5){transition-delay:.26s}.stagger.in>*:nth-child(6){transition-delay:.32s}.stagger.in>*:nth-child(7){transition-delay:.38s}.stagger.in>*:nth-child(8){transition-delay:.44s}.shimmer{background:linear-gradient(100deg,var(--line) 30%,var(--card-tint) 50%,var(--line) 70%);background-size:220% 100%;animation:shimmer 1.4s linear infinite;border-radius:8px}@keyframes shimmer{to{background-position:-220% 0}}}@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.themetoggle{position:fixed;bottom:22px;right:22px;z-index:60;display:flex;flex-direction:column;gap:6px;align-items:flex-end}.themetoggle .trow{display:flex;gap:4px;padding:5px;background:#17201deb;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:var(--r-pill);box-shadow:var(--shadow-lg)}.themetoggle .trow .tl{align-self:center;font:500 9px/1 var(--sans);letter-spacing:.1em;text-transform:uppercase;color:#fff6;padding:0 6px 0 12px}.themetoggle button{border:none;background:transparent;color:#ffffffa6;font:500 12px/16px var(--sans);padding:7px 15px;border-radius:var(--r-pill);cursor:pointer;white-space:nowrap}.themetoggle button.on{background:#fff;color:#17201d}.th-frame,.th-glyph{display:none}.th-defs{position:absolute;width:0;height:0}.th-insight{display:flex;align-items:flex-start;gap:8px;margin-top:12px;font:italic 500 13px/19px var(--serif);color:var(--accent-ink)}.th-insight .doodle{flex:none;margin-top:2px;color:var(--accent)}html[data-theme=notebook]{--paper: #F0E6D4;--card: #FFFDF4;--card-tint: #F8F1DE;--ink: #2B2620;--ink-2: #6E6555;--ink-3: #948A76;--line: rgba(43, 38, 32, .14);--accent: #0E7C66;--accent-deep: #17453A;--accent-ink: #0A5A4B;--accent-soft: #DFEBDD;--accent-mist: #EAF0E2;--attention: #B04A34;--attention-soft: #F6E3D4;--ok: #3E7A4E;--ok-soft: #E3EEDF;--danger: #A93E30;--danger-soft: #F6E0D9;--r-card: 6px;--r-inner: 5px;--r-input: 5px;--shadow-sm: 0 2px 10px rgba(43, 38, 32, .08);--shadow-md: 0 6px 22px rgba(43, 38, 32, .11);--shadow-lg: 0 16px 44px rgba(43, 38, 32, .18);--th-hand: "Cabin Sketch", "Kalam", cursive;--th-note: "Caveat", "Kalam", cursive;--th-headfx: url(#th-rough);--th-headshadow: none;--th-spark: rgba(14, 124, 102, .3);--th-gaugetrack: rgba(43, 38, 32, .1);--th-highlight: rgba(250, 227, 120, .42)}html[data-theme=notebook][data-ground=chalkboard]{--paper: #26302B;--card: #2C3833;--card-tint: #313E38;--ink: #EFEBE2;--ink-2: #B4BEB7;--ink-3: #8C9C93;--line: rgba(255, 255, 255, .16);--accent: #68DDBA;--accent-deep: #3A5A4F;--accent-ink: #8FE8CD;--accent-soft: rgba(104, 221, 186, .16);--accent-mist: rgba(104, 221, 186, .09);--attention: #F0B267;--attention-soft: rgba(240, 178, 103, .15);--ok: #8FD9A8;--ok-soft: rgba(143, 217, 168, .15);--danger: #F09A8C;--danger-soft: rgba(240, 154, 140, .14);--shadow-sm: 0 2px 10px rgba(0, 0, 0, .25);--shadow-md: 0 6px 22px rgba(0, 0, 0, .3);--shadow-lg: 0 16px 44px rgba(0, 0, 0, .4);--th-hand: "Gochi Hand", "Kalam", cursive;--th-headfx: url(#th-chalk);--th-headshadow: 0 0 9px rgba(255, 255, 255, .12);--th-spark: rgba(104, 221, 186, .22);--th-gaugetrack: rgba(255, 255, 255, .14);--th-highlight: rgba(104, 221, 186, .13)}html[data-theme=notebook]:not([data-ground=chalkboard]) .app,html[data-theme=notebook]:not([data-ground=chalkboard]) .counter-shell,html[data-theme=notebook]:not([data-ground=chalkboard]) body{background-color:#f0e6d4;background-image:linear-gradient(90deg,transparent 52px,rgba(176,74,52,.28) 52px 53px,transparent 53px),linear-gradient(#b04a340d 1px,transparent 1px),linear-gradient(90deg,#00000008 1px,transparent 1px);background-size:100% 100%,27px 27px,27px 27px}html[data-theme=notebook][data-ground=chalkboard] .app,html[data-theme=notebook][data-ground=chalkboard] .counter-shell,html[data-theme=notebook][data-ground=chalkboard] body{background-color:#242e2a;background-image:radial-gradient(80% 60% at 15% 10%,rgba(255,255,255,.07),transparent 55%),radial-gradient(70% 55% at 88% 90%,rgba(255,255,255,.055),transparent 55%),radial-gradient(50% 45% at 60% 40%,rgba(255,255,255,.04),transparent 65%),linear-gradient(115deg,transparent 30%,rgba(255,255,255,.03) 42%,transparent 55%),radial-gradient(45% 70% at 95% 25%,rgba(0,0,0,.22),transparent 70%);background-size:100% 100%}html[data-theme=notebook] .t-display,html[data-theme=notebook] .t-title,html[data-theme=notebook] .recon .big,html[data-theme=notebook] .childname{font-family:var(--th-hand);font-weight:400;letter-spacing:0;filter:var(--th-headfx);text-shadow:var(--th-headshadow)}html[data-theme=notebook] .viz-card>.viz-head .t-eyebrow,html[data-theme=notebook] .viz-card>.t-eyebrow,html[data-theme=notebook] .ctx-card h4,html[data-theme=notebook] .queue-section .t-eyebrow,html[data-theme=notebook] .sessionlog .t-eyebrow,html[data-theme=notebook] .feed h5{font:400 19px/22px var(--th-hand);text-transform:none!important;letter-spacing:0;color:var(--ink);filter:var(--th-headfx);text-shadow:var(--th-headshadow)}html[data-theme=notebook] .rail .logo{font-family:var(--th-hand)}html[data-theme=notebook] .th-insight{display:flex;align-items:flex-start;gap:8px;margin-top:12px;font:700 19px/21px var(--th-note);font-style:normal;color:var(--ink)}html[data-theme=notebook] .th-insight .doodle{flex:none;color:var(--accent);margin-top:2px}html[data-theme=notebook] .th-emoji{display:none}html[data-theme=notebook] .th-glyph{display:inline-block;width:1.15em;height:1.15em;vertical-align:-.18em;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;filter:url(#th-rough);overflow:visible}html[data-theme=notebook] .th-glyph .echo{opacity:.32;transform:translate(.7px,.5px)}html[data-theme=notebook][data-ground=chalkboard] .th-glyph{stroke-width:2.3;filter:url(#th-chalk);opacity:.92}html[data-theme=notebook][data-ground=chalkboard] .th-glyph .echo{opacity:0;transform:none}html[data-theme=notebook] .m-tabs .th-glyph,html[data-theme=notebook] .m-fabtabs .th-glyph,html[data-theme=notebook] .ptabs .th-glyph{display:block;margin:0 auto 3px;width:17px;height:17px}html[data-theme=notebook] .kpi,html[data-theme=notebook] .viz-card,html[data-theme=notebook] .ctx-card,html[data-theme=notebook] .fitem{position:relative}html[data-theme=notebook]:not([data-ground=chalkboard]) .kpi,html[data-theme=notebook]:not([data-ground=chalkboard]) .viz-card,html[data-theme=notebook]:not([data-ground=chalkboard]) .ctx-card,html[data-theme=notebook]:not([data-ground=chalkboard]) .fitem{background:var(--sticky, #FBF3C9);border-radius:4px;box-shadow:0 10px 20px #0000001a,0 2px 5px #0000000f;transform:rotate(var(--rot, 0deg))}html[data-theme=notebook]:not([data-ground=chalkboard]) .kpi:before,html[data-theme=notebook]:not([data-ground=chalkboard]) .viz-card:before,html[data-theme=notebook]:not([data-ground=chalkboard]) .ctx-card:before,html[data-theme=notebook]:not([data-ground=chalkboard]) .fitem:before{content:"";position:absolute;top:-8px;left:50%;width:64px;height:16px;transform:translate(-50%) rotate(-1.6deg);background:#bea05f4d;box-shadow:0 1px 2px #0000000f}html[data-theme=notebook]:not([data-ground=chalkboard]) .kpi:hover,html[data-theme=notebook]:not([data-ground=chalkboard]) .viz-card:hover{transform:rotate(0) translateY(-2px);box-shadow:0 16px 30px #00000026}html[data-theme=notebook]:not([data-ground=chalkboard]) .kpi:nth-child(4n+1){--sticky: #FBF3C9;--rot: -.6deg}html[data-theme=notebook]:not([data-ground=chalkboard]) .kpi:nth-child(4n+2){--sticky: #E5F1DA;--rot: .5deg}html[data-theme=notebook]:not([data-ground=chalkboard]) .kpi:nth-child(4n+3){--sticky: #FBE3DC;--rot: -.4deg}html[data-theme=notebook]:not([data-ground=chalkboard]) .kpi:nth-child(4n+4){--sticky: #E2EDF6;--rot: .6deg}html[data-theme=notebook]:not([data-ground=chalkboard]) .viz-card{--sticky: #FFFDF4;--rot: .2deg}html[data-theme=notebook]:not([data-ground=chalkboard]) .viz-card:nth-of-type(2n){--rot: -.25deg}html[data-theme=notebook]:not([data-ground=chalkboard]) .ctx-card:nth-of-type(odd){--sticky: #FBF3C9;--rot: -.5deg}html[data-theme=notebook]:not([data-ground=chalkboard]) .ctx-card:nth-of-type(2n){--sticky: #E5F1DA;--rot: .45deg}html[data-theme=notebook]:not([data-ground=chalkboard]) .fitem:nth-of-type(odd){--sticky: #FBF3C9;--rot: -.4deg}html[data-theme=notebook]:not([data-ground=chalkboard]) .fitem:nth-of-type(2n){--sticky: #E2EDF6;--rot: .4deg}html[data-theme=notebook]:not([data-ground=chalkboard]) .kpi.deep{background:var(--accent-deep)}html[data-theme=notebook]:not([data-ground=chalkboard]) .fitem.pay{background:var(--attention-soft)}html[data-theme=notebook]:not([data-ground=chalkboard]) .qcard,html[data-theme=notebook]:not([data-ground=chalkboard]) .card,html[data-theme=notebook]:not([data-ground=chalkboard]) .card-mint,html[data-theme=notebook]:not([data-ground=chalkboard]) .appr-row,html[data-theme=notebook]:not([data-ground=chalkboard]) .table-wrap,html[data-theme=notebook]:not([data-ground=chalkboard]) .drawer,html[data-theme=notebook]:not([data-ground=chalkboard]) .cmdk,html[data-theme=notebook]:not([data-ground=chalkboard]) .bigsearch{background:#fffdf4;box-shadow:inset 0 0 0 1px var(--line),0 3px 12px #2b262014}html[data-theme=notebook]:not([data-ground=chalkboard]) .card-deep{border-radius:var(--r-card)}html[data-theme=notebook] table.data th{border-bottom:1.6px solid var(--ink-3)}html[data-theme=notebook] table.data tbody tr.selected{background:var(--th-highlight)}html[data-theme=notebook] input{accent-color:var(--accent)}html[data-theme=notebook] .tag{background:transparent;box-shadow:inset 0 0 0 1.3px currentColor}html[data-theme=notebook] .avatar,html[data-theme=notebook] .p-avatar{border-radius:999px;background:transparent;box-shadow:inset 0 0 0 1.5px var(--accent-ink);color:var(--accent-ink);filter:var(--th-headfx)}html[data-theme=notebook] .seg{background:transparent;padding:0;gap:6px}html[data-theme=notebook] .seg button{color:var(--ink-2)}html[data-theme=notebook] .seg button.on{background:transparent;color:var(--accent-ink);box-shadow:inset 0 0 0 1.8px var(--accent-ink);font-weight:600;filter:var(--th-headfx)}html[data-theme=notebook] .seg button.on2{background:transparent;color:var(--ink);box-shadow:inset 0 0 0 1.5px var(--ink-3);filter:var(--th-headfx)}html[data-theme=notebook]:not([data-ground=chalkboard]) .login-left{background-color:#f0e6d4;background-image:linear-gradient(90deg,transparent 52px,rgba(176,74,52,.28) 52px 53px,transparent 53px),linear-gradient(#b04a340d 1px,transparent 1px),linear-gradient(90deg,#00000008 1px,transparent 1px);background-size:100% 100%,27px 27px,27px 27px}html[data-theme=notebook][data-ground=chalkboard] .login-left{background-color:#242e2a;background-image:radial-gradient(80% 60% at 15% 10%,rgba(255,255,255,.07),transparent 55%),radial-gradient(70% 55% at 88% 90%,rgba(255,255,255,.055),transparent 55%),radial-gradient(45% 70% at 95% 25%,rgba(0,0,0,.22),transparent 70%);background-size:100% 100%}html[data-theme=notebook] .calm{font:600 17px/22px var(--th-note);background:transparent;filter:var(--th-headfx)}html[data-theme=notebook] .calm.ok{box-shadow:inset 0 0 0 1.6px var(--ok)}html[data-theme=notebook] .calm.attn{box-shadow:inset 0 0 0 1.6px var(--attention)}html[data-theme=notebook] .fitem .ico{background:transparent}html[data-theme=notebook] .chip{background:transparent;box-shadow:inset 0 0 0 1.5px var(--attention);color:var(--attention);font-weight:600;filter:var(--th-headfx)}html[data-theme=notebook] .chip.active{box-shadow:inset 0 0 0 2.2px var(--attention);background:var(--attention-soft)}html[data-theme=notebook] .chip.neutral{box-shadow:inset 0 0 0 1.4px var(--ink-3);color:var(--ink-2);background:transparent}html[data-theme=notebook] .jump{background:transparent;box-shadow:inset 0 0 0 1.3px var(--line)}html[data-theme=notebook]:not([data-ground=chalkboard]) .bulkbar,html[data-theme=notebook]:not([data-ground=chalkboard]) .toast{background:#2b2620f2}html[data-theme=notebook][data-ground=chalkboard] .bulkbar,html[data-theme=notebook][data-ground=chalkboard] .toast{background:#1b2320;box-shadow:inset 0 0 0 1.6px #ece7d866,var(--shadow-lg)}html[data-theme=notebook] .qcard .marker{width:13px;height:13px;border-radius:3px;transform:rotate(-2.5deg);filter:var(--th-headfx)}html[data-theme=notebook] .qcard.needs .marker{background:transparent;box-shadow:inset 0 0 0 1.7px var(--attention)}html[data-theme=notebook] .qcard.sched .marker{background:transparent;box-shadow:inset 0 0 0 1.7px var(--ink-3)}html[data-theme=notebook] .qcard.catch .marker{background:transparent;box-shadow:inset 0 0 0 1.7px var(--accent)}html[data-theme=notebook] .stamp{background:transparent;box-shadow:inset 0 0 0 1.7px var(--ok);color:var(--ok);filter:var(--th-headfx)}html[data-theme=notebook] .queue-section .count{background:transparent;box-shadow:inset 0 0 0 1.6px var(--attention);color:var(--attention);font:700 13px/1 var(--th-note);padding:4px 10px;filter:var(--th-headfx)}html[data-theme=notebook] .queue-section .count.quiet{box-shadow:inset 0 0 0 1.6px var(--ink-3);color:var(--ink-2)}html[data-theme=notebook] .qcard .module-glyph{background:transparent;border:1.2px dashed var(--ink-3);border-radius:4px;padding:3px 8px;filter:var(--th-headfx)}html[data-theme=notebook]:not([data-ground=chalkboard]) .session-card{background:var(--card);color:var(--ink);border:1.4px dashed var(--ink-3);box-shadow:var(--shadow-sm);transform:rotate(.5deg)}html[data-theme=notebook] .session-card .lbl{color:var(--ink-2)}html[data-theme=notebook][data-ground=chalkboard] .session-card .amt{color:var(--ink)}html[data-theme=notebook]:not([data-ground=chalkboard]) .paychoice button{background:transparent;box-shadow:inset 0 0 0 1.4px var(--line);border-radius:6px}html[data-theme=notebook]:not([data-ground=chalkboard]) .paychoice button.sel{background:var(--accent-soft);box-shadow:inset 0 0 0 2px var(--accent);color:var(--accent-ink)}html[data-theme=notebook] .viz .line{stroke:var(--ink);stroke-width:2}html[data-theme=notebook] .viz .dot-ring{stroke:var(--accent);fill:var(--paper)}html[data-theme=notebook]:not([data-ground=chalkboard]) .viz path[fill^="url("]{fill:url(#th-hatch)}html[data-theme=notebook]:not([data-ground=chalkboard]) .barsviz .stack{background:repeating-linear-gradient(48deg,var(--accent) 0 2.2px,transparent 2.2px 5.4px),repeating-linear-gradient(138deg,rgba(14,124,102,.26) 0 1.1px,transparent 1.1px 7px);box-shadow:inset 0 0 0 1.6px var(--accent);border-radius:3px 3px 0 0}html[data-theme=notebook]:not([data-ground=chalkboard]) .gauge .track{stroke:var(--th-gaugetrack);stroke-dasharray:.5 6.5;stroke-linecap:round}html[data-theme=notebook][data-ground=chalkboard] .viz path[fill^="url("]{fill:url(#th-chalkhatch)}html[data-theme=notebook][data-ground=chalkboard] .barsviz .stack{background:repeating-linear-gradient(-42deg,var(--accent) 0 2.6px,transparent 2.6px 7.2px);box-shadow:inset 0 0 0 2px var(--accent);border-radius:0}html[data-theme=notebook][data-ground=chalkboard] .gauge .track{stroke:var(--th-gaugetrack);stroke-dasharray:2 7;stroke-linecap:round}html[data-theme=notebook][data-ground=chalkboard] .kpi .spark i{background:#68ddba1a;box-shadow:inset 0 0 0 1px #68ddba8c;border-radius:0}html[data-theme=notebook][data-ground=chalkboard] .kpi .spark i.hi{background:var(--accent);box-shadow:none}html[data-theme=notebook] .kpi .spark i{background:var(--th-spark);border-radius:2px}html[data-theme=notebook] .kpi .spark i.hi{background:var(--accent)}html[data-theme=notebook] .barrow i{background:var(--th-spark)}html[data-theme=notebook] .barrow i.on{background:var(--accent)}html[data-theme=notebook] .barrow i.hi{background:var(--accent-deep)}html[data-theme=notebook]:not([data-ground=chalkboard]) .chart .col:not(.pending) .track i{background:repeating-linear-gradient(48deg,var(--accent) 0 2.2px,transparent 2.2px 5.4px),repeating-linear-gradient(138deg,rgba(14,124,102,.26) 0 1.1px,transparent 1.1px 7px);box-shadow:inset 0 0 0 1.4px var(--accent);border-radius:2px 2px 0 0}html[data-theme=notebook]:not([data-ground=chalkboard]) .chart .col.dim .track i{background:repeating-linear-gradient(48deg,var(--accent) 0 1.3px,transparent 1.3px 6.6px);box-shadow:inset 0 0 0 1.2px var(--accent);opacity:.55}html[data-theme=notebook][data-ground=chalkboard] .chart .col:not(.pending) .track i{background:repeating-linear-gradient(-42deg,var(--accent) 0 2.6px,transparent 2.6px 7.2px);box-shadow:inset 0 0 0 2px var(--accent);border-radius:0;filter:url(#th-chalk)}html[data-theme=notebook][data-ground=chalkboard] .chart .col.dim .track i{opacity:.4}html[data-theme=notebook] .chart .col.pending .track i{border-radius:2px}html[data-theme=notebook][data-ground=chalkboard] .viz .line,html[data-theme=notebook][data-ground=chalkboard] .viz path[fill^="url("],html[data-theme=notebook][data-ground=chalkboard] .barsviz .stack,html[data-theme=notebook][data-ground=chalkboard] .gauge .val{filter:url(#th-chalk)}html[data-theme=notebook][data-ground=chalkboard] .kpi,html[data-theme=notebook][data-ground=chalkboard] .viz-card,html[data-theme=notebook][data-ground=chalkboard] .ctx-card,html[data-theme=notebook][data-ground=chalkboard] .qcard,html[data-theme=notebook][data-ground=chalkboard] .fitem,html[data-theme=notebook][data-ground=chalkboard] .card,html[data-theme=notebook][data-ground=chalkboard] .card-deep,html[data-theme=notebook][data-ground=chalkboard] .card-mint,html[data-theme=notebook][data-ground=chalkboard] .appr-row,html[data-theme=notebook][data-ground=chalkboard] .session-card{position:relative;background:#ffffff05;box-shadow:none;border-radius:4px}html[data-theme=notebook][data-ground=chalkboard] .th-frame{display:block;position:absolute;top:-2px;right:-2px;bottom:-2px;left:-2px;width:calc(100% + 4px);height:calc(100% + 4px);pointer-events:none;overflow:visible;filter:url(#th-chalkbold)}html[data-theme=notebook][data-ground=chalkboard] .th-frame rect{fill:none;stroke:#ece7d8;stroke-width:3.4;opacity:.72;vector-effect:non-scaling-stroke;stroke-linejoin:round}html[data-theme=notebook][data-ground=chalkboard] .table-wrap,html[data-theme=notebook][data-ground=chalkboard] .drawer,html[data-theme=notebook][data-ground=chalkboard] .cmdk,html[data-theme=notebook][data-ground=chalkboard] .bigsearch{background:#ffffff05;box-shadow:inset 0 0 0 2px #ece7d873}html[data-theme=notebook][data-ground=chalkboard] .btn-primary{background:var(--accent);color:#12201c}html[data-theme=notebook][data-ground=chalkboard] .btn-primary:hover{background:var(--accent-ink)}html[data-theme=notebook][data-ground=chalkboard] .btn-secondary{background:#ffffff0f;color:var(--ink);box-shadow:inset 0 0 0 1px var(--line)}html[data-theme=notebook][data-ground=chalkboard] .paychoice button,html[data-theme=notebook][data-ground=chalkboard] .input{background:#ffffff0f}html[data-theme=notebook][data-ground=chalkboard] .input:focus{background:#ffffff1a}html[data-theme=notebook][data-ground=chalkboard] .rail .logo{color:#12201c}html[data-theme=notebook][data-ground=chalkboard] .m-fabtabs .m-fab{background:var(--accent);color:#12201c}html[data-theme=notebook][data-ground=chalkboard] .gbtn{background:#ffffff14}html[data-theme=notebook]{--bg: var(--paper);--bg-card: var(--card);--bg-elev: var(--card);--bg-elev-2: var(--card-tint);--bg-input: var(--card-tint);--border: var(--line);--text: var(--ink);--text-dim: var(--ink-2);--text-faint: var(--ink-3);--warn: var(--attention);--shadow: var(--shadow-sm);--shadow-card: var(--shadow-md);--radius: var(--r-card);--radius-sm: var(--r-input);--font-display: var(--th-hand);color-scheme:light}html[data-theme=notebook][data-ground=chalkboard]{color-scheme:dark}:root{--bg: #f3f2ee;--bg-card: #fdfdfc;--bg-input: #fdfdfc;--border: #e3e1da;--text: #23272a;--text-dim: #4d534e;--text-faint: #8b9189;--accent: #0f6b6b;--danger: #b3423a;--ok: #23744f;--radius: 14px;--radius-sm: 8px;--shadow: 0 2px 12px rgba(0,0,0,.06);--shadow-card: 0 4px 24px rgba(0,0,0,.08);--font-display: "Fraunces", Georgia, serif;--font-ui: "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;color-scheme:light}[data-mode=dark]{--bg: #0f1115;--bg-card: #171a21;--bg-input: #171a21;--border: #2a2f3a;--text: #e6e8ec;--text-dim: #9aa1ad;--text-faint: #6b7280;--danger: #ef6b63;--ok: #34d399;color-scheme:dark}[data-radius=crisp]{--radius: 6px;--radius-sm: 4px}[data-font=sans]{--font-display: var(--font-ui)}:root{--accent-dark: color-mix(in srgb, var(--accent) 82%, var(--text));--accent-light: color-mix(in srgb, var(--accent) 12%, var(--bg-card));--border-focus: var(--accent);--danger-bg: color-mix(in srgb, var(--danger) 12%, var(--bg-card));--ok-bg: color-mix(in srgb, var(--ok) 12%, var(--bg-card))}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font-ui);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}h1,h2,h3{margin:0;line-height:1.2}h1,h2,.login-title,.portal-section-heading{font-family:var(--font-display);font-weight:560}p{margin:0}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}input,select{font:inherit;background:var(--bg-input);color:var(--text);border:1.5px solid var(--border);border-radius:var(--radius-sm);padding:.75rem 1rem;width:100%;transition:border-color .15s,box-shadow .15s;min-height:44px}input:focus,select:focus{outline:none;border-color:var(--border-focus);box-shadow:0 0 0 3px #0f6b6b26}input::placeholder{color:var(--text-faint)}button{font:inherit;cursor:pointer;border:1.5px solid var(--border);background:var(--bg-card);color:var(--text);border-radius:var(--radius-sm);padding:.7rem 1.25rem;min-height:44px;transition:background .15s,border-color .15s}button:hover{background:var(--bg)}button:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.btn-primary:hover:not(:disabled){background:var(--accent-dark);border-color:var(--accent-dark)}.linklike{background:none;border:none;padding:0;font:inherit;cursor:pointer;color:var(--accent)}.linklike:hover{text-decoration:underline}.field{display:flex;flex-direction:column;gap:.4rem}.field label{font-size:.88rem;font-weight:500;color:var(--text-dim)}.field-error{color:var(--danger);font-size:.85rem;margin-top:.25rem}.portal-loading{min-height:100%;display:grid;place-items:center;color:var(--text-faint);font-size:1.05rem}.login-shell{min-height:100%;display:grid;place-items:center;padding:1.5rem;background:var(--bg)}.login-card{width:100%;max-width:420px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-card);padding:2rem 1.75rem}.login-lang-row{display:flex;justify-content:flex-end;margin-bottom:1.25rem}.lang-toggle{background:var(--accent-light);border:1px solid var(--border-focus);color:var(--accent-dark);border-radius:999px;padding:.25rem .85rem;font-size:.82rem;font-weight:600;min-height:unset;cursor:pointer}.lang-toggle:hover{background:color-mix(in srgb,var(--accent) 20%,var(--bg-card))}.login-title{font-size:1.45rem;font-weight:700;color:var(--text);margin-bottom:.35rem}.login-sub{color:var(--text-dim);font-size:.95rem;margin-bottom:1.5rem}.login-btn{width:100%;margin-top:1.25rem;font-size:1rem;padding:.85rem;border-radius:var(--radius-sm)}.otp-hint{color:var(--text-dim);font-size:.9rem;margin-bottom:1rem}.login-links{display:flex;gap:1rem;margin-top:1rem;font-size:.88rem;flex-wrap:wrap}.portal-layout{min-height:100%;display:flex;flex-direction:column;background:var(--bg)}.portal-header{display:flex;align-items:center;justify-content:space-between;padding:.85rem 1.25rem;background:var(--bg-card);border-bottom:1px solid var(--border);box-shadow:0 1px 4px #0000000f;position:sticky;top:0;z-index:10;gap:.75rem}.portal-brand{font-weight:700;font-size:1.05rem;color:var(--accent-dark);letter-spacing:.01em}.portal-header-right{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.logout-btn{font-size:.88rem;color:var(--text-dim)}.guardian-switcher select{width:auto;min-width:120px;padding:.35rem .65rem;font-size:.88rem;min-height:unset;border-radius:var(--radius-sm)}.portal-main{flex:1;padding:1.5rem 1.25rem;max-width:720px;width:100%;margin:0 auto}.portal-greeting{font-size:1rem;color:var(--text-dim);margin-bottom:.5rem}.portal-section-heading{font-size:1.2rem;font-weight:700;color:var(--text);margin-bottom:1.25rem}.portal-tile-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.85rem}@media(min-width:480px){.portal-tile-grid{grid-template-columns:repeat(3,1fr)}}.portal-tile{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;background:var(--bg-card);border:1.5px solid var(--border);border-radius:var(--radius);padding:1.35rem .75rem;text-align:center;cursor:default;transition:border-color .15s,box-shadow .15s;min-height:110px}.portal-tile[aria-disabled=true]{opacity:.75}.portal-tile-icon{font-size:2rem;line-height:1}.portal-tile-label{font-size:.92rem;font-weight:600;color:var(--text)}.portal-tile-badge{font-size:.7rem;background:var(--accent-light);color:var(--accent-dark);border-radius:999px;padding:.1rem .6rem;font-weight:500}.portal-empty{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:2rem 1.5rem;text-align:center}.portal-empty-heading{font-size:1.05rem;font-weight:600;color:var(--text);margin-bottom:.5rem}.portal-empty-hint{color:var(--text-dim);font-size:.9rem}.profile-kv{display:grid;grid-template-columns:auto 1fr;gap:.35rem 1rem;margin:.5rem 0 1.25rem}.profile-kv dt{color:var(--text-dim);font-size:.88rem}.profile-kv dd{margin:0}.profile-list{margin:.5rem 0 1.25rem;padding-left:1.25rem}.profile-list li{margin-bottom:.35rem}.fee-invoice-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.75rem}.fee-invoice-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:1rem 1.1rem}.fee-invoice-summary{width:100%;display:flex;align-items:center;justify-content:space-between;gap:.6rem;background:none;border:none;padding:0;text-align:left;min-height:unset;font-size:.95rem}.fee-invoice-summary:hover{background:none}.fee-due-amount{font-weight:700}.fee-status{font-size:.72rem;font-weight:600;border-radius:999px;padding:.15rem .6rem;white-space:nowrap}.fee-status-issued,.fee-status-part_paid{background:var(--accent-light);color:var(--accent-dark)}.fee-status-paid{background:var(--ok-bg);color:var(--ok)}.fee-status-cancelled,.fee-status-written_off{background:var(--danger-bg);color:var(--danger)}.fee-status-draft{background:var(--bg);color:var(--text-faint)}.fee-pay-btn{margin-top:.75rem;width:100%}.fee-invoice-detail{margin-top:.85rem;padding-top:.85rem;border-top:1px solid var(--border)}.fee-line-list,.fee-payment-list{list-style:none;margin:0 0 .75rem;padding:0;font-size:.9rem}.fee-line-list li,.fee-payment-list li{padding:.2rem 0}.fee-order-note{background:var(--accent-light);color:var(--accent-dark);border-radius:var(--radius-sm);padding:.75rem 1rem;margin-bottom:1rem;font-size:.88rem}.attendance-summary{margin:0 0 1.5rem;font-size:1.05rem}.attendance-pct{font-weight:700;font-size:1.4rem;color:var(--accent-dark)}.attendance-note-form{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:1rem 1.1rem;margin-bottom:1rem;display:flex;flex-direction:column;gap:.75rem}.notice-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.6rem}.notice-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:.9rem 1.1rem}.notice-card.notice-unread{border-color:var(--accent)}.notice-summary{width:100%;display:flex;align-items:center;gap:.6rem;justify-content:space-between;background:none;border:none;padding:0;text-align:left;min-height:unset}.notice-summary:hover{background:none}.notice-title{flex:1;font-weight:600}.notice-dot{width:.5rem;height:.5rem;border-radius:50%;background:var(--accent);flex-shrink:0}.notice-body{margin-top:.7rem;padding-top:.7rem;border-top:1px solid var(--border);white-space:pre-wrap}.portal-tile-bell-badge{position:absolute;top:.4rem;right:.4rem;background:var(--danger);color:#fff;border-radius:999px;font-size:.68rem;font-weight:700;min-width:1.15rem;height:1.15rem;display:flex;align-items:center;justify-content:center;padding:0 .25rem}.child-card-grid{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1.5rem}.child-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:1rem 1.1rem}.child-card-name{font-weight:700;font-size:1.02rem}.child-card-stats{display:flex;gap:.75rem;margin-top:.75rem}.child-card-stat{flex:1;display:flex;flex-direction:column;align-items:center;gap:.15rem;background:var(--bg);border-radius:var(--radius-sm);padding:.6rem;min-height:unset}.child-card-stat-value{font-weight:700;font-size:1.05rem;color:var(--accent-dark)}.install-banner{display:flex;align-items:center;justify-content:space-between;gap:.75rem;background:var(--accent-light);border-radius:var(--radius-sm);padding:.75rem 1rem;margin-bottom:1.25rem}.muted{color:var(--text-dim)}.faint{color:var(--text-faint)}@supports (padding: env(safe-area-inset-bottom)){.portal-main{padding-bottom:calc(1.5rem + env(safe-area-inset-bottom))}}
