:root{--font-ui: "Inter", -apple-system, BlinkMacSystemFont, system-ui, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace;--font-display: "Spectral", Georgia, serif;--bg: #f4f2ee;--panel: #fbfaf7;--panel-2: #ffffff;--line: #e3dfd6;--line-2: #d5cfc2;--ink: #1a1815;--ink-2: #5b554b;--ink-3: #8a8377;--ink-4: #b8b1a3;--canvas-bg: #efeae0;--canvas-line: rgba(40, 32, 22, .18);--canvas-line-strong: rgba(40, 32, 22, .35);--canvas-coord: rgba(40, 32, 22, .45);--hover: rgba(30, 25, 18, .06);--selected: rgba(30, 25, 18, .12);--shadow: 0 1px 0 rgba(0,0,0,.02), 0 1px 3px rgba(0,0,0,.04);--shadow-lg: 0 4px 12px rgba(20,15,10,.08), 0 1px 3px rgba(20,15,10,.05);--accent: #b8552c;--accent-ink: #fff;--danger: #b13a2a;--ok: #4f7a3a;--info: #3a6a8a;--left-panel-w: 320px;--right-panel-w: 300px}[data-theme=studio]{--bg: #1c1d20;--panel: #232529;--panel-2: #2a2c31;--line: #34373c;--line-2: #42464c;--ink: #ecebe7;--ink-2: #b5b3ac;--ink-3: #87857d;--ink-4: #5a5852;--canvas-bg: #2e2a25;--canvas-line: rgba(255, 245, 220, .1);--canvas-line-strong: rgba(255, 245, 220, .22);--canvas-coord: rgba(255, 245, 220, .35);--hover: rgba(255, 255, 255, .06);--selected: rgba(255, 255, 255, .14);--shadow: 0 1px 0 rgba(0,0,0,.2), 0 1px 3px rgba(0,0,0,.3);--shadow-lg: 0 6px 16px rgba(0,0,0,.4), 0 2px 4px rgba(0,0,0,.3)}[data-theme=tabletop]{--bg: #ebe1cc;--panel: #f5ecd5;--panel-2: #fbf4de;--line: #d6c89a;--line-2: #b8a978;--ink: #2b1e0b;--ink-2: #5a4520;--ink-3: #856b3a;--ink-4: #ad9460;--canvas-bg: #e8d9b0;--canvas-line: rgba(60, 40, 10, .22);--canvas-line-strong: rgba(60, 40, 10, .42);--canvas-coord: rgba(60, 40, 10, .5);--hover: rgba(60, 40, 10, .06);--selected: rgba(60, 40, 10, .14);--shadow: 0 1px 0 rgba(60,40,10,.05), 0 1px 3px rgba(60,40,10,.08);--shadow-lg: 0 4px 12px rgba(60,40,10,.12)}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--font-ui);font-size:13px;color:var(--ink);background:var(--bg);overflow:hidden;-webkit-font-smoothing:antialiased;letter-spacing:-.005em}button{font-family:inherit;font-size:inherit;color:inherit;background:transparent;border:0;cursor:pointer;padding:0}input,select,textarea{font-family:inherit;font-size:inherit;color:inherit}input[type=text],input[type=number],select,textarea{background:var(--panel-2);border:1px solid var(--line);border-radius:4px;padding:5px 8px;outline:none;width:100%}input[type=text]:focus,input[type=number]:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 18%,transparent)}input[type=range]{width:100%;accent-color:var(--accent)}.app{display:grid;grid-template-rows:44px 1fr;height:100vh}.main{display:grid;grid-template-columns:var(--left-panel-w) 1fr var(--right-panel-w);min-height:0}.menu-bar{display:flex;align-items:center;gap:8px;padding:0 12px;background:var(--panel);border-bottom:1px solid var(--line);z-index:10}.menu-bar .menu-bar-group{display:flex;align-items:center;gap:2px;padding:0 4px;border-right:1px solid var(--line);height:24px}.menu-bar-group:last-child{border-right:0}.menu-bar .brand{font-family:var(--font-display);font-weight:500;font-size:14px;letter-spacing:.02em;color:var(--ink);padding-right:10px;border-right:1px solid var(--line);margin-right:4px}.menu-bar .brand .badge{font-family:var(--font-mono);font-size:9px;color:var(--ink-3);margin-left:6px;letter-spacing:.06em;text-transform:uppercase}.menu-btn{height:26px;padding:0 8px;border-radius:4px;display:inline-flex;align-items:center;gap:5px;color:var(--ink-2);font-weight:500;white-space:nowrap}.menu-btn:hover{background:var(--hover);color:var(--ink)}.menu-btn[data-active=true]{background:var(--selected);color:var(--ink)}.menu-btn:disabled{opacity:.4;cursor:default}.menu-btn .ico{width:14px;height:14px;display:inline-block}.menu-btn-primary{background:var(--accent);color:var(--accent-ink)}.menu-btn-primary:hover{background:var(--accent);color:var(--accent-ink);filter:brightness(.95)}.spacer{flex:1}.zoom-readout{font-family:var(--font-mono);font-size:11px;color:var(--ink-3);min-width:38px;text-align:center}.panel-resize-handle{position:absolute;top:0;bottom:0;width:5px;cursor:col-resize;z-index:10}.panel-resize-handle--right{right:-3px}.panel-resize-handle--left{left:-3px}.panel-resize-handle:hover,.panel-resize-handle:active{background:color-mix(in srgb,var(--accent) 40%,transparent)}.panel{position:relative;background:var(--panel);border-right:1px solid var(--line);display:flex;flex-direction:column;min-height:0}.panel-right{border-right:0;border-left:1px solid var(--line)}.tabs{display:flex;flex-wrap:wrap;gap:4px;padding:6px;justify-content:flex-start;border-bottom:1px solid var(--line);background:var(--panel);flex-shrink:0}.tab{flex:1 0 74px;min-width:72px;max-width:92px;padding:8px 6px;font-size:10.5px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-3);font-weight:600;border:1px solid transparent;border-radius:4px}.tab[data-active=true]{color:var(--ink);border-color:color-mix(in srgb,var(--accent) 55%,var(--line));background:color-mix(in srgb,var(--accent) 8%,var(--panel))}.tab:hover:not([data-active=true]){color:var(--ink-2)}.panel-body{flex:1;overflow-y:auto;padding:14px;scrollbar-gutter:stable}.panel-body::-webkit-scrollbar,.biome-selector-scroll::-webkit-scrollbar{width:10px}.panel-body::-webkit-scrollbar-track,.biome-selector-scroll::-webkit-scrollbar-track{background:var(--panel)}.panel-body::-webkit-scrollbar-thumb,.biome-selector-scroll::-webkit-scrollbar-thumb{background:var(--line-2);border-radius:10px;border:2px solid var(--panel)}.section{margin-bottom:18px}.section:last-child{margin-bottom:0}.section-head{font-size:10px;text-transform:uppercase;letter-spacing:.1em;font-weight:600;color:var(--ink-3);margin-bottom:8px;display:flex;align-items:center;justify-content:space-between}.section-head .hint{font-family:var(--font-mono);text-transform:none;letter-spacing:0;color:var(--ink-4);font-weight:400}.section-head--toggle{cursor:pointer;-webkit-user-select:none;user-select:none}.section-head--toggle:hover{color:var(--ink-2)}.section-chevron{flex-shrink:0;color:var(--ink-4);transition:transform .15s}.section-chevron[data-open=false]{transform:rotate(-90deg)}.field{margin-bottom:10px}.field-label{display:flex;justify-content:space-between;font-size:11px;color:var(--ink-2);margin-bottom:4px}.field-label .val{font-family:var(--font-mono);color:var(--ink-3)}.row{display:flex;gap:6px;align-items:center}.row>*{flex:1}.biome-list{display:flex;flex-direction:column;gap:2px}.biome-list-item{display:flex;align-items:center;gap:7px;padding:4px 6px;border-radius:4px;border:1px solid transparent;background:var(--panel-2);font-size:11.5px;font-weight:500;color:var(--ink);cursor:pointer;text-transform:uppercase;letter-spacing:.04em}.biome-list-item:hover{border-color:var(--line-2)}.biome-list-item[data-active=true]{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,var(--panel-2))}.biome-list-swatch{position:relative;flex-shrink:0;width:26px;height:20px;border-radius:3px;overflow:hidden;border:1px solid rgba(0,0,0,.15)}.biome-list-swatch-thumb{position:absolute;top:0;right:0;bottom:0;left:0}.lib-cat{margin-bottom:14px}.lib-cat-head{font-size:10px;text-transform:uppercase;letter-spacing:.1em;font-weight:600;color:var(--ink-3);margin-bottom:6px;display:flex;align-items:center;gap:6px}.lib-cat-head:after{content:"";flex:1;height:1px;background:var(--line)}.lib-grid{display:grid;grid-template-columns:1fr 1fr;gap:4px}.lib-item{display:flex;align-items:center;gap:6px;padding:6px 7px;border-radius:4px;border:1px solid transparent;background:var(--panel-2);font-size:11.5px;font-weight:500;color:var(--ink);text-align:left;cursor:grab}.lib-item:hover{border-color:var(--line-2)}.lib-item[data-active=true]{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,var(--panel-2))}.lib-item .swatch{flex-shrink:0;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;font-size:10px;font-weight:700;color:#fff}.toolbar{position:absolute;top:12px;left:12px;background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:4px;display:flex;flex-direction:column;gap:2px;box-shadow:var(--shadow);z-index:5}.tool-btn{width:32px;height:32px;border-radius:4px;display:grid;place-items:center;color:var(--ink-2);position:relative}.tool-btn:hover{background:var(--hover);color:var(--ink)}.tool-btn[data-active=true]{background:var(--accent);color:var(--accent-ink)}.tool-btn .kbd{position:absolute;bottom:1px;right:2px;color:var(--accent);font-family:var(--font-mono);font-size:8px;font-weight:600;opacity:.75}.tool-btn[data-active=true] .kbd{color:var(--accent-ink)}.tool-btn-group{position:relative}.tool-btn-group:after{content:"";position:absolute;top:0;bottom:0;left:100%;width:8px}.tool-flyout{display:none;position:absolute;left:calc(100% + 6px);top:-4px;background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:4px;flex-direction:column;gap:2px;box-shadow:var(--shadow);z-index:20;min-width:140px}.tool-btn-group:hover .tool-flyout,.tool-btn-group[data-open=true] .tool-flyout{display:flex}.flyout-btn{display:flex;align-items:center;gap:7px;padding:5px 8px;border-radius:4px;font-size:12px;color:var(--ink-2);white-space:nowrap;cursor:default}.flyout-btn:hover{background:var(--hover);color:var(--ink)}.flyout-btn[data-active=true]{background:var(--accent);color:var(--accent-ink)}.flyout-kbd{margin-left:auto;font-family:var(--font-mono);font-size:10px;opacity:.55;padding:1px 4px;border:1px solid currentColor;border-radius:3px}.canvas-wrap{position:relative;background:var(--canvas-bg);min-height:0;height:100%;overflow:hidden}.canvas-svg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;cursor:crosshair;display:block;user-select:none;-webkit-user-select:none}.canvas-svg text{user-select:none;-webkit-user-select:none}.canvas-svg[data-tool=select]{cursor:default}.canvas-svg[data-tool=pan]{cursor:grab}.canvas-svg[data-tool=pan]:active{cursor:grabbing}.canvas-svg[data-pan-cursor=ready],.canvas-svg[data-pan-cursor=ready] *{cursor:grab!important}.canvas-svg[data-pan-cursor=dragging],.canvas-svg[data-pan-cursor=dragging] *{cursor:grabbing!important}.canvas-svg[data-tool=wall]{cursor:crosshair}.canvas-overlay-bottom{position:absolute;bottom:12px;left:50%;transform:translate(-50%);background:var(--panel);border:1px solid var(--line);border-radius:999px;padding:4px 14px;font-family:var(--font-mono);font-size:11px;color:var(--ink-3);box-shadow:var(--shadow);display:flex;gap:18px;align-items:center}.canvas-overlay-bottom .dot{width:4px;height:4px;background:var(--ink-4);border-radius:50%}.boundary-edit-panel{position:absolute;top:14px;right:14px;z-index:12;width:min(280px,calc(100% - 28px));background:var(--panel);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow-lg);padding:10px;display:flex;flex-direction:column;gap:8px;animation:rc3-fade-in .12s ease forwards}.boundary-edit-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.boundary-edit-panel-drag-handle{min-width:0;flex:1;cursor:move}.boundary-edit-panel-kicker{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:0;color:var(--ink-3)}.boundary-edit-panel-title{font-size:13px;font-weight:700;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:170px}.boundary-edit-panel-done{padding:4px 10px;background:var(--accent);border-color:var(--accent);color:var(--accent-ink);flex-shrink:0}.boundary-edit-panel-modes{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px}.boundary-edit-pill{min-width:0;border:1px solid var(--line);border-radius:4px;padding:4px 3px;text-align:center;font-size:10.5px;font-weight:700;color:var(--ink-3);background:var(--panel-2);cursor:pointer}.boundary-edit-pill:hover{background:var(--hover);color:var(--ink)}.boundary-edit-pill[data-active=true]{color:var(--accent-ink);background:var(--accent);border-color:var(--accent)}.boundary-edit-pill[data-override=true]{box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 24%,transparent)}.place-resize-panel-modes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px}.boundary-edit-panel-hint{font-family:var(--font-mono);font-size:11px;color:var(--ink-2)}.boundary-edit-help{position:absolute;right:8px;bottom:8px;z-index:1}.boundary-edit-help-btn{width:22px;height:22px;display:grid;place-items:center;border:1px solid var(--line);border-radius:999px;background:var(--panel-2);color:var(--ink-3);box-shadow:var(--shadow);cursor:help}.boundary-edit-help-btn:hover{background:var(--hover);color:var(--ink)}.boundary-edit-help-tooltip{position:absolute;right:0;bottom:calc(100% + 8px);width:236px;padding:9px 10px;border:1px solid var(--line);border-radius:8px;background:color-mix(in srgb,var(--panel) 96%,white 4%);box-shadow:var(--shadow-lg);font-size:11px;line-height:1.45;color:var(--ink-2);opacity:0;visibility:hidden;transform:translateY(4px);transition:opacity .14s ease,transform .14s ease,visibility .14s ease;pointer-events:none}.boundary-edit-help:hover .boundary-edit-help-tooltip,.boundary-edit-help:focus-within .boundary-edit-help-tooltip{opacity:1;visibility:visible;transform:translateY(0)}.boundary-edit-help-tooltip strong{color:var(--ink);font-weight:700}@keyframes rc3-fade-in{0%{opacity:0}to{opacity:1}}@keyframes inspector-delete-fadein{0%{opacity:0;transform:translateY(-3px)}to{opacity:1;transform:translateY(0)}}.rc3-hover-highlight{animation:rc3-fade-in .15s ease forwards}.rc3-hover-badge{position:absolute;z-index:9;background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:5px 10px;font-size:11px;font-weight:600;color:var(--ink-2);box-shadow:var(--shadow);pointer-events:none;white-space:nowrap;animation:rc3-fade-in .15s ease forwards}.room-candidate-popup{position:absolute;z-index:10;background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:10px 12px;box-shadow:var(--shadow);animation:rc3-fade-in .15s ease forwards;display:flex;flex-direction:column;gap:8px;min-width:180px;pointer-events:all}.room-candidate-popup-label{font-size:12px;font-weight:600;color:var(--ink-1)}.room-candidate-popup-actions{display:flex;gap:6px;justify-content:flex-end}.room-candidate-popup-btn-secondary{font-size:11px;padding:4px 10px;border-radius:4px;border:1px solid var(--line);background:transparent;color:var(--ink-3);cursor:pointer}.room-candidate-popup-btn-secondary:hover{background:var(--hover)}.room-candidate-popup-btn-primary{font-size:11px;padding:4px 10px;border-radius:4px;border:none;background:var(--accent);color:#fff;cursor:pointer;font-weight:600}.room-candidate-popup-btn-primary:hover{opacity:.85}.canvas-context-menu,.sidebar-context-menu{position:absolute;z-index:20;background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:4px;box-shadow:var(--shadow);display:flex;flex-direction:column;min-width:120px;animation:rc3-fade-in 80ms ease forwards}.canvas-context-menu-item,.sidebar-context-menu-item{display:block;width:100%;text-align:left;font-size:12px;padding:6px 10px;border:none;background:transparent;border-radius:4px;cursor:pointer;color:var(--ink-1);font-family:var(--font-ui)}.canvas-context-menu-item:hover,.sidebar-context-menu-item:hover{background:var(--hover)}.canvas-context-menu-item--danger,.sidebar-context-menu-item--danger{color:var(--danger)}.canvas-context-menu-item--danger:hover,.sidebar-context-menu-item--danger:hover{background:color-mix(in srgb,var(--danger) 12%,transparent)}.sidebar-drag-indicator{height:2px;background:var(--accent);border-radius:1px;margin:1px 4px}.label-rename-overlay{position:absolute;z-index:20;transform:translate(-50%,-50%);pointer-events:all}.label-rename-input{font-family:var(--font-ui);font-weight:700;text-align:center;background:var(--panel-2);border:1.5px solid var(--accent);border-radius:3px;padding:1px 6px;outline:none;color:var(--ink);box-shadow:0 1px 6px #0000002e;min-width:60px}.note-inline-edit{box-sizing:border-box;overflow:hidden;white-space:pre-wrap}.minimap{position:absolute;bottom:12px;right:12px;width:140px;height:92px;background:var(--panel);border:1px solid var(--line);border-radius:5px;padding:6px;box-shadow:var(--shadow)}.minimap-title{font-size:9px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-3);font-weight:600;margin-bottom:4px}.inspector-head{padding:14px 14px 8px;border-bottom:1px solid var(--line)}.inspector-head .kind{font-size:10px;text-transform:uppercase;letter-spacing:.1em;font-weight:600;color:var(--ink-3)}.inspector-head .name{font-family:var(--font-display);font-size:18px;font-weight:500;letter-spacing:-.01em;margin-top:2px}.inspector-head .name-static{display:flex;align-items:center;gap:5px;cursor:text;border-radius:4px;margin-right:-4px;padding:1px 4px 1px 0;transition:background .1s}.inspector-head .name-static:hover{background:var(--bg-2)}.inspector-head .name-static:hover .name-edit-btn{opacity:1}.name-edit-btn{flex-shrink:0;display:flex;align-items:center;justify-content:center;background:none;border:none;padding:2px;cursor:pointer;color:var(--ink-3);opacity:0;transition:opacity .1s,color .1s;border-radius:3px}.name-edit-btn:hover{color:var(--ink)}.inspector-head .name-edit{width:100%;font-family:var(--font-display);font-size:18px;font-weight:500;letter-spacing:-.01em;background:var(--bg-2);border:1px solid var(--accent);border-radius:4px;padding:1px 5px;outline:none;color:var(--ink);box-sizing:border-box}.inspector-head .meta{font-family:var(--font-mono);font-size:10.5px;color:var(--ink-3);margin-top:4px}.kv{display:grid;grid-template-columns:88px 1fr;gap:4px 8px;font-size:11.5px;align-items:center}.kv .k{color:var(--ink-3)}.kv .v{font-family:var(--font-mono);color:var(--ink)}.chip{display:inline-flex;align-items:center;gap:4px;padding:2px 7px;border-radius:999px;font-size:10.5px;background:var(--panel-2);border:1px solid var(--line);color:var(--ink-2)}.chip.success{color:var(--ok);border-color:color-mix(in srgb,var(--ok) 30%,var(--line));background:color-mix(in srgb,var(--ok) 6%,var(--panel-2))}.chip.warn{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 30%,var(--line));background:color-mix(in srgb,var(--danger) 6%,var(--panel-2))}.chip.info{color:var(--info);border-color:color-mix(in srgb,var(--info) 30%,var(--line));background:color-mix(in srgb,var(--info) 6%,var(--panel-2))}.toggle{display:flex;align-items:center;gap:8px;cursor:pointer;-webkit-user-select:none;user-select:none}.toggle .pill{width:26px;height:14px;border-radius:999px;background:var(--line-2);position:relative;transition:background .12s}.toggle .pill:after{content:"";position:absolute;width:10px;height:10px;border-radius:50%;background:#fff;top:2px;left:2px;transition:left .12s;box-shadow:0 1px 2px #0003}.toggle[data-on=true] .pill{background:var(--accent)}.toggle[data-on=true] .pill:after{left:14px}.toggle-label{font-size:11.5px;color:var(--ink)}.inspector-empty{padding:24px 14px;color:var(--ink-3);font-size:12px;text-align:center;font-style:italic;border-bottom:1px solid var(--line)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f0c0866;z-index:50;display:grid;place-items:center}.modal{background:var(--panel);border:1px solid var(--line);border-radius:8px;width:640px;max-width:92vw;max-height:86vh;display:flex;flex-direction:column;box-shadow:var(--shadow-lg);overflow:hidden}.modal-head{padding:14px 18px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}.modal-head .title{font-family:var(--font-display);font-size:18px;font-weight:500}.modal-tabs{display:flex;padding:0 18px;border-bottom:1px solid var(--line);gap:0}.modal-tab{padding:10px 14px;font-size:11.5px;font-weight:500;color:var(--ink-3);border-bottom:2px solid transparent;margin-bottom:-1px}.modal-tab[data-active=true]{color:var(--ink);border-bottom-color:var(--accent)}.modal-tab:disabled{opacity:.4;cursor:default}.modal-body{padding:18px;flex:1;overflow-y:auto;min-height:0;scrollbar-gutter:stable}.modal-body::-webkit-scrollbar{width:10px}.modal-body::-webkit-scrollbar-track{background:transparent}.modal-body::-webkit-scrollbar-thumb{background:var(--line-2);border-radius:10px;border:2px solid var(--panel)}.modal-body pre{background:var(--panel-2);border:1px solid var(--line);border-radius:5px;padding:12px;font-family:var(--font-mono);font-size:11.5px;margin:0;white-space:pre;overflow:auto;max-height:320px;color:var(--ink);line-height:1.45}.modal-body pre.editable{white-space:pre-wrap;outline:none}.import-json-editor{display:flex;border:1px solid var(--line);border-radius:4px;overflow:hidden;min-height:260px;max-height:320px}.import-json-linenos{background:var(--panel);border-right:1px solid var(--line);color:var(--ink-4);font-family:var(--font-mono);font-size:11.5px;line-height:1.45;padding:6px 8px;text-align:right;overflow:hidden;-webkit-user-select:none;user-select:none;min-width:32px;flex-shrink:0}.import-json-textarea{border:none;border-radius:0;resize:none;font-family:var(--font-mono);font-size:11.5px;line-height:1.45;white-space:pre;flex:1;width:auto;padding:6px 8px;overflow:auto;background:var(--panel-2);outline:none;min-width:0}.import-error-panel{border-top:1px solid var(--line);padding:8px 18px;font-family:var(--font-mono);font-size:11px;line-height:1.45;min-height:36px;display:flex;align-items:center;background:var(--panel);flex-shrink:0}.import-error-panel.has-error{border-top-color:var(--danger);background:color-mix(in srgb,var(--danger) 8%,var(--panel))}.import-error-panel.is-ok{border-color:color-mix(in srgb,green 40%,var(--line));background:color-mix(in srgb,green 6%,var(--panel))}.import-error-text{color:var(--danger)}.import-error-ok{color:color-mix(in srgb,green 55%,var(--ink-2))}.import-error-idle{color:var(--ink-4)}.modal-foot{padding:12px 18px;border-top:1px solid var(--line);display:flex;gap:8px;justify-content:space-between;align-items:center}.modal-summary{font-size:11.5px;color:var(--ink-2);line-height:1.6}.modal-summary .k{color:var(--ink-3)}.modal-summary code{font-family:var(--font-mono);color:var(--ink);background:var(--panel-2);padding:1px 5px;border-radius:3px;border:1px solid var(--line)}.btn{height:30px;padding:0 12px;border-radius:4px;font-weight:500;font-size:12px;border:1px solid var(--line);background:var(--panel-2);color:var(--ink);display:inline-flex;align-items:center;gap:6px}.btn:hover{border-color:var(--line-2)}.btn:disabled{opacity:.4;cursor:not-allowed}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.btn-primary:hover{filter:brightness(.95)}.btn-primary:disabled{filter:none}.btn-info{background:var(--info);border-color:var(--info);color:#fff}.btn-info:hover{filter:brightness(.95)}.copy-json-btn{min-width:72px;justify-content:center}.btn-ghost{background:transparent;border-color:transparent;color:var(--ink-2)}.btn-ghost:hover{background:var(--hover);color:var(--ink)}.status-row{display:flex;flex-wrap:wrap;gap:4px}.wizard{position:absolute;top:0;right:0;bottom:0;left:0;background:#0f0c0859;display:grid;place-items:center;z-index:30}.divider{height:1px;background:var(--line);margin:10px 0}.kbd-key{font-family:var(--font-mono);font-size:10px;border:1px solid var(--line);background:var(--panel-2);border-radius:3px;padding:1px 5px;color:var(--ink-2)}.notice{font-size:11px;color:var(--ink-3);font-style:italic;line-height:1.5}@media screen{.print-only{display:none!important}}@media print{@page{margin:.4in}html,body{height:auto!important;overflow:visible!important;background:#fff!important}body{background:#fff!important;overflow:visible}.app,.menu-bar,.panel,.canvas-overlay-bottom,.minimap,.tool-palette,.modal-backdrop,.twk-panel{display:none!important}.print-only{display:block!important}.print-only .print-page{page-break-after:always;width:100%;height:calc(100vh - .8in);display:flex;flex-direction:column;color:#111;font-family:var(--font-ui)}.print-only .print-page:last-child{page-break-after:auto}.print-only .print-details-page{height:auto;min-height:0;page-break-before:always;page-break-after:auto}.print-only .print-hdr{display:flex;align-items:baseline;justify-content:space-between;padding-bottom:6px;border-bottom:1px solid #888;margin-bottom:8px}.print-only .print-hdr .name{font-family:var(--font-display);font-size:16pt;font-weight:500}.print-only .print-hdr .meta{font-family:var(--font-mono);font-size:9pt;color:#555}.print-only .print-svg-wrap{flex:1;min-height:0;display:grid;place-items:center}.print-only .print-svg-wrap svg{max-width:100%;max-height:100%}.print-only .legend{margin-top:8px;display:flex;flex-wrap:wrap;gap:8px 18px;font-size:8pt;color:#333;padding-top:6px;border-top:1px solid #888}.print-only .legend-item{display:inline-flex;align-items:center;gap:6px}.print-only .legend-swatch{width:14px;height:14px;border-radius:50%;display:inline-grid;place-items:center;font-size:7pt;color:#fff;font-weight:700}}.proc-result{padding:8px 10px;background:var(--panel-2);border:1px dashed var(--line-2);border-radius:5px;font-family:var(--font-mono);font-size:11px;color:var(--ink-2);line-height:1.6}.print-preview{background:#f5f3ef;border:1px solid var(--line);border-radius:6px;padding:12px;display:grid;place-items:center;min-height:220px}.print-preview svg{max-width:100%;max-height:360px;display:block}.opt-row{display:grid;grid-template-columns:1fr 1fr;gap:14px 18px}.opt-row .field-label{font-size:11.5px}
