@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap";:root{--ink: #f7f8fa;--panel: #ffffff;--panel-raised: #ecedf1;--text: #14181f;--text-muted: #6b7684;--border: #dfe3e8;--patina: #0f8f86;--patina-contrast: #ffffff;--copper: #b3672f;--danger: #c23b3b;--signal-online: #22a06b;--signal-away: #b8860b;--signal-busy: #c23b3b;--signal-offline: #9aa3ad;--bubble-own: #0f8f86;--bubble-own-text: #ffffff;--bubble-other: #ecedf1;--bubble-other-text: #14181f;--shadow: 0 1px 2px rgba(20, 24, 31, .06), 0 4px 12px rgba(20, 24, 31, .04);--font-ui: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "JetBrains Mono", ui-monospace, monospace}[data-theme=dark]{--ink: #12161c;--panel: #181d25;--panel-raised: #1f242e;--text: #e7e9ed;--text-muted: #8b95a3;--border: #262c37;--patina: #2bb3a8;--patina-contrast: #0b1512;--copper: #d99354;--danger: #e2685f;--signal-online: #3ecf8e;--signal-away: #dcae2c;--signal-busy: #e2685f;--signal-offline: #4a525f;--bubble-own: #1f7d76;--bubble-own-text: #f2fbfa;--bubble-other: #232a35;--bubble-other-text: #e7e9ed;--shadow: 0 1px 2px rgba(0, 0, 0, .3), 0 6px 16px rgba(0, 0, 0, .25)}*{box-sizing:border-box}body{margin:0;font-family:var(--font-ui);background:var(--ink);color:var(--text);-webkit-font-smoothing:antialiased}button:focus-visible,input:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--patina);outline-offset:2px}.app-shell{display:flex;height:100vh}.sidebar{width:280px;background:var(--panel);border-right:1px solid var(--border);display:flex;flex-direction:column}.sidebar-header{padding:16px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:10px}.sidebar-header .name{font-weight:600;font-size:14px}.sidebar-header .role{font-family:var(--font-mono);font-size:11px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.sidebar-actions{padding:10px 12px;border-bottom:1px solid var(--border)}.new-message-btn{width:100%;display:flex;align-items:center;justify-content:center;gap:6px}.channel-list{flex:1;overflow-y:auto;padding:6px}.channel-item{padding:10px 12px;cursor:pointer;display:flex;align-items:center;gap:10px;border-radius:10px;margin-bottom:2px;position:relative}.channel-item:hover{background:var(--panel-raised)}.channel-item.active{background:var(--patina);color:var(--patina-contrast)}.channel-item.active .channel-preview,.channel-item.active .channel-name{color:var(--patina-contrast)}.channel-item-text{flex:1;min-width:0}.channel-name{font-size:14px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.channel-preview{font-size:12px;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.channel-menu-btn{opacity:0;padding:4px;border-radius:6px;background:transparent;color:inherit}.channel-item:hover .channel-menu-btn{opacity:.7}.channel-menu-btn:hover{opacity:1!important;background:#0000001a}.pin-indicator{color:var(--copper);flex-shrink:0}.presence-dot{width:9px;height:9px;border-radius:50%;display:inline-block;flex-shrink:0;background:var(--signal-offline)}.presence-dot.online{background:var(--signal-online);box-shadow:0 0 0 2px color-mix(in srgb,var(--signal-online) 25%,transparent),0 0 6px 1px color-mix(in srgb,var(--signal-online) 70%,transparent)}.presence-dot.away{background:var(--signal-away);box-shadow:0 0 0 2px color-mix(in srgb,var(--signal-away) 25%,transparent),0 0 6px 1px color-mix(in srgb,var(--signal-away) 70%,transparent)}.presence-dot.busy{background:var(--signal-busy);box-shadow:0 0 0 2px color-mix(in srgb,var(--signal-busy) 25%,transparent),0 0 6px 1px color-mix(in srgb,var(--signal-busy) 70%,transparent)}.presence-dot.invisible,.presence-dot.offline{background:var(--signal-offline)}.avatar{width:32px;height:32px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;color:#fff}.main-panel{flex:1;display:flex;flex-direction:column;min-width:0;background:var(--ink)}.chat-header{padding:14px 20px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;background:var(--panel)}.chat-header-title{display:flex;align-items:center;gap:10px;font-weight:600}.chat-header-actions{display:flex;gap:6px}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:8px;background:transparent;color:var(--text-muted);padding:0}.icon-btn:hover{background:var(--panel-raised);color:var(--text)}.icon-btn.danger:hover{background:color-mix(in srgb,var(--danger) 15%,transparent);color:var(--danger)}.message-thread{flex:1;overflow-y:auto;padding:16px 20px;display:flex;flex-direction:column;gap:4px}.message-row{display:flex;gap:8px;max-width:70%}.message-row.own{align-self:flex-end;flex-direction:row-reverse}.message-row.other{align-self:flex-start}.message-row.grouped{margin-top:-6px}.message-bubble-col{display:flex;flex-direction:column;gap:2px}.message-row.own .message-bubble-col{align-items:flex-end}.message-sender-label{font-size:12px;font-weight:600;color:var(--text-muted);margin-bottom:2px}.message-bubble{padding:8px 12px;border-radius:16px;font-size:14px;line-height:1.4;white-space:pre-wrap;word-break:break-word}.message-row.own .message-bubble{background:var(--bubble-own);color:var(--bubble-own-text);border-bottom-right-radius:4px}.message-row.other .message-bubble{background:var(--bubble-other);color:var(--bubble-other-text);border-bottom-left-radius:4px}.message-meta{display:flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:10px;color:var(--text-muted)}.message-row.own .message-meta{flex-direction:row-reverse}.message-attachment{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:10px;background:color-mix(in srgb,var(--text) 5%,transparent);font-size:13px}.message-row.own .message-attachment{background:color-mix(in srgb,#fff 15%,transparent)}.reaction-row{display:flex;gap:4px;flex-wrap:wrap;margin-top:2px}.reaction-chip{display:inline-flex;align-items:center;gap:4px;padding:1px 7px;border-radius:10px;background:var(--panel-raised);border:1px solid var(--border);font-size:12px;cursor:pointer}.reaction-chip.mine{border-color:var(--patina);background:color-mix(in srgb,var(--patina) 15%,transparent)}.reaction-add-btn{padding:1px 6px;border-radius:10px;background:transparent;color:var(--text-muted);border:1px solid var(--border);font-size:12px}.typing-indicator-row{align-self:flex-start;margin-top:4px}.typing-bubble{background:var(--bubble-other);border-radius:16px 16px 16px 4px;padding:10px 14px;display:inline-flex;gap:4px;align-items:center}.typing-dot{width:6px;height:6px;border-radius:50%;background:var(--text-muted);animation:typing-bounce 1.2s infinite ease-in-out}.typing-dot:nth-child(2){animation-delay:.15s}.typing-dot:nth-child(3){animation-delay:.3s}@keyframes typing-bounce{0%,60%,to{transform:translateY(0);opacity:.5}30%{transform:translateY(-4px);opacity:1}}@media (prefers-reduced-motion: reduce){.typing-dot{animation:none;opacity:.8}}.message-input-bar{border-top:1px solid var(--border);padding:10px 16px;display:flex;align-items:flex-end;gap:6px;background:var(--panel);position:relative}.message-input-bar input{flex:1;padding:10px 14px;border-radius:10px;border:1px solid var(--border);background:var(--ink);color:var(--text);font-family:var(--font-ui);font-size:14px}button{cursor:pointer;border:none;border-radius:8px;padding:9px 16px;background:var(--patina);color:var(--patina-contrast);font-weight:600;font-family:var(--font-ui);font-size:14px;display:inline-flex;align-items:center;gap:6px}button.secondary{background:var(--panel-raised);color:var(--text);border:1px solid var(--border)}button:disabled{opacity:.5;cursor:not-allowed}.auth-page{display:flex;align-items:center;justify-content:center;height:100vh;background:var(--ink)}.auth-card{width:380px;padding:32px;border-radius:14px;border:1px solid var(--border);background:var(--panel);box-shadow:var(--shadow)}.auth-card h2{font-family:var(--font-ui)}.auth-card input{width:100%;padding:11px 14px;margin-bottom:12px;border-radius:10px;border:1px solid var(--border);background:var(--ink);color:var(--text);font-size:14px}.auth-card .error{color:var(--danger);font-size:13px;margin-bottom:12px;padding:8px 10px;background:color-mix(in srgb,var(--danger) 10%,transparent);border-radius:8px}.auth-tabs{display:flex;gap:8px;margin-bottom:16px}.auth-tabs button{flex:1;justify-content:center}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0a0c1099;display:flex;align-items:center;justify-content:center;z-index:100;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal-card{background:var(--panel);border-radius:14px;padding:24px;width:360px;border:1px solid var(--border);box-shadow:var(--shadow)}.modal-card h3{margin-top:0}.dropdown-menu{position:absolute;z-index:50;min-width:160px;background:var(--panel);border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow);padding:4px;display:flex;flex-direction:column}.dropdown-item{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:6px;background:transparent;color:var(--text);font-weight:400;font-size:13px;text-align:left;justify-content:flex-start}.dropdown-item:hover{background:var(--panel-raised)}.dropdown-item.danger{color:var(--danger)}.search-results{max-height:280px;overflow-y:auto;margin-top:8px}.search-result-row{display:flex;align-items:center;gap:10px;padding:8px;border-radius:8px;cursor:pointer}.search-result-row:hover{background:var(--panel-raised)}.emoji-picker{position:absolute;bottom:56px;left:16px;z-index:50;background:var(--panel);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow);padding:10px;width:280px;display:grid;grid-template-columns:repeat(8,1fr);gap:4px}.emoji-picker button{padding:4px;font-size:18px;background:transparent;border-radius:6px}.emoji-picker button:hover{background:var(--panel-raised)}.admin-page{max-width:900px;margin:0 auto;padding:32px 24px}.admin-section{margin-bottom:32px}.admin-table{width:100%;border-collapse:collapse;font-size:14px}.admin-table th{text-align:left;padding:8px 10px;color:var(--text-muted);font-size:11px;text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--border)}.admin-table td{padding:10px;border-bottom:1px solid var(--border)}.role-badge{font-family:var(--font-mono);font-size:11px;padding:2px 8px;border-radius:6px;background:var(--panel-raised);text-transform:uppercase}.role-badge.admin{background:color-mix(in srgb,var(--danger) 18%,transparent);color:var(--danger)}.role-badge.internal{background:color-mix(in srgb,var(--patina) 18%,transparent);color:var(--patina)}.call-room{flex:1;display:flex;flex-direction:column;background:#0a0c10;position:relative}.call-video-grid{flex:1;display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:8px;padding:8px;align-content:start}.call-video-grid video{width:100%;height:100%;object-fit:cover;border-radius:10px;background:#1a1d24;aspect-ratio:16/9}.call-controls{display:flex;gap:10px;justify-content:center;padding:16px;background:var(--panel)}.unmute-banner{position:absolute;top:12px;left:50%;transform:translate(-50%);background:var(--copper);color:#1a1206;padding:8px 14px;border-radius:8px;font-size:13px;font-weight:600;z-index:10}
