:root{--bg:#0b1220;--panel:#131c2e;--panel2:#1a2540;--line:#243152;--text:#e8edf7;--muted:#8b98b8;--accent:#4f8cff;--ok:#34d399;--warn:#fbbf24;--bad:#f87171}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}body,html{margin:0;height:100%;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:15px}button,input,select,textarea{font:inherit;color:inherit}.app{flex-direction:column;height:100dvh;max-width:900px;margin:0 auto}.app,.top{display:flex}.top{align-items:center;justify-content:space-between;padding:calc(env(safe-area-inset-top) + 10px) 16px 8px}.top h1{font-size:18px;margin:0;letter-spacing:.5px}.pill{font-size:12px;background:var(--panel2);border:1px solid var(--line);border-radius:999px;padding:4px 10px;color:var(--muted)}.main{flex:1 1;overflow-y:auto;padding:4px 14px 16px}.tabs{overflow-x:auto;padding:6px 8px calc(env(safe-area-inset-bottom) + 8px);background:var(--panel);border-top:1px solid var(--line)}.tabs,.tabs button{display:flex;gap:2px}.tabs button{flex:1 1;min-width:62px;background:none;border:0;padding:8px 4px;border-radius:10px;color:var(--muted);font-size:11px;flex-direction:column;align-items:center}.tabs button span.i{font-size:18px}.tabs button.on{color:var(--text);background:var(--panel2)}.card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:12px 14px;margin:10px 0}.card h2{margin:0 0 8px;font-size:13px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:600}.row{display:flex;align-items:flex-start;gap:10px;padding:8px 0;border-top:1px solid var(--line)}.row:first-of-type{border-top:0}.row .grow{flex:1 1;min-width:0}.row .t{overflow-wrap:anywhere}.row .s{font-size:12px;color:var(--muted);margin-top:2px}.dot{width:10px;height:10px;border-radius:50%;margin-top:6px;flex:none}.p1{background:var(--bad)}.p2{background:var(--warn)}.p3{background:var(--ok)}.chk{width:24px;height:24px;border-radius:8px;border:2px solid var(--line);background:none;flex:none;color:var(--ok);font-weight:700;line-height:1;padding:0}.chk.done{background:var(--ok);border-color:var(--ok);color:#05261b}.x{background:none;border:0;padding:4px 8px;font-size:16px}.muted,.x{color:var(--muted)}.bad{color:var(--bad)}.ok{color:var(--ok)}.warn{color:var(--warn)}.empty{color:var(--muted);padding:6px 0;font-size:14px}.stats{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:8px;gap:8px}.stat{background:var(--panel2);border-radius:12px;padding:10px;text-align:center}.stat b{display:block;font-size:20px}.stat span{font-size:11px;color:var(--muted)}.chat{flex-direction:column;height:100%}.chat,.msgs{display:flex}.msgs{flex:1 1;overflow-y:auto;flex-direction:column;gap:8px;padding:6px 0 10px}.bubble{max-width:86%;padding:9px 12px;border-radius:16px;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.35}.bubble.in{align-self:flex-end;background:var(--accent);color:#fff;border-bottom-right-radius:4px}.bubble.out{align-self:flex-start;background:var(--panel2);border:1px solid var(--line);border-bottom-left-radius:4px}.bubble small{display:block;font-size:10px;opacity:.65;margin-top:4px}.composer{display:flex;gap:8px;padding-top:8px}.composer textarea{flex:1 1;resize:none;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:10px 12px;max-height:120px}.btn{background:var(--accent);border:0;color:#fff;border-radius:12px;padding:10px 16px;font-weight:600}.btn.ghost{background:var(--panel2);border:1px solid var(--line)}.btn:disabled{opacity:.5}.seg{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0}.seg button{background:var(--panel2);border:1px solid var(--line);border-radius:999px;padding:6px 12px;color:var(--muted)}.seg button.on{color:var(--text);border-color:var(--accent)}input.txt{width:100%;background:var(--panel2);border:1px solid var(--line);border-radius:10px;padding:10px;margin:4px 0}.login{min-height:100dvh;display:grid;place-items:center;padding:20px}.login form{width:100%;max-width:340px;display:grid;grid-gap:12px;gap:12px;text-align:center}.login h1{margin:0 0 4px;font-size:28px;letter-spacing:1px}.err{color:var(--bad);font-size:13px;min-height:18px}.toast{position:fixed;left:50%;transform:translateX(-50%);bottom:90px;background:var(--panel2);border:1px solid var(--line);border-radius:12px;padding:10px 16px;z-index:10;max-width:90%}.typing{color:var(--muted);font-size:13px;padding:4px 6px}a{color:var(--accent)}