:root{--ai-spectrum:linear-gradient(100deg, #ffb454, #ff5c8a 34%, #9e78ff 68%, #4cc9f0);--ai-spectrum-wide:linear-gradient(100deg, #ffb454, #ff5c8a, #9e78ff, #4cc9f0, #9e78ff, #ff5c8a, #ffb454);--ai-violet:#8b5cf6;--ai-violet-soft:#8b5cf61f;--ai-card:var(--surface);--ai-line:var(--panel-border);--ai-ease:cubic-bezier(.2, .8, .2, 1);--ai-spring:cubic-bezier(.34, 1.56, .64, 1)}.ai-toasts{top:calc(64px + var(--safe-t));right:calc(16px + var(--safe-r));z-index:10050;pointer-events:none;width:min(360px,100vw - 32px);transition:right .22s var(--ai-ease);flex-direction:column;gap:10px;display:flex;position:fixed}:root.rpanel-open .ai-toasts{right:calc(16px + var(--safe-r) + var(--rp-w,0px))}.ai-toast{border:1px solid var(--panel-border);background:var(--panel);color:var(--ink);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);pointer-events:auto;animation:ai-toast-in .32s var(--ai-spring);border-radius:16px;align-items:flex-start;gap:12px;padding:12px 12px 12px 14px;display:flex;position:relative;overflow:hidden;box-shadow:0 14px 36px #8b5cf638,0 2px 8px #0f172a1f}.ai-toast:after{content:"";background:var(--ai-spectrum);transform-origin:0;opacity:.7;width:100%;height:2px;animation:3.2s linear forwards ai-toast-time;position:absolute;bottom:0;left:0}.ai-toast-mark{background:var(--ai-spectrum);background-size:100% 300%;border-radius:999px;flex:none;width:8px;height:36px;margin-top:1px;animation:3s ease-in-out infinite ai-flow-y}.ai-toast-error .ai-toast-mark{background:linear-gradient(#ff5c8a,#d92d3a)}.ai-toast-success .ai-toast-mark{background:linear-gradient(#4cc9f0,#22c55e)}.ai-toast-text{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.ai-toast-text strong{font-size:14px;font-weight:800}.ai-toast-text span{color:var(--text-soft);overflow-wrap:anywhere;font-size:13px;line-height:1.4}.ai-toast-close{width:26px;height:26px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:8px;flex:none;font-size:18px;line-height:1}.ai-toast-close:hover{background:var(--hover);color:var(--ink)}.ai-launch{align-items:center;display:inline-flex}.ai-launch .ai-launch-mark{background:var(--ai-spectrum-wide);color:#fff;width:26px;height:26px;transition:transform .2s var(--ai-spring);background-size:300% 100%;border-radius:8px;place-items:center;animation:6s ease-in-out infinite ai-flow;display:inline-grid;position:relative}.ai-launch:hover .ai-launch-mark{transform:rotate(-8deg)scale(1.08)}.ai-launch[aria-pressed=true] .ai-launch-mark{box-shadow:0 0 0 3px #8b5cf64d}.ai-title{align-items:center;gap:10px;display:inline-flex}.ai-mark{background:var(--ai-spectrum-wide);color:#fff;background-size:300% 100%;border-radius:9px;place-items:center;width:28px;height:28px;animation:6s ease-in-out infinite ai-flow;display:inline-grid;box-shadow:0 4px 14px #8b5cf659}.ai-title-text{letter-spacing:-.01em;font-weight:800}.ai-mark svg,.ai-orb svg,.ai-badge svg,.ai-btn svg:not(.ai-ico),.tb-btn.ai-launch svg{fill:currentColor;stroke:none;width:16px;height:16px}.ai-ico{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:18px;height:18px}.ai-body{isolation:isolate;flex-direction:column;gap:14px;padding:14px 16px 20px;display:flex;position:relative;overflow-x:hidden}.ai-aurora{z-index:-1;filter:blur(8px);pointer-events:none;background:radial-gradient(40% 60% at 15% 30%,#ff5c8a24,#0000 70%),radial-gradient(40% 60% at 55% 10%,#8b5cf629,#0000 70%),radial-gradient(40% 60% at 90% 35%,#4cc9f024,#0000 70%);height:280px;animation:14s ease-in-out infinite alternate ai-aurora;position:absolute;top:0;bottom:auto;left:0;right:0}.ai-stage{animation:ai-rise .32s var(--ai-ease)}.ai-account{border:1px solid var(--ai-line);background:color-mix(in srgb, var(--ai-card) 80%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);animation:ai-rise .3s var(--ai-ease);border-radius:16px;align-items:center;gap:10px;padding:10px 12px;display:flex}.ai-avatar{background:var(--ai-spectrum);color:#fff;border-radius:50%;flex:none;place-items:center;width:34px;height:34px;font-weight:800;display:grid}.ai-account-text{flex-direction:column;min-width:0;line-height:1.25;display:flex}.ai-account-text strong{text-overflow:ellipsis;white-space:nowrap;font-size:14px;overflow:hidden}.ai-account-text>span{color:var(--muted);align-items:center;gap:5px;font-size:12px;display:inline-flex}.ai-live-dot{background:#22c55e;border-radius:50%;width:7px;height:7px;animation:2s ease-out infinite ai-pulse;box-shadow:0 0 #22c55e80}.ai-credits-pill{background:var(--ai-violet-soft);color:var(--ai-violet);white-space:nowrap;border-radius:999px;align-items:center;gap:5px;margin-left:auto;padding:6px 12px;font-size:14px;font-weight:800;display:inline-flex}.ai-credits-pill small{opacity:.75;font-size:11px;font-weight:700}.ai-credits-pill .ai-ico{width:16px;height:16px}.ai-gate{background:var(--ai-card);animation:ai-rise .32s var(--ai-ease);border-radius:18px;grid-template-columns:auto 1fr;align-items:start;gap:12px;padding:16px;display:grid;position:relative}.ai-gate:before{content:"";border-radius:inherit;background:var(--ai-spectrum-wide);-webkit-mask-composite:xor;pointer-events:none;background-size:300% 100%;padding:1.5px;animation:6s ease-in-out infinite ai-flow;position:absolute;top:0;bottom:0;left:0;right:0;-webkit-mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);-webkit-mask-position:0 0,0 0;-webkit-mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;-webkit-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}.ai-gate-icon{background:var(--ai-violet-soft);width:40px;height:40px;color:var(--ai-violet);border-radius:12px;place-items:center;display:grid}.ai-gate-offline .ai-gate-icon{color:#d97706;background:#f59e0b24}.ai-gate-icon .ai-ico{width:20px;height:20px}.ai-gate-text{flex-direction:column;gap:4px;line-height:1.45;display:flex}.ai-gate-text strong{font-size:15px}.ai-gate-text span{color:var(--text-soft);font-size:13px}.ai-gate .ai-btn{grid-column:1/-1;justify-self:stretch}.ai-tabs{grid-template-columns:repeat(var(--ai-tab-n,4), 1fr);background:var(--chip);border-radius:14px;padding:4px;display:grid;position:relative}.ai-tab-thumb{width:calc((100% - 8px) / var(--ai-tab-n,4));background:var(--surface);transform:translateX(calc(100% * var(--ai-tab-i,0)));transition:transform .32s var(--ai-spring);border-radius:10px;position:absolute;top:4px;bottom:4px;left:4px;box-shadow:0 1px 2px #0f172a14,0 4px 12px #0f172a14}.ai-tab{z-index:1;min-height:36px;color:var(--muted);font:inherit;white-space:nowrap;cursor:pointer;background:0 0;border:0;border-radius:10px;justify-content:center;align-items:center;gap:6px;padding:0 6px;font-size:13px;font-weight:700;transition:color .2s;display:inline-flex;position:relative}.ai-tab .ai-ico{width:16px;height:16px}.ai-tab:hover,.ai-tab.on{color:var(--ink)}.ai-tab.on .ai-ico{color:var(--ai-violet)}.ai-thinking{background:var(--ai-card);animation:ai-rise .26s var(--ai-ease);border-radius:18px;flex-direction:column;gap:12px;padding:14px;display:flex;position:relative}.ai-thinking:before{content:"";border-radius:inherit;background:var(--ai-spectrum-wide);-webkit-mask-composite:xor;pointer-events:none;background-size:300% 100%;padding:1.5px;animation:2.4s linear infinite ai-flow;position:absolute;top:0;bottom:0;left:0;right:0;-webkit-mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);-webkit-mask-position:0 0,0 0;-webkit-mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;-webkit-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}.ai-thinking-head{align-items:center;gap:12px;display:flex}.ai-thinking-text{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.ai-thinking-text strong{font-size:14px}.ai-tip{color:var(--muted);align-items:baseline;gap:2px;font-size:12px;animation:.4s ai-fade;display:inline-flex}.ai-dots{gap:3px;margin-left:3px;display:inline-flex}.ai-dots i{background:currentColor;border-radius:50%;width:4px;height:4px;animation:1.2s ease-in-out infinite ai-bounce}.ai-dots i:nth-child(2){animation-delay:.15s}.ai-dots i:nth-child(3){animation-delay:.3s}.ai-orb{background:var(--ai-spectrum-wide);color:#fff;background-size:300% 300%;border-radius:50%;flex:none;place-items:center;width:36px;height:36px;animation:3s ease-in-out infinite ai-flow,2.4s ease-in-out infinite ai-breathe;display:grid;box-shadow:0 6px 18px #8b5cf659}.ai-orb.small{width:26px;height:26px;animation:6s ease-in-out infinite ai-flow}.ai-orb.small svg{width:13px;height:13px}.ai-orb.big{width:52px;height:52px}.ai-orb.big svg{width:24px;height:24px}.ai-skeleton{flex-direction:column;gap:8px;display:flex}.ai-skeleton span{background:linear-gradient(90deg, var(--chip) 0%, #8b5cf62e 40%, var(--chip) 80%);background-size:200% 100%;border-radius:6px;height:10px;animation:1.4s linear infinite ai-shimmer}.ai-shimmer-text{animation:1s ease-in-out infinite alternate ai-fade}.ai-section{flex-direction:column;gap:12px;display:flex}.ai-heading{letter-spacing:-.02em;margin:2px 0 0;font-size:19px;font-weight:800}.ai-gradient-text{background:var(--ai-spectrum-wide);color:#0000;background-size:300% 100%;-webkit-background-clip:text;background-clip:text;animation:6s ease-in-out infinite ai-flow}.ai-note{color:var(--muted);margin:0;font-size:12px;line-height:1.5}.ai-note strong{color:var(--text-soft)}.ai-error{color:var(--danger);margin:0;font-size:13px;line-height:1.4}.tint-blue{--tint:#3b82f6}.tint-violet{--tint:#8b5cf6}.tint-teal{--tint:#14b8a6}.tint-amber{--tint:#f59e0b}.tint-green{--tint:#22c55e}.tint-pink{--tint:#ec4899}.tint-orange{--tint:#f97316}.ai-kinds{grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:8px;display:grid}.ai-kind{border:1px solid var(--ai-line);background:var(--ai-card);color:var(--text-soft);font:inherit;cursor:pointer;animation:ai-pop .36s var(--ai-spring) both;transition:transform .18s var(--ai-spring), border-color .18s ease, box-shadow .18s ease, color .18s ease;border-radius:14px;flex-direction:column;align-items:center;gap:7px;padding:12px 6px 10px;display:flex;position:relative}.ai-kind:hover{color:var(--ink);transform:translateY(-2px);box-shadow:0 6px 16px #0f172a14}.ai-kind:active{transform:translateY(0)scale(.97)}.ai-kind-icon{background:color-mix(in srgb, var(--tint) 14%, transparent);width:36px;height:36px;color:var(--tint);transition:transform .26s var(--ai-spring);border-radius:11px;place-items:center;display:grid}.ai-kind-icon .ai-ico{width:20px;height:20px}.ai-kind-label{text-align:center;font-size:12.5px;font-weight:700;line-height:1.2}.ai-kind.on{color:var(--ink);box-shadow:0 0 0 2px var(--tint), 0 8px 20px color-mix(in srgb, var(--tint) 25%, transparent);border-color:#0000}.ai-kind.on .ai-kind-icon{background:var(--tint);color:#fff;transform:scale(1.08)rotate(-4deg)}.ai-segment{background:var(--chip);animation:ai-rise .24s var(--ai-ease);border-radius:11px;align-self:flex-start;gap:2px;padding:3px;display:inline-flex}.ai-segment button{color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:8px;padding:6px 12px;font-size:12.5px;font-weight:700;transition:background .16s,color .16s}.ai-segment button.on{background:var(--surface);color:var(--ink);box-shadow:0 1px 3px #0f172a1f}.ai-composer{border:1px solid var(--ai-line);background:var(--ai-card);border-radius:18px;flex-direction:column;transition:box-shadow .22s,border-color .22s;display:flex;position:relative;box-shadow:0 2px 10px #0f172a0d}.ai-composer:before{content:"";background:var(--ai-spectrum-wide);-webkit-mask-composite:xor;opacity:0;pointer-events:none;background-size:300% 100%;border-radius:19px;padding:1.5px;transition:opacity .24s;animation:4s linear infinite ai-flow;position:absolute;top:-1.5px;bottom:-1.5px;left:-1.5px;right:-1.5px;-webkit-mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);-webkit-mask-position:0 0,0 0;-webkit-mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;-webkit-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}.ai-composer:focus-within{border-color:#0000;box-shadow:0 10px 30px #8b5cf629}.ai-composer:focus-within:before{opacity:1}.ai-composer textarea{box-sizing:border-box;width:100%;min-height:56px;color:var(--ink);font:inherit;resize:none;background:0 0;border:0;outline:none;padding:14px 16px 6px;font-size:14.5px;line-height:1.5}.ai-composer textarea::placeholder{color:var(--muted)}.ai-composer-bar{flex-wrap:wrap;align-items:center;gap:6px;padding:6px 8px 8px;display:flex}.ai-grow{flex:1}.ai-icon-btn{width:34px;height:34px;color:var(--muted);cursor:pointer;transition:background .16s ease, color .16s ease, transform .16s var(--ai-spring);background:0 0;border:0;border-radius:10px;place-items:center;display:grid}.ai-icon-btn:hover{background:var(--hover);color:var(--ink)}.ai-icon-btn:active{transform:scale(.92)}.ai-icon-btn.on{color:#fff;background:#ff5c8a;animation:1.4s ease-out infinite ai-listen}.ai-toggle{color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:999px;align-items:center;gap:7px;padding:5px 10px 5px 6px;font-size:12.5px;font-weight:700;transition:background .16s,color .16s;display:inline-flex}.ai-toggle:hover{background:var(--hover)}.ai-toggle.on{color:var(--ai-violet)}.ai-toggle-track{background:var(--panel-border);border-radius:999px;width:28px;height:16px;transition:background .2s;position:relative}.ai-toggle-track span{width:12px;height:12px;transition:transform .24s var(--ai-spring);background:#fff;border-radius:50%;position:absolute;top:2px;left:2px;box-shadow:0 1px 2px #00000040}.ai-toggle.on .ai-toggle-track{background:var(--ai-violet)}.ai-toggle.on .ai-toggle-track span{transform:translate(12px)}.ai-btn{min-height:42px;font:inherit;white-space:nowrap;cursor:pointer;transition:transform .16s var(--ai-spring), box-shadow .2s ease, filter .2s ease, opacity .2s ease;border:0;border-radius:12px;justify-content:center;align-items:center;gap:7px;padding:0 18px;font-size:14px;font-weight:800;display:inline-flex}.ai-btn.compact{border-radius:11px;min-height:36px;padding:0 14px;font-size:13px}.ai-btn .ai-ico{width:16px;height:16px}.ai-btn-glow{background:var(--ai-spectrum-wide);color:#fff;background-size:300% 100%;animation:8s ease-in-out infinite ai-flow;box-shadow:0 6px 18px #8b5cf659}.ai-btn-glow:hover:not(:disabled){filter:saturate(1.15);transform:translateY(-1px);box-shadow:0 10px 24px #8b5cf673}.ai-btn-glow:active:not(:disabled){transform:scale(.97)}.ai-btn-ghost{background:var(--chip);color:var(--ink)}.ai-btn-ghost:hover:not(:disabled){background:var(--hover)}.ai-btn:disabled{cursor:not-allowed;opacity:.5;box-shadow:none;filter:grayscale(.4)}.ai-link{color:var(--ai-violet);font:inherit;cursor:pointer;background:0 0;border:0;align-items:center;gap:4px;padding:0;font-size:12.5px;font-weight:800;display:inline-flex}.ai-link .ai-ico{width:14px;height:14px}.ai-link:hover{text-decoration:underline}.ai-examples{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.ai-examples.center{justify-content:center}.ai-examples-label{color:var(--muted);font-size:12px;font-weight:700}.ai-example{border:1px solid var(--ai-line);background:var(--ai-card);color:var(--text-soft);font:inherit;cursor:pointer;animation:ai-rise .3s var(--ai-ease) both;transition:border-color .16s ease, color .16s ease, transform .16s var(--ai-spring);border-radius:999px;padding:6px 11px;font-size:12px}.ai-example:hover:not(:disabled){border-color:var(--ai-violet);color:var(--ai-violet);transform:translateY(-1px)}.ai-example:disabled{opacity:.5;cursor:not-allowed}.ai-scope{background:var(--chip);color:var(--text-soft);border-radius:12px;align-items:flex-start;gap:9px;margin:0;padding:10px 12px;font-size:13px;line-height:1.4;display:flex}.ai-scope-dot{background:var(--muted);border-radius:50%;flex:none;width:8px;height:8px;margin-top:5px}.ai-scope.picked{background:var(--ai-violet-soft)}.ai-scope.picked .ai-scope-dot{background:var(--ai-violet);animation:2s ease-out infinite ai-pulse-violet}.ai-scope.warn{background:var(--note-bg);color:var(--note-fg)}.ai-scope.warn .ai-scope-dot{background:#f59e0b}.ai-actions{flex-direction:column;gap:8px;display:flex}.ai-action{border:1px solid var(--ai-line);background:var(--ai-card);color:var(--ink);font:inherit;text-align:left;cursor:pointer;animation:ai-rise .32s var(--ai-ease) both;transition:transform .18s var(--ai-spring), border-color .18s ease, box-shadow .18s ease;border-radius:14px;align-items:center;gap:12px;padding:11px 12px;display:flex}.ai-action:hover:not(:disabled){border-color:color-mix(in srgb, var(--tint) 50%, transparent);transform:translate(3px);box-shadow:0 6px 16px #0f172a12}.ai-action:active:not(:disabled){transform:scale(.99)}.ai-action-icon{background:color-mix(in srgb, var(--tint) 14%, transparent);width:38px;height:38px;color:var(--tint);border-radius:11px;flex:none;place-items:center;display:grid}.ai-action-icon .ai-ico{width:20px;height:20px}.ai-action-text{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.ai-action-text strong{font-size:13.5px}.ai-action-text span{color:var(--muted);font-size:12px;line-height:1.35}.ai-chevron{color:var(--muted);opacity:0;transition:opacity .18s,transform .18s;transform:translate(-4px)}.ai-action:hover:not(:disabled) .ai-chevron{opacity:1;transform:none}.ai-action.dim .ai-action-text span{color:#d97706}.ai-action:disabled{cursor:not-allowed;opacity:.55}.ai-card{border:1px solid var(--ai-line);background:color-mix(in srgb, var(--ai-card) 60%, var(--chip));border-radius:16px;flex-direction:column;gap:12px;padding:14px;display:flex}.ai-card-head{align-items:center;gap:12px;display:flex}.ai-card-head>div{flex-direction:column;gap:2px;display:flex}.ai-card-head strong{font-size:14px}.ai-card-head span:not(.ai-action-icon){color:var(--muted);font-size:12px}.ai-preview-box{border:1px solid var(--ai-line);background-color:#fff;background-image:radial-gradient(#1f23281f 1px,#0000 1px);background-size:16px 16px;border-radius:16px;place-items:center;min-height:140px;max-height:280px;padding:12px;display:grid;position:relative;overflow:hidden}.ai-preview-box.large{max-height:48vh;box-shadow:0 12px 30px #0f172a1a}.ai-preview-box.error{background-image:none;background-color:var(--chip)}.ai-preview-box img{object-fit:contain;max-width:100%;max-height:calc(48vh - 24px);animation:ai-reveal .48s var(--ai-ease)}.ai-result{animation:ai-pop-in .42s var(--ai-spring)}.ai-result-head{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.ai-result-head strong{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:15px;overflow:hidden}.ai-badge{background:var(--ai-spectrum);color:#fff;border-radius:999px;align-items:center;gap:4px;padding:3px 9px;font-size:11.5px;font-weight:800;display:inline-flex}.ai-badge svg{width:12px;height:12px}.ai-used{color:var(--muted);font-size:12px}.ai-latex{background:var(--chip);overflow-wrap:anywhere;border-radius:10px;padding:8px 10px;font-size:12px;display:block}.ai-result-bar{justify-content:flex-end;gap:8px;padding-top:4px;display:flex;position:sticky;bottom:0}.ai-result-bar .ai-btn-glow{flex:1}.ai-mermaid-edit summary{color:var(--ai-violet);cursor:pointer;align-items:center;gap:6px;font-size:13px;font-weight:800;list-style:none;display:inline-flex}.ai-mermaid-edit summary::-webkit-details-marker{display:none}.ai-mermaid-edit[open] .ai-code{animation:ai-rise .24s var(--ai-ease);margin-top:8px}.ai-editor{border:1px solid var(--ai-line);background:#1e1e2e;border-radius:14px;overflow:hidden}.ai-editor-head{color:#a6adc8;border-bottom:1px solid #ffffff14;align-items:center;gap:6px;padding:8px 12px;font-family:ui-monospace,Cascadia Code,Consolas,monospace;font-size:12px;display:flex}.ai-editor-head .ai-ico{width:14px;height:14px}.ai-code{box-sizing:border-box;color:#cdd6f4;white-space:pre;resize:vertical;caret-color:#f5c2e7;background:#1e1e2e;border:0;border-radius:12px;outline:none;width:100%;padding:12px 14px;font-family:ui-monospace,Cascadia Code,Consolas,monospace;font-size:12.5px;line-height:1.6;display:block}.ai-editor .ai-code{border-radius:0}.ai-code:focus{box-shadow:inset 0 0 0 2px #8b5cf699}.ai-chat{flex-direction:column;gap:12px;min-height:220px;max-height:50vh;padding:2px;display:flex;overflow-y:auto}.ai-chat-empty{text-align:center;flex-direction:column;align-items:center;gap:6px;margin:auto 0;padding:16px 8px;display:flex}.ai-chat-empty strong{margin-top:6px;font-size:16px}.ai-chat-empty>span:not(.ai-orb){color:var(--muted);margin-bottom:8px;font-size:13px}.ai-turn{max-width:94%;animation:ai-rise .3s var(--ai-ease);align-items:flex-end;gap:8px;display:flex}.ai-bubble{border-radius:18px;flex-direction:column;align-items:flex-start;gap:8px;padding:10px 14px;font-size:14px;line-height:1.5;display:flex}.ai-bubble p{white-space:pre-wrap;overflow-wrap:anywhere;margin:0}.ai-you{align-self:flex-end}.ai-you .ai-bubble{color:#fff;background:linear-gradient(135deg,#8b5cf6,#6366f1);border-bottom-right-radius:6px}.ai-ai{align-self:flex-start}.ai-ai .ai-bubble{border:1px solid var(--ai-line);background:var(--ai-card);border-bottom-left-radius:6px}@keyframes ai-flow{0%{background-position:0%}50%{background-position:100%}to{background-position:0%}}@keyframes ai-flow-y{0%,to{background-position:50% 0}50%{background-position:50% 100%}}@keyframes ai-aurora{0%{transform:translate(-4%)scale(1)}to{transform:translate(4%,6px)scale(1.08)}}@keyframes ai-rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes ai-pop{0%{opacity:0;transform:translateY(6px)scale(.94)}to{opacity:1;transform:none}}@keyframes ai-pop-in{0%{opacity:0;transform:scale(.96)translateY(10px)}to{opacity:1;transform:none}}@keyframes ai-reveal{0%{opacity:0;filter:blur(8px);transform:scale(.98)}to{opacity:1;filter:none;transform:none}}@keyframes ai-fade{0%{opacity:.35}to{opacity:1}}@keyframes ai-shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}@keyframes ai-bounce{0%,80%,to{opacity:.4;transform:translateY(0)}40%{opacity:1;transform:translateY(-4px)}}@keyframes ai-breathe{0%,to{transform:scale(1)}50%{transform:scale(1.08)}}@keyframes ai-pulse{0%{box-shadow:0 0 #22c55e80}to{box-shadow:0 0 0 7px #22c55e00}}@keyframes ai-pulse-violet{0%{box-shadow:0 0 #8b5cf680}to{box-shadow:0 0 0 7px #8b5cf600}}@keyframes ai-listen{0%{box-shadow:0 0 #ff5c8a8c}to{box-shadow:0 0 0 10px #ff5c8a00}}@keyframes ai-toast-in{0%{opacity:0;transform:translate(24px)scale(.96)}to{opacity:1;transform:none}}@keyframes ai-toast-time{0%{transform:scaleX(1)}to{transform:scaleX(0)}}@media (prefers-reduced-motion:reduce){.ai-toast,.ai-toast:after,.ai-toast-mark,.ai-aurora,.ai-stage,.ai-account,.ai-gate,.ai-gate:before,.ai-mark,.ai-launch-mark,.ai-thinking,.ai-thinking:before,.ai-orb,.ai-skeleton span,.ai-kind,.ai-segment,.ai-composer:before,.ai-btn-glow,.ai-example,.ai-action,.ai-result,.ai-preview-box img,.ai-turn,.ai-gradient-text,.ai-dots i,.ai-live-dot,.ai-scope-dot,.ai-tip{animation:none!important}.ai-tab-thumb,.ai-kind,.ai-action,.ai-toggle-track span{transition:none}}.rpanel-body.ai-body{overflow:hidden;container:ai/size}.ai-body>*{flex:none}.ai-body>.ai-stage{flex-direction:column;flex:auto;min-height:0;display:flex}.ai-stage>.ai-section{flex:auto;min-height:0}.ai-section>*{flex:none}.ai-section>.ai-note{margin-top:auto}.ai-kinds{grid-template-columns:repeat(auto-fill,minmax(86px,1fr))}.ai-actions{grid-template-columns:repeat(auto-fill,minmax(170px,1fr));display:grid}.ai-action{gap:10px;padding:10px}.ai-action-icon{width:34px;height:34px}.ai-action:hover:not(:disabled){transform:translateY(-2px)}.ai-chevron{display:none}.ai-card{gap:10px;padding:12px}.ai-ask>.ai-chat{flex:auto;min-height:80px;max-height:none}.ai-section>.ai-editor{flex-direction:column;flex:45%;min-height:90px;display:flex}.ai-editor .ai-code{resize:none;flex:1;min-height:0}.ai-section>.ai-preview-box{flex:55%;min-height:90px;max-height:none}.ai-section>.ai-preview-box img{max-height:100%}.ai-result>.ai-preview-box.large{flex:auto;min-height:100px;max-height:none}.ai-result>.ai-preview-box.large img{width:100%;height:100%;max-height:none}.ai-mermaid-edit .ai-code{resize:none;max-height:22cqh}.ai-result-bar{position:static}.ai-gate{gap:10px 12px;padding:12px 14px}.ai-gate .ai-btn{min-height:38px}@container ai (height<=760px){.ai-note,.ai-skeleton{display:none}}@container ai (height<=700px){.ai-heading,.ai-gate-text span{display:none}.ai-gate{grid-template-columns:auto 1fr auto;align-items:center}.ai-gate .ai-btn{grid-column:auto;min-height:34px;padding:0 14px}.ai-card-head span:not(.ai-action-icon){display:none}}@container ai (height<=640px){.ai-kind{flex-direction:row;gap:6px;padding:7px 8px}.ai-kind-icon{border-radius:8px;width:26px;height:26px}.ai-kind-icon .ai-ico{width:16px;height:16px}.ai-kinds{grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:6px}.ai-action-text span{display:none}.ai-composer textarea{min-height:44px;padding-top:10px}.ai-section{gap:9px}}@container ai (height<=560px){.ai-examples:not(.center),.ai-chat-empty .ai-orb{display:none}.ai-thinking{padding:10px 12px}.ai-account{padding:6px 10px}}@container ai (height<=480px){.ai-card.ai-sketch .ai-card-head{display:none}.ai-segment button{padding:4px 10px}.ai-tab{min-height:30px}}.ai-stage.busy>.ai-section{display:none}.ai-stage.busy>.ai-thinking{margin-top:4px}.ai-section>.ai-preview-box>img,.ai-result>.ai-preview-box.large>img{object-fit:contain;width:calc(100% - 24px);max-width:none;height:calc(100% - 24px);max-height:none;position:absolute;top:12px;bottom:12px;left:12px;right:12px}@container ai (height<=600px) and (width>=421px){.ai-card.ai-sketch{flex-direction:row;align-items:stretch;padding:8px}.ai-card.ai-sketch .ai-card-head{display:none}.ai-card.ai-sketch .ai-composer{flex-direction:row;flex:1;align-items:center}.ai-card.ai-sketch .ai-composer textarea{height:40px;min-height:0;padding:10px 12px}.ai-card.ai-sketch .ai-composer-bar{flex-wrap:nowrap;padding:4px 6px}.ai-action{padding:8px}.ai-action-icon{width:30px;height:30px}.ai-scope{padding:7px 10px}}.ai-kinds,.ai-body .ai-kinds{grid-template-columns:repeat(4,minmax(0,1fr))}.ai-kind-label{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}@container ai (width<=420px){.ai-kind{gap:5px;padding:9px 4px 8px}.ai-kind-icon{border-radius:9px;width:30px;height:30px}.ai-kind-label{font-size:11.5px}.ai-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.ai-action-text span{display:none}.ai-action-text strong{font-size:12.5px}.ai-gate-text span{font-size:12px}.ai-heading{font-size:17px}}@container ai (height<=640px){.ai-kinds,.ai-body .ai-kinds{grid-template-columns:repeat(4,minmax(0,1fr))}.ai-kind{flex-direction:column;padding:6px 4px}}.tint-indigo{--tint:#6366f1}.ai-reader{border:1px solid var(--ai-line);background:var(--ai-card);animation:ai-rise .26s var(--ai-ease);border-radius:16px;align-items:center;gap:10px;padding:8px 10px;display:flex;box-shadow:0 6px 18px #ec489924}.ai-reader audio{display:none}.ai-reader-play{background:var(--ai-spectrum-wide);color:#fff;cursor:pointer;width:38px;height:38px;transition:transform .16s var(--ai-spring);background-size:300% 100%;border:0;border-radius:50%;flex:none;place-items:center;animation:6s ease-in-out infinite ai-flow;display:grid}.ai-reader-play:active{transform:scale(.92)}.ai-reader-play .ai-ico{fill:currentColor;width:18px;height:18px}.ai-reader-main{flex-direction:column;flex:1;gap:6px;min-width:0;display:flex}.ai-reader-title{text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:6px;font-size:13px;font-weight:800;display:inline-flex;overflow:hidden}.ai-reader-track{background:var(--chip);border-radius:999px;height:4px;display:block;overflow:hidden}.ai-reader-track span{background:var(--ai-spectrum);transform-origin:0;height:100%;transition:transform .25s linear;display:block}.ai-eq{align-items:flex-end;gap:2px;height:12px;display:inline-flex}.ai-eq i{transform-origin:bottom;background:#ec4899;border-radius:2px;width:3px;height:100%;animation:.9s ease-in-out infinite ai-eq}.ai-eq i:nth-child(2){animation-delay:.15s}.ai-eq i:nth-child(3){animation-delay:.3s}.ai-card.ai-find{flex-direction:row;align-items:center;gap:10px;padding:8px 8px 8px 10px}.ai-find input{min-width:0;color:var(--ink);font:inherit;background:0 0;border:0;outline:none;flex:1;padding:8px 4px;font-size:14px}.ai-find-nav{align-items:center;gap:2px;display:inline-flex}.ai-find-count{color:var(--muted);white-space:nowrap;padding:0 6px;font-size:12px;font-weight:700}.ai-find .ai-action-icon{width:32px;height:32px}.ai-bubble-actions{flex-wrap:wrap;gap:12px;display:inline-flex}@keyframes ai-fade-in{0%{opacity:0}to{opacity:1}}@keyframes ai-eq{0%,to{transform:scaleY(.3)}50%{transform:scaleY(1)}}@container ai (height<=640px){.ai-card.ai-find{padding:5px 6px 5px 8px}.ai-find .ai-action-icon{display:none}.ai-reader{padding:6px 8px}}@media (prefers-reduced-motion:reduce){.ai-reader,.ai-reader-play,.ai-eq i{animation:none!important}}@container ai (height<=600px) and (width<=420px){.ai-card.ai-sketch{padding:8px}.ai-card.ai-sketch .ai-card-head{display:none}.ai-card.ai-sketch .ai-composer textarea{height:40px;min-height:40px;padding:10px 12px}}.ai-composer.listening{border-color:#0000;box-shadow:0 10px 30px #ff5c8a2e}.ai-composer.listening:before{opacity:1}.ai-dictation{border-top:1px solid var(--ai-line);animation:ai-rise .22s var(--ai-ease);align-items:center;gap:8px;margin:0 8px;padding:7px 8px;display:flex}.ai-dictation-text{min-width:0;color:var(--muted);white-space:nowrap;text-overflow:ellipsis;flex:1;align-items:baseline;font-size:12.5px;font-weight:700;display:inline-flex;overflow:hidden}.ai-dictation-wave{--lvl:0;align-items:center;gap:2px;height:18px;display:inline-flex}.ai-dictation-wave i{width:3px;height:100%;transform:scaleY(calc(.25 + var(--lvl) * .75));transform-origin:50%;background:#ff5c8a;border-radius:2px;transition:transform 90ms linear}.ai-dictation-wave i:nth-child(2){transform:scaleY(calc(.35 + var(--lvl) * .65))}.ai-dictation-wave i:nth-child(3){transform:scaleY(calc(.2 + var(--lvl) * .8))}.ai-dictation-wave i:nth-child(4){transform:scaleY(calc(.3 + var(--lvl) * .6))}@container ai (width<=420px){.ai-dictation-lang{min-width:84px;max-width:104px}}.ai-reader-badge{background:var(--ai-violet-soft);color:var(--ai-violet);letter-spacing:.02em;text-transform:uppercase;border-radius:999px;flex:none;padding:3px 8px;font-size:10.5px;font-weight:800}.ai-reader-badge.free{color:#16a34a;background:#22c55e24}.ai-reader-track.unknown span{width:40%;animation:1.6s ease-in-out infinite ai-slide;transform:none}@keyframes ai-slide{0%{margin-left:-40%}to{margin-left:100%}}@container ai (width<=420px){.ai-reader-badge{display:none}}@media (prefers-reduced-motion:reduce){.ai-reader-track.unknown span{opacity:.4;width:100%;animation:none}}.ai-voice-row{border:1px solid var(--ai-line);background:var(--ai-card);border-radius:14px;align-items:center;gap:10px;padding:8px 10px;display:flex}.ai-voice-pick{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.ai-voice-pick>span{color:var(--muted);font-size:11.5px;font-weight:700}@container ai (height<=640px){.ai-voice-row{padding:5px 8px}.ai-voice-row .ai-action-icon{display:none}}.ai-voice-pick>span em{color:var(--muted);opacity:.85;font-style:normal;font-weight:600}.ai-picker{min-width:0;position:relative}.ai-picker-button{border:1px solid var(--ai-line);background:var(--surface);width:100%;min-height:32px;color:var(--ink);font:inherit;cursor:pointer;border-radius:10px;align-items:center;gap:6px;padding:5px 8px;font-size:12.5px;font-weight:600;transition:border-color .16s;display:flex}.ai-picker-button:hover{border-color:var(--ai-violet)}.ai-picker-button .ai-ico{width:15px;height:15px;color:var(--muted);margin-left:auto}.ai-picker-value{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.ai-picker-list{z-index:20;border:1px solid var(--ai-line);background:var(--panel);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);min-width:220px;animation:ai-pop-in .2s var(--ai-spring);border-radius:14px;flex-direction:column;padding:6px;display:flex;position:absolute;bottom:calc(100% + 6px);left:0;right:0;box-shadow:0 18px 40px #0f172a47}.ai-picker-find{border:1px solid var(--ai-line);background:var(--surface);color:var(--ink);font:inherit;border-radius:9px;outline:none;margin-bottom:4px;padding:7px 9px;font-size:13px}.ai-picker-find:focus{border-color:var(--ai-violet)}.ai-picker-scroll{overscroll-behavior:contain;max-height:min(300px,38cqh);overflow-y:auto}.ai-picker-group-label{color:var(--muted);letter-spacing:.04em;text-transform:uppercase;padding:6px 8px 3px;font-size:10.5px;font-weight:800}.ai-picker-item{width:100%;color:var(--ink);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:9px;align-items:center;gap:8px;padding:7px 8px;font-size:13px;display:flex}.ai-picker-item:hover{background:var(--hover)}.ai-picker-item.on{background:var(--ai-violet-soft);color:var(--ai-violet);font-weight:700}.ai-picker-item .ai-ico{width:15px;height:15px;margin-left:auto}.ai-picker-item-label{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.ai-picker-item-hint{color:var(--muted);white-space:nowrap;margin-left:auto;font-size:11.5px;font-weight:600}.ai-picker-item.on .ai-picker-item-hint{margin-left:0}.ai-picker-empty{color:var(--muted);margin:0;padding:10px 8px;font-size:12.5px}.ai-picker-footer{border-top:1px solid var(--ai-line);color:var(--muted);margin-top:4px;padding:8px;font-size:11.5px;line-height:1.45}.ai-picker-footer strong{color:var(--text-soft)}.ai-dictation-lang{min-width:108px;max-width:150px}.tb-btn.read-btn .ai-ico{width:20px;height:20px}.tb-btn.read-btn.reading{color:#ec4899;background:#ec489924;animation:1.6s ease-out infinite ai-listen}:root{--board-paper:#f7f7f5;--canvas-filter:none;--paper:#f7f7f5;--ink:#1f2328;--text-soft:#374151;--panel:#fffffff5;--panel-border:#1f23281a;--surface:#fff;--hover:#1f23280f;--chip:#1f23280d;--muted:#6b7280;--accent:#0090ff;--accent-soft:#0090ff21;--on-accent:#fff;--danger:#d92d3a;--warn:#b45309;--success:#15803d;--note-bg:#fff7e0;--note-fg:#7a4d00;--backdrop:#0f172a47;--toast-bg:#1f2328;--toast-fg:#fff;--swatch-ring:#00000026;--btn:40px;--gap:3px;--pad:5px;--radius:14px;--font:13px;--icon:20px;--shadow:0 6px 24px #0f172a1f, 0 1px 3px #0f172a14;--accent-shadow:0 2px 8px #0090ff59;--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);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-family:Nunito,Segoe UI Variable Text,Segoe UI,Inter,Roboto,system-ui,-apple-system,BlinkMacSystemFont,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}:root[data-theme=dark]{--canvas-filter:invert(.93) hue-rotate(180deg);--paper:#18191b;--ink:#e6e8eb;--text-soft:#c4c9d0;--panel:#202226f5;--panel-border:#ffffff1a;--surface:#25272c;--hover:#ffffff14;--chip:#ffffff12;--muted:#9aa3ae;--accent:#3b9eff;--accent-soft:#3b9eff33;--on-accent:#fff;--danger:#ff6369;--warn:#f5b454;--success:#4ade80;--note-bg:#3a2f12;--note-fg:#f5d68b;--backdrop:#0000008c;--toast-bg:#e6e8eb;--toast-fg:#16181b;--swatch-ring:#fff3;--shadow:0 6px 24px #00000073, 0 1px 3px #00000059;--accent-shadow:0 2px 10px #3b9eff59;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@media (prefers-color-scheme:dark){:root:not([data-theme]){--canvas-filter:invert(.93) hue-rotate(180deg);--paper:#18191b;--ink:#e6e8eb;--text-soft:#c4c9d0;--panel:#202226f5;--panel-border:#ffffff1a;--surface:#25272c;--hover:#ffffff14;--chip:#ffffff12;--muted:#9aa3ae;--accent:#3b9eff;--accent-soft:#3b9eff33;--on-accent:#fff;--danger:#ff6369;--warn:#f5b454;--success:#4ade80;--note-bg:#3a2f12;--note-fg:#f5d68b;--backdrop:#0000008c;--toast-bg:#e6e8eb;--toast-fg:#16181b;--swatch-ring:#fff3;--shadow:0 6px 24px #00000073, 0 1px 3px #00000059;--accent-shadow:0 2px 10px #3b9eff59;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*,:before,:after{box-sizing:border-box}html,body,#root{overscroll-behavior:none;background:var(--paper);width:100%;height:100%;color:var(--ink);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;margin:0;overflow:hidden}.app{top:0;bottom:0;left:0;right:0;right:var(--rp-w,0px);transition:right .2s;position:fixed;overflow:hidden}.whiteboard{touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;overscroll-behavior:none;background:var(--board-paper);filter:var(--canvas-filter);position:absolute;top:0;bottom:0;left:0;right:0}.toolbar,.topbar,.zoombar,.history-bar,.style-panel,.menu,.flyout{background:var(--panel);border:1px solid var(--panel-border);border-radius:var(--radius);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(10px);touch-action:manipulation;-webkit-user-select:none;user-select:none}.app{--dock-h:calc(var(--btn) + 14px);--dock-w:0px;--edge:10px}.tb-btn{min-width:var(--btn);height:var(--btn);border-radius:calc(var(--radius) - 4px);color:var(--ink);font-family:inherit;font-size:var(--font);font-variant-numeric:tabular-nums;cursor:pointer;background:0 0;border:0;flex:none;place-items:center;padding:0 6px;font-weight:600;line-height:1;transition:background-color .12s,box-shadow .12s,color .12s,transform .12s;display:inline-grid;position:relative}.tb-btn:hover:not(:disabled){background:var(--hover)}.tb-btn:active:not(:disabled){transform:scale(.95)}.tb-btn:disabled{opacity:.35;cursor:default}.tb-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.sp-chip:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.sp-swatch:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.sp-icon:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.sp-action:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.choice-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.welcome-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.menu-item:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.tb-btn svg,.sp-icon svg{width:var(--icon);height:var(--icon);fill:none;stroke:currentColor;stroke-width:1.9px;stroke-linecap:round;stroke-linejoin:round}.tb-btn svg.logo{stroke:none;width:auto;height:auto}.tb-caret{opacity:.7;border-bottom:4px solid;border-left:4px solid #0000;width:0;height:0;position:absolute;bottom:-3px;right:-4px}.toolbar{z-index:10;border-radius:calc(var(--radius) + 4px);left:50%;bottom:calc(var(--edge) + var(--safe-b));max-width:calc(100% - 16px - var(--safe-l) - var(--safe-r));scrollbar-width:none;align-items:center;gap:6px;padding:6px;display:flex;position:absolute;overflow:auto visible;transform:translate(-50%)}.toolbar::-webkit-scrollbar{display:none}.tb-group{align-items:center;gap:var(--gap);display:flex}.tb-group+.tb-group{border-left:1px solid var(--panel-border);padding-left:6px}.tb-slot{position:relative}.tb-tool,.tb-add{color:var(--text-soft);border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:3px;padding:0 4px;display:inline-flex}.tb-icon{width:var(--icon);height:var(--icon);color:var(--hue,currentColor);place-items:center;display:inline-grid;position:relative}.tb-icon svg{width:100%;height:100%}.tb-label{letter-spacing:.01em;white-space:nowrap;color:var(--text-soft);font-size:10.5px;font-weight:700;line-height:1;display:none}.tb-tool:hover:not(:disabled){background:color-mix(in srgb, var(--hue) 13%, transparent)}.tb-tool[aria-checked=true],.tb-tool[aria-checked=true]:hover:not(:disabled){background:var(--hue);box-shadow:0 4px 14px color-mix(in srgb, var(--hue) 45%, transparent)}.tb-tool[aria-checked=true] .tb-icon,.tb-tool[aria-checked=true] .tb-label{color:var(--on-accent)}.tb-add{background:linear-gradient(135deg,#ff5f6d 0%,#ffb454 35%,#3fca72 68%,#3b82f6 100%);box-shadow:0 4px 14px #3b82f64d}.tb-add .tb-icon,.tb-add .tb-label{color:var(--on-accent)}.tb-add svg{stroke-width:2.6px}.tb-add:hover:not(:disabled){filter:brightness(1.07)saturate(1.05);background:linear-gradient(135deg,#ff5f6d 0%,#ffb454 35%,#3fca72 68%,#3b82f6 100%)}.tb-add[aria-expanded=true]{box-shadow:0 0 0 3px var(--accent-soft), 0 4px 14px #3b82f659}.flyout{z-index:30;gap:var(--gap);padding:var(--pad);bottom:calc(var(--edge) * 2 + var(--dock-h) + var(--safe-b));left:calc((100% - var(--rp-w,0px)) / 2);display:flex;position:fixed;transform:translate(-50%)}.shape-picker{width:min(360px, calc(100vw - 16px - var(--safe-l) - var(--safe-r)));flex-direction:column;align-items:stretch;gap:6px;max-height:min(420px,100vh - 140px);padding:8px}.shape-search{border:1px solid var(--panel-border);background:var(--paper);height:34px;color:var(--ink);border-radius:8px;padding:0 10px;font-family:inherit;font-size:14px}.shape-search:focus{border-color:var(--accent);outline:none}.shape-count{opacity:.6;font-weight:500}.shape-tabs{flex-wrap:nowrap}.shape-tabs .sp-chip{flex:1}.shape-grid{grid-template-columns:repeat(auto-fill, minmax(var(--btn), 1fr));gap:var(--gap);overscroll-behavior:contain;display:grid;overflow-y:auto}.shape-cell{width:100%}.shape-cell[aria-checked=true]{background:var(--accent-soft);box-shadow:inset 0 0 0 2px var(--accent)}.tb-btn svg path{vector-effect:non-scaling-stroke}.topbar{z-index:20;top:calc(var(--edge) + var(--safe-t));left:calc(var(--edge) + var(--safe-l));border-radius:calc(var(--radius) + 4px);align-items:center;gap:4px;max-width:calc(100% - 340px);padding:5px;display:flex;position:absolute}.brand-btn{align-items:center;gap:6px;padding:0 8px 0 5px;display:inline-flex}.brand-btn>svg:not(.logo){width:18px;height:18px;color:var(--muted)}.logo{width:calc(var(--btn) - 10px);height:calc(var(--btn) - 10px);object-fit:contain;border-radius:22%;flex:none;display:block;box-shadow:0 2px 6px #0f172a38}.title-wrap{flex-direction:column;justify-content:center;gap:1px;min-width:0;padding:0 6px 0 2px;display:flex}.title-input{width:22ch;min-width:60px;max-width:100%;height:24px;color:var(--ink);text-overflow:ellipsis;background:0 0;border:1px solid #0000;border-radius:7px;padding:0 6px;font-family:inherit;font-size:15px;font-weight:700;line-height:1}.title-input:hover{border-color:var(--panel-border)}.title-input:focus{border-color:var(--accent);background:var(--surface);outline:none}.save-status{color:var(--muted);white-space:nowrap;align-items:center;gap:5px;padding:0 7px;font-size:11.5px;font-weight:600;display:inline-flex}.save-dot{background:var(--success);border-radius:50%;width:7px;height:7px}.save-status.unsaved .save-dot,.save-status.saving .save-dot{background:var(--warn)}.save-status.error{color:var(--danger)}.save-status.error .save-dot{background:var(--danger)}.cloud-status.saved .save-dot{background:var(--accent)}.cloud-status.waiting .save-dot{background:var(--warn)}.cloud-status.saving .save-dot{background:var(--accent);animation:1s ease-in-out infinite alternate cloud-pulse}@keyframes cloud-pulse{to{opacity:.3}}.library-cloud{border-top:1px solid var(--panel-border);flex:none;max-height:45%;overflow-y:auto}.library-cloud-title{align-items:baseline;gap:8px;margin:0;padding:12px 16px 0;font-size:15px;display:flex}.library-cloud-title small{color:var(--muted);font-size:12px;font-weight:600}.library-cloud>.dialog-hint{margin:8px 16px 12px}.library-cloud-badge{background:var(--accent-soft);color:var(--accent);border-radius:999px;padding:1px 7px;font-size:11px;font-weight:700}.mode{min-width:0;height:calc(var(--btn) + 12px);background:var(--panel);border:1px solid var(--panel-border);box-shadow:var(--shadow);border-radius:999px;align-items:center;gap:6px;padding:0 6px 0 12px;display:flex}.mode-badge{min-width:0;color:var(--muted);white-space:nowrap;align-items:center;gap:6px;font-size:12px;font-weight:700;display:flex}.mode-label{text-overflow:ellipsis;max-width:18ch;overflow:hidden}.mode-dot{background:var(--muted);border-radius:50%;flex:none;width:8px;height:8px}.mode[data-mode=online] .mode-badge{color:var(--success)}.mode[data-mode=online] .mode-dot{background:#22c55e;box-shadow:0 0 0 3px #22c55e33}.mode-btn{height:calc(var(--btn) - 8px);background:var(--accent-soft);color:var(--accent);white-space:nowrap;cursor:pointer;border:0;border-radius:999px;flex:none;padding:0 12px;font-family:inherit;font-size:12px;font-weight:700;line-height:1}.mode-btn:hover:not(:disabled){background:var(--accent);color:var(--on-accent)}.mode-btn:disabled{opacity:.6;cursor:default}.dialog-backdrop{z-index:50;background:var(--backdrop);place-items:center;padding:16px;display:grid;position:fixed;top:0;bottom:0;left:0;right:0}.dialog{border:1px solid var(--panel-border);border-radius:var(--radius);background:var(--surface);width:min(400px,100%);color:var(--ink);box-shadow:var(--shadow);padding:20px}.dialog h2{margin:0 0 8px;font-size:18px}.dialog-text{color:var(--text-soft);margin:0 0 10px;font-size:14px;line-height:1.45}.dialog-note{background:var(--note-bg);color:var(--note-fg);border-radius:8px;margin:0 0 14px;padding:8px 10px;font-size:13px;line-height:1.4}.dialog-field{gap:6px;font-size:13px;font-weight:600;display:grid}.dialog-field input{border:1px solid var(--panel-border);background:var(--paper);height:40px;color:var(--ink);border-radius:8px;padding:0 10px;font-family:inherit;font-size:15px}.dialog-field input:focus{border-color:var(--accent);outline:none}.dialog-actions{justify-content:flex-end;gap:8px;margin-top:18px;display:flex}.dialog-btn{border:1px solid var(--panel-border);background:var(--surface);min-height:40px;color:var(--ink);cursor:pointer;border-radius:8px;padding:0 16px;font-family:inherit;font-size:14px;font-weight:600}.dialog-btn:hover:not(:disabled){background:var(--hover)}.dialog-btn.primary{border-color:var(--accent);background:var(--accent);color:var(--on-accent)}.dialog-btn.danger{border-color:var(--danger);background:var(--danger);color:#fff}.dialog-btn.primary:hover:not(:disabled),.dialog-btn.danger:hover:not(:disabled){filter:brightness(1.08)}.dialog-btn:disabled{opacity:.5;cursor:default}.top-right{z-index:20;top:calc(var(--edge) + var(--safe-t));right:calc(var(--edge) + var(--safe-r));align-items:center;gap:8px;display:flex;position:absolute}.top-extra{background:var(--panel);border:1px solid var(--panel-border);box-shadow:var(--shadow);height:calc(var(--btn) + 12px);min-width:calc(var(--btn) + 12px);border-radius:999px}.top-extra[aria-pressed=true],.top-extra[aria-expanded=true]{color:var(--accent);box-shadow:inset 0 0 0 2px var(--accent), var(--shadow)}.zoombar,.history-bar{z-index:12;bottom:calc(var(--edge) * 2 + var(--dock-h) + var(--safe-b));border-radius:999px;align-items:center;gap:2px;padding:5px;display:flex;position:absolute}.zoombar{right:calc(var(--edge) + var(--safe-r))}.zoombar .tb-btn,.history-bar .tb-btn{border-radius:999px}.history-bar .tb-btn{align-items:center;gap:6px;padding:0 12px;display:inline-flex}.hb-label{font-size:13px;font-weight:700}.hb-sep{background:var(--panel-border);flex:none;width:1px;height:22px;margin:0 2px}.tb-zoom{min-width:calc(var(--btn) * 1.4)}.zb-sign{font-size:20px;font-weight:600;line-height:1}.menu{width:min(340px, calc(100vw - 16px - var(--safe-l) - var(--safe-r)));max-height:calc(100vh - 90px - var(--safe-t) - var(--safe-b));flex-direction:column;gap:2px;padding:6px;display:flex;position:absolute;top:calc(100% + 6px);left:0;overflow-y:auto}.menu-section{padding:6px 4px}.menu-section+.menu-section{border-top:1px solid var(--panel-border)}.menu-foot{border-top:1px solid var(--panel-border);text-align:center;padding:4px 4px 2px}.menu-quiet{color:var(--text-soft);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:6px;padding:5px 8px;font-size:11.5px}.menu-quiet:hover{color:var(--ink);background:var(--hover)}.menu-label{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);padding:2px 8px 6px;font-size:11px;font-weight:700}.menu-hint{color:var(--muted);padding:6px 8px;font-size:13px}.menu-item{width:100%;min-height:36px;color:var(--ink);text-align:left;cursor:pointer;background:0 0;border:0;border-radius:8px;justify-content:space-between;align-items:center;gap:8px;padding:6px 8px;font-family:inherit;font-size:14px;font-weight:500;line-height:1.2;display:flex}.menu-item:hover:not(:disabled){background:var(--hover)}.menu-item.danger{color:var(--danger)}.menu-item:disabled{cursor:default}.board-list{flex-direction:column;display:flex}.board-row{align-items:center;gap:2px;display:flex}.board-row.current .menu-item{background:var(--accent-soft)}.board-title{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.board-time{color:var(--muted);flex:none;font-size:12px}.menu-mini{min-width:32px;height:32px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:8px;flex:none;font-family:inherit;font-size:13px;font-weight:600;line-height:1}.menu-mini:hover{background:var(--hover)}.menu-mini.danger{color:#fff;background:var(--danger);padding:0 8px}.menu-inline{flex-wrap:wrap;align-items:center;gap:4px;padding:4px 8px;font-size:14px;display:flex}.menu-inline>span{margin-right:4px}.menu-toggle{cursor:pointer;border-radius:8px;align-items:center;gap:10px;min-height:36px;padding:4px 8px;font-size:14px;display:flex}.menu-toggle:hover{background:var(--hover)}.menu-toggle input{width:18px;height:18px;accent-color:var(--accent)}.style-panel{z-index:15;border-radius:calc(var(--radius) + 4px);width:max-content;min-width:210px;max-width:min(300px, calc(100% - var(--edge) * 2 - var(--dock-w) - var(--safe-l) - var(--safe-r)));max-height:calc(100% - var(--btn) - var(--dock-h) - 90px - var(--safe-t) - var(--safe-b));overscroll-behavior:contain;top:calc(var(--edge) * 2 + var(--btn) + 12px + var(--safe-t));left:calc(var(--edge) + var(--dock-w) + var(--safe-l));flex-direction:column;gap:12px;padding:12px;display:flex;position:absolute;overflow-y:auto}.sp-header{border-bottom:1px solid var(--panel-border);align-items:center;gap:10px;padding-bottom:10px;display:flex}.sp-badge{background:var(--hue,var(--accent));width:34px;height:34px;color:var(--on-accent);box-shadow:0 3px 10px color-mix(in srgb, var(--hue,var(--accent)) 35%, transparent);border-radius:11px;flex:none;place-items:center;display:grid}.sp-badge svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:20px;height:20px}.sp-badge-sel{font-size:15px;font-weight:800}.sp-title{gap:1px;min-width:0;display:grid}.sp-title strong{color:var(--ink);font-size:15px;font-weight:800}.sp-title small{max-width:220px;color:var(--muted);font-size:12px;line-height:1.3}.sp-section{gap:6px;display:grid}.sp-heading{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-size:11px;font-weight:800}.sp-row{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.sp-swatch{cursor:pointer;background:0 0;border:0;border-radius:50%;place-items:center;width:32px;height:32px;padding:0;transition:transform .12s;display:inline-grid;position:relative}.sp-swatch:hover{transform:scale(1.1)}.sp-swatch:after{content:"";background:var(--swatch);width:24px;height:24px;box-shadow:inset 0 0 0 1px var(--swatch-ring);filter:var(--canvas-filter);border-radius:50%}.sp-swatch[aria-checked=true]{box-shadow:0 0 0 2px var(--panel), 0 0 0 4px var(--accent)}.sp-none:after{background:linear-gradient(135deg, transparent 45%, var(--danger) 45%, var(--danger) 55%, transparent 55%), var(--board-paper)}.sp-custom input{opacity:0;cursor:pointer;border:0;width:100%;height:100%;padding:0;position:absolute;top:0;bottom:0;left:0;right:0}.sp-chip{min-width:calc(var(--btn) * .8);height:calc(var(--btn) * .8);background:var(--chip);color:var(--ink);cursor:pointer;border:0;border-radius:10px;padding:0 11px;font-family:inherit;font-size:13px;font-weight:700;line-height:1;transition:background-color .12s,box-shadow .12s}.sp-chip:hover:not(:disabled){background:var(--hover)}.sp-chip[aria-checked=true],.sp-chip[aria-pressed=true]{background:var(--accent-soft);color:var(--accent);box-shadow:inset 0 0 0 2px var(--accent)}.sp-pin{justify-content:flex-start;align-items:center;gap:8px;width:100%;display:inline-flex}.sp-pin svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:18px;height:18px}.sp-pin[aria-pressed=true]{color:var(--danger)}.sp-width{place-items:center;padding:0;display:inline-grid}.sp-width span{filter:var(--canvas-filter);border-radius:50%;display:block}.sp-actions{border-top:1px solid var(--panel-border);grid-template-columns:repeat(4,1fr);gap:4px;padding-top:10px;display:grid}.sp-action{min-width:0;color:var(--ink);cursor:pointer;background:0 0;border:0;border-radius:10px;flex-direction:column;align-items:center;gap:4px;padding:7px 2px;font-family:inherit;font-size:11px;font-weight:700;display:flex}.sp-action span{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.sp-action svg{fill:none;stroke:currentColor;stroke-width:1.9px;stroke-linecap:round;stroke-linejoin:round;width:20px;height:20px}.sp-action:hover:not(:disabled){background:var(--hover)}.sp-action[aria-pressed=true]{color:var(--warn)}.sp-action:disabled{opacity:.35;cursor:default}.sp-danger{color:var(--danger)}.sp-icon{width:calc(var(--btn) * .85);height:calc(var(--btn) * .85);color:var(--ink);cursor:pointer;background:0 0;border:0;border-radius:8px;place-items:center;display:inline-grid}.sp-icon:hover:not(:disabled){background:var(--hover)}:where(.app.bw-760) .hb-label{display:none}:where(.app.bw-760) .mode-label{display:none}:where(.app.bw-760) .history-bar .tb-btn{padding:0 6px}:where(.app.bw-760) .topbar{max-width:calc(100% - 250px)}.app:where(.bw-560){--dock-h:calc(var(--btn) * 2 + 22px);--edge:8px}:where(.app.bw-560) .toolbar{flex-wrap:wrap;justify-content:center;row-gap:4px;width:max-content;overflow:visible}:where(.app.bw-560) .tb-group+.tb-group{border-left:0;padding-left:0}:where(.app.bw-560) .title-input{width:12ch}:where(.app.bw-560) .save-status{gap:0;font-size:0}:where(.app.bw-560) .theme-toggle{display:none}:where(.app.bw-560) .zoombar .hb-sep{display:none}:where(.app.bw-560) .zoombar .tb-btn:last-child{display:none}:where(.app.bw-560) .mode{padding-left:10px}:where(.app.bw-560) .style-panel{min-width:0}@media (pointer:coarse){:root{--btn:46px;--icon:22px}}@media (pointer:coarse) and (max-width:420px){:root{--btn:40px;--gap:2px}}@media (min-width:1800px) and (min-height:1000px){:root{--btn:60px;--icon:28px;--gap:6px;--pad:8px;--radius:18px;--font:16px}.style-panel{max-width:360px}.title-input{font-size:18px}.tb-label{font-size:13px}}@media (min-width:3000px){:root{--btn:84px;--icon:38px;--font:22px}.style-panel,.menu,.flyout,.top-stack,.rpanel-head,.rpanel-body,.rpanel-footer,.dialog-backdrop>.dialog{zoom:1.6}.tb-label{font-size:19px}.title-input{font-size:26px}}.toast{background:var(--toast-bg);max-width:100%;color:var(--toast-fg);pointer-events:none;border-radius:10px;order:9;padding:10px 14px;font-size:13px;box-shadow:0 6px 20px #0003}.insert-menu{width:min(300px, calc(100vw - 16px - var(--safe-l) - var(--safe-r)));flex-direction:column;align-items:stretch;gap:2px;max-height:min(520px,100vh - 150px);padding:6px;overflow-y:auto}.insert-icon{width:22px;height:22px;color:var(--text-soft);flex:none;place-items:center;margin-right:8px;font-size:16px;display:inline-grid}.insert-icon svg{width:18px;height:18px}.insert-table{align-items:center;gap:4px;display:flex}.insert-table>.menu-item{flex:1}.stepper{font-variant-numeric:tabular-nums;align-items:center;gap:2px;font-size:13px;display:inline-flex}.stepper>span{text-align:center;min-width:2ch}.stepper .sp-chip{min-width:24px;padding:0 4px}.muted{color:var(--muted)}.format-grid{grid-template-columns:repeat(3,1fr);gap:4px;padding:4px 2px 2px;display:grid}.format-cell{border:1px solid var(--panel-border);background:var(--surface);color:var(--ink);cursor:pointer;border-radius:8px;flex-direction:column;align-items:center;gap:4px;padding:8px 4px;font-family:inherit;font-size:12px;display:flex}.format-cell:hover{border-color:var(--accent);background:var(--accent-soft)}.format-icon{font-size:20px;line-height:1}@media (min-width:1000px) and (min-height:700px) and (pointer:fine),(min-width:1000px) and (min-height:860px){.insert-menu{top:auto;bottom:0}}.gallery{display:flex;overflow:hidden}.gallery-section-title{flex:none;margin:0;padding:12px 16px 0;font-size:15px}.gallery-nav{border-right:1px solid var(--panel-border);background:var(--paper);flex-direction:column;flex:none;gap:2px;width:220px;padding:12px;display:flex;overflow-y:auto}.gallery-nav .shape-search{margin-bottom:8px}.gallery-nav .menu-item{justify-content:space-between}.gallery-nav .menu-item[aria-pressed=true],.sticker-tabs .sp-chip[aria-pressed=true]{background:var(--accent-soft);color:var(--accent)}.gallery-main{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex}.gallery-head{border-bottom:1px solid var(--panel-border);align-items:center;gap:8px;padding:12px 16px;display:flex}.gallery-head h2{flex:1;align-items:center;gap:8px;min-width:0;margin:0;font-size:17px;display:flex}.gallery-head h2 svg{width:20px;height:20px}.gallery-grid{flex:1;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));align-content:start;gap:14px;padding:16px;display:grid;overflow-y:auto}.tpl-card{border:1px solid var(--panel-border);background:var(--surface);color:var(--ink);text-align:left;font:inherit;cursor:pointer;border-radius:10px;flex-direction:column;gap:4px;padding:8px;transition:border-color .12s,box-shadow .12s,transform .12s;display:flex}.tpl-card:hover{border-color:var(--accent);box-shadow:var(--accent-shadow);outline:none;transform:translateY(-1px)}.tpl-card:focus-visible{border-color:var(--accent);box-shadow:var(--accent-shadow);outline:none;transform:translateY(-1px)}.tpl-preview{aspect-ratio:16/10;background:var(--board-paper);filter:var(--canvas-filter);border-radius:6px;place-items:center;display:grid;overflow:hidden}.tpl-preview svg,.tpl-preview img{object-fit:contain;width:100%;height:100%}.tpl-name{font-size:14px;font-weight:600}.tpl-desc{color:var(--muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:12px;display:-webkit-box;overflow:hidden}@container (width<=600px){.gallery{flex-direction:column}.gallery-nav{border-right:0;border-bottom:1px solid var(--panel-border);flex-flow:row;width:auto;padding:8px;overflow:auto hidden}.gallery-nav .shape-search{min-width:160px;margin:0}.gallery-nav .menu-label{display:none}.gallery-nav .menu-item{white-space:nowrap;flex:none;width:auto}.gallery-grid{grid-template-columns:repeat(auto-fill,minmax(min(150px,100%),1fr));gap:10px;padding:10px}}.sticker-panel{flex-direction:column;display:flex;overflow:hidden}.sticker-panel>.shape-search{flex:none;margin:12px 16px 0}.sticker-tabs{flex-wrap:nowrap;flex:none;padding:8px 16px;overflow-x:auto}.sticker-tabs .sp-chip{white-space:nowrap;flex:none}.sticker-body{flex:1;padding:4px 16px 16px;overflow-y:auto}.sticker-grid{grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:10px;display:grid}.sticker-cell{aspect-ratio:2;border:1px solid var(--panel-border);background:var(--board-paper);filter:var(--canvas-filter);cursor:pointer;border-radius:8px;place-items:center;padding:6px;display:grid}.sticker-cell svg,.sticker-cell img{width:100%;height:100%}.sticker-cell:hover,.emoji-cell:hover{border-color:var(--accent);box-shadow:var(--accent-shadow)}.emoji-grid{grid-template-columns:repeat(auto-fill,minmax(44px,1fr));gap:4px;display:grid}.emoji-cell{aspect-ratio:1;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;place-items:center;font-family:Segoe UI Emoji,Apple Color Emoji,Noto Color Emoji,sans-serif;font-size:26px;line-height:1;display:grid}.emoji-cell:hover{background:var(--hover);transform:scale(1.12)}.embed-body{flex-direction:column;display:flex;overflow:hidden}.embed-video{aspect-ratio:16/9;background:#000;flex:none;height:auto;max-height:100%}:root.rpanel-dragging iframe{pointer-events:none}.embed-title{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.embed-frame{background:var(--board-paper);border:0;flex:1;width:100%}.embed-offline{text-align:center;color:var(--text-soft);flex:1;place-content:center;justify-items:center;gap:12px;padding:24px;display:grid}.embed-note{border-top:1px solid var(--panel-border);flex:none;margin:auto 0 0;padding:8px 16px}.panel-form{align-content:start;gap:12px;padding:16px;display:grid}.panel-form>p{margin:0}.dialog-error{color:var(--danger);margin:-4px 0 10px;font-size:13px}.dialog-hint{color:var(--muted);margin:4px 0 10px;font-size:12px}.findbar{z-index:25;top:calc(var(--edge) * 2 + var(--btn) + 12px + var(--safe-t));right:calc(8px + var(--safe-r));width:min(380px, calc(100% - 16px - var(--safe-l) - var(--safe-r)));background:var(--panel);border:1px solid var(--panel-border);border-radius:var(--radius);box-shadow:var(--shadow);color:var(--ink);align-items:center;gap:4px;padding:4px 4px 4px 10px;display:flex;position:absolute}.findbar>svg{width:18px;height:18px;color:var(--muted);flex:none}.findbar input{min-width:0;height:32px;color:var(--ink);background:0 0;border:0;outline:none;flex:1;font-family:inherit;font-size:14px}.find-count{color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap;flex:none;font-size:12px}.findbar .tb-btn{--btn:32px}.facilitate-menu{width:min(300px, calc(100vw - 16px - var(--safe-l) - var(--safe-r)));left:auto;right:0}.reaction-row{border-bottom:1px solid var(--panel-border);grid-template-columns:repeat(4,1fr);gap:4px;margin-bottom:4px;padding:4px 2px 8px;display:grid}.reaction-btn{background:var(--hover);cursor:pointer;border:0;border-radius:10px;height:40px;font-family:Segoe UI Emoji,Apple Color Emoji,Noto Color Emoji,sans-serif;font-size:22px;line-height:1;transition:transform .12s}.reaction-btn:hover{transform:scale(1.15)}.reaction-btn:active{transform:scale(.92)}.reactions-layer{z-index:45;pointer-events:none;position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden}.reaction-floater{will-change:transform, opacity;flex-direction:column;align-items:center;gap:4px;animation:3.2s ease-out forwards reaction-float;display:flex;position:absolute;bottom:60px}@keyframes reaction-float{0%{opacity:0;transform:translate(0)scale(.4)}12%{opacity:1;transform:translateY(-30px)scale(1.15)}to{transform:translate(var(--drift,0), -60vh) scale(.9);opacity:0}}@media (prefers-reduced-motion:reduce){.reaction-floater{animation-duration:1.2s}}.timer-widget{background:var(--panel);border:1px solid var(--panel-border);max-width:calc(100% - 16px);box-shadow:var(--shadow);color:var(--ink);border-radius:999px;flex-wrap:wrap;justify-content:center;align-items:center;gap:6px;padding:6px 8px;display:flex}.timer-setup{border-radius:var(--radius)}.timer-title{align-items:center;gap:6px;padding:0 4px;font-weight:600;display:inline-flex}.timer-title svg{width:18px;height:18px}.timer-custom{border:1px solid var(--panel-border);background:var(--paper);width:56px;height:30px;color:var(--ink);border-radius:8px;padding:0 8px;font-family:inherit;font-size:13px}.timer-custom:focus{border-color:var(--accent);outline:none}.timer-ring{--p:1;--ring:var(--accent);background:conic-gradient(var(--ring) calc(var(--p) * 360deg), var(--hover) 0);border-radius:50%;flex:none;width:28px;height:28px;-webkit-mask:radial-gradient(circle,#0000 8px,#000 9px);mask:radial-gradient(circle,#0000 8px,#000 9px)}.timer-time{font-variant-numeric:tabular-nums;text-align:center;min-width:5ch;font-family:inherit;font-size:22px;font-weight:700;line-height:1}.timer-widget.ending .timer-time{color:var(--danger)}.timer-widget.ending .timer-ring{--ring:var(--danger)}.timer-widget.done{border-color:var(--danger);animation:1s ease-in-out 3 timer-pulse}.timer-widget.done .timer-time{color:var(--danger);font-size:18px}@keyframes timer-pulse{50%{box-shadow:0 0 0 6px color-mix(in srgb, var(--danger) 30%, transparent), var(--shadow)}}.side-panel{flex-direction:column;gap:10px;padding:14px;display:flex}.side-panel .dialog-text,.side-panel .dialog-hint{margin:0}.side-panel .sp-row{flex-wrap:wrap;gap:6px}.side-panel .dialog-btn{flex:1}.vote-status{background:var(--accent-soft);color:var(--ink);border-radius:10px;justify-content:space-between;align-items:baseline;padding:10px 12px;display:flex}.vote-status strong{font-size:16px}.vote-status span{color:var(--text-soft);font-size:13px}.vote-results{flex-direction:column;gap:2px;margin:0;padding:0 0 0 22px;display:flex}.vote-results .menu-item{justify-content:space-between;gap:8px}.vote-count{background:var(--accent);color:#fff;text-align:center;border-radius:999px;flex:none;min-width:26px;padding:2px 8px;font-size:12px;font-weight:700}.notes-area{resize:vertical;border:1px solid var(--panel-border);background:var(--paper);min-height:220px;color:var(--ink);border-radius:8px;padding:10px;font-family:inherit;font-size:14px;line-height:1.5}.notes-area:focus{border-color:var(--accent);outline:none}.top-stack{z-index:40;left:50%;top:calc(var(--edge) * 2 + var(--btn) + 12px + var(--safe-t));pointer-events:none;flex-direction:column;align-items:center;gap:6px;width:max-content;max-width:calc(100% - 32px);display:flex;position:absolute;transform:translate(-50%)}.top-stack>*{pointer-events:auto}.top-stack>.toast{pointer-events:none}.session-pill{background:var(--panel);border:1px solid var(--panel-border);max-width:100%;box-shadow:var(--shadow);color:var(--ink);border-radius:999px;align-items:center;gap:8px;padding:4px 4px 4px 12px;font-size:13px;display:inline-flex}.session-pill>svg{fill:none;stroke:currentColor;stroke-width:1.8px;flex:none;width:16px;height:16px}.session-pill>span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.private-pill{border-color:var(--warn);color:var(--warn)}.private-pill>span{color:var(--ink)}.vote-pill{border-color:var(--success)}.vote-pill>svg{color:var(--success)}.pill-btn{background:var(--chip);height:28px;color:var(--ink);cursor:pointer;border:0;border-radius:999px;flex:none;padding:0 12px;font-family:inherit;font-size:12px;font-weight:600}.pill-btn:hover{background:var(--hover)}.fac-name{color:var(--muted);align-items:center;gap:8px;padding:4px 4px 8px;font-size:12px;font-weight:600;display:flex}.fac-name input{border:1px solid var(--panel-border);background:var(--paper);min-width:0;height:32px;color:var(--ink);border-radius:8px;flex:1;padding:0 10px;font-family:inherit;font-size:14px}.fac-name input:focus{border-color:var(--accent);outline:none}.fac-name input[aria-invalid=true]{border-color:var(--danger)}.fac-hint{margin:-4px 4px 6px}.reaction-log{border-bottom:1px solid var(--panel-border);flex-direction:column;gap:2px;margin:0 0 4px;padding:0 4px 6px;font-size:12px;list-style:none;display:flex}.reaction-log li{align-items:center;gap:6px;display:flex}.reaction-log-emoji{font-family:Segoe UI Emoji,Apple Color Emoji,Noto Color Emoji,sans-serif;font-size:16px}.reaction-log-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-weight:600;overflow:hidden}.reaction-emoji{font-family:Segoe UI Emoji,Apple Color Emoji,Noto Color Emoji,sans-serif;font-size:44px;line-height:1}.reaction-name{background:var(--toast-bg);max-width:160px;color:var(--toast-fg);white-space:nowrap;text-overflow:ellipsis;border-radius:999px;padding:2px 8px;font-size:12px;font-weight:600;overflow:hidden;box-shadow:0 2px 8px #0003}.voting-panel .dialog-field input{height:36px;font-size:14px}.voting-panel .menu-toggle{padding-left:0;padding-right:0}.vote-field{gap:6px;font-size:13px;font-weight:600;display:grid}.vote-topic{margin:0;font-size:15px;font-style:italic;font-weight:600}.vote-turn{background:var(--accent-soft);border-radius:10px;gap:6px;padding:12px;display:grid}.vote-turn-head{align-items:baseline;gap:8px;min-width:0;display:flex}.vote-turn-label{color:var(--muted);flex:none;font-size:12px}.vote-turn-name{min-width:0;color:var(--ink);text-align:left;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;background:0 0;border:0;padding:0;font-family:inherit;font-size:17px;font-weight:700;overflow:hidden}.vote-rename{border:1px solid var(--accent);background:var(--paper);min-width:0;height:30px;color:var(--ink);border-radius:6px;flex:1;padding:0 8px;font-family:inherit;font-size:15px}.vote-dots{flex-wrap:wrap;gap:5px;display:flex}.vote-dot{background:var(--success);border-radius:50%;width:14px;height:14px}.vote-dot.used{box-shadow:inset 0 0 0 2px var(--muted);opacity:.5;background:0 0}.vote-turn-left{color:var(--text-soft);font-size:13px}.vote-how{margin:2px 0 0;font-size:13px}.vote-section{gap:4px;display:grid}.vote-section>.menu-label,.vote-section>summary{padding-left:0}details.vote-section>summary{cursor:pointer}.vote-mine,.vote-voters{gap:2px;margin:0;padding:0;list-style:none;display:grid}.vote-mine li{align-items:center;gap:2px;display:flex}.vote-mine .menu-item{flex:1;min-width:0}.vote-voters li{justify-content:space-between;gap:8px;padding:2px 0;font-size:13px;display:flex}.vote-ballot{flex-direction:column;justify-content:flex-start!important}.vote-ballot>span{color:var(--text-soft)}.vote-next-row{gap:6px;display:flex}.vote-next-row input{border:1px solid var(--panel-border);background:var(--paper);min-width:0;height:36px;color:var(--ink);border-radius:8px;flex:1;padding:0 10px;font-family:inherit;font-size:14px}.vote-next-row input:focus{border-color:var(--accent);outline:none}.vote-next-row .dialog-btn{flex:none}.vote-result-text{text-align:left;min-width:0;display:grid}.vote-result-text .board-time{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.vote-results li.winner .menu-item{background:var(--accent-soft)}.main-menu{width:min(360px, calc(100vw - 16px - var(--safe-l) - var(--safe-r)));border-radius:calc(var(--radius) + 4px);padding:8px}.menu-item.with-icon{justify-content:flex-start;gap:10px}.menu-icon{width:22px;height:22px;color:var(--text-soft);flex:none;place-items:center;display:inline-grid}.menu-icon svg,.menu-mini svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:19px;height:19px}.menu-item.danger .menu-icon{color:var(--danger)}.menu-text{flex:1;min-width:0}.menu-inline .menu-text{flex:none}.chip-row{gap:4px;margin-left:auto;display:inline-flex}.board-now{color:var(--accent);font-weight:700}.menu-choice{grid-template-columns:repeat(auto-fit,minmax(64px,1fr));gap:6px;padding:4px 6px 8px;display:grid}.choice-card{border:1px solid var(--panel-border);background:var(--surface);color:var(--ink);cursor:pointer;border-radius:12px;flex-direction:column;align-items:center;gap:6px;padding:8px 4px;font-family:inherit;font-size:12px;font-weight:700;display:flex}.choice-card svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:22px;height:22px}.choice-card:hover{border-color:var(--accent)}.choice-card[aria-checked=true]{border-color:var(--accent);background:var(--accent-soft);color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.paper-preview{border:1px solid var(--panel-border);background-color:var(--board-paper);width:34px;height:24px;filter:var(--canvas-filter);border-radius:5px}.paper-dots{background-image:radial-gradient(circle,#0f172a59 1px,#0000 1.3px);background-size:6px 6px}.paper-grid{background-image:linear-gradient(#0f172a33 1px,#0000 1px),linear-gradient(90deg,#0f172a33 1px,#0000 1px);background-size:6px 6px}.paper-lines{background-image:linear-gradient(#0f172a40 1px,#0000 1px);background-size:100% 6px}.menu-toggle{justify-content:space-between}.menu-toggle-text{gap:1px;min-width:0;display:grid}.menu-toggle-text small{color:var(--muted);font-size:11.5px;line-height:1.3}.menu-toggle input.switch{-webkit-appearance:none;appearance:none;background:var(--chip);width:40px;height:24px;box-shadow:inset 0 0 0 1px var(--panel-border);cursor:pointer;border-radius:999px;flex:none;margin:0;transition:background-color .15s;position:relative}.menu-toggle input.switch:after{content:"";background:var(--surface);border-radius:50%;width:18px;height:18px;transition:transform .15s;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #00000040}.menu-toggle input.switch:checked{background:var(--success);box-shadow:none}.menu-toggle input.switch:checked:after{transform:translate(16px)}.menu-toggle input.switch:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.welcome{z-index:11;width:min(560px, calc(100% - 32px - var(--dock-w)));margin-left:calc(var(--dock-w) / 2);border:1px solid var(--panel-border);background:var(--panel);box-shadow:var(--shadow);color:var(--ink);text-align:center;-webkit-backdrop-filter:blur(10px);border-radius:22px;padding:22px 22px 16px;animation:.26s ease-out welcome-in;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}@keyframes welcome-in{0%{opacity:0;transform:translate(-50%,-46%)}}.welcome h2{margin:0 0 4px;font-size:22px;font-weight:800}.welcome>p{color:var(--text-soft);margin:0 0 16px;font-size:15px}.welcome-close{width:32px;height:32px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:50%;place-items:center;display:grid;position:absolute;top:10px;right:10px}.welcome-close:hover{background:var(--hover)}.welcome-close svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;width:18px;height:18px}.welcome-grid{grid-template-columns:repeat(4,1fr);gap:10px;display:grid}.welcome-card{border:1px solid var(--panel-border);background:var(--surface);color:var(--ink);cursor:pointer;border-radius:16px;flex-direction:column;align-items:center;gap:6px;padding:16px 8px 14px;font-family:inherit;transition:transform .14s,box-shadow .14s,border-color .14s;display:flex}.welcome-card:hover{border-color:var(--hue);box-shadow:0 8px 20px color-mix(in srgb, var(--hue) 25%, transparent);transform:translateY(-3px)}.welcome-card strong{font-size:15px;font-weight:800}.welcome-card small{color:var(--muted);font-size:12px;line-height:1.3}.welcome-icon{background:var(--hue);width:52px;height:52px;color:var(--on-accent);box-shadow:0 4px 12px color-mix(in srgb, var(--hue) 40%, transparent);border-radius:16px;place-items:center;display:grid}.welcome-icon svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:28px;height:28px}.welcome-tip{color:var(--muted);margin:14px 0 0;font-size:12px}:where(.app.bw-560) .welcome{padding:18px 14px 12px}:where(.app.bw-560) .welcome-grid{grid-template-columns:repeat(2,1fr)}:where(.app.bw-560) .welcome h2{font-size:19px}.brand-btn{gap:8px;padding:0 8px 0 4px}.brand-btn>svg:not(.logo){width:15px;height:15px}.wordmark{letter-spacing:-.01em;color:var(--ink);white-space:nowrap;font-size:16px;font-weight:800}.wordmark b{background:linear-gradient(90deg,#ff5f6d,#ffb454 45%,#3fca72 75%,#3b82f6);color:#0000;-webkit-background-clip:text;background-clip:text;font-weight:900}.topbar-sep{background:var(--panel-border);flex:none;width:1px;height:28px;margin:0 4px}:where(.app.bw-760) .wordmark{display:none}:where(.app.bw-760) .topbar-sep{display:none}[data-tip]{position:relative}@media (hover:hover){[data-tip]:hover:after{content:attr(data-tip);z-index:60;background:var(--toast-bg);color:var(--toast-fg);white-space:nowrap;pointer-events:none;border-radius:8px;padding:6px 10px;font-family:inherit;font-size:12.5px;font-weight:700;line-height:1.2;animation:.12s ease-out .25s both tip-in;position:absolute;bottom:calc(100% + 10px);left:50%;transform:translate(-50%);box-shadow:0 4px 14px #00000040}[data-tip][data-tip-pos=bottom]:hover:after{top:calc(100% + 10px);bottom:auto}.zoombar .zb-fit[data-tip]:hover:after{left:auto;right:0;transform:none}[data-tip][aria-expanded=true]:hover:after{display:none}}@keyframes tip-in{0%{opacity:0}}.zb-frames{position:relative}.zb-frames[aria-pressed=true]{background:var(--accent-soft);color:var(--accent)}.zb-count{background:var(--accent);min-width:16px;height:16px;color:var(--on-accent);text-align:center;border-radius:999px;padding:0 4px;font-size:10px;font-weight:800;line-height:16px;position:absolute;top:2px;right:2px}:where(.app.bw-560) .zoombar .tb-zoom{min-width:calc(var(--btn) * 1.15)}.frames-panel{overflow:hidden}.frames-count{background:var(--chip);min-width:22px;color:var(--muted);text-align:center;border-radius:999px;padding:1px 7px;font-size:12px;font-weight:800}.frames-list{overscroll-behavior:contain;flex-direction:column;flex:1;gap:12px;min-height:0;margin:0 -14px;padding:2px 14px;list-style:none;display:flex;overflow-y:auto}.frame-card{border:1px solid var(--panel-border);background:var(--surface);border-radius:12px;position:relative}.frame-card.active{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}.frame-thumb{aspect-ratio:16/10;border:0;border-bottom:1px solid var(--panel-border);background:var(--chip);cursor:pointer;border-radius:12px 12px 0 0;place-items:center;width:100%;padding:8px;display:grid;overflow:hidden}.frame-thumb img{max-width:100%;max-height:100%;filter:var(--canvas-filter);border-radius:3px;box-shadow:0 1px 4px #0f172a2e}.frame-thumb-empty{background:var(--board-paper);width:60%;height:60%;filter:var(--canvas-filter);border-radius:4px}.frame-row{align-items:center;gap:6px;padding:4px 4px 4px 10px;display:flex;position:relative}.frame-num{min-width:18px;color:var(--muted);flex:none;font-size:12px;font-weight:800}.frame-name{min-width:0;color:var(--ink);text-align:left;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;background:0 0;border:0;flex:1;padding:6px 0;font-family:inherit;font-size:14px;font-weight:700;overflow:hidden}.frame-rename{border:1px solid var(--accent);background:var(--paper);min-width:0;height:30px;color:var(--ink);border-radius:6px;flex:1;padding:0 8px;font-family:inherit;font-size:14px}.frame-more{--btn:32px}.frame-menu{z-index:5;width:250px;top:calc(100% + 2px);left:auto;right:4px}.frames-empty{text-align:center;justify-items:center;gap:6px;padding:18px 8px 8px;display:grid}.frames-empty p{color:var(--text-soft);margin:0;font-size:13px;line-height:1.45}.frames-empty-icon{background:var(--accent-soft);width:52px;height:52px;color:var(--accent);border-radius:16px;place-items:center;display:grid}.frames-empty-icon svg,.frames-add svg{fill:none;stroke:currentColor;stroke-width:1.9px;stroke-linecap:round;stroke-linejoin:round;width:26px;height:26px}.frames-add{border:1px dashed var(--accent);background:var(--accent-soft);height:44px;color:var(--accent);cursor:pointer;border-radius:12px;flex:none;justify-content:center;align-items:center;gap:8px;font-family:inherit;font-size:14px;font-weight:800;display:inline-flex}.frames-add svg{width:20px;height:20px}.frames-add:hover{background:var(--accent);color:var(--on-accent);border-style:solid}.frame-menu{padding:4px;top:auto;bottom:calc(100% + 2px)}.frame-menu .menu-item{min-height:32px;padding:4px 8px;font-size:13px}.tb-collapse{display:none}.app{--zb-w:calc(var(--btn) * 8 + 64px)}.toolbar{flex-wrap:wrap;justify-content:center;row-gap:4px;overflow:visible}.app:where(.bw-760:not(.bw-560)){--dock-h:calc(var(--btn) * 2 + 22px)}:where(.app:not(.bw-lt1200)) .toolbar{left:calc((100% - var(--zb-w) - var(--edge)) / 2);max-width:calc(100% - var(--zb-w) - var(--edge) * 4)}:where(.app:not(.bw-lt1200)) .flyout{left:calc((100% - var(--rp-w,0px) - var(--zb-w) - var(--edge)) / 2)}:where(.app:not(.bw-lt1200)) .zoombar{bottom:calc(var(--edge) + var(--safe-b))}.app:where(:not(.bw-lt1680)){--dock-h:calc(var(--btn) + 28px)}:where(.app:not(.bw-lt1680)) .tb-label{display:block}:where(.app:not(.bw-lt1680)) .tb-tool{height:calc(var(--btn) + 14px);min-width:calc(var(--btn) + 10px)}:where(.app:not(.bw-lt1680)) .tb-add{height:calc(var(--btn) + 14px);min-width:calc(var(--btn) + 10px)}@media (min-width:1000px) and (min-height:700px) and (pointer:fine),(min-width:1000px) and (min-height:860px){.app{--dock-h:0px;--rail-w:calc(var(--btn) + 94px);--dock-w:var(--rail-w);--row:clamp(28px, calc((100vh - var(--btn) - 150px) / 17), calc(var(--btn) + 6px))}.app:has(.toolbar.compact){--dock-w:calc(var(--btn) + 18px)}.toolbar{left:calc(var(--edge) + var(--safe-l));top:calc(var(--edge) * 2 + var(--btn) + 12px + var(--safe-t));bottom:calc(var(--edge) + var(--safe-b));width:var(--dock-w);flex-flow:column;justify-content:flex-start;align-items:stretch;gap:4px;max-width:none;padding:8px 6px;transform:none}.tb-group{flex-direction:column;align-items:stretch;gap:2px}.tb-group+.tb-group{border-left:0;border-top:1px solid var(--panel-border);padding-top:4px;padding-left:0}.tb-slot{flex-direction:column;display:flex}.tb-tool,.tb-add,.tb-collapse{width:100%;min-width:0;height:var(--row);border-radius:10px;flex-direction:row;justify-content:flex-start;gap:11px;padding:0 10px}.tb-label{text-overflow:ellipsis;font-size:13.5px;display:block;overflow:hidden}.tb-add-group{margin-top:auto}.tb-collapse{color:var(--muted);align-items:center;display:inline-flex}.tb-collapse .tb-icon{color:var(--muted);transform:rotate(90deg)}.tb-collapse .tb-label{color:var(--muted);font-size:12px}.toolbar.compact .tb-label{display:none}.toolbar.compact .tb-tool,.toolbar.compact .tb-add,.toolbar.compact .tb-collapse{justify-content:center;padding:0}.toolbar.compact .tb-collapse .tb-icon{transform:rotate(-90deg)}.flyout{position:absolute;top:0;bottom:auto;left:calc(100% + 12px);transform:none}.style-panel{left:calc(var(--edge) + var(--dock-w) + 12px + var(--safe-l))}.zoombar{bottom:calc(var(--edge) + var(--safe-b))}}@media (hover:hover) and (min-width:1000px) and (min-height:700px) and (pointer:fine),(hover:hover) and (min-width:1000px) and (min-height:860px){.toolbar:not(.compact) [data-tip]:not(.tb-collapse):hover:after{display:none}.toolbar [data-tip]:hover:after{top:50%;bottom:auto;left:calc(100% + 12px);transform:translateY(-50%)}}.app:has(.toolbar .flyout) .style-panel{display:none}.insert-menu .menu-item{justify-content:flex-start}@media (min-width:1000px) and (min-height:700px) and (pointer:fine),(min-width:1000px) and (min-height:860px){.toolbar .tb-slot{position:static}.toolbar .flyout{left:calc(100% + 12px)}.toolbar .shape-picker{max-height:min(560px,100%);top:0;bottom:auto}.toolbar .insert-menu{max-height:min(560px,100%);top:auto;bottom:0}.toolbar .tb-group:not(.tb-add-group){flex:var(--n,1) 1 0;min-height:0}.toolbar .tb-group:not(.tb-add-group) .tb-slot{flex:1 1 0;justify-content:center;min-height:28px}.toolbar .tb-group:not(.tb-add-group) .tb-tool{height:100%;min-height:28px;max-height:64px}.toolbar .tb-add-group{flex:none;margin-top:0}.toolbar .tb-add{height:max(var(--row), 44px)}.toolbar .tb-icon{width:max(var(--icon), 24px);height:max(var(--icon), 24px)}.toolbar.compact .tb-icon{width:max(var(--icon), 26px);height:max(var(--icon), 26px)}.toolbar .tb-collapse .tb-icon{width:20px;height:20px}.toolbar .tb-label{font-size:14px}.app:has(.toolbar.compact){--dock-w:calc(var(--btn) + 26px)}}.tbl-hint{color:var(--text-soft);margin:0;font-size:12px}.tbl-grid{grid-template-columns:auto 1fr 1fr 1fr;align-items:center;gap:6px;display:grid}.tbl-label{color:var(--muted);font-size:12px;font-weight:700}.tbl-btn{white-space:nowrap;min-width:0;padding:0 8px}.tbl-btn:disabled{opacity:.4;cursor:default}.tbl-danger:not(:disabled){color:var(--danger)}.sp-swatches{flex-wrap:nowrap;gap:4px}.sp-swatches .sp-swatch{flex:none}.tbl-edit{justify-content:center;width:100%}.tbl-scope{grid-template-columns:auto 1fr;align-items:center;gap:6px;display:grid}.tbl-scope-row{grid-template-columns:repeat(4,1fr);gap:4px;display:grid}.tbl-scope-row .sp-chip{min-width:0;padding:0 4px;font-size:12px}.tbl-scope-row .sp-chip:disabled{opacity:.4;cursor:default}.tbl-grid .tbl-danger{font-size:12px}.style-panel{min-width:min(280px, calc(100% - var(--edge) * 3 - var(--dock-w) - var(--safe-l) - var(--safe-r)));max-width:min(360px, calc(100% - var(--edge) * 3 - var(--dock-w) - var(--safe-l) - var(--safe-r)));overflow-x:hidden}.style-panel .sp-section{min-width:0}.sp-section:has(.tbl-grid){background:var(--chip);border-radius:12px;gap:8px;padding:10px}.tbl-hint{font-weight:600}.tbl-edit{background:var(--accent-soft);height:34px;color:var(--accent);align-items:center;display:inline-flex}.tbl-edit:hover:not(:disabled){background:var(--accent);color:var(--on-accent)}.tbl-grid{grid-template-columns:58px repeat(3,minmax(0,1fr));gap:5px}.tbl-grid .sp-chip,.tbl-scope-row .sp-chip{text-overflow:ellipsis;white-space:nowrap;background:var(--surface);min-width:0;height:32px;padding:0 4px;font-size:12px;overflow:hidden}.tbl-grid .sp-chip:hover:not(:disabled),.tbl-scope-row .sp-chip:hover:not(:disabled){background:var(--hover)}.tbl-scope{grid-template-columns:58px 1fr}.tbl-scope-row .sp-chip[aria-checked=true]{background:var(--accent);color:var(--on-accent);box-shadow:none}.toolbar{z-index:27}.zoombar,.top-right{z-index:28}.topbar{z-index:29}.shape-picker{width:min(380px, calc(100vw - 16px - var(--safe-l) - var(--safe-r)));gap:8px;max-height:min(600px,100vh - 120px);padding:10px 10px 6px}.toolbar .shape-picker{max-height:min(600px, calc(100dvh - var(--dock-h) - var(--btn) - var(--edge) * 5 - var(--safe-t) - var(--safe-b) - 24px))}.toolbar .flyout{background:var(--surface)}.app:has(.toolbar .flyout) .zoombar{visibility:hidden}.shape-head{align-items:center;gap:6px;display:flex}.shape-head .shape-search{flex:1;min-width:0}.shape-body{overscroll-behavior:contain;flex:1;min-height:0;margin:0 -4px;padding:0 4px;overflow-y:auto}.shape-body .shape-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:2px;overflow:visible}.shape-cell{aspect-ratio:1;width:100%;min-width:0;height:auto}.shape-cell svg{width:26px;height:26px}.shape-section+.shape-section{border-top:1px solid var(--panel-border);margin-top:6px;padding-top:4px}.shape-section-head{width:100%;color:var(--ink);text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:6px;padding:8px 4px 6px;font-family:inherit;font-size:14px;font-weight:800;display:flex}.shape-section-head .shape-count{color:var(--muted);opacity:1;font-size:12px;font-weight:600}.shape-chevron{color:var(--muted);margin-left:auto;transition:transform .15s;display:inline-grid}.shape-chevron svg{fill:none;stroke:currentColor;stroke-width:2px;width:16px;height:16px}.shape-chevron.folded{transform:rotate(-90deg)}.shape-more{width:100%;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:8px;margin-top:2px;padding:6px;font-family:inherit;font-size:13px;font-weight:700;display:block}.shape-more:hover{background:var(--hover);color:var(--ink)}.palette-wrap{flex:none;position:relative}.palette-btn{border:1px solid var(--panel-border);background:var(--paper);height:34px;color:var(--ink);cursor:pointer;border-radius:8px;align-items:center;gap:4px;padding:0 8px;display:inline-flex}.palette-btn>svg{fill:none;stroke:currentColor;stroke-width:2px;width:14px;height:14px}.palette-btn[aria-expanded=true]{border-color:var(--accent)}.palette-swatch{display:inline-flex}.palette-swatch span{width:16px;height:16px;filter:var(--canvas-filter);border:2px solid;border-radius:50%}.palette-swatch span+span{margin-left:-5px}.palette-none{color:var(--muted);padding:0 2px;font-size:13px;font-weight:800}.palette-menu{z-index:5;width:250px;top:calc(100% + 6px);left:auto;right:0}.palette-item{justify-content:flex-start;gap:10px}.palette-item>svg{fill:none;width:16px;height:16px;stroke:var(--accent);stroke-width:2.4px}.shape-cell svg.preset-colors{filter:var(--canvas-filter)}.user-shapes{gap:8px;padding-bottom:4px;display:grid}.user-upload{border:1.5px dashed var(--panel-border);background:var(--chip);height:42px;color:var(--text-soft);cursor:pointer;border-radius:10px;justify-content:center;align-items:center;gap:8px;font-family:inherit;font-size:13px;font-weight:700;display:inline-flex}.user-upload:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.user-upload svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:18px;height:18px}.user-message,.user-hint{color:var(--muted);margin:0;font-size:12px;line-height:1.4}.user-cell{position:relative}.user-cell img{object-fit:contain;width:28px;height:28px}.user-remove{background:var(--danger);width:18px;height:18px;color:var(--on-accent);cursor:pointer;border:0;border-radius:50%;font-size:12px;line-height:18px;display:none;position:absolute;top:-2px;right:-2px}.user-cell:hover .user-remove{display:block}.user-remove:focus-visible{display:block}.tpl-loading{color:var(--muted);font-size:12px}.tpl-card:disabled{opacity:.6;cursor:progress}.app.presenting .topbar,.app.presenting .top-right,.app.presenting .toolbar,.app.presenting .style-panel,.app.presenting .zoombar,.app.presenting .findbar,.app.presenting .welcome,.app.presenting .session-pill{display:none!important}.presenter-bar{z-index:45;left:50%;bottom:calc(18px + var(--safe-b));background:var(--panel);border:1px solid var(--panel-border);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(10px);border-radius:999px;align-items:center;gap:2px;padding:6px;transition:opacity .3s;display:flex;position:absolute;transform:translate(-50%)}.presenter-bar.idle{opacity:.12}.presenter-bar.idle:hover,.presenter-bar.idle:focus-within{opacity:1}.presenter-bar .tb-btn{border-radius:999px}.presenter-bar .tb-btn[aria-pressed=true]{background:var(--accent);color:var(--on-accent)}.presenter-count{min-width:120px;max-width:220px;color:var(--ink);justify-items:center;padding:0 10px;font-size:14px;line-height:1.2;display:grid}.presenter-count small{text-overflow:ellipsis;white-space:nowrap;max-width:100%;color:var(--muted);font-size:11px;overflow:hidden}.presenter-dots{gap:4px;margin-top:3px;display:flex}.presenter-dots i{background:var(--panel-border);border-radius:50%;width:6px;height:6px}.presenter-dots i.on{background:var(--accent)}.presenter-exit{color:var(--danger)}.present-fade{z-index:44;background:var(--board-paper);filter:var(--canvas-filter);pointer-events:none;animation:.44s both present-fade;position:absolute;top:0;bottom:0;left:0;right:0}@keyframes present-fade{0%{opacity:0}50%{opacity:1}to{opacity:0}}.present-spotlight{z-index:43;pointer-events:none;background:radial-gradient(circle 150px at var(--x,50%) var(--y,50%), transparent 0, transparent 97%, #000000c7 100%);position:absolute;top:0;bottom:0;left:0;right:0}.present-shade{z-index:43;background:#111316;position:absolute;top:0;left:0;right:0;box-shadow:0 6px 24px #0006}.present-shade-handle{cursor:ns-resize;touch-action:none;background:#111316;border-radius:0 0 14px 14px;place-items:center;width:90px;height:28px;display:grid;position:absolute;bottom:-14px;left:50%;transform:translate(-50%)}.present-shade-handle span{background:#ffffff80;border-radius:2px;width:40px;height:4px}.present-btn{color:var(--accent)}.frames-present{background:var(--accent);height:44px;color:var(--on-accent);cursor:pointer;border:0;border-radius:12px;flex:none;justify-content:center;align-items:center;gap:8px;font-family:inherit;font-size:14px;font-weight:800;display:inline-flex}.frames-present svg{fill:currentColor;stroke:none;width:18px;height:18px}.frame-menu{max-height:320px;overflow-y:auto}.app.drag-over:after{content:"";z-index:49;border:3px dashed var(--accent);background:var(--accent-soft);pointer-events:none;border-radius:18px;position:absolute;top:8px;bottom:8px;left:8px;right:8px}.drop-hint{z-index:50;background:var(--panel);box-shadow:var(--shadow);color:var(--ink);pointer-events:none;border-radius:14px;padding:14px 20px;font-size:16px;font-weight:800;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.crop-stage{touch-action:none;-webkit-user-select:none;user-select:none;background:repeating-conic-gradient(var(--chip) 0 25%, transparent 0 50%) 0 0 / 16px 16px;width:-moz-fit-content;width:fit-content;max-width:100%;margin:0 auto;position:relative;overflow:hidden}.crop-stage img{pointer-events:none;max-width:100%;max-height:min(60vh,520px);display:block}.crop-box{cursor:move;outline:2px solid #fff;position:absolute;box-shadow:0 0 0 1px #00000080,0 0 0 9999px #0f172a8c}.crop-handle{border:2px solid var(--accent);background:var(--surface);border-radius:50%;width:18px;height:18px;margin:-9px 0 0 -9px;position:absolute}.crop-nw{cursor:nwse-resize;top:0;left:0}.crop-n{cursor:ns-resize;top:0;left:50%}.crop-ne{cursor:nesw-resize;top:0;left:100%}.crop-e{cursor:ew-resize;top:50%;left:100%}.crop-se{cursor:nwse-resize;top:100%;left:100%}.crop-s{cursor:ns-resize;top:100%;left:50%}.crop-sw{cursor:nesw-resize;top:100%;left:0}.crop-w{cursor:ew-resize;top:50%;left:0}.dialog-spacer{flex:1}.sp-wide-btn{border:1px solid var(--panel-border);background:var(--chip);width:100%;min-height:36px;color:var(--ink);font:inherit;cursor:pointer;border-radius:10px;justify-content:center;align-items:center;gap:8px;font-weight:700;display:flex}.sp-wide-btn:hover{background:var(--hover)}.sp-wide-btn svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:18px;height:18px}.media-body{flex-direction:column;display:flex}.media-player .dialog-error,.media-player .dialog-hint{margin:16px}.media-video{background:#000;width:100%;max-height:100%;display:block}.media-audio{width:calc(100% - 32px);margin:20px 16px}.media-pip-bar{z-index:50;left:50%;bottom:calc(96px + var(--safe-b));position:fixed;transform:translate(-50%)}.media-mini{border:1px solid var(--panel-border);border-radius:var(--radius);background:var(--surface);width:min(460px,100vw - 32px);color:var(--ink);box-shadow:var(--shadow)}.media-mini .gallery-head{border-bottom:0;padding:6px 10px}.media-mini .gallery-head h2{font-size:14px}.media-pip-note{color:var(--muted);font-weight:600}.hidden-video{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.library-body{flex-direction:column;display:flex;overflow:hidden}.library-tools{border-bottom:1px solid var(--panel-border);gap:8px;padding:12px 16px;display:flex}.library-search{border:1px solid var(--panel-border);background:var(--paper);border-radius:10px;flex:1;align-items:center;gap:8px;height:40px;padding:0 12px;display:flex}.library-search:focus-within{border-color:var(--accent)}.library-search svg{fill:none;width:18px;height:18px;stroke:var(--muted);stroke-width:2px;stroke-linecap:round;flex:none}.library-search input{min-width:0;color:var(--ink);font:inherit;background:0 0;border:0;outline:none;flex:1;font-size:15px}.library-sort{border:1px solid var(--panel-border);background:var(--paper);height:40px;color:var(--ink);font:inherit;border-radius:10px;padding:0 10px}.library-grid{flex:1;grid-template-columns:repeat(auto-fill,minmax(min(200px,100%),1fr));align-content:start;gap:14px;min-height:0;padding:16px;display:grid;overflow-y:auto}.library-grid>.dialog-hint{grid-column:1/-1}.library-card{border:1px solid var(--panel-border);background:var(--surface);min-width:0;color:var(--ink);border-radius:12px;flex-direction:column;padding:0;display:flex;overflow:hidden}.library-card.current{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}.library-thumb{aspect-ratio:16/10;border:0;border-bottom:1px solid var(--panel-border);background:var(--board-paper);cursor:pointer;place-items:center;width:100%;padding:0;display:grid;position:relative;overflow:hidden}.library-thumb img{object-fit:contain;width:100%;height:100%;filter:var(--canvas-filter)}.library-thumb>svg{fill:none;stroke:#9aa3ae;stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round;width:36px;height:36px}.library-open{background:var(--accent);color:var(--on-accent);border-radius:999px;padding:2px 8px;font-size:11px;font-weight:800;position:absolute;top:8px;left:8px}.library-name{color:var(--ink);font:inherit;text-align:left;white-space:nowrap;text-overflow:ellipsis;cursor:pointer;background:0 0;border:0;padding:8px 10px 0;font-weight:700;overflow:hidden}.library-new .library-name{padding-bottom:12px}.library-card .frame-rename{flex:none;margin:6px 8px 0}.library-meta{color:var(--muted);justify-content:space-between;align-items:center;gap:6px;padding:2px 6px 6px 10px;font-size:12px;display:flex}.library-actions{gap:2px;display:flex}.library-new{cursor:pointer;font:inherit;border-style:dashed}.library-new .library-thumb{background:var(--chip)}.library-new .library-thumb svg{stroke:var(--accent)}.versions-save{gap:6px;display:flex}.versions-save input{border:1px solid var(--panel-border);background:var(--paper);min-width:0;height:40px;color:var(--ink);font:inherit;border-radius:8px;flex:1;padding:0 10px}.versions-save input:focus{border-color:var(--accent);outline:none}.side-panel .versions-save .dialog-btn,.side-panel .versions-preview-row .dialog-btn{flex:none}.versions-preview{border:1px solid var(--accent);background:var(--accent-soft);border-radius:12px;gap:8px;padding:8px;display:grid}.versions-preview img{background:var(--board-paper);width:100%;filter:var(--canvas-filter);border-radius:6px}.versions-preview-row{justify-content:space-between;align-items:center;gap:8px;font-size:13px;display:flex}.versions-list{gap:6px;margin:0;padding:0;list-style:none;display:grid}.version-row{border-radius:10px;align-items:center;gap:4px;display:flex}.version-row.active{background:var(--accent-soft)}.version-main{min-width:0;color:var(--ink);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:10px;flex:1;align-items:center;gap:10px;padding:6px;display:flex}.version-main:hover{background:var(--hover)}.version-thumb{border:1px solid var(--panel-border);background:var(--board-paper);border-radius:6px;flex:none;width:64px;height:40px;overflow:hidden}.version-thumb img{object-fit:contain;width:100%;height:100%;filter:var(--canvas-filter)}.version-text{min-width:0;display:grid}.version-text strong,.version-text small{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.version-text small{color:var(--muted);font-size:12px}.screen-draw{z-index:60;position:fixed;top:0;bottom:0;left:0;right:0}.screen-draw.with-video{background:#000}.screen-video{object-fit:contain;width:100%;height:100%;position:absolute;top:0;bottom:0;left:0;right:0}.screen-canvas{touch-action:none;cursor:crosshair;position:absolute;top:0;bottom:0;left:0;right:0}.screen-canvas.pen-eraser{cursor:cell}.screen-bar{left:50%;bottom:calc(20px + var(--safe-b));border:1px solid var(--panel-border);background:var(--panel);max-width:calc(100vw - 24px);color:var(--ink);box-shadow:var(--shadow);border-radius:16px;flex-wrap:wrap;justify-content:center;align-items:center;gap:4px;padding:6px 8px;display:flex;position:absolute;transform:translate(-50%)}.screen-bar .dialog-btn{min-height:36px}.screen-color{border:2px solid var(--swatch-ring);cursor:pointer;border-radius:50%;width:26px;height:26px}.screen-color[aria-pressed=true]{box-shadow:0 0 0 2px var(--surface), 0 0 0 4px var(--accent)}:root.overlay-window,:root.overlay-window body,:root.overlay-window #root{background:0 0}.screen-toast{z-index:70;position:fixed;top:20px;left:50%;transform:translate(-50%)}.overlay-paused .screen-bar{display:none}.overlay-bar{border:1px solid var(--panel-border);background:var(--panel);color:var(--ink);border-radius:16px;justify-content:center;align-items:center;gap:8px;padding:0 12px;font-size:13px;font-weight:700;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.overlay-bar .dialog-btn{min-height:36px}.stem-title-icon{font-size:20px;line-height:1}.stem-body{flex:1;min-height:0;padding:16px;overflow:auto}.stem-footer{border-top:1px solid var(--panel-border);flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;padding:12px 16px;display:flex}.stem-footer .grow{flex:1}.stem-row{flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 10px;display:flex}.stem-label{letter-spacing:.04em;text-transform:uppercase;color:var(--muted);font-size:12px;font-weight:800}.stem-input,.stem-select,.stem-textarea{border:1px solid var(--panel-border);background:var(--paper);min-height:38px;color:var(--ink);font:inherit;border-radius:8px;padding:0 10px;font-size:15px}.stem-textarea{resize:vertical;width:100%;min-height:72px;padding:8px 10px;font-family:ui-monospace,Cascadia Mono,Consolas,monospace}.stem-input:focus,.stem-select:focus,.stem-textarea:focus{border-color:var(--accent);outline:none}.stem-input.small{width:90px}.stem-preview{border:1px solid var(--panel-border);background:var(--board-paper);min-height:120px;filter:var(--canvas-filter);border-radius:12px;place-items:center;padding:12px;display:grid;overflow:auto}.stem-preview img,.stem-preview svg{max-width:100%}.stem-tabs{flex-wrap:wrap;gap:6px;margin:0 0 12px;display:flex}.stem-tab{border:1px solid var(--panel-border);background:var(--chip);min-height:34px;color:var(--ink);font:inherit;cursor:pointer;border-radius:999px;padding:0 12px;font-weight:700}.stem-tab[aria-pressed=true],.stem-tab[aria-selected=true]{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.stem-key{border:1px solid var(--panel-border);background:var(--surface);min-width:40px;min-height:38px;color:var(--ink);font:inherit;cursor:pointer;border-radius:8px;padding:0 8px;font-size:15px}.stem-key:hover{background:var(--hover)}.stem-key.accent{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.stem-split{grid-template-columns:minmax(260px,340px) 1fr;gap:16px;min-height:0;display:grid}@container (width<=760px){.stem-split{grid-template-columns:1fr}}.stem-cards{grid-template-columns:repeat(auto-fill,minmax(min(150px,100%),1fr));gap:10px;display:grid}.stem-card{border:1px solid var(--panel-border);background:var(--surface);color:var(--ink);font:inherit;text-align:center;cursor:pointer;border-radius:12px;justify-items:center;gap:6px;padding:12px 8px;display:grid}.stem-card:hover{background:var(--hover)}.stem-card[aria-pressed=true]{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}.stem-card-icon{font-size:30px;line-height:1.1}.stem-card small{color:var(--muted);font-size:12px}.stem-error{color:var(--danger);margin:4px 0;font-size:13px}.stem-hub-search{margin-bottom:14px}.stem-hub-group h3{letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin:6px 0 8px;font-size:13px;font-weight:800}.stem-hub-grid{grid-template-columns:repeat(auto-fill,minmax(min(250px,100%),1fr));gap:8px;margin-bottom:14px;display:grid}.stem-hub-card{border:1px solid var(--panel-border);background:var(--surface);color:var(--ink);font:inherit;text-align:left;cursor:pointer;border-radius:12px;align-items:center;gap:12px;padding:10px 12px;display:flex}.stem-hub-card:hover{background:var(--hover);border-color:var(--accent)}.stem-hub-icon{background:var(--chip);border-radius:12px;flex:none;place-items:center;width:44px;height:44px;font-size:22px;display:grid}.stem-hub-text{gap:2px;min-width:0;display:grid}.stem-hub-text small{color:var(--muted);font-size:12px;line-height:1.35}.eq-swatch{border:2px solid var(--swatch-ring);cursor:pointer;border-radius:50%;width:26px;height:26px}.eq-swatch[aria-pressed=true]{box-shadow:0 0 0 2px var(--surface), 0 0 0 4px var(--accent)}.eq-palette{flex-wrap:wrap;gap:6px;margin-bottom:12px;display:flex}.eq-preview{min-height:140px;margin-top:10px}.graph-controls{flex-direction:column;gap:6px;min-width:0;display:flex}.graph-fn .stem-row{flex-wrap:nowrap;margin:0}.graph-expr{flex:1;min-width:0;font-family:ui-monospace,Cascadia Mono,Consolas,monospace}.graph-color{border:1px solid var(--panel-border);cursor:pointer;background:0 0;border-radius:8px;flex:none;width:34px;height:34px;padding:0}.graph-window{gap:6px}.graph-num{color:var(--muted);gap:2px;font-size:12px;display:grid}.graph-check{cursor:pointer;align-items:center;gap:4px;font-size:13px;display:inline-flex}.graph-stage{cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;align-self:start;padding:0}.graph-stage:active{cursor:grabbing}.graph-stage img{width:100%;height:auto;display:block}.calc-screen{border:1px solid var(--panel-border);background:var(--paper);border-radius:12px;gap:4px;margin-bottom:10px;padding:10px 12px;display:grid}.calc-input{color:var(--ink);font:inherit;background:0 0;border:0;outline:none;font-family:ui-monospace,Cascadia Mono,Consolas,monospace;font-size:20px}.calc-result{text-align:right;min-height:30px;color:var(--ink);font-size:24px;font-weight:800}.calc-result.calc-muted{color:var(--muted);font-size:14px;font-weight:600}.calc-modes .grow{flex:1}.calc-keys{grid-template-columns:repeat(7,1fr);gap:6px;display:grid}.calc-key{min-width:0;min-height:44px;padding:0 4px}.calc-num{background:var(--chip);font-weight:800}.calc-op{color:var(--accent);font-weight:800}.calc-fn{color:var(--danger)}.calc-equals{grid-column:span 7;min-height:46px;font-size:20px;font-weight:800}.calc-history{gap:4px;max-height:180px;margin-top:12px;display:grid;overflow:auto}.calc-line{background:var(--chip);color:var(--ink);font:inherit;cursor:pointer;border:0;border-radius:8px;justify-content:space-between;gap:12px;padding:6px 8px;font-family:ui-monospace,Cascadia Mono,Consolas,monospace;display:flex}.calc-line:hover{background:var(--hover)}.solver-input{flex:1;min-width:0;font-family:ui-monospace,Cascadia Mono,Consolas,monospace;font-size:18px}.solver-steps{gap:8px;margin:0;padding:0 0 0 22px;display:grid}.solver-steps li{border:1px solid var(--panel-border);border-radius:10px;gap:4px;padding:8px 10px;display:grid}.solver-step-text{color:var(--text-soft);font-size:14px;font-weight:700}.solver-math{background:var(--board-paper);max-width:100%;height:auto;filter:var(--canvas-filter);border-radius:6px;justify-self:start}.solver-answer{border:2px solid var(--accent);background:var(--accent-soft);border-radius:12px;flex-wrap:wrap;align-items:center;gap:12px;margin-top:12px;padding:10px 12px;display:flex}.geo-tools{flex-wrap:wrap;gap:6px;margin-bottom:8px;display:flex}.geo-tool[aria-pressed=true]{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.geo-hint{margin:0}.geo-stage{touch-action:none;-webkit-user-select:none;user-select:none;cursor:crosshair;padding:0}.geo-stage svg{width:100%;height:auto;display:block}.geo-options{margin-top:10px}.tb-stem .tb-icon{color:var(--hue,#0d9488)}@container (width<=600px){.stem-footer .dialog-hint{display:none}}.app .topbar{max-width:calc(100% - var(--tr-w,340px) - var(--edge) * 3 - var(--safe-l) - var(--safe-r))}.title-wrap{flex:0 auto;min-width:0}.title-input{min-width:48px}.narrow-only{display:none}:where(.app.bw-900) .top-right .wide-only{display:none}:where(.app.bw-900) .top-right .narrow-only{display:block}:where(.app:not(.bw-900)) .more-menu .folded-only{display:none}.more-menu{top:calc(var(--edge) + var(--btn) + 22px + var(--safe-t));left:auto;right:calc(var(--edge) + var(--safe-r) + var(--rp-w,0px));z-index:40;width:min(240px,100vw - 16px);position:fixed}::-webkit-scrollbar{background:0 0;width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-corner{background:0 0}::-webkit-scrollbar-thumb{background:#80808052;border-radius:999px}::-webkit-scrollbar-thumb:hover{background:#8080808c}::-webkit-scrollbar-button{width:0;height:0;display:none}@supports not selector(::-webkit-scrollbar){*{scrollbar-width:thin;scrollbar-color:#80808066 transparent}}:root.rpanel-dragging,:root.rpanel-dragging *{cursor:col-resize!important;-webkit-user-select:none!important;user-select:none!important}:root.rpanel-dragging .app{transition:none}.rpanel{z-index:40;max-width:100vw;padding:var(--safe-t) var(--safe-r) var(--safe-b) 0;background:var(--surface);color:var(--ink);border-left:1px solid var(--panel-border);outline:none;flex-direction:column;animation:.2s rpanel-in;display:flex;position:fixed;top:0;bottom:0;right:0;box-shadow:-10px 0 30px #0f172a24;container-type:inline-size}.rpanel-covered{display:none}.rpanel-parked{opacity:0;pointer-events:none;transform:translate(100%)}@keyframes rpanel-in{0%{opacity:0;transform:translate(24px)}}.rpanel-divider{z-index:2;cursor:col-resize;touch-action:none;outline:none;width:12px;position:absolute;top:0;bottom:0;left:-6px}.rpanel-divider:after{content:"";background:var(--panel-border);border-radius:999px;width:4px;height:44px;transition:background .15s,height .15s;position:absolute;top:50%;left:4px;transform:translateY(-50%)}.rpanel-divider:hover:after,.rpanel-resizing .rpanel-divider:after{background:var(--accent);width:2px;height:100%;top:0;left:5px;transform:none}.rpanel-divider:focus-visible:after{background:var(--accent);width:2px;height:100%;top:0;left:5px;transform:none}.rpanel-head{flex:none;min-height:56px}.rpanel-title{min-width:0}.rpanel-title-text{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.rpanel-head .dialog-btn{flex:none;align-items:center;min-height:36px;padding:0 12px;text-decoration:none;display:inline-flex}.rpanel-body{overscroll-behavior:contain;flex:1;min-height:0;overflow:auto}.rpanel-footer{border-top:1px solid var(--panel-border);flex-wrap:wrap;flex:none;justify-content:flex-end;align-items:center;gap:8px;padding:12px 16px;display:flex}.rpanel-footer .grow,.rpanel-footer .dialog-spacer{flex:1}.rpanel-backdrop{z-index:39;background:var(--backdrop);position:fixed;top:0;bottom:0;left:0;right:0}.rpanel-back{background:var(--accent-soft);min-height:40px;color:var(--accent);font:inherit;cursor:pointer;border:0;border-radius:999px;flex:none;align-items:center;gap:4px;padding:0 12px 0 6px;font-size:14px;font-weight:700;display:inline-flex}.rpanel-back span{font-size:22px;line-height:1}.rpanel-phone{z-index:45;width:auto;padding-left:var(--safe-l);box-shadow:none;border-left:0;animation-name:rpanel-up;left:0}.rpanel-phone .rpanel-head{flex-wrap:wrap;row-gap:6px}.rpanel-phone .rpanel-title{flex:120px}@keyframes rpanel-up{0%{opacity:0;transform:translateY(16px)}}.app.presenting{right:0}:root:has(.app.presenting) .rpanel{display:none}:root:has(.app.presenting) .rpanel-backdrop{display:none}@media (prefers-reduced-motion:reduce){.app,.rpanel,.rpanel-divider:after{transition:none;animation:none}}.stem-live{z-index:11;transform-origin:50%;pointer-events:none;position:absolute;top:0;left:0}.stem-live-view{width:100%;height:100%}.stem-live .sim-layout{height:100%;display:block}.stem-live .sim-main{display:contents}.stem-live .sim-stage,.stem-live .m3-live-stage{width:100%;min-height:0;max-height:none;box-shadow:0 0 0 2px var(--accent);pointer-events:none;border:0;border-radius:0;aspect-ratio:auto!important;height:100%!important}.stem-live-use .sim-stage,.stem-live-use .m3-live-stage{pointer-events:auto}.stem-live .m3-live-stage{background-color:var(--surface)}.stem-live .sim-stage{background-color:var(--board-paper)}.stem-live .sim-main>:not(.sim-stage),.stem-live .sim-side,.stem-live .live-controls{pointer-events:auto;box-sizing:border-box;border:1px solid var(--panel-border);background:var(--surface);width:100%;min-width:280px;color:var(--ink);box-shadow:var(--shadow);border-radius:12px;margin-top:8px;padding:10px 12px;font-size:13px}.stem-live .sim-side{overscroll-behavior:contain;width:290px;min-width:0;max-height:max(100%,60vh);margin-top:0;position:absolute;top:0;left:calc(100% + 10px);overflow-y:auto}.stem-live .live-controls{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.stem-live .live-controls .dialog-btn{min-height:34px;padding:0 12px}.live-speed{align-items:center;gap:6px;display:inline-flex}.live-status{flex-basis:100%}.stem-live-bar{border:1px solid var(--panel-border);background:var(--panel);box-shadow:var(--shadow);pointer-events:auto;white-space:nowrap;border-radius:999px;gap:2px;padding:3px;display:flex;position:absolute;bottom:calc(100% + 8px);right:0}.stem-live-bar button{min-height:30px;color:var(--ink);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:999px;padding:0 10px;font-size:13px;font-weight:700}.stem-live-bar button:hover{background:var(--hover)}.stem-live-bar button[aria-pressed=true]{background:var(--accent-soft);color:var(--accent)}.app.presenting .stem-live{display:none!important}.app.bw-760 .stem-live .sim-side{width:100%;max-height:40vh;margin-top:8px;position:static}.app.bw-560 .stem-live .sim-main>:not(.sim-stage){display:none}.app.bw-560 .stem-live .sim-side,.app.bw-560 .stem-live .live-controls{min-width:min(280px,100vw - 24px);max-height:32vh}.signin-dialog{width:min(460px,100%);max-height:calc(100dvh - 32px);padding:22px 24px 18px;overflow-y:auto}.signin-dialog h2{margin:0 0 4px;font-size:22px}.signin-dialog>.dialog-text{margin-bottom:14px}.signin-head{border-bottom:1px solid var(--panel-border);justify-content:space-between;align-items:center;gap:12px;margin:0 0 18px;padding-bottom:14px;display:flex}.signin-org{align-items:center;gap:10px;min-width:0;display:flex}.signin-org-logo{object-fit:contain;background:var(--paper);border:1px solid var(--panel-border);border-radius:10px;flex:none;width:40px;height:40px}.signin-initial{background:var(--accent-soft);color:var(--accent);place-items:center;font-size:18px;font-weight:800;display:grid}.signin-org-name{text-overflow:ellipsis;white-space:nowrap;font-size:15px;font-weight:800;overflow:hidden}.signin-brand{color:var(--text-soft);flex:none;align-items:center;gap:8px;font-size:13px;font-weight:800;display:flex}.signin-brand .logo{width:30px;height:30px}.signin-modes{grid-template-columns:1fr 1fr;gap:8px;margin:0 0 16px;display:grid}.signin-mode{border:1px solid var(--panel-border);background:var(--paper);color:var(--text-soft);border-radius:12px;gap:10px;padding:10px 12px;font-size:12.5px;line-height:1.4;display:flex}.signin-mode b{color:var(--ink);flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:2px;font-size:13.5px;display:flex}.signin-mode-online{border-color:var(--accent);background:var(--accent-soft)}.signin-mode-icon{background:var(--surface);width:30px;height:30px;color:var(--muted);border-radius:8px;flex:none;place-items:center;display:grid}.signin-mode-online .signin-mode-icon{color:var(--accent)}.signin-mode>div{align-content:start;gap:2px;display:grid}@media (max-width:460px){.signin-modes{grid-template-columns:1fr}}.signin-field{gap:6px;margin:0 0 12px;font-size:13px;font-weight:700;display:grid}.signin-input{border:1px solid var(--panel-border);background:var(--paper);height:44px;color:var(--muted);border-radius:10px;align-items:center;gap:8px;padding:0 6px 0 12px;font-weight:400;display:flex}.signin-input:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);color:var(--accent)}.signin-input input{min-width:0;height:100%;color:var(--ink);font:inherit;background:0 0;border:0;outline:none;flex:1;font-size:15px}.signin-eye{width:34px;height:34px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:8px;place-items:center;display:grid}.signin-eye:hover{background:var(--hover);color:var(--ink)}.signin-error{margin:0 0 12px}.signin-submit{width:100%;min-height:46px;margin-top:4px;font-size:15px}.signin-cancel{color:var(--text-soft);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:8px;margin:10px auto 0;padding:6px 12px;font-size:13.5px;font-weight:600;display:block}.signin-cancel:hover:not(:disabled){background:var(--hover);color:var(--ink)}.signin-dialog.signin-wide{width:min(820px,100%)}.signin-body{gap:20px;display:grid}.signin-wide .signin-body{grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:28px}.signin-wide .signin-modes{grid-template-columns:1fr}.signin-methods{flex-direction:column;min-width:0;display:flex}@media (max-width:760px){.signin-wide .signin-body{grid-template-columns:1fr;gap:16px}.signin-wide .signin-modes{grid-template-columns:1fr 1fr}}@media (max-width:460px){.signin-wide .signin-modes{grid-template-columns:1fr}}.signin-socials{gap:8px;margin-bottom:8px;display:grid}.signin-social{border:1px solid var(--panel-border);background:var(--paper);width:100%;min-height:44px;color:var(--ink);font:inherit;cursor:pointer;border-radius:10px;justify-content:center;align-items:center;gap:10px;padding:0 14px;font-size:14.5px;font-weight:700;display:flex}.signin-social:hover:not(:disabled){background:var(--hover)}.signin-social:disabled{opacity:.6;cursor:default}.signin-or{color:var(--muted);align-items:center;gap:10px;margin:14px 0 12px;font-size:12.5px;font-weight:600;display:flex}.signin-or:before,.signin-or:after{content:"";background:var(--panel-border);flex:1;height:1px}.signin-back{color:var(--accent);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:8px;align-self:flex-start;margin:0 0 10px -8px;padding:6px 8px;font-size:13.5px;font-weight:700}.signin-back:hover:not(:disabled){background:var(--accent-soft)}.signin-sent{color:var(--text-soft);margin:-4px 0 12px;font-size:13px}.signin-link{color:var(--accent);font:inherit;cursor:pointer;background:0 0;border:0;padding:0;font-weight:700}.signin-input input:disabled{opacity:.75}.title-status{align-items:center;min-width:0;max-width:100%;display:flex;overflow:hidden}.title-status .save-status{text-overflow:ellipsis;min-width:0;overflow:hidden}.title-status .save-status+.save-status{border-left:1px solid var(--panel-border);margin-left:2px;padding-left:8px}:where(.app.bw-560) .topbar{max-width:calc(100% - 198px)}:where(.app.bw-560) .title-wrap{flex:auto;padding-right:2px}:where(.app.bw-560) .title-input{text-overflow:ellipsis;width:100%;min-width:0}:where(.app.bw-560) .mode{gap:4px;padding-left:6px}:where(.app.bw-560) .mode-btn{height:calc(var(--btn) - 14px);padding:0 10px;font-size:11.5px}.mode-btn{align-items:center;gap:6px;display:inline-flex}.mode-icon{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:17px;height:17px;display:none}:where(.app.bw-560) .topbar{width:calc(100% - 196px);max-width:none}:where(.app.bw-560) .mode-icon{display:block}:where(.app.bw-560) .mode-btn{width:calc(var(--btn) - 8px);justify-content:center;padding:0}:where(.app.bw-560) .mode-btn-text{display:none}:where(.app.bw-560) .top-right{gap:2px}:where(.app.bw-560) .top-right .tb-btn{width:calc(var(--btn) - 6px);min-width:0}:where(.app.bw-560) .topbar{width:calc(100% - 172px)}.sr-only{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{z-index:100;border:2px solid var(--accent,#0090ff);background:var(--panel);color:var(--text);border-radius:10px;padding:10px 14px;font-weight:700;text-decoration:none;transition:transform .15s;position:fixed;top:8px;left:8px;transform:translateY(-160%)}.skip-link:focus{transform:translateY(0)}@media (prefers-contrast:more){:root{--panel-border:currentColor;--text-soft:var(--text)}.tb-btn,.dialog-btn,.menu-item,.sp-chip,.rpanel,.card,.toast{border:2px solid}:focus-visible{outline-offset:3px;outline:3px solid}.class-hint,.stem-footer-note,.comment-when{color:var(--text)}}@media (forced-colors:active){.tb-btn,.dialog-btn,.sp-chip{border:1px solid buttontext}:focus-visible{outline-offset:2px;outline:3px solid highlight}}
