:root{--bg:#1b1817;--surface:#262220;--surface-2:#312b28;--surface-3:#3b3431;--border:#f4efea17;--border-strong:#f4efea29;--text:#f4efea;--muted:#9d948c;--muted-2:#6f665f;--accent:#5dcaa5;--accent-ink:#18120f;--accent-soft:color-mix(in srgb, var(--accent) 16%, transparent);--accent-line:color-mix(in srgb, var(--accent) 30%, transparent);--danger:#e5736b;--gold:#f2c879;--r-sm:10px;--r:16px;--r-lg:22px;--r-pill:999px;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:24px;--sp-6:32px;--shadow:0 10px 30px #00000059;--shadow-sheet:0 -16px 40px #00000073;--ease:cubic-bezier(.22, .61, .36, 1);--font:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif}*{box-sizing:border-box}html,body{height:100%;margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased;overscroll-behavior-y:none;font-size:16px;line-height:1.4}button{cursor:pointer;font-family:inherit}input,select{font-family:inherit}a{color:inherit;text-decoration:none}h1,h2,h3,p{margin:0}.num{font-variant-numeric:tabular-nums}.app-frame{background:var(--bg);flex-direction:column;max-width:480px;min-height:100dvh;margin:0 auto;display:flex;position:relative}.h1{letter-spacing:-.02em;font-size:28px;font-weight:700}.h2{letter-spacing:-.01em;font-size:20px;font-weight:650}.eyebrow{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-size:12px;font-weight:600}.muted{color:var(--muted)}.tiny{font-size:13px}.stack{gap:var(--sp-3);flex-direction:column;display:flex}.row{align-items:center;gap:var(--sp-3);display:flex}.between{justify-content:space-between;align-items:center;display:flex}.grow{flex:1}.wrap{flex-wrap:wrap}.page{padding:var(--sp-5) var(--sp-4) calc(96px + env(safe-area-inset-bottom));gap:var(--sp-4);flex-direction:column;flex:1;display:flex;overflow-y:auto}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);padding:var(--sp-4)}.card.tap{transition:transform .12s var(--ease), border-color .12s var(--ease)}.card.tap:active{border-color:var(--border-strong);transform:scale(.985)}.tile{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);padding:var(--sp-4);flex-direction:column;gap:2px;display:flex}.tile .val{letter-spacing:-.01em;font-size:26px;font-weight:700}.tile .lbl{color:var(--muted);font-size:13px}.btn{appearance:none;border-radius:var(--r);color:var(--text);background:var(--surface-2);justify-content:center;align-items:center;gap:var(--sp-2);transition:transform .1s var(--ease), background .15s var(--ease), opacity .15s;border:1px solid #0000;padding:14px 18px;font-size:16px;font-weight:650;display:inline-flex}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.45;pointer-events:none}.btn.primary{background:var(--accent);color:var(--accent-ink)}.btn.ghost{border-color:var(--border-strong);background:0 0}.btn.danger{border-color:color-mix(in srgb, var(--danger) 45%, transparent);color:var(--danger);background:0 0}.btn.block{width:100%}.btn.lg{padding:17px 20px;font-size:17px}.btn.sm{border-radius:var(--r-sm);padding:9px 13px;font-size:14px}.icon-btn{border-radius:var(--r-sm);background:var(--surface-2);border:1px solid var(--border);width:44px;height:44px;color:var(--text);justify-content:center;align-items:center;display:inline-flex}.chip{border-radius:var(--r-pill);background:var(--surface-2);border:1px solid var(--border);color:var(--muted);align-items:center;gap:6px;padding:5px 10px;font-size:13px;font-weight:600;display:inline-flex}.chip.accent{background:var(--accent-soft);border-color:var(--accent-line);color:var(--accent)}.chip.pr{background:color-mix(in srgb, var(--gold) 16%, transparent);border-color:color-mix(in srgb, var(--gold) 35%, transparent);color:var(--gold)}.avatar{border-radius:var(--r-pill);color:#15110f;flex:none;justify-content:center;align-items:center;width:56px;height:56px;font-size:22px;font-weight:700;display:inline-flex}.input{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-sm);width:100%;color:var(--text);outline:none;padding:13px 14px;font-size:16px;transition:border-color .15s}.input:focus{border-color:var(--accent-line)}.field-label{color:var(--muted);margin-bottom:6px;font-size:13px;display:block}.tabbar{background:color-mix(in srgb, var(--bg) 86%, transparent);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-top:1px solid var(--border);width:100%;max-width:480px;padding:8px 8px calc(8px + env(safe-area-inset-bottom));z-index:30;display:flex;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.tabbar a{color:var(--muted-2);flex-direction:column;flex:1;align-items:center;gap:3px;padding:6px 0;font-size:11px;font-weight:600;transition:color .15s;display:flex}.tabbar a.active{color:var(--accent)}.tabbar svg{width:24px;height:24px}.dock{bottom:calc(72px + env(safe-area-inset-bottom));width:100%;max-width:480px;padding:0 var(--sp-4);z-index:25;pointer-events:none;position:fixed;left:50%;transform:translate(-50%)}.dock>*{pointer-events:auto}.backdrop{z-index:40;animation:fade .2s var(--ease);background:#0000008c;position:fixed;inset:0}.sheet{background:var(--surface);border-top-left-radius:var(--r-lg);border-top-right-radius:var(--r-lg);border:1px solid var(--border);width:100%;max-width:480px;box-shadow:var(--shadow-sheet);z-index:41;padding:var(--sp-3) var(--sp-4) calc(var(--sp-5) + env(safe-area-inset-bottom));max-height:86dvh;animation:slideup .26s var(--ease);position:fixed;bottom:0;left:50%;overflow-y:auto;transform:translate(-50%)}.sheet-grip{background:var(--border-strong);width:38px;height:4px;margin:4px auto var(--sp-4);border-radius:2px}@keyframes slideup{0%{transform:translate(-50%,100%)}to{transform:translate(-50%)}}@keyframes fade{0%{opacity:0}to{opacity:1}}.toast{bottom:calc(140px + env(safe-area-inset-bottom));background:var(--surface-3);border:1px solid var(--border-strong);border-radius:var(--r-pill);align-items:center;gap:var(--sp-3);box-shadow:var(--shadow);z-index:50;animation:slideup .24s var(--ease);padding:10px 12px 10px 18px;font-size:14px;display:flex;position:fixed;left:50%;transform:translate(-50%)}.divider{background:var(--border);border:0;height:1px;margin:0}
