:root{--bg:#f6f7f9;--surface:#fff;--surface-2:#f0f2f5;--border:#dde1e7;--border-strong:#c3c9d2;--text:#1b1f24;--text-muted:#5d6673;--accent:#245fd4;--accent-soft:#e3ecfd;--accent-text:#fff;--danger:#c93a3a;--ok:#17763f;--warn:#8f5600;--warn-soft:#fff4e0;--canvas:#eceff3;--stage:#fff;--stage-line:#8a94a3;--zone:#e7eaef;--grid-minor:#dfe3e9;--grid-major:#cfd5dd;--sym-fill:#fff;--sym-stroke:#39424e;--sym-accent:#2f6fec;--sym-detail:#e9edf3;--riser:#efe6d6;--riser-stroke:#9c8358;--selection:#2f6fec;--focus:#ff8a00;--shadow:0 6px 24px #10182824, 0 1px 3px #1018281a;--radius:6px;--font:ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--mono:ui-monospace, "SF Mono", Menlo, Consolas, monospace;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#14171b;--surface:#1c2026;--surface-2:#242a31;--border:#2f363f;--border-strong:#3d4651;--text:#e6e9ed;--text-muted:#9aa4b1;--accent:#5b8ff5;--accent-soft:#23344f;--danger:#ef6b6b;--ok:#48c27e;--warn:#f0a63c;--warn-soft:#3a2d17;--canvas:#101317;--stage:#1b2027;--stage-line:#6f7a89;--zone:#252b33;--grid-minor:#1d2228;--grid-major:#283039;--sym-fill:#2a3139;--sym-stroke:#c9d1db;--sym-accent:#6c9cf7;--sym-detail:#343c46;--riser:#3a3226;--riser-stroke:#b39a6e;--shadow:0 6px 24px #00000073;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#14171b;--surface:#1c2026;--surface-2:#242a31;--border:#2f363f;--border-strong:#3d4651;--text:#e6e9ed;--text-muted:#9aa4b1;--accent:#5b8ff5;--accent-soft:#23344f;--danger:#ef6b6b;--ok:#48c27e;--warn:#f0a63c;--warn-soft:#3a2d17;--canvas:#101317;--stage:#1b2027;--stage-line:#6f7a89;--zone:#252b33;--grid-minor:#1d2228;--grid-major:#283039;--sym-fill:#2a3139;--sym-stroke:#c9d1db;--sym-accent:#6c9cf7;--sym-detail:#343c46;--riser:#3a3226;--riser-stroke:#b39a6e;--shadow:0 6px 24px #00000073;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font:13px/1.4 var(--font);-webkit-font-smoothing:antialiased}h1{margin:0 0 16px;font-size:20px}h2{margin:24px 0 8px;font-size:15px}a{color:var(--accent)}kbd{font:11px var(--mono);border:1px solid var(--border-strong);background:var(--surface-2);color:var(--text-muted);white-space:nowrap;border-bottom-width:2px;border-radius:4px;padding:1px 5px}input,select,textarea,button{font:inherit;color:inherit}input,select,textarea{background:var(--surface);border:1px solid var(--border-strong);border-radius:4px;min-width:0;padding:4px 6px}input:focus-visible,select:focus-visible,textarea:focus-visible,button:focus-visible,[tabindex]:focus-visible,a:focus-visible{outline:2px solid var(--focus);outline-offset:1px}fieldset{border:0;min-width:0;margin:0;padding:0}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;overflow:hidden;position:absolute!important}.muted{color:var(--text-muted)}.small{font-size:11.5px}.spacer{flex:1;justify-content:center;display:flex}.skip-link{position:absolute;left:-999px}.skip-link:focus{z-index:100;background:var(--surface);padding:6px 10px;top:8px;left:8px}.btn{border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--surface);cursor:pointer;white-space:nowrap;align-items:center;gap:6px;height:28px;padding:0 10px;display:inline-flex}.btn:hover:not(:disabled){background:var(--surface-2)}.btn:disabled,.icon-btn:disabled{opacity:.45;cursor:default}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}.btn-primary:hover:not(:disabled){background:var(--accent);filter:brightness(1.08)}.btn-danger{color:var(--danger);border-color:var(--danger)}.btn-ghost{background:0 0;border-color:#0000}.btn-link{color:var(--accent);cursor:pointer;background:0 0;border:0;font-weight:600}.btn-small{height:24px;font-size:12px}.icon-btn{border-radius:var(--radius);width:28px;height:28px;color:var(--text-muted);cursor:pointer;background:0 0;border:0;flex:none;justify-content:center;align-items:center;text-decoration:none;display:inline-flex}.icon-btn:hover:not(:disabled){background:var(--surface-2);color:var(--text)}.icon-btn.danger:hover{color:var(--danger)}.chip{border:1px solid var(--border-strong);background:var(--surface);cursor:pointer;border-radius:999px;padding:2px 9px;font-size:12px}.chip:hover{border-color:var(--accent);color:var(--accent)}.badge{background:var(--surface-2);color:var(--text-muted);white-space:nowrap;border-radius:999px;align-items:center;gap:4px;padding:2px 8px;font-size:11.5px;display:inline-flex}.badge-ok{color:var(--ok)}.badge-warn{color:var(--warn);background:var(--warn-soft)}.button-row{flex-wrap:wrap;gap:8px;margin:8px 0;display:flex}.app-shell{flex-direction:column;height:100%;display:flex}.app-header,.topbar{background:var(--surface);border-bottom:1px solid var(--border);flex:none;align-items:center;gap:6px;height:44px;padding:0 10px;display:flex}.brand{color:var(--text);align-items:center;gap:8px;margin-right:8px;font-weight:700;text-decoration:none;display:flex}.app-main{flex:1;overflow:auto}.page{max-width:980px;margin:0 auto;padding:24px 20px 48px}.narrow-page{max-width:620px}.inline-form{flex-wrap:wrap;align-items:flex-end;gap:8px;margin-bottom:20px;display:flex}.field{flex-direction:column;gap:3px;min-width:0;margin-bottom:8px;display:flex}.field>span,.field>label{color:var(--text-muted);font-size:11.5px}.field.narrow input{width:90px}.card-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;margin:0;padding:0;list-style:none;display:grid}.card{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:14px}.card-title{color:var(--text);font-size:14px;font-weight:600;text-decoration:none}.board-list{border:1px solid var(--border);background:var(--surface);border-radius:8px;margin:0;padding:0;list-style:none}.board-row{border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:8px 12px;display:flex}.board-row:last-child{border-bottom:0}.board-name{color:var(--text);flex:1;font-weight:500;text-decoration:none}.board-row .row-actions{gap:2px;display:flex}.trashed .board-name{color:var(--text-muted)}.error-box{border:1px solid var(--danger);background:var(--surface);border-radius:8px;padding:12px 14px}.settings-section{border-top:1px solid var(--border);margin-top:12px;padding-top:4px}.settings-section .field{max-width:320px}.menu{position:relative}.menu-list,.context-menu{z-index:50;background:var(--surface);border:1px solid var(--border);min-width:200px;box-shadow:var(--shadow);border-radius:8px;padding:4px;position:absolute}.menu-list{top:calc(100% + 4px)}.menu-end{right:0}.menu-start{left:0}.context-menu{min-width:230px;max-height:420px;position:fixed;overflow:auto}.menu-item{cursor:pointer;border-radius:4px;justify-content:space-between;align-items:center;gap:16px;padding:5px 8px;display:flex}.menu-item:hover,.menu-item:focus{background:var(--accent-soft);outline:none}.menu-item[aria-disabled=true]{opacity:.5;cursor:default}.menu-item.sep{border-top:1px solid var(--border);margin-top:3px;padding-top:7px}.ws-name,.user-name{text-overflow:ellipsis;white-space:nowrap;max-width:180px;overflow:hidden}.dialog-backdrop{z-index:60;background:#0a0e1459;justify-content:center;align-items:flex-start;padding-top:12vh;display:flex;position:fixed;inset:0}.dialog{background:var(--surface);border:1px solid var(--border);width:min(620px,100vw - 24px);max-height:72vh;box-shadow:var(--shadow);border-radius:10px;flex-direction:column;padding:14px;display:flex;overflow:hidden}.dialog-title{margin:0 0 8px;font-size:14px}.palette{padding:0}.palette-input{border:0;border-bottom:1px solid var(--border);background:0 0;border-radius:0;width:100%;padding:12px 14px;font-size:15px}.palette-input:focus-visible{outline:none}.palette .dialog-title{padding:12px 14px 0}.palette-list{margin:0;padding:4px;list-style:none;overflow:auto}.palette-item{cursor:pointer;border-radius:6px;justify-content:space-between;align-items:center;gap:12px;padding:6px 10px;display:flex}.palette-item.is-active{background:var(--accent-soft)}.palette-item.type-catalog .palette-title:before{content:"+ ";color:var(--accent)}.palette-item.type-jump .palette-title:before{content:"→ ";color:var(--text-muted)}.palette-empty,.palette-hint{padding:10px 14px}.help-dialog{width:min(900px,100vw - 24px);max-height:80vh;overflow:auto}.help-head{justify-content:space-between;align-items:center;display:flex}.help-head h2{margin:0}.help-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:4px 24px;display:grid}.help-grid h3{text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);margin:12px 0 4px;font-size:12px}.help-grid dl{margin:0}.help-row{border-bottom:1px dashed var(--border);justify-content:space-between;gap:8px;padding:2px 0;display:flex}.help-row dd{margin:0}.toasts{z-index:70;flex-direction:column;align-items:center;gap:6px;display:flex;position:fixed;bottom:16px;left:50%;transform:translate(-50%)}.toast{background:var(--text);color:var(--bg);box-shadow:var(--shadow);border-radius:8px;align-items:center;gap:10px;padding:7px 8px 7px 14px;display:flex}.toast .icon-btn{color:inherit;width:22px;height:22px}.toast .btn-link{color:#8db4ff}.toast-error{background:var(--danger);color:#fff}.editor{flex-direction:column;height:100%;display:flex;overflow:hidden}.editor-loading{height:100%;color:var(--text-muted);place-items:center;display:grid}.topbar .board-title{background:0 0;border-color:#0000;max-width:260px;margin:0;font-size:14px;font-weight:600}.topbar input.board-title:hover{border-color:var(--border)}.topbar-group{display:flex}.palette-btn{color:var(--text-muted);border:1px solid var(--border);background:var(--surface-2)}.status{color:var(--text-muted);white-space:nowrap;align-items:center;gap:4px;font-size:11.5px;display:inline-flex}.status-synced{color:var(--ok)}.status-offline{color:var(--warn)}.presence{margin:0 4px;padding:0;list-style:none;display:flex}.avatar{color:#fff;border:2px solid var(--surface);border-radius:50%;place-items:center;width:26px;height:26px;margin-left:-6px;font-size:10.5px;font-weight:700;display:grid}.avatar.more{background:var(--text-muted)}.banner{flex:none;justify-content:center;align-items:center;gap:12px;padding:6px 12px;display:flex}.banner-warn{background:var(--warn-soft);color:var(--text);border-bottom:1px solid var(--border)}.editor-body{flex:1;grid-template-columns:220px minmax(0,1fr) 320px;min-height:0;display:grid;position:relative}.panel-handle{z-index:15;touch-action:none;background:0 0;outline:none;position:absolute}.panel-handle-left,.panel-handle-right{cursor:col-resize;width:8px;top:0;bottom:0}.panel-handle-left{transform:translate(-4px)}.panel-handle-right{transform:translate(4px)}.panel-handle-bottom{cursor:row-resize;height:8px;top:-4px;left:0;right:0}.panel-handle:after{content:"";pointer-events:none;background:var(--accent);opacity:0;transition:opacity .12s;position:absolute}.panel-handle-left:after,.panel-handle-right:after{width:2px;top:0;bottom:0;left:3px}.panel-handle-bottom:after{height:2px;top:3px;left:0;right:0}.panel-handle:hover:after,.panel-handle:active:after,.panel-handle:focus-visible:after{opacity:1}.panel-handle:focus-visible{box-shadow:0 0 0 2px var(--focus)}.panel-collapse{z-index:16;border:1px solid var(--border);background:var(--surface);width:18px;height:28px;color:var(--text-muted);cursor:pointer;opacity:0;border-radius:6px;place-items:center;padding:0;transition:opacity .12s;display:grid;position:absolute;bottom:12px}.panel-collapse-left{transform:translate(-50%)}.panel-collapse-right{transform:translate(50%)}.panel-handle:hover+.panel-collapse,.panel-handle:focus-visible+.panel-collapse,.panel-collapse:hover,.panel-collapse:focus-visible{opacity:1}.panel-rail{background:var(--surface-2);border-color:var(--border);cursor:pointer;touch-action:none;color:var(--text-muted);border-style:solid;border-width:0;justify-content:center;min-height:0;padding-top:10px;display:flex;overflow:hidden}.panel-rail-left{border-right-width:1px}.panel-rail-right{border-left-width:1px}.panel-rail:hover,.panel-rail:focus-visible{background:var(--accent-soft);color:var(--text)}.panel-rail-icon{place-items:center;display:grid}.left-panel,.right-panel{background:var(--surface);min-height:0;overflow:auto}.left-panel{border-right:1px solid var(--border)}.right-panel{border-left:1px solid var(--border);flex-direction:column;display:flex}.editor-center{flex-direction:column;min-width:0;min-height:0;display:flex}.panel-title{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin:10px 10px 6px;font-size:11px}.panel-subtitle{margin:2px 0 10px;font-size:13px}.hint{padding:0 10px}.presets{flex-wrap:wrap;gap:4px;padding:0 10px 8px;display:flex}.layer-list{margin:0;padding:0 4px;list-style:none}.layer-row{border-radius:4px;align-items:center;gap:2px;height:28px;padding:0 2px;display:flex}.layer-row:hover,.layer-row:focus-visible{background:var(--surface-2)}.layer-row .icon-btn{width:24px;height:24px}.layer-name{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.layer-row.is-hidden .layer-name{color:var(--text-muted)}.layer-row.is-locked .layer-name{font-style:italic}.layer-rename{flex:1;height:22px}.layer-add{gap:4px;padding:8px 10px;display:flex}.layer-add input{flex:1}.tabs{border-bottom:1px solid var(--border);scrollbar-width:none;flex:none;display:flex;overflow-x:auto}.right-panel .tabs{flex-wrap:wrap;overflow:visible}.tabs>.tab{white-space:nowrap;padding-inline:8px}.sheet-head{flex:none;align-items:center;min-width:0;display:flex}.sheet-head .tabs{flex:1;min-width:0}.sheet-close{flex:none;margin-inline:4px}.tab,.pane-tab{cursor:pointer;color:var(--text-muted);white-space:nowrap;background:0 0;border:0;border-bottom:2px solid #0000;align-items:center;gap:6px;padding:9px 10px 8px;display:inline-flex}.tab[aria-selected=true],.pane-tab[aria-selected=true]{color:var(--text);border-bottom-color:var(--accent)}.side-body{flex:1;overflow:auto}.inspector{padding:10px 12px 20px}.inspector:focus{outline:none}.inspector input,.inspector select,.inspector textarea{width:100%;height:26px}.inspector textarea{height:auto}.field-grid{grid-template-columns:repeat(auto-fit,minmax(76px,1fr));gap:0 8px;display:grid}.subsection{border-top:1px solid var(--border);margin-top:8px;padding-top:8px}.subsection legend{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);width:100%;margin-bottom:6px;padding:0;font-size:11px;display:block}.port-row{clear:both;grid-template-columns:1.3fr .9fr 1fr 1fr auto auto;align-items:center;gap:3px;margin-bottom:4px;display:grid}.prop-row{clear:both;grid-template-columns:1fr 1fr auto;gap:3px;margin-bottom:4px;display:grid}.port-row input,.port-row select,.prop-row input{height:24px;padding:2px 4px;font-size:12px}.check{white-space:nowrap;align-items:center;gap:4px;font-size:12px;display:inline-flex}.inspector .check input{width:auto;height:auto}.swatches{gap:4px;display:flex}.swatch{border:1px solid var(--border-strong);cursor:pointer;border-radius:50%;width:22px;height:22px}.swatch.is-active{outline:2px solid var(--accent);outline-offset:1px}.coming-soon{flex-direction:column;gap:4px;padding:16px;display:flex}.bottom-pane{background:var(--surface);border-top:1px solid var(--border);flex-direction:column;flex:none;display:flex;position:relative}.bottom-pane.is-open{height:260px}.pane-tabs,.pane-tablist{border-bottom:1px solid var(--border);flex:none;align-items:center;gap:2px;padding:0 6px;display:flex}.pane-tablist{scrollbar-width:none;border-bottom:0;flex:0 auto;min-width:0;padding:0;overflow-x:auto}.pane-tablist::-webkit-scrollbar{display:none}.pane-tabs{min-width:0;overflow:hidden}.pane-tabs>.muted{white-space:nowrap}.pane-tab{white-space:nowrap;flex:none;padding:6px 8px}.pane-split{flex:1;grid-template-columns:minmax(0,1fr) 240px;min-height:0;display:grid}.pane-body{min-width:0;overflow:auto}.tray{border-left:1px solid var(--border);overflow:auto}.tray-list{margin:0;padding:0 4px 8px;list-style:none}.tray-item{border-radius:4px;align-items:center;display:flex}.tray-item.is-selected{background:var(--accent-soft)}.tray-select{text-align:left;cursor:grab;background:0 0;border:0;flex-direction:column;flex:1;align-items:flex-start;padding:4px 6px;display:flex}.tray>p{padding:0 10px}.canvas-wrap{background:var(--canvas);flex:1;min-height:0;position:relative;overflow:hidden}.canvas{touch-action:none;-webkit-user-select:none;user-select:none;cursor:default;width:100%;height:100%;display:block}.canvas *{vector-effect:non-scaling-stroke}.canvas:focus{outline:none}.canvas:focus-visible{outline:2px solid var(--focus);outline-offset:-2px}.cur-grab{cursor:grab}.cur-grab:active{cursor:grabbing}.cur-crosshair{cursor:crosshair}.grid-minor{fill:none;stroke:var(--grid-minor);stroke-width:1px}.grid-major{fill:none;stroke:var(--grid-major);stroke-width:1px}.stage-floor{fill:var(--stage);stroke:var(--stage-line);stroke-width:2px}.stage-zone rect{fill:none;stroke:var(--zone);stroke-width:1px;stroke-dasharray:4 4}.stage-zone text{fill:var(--text-muted);opacity:.35;font-weight:700}.stage-edge{stroke:var(--stage-line);stroke-width:4px}.stage-name,.stage-upstage,.stage-audience{fill:var(--text-muted)}.stage-audience{letter-spacing:.08em;font-weight:600}.sym-fill{fill:var(--sym-fill);stroke:var(--sym-stroke);stroke-width:1.4px}.sym-accent{fill:var(--sym-accent)}.sym-detail{fill:var(--sym-detail);stroke:var(--sym-stroke);stroke-width:1px}.sym-line{stroke:var(--sym-stroke);stroke-width:1.2px;fill:none}.sym-dot{fill:var(--sym-stroke)}.sym-pickup{stroke-width:2.8px;stroke-linecap:round}.sym-facing{fill:var(--sym-accent)}.sym-polar{fill:var(--sym-accent);fill-opacity:.07;stroke:var(--sym-accent);stroke-opacity:.5;stroke-width:1px;stroke-dasharray:3 3}.sym-glyph{fill:var(--sym-stroke);font-weight:700}.sym-bolt{fill:#f5b400;stroke:var(--sym-stroke);stroke-width:.01px}.sym-dashed{stroke-dasharray:4 3}.sym-musician .sym-fill{fill:var(--accent-soft)}.sym-riser-fill{fill:var(--riser);stroke:var(--riser-stroke);stroke-width:1.5px}.sym-riser-inner{fill:none;stroke:var(--riser-stroke);stroke-width:1px;stroke-dasharray:2 4}.obj-label{fill:var(--text);paint-order:stroke;stroke:var(--canvas);stroke-width:3px;stroke-linejoin:round;font-weight:500}.ch-badge rect{fill:var(--accent)}.ch-badge text{fill:#fff;font-weight:700}.obj{cursor:pointer}.obj.is-focused .sym-fill,.obj.is-focused .ff-shape,.obj.is-focused .ff-sticky{stroke:var(--focus);stroke-width:2.5px}.ff-sticky{stroke:#0000001f}.ff-sticky-shadow{fill:#0000001a}.ff-comment-disc{stroke:#00000026;stroke-width:1px;vector-effect:non-scaling-stroke;cursor:pointer}.ff-comment-star{stroke:#8a0b0e;stroke-width:.8px;stroke-linejoin:round;vector-effect:non-scaling-stroke;cursor:pointer}.obj.is-selected .ff-comment-disc,.obj.is-focused .ff-comment-disc{stroke:var(--focus);stroke-width:2.5px}.ff-shape{stroke:var(--sym-stroke);stroke-width:1.6px}.ff-text-box{fill:#0000}.ff-connector{stroke:var(--sym-stroke);stroke-width:2px}.ff-hit{stroke:#0000;stroke-width:12px}.ff-connector-label{fill:var(--text);paint-order:stroke;stroke:var(--canvas);stroke-width:3px}.arrow-head{fill:var(--sym-stroke)}.ff-text-fo{pointer-events:none}.ff-text{color:#1b1f24;white-space:pre-wrap;word-break:break-word;width:100%;height:100%;padding:10px 12px;font-size:20px;line-height:1.3;overflow:hidden}.ff-text-plain{color:var(--text);padding:4px;font-size:24px}.ff-text-center{text-align:center;color:var(--text);justify-content:center;align-items:center;display:flex}.ff-editor{border:2px solid var(--accent);color:#1b1f24;resize:none;background:#ffffffeb;border-radius:2px;width:100%;height:100%;padding:10px 12px;font-size:20px;line-height:1.3}.ff-table-bg{fill:var(--surface);stroke:var(--sym-stroke);stroke-width:1.4px}.ff-table line{stroke:var(--border-strong);stroke-width:1px}.ff-table text{fill:var(--text)}.ff-th{font-weight:700}.cell-editor{border:2px solid var(--accent);border-radius:0;width:100%;height:100%;padding:2px 8px;font-size:20px}.ff-image-missing{fill:var(--surface-2);stroke:var(--border-strong);stroke-dasharray:4 4}.sel-box,.sel-line{fill:none;stroke:var(--selection);stroke-width:1.5px;pointer-events:none}.sel-box{stroke-dasharray:5 3}.peer-selection{fill:none;stroke-width:2px;pointer-events:none}.handle{fill:var(--surface);stroke:var(--selection);stroke-width:1.5px;cursor:nwse-resize}.handle-ne,.handle-sw{cursor:nesw-resize}.handle-rotate{cursor:grab}.handle-stem{stroke:var(--selection);stroke-width:1px}.guides line{stroke:#e5484d;stroke-width:1px;stroke-dasharray:3 2}.marquee{fill:var(--accent);fill-opacity:.08;stroke:var(--accent);stroke-width:1px}.creating{fill:var(--accent);fill-opacity:.08;stroke:var(--accent);stroke-width:1.5px;stroke-dasharray:4 3}.minimap{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);cursor:pointer;border-radius:6px;position:absolute;bottom:52px;right:12px}.mm-frame{fill:var(--stage);stroke:var(--stage-line);stroke-width:.05px}.mm-obj{fill:var(--sym-stroke);opacity:.7}.mm-freeform{fill:var(--warn)}.mm-view{fill:var(--accent);fill-opacity:.08;stroke:var(--accent);stroke-width:1.5px}.zoom-controls{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:6px;align-items:center;gap:2px;padding:2px;display:flex;position:absolute;bottom:12px;right:12px}.zoom-level{text-align:center;font-variant-numeric:tabular-nums;min-width:44px;font-size:12px}.readonly-chip{background:var(--warn-soft);color:var(--warn);border-radius:999px;padding:3px 10px;font-size:12px;font-weight:600;position:absolute;bottom:12px;left:12px}html:has(.editor){overscroll-behavior:none;overflow:hidden}html:has(.editor) body{overscroll-behavior:none;overflow:hidden}.editor{touch-action:pan-x pan-y}@media (width<=1280px){.topbar .btn:not(.palette-btn){gap:0;font-size:0}.topbar kbd{display:none}.topbar .board-title{flex:0 200px;min-width:60px}.topbar .badge-ok{font-size:0}.topbar .user-name{display:none}.topbar .status span{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}}.topbar-item{display:contents}@media (width<=1100px){.bottom-pane.is-open{min-height:45dvh}.dg-toolbar .btn:has(svg){gap:0;font-size:0}}@media (width<=700px){.bottom-pane.is-open{height:60dvh!important}.pane-split{grid-template-rows:minmax(0,1fr) auto;grid-template-columns:minmax(0,1fr)}.tray{border-left:0;border-top:1px solid var(--border);max-height:30%}.topbar-group,.topbar .badge-ok,.topbar-item[data-phone=palette]>button,.topbar-item[data-phone=palette]>.menu,.topbar .phone-hidden{display:none}}@media (pointer:coarse){.pane-tab kbd{display:none}.chip{min-height:32px}input[type=checkbox],input[type=radio],.inspector .check input{width:20px;height:20px}.panel-rail{position:relative;overflow:visible}.panel-rail:before{content:"";position:absolute;inset:0 -12px}}@media (width<=1100px){.editor-body{grid-template-columns:180px minmax(0,1fr) 260px}.palette-btn span{display:none}}@media (width<=700px){.editor-body{grid-template-columns:minmax(0,1fr)}.left-panel{display:none}.right-panel.is-sheet{z-index:40;border-left:0;border-top:1px solid var(--border);height:70dvh;max-height:min(85dvh,640px);box-shadow:var(--shadow);padding-bottom:env(safe-area-inset-bottom);border-radius:12px 12px 0 0;position:fixed;bottom:0;left:0;right:0}.sheet-backdrop{z-index:39;background:#0000004d;position:fixed;inset:0}.user-name{display:none}.status span{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}}@media (pointer:coarse){.icon-btn{width:36px;height:36px}.panel-handle-left,.panel-handle-right{width:20px}.panel-handle-left{transform:translate(-10px)}.panel-handle-right{transform:translate(10px)}.panel-handle-left:after,.panel-handle-right:after{left:9px}.panel-handle-bottom{height:20px;top:-10px}.panel-handle-bottom:after{top:9px}.panel-collapse{opacity:1;width:22px;height:36px}.layer-row{height:36px}}@media (height<=820px){.bottom-open .minimap{display:none}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.ff-text-inner{max-width:100%}.ff-text-fo.is-outside .ff-text{color:var(--text);padding:2px;overflow:visible}.text-style{flex-direction:column;gap:6px;margin-bottom:8px;display:flex}.text-style-row{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.text-style-group{gap:2px;padding-right:6px;display:flex}.text-style-btn{width:30px;height:30px}.text-style-btn.is-active{background:var(--accent-soft);color:var(--accent)}.text-style-size select{height:30px}
