:root{--bg:#fffaeb;--surface:#fff0c2;--surface-warm:var(--surface);--fg:#1f1f1f;--fg-2:var(--fg);--muted:#3d3d3d;--meta:var(--muted);--border:#f0e8c8;--border-soft:var(--border);--accent:#fa520f;--accent-on:#fff;--accent-hover:#fb6424;--accent-active:color-mix(in oklab, var(--accent), black 12%);--success:#17a34a;--warn:#eab308;--danger:#dc2626;--font-display:Arial, ui-sans-serif, system-ui, sans-serif;--font-body:Arial, ui-sans-serif, system-ui, sans-serif;--font-mono:ui-monospace, "SF Mono", "JetBrains Mono", Menlo, Consolas, monospace;--text-xs:12px;--text-sm:14px;--text-base:16px;--text-lg:24px;--text-xl:32px;--text-2xl:48px;--text-3xl:56px;--text-4xl:82px;--leading-body:1.5;--leading-tight:1;--tracking-display:-.025em;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-12:48px;--radius-sm:2px;--radius-md:2px;--radius-lg:4px;--radius-pill:9999px;--elev-flat:none;--elev-ring:0 0 0 1px var(--border);--elev-raised:-8px 16px 39px #7f63151f;--focus-ring:0 0 0 3px color-mix(in oklab, var(--accent), transparent 70%);--motion-fast:.15s;--motion-base:.2s;--ease-standard:cubic-bezier(.2, 0, 0, 1);--gold-cast:-8px 16px 39px #7f63151f, -33px 64px 72px #7f63151a, -73px 144px 97px #7f63150f}*{box-sizing:border-box;margin:0}html,body,#root{height:100%}body{font-family:var(--font-body);color:var(--fg);background:radial-gradient(120% 70% at 50% -10%, #ffe295 0%, var(--bg) 55%) fixed;-webkit-font-smoothing:antialiased;line-height:var(--leading-body);justify-content:center;display:flex}button{color:inherit;cursor:pointer;background:0 0;border:0;font-family:inherit}input{font-family:inherit}:focus-visible{box-shadow:var(--focus-ring);outline:none}.app{background:var(--bg);width:100%;max-width:460px;min-height:100dvh;box-shadow:var(--gold-cast);flex-direction:column;display:flex;position:relative}@media (width<=480px){.app{box-shadow:none}}.screen-host{flex-direction:column;flex:1;min-height:0;display:flex}.scroll{padding:var(--space-5) var(--space-5) 132px;-webkit-overflow-scrolling:touch;flex:1;overflow-y:auto}.btn{text-align:center;border-radius:var(--radius-sm);border:1px solid #0000;width:100%;padding:15px;font-size:16px;display:block}.btn-primary{background:var(--fg);color:#fff}.btn-primary:active{background:#000}.btn-secondary{background:var(--surface);color:var(--fg);border-color:var(--border)}.btn-ghost{color:var(--muted);background:0 0}.btnrow{gap:10px;display:flex}.btnrow .btn{flex:1}.topbar{z-index:30;background:color-mix(in oklab, var(--bg), white 18%);-webkit-backdrop-filter:saturate(1.2)blur(6px);backdrop-filter:saturate(1.2)blur(6px);border-bottom:1px solid var(--border);align-items:center;gap:var(--space-3);padding:14px var(--space-5);padding-top:max(14px, env(safe-area-inset-top));display:flex;position:sticky;top:0}.brand{flex:1;align-items:baseline;gap:8px;min-width:0;display:flex}.brand b{letter-spacing:-1px;font-size:22px;line-height:1}.brand span{color:var(--muted);font-size:11px;font-family:var(--font-mono);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.logomark{background:#fff;border:1px solid #cdbf94;border-radius:3px;flex-shrink:0;place-items:center;width:38px;height:46px;display:grid;position:relative;overflow:hidden;box-shadow:inset 0 -4px #efe6c8,0 2px 5px #7f631538}.logomark:before{content:"";background:linear-gradient(90deg, #ffd900 0%, #ffa110 42%, #ff8105 74%, var(--accent) 100%);height:8px;position:absolute;top:0;left:0;right:0}.logomark:after{content:"";background:var(--accent);opacity:.85;height:2px;position:absolute;bottom:5px;left:5px;right:5px}.logomark b{color:var(--fg);letter-spacing:0;margin-top:6px;font-size:24px;font-weight:700;line-height:1}.gear{border:1px solid var(--border);background:var(--surface);flex-shrink:0;place-items:center;width:40px;height:40px;display:grid}.gear:active{background:#ffe9a8}.gear svg{width:20px;height:20px}.scrim{z-index:60;opacity:0;pointer-events:none;transition:opacity var(--motion-base);background:#1f1f1f73;position:fixed;inset:0}.scrim.show{opacity:1;pointer-events:auto}.sheet{z-index:61;background:var(--bg);border-top:3px solid var(--accent);max-width:460px;transition:transform var(--motion-base) var(--ease-standard);max-height:80dvh;padding:var(--space-5) var(--space-5) max(var(--space-6), env(safe-area-inset-bottom));border-radius:6px 6px 0 0;margin:0 auto;position:fixed;bottom:0;left:0;right:0;overflow-y:auto;transform:translateY(100%)}.sheet.show{transform:translateY(0)}.sheet-title{letter-spacing:-.5px;align-items:center;gap:10px;font-size:24px;font-weight:400;display:flex}.sheet-title .v{font-family:var(--font-mono);color:var(--accent);border:1px solid color-mix(in oklab, var(--accent), transparent 70%);border-radius:var(--radius-sm);padding:2px 7px;font-size:12px}.sheet .plain{color:var(--muted);margin-top:6px;font-size:15px}.sheet .eg{margin-top:var(--space-5);padding:var(--space-4);background:var(--surface);border-radius:var(--radius-sm);font-size:14px;line-height:1.6}.sheet .eg-t{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:1px;color:var(--accent);margin-bottom:8px;font-size:11px}.sheet .caveat{color:var(--muted);margin-top:14px;font-size:12px;line-height:1.5}.sheet .close{margin-top:var(--space-5)}.tiles{flex-wrap:wrap;gap:6px;margin:10px 0 2px;display:flex}.tile{background:#fff;border:1px solid #cdbf94;border-radius:3px;place-items:center;width:34px;height:46px;display:grid;position:relative;box-shadow:inset 0 -3px #efe6c8,0 1px 2px #7f63152e}.tile u{text-align:center;color:#1f1f1f;font-size:13px;font-style:normal;line-height:1;text-decoration:none}.tile.red u{color:var(--accent)}.tile.green u{color:var(--success)}.tile.ghost{opacity:.32}.tile.hit{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in oklab, var(--accent), transparent 60%), inset 0 -3px 0 #ffe0cf}.card{border:1px solid var(--border);box-shadow:var(--elev-raised);border-radius:var(--radius-sm);background:#fff}.row{align-items:center;gap:var(--space-3);padding:13px var(--space-4);border-top:1px solid var(--border);display:flex}.row:first-child{border-top:0}.row .lab{flex:1;min-width:0}.row .lab b{align-items:center;gap:8px;font-size:16px;font-weight:400;display:flex}.row .lab .v{font-family:var(--font-mono);color:var(--accent);border:1px solid color-mix(in oklab, var(--accent), transparent 70%);border-radius:var(--radius-sm);padding:1px 5px;font-size:11px}.row .lab small{color:var(--muted);margin-top:2px;font-size:12.5px;line-height:1.35;display:block}.qq{border-radius:var(--radius-pill);border:1px solid var(--border);width:22px;height:22px;font-family:var(--font-mono);color:var(--muted);background:var(--surface);flex-shrink:0;place-items:center;font-size:13px;display:grid}.sw{border-radius:var(--radius-pill);border:1px solid var(--border);width:46px;height:27px;transition:background var(--motion-base);background:#e6dcc0;flex-shrink:0;position:relative}.sw:after{content:"";width:21px;height:21px;transition:transform var(--motion-base) var(--ease-standard);background:#fff;border-radius:50%;position:absolute;top:2px;left:2px;box-shadow:0 1px 3px #0003}.sw[aria-pressed=true]{background:var(--accent)}.sw[aria-pressed=true]:after{transform:translate(19px)}.cnt{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);flex-shrink:0;align-items:center;display:flex;overflow:hidden}.cnt button{width:38px;height:38px;color:var(--fg);place-items:center;font-size:20px;display:grid}.cnt button:active{background:#ffe9a8}.cnt b{text-align:center;min-width:34px;font-family:var(--font-mono);background:#fff;align-self:stretch;place-items:center;font-size:17px;display:grid}.note{padding:11px var(--space-4);background:var(--surface);border-left:3px solid var(--accent);color:var(--muted);margin-top:10px;font-size:13px;line-height:1.45}.valwarn{padding:11px var(--space-4);background:color-mix(in oklab, var(--accent), white 82%);border:1px solid color-mix(in oklab, var(--accent), white 55%);color:#8a2d06;border-radius:var(--radius-sm);margin-top:10px;font-size:13px}.dock{z-index:25;background:var(--fg);color:#fff;padding:14px var(--space-5) max(14px, env(safe-area-inset-bottom));align-items:center;gap:var(--space-4);display:flex;position:absolute;bottom:0;left:0;right:0;box-shadow:0 -12px 30px #7f63152e}.dock .live{flex:1;min-width:0}.dock .live small{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:1px;color:#ffd06a;font-size:11px;display:block}.dock .live b{letter-spacing:-1px;align-items:baseline;gap:6px;font-size:30px;font-weight:400;line-height:1.05;display:flex}.dock .live b em{color:#ffce7a;font-size:14px;font-style:normal}.dock .see-detail{width:auto;padding:14px 22px}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip-wrap{display:inline-flex;position:relative}.chip{border:1px solid var(--border);background:var(--surface);border-radius:var(--radius-sm);transition:transform var(--motion-fast) var(--ease-standard);flex-direction:column;align-items:flex-start;gap:2px;padding:9px 14px;font-size:15px;line-height:1.1;display:flex}.chip-wrap.hasq .chip{padding-right:30px}.chip small{color:var(--muted);font-size:11px;font-family:var(--font-mono)}.chip[aria-pressed=true]{background:var(--fg);color:#fff;border-color:var(--fg)}.chip[aria-pressed=true] small{color:#ffce7a}.chip:active{transform:translateY(1px)}.chip.warnflag[aria-pressed=true]{background:var(--accent);border-color:var(--accent)}.chipq{border-radius:var(--radius-pill);border:1px solid var(--border);background:var(--bg);width:18px;height:18px;color:var(--muted);font-family:var(--font-mono);place-items:center;font-size:11px;line-height:1;display:grid;position:absolute;top:6px;right:6px}.chip[aria-pressed=true]+.chipq{color:#ffce7a;background:#ffffff2e;border-color:#fff6}.sec{margin-top:var(--space-6)}.sec:first-child{margin-top:var(--space-2)}.eyebrow{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:1.5px;color:var(--accent);margin-bottom:var(--space-3);align-items:center;gap:8px;font-size:11px;display:flex}.eyebrow .req{color:var(--muted);text-transform:none;letter-spacing:0}.eyebrow:before{content:"";background:var(--accent);width:14px;height:2px;display:inline-block}.scroll.detail{padding:0 0 24px}.total{padding:var(--space-8) var(--space-5) var(--space-6);text-align:center}.total small{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:2px;color:var(--muted);font-size:12px}.total .big{letter-spacing:var(--tracking-display);justify-content:center;align-items:baseline;gap:10px;margin-top:6px;font-size:74px;line-height:.95;display:flex}.total .big em{color:var(--muted);font-size:22px;font-style:normal}.formula{margin:var(--space-6) var(--space-5) 0}.formula .eyebrow{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:1.5px;color:var(--accent);margin-bottom:var(--space-3);font-size:11px}.formula .ln{border-bottom:1px dashed var(--border);justify-content:space-between;align-items:baseline;padding:9px 0;font-size:14.5px;display:flex}.formula .ln span{color:var(--muted)}.formula .ln b{font-family:var(--font-mono);font-weight:400}.formula .ln.tot{border-bottom:0;border-top:2px solid var(--fg);margin-top:4px;padding-top:11px;font-size:16px}.formula .step{font-family:var(--font-mono);color:var(--muted);background:var(--surface);padding:12px var(--space-4);border-radius:var(--radius-sm);word-break:break-all;margin-top:14px;font-size:13px;line-height:1.7}.rulebar{margin:var(--space-5);padding:12px var(--space-4);border:1px solid var(--border);background:var(--surface);font-family:var(--font-mono);color:var(--muted);border-radius:var(--radius-sm);font-size:11.5px;line-height:1.7}.detail-actions{padding:0 var(--space-5)}.paycard{margin:0 var(--space-5) var(--space-4);background:var(--accent);color:#fff;padding:var(--space-5);border-radius:var(--radius-sm);box-shadow:var(--elev-raised)}.paycard.paycard-dark{background:var(--fg)}.paycard .mode{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:1.5px;color:#ffd9c2;font-size:11px}.paycard .head{margin:6px 0 12px;font-size:21px;line-height:1.2}.paylist{flex-direction:column;gap:7px;display:flex}.payitem{border-top:1px solid #ffffff40;justify-content:space-between;align-items:baseline;padding-top:7px;font-size:15px;display:flex}.payitem:first-child{border-top:0;padding-top:0}.payitem.note-line{opacity:.85;font-size:12px}.payitem b{font-family:var(--font-mono)}.scroll.set{padding-bottom:120px}.set-intro{color:var(--muted);margin-bottom:4px;font-size:13.5px}.set .lab b{font-size:15px;font-weight:400}.set .lab small{color:var(--muted);margin-top:2px;font-size:12px;line-height:1.35;display:block}.numin{border:1px solid var(--border);text-align:center;width:78px;height:38px;font-family:var(--font-mono);border-radius:var(--radius-sm);color:var(--fg);background:#fff;font-size:16px}.subhead{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:1.5px;color:var(--muted);margin:var(--space-6) 0 var(--space-3) 4px;font-size:11px}.set-actions{margin-top:var(--space-6)}
