:root{--bg:#f4f5f7;--surface:#fff;--border:#e6e8eb;--border-strong:#d4d8dd;--text:#1b1e23;--text-muted:#868d96;--accent:#2563eb;--accent-soft:#eef3ff;--danger:#dc2626;--ok:#16a34a;--canvas-bg:#e9ebef;--region:#fff;--radius:10px;--radius-sm:7px}*{box-sizing:border-box}html,body,#root{height:100%}body{color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}.app{height:100%;display:flex}.sidebar{background:var(--surface);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;gap:24px;width:288px;padding:22px 20px;display:flex;overflow-y:auto}.sidebar-right{border-right:none;border-left:1px solid var(--border)}.app-title{letter-spacing:-.01em;margin:0;font-size:15px;font-weight:600}.workspace{flex-direction:column;flex:1;min-width:0;display:flex}.toolbar-bar{border-bottom:1px solid var(--border);background:var(--surface);padding:12px 16px}.canvas-wrap{background:var(--canvas-bg);flex:1;min-height:0;display:flex}.canvas{touch-action:none;width:100%;height:100%;display:block}.section{flex-direction:column;gap:10px;display:flex}.section-title{text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);margin:0;font-size:11px;font-weight:600}.toolbar{flex-wrap:wrap;gap:6px;display:flex}.tool{font:inherit;border:1px solid var(--border-strong);background:var(--surface);color:var(--text);cursor:pointer;border-radius:999px;padding:6px 13px;font-size:12px;transition:background .12s,border-color .12s,color .12s}.tool:hover{border-color:var(--accent);color:var(--accent)}.tool.active{background:var(--accent);border-color:var(--accent);color:#fff}.design-header{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.tab{border:1px solid var(--border-strong);background:var(--surface);border-radius:999px;align-items:center;display:inline-flex;overflow:hidden}.tab.active{border-color:var(--accent)}.tab-label{font:inherit;color:var(--text);cursor:pointer;background:0 0;border:none;padding:6px 10px;font-size:12px}.tab.active .tab-label{color:var(--accent);font-weight:600}.tab-close{font:inherit;color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:0 9px 0 1px;line-height:1}.tab-close:hover{color:var(--danger)}.tab-add{font:inherit;color:var(--text-muted);cursor:pointer;padding:5px 11px;font-size:14px}.tab-add:hover{border-color:var(--accent);color:var(--accent)}.tab-edit{font:inherit;border:1px solid var(--accent);border-radius:999px;width:100px;padding:5px 9px;font-size:12px}.btn{font:inherit;border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--surface);color:var(--text);cursor:pointer;padding:8px 12px;font-size:13px;transition:border-color .12s,color .12s}.btn:hover:not(:disabled){border-color:var(--accent)}.btn:disabled{opacity:.45;cursor:default}.btn-danger:hover:not(:disabled){border-color:var(--danger);color:var(--danger)}.sidebar-footer{flex-direction:column;gap:8px;margin-top:auto;display:flex}.param-row{flex-direction:column;gap:5px;display:flex}.param-head{justify-content:space-between;font-size:12px;display:flex}.param-value{color:var(--text-muted);font-variant-numeric:tabular-nums}.muted{color:var(--text-muted);font-size:12px}input[type=range]{width:100%;accent-color:var(--accent)}input[type=file]{width:100%;color:var(--text-muted);font-size:12px}.status-line{color:var(--text-muted);font-size:12px}.status-list{flex-direction:column;gap:3px;margin:0;padding:0;list-style:none;display:flex}.status-ok{color:var(--ok);font-size:12px}.status-broken{color:var(--danger);font-size:12px}
