:root{--ink:#1a1614;--paper:#f7f5f2;--surface:#edeae5;--card:#fff;--line:#dad5ce;--muted:#5c5650;--accent:#ff5a3c;--accent-text:#c9361b;--on-accent:#1a1614;--highlight:#ffb37a;--ok-fg:#1e7a4f;--ok-bg:#dcefe5;--warn-fg:#9a5b00;--warn-bg:#ffe9c7;--bad-fg:#c8102e;--bad-bg:#fbdde0;--focus:#1a1614;--shadow:0 1px 2px #1a16140f, 0 4px 16px #1a16140f;--r-sm:8px;--r-md:12px;--r-lg:16px;--r-xl:20px;--r-pill:999px;--touch:44px;--font-display:"Bricolage Grotesque", "Figtree", system-ui, sans-serif;--font-text:"Figtree", system-ui, -apple-system, "Segoe UI", sans-serif;--gutter:16px;--sidebar:240px}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--ink:#f7f5f2;--paper:#1a1614;--surface:#26211e;--card:#211c19;--line:#3a3430;--muted:#b5aea6;--accent:#ff6e52;--accent-text:#ff8a73;--on-accent:#1a1614;--ok-fg:#4cc48a;--ok-bg:#16352a;--warn-fg:#ffc266;--warn-bg:#3d2c0f;--bad-fg:#ff6b7a;--bad-bg:#44181f;--focus:#f7f5f2;--shadow:0 1px 2px #0000004d, 0 4px 16px #00000040}}:root[data-theme=dark]{--ink:#f7f5f2;--paper:#1a1614;--surface:#26211e;--card:#211c19;--line:#3a3430;--muted:#b5aea6;--accent:#ff6e52;--accent-text:#ff8a73;--on-accent:#1a1614;--ok-fg:#4cc48a;--ok-bg:#16352a;--warn-fg:#ffc266;--warn-bg:#3d2c0f;--bad-fg:#ff6b7a;--bad-bg:#44181f;--focus:#f7f5f2;--shadow:0 1px 2px #0000004d, 0 4px 16px #00000040}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--paper);color:var(--ink);font-family:var(--font-text);-webkit-font-smoothing:antialiased;margin:0;font-size:16px;line-height:1.45}h1,h2,h3{font-family:var(--font-display);letter-spacing:-.01em;margin:0;font-weight:800;line-height:1.1}h1{font-size:28px}h2{font-size:20px}h3{font-size:16px;font-weight:600}p{margin:0}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:3px solid var(--focus);outline-offset:2px;border-radius:var(--r-sm)}.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}.muted{color:var(--muted)}.small{font-size:14px}.row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.spread{justify-content:space-between}.stack{flex-direction:column;gap:16px;display:flex}.stack-sm{flex-direction:column;gap:8px;display:flex}.icon{stroke:currentColor;fill:none;stroke-width:1.75px;stroke-linecap:round;stroke-linejoin:round;flex:none}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r-xl);box-shadow:var(--shadow);padding:20px}.card>.card-head{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px;display:flex}.btn{min-height:var(--touch);min-width:var(--touch);border:1px solid var(--line);border-radius:var(--r-pill);background:var(--card);white-space:nowrap;justify-content:center;align-items:center;gap:8px;padding:0 20px;font-weight:600;display:inline-flex}.btn:hover:not(:disabled){background:var(--surface)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.btn-primary:hover:not(:disabled){background:var(--highlight);border-color:var(--highlight)}.btn-danger{background:var(--bad-bg);border-color:var(--bad-fg);color:var(--bad-fg)}.btn-danger:hover:not(:disabled){background:var(--bad-bg);filter:brightness(.96)}.btn-quiet{background:0 0;border-color:#0000}.btn-small{padding:0 14px;font-size:14px}.chip{border-radius:var(--r-pill);background:var(--surface);color:var(--muted);white-space:nowrap;align-items:center;gap:6px;padding:4px 10px;font-size:13px;font-weight:600;line-height:1.2;display:inline-flex}.chip-ok{background:var(--ok-bg);color:var(--ok-fg)}.chip-warn{background:var(--warn-bg);color:var(--warn-fg)}.chip-bad{background:var(--bad-bg);color:var(--bad-fg)}.banner{border-radius:var(--r-lg);background:var(--surface);align-items:flex-start;gap:12px;padding:14px 16px;display:flex}.banner-warn{background:var(--warn-bg);color:var(--warn-fg)}.banner-bad{background:var(--bad-bg);color:var(--bad-fg)}.banner-ok{background:var(--ok-bg);color:var(--ok-fg)}.banner .banner-body{flex:1;min-width:0}.field{flex-direction:column;gap:6px;display:flex}.input,.select{min-height:var(--touch);border:1px solid var(--line);border-radius:var(--r-md);background:var(--card);width:100%;padding:0 14px}.input:focus-visible,.select:focus-visible{outline:3px solid var(--focus);outline-offset:1px}.toggle{border-radius:var(--r-pill);background:var(--line);border:0;flex:none;width:48px;height:28px;padding:0;transition:background .15s;position:relative}.toggle:before{content:"";position:absolute;inset:-8px -4px}.toggle[aria-checked=true]{background:var(--ok-fg)}.toggle .knob{background:#fff;border-radius:50%;width:22px;height:22px;transition:transform .15s;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #0000004d}.toggle[aria-checked=true] .knob{transform:translate(20px)}.toggle:disabled{opacity:.55;cursor:wait}.segmented{border-radius:var(--r-pill);background:var(--surface);padding:3px;display:inline-flex}.segmented button{border-radius:var(--r-pill);min-height:38px;color:var(--muted);background:0 0;border:0;padding:0 16px;font-weight:600}.segmented button[aria-pressed=true]{background:var(--card);color:var(--ink);box-shadow:var(--shadow)}.table-wrap{margin:0 -20px;padding:0 20px;overflow-x:auto}table.data{border-collapse:collapse;width:100%;font-size:15px}table.data th{text-align:left;color:var(--muted);border-bottom:1px solid var(--line);vertical-align:bottom;padding:8px 12px 8px 0;font-size:13px;font-weight:600}table.data td{border-bottom:1px solid var(--line);vertical-align:top;padding:12px 12px 12px 0}table.data .num{text-align:right;font-variant-numeric:tabular-nums}table.data tfoot td{border-bottom:0;font-weight:700}.list{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.list>li{border-bottom:1px solid var(--line);padding:14px 0}.list>li:last-child{border-bottom:0}.kpis{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:16px;display:grid}.kpi{flex-direction:column;gap:2px;display:flex}.kpi-value{font-family:var(--font-display);font-variant-numeric:tabular-nums;font-size:30px;line-height:1.1}.spark{width:100%;height:80px;fill:var(--accent);display:block}.spark rect:hover{fill:var(--accent-text)}table.spend-table{min-width:760px}table.spend-table tr.group-row th{letter-spacing:.06em;text-transform:uppercase;border-bottom:0;padding-top:18px;font-size:12px}table.spend-table tr.detail-line th,table.spend-table tr.detail-line td{background:var(--surface)}table.spend-table th.detail-name{padding-left:20px;font-weight:500}table.spend-table th[scope=row]{color:var(--ink);text-align:left;border-bottom:1px solid var(--line);padding:12px 12px 12px 0;font-size:15px}.feature-note{font-weight:400}.dialog-backdrop{z-index:50;padding:var(--gutter);background:#1a16148c;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.dialog{border-radius:var(--r-xl);background:var(--card);border:1px solid var(--line);width:min(440px,100%);box-shadow:var(--shadow);padding:24px}.skeleton{border-radius:var(--r-sm);background:linear-gradient(90deg, var(--surface), var(--line), var(--surface));background-size:200% 100%;height:16px;animation:1.4s linear infinite shimmer;display:block}@keyframes shimmer{to{background-position:-200% 0}}.dot{background:var(--muted);border-radius:50%;width:10px;height:10px}.spin{animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.dirty-bar{z-index:20;border-radius:var(--r-xl);background:var(--ink);color:var(--paper);box-shadow:var(--shadow);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:16px;padding:14px 16px;display:flex;position:sticky;bottom:0}.dirty-bar .btn{border-color:#0000}#root,.shell{min-height:100vh}.sidebar{display:none}.topbar{z-index:30;padding:8px var(--gutter);background:var(--paper);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;display:flex;position:sticky;top:0}.brand{font-family:var(--font-display);align-items:center;gap:10px;font-size:18px;font-weight:800;display:flex}.brand-mark{background:var(--accent);border-radius:9px;place-items:center;width:28px;height:28px;display:grid}.brand-mark:after{content:"";background:#fff;border-radius:50%;width:10px;height:10px}.content{padding:20px var(--gutter) 96px;max-width:1080px;margin:0 auto}.page-head{margin-bottom:20px}.page-head p{margin-top:6px}.nav-link{min-height:var(--touch);border-radius:var(--r-md);color:var(--ink);align-items:center;gap:12px;padding:0 14px;font-weight:600;text-decoration:none;display:flex}.nav-link:hover{background:var(--surface)}.nav-link[aria-current=page]{background:var(--surface);color:var(--accent-text)}.bottom-nav{z-index:30;padding:4px 4px calc(4px + env(safe-area-inset-bottom));background:var(--paper);border-top:1px solid var(--line);grid-template-columns:repeat(7,1fr);display:grid;position:fixed;bottom:0;left:0;right:0}.bottom-nav a{border-radius:var(--r-md);min-height:52px;color:var(--muted);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:2px;font-size:11px;font-weight:600;line-height:1.1;text-decoration:none;display:flex}.bottom-nav a[aria-current=page]{color:var(--accent-text);background:var(--surface)}.grid-2{gap:16px;display:grid}.service-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;margin:0;padding:0;list-style:none;display:grid}.service{border-radius:var(--r-lg);border:1px solid var(--line);background:var(--paper);padding:14px}.setting-row{border-bottom:1px solid var(--line);gap:10px;padding:16px 0;display:grid}.setting-row:last-child{border-bottom:0}.center-screen{min-height:100vh;padding:var(--gutter);place-items:center;display:grid}.center-card{width:min(440px,100%)}@media (width>=900px){.shell{grid-template-columns:var(--sidebar) 1fr;display:grid}.sidebar{background:var(--surface);border-right:1px solid var(--line);flex-direction:column;gap:24px;height:100vh;padding:24px 16px;display:flex;position:sticky;top:0}.sidebar nav{flex-direction:column;gap:4px;display:flex}.topbar .brand{display:none}.topbar{background:0 0;border-bottom:0;justify-content:flex-end;padding:16px 32px 0;position:static}.bottom-nav{display:none}.content{padding:16px 32px 48px}h1{font-size:32px}.grid-2{grid-template-columns:1fr 1fr}.setting-row{grid-template-columns:minmax(0,1fr) minmax(220px,300px);align-items:start;gap:24px}}
