:root{--bg-primary:#0f1013;--bg-secondary:#16181d;--bg-tertiary:#1e2128;--bg-elevated:#272a33;--bg-surface-glass:#16181d;--bg-glass-card:#16181d;--border-subtle:#252833;--border-medium:#373b4a;--border-strong:#4f5468;--border-accent:rgba(249,115,22,.4);--text-primary:#f4f5f8;--text-secondary:#9aa0ae;--text-muted:#787f90;--text-disabled:#4a4f5d;--text-inverse:#0f1013;--accent-primary:#ef4444;--accent-primary-hover:#dc2626;--accent-primary-subtle:rgba(239,68,68,.15);--text-accent-contrast:#fff;--accent-cyan:#38bdf8;--accent-cyan-dark:#0284c7;--accent-volt:#84cc16;--accent-volt-dark:#65a30d;--accent-amber:#f59e0b;--accent-amber-glow:rgba(245,158,11,.15);--success:#10b981;--success-subtle:rgba(16,185,129,.12);--warning:#f59e0b;--danger:#ef4444;--danger-glow:rgba(239,68,68,.15);--info:#3b82f6;--font-sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;--font-mono:ui-monospace,"SF Mono","Roboto Mono",Menlo,monospace;--font-xs:0.75rem;--font-sm:0.875rem;--font-base:1rem;--font-lg:1.125rem;--font-xl:1.25rem;--font-2xl:1.5rem;--font-3xl:1.875rem;--font-4xl:2.25rem;--font-5xl:3rem;--space-1:0.25rem;--space-2:0.5rem;--space-3:0.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--touch-target-min:48px;--touch-target-comfortable:56px;--numpad-key-height:58px;--radius-xs:4px;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-xl:20px;--radius-full:9999px;--shadow-sm:0 1px 2px 0 rgba(0,0,0,.4);--shadow-md:0 4px 12px -2px rgba(0,0,0,.45);--shadow-lg:0 10px 25px -3px rgba(0,0,0,.55);--shadow-glow-cyan:var(--shadow-md);--shadow-glow-volt:var(--shadow-md);--shadow-glow-success:var(--shadow-md);--transition-fast:120ms cubic-bezier(0.4,0,0.2,1);--transition-normal:200ms cubic-bezier(0.4,0,0.2,1);--z-base:1;--z-card:10;--z-sticky-bar:50;--z-dock:80;--z-modal-backdrop:90;--z-modal:100;--z-numpad-drawer:120;--z-toast:150}*,:after,:before{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;height:100%;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch}body,html{background-color:var(--bg-primary);color:var(--text-primary);font-family:var(--font-sans)}body{min-height:100%;min-height:100dvh;margin:0;padding:0;overflow:visible}.app-viewport{max-width:480px;margin:0 auto;min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;position:relative;background-color:var(--bg-primary);box-shadow:0 0 40px rgba(0,0,0,.6);padding-top:env(safe-area-inset-top,0);padding-bottom:env(safe-area-inset-bottom,0);overflow:visible}.glass-panel,.surface-panel{background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-lg)}.glass-card,.surface-card{background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-md);transition:border-color var(--transition-fast)}.glass-card:hover,.surface-card:hover{border-color:var(--border-medium)}button{font-family:inherit;cursor:pointer;border:none;background:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;touch-action:manipulation}.btn-primary{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);height:var(--touch-target-min);padding:0 var(--space-6);background:var(--accent-primary);color:#fff;font-weight:700;font-size:var(--font-base);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);transition:transform var(--transition-fast),background-color var(--transition-fast)}.btn-primary:hover{background:var(--accent-primary-hover)}.btn-primary:active{transform:scale(.97)}.btn-cyan{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);height:var(--touch-target-min);padding:0 var(--space-6);background:var(--accent-cyan);color:var(--text-inverse);font-weight:700;font-size:var(--font-base);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);transition:transform var(--transition-fast)}.btn-cyan:active{transform:scale(.97)}.btn-secondary{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);height:var(--touch-target-min);padding:0 var(--space-5);background:var(--bg-tertiary);color:var(--text-primary);font-weight:600;font-size:var(--font-sm);border:1px solid var(--border-subtle);border-radius:var(--radius-md);transition:background var(--transition-fast),border-color var(--transition-fast)}.btn-secondary:active{background:var(--bg-elevated);border-color:var(--border-medium)}.btn-volt{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);height:var(--touch-target-min);padding:0 var(--space-6);background:var(--accent-volt);color:#0f1013;font-weight:700;font-size:var(--font-base);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);transition:transform var(--transition-fast)}.btn-volt:active{transform:scale(.97)}.mono-num{font-family:var(--font-mono);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;letter-spacing:-.02em}.badge{display:inline-flex;align-items:center;gap:var(--space-1);padding:3px 8px;font-size:var(--font-xs);font-weight:600;border-radius:var(--radius-sm);letter-spacing:.02em}.badge-cyan{background:rgba(56,189,248,.12);color:var(--accent-cyan);border:1px solid rgba(56,189,248,.25)}.badge-volt{background:rgba(132,204,22,.12);color:var(--accent-volt);border:1px solid rgba(132,204,22,.25)}.badge-amber{background:rgba(245,158,11,.12);color:var(--accent-amber);border:1px solid rgba(245,158,11,.25)}.badge-success{background:var(--success-subtle);color:var(--success);border:1px solid rgba(16,185,129,.25)}.badge-muted{background:var(--surface-2);color:var(--text-muted);border:1px solid var(--border-subtle)}@keyframes slideUpDrawer{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes setCompleteSnap{0%{transform:scale(.96)}60%{transform:scale(1.02)}to{transform:scale(1)}}.animate-set-snap{animation:setCompleteSnap .16s ease-out forwards}::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--bg-elevated);border-radius:var(--radius-full)}