:root{--bg:#14171f;--bg-panel:#1b1f2a;--bg-elevated:#232838;--border:#2e3446;--text:#dce1ec;--text-dim:#8a93a6;--accent:#5b8cff;--accent-hover:#729bff;--danger:#d9534f;--ok:#2e9e5b;--warn:#d9a514;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-family:Segoe UI,system-ui,-apple-system,sans-serif}*{box-sizing:border-box}html,body,#root{background:var(--bg);height:100%;color:var(--text);margin:0}button{font:inherit;color:var(--text);background:var(--bg-elevated);border:1px solid var(--border);cursor:pointer;border-radius:6px;padding:6px 12px}button:hover{border-color:var(--accent)}button:disabled{opacity:.45;cursor:default;border-color:var(--border)}button.primary{background:var(--accent);border-color:var(--accent);color:#fff}button.primary:hover{background:var(--accent-hover)}button.danger{color:var(--danger)}button.active{background:var(--accent);border-color:var(--accent);color:#fff}input,select{font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:6px 10px}input:focus,select:focus{border-color:var(--accent);outline:none}.page{max-width:1100px;margin:0 auto;padding:32px 24px}.page-header{align-items:center;gap:16px;margin-bottom:24px;display:flex}.page-header h1{flex:1;margin:0;font-size:22px}.page-header .brand{color:var(--accent);font-size:18px;font-weight:700;text-decoration:none}.card-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;display:grid}.card{background:var(--bg-panel);border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:10px;padding:16px;display:flex}.card h3{margin:0;font-size:16px}.card .meta{color:var(--text-dim);font-size:13px}.card .row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.spacer{flex:1}.empty-note{color:var(--text-dim);text-align:center;padding:40px 0}.plan-slot{border:1px dashed var(--border);border-radius:8px;align-items:center;gap:10px;padding:10px;font-size:13px;display:flex}.plan-slot.filled{border-style:solid}.plan-slot .thumb{object-fit:cover;background:#fff;border-radius:4px;width:56px;height:42px}.badge{background:var(--bg-elevated);color:var(--text-dim);border-radius:10px;padding:2px 8px;font-size:12px}.badge.ok{color:var(--ok)}.badge.warn{color:var(--warn)}.editor-root{flex-direction:column;height:100%;display:flex;overflow:hidden}.toolbar{background:var(--bg-panel);border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:8px;padding:8px 12px;display:flex}.toolbar .group{border-right:1px solid var(--border);align-items:center;gap:4px;padding-right:10px;display:flex}.toolbar .group:last-child{border-right:none}.toolbar .save-status{color:var(--text-dim);font-size:13px}.toolbar .save-status.conflict,.toolbar .save-status.error{color:var(--danger)}.editor-body{flex:1;min-height:0;display:flex}.side-panel{background:var(--bg-panel);border-right:1px solid var(--border);flex-direction:column;width:280px;display:flex;overflow-y:auto}.side-panel.right{border-right:none;border-left:1px solid var(--border);width:300px}.panel-section{border-bottom:1px solid var(--border);padding:12px}.panel-section h4{text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim);margin:0 0 8px;font-size:12px}.canvas-wrap{background:#0e1016;flex:1;min-width:0;position:relative}.canvas-hint{border:1px solid var(--border);pointer-events:none;z-index:5;text-align:center;background:#14171feb;border-radius:8px;max-width:70%;padding:8px 16px;font-size:13px;position:absolute;top:12px;left:50%;transform:translate(-50%)}.tree{font-size:13px}.tree-node{cursor:pointer;white-space:nowrap;border-radius:6px;align-items:center;gap:6px;padding:4px 8px;display:flex;overflow:hidden}.tree-node:hover{background:var(--bg-elevated)}.tree-node.selected{background:#5b8cff38}.tree-node .caret{width:14px;color:var(--text-dim);text-align:center;flex-shrink:0}.tree-node .swatch{border-radius:3px;flex-shrink:0;width:10px;height:10px}.tree-node .label{text-overflow:ellipsis;flex:1;overflow:hidden}.tree-node .delta{font-variant-numeric:tabular-nums}.tree-children{margin-left:14px}.tree-node .warn-icon{color:var(--warn)}.prop-row{align-items:center;gap:8px;margin-bottom:8px;font-size:13px;display:flex}.prop-row label{width:110px;color:var(--text-dim);flex-shrink:0}.prop-row input{flex:1;min-width:0}.prop-value{font-variant-numeric:tabular-nums}.floating-input{z-index:10;background:var(--bg-panel);border:1px solid var(--accent);border-radius:8px;flex-direction:column;gap:4px;padding:8px;display:flex;position:absolute;box-shadow:0 6px 24px #00000080}.floating-input input{width:150px}.floating-input .hint{color:var(--text-dim);font-size:11px}.combo-list{flex-direction:column;max-height:200px;display:flex;overflow-y:auto}.combo-item{cursor:pointer;border-radius:5px;gap:8px;padding:5px 8px;font-size:13px;display:flex}.combo-item:hover,.combo-item.active{background:var(--bg-elevated)}.combo-item .area{color:var(--text-dim);margin-left:auto}.modal-backdrop{z-index:50;background:#0000008c;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:var(--bg-panel);border:1px solid var(--border);border-radius:12px;flex-direction:column;gap:12px;min-width:360px;padding:20px;display:flex}.modal h3{margin:0}.range-row{align-items:center;gap:8px;font-size:13px;display:flex}.range-row input[type=range]{flex:1;padding:0}.split-container{display:flex;position:absolute;inset:0}.pane{flex:1;min-width:0;position:relative;overflow:hidden}.pane+.pane{border-left:1px solid var(--border)}.pane-chip{z-index:4;border:1px solid var(--border);pointer-events:none;background:#14171fd9;border-radius:10px;padding:2px 8px;font-size:11px;position:absolute;top:8px;left:8px}.pane-chip.design{color:#4a90d9;border-color:#4a90d9}.pane-chip.measured{color:#e8963a;border-color:#e8963a}.nudge-grid{gap:4px;margin-bottom:6px;display:flex}.nudge-grid button{flex:1;padding:3px 2px;font-size:11px}.tree-node.add-node{color:var(--text-dim)}.toolbar .brand{color:var(--accent);font-weight:700;text-decoration:none}.ai-panel{flex-direction:column;gap:8px;display:flex}.ai-head{color:var(--text-dim);align-items:center;gap:6px;font-size:12px;display:flex}.ai-dot{background:var(--text-dim);border-radius:50%;flex-shrink:0;width:8px;height:8px}.ai-dot.on{background:var(--ok)}.ai-dot.off{background:var(--warn)}.ai-menu-wrap{position:relative}.ai-menu{z-index:20;background:var(--bg-elevated);border:1px solid var(--border);border-radius:6px;flex-direction:column;min-width:240px;padding:4px;display:flex;position:absolute;top:100%;right:0}.ai-menu button{text-align:left;background:0 0;border:none}.ai-menu button:hover:not(:disabled){background:var(--bg-panel)}.ai-job{border:1px solid var(--border);background:var(--bg-elevated);border-radius:8px;flex-direction:column;gap:8px;padding:10px;font-size:12px;display:flex}.ai-job.error{border-color:var(--danger)}.ai-job.needs_review{border-color:var(--warn)}.ai-job.success{border-color:var(--ok)}.ai-status-line{justify-content:space-between;align-items:baseline;font-size:13px;display:flex}.ai-timer{font-variant-numeric:tabular-nums;color:var(--text-dim)}.ai-steps{flex-direction:column;gap:3px;margin:0;padding:0;list-style:none;display:flex}.ai-steps li{color:var(--text-dim);gap:6px;display:flex}.ai-steps li.done{color:var(--ok)}.ai-steps li.cur{color:var(--text);font-weight:600}.ai-step-mark{text-align:center;width:12px}.ai-bar{background:var(--bg-panel);border-radius:3px;height:6px;overflow:hidden}.ai-bar>div{background:var(--accent);height:100%;transition:width .6s}.ai-msg{color:var(--text);overflow-wrap:anywhere;max-height:5.5em;overflow:hidden}.ai-dim{color:var(--text-dim);font-size:12px}.ai-error{color:var(--danger);overflow-wrap:anywhere}.ai-summary{overflow-wrap:anywhere}.ai-issues{flex-direction:column;gap:3px;max-height:260px;display:flex;overflow-y:auto}.ai-issue{overflow-wrap:anywhere;border-radius:4px;padding:3px 5px}.ai-issue.error{background:#d9534f24}.ai-issue.warn{background:#d9a5141f}.ai-issue.clickable{cursor:pointer}.ai-issue.clickable:hover{outline:1px solid var(--border)}.ai-actions{flex-wrap:wrap;gap:6px;display:flex}.ai-refine{flex-direction:column;gap:6px;display:flex}.ai-refine textarea{box-sizing:border-box;resize:vertical;background:var(--bg-panel);width:100%;color:var(--text);border:1px solid var(--border);font:inherit;border-radius:6px;padding:6px}.ai-log-toggle{color:var(--text-dim);background:0 0;border:none;align-self:flex-start;padding:0}.ai-log{background:var(--bg-panel);border-radius:6px;flex-direction:column;gap:2px;max-height:240px;padding:6px;font-family:ui-monospace,Consolas,monospace;font-size:11px;display:flex;overflow-y:auto}.ai-log-line{overflow-wrap:anywhere}.ai-log-line.error{color:var(--danger)}.ai-log-line.warn{color:var(--warn)}.ai-log-line.tool{color:var(--text-dim)}.ai-log-line.agent{color:var(--accent-hover)}.ai-log-t{color:var(--text-dim)}.ai-attach{flex-direction:column;gap:4px;margin-top:4px;display:flex}.ai-attach-row{align-items:center;gap:6px;font-size:12px;display:flex}.ai-attach-row span:first-child{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.ai-check{color:var(--text-dim);align-items:center;gap:4px;font-size:12px;display:flex}.canvas-hint.ai-lock{color:#1b1f2a;background:#d9a514e6}.plan-source-modal{flex-direction:column;gap:10px;width:min(980px,100vw - 32px);max-width:none;height:min(720px,100vh - 48px);padding:14px;display:flex}.psm-head{justify-content:space-between;align-items:center;display:flex}.psm-close{background:0 0;border:none;padding:0 6px;font-size:22px;line-height:1}.psm-tabs{border-bottom:1px solid var(--border);gap:6px;padding-bottom:8px;display:flex}.psm-tabs button.active{background:var(--accent);border-color:var(--accent);color:#fff}.psm-body{flex-direction:column;flex:1;gap:8px;min-height:0;display:flex}.psm-bar{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.psm-crumbs{flex-wrap:wrap;flex:1;align-items:center;min-width:0;font-size:13px;display:flex}.psm-crumbs button{color:var(--accent-hover);background:0 0;border:none;padding:2px 4px}.psm-sep{color:var(--text-dim)}.psm-filter{width:220px;max-width:100%}.psm-grid{flex:1;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));align-content:start;gap:10px;padding:2px;display:grid;overflow-y:auto}.psm-item{text-align:left;background:var(--bg-elevated);border:1px solid var(--border);border-radius:8px;flex-direction:column;align-items:stretch;gap:6px;min-width:0;padding:8px;display:flex}.psm-item:hover:not(:disabled){border-color:var(--accent)}.psm-dir{justify-content:center;min-height:90px}.psm-icon{font-size:28px}.psm-file img{aspect-ratio:4/3;object-fit:contain;-webkit-user-select:none;user-select:none;pointer-events:none;background:#fff;border-radius:4px;width:100%}.psm-name{text-overflow:ellipsis;-webkit-line-clamp:2;overflow-wrap:anywhere;-webkit-box-orient:vertical;font-size:12px;display:-webkit-box;overflow:hidden}.psm-meta{color:var(--text-dim);font-size:11px}.psm-drop{border:2px dashed var(--border);border-radius:10px;justify-content:center;align-items:center}.psm-drop.over{border-color:var(--accent);background:#5b8cff14}.psm-drop-inner{text-align:center;flex-direction:column;align-items:center;gap:12px;padding:24px;display:flex}@media (width<=600px){.psm-grid{grid-template-columns:repeat(auto-fill,minmax(130px,1fr))}.psm-filter{width:100%}}
