:root{--font-size: 14px;--bg: #16161b;--bg-panel: #1e1e25;--bg-raised: #26262f;--bg-hover: #2d2d38;--border: #30303b;--fg: #e4e4ec;--fg-muted: #8b8b98;--fg-dim: #5d5d6a;--accent: #00e6c3;--accent-2: #9d4edd;--danger: #e63946;--warn: #ffd166;--highlight-bg: rgba(255, 209, 102, .12);--self-bg: rgba(0, 230, 195, .06);--irc-0: #ffffff;--irc-1: #000000;--irc-2: #00007f;--irc-3: #009300;--irc-4: #ff0000;--irc-5: #7f0000;--irc-6: #9c009c;--irc-7: #fc7f00;--irc-8: #ffff00;--irc-9: #00fc00;--irc-10: #009393;--irc-11: #00ffff;--irc-12: #0000fc;--irc-13: #ff00ff;--irc-14: #7f7f7f;--irc-15: #d2d2d2}*{box-sizing:border-box}html,body{margin:0;padding:0;height:100%;background:var(--bg);color:var(--fg);font-family:ui-sans-serif,-apple-system,Segoe UI,Inter,Roboto,sans-serif;font-size:var(--font-size);overflow:hidden;-webkit-user-select:none;user-select:none}button{font:inherit;color:inherit;background:none;border:none;cursor:pointer}input,textarea{font:inherit;color:var(--fg);background:var(--bg-raised);border:1px solid var(--border);border-radius:6px;padding:6px 8px;outline:none}input:focus,textarea:focus{border-color:var(--accent)}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.muted{color:var(--fg-muted)}.mono{font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace}.b{font-weight:700}.i{font-style:italic}.u{text-decoration:underline}.s{text-decoration:line-through}.m{font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;background:var(--bg-raised);padding:0 3px;border-radius:3px}.icon{display:inline-flex;align-items:center;gap:6px;padding:4px 6px;border-radius:6px;color:var(--fg-muted);line-height:1}.icon:hover{background:var(--bg-hover);color:var(--fg)}.app{display:grid;grid-template-columns:220px 1fr;grid-template-rows:minmax(0,1fr);height:100vh;overflow:hidden}.main{display:flex;flex-direction:column;min-width:0;min-height:0}.workspace{display:flex;flex:1;min-height:0}.chat{flex:1;display:flex;flex-direction:column;min-width:0;min-height:0;position:relative}.sidebar{background:var(--bg-panel);border-right:1px solid var(--border);display:flex;flex-direction:column;min-height:0;overflow-y:auto;padding-bottom:8px}.network{padding:12px 14px 10px;border-bottom:1px solid var(--border);margin-bottom:6px}.network-name{font-weight:700;font-size:1.05em}.network-status{font-size:.85em;color:var(--fg-muted)}.network-status.registered{color:var(--accent)}.network-status.disconnected{color:var(--danger)}.network-status.connecting,.network-status.connected{color:var(--accent-2)}.network-nick{font-size:.9em;color:var(--fg-muted);margin-top:2px}.section{display:flex;align-items:center;justify-content:space-between;padding:10px 14px 4px;font-size:.75em;text-transform:uppercase;letter-spacing:.08em;color:var(--fg-dim)}.buffer{display:flex;align-items:center;gap:6px;width:100%;text-align:left;padding:6px 10px 6px 14px;color:var(--fg-muted);border-left:3px solid transparent}.buffer:hover{background:var(--bg-hover);color:var(--fg)}.buffer.active{background:var(--bg-raised);color:var(--fg);border-left-color:var(--accent)}.buffer.unread{color:var(--fg);font-weight:600}.buffer.highlight{color:var(--warn)}.buffer.parted .buffer-name{text-decoration:line-through;opacity:.6}.buffer-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.badge{background:var(--bg-hover);color:var(--fg);border-radius:10px;padding:0 7px;font-size:.75em;font-weight:700}.badge.hl{background:var(--warn);color:#000}.buffer .close{display:none;color:var(--fg-dim);padding:0 4px}.buffer:hover .close{display:inline}.buffer .close:hover{color:var(--danger)}.sidebar-footer{margin-top:auto;padding:8px 8px 0;display:flex;flex-direction:column;gap:2px;border-top:1px solid var(--border)}.footer-button{width:100%;padding:7px 8px;font-size:.92em}.footer-button:hover{color:var(--fg)}.topic-bar{flex:none;display:flex;align-items:center;gap:10px;padding:8px 14px;border-bottom:1px solid var(--border);background:var(--bg-panel);min-height:42px}.topic-main{flex:1;display:flex;align-items:center;gap:10px;min-width:0}.buffer-title{font-weight:700;white-space:nowrap}.modes{font-family:ui-monospace,Menlo,monospace;font-size:.8em;color:var(--fg-muted);background:var(--bg-raised);padding:1px 6px;border-radius:4px;white-space:nowrap}.topic-text{flex:1;text-align:left;color:var(--fg-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:0;-webkit-user-select:text;user-select:text}.topic-edit{flex:1}.members-toggle span{font-size:.9em;font-variant-numeric:tabular-nums}.members-toggle.on{color:var(--fg)}.messages{flex:1;min-height:0;overflow-y:auto;padding:8px 14px 4px;-webkit-user-select:text;user-select:text;overflow-wrap:anywhere}.history-edge{text-align:center;color:var(--fg-dim);font-size:.85em;padding:6px 0 10px}.history-edge button{color:var(--accent)}.day{text-align:center;color:var(--fg-dim);font-size:.8em;margin:12px 0 6px;display:flex;align-items:center;gap:10px}.day:before,.day:after{content:"";flex:1;border-top:1px solid var(--border)}.unread-divider{display:flex;align-items:center;gap:8px;color:var(--danger);font-size:.75em;text-transform:uppercase;letter-spacing:.08em;margin:4px 0}.unread-divider:before,.unread-divider:after{content:"";flex:1;border-top:1px solid var(--danger);opacity:.5}.line{display:flex;align-items:baseline;gap:8px;padding:2px 6px;border-radius:4px;line-height:1.45}.line:hover{background:#ffffff06}.line .time{color:var(--fg-dim);font-size:.8em;font-variant-numeric:tabular-nums;flex:none;width:3.6em}.line .nick{font-weight:600;padding:0;flex:none;max-width:12em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.line .nick:hover{text-decoration:underline}.line .text{flex:1;min-width:0;white-space:pre-wrap}.line .marker,.line .star{color:var(--fg-dim);flex:none;width:1em;text-align:center}.line.system,.line.info,.line.join,.line.part,.line.quit,.line.nick,.line.mode,.line.topic,.line.kick{color:var(--fg-muted);font-size:.92em}.line.error{color:var(--danger)}.line.motd{color:var(--warn);font-family:ui-monospace,Menlo,monospace;font-size:.9em}.line.notice .text{color:var(--accent-2)}.line.action .text{color:var(--accent);font-style:italic}.line.highlight{background:var(--highlight-bg)}.line.self{background:var(--self-bg)}.line .text a.channel{color:var(--accent-2)}.typing{color:var(--fg-dim);font-size:.8em;font-style:italic;padding:2px 6px 4px}.jump{display:inline-flex;align-items:center;gap:4px;position:absolute;right:20px;bottom:64px;background:var(--accent);color:#000;font-weight:700;padding:4px 12px;border-radius:14px;box-shadow:0 2px 8px #0006}.input-bar{flex:none;display:flex;align-items:flex-end;gap:8px;padding:10px 14px;border-top:1px solid var(--border);background:var(--bg-panel)}.input-bar textarea{flex:1;resize:none;max-height:200px;overflow-y:hidden;line-height:1.4;-webkit-user-select:text;user-select:text}.input-bar .send{display:inline-flex;align-items:center;justify-content:center;color:var(--accent);width:34px;height:34px;border-radius:6px}.input-bar .send:hover:not(:disabled){background:var(--bg-hover)}.input-bar .send:disabled{color:var(--fg-dim);cursor:default}.members{width:200px;min-height:0;border-left:1px solid var(--border);background:var(--bg-panel);display:flex;flex-direction:column}.members-header{padding:10px 12px 6px;font-size:.8em;text-transform:uppercase;letter-spacing:.08em;color:var(--fg-dim)}.members-filter{margin:0 10px 6px;padding:4px 8px;font-size:.9em}.members ul{list-style:none;margin:0;padding:0 0 10px;overflow-y:auto;flex:1}.members li button{width:100%;display:flex;align-items:center;gap:4px;padding:3px 12px;text-align:left}.members li button:hover{background:var(--bg-hover)}.members .prefix{width:1em;color:var(--fg-dim);font-family:ui-monospace,Menlo,monospace}.members li.op .prefix{color:var(--accent)}.members li.voice .prefix{color:var(--accent-2)}.members li.away .name{opacity:.45}.members .name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.members .acct{width:6px;height:6px;border-radius:50%;background:var(--accent);flex:none}.context-menu{position:fixed;z-index:20;background:var(--bg-raised);border:1px solid var(--border);border-radius:8px;padding:4px;min-width:140px;box-shadow:0 6px 24px #00000080;display:flex;flex-direction:column}.context-menu .context-title{padding:6px 10px;font-weight:700;color:var(--fg-muted)}.context-menu button{text-align:left;padding:5px 10px;border-radius:4px}.context-menu button:hover{background:var(--bg-hover)}.context-menu hr{border:none;border-top:1px solid var(--border);margin:4px 0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;display:flex;align-items:center;justify-content:center;z-index:10}.modal{background:var(--bg-panel);border:1px solid var(--border);border-radius:12px;padding:18px 20px;width:min(560px,92vw);max-height:90vh;overflow-y:auto;box-shadow:0 12px 40px #0009;display:flex;flex-direction:column;gap:12px}.modal-tabs{display:flex;gap:4px;border-bottom:1px solid var(--border);margin-bottom:4px}.modal-tabs button{padding:6px 12px;color:var(--fg-muted);border-bottom:2px solid transparent}.modal-tabs button.active{color:var(--fg);border-bottom-color:var(--accent)}.modal label{display:flex;flex-direction:column;gap:4px;flex:1}.modal label>span{font-size:.85em;color:var(--fg-muted)}.modal label small{color:var(--fg-dim);font-size:.78em}.modal label.check{flex-direction:row;align-items:center;gap:8px}.modal label.check>span{color:var(--fg);font-size:1em}.modal .row{display:flex;gap:12px}.modal fieldset{border:1px solid var(--border);border-radius:8px;padding:10px 12px;display:flex;flex-direction:column;gap:8px}.modal legend{color:var(--fg-muted);font-size:.85em;padding:0 6px}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:4px}.modal-actions button{background:var(--accent);color:#000;font-weight:700;padding:8px 16px;border-radius:6px}.modal-actions button.secondary{background:var(--bg-raised);color:var(--fg)}.modal-head{display:flex;align-items:center;gap:10px}.modal-head input{flex:1}.modal.list table{width:100%;border-collapse:collapse;font-size:.92em}.modal.list th{text-align:left;color:var(--fg-muted);font-weight:600;padding:4px 6px;border-bottom:1px solid var(--border)}.modal.list td{padding:5px 6px;border-bottom:1px solid var(--border);vertical-align:top}.modal.list td.num{text-align:right;font-variant-numeric:tabular-nums}.modal.list td.topic{color:var(--fg-muted);-webkit-user-select:text;user-select:text}.modal.list td button{color:var(--accent);font-weight:600}@media(max-width:720px){.app{grid-template-columns:160px 1fr}.members{display:none}}
