:root{--bg:#0b1220;--card:#131c2e;--text:#e8eefc;--muted:#8a97b5;--accent:#2dd4bf;--err:#fb7185;--line:#22304d}
@media(prefers-color-scheme:light){:root{--bg:#f4f7fb;--card:#fff;--text:#0f1b33;--muted:#5b6b8c;--accent:#0d9488;--err:#e11d48;--line:#dbe3f0}}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--text);font:16px/1.4 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;padding-bottom:84px}
main{max-width:560px;margin:0 auto;padding:16px}
#login{text-align:center;padding-top:20vh}
header{display:flex;justify-content:space-between;align-items:center;padding:4px 0 12px}
.pill{background:var(--card);border:1px solid var(--line);border-radius:99px;padding:4px 12px;font-weight:600}
.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:14px;margin-bottom:12px}
h2{font-size:13px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0 0 8px}
.row{display:flex;gap:12px;align-items:baseline;justify-content:space-between;flex-wrap:wrap}
.big{font-size:40px;font-weight:700}
.small{font-size:14px;margin-top:6px}
.muted{color:var(--muted)}
.bar{height:8px;background:var(--line);border-radius:9px;overflow:hidden;margin:6px 0}
#calBar{height:100%;width:0;background:var(--accent);transition:width .4s}
.list{list-style:none;margin:0;padding:0}
.list li{display:flex;justify-content:space-between;gap:8px;padding:8px 0;border-top:1px solid var(--line)}
.list li:first-child{border-top:0}
.list button{background:none;border:0;color:var(--muted);font-size:18px;cursor:pointer}
.empty{color:var(--muted)}
#msgs .u{text-align:right;color:var(--muted);margin:6px 0}
#msgs .a{margin:6px 0}
.err{color:var(--err)}
form input{flex:1;padding:12px;border-radius:10px;border:1px solid var(--line);background:var(--card);color:var(--text);font-size:16px;min-width:0}
form button{padding:12px 16px;border:0;border-radius:10px;background:var(--accent);color:#04201c;font-weight:700;font-size:16px}
#loginForm{display:flex;gap:8px}
#composer{position:fixed;left:0;right:0;bottom:0;display:flex;gap:8px;padding:10px 16px calc(10px + env(safe-area-inset-bottom));background:var(--bg);border-top:1px solid var(--line);max-width:560px;margin:0 auto}
#composer[hidden]{display:none}
