:root{--font: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;font-family:var(--font);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;--safe-t: env(safe-area-inset-top, 0px);--safe-b: env(safe-area-inset-bottom, 0px);--safe-l: env(safe-area-inset-left, 0px);--safe-r: env(safe-area-inset-right, 0px)}.app[data-theme=dark]{--bg-0: #0b0d12;--bg-1: #0f131a;--dot: rgba(255, 255, 255, .07);--surface: rgba(22, 26, 36, .74);--surface-solid: #161a23;--surface-2: #1c2230;--surface-hover: rgba(38, 45, 58, .9);--border: rgba(255, 255, 255, .09);--border-strong: rgba(255, 255, 255, .16);--text: #e7eaf0;--text-dim: #9aa3b2;--text-faint: #808b9e;--shadow: 0 1px 2px rgba(0, 0, 0, .4), 0 12px 30px -8px rgba(0, 0, 0, .6);--shadow-lg: 0 2px 6px rgba(0, 0, 0, .45), 0 28px 60px -12px rgba(0, 0, 0, .7);--glass-blur: blur(20px) saturate(1.4);--accent-brand: 99 102 241;--code-kw: #c792ea;--code-str: #c3e88d;--code-num: #f78c6c;--code-fn: #82aaff;--code-attr: #ffcb6b;--code-var: #f07178;--code-comment: #6b7488}.app[data-theme=light]{--bg-0: #eef1f6;--bg-1: #f6f8fc;--dot: rgba(20, 30, 60, .1);--surface: rgba(255, 255, 255, .8);--surface-solid: #ffffff;--surface-2: #f1f4fa;--surface-hover: rgba(15, 23, 42, .06);--border: rgba(15, 23, 42, .1);--border-strong: rgba(15, 23, 42, .18);--text: #1a2030;--text-dim: #5b6577;--text-faint: #6b7488;--shadow: 0 1px 2px rgba(20, 30, 60, .08), 0 12px 28px -10px rgba(20, 30, 60, .22);--shadow-lg: 0 2px 8px rgba(20, 30, 60, .1), 0 30px 60px -16px rgba(20, 30, 60, .3);--glass-blur: blur(20px) saturate(1.6);--accent-brand: 79 70 229;--code-kw: #9333ea;--code-str: #15803d;--code-num: #c2410c;--code-fn: #1d4ed8;--code-attr: #b45309;--code-var: #b91c1c;--code-comment: #94a3b8}[data-color=slate]{--accent: 148 161 184}[data-color=rose]{--accent: 251 105 170}[data-color=red]{--accent: 249 82 82}[data-color=orange]{--accent: 252 133 56}[data-color=amber]{--accent: 249 191 47}[data-color=lime]{--accent: 134 222 58}[data-color=emerald]{--accent: 33 209 138}[data-color=cyan]{--accent: 32 205 224}[data-color=sky]{--accent: 66 165 252}[data-color=indigo]{--accent: 116 122 252}[data-color=violet]{--accent: 166 116 252}[data-color=fuchsia]{--accent: 233 95 240}*{box-sizing:border-box}html,body,#root{height:100%;margin:0;padding:0}body{overflow:hidden;overscroll-behavior:none}.desktop-only{display:inherit}.app{position:fixed;top:0;right:0;bottom:0;left:0;background:radial-gradient(1200px 800px at 80% -10%,rgba(var(--accent-brand) / .1),transparent 60%),radial-gradient(1000px 700px at -10% 110%,rgba(var(--accent-brand) / .08),transparent 55%),linear-gradient(160deg,var(--bg-1),var(--bg-0));color:var(--text);-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}.note-body,.note-title,.board-rename,.palette-input input{-webkit-touch-callout:default;-webkit-user-select:text;user-select:text}.canvas{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;cursor:grab;touch-action:none}.canvas:active{cursor:grabbing}.world{position:absolute;top:0;left:0;transform-origin:0 0}.pinned-layer{position:absolute;top:0;right:0;bottom:0;left:0;z-index:30;pointer-events:none}.pinned-layer .note{pointer-events:auto}.note.pinned{box-shadow:var(--shadow-lg),0 0 0 1px rgb(var(--accent-brand) / .3)}.note.pinned.selected{box-shadow:var(--shadow-lg),0 0 0 2px rgb(var(--accent-brand) / .6)}.marquee{position:absolute;z-index:35;border:1.5px solid rgb(var(--accent-brand));background:rgb(var(--accent-brand) / .12);border-radius:4px;pointer-events:none}.frame{position:absolute;border-radius:18px;border:1.5px solid rgb(var(--accent) / .5);background:rgb(var(--accent) / .05);pointer-events:none}.frame-header{position:absolute;top:0;left:0;right:0;height:30px;display:flex;align-items:center;gap:4px;padding:0 6px 0 13px;pointer-events:auto;cursor:grab}.frame-header:active{cursor:grabbing}.frame-title{flex:1;min-width:0;border:none;background:transparent;color:rgb(var(--accent));font-family:var(--font);font-size:13px;font-weight:700;letter-spacing:-.01em;outline:none;padding:2px 0}.frame-title::placeholder{color:var(--text-faint)}.frame .icon-btn{flex:none}.selbar{position:fixed;bottom:calc(20px + var(--safe-b));left:50%;transform:translate(-50%);z-index:60;display:flex;align-items:center;gap:6px;padding:7px 8px 7px 15px;border-radius:14px;max-width:calc(100vw - 20px)}.selbar-count{font-size:13px;font-weight:600;color:var(--text-dim);margin-right:2px;white-space:nowrap}.selbar-btn{display:flex;align-items:center;gap:6px;height:34px;padding:0 12px;border:none;border-radius:10px;background:var(--surface-hover);color:var(--text);font-family:var(--font);font-size:13px;font-weight:550;cursor:pointer;white-space:nowrap;transition:background .15s ease}.selbar-btn:hover{background:var(--border-strong)}.selbar-btn svg{flex:none;color:var(--text-dim)}.selbar-btn.danger{color:#fb7185}.selbar-btn.danger svg{color:#fb7185}.selbar-btn.danger:hover{background:#f43f5e29}.present-bar{position:fixed;bottom:calc(20px + var(--safe-b));left:50%;transform:translate(-50%);z-index:70;display:flex;align-items:center;gap:4px;padding:6px 8px;border-radius:14px}.present-count{font-size:14px;font-weight:650;color:var(--text-dim);min-width:56px;text-align:center;white-space:nowrap;font-variant-numeric:tabular-nums}.present-nav,.present-exit{display:flex;align-items:center;justify-content:center;width:38px;height:38px;border:none;border-radius:10px;background:var(--surface-hover);color:var(--text);cursor:pointer;transition:background .15s ease}.present-nav:hover,.present-exit:hover{background:var(--border-strong)}.present-exit{margin-left:4px;color:var(--text-dim)}.note{position:absolute;display:flex;flex-direction:column;border-radius:16px;background:linear-gradient(90deg,rgb(var(--accent) / .9),rgb(var(--accent) / .35)) top / 100% 3px no-repeat,linear-gradient(180deg,rgb(var(--accent) / .14),rgb(var(--accent) / .04)),var(--surface-solid);border:1px solid var(--border);box-shadow:var(--shadow);overflow:hidden;transition:box-shadow .22s ease,border-color .22s ease;animation:note-in .26s cubic-bezier(.16,1,.3,1)}@keyframes note-in{0%{opacity:0;transform:scale(.94) translateY(6px)}}.note.selected{border-color:rgb(var(--accent) / .7);box-shadow:var(--shadow-lg),0 0 0 1px rgb(var(--accent) / .45)}.note.dragging{transition:none;cursor:grabbing;z-index:9999!important}.note.snapping{transition:left .28s cubic-bezier(.16,1,.3,1),top .28s cubic-bezier(.16,1,.3,1),box-shadow .22s ease,border-color .22s ease}.note.highlighted{animation:note-pulse 1.3s ease}@keyframes note-pulse{0%,to{box-shadow:var(--shadow)}30%{box-shadow:var(--shadow-lg),0 0 0 4px rgb(var(--accent) / .5)}}.note.collapsed{height:auto!important;padding-bottom:12px}.note.collapsed .note-content{display:none}.note.locked{border-style:dashed}.note.locked .note-grip{cursor:default}.note.locked .grip-bar{opacity:.45}.note.locked:hover .grip-bar,.note.locked.selected .grip-bar{width:28px}.note.readonly .note-grip{cursor:default}.note.readonly .note-grip .grip-bar{opacity:0}.note.readonly .note-md{cursor:default}.note.has-author{overflow:visible}.note-author{position:absolute;top:100%;left:8px;margin-top:7px;display:flex;align-items:center;gap:6px;max-width:calc(100% - 16px);padding:3px 10px 3px 3px;background:var(--surface);border:1px solid var(--border);border-radius:999px;box-shadow:var(--shadow);pointer-events:none;z-index:3}.note-author img,.note-author-initial{width:20px;height:20px;border-radius:50%;flex:none;object-fit:cover;display:grid;place-items:center;background:rgb(var(--accent-brand) / .22);color:var(--text);font-size:11px;font-weight:700}.note-author-name{font-size:12px;font-weight:600;color:var(--text-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.note-dot.as-static{cursor:default;background:rgb(var(--accent) / .9)}.note-grip{position:relative;flex:none;height:20px;display:grid;place-items:center;cursor:grab;touch-action:none;background:transparent;z-index:2}.note-grip:active,.note.dragging .note-grip{cursor:grabbing}.grip-bar{width:28px;height:4px;border-radius:3px;background:rgb(var(--accent) / .45);transition:width .16s ease,background .16s ease}.note:hover .grip-bar,.note.selected .grip-bar{width:40px;background:rgb(var(--accent) / .75)}.note-header{display:flex;align-items:center;gap:8px;padding:5px 8px 5px 13px;flex:none;cursor:default}.note-dot{flex:none;width:13px;height:13px;border-radius:50%;border:none;background:rgb(var(--accent));box-shadow:0 0 0 3px rgb(var(--accent) / .18);cursor:pointer;transition:transform .15s ease}.note-dot:hover{transform:scale(1.18)}.note-title-wrap{position:relative;flex:1;min-width:0;display:flex;align-items:center}.note-title{flex:1;min-width:0;border:none;background:transparent;color:var(--text);caret-color:var(--text);font-size:16.5px;font-weight:650;letter-spacing:-.01em;outline:none;padding:2px 0}.note-title::placeholder{color:var(--text-faint);font-weight:500}.note-title.masked{color:transparent}.note-title-md{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;overflow:hidden;pointer-events:none}.note-title-md-inner{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--text);font-size:16.5px;font-weight:650;letter-spacing:-.01em}.note-title-md a.note-tag{pointer-events:auto;cursor:pointer;text-decoration:none;background:rgb(var(--accent) / .14);border-radius:6px;padding:0 5px;font-weight:650;white-space:nowrap}.note-title-md a.note-tag:hover{background:rgb(var(--accent) / .26)}.note-actions{display:flex;gap:2px;opacity:0;transition:opacity .16s ease}.note:hover .note-actions,.note.selected .note-actions{opacity:1}.icon-btn{display:grid;place-items:center;width:28px;height:28px;border:none;border-radius:8px;background:transparent;color:var(--text-dim);cursor:pointer;transition:background .15s ease,color .15s ease}.icon-btn:hover{background:var(--surface-hover);color:var(--text)}.icon-btn.active{color:rgb(var(--accent-brand))}.icon-btn.active:hover{color:rgb(var(--accent-brand));background:rgb(var(--accent-brand) / .12)}.note-content{position:relative;flex:1;min-height:0}.note-body{position:absolute;top:0;right:0;bottom:0;left:0;resize:none;border:none;background:transparent;color:var(--text);font-family:var(--font);font-size:calc(15px * var(--note-scale, 1));line-height:1.6;padding:2px 16px 16px;outline:none;overflow-y:auto;-webkit-user-select:text;user-select:text;touch-action:pan-y;-webkit-overflow-scrolling:touch;opacity:0;pointer-events:none}.note-body::placeholder{color:var(--text-faint)}.note.editing .note-body{opacity:1;pointer-events:auto}.note-md{position:absolute;top:0;right:0;bottom:0;left:0;overflow-y:auto;padding:2px 16px 16px;font-size:calc(15px * var(--note-scale, 1));line-height:1.6;color:var(--text);cursor:text;word-break:break-word;touch-action:pan-y;-webkit-overflow-scrolling:touch}.note.editing .note-md{opacity:0;pointer-events:none}.note-md.note-empty{color:var(--text-faint)}.note-md>*:first-child{margin-top:0}.note-md>*:last-child{margin-bottom:0}.note-md p,.note-md li{white-space:pre-wrap}.note-md p{margin:0}.note-md h1,.note-md h2,.note-md h3{margin:.6em 0 .3em;line-height:1.25;letter-spacing:-.01em}.note-md h1{font-size:1.35em}.note-md h2{font-size:1.18em}.note-md h3{font-size:1.05em}.note-md ul,.note-md ol{margin:.3em 0;padding-left:1.3em}.note-md li{margin:.15em 0}.note-md li::marker{color:rgb(var(--accent))}.note-md a{color:rgb(var(--accent));text-decoration:underline;text-underline-offset:2px}.note-md a.note-tag{text-decoration:none;background:rgb(var(--accent) / .14);border-radius:6px;padding:0 5px;font-weight:600;cursor:pointer;white-space:nowrap}.note-md a.note-tag:hover{background:rgb(var(--accent) / .26)}.note-md code{font-family:var(--mono);font-size:.88em;background:var(--surface-2);padding:.1em .4em;border-radius:5px}.note-md pre{background:var(--surface-2);padding:10px 12px;border-radius:9px;overflow-x:auto;margin:.5em 0}.note-md pre code{background:none;padding:0}.note-md .hljs-comment,.note-md .hljs-quote{color:var(--code-comment);font-style:italic}.note-md .hljs-keyword,.note-md .hljs-selector-tag,.note-md .hljs-literal,.note-md .hljs-section,.note-md .hljs-doctag{color:var(--code-kw)}.note-md .hljs-string,.note-md .hljs-meta .hljs-string,.note-md .hljs-regexp,.note-md .hljs-addition{color:var(--code-str)}.note-md .hljs-number,.note-md .hljs-built_in,.note-md .hljs-literal.hljs-number{color:var(--code-num)}.note-md .hljs-title,.note-md .hljs-title.function_,.note-md .hljs-name,.note-md .hljs-type,.note-md .hljs-selector-id,.note-md .hljs-selector-class{color:var(--code-fn)}.note-md .hljs-attr,.note-md .hljs-attribute,.note-md .hljs-symbol,.note-md .hljs-meta{color:var(--code-attr)}.note-md .hljs-variable,.note-md .hljs-template-variable,.note-md .hljs-tag,.note-md .hljs-deletion{color:var(--code-var)}.note-md .hljs-emphasis{font-style:italic}.note-md .hljs-strong{font-weight:700}.note-md blockquote{margin:.5em 0;padding:.1em 0 .1em .9em;border-left:3px solid rgb(var(--accent) / .5);color:var(--text-dim)}.note-md hr{border:none;border-top:1px solid var(--border);margin:.8em 0}.note-md img{max-width:100%;height:auto;border-radius:8px;margin:.3em 0;display:block}.note-md table{border-collapse:collapse;margin:.5em 0;font-size:.95em;display:block;overflow-x:auto}.note-md th,.note-md td{border:1px solid var(--border-strong);padding:4px 9px;text-align:left}.note-md th{background:var(--surface-2);font-weight:650}.note-md ul:has(input[type=checkbox]){list-style:none;padding-left:.2em}.note-md li:has(input[type=checkbox]){display:flex;align-items:flex-start;gap:.5em}.note-md input[type=checkbox]{margin-top:.28em;width:15px;height:15px;accent-color:rgb(var(--accent));cursor:pointer}.note-md::-webkit-scrollbar,.note-body::-webkit-scrollbar{width:8px}.note-md::-webkit-scrollbar-thumb,.note-body::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:8px}.note-images{position:absolute;top:0;right:0;bottom:0;left:0;z-index:3;overflow:hidden;pointer-events:none}.note-image{position:absolute;border-radius:10px;overflow:hidden;box-shadow:0 1px 4px #00000040,0 0 0 1px var(--border);pointer-events:none}.note-image img{width:100%;height:100%;object-fit:cover;display:block;-webkit-user-drag:none;-webkit-user-select:none;user-select:none}.note-image-loading{width:100%;height:100%;background:linear-gradient(110deg,var(--surface-2) 30%,var(--surface-hover) 50%,var(--surface-2) 70%);background-size:220% 100%;animation:img-shimmer 1.1s ease-in-out infinite}@keyframes img-shimmer{0%{background-position:180% 0}to{background-position:-80% 0}}.note.editing .note-image{pointer-events:auto;cursor:grab;touch-action:none}.note.editing .note-image:active{cursor:grabbing}.note.editing .note-image:hover{box-shadow:0 3px 12px #00000052,0 0 0 2px rgb(var(--accent-brand) / .7)}.img-del{position:absolute;top:5px;right:5px;display:none;place-items:center;width:24px;height:24px;padding:0;border:none;border-radius:50%;background:#0c0f16bd;color:#fff;cursor:pointer;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);transition:background .14s ease,transform .12s ease}.note.editing .note-image:hover .img-del{display:grid}.img-del:hover{background:#ef4444;transform:scale(1.08)}.resize-handle{position:absolute;z-index:5;touch-action:none}.rz-t,.rz-b{left:14px;right:14px;height:8px;cursor:ns-resize}.rz-l,.rz-r{top:14px;bottom:14px;width:8px;cursor:ew-resize}.rz-t{top:0}.rz-b{bottom:0}.rz-l{left:0}.rz-r{right:0}.rz-tl,.rz-tr,.rz-bl,.rz-br{width:16px;height:16px;z-index:6}.rz-tl{top:0;left:0;cursor:nwse-resize}.rz-tr{top:0;right:0;cursor:nesw-resize}.rz-bl{bottom:0;left:0;cursor:nesw-resize}.rz-br{bottom:0;right:0;cursor:nwse-resize}.rz-br:after{content:"";position:absolute;right:4px;bottom:4px;width:8px;height:8px;border-right:2px solid var(--text-faint);border-bottom:2px solid var(--text-faint);border-bottom-right-radius:3px;opacity:0;transition:opacity .16s ease}.note:hover .rz-br:after,.note.selected .rz-br:after{opacity:1}.connect-handle{position:absolute;bottom:4px;left:50%;transform:translate(-50%);width:14px;height:14px;padding:0;border-radius:50%;border:2px solid var(--surface-solid);background:rgb(var(--accent-brand));box-shadow:0 1px 4px #0000004d;cursor:crosshair;z-index:7;display:none}.connections{pointer-events:none}.conn-line{fill:none;stroke:rgb(var(--accent-brand) / .7);stroke-width:2;stroke-linecap:round;stroke-linejoin:round;transition:stroke-width .12s ease}.conn-line.pending{stroke:rgb(var(--accent-brand));stroke-dasharray:6 5}.conn-hit{fill:none;stroke:transparent;stroke-width:22;pointer-events:stroke;cursor:pointer}.conn:hover .conn-line{stroke-width:3.5}@media(hover:none){.connect-handle{display:block;width:16px;height:16px}}.app.drawing .note,.app.drawing .frame,.app.drawing .connections,.app.drawing .pinned-layer{pointer-events:none}.app.drawing .canvas{cursor:none}.draw-layer{pointer-events:none;z-index:100000}.stroke{fill:none;stroke-linecap:round;stroke-linejoin:round}.stroke[data-tool=marker]{opacity:.4}.draw-cursor{position:fixed;left:0;top:0;border-radius:50%;border:1.5px solid var(--text-dim);box-shadow:0 0 0 1px #00000047;pointer-events:none;z-index:65}.draw-cursor[data-tool=eraser]{border-style:dashed;background:#7f7f7f1f}@media(hover:none){.draw-cursor{display:none!important}}.drawbar{position:fixed;bottom:calc(20px + var(--safe-b));left:50%;transform:translate(-50%);z-index:60;display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:6px;padding:7px 9px;border-radius:16px;max-width:calc(100vw - 20px)}.draw-group{display:flex;align-items:center;gap:3px}.draw-sep{width:1px;height:24px;background:var(--border);margin:0 2px;flex:none}.draw-tool{display:grid;place-items:center;width:38px;height:38px;border:none;border-radius:10px;background:transparent;color:var(--text-dim);cursor:pointer;transition:background .15s ease,color .15s ease}.draw-tool:hover{background:var(--surface-hover);color:var(--text)}.draw-tool.active{background:rgb(var(--accent-brand) / .16);color:rgb(var(--accent-brand))}.draw-tool:disabled{opacity:.35;cursor:default}.draw-tool:disabled:hover{background:transparent;color:var(--text-dim)}.draw-tool.danger:hover{background:#f43f5e29;color:#fb7185}.draw-size{display:grid;place-items:center;width:34px;height:38px;border:none;border-radius:10px;background:transparent;color:var(--text-dim);cursor:pointer;transition:background .15s ease}.draw-size:hover{background:var(--surface-hover)}.draw-size.active{background:rgb(var(--accent-brand) / .16)}.draw-size-dot{display:block;border-radius:50%;box-shadow:0 0 0 1px var(--border)}.draw-colors{display:grid;grid-template-columns:repeat(9,auto);justify-content:center;align-content:center;gap:5px}.draw-swatch{width:22px;height:22px;padding:0;border-radius:50%;border:2px solid transparent;box-shadow:inset 0 0 0 1px var(--border),0 1px 3px #00000040;cursor:pointer;transition:transform .12s ease,border-color .12s ease}.draw-swatch:hover{transform:scale(1.15)}.draw-swatch.active{border-color:var(--text)}.draw-done{display:flex;align-items:center;gap:7px;height:38px;padding:0 14px;border:none;border-radius:10px;background:rgb(var(--accent-brand));color:#fff;font-family:var(--font);font-size:13px;font-weight:600;cursor:pointer;box-shadow:0 4px 14px rgb(var(--accent-brand) / .4);transition:background .15s ease}.draw-done:hover{background:rgb(var(--accent-brand) / .88)}.tool-btn.active{background:rgb(var(--accent-brand) / .16);color:rgb(var(--accent-brand))}.tool-btn.active:hover{background:rgb(var(--accent-brand) / .22);color:rgb(var(--accent-brand))}.color-pop{position:absolute;top:56px;left:10px;z-index:5;display:grid;grid-template-columns:repeat(4,1fr);gap:7px;padding:9px;border-radius:12px;background:var(--surface-solid);border:1px solid var(--border);box-shadow:var(--shadow-lg);animation:pop-in .16s ease}@keyframes pop-in{0%{opacity:0;transform:translateY(-4px) scale(.96)}}.swatch{width:22px;height:22px;border-radius:50%;border:2px solid transparent;background:rgb(var(--accent));cursor:pointer;transition:transform .12s ease,border-color .12s ease}.swatch:hover{transform:scale(1.15)}.swatch.active{border-color:var(--text)}.fs-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:#00000080;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:grid;place-items:center;animation:fade-in .2s ease;padding:calc(28px + var(--safe-t)) 28px calc(28px + var(--safe-b))}@keyframes fade-in{0%{opacity:0}}.note.fullscreen{position:relative;width:min(880px,94vw);height:min(84vh,920px);animation:fs-in .26s cubic-bezier(.16,1,.3,1)}@keyframes fs-in{0%{opacity:0;transform:scale(.96)}}.note.fullscreen .note-title,.note.fullscreen .note-title-md-inner{font-size:21px}.note.fullscreen .note-md,.note.fullscreen .note-body{font-size:calc(17px * var(--note-scale, 1));line-height:1.7}.toolbar,.context-menu,.palette,.archive-panel,.settings-panel,.archive-btn,.minimap,.chat-panel,.toast{background:var(--surface);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border:1px solid var(--border);box-shadow:var(--shadow-lg)}.toolbar{position:fixed;top:calc(14px + var(--safe-t));left:50%;transform:translate(-50%);z-index:50;display:flex;align-items:center;gap:5px;padding:7px;border-radius:16px;max-width:calc(100vw - 20px)}.brand{display:flex;align-items:center;gap:9px;padding:0 8px 0 5px;font-weight:700;font-size:14px;letter-spacing:-.02em}.brand-logo{display:grid;place-items:center;width:28px;height:28px;border-radius:9px;background:linear-gradient(140deg,rgb(var(--accent-brand)),rgb(var(--accent-brand) / .6));color:#fff;box-shadow:0 4px 12px rgb(var(--accent-brand) / .4)}.divider{width:1px;height:22px;background:var(--border);margin:0 2px;flex:none}.tool-btn{display:flex;align-items:center;gap:7px;height:36px;padding:0 11px;border:none;border-radius:10px;background:transparent;color:var(--text-dim);font-family:var(--font);font-size:13px;font-weight:550;cursor:pointer;transition:background .15s ease,color .15s ease,opacity .15s ease}.tool-btn:hover{background:var(--surface-hover);color:var(--text)}.tool-btn:disabled{opacity:.35;cursor:default}.tool-btn:disabled:hover{background:transparent;color:var(--text-dim)}.tool-btn.primary{background:rgb(var(--accent-brand));color:#fff;box-shadow:0 4px 14px rgb(var(--accent-brand) / .4)}.tool-btn.primary:hover{background:rgb(var(--accent-brand) / .88);color:#fff}.tool-btn.icon-only{padding:0;width:36px;justify-content:center}.zoom-label{min-width:46px;text-align:center;font-size:12.5px;font-weight:600;color:var(--text-dim);font-variant-numeric:tabular-nums;cursor:pointer;border-radius:8px;padding:6px 4px;transition:background .15s ease}.zoom-label:hover{background:var(--surface-hover);color:var(--text)}.auth-wrap{position:fixed;top:calc(14px + var(--safe-t));right:calc(14px + var(--safe-r));z-index:60}.auth-btn{position:fixed;top:calc(14px + var(--safe-t));right:calc(14px + var(--safe-r));z-index:60;display:flex;align-items:center;gap:8px;height:40px;padding:0 14px;border:1px solid var(--border);border-radius:13px;background:var(--surface);color:var(--text);font-family:var(--font);font-size:13px;font-weight:600;cursor:pointer;transition:background .15s ease}.auth-btn:hover{background:var(--surface-hover)}.auth-btn svg{color:rgb(var(--accent-brand))}.archive-btn{position:fixed;top:calc(14px + var(--safe-t));left:calc(14px + var(--safe-l));z-index:60;display:flex;align-items:center;gap:7px;height:40px;padding:0 14px;border-radius:13px;color:var(--text);font-family:var(--font);font-size:13px;font-weight:600;cursor:pointer;transition:background .15s ease}.archive-btn:hover{background:var(--surface-hover)}.archive-btn svg{color:var(--text-dim);flex:none}.archive-badge{display:grid;place-items:center;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:rgb(var(--accent-brand));color:#fff;font-size:11px;font-weight:700;font-variant-numeric:tabular-nums}.auth-avatar{display:grid;place-items:center;width:40px;height:40px;padding:0;border:1px solid var(--border);border-radius:50%;background:var(--surface);cursor:pointer;overflow:hidden}.auth-avatar img,.auth-pop-head img{width:100%;height:100%;object-fit:cover}.sync-dot{position:absolute;right:-1px;bottom:-1px;width:12px;height:12px;border-radius:50%;border:2px solid var(--bg-1);pointer-events:none;z-index:1}.sync-dot.ok{background:#34d399}.sync-dot.error{background:#f59e0b}.sync-dot.error{animation:sync-pulse 1.4s ease-in-out infinite}@keyframes sync-pulse{50%{opacity:.35}}.auth-initial{display:grid;place-items:center;width:100%;height:100%;background:linear-gradient(140deg,rgb(var(--accent-brand)),rgb(var(--accent-brand) / .6));color:#fff;font-weight:700;font-size:15px}.auth-pop{position:absolute;top:48px;right:0;width:244px;padding:7px;border-radius:14px;background:var(--surface);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border:1px solid var(--border);box-shadow:var(--shadow-lg);animation:pop-in .14s ease}.auth-pop-head{display:flex;align-items:center;gap:11px;padding:8px 9px 11px}.auth-pop-head img,.auth-pop-head .auth-initial{width:40px;height:40px;border-radius:50%;flex:none;overflow:hidden}.auth-pop-info{min-width:0;display:flex;flex-direction:column;gap:1px}.auth-pop-name{font-size:14px;font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.auth-pop-email{font-size:12px;color:var(--text-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.auth-pop-signout{display:flex;align-items:center;gap:9px;width:100%;padding:9px 10px;border:none;border-top:1px solid var(--border);border-radius:0 0 9px 9px;background:transparent;color:var(--text);font-family:var(--font);font-size:13.5px;font-weight:550;cursor:pointer;transition:background .12s ease}.auth-pop-signout:hover{background:var(--surface-hover)}.auth-pop-signout svg{color:var(--text-dim)}.board-trigger{display:flex;align-items:center;gap:8px;height:36px;padding:0 9px 0 5px;border:none;border-radius:11px;background:transparent;color:var(--text);font-family:var(--font);font-weight:700;font-size:14px;letter-spacing:-.02em;cursor:pointer;max-width:200px;transition:background .15s ease}.board-trigger:hover{background:var(--surface-hover)}.board-trigger-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.board-caret{color:var(--text-faint);flex:none}.boards-pop{position:fixed;z-index:200;width:282px;max-width:calc(100vw - 16px);padding:7px;border-radius:16px;background:var(--surface);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border:1px solid var(--border);box-shadow:var(--shadow-lg);transform-origin:top left;animation:pop-in .14s ease}.boards-head{padding:6px 10px 8px;font-size:11.5px;font-weight:600;color:var(--text-faint);text-transform:uppercase;letter-spacing:.05em}.boards-list{max-height:min(50vh,420px);overflow-y:auto;display:flex;flex-direction:column;gap:2px}.board-row{display:flex;align-items:center;gap:4px;padding:7px 6px 7px 4px;border-radius:9px;cursor:pointer;transition:background .12s ease}.board-row:hover{background:var(--surface-hover)}.board-row.active{background:rgb(var(--accent-brand) / .14)}.board-check{width:18px;flex:none;color:rgb(var(--accent-brand));display:grid;place-items:center}.board-name-text{flex:1;min-width:0;display:flex;align-items:center;gap:8px;font-size:14px;font-weight:550;color:var(--text);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.board-count{flex:none;font-size:11px;font-weight:600;color:var(--text-faint);background:var(--surface-2);padding:1px 7px;border-radius:20px}.board-rename{flex:1;min-width:0;border:1px solid var(--border-strong);border-radius:7px;background:var(--surface-solid);color:var(--text);font-family:var(--font);font-size:14px;font-weight:550;padding:4px 8px;outline:none}.board-row-actions{display:flex;gap:0;flex:none;opacity:0;transition:opacity .12s ease}.board-row:hover .board-row-actions,.board-row.active .board-row-actions{opacity:1}.boards-add{display:flex;align-items:center;gap:8px;width:100%;margin-top:5px;padding:9px 10px;border:none;border-radius:9px;cursor:pointer;background:transparent;color:rgb(var(--accent-brand));font-family:var(--font);font-size:13.5px;font-weight:600;transition:background .12s ease}.boards-add:hover{background:var(--surface-hover)}.icon-btn.danger:hover{background:#f43f5e29;color:#fb7185}.icon-btn:disabled{opacity:.3;cursor:default}.icon-btn:disabled:hover{background:transparent;color:var(--text-dim)}.context-menu{position:fixed;z-index:200;min-width:196px;padding:6px;border-radius:13px;transform-origin:top;animation:pop-in .13s ease}.menu-item{display:flex;align-items:center;gap:10px;width:100%;height:36px;padding:0 10px;border:none;border-radius:9px;background:transparent;color:var(--text);font-family:var(--font);font-size:13.5px;font-weight:500;cursor:pointer;text-align:left;white-space:nowrap;transition:background .12s ease}.menu-item:hover{background:var(--surface-hover)}.menu-item svg{color:var(--text-dim);flex:none}.menu-item span{flex:1}.menu-item kbd{font-family:var(--font);font-size:11px;color:var(--text-faint);background:var(--surface-2);padding:2px 6px;border-radius:5px}.menu-item.danger{color:#fb7185}.menu-item.danger svg{color:#fb7185}.menu-item.danger:hover{background:#f43f5e24}.menu-sep{height:1px;background:var(--border);margin:5px 6px}.menu-fontsize{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:3px 6px 3px 10px}.menu-fontsize-label{display:flex;align-items:center;gap:10px;font-size:13.5px;font-weight:500;color:var(--text);white-space:nowrap}.menu-fontsize-label svg{color:var(--text-dim);flex:none}.menu-stepper{display:flex;align-items:center;gap:1px;flex:none;background:var(--surface-2);border-radius:9px;padding:2px}.menu-step-btn{display:grid;place-items:center;width:26px;height:26px;border:none;border-radius:7px;background:transparent;color:var(--text);cursor:pointer;transition:background .12s ease}.menu-step-btn:hover{background:var(--surface-hover)}.menu-step-btn:disabled{opacity:.35;cursor:default}.menu-step-btn:disabled:hover{background:transparent}.menu-step-val{min-width:42px;text-align:center;font-size:12.5px;font-weight:600;color:var(--text);font-variant-numeric:tabular-nums}.palette-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:150;background:#0000006b;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;justify-content:center;align-items:flex-start;padding:calc(12vh + var(--safe-t)) 16px 16px;animation:fade-in .16s ease}.palette{width:min(560px,100%);border-radius:16px;overflow:hidden;animation:pop-in .18s ease}.palette-input{display:flex;align-items:center;gap:11px;padding:15px 16px;border-bottom:1px solid var(--border);color:var(--text-dim)}.palette-input input{flex:1;border:none;background:transparent;color:var(--text);font-family:var(--font);font-size:15.5px;outline:none}.palette-input input::placeholder{color:var(--text-faint)}.palette-input kbd{font-family:var(--font);font-size:11px;color:var(--text-faint);border:1px solid var(--border-strong);padding:2px 6px;border-radius:5px}.palette-list{max-height:min(52vh,440px);overflow-y:auto;padding:7px}.palette-item{display:flex;align-items:center;gap:11px;width:100%;padding:9px 11px;border:none;border-radius:10px;background:transparent;color:var(--text);cursor:pointer;text-align:left}.palette-item.active{background:var(--surface-hover)}.palette-dot{flex:none;width:12px;height:12px;border-radius:50%;background:rgb(var(--accent, 148 163 184));display:grid;place-items:center;color:#fff}.palette-dot.create{width:22px;height:22px;border-radius:7px;background:rgb(var(--accent-brand))}.palette-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.palette-title{font-size:14px;font-weight:550;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.palette-snippet{font-size:12px;color:var(--text-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.palette-enter{color:var(--text-faint);flex:none}.palette-board{flex:none;font-size:11px;font-weight:600;color:var(--text-dim);background:var(--surface-2);padding:2px 9px;border-radius:20px;max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.palette mark{background:rgb(var(--accent-brand) / .32);color:inherit;border-radius:3px;padding:0 1px}.palette-empty{display:flex;flex-direction:column;align-items:center;gap:8px;padding:34px;color:var(--text-faint);font-size:13.5px}.archive-panel{width:min(540px,100%);border-radius:16px;overflow:hidden;animation:pop-in .18s ease;display:flex;flex-direction:column;max-height:min(76vh,680px)}.archive-head{display:flex;align-items:baseline;flex-wrap:wrap;gap:6px 12px;padding:16px 18px 14px;border-bottom:1px solid var(--border)}.archive-head-title{display:flex;align-items:center;gap:9px;font-size:16px;font-weight:700;letter-spacing:-.01em;color:var(--text)}.archive-head-title svg{color:var(--text-dim)}.archive-head-count{font-size:12px;font-weight:700;color:var(--text-dim);background:var(--surface-2);padding:1px 8px;border-radius:20px}.archive-head-note{font-size:12px;color:var(--text-faint)}.archive-tools{display:flex;align-items:center;gap:9px;padding:10px 12px;border-bottom:1px solid var(--border)}.archive-search{flex:1;min-width:0;display:flex;align-items:center;gap:8px;height:36px;padding:0 10px;background:var(--surface-2);border-radius:10px}.archive-search>svg{flex:none;color:var(--text-dim)}.archive-search-input{flex:1;min-width:0;border:none;background:transparent;outline:none;font-family:var(--font);font-size:14px;color:var(--text)}.archive-search-input::placeholder{color:var(--text-faint)}.archive-search-clear{flex:none;display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border:none;border-radius:6px;background:transparent;color:var(--text-dim);cursor:pointer;transition:background .12s ease,color .12s ease}.archive-search-clear:hover{background:var(--surface-hover);color:var(--text)}.archive-view{flex:none;display:flex;gap:2px;padding:2px;background:var(--surface-2);border-radius:10px}.archive-view-btn{display:inline-flex;align-items:center;justify-content:center;width:34px;height:32px;border:none;border-radius:8px;background:transparent;color:var(--text-dim);cursor:pointer;transition:background .12s ease,color .12s ease}.archive-view-btn:hover{color:var(--text)}.archive-view-btn.active{background:rgb(var(--accent-brand) / .16);color:rgb(var(--accent-brand))}.archive-list{overflow-y:auto;padding:7px;display:flex;flex-direction:column;gap:2px}.archive-item{display:flex;align-items:center;gap:11px;padding:9px 10px;border-radius:11px;opacity:.74;transition:background .12s ease,opacity .12s ease}.archive-item:hover{background:var(--surface-hover);opacity:1}.archive-dot{flex:none;width:11px;height:11px;border-radius:50%;background:rgb(var(--accent, 148 163 184));filter:saturate(.6)}.archive-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.archive-title{font-size:14px;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.archive-snippet{font-size:12px;color:var(--text-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.archive-meta{display:flex;align-items:center;gap:8px;margin-top:1px}.archive-left{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:600;color:var(--text-faint)}.archive-left svg{flex:none}.archive-board{font-size:11px;font-weight:600;color:var(--text-dim);background:var(--surface-2);padding:1px 8px;border-radius:20px;max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.archive-actions{display:flex;align-items:center;gap:4px;flex:none}.archive-btn-act{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 11px;border:none;border-radius:9px;background:var(--surface-2);color:var(--text);font-family:var(--font);font-size:12.5px;font-weight:600;cursor:pointer;transition:background .12s ease,color .12s ease}.archive-btn-act svg{flex:none;color:var(--text-dim)}.archive-btn-act:hover{background:var(--surface-hover)}.archive-btn-act.danger{padding:0;width:32px;justify-content:center}.archive-btn-act.danger:hover{background:#f43f5e29;color:#fb7185}.archive-btn-act.danger:hover svg{color:#fb7185}.archive-empty{display:flex;flex-direction:column;align-items:center;gap:9px;padding:46px 24px;text-align:center;color:var(--text-faint)}.archive-empty>span:first-of-type{font-size:14px;font-weight:600;color:var(--text-dim)}.archive-empty-hint{font-size:12.5px}.archive-list.as-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:8px;align-content:start}.archive-list.as-grid .archive-empty{grid-column:1 / -1}.archive-list.as-grid .archive-item{position:relative;flex-direction:column;align-items:stretch;gap:7px;padding:12px 13px;background:var(--surface-2);border-radius:12px}.archive-list.as-grid .archive-item:hover{background:var(--surface-hover)}.archive-list.as-grid .archive-dot{position:absolute;top:13px;right:13px}.archive-list.as-grid .archive-title{white-space:normal;padding-right:16px}.archive-list.as-grid .archive-snippet{white-space:normal;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.archive-list.as-grid .archive-meta{flex-wrap:wrap}.archive-list.as-grid .archive-actions{margin-top:auto}.archive-list.as-grid .archive-btn-act:not(.danger){flex:1;justify-content:center}.minimap{position:fixed;left:calc(14px + var(--safe-l));bottom:calc(14px + var(--safe-b));z-index:40;width:196px;height:128px;border-radius:12px;overflow:hidden;cursor:pointer;touch-action:none}.mm-note{position:absolute;border-radius:2px;background:rgb(var(--accent) / .75)}.mm-view{position:absolute;border:1.5px solid rgb(var(--accent-brand));background:rgb(var(--accent-brand) / .14);border-radius:3px;pointer-events:none}.chat-fab{position:fixed;right:calc(16px + var(--safe-r));bottom:calc(16px + var(--safe-b));z-index:72;width:54px;height:54px;display:grid;place-items:center;border:none;border-radius:16px;color:#fff;cursor:pointer;background:linear-gradient(140deg,rgb(var(--accent-brand)),rgb(var(--accent-brand) / .78));box-shadow:0 8px 22px rgb(var(--accent-brand) / .45),var(--shadow);transition:transform .16s cubic-bezier(.16,1,.3,1),box-shadow .16s ease}.chat-fab:hover{transform:translateY(-2px) scale(1.04)}.chat-fab:active{transform:scale(.96)}.chat-fab-online{position:absolute;top:-5px;left:-7px;display:inline-flex;align-items:center;gap:4px;height:21px;padding:0 8px;border-radius:11px;background:var(--surface-solid);color:var(--text);font-size:11.5px;font-weight:700;font-variant-numeric:tabular-nums;border:1px solid var(--border);box-shadow:var(--shadow)}.chat-dot{width:7px;height:7px;border-radius:50%;background:#22c55e;box-shadow:0 0 0 3px #22c55e38}.chat-fab-badge{position:absolute;top:-5px;right:-5px;min-width:21px;height:21px;padding:0 6px;display:inline-flex;align-items:center;justify-content:center;border-radius:11px;background:#ef4444;color:#fff;font-size:11.5px;font-weight:700;border:2px solid var(--bg-0)}.chat-panel{position:fixed;right:calc(16px + var(--safe-r));bottom:calc(16px + var(--safe-b));z-index:90;width:340px;max-width:calc(100vw - 32px);height:462px;max-height:calc(100vh - 120px);display:flex;flex-direction:column;border-radius:18px;overflow:hidden;animation:chat-pop .18s cubic-bezier(.16,1,.3,1)}@keyframes chat-pop{0%{opacity:0;transform:translateY(14px) scale(.98)}}.chat-head{display:flex;align-items:center;gap:9px;padding:12px 11px 11px 14px;border-bottom:1px solid var(--border);flex:none}.chat-head-title{display:inline-flex;align-items:center;gap:7px;font-size:14px;font-weight:700;letter-spacing:-.01em}.chat-head-title svg{color:rgb(var(--accent-brand))}.chat-online{display:inline-flex;align-items:center;gap:5px;margin-left:auto;height:24px;padding:0 10px;border-radius:12px;background:var(--surface-2);color:var(--text-dim);font-size:12px;font-weight:650;font-variant-numeric:tabular-nums}.chat-online svg{color:#22c55e}.chat-x{display:grid;place-items:center;width:30px;height:30px;border:none;border-radius:9px;background:transparent;color:var(--text-dim);cursor:pointer;transition:background .15s ease,color .15s ease}.chat-x:hover{background:var(--surface-hover);color:var(--text)}.chat-body{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:13px 12px 8px;display:flex;flex-direction:column;gap:9px;-webkit-overflow-scrolling:touch}.chat-body::-webkit-scrollbar{width:8px}.chat-body::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:8px;border:2px solid transparent;background-clip:padding-box}.chat-msg{display:flex;gap:8px;align-items:flex-end;max-width:100%}.chat-msg.grouped{margin-top:-5px}.chat-msg.mine{flex-direction:row-reverse}.chat-ava,.chat-ava-spacer{width:28px;height:28px;flex:none}.chat-ava{border-radius:50%;object-fit:cover}.chat-ava-initial{display:grid;place-items:center;color:#fff;font-size:12px;font-weight:700}.chat-bubble-wrap{display:flex;flex-direction:column;gap:3px;min-width:0;max-width:80%}.chat-msg.mine .chat-bubble-wrap{align-items:flex-end}.chat-name{padding:0 4px;font-size:11px;font-weight:650;color:var(--text-dim)}.chat-bubble{display:flex;flex-wrap:wrap;align-items:baseline;gap:0 8px;padding:7px 11px;border-radius:15px 15px 15px 6px;background:var(--surface-2);border:1px solid var(--border);font-size:13.5px;line-height:1.42;color:var(--text)}.chat-msg.mine .chat-bubble{border-radius:15px 15px 6px;background:rgb(var(--accent-brand));border-color:transparent;color:#fff}.chat-text{flex:0 1 auto;min-width:0;white-space:pre-wrap;word-break:break-word;overflow-wrap:anywhere}.chat-time{flex:none;margin-left:auto;font-size:10px;color:var(--text-faint);transform:translateY(1px)}.chat-msg.mine .chat-time{color:#ffffffb8}.chat-empty,.chat-gate{margin:auto;text-align:center;color:var(--text-dim)}.chat-empty{padding:26px 18px;font-size:13px}.chat-gate{display:flex;flex-direction:column;align-items:center;gap:12px;padding:26px 20px}.chat-gate svg{color:rgb(var(--accent-brand));opacity:.85}.chat-gate p{margin:0;max-width:220px;font-size:13px;line-height:1.45}.chat-signin{display:inline-flex;align-items:center;gap:8px;height:38px;padding:0 16px;border:none;border-radius:11px;background:rgb(var(--accent-brand));color:#fff;font-family:var(--font);font-size:13px;font-weight:600;cursor:pointer;box-shadow:0 4px 14px rgb(var(--accent-brand) / .4);transition:background .15s ease}.chat-signin:hover{background:rgb(var(--accent-brand) / .9)}.chat-compose{display:flex;align-items:center;gap:8px;padding:10px;border-top:1px solid var(--border);flex:none}.chat-input{flex:1;min-width:0;height:40px;padding:0 14px;border:1px solid var(--border);border-radius:12px;background:var(--surface-2);color:var(--text);font-family:var(--font);font-size:14px;outline:none;transition:border-color .15s ease}.chat-input:focus{border-color:rgb(var(--accent-brand) / .6)}.chat-input::placeholder{color:var(--text-faint)}.chat-send{flex:none;width:40px;height:40px;display:grid;place-items:center;border:none;border-radius:12px;background:rgb(var(--accent-brand));color:#fff;cursor:pointer;transition:background .15s ease,opacity .15s ease,transform .1s ease}.chat-send:hover{background:rgb(var(--accent-brand) / .9)}.chat-send:active{transform:scale(.94)}.chat-send:disabled{opacity:.4;cursor:default}.chat-send:disabled:hover{background:rgb(var(--accent-brand))}.chat-cooldown{font-size:13px;font-weight:700;font-variant-numeric:tabular-nums}@media(max-width:680px){.chat-fab{width:50px;height:50px;right:calc(12px + var(--safe-r));bottom:calc(86px + var(--safe-b))}.chat-panel{right:calc(10px + var(--safe-r));left:calc(10px + var(--safe-l));bottom:calc(10px + var(--safe-b));width:auto;height:72vh;max-height:calc(100vh - 80px)}.chat-input{font-size:16px}}.app.drawing .chat-fab,.app.drawing .chat-panel{display:none}.toast{position:fixed;bottom:calc(20px + var(--safe-b));left:50%;transform:translate(-50%);z-index:210;padding:11px 18px;border-radius:12px;font-size:13.5px;font-weight:550;color:var(--text);animation:toast-in .24s cubic-bezier(.16,1,.3,1)}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,12px)}}.empty{position:fixed;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;pointer-events:none;z-index:1}.empty-card{text-align:center;color:var(--text-dim);animation:fade-in .5s ease}.empty-card h2{margin:18px 0 6px;font-size:20px;font-weight:700;color:var(--text);letter-spacing:-.02em}.empty-card p{margin:0;font-size:14px}.empty-icon{display:inline-grid;place-items:center;width:64px;height:64px;border-radius:20px;background:var(--surface);border:1px solid var(--border);color:rgb(var(--accent-brand));box-shadow:var(--shadow)}.kbd{display:inline-block;padding:2px 7px;margin:0 2px;border-radius:6px;background:var(--surface-solid);border:1px solid var(--border-strong);font-size:12px;font-weight:600;color:var(--text)}@media(hover:none){.note-actions,.board-row-actions{opacity:1}.note.editing .note-image .img-del{display:grid}.rz-t,.rz-b{height:14px}.rz-l,.rz-r{width:14px}.rz-tl,.rz-tr,.rz-bl,.rz-br{width:22px;height:22px}.rz-br:after{opacity:1}.note-grip{height:28px}.grip-bar{width:42px;height:5px}}.m-topbar,.m-bottombar{display:none}@media(max-width:680px){.desktop-only{display:none!important}.toolbar{display:none}.m-topbar{position:fixed;top:calc(8px + var(--safe-t));left:calc(62px + var(--safe-l));z-index:50;display:flex;max-width:calc(100vw - 140px - var(--safe-l) - var(--safe-r))}.m-topbar .board-trigger{height:44px;gap:8px;padding:0 11px 0 8px;border-radius:15px;background:var(--surface);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border:1px solid var(--border);box-shadow:var(--shadow-lg)}.m-topbar .board-trigger-name{max-width:40vw;font-size:14px;font-weight:600}.m-bottombar{position:fixed;left:50%;bottom:calc(8px + var(--safe-b));transform:translate(-50%);z-index:55;display:flex;align-items:stretch;gap:2px;width:calc(100vw - 20px);max-width:470px;padding:6px;border-radius:22px;background:var(--surface);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border:1px solid var(--border);box-shadow:var(--shadow-lg)}.app.drawing .m-bottombar{display:none}.m-tab{flex:1 1 0;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;height:56px;border:none;border-radius:16px;background:transparent;color:var(--text-dim);font-family:var(--font);font-size:11px;font-weight:600;letter-spacing:-.01em;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background .15s ease,color .15s ease}.m-tab svg{flex:none}.m-tab span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.m-tab:active{background:var(--surface-hover)}.m-tab.active{color:rgb(var(--accent-brand));background:rgb(var(--accent-brand) / .12)}.m-tab.primary{color:rgb(var(--accent-brand))}.selbar{bottom:calc(86px + var(--safe-b));max-width:calc(100vw - 20px)}.toast{bottom:calc(86px + var(--safe-b))}.drawbar{left:10px;right:10px;bottom:calc(8px + var(--safe-b));transform:none;width:auto;max-width:none;justify-content:center;padding:8px;gap:5px;border-radius:18px}.draw-tool{width:44px;height:44px}.draw-size{width:40px;height:44px}.draw-swatch{width:26px;height:26px}.draw-done{height:44px}.note-body,.note-md{font-size:calc(16px * var(--note-scale, 1))}.icon-btn{width:34px;height:34px}.minimap{display:none}.note-actions{opacity:1}.palette-backdrop{padding-top:calc(8vh + var(--safe-t))}.boards-pop{width:calc(100vw - 16px);border-radius:14px}.board-row{padding:9px 6px}.board-row-actions .icon-btn{width:34px;height:34px}.auth-wrap,.auth-btn{top:calc(8px + var(--safe-t));right:calc(10px + var(--safe-r))}.auth-btn{width:44px;height:44px;padding:0;justify-content:center;border-radius:50%}.archive-btn{top:calc(8px + var(--safe-t));left:calc(10px + var(--safe-l));width:44px;height:44px;padding:0;gap:0;justify-content:center;border-radius:50%}.archive-btn-label{display:none}.archive-badge{position:absolute;top:-3px;right:-3px;box-shadow:0 0 0 2px var(--bg-0)}.archive-panel{max-height:min(82vh,680px)}.archive-btn-act span{display:none}.archive-btn-act{padding:0;width:36px;justify-content:center}}.confirm-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:220;display:flex;align-items:center;justify-content:center;padding:16px;background:#0000006b;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:fade-in .16s ease}.confirm-dialog{width:min(380px,100%);padding:20px 20px 16px;border-radius:16px;background:var(--surface);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border:1px solid var(--border);box-shadow:var(--shadow-lg);animation:pop-in .18s ease}.confirm-title{font-size:15px;font-weight:650;color:var(--text);margin-bottom:6px}.confirm-message{font-size:14px;line-height:1.5;color:var(--text);white-space:pre-wrap}.confirm-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}.confirm-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--border);background:transparent;color:var(--text);font:inherit;font-size:13.5px;font-weight:600;padding:8px 16px;border-radius:10px;cursor:pointer;transition:background .14s ease,border-color .14s ease}.confirm-btn:hover{background:var(--border-strong)}.confirm-btn:focus-visible{outline:none;box-shadow:0 0 0 2px rgb(var(--accent-brand) / .6)}.confirm-btn.primary{border-color:transparent;background:rgb(var(--accent-brand));color:#fff}.confirm-btn.primary:hover{background:rgb(var(--accent-brand) / .85)}.confirm-btn.primary.danger{background:#e2483d}.confirm-btn.primary.danger:hover{background:#c93a30}.graph{position:fixed;top:0;right:0;bottom:0;left:0;z-index:150;overflow:hidden;background:radial-gradient(1100px 760px at 78% -8%,rgba(99,102,241,.18),transparent 60%),radial-gradient(900px 680px at -8% 108%,rgba(56,189,248,.12),transparent 55%),radial-gradient(70% 70% at 50% 45%,#0c1018,#06080e 92%);animation:fade-in .18s ease;touch-action:none;user-select:none;-webkit-user-select:none}.graph:before{content:"";position:absolute;top:-50%;right:-50%;bottom:-50%;left:-50%;pointer-events:none;opacity:.4;background-repeat:repeat;background-size:320px 320px;background-image:radial-gradient(2px 2px at 25% 35%,#fff,transparent),radial-gradient(1px 1px at 65% 20%,rgba(255,255,255,.8),transparent),radial-gradient(1.5px 1.5px at 80% 70%,rgba(255,255,255,.7),transparent),radial-gradient(1px 1px at 40% 80%,rgba(255,255,255,.6),transparent),radial-gradient(1.5px 1.5px at 12% 62%,rgba(255,255,255,.6),transparent),radial-gradient(1px 1px at 90% 42%,rgba(255,255,255,.55),transparent)}.graph-svg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block;cursor:grab}.graph-svg:active{cursor:grabbing}.graph-edge{stroke:#a0afd738;stroke-width:1;fill:none;vector-effect:non-scaling-stroke;transition:opacity .15s ease}.graph-edge.tag{stroke:#96a0cd29;stroke-dasharray:2 4}.graph-edge.hot{stroke:#c3d2ffbf;stroke-width:1.6}.graph-node{cursor:pointer;transition:opacity .15s ease}.graph-dot{fill:rgb(var(--accent, 148 161 184));stroke:#ffffffb3;stroke-width:.6;filter:drop-shadow(0 0 4px rgb(var(--accent, 148 161 184) / .55))}.graph-node.tag .graph-dot{fill:#b4bee429;stroke:#c3cdf0b3;stroke-width:1.4;filter:none}.graph-node:hover .graph-dot,.graph-node.hot .graph-dot{filter:drop-shadow(0 0 9px rgb(var(--accent, 148 161 184) / .9))}.graph-label{fill:#d2d8ea;font-size:12px;font-weight:550;text-anchor:middle;paint-order:stroke;stroke:#05070dd9;stroke-width:3px;display:none;pointer-events:none}.graph-node.tag .graph-label{fill:#aeb6d6;font-style:italic}.graph.show-labels .graph-label,.graph-node.hot .graph-label{display:block}.graph.dimming .graph-node:not(.hot){opacity:.16}.graph.dimming .graph-edge:not(.hot){opacity:.05}.graph-bar{position:absolute;top:calc(12px + var(--safe-t));left:50%;transform:translate(-50%);z-index:2;display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:center;max-width:calc(100vw - 24px);padding:8px 10px;border-radius:14px;background:var(--surface);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border:1px solid var(--border);box-shadow:var(--shadow-lg);animation:pop-in .18s ease}.graph-title{font-weight:650;font-size:14px;color:var(--text);padding-left:4px}.graph-count{font-size:12px;color:var(--text-dim);white-space:nowrap}.graph-spacer{flex:1;min-width:4px}.graph-zoom{position:absolute;right:calc(16px + var(--safe-r));bottom:calc(16px + var(--safe-b));z-index:2;display:flex;flex-direction:column;gap:2px;padding:4px;border-radius:12px;background:var(--surface);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border:1px solid var(--border);box-shadow:var(--shadow-lg)}.graph-zoom .graph-icon-btn{width:36px;height:36px}.graph-toggle{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:9px;border:1px solid var(--border);background:transparent;color:var(--text-dim);font-size:13px;font-weight:550;cursor:pointer;white-space:nowrap;transition:background .14s ease,color .14s ease,border-color .14s ease}.graph-toggle:hover{background:var(--surface-hover);color:var(--text)}.graph-toggle.on{color:rgb(var(--accent-brand));border-color:rgb(var(--accent-brand) / .55);background:rgb(var(--accent-brand) / .12)}.graph-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:9px;border:none;background:transparent;color:var(--text-dim);cursor:pointer;transition:background .14s ease,color .14s ease}.graph-icon-btn:hover{background:var(--surface-hover);color:var(--text)}.graph-icon-btn.close:hover{background:#e2483d;color:#fff}.graph-empty{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center;line-height:1.7;color:#aeb6d6;font-size:15px;max-width:420px;padding:0 24px}.graph-empty b{color:#d2d8ea}@media(max-width:680px){.graph-bar{gap:6px;padding:7px 8px}.graph-title,.graph-count{display:none}.graph-toggle{padding:6px 8px;font-size:12px}}.selbar-btn.active{background:rgb(var(--accent-brand) / .16);color:rgb(var(--accent-brand))}.selbar-btn.active svg{color:rgb(var(--accent-brand))}.selbar-color-wrap{position:relative;display:flex}.selbar-colors{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%);display:grid;grid-template-columns:repeat(6,1fr);gap:7px;padding:9px;border-radius:12px;background:var(--surface-solid);border:1px solid var(--border);box-shadow:var(--shadow-lg);animation:pop-in .16s ease;z-index:5}.app.selecting .canvas{cursor:default}.app.selecting .draw-cursor{display:none!important}.stroke.sel{filter:drop-shadow(0 0 3px rgba(236,72,153,.95))}.stroke-selbox{fill:#ec48990f;stroke:#ec4899;stroke-width:1.5;stroke-dasharray:5 4;pointer-events:none}.stroke-marquee{fill:rgb(var(--accent-brand) / .1);stroke:rgb(var(--accent-brand));stroke-width:1.5;stroke-dasharray:4 4;pointer-events:none}.draw-selinfo{gap:8px;padding:0 4px}.draw-selcount{font-size:12.5px;font-weight:600;color:var(--text-dim);white-space:nowrap;font-variant-numeric:tabular-nums}.settings-panel{width:min(520px,100%);border-radius:16px;overflow:hidden;animation:pop-in .18s ease;display:flex;flex-direction:column;max-height:min(82vh,720px)}.settings-head{display:flex;align-items:center;justify-content:space-between;padding:15px 14px 14px 18px;border-bottom:1px solid var(--border)}.settings-head-title{display:flex;align-items:center;gap:9px;font-size:16px;font-weight:700;letter-spacing:-.01em}.settings-head-title svg{color:var(--text-dim)}.settings-close{display:grid;place-items:center;width:34px;height:34px;border:none;border-radius:9px;background:transparent;color:var(--text-dim);cursor:pointer;transition:background .12s ease,color .12s ease}.settings-close:hover{background:var(--surface-hover);color:var(--text)}.settings-body{overflow-y:auto;padding:8px 12px 14px}.settings-section{padding:8px 0}.settings-section+.settings-section{border-top:1px solid var(--border)}.settings-section-title{font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-faint);padding:4px 8px 8px}.settings-row{display:flex;align-items:center;gap:12px;width:100%;padding:10px 8px;border:none;border-radius:11px;background:transparent;color:var(--text);font-family:var(--font);text-align:left;cursor:pointer;transition:background .12s ease}.settings-row:not(.as-static):hover{background:var(--surface-hover)}.settings-row.as-static{cursor:default}.settings-row-icon{display:grid;place-items:center;width:36px;height:36px;flex:none;border-radius:10px;background:var(--surface-2);color:var(--text-dim)}.settings-row-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.settings-row-label{font-size:14px;font-weight:600}.settings-row-hint{font-size:12px;color:var(--text-dim);line-height:1.35}.settings-input{flex:none;width:150px;max-width:46%;padding:7px 10px;border-radius:9px;border:1px solid var(--border);background:var(--surface);color:var(--text);font-family:var(--font);font-size:13px;outline:none;transition:border-color .18s ease}.settings-input:focus{border-color:rgb(var(--accent-brand) / .6)}.settings-input::placeholder{color:var(--text-faint)}.settings-nick{flex:none;display:flex;align-items:center;gap:6px}.settings-nick .settings-input{max-width:none;width:132px}.settings-nick-save{flex:none;display:grid;place-items:center;width:34px;height:34px;padding:0;border:none;border-radius:9px;background:#16a34a;color:#fff;cursor:pointer;transition:background .15s ease,opacity .15s ease,transform .1s ease}.settings-nick-save:hover{background:#15803d}.settings-nick-save:active{transform:scale(.94)}.settings-nick-save:disabled{opacity:.35;cursor:default}.board-row.fixed .board-check svg{color:rgb(var(--accent-brand))}.board-row.fixed{background:rgb(var(--accent-brand) / .07)}.board-row.fixed:hover{background:rgb(var(--accent-brand) / .13)}.board-row.fixed.active{background:rgb(var(--accent-brand) / .18)}.boards-divider{height:1px;margin:7px 8px 5px;background:var(--border)}.switch{flex:none;position:relative;width:42px;height:25px;border-radius:13px;background:var(--border-strong);transition:background .18s ease}.switch.on{background:rgb(var(--accent-brand))}.switch-knob{position:absolute;top:3px;left:3px;width:19px;height:19px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #00000059;transition:transform .18s ease}.switch.on .switch-knob{transform:translate(17px)}.seg{flex:none;display:flex;gap:2px;padding:2px;background:var(--surface-2);border-radius:10px}.seg-btn{display:inline-flex;align-items:center;gap:5px;height:30px;padding:0 11px;border:none;border-radius:8px;background:transparent;color:var(--text-dim);font-family:var(--font);font-size:12.5px;font-weight:600;cursor:pointer;transition:background .12s ease,color .12s ease}.seg-btn:hover{color:var(--text)}.seg-btn.active{background:rgb(var(--accent-brand) / .16);color:rgb(var(--accent-brand))}.seg-btn svg{flex:none}.settings-action{display:flex;align-items:center;gap:12px;width:100%;padding:10px 8px;border:none;border-radius:11px;background:transparent;color:var(--text);font-family:var(--font);text-align:left;cursor:pointer;transition:background .12s ease}.settings-action:hover{background:var(--surface-hover)}.settings-action>svg{flex:none;color:var(--text-dim);width:36px}.settings-action>span{display:flex;flex-direction:column;gap:2px;min-width:0}.settings-action-label{font-size:14px;font-weight:600}.settings-action-hint{font-size:12px;color:var(--text-dim)}.settings-action.danger{color:#fb7185}.settings-action.danger>svg{color:#fb7185}.settings-action.danger .settings-action-hint{color:#f43f5ebf}.settings-action.danger:hover{background:#f43f5e1f}.settings-actions-row{display:flex;flex-direction:column}@media(min-width:681px){.settings-actions-row{flex-direction:row;gap:10px}.settings-actions-row .settings-action{flex:1;min-width:0}}.auth-pop-item{display:flex;align-items:center;gap:9px;width:100%;padding:9px 10px;border:none;border-radius:9px;background:transparent;color:var(--text);font-family:var(--font);font-size:13.5px;font-weight:550;cursor:pointer;transition:background .12s ease}.auth-pop-item:hover{background:var(--surface-hover)}.auth-pop-item svg{color:var(--text-dim);flex:none}.auth-pop-signout{margin-top:2px;border-top:1px solid var(--border);border-radius:0 0 9px 9px}@media(max-width:680px){.selbar{flex-wrap:wrap;justify-content:center;gap:5px;padding:8px 10px}.selbar-count{width:100%;text-align:center;margin:0 0 2px}.settings-panel{max-height:min(86vh,720px)}.seg-btn{padding:0 9px}}.auth-pop-admin svg{color:rgb(var(--accent-brand))}.admin-panel,.blocked-card{background:var(--surface);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border:1px solid var(--border);box-shadow:var(--shadow-lg)}.admin-backdrop{z-index:160;align-items:flex-start;padding:calc(5vh + var(--safe-t)) 14px 14px}.admin-panel{width:min(920px,100%);max-height:90vh;border-radius:16px;overflow:hidden;display:flex;flex-direction:column;animation:pop-in .18s ease}.admin-head{display:flex;align-items:center;justify-content:space-between;padding:14px 12px 13px 18px;border-bottom:1px solid var(--border)}.admin-head-title{display:flex;align-items:center;gap:9px;font-size:16px;font-weight:700;letter-spacing:-.01em}.admin-head-title svg{color:var(--text-dim)}.admin-head-actions{display:flex;gap:4px}.admin-icon-btn{display:grid;place-items:center;width:34px;height:34px;border:none;border-radius:9px;background:transparent;color:var(--text-dim);cursor:pointer;transition:background .12s ease,color .12s ease}.admin-icon-btn:hover{background:var(--surface-hover);color:var(--text)}.admin-icon-btn:disabled{opacity:.5;cursor:default}.admin-icon-btn .spin{animation:admin-spin .9s linear infinite}@keyframes admin-spin{to{transform:rotate(360deg)}}.admin-body{overflow-y:auto;padding:14px;display:flex;flex-direction:column;gap:16px}.admin-error{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border-radius:10px;font-size:13px;background:#f952521f;color:#f87171;border:1px solid rgba(249,82,82,.28)}.admin-retry{border:none;background:#f9525233;color:inherit;border-radius:8px;padding:5px 10px;cursor:pointer;font-weight:600;white-space:nowrap}.admin-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(148px,1fr));gap:10px}.admin-stat{display:flex;flex-direction:column;gap:2px;padding:13px 14px;border-radius:13px;background:var(--surface-2);border:1px solid var(--border)}.admin-stat-icon{display:grid;place-items:center;width:30px;height:30px;border-radius:9px;margin-bottom:5px;background:rgb(var(--tone) / .16);color:rgb(var(--tone))}.admin-stat-value{font-size:26px;font-weight:800;letter-spacing:-.02em;line-height:1.05}.admin-stat-label{font-size:12px;color:var(--text-dim);font-weight:550}.admin-stat[data-tone=sky]{--tone: 66 165 252}.admin-stat[data-tone=amber]{--tone: 249 191 47}.admin-stat[data-tone=violet]{--tone: 166 116 252}.admin-stat[data-tone=emerald]{--tone: 33 209 138}.admin-stat[data-tone=rose]{--tone: 251 105 170}.admin-stat[data-tone=cyan]{--tone: 32 205 224}.admin-stat[data-tone=indigo]{--tone: 116 122 252}.admin-actions-row{display:flex;justify-content:flex-end;margin-top:10px}.admin-clear-chat{display:inline-flex;align-items:center;gap:7px;padding:8px 13px;border-radius:10px;border:1px solid rgba(249,82,82,.35);background:#f9525214;color:#f87171;font-size:13px;font-weight:600;cursor:pointer;transition:background .15s ease,border-color .15s ease}.admin-clear-chat:hover:not(:disabled){background:#f9525229;border-color:#f952528c}.admin-clear-chat:disabled{opacity:.4;cursor:default}.admin-section{border-top:1px solid var(--border);padding-top:14px}.admin-section-head{display:flex;align-items:center;gap:12px;margin-bottom:10px;flex-wrap:wrap}.admin-section-title{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:700}.admin-section-title svg{color:rgb(var(--accent-brand))}.admin-online-now{display:flex;align-items:center;gap:5px;font-size:12.5px;color:var(--text-dim)}.admin-range{margin-left:auto}.admin-reports{display:flex;flex-direction:column;gap:8px}.admin-report{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:var(--surface-2)}.admin-report-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.admin-report-excerpt{font-size:13px;color:var(--text);white-space:pre-wrap;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}.admin-report-meta{font-size:11.5px;color:var(--text-faint)}.admin-chart{display:flex;align-items:flex-end;gap:3px;height:150px;padding:6px 2px 0}.admin-bar-col{flex:1;min-width:0;height:100%;display:flex;flex-direction:column;align-items:center;gap:5px}.admin-bar-wrap{flex:1;width:100%;display:flex;align-items:flex-end}.admin-bar{width:100%;min-height:2px;border-radius:4px 4px 2px 2px;background:linear-gradient(180deg,rgb(var(--accent-brand)),rgb(var(--accent-brand) / .5));transition:height .25s ease}.admin-bar[data-empty]{background:var(--border)}.admin-bar-x{font-size:10px;color:var(--text-faint);white-space:nowrap;height:12px}.admin-top{display:flex;flex-direction:column;gap:4px}.admin-top-row{display:flex;align-items:center;gap:10px;padding:6px 8px;border-radius:9px}.admin-top-row:hover{background:var(--surface-hover)}.admin-top-rank{width:18px;text-align:center;font-weight:800;color:var(--text-dim);font-size:13px}.admin-top-name{flex:1;min-width:0;font-size:13.5px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-top-count{font-size:12.5px;color:var(--text-dim);font-weight:600;white-space:nowrap}.admin-users{display:flex;flex-direction:column;gap:6px}.admin-user{border:1px solid var(--border);border-radius:12px;background:var(--surface-2);overflow:hidden}.admin-user.blocked{border-color:#f9525266}.admin-user-main{display:flex;align-items:center;gap:11px;padding:10px 12px}.admin-user-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.admin-user-name{display:flex;align-items:center;gap:7px;font-size:14px;font-weight:650;overflow:hidden}.admin-user-sub{font-size:11.5px;color:var(--text-dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-user-stats{display:flex;align-items:center;gap:10px;font-size:12px;color:var(--text-dim);white-space:nowrap}.admin-user-actions{display:flex;gap:5px}.admin-avatar{width:38px;height:38px;border-radius:50%;flex:none;object-fit:cover;overflow:hidden}.admin-avatar-initial{display:grid;place-items:center;background:linear-gradient(140deg,rgb(var(--accent-brand)),rgb(var(--accent-brand) / .6));color:#fff;font-weight:700;font-size:15px}.admin-badge{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;padding:2px 6px;border-radius:6px;background:var(--surface-hover);color:var(--text-dim);white-space:nowrap}.admin-badge.danger{background:#f9525229;color:#f87171}.admin-dot{width:8px;height:8px;border-radius:50%;background:var(--text-faint);flex:none}.admin-dot.online{background:#34d399;box-shadow:0 0 0 3px #34d39933}.admin-act{display:grid;place-items:center;width:32px;height:32px;border:1px solid var(--border);border-radius:9px;background:var(--surface);color:var(--text-dim);cursor:pointer;transition:color .12s ease,background .12s ease,border-color .12s ease}.admin-act:hover{color:var(--text);background:var(--surface-hover)}.admin-act.warn:hover{color:#f59e0b;border-color:#f59e0b66}.admin-act.ok:hover{color:#34d399;border-color:#34d39966}.admin-act.danger:hover{color:#f87171;border-color:#f9525266}.admin-act:disabled{opacity:.4;cursor:default}.admin-compose{padding:0 12px 12px;display:flex;flex-direction:column;gap:8px}.admin-compose-input{width:100%;min-height:64px;resize:vertical;border-radius:10px;border:1px solid var(--border);background:var(--bg);color:var(--text);font-family:var(--font);font-size:13.5px;padding:9px 11px}.admin-compose-actions{display:flex;justify-content:flex-end;gap:8px}.admin-compose-cancel,.admin-compose-send{border-radius:9px;padding:7px 13px;font-size:13px;font-weight:600;cursor:pointer;border:1px solid var(--border);font-family:var(--font)}.admin-compose-cancel{background:transparent;color:var(--text-dim)}.admin-compose-send{display:flex;align-items:center;gap:6px;background:rgb(var(--accent-brand));color:#fff;border-color:transparent}.admin-compose-send:disabled{opacity:.5;cursor:default}.admin-empty{padding:24px;text-align:center;color:var(--text-dim);font-size:13.5px}.blocked-screen{position:fixed;top:0;right:0;bottom:0;left:0;z-index:400;display:grid;place-items:center;padding:20px;background:#0009;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.blocked-card{width:min(400px,100%);border-radius:16px;padding:28px 24px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:10px}.blocked-icon{display:grid;place-items:center;width:64px;height:64px;border-radius:50%;background:#f9525226;color:#f87171;margin-bottom:4px}.blocked-card h2{font-size:19px;font-weight:750}.blocked-card p{font-size:14px;color:var(--text-dim);line-height:1.5}.blocked-signout{margin-top:8px;border:1px solid var(--border);border-radius:10px;padding:10px 20px;background:var(--surface-2);color:var(--text);font-weight:600;font-size:14px;cursor:pointer}.blocked-signout:hover{background:var(--surface-hover)}@media(max-width:680px){.admin-backdrop{padding:0}.admin-panel{max-height:100vh;height:100%;width:100%;border-radius:0}.admin-user-main{flex-wrap:wrap}.admin-user-stats{order:3;width:100%}}:focus-visible{outline:2px solid rgb(var(--accent-brand));outline-offset:2px;border-radius:6px}.note-body:focus-visible,.note-title:focus-visible{outline:none}.chat-input:focus-visible,.settings-input:focus-visible,.palette-input input:focus-visible{outline-offset:-1px}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}
