body.has-tool > main { margin-left: 0; }
body.has-tool .workspace-rail { display: none; }
.desktop-shell button,.desktop-shell input,.desktop-shell select,.desktop-shell textarea,.desktop-shell details,.desktop-shell .figure-card,.desktop-shell .explain,.desktop-shell .metrics > div,.desktop-shell .action-card { border-radius:2px !important; }
.desktop-shell { --desktop-explorer:244px; --desktop-inspector:284px; --desktop-dock:196px; width:100vw; height:100dvh; display:grid; grid-template-rows:30px 40px 32px minmax(0,1fr) 24px; overflow:hidden; background:var(--bg-app); color:var(--text-primary); }
.desktop-menubar { position:relative; z-index:80; display:flex; align-items:center; min-width:0; border-bottom:1px solid var(--border); background:var(--bg-panel); }
.desktop-app-mark { width:172px; flex:0 0 172px; height:100%; display:flex; align-items:center; gap:7px; padding:0 10px; border-right:1px solid var(--border); color:var(--text-primary); font-size:12px; font-weight:700; white-space:nowrap; }
.desktop-app-mark .brand-mark { width:20px; height:20px; border-radius:2px; font-size:10px; }
.desktop-menu { position:relative; height:100%; }
.desktop-menu > button { height:100%; padding:0 9px; border:0; border-radius:0; background:transparent; color:var(--text-secondary); font-size:12px; cursor:pointer; }
.desktop-menu > button:hover,.desktop-menu.open > button { background:var(--bg-raised); color:var(--text-primary); }
.desktop-menu-popup { position:absolute; top:29px; left:0; display:none; width:224px; padding:3px; border:1px solid var(--border); border-radius:2px; background:var(--bg-raised); box-shadow:0 12px 28px rgb(0 0 0 / .34); }
.desktop-menu.open .desktop-menu-popup { display:grid; }
.desktop-menu-popup button { min-height:28px; display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:12px; padding:0 8px; border:0; border-radius:1px; background:transparent; color:var(--text-primary); text-align:left; font-size:12px; cursor:pointer; }
.desktop-menu-popup button:hover,.desktop-menu-popup button:focus-visible { background:var(--accent); color:var(--accent-ink); outline:0; }
.desktop-menu-popup button:disabled { color:var(--text-muted); cursor:not-allowed; }
.desktop-menu-popup button:disabled:hover { background:transparent; color:var(--text-muted); }
.desktop-menu-popup kbd { color:inherit; font:10px var(--font-mono); }
.desktop-menu-separator { height:1px; margin:3px 5px; background:var(--border); }
.desktop-toolbar { display:flex; align-items:center; min-width:0; gap:2px; padding:4px 7px; overflow:hidden; border-bottom:1px solid var(--border); background:var(--bg-panel); }
.desktop-toolbar-group { display:flex; align-items:center; gap:2px; padding-right:6px; margin-right:4px; border-right:1px solid var(--border); }
.desktop-toolbar-group:last-child { margin-left:auto; margin-right:0; padding-right:0; border-right:0; }
.desktop-toolbar button,.desktop-toolbar select { height:30px; border:1px solid transparent; border-radius:2px; background:transparent; color:var(--text-secondary); font-size:11px; }
.desktop-toolbar button { min-width:30px; padding:0 8px; cursor:pointer; }
.desktop-toolbar button:hover:not(:disabled),.desktop-toolbar button[aria-pressed="true"] { border-color:var(--border); background:var(--bg-raised); color:var(--text-primary); }
.desktop-toolbar button:disabled { opacity:.42; cursor:not-allowed; }
.desktop-toolbar .desktop-run { min-width:64px; border-color:var(--accent); background:var(--accent); color:var(--accent-ink); font-weight:750; }
.desktop-toolbar select { max-width:142px; padding:0 22px 0 7px; border-color:var(--border); background:var(--bg-app); }
.desktop-document-tabs { display:flex; min-width:0; align-items:stretch; overflow-x:auto; overflow-y:hidden; border-bottom:1px solid var(--border); background:var(--bg-app); scrollbar-width:thin; }
.desktop-document-tab { position:relative; flex:0 0 auto; min-width:140px; max-width:260px; display:grid; grid-template-columns:18px minmax(0,1fr) 24px; align-items:center; gap:5px; padding:0 3px 0 8px; border:0; border-right:1px solid var(--border); border-radius:0; background:var(--bg-panel); color:var(--text-secondary); font-size:11px; text-align:left; }
.desktop-document-tab[aria-selected="true"] { background:var(--bg-canvas); color:var(--text-primary); }
.desktop-document-tab[aria-selected="true"]::after { position:absolute; right:0; bottom:0; left:0; height:2px; background:var(--accent); content:""; }
.desktop-document-tab .doc-type { color:var(--text-muted); font:700 9px var(--font-mono); }
.desktop-document-tab .doc-label { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.desktop-document-tab .doc-dirty { color:var(--warning); }
.desktop-document-tab .doc-close { width:22px; height:22px; display:grid; place-items:center; border:0; border-radius:1px; background:transparent; color:var(--text-muted); cursor:pointer; }
.desktop-document-tab .doc-close:hover { background:var(--bg-raised); color:var(--text-primary); }
.desktop-body { min-width:0; min-height:0; display:grid; grid-template-columns:var(--desktop-explorer) 4px minmax(320px,1fr) 4px var(--desktop-inspector); grid-template-rows:minmax(180px,1fr) 4px var(--desktop-dock); overflow:hidden; }
.desktop-pane { min-width:0; min-height:0; overflow:auto; background:var(--bg-panel); }
.desktop-pane-header { position:sticky; z-index:2; top:0; height:31px; display:flex; align-items:center; justify-content:space-between; padding:0 8px; border-bottom:1px solid var(--border); background:var(--bg-panel); color:var(--text-secondary); font-size:10px; font-weight:750; letter-spacing:.08em; text-transform:uppercase; }
.desktop-pane-header button { width:24px; height:24px; border:0; border-radius:1px; background:transparent; color:var(--text-muted); cursor:pointer; }
.desktop-pane-header button:hover { background:var(--bg-raised); color:var(--text-primary); }
.desktop-explorer { grid-column:1; grid-row:1/4; border-right:1px solid var(--border); }
.desktop-tree { padding:5px 0; }
.desktop-tree-group { margin:0; }
.desktop-tree-title { width:100%; min-height:27px; display:flex; align-items:center; gap:6px; padding:0 8px; border:0; border-radius:0; background:transparent; color:var(--text-secondary); font-size:11px; text-align:left; cursor:pointer; }
.desktop-tree-title:hover { background:var(--bg-raised); color:var(--text-primary); }
.desktop-tree-items { display:grid; }
.desktop-tree-item { min-height:28px; display:grid; grid-template-columns:18px minmax(0,1fr); align-items:center; gap:5px; padding:0 8px 0 20px; border:0; border-radius:0; background:transparent; color:var(--text-secondary); font-size:11px; text-align:left; cursor:pointer; }
.desktop-tree-item:hover,.desktop-tree-item.active { background:var(--bg-raised); color:var(--text-primary); }
.desktop-tree-item span:last-child { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.desktop-splitter { z-index:4; background:var(--border); touch-action:none; }
.desktop-splitter:hover,.desktop-splitter:focus-visible { background:var(--accent); outline:0; }
.desktop-explorer-splitter { grid-column:2; grid-row:1/4; cursor:col-resize; }
.desktop-document-area { grid-column:3; grid-row:1; min-width:0; min-height:0; position:relative; overflow:hidden; background:var(--bg-canvas); }
.desktop-documents,.desktop-document-surface { width:100%; height:100%; min-width:0; min-height:0; }
.desktop-document-surface { display:none; overflow:hidden; background:var(--bg-canvas); }
.desktop-document-surface.active { display:block; }
.desktop-document-surface .tool-surface { width:100%; height:100%; }
.desktop-inspector-splitter { grid-column:4; grid-row:1/4; cursor:col-resize; }
.desktop-inspector { grid-column:5; grid-row:1/4; border-left:1px solid var(--border); }
.desktop-inspector-content { padding:10px; color:var(--text-secondary); font-size:11px; }
.desktop-property-grid { display:grid; grid-template-columns:78px minmax(0,1fr); gap:7px; margin:0; }
.desktop-property-grid dt { color:var(--text-muted); }
.desktop-property-grid dd { min-width:0; margin:0; overflow-wrap:anywhere; color:var(--text-primary); }
.desktop-dock-splitter { grid-column:3; grid-row:2; cursor:row-resize; }
.desktop-bottom-dock { grid-column:3; grid-row:3; min-width:0; min-height:0; display:grid; grid-template-rows:31px minmax(0,1fr); border-top:1px solid var(--border); background:var(--bg-panel); }
.desktop-dock-tabs { display:flex; align-items:stretch; border-bottom:1px solid var(--border); }
.desktop-dock-tabs button { min-width:82px; padding:0 10px; border:0; border-right:1px solid transparent; border-radius:0; background:transparent; color:var(--text-muted); font-size:10px; cursor:pointer; }
.desktop-dock-tabs button.active { border-right-color:var(--border); background:var(--bg-raised); color:var(--text-primary); }
.desktop-dock-tabs .dock-toggle { min-width:30px; margin-left:auto; border-left:1px solid var(--border); }
.desktop-dock-content { min-height:0; padding:8px 10px; overflow:auto; color:var(--text-secondary); font:11px/1.5 var(--font-mono); }
.desktop-log-row { display:grid; grid-template-columns:78px 64px minmax(0,1fr); gap:8px; padding:2px 0; border-bottom:1px solid color-mix(in srgb,var(--border) 55%,transparent); }
.desktop-log-row time,.desktop-log-row b { color:var(--text-muted); font-weight:500; }
.desktop-empty-note { margin:0; color:var(--text-muted); }
.desktop-statusbar { display:grid; grid-template-columns:minmax(0,1fr) auto auto; align-items:center; gap:18px; min-width:0; padding:0 9px; border-top:1px solid var(--border); background:var(--bg-panel); color:var(--text-muted); font:10px/1 var(--font-mono); }
.desktop-statusbar span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.desktop-statusbar .task-state { color:var(--success); }
.desktop-shell.explorer-collapsed { --desktop-explorer:0px; }
.desktop-shell.inspector-collapsed { --desktop-inspector:0px; }
.desktop-shell.dock-collapsed { --desktop-dock:31px; }
.desktop-shell.explorer-collapsed .desktop-explorer,.desktop-shell.explorer-collapsed .desktop-explorer-splitter,.desktop-shell.inspector-collapsed .desktop-inspector,.desktop-shell.inspector-collapsed .desktop-inspector-splitter { visibility:hidden; }
.desktop-shell.dock-collapsed .desktop-dock-content,.desktop-shell.dock-collapsed .desktop-dock-splitter { display:none; }
.desktop-shell.tool-circuits .desktop-explorer,.desktop-shell.tool-circuits .desktop-explorer-splitter,.desktop-shell.tool-circuits .desktop-inspector,.desktop-shell.tool-circuits .desktop-inspector-splitter,.desktop-shell.tool-circuits .desktop-bottom-dock,.desktop-shell.tool-circuits .desktop-dock-splitter { display:none; }
.desktop-shell.tool-circuits .desktop-body { grid-template-columns:minmax(0,1fr); grid-template-rows:minmax(0,1fr); }
.desktop-shell.tool-circuits .desktop-document-area { grid-column:1; grid-row:1; }
.desktop-shell.tool-circuits .circuit-editor { border:0; }
.desktop-file-layout { width:100%; height:100%; min-height:0; display:grid; grid-template-columns:minmax(0,1fr) 300px; }
.desktop-file-layout .preview-panel { padding:10px; }
.desktop-file-layout .preview { border-radius:2px; }
.desktop-file-layout .file-inspector { position:static; transform:none; max-height:none; }
.desktop-file-layout .inspector-tabs button { border-radius:0; }
.desktop-shell.canvas-light .desktop-document-area { --bg-app:#eef1f2; --bg-panel:#f8fafb; --bg-raised:#e3e8eb; --bg-canvas:#ffffff; --border:#aebac1; --text-primary:#172027; --text-secondary:#45535c; --text-muted:#65747d; --ink:var(--text-primary); --muted:var(--text-secondary); --panel:var(--bg-panel); --panel2:var(--bg-raised); --bg:var(--bg-app); --line:var(--border); --canvas-bg:var(--bg-canvas); color-scheme:light; color:var(--text-primary); }

@media (max-width:1199px) {
  .desktop-shell { --desktop-explorer:220px; --desktop-inspector:0px; }
  .desktop-inspector,.desktop-inspector-splitter { display:none; }
  .desktop-body { grid-template-columns:var(--desktop-explorer) 4px minmax(300px,1fr); }
  .desktop-document-area,.desktop-dock-splitter,.desktop-bottom-dock { grid-column:3; }
  .desktop-shell.tool-circuits .desktop-body { grid-template-columns:minmax(0,1fr); }
}

@media (max-width:767px) {
  body.has-tool > main { width:100vw; }
  .desktop-shell { grid-template-rows:28px 42px 32px minmax(0,1fr) 26px; }
  .desktop-app-mark { width:44px !important; flex:0 0 44px; padding:0 7px; border-right:0; }
  .desktop-app-mark > span:not(.brand-mark) { display:none !important; }
  .desktop-menu:nth-of-type(n+5) { display:none; }
  .desktop-menu > button { padding:0 7px; font-size:11px; }
  .desktop-menu-popup { position:fixed; top:28px; right:4px; left:4px; width:auto; }
  .desktop-toolbar { overflow-x:auto; padding-inline:4px; }
  .desktop-toolbar-group:first-child,.desktop-toolbar-group:nth-child(2),.desktop-toolbar .toolbar-label { display:none; }
  .desktop-toolbar-group:last-child { margin-left:0; }
  .desktop-toolbar select { width:96px; }
  .desktop-document-tab { min-width:126px; max-width:190px; }
  .desktop-body { display:block; position:relative; }
  .desktop-document-area { width:100%; height:100%; }
  .desktop-explorer,.desktop-inspector,.desktop-bottom-dock { position:absolute; z-index:50; display:none; box-shadow:0 12px 30px rgb(0 0 0 / .42); }
  .desktop-explorer.drawer-open { inset:0 auto 0 0; display:block; width:min(310px,88vw); visibility:visible !important; }
  .desktop-inspector.drawer-open { inset:0 0 0 auto; display:block; width:min(320px,88vw); visibility:visible !important; }
  .desktop-bottom-dock.drawer-open { right:0; bottom:0; left:0; display:grid; height:min(260px,48%); }
  .desktop-explorer-splitter,.desktop-inspector-splitter,.desktop-dock-splitter { display:none; }
  .desktop-file-layout { display:block; }
  .desktop-file-layout .file-inspector { display:none; }
  .desktop-statusbar { grid-template-columns:minmax(0,1fr) auto; gap:8px; }
  .desktop-statusbar span:nth-child(2) { display:none; }
}
