.elec-workspace{--bg: #ffffff;--page: #f5f5f7;--card: #fbfbfd;--border: #e8e8ed;--text: #1d1d1f;--muted: #6e6e73;--accent: #007aff;--accent-text: #0062cc;--ok: #28a745;--ok-text: #1e7e34;--warn: #c77700;--warn-text: #9a5b00;--danger: #b3261e;--dc-border: #f0c9c9;--dc-fill: #fff6f6;--ac-border: #c9d6f0;--ac-fill: #f6f9ff;--bulk-fill: #eef1f6;--scenario-fill: color-mix(in srgb, var(--ok) 10%, var(--bg));--canvas-grid: #e6e8ec;--canvas-control-fill: #f2f3f5;--iec-stroke: #1d1d1f;--iec-stroke-width: 1.6px;--wire-dc: #cc3333;--r-card: 14px;--r-tile: 12px;--r-control: 8px;--r-pill: 999px;--fs-micro: 11px;--fs-cap: 12px;--fs-sm: 13px;--fs-base: 14px;--fs-md: 15px;--fs-lg: 20px;--shadow-card: 0 1px 2px rgba(0,0,0,.05);--shadow-active-tab: 0 1px 2px rgba(0,0,0,.12);--shadow-floating: 0 1px 3px rgba(0,0,0,.1);background:var(--bg);border:1px solid var(--border);border-radius:var(--r-card);box-shadow:var(--shadow-card);color:var(--text);display:flex;flex-direction:column;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Segoe UI,Roboto,sans-serif;font-size:var(--fs-base);line-height:1.5;overflow:hidden}.elec-workspace *,.elec-workspace *:before,.elec-workspace *:after{box-sizing:border-box}.elec-workspace__context{align-items:center;background:var(--page);border-bottom:1px solid var(--border);color:var(--muted);display:flex;font-size:13.5px;gap:8px;min-height:38px;padding:8px 14px}.elec-workspace__crumb{color:var(--muted);font-weight:500}.elec-workspace__boat{color:var(--text);font-weight:600}.elec-workspace__head{align-items:center;background:var(--bg);border-bottom:1px solid var(--border);display:flex;gap:12px;justify-content:space-between;padding:14px}.elec-workspace__title{font-size:var(--fs-lg);font-weight:600;line-height:1.2;margin:0}.elec-workspace__primary{align-items:center;background:var(--accent);border:1px solid var(--accent);border-radius:var(--r-control);color:var(--bg);display:inline-flex;font-size:var(--fs-sm);font-weight:600;justify-content:center;min-height:44px;padding:0 14px}.elec-workspace__primary:disabled{cursor:default;opacity:.45}.elec-workspace__scenario-slot,.elec-workspace__buses-slot{border-bottom:1px solid var(--border);min-height:1px}.elec-workspace__scenario-slot{background:var(--scenario-fill)}.elec-workspace__buses{align-items:flex-start;background:var(--bg);border-bottom:1px solid var(--border);display:grid;gap:12px;grid-template-columns:minmax(0,1fr) auto;padding:10px 14px}.elec-workspace__buses-main{align-items:center;display:flex;flex:1 1 auto;gap:10px;min-width:0}.elec-workspace__bus-label{color:var(--muted);flex:0 0 auto;font-size:var(--fs-micro);font-weight:700;letter-spacing:.04em}.elec-workspace__buschips{align-items:center;display:flex;flex-wrap:wrap;gap:8px;min-width:0}.elec-workspace__buschip{align-items:center;border:1px solid var(--border);border-radius:var(--r-pill);display:inline-flex;gap:8px;min-height:44px;padding:0 12px}.elec-workspace__buschip--dc{background-color:var(--dc-fill);border-color:var(--dc-border)}.elec-workspace__buschip--ac{background-color:var(--ac-fill);border-color:var(--ac-border)}.elec-workspace__buschip-name{color:var(--text);font-size:var(--fs-sm);font-weight:600}.elec-workspace__buschip-voltage{color:var(--muted);font-size:var(--fs-cap);font-weight:600}.elec-workspace__buses-button,.elec-workspace__secondary,.elec-workspace__ghost-button,.elec-workspace__danger-button{align-items:center;background:var(--card);border:1px solid var(--border);border-radius:var(--r-control);color:var(--text);cursor:pointer;display:inline-flex;font-size:var(--fs-sm);font-weight:600;justify-content:center;min-height:44px;padding:0 12px}.elec-workspace__secondary{background:var(--accent);border-color:var(--accent);color:var(--bg)}.elec-workspace__ghost-button{background:transparent}.elec-workspace__danger-button{background:var(--bg);border-color:color-mix(in srgb,var(--danger) 28%,var(--border));color:var(--danger)}.elec-workspace__bus-manager{background:var(--bg);border:1px solid var(--border);border-radius:var(--r-tile);box-shadow:var(--shadow-floating);display:grid;gap:12px;grid-column:1 / -1;max-height:min(70vh,520px);max-width:100%;overflow-y:auto;padding:12px;width:100%}.elec-workspace__bus-manager-head,.elec-workspace__bus-form,.elec-workspace__bus-row{align-items:end;display:flex;gap:10px}.elec-workspace__bus-manager-head{align-items:center;justify-content:space-between}.elec-workspace__bus-manager-title{font-size:var(--fs-md);font-weight:700;line-height:1.2;margin:0}.elec-workspace__bus-form,.elec-workspace__bus-row{flex-wrap:wrap}.elec-workspace__bus-manager-list{display:grid;gap:10px}.elec-workspace__field{color:var(--muted);display:grid;flex:1 1 140px;font-size:var(--fs-cap);font-weight:600;gap:4px;min-width:120px}.elec-workspace__input,.elec-workspace__select{background:var(--bg);border:1px solid var(--border);border-radius:var(--r-control);color:var(--text);font:inherit;min-height:44px;padding:0 10px;width:100%}.elec-workspace__empty-note{color:var(--muted);font-size:var(--fs-sm);margin:0}.elec-workspace__seg-wrap{background:var(--bg);border-bottom:1px solid var(--border);padding:10px 14px}.elec-workspace__seg{align-items:center;background:var(--card);border:1px solid var(--border);border-radius:var(--r-pill);display:inline-flex;gap:4px;padding:4px}.elec-workspace__tab{background:transparent;border:0;border-radius:var(--r-pill);color:var(--muted);cursor:pointer;font-size:var(--fs-sm);font-weight:600;min-height:44px;min-width:82px;padding:0 14px}.elec-workspace__tab[aria-selected=true]{background:var(--bg);box-shadow:var(--shadow-active-tab);color:var(--text)}.elec-workspace__tab:focus-visible,.elec-workspace__primary:focus-visible,.elec-workspace__buses-button:focus-visible,.elec-workspace__secondary:focus-visible,.elec-workspace__ghost-button:focus-visible,.elec-workspace__danger-button:focus-visible,.elec-workspace__input:focus-visible,.elec-workspace__select:focus-visible,.elec-workspace__icon-button:focus-visible,.elec-workspace__quantity-input:focus-visible,.elec-workspace__switch:focus-visible,.elec-workspace__tier-tab:focus-visible,.elec-workspace__catalog-item:focus-visible,.elec-workspace__bus-drop-target:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.elec-workspace__drawer-backdrop{background:color-mix(in srgb,var(--text) 4%,transparent);border-bottom:1px solid var(--border)}.elec-workspace__drawer{background:var(--bg);border-bottom:1px solid var(--border);display:grid;gap:12px;padding:14px}.elec-workspace__drawer-head{align-items:center;display:flex;justify-content:space-between}.elec-workspace__drawer-title{font-size:var(--fs-md);font-weight:700;margin:0}.elec-workspace__tier-tabs{display:flex;flex-wrap:wrap;gap:6px}.elec-workspace__tier-tab{background:var(--card);border:1px solid var(--border);border-radius:var(--r-pill);color:var(--muted);cursor:pointer;font-size:var(--fs-sm);font-weight:600;min-height:44px;padding:0 12px}.elec-workspace__tier-tab[aria-pressed=true]{background:var(--bg);box-shadow:var(--shadow-active-tab);color:var(--text)}.elec-workspace__drawer-section{display:grid;gap:10px}.elec-workspace__field{color:var(--muted);display:grid;font-size:var(--fs-cap);font-weight:600;gap:4px}.elec-workspace__catalog-list{display:grid;gap:8px}.elec-workspace__catalog-item{background:var(--card);border:1px solid var(--border);border-radius:var(--r-control);color:var(--text);cursor:pointer;display:grid;font-size:var(--fs-sm);font-weight:700;gap:2px;min-height:52px;padding:8px 10px;text-align:left}.elec-workspace__catalog-item small,.elec-workspace__hint{color:var(--muted);font-size:var(--fs-cap);font-weight:500;margin:0}.elec-workspace__body{background:var(--bg);min-height:280px;padding:14px}.elec-workspace__list-panel,.elec-workspace__equipment-list{display:grid;gap:12px}.elec-workspace__validation{background:color-mix(in srgb,var(--warn) 10%,var(--bg));border:1px solid color-mix(in srgb,var(--warn) 34%,var(--border));border-radius:var(--r-control);color:var(--warn-text);display:grid;font-size:var(--fs-sm);gap:6px;padding:10px 12px}.elec-workspace__validation ul{margin:0;padding-left:18px}.elec-workspace__equipment-section{display:grid;gap:8px}.elec-workspace__equipment-heading{color:var(--muted);font-size:var(--fs-cap);font-weight:700;margin:0}.elec-workspace__equipment-rows{display:grid;gap:8px}.elec-workspace__equipment-row{align-items:center;background:var(--card);border:1px solid var(--border);border-radius:var(--r-control);display:grid;gap:10px;grid-template-columns:28px minmax(160px,1fr) minmax(170px,220px) auto auto auto auto;min-height:64px;padding:10px}.elec-workspace__select-cell{align-items:center;display:inline-flex;justify-content:center}.elec-workspace__select-cell input{min-height:20px;min-width:20px}.elec-workspace__equipment-main,.elec-workspace__equipment-titleline{min-width:0}.elec-workspace__equipment-titleline{align-items:center;display:flex;gap:6px}.elec-workspace__row-warning{align-items:center;background:color-mix(in srgb,var(--warn) 14%,var(--bg));border:1px solid color-mix(in srgb,var(--warn) 34%,var(--border));border-radius:var(--r-pill);color:var(--warn-text);display:inline-flex;font-size:var(--fs-cap);font-weight:800;height:22px;justify-content:center;width:22px}.elec-workspace__equipment-name{color:var(--text);font-size:var(--fs-sm);font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.elec-workspace__equipment-summary,.elec-workspace__bus-assignment{color:var(--muted);display:block;font-size:var(--fs-cap)}.elec-workspace__bus-picker{color:var(--muted);display:grid;font-size:var(--fs-cap);font-weight:600;gap:4px}.elec-workspace__select--chip{border-radius:var(--r-pill)}.elec-workspace__quantity-stepper{align-items:center;border:1px solid var(--border);border-radius:var(--r-pill);display:inline-grid;grid-template-columns:44px 34px 44px;overflow:hidden}.elec-workspace__icon-button{align-items:center;background:var(--bg);border:0;color:var(--text);cursor:pointer;display:inline-flex;font-size:var(--fs-md);font-weight:700;justify-content:center;min-height:44px;min-width:44px}.elec-workspace__quantity-input{appearance:textfield;background:var(--bg);border:0;color:var(--text);font-size:var(--fs-sm);font-weight:700;min-height:44px;min-width:34px;padding:0;text-align:center;width:34px}.elec-workspace__quantity-input::-webkit-inner-spin-button,.elec-workspace__quantity-input::-webkit-outer-spin-button{appearance:none;margin:0}.elec-workspace__switch{align-items:center;background:var(--card);border:1px solid var(--border);border-radius:var(--r-pill);color:var(--text);cursor:pointer;display:inline-flex;font-size:var(--fs-sm);font-weight:700;justify-content:center;min-height:44px;min-width:58px;padding:0 12px}.elec-workspace__switch[aria-checked=true]{background:color-mix(in srgb,var(--ok) 12%,var(--bg));border-color:color-mix(in srgb,var(--ok) 30%,var(--border));color:var(--ok-text)}.elec-workspace__row-menu{background:var(--bg);border:1px solid var(--border);border-radius:var(--r-control);box-shadow:var(--shadow-floating);display:grid;margin-top:6px;padding:6px}@media (max-width: 900px){.elec-workspace__node-grid,.elec-workspace__readonly-row{grid-template-columns:minmax(0,1fr)}.elec-workspace__equipment-row{grid-template-columns:28px minmax(0,1fr)}.elec-workspace__bus-picker,.elec-workspace__quantity-stepper,.elec-workspace__switch,.elec-workspace__equipment-row>.elec-workspace__ghost-button,.elec-workspace__row-actions{grid-column:2;justify-self:start}}.elec-workspace__visual-panel,.elec-workspace__visual-canvas{display:grid;gap:12px}.elec-workspace__visual-toolbar,.elec-workspace__visual-actions,.elec-workspace__visual-bus-targets{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.elec-workspace__zoom-value{color:var(--muted);font-size:var(--fs-cap);font-weight:700;min-width:44px;text-align:center}.elec-workspace__visual-scroll{background:linear-gradient(var(--canvas-grid) 1px,transparent 1px),linear-gradient(90deg,var(--canvas-grid) 1px,transparent 1px),var(--bg);background-size:24px 24px;border:1px solid var(--border);border-radius:var(--r-control);min-height:340px;overflow:auto;padding:10px}.elec-workspace__visual-viewport{min-height:100%;min-width:100%}.elec-workspace__visual-stage{display:inline-grid;transform-origin:left top}.elec-workspace__visual-node-hit{background:transparent;border:0;cursor:grab;height:100%;margin:0;padding:0;width:100%}.elec-workspace__bus-drop-target{background:var(--card);border:1px dashed var(--border);border-radius:var(--r-control);color:var(--text);cursor:copy;display:grid;font-size:var(--fs-sm);font-weight:700;gap:2px;min-height:44px;min-width:150px;padding:6px 10px;text-align:left}.elec-workspace__bus-drop-target small{color:var(--muted);font-size:var(--fs-cap);font-weight:600}.elec-workspace__node-drawer{border-top:1px solid var(--border)}.elec-workspace__node-provenance{color:var(--muted);display:block;font-size:var(--fs-cap);font-weight:700;margin-top:2px}.elec-workspace__node-grid{align-items:end;grid-template-columns:minmax(180px,1fr) minmax(140px,180px) auto minmax(180px,1fr) minmax(180px,1fr)}.elec-workspace__readonly-specs{border-top:1px solid var(--border);display:grid;gap:8px;margin:0;padding-top:12px}.elec-workspace__readonly-row{display:grid;gap:8px;grid-template-columns:minmax(120px,180px) minmax(0,1fr)}.elec-workspace__readonly-row dt{color:var(--muted);font-size:var(--fs-cap);font-weight:700}.elec-workspace__readonly-row dd{color:var(--text);font-size:var(--fs-sm);font-weight:600;margin:0}.elec-workspace__placeholder{align-items:center;background:var(--card);border:1px dashed var(--border);border-radius:var(--r-tile);color:var(--muted);display:flex;font-size:var(--fs-sm);justify-content:center;min-height:220px}.elec-scenario{align-items:center;display:flex;flex-wrap:wrap;gap:8px 14px;padding:10px 14px}.elec-scenario__switch{align-items:center;display:inline-flex;gap:8px}.elec-scenario__switch-label{color:var(--muted);font-size:var(--fs-micro);font-weight:700;letter-spacing:.04em;text-transform:uppercase}.elec-scenario__switch-select,.elec-bulk__assign-select{background:var(--bg);border:1px solid var(--border);border-radius:var(--r-control);color:var(--text);font:inherit;font-weight:600;min-height:44px;padding:0 10px}.elec-scenario__safety{align-items:center;color:var(--ok-text);display:inline-flex;font-size:var(--fs-sm);font-weight:600;margin:0}.elec-scenario__actions{align-items:center;display:inline-flex;flex-wrap:wrap;gap:6px;margin-left:auto}.elec-scenario__compare,.elec-scenario__revert,.elec-scenario__save,.elec-bulk__toggle,.elec-bulk__duplicate,.elec-bulk__clear,.elec-stale__recost,.elec-stale__export{background:transparent;border:0;border-radius:var(--r-control);color:var(--accent-text);cursor:pointer;font-size:var(--fs-sm);font-weight:600;min-height:44px;padding:0 8px}.elec-scenario__compare:hover,.elec-scenario__revert:hover,.elec-scenario__save:hover,.elec-bulk__toggle:hover,.elec-bulk__duplicate:hover,.elec-bulk__clear:hover,.elec-bulk__remove:hover,.elec-stale__recost:hover,.elec-stale__export:hover{text-decoration:underline}.elec-scenario__history{align-items:center;display:inline-flex;gap:6px}.elec-scenario__icon{align-items:center;background:var(--bg);border:1px solid var(--border);border-radius:var(--r-control);color:var(--text);cursor:pointer;display:inline-flex;font-size:var(--fs-md);justify-content:center;min-height:44px;min-width:44px}.elec-scenario__icon:disabled{cursor:default;opacity:.4}.elec-workspace__compare{background:var(--card);border:1px solid var(--border);border-radius:var(--r-control);color:var(--muted);font-size:var(--fs-cap);font-weight:600;margin:0 14px 10px;padding:8px 12px}.elec-workspace__toast{color:var(--muted);font-size:var(--fs-cap);font-weight:600;padding:0 14px 8px}.elec-workspace__toast:empty{display:none}.elec-bulk{align-items:center;background:var(--bulk-fill);border:1px solid var(--border);border-radius:var(--r-control);display:flex;flex-wrap:wrap;gap:8px 12px;padding:8px 12px}.elec-bulk__count{color:var(--text);font-size:var(--fs-sm);font-weight:700}.elec-bulk__actions{align-items:center;display:inline-flex;flex-wrap:wrap;gap:6px;margin-left:auto}.elec-bulk__remove{background:transparent;border:0;border-radius:var(--r-control);color:var(--danger);cursor:pointer;font-size:var(--fs-sm);font-weight:600;min-height:44px;padding:0 8px}.elec-empty{background:var(--card);border:1px solid var(--border);border-radius:var(--r-tile);display:grid;gap:8px;justify-items:start;padding:22px}.elec-empty__title{color:var(--text);font-size:var(--fs-md);font-weight:700;margin:0}.elec-empty__lead{color:var(--muted);font-size:var(--fs-sm);margin:0}.elec-empty__actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}.elec-empty__primary{align-items:center;background:var(--accent);border:1px solid var(--accent);border-radius:var(--r-control);color:var(--bg);cursor:pointer;display:inline-flex;font-size:var(--fs-sm);font-weight:600;min-height:44px;padding:0 14px}.elec-empty__secondary{align-items:center;background:var(--bg);border:1px solid var(--border);border-radius:var(--r-control);color:var(--text);cursor:pointer;display:inline-flex;font-size:var(--fs-sm);font-weight:600;min-height:44px;padding:0 14px}.elec-stale{align-items:center;background:color-mix(in srgb,var(--warn) 10%,var(--bg));border-bottom:1px solid color-mix(in srgb,var(--warn) 34%,var(--border));color:var(--warn-text);display:flex;flex-wrap:wrap;gap:8px 12px;padding:10px 14px}.elec-stale__text{font-size:var(--fs-sm);font-weight:600}.elec-stale__actions{align-items:center;display:inline-flex;flex-wrap:wrap;gap:6px;margin-left:auto}.elec-scenario__switch-select:focus-visible,.elec-scenario__compare:focus-visible,.elec-scenario__revert:focus-visible,.elec-scenario__save:focus-visible,.elec-scenario__icon:focus-visible,.elec-bulk__assign-select:focus-visible,.elec-bulk__toggle:focus-visible,.elec-bulk__duplicate:focus-visible,.elec-bulk__remove:focus-visible,.elec-bulk__clear:focus-visible,.elec-empty__primary:focus-visible,.elec-empty__secondary:focus-visible,.elec-stale__recost:focus-visible,.elec-stale__export:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@keyframes elec-bulk-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}@keyframes elec-toast-in{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion: no-preference){.elec-workspace__tab,.elec-workspace__primary,.elec-workspace__buses-button,.elec-workspace__secondary,.elec-workspace__ghost-button,.elec-workspace__danger-button,.elec-workspace__icon-button,.elec-workspace__switch,.elec-scenario__icon,.elec-scenario__compare,.elec-scenario__revert,.elec-scenario__save,.elec-bulk__toggle,.elec-bulk__duplicate,.elec-bulk__remove,.elec-bulk__clear,.elec-empty__primary,.elec-empty__secondary,.elec-stale__recost,.elec-stale__export{transition:background-color .15s ease-out,box-shadow .15s ease-out,color .15s ease-out,opacity .15s ease-out}.elec-bulk{animation:elec-bulk-in .22s ease-out}.elec-workspace__toast:not(:empty){animation:elec-toast-in .2s ease-out}}
