:root{--font:ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--bg:#f3f4f8;--panel:#fff;--panel-2:#f8f9fc;--surface:#eceff6;--surface-hover:#e2e6f1;--text:#141a28;--muted:#5d677c;--border:#e1e5ee;--border-strong:#c9d0de;--accent:#3d5afe;--accent-weak:color-mix(in srgb, var(--accent) 12%, transparent);--accent-contrast:#fff;--danger:#d92d20;--warn:#c2680a;--ok:#16a34a;--radius-sm:7px;--radius:10px;--radius-lg:14px;--shadow-sm:0 1px 2px #1018280f;--shadow:0 8px 24px #1018281f, 0 1px 3px #10182814;--focus:0 0 0 3px color-mix(in srgb, var(--accent) 28%, transparent);--grid-minor:#e4e7ef;--grid-major:#cdd2de;--wall:#141a28;--door:#b45309;--window:#0284c7;--radiator:#dc2626;--other:#6b7280;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#0d1118;--panel:#141a24;--panel-2:#10151e;--surface:#1c2431;--surface-hover:#253148;--text:#e8ecf4;--muted:#8c97ab;--border:#232c3b;--border-strong:#35425c;--accent:#7c93ff;--accent-contrast:#0d1118;--danger:#f97066;--warn:#fbbf24;--ok:#4ade80;--shadow-sm:0 1px 2px #0006;--shadow:0 8px 24px #00000080, 0 1px 3px #0006;--grid-minor:#181f2b;--grid-major:#263044;--wall:#e8ecf4;--door:#f59e0b;--window:#38bdf8;--radiator:#f87171;--other:#9ca3af}}*{box-sizing:border-box}html,body,#app{height:100%;margin:0}body{background:var(--bg);color:var(--text);font:13.5px/1.45 var(--font);font-feature-settings:"tnum" 1, "cv11" 1;-webkit-font-smoothing:antialiased}:focus{outline:none}:focus-visible{box-shadow:var(--focus)}::selection{background:var(--accent-weak)}.app{grid-template:"bar bar""side main"1fr/360px 1fr;height:100%;display:grid}button,select,input{font:inherit;color:inherit;border-radius:var(--radius-sm);background:var(--surface);border:1px solid #0000;min-height:30px;padding:4px 10px;transition:background .12s,border-color .12s,box-shadow .12s,color .12s}input[type=text],input[type=search],input:not([type]),select{background:var(--panel);border-color:var(--border)}input[type=text]:hover,input[type=search]:hover,input:not([type]):hover,select:hover{border-color:var(--border-strong)}input[type=text]:focus,input[type=search]:focus,input:not([type]):focus,select:focus{border-color:var(--accent);box-shadow:var(--focus)}input::placeholder{color:color-mix(in srgb, var(--muted) 70%, transparent)}input[type=checkbox]{width:15px;height:15px;min-height:0;accent-color:var(--accent);padding:0}input[type=file]{display:none}select{padding-right:6px}button{cursor:pointer;font-weight:500}button:hover:not(:disabled){background:var(--surface-hover)}button:active:not(:disabled){transform:translateY(.5px)}button:disabled{opacity:.4;cursor:default}button.active{background:var(--accent);color:var(--accent-contrast)}button.icon{min-height:24px;color:var(--muted);background:0 0;padding:2px 7px}button.icon:hover:not(:disabled){background:var(--accent-weak);color:var(--danger)}button.primary{background:var(--accent);color:var(--accent-contrast);width:100%;box-shadow:var(--shadow-sm);padding:7px 12px;font-weight:600}button.primary:hover:not(:disabled){background:color-mix(in srgb, var(--accent) 88%, black)}kbd{font:600 10.5px/1 var(--font);background:color-mix(in srgb, currentColor 12%, transparent);color:inherit;opacity:.75;border-radius:5px;padding:2px 5px}.icon-svg{flex:none;display:block}.toolbar{background:var(--panel);border-bottom:1px solid var(--border);box-shadow:var(--shadow-sm);z-index:5;flex-wrap:wrap;grid-area:bar;align-items:center;gap:8px;padding:10px 16px;display:flex;position:relative}.brand{letter-spacing:-.01em;white-space:nowrap;align-items:center;gap:9px;margin-right:6px;font-size:14px;display:flex}.logo{display:block}.tb-sep{background:var(--border);align-self:stretch;width:1px;margin:4px 2px}.tb-right{flex-wrap:wrap;align-items:center;gap:8px;margin-left:auto;display:flex}.group{align-items:center;gap:4px;display:flex}.group.tabs{background:var(--surface);border-radius:var(--radius);gap:2px;padding:3px}.group.tabs button{min-height:26px;color:var(--muted);background:0 0;border-radius:8px;padding:3px 12px}.group.tabs button:hover:not(:disabled){color:var(--text);background:0 0}.group.tabs button.active{background:var(--panel);color:var(--text);box-shadow:var(--shadow-sm)}.group.tools{gap:3px}.tool-btn{color:var(--text);background:0 0;align-items:center;gap:7px;padding:4px 10px 4px 9px;display:inline-flex}.tool-btn:hover:not(:disabled){background:var(--surface)}.tool-btn.active{background:var(--accent-weak);color:var(--accent);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--accent) 45%, transparent)}.tool-btn.active:hover{background:var(--accent-weak)}.tool-options{align-items:center;gap:6px;display:flex}.tool-options:empty{display:none}.tool-options select{max-width:240px}.group.icons{gap:2px}.icon-btn{background:0 0;justify-content:center;align-items:center;width:32px;padding:0;display:inline-flex}.icon-btn:hover:not(:disabled){background:var(--surface)}.toggle{cursor:pointer;color:var(--muted);align-items:center;gap:7px;padding:0 4px;font-size:13px;display:inline-flex}.toggle:hover{color:var(--text)}.status{color:var(--muted);white-space:nowrap;align-items:center;gap:7px;padding:0 4px;font-size:12px;display:inline-flex}.status .dot{background:var(--ok);width:7px;height:7px;box-shadow:0 0 0 3px color-mix(in srgb, var(--ok) 22%, transparent);border-radius:50%}.menu{position:relative}.menu summary{cursor:pointer;border-radius:var(--radius-sm);background:var(--surface);-webkit-user-select:none;user-select:none;align-items:center;gap:7px;padding:5px 12px;font-weight:500;list-style:none;display:inline-flex}.menu summary:hover{background:var(--surface-hover)}.menu summary::-webkit-details-marker{display:none}.menu[open] summary{background:var(--accent-weak);color:var(--accent)}.menu-list{z-index:30;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);min-width:300px;box-shadow:var(--shadow);flex-direction:column;gap:2px;padding:6px;display:flex;position:absolute;top:calc(100% + 6px);left:auto;right:0}.menu-list button{text-align:left;background:0 0;padding:7px 10px;font-weight:400}.menu-list button:hover{background:var(--surface)}.sidebar{background:var(--bg);border-right:1px solid var(--border);scrollbar-width:thin;grid-area:side;overflow-y:auto}.sidebar-body{flex-direction:column;gap:12px;padding:14px;display:flex}.sec{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.sec>summary{cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:var(--radius-lg);justify-content:space-between;align-items:center;gap:8px;padding:11px 14px;list-style:none;display:flex}.sec>summary::-webkit-details-marker{display:none}.sec>summary:hover h2{color:var(--text)}.sec[open]>summary{padding-bottom:8px}.sec .chev{border-right:1.8px solid var(--muted);border-bottom:1.8px solid var(--muted);width:8px;height:8px;margin-right:3px;transition:transform .15s;transform:rotate(-45deg)}.sec[open] .chev{margin-top:-3px;transform:rotate(45deg)}.sec-body{padding:0 14px 14px}h2{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0 0 8px;font-size:11.5px;font-weight:700}.sec h2{margin:0}.row{align-items:center;gap:8px;margin-bottom:7px;display:flex}.row>span{width:108px;color:var(--muted);flex:none;font-size:13px}.row input[type=text]{flex:1;min-width:0}.muted{color:var(--muted)}.item{border:1px solid var(--border);border-radius:var(--radius);background:var(--panel-2);cursor:pointer;flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:7px;padding:8px;transition:border-color .12s,background .12s;display:flex}.item:hover{border-color:var(--border-strong)}.item.selected{border-color:var(--accent);background:var(--accent-weak);box-shadow:none}.item input[type=text]:not(.num){flex:1;min-width:0}.item:is(.opening-card,.feed,.seg-card,.lamp,.consumer-card,.box){grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.item:is(.opening-card,.feed,.seg-card,.lamp,.consumer-card,.box) .item-head{grid-column:1/-1;align-items:center;gap:6px;display:flex}.item:is(.opening-card,.feed,.seg-card,.lamp,.consumer-card,.box) .item-head select{flex:120px;min-width:0}.item:is(.opening-card,.feed,.seg-card,.lamp,.consumer-card,.box) .sub{flex-direction:column;align-items:stretch;gap:3px;min-width:0;display:flex}.item:is(.opening-card,.feed,.seg-card,.lamp,.consumer-card,.box) .sub>span:first-child{font-size:11px}.item:is(.opening-card,.feed,.seg-card,.lamp,.consumer-card,.box) .sub .num,.item:is(.opening-card,.feed,.seg-card,.lamp,.consumer-card,.box) .sub select{width:100%;min-width:0}.item:is(.opening-card,.feed,.seg-card,.lamp,.consumer-card,.box) .sub:has(select){grid-column:span 2}.item .wallref{flex:1;font-size:12px}.item .sub{color:var(--muted);align-items:center;gap:6px;font-size:12px;display:flex}.num{text-align:right;font-variant-numeric:tabular-nums;width:78px}.unit{color:var(--muted);font-size:12px}.add select{text-overflow:ellipsis;flex:1;min-width:0}.canvas{grid-area:main;min-width:0;min-height:0}.room3d{width:100%;height:100%;position:relative;overflow:hidden}.room3d canvas{display:block}.room3d-controls{align-items:flex-end;gap:12px;display:flex;position:absolute;bottom:16px;right:16px}.room3d-zoom{flex-direction:column;gap:6px;display:flex}.room3d-zoom button{touch-action:none;-webkit-user-select:none;user-select:none;background:var(--panel);width:40px;height:40px;padding:0;font-size:20px;line-height:1}.joystick{background:var(--panel);border:1px solid var(--border);touch-action:none;-webkit-user-select:none;user-select:none;cursor:grab;opacity:.9;border-radius:50%;justify-content:center;align-items:center;width:96px;height:96px;display:flex}.joystick-knob{background:var(--accent);pointer-events:none;border-radius:50%;width:40px;height:40px}.room3d-hint{pointer-events:none;position:absolute;bottom:8px;left:12px}.plan{background:var(--bg);width:100%;height:100%;position:relative;overflow:hidden}.plan-svg{touch-action:none;-webkit-user-select:none;user-select:none;display:block}.plan-svg.tool-select{cursor:grab}.plan-svg.tool-wall{cursor:crosshair}.plan-svg.tool-wall .wall-hit,.plan-svg.tool-wall .opening,.plan-svg.tool-wall .box,.plan-svg.tool-wall .seg,.plan-svg.tool-box .opening,.plan-svg.tool-box .box,.plan-svg.tool-box .seg,.plan-svg.tool-route .opening,.plan-svg.tool-route .box,.plan-svg.tool-route .seg,.plan-svg.tool-ceilingRoute .seg,.plan-svg.tool-ceilingRoute .seg-hit,.plan-svg.tool-ceilingRoute .lamp,.plan-svg.tool-lamp .seg-hit,.plan-svg.tool-lamp .lamp{pointer-events:none}.plan-svg.tool-route,.plan-svg.tool-ceilingRoute,.plan-svg.tool-lamp{cursor:crosshair}.plan-svg.tool-box{cursor:copy}.grid-minor{stroke:var(--grid-minor)}.grid-major{stroke:var(--grid-major)}.wall{stroke:var(--wall);stroke-width:6px;stroke-linecap:square;vector-effect:non-scaling-stroke;pointer-events:none}.wall.selected{stroke:var(--accent)}.wall-hit{stroke:#0000;stroke-width:16px;vector-effect:non-scaling-stroke;cursor:pointer}.opening{stroke-width:10px;stroke-linecap:butt;vector-effect:non-scaling-stroke;cursor:ew-resize;opacity:.85}.opening.selected{stroke-dasharray:6 3;opacity:1}.kind-door{stroke:var(--door)}.kind-window{stroke:var(--window)}.kind-radiator{stroke:var(--radiator)}.kind-other{stroke:var(--other)}.label{fill:var(--text);stroke:var(--bg);paint-order:stroke;pointer-events:none}.handle{fill:var(--bg);stroke:var(--accent);cursor:move}.preview{stroke:var(--accent);stroke-width:3px;stroke-dasharray:8 5;vector-effect:non-scaling-stroke;pointer-events:none}.cursor-dot{fill:var(--accent);pointer-events:none}.plan-hint,.plan-zoom{color:var(--muted);background:color-mix(in srgb, var(--panel) 85%, transparent);pointer-events:none;border-radius:6px;padding:2px 8px;font-size:12px;position:absolute;left:10px}@media (width<=1000px){.brand strong{display:none}.toolbar{gap:6px;padding:8px 12px}.group.tabs button{padding:3px 9px}.tb-sep{display:none}}@media (width<=800px){.app{grid-template:"bar""main"1fr"side"40%/1fr}.sidebar{border-right:0;border-top:1px solid var(--border)}}.small{margin:0 0 6px;font-size:12px}.group-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--panel-2);margin-bottom:8px;padding:8px}.group-head{align-items:center;gap:6px;margin-bottom:6px;display:flex}.group-head input{flex:1;min-width:0;font-weight:600}.endpoint{border-top:1px dashed var(--border);flex-wrap:wrap;align-items:center;gap:4px;padding:4px 0;display:flex}.endpoint select{flex:45%;min-width:0}.endpoint .num{width:52px}.small-btn{color:var(--accent);background:0 0;margin-top:6px;font-size:12px}.small-btn:hover:not(:disabled){background:var(--accent-weak)!important}.box rect{fill:var(--panel);stroke:var(--accent);stroke-width:2px;vector-effect:non-scaling-stroke;cursor:ew-resize}.box text{fill:var(--text);pointer-events:none;font-weight:700}.box.selected rect{fill:var(--accent)}.box.selected text{fill:#fff}.item.invalid{border-color:var(--danger);background:color-mix(in srgb, var(--danger) 10%, transparent)}.quick-room{border:1px solid color-mix(in srgb, var(--accent) 30%, var(--border));border-radius:var(--radius);background:color-mix(in srgb, var(--accent) 6%, transparent);margin-bottom:12px;padding:12px}.qr-title{margin-bottom:8px;font-weight:600}.qr-fields{grid-template-columns:1fr auto 1fr;align-items:end;gap:8px;display:grid}.qr-fields label{color:var(--muted);flex-direction:column;gap:3px;min-width:0;font-size:12px;display:flex}.qr-x{color:var(--muted);padding-bottom:6px}.qr-input{position:relative}.qr-input .num{font-variant-numeric:tabular-nums;width:100%;padding-right:34px;font-size:15px}.qr-input em{color:var(--muted);pointer-events:none;font-size:12px;font-style:normal;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.qr-footer{flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px;display:flex}.qr-footer .small{flex:1;margin:0}.qr-preview{flex:none;width:48px;height:32px}.qr-preview rect{fill:none;stroke:var(--accent);stroke-width:2px;rx:2}.wall.muted{stroke:var(--grid-major);stroke-width:4px}:root{--seg:#0d9488;--lamp:#eab308}@media (prefers-color-scheme:dark){:root{--seg:#2dd4bf;--lamp:#facc15}}.seg{stroke:var(--seg);stroke-width:5px;stroke-linecap:butt;vector-effect:non-scaling-stroke;cursor:pointer;opacity:.9}.seg.ceil{stroke-width:8px}.seg.selected{stroke:var(--accent)}.seg.preview{stroke-dasharray:none;stroke-width:5px;opacity:.55;pointer-events:none}.seg.ceil.preview{stroke-width:8px}.seg-hit{stroke:#0000;stroke-width:16px;vector-effect:non-scaling-stroke;cursor:pointer}.lamp circle{fill:var(--lamp);stroke:var(--wall);stroke-width:2px;vector-effect:non-scaling-stroke;cursor:move}.lamp text{fill:#1c2330;pointer-events:none;font-weight:700}.lamp.selected circle{stroke:var(--accent);stroke-width:3px}.issue{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--panel-2);align-items:flex-start;gap:9px;margin-bottom:5px;padding:7px 9px;font-size:13px;display:flex}.issue.clickable{cursor:pointer}.issue.clickable:hover{border-color:var(--accent)}.issue .badge{text-align:center;color:#fff;border-radius:9px;flex:none;width:18px;height:18px;font-size:11px;font-weight:700;line-height:18px}.issue.error .badge{background:var(--danger)}.issue.error{border-color:color-mix(in srgb, var(--danger) 40%, var(--border))}.issue.warning .badge{background:var(--warn)}.issue.warning{border-color:color-mix(in srgb, var(--warn) 40%, var(--border))}.issue.info .badge{background:var(--muted)}.issue.info{color:var(--muted)}.notice{border:1px solid color-mix(in srgb, var(--warn) 50%, var(--border));border-radius:var(--radius);background:color-mix(in srgb, var(--warn) 12%, transparent);align-items:flex-start;gap:8px;margin:14px 14px 0;padding:10px 12px;font-size:13px;display:flex}.notice span{flex:1}.dims line{stroke:var(--muted);stroke-width:1px;vector-effect:non-scaling-stroke;pointer-events:none}.dim-text{fill:var(--text);stroke:var(--bg);paint-order:stroke;pointer-events:none;font-variant-numeric:tabular-nums}.dim-door{fill:var(--door)}.dim-window{fill:var(--window)}.dim-radiator{fill:var(--radiator)}.dim-other{fill:var(--other)}.dim-box{fill:#16a34a}.seg.purpose-power{stroke:#f59e0b}.seg.purpose-data{stroke:#3b82f6}.seg.purpose-mixed{stroke:var(--seg)}.seg.has-color:not(.selected){stroke:var(--run-color)}.feed.has-color polygon{fill:var(--feed-color)}.color-field{flex-wrap:wrap;align-items:center;gap:4px;display:inline-flex}button.swatch{box-sizing:border-box;border:2px solid #0000;border-radius:50%;flex:none;align-self:center;width:18px;min-width:18px;height:18px;min-height:18px;padding:0;line-height:0}.swatch.active{border-color:var(--text)}.color-field input[type=color]{width:32px;height:24px;padding:0}.seg.selected{stroke:var(--accent);stroke-width:7px}.plan-svg.tool-feed .opening,.plan-svg.tool-feed .box,.plan-svg.tool-feed .seg,.plan-svg.tool-feed .feed{pointer-events:none}.plan-svg.tool-feed{cursor:copy}.plan-svg.tool-wall .feed,.plan-svg.tool-box .feed,.plan-svg.tool-route .feed{pointer-events:none}.feed polygon{stroke:var(--wall);stroke-width:2px;vector-effect:non-scaling-stroke;cursor:ew-resize}.feed-power polygon{fill:#f59e0b}.feed-data polygon{fill:#3b82f6}.feed-coax polygon{fill:#16a34a}.feed text{fill:#fff;pointer-events:none;font-weight:700}.feed.selected polygon{stroke:var(--accent);stroke-width:3px}.endpoint select.color{flex:none;width:76px}.bom-group h3{color:var(--muted);margin:10px 0 4px;font-size:12px}.bom-line{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--panel-2);margin-bottom:5px;padding:6px 8px;font-size:13px}.bom-line.flagged{border-color:color-mix(in srgb, var(--warn) 55%, var(--border))}.bom-line summary{cursor:pointer;align-items:baseline;gap:8px;list-style-position:outside;display:flex}.bom-line .qty{font-variant-numeric:tabular-nums;flex:none;min-width:52px;font-weight:600}.bom-line .name{flex:1;min-width:0}.bom-line .pn{flex:none;font-size:11px}.bom-line .flag{color:#fff;text-align:center;background:#d97706;border-radius:8px;flex:none;width:16px;height:16px;font-size:11px;font-weight:700;line-height:16px}.derivation{color:var(--muted);margin:6px 0 2px 16px;padding:0;font-size:12px}.derivation .flag-text{color:#d97706}.bom-assumptions{margin-top:10px;font-size:12px}.bom-assumptions summary{cursor:pointer;color:var(--muted)}.bom-assumptions ul{margin:6px 0 0 16px;padding:0}.app.view-bom{grid-template:"bar""main"1fr/1fr}.bom-main{background:var(--bg);overflow:auto}.bom-view{max-width:1000px;margin:0 auto;padding:20px 16px 40px}.bom-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;display:flex}.bom-head h1{margin:0 0 2px;font-size:22px}.bom-head p{margin:0}.bom-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.bom-warning{border:1px solid color-mix(in srgb, var(--warn) 50%, var(--border));border-radius:var(--radius);background:color-mix(in srgb, var(--warn) 12%, transparent);padding:10px 12px;font-size:13px}.bom-table{border-collapse:collapse;width:100%;margin-top:12px;font-size:14px}.bom-table th,.bom-table td{text-align:left;border-bottom:1px solid var(--border);vertical-align:top;padding:6px 8px}.bom-table thead th{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-size:12px}.bom-table .num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:600}.bom-table .pn{white-space:nowrap;font-variant-numeric:tabular-nums;color:var(--muted)}.bom-table .notes{color:#d97706;font-size:12px}.bom-table tr.flagged td:nth-child(2){font-weight:600}.bom-cat th{color:var(--accent);border-bottom:2px solid var(--border);padding-top:14px;font-size:13px}.bom-derivation{display:none}.bom-view.with-derivation .bom-derivation{display:table-row}.bom-derivation td{color:var(--muted);border-bottom:1px dashed var(--border);font-size:12px}.bom-derivation ul{margin:0;padding-left:16px}.bom-assumptions-list{color:var(--muted);font-size:13px}@media print{.toolbar,.sidebar,.no-print{display:none!important}html,body,#app{color:#000;background:#fff;height:auto}.app,.app.view-bom{height:auto;display:block}.bom-main{background:#fff;overflow:visible}.bom-view{max-width:none;padding:0}.bom-table th,.bom-table td{border-color:#bbb}.bom-table .notes,.bom-table .pn,.bom-derivation td,.bom-assumptions-list,.muted{color:#333}.bom-cat th{color:#000}.bom-table tr{break-inside:avoid}}.catalog-view{max-width:1000px;margin:0 auto;padding:20px 16px 40px}.catalog-view h1{margin:0 0 4px;font-size:22px}.catalog-view .summary{margin-right:auto;font-size:14px}.catalog-view .bom-actions{margin:8px 0}.value-cell{width:100%;min-width:120px}.seg.ceil{stroke-linecap:round}.direct-link{stroke-width:2px;stroke-linecap:round;vector-effect:non-scaling-stroke;pointer-events:none;opacity:.9}.direct-link.feed-power{stroke:#f59e0b}.direct-link.feed-data{stroke:#3b82f6}.direct-link.feed-coax{stroke:#16a34a}.item .sub.direct{flex:100%}.item .sub.direct select{flex:1;min-width:0}.manual-row{grid-template-columns:2fr 1.2fr 84px 84px 1.5fr auto;align-items:center;gap:6px;margin-bottom:6px;display:grid}.manual-row input{width:100%;min-width:0}.manual-row .num{text-align:right}@media (width<=800px){.manual-row{grid-template-columns:1fr 1fr}}.bom-view,.catalog-view{max-width:1040px;padding:28px 24px 56px}.bom-head h1,.catalog-view h1{letter-spacing:-.02em;font-size:24px;font-weight:700}.bom-head{border-bottom:1px solid var(--border);margin-bottom:4px;padding-bottom:14px}.bom-actions{gap:10px}.bom-table{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-lg);border-collapse:separate;border-spacing:0;box-shadow:var(--shadow-sm);margin-top:16px;font-size:13.5px;overflow:hidden}.bom-table thead th{background:var(--panel-2);padding:10px 12px;font-size:11px;font-weight:700}.bom-table th,.bom-table td{padding:9px 12px}.bom-table tbody tr:last-child td{border-bottom:none}.bom-table tbody tr:not(.bom-cat):not(.bom-derivation):hover td{background:var(--panel-2)}.bom-table .notes{color:var(--warn)}.bom-cat th{background:var(--panel-2);text-transform:uppercase;letter-spacing:.06em;color:var(--accent);border-bottom:1px solid var(--border);border-top:1px solid var(--border);padding:8px 12px;font-size:11px}.bom-table tbody:first-of-type .bom-cat th{border-top:none}.bom-derivation td{background:var(--panel-2)}.bom-assumptions-list{line-height:1.6}.manual{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:16px 18px 18px}.manual h2{margin-bottom:6px}.manual-row{margin-bottom:7px}.catalog-view .bom-table td .value-cell{background:var(--panel-2)}.value-cell:focus{background:var(--panel)}.plan-hint,.plan-zoom{background:color-mix(in srgb, var(--panel) 82%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--border);box-shadow:var(--shadow-sm);border-radius:999px;padding:4px 12px;left:14px}.plan-hint{bottom:14px}.plan-zoom{top:14px}.plan{background:radial-gradient(circle at 50% 40%, var(--panel) 0%, var(--bg) 85%)}.room3d-hint{background:color-mix(in srgb, var(--panel) 82%, transparent);border:1px solid var(--border);border-radius:999px;padding:4px 12px;bottom:14px;left:14px}.handle{filter:drop-shadow(0 1px 2px #0000004d)}.tool-btn:not(.active) .tool-label{display:none}.tool-btn:not(.active){padding:4px 8px}.tool-btn:not(.active) kbd{display:none}.tool-btn:not(.active):hover kbd{display:inline}@media (width<=1650px){.status-text{display:none}}@media (width<=800px){.app{grid-template:"bar""main"1fr"side"42%/1fr}.toolbar{gap:8px;padding:8px 12px}.tb-right{margin-left:0}.brand strong,.tb-sep{display:none}}.menu-list hr{border:none;border-top:1px solid var(--border);margin:4px 2px}.canvas{position:relative}.palette{z-index:4;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);flex-direction:column;gap:2px;padding:4px;display:flex;position:absolute;top:44px;left:10px}.palette .tool-btn{justify-content:center;gap:0;width:40px;height:36px;padding:0;position:relative}.palette .tool-btn .tool-label{display:none}.palette .tool-btn kbd{opacity:.55;padding:1px 3px;font-size:9px;display:inline;position:absolute;bottom:2px;right:2px}.canvas>.tool-options{z-index:4;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);width:fit-content;max-width:calc(100% - 20px);box-shadow:var(--shadow-sm);margin-inline:auto;padding:4px 6px;position:absolute;top:10px;left:0;right:0}.color-pop{position:relative}.color-pop summary{cursor:pointer;border:1px solid var(--border);border-radius:var(--radius-sm);padding:3px;list-style:none;display:inline-flex}.color-pop summary::-webkit-details-marker{display:none}.color-pop[open] summary{border-color:var(--accent)}.swatch.current{border-radius:50%;width:18px;height:18px;display:block}.color-pop-list{z-index:30;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);align-items:center;gap:6px;padding:8px;display:flex;position:absolute;top:calc(100% + 4px);left:0}.ref,.ref *{pointer-events:none!important}.opening.ref,.feed.ref,.seg.ref{opacity:.4}.feed-label{fill:var(--text);stroke:var(--bg);stroke-width:3px;paint-order:stroke;stroke-linejoin:round;pointer-events:none;-webkit-user-select:none;user-select:none}.feed-label.ref{opacity:.6}.feed-label-bg{fill:var(--bg);stroke:var(--border);stroke-width:1px;vector-effect:non-scaling-stroke;pointer-events:none}g.ref{opacity:.6}.annot.note rect{fill:color-mix(in srgb, var(--accent) 12%, var(--panel));stroke:var(--accent);stroke-width:2px;stroke-dasharray:8 4;vector-effect:non-scaling-stroke;cursor:move}.annot.note text{fill:var(--text);pointer-events:none;font-weight:600}.annot.note.selected rect{stroke-dasharray:none;stroke-width:3px}.annot-line{stroke:var(--accent);stroke-width:3px;vector-effect:non-scaling-stroke;pointer-events:none}.annot-head{fill:var(--accent);pointer-events:none}.annot-hit{stroke:#0000;stroke-width:14px;vector-effect:non-scaling-stroke;cursor:move}.annot.arrow.selected .annot-line{stroke-width:4px}.rot-stem{stroke:var(--accent);pointer-events:none}.handle.rot{cursor:grab}.plan-svg.tool-note .annot,.plan-svg.tool-arrow .annot,.plan-svg.tool-wall .annot,.plan-svg.tool-box .annot,.plan-svg.tool-route .annot,.plan-svg.tool-feed .annot{pointer-events:none}.plan-svg.tool-note,.plan-svg.tool-arrow{cursor:crosshair}.furn rect,.furn circle,.furn line{fill:color-mix(in srgb, var(--muted) 14%, var(--panel));stroke:var(--muted);stroke-width:1.5px;vector-effect:non-scaling-stroke;cursor:move}.furn .furn-inner{fill:color-mix(in srgb, var(--muted) 28%, var(--panel))}.furn .furn-label{fill:var(--muted);stroke:none;pointer-events:none;font-weight:600}.furn.selected rect,.furn.selected circle{stroke:var(--accent);stroke-width:3px}.plan-svg:not(.tool-select) .furn{pointer-events:none}.furn-add{flex-wrap:wrap;gap:6px;margin:4px 0 8px;display:flex}.furn-add button{min-height:0;padding:3px 10px;font-size:12px}.note-text{resize:vertical;min-width:0;font:inherit;flex:100%}.door-swing line,.door-swing path{fill:none;stroke:var(--door);stroke-width:2px;vector-effect:non-scaling-stroke;pointer-events:none}.door-swing path{stroke-dasharray:5 4}.lamp-ref circle{fill:none;stroke:var(--lamp);stroke-width:2px;stroke-dasharray:4 3;vector-effect:non-scaling-stroke}.lamp-ref text{fill:var(--muted);font-weight:700}.lamp-ref{pointer-events:none}.seg.ceil-ref{stroke-width:4px;stroke-dasharray:10 6;stroke-linecap:butt;opacity:.75;pointer-events:none}.item.feed .item-head input[type=text]{flex:1;min-width:0}.item.feed .feed-wall{grid-column:1/-1;margin-top:-2px;font-size:12px}.item.feed .sub .color-field{min-height:30px}.item:is(.seg-card,.lamp,.consumer-card,.box)>select{grid-column:1/-1;min-width:0}.item.seg-card .item-head select{flex:1 1 0}.item.seg-card .wallref{grid-column:1/-1;margin-top:-2px;font-size:12px}.item.seg-card .sub.riser{grid-column:1/-1}.item:is(.lamp,.consumer-card) .item-head input[type=text]{flex:1;min-width:0}.item.consumer-card .item-head select{flex:0 auto}.item.consumer-card .wallref{grid-column:1/-1;margin-top:-2px;font-size:12px}.item.consumer-card .sub.direct,.item.consumer-card .sub.full{grid-column:1/-1}.item.consumer-card .circuit-cable{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--muted);text-overflow:ellipsis;white-space:nowrap;padding:5px 8px;font-size:12px;display:block;overflow:hidden}.item.seg-card .sub .color-field{min-height:30px}.issue-body{flex-direction:column;flex:1;gap:6px;min-width:0;display:flex}.issue-related{flex-wrap:wrap;gap:4px;display:flex}.issue-related .chip{background:var(--surface);border-radius:999px;min-height:0;padding:1px 8px;font-size:12px}.issue-actions{flex-wrap:wrap;gap:6px;display:flex}.issue-actions button{min-height:0;padding:3px 10px;font-size:12px}.item.box .item-head select{flex:1 1 0}.item.box .wallref{grid-column:1/-1;margin-top:-2px;font-size:12px}.item.box .sub.direct{grid-column:1/-1}.item select{text-overflow:ellipsis;max-width:100%}.own-trunking{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);margin:14px 0 18px;padding:16px 18px 18px}.own-trunking h2{margin-bottom:4px}.own-form{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));align-items:end;gap:10px;margin-top:10px;display:grid}.own-form label{color:var(--muted);flex-direction:column;gap:4px;min-width:0;font-size:12px;display:flex}.own-form label.wide{grid-column:1/-1}.own-form input{width:100%;color:var(--text);font-size:13.5px}.own-form button.primary{grid-column:1/-1;justify-self:start;width:auto}.own-list{flex-direction:column;gap:6px;margin:12px 0 0;padding:0;list-style:none;display:flex}.own-list li{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--panel-2);justify-content:space-between;align-items:center;gap:10px;padding:8px 10px;display:flex}.box-search{align-items:center;gap:6px;margin:4px 0;display:flex}.box-search input{flex:1;min-width:0}.toolbar .box-search{margin:0}.toolbar .box-search input{flex:none;width:150px}.picker{flex:1 1 0;min-width:0;position:relative}.picker-btn{text-align:left;background:var(--panel);border-color:var(--border);align-items:center;width:100%;min-width:0;font-weight:400;display:flex}.picker-btn span{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.picker-btn:after{content:"";border-right:1.6px solid var(--muted);border-bottom:1.6px solid var(--muted);flex:none;width:6px;height:6px;margin-left:6px;transform:rotate(45deg)translateY(-2px)}.picker-pop{z-index:40;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);flex-direction:column;gap:6px;padding:8px;display:flex;position:fixed}.picker-pop input{flex:none}.picker-list{scrollbar-width:thin;min-height:0;overflow-y:auto}.picker-group{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);padding:6px 8px 2px;font-size:11px;font-weight:700}.picker-item{text-align:left;white-space:normal;background:0 0;border-color:#0000;width:100%;padding:6px 8px;font-weight:400;display:block}.picker-item:hover:not(:disabled){background:var(--surface)}.picker-item.active{background:var(--accent-weak);color:var(--accent)}.item.box .item-head .picker{flex:1 1 0}.group-card .endpoint{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 8px;padding:8px 0;display:grid}.group-card .endpoint .item-head{grid-column:1/-1;align-items:center;gap:6px;display:flex}.group-card .endpoint .item-head select{flex:1 1 0;min-width:0}.group-card .endpoint .sub{flex-direction:column;align-items:stretch;gap:3px;min-width:0;display:flex}.group-card .endpoint .sub>span:first-child{color:var(--muted);font-size:11px}.group-card .endpoint .sub.full{grid-column:1/-1}.group-card .endpoint .sub select,.group-card .endpoint .sub .num{width:100%;min-width:0}.group-card .endpoint select.color{flex:none;width:100%}.item.furn-item{grid-template-columns:minmax(0,1fr);gap:8px;display:grid}.item.furn-item .furn-row{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.item.furn-item .item-head{grid-column:1/-1;align-items:center;gap:6px;display:flex}.item.furn-item .furn-name{flex:1;font-size:13px;font-weight:600}.item.furn-item .sub{flex-direction:column;align-items:stretch;gap:3px;min-width:0;display:flex}.item.furn-item .sub>span:first-child{font-size:11px}.item.furn-item .sub .num{width:100%;min-width:0}.item.furn-item>button{white-space:nowrap;align-self:end;min-height:30px;padding:3px 6px;font-size:12px}.catalog-manager .cat-tabs{flex-wrap:wrap;gap:6px;margin:8px 0 12px;display:flex}.catalog-manager .cat-tabs button{border-radius:99px}.catalog-manager .cat-tabs button.active{background:var(--accent);color:var(--accent-contrast);border-color:var(--accent)}.catalog-manager .cat-toolbar,.catalog-manager .cat-new{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:10px;display:flex}.catalog-manager .cat-toolbar input[type=search]{flex:220px;min-width:0}.catalog-manager .chip{border:1px solid var(--border-strong);cursor:pointer;border-radius:99px;align-items:center;gap:4px;padding:3px 10px;font-size:13px;display:inline-flex}.catalog-manager .chip.on{background:var(--accent-weak);border-color:var(--accent)}.catalog-manager .cat-body{align-items:flex-start;gap:16px;display:flex}.catalog-manager .cat-table-wrap{flex:auto;min-width:0;overflow-x:auto}.catalog-manager .cat-table tbody tr{cursor:pointer}.catalog-manager .cat-table tbody tr.selected{background:var(--accent-weak)}.catalog-manager .badge{background:var(--surface);color:var(--muted);border-radius:99px;padding:1px 6px;font-size:11px}.catalog-manager .badge.used{background:var(--accent-weak);color:var(--accent)}.todo-mark{color:var(--warn)}.item-editor{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);flex:0 0 320px;gap:8px;max-width:100%;padding:12px;display:grid;position:sticky;top:8px}.item-editor header{justify-content:space-between;gap:8px;display:flex}.item-editor h2{margin:0;font-size:16px}.item-field{gap:2px;font-size:13px;display:grid}.item-actions{flex-wrap:wrap;gap:8px;display:flex}@media (width<=800px){.catalog-manager .cat-body{flex-direction:column}.item-editor{box-sizing:border-box;flex-basis:auto;order:-1;width:100%;position:static}}.quote-table .unit-input{width:72px}.quote-table .num{white-space:nowrap}.quote-table .suggest{border:1px dashed var(--border-strong);color:var(--muted);cursor:pointer;background:0 0;border-radius:99px;margin-top:2px;padding:1px 6px;font-size:11px;display:block}.warn-text{color:var(--warn)}.quote-totals{gap:6px;max-width:420px;margin:16px 0 0 auto;display:grid}.quote-totals .totals-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.quote-totals .gross{border-top:1px solid var(--border-strong);padding-top:6px;font-size:18px}.quote-totals .labour-label{width:180px}@media print{.quote-table input,.quote-totals input{background:0 0;border:none;padding:0}}.item.furn-item .furn-name{flex:1;min-width:0;font-weight:600}.item.furn-item>button{grid-column:1/-1}.item.furn-item.is-hidden .furn-row,.item.furn-item.is-hidden>button{opacity:.45}.furn-visible{cursor:pointer;align-items:center;padding:0 2px;display:inline-flex}.plan-svg.tool-measure{cursor:crosshair}.plan-svg.tool-measure .wall-hit,.plan-svg.tool-measure .opening,.plan-svg.tool-measure .box,.plan-svg.tool-measure .seg,.plan-svg.tool-measure .seg-hit,.plan-svg.tool-measure .feed,.plan-svg.tool-measure .lamp,.plan-svg.tool-measure .annot,.plan-svg.tool-measure .furn{pointer-events:none}.ruler line{stroke:var(--accent);stroke-width:2px;stroke-dasharray:6 4;vector-effect:non-scaling-stroke}.ruler circle{fill:var(--accent)}.ruler text{fill:var(--text);stroke:var(--bg);paint-order:stroke;font-variant-numeric:tabular-nums;text-anchor:middle;pointer-events:none;font-weight:700}.ruler .ruler-sub{fill:var(--muted);font-weight:500}.room3d-legend{background:color-mix(in srgb, var(--panel) 82%, transparent);border:1px solid var(--border);pointer-events:none;border-radius:8px;flex-direction:column;gap:4px;padding:8px 10px;font-size:12px;display:flex;position:absolute;top:12px;left:14px}.room3d-legend span{align-items:center;gap:6px;display:flex}.room3d-legend i{border-radius:3px;width:12px;height:12px;display:inline-block}.box-block{border-left:3px solid var(--accent-weak);margin-top:8px;padding-left:8px}.box-head{overflow-wrap:anywhere;gap:1px;margin-bottom:4px;font-size:13px;display:grid}.bom-view{max-width:1200px}.bom-head{align-items:center}.bom-actions{justify-content:flex-end}.bom-actions .primary-action{background:var(--accent);color:var(--accent-contrast);font-weight:600}.bom-actions .primary-action:hover:not(:disabled){background:color-mix(in srgb, var(--accent) 88%, black)}.export-opts{position:relative}.export-opts summary{cursor:pointer;border-radius:var(--radius-sm);background:var(--surface);color:var(--muted);-webkit-user-select:none;user-select:none;padding:5px 12px;list-style:none}.export-opts summary::-webkit-details-marker{display:none}.export-opts summary:hover,.export-opts[open] summary{background:var(--surface-hover);color:var(--text)}.export-opts-pop{z-index:20;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);min-width:260px;box-shadow:var(--shadow);flex-direction:column;gap:8px;padding:12px 14px;display:flex;position:absolute;top:calc(100% + 6px);right:0}.bom-summary{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px;margin:14px 0 4px;display:grid}.bom-summary .stat{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);flex-direction:column;gap:2px;padding:10px 14px;display:flex}.bom-summary .stat span{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-size:11px;font-weight:700}.bom-summary .stat strong{font-variant-numeric:tabular-nums;letter-spacing:-.01em;font-size:18px}.bom-summary .stat.warn{border-color:color-mix(in srgb, var(--warn) 55%, var(--border))}.bom-summary .stat.warn strong{color:var(--warn)}.bom-summary .stat.strong{background:var(--accent-weak);border-color:color-mix(in srgb, var(--accent) 40%, var(--border))}.bom-scroll{border-radius:var(--radius-lg);scrollbar-width:thin;margin-top:16px;overflow-x:auto}.bom-scroll .bom-table{min-width:760px;margin-top:0}.bom-table .name-cell{min-width:200px}.bom-table .name-cell .notes{margin-top:3px;font-size:12px;font-weight:400;line-height:1.35}.bom-table .quote-table input,.quote-table input{min-width:0}.quote-table td input.num,.quote-table .num input{text-align:right;width:84px}.bom-table tbody tr:not(.bom-cat):not(.bom-derivation):nth-child(odd) td{background:color-mix(in srgb, var(--panel-2) 45%, transparent)}.bom-cat th.num{color:var(--muted);letter-spacing:0;text-transform:none;font-size:12px;font-weight:600}.bom-cat th .muted{text-transform:none;letter-spacing:0;font-weight:400}.quote-table tr.unpriced td:nth-child(7){color:var(--warn)}.quote-totals{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);max-width:440px;margin-top:16px;padding:14px 18px}.quote-totals .totals-row span{color:var(--muted)}.quote-totals .totals-row strong{color:var(--text);font-variant-numeric:tabular-nums}.quote-totals .gross span,.quote-totals .gross strong{color:var(--text)}.quote-totals .gross strong{font-size:20px}.quote-totals .bom-warning{margin:4px 0 0}.quote-totals input{text-align:right;max-width:120px}.quote-totals .labour-label{text-align:left;max-width:220px}.manual{margin-top:28px}.manual h2{text-transform:none;letter-spacing:-.01em;color:var(--text);margin:0 0 6px;font-size:16px}.manual h3{color:var(--text);margin:20px 0 8px;font-size:13px}.manual-row.manual-labels{margin-bottom:4px}.manual-row.manual-labels span{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-size:11px;font-weight:700}.manual>button{margin-top:4px}.bom-assumptions-box{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-lg);margin-top:24px;padding:10px 16px}.bom-assumptions-box summary{cursor:pointer;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);-webkit-user-select:none;user-select:none;font-size:12px;font-weight:700}.bom-assumptions-box[open] summary{margin-bottom:8px}.bom-assumptions-box ul{margin:0;padding-left:18px}@media (width<=800px){.bom-view,.catalog-view{padding:18px 12px 40px}.bom-head{align-items:flex-start}.bom-actions{justify-content:flex-start}.export-opts-pop{left:0;right:auto}.quote-totals{max-width:none}}@media print{.bom-scroll{border-radius:0;overflow:visible}.bom-scroll .bom-table{min-width:0}.bom-summary,.bom-assumptions-box summary{display:none}.bom-assumptions-box{border:none;padding:0}.bom-assumptions-box>ul{display:block}.bom-table tbody tr:not(.bom-cat):not(.bom-derivation):nth-child(odd) td{background:0 0}}.item.box .sub.full.fitting{flex:100%;gap:6px;width:100%;min-width:0;display:grid;grid-column:1/-1!important}.item.box .fitting .group-items .endpoint{margin-top:6px}.catalog-manager .cat-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.catalog-manager .cat-head h1{margin:0}.catalog-manager .cat-add{background:var(--accent);width:auto;color:var(--accent-contrast);border-color:#0000;flex:none;padding:6px 14px;font-weight:600}.catalog-manager .cat-add:hover:not(:disabled){background:color-mix(in srgb, var(--accent) 88%, black)}.catalog-manager button.primary{width:auto}.catalog-manager .cat-tabs{border-bottom:1px solid var(--border);scrollbar-width:none;flex-wrap:nowrap;gap:2px;margin:0 0 14px;overflow-x:auto}.catalog-manager .cat-tabs::-webkit-scrollbar{display:none}.catalog-manager .cat-tabs button{color:var(--muted);background:0 0;border:none;border-bottom:2px solid #0000;border-radius:0;flex:none;margin-bottom:-1px;padding:8px 12px;font-weight:500}.catalog-manager .cat-tabs button:hover:not(:disabled){color:var(--text);background:0 0}.catalog-manager .cat-tabs button.active{color:var(--text);border-bottom-color:var(--accent);background:0 0}.catalog-manager .cat-tabs button .muted{margin-left:4px;font-size:12px;font-weight:400}.catalog-manager .cat-toolbar{gap:10px;margin-bottom:12px}.catalog-manager .cat-toolbar input[type=search]{flex:240px}.catalog-manager .cat-sources{background:var(--surface);border-radius:var(--radius);gap:2px;padding:3px;display:inline-flex}.catalog-manager .chip{color:var(--muted);cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;border:1px solid #0000;border-radius:8px;align-items:center;padding:4px 11px;font-size:13px;display:inline-flex;position:relative}.catalog-manager .chip:hover{color:var(--text)}.catalog-manager .chip input{opacity:0;pointer-events:none;width:0;height:0;position:absolute}.catalog-manager .chip.on{color:var(--text);background:var(--panel);box-shadow:var(--shadow-sm);border-color:#0000}.catalog-manager .cat-toolbar>.chip{border-color:var(--border)}.catalog-manager .cat-toolbar>.chip.on{border-color:color-mix(in srgb, var(--accent) 45%, var(--border));background:var(--accent-weak);color:var(--accent);box-shadow:none}.catalog-manager .chip:focus-within{outline:2px solid color-mix(in srgb, var(--accent) 55%, transparent);outline-offset:1px}.catalog-manager .cat-new{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:10px 12px}.catalog-manager .cat-new input[type=text]{flex:200px;min-width:0}.catalog-manager .cat-new button:not(.cat-add){color:var(--muted);background:0 0;border-color:#0000}.catalog-manager .cat-new .muted.small{flex:100%}.catalog-manager .cat-table-wrap{border-radius:var(--radius-lg)}.catalog-manager .cat-table{margin-top:0}.catalog-manager .cat-table th,.catalog-manager .cat-table td{padding:7px 12px}.catalog-manager .cat-table td:nth-child(2),.catalog-manager .cat-table td:nth-child(3){white-space:nowrap;font-variant-numeric:tabular-nums;color:var(--muted)}.catalog-manager .cat-table td:nth-child(4){color:var(--muted);white-space:nowrap;font-size:12.5px}.catalog-manager .cat-table td:last-child{text-align:center;width:28px}.catalog-manager .cat-table tbody tr:focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 60%, transparent);outline-offset:-2px}.catalog-manager .cat-table tbody tr.selected td{background:var(--accent-weak)}.catalog-manager .badge{margin-left:6px}.todo-mark{font-size:12px}.item-editor{border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);flex-basis:340px;gap:12px;padding:16px}.item-editor header{align-items:flex-start}.item-editor h2{text-transform:none;letter-spacing:-.01em;color:var(--text);font-size:15px;font-weight:650;line-height:1.3}.item-editor header .muted{margin:3px 0 0}.item-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.item-fields .item-field{min-width:0;color:var(--muted);gap:4px;font-size:12px}.item-fields .item-field:nth-child(-n+2){grid-column:1/-1}.item-fields .item-field input{width:100%;min-width:0;color:var(--text);font-size:14px}.item-editor .item-actions{border-top:1px solid var(--border);gap:6px;padding-top:4px}.item-editor .item-actions button{background:0 0}.item-editor .item-actions button:hover:not(:disabled){background:var(--surface)}.item-editor .item-actions .danger{color:var(--danger);border-color:color-mix(in srgb, var(--danger) 35%, var(--border));margin-left:auto}.item.furn-item .furn-actions{gap:8px;display:flex}.item.furn-item .furn-actions button{white-space:nowrap;flex:1 1 0;align-self:auto;min-height:30px;padding:3px 6px;font-size:12px}.seg.proposal{stroke-dasharray:6 4;opacity:.75;pointer-events:none}.trunk-suggest{gap:6px;display:grid}.proposal-box{border:1px dashed var(--border-strong);border-radius:var(--radius);gap:6px;padding:8px;display:grid}.proposal-box .check{font-size:13px;display:block}.circuit-card{background:var(--panel-2);border:1px solid var(--border);border-left:4px solid var(--circuit-color,var(--border-strong));border-radius:var(--radius);gap:8px;margin-bottom:10px;padding:10px 10px 10px 14px;display:grid}.circuit-card.selected{border-color:var(--accent);border-left-color:var(--circuit-color,var(--accent));box-shadow:0 0 0 1px var(--accent)}.circuit-none{border-left-color:var(--border-strong)}.circuit-head{cursor:pointer;align-items:baseline;gap:8px;min-width:0;display:flex}.circuit-head strong{font-size:14px}.circuit-dot{background:var(--circuit-color,var(--muted));border-radius:50%;flex:none;align-self:center;width:9px;height:9px}.circuit-card>.sub{min-width:0;color:var(--muted);flex-direction:column;gap:3px;font-size:11px;display:flex}.circuit-card>.sub select,.circuit-card>select{width:100%;min-width:0}.circuit-details>summary{cursor:pointer;color:var(--muted);-webkit-user-select:none;user-select:none;font-size:12px}.circuit-details[open]>summary{margin-bottom:8px}.circuit-fields{background:0 0;border:none;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0;padding:0;display:grid}:is(.circuit-fields .item-head,.circuit-fields .feed-wall,.circuit-fields>.sub:has(.color-field)){grid-column:1/-1}.circuit-card .item.box{background:var(--panel);margin-bottom:0}.circuit-box-link{text-align:left;background:var(--panel);border-color:var(--border);width:100%;font-size:13px;font-weight:400}.circuit-box-link.selected{border-color:var(--accent);background:var(--accent-weak)}.circuit-cable{font-size:12px}.floating-editor{z-index:6;scrollbar-width:thin;background:var(--panel);border:1px solid var(--border-strong);border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:8px;position:fixed;overflow-y:auto}.floating-editor header{justify-content:space-between;align-items:center;padding:0 4px 6px;font-size:13px;display:flex}.floating-editor .item.box{box-shadow:none;background:0 0;border:none;margin-bottom:0;padding:0}.item.feed>.sub.trunk-suggest{grid-column:1/-1;min-width:0}.item.feed>.sub:has(.color-field){grid-column:1/-1}.item.feed .proposal-box{flex-direction:column;gap:6px;min-width:0;display:flex}.item.feed .proposal-box .check{align-items:flex-start;gap:8px;line-height:1.35;display:flex}.item.feed .proposal-box .check input{flex:none;margin-top:2px}.item.feed .proposal-box select{width:100%;min-width:0}.item.feed .proposal-box .item-actions button{width:auto}.item.furn-item .furn-connect{min-width:0;color:var(--muted);flex-direction:column;gap:3px;font-size:11px;display:flex}.item.furn-item .furn-connect select{width:100%;min-width:0;color:var(--text);font-size:14px}.seg.proposal.reused{stroke-dasharray:2 5;opacity:.9}.seg.mixed-second{stroke:var(--run-color);stroke-dasharray:9 9;pointer-events:none;opacity:1}.seg.mixed-second.selected{stroke:var(--run-color)}.ov-circuits{margin:14px 0}.ov-circuits h2{margin:0 0 8px;font-size:15px}.ov-circuit{border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);margin-bottom:8px;padding:8px 12px}.ov-circuit-none{border-color:color-mix(in srgb, var(--warn) 55%, var(--border))}.ov-circuit>summary{cursor:pointer;align-items:center;gap:8px;display:flex}.ov-circuit-swatch{border-radius:3px;flex:none;width:12px;height:12px}.ov-circuit-tag{background:var(--accent-weak);color:var(--accent);border-radius:9px;margin-left:4px;padding:1px 7px;font-size:11px}.ov-circuit-tag.direct{background:color-mix(in srgb, var(--warn) 18%, transparent);color:var(--warn)}.ov-circuit-table{border-collapse:collapse;width:100%;margin-top:6px;font-size:13px}.ov-circuit-table td{border-top:1px solid var(--border);vertical-align:top;padding:5px 6px}.ov-circuit-box{width:45%}.ov-circuit-total{border-top:2px solid var(--border-strong);flex-wrap:wrap;gap:16px;margin:6px 0 0;padding-top:6px;font-size:13px;display:flex}.ov-circuit-problems{color:var(--warn);margin:6px 0 0;font-size:12px}
