:root{--bg:#111215;--bg-card:#1a1b1f;--bg-card-hover:#222328;--bg-elevated:#2a2b30;--border:#2a2b30;--border-light:#ffffff0f;--text:#fff;--text-secondary:#888;--text-muted:#555;--blue:#3b82f6;--blue-hover:#2563eb;--green:#2ecc71;--green-bg:#2ecc7114;--green-border:#2ecc7133;--amber:#f7a632;--amber-bg:#f7a63214;--amber-border:#f7a63233;--red:#e74c3c;--red-bg:#e74c3c14;--red-border:#e74c3c33;--navy:#0f2444;--gold:#d4a84b;--tk-red:#c8362e;--radius:12px;--radius-sm:8px;--radius-xs:6px;--font:"Inter", -apple-system, BlinkMacSystemFont, sans-serif;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px);--safe-right:env(safe-area-inset-right,0px);--nav-height:56px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body,#app{background:var(--bg);height:100%;color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px;line-height:1.5;overflow-x:hidden}body{padding-top:var(--safe-top);padding-bottom:var(--safe-bottom);padding-left:var(--safe-left);padding-right:var(--safe-right)}h1{font-size:1.5rem;font-weight:800}h2{font-size:1.25rem;font-weight:700}h3{font-size:1rem;font-weight:600}button,[role=button]{cursor:pointer;font-family:inherit;font-size:inherit;color:inherit;-webkit-tap-highlight-color:transparent;background:0 0;border:none}input,select,textarea{color:var(--text);background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);outline:none;width:100%;padding:.75rem 1rem;font-family:inherit;font-size:1rem;transition:border-color .15s}input:focus,select:focus,textarea:focus{border-color:var(--blue)}a,button,[role=button],input[type=checkbox],input[type=radio]{min-width:44px;min-height:44px}.container{max-width:640px;margin:0 auto;padding:0 1rem}.card{background:var(--bg-card);border-radius:var(--radius);padding:1rem}.label{text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);font-size:.65rem;font-weight:600}.page-content{padding-bottom:calc(var(--nav-height) + var(--safe-bottom) + 1rem);min-height:100vh}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.fade-in{animation:.2s ease-out fadeIn}@keyframes spin{to{transform:rotate(360deg)}}.spinner{border:2px solid var(--border);border-top-color:var(--blue);border-radius:50%;width:24px;height:24px;animation:.6s linear infinite spin}
