:root {
  --bg:#0f172a; --panel:#111827; --panel-soft:#1f2937; --panel-deep:#020617;
  --line:#334155; --text:#f8fafc; --muted:#94a3b8; --paper:#ffffff;
  --accent:#38bdf8; --danger:#ef4444; --warn:#f59e0b;
}
*{box-sizing:border-box} [hidden]{display:none!important}
body{margin:0;min-height:100vh;background:var(--bg);color:var(--text);font-family:Arial,Helvetica,sans-serif} button,input,textarea{font:inherit} button{cursor:pointer}
.designer-app{display:flex;flex-direction:column;height:100vh}.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 16px;border-bottom:1px solid var(--line);background:#020617}.brand-block h1{margin:0;font-size:24px}.app-kicker{color:var(--accent);font-size:12px;text-transform:uppercase;letter-spacing:.08em}.toolbar{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
button,.tool-button,.danger-button{border:1px solid var(--line);color:var(--text);background:var(--panel-soft);padding:8px 10px;border-radius:8px}.toolbar button:hover,.tool-button:hover{border-color:var(--accent)}.active,.mode-pill{outline:2px solid var(--accent)}.danger-button{border-color:var(--danger);color:#fecaca}.workspace-shell{display:grid;grid-template-columns:300px 1fr 290px;min-height:0;flex:1}.tool-panel,.property-panel{overflow:auto;padding:14px;background:var(--panel)}.tool-panel{border-right:1px solid var(--line)}.property-panel{border-left:1px solid var(--line)}.panel-section{margin-bottom:22px}.panel-section h2,.property-card h2{margin:0 0 10px;font-size:16px}.tool-list{display:grid;gap:8px}.tool-button{display:block;width:100%;text-align:left;margin-bottom:8px}.drawing-stage{display:flex;flex-direction:column;min-width:0;min-height:0}.stage-header{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:10px 14px;border-bottom:1px solid var(--line);background:#111827}.status-text,.muted-text{color:var(--muted);margin-left:10px}.property-strip{display:flex;align-items:center;gap:14px;color:var(--muted)}.canvas-scroller{flex:1;min-height:0;overflow:auto;padding:44px;background:#020617}.print-canvas{width:2550px;height:1650px;background:var(--paper);box-shadow:0 20px 60px rgba(0,0,0,.45);transform-origin:top left}.template-line{stroke:#111827;stroke-width:2;fill:none}.template-light{stroke:#94a3b8;stroke-width:1;fill:none}.template-text{fill:#111827;font-size:18px}.component-node{cursor:grab}.component-node:active{cursor:grabbing}.component-node rect,.component-node circle.symbol-body{fill:#f8fafc;stroke:#111827;stroke-width:2}.component-node text{fill:#111827;font-size:18px;text-anchor:middle;dominant-baseline:middle;pointer-events:none}.component-node.selected rect,.component-node.selected circle.symbol-body,.note-node.selected rect{stroke:var(--accent);stroke-width:4}.port-dot{fill:#2563eb;stroke:#ffffff;stroke-width:1.5;cursor:crosshair;opacity:.9}.port-dot.hot{fill:var(--warn)}.connection-line{cursor:pointer}.connection-line.selected{stroke:var(--accent)!important}.selection-box{fill:none;stroke:var(--accent);stroke-width:2;stroke-dasharray:9 6;pointer-events:none}.note-node rect{fill:#fff7ed;stroke:#9a3412;stroke-width:2}.note-node text{fill:#111827;font-size:16px;pointer-events:none}.property-card{border:1px solid var(--line);background:#0b1220;border-radius:12px;padding:12px;margin-bottom:14px}.field-stack{display:grid;gap:10px}.field-stack label{display:grid;gap:5px;color:var(--muted);font-size:13px}.field-stack input,.field-stack textarea{width:100%;border:1px solid var(--line);border-radius:8px;padding:8px;color:var(--text);background:var(--panel-soft)}.field-stack textarea{min-height:80px;resize:vertical}.small-row{display:grid;grid-template-columns:1fr 1fr;gap:8px}.help-text{color:var(--muted);font-size:12px;line-height:1.4}.mobile-gate{min-height:100vh;display:grid;place-items:center;padding:24px;background:var(--bg)}.mobile-gate-card{max-width:420px;padding:24px;border:1px solid var(--line);border-radius:14px;background:var(--panel)}.modal-backdrop{position:fixed;inset:0;display:grid;place-items:center;background:rgba(2,6,23,.75);z-index:20}.modal-card{width:min(460px,calc(100vw - 32px));background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:20px}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}
@media(max-width:900px){#designerApp{display:none}.mobile-gate{display:grid!important}}@media(max-width:1200px) and (min-width:901px){.workspace-shell{grid-template-columns:260px 1fr}.property-panel{display:none}}
@media print{body{background:white}.topbar,.tool-panel,.property-panel,.stage-header{display:none}.workspace-shell,.drawing-stage,.canvas-scroller{display:block;padding:0;background:white}.print-canvas{box-shadow:none;width:17in;height:11in}}
.wide-control{width:100%;border:1px solid var(--line);border-radius:8px;padding:8px;color:var(--text);background:var(--panel-soft);margin-bottom:8px}.section-title-row{display:flex;align-items:center;justify-content:space-between;gap:10px}.mini-button{padding:5px 8px;font-size:12px;border-radius:7px}.component-library-list{max-height:360px;overflow:auto;padding-right:2px}.component-card{display:grid;grid-template-columns:44px 1fr;gap:9px;align-items:center;width:100%;text-align:left}.component-thumb{width:44px;height:36px;border:1px solid var(--line);border-radius:7px;background:#f8fafc;display:grid;place-items:center;overflow:hidden;color:#111827;font-size:11px;font-weight:bold}.component-thumb img{max-width:100%;max-height:100%;display:block}.component-meta strong{display:block;font-size:13px}.component-meta span{display:block;color:var(--muted);font-size:11px}.modal-card.wide-modal{width:min(720px,calc(100vw - 32px))}.library-form{display:grid;gap:10px}.library-form label{display:grid;gap:5px;color:var(--muted);font-size:13px}.library-form input,.library-form textarea,.library-form select{width:100%;border:1px solid var(--line);border-radius:8px;padding:8px;color:var(--text);background:var(--panel-soft)}.library-form textarea{min-height:72px;resize:vertical}.image-preview{height:110px;border:1px dashed var(--line);border-radius:10px;background:#f8fafc;display:grid;place-items:center;color:#111827;overflow:hidden}.image-preview img{max-width:100%;max-height:100%;display:block}.library-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.modal-actions .danger-button{margin-right:auto}.drop-ready{outline:3px dashed var(--accent);outline-offset:-10px}

.component-library-list img,.component-library-list svg{max-width:54px;max-height:34px;object-fit:contain}.component-library-list .tool-button{min-height:52px}
.toolbar-select{border:1px solid var(--line);color:var(--text);background:var(--panel-soft);padding:8px 10px;border-radius:8px}.connection-polyline{cursor:pointer;fill:none}.connection-polyline.selected{stroke:var(--accent)!important}.connection-polyline.network-highlight{stroke:#22c55e!important;stroke-width:7!important}.component-node.network-highlight rect,.component-node.network-highlight circle.symbol-body,.note-node.network-highlight rect{stroke:#22c55e!important;stroke-width:5!important}.connection-bend{fill:#f59e0b;stroke:#fff;stroke-width:2}.test-banner{color:#bbf7d0}.component-node image{pointer-events:none}

/* v0.0.3 professional navigation/context additions */
.drawing-stage{position:relative}.canvas-nav-tools{position:absolute;right:18px;bottom:18px;z-index:12;display:flex;align-items:center;gap:6px;padding:8px;border:1px solid rgba(148,163,184,.45);border-radius:12px;background:rgba(2,6,23,.88);box-shadow:0 18px 48px rgba(0,0,0,.35);backdrop-filter:blur(10px)}.canvas-nav-tools button{width:auto;margin:0;padding:7px 9px;font-size:12px}.zoom-label{min-width:48px;text-align:center;color:#e0f2fe;font-size:12px;font-weight:700}.context-menu{position:fixed;z-index:50;width:220px;padding:6px;border:1px solid #475569;border-radius:12px;background:#0b1220;box-shadow:0 24px 70px rgba(0,0,0,.55)}.context-menu button{display:block;width:100%;text-align:left;border:0;border-radius:8px;background:transparent;color:#f8fafc;padding:8px 10px;font-size:13px}.context-menu button:hover{background:#1f2937;color:#7dd3fc}.context-divider{height:1px;background:#334155;margin:5px 4px}.canvas-scroller.is-panning{cursor:grabbing}.canvas-scroller{cursor:default}.hide-left-panel .workspace-shell{grid-template-columns:0 1fr 290px}.hide-left-panel .tool-panel{display:none}.hide-right-panel .workspace-shell{grid-template-columns:300px 1fr 0}.hide-right-panel .property-panel{display:none}.hide-left-panel.hide-right-panel .workspace-shell{grid-template-columns:0 1fr 0}.hide-left-panel.hide-right-panel .tool-panel,.hide-left-panel.hide-right-panel .property-panel{display:none}.component-node,.note-node{transition:filter .12s ease}.component-node:hover,.note-node:hover{filter:drop-shadow(0 0 6px rgba(56,189,248,.35))}.print-canvas{transition:transform .08s linear}.port-dot:hover{r:6;fill:#f59e0b}.stage-header{position:relative;z-index:8}

.validation-list{display:grid;gap:8px;margin:10px 0}.validation-item{border:1px solid var(--line);border-radius:9px;padding:8px;background:var(--panel-soft);font-size:12px}.validation-item strong{display:block;color:var(--text);margin-bottom:4px}.validation-item span{display:block;color:var(--muted);line-height:1.35}.validation-item.error{border-color:#ef4444}.validation-item.warning{border-color:#f59e0b}.validation-item.info{border-color:#38bdf8}.validation-item.ok{border-color:#22c55e;color:#bbf7d0}


/* v10.0.0.4 UX refactor: compact command bar + temporary pickers */
body.compact-workspace .workspace-shell {
  grid-template-columns: 0 1fr 0;
}
body.compact-workspace .tool-panel,
body.compact-workspace .property-panel {
  display: none;
}

.topbar {
  gap: 14px;
  padding: 10px 12px;
}
.brand-block {
  min-width: 190px;
}
.brand-block h1 {
  font-size: 20px;
}
.command-toolbar {
  align-items: center;
  flex: 1;
  justify-content: flex-start;
  overflow-x: auto;
  padding-bottom: 2px;
}
.command-button {
  min-width: 58px;
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
  line-height: 1.05;
  padding: 7px 9px;
  border-radius: 10px;
  white-space: nowrap;
}
.command-button span {
  font-size: 10px;
  color: var(--muted);
  font-weight: 700;
}
.command-button:hover span,
.command-button.active span {
  color: #e0f2fe;
}
.primary-command {
  border-color: var(--accent);
  box-shadow: 0 0 0 1px rgba(56,189,248,.2) inset;
}
.toolbar-divider {
  width: 1px;
  height: 34px;
  background: var(--line);
  margin: 0 4px;
  flex: 0 0 auto;
}
.compact-select {
  width: auto;
  min-width: 132px;
  height: 46px;
}

.quick-picker {
  position: fixed;
  inset: 68px auto auto 50%;
  transform: translateX(-50%);
  width: min(860px, calc(100vw - 32px));
  max-height: min(680px, calc(100vh - 96px));
  z-index: 80;
  pointer-events: none;
}
.quick-picker-card {
  pointer-events: auto;
  border: 1px solid #475569;
  border-radius: 16px;
  background: rgba(15,23,42,.96);
  box-shadow: 0 30px 90px rgba(0,0,0,.55);
  overflow: hidden;
  backdrop-filter: blur(12px);
}
.quick-picker-header {
  display: flex;
  justify-content: space-between;
  gap: 14px;
  align-items: flex-start;
  padding: 12px 14px;
  border-bottom: 1px solid var(--line);
  background: rgba(2,6,23,.72);
}
.quick-picker-header strong {
  display: block;
  font-size: 16px;
}
.quick-picker-header span {
  display: block;
  color: var(--muted);
  font-size: 12px;
  margin-top: 3px;
}
.quick-picker-controls {
  display: grid;
  grid-template-columns: 1fr 220px;
  gap: 10px;
  padding: 12px 14px;
  border-bottom: 1px solid var(--line);
}
.quick-picker-list {
  max-height: 480px;
  overflow: auto;
  padding: 14px;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(190px, 1fr));
  gap: 10px;
}
.quick-picker-item {
  display: grid;
  grid-template-columns: 56px 1fr;
  align-items: center;
  gap: 10px;
  min-height: 70px;
  border: 1px solid #334155;
  border-radius: 12px;
  background: #111827;
  color: var(--text);
  padding: 8px;
  text-align: left;
}
.quick-picker-item:hover {
  border-color: var(--accent);
  background: #1f2937;
}
.quick-picker-thumb {
  width: 56px;
  height: 42px;
  display: grid;
  place-items: center;
  border-radius: 8px;
  background: #f8fafc;
  color: #020617;
  overflow: hidden;
}
.quick-picker-thumb img {
  max-width: 54px;
  max-height: 40px;
}
.quick-picker-meta strong {
  display: block;
  font-size: 12px;
}
.quick-picker-meta span {
  display: block;
  color: var(--muted);
  font-size: 11px;
  margin-top: 3px;
}
.quick-picker-empty {
  grid-column: 1/-1;
  border: 1px dashed #475569;
  border-radius: 12px;
  padding: 18px;
  color: var(--muted);
  text-align: center;
}
.drawing-stage {
  min-width: 0;
}
.canvas-scroller {
  scroll-behavior: auto;
}
.panel-visible-left .workspace-shell {
  grid-template-columns: 300px 1fr 0;
}
.panel-visible-left .tool-panel {
  display: block;
}
.panel-visible-right .workspace-shell {
  grid-template-columns: 0 1fr 290px;
}
.panel-visible-right .property-panel {
  display: block;
}
.panel-visible-left.panel-visible-right .workspace-shell {
  grid-template-columns: 300px 1fr 290px;
}
.panel-visible-left.panel-visible-right .tool-panel,
.panel-visible-left.panel-visible-right .property-panel {
  display: block;
}

@media (max-width: 1180px) {
  .brand-block {
    min-width: 150px;
  }
  .command-button span {
    display: none;
  }
  .command-button {
    min-width: 42px;
  }
  .toolbar-divider {
    height: 28px;
  }
}


/* v10.0.0.5 workspace usability patch */
.app-menu-bar{display:flex;align-items:center;gap:4px;flex:0 0 auto;border:1px solid var(--line);border-radius:10px;padding:3px;background:#0b1220}
.app-menu-bar button{border:0;background:transparent;color:var(--text);padding:7px 10px;border-radius:8px;font-size:13px}
.app-menu-bar button:hover{background:#1f2937;color:#7dd3fc}
.app-dropdown-menu{position:fixed;z-index:95;min-width:235px;padding:7px;border:1px solid #475569;border-radius:12px;background:#0b1220;box-shadow:0 24px 70px rgba(0,0,0,.55)}
.app-dropdown-menu button{display:flex;justify-content:space-between;gap:18px;width:100%;border:0;border-radius:8px;background:transparent;color:#f8fafc;padding:9px 10px;text-align:left;font-size:13px}
.app-dropdown-menu button:hover{background:#1f2937;color:#7dd3fc}.app-dropdown-menu .menu-divider{height:1px;background:#334155;margin:6px 4px}
.topbar{position:relative}.command-toolbar{min-width:0}.quick-picker{inset:76px auto auto 50%;max-height:min(520px,calc(100vh - 104px))}.quick-picker-list{max-height:330px}.quick-picker-card{max-height:calc(100vh - 104px);display:flex;flex-direction:column}.quick-picker-list{min-height:0}
body.compact-workspace .workspace-shell{grid-template-columns:0 1fr 0}body.compact-workspace.panel-visible-right .workspace-shell{grid-template-columns:0 1fr 290px}body.compact-workspace.panel-visible-left .workspace-shell{grid-template-columns:300px 1fr 0}body.compact-workspace.panel-visible-left.panel-visible-right .workspace-shell{grid-template-columns:300px 1fr 290px}
.panel-title-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px;padding-bottom:10px;border-bottom:1px solid var(--line)}.panel-title-row strong{font-size:15px}.property-panel.is-collapsed{padding:8px;width:42px;overflow:hidden}.property-panel.is-collapsed .property-panel-body{display:none}.property-panel.is-collapsed .panel-title-row{writing-mode:vertical-rl;min-height:128px;margin:0;padding:0;border:0}.property-panel.is-collapsed .panel-title-row strong{letter-spacing:.08em}.property-panel.is-collapsed #collapsePropsButton{writing-mode:horizontal-tb;width:28px;height:28px;padding:0}.compact-workspace.panel-visible-right.props-collapsed .workspace-shell{grid-template-columns:0 1fr 48px}.compact-workspace.panel-visible-left.panel-visible-right.props-collapsed .workspace-shell{grid-template-columns:300px 1fr 48px}
.help-grid{display:grid;gap:12px}.help-grid h3{margin:8px 0 4px;color:#e0f2fe}.help-grid p,.help-grid li{color:#cbd5e1;line-height:1.45}.help-grid ul{margin:4px 0 0 18px;padding:0}.help-kbd{display:inline-block;border:1px solid #475569;border-radius:6px;padding:1px 6px;background:#020617;color:#f8fafc;font-size:12px}.modal-card.help-modal{width:min(920px,calc(100vw - 32px));max-height:calc(100vh - 44px);overflow:auto}
@media(max-width:1320px){.app-menu-bar button{padding:6px 7px}.brand-block{min-width:150px}.brand-block h1{font-size:18px}}

/* rev 1.0.0.0.5 workspace layout fix - prevents hidden panels from occupying or covering the canvas */
body.compact-workspace .workspace-shell{grid-template-columns:0 minmax(0,1fr) 0!important;}
body.compact-workspace.panel-visible-left .workspace-shell{grid-template-columns:300px minmax(0,1fr) 0!important;}
body.compact-workspace.panel-visible-right .workspace-shell{grid-template-columns:0 minmax(0,1fr) 290px!important;}
body.compact-workspace.panel-visible-left.panel-visible-right .workspace-shell{grid-template-columns:300px minmax(0,1fr) 290px!important;}
body.compact-workspace.panel-visible-right.props-collapsed .workspace-shell{grid-template-columns:0 minmax(0,1fr) 48px!important;}
body.compact-workspace.panel-visible-left.panel-visible-right.props-collapsed .workspace-shell{grid-template-columns:300px minmax(0,1fr) 48px!important;}
body.compact-workspace:not(.panel-visible-left) .tool-panel{display:none!important;}
body.compact-workspace.panel-visible-left .tool-panel{display:block!important;}
body.compact-workspace:not(.panel-visible-right) .property-panel{display:none!important;}
body.compact-workspace.panel-visible-right .property-panel{display:block!important;}
body.compact-workspace.panel-visible-right.props-collapsed .property-panel{display:block!important;min-width:48px;max-width:48px;}
.quick-picker{left:50%!important;right:auto!important;transform:translateX(-50%);width:min(920px,calc(100vw - 64px));top:82px!important;}
.quick-picker-card{width:100%;}
.quick-picker-list{max-height:min(520px,calc(100vh - 245px));overflow:auto;}
.quick-picker-card .wide-control{margin-bottom:8px;}

/* rev 1.0.0.0.6 workspace polish - side windows overlay the print instead of resizing it */
body.compact-workspace .workspace-shell,
body.compact-workspace.panel-visible-left .workspace-shell,
body.compact-workspace.panel-visible-right .workspace-shell,
body.compact-workspace.panel-visible-left.panel-visible-right .workspace-shell,
body.compact-workspace.panel-visible-right.props-collapsed .workspace-shell,
body.compact-workspace.panel-visible-left.panel-visible-right.props-collapsed .workspace-shell{
  position:relative!important;
  grid-template-columns:minmax(0,1fr)!important;
  overflow:hidden!important;
}
body.compact-workspace .drawing-stage{
  grid-column:1!important;
  grid-row:1!important;
  width:100%!important;
  min-width:0!important;
  z-index:1!important;
}
body.compact-workspace .tool-panel,
body.compact-workspace .property-panel{
  position:absolute!important;
  top:0!important;
  bottom:0!important;
  z-index:30!important;
  max-height:100%!important;
  box-shadow:0 28px 80px rgba(0,0,0,.48)!important;
}
body.compact-workspace .tool-panel{
  left:0!important;
  width:min(330px,calc(100vw - 80px))!important;
  border-right:1px solid var(--line)!important;
}
body.compact-workspace .property-panel{
  right:0!important;
  width:300px!important;
  border-left:1px solid var(--line)!important;
}
body.compact-workspace:not(.panel-visible-left) .tool-panel{display:none!important;}
body.compact-workspace.panel-visible-left .tool-panel{display:block!important;}
body.compact-workspace:not(.panel-visible-right) .property-panel{display:block!important;}
body.compact-workspace.panel-visible-right .property-panel{display:block!important;}
body.compact-workspace .property-panel.is-collapsed,
body.compact-workspace.panel-visible-right.props-collapsed .property-panel{
  width:48px!important;
  min-width:48px!important;
  max-width:48px!important;
}
body.compact-workspace .canvas-scroller{
  cursor:grab;
}
body.compact-workspace .canvas-scroller.is-panning{
  cursor:grabbing!important;
}
body.compact-workspace .stage-header{
  padding-right:72px;
}
.quick-picker-close-hint{color:var(--muted);font-size:11px;}


/* rev 1.0.0.0.8 workspace save-guard polish */
.topbar{
  display:grid!important;
  grid-template-columns:minmax(190px,260px) minmax(0,1fr)!important;
  grid-template-areas:"brand toolbar" "menu toolbar"!important;
  align-items:start!important;
  gap:6px 14px!important;
  padding:10px 12px!important;
}
.brand-block{grid-area:brand!important;min-width:0!important;}
.app-menu-bar{grid-area:menu!important;width:max-content!important;max-width:100%!important;}
.command-toolbar{grid-area:toolbar!important;width:100%!important;justify-content:flex-start!important;align-content:start!important;max-height:86px!important;overflow:auto!important;padding-bottom:4px!important;}
.stage-header{position:relative;z-index:2;}
.print-title-input{
  width:min(520px,55vw);
  max-width:100%;
  border:1px solid transparent;
  border-radius:8px;
  background:transparent;
  color:#f8fafc;
  font-weight:800;
  font-size:16px;
  padding:5px 7px;
}
.print-title-input:hover,.print-title-input:focus{
  border-color:#38bdf8;
  background:#020617;
  outline:none;
}
.canvas-nav-tools{
  left:50%!important;
  right:auto!important;
  bottom:14px!important;
  transform:translateX(-50%)!important;
  max-width:calc(100vw - 32px)!important;
  overflow-x:auto!important;
  overflow-y:hidden!important;
  white-space:nowrap!important;
}
.canvas-nav-tools button{flex:0 0 auto!important;}
.context-menu{max-height:calc(100vh - 16px);overflow:auto;}
body.compact-workspace.panel-visible-left .canvas-scroller{padding-left:360px!important;}
body.compact-workspace.panel-visible-right:not(.props-collapsed) .canvas-scroller{padding-right:340px!important;}
body.compact-workspace.panel-visible-right.props-collapsed .canvas-scroller{padding-right:92px!important;}
body.compact-workspace .property-panel.is-collapsed{
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  gap:12px!important;
}
.collapsed-rail-button{
  display:none;
  writing-mode:vertical-rl;
  transform:rotate(180deg);
  width:30px;
  min-height:128px;
  border:1px solid #334155;
  border-radius:9px;
  background:#1f2937;
  color:#e0f2fe;
  padding:8px 4px;
  font-weight:800;
  letter-spacing:.04em;
}
.property-panel.is-collapsed .collapsed-rail-button{display:block;}
body.compact-workspace .property-panel.is-collapsed .property-panel-body{display:none!important;}
.app-dropdown-menu{max-width:min(420px,calc(100vw - 16px));max-height:calc(100vh - 16px);overflow:auto;}
.app-dropdown-menu .menu-section-title{
  color:#94a3b8;
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:.08em;
  padding:8px 10px 4px;
}
.app-dropdown-menu .recent-print-title{font-weight:800;}
.app-dropdown-menu .recent-print-meta{font-size:11px;color:#94a3b8;}
.modal-card .modal-actions button{min-width:82px;}

@media(max-width:1180px){
  .topbar{
    grid-template-columns:1fr!important;
    grid-template-areas:"brand" "menu" "toolbar"!important;
  }
  .command-toolbar{max-height:92px!important;}
}

/* v1.0.0.1.0 rail cleanup */
.tool-panel-title-row{
  position:sticky;
  top:0;
  z-index:6;
  margin:0 0 12px;
  padding:10px 10px 12px;
  background:linear-gradient(180deg, rgba(15,23,42,.98), rgba(15,23,42,.92));
  backdrop-filter:blur(8px);
}
.tool-panel-title-row strong{font-size:15px;}
.property-panel.is-collapsed #collapsePropsButton{display:none!important;}
.property-panel.is-collapsed .panel-title-row{
  cursor:pointer;
  padding:8px 4px!important;
  border:1px solid #334155!important;
  border-radius:9px;
  background:#111827;
  color:#e0f2fe;
  min-height:128px;
}
.property-panel.is-collapsed .panel-title-row:hover,
.property-panel.is-collapsed .collapsed-rail-button:hover{
  border-color:#38bdf8!important;
  background:#172554!important;
}
.property-panel.is-collapsed .panel-title-row strong,
.property-panel.is-collapsed .collapsed-rail-button{
  text-transform:none;
  letter-spacing:.04em;
}
.property-panel.is-collapsed .collapsed-rail-button{
  display:block!important;
  cursor:pointer;
}


/* rev 1.0.0.1.1 line workflow and rail label cleanup */
.property-panel.is-collapsed .panel-title-row,
.property-panel.is-collapsed .collapsed-rail-button{
  writing-mode:vertical-rl!important;
  transform:rotate(180deg)!important;
  text-orientation:mixed!important;
}
.property-panel.is-collapsed .panel-title-row strong{
  display:block;
}
.line-node-dot{
  fill:#ffffff;
  stroke:#111827;
  stroke-width:3;
  cursor:crosshair;
}
.line-node-dot:hover{stroke:#f59e0b;fill:#fef3c7;}
.line-crossing-bridge{
  fill:#111827;
  stroke:#ffffff;
  stroke-width:3;
  paint-order:stroke;
  font-size:22px;
  font-weight:900;
  text-anchor:middle;
  dominant-baseline:middle;
  pointer-events:none;
}
.quick-picker-item .quick-picker-thumb{font-size:18px;}


/* rev 1.0.0.1.2 save/detail-scale/color toolbar polish */
.compact-style-tools{gap:10px!important;flex-wrap:wrap;justify-content:flex-end;max-width:520px;}
.hidden-color-input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none;}
.color-dots{display:flex;align-items:center;gap:6px;padding:5px 7px;border:1px solid #334155;border-radius:999px;background:#0b1220;}
.color-dot{width:20px;height:20px;min-width:20px;padding:0;border-radius:999px;border:2px solid rgba(248,250,252,.75);background:var(--dot);box-shadow:0 0 0 1px rgba(0,0,0,.25) inset;}
.color-dot:hover,.color-dot.selected{outline:2px solid #38bdf8;outline-offset:2px;}
.custom-dot{border-style:dashed;}
.thickness-picker{display:flex!important;align-items:center!important;gap:6px!important;color:#cbd5e1!important;font-size:12px!important;}
.thickness-picker select{border:1px solid #334155;border-radius:999px;background:#0b1220;color:#f8fafc;padding:6px 10px;min-width:118px;}
#autoSaveButton.active{border-color:#22c55e;box-shadow:0 0 0 1px rgba(34,197,94,.25) inset;}
@media print{.print-canvas{width:17in!important;height:11in!important;transform:none!important;}}


/* rev 1.0.0.1.3 title block / key polish and toolbar non-scroll layout */
.command-toolbar{
  overflow-x:hidden!important;
  overflow-y:visible!important;
  max-height:none!important;
  row-gap:7px!important;
}
.topbar{overflow:visible!important;}
.template-title-border{stroke:#111827;stroke-width:2;fill:#fff;cursor:pointer;}
.template-title-header{fill:#f8fafc;stroke:#111827;stroke-width:2;cursor:pointer;}
.template-title-subheader{fill:#eef2ff;stroke:#111827;stroke-width:1.5;cursor:pointer;}
.template-cell{fill:#fff;stroke:#111827;stroke-width:1.3;cursor:pointer;}
.template-cell-muted{fill:#f8fafc;stroke:#111827;stroke-width:1.2;cursor:pointer;}
.template-label{fill:#475569;font-size:13px;font-weight:700;letter-spacing:.04em;pointer-events:none;}
.template-value{fill:#111827;font-size:17px;font-weight:800;pointer-events:none;}
.template-company{fill:#111827;font-size:22px;font-weight:900;text-anchor:middle;pointer-events:none;}
.template-print-title{fill:#111827;font-size:20px;font-weight:900;text-anchor:middle;pointer-events:none;}
.template-key-title{fill:#111827;font-size:17px;font-weight:900;pointer-events:none;}
.template-key-small{fill:#111827;font-size:13px;font-weight:700;pointer-events:none;}
.template-click-hint{fill:#64748b;font-size:11px;font-weight:700;pointer-events:none;}
.title-editor-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.title-editor-grid label,.key-editor-row label{display:grid;gap:5px;color:#94a3b8;font-size:12px;}
.title-editor-grid input,.key-editor-row input{width:100%;border:1px solid #334155;border-radius:8px;background:#1f2937;color:#f8fafc;padding:8px;}
.key-editor-list{display:grid;gap:8px;max-height:360px;overflow:auto;padding-right:4px;}
.key-editor-row{display:grid;grid-template-columns:70px 80px 1fr 110px 36px;gap:8px;align-items:end;border:1px solid #334155;border-radius:10px;padding:8px;background:#0b1220;}
.key-editor-row .remove-key-row{padding:8px 9px;}
@media(max-width:1450px){.command-toolbar{max-height:136px!important;overflow-y:auto!important;}}


/* v1.0.0.1.3 Engineering Intelligence Layer */
.engineering-report {
  display: grid;
  gap: 10px;
  margin-top: 8px;
}
.engineering-issue {
  border: 1px solid var(--line);
  border-radius: 10px;
  padding: 10px;
  background: var(--panel-soft);
}
.engineering-issue strong {
  display: block;
  margin-bottom: 5px;
}
.engineering-issue span {
  display: block;
  color: var(--muted);
  line-height: 1.35;
}
.engineering-issue small {
  display: block;
  margin-top: 6px;
  color: #cbd5e1;
}
.engineering-issue.error {
  border-color: #ef4444;
  background: rgba(127,29,29,.45);
}
.engineering-issue.warning {
  border-color: #f59e0b;
  background: rgba(120,53,15,.42);
}
.engineering-issue.ok {
  border-color: #22c55e;
  background: rgba(20,83,45,.42);
}
.engineering-fail,
.engineering-fail * {
  filter: drop-shadow(0 0 8px rgba(239,68,68,.95));
}
.engineering-fail-line {
  stroke: #ef4444 !important;
  stroke-width: 7 !important;
  filter: drop-shadow(0 0 8px rgba(239,68,68,.8));
}
.engineering-warning-line {
  stroke: #f59e0b !important;
  stroke-width: 6 !important;
}


/* v1.0.0.1.7 Spec Editor + Preset Libraries */
.spec-editor {
  display: grid;
  gap: 12px;
}
.spec-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(220px, 1fr));
  gap: 10px 14px;
}
.spec-grid label {
  display: grid;
  gap: 5px;
  font-size: 12px;
  color: var(--muted);
}
.spec-grid input,
.spec-grid select {
  width: 100%;
  border: 1px solid var(--line);
  background: #020617;
  color: var(--text);
  border-radius: 8px;
  padding: 8px;
}
.spec-grid input:focus,
.spec-grid select:focus {
  outline: 2px solid var(--accent);
  border-color: var(--accent);
}
.wide-modal .modal-card,
.modal-card.wide-modal {
  width: min(920px, calc(100vw - 32px));
}
@media (max-width: 760px) {
  .spec-grid {
    grid-template-columns: 1fr;
  }
}


/* v1.0.0.1.8 Expanded component-specific spec presets */
.custom-spec-notice {
  border: 1px solid #f59e0b;
  background: rgba(120,53,15,.45);
  color: #fffbeb;
  border-radius: 10px;
  padding: 10px;
  font-size: 12px;
  line-height: 1.35;
}
.custom-spec-notice strong {
  color: #fde68a;
}


/* v1.0.0.1.9 visual teaching animations */
.engineering-bolt {
  fill: #facc15;
  stroke: #ef4444;
  stroke-width: .5;
  font-size: 28px;
  pointer-events: none;
  animation: bolt-flicker .55s infinite alternate;
}
.engineering-error-label,
.engineering-component-label {
  fill: #fecaca;
  stroke: #7f1d1d;
  stroke-width: .4;
  font-size: 13px;
  font-weight: 800;
  pointer-events: none;
  paint-order: stroke;
}
.engineering-flow-pulse {
  fill: #22c55e;
  stroke: #bbf7d0;
  stroke-width: 3;
  pointer-events: none;
  animation: flow-pulse 1.2s ease-out 3;
}
.engineering-good-lamp {
  fill: #22c55e;
  stroke: #bbf7d0;
  stroke-width: 3;
  pointer-events: none;
  filter: drop-shadow(0 0 8px rgba(34,197,94,.85));
  animation: good-lamp 1.2s ease-in-out 3;
}
@keyframes bolt-flicker {
  from { opacity: .55; transform: translateY(0); }
  to { opacity: 1; transform: translateY(-2px); }
}
@keyframes flow-pulse {
  0% { opacity: 0; r: 3; }
  25% { opacity: 1; r: 8; }
  100% { opacity: 0; r: 18; }
}
@keyframes good-lamp {
  0%,100% { opacity: .65; }
  50% { opacity: 1; }
}


/* v1.0.0.2.0 engineering labels fixed above all drawing objects */
.engineering-overlay-bolt {
  fill: #facc15;
  stroke: #7f1d1d;
  stroke-width: .6;
  font-size: 30px;
  pointer-events: none;
  paint-order: stroke;
  animation: bolt-flicker .55s infinite alternate;
}
.engineering-overlay-label {
  fill: #fecaca;
  stroke: #450a0a;
  stroke-width: 3px;
  font-size: 14px;
  font-weight: 900;
  pointer-events: none;
  paint-order: stroke;
}
.engineering-overlay-good {
  fill: #22c55e;
  stroke: #bbf7d0;
  stroke-width: 3;
  pointer-events: none;
  filter: drop-shadow(0 0 9px rgba(34,197,94,.9));
  animation: good-lamp 1.2s ease-in-out 3;
}


/* v1.0.0.2.2 Programmable control behavior editor */
.behavior-editor .spec-grid {
  grid-template-columns: repeat(2, minmax(240px, 1fr));
}
.behavior-editor .custom-spec-notice {
  border-color: #38bdf8;
  background: rgba(12,74,110,.42);
}


/* v1.0.0.2.3 guided lesson templates */
.lesson-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 12px;
}
.lesson-card {
  display: grid;
  gap: 6px;
  text-align: left;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--panel-soft);
  color: var(--text);
  padding: 12px;
}
.lesson-card:hover {
  border-color: var(--accent);
  background: rgba(14,165,233,.12);
}
.lesson-card strong {
  font-size: 14px;
}
.lesson-card span {
  color: #7dd3fc;
  font-size: 12px;
  font-weight: 800;
}
.lesson-card p {
  margin: 0;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.35;
}


/* v1.0.0.2.5 navigation improvements */
.space-pan-mode,
.space-pan-mode * {
  cursor: grab !important;
}


/* v1.0.0.2.6 fixed navigation */
.canvas-scroller,
#printCanvas {
  touch-action: none;
}
.canvas-scroller {
  cursor: grab;
}
.canvas-scroller.is-panning,
.is-global-panning,
.is-global-panning * {
  cursor: grabbing !important;
  user-select: none !important;
}
.space-pan-mode,
.space-pan-mode * {
  cursor: grab !important;
}


/* v1.0.0.2.6b pan inside print + pan workspace */
.print-canvas {
  flex: 0 0 auto;
}
.canvas-scroller {
  cursor: grab;
  scroll-behavior: auto !important;
}
.canvas-scroller.is-panning,
.is-global-panning,
.is-global-panning * {
  cursor: grabbing !important;
  user-select: none !important;
}
#paperBackground,
#gridBackground,
#templateLayer,
#gridLayer {
  cursor: grab;
}


/* v1.0.0.2.8 Pin Assignment Manager */
.pin-manager {
  display: grid;
  gap: 12px;
}
.pin-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 12px;
}
.pin-table th,
.pin-table td {
  border: 1px solid var(--line);
  padding: 6px;
  vertical-align: middle;
}
.pin-table th {
  color: var(--text);
  background: rgba(15,23,42,.75);
  text-align: left;
}
.pin-table select,
.pin-table input {
  width: 100%;
  border: 1px solid var(--line);
  background: #020617;
  color: var(--text);
  border-radius: 7px;
  padding: 6px;
}


/* v1.0.0.3.2 shared popup/left-panel component drag placement */
.drag-ghost-preview {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-width: 130px;
  max-width: 260px;
  padding: 8px 10px;
  border-radius: 10px;
  border: 1px solid var(--accent);
  background: rgba(15,23,42,.96);
  color: var(--text);
  box-shadow: 0 12px 32px rgba(0,0,0,.35);
  font-size: 12px;
  z-index: 99999;
}
.drag-ghost-preview span {
  color: var(--accent);
  font-weight: 900;
}
.print-canvas.drop-ready {
  outline: 3px dashed var(--accent);
  outline-offset: 8px;
}


/* v1.0.0.3.6 Control/Breadboard visual template */
.breadboard-template {
  pointer-events: none;
}
.bb-board {
  fill: #f8fafc;
  stroke: #94a3b8;
  stroke-width: 4;
  filter: drop-shadow(0 8px 18px rgba(15,23,42,.18));
}
.bb-title {
  fill: #0f172a;
  font-size: 28px;
  font-weight: 900;
  letter-spacing: .08em;
}
.bb-subtitle {
  fill: #64748b;
  font-size: 18px;
  font-weight: 700;
}
.bb-rail {
  fill: #e2e8f0;
  stroke: #cbd5e1;
  stroke-width: 2;
}
.bb-rail-positive {
  stroke: #dc2626;
  stroke-width: 5;
}
.bb-rail-negative {
  stroke: #2563eb;
  stroke-width: 5;
}
.bb-plus-label {
  fill: #dc2626;
  font-size: 24px;
  font-weight: 900;
}
.bb-minus-label {
  fill: #2563eb;
  font-size: 24px;
  font-weight: 900;
}
.bb-hole-field {
  fill: #eef2f7;
  stroke: #cbd5e1;
  stroke-width: 2;
}
.bb-center-gap {
  fill: #cbd5e1;
  opacity: .75;
}
.bb-hole {
  fill: #1e293b;
  opacity: .82;
}
.bb-row-label,
.bb-col-label {
  fill: #64748b;
  font-size: 14px;
  font-weight: 800;
}
.bb-bank-label,
.bb-footer-note {
  fill: #475569;
  font-size: 17px;
  font-weight: 800;
}


/* v1.0.0.3.7 Breadboard hole snapping */
.bb-snap-marker {
  fill: none;
  stroke: #22c55e;
  stroke-width: 3;
  pointer-events: none;
  animation: bb-snap-pulse .9s ease-out 2;
}
@keyframes bb-snap-pulse {
  from { opacity: 1; r: 5; }
  to { opacity: .15; r: 16; }
}


/* v1.0.0.3.8 isolated breadboard smart netlist */
.breadboard-netlist-panel {
  display: grid;
  gap: 12px;
  max-height: min(72vh, 720px);
  overflow: auto;
}
.breadboard-netlist-panel h3 {
  margin: 8px 0 0;
}


/* v1.0.0.4.2 title visibility with left components window */
.panel-visible-left .stage-header {
  padding-left: 318px;
}
.panel-visible-left .stage-header > div:first-child {
  min-width: 0;
  flex: 1 1 auto;
}
.panel-visible-left .print-title-input {
  width: min(520px, calc(100vw - 720px));
  min-width: 240px;
}
.panel-visible-left .status-text {
  display: inline-block;
  max-width: 32vw;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  vertical-align: middle;
}
@media (max-width: 1180px) {
  .panel-visible-left .stage-header {
    padding-left: 300px;
  }
  .panel-visible-left .print-title-input {
    width: min(420px, calc(100vw - 620px));
    min-width: 190px;
  }
}


/* v1.0.0.4.3 placement assist coach */
.placement-assist-bar {
  margin: 0 16px 10px;
  padding: 10px 12px;
  border: 1px solid #bfdbfe;
  border-radius: 14px;
  background: linear-gradient(135deg, #eff6ff, #f8fafc);
  color: #0f172a;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  box-shadow: 0 10px 24px rgba(15,23,42,.08);
}
.placement-assist-bar[hidden] { display: none; }
.placement-assist-bar .assist-copy {
  display: grid;
  gap: 2px;
  min-width: 0;
}
.placement-assist-bar strong {
  font-size: 13px;
  letter-spacing: .02em;
  text-transform: uppercase;
  color: #1d4ed8;
}
.placement-assist-bar span {
  font-size: 13px;
  line-height: 1.35;
  color: #334155;
}
.assist-toggle {
  white-space: nowrap;
  border-color: #93c5fd;
  background: #dbeafe;
  color: #1e3a8a;
  font-weight: 800;
}
.bb-assist-hole {
  fill: rgba(59,130,246,.26);
  stroke: #2563eb;
  stroke-width: 2.5;
  pointer-events: none;
  animation: bb-assist-pulse 1.2s ease-in-out infinite;
}
.bb-assist-power { fill: rgba(239,68,68,.25); stroke: #dc2626; }
.bb-assist-ground { fill: rgba(30,41,59,.22); stroke: #0f172a; }
.bb-assist-led { fill: rgba(34,197,94,.26); stroke: #16a34a; }
.bb-assist-resistor { fill: rgba(234,179,8,.28); stroke: #ca8a04; }
.bb-assist-controller { fill: rgba(139,92,246,.24); stroke: #7c3aed; }
.bb-assist-hover {
  fill: none;
  stroke: #f97316;
  stroke-width: 4;
  pointer-events: none;
  filter: drop-shadow(0 0 5px rgba(249,115,22,.45));
}
.bb-assist-hole-label {
  fill: #9a3412;
  font-size: 16px;
  font-weight: 900;
  paint-order: stroke;
  stroke: #fff7ed;
  stroke-width: 5;
  pointer-events: none;
}
@keyframes bb-assist-pulse {
  0%, 100% { opacity: .55; }
  50% { opacity: 1; }
}


/* v1.0.0.4.4 dedicated 11x17 print/PDF output retained with placement assist */
@page {
  size: 17in 11in;
  margin: 0;
}
@media print {
  html,
  body {
    width: 17in !important;
    height: 11in !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    background: #fff !important;
  }

  body.printing-pdf #mobileGate,
  body.printing-pdf .mobile-gate,
  #mobileGate,
  .mobile-gate,
  .topbar,
  .tool-panel,
  .property-panel,
  .stage-header,
  .placement-assist-bar,
  .app-dropdown-menu,
  .quick-picker,
  .context-menu,
  .modal-backdrop,
  .canvas-nav-tools {
    display: none !important;
    visibility: hidden !important;
  }

  body.printing-pdf #designerApp,
  #designerApp,
  .designer-app,
  .workspace-shell,
  .drawing-stage,
  .canvas-scroller {
    display: block !important;
    visibility: visible !important;
    width: 17in !important;
    height: 11in !important;
    min-width: 17in !important;
    min-height: 11in !important;
    max-width: 17in !important;
    max-height: 11in !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
    background: #fff !important;
    position: static !important;
  }

  .workspace-shell {
    grid-template-columns: none !important;
  }

  #printCanvas,
  .print-canvas {
    display: block !important;
    visibility: visible !important;
    position: fixed !important;
    left: 0 !important;
    top: 0 !important;
    width: 17in !important;
    height: 11in !important;
    max-width: none !important;
    max-height: none !important;
    margin: 0 !important;
    padding: 0 !important;
    transform: none !important;
    box-shadow: none !important;
    background: #fff !important;
    page-break-inside: avoid !important;
  }
}


/* v1.0.0.4.6 placement assist responsive panel clearance */
.drawing-stage {
  min-width: 0 !important;
  overflow: hidden;
}
.placement-assist-bar {
  box-sizing: border-box;
  width: auto;
  max-width: none;
  min-width: 0;
  flex: 0 0 auto;
  margin: 8px 14px 10px !important;
}
.placement-assist-bar .assist-copy {
  min-width: 0;
  overflow: hidden;
}
.placement-assist-bar .assist-copy span {
  display: block;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.placement-assist-bar .assist-toggle {
  flex: 0 0 auto;
}
body.panel-visible-left .placement-assist-bar,
body.panel-visible-right .placement-assist-bar,
body.panel-visible-left.panel-visible-right .placement-assist-bar {
  margin-left: 14px !important;
  margin-right: 14px !important;
  width: auto !important;
}
body.panel-visible-left.panel-visible-right .placement-assist-bar .assist-copy span {
  max-width: calc(100vw - 760px);
}
body.panel-visible-left.panel-visible-right.props-collapsed .placement-assist-bar .assist-copy span {
  max-width: calc(100vw - 520px);
}
body.panel-visible-left:not(.panel-visible-right) .placement-assist-bar .assist-copy span {
  max-width: calc(100vw - 460px);
}
body.panel-visible-right:not(.panel-visible-left) .placement-assist-bar .assist-copy span {
  max-width: calc(100vw - 450px);
}
@media (max-width: 1120px) {
  .placement-assist-bar {
    align-items: flex-start;
    gap: 8px;
  }
  .placement-assist-bar .assist-copy span {
    white-space: normal;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
  }
}
@media (max-width: 920px) {
  .placement-assist-bar {
    flex-wrap: wrap;
  }
  .placement-assist-bar .assist-toggle {
    width: 100%;
    text-align: center;
  }
}


/* v1.0.0.4.7 Placement Assist moved to toolbar + viewport toast */
.placement-assist-bar {
  display: none !important;
}
.placement-assist-toast {
  position: fixed;
  z-index: 140;
  left: 50%;
  bottom: 78px;
  transform: translateX(-50%);
  max-width: min(720px, calc(100vw - 64px));
  min-width: min(420px, calc(100vw - 64px));
  padding: 10px 14px;
  border: 1px solid #bfdbfe;
  border-radius: 14px;
  background: linear-gradient(135deg, rgba(239,246,255,.97), rgba(248,250,252,.97));
  color: #0f172a;
  box-shadow: 0 18px 46px rgba(15,23,42,.30);
  pointer-events: none;
}
.placement-assist-toast[hidden] {
  display: none !important;
}
.placement-assist-toast strong {
  display: block;
  color: #1d4ed8;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: .06em;
  text-transform: uppercase;
  margin-bottom: 3px;
}
.placement-assist-toast span {
  display: block;
  color: #334155;
  font-size: 13px;
  line-height: 1.35;
}
#placementAssistToolbarToggle.active {
  border-color: #93c5fd;
  background: rgba(59,130,246,.18);
  color: #dbeafe;
}
@media print {
  .placement-assist-toast,
  #placementAssistToolbarToggle {
    display: none !important;
  }
}


/* v1.0.0.4.8 Shape / Enclosure Maker */
.shape-node {
  cursor: move;
}
.shape-node rect,
.shape-node ellipse {
  vector-effect: non-scaling-stroke;
}
.shape-node.selected rect,
.shape-node.selected ellipse {
  stroke: #2563eb !important;
  stroke-width: 3 !important;
}
.shape-label {
  fill: #111827;
  font-size: 22px;
  font-weight: 900;
  text-anchor: middle;
  dominant-baseline: middle;
  pointer-events: none;
  letter-spacing: .04em;
}
.shape-draft {
  opacity: .72;
}
.shape-select-box {
  fill: none;
  stroke: #38bdf8;
  stroke-width: 2;
  stroke-dasharray: 6 4;
  pointer-events: none;
}
.shape-resize-handle {
  fill: #e0f2fe;
  stroke: #0369a1;
  stroke-width: 2;
  cursor: nwse-resize;
}
.shape-resize-handle[data-handle="n"],
.shape-resize-handle[data-handle="s"] {
  cursor: ns-resize;
}
.shape-resize-handle[data-handle="e"],
.shape-resize-handle[data-handle="w"] {
  cursor: ew-resize;
}
.shape-resize-handle[data-handle="ne"],
.shape-resize-handle[data-handle="sw"] {
  cursor: nesw-resize;
}


/* v1.0.0.4.9 Shape Details / Specs editor */
.shape-spec-editor {
  display: grid;
  gap: 14px;
}
.shape-spec-editor h3 {
  margin: 6px 0 0;
  color: #e0f2fe;
  border-bottom: 1px solid #334155;
  padding-bottom: 6px;
}
.shape-spec-editor .spec-grid {
  grid-template-columns: repeat(2, minmax(220px, 1fr));
}
.shape-spec-editor .wide-field {
  grid-column: 1 / -1;
}
.shape-spec-editor textarea {
  min-height: 70px;
}
@media (max-width: 760px) {
  .shape-spec-editor .spec-grid {
    grid-template-columns: 1fr;
  }
}
