:root{--bg-0: #070707;--bg-1: #0b0b0b;--bg-2: #101010;--surface-0: rgba(255, 255, 255, .04);--surface-1: rgba(255, 255, 255, .06);--surface-2: rgba(255, 255, 255, .08);--stroke-0: rgba(255, 255, 255, .08);--stroke-1: rgba(255, 255, 255, .12);--text-primary: rgba(255, 255, 255, .92);--text-secondary: rgba(255, 255, 255, .66);--text-tertiary: rgba(255, 255, 255, .44);--state-hover: rgba(255, 255, 255, .06);--state-pressed: rgba(255, 255, 255, .1);--r-10: 10px;--r-12: 12px;--r-14: 14px;--r-16: 16px;--r-18: 18px;--s-4: 4px;--s-8: 8px;--s-12: 12px;--s-16: 16px;--s-20: 20px;--s-24: 24px}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%}body{background:var(--bg-0);color:var(--text-primary);font-family:Inter,Segoe UI,system-ui,sans-serif}button,input,select,textarea{font:inherit;color:inherit}input,select,textarea{border:1px solid var(--stroke-0);background:var(--surface-0);color:var(--text-primary);border-radius:var(--r-14);outline:none}input:focus,select:focus,textarea:focus{border-color:var(--stroke-1)}.btn{height:40px;border-radius:var(--r-10);border:1px solid var(--stroke-1);background:var(--surface-2);color:var(--text-primary);padding:0 16px;display:inline-flex;align-items:center;justify-content:center;font-size:14px;line-height:20px;cursor:pointer}.btn:disabled{opacity:.45;cursor:not-allowed}.ghost-btn{background:var(--surface-0);border-color:var(--stroke-0)}.auth-screen{min-height:100vh;padding:24px;display:flex;align-items:center;justify-content:center}.auth-card{width:min(460px,100%);border-radius:var(--r-18);border:1px solid var(--stroke-1);background:var(--surface-2);box-shadow:0 14px 60px #0009;backdrop-filter:blur(32px);-webkit-backdrop-filter:blur(32px);padding:24px}.auth-card h1{margin:0;font-size:28px;line-height:34px;font-weight:600}.auth-card p{margin:8px 0 16px;color:var(--text-secondary);font-size:14px;line-height:20px}.auth-switch{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:12px}.auth-switch button{height:40px;border-radius:var(--r-12);border:1px solid var(--stroke-0);background:var(--surface-0);color:var(--text-secondary);cursor:pointer}.auth-switch button.active{border-color:var(--stroke-1);background:var(--surface-2);color:var(--text-primary)}.auth-form{display:grid;gap:12px}.auth-form label{display:grid;gap:8px;color:var(--text-secondary);font-size:13px}.auth-form input{height:40px;padding:0 12px}.password-field{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center}.password-field input{width:100%}.password-toggle{height:32px;border-radius:var(--r-10);border:1px solid var(--stroke-0);background:var(--surface-0);color:var(--text-secondary);padding:0 10px;cursor:pointer;font-size:12px}.password-toggle:hover{background:var(--state-hover);color:var(--text-primary)}.password-help{display:grid;gap:6px}.password-meter{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.password-meter-bar{height:4px;border-radius:999px;background:#ffffff29}.password-meter-bar.active{background:#ffffffc7}.password-hints{display:flex;gap:6px;flex-wrap:wrap}.password-hint{height:22px;border-radius:999px;border:1px solid var(--stroke-0);background:var(--surface-0);color:var(--text-tertiary);padding:0 8px;display:inline-flex;align-items:center;font-size:11px;line-height:14px}.password-hint.ok{color:var(--text-primary);border-color:var(--stroke-1);background:var(--surface-1)}.caps-warning{color:#ffffffbd;font-size:11px;line-height:14px}.form-error{border:1px solid var(--stroke-1);border-radius:var(--r-12);background:var(--surface-1);color:var(--text-primary);padding:12px;font-size:12px;line-height:16px}.form-error.sticky{margin:0 16px 12px}.app-shell{min-height:100vh;padding:16px;display:flex;gap:16px;background:var(--bg-0)}.app-shell:before{content:"";position:fixed;inset:0;pointer-events:none;background:linear-gradient(132deg,transparent 49.6%,rgba(255,255,255,.06) 49.8%,rgba(255,255,255,.06) 50%,transparent 50.2%) no-repeat,linear-gradient(132deg,transparent 61.7%,rgba(255,255,255,.06) 61.9%,rgba(255,255,255,.06) 62.1%,transparent 62.3%) no-repeat,linear-gradient(to right,rgba(255,255,255,.05) 1px,transparent 1px) 180px 130px / 220px 140px no-repeat,linear-gradient(to bottom,rgba(255,255,255,.05) 1px,transparent 1px) 180px 130px / 220px 140px no-repeat,radial-gradient(circle,rgba(255,255,255,.1) 2px,transparent 2px) 230px 210px / 1px 1px no-repeat,radial-gradient(circle,rgba(255,255,255,.1) 2px,transparent 2px) 850px 180px / 1px 1px no-repeat;background-size:120% 120%,130% 130%,auto,auto,auto,auto;background-position:16% 24%,46% 8%,180px 130px,180px 130px,230px 210px,850px 180px;opacity:.42;z-index:0}.app-shell>*{position:relative;z-index:1}.sidebar,.chat-panel{border-radius:var(--r-18);background:var(--surface-1);border:1px solid var(--stroke-0);box-shadow:0 10px 40px #0000008c;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);overflow:hidden}.sidebar{width:320px;display:flex;flex-direction:column;padding:8px;gap:8px}.sidebar-top{display:flex;align-items:center;gap:8px;padding:0 4px}.brand-btn{height:72px;border:1px solid var(--stroke-0);background:transparent;border-radius:var(--r-16);display:flex;align-items:center;padding:0 16px;cursor:pointer}.brand-btn-compact{width:48px;min-width:48px;height:48px;border-radius:var(--r-14);padding:0;justify-content:center;background:var(--surface-0)}.brand-mark{width:32px;height:32px;border-radius:var(--r-10);border:1px solid var(--stroke-1);background:#fff;display:inline-flex;align-items:center;justify-content:center;overflow:hidden}.brand-logo-image{width:100%;height:100%;object-fit:cover}.brand-copy strong{font-size:20px;line-height:26px;font-weight:600;letter-spacing:.01em}.sidebar-search-inline{width:100%;min-width:0;flex:1;height:40px;padding:0 12px}.sidebar-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;padding:0 4px}.sidebar-tab{height:34px;border-radius:var(--r-12);border:1px solid var(--stroke-0);background:var(--surface-0);color:var(--text-secondary);cursor:pointer;font-size:12px;line-height:16px;padding:0 8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-tab.active{background:var(--surface-2);border-color:var(--stroke-1);color:var(--text-primary)}.sidebar-row{padding:0 4px}.sidebar-row .input{width:100%;height:40px;padding:0 12px}.chat-list{display:flex;flex-direction:column;gap:4px;list-style:none;margin:0;padding:0;overflow:auto;min-height:0}.chat-divider-row{margin:8px 4px 4px;padding-top:6px;border-top:1px solid var(--stroke-0)}.chat-divider-row span{color:var(--text-tertiary);font-size:11px;line-height:14px;letter-spacing:.03em;text-transform:uppercase}.chat-row{width:100%;height:64px;border-radius:var(--r-16);border:1px solid transparent;background:transparent;display:flex;align-items:center;gap:12px;padding:12px;text-align:left;color:inherit;cursor:pointer}.chat-row:hover{background:var(--state-hover);border-color:var(--stroke-0)}.chat-row.active{background:var(--surface-1);border-color:var(--stroke-1)}.chat-row-public{border-style:dashed}.avatar-wrap{flex:0 0 auto}.avatar{width:36px;height:36px;border-radius:999px;background:var(--surface-2);border:1px solid var(--stroke-1);display:flex;align-items:center;justify-content:center;color:var(--text-secondary);flex-shrink:0;object-fit:cover}.chat-row-copy{min-width:0;flex:1;display:flex;flex-direction:column;gap:2px}.chat-row-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.chat-row-head strong{font-size:14px;line-height:20px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-row-meta{display:inline-flex;align-items:center;gap:8px}.chat-row-meta time,.chat-row-copy small{font-size:12px;line-height:16px;color:var(--text-tertiary)}.chat-row-copy small{color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-row-dot{width:9px;height:9px;border-radius:999px;background:var(--text-primary);box-shadow:0 0 0 1px var(--surface-0)}.chat-panel{flex:1;display:flex;flex-direction:column;min-width:0}.chat-header{height:64px;border-bottom:1px solid var(--stroke-0);padding:0 16px;display:flex;align-items:center;justify-content:space-between;gap:12px}.chat-header-left{min-width:0;display:flex;align-items:center;gap:8px}.chat-header-user{border:0;background:transparent;display:flex;align-items:center;gap:12px;padding:0;cursor:pointer}.chat-header-user:hover .chat-title-wrap h2{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2px}.chat-header-avatar .avatar{width:32px;height:32px}.chat-title-wrap h2{margin:0;font-size:14px;line-height:20px;font-weight:600;text-align:left}.chat-title-wrap p{margin:0;font-size:12px;line-height:16px;color:var(--text-secondary);text-align:left}.chat-header-actions{display:flex;align-items:center;gap:8px}.icon-btn{width:32px;min-width:32px;padding:0}.icon-stroke{width:18px;height:18px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.7}.chat-back-btn{flex:0 0 auto}.chat-btn{min-width:56px;height:32px;padding:0 10px;border-radius:var(--r-12)}.chat-btn.active{background:var(--surface-2);border-color:var(--stroke-1)}.chat-searchbar{height:56px;border-bottom:1px solid var(--stroke-0);display:flex;align-items:center;gap:8px;padding:0 16px}.chat-search-input{height:40px;min-width:0;flex:1;padding:0 12px}.chat-search-count{color:var(--text-secondary);font-size:12px;line-height:16px;min-width:40px;text-align:right}.chat-search-btn{height:32px;padding:0 10px;border-radius:var(--r-12)}.pinned-row{display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--stroke-0);padding:8px 16px;background:#ffffff08}.topic-bar{display:flex;align-items:center;gap:8px;padding:8px 16px;border-bottom:1px solid var(--stroke-0);background:#ffffff05}.topic-bar span{color:var(--text-secondary);font-size:12px;line-height:16px}.topic-bar select{height:32px;min-width:180px;border-radius:var(--r-12);padding:0 10px}.pinned-copy{display:flex;flex-direction:column;gap:2px;min-width:0}.pinned-copy span{font-size:12px;line-height:16px;color:var(--text-tertiary)}.pinned-copy strong{font-size:13px;line-height:18px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pinned-unpin{height:30px;border-radius:var(--r-10);padding:0 10px}.messages{flex:1;padding:24px;display:flex;flex-direction:column;gap:10px;overflow:auto}.date-divider{align-self:center;border-radius:999px;padding:6px 12px;border:1px solid var(--stroke-0);background:var(--surface-1);color:var(--text-secondary);font-size:12px;line-height:16px}.system-msg{align-self:center;color:var(--text-tertiary);font-size:12px;line-height:16px}.msg-bubble{max-width:520px;border-radius:var(--r-16);padding:12px 12px 8px;display:flex;flex-direction:column;gap:6px;border:1px solid var(--stroke-0);background:var(--surface-1);box-shadow:0 10px 40px #0000008c;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);cursor:pointer}.msg-in{align-self:flex-start}.msg-out{align-self:flex-end;background:var(--surface-2);border:1px solid var(--stroke-1);box-shadow:0 14px 60px #0009;backdrop-filter:blur(32px);-webkit-backdrop-filter:blur(32px)}.msg-bubble.selected{outline:1px solid rgba(255,255,255,.22)}.msg-bubble.search-hit{outline:1px solid rgba(255,255,255,.18)}.msg-bubble.search-current{outline:1px solid rgba(255,255,255,.38);box-shadow:0 0 0 1px #fff3,0 14px 40px #0009}.msg-body{font-size:14px;line-height:20px;white-space:pre-wrap}.msg-sender{font-size:12px;line-height:16px;color:var(--text-tertiary);font-weight:600}.msg-cluster-start{margin-top:6px}.msg-continued{margin-top:1px}.msg-meta{display:flex;justify-content:flex-end;gap:6px;color:var(--text-tertiary);font-size:12px;line-height:16px}.attachment-list{margin:0;padding-left:18px;color:var(--text-secondary);font-size:12px;line-height:16px}.attachment-list a{color:var(--text-secondary)}.composer{border-top:1px solid var(--stroke-0);padding:12px 16px 16px;display:flex;flex-direction:column;gap:8px}.composer-row{display:flex;align-items:flex-end;gap:8px}.composer-file{display:none}.composer-attach{width:40px;height:40px;border-radius:var(--r-12);border:1px solid var(--stroke-0);background:var(--surface-0);display:inline-flex;align-items:center;justify-content:center;font-size:20px;line-height:1;color:var(--text-secondary);cursor:pointer}.composer-attach:hover{background:var(--state-hover)}.composer-emoji{width:40px;height:40px;border-radius:var(--r-12);border:1px solid var(--stroke-0);background:var(--surface-0);display:inline-flex;align-items:center;justify-content:center;font-size:13px;line-height:1;color:var(--text-secondary);cursor:pointer}.composer-emoji:hover{background:var(--state-hover)}.composer-input{flex:1;min-height:44px;max-height:120px;border-radius:var(--r-14);border:1px solid var(--stroke-0);background:var(--surface-0);padding:10px 12px;color:var(--text-secondary)}.send-btn{width:144px;height:40px}.files-preview{color:var(--text-tertiary);font-size:12px;line-height:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.emoji-panel{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:6px;padding:10px;border-radius:var(--r-16);border:1px solid var(--stroke-0);background:var(--surface-0)}.emoji-option{min-height:34px;border-radius:var(--r-12);border:1px solid transparent;background:transparent;cursor:pointer;font-size:18px}.emoji-option:hover{background:var(--state-hover);border-color:var(--stroke-0)}.composer-emoji.is-recording{background:#ffffff24;color:var(--text-primary)}.attachment-rich-list{padding-left:0;display:flex;flex-direction:column;gap:8px}.attachment-item{width:100%}.attachment-link{color:var(--text-secondary);text-decoration:none;word-break:break-word}.voice-bubble,.video-note-bubble{width:min(260px,100%);padding:10px;border-radius:14px;border:1px solid var(--stroke-0);background:#ffffff08;display:flex;flex-direction:column;gap:8px}.voice-waveform{height:34px;display:grid;grid-template-columns:repeat(24,minmax(0,1fr));gap:3px;align-items:end}.voice-waveform span{display:block;border-radius:999px;background:#ffffffc7;min-height:7px}.voice-audio,.video-note-player{width:100%}.voice-meta,.video-note-meta,.voice-pending,.video-note-pending{font-size:12px;line-height:16px;color:var(--text-tertiary)}.video-note-player{border-radius:12px;background:#000;aspect-ratio:1 / 1;object-fit:cover}.call-overlay{position:fixed;inset:0;z-index:45;display:flex;align-items:center;justify-content:center;padding:24px;background:#00000085}.call-card{width:min(560px,calc(100vw - 32px));border-radius:var(--r-18);border:1px solid var(--stroke-1);background:var(--surface-2);box-shadow:0 14px 60px #0009;backdrop-filter:blur(32px);-webkit-backdrop-filter:blur(32px);padding:20px;display:flex;flex-direction:column;gap:16px}.call-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.call-card-header strong{display:block;font-size:18px;line-height:22px}.call-card-header p{margin:4px 0 0;color:var(--text-secondary);font-size:13px}.call-error{color:#ffffffbd;font-size:12px;line-height:16px;text-align:right}.call-stage{min-height:220px;border-radius:var(--r-16);border:1px solid var(--stroke-0);background:#ffffff08;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}.call-stage-video{min-height:320px}.call-video-frame,.call-video-local{position:absolute;inset:0}.call-video-local{inset:auto 16px 16px auto;width:132px;height:176px;border-radius:16px;overflow:hidden;border:1px solid var(--stroke-1);box-shadow:0 14px 40px #00000073}.call-video,.call-video-fallback{width:100%;height:100%;object-fit:cover}.call-video-fallback,.call-audio-stage{display:flex;align-items:center;justify-content:center}.call-video-fallback{background:#ffffff0a;color:var(--text-primary);font-size:48px;font-weight:700}.call-video-fallback.muted{font-size:13px;color:var(--text-secondary)}.call-audio-stage{width:100%;flex-direction:column;gap:14px}.call-avatar-orb{width:92px;height:92px;border-radius:999px;border:1px solid var(--stroke-1);background:#ffffff0d;display:inline-flex;align-items:center;justify-content:center;font-size:38px;font-weight:700}.call-audio-copy{display:flex;flex-direction:column;align-items:center;gap:4px}.call-audio-copy span{color:var(--text-secondary);font-size:13px}.call-actions{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap}.call-end-btn{min-width:96px}.empty-state{display:flex;align-items:center;justify-content:center;flex:1;color:var(--text-secondary);border:1px dashed var(--stroke-0);border-radius:var(--r-16);padding:16px}.chat-panel-blank{align-items:stretch}.chat-panel-blank-state{margin:auto;border:1px solid var(--stroke-0);border-radius:var(--r-16);background:var(--surface-0);color:var(--text-secondary);min-height:120px;width:min(360px,calc(100% - 24px));display:grid;place-items:center;padding:16px;text-align:center}.context-menu{width:220px;padding:8px;border-radius:var(--r-16);border:1px solid var(--stroke-1);background:var(--surface-2);box-shadow:0 14px 60px #0009;backdrop-filter:blur(32px);-webkit-backdrop-filter:blur(32px);display:flex;flex-direction:column;gap:4px;position:fixed;z-index:30;max-height:min(320px,calc(100vh - 24px));overflow:auto}.chat-header-menu-wrap{position:relative}.chat-action-menu{position:absolute;top:calc(100% + 8px);right:0;width:min(240px,calc(100vw - 20px));padding:8px;border-radius:var(--r-16);border:1px solid var(--stroke-1);background:var(--surface-2);box-shadow:0 14px 60px #0009;backdrop-filter:blur(32px);-webkit-backdrop-filter:blur(32px);display:flex;flex-direction:column;gap:4px;z-index:28;max-height:min(320px,calc(100vh - 24px));overflow:auto}.sidebar-create-wrap{position:relative;align-self:flex-end}.sidebar-create-btn{width:42px;height:42px;border-radius:999px;border:1px solid var(--stroke-1);background:var(--surface-0);display:inline-flex;align-items:center;justify-content:center;color:var(--text-primary);cursor:pointer}.sidebar-create-btn:hover{background:var(--state-hover)}.sidebar-create-menu{position:absolute;right:0;bottom:calc(100% + 8px);width:min(240px,calc(100vw - 20px));padding:8px;border-radius:var(--r-16);border:1px solid var(--stroke-1);background:var(--surface-2);box-shadow:0 14px 60px #0009;backdrop-filter:blur(32px);-webkit-backdrop-filter:blur(32px);display:flex;flex-direction:column;gap:4px;z-index:28;max-height:min(320px,calc(100vh - 24px));overflow:auto}.context-menu button,.context-sheet button,.chat-action-menu button,.sidebar-create-menu button{min-height:36px;border-radius:var(--r-12);border:0;background:transparent;padding:8px 12px;text-align:left;color:var(--text-primary);cursor:pointer;line-height:1.3;white-space:normal;word-break:break-word;overflow-wrap:anywhere}.context-menu button:hover,.context-sheet button:hover,.chat-action-menu button:hover,.sidebar-create-menu button:hover{background:var(--state-hover)}.context-sheet{position:fixed;left:12px;right:12px;bottom:12px;z-index:30;border-radius:var(--r-18);border:1px solid var(--stroke-1);background:var(--surface-2);box-shadow:0 14px 60px #0009;backdrop-filter:blur(32px);-webkit-backdrop-filter:blur(32px);padding:8px;display:flex;flex-direction:column;gap:4px;max-height:min(320px,calc(100vh - 24px));overflow:auto}.modal-overlay{position:fixed;inset:0;z-index:20;background:#00000075;display:flex;align-items:center;justify-content:center;padding:24px}.modal-overlay-docked{inset:16px 16px 16px 352px;padding:0;background:transparent;align-items:stretch;justify-content:stretch}.modal{width:520px;border-radius:var(--r-18);border:1px solid var(--stroke-1);background:var(--surface-2);box-shadow:0 14px 60px #0009;backdrop-filter:blur(32px);-webkit-backdrop-filter:blur(32px);padding:24px;display:flex;flex-direction:column;gap:20px}.modal-wide{width:min(1080px,calc(100vw - 48px))}.modal-docked{width:100%;height:100%;max-height:none;border-radius:var(--r-18)}.modal-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.modal-title{font-size:20px;line-height:26px;font-weight:600}.modal-actions{display:flex;align-items:center;gap:8px}.stack-menu,.stack-form,.stack-copy{display:flex;flex-direction:column;gap:12px}.stack-menu button{height:40px;border-radius:var(--r-12);border:1px solid var(--stroke-0);background:var(--surface-0);text-align:left;padding:0 12px;cursor:pointer;line-height:1.3;white-space:normal;word-break:break-word;overflow-wrap:anywhere}.stack-menu button:hover{background:var(--state-hover)}.stack-form label{display:flex;flex-direction:column;gap:8px;color:var(--text-secondary);font-size:13px}.stack-form input,.stack-form select,.stack-form textarea{height:40px;padding:0 12px}.stack-form>button:not(.btn):not(.ghost-btn){height:40px;border-radius:var(--r-12);border:1px solid var(--stroke-0);background:var(--surface-0);color:var(--text-primary);text-align:left;padding:0 12px;cursor:pointer}.stack-form>button:not(.btn):not(.ghost-btn):hover{background:var(--state-hover)}.stack-form textarea{min-height:88px;padding:10px 12px;resize:vertical}.check-row{display:flex!important;flex-direction:row!important;align-items:center;gap:8px}.stack-copy p{margin:0;color:var(--text-secondary);font-size:14px;line-height:20px}.manage-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.control-layout{display:grid;grid-template-columns:220px 1fr;gap:12px;min-height:520px}.control-nav{border:1px solid var(--stroke-0);border-radius:var(--r-16);background:#ffffff05;padding:8px;display:flex;flex-direction:column;gap:6px}.control-nav button{height:38px;border-radius:var(--r-12);border:1px solid transparent;background:transparent;color:var(--text-secondary);text-align:left;padding:0 10px;cursor:pointer;white-space:normal;word-break:break-word;overflow-wrap:anywhere}.control-nav button:hover{background:var(--state-hover);color:var(--text-primary)}.control-nav button.active{border-color:var(--stroke-1);background:var(--surface-1);color:var(--text-primary)}.control-content{min-width:0}.manage-card{border:1px solid var(--stroke-0);border-radius:var(--r-16);background:#ffffff08;padding:12px}.manage-title{font-size:12px;line-height:16px;color:var(--text-secondary);letter-spacing:.02em;text-transform:uppercase}.manage-note{grid-column:1 / -1;border:1px solid var(--stroke-0);border-radius:var(--r-12);background:#ffffff08;color:var(--text-tertiary);padding:10px 12px;font-size:12px;line-height:16px}.manage-list{display:flex;flex-direction:column;gap:8px;max-height:224px;overflow:auto}.manage-list-row{border:1px solid var(--stroke-0);border-radius:var(--r-12);background:#ffffff05;padding:8px;display:flex;align-items:center;justify-content:space-between;gap:8px}.manage-list-copy{min-width:0;display:flex;flex-direction:column;gap:2px}.manage-list-copy strong{font-size:13px;line-height:18px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.manage-list-copy small{color:var(--text-secondary);font-size:12px;line-height:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.manage-inline-actions{display:inline-flex;align-items:center;gap:6px}.manage-inline-actions .btn,.manage-list-row .btn{height:32px;border-radius:var(--r-10);padding:0 10px;font-size:12px}.manage-empty{border:1px dashed var(--stroke-0);border-radius:var(--r-12);color:var(--text-tertiary);font-size:12px;line-height:16px;padding:10px 12px}.profile-panel{display:flex;align-items:center;gap:12px}.profile-avatar-wrap{flex:0 0 auto}.profile-avatar,.profile-avatar-wrap .profile-avatar,.profile-avatar-wrap .avatar{width:56px;height:56px;border-radius:999px;border:1px solid var(--stroke-1);background:var(--surface-2);display:flex;align-items:center;justify-content:center;font-size:18px;color:var(--text-secondary);object-fit:cover}.profile-copy{display:flex;flex-direction:column;gap:2px}.profile-copy strong{font-size:16px;line-height:22px;font-weight:600}.profile-copy span,.profile-copy small{color:var(--text-secondary);font-size:12px;line-height:16px}.profile-actions{display:flex;gap:8px}.menu-list{border:1px solid var(--stroke-0);border-radius:var(--r-14);background:var(--surface-0);display:flex;flex-direction:column;gap:0;overflow:hidden}.menu-row{min-width:0;display:grid;grid-template-columns:minmax(84px,auto) minmax(0,1fr);gap:10px;align-items:start;padding:10px 12px;border-bottom:1px solid var(--stroke-0);font-size:13px;line-height:1.35;color:var(--text-secondary)}.menu-row:last-child{border-bottom:0}.menu-row strong{color:var(--text-primary)}.status-dot{width:8px;height:8px;border-radius:999px;display:inline-block}.status-dot.strong{background:var(--text-primary);box-shadow:0 0 6px var(--surface-2)}.status-sending{background:var(--text-tertiary);box-shadow:none;animation:sendPulse 3.2s ease-in-out infinite}.status-delivered{background:var(--text-primary);box-shadow:0 0 5px var(--surface-2)}.status-double{display:inline-flex;gap:3px}.status-double .status-dot{background:var(--text-secondary);box-shadow:0 0 5px var(--surface-2)}.status-error{width:12px;height:12px;border-radius:999px;border:1px solid var(--text-secondary);color:var(--text-primary);display:inline-grid;place-items:center;font-size:9px;line-height:1;animation:errorBlink .9s ease-in-out 2}.custom-scroll{scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.16) transparent}.custom-scroll::-webkit-scrollbar{width:8px;height:8px}.custom-scroll::-webkit-scrollbar-track{background:transparent}.custom-scroll::-webkit-scrollbar-thumb{border-radius:999px;background:#ffffff29}.custom-scroll::-webkit-scrollbar-thumb:hover{background:#ffffff3d}@keyframes sendPulse{0%,to{opacity:.3;transform:scale(.95)}50%{opacity:.48;transform:scale(1)}}@keyframes errorBlink{0%,to{opacity:.35}50%{opacity:1}}@media(max-width:980px){.app-shell{flex-direction:column;min-height:100vh}.sidebar{width:100%;max-height:48vh}.chat-panel{min-height:44vh}.profile-actions{flex-direction:column}.manage-grid{grid-template-columns:1fr}.modal-wide{width:min(720px,calc(100vw - 24px))}.modal-overlay-docked{inset:0;padding:24px;background:#00000075}.modal-docked{width:min(720px,calc(100vw - 24px));height:auto}.control-layout{grid-template-columns:1fr;min-height:0}.control-nav{flex-direction:row;flex-wrap:wrap}.control-nav button{flex:1 1 calc(50% - 6px)}}:root{--bg-0: #f3f5f8;--bg-1: #eef1f5;--bg-2: #e7ebf2;--surface-0: rgba(255, 255, 255, .56);--surface-1: rgba(255, 255, 255, .66);--surface-2: rgba(255, 255, 255, .78);--stroke-0: rgba(20, 20, 20, .14);--stroke-1: rgba(20, 20, 20, .28);--text-primary: rgba(12, 12, 12, .94);--text-secondary: rgba(24, 24, 24, .74);--text-tertiary: rgba(36, 36, 36, .58);--state-hover: rgba(12, 12, 12, .06);--state-pressed: rgba(12, 12, 12, .1)}body{background:radial-gradient(1000px 460px at 20% -140px,rgba(255,255,255,.9),transparent 72%),linear-gradient(180deg,var(--bg-0),var(--bg-2));color:var(--text-primary);font-family:Inter,Segoe UI,system-ui,sans-serif;font-weight:500}button,input,select,textarea,p,span,small,time,label,h1,h2,h3,strong{font-weight:600}input,select,textarea,.btn,.ghost-btn,.sidebar-tab,.composer-row,.composer-attach,.composer-emoji,.date-divider,.msg-bubble,.msg-out,.profile-sheet,.menu-list,.chat-panel-blank-state,.control-nav,.manage-card,.manage-note,.manage-list-row,.stack-menu button,.context-menu,.context-sheet,.chat-action-menu,.sidebar-create-menu,.modal,.auth-card,.sidebar,.chat-panel{backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}.app-shell{background:radial-gradient(1200px 560px at 20% -180px,rgba(255,255,255,.76),transparent 74%),linear-gradient(180deg,var(--bg-0),var(--bg-2));padding:14px;gap:12px}.app-shell:before{background:linear-gradient(132deg,transparent 49.7%,rgba(15,15,15,.09) 49.9%,rgba(15,15,15,.09) 50.1%,transparent 50.3%) no-repeat,linear-gradient(132deg,transparent 61.8%,rgba(15,15,15,.08) 62%,rgba(15,15,15,.08) 62.2%,transparent 62.4%) no-repeat,radial-gradient(circle,rgba(10,10,10,.14) 2px,transparent 2px) 230px 210px / 1px 1px no-repeat,radial-gradient(circle,rgba(10,10,10,.12) 2px,transparent 2px) 900px 180px / 1px 1px no-repeat;background-size:120% 120%,130% 130%,auto,auto;background-position:16% 24%,46% 8%,230px 210px,900px 180px;opacity:.24}.sidebar,.chat-panel,.modal,.context-menu,.context-sheet,.chat-action-menu,.sidebar-create-menu,.control-nav,.manage-card,.manage-note,.manage-list-row,.stack-menu button,.auth-card,.profile-sheet,.menu-list,.chat-panel-blank-state{background:var(--surface-1);border-color:var(--stroke-0);box-shadow:0 12px 36px #12121224}.btn,.ghost-btn,.composer-row,.composer-attach,.composer-emoji,.sidebar-tab,.date-divider,.msg-bubble,.msg-out,.pinned-row,.topic-bar,.chat-searchbar,.composer,.menu-row,.sidebar-create-btn,.brand-btn,.brand-mark{background:var(--surface-0);border-color:var(--stroke-1);color:var(--text-primary);box-shadow:none}.chat-panel,.messages,.app-shell{color:var(--text-primary)}.chat-panel-blank-state{border-style:solid;border-width:1px}.msg-bubble{transform:none!important}.msg-out{background:var(--surface-2)}.custom-scroll{scrollbar-color:rgba(18,18,18,.3) transparent}.custom-scroll::-webkit-scrollbar-thumb{background:#12121247}.custom-scroll::-webkit-scrollbar-thumb:hover{background:#12121266}:root[data-theme=dark]{--bg-0: #07090d;--bg-1: #0c0f14;--bg-2: #11161e;--surface-0: rgba(255, 255, 255, .05);--surface-1: rgba(255, 255, 255, .07);--surface-2: rgba(255, 255, 255, .1);--stroke-0: rgba(255, 255, 255, .12);--stroke-1: rgba(255, 255, 255, .22);--text-primary: rgba(255, 255, 255, .94);--text-secondary: rgba(255, 255, 255, .74);--text-tertiary: rgba(255, 255, 255, .54);--state-hover: rgba(255, 255, 255, .08);--state-pressed: rgba(255, 255, 255, .14)}:root[data-theme=dark] body{background:radial-gradient(1200px 560px at 18% -200px,rgba(255,255,255,.06),transparent 74%),linear-gradient(180deg,var(--bg-0),var(--bg-2));color:var(--text-primary);font-family:Inter,Segoe UI,system-ui,sans-serif;font-weight:500}:root[data-theme=dark] .app-shell{background:radial-gradient(1200px 560px at 18% -200px,rgba(255,255,255,.05),transparent 74%),linear-gradient(180deg,var(--bg-0),var(--bg-2))}:root[data-theme=dark] .app-shell:before{opacity:.38}:root[data-theme=dark] .sidebar,:root[data-theme=dark] .chat-panel,:root[data-theme=dark] .modal,:root[data-theme=dark] .context-menu,:root[data-theme=dark] .context-sheet,:root[data-theme=dark] .chat-action-menu,:root[data-theme=dark] .sidebar-create-menu,:root[data-theme=dark] .control-nav,:root[data-theme=dark] .manage-card,:root[data-theme=dark] .manage-note,:root[data-theme=dark] .manage-list-row,:root[data-theme=dark] .stack-menu button,:root[data-theme=dark] .auth-card,:root[data-theme=dark] .profile-sheet,:root[data-theme=dark] .menu-list,:root[data-theme=dark] .chat-panel-blank-state{background:var(--surface-1);border-color:var(--stroke-0);box-shadow:0 14px 40px #0000006b}:root[data-theme=dark] .btn,:root[data-theme=dark] .ghost-btn,:root[data-theme=dark] .composer-row,:root[data-theme=dark] .composer-attach,:root[data-theme=dark] .composer-emoji,:root[data-theme=dark] .sidebar-tab,:root[data-theme=dark] .date-divider,:root[data-theme=dark] .msg-bubble,:root[data-theme=dark] .msg-out,:root[data-theme=dark] .pinned-row,:root[data-theme=dark] .topic-bar,:root[data-theme=dark] .chat-searchbar,:root[data-theme=dark] .composer,:root[data-theme=dark] .menu-row,:root[data-theme=dark] .sidebar-create-btn,:root[data-theme=dark] .brand-btn,:root[data-theme=dark] .brand-mark{background:var(--surface-0);border-color:var(--stroke-1);color:var(--text-primary)}:root[data-theme=dark] .msg-out{background:var(--surface-2)}:root[data-theme=dark] .custom-scroll{scrollbar-color:rgba(255,255,255,.22) transparent}:root[data-theme=dark] .custom-scroll::-webkit-scrollbar-thumb{background:#fff3}:root[data-theme=dark] .custom-scroll::-webkit-scrollbar-thumb:hover{background:#ffffff4d}:root[data-theme=dark] .modal-overlay{background:#070a0e9e}@media(max-width:980px){.app-shell{flex-direction:column;min-height:100dvh;height:100dvh;padding:8px;gap:8px}.app-shell.is-compact.list-view .chat-panel,.app-shell.is-compact.chat-view .sidebar{display:none}.app-shell.is-compact.list-view .sidebar,.app-shell.is-compact.chat-view .chat-panel{height:calc(100dvh - 16px);max-height:none}.sidebar{width:100%;max-height:38dvh;padding:8px}.chat-panel{flex:1;min-height:0}.chat-header{height:56px;padding:0 10px}.chat-header-left{gap:6px}.chat-title-wrap h2{font-size:13px}.chat-title-wrap p{font-size:11px}.chat-searchbar{height:48px;padding:0 10px;gap:6px;flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden}.chat-search-count{min-width:36px;font-size:11px}.chat-search-btn{height:30px;padding:0 8px;font-size:12px}.topic-bar,.pinned-row{padding:8px 10px}.topic-bar select{min-width:0;flex:1}.messages{padding:12px 10px 8px;gap:8px}.msg-bubble{max-width:min(82vw,320px);padding:10px 10px 7px}.composer{padding:8px 10px 10px}.composer-row{align-items:center;gap:6px}.icon-btn{width:30px;min-width:30px}.composer-attach,.composer-emoji{width:34px;height:34px;font-size:14px}.composer-input{min-height:36px;max-height:96px;padding:8px 10px}.emoji-panel{grid-template-columns:repeat(6,minmax(0,1fr))}.call-overlay{padding:12px}.call-card{width:min(100vw - 24px,520px);padding:16px}.call-video-local{width:96px;height:128px;inset:auto 10px 10px auto}.send-btn{width:128px;height:36px}.sidebar-create-wrap{margin-top:auto;padding-right:4px;padding-bottom:2px;position:sticky;bottom:4px}.sidebar-create-menu{width:min(280px,calc(100vw - 28px))}.profile-actions{flex-direction:column}.manage-grid{grid-template-columns:1fr}.modal-wide{width:min(95vw,720px)}.modal-overlay-docked{inset:0;padding:12px;background:#0a0e145c}.modal-docked{width:100%;height:auto}.control-layout{grid-template-columns:1fr;min-height:0}.control-nav{flex-direction:row;flex-wrap:wrap}.control-nav button{flex:1 1 calc(50% - 6px)}}@media(max-width:640px){.sidebar{max-height:34dvh}.app-shell.is-compact{padding:6px;gap:6px}.app-shell.is-compact.list-view .sidebar,.app-shell.is-compact.chat-view .chat-panel{height:calc(100dvh - 12px)}.chat-row{height:62px;padding:10px}.chat-row-copy small{font-size:11px}.chat-title-wrap h2{font-size:13px}.chat-title-wrap p{font-size:11px}.chat-header{height:52px;padding:0 8px}.chat-btn{min-width:30px;height:30px;padding:0 8px}.chat-searchbar{padding:0 8px}.send-btn{width:112px}.emoji-panel{grid-template-columns:repeat(5,minmax(0,1fr))}.composer-input{min-height:34px;max-height:92px;padding:7px 9px}}html,body,#root{height:100%}body{overflow:hidden;overscroll-behavior:none}.app-shell{height:100dvh;min-height:100dvh;overflow:hidden}.sidebar,.chat-panel{min-height:0}.chat-list,.messages{overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.auth-screen{height:100dvh;min-height:100dvh;overflow:auto;overscroll-behavior:contain}.auth-form{position:relative;z-index:1}.auth-form>button{min-height:44px;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
