:root{--bg:#0f172a;--surface:#1e293b;--border:#334155;--fg:#e2e8f0;--muted:#94a3b8;--primary:#3b82f6;--primary-hover:#2563eb;--danger:#ef4444;--radius:8px}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{background:var(--bg);color:var(--fg);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:15px;line-height:1.5}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}.app-shell{flex-direction:column;height:100%;display:flex}.app-header{background:var(--surface);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:12px 24px;display:flex}.brand{letter-spacing:.5px;font-size:18px;font-weight:700}.user-info{align-items:center;gap:14px;font-size:14px;display:flex}.user-info button{color:var(--muted);border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:6px;padding:6px 12px;font-family:inherit;font-size:14px}.user-info button:hover{color:var(--fg);border-color:var(--fg)}.role-badge{background:var(--border);color:var(--muted);text-transform:uppercase;letter-spacing:.5px;border-radius:4px;margin-left:4px;padding:1px 6px;font-size:11px;display:inline-block}.app-main{flex-direction:column;flex:1;min-height:0;display:flex}.btn{border:1px solid var(--border);color:var(--fg);border-radius:var(--radius);cursor:pointer;text-align:center;background:0 0;padding:10px 16px;font-family:inherit;font-size:15px;transition:background .1s,border-color .1s;display:inline-block}.btn:hover:not(:disabled){border-color:var(--muted)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.primary{background:var(--primary);border-color:var(--primary);color:#fff}.btn.primary:hover:not(:disabled){background:var(--primary-hover);border-color:var(--primary-hover)}label{color:var(--muted);text-transform:uppercase;letter-spacing:.5px;flex-direction:column;gap:6px;font-size:13px;display:flex}input,textarea{background:var(--bg);border:1px solid var(--border);color:var(--fg);border-radius:var(--radius);width:100%;padding:10px 12px;font-family:inherit;font-size:15px}input:focus,textarea:focus{border-color:var(--primary);outline:none}textarea{resize:vertical;min-height:60px}.card{background:var(--surface);border:1px solid var(--border);border-radius:12px;flex-direction:column;gap:16px;padding:28px;display:flex}.auth-page{flex:1;justify-content:center;align-items:center;padding:40px 20px;display:flex}.auth-page .card{width:100%;max-width:420px}.auth-page h1{font-size:24px}.profile-list{grid-template-columns:140px 1fr;gap:10px 16px;font-size:15px;display:grid}.profile-list dt{color:var(--muted);text-transform:uppercase;letter-spacing:.5px;align-self:center;font-size:12px}.profile-list dd{margin:0}.muted{color:var(--muted)}.small{font-size:13px}.field-error{color:var(--danger);text-transform:none;letter-spacing:0;font-size:12px}.alert{border-radius:var(--radius);padding:10px 14px;font-size:14px}.alert.error{border:1px solid var(--danger);color:#fca5a5;background:#ef44441f}.loading,.placeholder{color:var(--muted);text-align:center;flex:1;justify-content:center;align-items:center;padding:60px 20px;display:flex}@media (width<=640px){.app-header{padding:10px 16px}.user-info{gap:8px;font-size:13px}.card{padding:20px}.profile-list{grid-template-columns:1fr}.profile-list dt{margin-top:6px}}.chat-layout{flex:1;grid-template-columns:300px 1fr;min-height:0;display:grid;overflow:hidden}.chat-layout.user-chat{grid-template-columns:1fr}.chat-sidebar{border-right:1px solid var(--border);background:var(--surface);flex-direction:column;min-height:0;display:flex;overflow:hidden}.chat-main{flex-direction:column;min-height:0;display:flex;overflow:hidden}.sidebar-header{border-bottom:1px solid var(--border);padding:12px}.sidebar-list{flex:1;padding:8px;overflow-y:auto}.sidebar-empty{text-align:center;padding:24px 12px}.convo-item{text-align:left;width:100%;color:var(--fg);border-radius:var(--radius);cursor:pointer;background:0 0;border:none;margin-bottom:2px;padding:10px 12px;font-family:inherit;font-size:14px;display:block}.convo-item:hover{background:#ffffff0a}.convo-item.selected{background:#3b82f626}.convo-top{align-items:center;gap:8px;display:flex}.convo-name{text-overflow:ellipsis;white-space:nowrap;flex:1;font-weight:600;overflow:hidden}.convo-sub{color:var(--muted);justify-content:space-between;margin-top:4px;font-size:12px;display:flex}.presence-dot{background:var(--muted);border-radius:50%;flex-shrink:0;width:8px;height:8px;display:inline-block}.presence-dot.online{background:#10b981}.presence-dot.offline{background:#64748b}.presence-dot.inline{margin-left:8px}.unread-badge{background:var(--primary);color:#fff;text-align:center;border-radius:10px;min-width:18px;padding:1px 7px;font-size:11px;font-weight:600}.chat-header{border-bottom:1px solid var(--border);background:var(--surface);flex-shrink:0;justify-content:space-between;align-items:center;gap:16px;padding:12px 20px;display:flex}.chat-header-left{align-items:center;gap:10px;display:flex}.chat-title{align-items:center;font-size:16px;font-weight:600;display:flex}.chat-subtitle{color:var(--muted);margin-top:2px;font-size:12px}.chat-storage{width:220px;max-width:40vw}.message-list{flex-direction:column;flex:1;gap:10px;padding:20px;display:flex;overflow-y:auto}.message-list.empty{justify-content:center;align-items:center}.message{flex-direction:column;max-width:70%;display:flex}.message.own{align-self:flex-end;align-items:flex-end}.message.other{align-self:flex-start;align-items:flex-start}.message-sender{color:var(--muted);text-transform:uppercase;letter-spacing:.3px;margin-bottom:3px;font-size:11px;font-weight:600}.message-bubble{word-wrap:break-word;white-space:pre-wrap;border-radius:14px;padding:8px 14px;line-height:1.4}.message.own .message-bubble{background:var(--primary);color:#fff;border-bottom-right-radius:4px}.message.other .message-bubble{background:var(--surface);border:1px solid var(--border);border-bottom-left-radius:4px}.message-meta{color:var(--muted);margin-top:3px;padding:0 4px;font-size:10px}.message-composer{border-top:1px solid var(--border);background:var(--surface);flex-shrink:0;align-items:flex-end;gap:8px;padding:12px;display:flex}.message-composer textarea{resize:none;flex:1;min-height:44px;max-height:200px;padding:10px 12px}.message-composer .btn{padding:10px 20px}.storage-bar-wrap{flex-direction:column;gap:4px;display:flex}.storage-bar{background:var(--border);border-radius:3px;width:100%;height:6px;overflow:hidden}.storage-fill{background:var(--primary);height:100%;transition:width .2s,background .2s}.storage-fill.warn{background:#f59e0b}.storage-fill.danger{background:var(--danger)}.storage-text{color:var(--muted);text-align:right;font-size:11px}.alert.info{border:1px solid var(--primary);color:#93c5fd;background:#3b82f61f;flex-shrink:0;margin:12px 16px;padding:8px 12px;font-size:13px}.mobile-back{color:var(--primary);cursor:pointer;background:0 0;border:none;padding:4px 8px;font-family:inherit;font-size:20px;display:none}@media (width<=768px){.chat-layout.admin{grid-template-columns:1fr}.chat-layout.admin.has-selection .chat-sidebar,.chat-layout.admin:not(.has-selection) .chat-main{display:none}.mobile-back{display:inline-block}.chat-storage{width:140px}.message{max-width:88%}.chat-header{padding:10px 12px}.message-composer{padding:8px}}
