:root,[data-theme=hybrid]{--bg:#1e2329;--chrome:#252a31;--panel:#2c323a;--panel-elevated:#343b45;--panel-border:#3d4652;--ink:#eef2f6;--muted:#9aa5b3;--accent:#3987ff;--accent-soft:#3987ff2e;--accent-border:#3987ff73;--danger:#f07178;--control-bg:#1a1f26;--control-border:#4a5563;--hover-border:#5b8fd9;--shadow:0 1px 0 #00000040;--viewport-chrome-bg:#252a31eb;--font:"DM Sans", system-ui, sans-serif;--mono:"IBM Plex Mono", ui-monospace, monospace;--toolbar-h:52px;--status-h:28px;--left-w:72px;--right-w:280px;--status-bg:#15191e;--kernel-ok-bg:#2ea0642e;--kernel-ok-ink:#7ddea0;--kernel-ok-border:#2ea06466;--kernel-bad-bg:#f0b43c26;--kernel-bad-ink:#e8c068;--kernel-bad-border:#f0b43c59}[data-theme=dark]{--bg:#12151a;--chrome:#1a1f26;--panel:#222831;--panel-elevated:#2a313c;--panel-border:#353d4a;--ink:#f0f3f7;--muted:#8b97a7;--accent:#4d93ff;--accent-soft:#4d93ff33;--accent-border:#4d93ff80;--control-bg:#141820;--control-border:#3a4352;--hover-border:#5b8fd9;--viewport-chrome-bg:#1a1f26f0;--status-bg:#0e1115}[data-theme=light]{--bg:#eef2f6;--chrome:#f7f9fc;--panel:#f7f9fc;--panel-elevated:#fff;--panel-border:#d5dde6;--ink:#1c2430;--muted:#6b7785;--accent:#1a6dff;--accent-soft:#e8f1ff;--accent-border:#9dc0f5;--control-bg:#fff;--control-border:#d5dde6;--hover-border:#c9dbf8;--shadow:0 1px 0 #1c24300a;--viewport-chrome-bg:#f7f9fcf0;--status-bg:#1c2430;--kernel-ok-bg:#e8f7ee;--kernel-ok-ink:#1b6b3a;--kernel-ok-border:#b9e0c6;--kernel-bad-bg:#fff4e5;--kernel-bad-ink:#8a5a00;--kernel-bad-border:#f0d4a0}*{box-sizing:border-box}html,body,#root{height:100%;font-family:var(--font);color:var(--ink);background:var(--bg);margin:0;overflow:hidden}button,select{font:inherit}.app-shell{grid-template-rows:var(--toolbar-h) 1fr var(--status-h);height:100%;display:grid}.top-toolbar{background:var(--chrome);border-bottom:1px solid var(--panel-border);box-shadow:var(--shadow);color:var(--ink);align-items:center;gap:10px;padding:0 12px;display:flex}.brand{align-items:center;gap:10px;min-width:240px;margin-right:8px;display:flex}.brand-mark{object-fit:cover;background:#020617;border-radius:50%;flex-shrink:0;width:32px;height:32px;box-shadow:0 0 0 1px #fbbf2459}.brand-text{flex-direction:column;gap:1px;min-width:0;display:flex}.brand-title-row{white-space:nowrap;align-items:baseline;gap:6px;line-height:1.1;display:flex}.brand-name{letter-spacing:-.03em;color:var(--ink);font-size:17px;font-weight:700}.brand-byline{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);opacity:.85;font-size:9px;font-weight:500}.brand-project{color:var(--muted);font-size:11px}.toolbar-group{border-right:1px solid var(--panel-border);align-items:center;gap:4px;padding:0 6px;display:flex}.toolbar-group button,.viewport-chrome button{color:var(--ink);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;align-items:center;gap:6px;padding:6px 8px;display:inline-flex}.toolbar-group button:hover:not(:disabled),.viewport-chrome button:hover,.tool-btn:hover:not(:disabled){background:var(--accent-soft);border-color:var(--hover-border)}.tool-suboptions{border:1px solid var(--panel-border);background:var(--panel-elevated);border-radius:8px;flex-direction:column;gap:3px;margin:4px 4px 8px;padding:4px;display:flex}.tool-suboptions button{color:var(--ink);cursor:pointer;text-align:left;background:0 0;border:1px solid #0000;border-radius:6px;padding:5px 6px;font-size:10px}.tool-suboptions button:hover{background:var(--accent-soft)}.tool-suboptions button.active{background:var(--accent-soft);color:var(--accent);border-color:var(--accent)}.toolbar-group button:disabled{opacity:.35;cursor:not-allowed}.toolbar-group span{font-size:12px}.toolbar-spacer{flex:1}.units-select{color:var(--muted);align-items:center;gap:6px;font-size:12px;display:flex}.units-select select,.theme-select select{border:1px solid var(--control-border);background:var(--control-bg);color:var(--ink);border-radius:6px;padding:4px 6px}.theme-select{color:var(--muted);align-items:center;gap:6px;font-size:12px;display:inline-flex}.top-toolbar .viewport-bg-picker{color:var(--muted);align-items:center;gap:6px;margin-left:4px;font-size:12px;display:inline-flex}.top-toolbar .viewport-bg-picker label{color:var(--muted);white-space:nowrap;font-size:12px}.top-toolbar .viewport-bg-picker select{border:1px solid var(--control-border);background:var(--control-bg);color:var(--ink);border-radius:6px;max-width:110px;padding:4px 6px;font-size:12px}.top-toolbar .viewport-bg-picker input[type=color]{border:1px solid var(--control-border);background:var(--control-bg);cursor:pointer;border-radius:6px;width:22px;height:22px;padding:0}.app-main{grid-template-columns:var(--left-w) 1fr var(--right-w);min-height:0;display:grid}.left-toolbar{background:var(--chrome);border-right:1px solid var(--panel-border);color:var(--ink);flex-direction:column;gap:1px;padding:6px 4px;display:flex;overflow:auto}.tool-btn{cursor:pointer;width:100%;color:var(--ink);background:0 0;border:1px solid #0000;border-radius:8px;flex-direction:column;flex-shrink:0;align-items:center;gap:1px;padding:6px 2px;display:flex}.tool-btn span{color:var(--muted);font-size:8px;line-height:1.05}.tool-btn.active{background:var(--accent-soft);border-color:var(--accent-border);color:var(--accent)}.tool-btn.active span{color:var(--accent)}.tool-btn:disabled{opacity:.32;cursor:not-allowed}.viewport-wrap{background:var(--viewport-bg,#e9edf2);min-width:0;min-height:0;position:relative}.viewport-host{position:absolute;inset:0}.viewport-host canvas{touch-action:none;display:block;width:100%!important;height:100%!important}.marquee-select,.marquee-select.window{pointer-events:none;z-index:3;box-sizing:border-box;background:#1a6dff24;border:1px solid #1a6dfff2;position:absolute}.marquee-select.crossing{background:#22c55e29;border:1px dashed #22c55ef2}.orbit-cursor{pointer-events:none;z-index:6;filter:drop-shadow(0 1px 2px #1c243059);width:40px;height:40px;margin:0;padding:0;line-height:0;position:absolute;transform:translate(-50%,-50%)}.draw-dim-tooltip{z-index:7;pointer-events:none;color:#f4f7fb;font-family:var(--mono);letter-spacing:.02em;white-space:nowrap;background:#1c2430eb;border-radius:6px;padding:4px 8px;font-size:11px;position:absolute;box-shadow:0 4px 14px #1c243038}.viewport-wrap[data-canvas-tone=dark] .draw-dim-tooltip{color:#1a222c;background:#f8fafcf0;border:1px solid #ffffff59;box-shadow:0 4px 14px #00000059}.viewport-wrap.draft-2d .viewport-chrome,.draft-2d .viewport-chrome{outline:1px solid #1a6dff59}.viewport-chrome button.draft-toggle.active{color:var(--accent);border-color:var(--accent);background:#e8f1ff}.orbit-cursor svg{width:40px;height:40px;display:block}.orbit-cursor.dragging{opacity:.92;transform:translate(-50%,-50%)scale(.92)}.viewport-chrome{z-index:2;background:var(--viewport-chrome-bg);border:1px solid var(--panel-border);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:var(--ink);border-radius:10px;gap:4px;padding:4px;display:flex;position:absolute;top:10px;left:10px}.viewport-bg-picker{align-items:center;gap:4px;margin-left:2px;display:inline-flex}.viewport-bg-picker label{color:var(--muted);white-space:nowrap;font-size:10px}.viewport-bg-picker input[type=color]{border:1px solid var(--control-border);background:var(--control-bg);cursor:pointer;border-radius:6px;width:22px;height:22px;padding:0}.viewport-bg-picker select{border:1px solid var(--control-border);background:var(--control-bg);color:var(--ink);border-radius:6px;max-width:88px;padding:3px 4px;font-size:10px}.viewport-chrome button{justify-content:center;min-width:36px;font-size:11px}.viewport-chrome button.active{background:var(--accent-soft);color:var(--accent);border-color:var(--accent-border)}.viewport-chrome button.orbit-toggle{white-space:nowrap;letter-spacing:.01em;min-width:auto;padding:6px 10px;font-size:10px}.chrome-sep{background:var(--accent);border-radius:2px;flex-shrink:0;align-self:center;width:3px;height:26px;margin:0 7px;display:block}.viewport-chrome-stack{z-index:2;flex-direction:column;align-items:flex-start;gap:6px;max-width:calc(100% - 20px);display:flex;position:absolute;top:10px;left:10px}.viewport-chrome-stack .viewport-chrome{position:relative;top:auto;left:auto}.draw-chrome{background:var(--viewport-chrome-bg);border:1px solid var(--panel-border);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:var(--ink);border-radius:10px;flex-wrap:wrap;align-items:center;gap:4px;padding:4px;display:flex}.draw-chrome .draw-btn{min-width:52px;color:var(--ink);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:6px 8px;font-size:10px;display:inline-flex}.draw-chrome .draw-btn:hover:not(:disabled){background:var(--accent-soft);border-color:var(--hover-border)}.draw-chrome .draw-btn.active{background:var(--accent-soft);color:var(--accent);border-color:var(--accent-border)}.draw-chrome .draw-btn:disabled{opacity:.35;cursor:not-allowed}.draw-chrome .draw-sub{border-left:3px solid var(--accent);align-items:center;gap:4px;margin-left:4px;padding:2px 4px;display:inline-flex}.draw-chrome .draw-sub button,.draw-chrome .draw-sub select{border:1px solid var(--control-border);background:var(--control-bg);color:var(--ink);cursor:pointer;border-radius:6px;padding:4px 6px;font-size:10px}.draw-chrome .draw-sub button.active{background:var(--accent-soft);color:var(--accent);border-color:var(--accent-border)}.viewport-overlay{z-index:3;background:#e8edf2b8;place-items:center;display:grid;position:absolute;inset:0}.loading-card{background:var(--panel-elevated);color:var(--ink);border:1px solid var(--panel-border);border-radius:14px;flex-direction:column;align-items:center;gap:8px;padding:20px 24px;display:flex;box-shadow:0 10px 30px #0003}.spinner{border:2px solid #c9d6e5;border-top-color:var(--accent);border-radius:50%;width:22px;height:22px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.properties-panel{background:var(--panel);border-left:1px solid var(--panel-border);color:var(--ink);padding:14px 14px 24px;overflow:auto}.panel-title{letter-spacing:-.01em;margin-bottom:12px;font-weight:650}.panel-subtitle{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:16px 0 8px;font-size:11px}.panel-empty p{margin:0 0 8px;font-size:13px}.muted{color:var(--muted);font-size:12px}.prop-name{font-weight:650}.prop-kind{color:var(--muted);margin-bottom:10px;font-size:12px}.prop-list{gap:6px;margin:0;display:grid}.prop-list>div{grid-template-columns:88px 1fr;gap:8px;font-size:12px;display:grid}.prop-list dt{color:var(--muted)}.prop-list dd{font-family:var(--mono);margin:0}.action-stack{gap:6px;margin-top:12px;display:grid}.primary-action,.secondary-action{cursor:pointer;border-radius:10px;width:100%;padding:9px 12px;font-size:12px;font-weight:600}.primary-action{background:var(--accent);color:#fff;border:none}.secondary-action{border:1px solid var(--control-border);background:var(--control-bg);color:var(--ink)}.primary-action:hover,.secondary-action:hover{filter:brightness(1.03)}.model-tree li.selected{background:var(--accent-soft);border-radius:6px;padding:2px 4px}.model-tree{gap:4px;margin:0;padding:0;list-style:none;display:grid}.model-tree li{align-items:center;gap:8px;font-size:12px;display:flex}.tree-kind{text-transform:uppercase;letter-spacing:.04em;color:var(--accent);background:var(--accent-soft);border-radius:4px;padding:2px 5px;font-size:10px}.status-bar{background:var(--status-bg);color:#e8edf2;align-items:center;gap:14px;padding:0 12px;font-size:12px;display:flex}.status-item{white-space:nowrap;align-items:baseline;gap:6px;display:flex}.status-item.grow{text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.status-label{color:#8b98a8;text-transform:uppercase;letter-spacing:.05em;font-size:10px}.mono{font-family:var(--mono)}.error-text{color:#ff8a80}.status-busy{color:#9ad0ff}.tool-section{border-bottom:1px solid var(--panel-border);flex-direction:column;gap:2px;margin-bottom:6px;padding-bottom:8px;display:flex}.tool-section:last-child{border-bottom:none}.tool-section-title{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);padding:4px 6px 2px;font-size:9px}.left-toolbar{overflow-y:auto}.modal-backdrop{z-index:50;background:#1c243073;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal-card{background:var(--panel);border:1px solid var(--panel-border);border-radius:12px;width:min(420px,100%);max-height:min(90vh,720px);padding:18px 20px;overflow:auto;box-shadow:0 16px 48px #1c243033}.modal-card.wide{width:min(720px,100%)}.modal-card.schedule{width:min(960px,100%)}.modal-title{margin-bottom:10px;font-size:16px;font-weight:700}.modal-grid{grid-template-columns:1fr 1fr;gap:16px;display:grid}.modal-actions{justify-content:flex-end;gap:8px;margin-top:16px;display:flex}.field{color:var(--muted);flex-direction:column;gap:4px;margin-bottom:10px;font-size:12px;display:flex}.field input,.field select,.schedule-toolbar input,.schedule-toolbar select{font:inherit;color:var(--ink);border:1px solid var(--control-border);background:var(--control-bg);border-radius:8px;padding:7px 9px}.check{align-items:center;gap:8px;margin:6px 0;font-size:13px;display:flex}.layer-list{max-height:220px;margin:0;padding:0;list-style:none;overflow:auto}.warn-box{color:#8a5a00;background:#fff4e5;border-radius:8px;margin-top:8px;padding:8px 10px;font-size:12px}.preview-stats{background:var(--accent-soft);border-radius:8px;gap:4px;margin-top:8px;padding:10px;font-size:13px;display:grid}.browser-filters,.browser-actions,.schedule-toolbar,.schedule-summary{flex-wrap:wrap;gap:6px;margin-bottom:8px;display:flex}.chip,.tiny{border:1px solid var(--control-border);background:var(--control-bg);color:var(--ink);cursor:pointer;border-radius:999px;padding:3px 8px;font-size:11px}.chip.active{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.model-tree li{justify-content:space-between;align-items:center;gap:6px;display:flex}.tree-main{cursor:pointer;text-align:left;min-width:0;font:inherit;color:inherit;background:0 0;border:none;flex:1;align-items:center;gap:6px;padding:0;display:flex}.tree-ops{gap:2px;display:flex}.tree-ops button{cursor:pointer;background:0 0;border:none;padding:0 3px;font-size:12px}.accent-block{background:var(--accent-soft);border-radius:10px;margin-bottom:10px;padding:10px}.schedule-table-wrap{border:1px solid var(--panel-border);border-radius:8px;max-height:420px;overflow:auto}.schedule-table{border-collapse:collapse;width:100%;font-size:12px;font-family:var(--mono)}.schedule-table th,.schedule-table td{border-bottom:1px solid var(--panel-border);text-align:left;white-space:nowrap;padding:6px 8px}.schedule-table tr.selected,.schedule-table tr:hover{background:var(--accent-soft);cursor:pointer}.tiny-note{margin-top:6px;font-size:11px}.file-drop-zone{flex-direction:column;height:100%;min-height:100vh;display:flex;position:relative}.file-drop-zone>.app-shell{flex:1;min-height:0}.file-drop-overlay{z-index:80;background:color-mix(in srgb, var(--bg,#0e141b) 55%, transparent);pointer-events:none;place-items:center;display:grid;position:fixed;inset:0}.file-drop-card{border:2px dashed var(--accent,#3987ff);background:color-mix(in srgb, var(--panel-bg,#151c24) 92%, transparent);color:var(--text,#e8edf2);letter-spacing:.01em;border-radius:12px;padding:22px 28px;font-size:15px;font-weight:600;box-shadow:0 12px 40px #00000059}.io-progress{z-index:70;background:color-mix(in srgb, var(--panel-bg,#151c24) 94%, transparent);border:1px solid var(--panel-border,#2a3542);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:10px;width:min(420px,100vw - 32px);padding:10px 12px;position:fixed;bottom:52px;left:50%;transform:translate(-50%);box-shadow:0 8px 28px #00000047}.io-progress-label{color:var(--text,#e8edf2);justify-content:space-between;gap:12px;margin-bottom:8px;font-size:12px;display:flex}.io-progress-track{background:color-mix(in srgb, var(--accent,#3987ff) 18%, #1a222c);border-radius:999px;height:6px;overflow:hidden}.io-progress-fill{border-radius:inherit;background:linear-gradient(90deg, var(--accent,#3987ff), #5aa2ff);height:100%;transition:width .16s ease-out}.context-menu{z-index:5000;border:1px solid var(--panel-border,#2a3340);background:color-mix(in srgb, var(--panel,#151b22) 94%, #000);border-radius:10px;flex-direction:column;gap:2px;min-width:160px;padding:4px;display:flex;position:fixed;box-shadow:0 12px 32px #00000073}.context-menu button{appearance:none;color:var(--ink,#e8edf2);text-align:left;cursor:pointer;font:inherit;background:0 0;border:0;border-radius:7px;padding:8px 12px;font-size:13px}.context-menu button:hover:not(:disabled){background:color-mix(in srgb, var(--accent,#3987ff) 22%, transparent)}.context-menu button:disabled{opacity:.35;cursor:default}@media (width<=960px){:root{--right-w:220px;--left-w:64px}.toolbar-group span{display:none}.modal-grid{grid-template-columns:1fr}}
