:root{color-scheme:light;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#121621;background:#f6f7f2;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{overflow:hidden;overscroll-behavior:none}button,input,textarea,select{font:inherit}button{-webkit-tap-highlight-color:transparent;touch-action:manipulation}.boot-screen,.auth-screen{min-height:100%;display:grid;place-items:center;padding:24px;background:linear-gradient(135deg,rgba(34,197,94,.18),transparent 34%),linear-gradient(315deg,rgba(14,165,233,.16),transparent 32%),#f6f7f2}.auth-panel{width:min(420px,100%);padding:24px;border:1px solid #dfe4d8;border-radius:8px;background:#ffffffdb;box-shadow:0 24px 70px #1216211f}.brand-row{display:flex;align-items:center;gap:12px}.brand-row h1{margin:0;font-size:25px;line-height:1.05}.brand-row p{margin:4px 0 0;color:#647067;font-size:14px}.brand-row.compact h1{font-size:18px}.app-mark{width:54px;height:54px;display:grid;place-items:center;border-radius:8px;background:#0f172a;color:#ecfdf5;font-weight:800;letter-spacing:0}.app-mark.small{width:40px;height:40px;font-size:14px}.server-switch,.mode-switch{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:20px 0}.server-switch button,.mode-switch button{height:40px;display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid #d9dfd2;border-radius:8px;background:#fff;color:#273025;cursor:pointer}.server-switch button.active,.mode-switch button.active{border-color:#16a34a;background:#eaf8ef;color:#0f642e}.auth-form{display:grid;gap:14px}label{display:grid;gap:7px;color:#4a5249;font-size:13px}input{min-width:0;height:44px;padding:0 13px;border:1px solid #d6dccf;border-radius:8px;background:#fff;color:#121621;outline:none}input:focus{border-color:#16a34a;box-shadow:0 0 0 3px #22c55e29}.primary-command,.setting-action{height:44px;border:0;border-radius:8px;background:#121621;color:#fff;cursor:pointer}.primary-command:disabled,button:disabled{cursor:not-allowed;opacity:.55}.app-shell{height:100%;height:100dvh;display:grid;grid-template-rows:auto auto minmax(0,1fr);grid-template-areas:"topbar" "incoming" "workspace";background:#f6f7f2;overflow:hidden}.topbar{grid-area:topbar;min-height:68px;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 18px;border-bottom:1px solid #dfe4d8;background:#ffffffe0;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.top-actions{display:flex;align-items:center;gap:8px}.compact-switch{width:230px;margin:0}.icon-button{width:40px;height:40px;display:inline-grid;place-items:center;flex:0 0 auto;border:1px solid #d8dfd1;border-radius:8px;background:#fff;color:#1f2937;cursor:pointer}.icon-button.primary{border-color:#16a34a;background:#16a34a;color:#fff}.icon-button.danger{border-color:#ef4444;background:#ef4444;color:#fff}.notice{width:100%;padding:11px 13px;border:1px solid #d7ddcf;border-radius:8px;background:#fff;color:#121621;text-align:left}.notice.floating{position:fixed;z-index:8;top:82px;right:18px;width:min(390px,calc(100vw - 36px));box-shadow:0 14px 42px #12162124}.notice.success{border-color:#86efac;background:#ecfdf5}.notice.error{border-color:#fecaca;background:#fff1f2}.notice.info{border-color:#bfdbfe;background:#eff6ff}.incoming-strip{grid-area:incoming;margin:10px 18px 0;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:12px;border-radius:8px;border:1px solid #bbf7d0;background:#f0fdf4}.incoming-strip span,.settings-block span,.person-row small,.conversation-copy small{display:block;color:#6b7469;font-size:12px}.incoming-actions{display:flex;gap:8px}.workspace{grid-area:workspace;min-height:0;display:grid;grid-template-columns:320px minmax(0,1fr) 360px;gap:0;overflow:hidden}.rail,.people-panel,.settings-panel,.chat-panel{min-height:0;border-right:1px solid #dfe4d8;background:#fbfcf8}.people-panel,.settings-panel{display:grid;grid-template-rows:auto auto minmax(0,1fr);border-right:0;border-left:1px solid #dfe4d8;padding:16px;overflow:hidden}.settings-panel{display:none}.rail{display:grid;grid-template-rows:auto minmax(0,1fr)}.section-head,.chat-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px}.section-head h2,.chat-head h2{margin:0;font-size:17px}.chat-head p{margin:3px 0 0;color:#6b7469;font-size:13px}.chat-head>.icon-button:first-child{display:none}.chat-title{min-width:0;flex:1}.chat-title h2,.chat-title p{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.conversation-list,.people-list{display:grid;gap:6px;padding:0 10px 16px;overflow:auto}.conversation-list,.people-list{min-height:0}.conversation-item,.person-row{width:100%;min-height:64px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:11px;padding:8px;border:1px solid transparent;border-radius:8px;background:transparent;color:inherit;text-align:left}.person-row{grid-template-columns:auto minmax(0,1fr) auto auto}.person-copy{min-width:0}.conversation-item{cursor:pointer}.conversation-item.selected,.conversation-item:hover,.person-row.request{border-color:#d7dfcf;background:#fff}.avatar{width:40px;height:40px;display:grid;place-items:center;border-radius:8px;background:#dbeafe;color:#1e3a8a;font-weight:800;font-size:13px}.avatar.large{width:48px;height:48px;background:#dcfce7;color:#166534}.avatar.signal{background:#16a34a;color:#fff}.conversation-copy{min-width:0}.conversation-copy strong,.person-row strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.conversation-copy small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.list-caption{margin:12px 8px 4px;color:#687169;font-size:12px;font-weight:700;text-transform:uppercase}.list-empty,.search-hint{display:grid;justify-items:center;gap:7px;padding:28px 18px;color:#687169;text-align:center}.list-empty strong{color:#273025}.list-empty span,.search-hint{font-size:13px;line-height:1.4}.unread{min-width:24px;height:24px;display:grid;place-items:center;border-radius:999px;background:#16a34a;color:#fff;font-size:12px;font-weight:700}.chat-panel{display:grid;grid-template-rows:auto 1fr auto;background:#f6f7f2}.message-list{min-height:0;display:flex;flex-direction:column;gap:8px;padding:18px;overflow:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.message-state{margin:auto;padding:16px;color:#687169;font-size:14px;text-align:center}.message{position:relative;max-width:min(78%,560px);display:grid;gap:4px;padding:10px 12px;border-radius:8px;line-height:1.35;overflow-wrap:anywhere}.message.incoming{align-self:flex-start;background:#fff;border:1px solid #dfe4d8}.message.outgoing{align-self:flex-end;background:#dcfce7;border:1px solid #bbf7d0}.message small,.message time{color:#6b7469;font-size:11px}.message.has-actions{padding-right:42px}.message-action-toggle{position:absolute;top:5px;right:5px;width:28px;height:28px;display:grid;place-items:center;border:0;border-radius:5px;background:transparent;color:#586159;cursor:pointer;opacity:.68}.message-action-toggle:hover,.message-action-toggle:focus-visible{background:#0f172a14;opacity:1}.message-actions-menu{position:absolute;top:36px;right:6px;z-index:8;min-width:160px;display:grid;padding:4px;border:1px solid #d6dccf;border-radius:7px;background:#fff;box-shadow:0 10px 28px #1c231e2e}.message-actions-menu button{min-height:34px;display:flex;align-items:center;gap:8px;padding:6px 9px;border:0;border-radius:5px;background:transparent;color:#202720;font:inherit;font-size:13px;text-align:left;cursor:pointer}.message-actions-menu button:hover,.message-actions-menu button:focus-visible{background:#f0f4ee}.message-actions-menu button.danger{color:#b42318}.message-meta{display:flex;align-items:center;justify-content:flex-end;gap:5px}.message-markdown{min-width:0;overflow:hidden}.message-markdown>:first-child{margin-top:0}.message-markdown>:last-child{margin-bottom:0}.message-markdown p,.message-markdown ul,.message-markdown ol,.message-markdown blockquote{margin:6px 0}.message-markdown h1,.message-markdown h2,.message-markdown h3{margin:9px 0 5px;font-size:16px;line-height:1.25}.message-markdown a{color:#08783a}.message-markdown :not(pre)>code{padding:1px 4px;border-radius:4px;background:#0f172a1a;font:.9em ui-monospace,SFMono-Regular,Consolas,Liberation Mono,monospace}.message-markdown blockquote{padding-left:9px;border-left:3px solid #16a34a;color:#47524a}.message-markdown table{width:100%;border-collapse:collapse;font-size:13px}.message-markdown th,.message-markdown td{padding:5px 7px;border:1px solid #c9d2c5}.code-panel{width:min(100%,640px);min-width:0;margin:7px 0;overflow:hidden;border:1px solid #343b3a;border-radius:6px;background:#171b1a;color:#f3f6f4}.code-panel-head{min-height:36px;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:3px 4px 3px 11px;border-bottom:1px solid #343b3a;background:#242a28;color:#b9c5bf;font:700 11px ui-monospace,SFMono-Regular,Consolas,monospace}.code-panel-head button{width:32px;height:30px;display:grid;place-items:center;border:0;border-radius:5px;background:transparent;color:#d8e2dc;cursor:pointer}.code-panel-head button:hover{background:#363e3b}.code-panel pre{max-width:100%;margin:0;padding:12px;overflow:auto;white-space:pre;-moz-tab-size:2;tab-size:2}.code-panel pre code{font:13px/1.5 ui-monospace,SFMono-Regular,Consolas,Liberation Mono,monospace}.file-message{min-width:min(280px,62vw);display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:9px;padding:3px;border:0;background:transparent;color:inherit;text-align:left;cursor:pointer}.file-message-icon{width:38px;height:38px;display:grid;place-items:center;border-radius:6px;background:#0f763a1f;color:#0f763a}.file-message-copy{min-width:0;display:grid;gap:2px}.file-message-copy strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.composer-shell{position:relative;min-width:0;border-top:1px solid #dfe4d8;background:#ffffffeb}.edit-message-banner{min-width:0;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:9px;padding:8px 12px 0;color:#13723b}.edit-message-banner>span{min-width:0;display:grid;gap:2px}.edit-message-banner small{font-size:11px;font-weight:700}.edit-message-banner strong{overflow:hidden;color:#3c463e;font-size:13px;font-weight:500;text-overflow:ellipsis;white-space:nowrap}.edit-message-banner button{width:32px;height:32px;display:grid;place-items:center;border:0;border-radius:5px;background:transparent;color:#586159;cursor:pointer}.edit-message-banner button:hover,.edit-message-banner button:focus-visible{background:#edf2eb}.emoji-picker{position:absolute;right:58px;bottom:calc(100% - 8px);z-index:12;width:min(360px,calc(100% - 24px));overflow:hidden;border:1px solid #d6dccf;border-radius:8px;background:#fff;box-shadow:0 14px 34px #1c231e33}.emoji-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;padding:5px;border-bottom:1px solid #e4e8e0;background:#f7faf6}.emoji-tabs button,.emoji-grid button{display:grid;place-items:center;border:0;border-radius:5px;background:transparent;cursor:pointer}.emoji-tabs button{min-height:34px;font-size:19px}.emoji-tabs button:hover,.emoji-tabs button:focus-visible,.emoji-tabs button.active{background:#e4f4e7}.emoji-tabs button.active{box-shadow:inset 0 -2px #168447}.emoji-grid{max-height:224px;display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:2px;padding:8px;overflow-y:auto}.emoji-grid button{aspect-ratio:1;min-width:0;font-size:23px}.emoji-grid button:hover,.emoji-grid button:focus-visible{background:#edf2eb}.pending-files{display:flex;gap:7px;padding:9px 12px 0;overflow-x:auto}.pending-file{max-width:280px;min-height:34px;display:grid;grid-template-columns:auto minmax(60px,1fr) auto auto;align-items:center;gap:6px;flex:0 0 auto;padding:4px 5px 4px 9px;border:1px solid #d6dccf;border-radius:6px;background:#f7faf6}.pending-file>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pending-file>small{color:#687169;font-size:11px}.pending-file button{width:28px;height:28px;display:grid;place-items:center;border:0;border-radius:5px;background:transparent;color:#586159}.composer,.search-box{display:grid;grid-template-columns:1fr auto;gap:8px;padding:12px;border-top:1px solid #dfe4d8;background:#ffffffeb}.composer{grid-template-columns:auto auto minmax(0,1fr) auto;align-items:end;border-top:0}.search-box{grid-template-columns:auto 1fr auto;align-items:center;margin-bottom:14px;padding:8px;border:1px solid #dfe4d8;border-radius:8px}.search-box input,.composer textarea{border:0;box-shadow:none}.composer textarea{width:100%;min-height:44px;max-height:120px;padding:11px 8px;resize:none;overflow-y:auto;background:transparent;color:#121621;outline:none;line-height:1.4}.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.file-preview-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;display:grid;place-items:center;padding:20px;background:#11161494}.file-preview-dialog{width:min(900px,100%);max-height:min(82vh,760px);display:grid;grid-template-rows:auto minmax(0,1fr);overflow:hidden;border:1px solid #cfd7cc;border-radius:8px;background:#fff;box-shadow:0 22px 70px #1116143d}.file-preview-dialog>header{min-width:0;display:grid;grid-template-columns:minmax(0,1fr) auto auto auto;align-items:center;gap:7px;padding:9px 10px 9px 14px;border-bottom:1px solid #dfe4d8}.file-preview-dialog>header>div{min-width:0;display:flex;align-items:center;gap:8px}.file-preview-dialog>header strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-preview-content{min-height:0;padding:14px;overflow:auto}.file-preview-content>.code-panel{width:100%;margin:0}.empty-state{display:grid;place-items:center;align-content:center;gap:12px;color:#657067}.settings-block,.setting-action{width:100%;display:grid;gap:4px;margin-bottom:10px;padding:13px;border:1px solid #dfe4d8;border-radius:8px;background:#fff;color:#121621;text-align:left}.setting-action{grid-template-columns:auto 1fr;align-items:center;cursor:pointer}.micro-copy{padding:10px;color:#6b7469;font-size:12px}.mobile-nav{grid-area:nav;display:none}.call-layer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;display:grid;background:#05070d}.call-stage{position:relative;min-height:0;display:grid;place-items:center;overflow:hidden}.call-video{width:100%;height:100%;object-fit:cover;background:#05070d}.call-video.mirror{transform:scaleX(-1)}.remote-media{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;background:transparent}.remote-audio{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.call-peer-placeholder{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;background:#111827}.call-avatar{width:112px;height:112px;display:grid;place-items:center;border:1px solid #334155;border-radius:50%;background:#1e293b;color:#e2e8f0;font-size:32px;font-weight:800}.playback-command{position:absolute;z-index:4;top:max(22px,env(safe-area-inset-top));left:50%;min-height:44px;display:inline-flex;align-items:center;gap:8px;padding:0 15px;border:1px solid rgba(255,255,255,.35);border-radius:8px;background:#0f172ae6;color:#fff;transform:translate(-50%)}.local-video-wrap{position:absolute;right:max(16px,env(safe-area-inset-right));top:max(16px,env(safe-area-inset-top));width:min(32vw,180px);aspect-ratio:9 / 13;overflow:hidden;border:1px solid rgba(255,255,255,.28);border-radius:8px;background:#111827;z-index:3}.call-overlay{position:absolute;left:0;right:0;bottom:0;display:grid;gap:16px;justify-items:center;padding:28px max(18px,env(safe-area-inset-right)) max(28px,env(safe-area-inset-bottom));color:#fff;background:linear-gradient(0deg,#000000bd,#0000);z-index:2;max-height:100%;overflow-y:auto}.call-overlay h2{margin:0;font-size:26px;text-align:center}.call-overlay p{margin:6px 0 0;text-align:center;color:#d7dde8}.call-controls{display:flex;gap:12px;flex-wrap:wrap;justify-content:center}.call-controls .icon-button{width:48px;height:48px}.call-device-panel{width:min(760px,calc(100vw - 36px));display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:12px;border:1px solid rgba(255,255,255,.25);border-radius:8px;background:#141918f0}.call-device-panel label{min-width:0;color:#dce5df}.call-device-panel label>span{display:flex;align-items:center;gap:6px}.call-device-panel select{width:100%;height:40px;min-width:0;padding:0 9px;overflow:hidden;border:1px solid #59625e;border-radius:6px;background:#f8faf9;color:#171b1a}.call-error{display:block;margin-top:8px;color:#fecaca;text-align:center}@media(max-width:1120px){.workspace{grid-template-columns:300px minmax(0,1fr)}.people-panel,.settings-panel{display:none}}@media(max-width:1120px){.app-shell{grid-template-rows:auto auto minmax(0,1fr) auto;grid-template-areas:"topbar" "incoming" "workspace" "nav"}.topbar{min-height:58px;padding:max(10px,env(safe-area-inset-top)) 12px 10px}.app-shell.mobile-chat-open .topbar,.brand-row.compact p,.compact-switch{display:none}.brand-row.compact .app-mark{width:36px;height:36px}.top-actions .icon-button:last-child{display:none}.notice.floating{top:max(70px,calc(env(safe-area-inset-top) + 58px));right:10px;width:calc(100vw - 20px)}.workspace{min-height:0;grid-template-columns:1fr;overflow:hidden}.rail,.chat-panel,.people-panel,.settings-panel{display:none;border:0}.rail.mobile-active,.chat-panel.mobile-active,.people-panel.mobile-active,.settings-panel.mobile-active{display:grid;min-width:0;height:100%}.settings-panel.mobile-active{display:block;padding:12px;overflow:auto}.rail.mobile-active{grid-template-rows:auto minmax(0,1fr)}.people-panel.mobile-active{grid-template-rows:auto auto minmax(0,1fr);padding:0 10px 10px;overflow:hidden}.section-head,.chat-head{padding:12px}.chat-head{min-width:0;display:grid;grid-template-columns:auto auto minmax(0,1fr) auto;gap:9px;border-bottom:1px solid #dfe4d8;background:#fffffff0;padding-top:max(10px,env(safe-area-inset-top))}.chat-head>.icon-button:first-child{display:inline-grid}.chat-head .avatar.large{width:40px;height:40px}.chat-head h2{font-size:16px}.chat-head p{font-size:12px}.conversation-list,.people-list{min-height:0;padding-bottom:18px;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.conversation-item,.person-row{min-height:68px}.person-row{gap:8px;padding:8px 4px}.person-row .icon-button{width:38px;height:38px}.message{max-width:88%}.message-list{padding:12px 10px}.composer{padding:9px max(10px,env(safe-area-inset-right)) max(9px,env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left))}.emoji-picker{right:max(10px,env(safe-area-inset-right));width:calc(100% - max(20px,env(safe-area-inset-right) + env(safe-area-inset-left)))}.emoji-grid{grid-template-columns:repeat(7,minmax(0,1fr))}.composer textarea,.search-box input,.auth-form input{font-size:16px}.mobile-nav{width:100%;height:calc(64px + env(safe-area-inset-bottom));min-height:calc(64px + env(safe-area-inset-bottom));display:grid;grid-template-columns:repeat(3,1fr);padding:5px max(8px,env(safe-area-inset-right)) calc(5px + env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left));border-top:1px solid #dfe4d8;background:#fff;position:relative;z-index:5}.mobile-nav.chat-open{display:none}.mobile-nav button{display:grid;place-items:center;align-content:center;gap:3px;border:0;border-radius:8px;background:transparent;color:#596258}.mobile-nav button span{font-size:11px;font-weight:650}.mobile-nav button.active{background:#eaf8ef;color:#16a34a}.incoming-strip{margin:8px 10px 0;grid-template-columns:auto 1fr auto}.call-layer{height:100dvh}.local-video-wrap{right:max(10px,env(safe-area-inset-right));top:max(10px,env(safe-area-inset-top));width:min(30vw,132px)}.call-overlay{gap:12px;padding:72px max(12px,env(safe-area-inset-right)) max(18px,env(safe-area-inset-bottom))}.call-device-panel{grid-template-columns:1fr;width:min(420px,calc(100vw - 24px))}.file-preview-backdrop{padding:8px}.file-preview-dialog{max-height:calc(100dvh - 16px)}.call-overlay h2{font-size:22px}.call-avatar{width:92px;height:92px;font-size:27px}}@media(max-width:370px){.chat-head .avatar.large{display:none}.chat-head{grid-template-columns:auto minmax(0,1fr) auto}.person-row{grid-template-columns:auto minmax(0,1fr) auto auto}.person-row .avatar{width:36px;height:36px}}
