:root{--bg: #0e0f12;--bg-elev: #16181d;--bg-elev-2: #1d2027;--border: #2a2e37;--text: #eef0f4;--text-dim: #9aa1ad;--text-faint: #646b78;--accent: #e8b04b;--accent-dim: #b8893a;--danger: #e5645a;--ok: #5bbf7a;--radius: 14px;--radius-sm: 10px;--maxw: 720px}*{box-sizing:border-box}html,body,#app{margin:0;min-height:100%;background:var(--bg);color:var(--text);font-family:Manrope,system-ui,sans-serif}body{background:radial-gradient(120% 80% at 50% -10%,rgba(232,176,75,.07),transparent 60%),var(--bg);-webkit-tap-highlight-color:transparent}#app{max-width:var(--maxw);margin:0 auto;padding:env(safe-area-inset-top) 16px calc(env(safe-area-inset-bottom) + 16px)}h1,h2,h3{font-family:Bricolage Grotesque,sans-serif;font-weight:700;letter-spacing:-.02em}a{color:var(--accent)}.app-header{display:flex;align-items:center;justify-content:space-between;padding:18px 2px 14px;position:sticky;top:0;background:linear-gradient(var(--bg) 70%,transparent);z-index:10}.brand{font-family:Bricolage Grotesque,sans-serif;font-size:22px;font-weight:800}.brand .dot{color:var(--accent)}.logout-btn{background:none;border:none;color:var(--text-dim);font:inherit;cursor:pointer;padding:6px}.tabs{display:flex;gap:8px;margin:8px 0 18px;background:var(--bg-elev);padding:5px;border-radius:var(--radius);border:1px solid var(--border)}.tabs button{flex:1;padding:11px;border:none;border-radius:var(--radius-sm);background:none;color:var(--text-dim);font:600 15px Manrope;cursor:pointer;transition:all .15s ease}.tabs button.active{background:var(--accent);color:#1a1206}.toggle{display:flex;gap:8px;margin-bottom:14px}.toggle button{flex:1;padding:13px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-elev);color:var(--text-dim);font:600 15px Manrope;cursor:pointer}.toggle button.active{border-color:var(--accent);color:var(--accent);background:var(--bg-elev-2)}.search-row{display:flex;gap:8px}input[type=text],input[type=password]{width:100%;padding:14px 15px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-elev);color:var(--text);font:500 16px Manrope;outline:none}input:focus{border-color:var(--accent-dim)}button.primary{padding:14px 18px;border:none;border-radius:var(--radius-sm);background:var(--accent);color:#1a1206;font:700 15px Manrope;cursor:pointer;white-space:nowrap}button.primary:disabled{opacity:.5;cursor:default}.card{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius);padding:16px;margin-top:12px}.card .title{font-family:Bricolage Grotesque,sans-serif;font-size:17px;font-weight:700;line-height:1.25}.meta{color:var(--text-dim);font-size:13.5px;margin-top:7px;display:grid;gap:3px}.meta b{color:var(--text);font-weight:600}.chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.chip{font-size:12px;padding:4px 9px;border-radius:999px;background:var(--bg-elev-2);color:var(--text-dim);border:1px solid var(--border)}.card-actions{margin-top:14px}.card-actions button{width:100%}.bar{height:8px;border-radius:99px;background:var(--bg-elev-2);overflow:hidden;margin-top:10px}.bar>i{display:block;height:100%;background:var(--accent);transition:width .4s ease}.bar.done>i{background:var(--ok)}.state{font-size:12.5px;color:var(--text-dim);margin-top:6px;display:flex;justify-content:space-between}.state .done{color:var(--ok)}.state .err{color:var(--danger)}.empty{color:var(--text-faint);text-align:center;padding:48px 12px}.hint{color:var(--text-faint);font-size:13px;margin-top:10px}.error{color:var(--danger);font-size:14px;margin-top:12px}.spinner{color:var(--text-dim);text-align:center;padding:28px}.login-wrap{min-height:80vh;display:flex;flex-direction:column;justify-content:center;gap:16px}.login-wrap h1{font-size:30px;margin:0}.login-wrap p{color:var(--text-dim);margin:0 0 8px}.login-form{display:grid;gap:12px}
