@import "https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;700&family=Share+Tech+Mono&family=VT323&display=swap";@keyframes glitch{0%{clip-path:inset(40% 0 61%);transform:translate(0)}20%{clip-path:inset(92% 0 1%);transform:translate(-2px,2px)}40%{clip-path:inset(43% 0 1%);transform:translate(-2px,-2px)}60%{clip-path:inset(25% 0 58%);transform:translate(2px,2px)}80%{clip-path:inset(54% 0 7%);transform:translate(2px,-2px)}to{clip-path:inset(58% 0 43%);transform:translate(0)}}@keyframes glitch-reverse{0%{clip-path:inset(58% 0 43%);transform:translate(0)}20%{clip-path:inset(54% 0 7%);transform:translate(2px,-2px)}40%{clip-path:inset(25% 0 58%);transform:translate(2px,2px)}60%{clip-path:inset(43% 0 1%);transform:translate(-2px,-2px)}80%{clip-path:inset(92% 0 1%);transform:translate(-2px,2px)}to{clip-path:inset(40% 0 61%);transform:translate(0)}}@keyframes flash{0%{opacity:0}10%{opacity:.8}50%{opacity:.3}to{opacity:0}}.glitch-active{display:inline-block;position:relative}.glitch-active:before,.glitch-active:after{content:attr(data-text);background:0 0;width:100%;height:100%;position:absolute;top:0;left:0;overflow:hidden}.glitch-active:before{color:#0ff;mix-blend-mode:screen;text-shadow:2px 0 #0ff;animation:.3s cubic-bezier(.25,.46,.45,.94) infinite both glitch}.glitch-active:after{color:#f0f;mix-blend-mode:screen;text-shadow:-2px 0 #f0f;animation:.3s cubic-bezier(.25,.46,.45,.94) infinite reverse both glitch-reverse}.glitch-flash{pointer-events:none;z-index:9999;background:#fffc;width:100vw;height:100vh;animation:.15s ease-out forwards flash;position:fixed;top:0;left:0}*{box-sizing:border-box;margin:0;padding:0}html,body{color:#00ff41;background:#0a0a0a;width:100%;height:100%;font-family:JetBrains Mono,Share Tech Mono,VT323,Courier New,monospace;font-size:16px;line-height:1.5;overflow:hidden}#root{width:100%;height:100%}.terminal-screen{background:#0a0a0a;flex-direction:column;width:100vw;height:100vh;padding:2rem;display:flex;overflow:hidden auto}.terminal-text{color:#00ff41;text-shadow:0 0 5px #00ff4180;white-space:pre-wrap;word-break:break-word;font-family:inherit}.terminal-input{color:#00ff41;font-family:inherit;font-size:inherit;caret-color:#00ff41;text-shadow:0 0 5px #00ff4180;background:0 0;border:none;border-bottom:1px solid #00ff41;outline:none;flex:1;min-width:0;padding:.25rem 0}.terminal-input:focus{border-bottom-color:#00ff41;box-shadow:0 1px #00ff41cc}.terminal-prompt{align-items:center;gap:.5rem;margin:.5rem 0;display:flex}.terminal-error{color:#ff0040;text-shadow:0 0 5px #ff004080;font-family:inherit}.terminal-dim{opacity:.5}.terminal-cursor{vertical-align:text-bottom;background:#00ff41;width:.6em;height:1em;margin-left:2px;animation:1s step-end infinite blink;display:inline-block}@keyframes blink{0%,50%{opacity:1}50.01%,to{opacity:0}}.room-group-header,.forum-header-title,.thread-section-label{letter-spacing:.05em;font-family:VT323,Share Tech Mono,monospace}.terminal-screen::-webkit-scrollbar{width:8px}.terminal-screen::-webkit-scrollbar-track{background:#0a0a0a}.terminal-screen::-webkit-scrollbar-thumb{background:#00ff41;border-radius:4px}.terminal-screen::-webkit-scrollbar-thumb:hover{background:#00dd37}.admin-layout{background:var(--bg-primary,#0a0a0a);height:100vh;color:var(--terminal-green,#00ff41);font-family:var(--font-mono,"Courier New", monospace);box-sizing:border-box;flex-direction:column;padding:1.5rem;display:flex}.admin-header{border-bottom:1px solid var(--terminal-green,#00ff41);justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:.75rem;display:flex}.admin-header-title{letter-spacing:.15em;color:var(--terminal-green,#00ff41);text-shadow:0 0 8px #00ff4180;font-size:1.1rem}.admin-back-link{color:var(--terminal-green,#00ff41);opacity:.6;font-size:.85rem;text-decoration:none;transition:opacity .2s}.admin-back-link:hover{opacity:1}.admin-tabs{gap:.5rem;margin-bottom:1.5rem;display:flex}.admin-tab{color:#00ff4180;cursor:pointer;letter-spacing:.05em;background:0 0;border:1px solid #00ff414d;padding:.4rem 1rem;font-family:inherit;font-size:.85rem;transition:all .15s}.admin-tab--active{border-color:var(--terminal-green,#00ff41);color:var(--terminal-green,#00ff41);text-shadow:0 0 6px #00ff4166}.admin-tab:hover:not(.admin-tab--active){color:#00ff41cc;border-color:#00ff4199}.admin-panel-area{flex:1;overflow-y:auto}.admin-panel-placeholder{opacity:.4;padding:1rem}.admin-table{border-collapse:collapse;width:100%;font-size:.85rem}.admin-table th{text-align:left;color:#00ff4199;letter-spacing:.05em;border-bottom:1px solid #00ff414d;padding:.5rem .75rem;font-weight:400}.admin-table td{vertical-align:middle;border-bottom:1px solid #00ff411a;padding:.5rem .75rem}.admin-table tr:hover td{background:#00ff410a}.admin-type-badge{color:#00ff41b3;letter-spacing:.05em;border:1px solid #00ff4166;padding:.15rem .4rem;font-size:.75rem}.admin-type-select{color:var(--terminal-green,#00ff41);cursor:pointer;background:0 0;border:1px solid #00ff414d;padding:.2rem .4rem;font-family:inherit;font-size:.8rem}.admin-type-select:focus{outline:1px solid #00ff4199}.admin-btn{color:#00ff41b3;cursor:pointer;letter-spacing:.03em;background:0 0;border:1px solid #00ff414d;padding:.25rem .6rem;font-family:inherit;font-size:.8rem;transition:all .15s}.admin-btn:hover{color:#f04;border-color:#f04}.admin-btn--primary{color:var(--terminal-green,#00ff41);border-color:#00ff4199}.admin-btn--primary:hover{border-color:var(--terminal-green,#00ff41);text-shadow:0 0 6px #00ff4166}.admin-btn--danger{color:#f04c;border-color:#ff004480}.admin-btn--danger:hover{color:#f04;text-shadow:0 0 6px #f046;border-color:#f04}.admin-btn:disabled{opacity:.3;cursor:not-allowed}.admin-panel-header{justify-content:space-between;align-items:center;margin-bottom:1rem;display:flex}.admin-panel-header-title{opacity:.6;letter-spacing:.05em;font-size:.85rem}.admin-modal-overlay{z-index:10002;background:#000c;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.admin-modal{background:#0a0a0a;border:1px solid #00ff4166;min-width:360px;max-width:480px;padding:1.5rem}.admin-modal-title{letter-spacing:.1em;border-bottom:1px solid #00ff4133;margin-bottom:1rem;padding-bottom:.5rem;font-size:1rem}.admin-modal-body{margin-bottom:1.5rem}.admin-modal-warning{color:#f04;opacity:.8;margin-top:.5rem;font-size:.8rem}.admin-modal-actions{justify-content:flex-end;gap:.5rem;display:flex}.admin-input{width:100%;color:var(--terminal-green,#00ff41);box-sizing:border-box;background:0 0;border:1px solid #00ff414d;margin-top:.4rem;padding:.4rem .6rem;font-family:inherit;font-size:.85rem}.admin-input:focus{outline:1px solid #00ff4199}.admin-field-label{opacity:.5;letter-spacing:.05em;margin-bottom:.2rem;font-size:.75rem}.admin-select{color:var(--terminal-green,#00ff41);box-sizing:border-box;cursor:pointer;background:0 0;border:1px solid #00ff414d;width:100%;margin-top:.4rem;padding:.4rem .6rem;font-family:inherit;font-size:.85rem}.admin-loading{opacity:.4;padding:1rem;font-size:.85rem}.admin-error{color:#f04;margin:.5rem 0;font-size:.8rem}.admin-status{opacity:.5;margin-top:.25rem;font-size:.75rem}.admin-nav-link{color:#00ff4180;letter-spacing:.05em;margin-right:.5rem;font-size:.75rem;text-decoration:none;transition:color .15s,opacity .15s}.admin-nav-link:hover{color:var(--terminal-green,#00ff41);text-shadow:0 0 6px #00ff4166}.dossier-overlay{z-index:10001;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#000000bf;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.dossier-panel{color:#00ff41;width:min(520px,90vw);max-height:80vh;font-family:var(--font-mono,"JetBrains Mono", monospace);background:#0d0d0d;border:1px solid #00ff41;padding:1.5rem;overflow-y:auto;box-shadow:0 0 20px #00ff4126,0 0 40px #00ff410d}.dossier-panel::-webkit-scrollbar{width:4px}.dossier-panel::-webkit-scrollbar-track{background:0 0}.dossier-panel::-webkit-scrollbar-thumb{background:#00ff414d;border-radius:2px}.dossier-header{letter-spacing:.08em;text-transform:uppercase;border-bottom:1px solid #00ff4133;justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:.75rem;font-size:.85rem;display:flex}.dossier-close-btn{color:#00ff41;cursor:pointer;background:0 0;border:none;padding:0 .25rem;font-family:inherit;font-size:.85rem;transition:color .15s}.dossier-close-btn:hover{color:#ff0040}.dossier-body{flex-direction:column;gap:0;display:flex}.dossier-avatar-section{flex-direction:column;align-items:center;margin-bottom:1.25rem;display:flex;position:relative}.dossier-avatar-wrapper{cursor:pointer;display:inline-block;position:relative}.dossier-avatar-img,.dossier-avatar-initials{border:1px solid #00ff41;border-radius:4px;width:96px;height:96px;display:block}.dossier-avatar-initials{color:#00ff41;-webkit-user-select:none;user-select:none;background:#1a1a1a;justify-content:center;align-items:center;font-family:inherit;font-size:2rem;display:flex}.dossier-avatar-edit-overlay{letter-spacing:.05em;opacity:0;background:#0009;border-radius:4px;justify-content:center;align-items:center;font-size:.8rem;transition:opacity .15s;display:flex;position:absolute;inset:0}.dossier-avatar-wrapper:hover .dossier-avatar-edit-overlay{opacity:1}.dossier-upload-progress{color:#00ff41;opacity:.8;letter-spacing:.05em;margin-top:.5rem;font-size:.8rem}.dossier-avatar-confirm-btns{justify-content:center;gap:.5rem;margin-top:.5rem;display:flex}.dossier-avatar-error{color:#ff0040;text-align:center;margin-top:.25rem;font-size:.8rem}.dossier-fields{flex-direction:column;gap:.75rem;display:flex}.dossier-field-label{color:#00ff4199;text-transform:uppercase;letter-spacing:.1em;margin-bottom:.2rem;font-size:.7rem}.dossier-field-value{color:#00ff41;font-size:.95rem}.dossier-field-bio{white-space:pre-wrap;line-height:1.5}.dossier-display-name{color:#00ff41;font-size:1.1rem;font-weight:700}.dossier-input,.dossier-textarea{color:#00ff41;box-sizing:border-box;background:#0a0a0a;border:1px solid #00ff4166;width:100%;padding:.4rem .6rem;font-family:inherit;font-size:.9rem;transition:border-color .15s}.dossier-input:focus,.dossier-textarea:focus{border-color:#00ff41;outline:none}.dossier-input:disabled,.dossier-textarea:disabled{opacity:.5;cursor:not-allowed}.dossier-input::placeholder,.dossier-textarea::placeholder{color:#00ff4159}.dossier-textarea{resize:vertical;min-height:80px}.dossier-footer{border-top:1px solid #00ff4133;flex-direction:column;gap:.5rem;margin-top:1.25rem;padding-top:.75rem;display:flex}.dossier-footer-actions{gap:.75rem;display:flex}.dossier-btn{color:#00ff41;letter-spacing:.05em;cursor:pointer;background:0 0;border:1px solid #00ff41;padding:.4rem 1rem;font-family:inherit;font-size:.85rem;transition:background .15s,opacity .15s}.dossier-btn:hover:not(:disabled){background:#00ff411f}.dossier-btn:disabled{opacity:.5;cursor:not-allowed}.dossier-btn--primary{color:#00ff41;border-color:#00ff41}.dossier-btn--secondary{color:#00ff4199;border-color:#00ff4166}.dossier-error{color:#ff0040;font-size:.85rem}.dossier-loading{text-align:center;color:#00ff4180;letter-spacing:.08em;padding:2rem 0;font-size:.85rem}.sheet-panel{color:#00ff41;width:min(360px,100vw);height:100vh;font-family:var(--font-mono,"JetBrains Mono", monospace);z-index:10002;background:#0d0d0d;border-left:1px solid #00ff414d;flex-direction:column;transition:transform .2s;display:flex;position:fixed;top:0;right:0;overflow-y:auto;transform:translate(100%)}.sheet-panel--visible{transform:translate(0)}.sheet-header{border-bottom:1px solid #00ff4133;flex-shrink:0;align-items:flex-start;gap:10px;padding:12px 14px;display:flex}.sheet-header-avatar{object-fit:cover;border:1px solid #00ff4166;border-radius:2px;flex-shrink:0;width:40px;height:40px}.sheet-header-avatar--initials{color:#00ff41;background:#111;border:1px solid #00ff4166;border-radius:2px;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;font-size:18px;display:flex}.sheet-header-identity{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.sheet-header-name{color:#00ff41;white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:600;overflow:hidden}.sheet-header-userid{color:#00ff4180;white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.sheet-header-actions{flex-shrink:0;align-items:center;gap:6px;display:flex}.sheet-btn{color:#00ff41;cursor:pointer;background:0 0;border:1px solid #00ff4166;padding:4px 8px;font-family:inherit;font-size:12px;transition:border-color .15s,color .15s}.sheet-btn:hover{color:#fff;border-color:#00ff41}.sheet-btn:disabled{opacity:.4;cursor:not-allowed}.sheet-btn--close{border-color:#00ff4133;font-size:14px}.sheet-body{flex:1;padding:0 14px 24px;overflow-y:auto}.sheet-section{margin-top:18px}.sheet-section-title{color:#00ff4199;letter-spacing:.08em;border-bottom:1px solid #00ff4126;margin-bottom:10px;padding-bottom:4px;font-size:11px}.sheet-attr-grid{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.sheet-attr-cell{background:#00ff410a;border:1px solid #00ff411f;border-radius:1px;flex-direction:column;align-items:center;padding:6px 4px;display:flex}.sheet-attr-label{color:#00ff4180;letter-spacing:.1em;font-size:10px}.sheet-attr-value{color:#00ff41;font-size:20px;font-weight:700;line-height:1.2}.sheet-attr-input{text-align:center;color:#00ff41;background:#111;border:1px solid #00ff4166;border-radius:0;width:48px;padding:2px;font-family:inherit;font-size:18px;font-weight:700}.sheet-attr-input:focus{border-color:#00ff41;outline:none}.sheet-derived-grid{grid-template-columns:1fr 1fr;gap:6px;display:grid}.sheet-derived-item{border-bottom:1px solid #00ff4114;justify-content:space-between;align-items:baseline;padding:3px 0;display:flex}.sheet-derived-label{color:#00ff4180;font-size:11px}.sheet-derived-value{color:#00ff41;font-size:13px;font-weight:600}.sheet-skill-list{flex-direction:column;gap:4px;display:flex}.sheet-skill-row{background:#00ff4108;border:1px solid #00ff411a;align-items:center;gap:6px;padding:4px 6px;display:flex}.sheet-skill-name{color:#00ff41;flex:1;font-size:12px}.sheet-skill-rating{color:#00ff41;text-align:center;min-width:24px;font-size:12px}.sheet-skill-attr{color:#00ff4199;background:0 0;border:1px solid #00ff4133;padding:1px 4px;font-size:10px}.sheet-skill-remove{color:#ff4141b3;cursor:pointer;background:0 0;border:none;padding:0 2px;font-size:16px;line-height:1}.sheet-skill-remove:hover{color:#ff4141}.sheet-skill-row--clickable{cursor:pointer;transition:background .1s}.sheet-skill-row--clickable:hover{background:#00ff410f}.sheet-skill-add-row{border:1px dashed #00ff4133;align-items:center;gap:6px;margin-top:6px;padding:4px 6px;display:flex}.sheet-input-text{color:#00ff41;background:#111;border:1px solid #00ff414d;flex:1;padding:3px 6px;font-family:inherit;font-size:12px}.sheet-input-text:focus{border-color:#00ff41;outline:none}.sheet-input-number{color:#00ff41;text-align:center;background:#111;border:1px solid #00ff414d;width:48px;padding:3px 4px;font-family:inherit;font-size:12px}.sheet-select{color:#00ff41;background:#111;border:1px solid #00ff414d;padding:2px 4px;font-family:inherit;font-size:11px}.sheet-select:focus{border-color:#00ff41;outline:none}.sheet-gear-list{flex-direction:column;gap:4px;display:flex}.sheet-gear-row{background:#00ff4108;border:1px solid #00ff411a;align-items:flex-start;gap:6px;padding:5px 6px;display:flex}.sheet-gear-name{color:#00ff41;flex-shrink:0;min-width:80px;font-size:12px}.sheet-gear-notes{color:#00ff4199;flex:1;font-size:11px}.sheet-add-btn{color:#00ff4199;cursor:pointer;background:0 0;border:1px dashed #00ff414d;width:100%;margin-top:8px;padding:4px 10px;font-family:inherit;font-size:11px}.sheet-add-btn:hover{color:#00ff41;border-color:#00ff41}.sheet-error{color:#ff4141;background:#ff414114;margin-top:8px;padding:6px 14px;font-size:11px}.sheet-loading{color:#00ff4180;padding:24px 14px;font-size:13px}.sheet-empty{color:#00ff4166;letter-spacing:.05em;padding:24px 14px;font-size:13px}.sheet-footer{border-top:1px solid #00ff411a;flex-shrink:0;padding:8px 14px}.member-sheet-btn{color:#00ff41b3;cursor:pointer;background:0 0;border:1px solid #00ff4140;flex-shrink:0;margin-left:auto;padding:1px 5px;font-family:inherit;font-size:10px}.member-sheet-btn:hover{color:#00ff41;border-color:#00ff41}.status-sheet-btn{color:#00ff41b3;cursor:pointer;background:0 0;border:none;padding:0 6px;font-family:inherit;font-size:12px}.status-sheet-btn:hover{color:#00ff41}.dice-overlay{z-index:10003;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#000000bf;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.dice-panel{color:#00ff41;width:min(400px,90vw);font-family:var(--font-mono,"JetBrains Mono", monospace);background:#0d0d0d;border:1px solid #00ff41;padding:1.25rem;box-shadow:0 0 20px #00ff4126,0 0 40px #00ff410d}.dice-header{letter-spacing:.08em;text-transform:uppercase;border-bottom:1px solid #00ff4133;justify-content:space-between;align-items:center;margin-bottom:.75rem;padding-bottom:.6rem;font-size:.85rem;display:flex}.dice-close-btn{color:#00ff41;cursor:pointer;background:0 0;border:none;padding:0 .25rem;font-family:inherit;font-size:.85rem;transition:color .15s}.dice-close-btn:hover{color:#ff0040}.dice-body{flex-direction:column;gap:.75rem;padding:1rem 0;display:flex}.dice-row{justify-content:space-between;align-items:center;font-size:.9rem;display:flex}.dice-label{color:#00ff4199;text-transform:uppercase;letter-spacing:.08em;font-size:.8rem}.dice-value{color:#00ff41;font-size:1rem}.dice-total{color:#00ff41;font-size:1.4rem;font-weight:700}.dice-limit-row{color:#00ff41b3;justify-content:space-between;align-items:center;font-size:.9rem;display:flex}.dice-modifier-row{align-items:center;gap:.5rem;display:flex}.dice-modifier-btn{color:#00ff41;cursor:pointer;background:0 0;border:1px solid #00ff4166;justify-content:center;align-items:center;width:28px;height:28px;font-family:inherit;font-size:1rem;transition:background .15s;display:flex}.dice-modifier-btn:hover{background:#00ff411a}.dice-modifier-input{color:#00ff41;text-align:center;-moz-appearance:textfield;background:#0a0a0a;border:1px solid #00ff4166;width:60px;padding:.25rem;font-family:inherit;font-size:.9rem}.dice-modifier-input::-webkit-outer-spin-button{-webkit-appearance:none}.dice-modifier-input::-webkit-inner-spin-button{-webkit-appearance:none}.dice-modifier-input:focus{border-color:#00ff41;outline:none}.dice-divider{border:none;border-top:1px solid #00ff4126;margin:.75rem 0}.dice-result{color:#00ff41;word-break:break-word;opacity:.9;border-left:2px solid #00ff41;margin:0 16px 8px;padding:8px 16px;font-size:.78rem}.dice-footer{justify-content:flex-end;gap:.75rem;display:flex}.dice-btn{color:#00ff41;letter-spacing:.05em;cursor:pointer;background:0 0;border:1px solid #00ff41;padding:.4rem 1rem;font-family:inherit;font-size:.85rem;transition:background .15s,opacity .15s}.dice-btn:hover:not(:disabled){background:#00ff411f}.dice-btn:disabled{opacity:.4;cursor:not-allowed}.dice-btn--roll{border-color:#00ff41}.dice-btn--cancel{color:#00ff41b3;border-color:#00ff4166}.dice-no-channel{letter-spacing:.05em;font-size:.75rem}body.crt-enabled:before{content:"";pointer-events:none;z-index:9998;background:repeating-linear-gradient(#0000 0 1px,#0006 1px 2px) 0 0/100% 2px;width:100%;height:100%;animation:8s step-end infinite crt-flicker;position:fixed;top:0;left:0}body.crt-enabled:after{content:"";pointer-events:none;z-index:9997;background:radial-gradient(#0000 50%,#0000008c 100%);width:100%;height:100%;position:fixed;top:0;left:0}@keyframes crt-flicker{0%,to{background:repeating-linear-gradient(#0000 0 1px,#0006 1px 2px) 0 0/100% 2px}41%{background:#0000008c 0 0/100% 100%}42%{background:repeating-linear-gradient(#0000 0 1px,#0006 1px 2px) 0 0/100% 2px}80.5%{background:#00000073 0 0/100% 100%}81%{background:repeating-linear-gradient(#0000 0 1px,#0006 1px 2px) 0 0/100% 2px}}.phosphor-glow{text-shadow:0 0 5px #00ff41b3,0 0 10px #00ff4166}.room-list{background:#0d0d0d;border-right:1px solid #1a1a1a;flex-direction:column;width:280px;height:100%;padding:.5rem 0;display:flex;overflow-y:auto}.room-list-header{text-shadow:0 0 5px #00ff41b3,0 0 10px #00ff4166;border-bottom:1px solid #1a1a1a;margin-bottom:.5rem;padding:.75rem 1rem;font-size:.7rem}.room-group{margin-bottom:1rem}.room-group-header{color:#00ff41;opacity:.6;text-transform:uppercase;letter-spacing:.1em;text-shadow:0 0 5px #00ff41b3,0 0 10px #00ff4166;cursor:default;padding:.75rem 1rem .25rem;font-size:.75rem;font-weight:700;position:relative}.room-list-item{cursor:pointer;border-left:3px solid #0000;align-items:center;padding:.5rem 1rem;transition:border-color .1s,background .1s;display:flex;position:relative}.room-list-item:hover{background:#1a1a1a}.room-list-item--active{background:#111;border-left-color:#00ff41;box-shadow:inset 3px 0 8px -3px #00ff41}.room-glyph{color:#00ff41;opacity:.7;margin-right:.5rem;font-family:JetBrains Mono,Share Tech Mono,monospace;font-weight:700}.room-list::-webkit-scrollbar{width:8px}.room-list::-webkit-scrollbar-track{background:#0a0a0a}.room-list::-webkit-scrollbar-thumb{opacity:.3;background:#00ff41;border-radius:4px}.room-list::-webkit-scrollbar-thumb:hover{opacity:.5}.room-list{scrollbar-width:thin;scrollbar-color:#00ff414d #0a0a0a}.room-unread-dot{background:#00ff41;border-radius:50%;flex-shrink:0;width:6px;height:6px;margin-right:.5rem;box-shadow:0 0 6px #00ff41}.room-list-item.has-unread{border-left-color:#00ff41;box-shadow:inset 3px 0 8px -3px #00ff41}.app-layout{grid-template-rows:1fr auto auto;grid-template-columns:auto 1fr;width:100vw;height:100vh;display:grid;overflow:hidden}.app-sidebar{border-right:1px solid #1a1a1a;flex-direction:column;grid-area:1/1/2/2;height:100%;display:flex;overflow:hidden}.sidebar-footer{background:#0a0a0a;border-top:1px solid #1a1a1a;justify-content:center;padding:1rem;display:flex}.disconnect-btn{color:#00ff41;cursor:pointer;background:0 0;border:1px solid #333;padding:.3rem .8rem;font-family:JetBrains Mono,Share Tech Mono,monospace;font-size:.7rem;transition:all .2s}.disconnect-btn:hover{text-shadow:0 0 8px #00ff41;border-color:#00ff41;box-shadow:0 0 8px #00ff414d}.crt-toggle-btn{color:#00ff41;cursor:pointer;opacity:.7;background:0 0;border:1px solid #333;padding:.15rem .5rem;font-family:JetBrains Mono,Share Tech Mono,monospace;font-size:.7rem;transition:all .2s}.crt-toggle-btn:hover{text-shadow:0 0 8px #00ff41;opacity:1;border-color:#00ff41;box-shadow:0 0 8px #00ff414d}.main-content{background:#0a0a0a;flex-direction:column;grid-area:1/2/2/3;min-height:0;padding:2rem;display:flex;overflow:hidden auto}.status-bar{z-index:100;background:#0a0a0a;border-top:1px solid #1a1a1a;grid-area:3/1/4/-1;justify-content:space-between;align-items:center;height:24px;padding:0 1rem;font-size:.7rem;display:flex}.status-bar-left,.status-bar-right{align-items:center;gap:1rem;display:flex}.connection-overlay{z-index:1000;pointer-events:all;background:#0a0a0af2;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.connection-overlay-content{text-align:center;background:#0a0a0a;border:1px solid #00ff41;padding:2rem;box-shadow:0 0 20px #00ff414d}.chat-view{flex-direction:column;width:100%;height:100%;display:flex}.chat-header{color:#00ff41;z-index:20;text-shadow:0 0 5px #00ff41b3,0 0 10px #00ff4166;background:#0a0a0a;border-bottom:1px solid #1a1a1a;justify-content:space-between;align-items:center;gap:.5rem;padding:.75rem 1rem;font-size:.85rem;display:flex;position:relative}.chat-header .terminal-dim{opacity:.4}.message-list{scroll-behavior:smooth;flex:1;padding:.5rem 1rem;overflow-y:auto}.message-list::-webkit-scrollbar{width:8px}.message-list::-webkit-scrollbar-track{background:#0a0a0a}.message-list::-webkit-scrollbar-thumb{opacity:.3;background:#00ff41;border-radius:4px}.message-list::-webkit-scrollbar-thumb:hover{opacity:.5}.message-list{scrollbar-width:thin;scrollbar-color:#00ff414d #0a0a0a}.empty-room{opacity:.4;color:#00ff41;flex:1;justify-content:center;align-items:center;font-size:.85rem;display:flex}.message-group{margin-bottom:.25rem}.message-item{margin-bottom:.25rem;position:relative}.message-header{align-items:baseline;gap:.5rem;margin-bottom:.15rem;display:flex}.message-sender{font-size:.8rem;font-weight:700}.message-timestamp{color:#00ff41;opacity:.4;font-family:JetBrains Mono,monospace;font-size:.65rem}.message-body{color:#00ff41;white-space:pre-wrap;word-break:break-word;font-size:.85rem;line-height:1.4}.message-body p{margin:0}.message-body strong{color:#00ff41;text-shadow:0 0 6px #00ff4199;font-weight:700}.message-body em{color:#00ff41;font-style:italic}.message-body code{background:#1a1a1a;border-radius:2px;padding:.1rem .3rem;font-family:JetBrains Mono,monospace;font-size:.8rem}.message-body pre{background:#0d0d0d;border:1px solid #1a1a1a;border-radius:2px;margin:.25rem 0;padding:.5rem;overflow-x:auto}.message-body pre code{background:0 0;padding:0}.message-body a{color:#0bf;text-decoration:underline}.message-body a:hover{text-shadow:0 0 5px #00bbff80}.message-body ul,.message-body ol{margin:.25rem 0;padding-left:1.5rem}.message-body li{margin:.1rem 0}.message-sending{opacity:.7}.message-failed{color:#ff0040;text-shadow:0 0 5px #ff004080}.message-error{color:#ff0040;cursor:pointer;-webkit-user-select:none;user-select:none;margin-top:.25rem;font-size:.75rem}.message-error:hover{text-shadow:0 0 8px #ff0040cc}.retry-hint{opacity:.6;font-size:.7rem}.date-separator{align-items:center;gap:.5rem;margin:.75rem 0;display:flex}.separator-line{background:#1a1a1a;flex:1;height:1px}.separator-text{color:#00ff41;opacity:.4;white-space:nowrap;text-transform:uppercase;letter-spacing:.05em;font-size:.65rem}.typing-indicator{color:#00ff41;opacity:.5;min-height:1.25rem;padding:.25rem 1rem;font-size:.75rem}.message-composer{background:#0d0d0d;border:1px solid #00ff4140;border-radius:2px;align-items:flex-end;gap:.5rem;margin:.5rem .75rem;padding:.5rem 1rem;display:flex}.prompt-prefix{color:#00ff41;-webkit-user-select:none;user-select:none;padding-bottom:.1rem;font-size:1rem;font-weight:700;line-height:1.4}.composer-input{color:#00ff41;resize:none;caret-color:#00ff41;text-shadow:0 0 5px #00ff4180;background:0 0;border:none;outline:none;flex:1;min-height:1.2rem;max-height:6rem;padding:0;font-family:JetBrains Mono,Share Tech Mono,Courier New,monospace;font-size:.85rem;line-height:1.4}.composer-input::placeholder{color:#00ff414d}.new-messages-indicator{z-index:10;color:#00ff41;cursor:pointer;text-align:center;-webkit-user-select:none;user-select:none;letter-spacing:.05em;background:#0a0a0ae6;border:1px solid #00ff41;border-radius:4px;padding:.25rem .75rem;font-size:.7rem;position:absolute;bottom:3rem;left:50%;transform:translate(-50%);box-shadow:0 0 8px #00ff414d}.new-messages-indicator:hover{background:#0a0a0af2;box-shadow:0 0 12px #00ff4180}.pagination-loading{text-align:center;color:#00ff41;opacity:.5;padding:.5rem;font-size:.7rem;animation:1.5s ease-in-out infinite pulse}@keyframes pulse{0%,to{opacity:.3}50%{opacity:.7}}.timeline-start{text-align:center;color:#00ff41;opacity:.4;padding:.5rem;font-size:.7rem}.message-actions{opacity:0;z-index:10;pointer-events:none;gap:.4rem;transition:opacity .1s;display:flex;position:absolute;top:0;right:0}.message-item:hover .message-actions{opacity:1;pointer-events:auto}.message-actions-btn{color:#00ff4199;cursor:pointer;-webkit-user-select:none;user-select:none;background:#0a0a0a;border:1px solid #00ff4133;padding:1px 4px;font-family:JetBrains Mono,monospace;font-size:.7rem}.message-actions-btn:hover{color:#00ff41;text-shadow:0 0 4px #00ff4180;border-color:#00ff4199}.message-tombstone{color:#00ff414d;font-style:italic}.message-edited-indicator{color:#00ff4166;margin-left:.4rem;font-family:JetBrains Mono,monospace;font-size:.6rem}.message-edit-textarea{color:#00ff41;resize:none;box-sizing:border-box;background:#0d0d0d;border:1px solid #00ff4166;outline:none;width:100%;min-height:1.4em;padding:2px 4px;font-family:JetBrains Mono,monospace;font-size:.85rem;line-height:1.4}.message-edit-textarea:focus{border-color:#00ff41b3;box-shadow:0 0 4px #00ff4133}.glow-online{color:#00ff41;text-shadow:0 0 5px #00ff41cc,0 0 10px #00ff4199,0 0 15px #00ff4166;transition:text-shadow .5s,color .5s}.glow-busy{color:#f44;text-shadow:0 0 5px #f44c,0 0 10px #f449,0 0 15px #f446;transition:text-shadow .5s,color .5s}.glow-unavailable{color:#fa0;text-shadow:0 0 5px #fa0c,0 0 10px #fa09,0 0 15px #fa06;transition:text-shadow .5s,color .5s}.glow-offline{color:#00ff41;opacity:.3;text-shadow:none;transition:text-shadow .5s,color .5s,opacity .5s}.glow-online--subtle{text-shadow:0 0 4px #00ff4140;transition:text-shadow .5s}.glow-busy--subtle{text-shadow:0 0 4px #ff444440;transition:text-shadow .5s}.glow-unavailable--subtle{text-shadow:0 0 4px #ffaa0040;transition:text-shadow .5s}.glow-offline--subtle{text-shadow:none;transition:text-shadow .5s}.member-panel{z-index:10;background:#0d0d0d;border-left:1px solid #1a1a1a;flex-direction:column;width:240px;height:100%;transition:transform .3s cubic-bezier(.4,0,.2,1);display:flex;position:absolute;top:0;right:0;overflow-y:auto;transform:translate(100%)}.member-panel--visible{transform:translate(0)}.member-panel-header{text-transform:uppercase;letter-spacing:.1em;color:#00ff41;opacity:.6;border-bottom:1px solid #1a1a1a;padding:12px 16px;font-size:.75rem}.member-section-header{text-transform:uppercase;letter-spacing:.1em;color:#00ff41;opacity:.5;padding:8px 16px 4px;font-size:.7rem}.member-item{align-items:center;gap:8px;padding:4px 16px;font-family:JetBrains Mono,monospace;font-size:.85rem;display:flex}.member-role{color:#00ff41;opacity:.4;text-transform:uppercase;letter-spacing:.05em;font-size:.65rem}.member-panel::-webkit-scrollbar{width:4px}.member-panel::-webkit-scrollbar-track{background:0 0}.member-panel::-webkit-scrollbar-thumb{background:#00ff414d;border-radius:2px}.member-toggle-btn{color:#00ff41;opacity:.6;cursor:pointer;background:0 0;border:1px solid #1a1a1a;padding:4px 8px;font-family:JetBrains Mono,monospace;font-size:.75rem;transition:opacity .2s}.member-toggle-btn:hover{opacity:1;text-shadow:0 0 5px #00ff4180}.member-toggle-btn--active{opacity:1;border-color:#00ff41}.presence-selector{color:#00ff41;cursor:pointer;appearance:none;background:#0d0d0d;border:1px solid #1a1a1a;padding:4px 8px;font-family:JetBrains Mono,monospace;font-size:.75rem}.presence-selector:focus{border-color:#00ff41;outline:none}.presence-selector option{color:#00ff41;background:#0d0d0d}.system-message{text-align:center;color:#00ff41;opacity:.4;padding:4px 0;font-size:.75rem;font-style:italic;transition:opacity .5s ease-out}.system-message--dismissing{opacity:0}.room-online-count{color:#00ff41;opacity:.3;margin-left:auto;font-size:.65rem}.status-bar-right{align-items:center;gap:.5rem;display:flex}.system-events{padding:0 1rem}.forum-view{color:#00ff41;background:#0a0a0a;flex-direction:column;width:100%;height:100%;font-family:JetBrains Mono,Share Tech Mono,Courier New,monospace;display:flex}.forum-header{z-index:20;background:#0a0a0a;border-bottom:1px solid #00ff4133;justify-content:space-between;align-items:center;gap:.5rem;padding:.75rem 1rem;display:flex;position:relative}.forum-header-title{color:#00ff41;letter-spacing:.05em;text-transform:uppercase;font-size:.85rem;font-weight:700}.thread-list{scrollbar-width:thin;scrollbar-color:#00ff414d #0a0a0a;flex:1;padding:0;overflow-y:auto}.thread-list::-webkit-scrollbar{width:8px}.thread-list::-webkit-scrollbar-track{background:#0a0a0a}.thread-list::-webkit-scrollbar-thumb{background:#00ff414d;border-radius:4px}.thread-list::-webkit-scrollbar-thumb:hover{background:#00ff4180}.thread-list-empty{color:#00ff41;opacity:.4;text-align:center;padding:2rem 1rem;font-size:.85rem}.thread-list-item{cursor:pointer;border-bottom:1px solid #00ff4133;align-items:flex-start;gap:.5rem;padding:.75rem 1rem;transition:background .1s;display:flex}.thread-list-item:hover{background:#00ff410d}.thread-list-item--unread .thread-title{text-shadow:0 0 8px #00ff4180;font-weight:700}.thread-title{color:#00ff41;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-family:JetBrains Mono,Share Tech Mono,Courier New,monospace;font-size:.9rem;overflow:hidden}.thread-meta{color:#00ff41;opacity:.45;margin-top:.2rem;font-family:JetBrains Mono,Share Tech Mono,Courier New,monospace;font-size:.72rem}.thread-unread-dot{background:#00ff41;border-radius:50%;flex-shrink:0;width:6px;height:6px;margin-top:.35rem;box-shadow:0 0 6px #00ff41}.thread-view{flex-direction:column;width:100%;height:100%;display:flex}.thread-view-header{z-index:20;background:#0a0a0a;border-bottom:1px solid #00ff4133;align-items:center;gap:.75rem;padding:.75rem 1rem;display:flex;position:relative}.thread-back-btn{color:#00ff41;cursor:pointer;letter-spacing:.03em;white-space:nowrap;background:0 0;border:1px solid #00ff414d;padding:4px 8px;font-family:JetBrains Mono,Share Tech Mono,Courier New,monospace;font-size:.75rem;transition:border-color .2s,text-shadow .2s}.thread-back-btn:hover{text-shadow:0 0 5px #00ff4180;border-color:#00ff41}.thread-original-post{background:#00ff4108;border-left:2px solid #00ff41;margin:.75rem 1rem;padding:1rem}.thread-op-meta{color:#00ff41;opacity:.55;margin-bottom:.5rem;font-family:JetBrains Mono,Share Tech Mono,Courier New,monospace;font-size:.72rem}.thread-op-body{color:#00ff41;white-space:pre-wrap;word-break:break-word;font-size:.9rem;line-height:1.5}.thread-replies{scrollbar-width:thin;scrollbar-color:#00ff414d #0a0a0a;flex:1;padding:0 1rem;overflow-y:auto}.thread-replies::-webkit-scrollbar{width:8px}.thread-replies::-webkit-scrollbar-track{background:#0a0a0a}.thread-replies::-webkit-scrollbar-thumb{background:#00ff414d;border-radius:4px}.thread-reply{border-bottom:1px solid #00ff411a;padding:.6rem 0}.thread-reply:last-child{border-bottom:none}.thread-reply-meta{color:#00ff41;opacity:.45;margin-bottom:.25rem;font-family:JetBrains Mono,Share Tech Mono,Courier New,monospace;font-size:.72rem}.thread-reply-body{color:#00ff41;white-space:pre-wrap;word-break:break-word;font-size:.85rem;line-height:1.4}.thread-composer{background:#0a0a0a;border-top:1px solid #00ff4133;padding:.5rem 1rem}.new-thread-form{z-index:30;background:#0a0a0af7;border:1px solid #00ff4140;flex-direction:column;gap:.75rem;padding:1.5rem 1rem;display:flex;position:absolute;inset:0}.new-thread-title-input{color:#00ff41;caret-color:#00ff41;background:#0d0d0d;border:1px solid #00ff4140;outline:none;padding:.5rem .75rem;font-family:JetBrains Mono,Share Tech Mono,Courier New,monospace;font-size:.85rem;transition:border-color .2s}.new-thread-title-input:focus{border-color:#00ff4199}.new-thread-title-input::placeholder{color:#00ff414d}.new-thread-body-input{color:#00ff41;caret-color:#00ff41;resize:vertical;background:#0d0d0d;border:1px solid #00ff4140;outline:none;flex:1;min-height:6rem;padding:.5rem .75rem;font-family:JetBrains Mono,Share Tech Mono,Courier New,monospace;font-size:.85rem;transition:border-color .2s}.new-thread-body-input:focus{border-color:#00ff4199}.new-thread-body-input::placeholder{color:#00ff414d}.new-thread-submit{color:#00ff41;cursor:pointer;letter-spacing:.05em;background:0 0;border:1px solid #00ff4180;align-self:flex-start;padding:.5rem 1rem;font-family:JetBrains Mono,Share Tech Mono,Courier New,monospace;font-size:.8rem;transition:border-color .2s,text-shadow .2s}.new-thread-submit:hover{text-shadow:0 0 6px #00ff4180;border-color:#00ff41}.new-thread-btn{color:#00ff41;cursor:pointer;letter-spacing:.03em;background:0 0;border:1px solid #00ff414d;padding:4px 8px;font-family:JetBrains Mono,Share Tech Mono,Courier New,monospace;font-size:.75rem;transition:border-color .2s,text-shadow .2s}.new-thread-btn:hover{text-shadow:0 0 5px #00ff4180;border-color:#00ff41}@keyframes speaking-pulse{0%{box-shadow:0 0 #00ff41b3}70%{box-shadow:0 0 0 6px #00ff4100}to{box-shadow:0 0 #00ff4100}}.peer-avatar-wrap{border-radius:50%;flex-shrink:0;width:40px;height:40px;overflow:hidden}.peer-avatar-wrap--speaking{border:2px solid #00ff41;animation:1s ease-out infinite speaking-pulse}.peer-avatar-wrap--silent{border:2px solid #1a1a1a;animation:none}.peer-avatar-img{object-fit:cover;border-radius:50%;width:100%;height:100%}.peer-avatar-initials{color:#0a0a0a;border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;font-family:JetBrains Mono,Share Tech Mono,monospace;font-size:1rem;font-weight:700;display:flex}.voice-bar{color:#00ff41;background:#0a0a0a;border-top:1px solid #00ff41;grid-column:1/-1;height:36px;font-family:JetBrains Mono,Share Tech Mono,monospace;font-size:.75rem;display:none}.voice-bar--active{justify-content:space-between;align-items:center;padding:0 1rem;display:flex}.voice-bar-left,.voice-bar-right{align-items:center;gap:.75rem;display:flex}.voice-mute-btn{color:#00ff41;cursor:pointer;background:0 0;border:1px solid #333;padding:.3rem .8rem;font-family:JetBrains Mono,Share Tech Mono,monospace;font-size:.7rem;transition:all .2s}.voice-mute-btn:hover{text-shadow:0 0 8px #00ff41;border-color:#00ff41;box-shadow:0 0 8px #00ff414d}.voice-mute-btn--muted{color:#f44;border-color:#f44}.voice-mute-btn--muted:hover{text-shadow:0 0 8px #f44;border-color:#f44;box-shadow:0 0 8px #ff44444d}.voice-disconnect-btn{color:#f44;cursor:pointer;background:0 0;border:1px solid #f44;padding:.3rem .8rem;font-family:JetBrains Mono,Share Tech Mono,monospace;font-size:.7rem;transition:all .2s}.voice-disconnect-btn:hover{text-shadow:0 0 8px #f44;border-color:#f44;box-shadow:0 0 8px #ff44444d}.voice-peer-panel{background:#0a0a0a;border-left:1px solid #1a1a1a;flex-shrink:0;width:180px;height:100%;padding:1rem .75rem;overflow-y:auto}.voice-panel-header{color:#00ff41;opacity:.4;text-transform:uppercase;letter-spacing:.1em;margin-bottom:1rem;font-size:.65rem}.voice-peer-item{text-align:center;border-bottom:1px solid #111;flex-direction:column;align-items:center;gap:.4rem;padding:.75rem 0;display:flex}.voice-peer-name{color:#00ff41;text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:.7rem;overflow:hidden}.voice-peer-muted{color:#f44;letter-spacing:.05em;font-size:.6rem}.voice-peer-panel::-webkit-scrollbar{width:4px}.voice-peer-panel::-webkit-scrollbar-track{background:0 0}.voice-peer-panel::-webkit-scrollbar-thumb{background:#00ff414d;border-radius:2px}.media-image-wrapper{cursor:pointer;border:1px solid #00ff4166;margin:4px 0;padding:2px;display:inline-block;position:relative}.media-image-placeholder{background:#00ff410d;border:1px solid #00ff414d;min-width:80px;min-height:60px}.media-image--loaded{display:block!important}.media-error{color:#f44;font-family:var(--font-mono,monospace);padding:4px;font-size:.8em}.media-file-block{font-family:var(--font-mono,monospace);margin:4px 0}.media-file-download{color:#00ff41;white-space:nowrap;text-overflow:ellipsis;cursor:pointer;border:1px solid #00ff4166;max-width:400px;padding:4px 8px;font-size:.85em;text-decoration:none;transition:background .15s,border-color .15s;display:inline-block;overflow:hidden}.media-file-download:hover{background:#00ff4114;border-color:#00ff41cc}.media-lightbox-overlay{z-index:10000;background:#000000e0;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.media-lightbox-content{flex-direction:column;align-items:center;gap:12px;max-width:90vw;max-height:90vh;display:flex}.media-lightbox-img{object-fit:contain;border:1px solid #00ff4199;max-width:90vw;max-height:80vh}.media-lightbox-close{color:#00ff41;font-family:var(--font-mono,monospace);cursor:pointer;background:0 0;border:1px solid #00ff4180;padding:4px 16px;font-size:.85em}.media-lightbox-close:hover{background:#00ff411a;border-color:#00ff41}.message-composer{flex-direction:column;align-items:stretch}.composer-row{align-items:flex-end;gap:.5rem;display:flex}.composer-attach-btn{color:#00ff41b3;font-family:var(--font-mono,monospace);cursor:pointer;background:0 0;border:1px solid #00ff414d;flex-shrink:0;padding:2px 8px;font-size:.8em;transition:color .15s,border-color .15s}.composer-attach-btn:hover{color:#00ff41;border-color:#00ff41b3}.composer-attach-btn:disabled{opacity:.4;cursor:not-allowed}.media-file-input-hidden{display:none}.media-attachment-preview{font-family:var(--font-mono,monospace);background:#00ff410a;border-bottom:1px solid #00ff4126;align-items:center;gap:8px;padding:4px 8px;font-size:.8em;display:flex}.media-preview-thumbnail{object-fit:cover;border:1px solid #00ff4166;max-width:80px;max-height:60px}.media-preview-chip{color:#00ff41cc;white-space:nowrap;text-overflow:ellipsis;max-width:200px;overflow:hidden}.media-preview-remove,.media-preview-abort,.media-preview-retry{color:#00ff41b3;font-family:var(--font-mono,monospace);cursor:pointer;background:0 0;border:1px solid #00ff414d;flex-shrink:0;padding:1px 6px;font-size:.8em}.media-preview-remove:hover,.media-preview-abort:hover{color:#f44;border-color:#f44}.media-preview-retry:hover{color:#00ff41;border-color:#00ff41}.media-progress-bar{color:#00ff41;font-family:var(--font-mono,monospace);white-space:nowrap;font-size:.8em}.message-composer.drag-over{outline-offset:-2px;background:#00ff4108;outline:2px dashed #00ff4199}
