@font-face{font-family:Fredoka;font-style:normal;font-weight:400 600;font-display:swap;src:url(/fivedollars/fonts/fredoka-latin.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:Fredoka;font-style:normal;font-weight:400 600;font-display:swap;src:url(/fivedollars/fonts/fredoka-latin-ext.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}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--bg:#f4faf5;--bg-grad:linear-gradient(180deg, #eaf7f0 0, #fbf8f1 420px, #fffaf3 100%);--surface:#fff;--surface-2:#f1f7f2;--border:#ddd8e8;--text:#4a3a6b;--muted:#6b5f8a;--accent:#1f7a52;--accent-soft:#dff3e7;--accent-ink:#fff;--gold:#f0b429;--gold-soft:#fff3cf;--gold-ink:#8a5a00;--pink:#ffb3d1;--lavender:#c9b6ff;--mint:#a8e6d9;--pos:#1a7a3e;--neg:#c2283f;--chart-pos:#2f9a6a;--chart-neg:#d94a64;--warn:#8f5f00;--focus:#f0478a;--row-hover:#f3f9f5;--row-sel:#dff3e7;--radius:14px;--radius-sm:10px;--pill:999px;--shadow:0 2px 10px #4a3a6b17;--shadow-up:0 6px 22px #4a3a6b29;--font:system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--round:"Fredoka", ui-rounded, "SF Pro Rounded", system-ui, sans-serif;--mono:ui-monospace, "SF Mono", Menlo, Consolas, monospace}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#1d1838;--bg-grad:linear-gradient(180deg, #1d1838 0, #241d44 420px, #2a2148 100%);--surface:#272046;--surface-2:#312956;--border:#463c6e;--text:#f4ecff;--muted:#c3b5e0;--accent:#6fdcaa;--accent-soft:#24413a;--accent-ink:#1d1838;--gold:#ffd966;--gold-soft:#3d3446;--gold-ink:#ffd966;--pos:#6fe0a0;--neg:#ff8f9f;--chart-pos:#6fe0a0;--chart-neg:#ff8f9f;--warn:#ffcf5c;--focus:#ff8fbd;--row-hover:#2e2652;--row-sel:#24413a;--shadow:0 2px 12px #0000004d;--shadow-up:0 8px 26px #00000073}}*{box-sizing:border-box}html,body{color:var(--text);font:14px/1.45 var(--font);margin:0}html{background:var(--bg)}body{background:var(--bg-grad);background-color:var(--bg);min-height:100vh}a{color:var(--accent);text-underline-offset:2px;text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3{line-height:1.2;font-family:var(--round);letter-spacing:.01em;margin:0 0 12px;font-weight:600}h1{font-size:24px}h2{font-size:19px}h3{font-size:16px}p{margin:0 0 10px}.muted{color:var(--muted)}.small{font-size:12px}.mono{font-family:var(--mono)}.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.pos{color:var(--pos)}.neg{color:var(--neg)}.warn{color:var(--warn)}.pos,.neg{font-variant-numeric:tabular-nums}.row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.spacer{flex:1}.stack>*+*{margin-top:12px}.grid2{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px 16px;display:grid}main{max-width:1400px;margin:0 auto;padding:16px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px}.card+.card{margin-top:16px}.grid2>.card+.card{margin-top:0}button,.btn{font:500 14px/1.2 var(--round);letter-spacing:.01em;border:1.5px solid var(--border);background:var(--surface);color:var(--text);border-radius:var(--pill);cursor:pointer;white-space:nowrap;align-items:center;gap:6px;min-height:30px;padding:5px 14px;transition:background-color .15s,border-color .15s,transform .15s,box-shadow .15s;display:inline-flex}button:hover:not(:disabled),.btn:hover{background:var(--surface-2);border-color:color-mix(in srgb, var(--accent) 35%, var(--border));text-decoration:none}button:active:not(:disabled),.btn:active{transform:translateY(1px)}button:disabled{opacity:.5;cursor:not-allowed}button.primary,.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);box-shadow:0 2px 0 color-mix(in srgb, var(--accent) 55%, #000)}button.primary:hover:not(:disabled),.btn.primary:hover{background:color-mix(in srgb, var(--accent) 88%, #fff);border-color:var(--accent);transform:translateY(-1px)}button.primary:active:not(:disabled){box-shadow:none;transform:translateY(1px)}button.danger{color:var(--neg);border-color:color-mix(in srgb, var(--neg) 45%, var(--border))}button.danger.solid{background:var(--neg);border-color:var(--neg);color:#fff}@media (prefers-color-scheme:dark){button.danger.solid{color:var(--accent-ink)}}button.ghost{background:0 0;border-color:#0000}button.small,.btn.small{min-height:24px;padding:2px 10px;font-size:12px}:focus-visible{outline:3px solid var(--focus);outline-offset:2px}input,select,textarea{font:inherit;color:var(--text);background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius-sm);max-width:100%;min-height:30px;padding:5px 9px;transition:border-color .15s}input:hover,select:hover,textarea:hover{border-color:color-mix(in srgb, var(--accent) 35%, var(--border))}input:focus,select:focus,textarea:focus{border-color:var(--accent)}input[type=checkbox],input[type=radio]{min-height:auto;accent-color:var(--accent)}textarea{width:100%;min-height:60px}label.field{color:var(--muted);flex-direction:column;gap:4px;font-size:12px;display:flex}label.field>input,label.field>select,label.field>textarea{color:var(--text);font-size:14px}label.check{cursor:pointer;align-items:center;gap:6px;display:inline-flex}table.data{border-collapse:separate;border-spacing:0;background:var(--surface);width:100%}table.data th,table.data td{border-bottom:1px solid var(--border);vertical-align:top;padding:5px 8px}table.data td{font-variant-numeric:tabular-nums}table.data th{background:var(--surface-2);text-align:left;z-index:1;white-space:nowrap;font-size:12px;font-weight:600;position:sticky;top:0}table.data th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}table.data tbody tr:hover{background:var(--row-hover)}table.data tbody tr.selected{background:var(--row-sel)}table.data tbody tr.cursor{box-shadow:inset 3px 0 0 var(--accent)}table.data tr.dim{opacity:.55}table.data tfoot td{background:var(--surface-2);font-weight:600}table.data tbody tr:last-child td{border-bottom-color:#0000}table.data tfoot tr:first-child td{border-top:1px solid var(--border)}.card>table.data,.card>.table-wrap{border-radius:var(--radius-sm)}.table-wrap{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);max-height:calc(100vh - 230px);box-shadow:var(--shadow);overflow:auto}.table-wrap.full{z-index:50;background:var(--bg);border-radius:0;max-height:none;padding:8px;position:fixed;inset:0}.badge{border-radius:var(--pill);white-space:nowrap;border:1px solid #0000;margin:1px 2px 1px 0;padding:0 7px;font-size:11px;display:inline-block}.badge.computed{background:var(--surface-2);color:var(--muted);border-color:var(--border)}.badge.alert{color:var(--warn);border-color:color-mix(in srgb, var(--warn) 40%, transparent);background:color-mix(in srgb, var(--gold) 12%, transparent)}.tag{background:hsl(var(--h) 70% 90%);color:hsl(var(--h) 60% 22%)}@media (prefers-color-scheme:dark){.tag{background:hsl(var(--h) 35% 28%);color:hsl(var(--h) 75% 88%)}}.tabs{background:color-mix(in srgb, var(--surface) 70%, transparent);border:1px solid var(--border);border-radius:var(--pill);scrollbar-width:thin;gap:4px;width:fit-content;max-width:100%;margin-bottom:16px;padding:4px;display:flex;overflow-x:auto}.tabs a{color:var(--muted);border-radius:var(--pill);white-space:nowrap;font:500 14px/1.3 var(--round);letter-spacing:.01em;padding:6px 14px;transition:background-color .15s,color .15s}.tabs a.active{color:var(--accent-ink);background:var(--accent);box-shadow:var(--shadow)}.tabs a:hover{color:var(--text);background:var(--surface-2);text-decoration:none}.tabs a.active:hover{color:var(--accent-ink);background:var(--accent)}.banner{border-radius:var(--radius);border:1px solid var(--border);background:var(--surface-2);margin-bottom:12px;padding:10px 14px}.banner.warn{border-color:color-mix(in srgb, var(--gold) 60%, var(--border));background:var(--gold-soft)}.banner.error{border-color:color-mix(in srgb, var(--neg) 50%, var(--border));background:color-mix(in srgb, var(--neg) 8%, var(--surface))}dialog{border:1px solid var(--border);background:var(--surface);color:var(--text);max-width:min(560px,94vw);box-shadow:var(--shadow-up);border-radius:20px;padding:22px}dialog::backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#2a1e4661}.toasts{z-index:100;flex-direction:column;gap:8px;max-width:min(420px,92vw);display:flex;position:fixed;bottom:16px;right:16px}.toast{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-up);padding:8px 8px 8px 14px;position:relative;overflow:hidden}.toast:before{content:"";background:var(--accent);width:5px;position:absolute;inset:0 auto 0 0}.toast.error:before{background:var(--neg)}.toast.ok:before{background:var(--pos)}.tree-indent{display:inline-block}.kbd{font-family:var(--mono);border:1px solid var(--border);background:var(--surface-2);border-bottom-width:2px;border-radius:5px;padding:0 4px;font-size:11px}.chart{width:100%;height:320px}.empty{text-align:center;color:var(--muted);padding:32px}div.empty:before,p.empty:before,td.empty:before{content:"";background:url(/fivedollars/art/coin.svg) 50%/contain no-repeat;width:56px;height:56px;margin:0 auto 12px;display:block}td.empty:before{width:40px;height:40px;margin-bottom:8px}.empty.loading:before{animation:1.6s ease-in-out infinite coin-spin}@keyframes coin-spin{0%,to{transform:rotateY(0)translateY(0)}50%{transform:rotateY(180deg)translateY(-4px)}}.kpis{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;display:grid}.kpi{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:12px 14px}.kpi .v{font:600 22px/1.25 var(--round);font-variant-numeric:tabular-nums}.kpi .l{color:var(--muted);font-size:12px}.sparkle{color:var(--gold);text-shadow:0 0 1px var(--gold-ink)}@media (width<=700px){main{padding:10px}.hide-sm{display:none}}.pre-wrap{white-space:pre-wrap;margin:0}button.linkish{all:unset;color:var(--accent);cursor:pointer}button.linkish:hover{text-decoration:underline}button.linkish:focus-visible{outline:3px solid var(--focus);outline-offset:2px}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}button:hover:not(:disabled),button:active:not(:disabled){transform:none!important}}
