:root{--bg-primary: #1a1b26;--bg-secondary: #16161e;--bg-tertiary: #1f2028;--bg-input: #232430;--bg-highlight: #2a2b3d;--bg-hover: #292a3c;--bg-selected: #33354a;--bg-context-menu: #1e1f2e;--text-primary: #c0caf5;--text-secondary: #a9b1d6;--text-muted: #565f89;--text-link: #7aa2f7;--text-timestamp: #565f89;--accent: #7aa2f7;--accent-hover: #89b4fa;--success: #9ece6a;--warning: #e0af68;--error: #f7768e;--info: #7dcfff;--irc-action: #bb9af7;--irc-join: #9ece6a;--irc-part: #e0af68;--irc-quit: #f7768e;--irc-kick: #f7768e;--irc-mode: #7dcfff;--irc-notice: #e0af68;--irc-topic: #7dcfff;--irc-nick-change: #bb9af7;--border: #292a3c;--border-focused: #7aa2f7;--scrollbar-thumb: #292a3c;--scrollbar-track: #1a1b26;--font-family: "JetBrains Mono", "Cascadia Code", "Fira Code", "Consolas", monospace;--font-size: 12px;--line-height: 1;--sidebar-width: 220px;--nicklist-width: 180px;--topbar-height: 40px;--inputbar-height: 50px;--statusbar-height: 28px;--radius-sm: 4px;--radius-md: 6px;--radius-lg: 8px;--context-menu-shadow: 0 4px 20px rgba(0, 0, 0, .4)}.irc-color-0{color:#fff}.irc-color-1{color:#000}.irc-color-2{color:#00007f}.irc-color-3{color:#009300}.irc-color-4{color:red}.irc-color-5{color:#7f0000}.irc-color-6{color:#9c009c}.irc-color-7{color:#fc7f00}.irc-color-8{color:#ff0}.irc-color-9{color:#00fc00}.irc-color-10{color:#009393}.irc-color-11{color:#0ff}.irc-color-12{color:#0000fc}.irc-color-13{color:#f0f}.irc-color-14{color:#7f7f7f}.irc-color-15{color:#d2d2d2}.irc-bg-0{background-color:#fff}.irc-bg-1{background-color:#000}.irc-bg-2{background-color:#00007f}.irc-bg-3{background-color:#009300}.irc-bg-4{background-color:red}.irc-bg-5{background-color:#7f0000}.irc-bg-6{background-color:#9c009c}.irc-bg-7{background-color:#fc7f00}.irc-bg-8{background-color:#ff0}.irc-bg-9{background-color:#00fc00}.irc-bg-10{background-color:#009393}.irc-bg-11{background-color:#0ff}.irc-bg-12{background-color:#0000fc}.irc-bg-13{background-color:#f0f}.irc-bg-14{background-color:#7f7f7f}.irc-bg-15{background-color:#d2d2d2}.irc-bold{font-weight:700}.irc-italic{font-style:italic}.irc-underline{text-decoration:underline}.irc-strikethrough{text-decoration:line-through}.irc-monospace{font-family:monospace}.irc-reverse{filter:invert(1)}.irc-color-16{color:#470000}.irc-color-17{color:#472100}.irc-color-18{color:#474700}.irc-color-19{color:#324700}.irc-color-20{color:#004700}.irc-color-21{color:#00472c}.irc-color-22{color:#004747}.irc-color-23{color:#002747}.irc-color-24{color:#000047}.irc-color-25{color:#2e0047}.irc-color-26{color:#470047}.irc-color-27{color:#47002a}.irc-color-28{color:#740000}.irc-color-29{color:#743a00}.irc-color-30{color:#747400}.irc-color-31{color:#517400}.irc-color-32{color:#007400}.irc-color-33{color:#007449}.irc-color-34{color:#007474}.irc-color-35{color:#004074}.irc-color-36{color:#000074}.irc-color-37{color:#4b0074}.irc-color-38{color:#740074}.irc-color-39{color:#740045}.irc-color-40{color:#b50000}.irc-color-41{color:#b56300}.irc-color-42{color:#b5b500}.irc-color-43{color:#7db500}.irc-color-44{color:#00b500}.irc-color-45{color:#00b571}.irc-color-46{color:#00b5b5}.irc-color-47{color:#0063b5}.irc-color-48{color:#0000b5}.irc-color-49{color:#7500b5}.irc-color-50{color:#b500b5}.irc-color-51{color:#b5006b}.irc-color-52{color:red}.irc-color-53{color:#ff8c00}.irc-color-54{color:#ff0}.irc-color-55{color:#b2ff00}.irc-color-56{color:#0f0}.irc-color-57{color:#00ffa0}.irc-color-58{color:#0ff}.irc-color-59{color:#008cff}.irc-color-60{color:#00f}.irc-color-61{color:#a500ff}.irc-color-62{color:#f0f}.irc-color-63{color:#ff0098}.irc-color-64{color:#ff5959}.irc-color-65{color:#ffb459}.irc-color-66{color:#ffff71}.irc-color-67{color:#cfff60}.irc-color-68{color:#6fff6f}.irc-color-69{color:#65ffc9}.irc-color-70{color:#6dffff}.irc-color-71{color:#59b4ff}.irc-color-72{color:#5959ff}.irc-color-73{color:#c459ff}.irc-color-74{color:#f6f}.irc-color-75{color:#ff59bc}.irc-color-76{color:#ff9c9c}.irc-color-77{color:#ffd39c}.irc-color-78{color:#ffff9c}.irc-color-79{color:#e2ff9c}.irc-color-80{color:#9cff9c}.irc-color-81{color:#9cffdb}.irc-color-82{color:#9cffff}.irc-color-83{color:#9cd3ff}.irc-color-84{color:#9c9cff}.irc-color-85{color:#dc9cff}.irc-color-86{color:#ff9cff}.irc-color-87{color:#ff94d3}.irc-color-88{color:#000}.irc-color-89{color:#131313}.irc-color-90{color:#282828}.irc-color-91{color:#363636}.irc-color-92{color:#4d4d4d}.irc-color-93{color:#656565}.irc-color-94{color:#818181}.irc-color-95{color:#9f9f9f}.irc-color-96{color:#bcbcbc}.irc-color-97{color:#e2e2e2}.irc-color-98{color:#fff}*{margin:0;padding:0;box-sizing:border-box}html,body,#root{height:100%;width:100%;overflow:hidden}body{background-color:var(--bg-primary);color:var(--text-primary);font-family:var(--font-family);font-size:var(--font-size);line-height:var(--line-height);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--scrollbar-track)}::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}::selection{background-color:var(--accent);color:var(--bg-primary)}a{color:var(--text-link);text-decoration:none}a:hover{text-decoration:underline}input,textarea,select{background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);font-family:var(--font-family);font-size:var(--font-size);padding:6px 10px;outline:none;transition:border-color .15s ease}input:focus,textarea:focus,select:focus{border-color:var(--border-focused)}button{background:var(--bg-tertiary);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);font-family:var(--font-family);font-size:var(--font-size);padding:6px 14px;cursor:pointer;transition:background .15s ease,border-color .15s ease}button:hover{background:var(--bg-hover);border-color:var(--text-muted)}button:active{background:var(--bg-selected)}button.primary{background:var(--accent);color:var(--bg-primary);border-color:var(--accent)}button.primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}button.danger{color:var(--error);border-color:var(--error)}button.danger:hover{background:var(--error);color:var(--bg-primary)}.app{display:flex;flex-direction:column;height:100vh;width:100vw;overflow:hidden}.app-body{display:flex;flex:1;overflow:hidden}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (max-width: 768px){.app{height:100dvh}.input-bar{position:sticky;bottom:0;padding-bottom:env(safe-area-inset-bottom,0)}}
