:root{--bg:#f4f3ef;--panel:#e7e5df;--rail:#2b2f33;--ink:#1f2326;--muted:#6b7075;--accent:#1f6f6b;--accent-soft:#d6e8e6;--alert:#b4472f;color:var(--ink);background:var(--bg);font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif;font-size:15px}*{box-sizing:border-box}body{margin:0}button{font:inherit;cursor:pointer}.link{color:var(--accent);background:0 0;border:0;padding:0;text-decoration:underline}.muted{color:var(--muted);text-align:center;font-size:.85em}.error{color:var(--alert)}.login{place-items:center;min-height:100vh;display:grid}.login form{border:1px solid var(--panel);background:#fff;border-radius:6px;flex-direction:column;gap:12px;width:320px;padding:28px;display:flex}.login h1{letter-spacing:.02em;border-left:4px solid var(--accent);margin:0 0 8px;padding-left:10px;font-size:1.4em}.login label{color:var(--muted);flex-direction:column;gap:4px;font-size:.9em;display:flex}.login input{font:inherit;color:var(--ink);border:1px solid #c9c6bf;border-radius:4px;padding:8px}.login button[type=submit]{background:var(--accent);color:#fff;border:0;border-radius:4px;padding:9px}.app{grid-template-columns:64px 230px 1fr;height:100vh;display:grid}.servers{background:var(--rail);flex-direction:column;align-items:center;gap:8px;padding:10px 0;display:flex;overflow-y:auto}.server{color:#eee;background:#41474d;border:0;border-radius:6px;width:44px;height:44px;font-weight:600;position:relative}.server.active{background:var(--accent)}.server.unread:before{content:"";background:#fff;border-radius:0 2px 2px 0;width:4px;height:8px;position:absolute;top:18px;left:-10px}.server.add{color:#aaa;background:0 0;border:1px dashed #6b7075}.badge{background:var(--alert);color:#fff;text-align:center;border-radius:9px;min-width:18px;padding:0 5px;font-size:11px;line-height:18px;position:absolute;bottom:-4px;right:-4px}.channels{background:var(--panel);flex-direction:column;min-height:0;display:flex}.channels header{border-bottom:1px solid #d6d3cb;padding:14px;font-weight:700}.channels .list{flex:1;padding:8px;overflow-y:auto}.channels h3{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:12px 6px 4px;font-size:.72em}.channel{text-align:left;width:100%;color:var(--muted);background:0 0;border:0;border-radius:4px;padding:6px 8px;display:block;position:relative}.channel .badge{bottom:6px;right:6px}.channel.unread{color:var(--ink);font-weight:600}.channel.active{color:var(--ink);background:#d6d3cb}.hash{opacity:.6}.channels footer{border-top:1px solid #d6d3cb;align-items:center;gap:8px;padding:10px 12px;font-size:.9em;display:flex}.who{text-overflow:ellipsis;flex:1;overflow:hidden}.dot{background:#999;border-radius:50%;width:9px;height:9px}.dot.online{background:#2f8f5b}.dot.conectando,.dot.reconectando{background:#c99a2e}.chat{background:#fff;flex-direction:column;min-height:0;display:flex}.chat.empty{color:var(--muted);justify-content:center;align-items:center}.chat header{border-bottom:1px solid var(--panel);align-items:baseline;gap:12px;padding:14px 18px;display:flex}.topic{color:var(--muted);flex:1;font-size:.9em}.invite code{background:var(--accent-soft);border-radius:3px;padding:2px 6px}.messages{flex:1;padding:10px 18px;overflow-y:auto}.msg{border-radius:4px;padding:6px 8px}.msg .meta{align-items:baseline;gap:8px;display:flex}.msg time{color:var(--muted);font-size:.78em}.msg .content{white-space:pre-wrap;word-break:break-word}.msg.pending{opacity:.55}.msg.failed .content{color:var(--alert)}.msg.mention{background:var(--accent-soft);border-left:3px solid var(--accent)}.composer{padding:12px 18px 16px}.composer textarea{resize:none;width:100%;font:inherit;border:1px solid #c9c6bf;border-radius:6px;padding:10px}
