:root{--bg:#fff;--panel:#f4f4f5;--panel-border:#e4e4e7;--ink:#111;--ink-muted:#71717a;--accent:#2563eb;--accent-hover:#1d4ed8;--canvas-bg:#fafafa;--grid-minor:#e5e7eb;--grid-major:#d1d5db;--handle:#2563eb;--danger:#ef4444;--surface:#fff;--shadow:#00000014}[data-theme=dark]{--bg:#18181b;--panel:#1f1f23;--panel-border:#2e2e33;--ink:#e4e4e7;--ink-muted:#a1a1aa;--accent:#3b82f6;--accent-hover:#2563eb;--canvas-bg:#101014;--grid-minor:#26262b;--grid-major:#333338;--handle:#3b82f6;--danger:#f87171;--surface:#27272a;--shadow:#0000004d}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{background:var(--bg);width:100%;height:100%;color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:13px;overflow:hidden}#app{grid-template:"toolbar canvas props"1fr"toolbar status props"28px/48px 1fr 280px;width:100vw;height:100vh;display:grid;overflow:hidden}#toolbar{background:var(--panel);border-right:1px solid var(--panel-border);flex-direction:column;grid-area:toolbar;align-items:center;gap:2px;padding:8px 0;display:flex;overflow:hidden auto}#canvas-container{background:var(--canvas-bg);grid-area:canvas;position:relative;overflow:hidden}#stage{touch-action:none;cursor:crosshair;width:100%;height:100%;display:block}#overlay{pointer-events:none;position:absolute;inset:0}#properties-panel{background:var(--panel);border-left:1px solid var(--panel-border);grid-area:props;padding:12px;overflow:hidden auto}#status-bar{background:var(--panel);border-top:1px solid var(--panel-border);color:var(--ink-muted);grid-area:status;align-items:center;gap:16px;padding:0 12px;font-family:JetBrains Mono,Fira Code,Consolas,monospace;font-size:11px;display:flex}.tool-btn{cursor:pointer;width:36px;height:36px;color:var(--ink);background:0 0;border:none;border-radius:6px;outline:none;flex-shrink:0;justify-content:center;align-items:center;transition:background .1s,color .1s;display:flex}.tool-btn:hover{background:var(--panel-border)}.tool-btn.active{background:var(--accent);color:#fff}.tool-btn svg{pointer-events:none;width:18px;height:18px}.tool-separator{background:var(--panel-border);flex-shrink:0;width:28px;height:1px;margin:4px 0}.tool-btn-label{color:var(--ink-muted);text-align:center;font-size:9px;line-height:1;display:none}.props-section{margin-bottom:16px}.props-section h3{color:var(--ink-muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:8px;font-size:11px;font-weight:600}.props-row{align-items:center;gap:8px;margin-bottom:6px;display:flex}.props-row label{color:var(--ink-muted);flex-shrink:0;width:80px;font-size:11px}.props-placeholder{color:var(--ink-muted);padding:8px 0;font-size:12px;line-height:1.5}.props-divider{background:var(--panel-border);height:1px;margin:12px 0}input[type=text],input[type=number],input[type=date],textarea,.select-wrapper select{border:1px solid var(--panel-border);background:var(--surface);width:100%;color:var(--ink);border-radius:4px;outline:none;padding:4px 8px;font-family:inherit;font-size:12px;transition:border-color .15s}input[type=text]:focus,input[type=number]:focus,textarea:focus,.select-wrapper select:focus{border-color:var(--accent)}textarea{resize:vertical;min-height:60px}.select-wrapper{width:100%;position:relative}.select-wrapper select{appearance:none;cursor:pointer;padding-right:28px}.select-wrapper:after{content:"";border-left:4px solid #0000;border-right:4px solid #0000;border-top:5px solid var(--ink-muted);pointer-events:none;width:0;height:0;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.props-row input[type=checkbox]{width:14px;height:14px;accent-color:var(--accent);cursor:pointer}#prompt{white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}#coords{text-align:center;flex-shrink:0;min-width:140px}#zoom-label{text-align:right;flex-shrink:0;min-width:70px;margin-left:auto}#title-block{background:var(--surface);border-top:2px solid var(--ink);pointer-events:auto;max-height:40%;box-shadow:0 -2px 8px var(--shadow);font-size:11px;position:absolute;bottom:0;left:0;right:0;overflow-y:auto}#title-block.collapsed{max-height:none}.tb-header{background:var(--panel);border-bottom:1px solid var(--panel-border);justify-content:space-between;align-items:center;padding:4px 10px;display:flex}.tb-logo{letter-spacing:.08em;color:var(--accent);font-size:13px;font-weight:800}.tb-toggle{border:1px solid var(--panel-border);color:var(--ink-muted);cursor:pointer;background:0 0;border-radius:4px;padding:2px 8px;font-size:10px}.tb-toggle:hover{background:var(--panel-border)}.tb-grid{grid-template-columns:repeat(4,1fr);gap:6px 12px;padding:8px 10px;display:grid}.tb-cell{flex-direction:column;gap:2px;display:flex}.tb-cell label{color:var(--ink-muted);text-transform:uppercase;letter-spacing:.04em;font-size:9px}.tb-cell input,.tb-cell .select-wrapper select{padding:2px 6px;font-size:11px}.prop-entity-header{color:var(--ink);text-transform:capitalize;margin-bottom:8px;font-size:12px;font-weight:600}.prop-field{align-items:center;gap:6px;margin-bottom:5px;display:flex}.prop-field label{color:var(--ink-muted);flex-shrink:0;width:60px;font-size:10px}.prop-field input,.prop-field .select-wrapper{flex:1}#file-menu-btn{z-index:40;background:var(--surface);color:var(--ink);border:1px solid var(--panel-border);cursor:pointer;box-shadow:0 1px 4px var(--shadow);border-radius:6px;padding:6px 12px;font-size:12px;font-weight:600;position:absolute;top:10px;right:10px}#file-menu-btn:hover{background:var(--panel)}#file-menu{z-index:41;background:var(--surface);border:1px solid var(--panel-border);box-shadow:0 4px 16px var(--shadow);border-radius:6px;min-width:160px;padding:4px;position:absolute;top:44px;right:10px}.file-menu-item{text-align:left;width:100%;color:var(--ink);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:7px 12px;font-size:12px;display:block}.file-menu-item:hover{background:var(--accent);color:#fff}.file-menu-sep{background:var(--panel-border);height:1px;margin:4px 8px}#context-menu{z-index:100;background:var(--surface);border:1px solid var(--panel-border);box-shadow:0 4px 16px var(--shadow);border-radius:6px;min-width:150px;padding:4px;position:fixed}.ctx-item{text-align:left;width:100%;color:var(--ink);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:7px 12px;font-size:12px;display:block}.ctx-item:hover{background:var(--accent);color:#fff}.ctx-item.ctx-danger:hover{background:var(--danger)}.ctx-sep{background:var(--panel-border);height:1px;margin:4px 8px}
