:root{--ts-bg: #2b2d30;--ts-bg-dark: #1e1f22;--ts-bg-panel: #25272a;--ts-bg-hover: #35383d;--ts-bg-selected: #2d4c70;--ts-border: #3f4248;--ts-border-dark: #18191b;--ts-text: #dcdedf;--ts-text-dim: #9aa0a6;--ts-accent: #3b82f6;--ts-orb-idle: #244a6e;--ts-orb-speak: #38bdf8;--ts-danger: #e05252;--ts-warn: #d99b26;--ts-ok: #4ade80;font-family:Segoe UI,Noto Sans,Tahoma,sans-serif;color-scheme:dark}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%;background:var(--ts-bg-dark);color:var(--ts-text);font-size:12.5px;-webkit-user-select:none;user-select:none}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}button{font:inherit;color:inherit;background:none;border:none;cursor:pointer}input,select{font:inherit;color:var(--ts-text);background:var(--ts-bg-dark);border:1px solid var(--ts-border);border-radius:2px;padding:4px 7px;outline:none}input:focus,select:focus{border-color:var(--ts-accent)}.ts-btn{background:#383b40;border:1px solid #4c5057;border-radius:2px;padding:4px 10px;font-size:12px;color:var(--ts-text)}.ts-btn:hover:not(:disabled){background:#44484e}.ts-btn:disabled{opacity:.45;cursor:not-allowed}.ts-btn.primary{background:#2b5b9e;border-color:#3d75c4;color:#fff}.ts-btn.primary:hover:not(:disabled){background:#336bb8}.ts-btn.danger{background:#6b2626;border-color:#913838;color:#ffd4d4}.ts-loading,.ts-connect-backdrop{height:100%;display:flex;align-items:center;justify-content:center;background:var(--ts-bg-dark)}.ts-dialog{width:410px;background:var(--ts-bg);border:1px solid var(--ts-border);border-radius:3px;box-shadow:0 8px 24px #0009}.ts-dialog-titlebar{background:#202225;border-bottom:1px solid var(--ts-border);padding:7px 10px;font-weight:600;font-size:12.5px}.ts-dialog-body{padding:12px;display:flex;flex-direction:column;gap:10px}.ts-error-box{background:#472020;border:1px solid #8c3535;color:#f8b4b4;padding:6px 8px;border-radius:2px;font-size:12px}.ts-form-grid{display:grid;grid-template-columns:130px 1fr;gap:8px 10px;align-items:center}.ts-form-grid label{color:var(--ts-text-dim);font-size:12px}.ts-input-row{display:flex;gap:4px}.ts-input-row input{flex:1;min-width:0}.ts-fp-bar{display:flex;justify-content:space-between;align-items:center;background:var(--ts-bg-dark);border:1px solid var(--ts-border);padding:5px 8px;font-size:11.5px;color:var(--ts-text-dim)}.ts-fp-bar code{color:var(--ts-text);font-family:monospace}.ts-dialog-actions{display:flex;justify-content:flex-end;padding-top:4px;border-top:1px solid var(--ts-border)}.ts-window{height:100%;display:flex;flex-direction:column;background:var(--ts-bg)}.ts-menubar{display:flex;gap:2px;background:#232528;border-bottom:1px solid var(--ts-border-dark);padding:2px 6px}.ts-menubar button{padding:3px 8px;font-size:12px;border-radius:2px}.ts-menubar button:hover{background:var(--ts-bg-hover)}.ts-toolbar{display:flex;align-items:center;gap:3px;background:var(--ts-bg);border-bottom:1px solid var(--ts-border);padding:4px 8px}.ts-tool-btn{display:inline-flex;align-items:center;justify-content:center;width:26px;height:24px;border-radius:2px;border:1px solid transparent;color:var(--ts-text)}.ts-tool-btn:hover{background:var(--ts-bg-hover);border-color:var(--ts-border)}.ts-tool-btn.danger:hover{color:#fca5a5}.ts-tool-btn.active-danger{background:#5c2323;border-color:#8f3939;color:#fca5a5}.ts-tool-btn.active-warn{background:#574118;border-color:#8c6926;color:#fcd34d}.ts-tool-sep{width:1px;height:18px;background:var(--ts-border);margin:0 4px}.ts-toolbar-spacer{flex:1}.ts-mic-bar{display:flex;align-items:center;gap:6px}.ts-mic-mode{font-size:11px;color:var(--ts-text-dim);background:var(--ts-bg-dark);border:1px solid var(--ts-border);padding:1px 5px;border-radius:2px}.ts-meter-track{position:relative;width:110px;height:8px;background:var(--ts-bg-dark);border:1px solid var(--ts-border);border-radius:1px;overflow:hidden}.ts-meter-fill{height:100%;background:#56606b;transition:width .05s linear}.ts-meter-fill.tx{background:var(--ts-orb-speak)}.ts-vad-line{position:absolute;top:0;bottom:0;width:2px;background:var(--ts-warn)}.ts-inline-bar{display:flex;align-items:center;gap:8px;padding:5px 10px;background:#202225;border-bottom:1px solid var(--ts-border)}.ts-inline-bar input{width:200px}.ts-split-main{flex:1;display:flex;min-height:0;border-bottom:1px solid var(--ts-border)}.ts-tree-pane{width:44%;min-width:240px;background:var(--ts-bg-dark);border-right:1px solid var(--ts-border);display:flex;flex-direction:column}.ts-tree-scroll{flex:1;overflow-y:auto;padding-bottom:6px}.ts-tree-row{display:flex;align-items:center;gap:6px;padding:3px 8px;cursor:pointer;line-height:1.35}.ts-tree-row:hover{background:#292c30}.ts-tree-row.selected{background:var(--ts-bg-selected);color:#fff}.ts-server-node{font-weight:600;padding:5px 8px;border-bottom:1px solid #282a2e}.ts-channel-node{padding-left:16px;color:#d4d7da}.ts-channel-node.current{font-weight:600}.ts-ch-count{font-size:11px;color:var(--ts-text-dim)}.ts-user-node{padding-left:34px}.ts-user-node.is-self .ts-user-name{font-weight:600}.ts-user-name{flex:1;min-width:0}.ts-icon-server{color:#60a5fa;flex-shrink:0}.ts-icon-channel{color:#d6b656;flex-shrink:0}.ts-orb{width:10px;height:10px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#4a82b5,var(--ts-orb-idle));border:1px solid #162e45;flex-shrink:0}.ts-orb.speaking{background:radial-gradient(circle at 35% 35%,#bae6fd,var(--ts-orb-speak));border-color:#0284c7;box-shadow:0 0 6px #38bdf8d9}.ts-orb.away{background:#55595e;border-color:#36393c}.ts-user-icons{display:flex;align-items:center;gap:4px}.ts-ic-danger{color:var(--ts-danger);display:inline-flex}.ts-ic-warn{color:var(--ts-warn);display:inline-flex}.ts-ic-away{color:var(--ts-text-dim);display:inline-flex}.ts-ic-ok{color:var(--ts-ok)}.ts-info-pane{flex:1;background:var(--ts-bg-panel);padding:10px 14px;overflow-y:auto}.ts-info-header{font-weight:600;font-size:13px;padding-bottom:6px;margin-bottom:8px;border-bottom:1px solid var(--ts-border)}.ts-info-table{width:100%;border-collapse:collapse}.ts-info-table td{padding:3px 6px 3px 0;vertical-align:top}.ts-info-table td:first-child{width:145px;color:var(--ts-text-dim)}.ts-info-table code{font-family:monospace;font-size:11.5px;background:var(--ts-bg-dark);padding:1px 4px;border:1px solid var(--ts-border)}.ts-info-actions{margin-top:12px}.ts-peer-controls{margin-top:12px;padding-top:10px;border-top:1px solid var(--ts-border);display:flex;flex-direction:column;gap:6px;max-width:300px}.ts-peer-ctrl-row{display:flex;justify-content:space-between;align-items:center}.ts-bottom-pane{height:195px;display:flex;flex-direction:column;background:var(--ts-bg-dark)}.ts-chat-tabs{display:flex;background:var(--ts-bg);border-bottom:1px solid var(--ts-border);padding:3px 6px 0;gap:3px}.ts-chat-tab{padding:4px 10px;font-size:12px;color:var(--ts-text-dim);background:#232528;border:1px solid var(--ts-border);border-bottom:none;border-radius:2px 2px 0 0}.ts-chat-tab.active{background:var(--ts-bg-dark);color:var(--ts-text);font-weight:600}.ts-log-area{flex:1;overflow-y:auto;padding:6px 8px;-webkit-user-select:text;user-select:text;font-size:12px;line-height:1.45}.ts-log-line{word-break:break-word}.ts-log-line.system{color:var(--ts-text-dim)}.ts-log-ts{color:#70767e;margin-right:6px;font-family:monospace;font-size:11.5px}.ts-log-author{color:#6cb4ff;font-weight:600}.ts-log-badge{display:inline-flex;vertical-align:middle;margin-left:4px}.ts-log-badge.enc{color:#60a5fa}.ts-log-badge.ver{color:#4ade80}.ts-chat-input-row{display:flex;gap:4px;padding:4px 6px;background:var(--ts-bg);border-top:1px solid var(--ts-border)}.ts-chat-input-row input{flex:1}.ts-statusbar{height:22px;background:#202225;border-top:1px solid var(--ts-border);padding:0 10px;display:flex;align-items:center;gap:18px;font-size:11px;color:var(--ts-text-dim)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;display:flex;align-items:center;justify-content:center;z-index:50}.modal-card{width:520px;max-width:95vw;background:var(--ts-bg);border:1px solid var(--ts-border);border-radius:3px;box-shadow:0 10px 30px #000000a6}.modal-header{background:#202225;padding:7px 10px;border-bottom:1px solid var(--ts-border);display:flex;justify-content:space-between;align-items:center}.modal-header h3{font-size:12.5px;font-weight:600}.icon-btn{display:inline-flex;padding:2px;color:var(--ts-text-dim)}.icon-btn:hover{color:var(--ts-text)}.modal-tabs{display:flex;gap:2px;padding:4px 8px 0;background:#232528;border-bottom:1px solid var(--ts-border)}.tab-btn{display:inline-flex;align-items:center;gap:5px;padding:5px 10px;font-size:12px;color:var(--ts-text-dim);border:1px solid transparent;border-bottom:none}.tab-btn.active{background:var(--ts-bg);color:var(--ts-text);border-color:var(--ts-border);font-weight:600}.modal-body{padding:12px;max-height:70vh;overflow-y:auto}.settings-section{display:flex;flex-direction:column;gap:10px}.settings-section label,.field-group{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--ts-text-dim)}.label-row{display:flex;justify-content:space-between}.segmented{display:grid;grid-template-columns:1fr 1fr;gap:4px}.segmented button{background:var(--ts-bg-dark);border:1px solid var(--ts-border);padding:5px;border-radius:2px}.segmented button.active{background:var(--ts-bg-selected);border-color:var(--ts-accent);color:#fff}.secondary-btn{background:#383b40;border:1px solid #4c5057;padding:5px 8px;border-radius:2px;text-align:left}.checkbox-list{display:flex;flex-direction:column;gap:6px}.checkbox-row{flex-direction:row!important;align-items:center;gap:8px!important;color:var(--ts-text)!important;cursor:pointer}.mic-meter-track.large{position:relative;height:10px;background:var(--ts-bg-dark);border:1px solid var(--ts-border)}.mic-meter-fill{height:100%;background:#56606b}.mic-meter-fill.tx{background:var(--ts-orb-speak)}.vad-marker{position:absolute;top:0;bottom:0;width:2px;background:var(--ts-warn)}.info-box{background:var(--ts-bg-dark);border:1px solid var(--ts-border);padding:8px 10px;font-size:12px;line-height:1.4;display:flex;flex-direction:column;gap:4px}.big-fp{font-family:monospace;font-size:13px;color:var(--ts-ok)}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:8px}.peer-fp-list{display:flex;flex-direction:column;gap:4px}.peer-fp-row{display:flex;justify-content:space-between;background:var(--ts-bg-dark);border:1px solid var(--ts-border);padding:5px 8px}.muted-text{color:var(--ts-text-dim)}.ts-icon-pad{display:inline-flex;align-items:center;justify-content:center;padding:4px 6px}.ts-rooms-section{display:flex;flex-direction:column;gap:4px}.ts-rooms-header{display:flex;justify-content:space-between;align-items:center;font-size:11.5px;color:var(--ts-text-dim)}.ts-rooms-list{max-height:110px;overflow-y:auto;background:var(--ts-bg-dark);border:1px solid var(--ts-border);border-radius:2px}.ts-rooms-empty{padding:8px;font-size:11.5px;color:var(--ts-text-dim)}.ts-room-item{width:100%;display:flex;justify-content:space-between;align-items:center;padding:4px 8px;text-align:left;border-bottom:1px solid #26282c}.ts-room-item:last-child{border-bottom:none}.ts-room-item:hover{background:#292c30}.ts-room-item.selected{background:var(--ts-bg-selected);color:#fff}.ts-room-peers{display:inline-flex;align-items:center;gap:4px;font-size:11px;color:var(--ts-text-dim)}.ts-room-item.selected .ts-room-peers{color:#dbeafe}
