.ui-toast[data-v-d0b8dee0]{position:fixed;left:50%;bottom:80px;transform:translate(-50%);max-width:80vw;padding:10px 16px;border-radius:999px;font-size:14px;text-align:center;color:#fff;background:#0f172aeb;box-shadow:0 10px 30px #0f172a66;z-index:2000}.ui-toast--success[data-v-d0b8dee0]{background:linear-gradient(135deg,#22c55e,#16a34a)}.ui-toast--error[data-v-d0b8dee0]{background:linear-gradient(135deg,#ef4444,#b91c1c)}.toast-fade-enter-active[data-v-d0b8dee0],.toast-fade-leave-active[data-v-d0b8dee0]{transition:opacity .25s ease,transform .25s ease}.toast-fade-enter-from[data-v-d0b8dee0],.toast-fade-leave-to[data-v-d0b8dee0]{opacity:0;transform:translate(-50%) translateY(8px)}:root{--bg: #f6f7fb;--surface: #ffffff;--surface-2: #f8fafc;--border: #e8ecf3;--text: #1f2937;--muted: #6b7280;--muted-2: #9ca3af;--primary: var(--primary-color, #6366f1);--primary-2: var(--secondary-color, #8b5cf6);--danger: #ef4444;--ok: #22c55e;--warn: #f59e0b;--radius: 14px;--radius-sm: 10px;--shadow: 0 10px 28px rgba(15,23,42,.08);--shadow-soft: 0 6px 20px rgba(15,23,42,.06);--primary-color: #6366f1;--secondary-color: #8b5cf6}*{box-sizing:border-box}html,body{height:100%}body{margin:0;color:var(--text);background:var(--bg);font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:inherit;text-decoration:none}button{font-family:inherit}.app{min-height:100vh;display:flex;flex-direction:column}.app__body{flex:1;padding-bottom:76px}.page{padding:16px}.topbar{position:sticky;top:0;z-index:20;padding:14px 16px;background:#ffffffeb;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--border)}.topbar__row{display:flex;align-items:center;justify-content:space-between;gap:12px}.title{font-size:18px;font-weight:700;letter-spacing:.2px}.subtitle{margin-top:2px;font-size:12px;color:var(--muted)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-soft)}.card--pad{padding:16px}.card--tight{padding:12px;border-radius:var(--radius-sm)}.row{display:flex;align-items:center;justify-content:space-between;gap:12px}.muted{color:var(--muted)}.muted-2{color:var(--muted-2)}.divider{height:1px;background:var(--border);margin:12px 0}.btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--border);background:var(--surface-2);color:var(--text);padding:10px 14px;border-radius:10px;font-size:14px;font-weight:600;cursor:pointer;transition:transform .06s ease,opacity .12s ease,background .12s ease}.btn:active{transform:scale(.98);opacity:.95}.btn--block{width:100%}.btn--primary{border:0;color:#fff;background:linear-gradient(135deg,var(--primary),var(--primary-2));box-shadow:0 10px 22px #6366f140}.btn--danger{border:0;color:#fff;background:var(--danger)}.btn--ghost{background:transparent}.field{display:flex;flex-direction:column;gap:8px}.label{font-size:12px;color:var(--muted)}.input,.select,.textarea{width:100%;border-radius:10px;border:1px solid var(--border);background:#fff;color:var(--text);padding:12px;outline:none;font-size:14px}.input::placeholder{color:#9ca3af}.pill{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:999px;border:1px solid var(--border);background:#fff;font-size:12px;color:var(--muted)}.pill--ok{color:#16a34a;border-color:#bbf7d0;background:#f0fdf4}.pill--warn{color:#b45309;border-color:#fde68a;background:#fffbeb}.pill--bad{color:#b91c1c;border-color:#fecaca;background:#fef2f2}.tabbar{position:fixed;left:0;right:0;bottom:0;height:64px;padding:8px 10px calc(8px + env(safe-area-inset-bottom));background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid var(--border);display:flex;align-items:center;justify-content:space-around;z-index:50}.tabbar__item{width:30%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;color:var(--muted);font-size:11px}.tabbar__item--active{color:var(--text);font-weight:600}.tabbar__icon{width:22px;height:22px;opacity:.92}.empty,.loading,.error{padding:24px 16px;text-align:center;color:var(--muted)}
