:root{--bg:#f7f8fa;--panel:#fff;--border:#e3e6eb;--text:#1a1d23;--muted:#6b7280;--accent:#4a6bff;--accent-hover:#3a5bef;--danger:#e3342f;--ok:#1f9d55;--radius:12px;--shadow:0 1px 3px #00000014, 0 1px 2px #0000000a}@media (prefers-color-scheme:dark){:root{--bg:#0f1115;--panel:#171a21;--border:#2a2f3a;--text:#e8eaed;--muted:#9aa0aa;--accent:#6c8cff;--accent-hover:#7f9bff;--shadow:none}}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;-webkit-overflow-scrolling:touch;overscroll-behavior-y:none;min-height:100dvh;margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif}a,button,[role=button],input,select,textarea,label{-webkit-tap-highlight-color:transparent}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}button{font:inherit;cursor:pointer;border:1px solid var(--border);background:var(--panel);color:var(--text);touch-action:manipulation;border-radius:8px;padding:10px 16px;transition:transform 80ms,background .15s,border-color .15s,opacity .15s}button:hover{border-color:var(--accent)}button:active{transform:scale(.97)}button.primary{background:var(--accent);border-color:var(--accent);color:#fff}button.primary:hover{background:var(--accent-hover)}button:disabled{opacity:.6;cursor:default}button:disabled:active{transform:none}input,select,textarea{font:inherit;background:var(--panel);width:100%;color:var(--text);border:1px solid var(--border);border-radius:8px;padding:10px 12px;font-size:16px}input:focus,select:focus,textarea:focus{border-color:var(--accent);outline:none}label{color:var(--muted);margin-bottom:6px;font-size:13px;display:block}.card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:24px}.center-screen{justify-content:center;align-items:center;min-height:100dvh;padding:20px;display:flex}.app-shell{max-width:640px;padding:16px 16px calc(76px + env(safe-area-inset-bottom,0px));padding-left:max(16px, env(safe-area-inset-left,0px));padding-right:max(16px, env(safe-area-inset-right,0px));margin:0 auto}.tabbar{z-index:50;background:var(--panel);border-top:1px solid var(--border);padding-bottom:env(safe-area-inset-bottom,0px);display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -1px 3px #0000000f}.tabbar__item{min-height:56px;color:var(--muted);background:0 0;border:none;border-radius:0;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;padding:8px 4px 6px;font-size:11px;line-height:1;text-decoration:none;transition:color .15s;display:flex;position:relative}.tabbar__item:hover{border:none;text-decoration:none}.tabbar__item:active{transform:none}.tabbar__item[aria-current=page]{color:var(--accent);font-weight:600}.tabbar__icon{font-size:21px;line-height:1}.tabbar__badge{background:var(--danger);color:#fff;border-radius:8px;justify-content:center;align-items:center;min-width:16px;height:16px;padding:0 4px;font-size:10px;font-weight:700;display:flex;position:absolute;top:5px;left:calc(50% + 6px)}.app-head{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.app-head h1{margin:0;font-size:22px}.skeleton{background:linear-gradient(90deg, var(--border) 25%, var(--panel) 37%, var(--border) 63%);background-size:400% 100%;border-radius:8px;animation:1.4s infinite skeleton-shimmer}@keyframes skeleton-shimmer{0%{background-position:100%}to{background-position:0}}@media (prefers-reduced-motion:reduce){button:active{transform:none}.skeleton{animation:none}*{transition:none!important}}
