:root{--paper: #f6f4ef;--paper-2: #efece4;--card: #fffdf9;--ink: #1a1714;--ink-2: #4b463f;--ink-3: #8a8378;--line: #e4ded2;--line-2: #d8d1c3;--accent: #c6603d;--accent-ink: #a44a2c;--accent-soft:#f0dccf;--sage: #6f7a63;--sky: #4a6c86;--gold: #b98a34;--ok: #5c7a52;--warn: #b8862f;--danger: #b04a3a;--shadow-sm: 0 1px 2px rgba(40,32,24,.05), 0 1px 1px rgba(40,32,24,.04);--shadow-md: 0 4px 14px -6px rgba(40,32,24,.16), 0 2px 6px -3px rgba(40,32,24,.1);--shadow-lg: 0 24px 60px -24px rgba(40,32,24,.3), 0 8px 24px -12px rgba(40,32,24,.14);--r-sm: 8px;--r: 13px;--r-lg: 20px;--r-xl: 28px;--font-serif: "Fraunces", Georgia, serif;--font-sans: "Space Grotesk", system-ui, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, monospace;--ease: cubic-bezier(.22,.61,.36,1);--ease-out: cubic-bezier(.16,1,.3,1);--nav-w: 250px;--maxw: 1180px}:root[data-theme=dark]{--paper: #141210;--paper-2: #1b1815;--card: #1f1b17;--ink: #f3efe7;--ink-2: #c3bcae;--ink-3: #8c8478;--line: #2c2823;--line-2: #3a352e;--accent: #e07a53;--accent-ink: #ed9773;--accent-soft:#3a2418;--card-2: #26221d;--shadow-sm: 0 1px 2px rgba(0,0,0,.3);--shadow-md: 0 6px 20px -8px rgba(0,0,0,.5);--shadow-lg: 0 30px 70px -28px rgba(0,0,0,.65)}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font-sans);font-size:15px;line-height:1.55;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden}::selection{background:var(--accent);color:#fff}h1,h2,h3,h4{margin:0;font-weight:500;letter-spacing:-.02em;line-height:1.08}p{margin:0}a{color:inherit;text-decoration:none}button{font-family:inherit}input,textarea,select{font-family:inherit;color:inherit}.serif{font-family:var(--font-serif);font-weight:400;letter-spacing:-.01em}.mono{font-family:var(--font-mono)}.kicker{font-family:var(--font-mono);font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-3)}.muted{color:var(--ink-2)}.dim{color:var(--ink-3)}.num{font-variant-numeric:tabular-nums}*::-webkit-scrollbar{width:10px;height:10px}*::-webkit-scrollbar-thumb{background:var(--line-2);border-radius:10px;border:3px solid transparent;background-clip:content-box}*::-webkit-scrollbar-thumb:hover{background:var(--ink-3);background-clip:content-box}.btn{--bg: var(--ink);--fg: var(--paper);display:inline-flex;align-items:center;gap:8px;padding:10px 18px;border-radius:100px;background:var(--bg);color:var(--fg);border:1px solid transparent;cursor:pointer;font-size:13.5px;font-weight:500;letter-spacing:-.01em;transition:transform .35s var(--ease-out),box-shadow .35s var(--ease-out),background .2s,color .2s,border-color .2s;white-space:nowrap;position:relative}.btn:hover{transform:translateY(-1px);box-shadow:var(--shadow-md)}.btn:active{transform:translateY(0)}.btn svg{width:16px;height:16px}.btn.ghost{--bg: transparent;--fg: var(--ink);border-color:var(--line-2)}.btn.ghost:hover{background:var(--card);border-color:var(--ink-3)}.btn.accent{--bg: var(--accent);--fg: #fff}.btn.soft{--bg: var(--card);--fg: var(--ink);border-color:var(--line)}.btn.soft:hover{border-color:var(--accent);color:var(--accent-ink)}.btn.sm{padding:7px 13px;font-size:12.5px}.btn.lg{padding:14px 26px;font-size:15px}.btn:disabled{opacity:.45;pointer-events:none}.btn.block{width:100%;justify-content:center}.iconbtn{width:38px;height:38px;display:grid;place-items:center;border-radius:11px;border:1px solid var(--line);background:var(--card);color:var(--ink-2);cursor:pointer;transition:color .2s,border-color .2s,transform .3s var(--ease-out),background .2s}.iconbtn:hover{color:var(--accent-ink);border-color:var(--accent);transform:translateY(-1px)}.iconbtn svg{width:18px;height:18px}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-sm)}.card.pad{padding:22px}.hoverable{transition:transform .5s var(--ease-out),box-shadow .5s var(--ease-out),border-color .35s}.hoverable:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:var(--line-2)}.panel{background:var(--paper-2);border:1px solid var(--line);border-radius:var(--r)}.divider{height:1px;background:var(--line);border:0;margin:0}.badge{display:inline-flex;align-items:center;gap:6px;padding:4px 11px;border-radius:100px;font-family:var(--font-mono);font-size:11px;letter-spacing:.04em;background:var(--paper-2);color:var(--ink-2);border:1px solid var(--line);white-space:nowrap}.badge .dot{width:6px;height:6px;border-radius:50%;background:currentColor}.badge.ok{color:var(--ok);background:color-mix(in srgb,var(--ok) 12%,transparent);border-color:color-mix(in srgb,var(--ok) 28%,transparent)}.badge.warn{color:var(--warn);background:color-mix(in srgb,var(--warn) 13%,transparent);border-color:color-mix(in srgb,var(--warn) 30%,transparent)}.badge.danger{color:var(--danger);background:color-mix(in srgb,var(--danger) 12%,transparent);border-color:color-mix(in srgb,var(--danger) 30%,transparent)}.badge.accent{color:var(--accent-ink);background:var(--accent-soft);border-color:color-mix(in srgb,var(--accent) 35%,transparent)}.badge.info{color:var(--sky);background:color-mix(in srgb,var(--sky) 12%,transparent);border-color:color-mix(in srgb,var(--sky) 28%,transparent)}.chip{padding:6px 13px;border-radius:100px;border:1px solid var(--line-2);background:var(--card);font-size:12.5px;color:var(--ink-2);cursor:pointer;transition:all .25s var(--ease);white-space:nowrap}.chip:hover{border-color:var(--ink-3);color:var(--ink)}.chip.on{background:var(--ink);color:var(--paper);border-color:var(--ink)}.meter{height:6px;border-radius:100px;background:var(--line);overflow:hidden}.meter>i{display:block;height:100%;border-radius:100px;background:var(--accent);transition:width 1s var(--ease-out)}.meter.thin{height:4px}.field{display:flex;flex-direction:column;gap:7px}.field>label{font-size:12px;letter-spacing:.03em;color:var(--ink-2);font-weight:500}.input,.textarea,.select{width:100%;background:var(--paper);border:1px solid var(--line-2);border-radius:11px;padding:11px 14px;font-size:14px;color:var(--ink);transition:border-color .2s,box-shadow .2s,background .2s}.input:focus,.textarea:focus,.select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 14%,transparent);background:var(--card)}.textarea{resize:vertical;min-height:90px;line-height:1.5}::placeholder{color:var(--ink-3)}.tbl{width:100%;border-collapse:collapse;font-size:13.5px}.tbl th{text-align:left;font-family:var(--font-mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);font-weight:500;padding:10px 14px;border-bottom:1px solid var(--line-2);white-space:nowrap}.tbl td{padding:13px 14px;border-bottom:1px solid var(--line);vertical-align:middle}.tbl tbody tr:last-child td{border-bottom:none}.tbl tbody tr{transition:background .15s}.tbl tbody tr:hover{background:color-mix(in srgb,var(--paper-2) 55%,transparent)}.tbl .r{text-align:right}.cd{display:flex;gap:12px}.cd .unit{text-align:center;min-width:66px;padding:13px 10px;border-radius:var(--r);background:var(--card);border:1px solid var(--line)}.cd .n{font-family:var(--font-serif);font-size:32px;line-height:1;font-variant-numeric:tabular-nums}.cd .l{font-family:var(--font-mono);font-size:9.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-3);margin-top:7px}.cd.hot .unit{border-color:color-mix(in srgb,var(--danger) 40%,var(--line));background:color-mix(in srgb,var(--danger) 5%,var(--card))}.cd.hot .n{color:var(--danger)}.cd.sm .unit{min-width:52px;padding:9px 8px}.cd.sm .n{font-size:22px}.navlink{display:block;padding:9px 12px;border-radius:11px;color:var(--ink-2);font-size:14px;font-weight:500;transition:background .2s,color .2s}.navlink:hover{background:var(--card);color:var(--ink)}.navlink.active{background:var(--card);color:var(--ink);box-shadow:var(--shadow-sm)}.navcount{min-width:20px;height:20px;padding:0 6px;border-radius:20px;background:var(--accent);color:#fff;font-size:11px;font-weight:600;display:grid;place-items:center;font-family:var(--font-mono)}.navcount.warn{background:var(--warn)}.tabbar{display:flex;gap:4px;border-bottom:1px solid var(--line);overflow-x:auto}.tabbar button{padding:12px 16px;background:none;border:none;cursor:pointer;border-bottom:2px solid transparent;color:var(--ink-3);font-weight:500;font-size:14.5px;white-space:nowrap;transition:color .2s}.tabbar button.on{border-bottom-color:var(--accent);color:var(--ink)}.sheetpeek{position:fixed;z-index:85;width:360px;pointer-events:none;animation:floatIn .16s ease}.toolbtn{width:38px;height:38px;display:grid;place-items:center;border-radius:10px;border:1px solid transparent;background:transparent;color:var(--ink-2);cursor:pointer;transition:background .15s,color .15s,border-color .15s}.toolbtn:hover{background:var(--paper-2);color:var(--ink)}.toolbtn.on{background:var(--ink);color:var(--paper)}.row{display:flex;align-items:center;gap:12px}.row.between{justify-content:space-between}.row.wrap{flex-wrap:wrap}.col{display:flex;flex-direction:column}.grid{display:grid;gap:18px}.spread{flex:1}.stack>*+*{margin-top:var(--sp, 14px)}@keyframes floatIn{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}@keyframes shimmer{to{background-position:200% 0}}@keyframes pulseDot{0%,to{opacity:1}50%{opacity:.35}}.live-dot{width:7px;height:7px;border-radius:50%;background:var(--ok);box-shadow:0 0 color-mix(in srgb,var(--ok) 50%,transparent);animation:pulseDot 1.8s infinite}.reveal{opacity:0}.will-float{will-change:transform,opacity}@media(prefers-reduced-motion:reduce){*{animation-duration:.001ms!important;transition-duration:.001ms!important}.reveal{opacity:1!important}}
