:root{--bg-0:#05070f;--bg-1:#0a0d1c;--surface-1:#111629c7;--surface-2:#181e36b8;--surface-3:#222a4899;--surface-solid:#111629;--border-subtle:#94a3b81a;--border:#94a3b82e;--border-strong:#94a3b852;--text:#e7ecf7;--text-muted:#97a3bc;--text-dim:#6b748c;--accent:#6366f1;--accent-2:#22d3ee;--accent-soft:#6366f12e;--accent-glow:0 8px 24px -8px #6366f18c;--danger:#ef4444;--danger-2:#f97316;--success:#10b981;--warning:#f59e0b;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-pill:999px;--shadow-sm:0 2px 8px #00000040;--shadow-md:0 12px 32px -12px #0000008c;--shadow-lg:0 24px 60px -20px #000000a6;--shadow-inset:inset 0 1px 0 #ffffff0a;--gradient-accent:linear-gradient(135deg, #6366f1 0%, #22d3ee 100%);--gradient-danger:linear-gradient(135deg, #ef4444 0%, #f97316 100%);--gradient-surface:linear-gradient(160deg, #1e2946d9 0%, #0f1628d9 100%);font-feature-settings:"cv02", "cv03", "cv04", "cv11", "ss01";color:var(--text);background:var(--bg-0);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.45}*{box-sizing:border-box}body{background-color:#0000;background-image:radial-gradient(1200px 600px at 8% -10%,#6366f12e,#0000 60%),radial-gradient(900px 500px at 95% 0,#22d3ee1f,#0000 65%),radial-gradient(800px 400px at 50% 110%,#8b5cf61f,#0000 60%),linear-gradient(#06091a 0%,#04060f 100%);background-position:0 0,0 0,0 0,0 0;background-repeat:repeat,repeat,repeat,repeat;background-size:auto,auto,auto,auto;background-attachment:fixed;background-origin:padding-box,padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box,border-box;min-height:100vh;margin:0}::selection{color:#fff;background:#6366f166}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#94a3b82e padding-box padding-box;border:2px solid #0000;border-radius:999px}::-webkit-scrollbar-thumb:hover{background:#94a3b852 padding-box padding-box}.page{max-width:1480px;min-height:100vh;margin:0 auto;padding:1.25rem 1.5rem 2rem}.page-main{grid-template-columns:minmax(0,1fr) 340px;align-items:start;gap:1.25rem;display:grid}@media (width<=960px){.page{padding:.85rem .85rem 1.25rem}.page-main{grid-template-columns:1fr;gap:.85rem}.sidebar-chat{max-height:min(60vh,520px)}}.page-canvas-column{min-width:0}.presence-bar{border-radius:var(--radius-lg);border:1px solid var(--border);background:var(--gradient-surface);-webkit-backdrop-filter:blur(18px)saturate(140%);box-shadow:var(--shadow-md), var(--shadow-inset);flex-direction:column;gap:.65rem;margin-bottom:1rem;padding:.9rem 1.1rem;display:flex;position:relative;overflow:hidden}.presence-bar:before{content:"";border-radius:inherit;-webkit-mask-composite:xor;pointer-events:none;background:linear-gradient(135deg,#6366f173,#22d3ee00 60%);padding:1px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);-webkit-mask-position:0 0,0 0;mask-position:0 0,0 0;-webkit-mask-size:auto,auto;mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;mask-origin:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}.presence-main{flex-wrap:wrap;align-items:center;gap:.65rem 1.1rem;display:flex}.presence-title{letter-spacing:-.01em;background:var(--gradient-accent);color:#0000;-webkit-background-clip:text;background-clip:text;font-size:1.02rem;font-weight:700}.presence-ws{letter-spacing:.04em;text-transform:uppercase;border-radius:var(--radius-pill);border:1px solid var(--border-strong);color:var(--text-muted);background:#0f172a80;padding:.25rem .6rem;font-size:.72rem;font-weight:600}.presence-ws.ws-connected{color:#6ee7b7;background:#064e3b59;border-color:#10b9818c;box-shadow:0 0 0 1px #10b9812e,0 0 12px -2px #10b98166}.presence-ws.ws-connecting{color:#fde68a;background:#78350f4d;border-color:#f59e0b8c}.presence-ws.ws-disconnected,.presence-ws.ws-error{color:#fecaca;background:#7f1d1d4d;border-color:#ef44448c}.presence-count{color:var(--text-muted);font-size:.85rem;font-weight:500}.presence-peers{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.presence-you,.presence-chip{border-radius:var(--radius-pill);border:1.5px solid var(--border-strong);background:#0f172a99;padding:.28rem .55rem;font-size:.75rem;font-weight:600;transition:transform .15s,border-color .15s}.presence-chip:hover{border-color:var(--accent);transform:translateY(-1px)}.presence-active{color:#a5b4fc;font-size:.82rem;font-weight:500}.presence-timer{color:var(--text);font-variant-numeric:tabular-nums;border-radius:var(--radius-pill);border:1px solid var(--border);background:#0f172a99;padding:.2rem .55rem;font-size:.85rem;font-weight:600}.presence-timer.timer-warn{color:#fde68a;background:#78350f40;border-color:#f59e0b73}.presence-timer.timer-done{color:#fecaca;background:#7f1d1d4d;border-color:#ef444480}.presence-you{border-color:var(--accent);color:#c7d2fe;background:#6366f11f;align-items:center;gap:.4rem;display:inline-flex}.presence-you-label{border-radius:var(--radius-pill);border:1.5px solid var(--accent);color:#c7d2fe;background:#6366f11f;padding:.2rem .5rem;font-size:.75rem;font-weight:600}.presence-avatar{object-fit:cover;border:1.5px solid var(--border-strong);border-radius:50%}.presence-chip{align-items:center;gap:.3rem;display:inline-flex}.presence-session-id{color:var(--text-dim);letter-spacing:.02em;font-size:.72rem}.presence-session-id code{color:var(--text-muted);border:1px solid var(--border);background:#0f172a99;border-radius:5px;padding:.1rem .4rem;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.85em}.canvas-toolbar-row{align-items:stretch;gap:.6rem;margin-bottom:.6rem;display:flex}.canvas-toolbar-row .toolbar{flex:1;margin-bottom:0}.toolbar{border-radius:var(--radius-lg);border:1px solid var(--border);background:var(--gradient-surface);-webkit-backdrop-filter:blur(18px)saturate(140%);box-shadow:var(--shadow-md), var(--shadow-inset);flex-wrap:wrap;align-items:center;gap:.6rem .85rem;margin-bottom:.6rem;padding:.7rem .85rem;display:flex}.toolbar-group{flex-wrap:wrap;align-items:center;gap:.4rem .6rem;display:flex;position:relative}.toolbar-group:not(:last-child):after{content:"";background:linear-gradient(180deg, transparent, var(--border-strong) 30%, var(--border-strong) 70%, transparent);align-self:stretch;width:1px;margin:0 .1rem}.toolbar-group-tools{flex:280px;max-width:100%}.toolbar-label{text-transform:uppercase;letter-spacing:.12em;color:var(--text-dim);font-size:.65rem;font-weight:700}.toolbar-group .toolbar-label{margin-right:.15rem}.toolbar-tool{border:1px solid var(--border);color:var(--text);cursor:pointer;box-shadow:var(--shadow-inset);background:#1e29468c;border-radius:10px;align-items:center;gap:.4rem;padding:.42rem .7rem;font-size:.84rem;font-weight:500;transition:transform .12s,background .15s,border-color .15s,box-shadow .15s;display:inline-flex}.toolbar-tool:hover{border-color:var(--border-strong);background:#334164b3;transform:translateY(-1px)}.toolbar-tool.active{color:#e0e7ff;background:linear-gradient(135deg,#6366f138,#22d3ee1f);border-color:#6366f1b3;box-shadow:0 0 0 1px #6366f159,0 8px 20px -8px #6366f180}.toolbar-tool-compact .toolbar-tool-text{font-size:.74rem;font-weight:600}.toolbar-tool-text{letter-spacing:.005em;font-size:.84rem;font-weight:600}.toolbar-icon{flex-shrink:0;width:1.1rem;height:1.1rem;display:block}.toolbar-icon-stroke{width:1.15rem;height:1.15rem}.toolbar-control{color:var(--text-muted);align-items:center;gap:.45rem;font-size:.78rem;display:flex}.toolbar-control input[type=color]{border:1.5px solid var(--border-strong);cursor:pointer;width:2.2rem;height:2.2rem;box-shadow:var(--shadow-inset), 0 4px 12px -4px #00000080;background:0 0;border-radius:50%;padding:0;overflow:hidden}.toolbar-control input[type=color]::-webkit-color-swatch-wrapper{padding:0}.toolbar-control input[type=color]::-webkit-color-swatch{border:0;border-radius:50%}.toolbar-control input[type=range]{appearance:none;background:linear-gradient(90deg, var(--accent), var(--accent-2));border-radius:999px;outline:none;width:110px;height:4px}.toolbar-control input[type=range]::-webkit-slider-thumb{appearance:none;border:2px solid var(--accent);cursor:pointer;background:#fff;border-radius:50%;width:16px;height:16px;box-shadow:0 4px 12px #6366f180}.toolbar-control input[type=range]::-moz-range-thumb{border:2px solid var(--accent);cursor:pointer;background:#fff;border-radius:50%;width:16px;height:16px;box-shadow:0 4px 12px #6366f180}.toolbar-value{min-width:2.5rem;color:var(--text);font-variant-numeric:tabular-nums;font-size:.78rem;font-weight:600}.toolbar-actions{flex-wrap:wrap;gap:.45rem;margin-left:auto;display:flex}.toolbar-button{cursor:pointer;letter-spacing:.005em;box-shadow:var(--shadow-sm), var(--shadow-inset);border:0;border-radius:10px;padding:.5rem .85rem;font-size:.85rem;font-weight:600;transition:transform .12s,box-shadow .15s,background .15s,border-color .15s}.toolbar-button:hover:not(:disabled){transform:translateY(-1px)}.toolbar-button:active:not(:disabled){transform:translateY(0)}.toolbar-button.primary{background:var(--gradient-accent);color:#fff;box-shadow:0 8px 22px -8px #6366f1b3, var(--shadow-inset)}.toolbar-button.primary:hover:not(:disabled){box-shadow:0 14px 30px -10px #6366f1cc, var(--shadow-inset)}.toolbar-button.destructive{background:var(--gradient-danger);color:#fff;box-shadow:0 8px 22px -8px #ef4444b3, var(--shadow-inset)}.toolbar-button.destructive:hover:not(:disabled){box-shadow:0 14px 30px -10px #ef4444d9, var(--shadow-inset)}.toolbar-button.ghost{border:1px solid var(--border-strong);color:var(--text);background:#1e29468c}.toolbar-button.ghost:hover:not(:disabled){border-color:var(--accent);color:#fff;background:#334164b3}.toolbar-hint{width:100%;color:var(--text-dim);letter-spacing:.01em;border-top:1px dashed var(--border-subtle);flex-basis:100%;margin-top:.1rem;padding-top:.55rem;font-size:.72rem}.toolbar-zoom{align-items:center}.toolbar-zoom-value{color:var(--text-muted);text-align:center;font-variant-numeric:tabular-nums;min-width:2.75rem;font-size:.74rem;font-weight:600}.width-presets{border:1px solid var(--border);background:#0f172a99;border-radius:10px;align-items:center;gap:.3rem;padding:.2rem;display:flex}.width-preset{font:inherit;width:1.85rem;height:1.85rem;color:var(--text-muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:7px;padding:0;font-size:.72rem;font-weight:700;transition:all .15s}.width-preset:hover:not(:disabled){color:var(--text);background:#33416480}.width-preset.active{color:#e0e7ff;background:linear-gradient(135deg,#6366f140,#22d3ee1f);border-color:#6366f199;box-shadow:0 0 0 1px #6366f159}.width-preset:disabled{opacity:.4;cursor:not-allowed}.custom-map-bg-row{color:var(--text-muted);border-radius:var(--radius-md);border:1px dashed var(--border);background:#0f172a66;flex-wrap:wrap;align-items:center;gap:.5rem .85rem;margin:.4rem 0 .7rem;padding:.6rem .85rem;font-size:.8rem;display:flex}.custom-map-bg-label{flex:auto;min-width:12rem;font-weight:500}.custom-map-bg-btn{font:inherit;border:1px solid var(--border-strong);color:var(--text);cursor:pointer;background:#1e2946b3;border-radius:8px;padding:.4rem .85rem;font-size:.8rem;font-weight:600;transition:all .15s}.custom-map-bg-btn:hover:not(:disabled){border-color:var(--accent);background:#334164d9}.custom-map-bg-btn:disabled{opacity:.5;cursor:not-allowed}.sr-only-input,.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.map-placeholder{background:linear-gradient(160deg,#0f172a 0%,#1e293b 45%,#0f172a 100%)}.board-wrap{border-radius:var(--radius-lg);width:100%;max-height:min(85vh,920px);box-shadow:var(--shadow-lg);background:linear-gradient(135deg,#6366f12e,#22d3ee0d);padding:6px;overflow:auto}.board{aspect-ratio:16/9;border:1px solid var(--border-strong);border-radius:calc(var(--radius-lg) - 4px);background:#020617;width:min(100%,1280px);position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px #ffffff0a}.board-locked{opacity:.55;pointer-events:none}.board-zoom-inner{vertical-align:top;width:min(100%,1280px);transition:transform .18s ease-out;display:inline-block}.session-banner{border-radius:var(--radius-md);color:#fecaca;width:100%;box-shadow:var(--shadow-sm);background:linear-gradient(135deg,#7f1d1d73,#be123c4d);border:1px solid #ef444473;margin-bottom:.5rem;padding:.55rem .8rem;font-size:.85rem;font-weight:500}.map,.canvas{width:100%;height:100%;position:absolute;inset:0}.canvas{touch-action:none;cursor:crosshair}.cursor-layer{pointer-events:none;position:absolute;inset:0}.remote-cursor-wrap{pointer-events:none;position:absolute;transform:translate(-50%,-50%)}.remote-cursor{background:#6366f1d9;border:2px solid #fff;border-radius:50%;width:12px;height:12px;box-shadow:0 0 0 1px #00000080,0 0 12px #6366f199}.remote-cursor-wrap:hover .remote-cursor-label{opacity:1}.remote-cursor-label{white-space:nowrap;border:1px solid var(--border-strong);color:var(--text);opacity:.9;text-overflow:ellipsis;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0f172af2;border-radius:6px;max-width:140px;padding:.18rem .45rem;font-size:.7rem;font-weight:600;position:absolute;top:-4px;left:14px;overflow:hidden}.auth-gate{text-align:center;flex-direction:column;justify-content:center;align-items:center;max-width:460px;min-height:100vh;margin:0 auto;padding:2rem 1rem;display:flex}.auth-title{background:var(--gradient-accent);color:#0000;-webkit-background-clip:text;background-clip:text;margin:0 0 .85rem;font-size:1.6rem;font-weight:700}.auth-text{color:var(--text-muted);margin:0 0 1.5rem}.auth-button{border-radius:var(--radius-md);color:#fff;box-shadow:0 12px 28px -8px #5865f2a6, var(--shadow-inset);background:linear-gradient(135deg,#5865f2 0%,#7289da 100%);justify-content:center;align-items:center;gap:.6rem;padding:.85rem 1.5rem;font-weight:700;text-decoration:none;transition:transform .12s,box-shadow .15s;display:inline-flex}.auth-button:hover{box-shadow:0 16px 36px -10px #5865f2cc, var(--shadow-inset);transform:translateY(-1px)}.auth-hint{color:var(--text-dim);margin-top:1.25rem;font-size:.78rem}.discord-mark{flex-shrink:0;width:1.4rem;height:1.4rem}.sidebar-chat{border-radius:var(--radius-lg);border:1px solid var(--border);background:var(--gradient-surface);-webkit-backdrop-filter:blur(18px)saturate(140%);min-height:380px;max-height:min(72vh,680px);box-shadow:var(--shadow-md), var(--shadow-inset);flex-direction:column;display:flex;position:relative;overflow:hidden}.sidebar-chat:before{content:"";border-radius:inherit;-webkit-mask-composite:xor;pointer-events:none;background:linear-gradient(#6366f166,#6366f100 50%);padding:1px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);-webkit-mask-position:0 0,0 0;mask-position:0 0,0 0;-webkit-mask-size:auto,auto;mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;mask-origin:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}.sidebar-header{letter-spacing:.005em;border-bottom:1px solid var(--border-subtle);z-index:1;background:linear-gradient(#6366f114,#0000);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.4rem .85rem;padding:.85rem 1rem;font-weight:700;display:flex;position:relative}.sidebar-empty{color:var(--text-dim);text-align:center;padding:1rem;font-size:.85rem}.chat-messages{z-index:1;flex-direction:column;flex:1;gap:.5rem;padding:.6rem .75rem;display:flex;position:relative;overflow-y:auto}.chat-line{flex-wrap:wrap;align-items:baseline;gap:.4rem .6rem;padding:.15rem .1rem;font-size:.86rem;display:flex}.chat-name{letter-spacing:.005em;flex-shrink:0;font-weight:700}.chat-time{color:var(--text-dim);font-variant-numeric:tabular-nums;flex-shrink:0;font-size:.7rem}.chat-text{color:var(--text);word-break:break-word;line-height:1.5}.chat-line-grouped{padding-left:.2rem}.chat-avatar{object-fit:cover;border:1px solid var(--border-strong);border-radius:50%;flex-shrink:0;width:22px;height:22px}.chat-avatar-fallback{border:1px solid var(--border-strong);border-radius:50%;flex-shrink:0;width:22px;height:22px;display:inline-block}.chat-avatar-spacer{flex-shrink:0;width:22px}.chat-link{color:#93c5fd;border-bottom:1px dashed #93c5fd8c;text-decoration:none;transition:color .15s}.chat-link:hover{color:#bae6fd;border-bottom-color:#bae6fd}.chat-mention{color:#c7d2fe;background:linear-gradient(135deg,#6366f147,#22d3ee2e);border:1px solid #6366f159;border-radius:6px;padding:.05rem .4rem;font-weight:700;display:inline-block}.chat-form{border-top:1px solid var(--border-subtle);z-index:1;background:#05071280;gap:.5rem;padding:.65rem .75rem;display:flex;position:relative}.chat-input-wrap{flex-direction:column;flex:1;gap:.2rem;min-width:0;display:flex}.chat-input{border:1px solid var(--border-strong);min-width:0;color:var(--text);background:#05071299;border-radius:10px;flex:1;padding:.55rem .7rem;font-size:.875rem;transition:border-color .15s,box-shadow .15s}.chat-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.chat-input::placeholder{color:var(--text-dim)}.chat-send{background:var(--gradient-accent);color:#fff;cursor:pointer;box-shadow:0 8px 22px -8px #6366f1a6, var(--shadow-inset);border:0;border-radius:10px;padding:.55rem .95rem;font-size:.875rem;font-weight:700;transition:transform .12s,box-shadow .15s}.chat-send:hover{box-shadow:0 14px 30px -10px #6366f1cc, var(--shadow-inset);transform:translateY(-1px)}.chat-char-count{color:var(--text-dim);text-align:right;font-variant-numeric:tabular-nums;font-size:.66rem}.mention-suggestions{flex-wrap:wrap;gap:.35rem;padding-top:.15rem;display:flex}.mention-suggestion{border:1px solid var(--border-strong);border-radius:var(--radius-pill);color:#c7d2fe;font:inherit;cursor:pointer;background:#0f172ab3;padding:.22rem .55rem;font-size:.72rem;font-weight:600;transition:all .15s}.mention-suggestion:hover{border-color:var(--accent);color:#fff;background:#6366f12e}.sidebar-typing{color:#93c5fd;max-width:100%;font-size:.72rem;font-style:italic}.status{text-align:center;min-height:100vh;color:var(--text-muted);place-content:center;padding:1rem;font-size:1.15rem;display:grid}.status.error{color:#fca5a5}.modal-backdrop{-webkit-backdrop-filter:blur(8px);z-index:50;background:#020617b3;place-items:center;padding:1rem;animation:.18s ease-out fadeIn;display:grid;position:fixed;inset:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal{border-radius:var(--radius-lg);border:1px solid var(--border-strong);background:var(--gradient-surface);-webkit-backdrop-filter:blur(20px)saturate(160%);width:min(100%,440px);box-shadow:var(--shadow-lg), var(--shadow-inset);padding:1.4rem 1.5rem;animation:.2s ease-out modalIn;position:relative}.modal:before{content:"";border-radius:inherit;-webkit-mask-composite:xor;pointer-events:none;background:linear-gradient(135deg,#6366f180,#22d3ee00 60%);padding:1px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);-webkit-mask-position:0 0,0 0;mask-position:0 0,0 0;-webkit-mask-size:auto,auto;mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;mask-origin:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}@keyframes modalIn{0%{opacity:0;transform:translateY(8px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.modal-title{letter-spacing:-.01em;margin:0 0 .6rem;font-size:1.18rem;font-weight:700}.modal-body{color:var(--text-muted);margin:0 0 1.1rem;font-size:.9rem}.modal-body.small{margin-top:.5rem;font-size:.8rem}.save-thread-label{color:var(--text);flex-direction:column;gap:.4rem;margin-bottom:1rem;font-size:.85rem;font-weight:500;display:flex}.save-thread-input{border:1px solid var(--border-strong);color:var(--text);background:#05071299;border-radius:10px;padding:.6rem .7rem;font-size:.9rem;transition:border-color .15s,box-shadow .15s}.save-thread-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.modal-actions{justify-content:flex-end;gap:.55rem;display:flex}.text-place-textarea{box-sizing:border-box;resize:vertical;border:1px solid var(--border-strong);width:100%;min-height:100px;color:var(--text);font:inherit;background:#05071299;border-radius:10px;margin:0 0 1rem;padding:.65rem .75rem;font-size:.9rem;transition:border-color .15s,box-shadow .15s}.text-place-textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.text-place-modal .modal-body{margin-bottom:.5rem}.modal-save{width:min(100%,540px);max-height:min(92vh,760px);overflow-y:auto}.save-preview-block{margin-bottom:1rem}.save-preview-label{text-transform:uppercase;letter-spacing:.1em;color:var(--text-dim);margin-bottom:.4rem;font-size:.72rem;font-weight:700}.save-preview-frame{border-radius:var(--radius-md);border:1px solid var(--border-strong);min-height:140px;max-height:240px;box-shadow:var(--shadow-inset);background:#020617b3;justify-content:center;align-items:center;display:flex;overflow:hidden}.save-preview-img{object-fit:contain;max-width:100%;max-height:240px;display:block}.save-preview-skeleton{color:var(--text-dim);padding:1.25rem;font-size:.85rem}.save-preview-meta{margin-top:.55rem;margin-bottom:0}.toast-stack{z-index:100;pointer-events:none;flex-direction:column;gap:.55rem;max-width:min(100vw - 2rem,380px);display:flex;position:fixed;bottom:1rem;right:1rem}.toast{pointer-events:auto;border-radius:var(--radius-md);border:1px solid var(--border-strong);-webkit-backdrop-filter:blur(20px);box-shadow:var(--shadow-lg), var(--shadow-inset);color:var(--text);background:#111629eb;align-items:flex-start;gap:.55rem;padding:.75rem .9rem;font-size:.875rem;animation:.22s ease-out toastIn;display:flex}@keyframes toastIn{0%{opacity:0;transform:translate(12px)}to{opacity:1;transform:translate(0)}}.toast-success{background:linear-gradient(135deg,#064e3beb,#111629eb);border-color:#10b9818c}.toast-error{background:linear-gradient(135deg,#7f1d1deb,#111629eb);border-color:#ef444499}.toast-info{background:linear-gradient(135deg,#1e295aeb,#111629eb);border-color:#6366f18c}.toast-message{word-break:break-word;flex:1;min-width:0;line-height:1.5}.toast-dismiss{color:var(--text-muted);cursor:pointer;background:0 0;border:0;flex-shrink:0;padding:0 .2rem;font-size:1.15rem;line-height:1;transition:color .15s}.toast-dismiss:hover{color:var(--text)}.page-skeleton-page{flex-direction:column;gap:.85rem;padding:1rem;display:flex}.skeleton{border-radius:var(--radius-md);background:linear-gradient(90deg,#1e294680 25%,#33416499 50%,#1e294680 75%) 0 0/200% 100%;animation:1.4s ease-in-out infinite skel}@keyframes skel{0%{background-position:100% 0}to{background-position:-100% 0}}.presence-skel{height:80px}.toolbar-skel{height:56px}.board-skel{aspect-ratio:16/9;max-width:1280px}.skeleton-label{text-align:center;color:var(--text-muted);margin:.5rem 0 0;font-size:.9rem}.mobile-tabs{background:var(--gradient-surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-md), var(--shadow-inset);gap:.45rem;margin-bottom:.75rem;padding:.3rem;display:none}.mobile-tab{font:inherit;color:var(--text-muted);cursor:pointer;letter-spacing:.005em;background:0 0;border:0;border-radius:10px;flex:1;justify-content:center;align-items:center;gap:.5rem;padding:.6rem .85rem;font-size:.88rem;font-weight:700;transition:all .15s;display:inline-flex}.mobile-tab:hover{color:var(--text)}.mobile-tab.active{color:#fff;background:var(--gradient-accent);box-shadow:0 8px 22px -8px #6366f1a6, var(--shadow-inset)}.mobile-tab-badge{border-radius:var(--radius-pill);color:#fff;background:var(--gradient-danger);justify-content:center;align-items:center;min-width:1.3rem;height:1.3rem;padding:0 .4rem;font-size:.7rem;font-weight:800;line-height:1;display:inline-flex;box-shadow:0 4px 12px -2px #ef44448c}.page-main-mobile{display:block}.mobile-panel.hidden{display:none!important}.mobile-panel.active{display:block}@media (width<=960px){.mobile-tabs{display:flex}.toolbar{gap:.5rem .65rem;padding:.65rem .75rem}.toolbar-actions{grid-template-columns:1fr 1fr;gap:.5rem;width:100%;margin-left:0;display:grid}.toolbar-button{width:100%;padding:.7rem .85rem;font-size:.88rem}.toolbar-tool{padding:.5rem .7rem}.toolbar-group:not(:last-child):after{display:none}.toolbar-hint{font-size:.68rem}.canvas-toolbar-row{flex-direction:column}.help-popover-trigger{align-self:flex-end;margin-top:0}.board-wrap{padding:4px}.sidebar-chat{max-height:min(60vh,520px)}.chat-form{padding:.6rem .65rem}.chat-input{padding:.6rem .7rem;font-size:16px}.chat-send{padding:.6rem 1rem}.presence-bar{padding:.75rem .9rem}.modal{padding:1.15rem}}.help-popover-wrap{flex-shrink:0;position:relative}.help-popover-trigger{border:1px solid var(--border-strong);width:2.5rem;height:2.5rem;color:var(--text);cursor:pointer;box-shadow:var(--shadow-sm), var(--shadow-inset);background:#1e2946b3;border-radius:10px;place-items:center;transition:all .15s;display:grid}.help-popover-trigger:hover{border-color:var(--accent);color:#fff;background:#334164d9;transform:translateY(-1px)}.help-popover{z-index:40;border-radius:var(--radius-md);border:1px solid var(--border-strong);background:var(--gradient-surface);-webkit-backdrop-filter:blur(20px);width:min(92vw,320px);box-shadow:var(--shadow-lg), var(--shadow-inset);color:var(--text);padding:.95rem 1.05rem;font-size:.82rem;position:absolute;top:calc(100% + .45rem);right:0}.help-popover-title{margin:0 0 .6rem;font-size:.92rem;font-weight:700}.help-popover-list{color:var(--text-muted);margin:0;padding-left:1.2rem;line-height:1.65}.help-popover-list li{margin-bottom:.15rem}.help-popover-list kbd{border:1px solid var(--border-strong);color:var(--text);background:#050712b3;border-radius:5px;padding:.12rem .36rem;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.72rem;font-weight:600;box-shadow:inset 0 1px #ffffff0a}.help-popover-note{color:var(--text-dim);border-top:1px dashed var(--border-subtle);margin:.75rem 0 0;padding-top:.6rem;font-size:.72rem}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.toolbar-button:disabled,.toolbar-tool:disabled{opacity:.5;cursor:not-allowed}
