*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--accent:#1a1a2e;--accent2:#4a6fe3;--bg:#f8f9ff;--card-bg:#fff;--border:#f0f0f8;--text:#1a1a2e;--muted:#888;--light:#aaa;--tag-bg:#f0f4ff;--bottom-nav-h:68px;--radius:16px;--radius-sm:10px;--shadow:0 2px 12px #4a6fe314;--shadow-lg:0 8px 32px #1a1a2e1f;-webkit-font-smoothing:antialiased;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif}html,body,#root{background:var(--bg);height:100%;color:var(--text)}#root{justify-content:center;display:flex}.app-shell{background:var(--bg);width:100%;max-width:430px;min-height:100dvh;position:relative;overflow-x:hidden}@media (width>=900px){#root{align-items:flex-start}.app-shell{max-width:100%;display:flex}.side-nav{display:flex!important}.bottom-nav{display:none!important}.main-content{flex:1;max-width:700px;margin:0 auto}}.screen{padding-bottom:calc(var(--bottom-nav-h) + 16px);min-height:100dvh}@media (width>=900px){.screen{padding-bottom:24px}}button{cursor:pointer;border:none;outline:none;font-family:inherit}button:focus-visible{outline:2px solid var(--accent2);outline-offset:2px}.btn-primary{background:var(--accent);color:#fff;border-radius:12px;justify-content:center;align-items:center;gap:8px;width:100%;padding:14px 24px;font-size:15px;font-weight:600;transition:opacity .15s;display:flex}.btn-primary:hover:not(:disabled){opacity:.88}.btn-primary:active:not(:disabled){opacity:.75}.btn-primary:disabled{opacity:.45;cursor:not-allowed}.btn-secondary{background:var(--bg);color:var(--accent);border:1.5px solid var(--border);border-radius:12px;width:100%;padding:13px 24px;font-size:15px;font-weight:600}.btn-ghost{color:var(--accent2);background:0 0;padding:8px 0;font-size:14px;font-weight:500}.pill{background:var(--tag-bg);color:var(--accent);border-radius:20px;align-items:center;gap:4px;padding:4px 10px;font-size:12px;font-weight:500;display:inline-flex}.spinner{border:3px solid var(--border);border-top-color:var(--accent2);border-radius:50%;width:36px;height:36px;animation:.7s linear infinite spin}.spinner-sm{border:2px solid var(--border);border-top-color:var(--accent2);border-radius:50%;width:18px;height:18px;animation:.7s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.toast{bottom:calc(var(--bottom-nav-h) + 16px);background:var(--accent);color:#fff;z-index:300;white-space:nowrap;pointer-events:none;border-radius:24px;padding:10px 20px;font-size:14px;font-weight:500;animation:.25s toast-in;position:fixed;left:50%;transform:translate(-50%)}@keyframes toast-in{0%{opacity:0;transform:translate(-50%)translateY(10px)}to{opacity:1;transform:translate(-50%)translateY(0)}}.drawer-overlay{z-index:100;background:#0f14288c;animation:.2s fade-in;position:fixed;inset:0}.drawer{z-index:101;background:#fff;border-radius:24px 24px 0 0;width:100%;max-width:430px;max-height:90dvh;animation:.28s slide-up;position:fixed;bottom:0;left:50%;overflow-y:auto;transform:translate(-50%)}@media (width>=900px){.drawer{max-width:600px}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes slide-up{0%{transform:translate(-50%)translateY(100%)}to{transform:translate(-50%)translateY(0)}}input,textarea,select{color:var(--text);background:var(--bg);border:1.5px solid var(--border);border-radius:10px;outline:none;width:100%;padding:12px 14px;font-family:inherit;font-size:15px;transition:border-color .15s}input:focus,textarea:focus,select:focus{border-color:var(--accent2)}label{color:var(--muted);margin-bottom:6px;font-size:13px;font-weight:600;display:block}.skeleton{background:linear-gradient(90deg, var(--border) 25%, #e8eaff 50%, var(--border) 75%);background-size:200% 100%;border-radius:8px;animation:1.4s infinite shimmer}@keyframes shimmer{to{background-position:-200% 0}}.page-header{background:linear-gradient(180deg, white 0%, var(--bg) 100%);z-index:10;padding:56px 20px 16px;position:sticky;top:0}.tab-bar{background:var(--bg);border-radius:12px;gap:4px;margin-bottom:16px;padding:4px;display:flex}.tab-btn{white-space:nowrap;border-radius:9px;flex:1;padding:9px 0;font-size:13px;font-weight:600;transition:all .15s}.tab-btn.active{color:var(--accent);background:#fff;box-shadow:0 1px 4px #00000014}.tab-btn:not(.active){color:var(--muted);background:0 0}@media (prefers-reduced-motion:reduce){*,.spinner,.spinner-sm{transition:none!important;animation:none!important}}
