@font-face{font-family:Geist Sans;font-style:normal;font-display:swap;font-weight:300;src:url(/assets/geist-sans-latin-300-normal-C3kkMBb6.woff2) format("woff2"),url(/assets/geist-sans-latin-300-normal-plFOEHCX.woff) format("woff")}@font-face{font-family:Geist Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/geist-sans-latin-400-normal-gapTbOY8.woff2) format("woff2"),url(/assets/geist-sans-latin-400-normal-BOaIZNA2.woff) format("woff")}@font-face{font-family:Geist Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/geist-sans-latin-500-normal-uokXdC-Q.woff2) format("woff2"),url(/assets/geist-sans-latin-500-normal-CN2lyvyL.woff) format("woff")}@font-face{font-family:Geist Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/geist-sans-latin-600-normal-DFOURf8L.woff2) format("woff2"),url(/assets/geist-sans-latin-600-normal-CA1yjETN.woff) format("woff")}:root{--font: "Geist Sans", ui-sans-serif, system-ui, -apple-system, sans-serif;--surface: #ffffff;--surface-2: #f4f4f5;--surface-3: #e7e7ea;--text: #18181b;--text-2: #6b6b73;--border: #e2e2e6;--accent: #3b6fd8;--danger: #d6413f;--shadow: 0 8px 28px rgba(0, 0, 0, .14), 0 1px 3px rgba(0, 0, 0, .08);--page-bg: #1c1c1e;--page-text: #f4f4f5;--radius: 10px;color-scheme:light}:root[data-theme=dark]{--surface: #1c1c1e;--surface-2: #26262a;--surface-3: #34343a;--text: #f4f4f5;--text-2: #9d9da6;--border: #303036;--accent: #7aa2f7;--shadow: 0 10px 30px rgba(0, 0, 0, .45), 0 1px 3px rgba(0, 0, 0, .3);color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--font);color:var(--text);background:var(--surface);-webkit-font-smoothing:antialiased;overscroll-behavior:none;overflow:hidden}button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;padding:0}button:disabled{cursor:default;opacity:.45}input,select,textarea{font:inherit;color:inherit}a{color:var(--accent)}kbd{font:inherit;font-size:12px;color:var(--text-2)}.muted{color:var(--text-2)}.small{font-size:12px}.upper{text-transform:uppercase;letter-spacing:.04em}.error{color:var(--danger)}.row{display:flex;align-items:center}.row.end{justify-content:flex-end}.gap-4{gap:4px}.gap-8{gap:8px}.grow{flex:1;min-width:0}.pad{padding:24px}.spaced{margin-top:28px}.ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.clamp-2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.label{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--text-2)}.splash{height:100%;background:var(--page-bg)}.auth-page{height:100%;background:var(--page-bg);color:var(--page-text);padding:32px 38px;display:flex;flex-direction:column}.wordmark{color:inherit;text-decoration:none;font-size:19px;font-weight:400;letter-spacing:-.01em}.auth-card{width:min(312px,100%);margin:14vh 0 0 58px}@media(max-width:600px){.auth-card{margin:12vh auto 0}}.auth-card h1{font-weight:300;font-size:23px;margin:0 0 30px;letter-spacing:-.01em}.auth-card .muted{color:#a1a1aa}.underline-input{width:100%;background:transparent;border:0;border-bottom:1px solid #a1a1aa;color:var(--page-text);padding:9px 0;font-size:14px;outline:none}.underline-input:focus{border-bottom-color:#f4f4f5}.legal{font-size:11px;color:#a1a1aa;margin:38px 0 30px;line-height:1.6}.btn-text{font-weight:500;font-size:14px;color:var(--page-text)}.btn-link{color:inherit;text-decoration:underline;text-underline-offset:3px;font-size:13px;margin-top:18px}.btn-link.accent{color:var(--accent);text-decoration:none;font-weight:500;margin:0}.dev-box{border:1px dashed #52525b;border-radius:10px;padding:14px;display:grid;gap:10px;margin:22px 0 6px}.btn{display:inline-flex;justify-content:center;padding:9px 14px;border-radius:8px;background:#f4f4f5;color:#18181b;text-decoration:none;font-weight:500;font-size:13px}.canvas{position:fixed;inset:0;overflow:hidden;touch-action:none;user-select:none;-webkit-user-select:none;cursor:default}.canvas.space-pan,.canvas.panning{cursor:grabbing}.canvas.tool-draw{cursor:crosshair}.canvas.tool-erase{cursor:cell}.canvas.tool-comment,.canvas.tool-connect{cursor:copy}.grid-dots{position:absolute;inset:0;pointer-events:none;opacity:.35;background-image:radial-gradient(circle,#8a8a93 1px,transparent 1.2px)}.world{position:absolute;left:0;top:0;transform-origin:0 0;will-change:transform}.layer-svg{position:absolute;left:0;top:0;width:1px;height:1px;overflow:visible;pointer-events:none}.conn-layer{z-index:0}.conn{pointer-events:auto;cursor:pointer}.conn-hit{fill:none;stroke:transparent;pointer-events:stroke}.conn-line{fill:none;pointer-events:none}.conn.selected .conn-line{stroke:var(--accent)!important}.conn-line.preview{stroke:var(--accent);stroke-dasharray:6 6}.item{position:absolute;border-radius:6px}.item-content{width:100%;height:100%;overflow:hidden;border-radius:inherit}.item.selected{outline:calc(2px / var(--z)) solid var(--accent);outline-offset:calc(2px / var(--z))}.item.connect-source{outline:calc(2px / var(--z)) dashed var(--accent);outline-offset:calc(4px / var(--z))}.item.active{outline:calc(2px / var(--z)) solid var(--accent)}.item-image img,.item-video video{width:100%;height:100%;object-fit:cover;display:block;pointer-events:none;background:#111}.item-video.active video{pointer-events:auto;object-fit:contain}.media-overlay{position:absolute;inset:0;display:grid;place-items:center;pointer-events:none}.media-overlay .play{width:52px;height:52px;border-radius:50%;background:#0000008c;color:#fff;display:grid;place-items:center}.item-drawing{border-radius:0}.item-drawing .item-content{overflow:visible}.item-drawing svg{overflow:visible;display:block;pointer-events:none}.item-drawing svg path{pointer-events:stroke}.handle{position:absolute;background:#fff;border:calc(1.5px / var(--z)) solid var(--accent);border-radius:3px;cursor:nwse-resize;z-index:2}.grip{position:absolute;left:0;right:0;background:var(--accent);border-radius:6px 6px 0 0;cursor:move;opacity:.9}.file-card{height:100%;background:#fff;color:#18181b;border:1px solid #e2e2e6;border-radius:10px;padding:12px 14px;display:flex;flex-direction:column;justify-content:center;gap:8px;box-shadow:0 1px 3px #00000014}.file-card audio{width:100%;height:32px}.file-row{display:flex;align-items:center;gap:8px;min-width:0}.file-icon{width:32px;height:32px;border-radius:8px;background:#f4f4f5;display:grid;place-items:center;flex:none}.file-name{font-weight:500;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-card .muted{color:#6b6b73}.dl{margin-left:auto;display:inline-flex;gap:4px;align-items:center;font-size:12px}.pdf-card{height:100%;display:flex;flex-direction:column;background:#fff;border:1px solid #e2e2e6;border-radius:10px;overflow:hidden;color:#18181b}.pdf-title{padding:8px 10px;border-bottom:1px solid #eee}.pdf-title .file-icon{width:26px;height:26px}.pdf-card iframe{flex:1;border:0;width:100%;background:#f4f4f5}.page-item{height:100%;background:#fff;color:#18181b;border-radius:6px;box-shadow:0 1px 4px #0000001f;overflow:hidden}.page-scroll{height:100%;overflow:hidden}.page-item.editing .page-scroll{overflow:auto;user-select:text;-webkit-user-select:text;cursor:text}.prose{padding:16px 18px;outline:none;font-size:15px;line-height:1.5;min-height:100%}.prose>*:first-child{margin-top:0}.prose h1{font-size:24px;font-weight:600;margin:.4em 0;letter-spacing:-.01em}.prose h2{font-size:19px;font-weight:600;margin:.5em 0}.prose h3{font-size:16px;font-weight:600;margin:.5em 0}.prose p{margin:.35em 0}.prose ul,.prose ol{padding-left:1.3em;margin:.3em 0}.prose blockquote{border-left:3px solid #d4d4d8;margin:.5em 0;padding-left:12px;color:#52525b}.prose code{background:#f4f4f5;border-radius:4px;padding:1px 4px;font-size:.9em}.prose pre{background:#18181b;color:#f4f4f5;padding:10px 12px;border-radius:8px;overflow:auto}.prose p.is-editor-empty:first-child:before{content:attr(data-placeholder);color:#a1a1aa;float:left;height:0;pointer-events:none}.page-item[style*="#2a2a2e"]{color:#f4f4f5}.comment-pin{width:30px;height:30px;transform-origin:0 0;border-radius:50% 50% 50% 4px;background:#fff;box-shadow:0 2px 8px #00000040;display:grid;place-items:center;cursor:pointer}.comment-pin.selected,.comment-pin.open{outline:none;box-shadow:0 0 0 2px var(--accent),0 2px 8px #00000040}.comment-pin.resolved{opacity:.45}.comment-pin .avatar{width:26px!important;height:26px!important}.pin-empty{width:12px;height:12px;border-radius:50%;background:var(--accent)}.pin-count{position:absolute;top:-6px;right:-8px;background:#18181b;color:#fff;font-size:10px;border-radius:9px;padding:1px 5px}.remote-cursor{position:absolute;transform-origin:0 0;pointer-events:none;z-index:10000000;transition:left 80ms linear,top 80ms linear}.cursor-label{position:absolute;left:14px;top:16px;color:#fff;font-size:11px;padding:2px 6px;border-radius:6px;white-space:nowrap;font-weight:500}.marquee{position:absolute;border:1px solid var(--accent);background:color-mix(in srgb,var(--accent) 12%,transparent);pointer-events:none}.empty-hint{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:6px;color:#8a8a93;font-size:14px;pointer-events:none;text-align:center;padding:0 24px}.empty-hint strong{color:#6b6b73;font-weight:500;font-size:16px}.empty-hint kbd{border:1px solid #c4c4cc;border-radius:4px;padding:0 5px;font-size:12px}.mode-hint{position:fixed;top:16px;left:50%;transform:translate(-50%);background:var(--surface);color:var(--text);box-shadow:var(--shadow);border-radius:999px;padding:7px 14px;font-size:13px;pointer-events:none}.hud-panel{background:var(--surface);color:var(--text);box-shadow:var(--shadow);border-radius:var(--radius);border:1px solid var(--border)}.hud{position:fixed;z-index:20}.icon-btn{width:32px;height:32px;border-radius:8px;display:inline-grid;place-items:center;color:var(--text-2);flex:none}.icon-btn:hover:not(:disabled){background:var(--surface-2);color:var(--text)}.icon-btn.on{background:var(--surface-3);color:var(--text)}.top-right{top:14px;right:14px;display:flex;align-items:center;gap:4px;padding:5px}.presence{display:flex;padding-right:6px;margin-right:2px;border-right:1px solid var(--border)}.presence .avatar+.avatar{margin-left:-8px}.presence .more{font-size:12px;color:var(--text-2);align-self:center;padding-left:4px}.avatar-btn{margin-left:2px;border-radius:50%}.avatar{display:inline-grid;place-items:center;border-radius:50%;color:#18181b;font-weight:600;overflow:hidden;flex:none;-webkit-user-select:none;user-select:none}.avatar img{width:100%;height:100%;object-fit:cover}.avatar.ring{box-shadow:0 0 0 2px var(--surface)}.left-rail{left:14px;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:2px;padding:4px}.dock-wrap{left:50%;bottom:18px;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:8px}.dock{display:flex;padding:4px;gap:2px}.dock-btn{display:flex;flex-direction:column;align-items:center;gap:3px;width:58px;padding:7px 0 6px;border-radius:8px;color:var(--text-2);font-size:11px}.dock-btn:hover{background:var(--surface-2);color:var(--text)}.dock-btn.on{background:var(--surface-3);color:var(--text)}.add-menu{padding:5px;min-width:196px;display:flex;flex-direction:column}.menu-item{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:7px;text-align:left;font-size:14px;width:100%}.menu-item span{flex:1}.menu-item:hover{background:var(--surface-2)}.pen-bar{display:flex;align-items:center;gap:6px;padding:6px 8px}.pen{width:20px;height:20px;border-radius:50%;box-shadow:inset 0 0 0 1px #0003}.pen.on{box-shadow:0 0 0 2px var(--surface),0 0 0 4px var(--accent)}.sep{width:1px;align-self:stretch;background:var(--border);margin:2px 4px}.minimap-btn{right:14px;bottom:18px;width:36px;height:36px;display:grid;place-items:center;color:var(--text-2)}.minimap{position:fixed;right:14px;bottom:62px;z-index:20;padding:6px}.minimap-head{display:flex;justify-content:space-between;align-items:center;padding:0 2px 6px 4px;min-height:22px}.minimap-head .btn-link{margin:0}.minimap-head .icon-btn{width:22px;height:22px}.minimap-body{border-radius:6px;background:var(--surface-2);cursor:pointer;overflow:hidden}.mm-item{fill:var(--text-2);opacity:.55}.mm-comment{fill:var(--accent)}.mm-view{fill:color-mix(in srgb,var(--accent) 12%,transparent);stroke:var(--accent);stroke-width:1.5}.revoked-box{padding:24px;display:flex;flex-direction:column;gap:16px;align-items:center}.offline-banner{position:fixed;top:16px;left:50%;transform:translate(-50%);z-index:30;background:#3f3f46;color:#fff;padding:7px 14px;border-radius:999px;font-size:13px;display:flex;gap:6px;align-items:center}.selection-toolbar{position:fixed;z-index:15;transform:translate(-50%);display:flex;align-items:center;padding:4px;gap:1px}.swatch-sm{width:18px;height:18px;border-radius:50%;margin:0 2px;box-shadow:inset 0 0 0 1px #0000002e}.side-panel{position:fixed;z-index:25;top:0;right:0;bottom:0;width:312px;border-radius:0;border-width:0 0 0 1px;display:flex;flex-direction:column}.side-panel header{display:flex;align-items:center;justify-content:space-between;padding:14px 12px 8px 18px}.panel-title{font-weight:500}.side-body{padding:4px 16px 24px;overflow:auto;flex:1}.setting-row{display:flex;align-items:center;gap:12px;padding:10px 2px;font-size:14px}.setting-row span{flex:1}.section{border-top:1px solid var(--border);margin-top:10px;padding-top:14px}.section .label{margin-bottom:12px}.board-name{display:flex;align-items:baseline;font-size:15px}.board-name input{flex:1;min-width:0;border:0;background:transparent;font-weight:600;outline:none;padding:2px 0;border-bottom:1px solid transparent}.board-name input:focus{border-bottom-color:var(--border)}.swatches{display:grid;grid-template-columns:repeat(7,1fr);gap:10px}.swatch{aspect-ratio:1;border-radius:6px;box-shadow:inset 0 0 0 1px #80808059;position:relative}.swatch.on{box-shadow:0 0 0 2px var(--surface),0 0 0 4px var(--text)}.swatch.custom{display:grid;place-items:center;background:var(--surface-2);cursor:pointer}.swatch.custom input{position:absolute;inset:0;opacity:0;cursor:pointer}.toggle{width:38px;height:22px;border-radius:11px;background:var(--surface-3);position:relative;transition:background .15s;flex:none}.toggle span{position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:#fff;transition:transform .15s;box-shadow:0 1px 2px #0000004d}.toggle.on{background:var(--accent)}.toggle.on span{transform:translate(16px)}.btn-danger{display:inline-flex;gap:6px;align-items:center;color:var(--danger);font-size:13px;padding:8px 10px;border-radius:8px;border:1px solid color-mix(in srgb,var(--danger) 35%,transparent)}.btn-danger-text{display:inline-flex;gap:6px;align-items:center;color:#ec6b45;font-size:14px}.btn-outline{border:1px solid var(--border);border-radius:8px;padding:8px 14px;font-size:14px;display:inline-flex;gap:6px;align-items:center}.btn-outline:hover:not(:disabled){background:var(--surface-2)}.btn-outline.center{margin:10px auto 0;display:flex}.popover{position:fixed;z-index:25;top:62px;right:14px;width:366px;max-height:calc(100vh - 80px);overflow:auto;padding:18px}.popover-head h2{margin:0 0 4px;font-size:18px;font-weight:600}.popover-head{margin-bottom:18px}.invite-row{display:flex;gap:8px;margin-bottom:14px}.invite-input{flex:1;display:flex;align-items:center;border:1px solid var(--border);border-radius:8px;padding-left:10px;min-width:0}.invite-input input{flex:1;min-width:0;border:0;background:transparent;outline:none;padding:8px 0;font-size:14px}.role-select{border:0;background:var(--surface-2);border-radius:6px;padding:4px 6px;font-size:12px;margin-right:4px;color:var(--text)}.list-head{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--text-2);margin:12px 0 8px}.list-head .count{margin-left:auto}.people{display:flex;flex-direction:column}.person{display:flex;align-items:center;gap:10px;padding:8px 4px}.person .who{flex:1;min-width:0;font-size:14px}.person.pending .avatar{color:var(--text-2)}.role-label{font-size:13px}.guest-code{display:flex;align-items:center;gap:4px;padding:4px}.guest-code code{flex:1;font-size:14px}.profile-panel{width:300px;display:flex;flex-direction:column;gap:14px}.profile-head{display:flex;gap:12px;align-items:center}.avatar-edit{position:relative;border-radius:50%}.avatar-edit .cam{position:absolute;right:-2px;bottom:-2px;width:22px;height:22px;border-radius:50%;background:var(--surface-2);border:1px solid var(--border);display:grid;place-items:center}.name-input{width:100%;border:1px solid var(--border);background:var(--surface-2);border-radius:8px;padding:7px 10px;font-weight:600;outline:none;margin-bottom:6px}.pref-row{display:flex;align-items:center;justify-content:space-between;font-size:14px;gap:10px}.pref-col{display:flex;flex-direction:column;gap:6px}.pref-col select{border:1px solid var(--border);border-radius:8px;padding:8px;background:var(--surface-2);font-size:13px}.segmented{display:flex;border:1px solid var(--border);border-radius:8px;overflow:hidden}.segmented button{width:34px;height:28px;display:grid;place-items:center;color:var(--text-2)}.segmented button.on{background:var(--surface-3);color:var(--text)}.accent-row{display:flex;gap:6px}.dot{width:16px;height:16px;border-radius:50%}.dot.on{box-shadow:0 0 0 2px var(--surface),0 0 0 3.5px var(--text)}.profile-foot{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--border);padding-top:12px}.modal-backdrop{position:fixed;inset:0;z-index:30;display:grid;place-items:center;background:#0000002e;padding:16px}.dashboard{width:min(560px,100%);height:min(560px,90vh);display:flex;flex-direction:column;overflow:hidden}.dash-tabs{display:flex;align-items:center;gap:18px;padding:14px 16px 0;border-bottom:1px solid var(--border)}.dash-tabs .close{margin-left:auto;margin-bottom:6px}.tab{padding:6px 0 10px;color:var(--text-2);font-size:14px;display:inline-flex;gap:4px;align-items:center;border-bottom:1.5px solid transparent}.tab.on{color:var(--text);border-bottom-color:var(--text)}.tab sup{font-size:10px}.ws-switch{position:relative}.ws-switch .menu{position:absolute;top:100%;left:0;z-index:2;background:var(--surface);border:1px solid var(--border);border-radius:8px;box-shadow:var(--shadow);padding:4px;min-width:180px}.dash-body{padding:14px 16px;overflow:auto;flex:1}.dash-toolbar{display:flex;align-items:center;gap:12px;margin-bottom:14px}.dash-toolbar .tab{padding:0;border:0}.search-input{flex:1;display:flex;align-items:center;gap:6px;border-bottom:1px solid var(--border);color:var(--text-2)}.search-input input{flex:1;border:0;background:transparent;outline:none;padding:7px 0;color:var(--text);font-size:14px}.search-input.wide{margin-bottom:10px}.plain-select{border:0;background:transparent;color:var(--text-2);font-size:14px}.new-board{display:flex;gap:8px;margin-bottom:14px}.new-board input{flex:1;border:1px solid var(--border);background:var(--surface-2);border-radius:8px;padding:8px 10px;outline:none}.board-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px}.board-list{display:flex;flex-direction:column;gap:6px}.board-card{text-align:left;border-radius:12px;overflow:hidden;border:1.5px solid var(--border);background:#000;color:#fff;position:relative}.board-card.current{border-color:var(--accent)}.board-grid .thumb{height:108px;padding:8px}.board-grid .card-meta{position:absolute;left:14px;bottom:12px}.board-list .board-card{display:flex;align-items:center;background:var(--surface-2);color:var(--text)}.board-list .thumb{width:64px;height:44px;padding:4px}.board-list .thumb-avatars{display:none}.board-list .card-meta{padding:0 12px}.board-card .muted{color:#c4c4cc}.board-list .board-card .muted{color:var(--text-2)}.thumb-avatars{display:flex}.thumb-avatars .avatar+.avatar{margin-left:-6px}.card-name{font-weight:600;font-size:14px}.invite-box{border:1px solid var(--border);border-radius:10px;padding:12px;margin-bottom:14px;display:grid;gap:4px}.invite-box .invite-row{margin:8px 0 0}.search-modal{width:min(760px,100%);height:min(560px,88vh);display:flex;overflow:hidden}.search-cats{width:92px;background:var(--surface-2);padding:8px 6px;display:flex;flex-direction:column;gap:2px}.search-cats button{display:flex;flex-direction:column;align-items:center;gap:3px;padding:8px 0;border-radius:8px;font-size:11px;color:var(--text-2)}.search-cats button.on{background:var(--surface);color:var(--text);box-shadow:0 1px 2px #00000014}.search-main{flex:1;padding:14px;display:flex;flex-direction:column;min-width:0}.result-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px;overflow:auto}.result{display:flex;flex-direction:column;gap:6px;text-align:left}.thumb-img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:8px;background:var(--surface-2)}.thumb-icon{width:100%;aspect-ratio:4/3;border-radius:8px;background:var(--surface-2);display:grid;place-items:center;color:var(--text-2)}.empty-state{flex:1;display:grid;place-content:center;text-align:center}.empty-state p{margin:2px}.comment-row{display:flex;gap:10px;text-align:left;padding:10px 6px;border-radius:8px;width:100%;font-size:14px}.comment-row:hover{background:var(--surface-2)}.comment-row.resolved{opacity:.55}.check{margin-bottom:8px}.comment-thread{position:fixed;z-index:22;width:320px;display:flex;flex-direction:column;max-height:360px}.thread-head{display:flex;justify-content:space-between;align-items:center;padding:6px 6px 4px 12px}.thread-head .icon-btn{width:28px;height:28px}.thread-list{overflow:auto;padding:0 12px;display:flex;flex-direction:column;gap:12px}.thread-msg{display:flex;gap:8px}.msg-text{font-size:14px;white-space:pre-wrap;word-break:break-word;margin-top:2px}.thread-compose{display:flex;align-items:flex-end;gap:6px;padding:10px 12px 12px}.thread-compose textarea{flex:1;resize:none;border:1px solid var(--border);background:var(--surface-2);border-radius:8px;padding:8px 10px;outline:none;font-size:14px;max-height:120px}.send-btn{width:30px;height:30px;border-radius:50%;background:var(--text);color:var(--surface);display:grid;place-items:center;flex:none}.toasts{position:fixed;bottom:92px;left:50%;transform:translate(-50%);z-index:50;display:flex;flex-direction:column;gap:6px;align-items:center;pointer-events:none}.toast{background:#27272a;color:#fff;padding:8px 14px;border-radius:8px;font-size:13px;box-shadow:var(--shadow);max-width:80vw;overflow-wrap:anywhere}.toast.error{background:var(--danger)}@media(max-width:640px){.side-panel{width:100%}.popover{left:14px;right:14px;width:auto}.left-rail{top:auto;bottom:18px;transform:none;flex-direction:row}.dock-wrap{left:auto;right:62px;transform:none}}.dock-btn.live{color:#fff;background:#d6413f}.dock-btn.live:hover{background:#c0392f;color:#fff}.live-strip{position:fixed;top:14px;left:50%;transform:translate(-50%);z-index:21;display:flex;gap:8px;max-width:calc(100vw - 360px);overflow-x:auto;padding:4px}.live-tile{position:relative;width:120px;height:90px;border-radius:12px;overflow:hidden;background:#26262a;display:grid;place-items:center;flex:none;box-shadow:var(--shadow);outline:2px solid transparent;transition:outline-color .15s}.live-tile:not(.has-video){width:90px}.live-tile.speaking{outline-color:var(--ring, #4caf7a)}.live-tile .lk-video{width:100%;height:100%;display:block}.tile-label{position:absolute;left:6px;bottom:5px;display:flex;gap:3px;align-items:center;color:#fff;font-size:11px;background:#00000073;border-radius:6px;padding:1px 6px;max-width:calc(100% - 12px)}.tile-label span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tile-follow{position:absolute;top:5px;right:5px;width:22px;height:22px;border-radius:50%;background:#00000073;color:#fff;display:grid;place-items:center;opacity:0;transition:opacity .15s}.live-tile:hover .tile-follow,.tile-follow.on{opacity:1}.tile-follow.on{background:var(--accent)}.lk-video{width:100%;height:100%;background:#000;display:block}.item-stream .item-content{background:#111;border-radius:10px}.stream-item{position:relative;width:100%;height:100%}.stream-item .lk-video{pointer-events:none}.stream-label{position:absolute;top:8px;left:8px;z-index:1;display:flex;gap:6px;align-items:center;color:#fff;font-size:12px;background:#0000008c;border-radius:6px;padding:3px 8px}.live-dot{width:7px;height:7px;border-radius:50%;background:#ec4b3f;box-shadow:0 0 0 3px #ec4b3f4d}.stream-ended{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:#a1a1aa;font-size:14px}.stream-ended .btn-outline{color:#f4f4f5;border-color:#3f3f46}.stream-stop{position:absolute;right:8px;top:8px;background:#d6413f;color:#fff;border-radius:6px;padding:3px 9px;font-size:12px}.small-btn{padding:5px 10px;font-size:13px}.audio-unlock{position:fixed;top:116px;left:50%;transform:translate(-50%);z-index:22;padding:8px 14px;display:flex;gap:6px;align-items:center;font-size:13px}.presence-btn{border-radius:50%;padding:0}.presence-btn+.presence-btn{margin-left:-8px}.presence-btn.following .avatar{box-shadow:0 0 0 2px var(--surface),0 0 0 4px var(--ring)}.presence .avatar+.avatar{margin-left:0}.rec{color:#d6413f;display:inline-grid;animation:pulse 1.6s ease-in-out infinite}@keyframes pulse{50%{opacity:.45}}.follow-banner{position:fixed;bottom:92px;left:50%;transform:translate(-50%);z-index:22;background:var(--ring, var(--accent));color:#fff;padding:6px 8px 6px 12px;border-radius:999px;font-size:13px;display:flex;gap:8px;align-items:center;box-shadow:var(--shadow)}.follow-banner.self{--ring: #18181b;bottom:132px}.follow-banner button{background:#ffffff38;color:#fff;border-radius:999px;padding:2px 10px;font-size:12px}.follow-frame{position:fixed;inset:0;border:3px solid;pointer-events:none;z-index:19}.captions{position:fixed;bottom:140px;left:50%;transform:translate(-50%);z-index:21;max-width:min(720px,90vw);background:#000000b8;color:#fff;padding:8px 14px;border-radius:10px;font-size:15px;line-height:1.4;display:flex;flex-direction:column;gap:2px;pointer-events:none}.transcript{display:flex;flex-direction:column;gap:12px;margin-top:12px;font-size:14px}.seg-who{font-weight:600;font-size:13px}.browser-card{height:100%;display:flex;flex-direction:column;background:#fff;color:#18181b;border:1px solid #e2e2e6;border-radius:10px;overflow:hidden;box-shadow:0 1px 4px #0000001a}.browser-bar{display:flex;align-items:center;gap:8px;padding:4px 6px 4px 12px;border-bottom:1px solid #ececef;font-size:13px;background:#f7f7f8;min-height:36px}.browser-bar .icon-btn{width:28px;height:28px;color:#6b6b73}.url-input{width:100%;border:1px solid #d4d4d8;border-radius:6px;padding:4px 8px;outline:none;font-size:13px;background:#fff;color:#18181b}.browser-card iframe{flex:1;border:0;width:100%;background:#fff}.browser-empty{flex:1;display:grid;place-items:center;color:#6b6b73}.link-preview{flex:1;display:flex;flex-direction:column;text-decoration:none;color:inherit;min-height:0}.link-preview img{width:100%;flex:1;min-height:0;object-fit:cover;background:#f4f4f5}.lp-body{padding:10px 12px;display:grid;gap:3px}.lp-site{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:#6b6b73}.lp-title{font-weight:600;font-size:14px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.lp-desc{font-size:12px;color:#52525b;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.portal-card{position:relative;height:100%;border-radius:999px/60%;overflow:hidden;background:radial-gradient(ellipse at center,var(--portal-bg) 0%,var(--portal-bg) 45%,#18181b 100%);display:grid;place-items:center;box-shadow:0 6px 22px #00000040}.portal-ring{position:absolute;inset:8px;border-radius:inherit;border:2px dashed rgba(255,255,255,.6)}.portal-meta{position:relative;display:flex;flex-direction:column;align-items:center;gap:2px;background:#0000008c;color:#fff;padding:8px 16px;border-radius:12px;text-align:center}.portal-meta .label{color:#d4d4d8}.portal-name{font-weight:600;font-size:16px}.portal-enter{font-size:11px;color:#d4d4d8;display:inline-flex;gap:4px;align-items:center}.scope-chips{display:flex;gap:6px;margin-bottom:12px;flex-wrap:wrap}.scope-chips button{padding:4px 10px;border-radius:999px;background:var(--surface-2);font-size:12px;color:var(--text-2)}.scope-chips button.on{background:var(--text);color:var(--surface)}.devices-toggle{width:100%}@media(max-width:640px){.live-strip{max-width:calc(100vw - 200px);left:14px;transform:none}}.kernel-dock{position:fixed;left:14px;bottom:18px;z-index:23;display:flex;align-items:flex-end;gap:10px}.kernel-btn{position:relative;width:44px;height:44px;border-radius:50%;background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);display:grid;place-items:center;flex:none;color:var(--text)}.kernel-btn.busy{box-shadow:0 0 0 3px #7c5cff59,var(--shadow);animation:kpulse 1.4s ease-in-out infinite}@keyframes kpulse{50%{box-shadow:0 0 0 7px #7c5cff1f,var(--shadow)}}.kernel-unread{position:absolute;top:2px;right:2px;width:10px;height:10px;border-radius:50%;background:#7c5cff;border:2px solid var(--surface)}.kernel-panel{width:min(520px,calc(100vw - 86px));display:flex;flex-direction:column;overflow:hidden;border-radius:16px}.kernel-thread{max-height:min(46vh,420px);overflow:auto;padding:12px 14px 4px;display:flex;flex-direction:column;gap:12px}.kernel-day{text-align:center;font-size:12px;color:var(--text-2)}.kmsg{display:flex;gap:8px;align-items:flex-end;font-size:14px}.kmsg.user{justify-content:flex-end;flex-wrap:wrap}.kmsg.user .kname{width:100%;text-align:right}.kmsg.kernel{align-items:flex-start}.kname{font-size:12px;font-weight:600;margin-bottom:3px;color:var(--text-2)}.kmsg.kernel .kname{color:var(--text)}.kbubble{background:var(--surface-2);border-radius:12px;padding:8px 11px;line-height:1.45;white-space:pre-wrap;word-break:break-word;max-width:400px}.kmsg.user .kbubble{background:var(--surface-3)}.kbubble.error{background:color-mix(in srgb,var(--danger) 14%,transparent)}.kbubble.thinking{color:var(--text-2);display:flex;gap:8px;align-items:center}.ktime{font-size:10px;color:var(--text-2);margin-left:4px}.kavatar{width:26px;height:26px;border-radius:50%;background:var(--surface-2);display:grid;place-items:center;flex:none}.kactions{display:flex;flex-wrap:wrap;gap:4px;margin-top:5px}.kactions span{font-size:11px;padding:2px 8px;border-radius:999px;background:#7c5cff1f;color:#6a4cf0}:root[data-theme=dark] .kactions span{color:#b3a3ff}.dots{display:inline-flex;gap:3px}.dots i{width:5px;height:5px;border-radius:50%;background:#7c5cff;animation:kdot 1s infinite ease-in-out}.dots i:nth-child(2){animation-delay:.15s}.dots i:nth-child(3){animation-delay:.3s}@keyframes kdot{50%{opacity:.25;transform:translateY(-2px)}}.kernel-note{padding:8px 14px 0;color:var(--text-2)}.kernel-input{display:flex;align-items:center;gap:6px;padding:8px 8px 8px 16px}.kernel-input input{flex:1;min-width:0;border:0;background:transparent;outline:none;font-size:14px;padding:8px 0}.mic-btn{width:34px;height:34px;border-radius:50%;background:var(--text);color:var(--surface);display:grid;place-items:center;flex:none}.mic-btn.on{background:#d6413f;color:#fff;animation:pulse 1.2s infinite}.kernel-avatar{background:var(--surface-2)}body:has(.kernel-dock.open) .dock-wrap{left:auto;right:62px;transform:none}@media(max-width:640px){.kernel-dock{bottom:74px}}.spinner{width:18px;height:18px;border-radius:50%;border:2px solid currentColor;border-right-color:transparent;animation:spin .7s linear infinite;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.person-tile{position:relative;width:100%;height:100%;border-radius:inherit;overflow:hidden;background:#26262a;box-shadow:0 0 0 0 transparent;transition:box-shadow .15s}.item-stream:has(.person-tile) .item-content{border-radius:16px;box-shadow:0 4px 16px #00000040}.person-tile.speaking:after{content:"";position:absolute;inset:0;border-radius:inherit;box-shadow:inset 0 0 0 calc(3px / var(--z)) var(--ring, #4caf7a);pointer-events:none}.person-tile .lk-video{width:100%;height:100%;object-fit:cover;pointer-events:none}.person-avatar{width:100%;height:100%;display:grid;place-items:center}.person-tile .tile-label{font-size:12px}.person-tile:hover .tile-follow,.person-tile .tile-follow.on{opacity:1}.person-tile.gone{opacity:.6}.tile-remove{position:absolute;top:6px;right:6px;background:#0000008c;color:#fff;font-size:11px;border-radius:6px;padding:2px 8px}
