:root{font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#253546;background:#f5f7fa;font-size:14px;--line:#dce3e9;--blue:#148faa;--muted:#728192}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{background:white;border:1px solid var(--line);border-radius:5px;padding:8px 12px;color:inherit;cursor:pointer;white-space:nowrap}button:hover{border-color:#91b5e8;background:#f3f7ff}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--blue);outline-offset:2px}button:disabled{cursor:default;color:#98a4b0;background:transparent;border-color:transparent}button.primary{background:var(--blue);color:white;border-color:var(--blue)}header{height:70px;background:white;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:12px;padding:0 22px}.brand{display:flex;align-items:center;font-size:24px;font-weight:750;letter-spacing:-1px;white-space:nowrap}.brand>span:not(.mark){font-weight:400}.mark{width:31px;height:31px;display:grid;place-items:center;border:2px solid #2175e6;font-size:22px;font-style:italic;color:var(--blue);margin-right:10px;border-radius:6px}.brand small{letter-spacing:1px;font-size:10px;background:#eaf2ff;color:#3871ba;padding:5px;margin:0 22px 0 12px;border-radius:3px}.project{border-left:1px solid var(--line);padding-left:22px;flex:1;min-width:100px}.project strong,.project span{display:block}.project strong{font-size:14px}.project span{font-size:12px;color:var(--muted);margin-top:4px}nav{height:48px;display:flex;justify-content:space-between;align-items:center;padding:0 22px;background:#fff;border-bottom:1px solid var(--line)}.view-tabs{display:flex;gap:12px;height:100%}.view-tabs button{border:0;border-radius:0}.view-tabs button.active{border-bottom:2px solid var(--blue);color:var(--blue);font-weight:650}small{font-size:10px}.view-tabs small{margin-left:5px}.local{font-size:12px;color:var(--muted)}main{display:grid;grid-template-columns:218px minmax(400px,1fr) 260px;height:calc(100dvh - 145px);min-height:550px}.catalog,.inspector{padding:22px 15px;background:white;overflow:auto;position:relative}.catalog{border-right:1px solid var(--line)}.inspector{border-left:1px solid var(--line);display:flex;flex-direction:column}.section-title{font-size:11px;letter-spacing:1.4px;color:var(--muted);font-weight:700;display:flex;justify-content:space-between;margin-bottom:16px}h2{font-size:17px;font-weight:650;margin:0 0 16px}p{color:var(--muted);line-height:1.65}.catalog-item{width:100%;display:flex;gap:13px;align-items:center;border-color:transparent;text-align:left;padding:11px 8px;margin-bottom:3px}.catalog-item.active{background:#eaf7fa;border-color:#b8dce4;color:#157f98}.catalog-item svg{width:35px;height:28px;flex-shrink:0}.catalog-item small{display:block;color:var(--muted);margin-top:3px;font-size:11px}.source-card{border-top:1px solid var(--line);margin-top:24px;padding-top:22px}.source-card strong{display:block;overflow-wrap:anywhere;font-size:13px}.source-card p{font-size:12px}.source-card button{width:100%;font-size:12px;margin-bottom:10px}.source-card .section-title{margin-bottom:12px}.source-options{display:flex;flex-direction:column;gap:10px;margin:10px 0}.source-options label{display:flex;align-items:center;justify-content:space-between;font-size:12px;gap:10px}.source-options input{width:105px;accent-color:var(--blue)}.source-options select{width:60px}.catalog-foot{font-size:10px;letter-spacing:1px;color:#94a2b0;margin-top:30px}#scaleLabel{font-size:11px;color:var(--muted)}.workspace{display:flex;flex-direction:column;min-width:0}.toolbar{height:50px;display:flex;justify-content:space-between;align-items:center;padding:0 13px;background:#fafbfd;border-bottom:1px solid var(--line);gap:10px}.toolbar>div{display:flex;align-items:center;gap:5px}.toolbar button{border-color:transparent;background:transparent;padding:6px 8px;font-size:12px}.toolbar button.active{background:#e6eefb;color:#148faa}.divider{height:20px;width:1px;background:var(--line);margin:0 4px}#zoom{font-size:11px;min-width:38px;text-align:center}.canvas-wrap{flex:1;position:relative;min-height:240px;overflow:hidden;background:#edf3f5}canvas{position:absolute;width:100%;height:100%;touch-action:none}#empty{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;background:radial-gradient(#cdd7e3 1px,transparent 1px);background-size:20px 20px;pointer-events:none}#empty button{pointer-events:auto;margin:4px}#empty h1{font-weight:600;font-size:25px;margin:15px 0 0;letter-spacing:-.6px}#empty p{text-align:center;font-size:14px;margin-bottom:18px}.empty-symbol{font-size:38px;color:#148faa}.step{position:absolute;top:16px;left:50%;transform:translateX(-50%);background:#fffefcf2;border:1px solid var(--line);box-shadow:0 2px 8px #1f35450a;border-radius:5px;padding:9px 13px;font-size:12px;pointer-events:none;max-width:95%;text-align:center}.axis{position:absolute;bottom:17px;left:18px;font:11px monospace;color:#70859a;pointer-events:none}#coords{position:absolute;bottom:17px;right:18px;color:#728192;font:11px monospace;pointer-events:none}.schedule{height:224px;background:white;border-top:1px solid var(--line);display:flex;flex-direction:column}.schedule-head{display:flex;align-items:center;justify-content:space-between;padding:13px 17px;border-bottom:1px solid var(--line)}.schedule-head>div{display:flex;align-items:center;gap:12px}.schedule-head span{font-size:12px;color:var(--muted)}.schedule-head button{font-size:11px;padding:4px 8px}.table-scroll{overflow:auto;flex:1}table{width:100%;border-collapse:collapse;font-size:12px;text-align:left;white-space:nowrap}th{position:sticky;top:0;background:#f9fbfd;color:#8190a0;letter-spacing:.7px;font-size:10px;font-weight:600;padding:9px 16px}td{padding:10px 16px;border-bottom:1px solid #f0f3f6}tbody tr{cursor:pointer}tbody tr:hover,tbody tr.selected{background:#eaf7fa}td:first-child{font-weight:650;color:#196ac8}.table-note{font-size:10px;color:#8d99a5;padding:7px 16px;border-top:1px solid var(--line)}#noRows{text-align:center;font-size:12px}.guide{padding:0;list-style:none;counter-reset:steps;margin-top:30px}.guide li{counter-increment:steps;position:relative;padding-left:35px;margin-bottom:24px}.guide li:before{content:counter(steps);position:absolute;left:0;top:0;width:22px;height:22px;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;color:#8291a0;font-size:11px}.guide b{font-size:13px;font-weight:500}.guide span{display:block;font-size:11px;line-height:1.6;color:var(--muted);margin-top:4px}.inspector p{font-size:13px}.shortcuts{margin-top:auto;padding-top:28px;line-height:2.2;color:#8e9aa7;font-size:11px}.shortcuts span{color:#53687c;display:inline-block;min-width:70px}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}label.field{display:block;font-size:12px;color:#6c7b8b}.field input,.field select,#known{display:block;border:1px solid var(--line);background:#fff;border-radius:4px;padding:9px;width:100%;color:#24374b;margin:6px 0}.field.wide{grid-column:1/-1}.unit{font-size:11px;color:var(--muted)}.inspector hr{border:0;border-top:1px solid var(--line);margin:22px 0}.inspector .primary{width:100%;margin-top:20px}.badge{display:inline-block;font-size:11px;border-radius:3px;padding:4px 6px;background:#fff2d5;color:#98752d}.badge.ok{background:#e8f5ef;color:#388061}.property-sub{font-size:12px;color:var(--muted);margin:-7px 0 17px}.port{display:flex;justify-content:space-between;align-items:center;margin:9px 0;font-size:12px}.port button{padding:4px 8px;font-size:11px}.danger{color:#b05656}footer{height:27px;background:#fff;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 18px;color:#728192;font-size:10px}#toast{position:fixed;bottom:42px;left:50%;transform:translateX(-50%);background:#253d54;color:white;padding:12px 20px;border-radius:6px;font-size:13px;z-index:5;display:none;max-width:90%}dialog{border:1px solid var(--line);border-radius:9px;padding:26px;max-width:420px}dialog::backdrop{background:#182e4e55}dialog form>div{display:flex;justify-content:flex-end;gap:8px;margin-top:20px}dialog label{font-size:13px}#calNote{font-size:12px}@media(min-width:1600px){main{grid-template-columns:235px minmax(400px,1fr) 285px}.catalog,.inspector{padding:24px 20px}.schedule{height:250px}}@media(max-width:1100px){main{grid-template-columns:180px minmax(350px,1fr) 220px}.brand small,.local{display:none}.catalog,.inspector{padding:16px 10px}.catalog-item{gap:5px;font-size:12px}.project{padding-left:12px}header{padding:0 12px}}@media(max-width:800px){header{flex-wrap:wrap;height:auto;padding:12px;gap:8px}.brand{font-size:21px}.project{min-width:120px}header button{flex:1;font-size:12px}nav{padding:0 8px}.view-tabs{gap:0}.view-tabs button{font-size:12px}main{height:auto;min-height:0;grid-template-columns:140px minmax(0,1fr)}.catalog{grid-row:1/3}.workspace{height:700px}.inspector{grid-column:2;border-top:1px solid var(--line);min-height:300px}.shortcuts{display:none}.toolbar{height:auto;min-height:65px;flex-wrap:wrap;padding:7px}.catalog-item{flex-wrap:wrap}.catalog-item svg{width:25px}.source-options input{width:70px}.schedule-head{padding:10px;gap:6px}.schedule-head>div{gap:5px}.schedule-head span{font-size:10px}footer{height:auto;min-height:30px;gap:10px}.table-note{font-size:10px}.step{font-size:11px;width:max-content}#empty h1{font-size:19px}#empty p{font-size:12px}.axis,#coords{font-size:9px}}

.kastt{display:flex;align-items:center;flex-shrink:0}.kastt-logo{display:flex;align-items:center;width:112px;aspect-ratio:278/58}.kastt-mark{display:block;flex:none;width:21.2230216%;height:auto;transform:rotate(0deg);transform-box:view-box;transform-origin:50% 49.137931%;will-change:transform}.kastt-word{display:block;flex:none;width:73.7410072%;height:auto;margin-left:5.0359712%}.brand{display:block;border-left:1px solid var(--line);padding-left:16px;letter-spacing:1px;font-size:15px;min-width:190px}.brand strong{font-weight:750;color:#344f5d}.brand small{display:block;background:none;margin:5px 0 0;padding:0;font-size:8px;letter-spacing:1.5px;color:#899aa3}.project{border-left:1px solid var(--line)}header{height:66px}nav{height:40px;background:#f8fafb}main{height:calc(100dvh - 133px);padding:10px;gap:10px;grid-template-columns:205px minmax(400px,1fr) 260px}.catalog,.inspector,.workspace{border:1px solid var(--line);border-radius:4px}.toolbar{background:white}.schedule{border-radius:0 0 4px 4px}.section-title{color:#567887}.inspector{background:#fff}footer{background:#133441;color:#b6cbd3;border:0}button.primary{font-weight:600}.view-tabs button.active{background:#eff9fb}header .primary{background:#fff;color:#157f98;border-color:#bfd6de}@media(max-width:1100px){.brand{min-width:120px}.brand small{display:block;font-size:7px}.kastt img{width:92px}main{grid-template-columns:175px minmax(340px,1fr) 220px;gap:6px;padding:6px}}@media(max-width:800px){header{height:auto}.brand{min-width:120px}.project{flex-basis:120px}main{height:auto;grid-template-columns:125px minmax(0,1fr);padding:5px;gap:5px}.catalog{padding:12px 7px}.workspace{height:730px}.inspector{grid-column:2}.source-card button{white-space:normal}}
.catalog-item{white-space:normal;line-height:1.35;font-size:13px}.catalog-item span{min-width:0}.catalog-item small{white-space:normal;line-height:1.4}.source-card button{white-space:normal}.brand small{font-size:9px}.project strong{overflow-wrap:anywhere}#saveState{line-height:1.3}
/* Same 24 px line-icon vocabulary as Psychrolab, with restrained cyan accents. */
.toolbar-icon{width:18px;height:18px;flex:none;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;vertical-align:middle;pointer-events:none}.toolbar-icon .accent{stroke:#1598b3}button:has(>.toolbar-icon){display:inline-flex;align-items:center;justify-content:center;gap:7px}.toolbar button{min-height:32px;border:1px solid #d9e5e9;background:#fff;color:#526d7a}.toolbar button:hover:not(:disabled){background:#eff8fb;border-color:#94c6d1}.toolbar button.active{background:#e5f3f7;border-color:#96c6d1;color:#087b96}.toolbar button:disabled{opacity:.4}.toolbar button:disabled .accent{stroke:currentColor}.source-card button:has(.toolbar-icon){width:100%}.toolbar{flex-wrap:wrap;height:auto;min-height:50px;padding-top:7px;padding-bottom:7px}.toolbar>div{flex-shrink:0}#canvas{cursor:default}.toolbar button span{pointer-events:none}@media(max-width:500px){.toolbar>div{flex-wrap:wrap}.toolbar-icon{width:16px;height:16px}.toolbar button{padding:5px}.toolbar{gap:5px}}

.view-controls{display:flex;align-items:center;gap:5px;padding:4px;background:white;border:1px solid #d7e3e7;border-radius:4px;box-shadow:0 1px 5px #183e4d0d}.view-controls button{width:30px;height:30px;min-height:30px;padding:4px!important;border-radius:3px}.view-controls input{width:95px;height:14px;accent-color:#1598b3;cursor:pointer}.view-controls output{font:600 11px ui-monospace,monospace;min-width:44px;text-align:center}.toolbar-icon text{font:600 7px ui-monospace,monospace;fill:currentColor;stroke:none}.view-controls #fit{margin-left:5px}.toolbar>.view-controls{flex-wrap:nowrap}@media(max-width:600px){.view-controls input{width:65px}.view-controls{gap:3px}}
.view-controls input[type=range]{appearance:none;background:transparent}.view-controls input[type=range]::-webkit-slider-runnable-track{height:5px;border-radius:3px;background:#d4dde1;box-shadow:inset 0 1px 2px #1232}.view-controls input[type=range]::-webkit-slider-thumb{appearance:none;width:12px;height:12px;margin-top:-3.5px;border-radius:50%;background:#1598b3;border:0}.view-controls input[type=range]::-moz-range-track{height:5px;border-radius:3px;background:#d4dde1}.view-controls input[type=range]::-moz-range-thumb{width:12px;height:12px;border:0;border-radius:50%;background:#1598b3}

#scaleDialog{width:min(440px,calc(100vw - 30px));max-width:440px}#scaleDialog p{font-size:13px}#scaleDialog .scale-presets{display:flex;justify-content:flex-start;gap:6px;flex-wrap:wrap;margin:10px 0 18px}#dpiField[hidden]{display:none}#scaleError:empty{display:none}
#scaleDialog:not([open]),#drawingScaleChoice:not([open]){display:none}#scaleDialog,#drawingScaleChoice{position:fixed;top:92px;left:225px;right:auto;bottom:auto;margin:0;z-index:1000;max-height:calc(100vh - 110px);overflow:auto;box-shadow:0 8px 22px #29445033}#scaleDialog h2,#drawingScaleChoice h2{cursor:move;user-select:none;-webkit-user-select:none;touch-action:none}
#findDrawingScale{width:100%;margin:-7px 0 12px;padding:7px;border:1px solid #a7bac2;border-radius:5px;background:#f7fbfc;color:#175e73;cursor:pointer}
#missingSources[hidden]{display:none}#missingSources{max-width:135px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

.dimension-hud{position:fixed;z-index:20;pointer-events:none;background:#fff;border:1px solid #ce7925;border-radius:5px;padding:7px 10px;box-shadow:0 2px 7px #0002;color:#79470e;display:flex;flex-wrap:wrap;gap:6px;max-width:250px;font-size:13px}.dimension-hud[hidden]{display:none}.dimension-hud input{pointer-events:auto;width:100px;min-width:0;padding:3px;font:inherit}.dimension-hud small{font-size:12px}.field small{color:#0c7693;font-size:11px}
#settingsDialog{width:min(460px,calc(100vw - 40px))}#settingsDialog .field{margin:14px 0}#settingsError:empty{display:none}.fabrication-card{padding:12px;background:#f3f8f9;border:1px solid #d8e5e9;border-radius:6px;margin-bottom:14px}.stock-primary{font-size:24px;font-weight:650;margin:12px 0 2px}.stock-primary small{font-size:13px;font-weight:400}.drawing-length{display:block;font-size:11px;color:#647782}.vp-badge{font-size:10px;color:#935c22;background:#fff1dd;padding:2px 4px;border-radius:3px}.fabrication-card .field{margin-top:12px}.tolerance-use{position:relative;flex:0 0 auto;width:36px;height:20px;min-width:36px;padding:0;border:0;border-radius:11px;background:#aebbc0;cursor:pointer;transition:background .16s ease}.tolerance-use>span{position:absolute;top:3px;left:3px;width:14px;height:14px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(16,46,59,.28);transition:transform .16s ease}.tolerance-use.on{background:#287d92}.tolerance-use.on>span{transform:translateX(16px)}.tolerance-use:focus-visible{outline:2px solid #0c7693;outline-offset:3px}
.annotation-tools{display:flex;align-items:center;justify-content:flex-end;gap:5px;padding:4px 12px;background:#fff;border-bottom:1px solid #dce5e9}.annotation-tools button{height:28px;min-width:30px;padding:3px 6px}.axis-font-size-tool{display:grid;grid-template-columns:18px 28px;grid-template-rows:14px 14px;margin-left:6px;border:1px solid #d9e3e7;border-radius:4px;overflow:hidden}.axis-font-size-tool button{border:0;min-width:0;height:14px;padding:0;font-size:12px;line-height:12px}.axis-font-size-tool #textReset{grid-column:2;grid-row:1/3;height:28px;font-size:18px}.axis-font-size-tool #textSmaller{grid-column:1;grid-row:2}.device-selector{display:flex;align-items:center;gap:8px;font-size:12px}.device-selector select{max-width:190px;padding:4px}.device-heading th{padding:9px 12px;text-align:left;color:#102e3b;background:#eaf2f5;font-size:13px}.field textarea{font:inherit;padding:8px;width:100%;box-sizing:border-box;border:1px solid #cbd8de;border-radius:4px}
/* Manufacturing controls keep the drawing primary. */
#settingsDialog{width:min(650px,94vw);max-width:650px;max-height:88vh;overflow:auto}#settingsDialog form>div.field-grid{display:grid}details{border-top:1px solid var(--line);padding:12px 0;margin-top:10px}summary{cursor:pointer;font-size:12px;font-weight:650;color:#375c69;line-height:1.6}details p{font-size:12px}details>button{margin:5px 0;width:100%}.position-primary{font:600 21px ui-monospace,monospace;color:#16768b;margin-bottom:10px}.identity-card{display:grid;grid-template-columns:1fr 80px;gap:7px;margin:18px 0;align-items:center}.identity-card strong{font:12px ui-monospace,monospace;overflow-wrap:anywhere}.identity-card .unit{grid-column:1}.identity-card #partQR{grid-column:2;grid-row:1/3}.identity-card svg{display:block;width:80px;height:80px}.hardware-items .port{gap:12px;align-items:start;padding:8px 0;border-bottom:1px solid #edf1f2}.hardware-items strong{white-space:nowrap}.hardware-row{background:#f0f6f7}.hardware-row td{font-size:11px}.secondary-fields .field-grid{margin-top:12px}.joint-menu{position:fixed;z-index:20;background:white;box-shadow:0 6px 25px #233d4f30;border:1px solid #c5d6dc;border-radius:5px;padding:5px}.joint-menu button{border:0;padding:10px;font-size:12px}.joint-menu[hidden]{display:none}.dialog-actions{display:flex;gap:8px;justify-content:end}.schedule-head{flex-wrap:wrap;gap:6px;padding:8px 12px}.schedule-head>div{gap:6px}.schedule-head button{font-size:10px}#releaseDialog{max-width:540px}tr:focus{outline:2px solid #268ca2;outline-offset:-2px}.device-heading th{position:static}#step{top:8px;max-width:85%}#details>h2{font-size:16px}
.schedule-devices{display:flex;align-items:center;gap:7px;padding:6px 12px;border-bottom:1px solid var(--line);background:#f4f8f9}.schedule-devices label{display:flex;align-items:center;gap:6px;font-size:11px;color:#54707a}.schedule-devices select{max-width:75px;padding:4px;border:1px solid #d4e0e3;border-radius:3px;background:white}.schedule-devices input{font:600 12px system-ui;color:#274c59;border:1px solid transparent;border-radius:3px;background:transparent;min-width:80px;flex:1;padding:5px 7px}.schedule-devices input:hover,.schedule-devices input:focus{background:white;border-color:#bdd1d7}.schedule-devices button{padding:4px 6px;background:transparent;border-color:transparent}.schedule-devices button:hover{background:#e1edf0}.schedule{height:270px}
@media(min-width:801px){main{min-height:0}.workspace{min-height:0}.canvas-wrap{min-height:160px}.schedule{height:240px;flex-shrink:0}}
.part-preview{margin:14px 0;border:1px solid var(--line,#dbe4e7);border-radius:6px;background:#fff;padding:8px}.preview-heading{display:flex;align-items:center;justify-content:space-between;font-size:11px;color:#315763}.preview-heading button{font-size:18px;padding:2px 8px}.preview-viewport{touch-action:none;cursor:grab;outline-offset:2px}.preview-viewport:active{cursor:grabbing}.preview-viewport svg{display:block;width:100%;height:auto;overflow:visible}.part-preview .unit{font-size:10px;margin:4px 0}
.preview-dialog{width:min(860px,95vw);max-width:95vw;max-height:95vh;padding:18px}.preview-dialog .preview-viewport{max-width:720px;margin:auto}.preview-dialog .preview-viewport svg{max-height:73vh}.preview-close{float:right;margin-left:16px}.preview-dialog .preview-heading{font-size:13px}.preview-heading span{display:flex;gap:5px}
.preview-views{display:flex;gap:3px}.preview-heading .preview-views button{padding:5px;display:grid;place-items:center;width:32px;height:30px}.preview-views button.active{background:#e0f0f3;border-color:#73aebc;color:#14798e}.preview-views .toolbar-icon{width:21px;height:21px}
.preview-viewport,.preview-viewport:focus,.preview-viewport:focus-visible{outline:none;box-shadow:none}
.dimension-warning{padding:9px 10px;border-left:3px solid #d39945;background:#fff6e8;color:#775321;font-size:12px;line-height:1.45}

#select, #draw { display: none; }

.view-controls #zoomRange{width:85px;height:28px;font:12px ui-monospace,monospace;text-align:right;} .view-controls #zoom{min-width:12px;}

.annotation-tools button{cursor:pointer;border:1px solid #9eafb7;box-shadow:0 1px 2px #193c4a26;background:#fff;color:#345560;transition:background .12s,border-color .12s,box-shadow .12s;}
.annotation-tools button[aria-pressed="true"]{background:#087d96;color:#fff;border-color:#056176;box-shadow:inset 0 1px 3px #00394955;}
.annotation-tools button[aria-pressed="true"] .accent{stroke:#b5f2fa;}
.annotation-tools button[aria-pressed="true"] text{fill:currentColor;}
.annotation-tools button:hover{background:#e4f3f6;border-color:#087d96;}
.annotation-tools button[aria-pressed="true"]:hover{background:#086d83;}
.annotation-tools button:active{box-shadow:inset 0 2px 4px #00394955;transform:translateY(1px);}
.annotation-tools button:focus-visible{outline:2px solid #087d96;outline-offset:2px;}
.axis-font-size-tool{border-color:#9eafb7;gap:1px;background:#9eafb7;grid-template-rows:16px 16px;}
.axis-font-size-tool button{border:0;height:16px;box-shadow:none;}
.axis-font-size-tool #textReset{height:33px;}
.annotation-tools button:disabled{cursor:default;opacity:.4;transform:none;box-shadow:none;}

/* KASTT application shell — shared visual vocabulary with PsychroLab. */
:root{--line:#d8e2e5;--blue:#0c7693;--muted:#78888e;color:#273b43;background:#edf3f5}
.visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.app-header{height:78px;gap:18px;padding:0 20px;flex-wrap:nowrap;background:#fff}
.app-header .kastt-logo{width:144px}
.app-header .brand{min-width:190px;padding:0 20px 0 18px;flex:none;border-left:1px solid var(--line)}
.app-header .brand strong{font-size:17px;letter-spacing:1.1px;color:#203d49}
.app-header .brand small{margin-top:6px;font-size:10px;letter-spacing:1.2px;color:#88979d;font-weight:400}
.app-header .project{display:flex;align-items:center;gap:12px;padding-left:24px;min-width:110px;flex:1}
.project-dot{display:block;width:8px;height:8px;flex:none;border-radius:50%;background:#22a66f}
.project-dot.unsaved{background:#c38a35}
.project-info{min-width:0;flex:0 1 380px}.project-info label{display:block;font-size:10px;letter-spacing:1.5px;color:#8d999d;margin-bottom:5px}
#projectName{display:block;width:100%;min-width:0;border:1px solid transparent;border-radius:3px;background:transparent;padding:2px 0;font-size:16px;color:#657980;text-overflow:ellipsis;outline-offset:2px}
#projectName:hover{border-bottom-color:#bdd1d7}#projectName:focus{background:#f6fafb;color:#203d49;border-color:#91b7c1;padding-left:4px}
.app-header .rename-project{width:26px;height:30px;padding:4px;flex:none;background:transparent;border-color:transparent;color:#73868d}.rename-project .toolbar-icon{width:14px;height:14px}
.header-actions{display:flex;align-items:center;gap:9px;margin-left:auto;flex:none}
.header-actions button,.header-actions .language-badge{position:relative;display:grid;place-items:center;width:38px;height:36px;min-width:38px;padding:0;background:white;color:#36505a;border:1px solid #d6e0e3;border-radius:3px;box-shadow:0 1px 2px #17313b05}
.header-actions .language-badge{margin-right:4px}.language-badge svg{width:26px;height:18px;border:1px solid #e0e6e8}
.header-actions button:hover{border-color:#9db9c1;background:#f2f8f9;color:var(--blue)}
.header-actions .toolbar-icon{width:20px;height:20px}
.toolbar-icon path,.toolbar-icon circle{stroke-width:1.55;vector-effect:non-scaling-stroke}.toolbar-icon .accent{stroke:#168eae}
body>nav{height:42px;background:#f7f9fa;padding:0 20px}.view-tabs button{color:#70828a;font-size:12px}.view-tabs button.active{color:#0c7693;background:transparent}.view-tabs button:disabled{opacity:.6}
main{height:calc(100dvh - 147px);grid-template-columns:205px minmax(0,1fr) 280px;background:#edf3f5}
.toolbar{min-height:68px;padding:12px 16px;gap:10px;align-items:center;flex-wrap:wrap}
.toolbar .drawing-title{display:flex;align-items:center;gap:12px;flex:1 1 auto;min-width:0}
.drawing-title>strong{font-size:16px;font-weight:500;white-space:nowrap;color:#273b43}.history-tools{display:flex;gap:4px}
.toolbar .drawing-tools{display:flex;align-items:center;gap:6px;border:1px solid #cedadd;border-radius:7px;padding:5px;background:#fff;box-shadow:0 3px 12px #17313b0d;flex:0 1 auto;flex-wrap:wrap;max-width:100%}
.toolbar .view-controls{display:flex;gap:5px;padding:0;border:0;box-shadow:none;flex-wrap:nowrap;background:none;max-width:100%}
.toolbar .view-controls button,.toolbar .annotation-tools button,.history-tools button{position:relative;display:grid;place-items:center;width:32px;height:30px;min-width:32px;min-height:30px;padding:0!important;border:1px solid #cedadd;border-radius:3px;background:#fff;color:#36505a;box-shadow:none}
.toolbar .view-controls button:hover,.toolbar .annotation-tools button:hover,.history-tools button:hover{border-color:#91b7c1;background:#eef7f9;color:#0c7693}
.toolbar .view-controls #fit{margin-left:0}.toolbar .view-controls input[type=number]{width:64px;height:28px;padding:3px 0;border:0;background:transparent;text-align:right;font:600 12px ui-monospace,monospace;color:#53676e;cursor:text;appearance:textfield}.view-controls input::-webkit-inner-spin-button{appearance:none}
.toolbar .view-controls #zoom{min-width:12px;width:12px;font:600 12px ui-monospace,monospace;margin-right:3px}
.toolbar .divider{height:24px;margin:0 2px;flex:none}
.toolbar .annotation-tools{display:flex;gap:5px;padding:0;border:0;background:transparent}
.toolbar .annotation-tools button[aria-pressed=true],.toolbar .view-controls button[aria-pressed=true]{border-color:#5f8f9c;background:#dcecf0;color:#075f78;box-shadow:inset 0 1px 3px #17313b2b;transform:none}
.toolbar .annotation-tools button[aria-pressed=true] .accent{stroke:#0b718c}
.toolbar .annotation-tools #placeDataTarget.placing{border-color:#087c42;box-shadow:0 0 0 2px #75c69a80}
.toolbar .annotation-tools #placeDataTarget.placing::after{content:'';position:absolute;right:2px;bottom:2px;width:5px;height:5px;border-radius:50%;background:#087c42}
.toolbar .axis-font-size-tool,.preview-heading .axis-font-size-tool{display:grid;grid-template-columns:21px 20px 21px;grid-template-rows:28px;gap:0;width:64px;height:30px;flex:0 0 64px;margin:0;border:1px solid #cedadd;border-radius:3px;background:#fff;overflow:hidden}
.toolbar .axis-font-size-tool button,.preview-heading .axis-font-size-tool button{display:grid;place-items:center;grid-row:1;grid-column:auto;width:100%;height:28px;min-height:0;min-width:0;border:0;padding:0;font-size:17px;border-radius:0;line-height:1;background:transparent;color:#61777e;box-shadow:none}
.toolbar .axis-font-size-tool #textReset,.preview-heading .axis-font-size-tool [data-text="reset"]{grid-column:2;grid-row:1;height:28px;font:600 11px ui-monospace,monospace;background:#e5f0f3;border-right:1px solid #dce6e9;border-left:1px solid #dce6e9}
.toolbar .axis-font-size-tool #textSmaller,.preview-heading .axis-font-size-tool [data-text="smaller"]{grid-column:3;grid-row:1}.toolbar .axis-font-size-tool button:hover,.preview-heading .axis-font-size-tool button:hover{background:#dcecf0;color:#075f78}
.axis-font-size-tool .font-step-icon{display:block;width:18px;height:18px;fill:currentColor;stroke:none}
.toolbar button:disabled{opacity:.35}.toolbar .toolbar-icon{width:18px;height:18px}
@media(max-width:1300px){.app-header{gap:12px;padding:0 16px}.app-header .kastt-logo{width:125px}.app-header .brand{min-width:175px;padding-right:12px}.app-header .project{padding-left:16px}.header-actions{gap:6px}.header-actions button,.header-actions .language-badge{width:34px;min-width:34px}.toolbar{padding:10px}.drawing-title>strong{font-size:15px}}
@media(max-width:1050px){.app-header{flex-wrap:wrap;height:auto;min-height:78px;padding:12px 14px;gap:10px}.app-header .project{order:3;flex-basis:100%;border:0;padding-left:0}.project-info{flex:1}.header-actions{margin-left:auto}.app-header .brand{flex:1}main{height:calc(100dvh - 188px);grid-template-columns:170px minmax(0,1fr) 240px}.toolbar .drawing-tools{gap:4px}.toolbar .drawing-title{flex-basis:100%}}
@media(max-width:800px){main{height:auto;min-height:0;grid-template-columns:125px minmax(0,1fr)}.workspace{height:760px}.inspector{grid-column:2}.app-header .brand{min-width:140px}.app-header .brand small{font-size:8px}.app-header .kastt img{width:105px}.header-actions{gap:5px}.local{display:none}.toolbar .drawing-tools{justify-content:flex-start}.toolbar .divider{display:none}}
@media(max-width:540px){.app-header{gap:8px}.app-header .brand{padding-left:12px}.header-actions{order:2;width:100%;justify-content:flex-end}.app-header .project{order:1}.header-actions .language-badge{margin-right:auto}main{grid-template-columns:90px minmax(0,1fr)}.catalog{padding:10px 4px}.catalog-item{flex-wrap:wrap;padding:8px 4px}.toolbar{padding:8px}.toolbar .view-controls{gap:2px}.toolbar .view-controls input[type=number]{width:48px}.toolbar .view-controls button{width:28px;min-width:28px}.view-tabs{gap:2px}body>nav{padding:0 8px}.view-tabs button{padding:5px;font-size:11px}}
.toolbar .view-controls #zoomSlider{width:84px;min-width:40px;height:14px;padding:0;cursor:pointer;flex:0 1 84px}
@media(max-width:1100px){.toolbar .view-controls #zoomSlider{width:62px;flex-basis:62px}}
@media(max-width:540px){.toolbar .view-controls{flex-wrap:wrap}.toolbar .view-controls #zoomSlider{width:48px;flex-basis:48px}}

/* Resizable three-column workbench, independent of project data. */
main{--left-roller:205px;--right-roller:280px;grid-template-columns:var(--left-roller) 10px minmax(260px,1fr) 10px var(--right-roller);gap:0;height:calc(100dvh - 105px);min-height:480px;padding:10px}
main>.catalog{grid-column:1;min-width:0}main>.workspace{grid-column:3}main>.inspector{grid-column:5;min-width:0}
#leftSplit{grid-column:2}#rightSplit{grid-column:4}
#workArea{display:grid;grid-template-rows:minmax(180px,var(--drawing-share,.58fr)) 10px minmax(150px,var(--schedule-share,.42fr));overflow:hidden;min-height:0;height:auto}
.drawing-pane{display:flex;flex-direction:column;min-height:0;overflow:hidden}.drawing-pane .canvas-wrap{min-height:0;flex:1}.drawing-pane .toolbar{flex:none;min-height:52px;padding:6px 10px}.drawing-title>strong{font-size:14px}.drawing-pane .drawing-tools{gap:4px}
#schedulePane{height:auto;min-height:0;display:flex;flex-direction:column;overflow:hidden}#schedulePane .table-scroll{flex:1;min-height:0;overflow:auto}.schedule-head,.schedule-devices,.table-note{flex:none}
.splitter{position:relative;display:flex;align-items:center;justify-content:center;touch-action:none;outline-offset:-2px;z-index:2;border-radius:5px;cursor:col-resize}
.splitter span{display:block;width:5px;height:42px;border:1px solid #c5d6dc;border-radius:4px;background:#f7fbfc;box-shadow:inset 0 0 0 1px white}
.splitter span:after{content:'';display:block;width:1px;height:22px;background:#8eabb5;margin:9px auto}
.splitter.horizontal{cursor:row-resize}.splitter.horizontal span{height:5px;width:48px}.splitter.horizontal span:after{height:1px;width:28px;margin:1px auto}
.splitter:hover,.splitter:focus-visible{background:#dcecf0;outline:1px solid #91b7c1}.resizing{user-select:none}.resizing .splitter:focus{background:#c4e0e7}
.pane-tabs-row{display:flex;align-items:stretch;gap:5px;flex:none;min-width:0;height:35px;background:#f3f8fa;border-bottom:1px solid #d8e2e5;padding:3px 5px 0}
.pane-tabs{display:flex;align-items:stretch;gap:4px;min-width:0;overflow-x:auto;overflow-y:hidden;flex:1;scrollbar-width:thin;scrollbar-color:#bfd0d6 transparent}
.pane-tabs button{flex:0 1 170px;min-width:80px;max-width:200px;overflow:hidden;text-overflow:ellipsis;padding:5px 12px;border-radius:5px 5px 0 0;border:1px solid #d8e2e5;border-bottom:0;background:#edf3f5;color:#6b8089;font-size:12px;text-align:left}
.pane-tabs button[aria-selected=true]{background:white;border-color:#84b3c0;color:#086f88;font-weight:650}.pane-tabs button:hover{background:#eef9fc;color:#086f88}
.pane-expand{flex:none;width:30px;height:28px;padding:4px;border:1px solid #cddce1;color:#446775;background:white;border-radius:3px}.pane-expand[aria-pressed=true]{background:#dcecf0;border-color:#5f8f9c;box-shadow:inset 0 1px 3px #17313b2b}
.display-modes{display:flex;gap:4px}.toolbar .display-modes button{display:grid;place-items:center;width:30px;height:30px;min-height:30px;padding:3px;border:1px solid #cedadd;border-radius:3px;background:white;color:#36505a}.toolbar .display-modes button[aria-pressed=true]{background:#dcecf0;color:#075f78;border-color:#5f8f9c;box-shadow:inset 0 1px 3px #17313b2b}.toolbar .display-modes button:disabled{opacity:.35;cursor:default}
#workArea[data-expanded=drawing]{grid-template-rows:minmax(0,1fr)}#workArea[data-expanded=drawing] #schedulePane,#workArea[data-expanded=drawing] #tableSplit{display:none}
#workArea[data-expanded=schedule]{grid-template-rows:minmax(0,1fr)}#workArea[data-expanded=schedule] #drawingPane,#workArea[data-expanded=schedule] #tableSplit{display:none}
@media(max-width:1050px){main{height:calc(100dvh - 140px)}.drawing-pane .toolbar .drawing-title{flex-basis:100%}.drawing-pane .toolbar{gap:5px}.drawing-pane .drawing-tools{padding:4px}}
@media(max-width:800px){main{height:calc(100dvh - 140px);min-width:580px}.catalog{padding:10px 6px}.inspector{padding:12px 8px}#workArea{height:auto}.pane-tabs button{min-width:75px}}
/* Drawing actions live on their tab, not in the part catalogue. */
#model3dCanvas{position:absolute;inset:0;width:100%;height:100%;z-index:4;background:#f5f9fa;cursor:grab;touch-action:none}
#model3dCanvas:active{cursor:grabbing}
#model3dCanvas[hidden]{display:none}
.canvas-wrap:has(#model3dCanvas:not([hidden])) .step{z-index:5}
.source-card #calibrate,.source-card #directScale,.source-options label:has(#page){display:none}
.pane-tabs .add-drawing-tab{min-width:32px;width:32px;max-width:32px;flex:0 0 32px;text-align:center;padding:4px;font-weight:650;color:#0c7693}
.drawing-menu{display:flex;flex-direction:column;min-width:230px}.drawing-menu[hidden]{display:none}.drawing-menu button{text-align:left}
.scale-choice-actions{display:flex;gap:8px;flex-direction:column}#drawingScaleChoice{max-width:450px}#drawingScaleChoice button[hidden]{display:none}
footer #step{position:static;transform:none;max-width:none;min-width:0;flex:1;top:auto;left:auto;padding:0;margin:0;background:none;border:0;box-shadow:none;color:inherit;font-size:11px;line-height:1.3;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
footer #status{display:none}footer{gap:16px}footer>span:last-child{flex:none}
/* Catalogue actions share the drawing toolbar's dimensions and spacing. */
:root{--drawing-tool-width:32px;--drawing-tool-height:30px;--drawing-tool-icon:18px;--drawing-tool-gap:4px;--position-disclosure-size:18px;--position-disclosure-color:#237b91}
.toolbar :is(.view-controls,.annotation-tools,.display-modes,.history-tools)>button{box-sizing:border-box;width:var(--drawing-tool-width);min-width:var(--drawing-tool-width);height:var(--drawing-tool-height);min-height:var(--drawing-tool-height);padding:0}
.toolbar :is(.view-controls,.annotation-tools,.display-modes,.history-tools){gap:var(--drawing-tool-gap)}
.toolbar .toolbar-icon{width:var(--drawing-tool-icon);height:var(--drawing-tool-icon)}
main>.catalog{padding-inline:6px}
#catalog{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--drawing-tool-gap);align-items:start;margin-bottom:18px}
.catalog-column{display:grid;grid-template-columns:repeat(auto-fit,var(--drawing-tool-width));justify-content:center;align-content:start;gap:var(--drawing-tool-gap);min-width:0;position:relative;margin-top:37px;padding:4px 0;border:1px solid #cedadd;border-radius:0 3px 3px 3px;background:#fff}
.catalog-column h3{position:absolute;left:-1px;top:-37px;width:calc(100% + 2px);height:37px;min-height:0;margin:0;display:flex;align-items:stretch;font-size:10px;text-transform:uppercase;letter-spacing:.5px;font-weight:600;color:#69818a}
.catalog-column .duct-picker{box-sizing:border-box;width:100%;min-width:0;max-width:100%;height:38px;padding:3px 4px;white-space:nowrap;line-height:1.15;overflow:hidden;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;border-radius:4px 4px 0 0;border-bottom-color:transparent;background:#fff;font-size:inherit}
.catalog-column .duct-picker:hover,.catalog-column .duct-picker:focus-visible{background:#edf8fa}
.catalog-name{display:block;position:relative;flex:none;width:100%;min-width:0;height:1.15em;overflow:hidden}
.catalog-name>span{position:absolute;left:50%;top:0;width:max-content;visibility:hidden;transform:translateX(-50%) scaleX(var(--catalog-label-scale,1))}
.catalog-name>[data-catalog-label="full"]{text-transform:none}
.duct-picker[data-catalog-size="full"] [data-catalog-label="full"],.duct-picker[data-catalog-size="medium"] [data-catalog-label="medium"],.duct-picker[data-catalog-size="compact"] [data-catalog-label="compact"]{visibility:visible}
.catalog-chevron{display:grid;place-items:center;flex:none;width:100%;height:var(--position-disclosure-size);font-size:var(--position-disclosure-size);line-height:1;color:var(--position-disclosure-color);letter-spacing:normal;font-weight:400}
#catalog .catalog-item{box-sizing:border-box;position:relative;display:grid;place-items:center;width:var(--drawing-tool-width);min-width:var(--drawing-tool-width);max-width:var(--drawing-tool-width);height:var(--drawing-tool-height);min-height:var(--drawing-tool-height);padding:0;margin:0;border:1px solid #cedadd;border-radius:3px;background:#fff;color:#36505a;box-shadow:none}
#catalog .catalog-item svg{width:min(34px,calc(var(--drawing-tool-width) - 2px));max-width:100%;height:min(29px,calc(var(--drawing-tool-height) - 2px));flex-shrink:0}
#catalog .catalog-item:hover{border-color:#71aeba;background:#f0f8fa}
#catalog .catalog-item.active{background:#d1edf2;border-color:#268ca1;color:#076d84;box-shadow:inset 0 0 0 1px #268ca1,0 1px 3px #17657a20}
#catalog .catalog-item:focus-visible{outline:2px solid #278ca1;outline-offset:3px}
.catalog-tooltip{visibility:hidden;opacity:0;position:absolute;bottom:calc(100% + 7px);left:50%;transform:translateX(-50%);z-index:8;background:#264550;color:white;font-size:11px;line-height:1.3;padding:5px 8px;border-radius:4px;white-space:nowrap;pointer-events:none}
#catalog .catalog-item:hover .catalog-tooltip,#catalog .catalog-item:focus-visible .catalog-tooltip{visibility:visible;opacity:1}
#catalog .catalog-item:disabled{opacity:.38;cursor:default;background:#f8fafb;border-color:#dce5e8;box-shadow:none}

/* Preview dimensions belong to the workspace, never to the projected SVG bounds. */
.part-preview .preview-viewport{aspect-ratio:360/310;overflow:hidden}
.preview-viewport svg{width:100%;height:100%;overflow:hidden}
.preview-dialog{box-sizing:border-box;width:min(860px,95vw);height:min(640px,95vh);min-width:min(420px,95vw);min-height:min(320px,95vh);max-width:95vw;max-height:95vh;resize:both;overflow:hidden;contain:size}
.preview-dialog>section{height:100%;min-width:0;min-height:0;display:flex;flex-direction:column}
.preview-dialog .preview-heading{flex:none;min-height:34px;padding-right:38px}
.preview-dialog .preview-viewport{flex:1;min-width:0;min-height:0;width:100%;max-width:none;margin:0;overflow:hidden}
.preview-dialog .preview-viewport svg{height:100%;max-height:none}
.preview-dialog .unit{flex:none;margin:8px 12px 0 0;font-size:11px}
.preview-dialog .preview-close{position:absolute;right:18px;top:20px;float:none;display:grid;place-items:center;width:30px;height:30px;padding:4px;margin:0;border:1px solid #cedadd;border-radius:4px;background:#fff;color:#315763;cursor:pointer}.preview-dialog .preview-close:hover{background:#e4f3f6;border-color:#087d96}.preview-dialog .preview-close .toolbar-icon{width:18px;height:18px}

.drawing-menu:not([hidden]){display:flex;gap:5px;min-width:0}.drawing-menu button{width:38px;height:38px;padding:7px;display:grid;place-items:center}.drawing-menu button:disabled{opacity:.35;cursor:not-allowed}

.preview-geometry-editor{flex:none;max-height:38%;overflow:auto;border-top:1px solid #dbe4e7;font-size:12px}.preview-geometry-editor form{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:8px}.preview-geometry-editor label{display:flex;flex-direction:column;gap:4px}.preview-geometry-editor input,.preview-geometry-editor select{min-width:0;width:100%}.preview-geometry-editor [role=status]{grid-column:1/-1}
.duct-picker{font:inherit;letter-spacing:inherit;text-transform:uppercase;border:1px solid #b7cbd1;border-radius:4px;background:#fff;padding:6px 4px;color:#315663;cursor:pointer;white-space:nowrap}.duct-picker:hover,.duct-picker:focus-visible{border-color:#258aa0;background:#edf8fa}.duct-spec-dialog{width:min(520px,calc(100vw - 32px));max-height:calc(100dvh - 32px);overflow:auto;border:1px solid #b8cbd2;border-radius:10px;padding:22px;color:#24424e}.duct-spec-dialog::backdrop{background:#173a4b55}.duct-spec-dialog form{display:grid;gap:10px}.duct-spec-dialog h2{margin:0 0 6px}.duct-spec-dialog label{display:grid;gap:5px;font-size:13px}.duct-spec-dialog input,.duct-spec-dialog select{width:100%;box-sizing:border-box;padding:8px;border:1px solid #c4d3d8;border-radius:4px;background:white;color:inherit}.duct-spec-dialog p,.duct-spec-dialog small{margin:0;font-size:12px;line-height:1.5;color:#60747d}.duct-spec-dialog [role=status]{color:#a43f29}.duct-spec-dialog .dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:6px}.duct-spec-card{border:1px solid #d4e0e4;border-radius:5px;padding:8px;margin-bottom:12px}.duct-spec-card button{width:100%;text-align:left}.duct-spec-card p{font-size:11px;line-height:1.5;margin:6px 0 0;color:#60747d}
.duct-spec-dialog:has(.radius-band-editor[open]){width:min(600px,calc(100vw - 32px))}.radius-band-editor{border-top:1px solid #dce7ea;border-bottom:1px solid #dce7ea;padding:10px 0}.radius-band-editor summary{cursor:pointer;color:#24424e;font-size:14px;font-weight:650}.radius-band-editor summary::marker{color:#276e83}.radius-band-editor[open] summary{margin-bottom:10px}.radius-band-editor>p{margin-bottom:10px}.radius-band-row{display:grid;grid-template-columns:minmax(95px,1fr) minmax(95px,1fr) minmax(95px,1fr) 30px 30px;align-items:end;gap:5px;margin:5px 0}.radius-band-row>span{font-size:12px;padding-bottom:9px;white-space:nowrap}.radius-band-row label{display:flex;align-items:center;gap:4px;white-space:nowrap}.radius-band-row label input{min-width:0;padding:5px 6px;font-variant-numeric:tabular-nums}.radius-band-row label span{padding:6px}.radius-band-row button{width:30px;height:30px;min-width:30px;padding:0;border:1px solid #c4d3d8;border-radius:4px;background:#f6fafb;color:#276e83;font-size:17px;line-height:1}.radius-band-row button:hover:not(:disabled){background:#e2f3f7}.radius-band-row button:disabled{opacity:.4}@media(max-width:530px){.radius-band-row{grid-template-columns:1fr 1fr 1fr 28px 28px;gap:3px}.radius-band-row>span{white-space:normal}.radius-band-row label{font-size:11px}.radius-band-row button{width:28px;height:28px;min-width:28px}}

.dimension-hud{width:112px;height:28px;box-sizing:border-box;padding:3px 6px;gap:4px;flex-wrap:nowrap;align-items:center;font:13px ui-monospace,monospace;font-variant-numeric:tabular-nums;white-space:nowrap}.dimension-hud span{flex:none}.dimension-hud small,.dimension-hud input{width:70px;box-sizing:border-box;font:inherit;text-align:right}.dimension-hud input{height:22px;padding:0 2px}.dimension-hud small{display:block}.dimension-hud small[hidden]{display:none}

.drawing-help{margin:12px 0;font-size:12px;line-height:1.5}.drawing-help summary{cursor:pointer;color:#315763;font-weight:600}.drawing-help p{margin:10px 0}

.language-menu{position:relative}.language-menu summary{display:flex;align-items:center;justify-content:center;width:42px;height:38px;border:1px solid #d5e0e4;border-radius:4px;cursor:pointer;list-style:none}.language-menu summary::-webkit-details-marker{display:none}.language-menu>div{position:absolute;right:0;top:44px;z-index:2000;min-width:175px;padding:5px;background:white;border:1px solid #cfdee3;border-radius:5px;box-shadow:0 4px 18px #234d5b22}.language-menu button{display:flex;align-items:center;gap:10px;width:100%;padding:8px;border:0!important;justify-content:flex-start!important}.language-menu button.active{background:#d7eef2}.language-menu svg{flex-shrink:0}.header-actions{overflow:visible}
.fitting-menu-icons{display:flex;gap:5px;margin:5px 0 10px}.joint-menu .fitting-menu-icons button{width:48px;height:42px;padding:6px;border:1px solid #d6e1e5}.fitting-menu-icons svg{width:32px;height:24px}.joint-menu .fitting-menu-icons button[aria-pressed="true"]{background:#d1edf2;border-color:#268ca1;color:#076d84}
.joint-menu:has(.fitting-choice){width:265px;padding:10px}.joint-menu .fitting-choice{position:relative;width:72px;height:60px;padding:2px}.fitting-choice svg{width:100%;height:100%}.fitting-tip{visibility:hidden;opacity:0;pointer-events:none;position:absolute;left:100%;top:0;width:190px;background:#264550;color:white;padding:8px;border-radius:5px;z-index:2;white-space:normal}.fitting-tip svg{display:block;width:174px;height:130px;color:#d5f2f7}.fitting-choice:hover .fitting-tip,.fitting-choice:focus-visible .fitting-tip{visibility:visible;opacity:1}.fitting-panel-error{color:#a32c27;max-width:245px;font-size:12px}.joint-menu>small{display:block;max-width:245px;white-space:normal}
.joint-menu .fitting-menu-icons .fitting-choice{width:72px;height:60px}.joint-menu .fitting-choice>svg{width:100%;height:100%}.joint-menu.tip-left .fitting-tip{left:auto;right:100%}
.fitting-view-input{position:fixed;z-index:1500;display:flex;align-items:center;gap:3px;background:#fff;border:1px solid #ce7925;border-radius:5px;padding:4px 6px;color:#315763;font:14px ui-monospace,monospace}.fitting-view-input[hidden]{display:none}.fitting-view-input input{width:76px;padding:0;border:0;min-height:22px;font:inherit;outline:0}.fitting-view-input small[hidden]{display:none}.fitting-view-input.radius-editing{flex-wrap:wrap;min-width:150px}.fitting-view-input.radius-editing small{flex-basis:100%;text-align:right;font-size:11px;color:#315763}.fitting-view-input.radius-magnetic{background:#d7f3f7e8;border-color:#1498af}

/* Help remains readable in the shared footer at narrow window widths. */
footer{min-height:28px;height:auto;flex-wrap:wrap;padding-top:5px;padding-bottom:5px}
footer #step{white-space:normal;overflow:visible;text-overflow:clip;flex:1 1 280px;overflow-wrap:anywhere}
.catalog-tooltip,.fitting-tip{display:none!important}

.fitting-view-menu[hidden]{display:none!important}.fitting-view-menu:not([hidden]){display:block;width:auto;padding:6px}.fitting-view-menu .fitting-menu-icons{margin:0}.fitting-view-menu .fitting-menu-icons .fitting-choice{width:72px;height:60px;padding:2px}

.drawing-menu button.vector-display-choice{width:auto;min-width:180px;padding:7px 12px;display:flex;gap:8px}.vector-display-choice::before{content:"□"}.vector-display-choice[aria-checked="true"]::before{content:"✓";color:var(--accent,#168ca5)}

/* Drawing context card: scale summary, named actions and an explicit display switch. */
.drawing-menu:not([hidden]){width:290px;max-width:calc(100vw - 8px);padding:8px;gap:2px}
.drawing-menu-scale{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:9px 8px 12px;margin-bottom:4px;border-bottom:1px solid var(--line);font-size:12px;color:var(--muted)}
.drawing-menu-scale strong{color:var(--ink,#253d54);font-size:14px;white-space:nowrap}
.drawing-menu button{width:100%;height:auto;min-height:38px;display:flex;align-items:center;justify-content:flex-start;gap:10px;padding:8px;border:0;background:transparent;box-shadow:none;font-size:12px;line-height:1.35;border-radius:5px}
.drawing-menu button .toolbar-icon{width:20px;height:20px;flex:none}
.drawing-menu button:hover:not(:disabled){background:#eaf7fa}
.drawing-menu button.vector-display-choice{width:100%;min-width:0;justify-content:space-between;padding:12px 8px 8px;margin-top:5px;border-top:1px solid var(--line);border-radius:0}
.drawing-menu .vector-display-choice::before{content:none}
.drawing-menu-lever{width:34px;height:20px;flex:none;position:relative;border-radius:12px;background:#a5b7bd;transition:background .12s}
.drawing-menu-lever::after{content:"";position:absolute;left:3px;top:3px;width:14px;height:14px;background:white;border-radius:50%;transition:transform .12s}
.vector-display-choice[aria-checked="true"] .drawing-menu-lever{background:#168ca5}
.vector-display-choice[aria-checked="true"] .drawing-menu-lever::after{transform:translateX(14px)}
.drawing-menu-scale{display:block}.drawing-menu-scale>span{display:block;margin-bottom:4px}.drawing-menu-scale strong{display:block;white-space:normal;overflow-wrap:anywhere}
.drawing-menu-opacity{display:grid;grid-template-columns:1fr auto;align-items:center;gap:8px;padding:12px 8px 8px;border-top:1px solid var(--line);font-size:12px}.drawing-menu-opacity output{color:var(--muted);font-variant-numeric:tabular-nums}.drawing-menu-opacity input{grid-column:1/-1;width:100%;margin:0;accent-color:var(--blue)}
#scaleDialog .scale-presets{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}#scaleDialog .scale-presets button{min-width:0}#scaleDialog .scale-presets .scale-preset-wide{grid-column:1/-1}

/* Circular rotation grips share the panel splitters' inset rail and colours. */
.split-side-handle{position:absolute;z-index:8;display:flex;align-items:center;justify-content:center;width:28px;height:28px;min-width:0;padding:0;border:1px solid #c5d6dc;border-radius:50%;background:#f7fbfc;cursor:grab;touch-action:none;box-shadow:inset 0 0 0 1px white,0 1px 3px #24465318}
.split-side-handle:after{content:'';width:1px;height:12px;background:#8eabb5;box-shadow:-4px 0 #c5d6dc,4px 0 #c5d6dc;border-radius:1px}
.split-side-handle:hover{background:#edf5f7;border-color:#8eabb5}.split-side-handle:active{cursor:grabbing;background:#e3eef2}.split-side-handle[hidden]{display:none}
.split-side-preset-menu{position:fixed;z-index:10020;display:grid;grid-template-columns:repeat(3,36px);grid-template-rows:repeat(3,36px);width:108px;height:108px;align-items:center;justify-items:center;pointer-events:none}
.split-side-preset-menu[hidden]{display:none}
.split-side-preset-menu button{display:grid;place-items:center;width:34px;height:34px;min-width:0;margin:0;padding:3px;border:1px solid #b7d0d7;border-radius:6px;background:#fff;box-shadow:0 3px 10px #24465324;color:#426775;pointer-events:auto}
.split-side-preset-menu button:hover:not(:disabled),.split-side-preset-menu button:focus-visible{border-color:#168da4;background:#e8f6f9;outline:2px solid #168da4;outline-offset:1px}
.split-side-preset-menu button:disabled{opacity:.48;cursor:default;background:#e9f1f3;box-shadow:none}
.split-side-preset-menu svg{display:block;width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.3;stroke-linecap:round;stroke-linejoin:round}
.split-side-preset-menu .preset-fill{fill:#83d0df;stroke:none}.split-side-preset-menu .preset-divider{stroke:#1386a0;stroke-width:1.5}
.split-side-preset-top{grid-column:2;grid-row:1}.split-side-preset-left{grid-column:1;grid-row:2}.split-side-preset-right{grid-column:3;grid-row:2}.split-side-preset-bottom{grid-column:2;grid-row:3}

.split-section-toggle{position:absolute;width:34px;height:56px;margin:0;padding:0;background:transparent;border:0;border-radius:12px;cursor:pointer;z-index:5}.split-section-toggle:focus-visible{outline:2px solid #197b94;outline-offset:2px}
button.split-section-toggle,button.split-section-toggle:hover,button.split-section-toggle[aria-pressed="true"]{background:transparent!important;box-shadow:none!important;border:0!important;color:transparent}

.split-ratio-handle{position:absolute;z-index:8;width:30px;height:22px;min-width:0;padding:0;border:1px solid #c5d6dc;border-radius:7px;background:#f7fbfc;cursor:ns-resize;touch-action:none;box-shadow:inset 0 0 0 1px white,0 1px 3px #24465318}.split-ratio-handle:after{content:'';display:block;width:14px;height:1px;margin:auto;background:#8eabb5;box-shadow:0 -4px #c5d6dc,0 4px #c5d6dc}.split-ratio-handle[hidden]{display:none}

/* The language control is a header action, not a document disclosure section. */
.header-actions .language-menu{margin:0;padding:0;border:0;line-height:1;flex:none}
.header-actions .language-menu>summary{box-sizing:border-box;width:38px;min-width:38px;height:36px;margin:0;padding:0;border:1px solid #d6e0e3;border-radius:3px;background:#fff;box-shadow:0 1px 2px #17313b05}
.header-actions .language-menu>summary svg{display:block;width:26px;height:18px}
.header-actions .language-menu>div{top:calc(100% + 6px)}
.header-actions .language-menu button{width:100%;height:auto;min-height:36px;padding:8px;display:flex}
@media(max-width:1300px){.header-actions .language-menu>summary{width:34px;min-width:34px}}

.drag-fitting-badge{position:fixed;z-index:1100;width:42px;height:38px;padding:3px;border:1px solid #70a7b5;border-radius:5px;background:#f5fbfde8;color:#177b94;pointer-events:none;box-shadow:0 2px 5px #23465116}
.drag-fitting-badge svg{width:100%;height:100%}
.drag-fitting-badge.rotation-only{width:29px;height:29px;padding:0;border:0;background:transparent;box-shadow:none;color:#264a5e;filter:drop-shadow(0 1px 1px #fff)}
.creation-fitting-palette{position:fixed;z-index:1200;width:260px;padding:8px;background:#fbfdfe;border:1px solid #b9cbd0;border-radius:8px;box-shadow:0 4px 16px #23465124}
.creation-fitting-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:5px}
.creation-fitting-grid .fitting-choice{min-width:0;width:100%;height:52px;padding:5px}
.creation-fitting-palette .fitting-menu-icons{margin-top:8px;padding-top:8px;border-top:1px solid #d9e3e6}
.drag-fitting-badge[hidden],.creation-fitting-palette[hidden]{display:none}

.tee-variant-choices{display:flex;gap:6px;margin:8px 0}.tee-variant-choices button,.joint-menu .fitting-menu-icons [data-tee-group="variant"]{flex:1;width:auto;height:auto;min-height:36px;padding:6px;white-space:normal;font-size:12px}.tee-variant-choices button[aria-pressed="true"]{background:#d1edf2;border-color:#268ca1;color:#076d84}

.creation-fitting-grid .fitting-choice{position:relative}.angle-choice-mark{position:absolute;right:4px;bottom:1px;font-size:13px;line-height:1}
.creation-fitting-palette .fitting-choice[aria-pressed="true"]{background:#d7edf0;border-color:#318c9c;color:#246678}
/* Shared contract for every current and future floating fitting icon set. */
:root{--fitting-choice-width:72px;--fitting-choice-height:60px;--fitting-icon-width:60px;--fitting-icon-height:48px;--fitting-icon-stroke:1.5px}
.fitting-choice,.fitting-menu-icons>button:has(>svg){box-sizing:border-box;width:var(--fitting-choice-width)!important;min-width:var(--fitting-choice-width)!important;max-width:var(--fitting-choice-width)!important;height:var(--fitting-choice-height)!important;padding:5px!important;display:inline-flex;align-items:center;justify-content:center;flex:0 0 var(--fitting-choice-width)!important}
.fitting-choice>svg,.fitting-menu-icons>button>svg{display:block;width:var(--fitting-icon-width)!important;height:var(--fitting-icon-height)!important;flex:none}
.fitting-choice>svg :is(path,line,rect,circle,polyline,polygon,ellipse),.fitting-menu-icons>button>svg :is(path,line,rect,circle,polyline,polygon,ellipse){vector-effect:non-scaling-stroke;stroke-width:var(--fitting-icon-stroke)}
.creation-fitting-palette{width:max-content;max-width:calc(100vw - 16px)}
.creation-fitting-grid{grid-template-columns:repeat(4,var(--fitting-choice-width))}
.creation-fitting-palette.round-fitting-config{width:min(420px,calc(100vw - 24px));max-height:80vh;overflow:auto;padding:14px;display:flex;flex-direction:column;gap:10px}
.round-fitting-heading{font-size:15px;color:#284e5a}.round-fitting-section{display:flex;flex-direction:column;gap:4px}.round-fitting-title{font-size:12px;font-weight:650;color:#526970}
.round-fitting-options{display:flex;flex-wrap:wrap;gap:5px}.round-fitting-option{min-height:31px;padding:4px 9px;border:1px solid #b9cbd0;border-radius:5px;background:#fff;color:#284e5a;font:inherit;cursor:pointer}.round-fitting-option:hover{border-color:#388c9b;background:#edf8f9}.round-fitting-option.selected,.round-fitting-options.blue .round-fitting-option.selected{border-color:#2a8da1;background:#d7eef4;color:#13647a;font-weight:700}.round-fitting-options.blue .round-fitting-option{color:#177c99;border-color:#a5c8d3}
.round-fitting-note,.round-fitting-catalogue{font-size:12px;color:#526970}.round-fitting-actions{display:flex;gap:7px;justify-content:flex-end;border-top:1px solid #d9e3e6;padding-top:10px}
.round-bend-option>svg .round-bend-outline{stroke-width:1.5px!important}
.round-bend-option>svg .round-bend-rims{stroke-width:1.2px!important}
.round-bend-option>svg .round-bend-axis{stroke-width:.8px!important}
.round-bend-option>svg .round-bend-seams{stroke-width:.85px!important}
.round-bend-option>svg text{fill:currentColor;stroke:none;font:700 8px system-ui,sans-serif}
.round-bend-option>svg .round-bend-ratio-value{font-size:11px}

.dimension-hud.with-offset{display:grid;grid-template-columns:auto 1fr;height:auto;min-width:112px;width:max-content}.dimension-hud .outlet-offset{grid-column:1 / -1;border-top:1px solid #ce792540;padding-top:3px;text-align:right}.dimension-hud .outlet-offset[hidden]{display:none}
.dimension-hud.with-offset[hidden]{display:none}

.dimension-hud.length-held{min-width:138px}
.dimension-hud:has(.outlet-offset:not([hidden])){min-width:150px}
.dimension-hud.height-offset-drag{width:max-content;min-width:150px;max-width:none}.dimension-hud.with-offset{max-width:none}.dimension-hud small{flex-shrink:0}
.dimension-hud.round-radius-hud{grid-template-columns:auto max-content;min-width:0}.dimension-hud.round-radius-hud small{width:auto;text-align:left;display:flex;align-items:center;gap:5px}.dimension-hud.round-radius-hud .outlet-offset{display:block;text-align:right}.round-angle-axes{width:48px;height:44px;flex:none;overflow:visible}.round-angle-axes line{stroke:#78afbd;stroke-width:1.2;stroke-dasharray:5 2 1 2;stroke-linecap:round}.round-angle-axes line.active{stroke:#087f9b;stroke-width:2}

.preview-viewport.projection-scroll,.preview-dialog .preview-viewport.projection-scroll{overflow:auto;overscroll-behavior:contain}
.preview-viewport.projection-scroll>svg{max-width:none;max-height:none;flex:none;display:block;margin:auto}

.preview-views :is([data-view="front"],[data-view="side"],[data-view="top"]) .toolbar-icon>path:first-child{stroke-width:.8}.preview-views :is([data-view="front"],[data-view="side"],[data-view="top"]) .toolbar-icon>.accent{stroke:currentColor;stroke-width:2}

.preview-views .toolbar-icon .view-direction{fill:currentColor;stroke:none}

.preview-views .toolbar-icon .view-direction-gap{fill:white;stroke:white;stroke-width:2;stroke-linejoin:round}
.preview-views button.active .toolbar-icon .view-direction-gap{fill:#e5f3f7;stroke:#e5f3f7}

.folded-height-input{display:grid;grid-template-columns:auto 76px}.folded-height-input .height-context{grid-column:1 / -1;border-top:1px solid #ce792540;padding-top:4px;text-align:right;font:inherit}

.fitting-choice[data-recommended="true"]{box-shadow:inset 0 0 0 2px #288858}

.preview-viewport.projection-single{position:relative;overflow:hidden}
.preview-viewport.projection-single>svg{max-width:none;max-height:none;margin:0}

/* Part names retain their translated spelling and render consistently in capitals. */
#rows tr[data-id] > td:nth-child(2), #details .position-primary + h2, .catalog-tooltip, .fitting-tip { text-transform: uppercase; }

.schedule-bill-position{display:flex;align-items:center;gap:9px;padding:6px 12px;border-bottom:1px solid var(--line);background:#f4f8f9;font-size:11px;color:#54707a}.schedule-bill-position[hidden]{display:none}.schedule-bill-position select{min-width:0;max-width:100%;flex:1;padding:4px;border:1px solid #d4e0e3;border-radius:3px;background:white;color:#274c59}

/* Source bill and working bill share the lower workspace without altering the drawing. */
#schedulePane.bill-mode>.schedule-head,#schedulePane.bill-mode>.schedule-devices,#schedulePane.bill-mode>.schedule-bill-position,#schedulePane.bill-mode>.table-scroll,#schedulePane.bill-mode>.table-note{display:none}
#schedulePane .bill-workspace[hidden]{display:none}
.bill-workspace{display:flex;flex:1;min-height:0;min-width:0;flex-direction:column;background:#f8fbfc;color:#294c59}
.bill-empty{margin:auto;max-width:490px;padding:32px;text-align:center}.bill-empty h2{margin:0 0 12px;font-size:19px}.bill-empty p{line-height:1.5;color:#58717b}.bill-empty button{margin-top:12px}
.bill-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 13px;background:white;border-bottom:1px solid #d6e3e7}.bill-toolbar>div:first-child{min-width:0;display:flex;flex-direction:column;gap:2px}.bill-toolbar strong{font-size:15px}.bill-toolbar span{max-width:450px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}.bill-toolbar small{font-size:10px;color:#69818a}.bill-actions{display:flex;align-items:center;gap:6px;flex:none}.bill-actions button{font-size:11px;white-space:nowrap}
.bill-mapping{flex:none;border-bottom:1px solid #d6e3e7;background:#f3f8fa;font-size:11px}.bill-mapping summary{cursor:pointer;padding:7px 13px;font-weight:650}.bill-mapping-top,.bill-mapping-fields{display:flex;align-items:end;gap:7px;flex-wrap:wrap;padding:0 13px 8px}.bill-mapping label{display:flex;flex-direction:column;gap:3px;color:#4d6a76}.bill-mapping input,.bill-mapping select{height:28px;max-width:150px;border:1px solid #cbdde2;border-radius:3px;background:white;color:#234854;font:inherit}.bill-mapping-top select{max-width:270px}.bill-mapping input{width:65px;padding:0 5px}.bill-mapping button{height:28px;padding:4px 10px;font-size:11px}.bill-mapping p{margin:0;padding:0 13px 8px;color:#6a8189;font-size:10px}.bill-mapping-top .bill-all-columns{flex-direction:row;align-items:center;gap:5px;white-space:nowrap}.bill-mapping-top .bill-all-columns input{width:14px;height:14px;accent-color:#168eae}
.bill-pair{display:grid;grid-template-columns:minmax(120px,1fr) 42px minmax(120px,1fr);gap:4px;position:relative;flex:1;min-height:0;min-width:0;padding:7px}.bill-pair.source-collapsed{grid-template-columns:minmax(0,1fr)}.bill-pair>section{display:flex;flex-direction:column;min-width:0;min-height:0;border:1px solid #d8e4e8;border-radius:4px;background:white;overflow:hidden}.bill-pair h3{display:flex;align-items:baseline;justify-content:space-between;gap:6px;margin:0;padding:9px 10px;border-bottom:1px solid #e1e9ec;font-size:12px}.bill-pair h3 small{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#6f8790;font-weight:400}
.bill-preview-scroll,.bill-source-scroll,.bill-decision-scroll{flex:1;min-height:0;min-width:0;overflow:auto;scrollbar-gutter:stable}.bill-pair table{border-collapse:separate;border-spacing:0;width:max-content;min-width:100%;font-size:11px}.bill-pair th,.bill-pair td{padding:6px 7px;border-right:1px solid #edf2f3;border-bottom:1px solid #e5edef;white-space:nowrap;text-align:left;max-width:420px;overflow:hidden;text-overflow:ellipsis}.bill-pair thead th{position:sticky;top:0;z-index:2;background:#eaf3f5;color:#496774;font-size:10px;font-weight:650}.bill-preview td:nth-child(2){min-width:180px}.bill-preview td:last-child,.bill-source th:first-child{font-variant-numeric:tabular-nums}.bill-preview-row.group td{font-weight:700;background:#e7f2f5;color:#275669}.bill-pair tbody tr{cursor:pointer}.bill-pair tbody tr:hover td,.bill-pair tbody tr:hover th{background:#eaf7fa}.bill-pair tbody tr.selected>td,.bill-pair tbody tr.selected>th{background:#ceeef4;box-shadow:inset 0 1px #81c7d3,inset 0 -1px #81c7d3}.bill-source-row.outside{opacity:.68}
.bill-pair h3{height:38px;box-sizing:border-box;align-items:center}.bill-pair thead tr{height:34px}.bill-pair tbody tr{height:34px}.bill-pair tbody td,.bill-pair tbody th{height:34px;box-sizing:border-box;padding-top:3px;padding-bottom:3px}.bill-source-row select{height:24px}.bill-preview-row:not(.group) td:only-child{color:transparent}
.bill-decisions h3{justify-content:center;padding-left:2px;padding-right:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bill-decisions h3{font-size:10px;color:#7a8589}.bill-decisions h3 svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;flex:none}.bill-decision-scroll{scrollbar-width:none}.bill-decision-scroll::-webkit-scrollbar{display:none}.bill-decisions table{width:100%;min-width:0;table-layout:fixed}.bill-decisions th,.bill-decisions td{text-align:center;padding-left:2px;padding-right:2px;border-right:0}.bill-decisions th{height:34px}.bill-decision-button{display:inline-flex;align-items:center;justify-content:center;width:30px;height:27px;padding:2px;border:0;border-radius:4px;background:transparent;color:#71848c;cursor:pointer}.bill-decision-button:hover,.bill-decision-button:focus-visible{background:#e5f1f4;outline:1px solid #89bbc7}.bill-decision-button:disabled{cursor:default;opacity:.75}.bill-decision-button svg,.bill-decision-menu svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;flex:none}.bill-decision-empty{color:#a9b5ba}.kind-item,.kind-device{color:#258067}.kind-ignore,.kind-review{color:#c34749}.kind-projectGroup,.kind-section{color:#7a8589}.bill-splitter{position:absolute;z-index:5;top:0;bottom:0;width:12px;cursor:col-resize;touch-action:none;user-select:none;outline:0}.bill-splitter-indicator{position:absolute;z-index:1;left:50%;top:var(--split-hover-y,50%);display:flex;align-items:center;justify-content:center;width:28px;height:22px;transform:translate(-50%,-50%);border:0;border-radius:0;background:transparent;box-shadow:none;text-shadow:none;filter:none;color:#4d7f8b;font-size:9px;line-height:1;opacity:0;pointer-events:none}.bill-splitter:hover .bill-splitter-indicator,.bill-splitter:focus-visible .bill-splitter-indicator,.bill-splitter.dragging .bill-splitter-indicator{opacity:1}.bill-decision-menu{position:fixed;z-index:1500;display:flex;flex-direction:column;gap:2px;min-width:190px;padding:5px;border:1px solid #bdd1d7;border-radius:7px;background:white;box-shadow:0 8px 25px #294c5933}.bill-decision-menu button{display:flex;align-items:center;gap:10px;width:100%;padding:7px 9px;border:0;border-radius:4px;background:transparent;text-align:left;font-size:12px;font-family:inherit;cursor:pointer}.bill-decision-menu button:hover,.bill-decision-menu button:focus-visible{background:#e9f4f6;outline:0}.bill-decision-menu button[aria-checked=true]{background:#e0f1f4;font-weight:700}
.bill-version-note{flex:none;margin:0;padding:5px 13px;background:#fff9e9;color:#7b6122;font-size:11px}.bill-toolbar{flex-wrap:wrap}.bill-actions{flex-wrap:wrap;justify-content:flex-end}.bill-pair:not(.source-collapsed) .bill-preview-scroll,.bill-pair:not(.source-collapsed) .bill-decision-scroll{overflow-y:hidden}.bill-pair.source-collapsed .bill-preview-scroll{overflow-y:auto}
.bill-actions .bill-action-icon{width:32px;height:30px;padding:4px;border:1px solid #d9e5e9;border-radius:4px;background:white;color:#526d7a}.bill-actions .bill-action-icon:hover,.bill-actions .bill-action-icon:focus-visible{background:#eff8fb;border-color:#94c6d1}.bill-actions .bill-action-icon.active{background:#e5f3f7;border-color:#96c6d1;color:#087b96}.bill-actions .bill-action-icon .toolbar-icon{width:20px;height:20px}.bill-version-wrap{position:relative;display:flex}.bill-versions{position:absolute;right:0;top:calc(100% + 6px);z-index:40;width:min(500px,calc(100vw - 24px));max-height:330px;overflow:auto;border:1px solid #bdd1d7;border-radius:6px;background:white;box-shadow:0 9px 28px #294c5940}.bill-versions[hidden],.bill-mapping[hidden]{display:none}.bill-versions table{width:100%;border-collapse:collapse;font-size:11px}.bill-versions th,.bill-versions td{padding:8px 9px;border-bottom:1px solid #e4ecef;text-align:left}.bill-versions th{position:sticky;top:0;z-index:1;background:#eaf3f5;color:#496774;font-weight:650}.bill-versions th:last-child,.bill-versions td:last-child{text-align:center;width:46px}.bill-versions td:nth-child(2){max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bill-versions tbody tr{cursor:pointer}.bill-versions tbody tr:hover{background:#eef8fa}.bill-versions tbody tr.selected{background:#e1f2f6}.bill-versions input{accent-color:#168eae;cursor:pointer}
.bill-pair tbody tr.collapsed-run td,.bill-pair tbody tr.collapsed-run th{background:#f8fafb;border-bottom:1px dashed #ccd9de}.bill-pair tbody tr.collapsed-run:hover td,.bill-pair tbody tr.collapsed-run:hover th{background:#f1f8fa}.bill-decision-button.collapsed-button svg{width:24px;height:24px;stroke-width:1.9}.bill-decision-menu button:disabled{cursor:default;opacity:.7}
.bill-new-position{font-size:20px!important;line-height:1}.bill-manual-list{width:100%;margin-top:20px;border-collapse:collapse;text-align:left;font-size:12px}.bill-manual-list td{padding:7px;border-bottom:1px solid #dce8eb}.bill-manual-list tr{cursor:pointer}.bill-manual-list tr:hover{background:#eaf7fa}.bill-position-detail h2{margin:2px 0 4px}.bill-position-id{display:block;overflow-wrap:anywhere;color:#81939a;font-size:10px;margin-bottom:16px}.bill-position-field{padding:7px 0;border-top:1px solid #e6eef0}.bill-position-field-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:5px}.bill-position-field-head label{font-size:11px;font-weight:650;color:#456570}.bill-position-field input{width:100%;box-sizing:border-box;padding:7px;border:1px solid #cadbe0;border-radius:4px;font:inherit;font-size:12px;color:#294c59;background:white}.bill-history-toggle{width:22px;height:22px;padding:2px;border:0;background:transparent;color:#8da4ad;cursor:pointer}.bill-history-toggle:hover,.bill-history-toggle:focus-visible{color:#187e97;background:#edf7fa}.bill-history-toggle svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.5;transition:transform .15s}.bill-history-toggle[aria-expanded=true] svg{transform:rotate(180deg)}.bill-position-history[hidden]{display:none}.bill-position-history{overflow-x:auto;margin-top:8px}.bill-position-history table{border-collapse:collapse;width:100%;font-size:10px}.bill-position-history th,.bill-position-history td{padding:5px 4px;text-align:left;vertical-align:top;border-bottom:1px solid #e7eef0;overflow-wrap:anywhere}.bill-position-history th{color:#6f858c;font-weight:600}.bill-position-history td:nth-child(2){white-space:nowrap}
.bill-position-detail .identity-card{margin:10px 0 16px}.bill-position-detail #positionQR{grid-column:2;grid-row:1/3}.bill-position-detail #positionQR svg{display:block;width:80px;height:80px}
.bill-decision-menu .bill-collapse-option{box-sizing:border-box;width:calc(100% - 14px);margin-left:14px;padding-left:16px;font-size:11px}.bill-decision-menu .bill-collapse-option svg{width:18px;height:18px;stroke-width:1.9}
.bill-preview-row td[data-field]{cursor:text}
.bill-preview-row td[data-field],.bill-preview-row.section [data-heading-text],.bill-device-child td[data-subposition-code]{cursor:text!important;user-select:text}
.bill-device-detail-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.bill-device-detail-title h2{margin:0}.bill-device-add{width:30px;height:30px;padding:0;border:1px solid #c9dce1;border-radius:5px;background:white;color:#28768a;font-size:20px;line-height:1;cursor:pointer}.bill-device-add:hover,.bill-device-add:focus-visible{background:#e3f5f9}.bill-device-manage{width:100%;border-collapse:collapse;table-layout:fixed;font-size:11px}.bill-device-manage th,.bill-device-manage td{padding:7px 4px;border-bottom:1px solid #e2edef;text-align:left;vertical-align:middle;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bill-device-manage th{color:#496774;font-size:10px;font-weight:650}.bill-device-manage th:first-child{width:65px}.bill-device-manage th:last-child{width:28px}.bill-device-manage tbody tr{cursor:pointer}.bill-device-manage tbody tr:hover{background:#eff8fa}.bill-device-manage tbody tr.selected{background:#dff3f7}.bill-device-manage td[data-device-field]{cursor:text;user-select:text}.bill-device-manage .bill-inline-input{min-width:0}.bill-device-delete{width:24px;height:24px;padding:3px;border:0;border-radius:4px;background:transparent;color:#a45663;cursor:pointer}.bill-device-delete:hover:not(:disabled),.bill-device-delete:focus-visible:not(:disabled){background:#fbeff0}.bill-device-delete:disabled{color:#becad0;cursor:default}.bill-device-delete svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.bill-device-manage th{white-space:normal;line-height:1.2;overflow-wrap:anywhere}
.bill-device-table-scroll{max-width:100%;overflow-x:auto}.bill-device-footer{display:flex;justify-content:flex-start;padding-top:8px}
.bill-shared-marker{display:inline-block;margin-right:4px;color:#187e97;font-weight:700}.bill-shared-marker+.bill-inline-input{width:calc(100% - 18px)}
table.resized-columns{table-layout:fixed!important;min-width:0!important;max-width:none!important}table.resized-columns th,table.resized-columns td{box-sizing:border-box;min-width:0!important;max-width:none!important;width:auto!important}.column-resize-hover{box-shadow:inset -2px 0 #168eaa!important}
.bill-add-row .bill-new-position{width:32px;height:30px;padding:4px;border:1px solid #d9e5e9;border-radius:4px;background:white;color:#526d7a;font-size:20px!important;line-height:1}.bill-add-row .bill-new-position:hover,.bill-add-row .bill-new-position:focus-visible{background:#eff8fb;border-color:#94c6d1}.pane-tabs .trash-schedule-tab{flex:0 0 28px;min-width:28px;max-width:28px;width:28px;padding:0!important}
.bill-toolbar{position:relative;z-index:10}.bill-actions{position:relative}.bill-add-controls{display:flex;align-items:center;gap:10px}.bill-add-controls label{display:inline-flex;align-items:center;gap:5px;color:#58717b;font-size:11px;white-space:nowrap}.bill-add-controls select{max-width:min(210px,40vw);height:28px;padding:3px 22px 3px 7px;border:1px solid #c9dce1;border-radius:4px;background:white;color:#294c59;font:inherit;cursor:pointer}.bill-insertion-circle-menu{position:absolute;top:calc(100% + 7px);z-index:30;display:grid;min-width:170px;max-width:min(230px,calc(100vw - 24px));max-height:240px;overflow-y:auto;padding:4px;border:1px solid #bdd1d7;border-radius:6px;background:white;box-shadow:0 9px 28px #294c5940}.bill-insertion-circle-menu button{width:100%;padding:7px 9px;border:0;border-radius:3px;background:white;color:#294c59;text-align:left;overflow:hidden;text-overflow:ellipsis}.bill-insertion-circle-menu button:hover,.bill-insertion-circle-menu button:focus-visible{background:#eff8fb}.bill-insertion-circle-menu button[aria-pressed="true"]{background:#dff1f5;color:#087b96;font-weight:700}
.bill-preview-scroll{position:relative}.bill-insert-line{position:absolute;z-index:8;left:0;right:0;height:3px;background:#16a5bf;box-shadow:0 0 0 4px #16a5bf22;pointer-events:none}.bill-insert-line::before{content:'+';position:absolute;left:2px;top:50%;transform:translateY(-50%);display:grid;place-items:center;width:17px;height:17px;border-radius:50%;background:#138ca7;color:white;font-size:13px}.bill-inserting .bill-preview-scroll{cursor:copy}.bill-inserting .bill-preview-row:hover td{background:#e9f8fb}.bill-add-row td{text-align:left!important;padding-left:7px!important;background:#f8fbfc}.bill-add-row button{width:27px;height:23px;padding:0;border:1px solid #c9dce1;border-radius:5px;background:white;color:#28768a;font-size:18px;line-height:1;cursor:pointer}.bill-add-row button:hover{background:#e3f5f9}.bill-inline-input{box-sizing:border-box;width:100%;min-width:70px;height:26px;border:1px solid #178da5;border-radius:3px;background:white;font:inherit}.bill-preview-row.deleted td{opacity:.55;text-decoration:line-through}.bill-decision-row td{position:relative}.bill-deleted-mark{position:absolute;right:1px;bottom:1px;display:inline-flex;width:10px;height:11px;color:#a45b64}.bill-deleted-mark svg{width:10px!important;height:11px!important;fill:none;stroke:currentColor;stroke-width:1.5}.bill-position-field select{box-sizing:border-box;width:100%;padding:6px;border:1px solid #cadbe0;border-radius:4px;background:white;color:#294c59;font:inherit;font-size:12px}.bill-deleted-note{color:#a34a54;font-weight:650}.bill-position-detail>#bill-position-delete{margin-top:12px}.bill-trash-scroll{flex:1;overflow:auto;padding:8px;background:white}.bill-trash-table{border-collapse:collapse;width:100%;font-size:12px}.bill-trash-table th,.bill-trash-table td{padding:7px 8px;border-bottom:1px solid #e2edef;text-align:left}.bill-trash-table tr.selected,.bill-trash-table tr:hover{background:#e9f6f8}.bill-trash-table button{white-space:nowrap}.trash-schedule-tab{display:flex!important;align-items:center;justify-content:center;width:32px;min-width:32px;padding:0!important}.trash-schedule-tab svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
@media(max-width:1100px){.bill-toolbar span{max-width:250px}.bill-actions button{padding:5px}}
.schedule .pane-tabs-row{position:relative}
.pane-tabs .device-schedule-tab{display:flex;align-items:center;justify-content:space-between;gap:8px}
.device-tab-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.device-tab-chevron{display:grid;place-items:center;align-self:stretch;flex:none;min-width:28px;margin:-5px -12px -5px 0;color:#196f85;cursor:pointer}.device-tab-chevron svg{display:block;width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2.8;stroke-linecap:round;stroke-linejoin:round}.device-tab-chevron:hover,.device-schedule-tab[aria-expanded=true] .device-tab-chevron{background:#dcf0f4;color:#075b72}
.device-tab-menu{position:absolute;top:100%;z-index:30;min-width:220px;max-width:min(420px,calc(100vw - 24px));max-height:300px;overflow:auto;padding:4px;border:1px solid #bed5dc;border-radius:0 0 6px 6px;background:white;box-shadow:0 9px 22px #213c4b26}
.device-tab-menu button{display:block;width:100%;padding:8px 10px;border:0;border-radius:4px;background:transparent;color:#254a58;font:inherit;font-size:12px;text-align:left;cursor:pointer}
.device-tab-menu button:hover,.device-tab-menu button:focus-visible,.device-tab-menu button[aria-selected=true]{background:#e7f4f7}
.device-tab-menu>span{display:block;padding:10px;color:#708892;font-size:12px}
.bill-device-scroll{position:relative;flex:1;min-height:0;overflow:auto;background:white}
.bill-device-table{width:100%;min-width:520px;table-layout:fixed;border-collapse:collapse;font-size:12px;text-align:left}
.bill-device-table th,.bill-device-table td{overflow:hidden;padding:7px 9px;border-bottom:1px solid #e2edef;border-right:1px solid #f0f4f5;vertical-align:top;text-overflow:ellipsis;white-space:nowrap}
.bill-device-table th{position:sticky;top:0;z-index:1;background:#eaf3f5;color:#496774;font-size:10px}
.bill-device-table th:first-child{width:80px}.bill-device-table th:nth-child(3){width:100px}.bill-device-table th:nth-child(4){width:60px}.bill-device-table th:nth-child(5){width:86px}
.bill-device-table tbody tr{cursor:pointer}
.bill-device-table tbody tr:hover,.bill-device-table tbody tr.selected{background:#e7f5f8}

/* Data targets stay a constant screen size as the drawing zoom changes. */
.data-target-layer{position:absolute;inset:0;z-index:3;overflow:hidden;pointer-events:none}
.data-target-plan{position:absolute;inset:0;pointer-events:none}
.data-target{position:absolute;z-index:2;transform:translate(-50%,-50%);display:inline-flex;align-items:center;justify-content:center;gap:4px;min-width:25px;height:25px;padding:0 5px;border:1px solid #79a5af;border-radius:14px;background:#f6fbfcee;color:#468395;box-shadow:0 1px 4px #183d4b22;pointer-events:auto;cursor:grab;line-height:1;touch-action:none}
.data-target.dragging,.data-target.selected.dragging{z-index:7;cursor:grabbing;box-shadow:0 0 0 3px #fff,0 0 0 5px #08758e,0 5px 14px #18485877}
.data-target:hover{background:#e6f5f8;color:#136f85;border-color:#2796ac}
.data-target.selected{z-index:3;background:#08758e;color:white;border-color:#065569;box-shadow:0 0 0 3px #fff,0 0 0 5px #08758e,0 3px 10px #18485866}
.data-target-symbol{font-size:22px;line-height:15px;display:inline-grid;place-items:center;width:15px;height:16px}
.data-target-code{max-width:140px;overflow:hidden;text-overflow:ellipsis;font-size:11px;font-weight:700;letter-spacing:.01em}
.data-target.cluster{background:#edf4f5;color:#256d80}
.data-target.cluster.selected{background:#0a8199;color:white}
.data-target.ocr-match{z-index:4;border-color:#7530ab;background:#f7eaff;color:#632491;box-shadow:0 0 0 2px #fff,0 0 0 5px #a55ad8,0 3px 10px #61278355}
.data-target.ocr-match .data-target-count{border-color:#a55ad8;color:#632491}
.data-target-count{position:absolute;left:calc(100% + 4px);top:50%;transform:translateY(-50%);display:grid;place-items:center;min-width:18px;height:18px;padding:0 4px;border:1px solid #80b2bd;border-radius:9px;background:#fff;color:#176b7e;box-shadow:0 1px 4px #183d4b22;font-size:10px;font-weight:800}
.data-target-menu{position:absolute;z-index:6;display:flex;flex-direction:column;gap:7px;width:224px;max-width:calc(100% - 16px);padding:10px;border:1px solid #aacbd3;border-radius:8px;background:#fff;color:#305663;box-shadow:0 7px 23px #17394840;pointer-events:auto;font-size:12px}
.data-target-menu strong{overflow:hidden;text-overflow:ellipsis;font-size:12px}.data-target-menu label{display:flex;align-items:center;justify-content:space-between;gap:8px}.data-target-menu input{width:65px;padding:5px 6px;border:1px solid #aacbd3;border-radius:4px;text-align:right;font-variant-numeric:tabular-nums}.data-target-menu small{font-size:10px;color:#607e87}.data-target-menu button{padding:5px 8px;text-align:left;font-size:11px}.data-target-menu button.danger{color:#ad3340;border-color:#e8b9bf}.data-target-menu button.danger:hover{background:#fff1f1;border-color:#ca6571}
.data-target-ocr{position:absolute;z-index:5;padding:0;border:2px solid #8a49c0;border-radius:4px;background:#9857c438;box-shadow:0 0 0 3px #fff9,0 2px 8px #5e247e44;pointer-events:auto;cursor:pointer}
.data-target-ocr:hover{background:#9857c466;border-color:#742ba9}
.data-target-ocr-preview{position:absolute;left:0;bottom:calc(100% + 5px);display:flex;flex-direction:column;gap:2px;width:max-content;min-width:125px;max-width:260px;padding:6px 8px;border-radius:5px;background:#7933a9;color:white;text-align:left;box-shadow:0 2px 7px #3f165b42;white-space:normal}
.data-target-ocr-preview strong{font-size:11px;font-weight:800;line-height:1.2}
.data-target-ocr-preview small{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;overflow-wrap:anywhere;font-size:11px;font-weight:550;line-height:1.25}
.data-target-ocr.below .data-target-ocr-preview{bottom:auto;top:calc(100% + 5px)}
.data-target-ocr.align-right .data-target-ocr-preview{left:auto;right:0}
.data-target-source-box{position:absolute;z-index:1;box-sizing:border-box;border:2px solid #168fa8;border-radius:3px;background:#35b9cf1a;box-shadow:0 0 0 2px #fff9;pointer-events:none}
.drawing-ocr-hit{position:absolute;z-index:4;padding:0;border:2px solid #8032af;border-radius:4px;background:#a448cf33;box-shadow:0 0 0 3px #fff9,0 0 10px #6d258f88;pointer-events:auto;cursor:pointer}
.drawing-ocr-hit:hover,.drawing-ocr-hit:focus-visible{background:#a448cf66;border-color:#6c248f;outline:2px solid #fff;outline-offset:1px}
.drawing-ocr-hit.used{z-index:1;border-color:transparent;background:transparent;box-shadow:none}
.drawing-ocr-hit.used:hover,.drawing-ocr-hit.used:focus-visible{z-index:4;border-color:#8032af;background:#a448cf66;box-shadow:0 0 0 3px #fff9,0 0 10px #6d258f88}
.data-target-list{position:absolute;z-index:5;display:flex;flex-direction:column;width:220px;max-height:180px;overflow:auto;padding:4px;border:1px solid #b7d5dc;border-radius:7px;background:#fff;box-shadow:0 5px 18px #17394836;pointer-events:auto}
.data-target-list button{display:block;width:100%;padding:5px 7px;border:0;background:transparent;text-align:left;overflow:hidden;text-overflow:ellipsis;font-size:11px}.data-target-list button:hover{background:#eaf6f8}
.data-target-ghost{position:absolute;display:flex;align-items:center;gap:7px;max-width:280px;padding:5px 8px;border:1px solid #75aeba;border-radius:6px;background:#fffffff2;color:#245b6c;box-shadow:0 2px 10px #1739482b;font-size:11px;white-space:nowrap;pointer-events:none}
.data-target-ghost span{overflow:hidden;text-overflow:ellipsis}.data-target-ghost b{flex:none;color:#187f67}
.bill-target-head,.bill-target-cell{min-width:110px;width:140px;white-space:nowrap}
.bill-target-cell{color:#718b94;font-variant-numeric:tabular-nums}
.target-search-button{display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;padding:0 2px;border:0;background:transparent;color:inherit;cursor:pointer}
.target-search-button:hover,.target-search-button:focus-visible{color:#7736a6;outline:2px solid #aa75ce;outline-offset:1px;border-radius:4px}
.bill-target-cell[data-target-state="none"] .target-search-button{display:none}
.bill-target-cell[data-created-parent-target][data-target-state="none"] .target-search-button{display:inline-flex;color:#97aab1}
.bill-preview-row.selected .bill-target-cell[data-target-state="none"] .target-search-button,.unassigned-positions tr.selected .bill-target-cell[data-target-state="none"] .target-search-button{display:inline-flex;color:#97aab1}
.bill-target-cell .target-status-mark{display:inline-block;min-width:28px;font-size:25px;font-weight:800;line-height:18px;vertical-align:middle}
.bill-target-cell[data-target-state="partial"]{color:#c22f3c;font-weight:750}
.bill-target-cell[data-target-state="excess"]{color:#b82031;font-weight:800}
.bill-target-cell[data-target-state="excess"] .target-status-mark{display:inline-grid;place-items:center;width:28px;height:26px;margin-right:2px;background:#ffe1e5;clip-path:polygon(50% 0,94% 25%,94% 75%,50% 100%,6% 75%,6% 25%);filter:drop-shadow(0 1px 1px #6b172733)}
.bill-target-cell[data-target-state="complete"]{color:#087c42;font-weight:750}
.bill-target-cell[data-target-state="partial"] .target-status-mark,.bill-target-cell[data-target-state="complete"] .target-status-mark{filter:drop-shadow(0 1px 1px #17394832)}
.bill-target-cell[data-target-state="subpositions"]{color:#40778a}
.bill-target-cell[data-target-state="part"]{color:#82949b}
.drawing-target-count{float:right;display:inline-flex;align-items:center;margin-left:5px;color:#158a79;font-weight:700;font-size:10px}
.drawing-ocr-count{float:right;display:inline-flex;align-items:center;margin-left:5px;color:#8433aa;font-weight:800;font-size:10px}
.pane-tabs button[aria-selected=true] .drawing-target-count{color:#0d9d80}
.pane-tabs .drawing-tab{display:flex;align-items:center;gap:4px}
.pane-tabs,.pane-tabs button,.drawing-tab-label{user-select:none;-webkit-user-select:none}
.bill-preview-scroll,.bill-source-scroll,.bill-device-scroll,.bill-circle-scroll,.bill-trash-scroll,.unassigned-positions-scroll,.pane-tabs{overscroll-behavior-x:contain}
.drawing-tab-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pane-tabs .drawing-tab .drawing-target-count,.pane-tabs .drawing-tab .drawing-ocr-count{float:none;flex:none;margin-left:0}
.technical-report-tab svg{width:14px;height:14px;flex:none;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
#drawingPane .pane-tabs-row{position:relative}
.drawing-add-menu{position:absolute;z-index:45;top:100%;display:grid;min-width:174px;padding:4px;background:white;border:1px solid #c7d9de;border-radius:5px;box-shadow:0 8px 24px #1839432b}
.drawing-add-menu button{border:0;text-align:left;padding:8px 10px;font-size:12px}
.drawing-pane.report-active>.toolbar,.drawing-pane.report-active>.canvas-wrap{display:none}
.technical-report-pane[hidden]{display:none}.technical-report-pane{display:flex;flex:1;min-height:0;flex-direction:column;background:#edf3f5}
.report-toolbar,.report-search{display:flex;align-items:center;gap:8px;min-height:43px;padding:5px 10px;background:white;border-bottom:1px solid #d8e4e7}
.report-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;color:#25414d}.report-kind{flex:none;color:#65818c;font-size:10px}.report-page-controls{display:flex;align-items:center;gap:5px;margin-left:auto;font-size:11px;color:#4f6f7b}.report-page-controls[hidden]{display:none}
.report-toolbar button,.report-search button{display:grid;place-items:center;width:30px;height:28px;min-width:30px;padding:0;border:1px solid #d2e0e4;color:#315767;background:white}.report-toolbar button:hover,.report-search button:hover{background:#eaf6f8;border-color:#8ebcc7}.report-delete{margin-left:4px}.report-delete svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.report-search input{flex:1;min-width:80px;height:29px;padding:4px 8px;border:1px solid #c9dce1;border-radius:4px;background:#fff}.report-search-count{color:#67818a;font-size:11px;white-space:nowrap}
.report-body{display:grid;grid-template-columns:minmax(0,1fr) minmax(155px,23%);min-height:0;flex:1}.report-pages{min-width:0;min-height:0;overflow:auto;padding:20px;background:#e9f0f2;overscroll-behavior:contain}.report-page-surface{display:flex;justify-content:center;align-items:flex-start}.report-empty{max-width:430px;margin:60px auto;text-align:center;color:#5e7884;font-size:13px}.report-empty[hidden]{display:none}.report-empty button{display:block;margin:14px auto}
.report-pdf-page{position:relative;flex:none;background:white;box-shadow:0 4px 20px #18333d27}.report-pdf-page canvas{display:block;position:static;width:auto;height:auto;max-width:none;touch-action:auto}.report-pdf-highlights{position:absolute;inset:0;pointer-events:none}.report-pdf-highlight{position:absolute;background:#ffd15c78;border-bottom:2px solid #d99d2d}.report-pdf-highlight.selected{background:#ffb03c9c;outline:2px solid #e36d18}
.report-docx-page{width:min(820px,100%);min-height:100%;padding:44px 54px;background:white;box-shadow:0 4px 20px #18333d22;color:#233945;line-height:1.55;font-size:13px;white-space:pre-wrap;overflow-wrap:anywhere}.report-docx-page p{margin:0 0 13px;color:inherit;line-height:inherit}.report-docx-page h3{font-size:15px;margin:18px 0 8px}.report-docx-row{padding:6px 8px;border-bottom:1px solid #dce7ea}.report-docx-page mark{background:#ffe593}.report-docx-page mark.selected{background:#ffbc55;outline:2px solid #da7d27}
.report-results{min-width:0;min-height:0;overflow:auto;border-left:1px solid #d1e0e4;background:#f9fbfc}.report-result{display:block;width:100%;border:0;border-bottom:1px solid #e1eaed;border-radius:0;background:transparent;padding:8px 10px;text-align:left;white-space:normal}.report-result:hover,.report-result.selected{background:#e5f5f8}.report-result b{display:block;color:#167992;font-size:10px;margin-bottom:3px}.report-result span{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;color:#536d78;font-size:11px;line-height:1.35}
.report-toolbar{flex-wrap:wrap}.report-text-tools{display:flex;align-items:center;flex-wrap:wrap;gap:6px;padding:5px 10px;background:white;border-bottom:1px solid #d8e4e7}.report-text-tools button{display:grid;place-items:center;width:30px;height:28px;padding:0;border:1px solid #d2e0e4;color:#315767;background:white}.report-text-tools [hidden]{display:none}.report-text-tools button:hover{border-color:#8ebcc7;background:#eaf6f8}.report-text-tools svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.report-colors{display:flex;gap:3px}.report-colors button{border-bottom:5px solid var(--report-color)}.report-text-status{font-size:11px;color:#5e7884}.report-page-controls{white-space:nowrap}.report-pages{position:relative;overflow-anchor:none}.report-page-surface{position:relative;flex-direction:column;align-items:center;justify-content:flex-start;gap:20px;min-height:100%}.report-body{grid-template-columns:minmax(0,1fr)}.report-results{display:none}.report-has-search .report-body{grid-template-columns:minmax(0,1fr) minmax(155px,23%)}.report-has-search .report-results{display:block}.report-pdf-page{overflow:hidden;user-select:text;-webkit-user-select:text}.report-pdf-page canvas{position:absolute;left:0;top:0;pointer-events:none}.report-text-layer{position:absolute;inset:0;overflow:hidden;color:transparent;cursor:text;user-select:text;-webkit-user-select:text;line-height:1;font-family:sans-serif;text-size-adjust:none;-webkit-text-size-adjust:none}.report-text-layer span{position:absolute;white-space:pre;transform-origin:0 0;line-height:1;color:transparent}.report-text-layer ::selection{background:#48a9dd66;color:transparent}.report-pdf-highlights{z-index:1}.report-text-layer{z-index:2}.report-user-highlight{position:absolute;transform-origin:0 0;mix-blend-mode:multiply}.report-pdf-highlight{transform-origin:0 0}.report-page-error{position:absolute;top:30px;left:20px;right:20px;color:#963f28;font-size:12px}.report-docx-page{box-sizing:border-box;user-select:text;-webkit-user-select:text}.technical-report-pane:focus,.report-pages:focus{outline:none}
@media(max-width:850px){.report-body{grid-template-columns:minmax(0,1fr)}.report-results{max-height:135px;border-left:0;border-top:1px solid #d1e0e4}.report-docx-page{padding:22px}}
@media(max-width:850px){.report-has-search .report-body{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr) auto}}
.unassigned-positions[hidden]{display:none}.unassigned-positions{flex:none;max-height:36%;min-height:72px;display:flex;flex-direction:column;border-bottom:1px solid #d6e3e7;background:#fff}
.unassigned-positions>.bill-toolbar{flex:none}
.unassigned-positions-scroll{overflow:auto;min-height:0}.unassigned-positions table{width:100%;border-collapse:collapse;font-size:11px}.unassigned-positions th,.unassigned-positions td{padding:5px 8px;text-align:left;border-bottom:1px solid #e7eef0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.unassigned-positions th{position:sticky;top:0;background:#eaf3f5;color:#496774;font-size:10px}.unassigned-positions th:nth-child(2){width:48%}.unassigned-positions tr[data-position-id]{cursor:pointer}.unassigned-positions-scroll>table>tbody>tr[data-position-id]:hover,.unassigned-positions-scroll>table>tbody>tr[data-position-id].selected{background:#e6f5f8}.created-parts-scroll>table>tbody>tr[data-id]:hover{background:#eaf7fa}.created-parts-scroll>table>tbody>tr[data-id].selected{background:#d9f1f5}.created-parts-scroll:has(tr[data-id]:hover)>table>tbody>tr[data-id].selected:not(:hover){background:transparent}
.unassigned-positions.has-created-parts,.schedule.created-only>.unassigned-positions{max-height:100%;flex:1}.created-position-name{white-space:pre-line!important;line-height:1.4}.created-disclosure,.created-header-disclosure{border:0;background:transparent;color:var(--position-disclosure-color);padding:0 6px 0 0;font-size:var(--position-disclosure-size);line-height:1;cursor:pointer}.created-header-disclosure{vertical-align:middle}.created-header-disclosure:disabled{opacity:.35;cursor:default}.created-header-disclosure:not(:disabled):hover,.created-header-disclosure:not(:disabled):focus-visible{color:#0a566e;outline:1px solid #a7d4dd}.created-parts-row>td{padding:0 8px 10px 22px!important;overflow:visible!important}.created-parts-scroll{overflow:visible;max-width:100%}.created-parts-scroll table{min-width:790px}.created-parts-scroll th{position:sticky;top:26px;z-index:2;background:#eaf3f5}.created-parts-scroll th,.created-parts-scroll td{white-space:nowrap!important}.created-quantity{display:inline-flex;align-items:center;gap:3px}.created-quantity input{width:80px;border:1px solid transparent;border-radius:3px;padding:3px;text-align:right;color:inherit;background:transparent}.created-quantity input:hover,.created-quantity input:focus{border-color:#b7d5dc;background:white}.created-quantity.overridden input{color:#a55c20;background:#fff1dc;border-color:#eacb9a;font-weight:700}.created-quantity button{border:0;background:transparent;color:#a55c20;padding:2px 4px}.schedule.created-only>.schedule-head,.schedule.created-only>.schedule-devices,.schedule.created-only>.schedule-bill-position,.schedule.created-only>.table-scroll,.schedule.created-only>.table-note{display:none}
.unassigned-positions-scroll>table>tbody>tr.created-parts-row:hover,.unassigned-positions-scroll>table>tbody>tr.created-parts-row>td{background:#fff}
.unassigned-positions-scroll>table>thead th{z-index:8}
.unassigned-positions-scroll>table>tbody.created-position-group.active-sticky-parent>tr:first-child>td{position:sticky;top:var(--created-main-head-height,26px);z-index:7;background:#fff}
.unassigned-positions-scroll>table>tbody.created-position-group>tr:first-child:hover>td,.unassigned-positions-scroll>table>tbody.created-position-group>tr:first-child.selected>td{background:#e6f5f8}
.unassigned-positions-scroll>table>thead th:nth-child(5),.unassigned-positions-scroll>table>tbody>tr>td:nth-child(5){text-align:right}
.unassigned-positions-scroll>table>tbody>tr>td:nth-child(5){font-variant-numeric:tabular-nums}
.quantity-aligned{display:inline-grid;grid-template-columns:auto 3ch;justify-content:end;white-space:nowrap}
.quantity-fraction{text-align:left}
.created-quantity{justify-content:flex-end}
.created-quantity-reset-space{display:inline-block;width:23px;flex:none}
.created-quantity input{width:78px;font-variant-numeric:tabular-nums}
.created-quantity input.integer-only{padding-right:calc(3px + 3ch)}
.created-quantity button{width:23px;flex:none;text-align:center}
.created-din-toggle{display:inline-flex;align-items:center;gap:5px;border:0;border-radius:4px;padding:3px 5px;background:transparent;color:#111;font:inherit;white-space:nowrap;cursor:pointer}
.created-din-toggle:hover,.created-din-toggle:focus-visible{background:#e6f5f8;outline:1px solid #a7d4dd}
.created-din-toggle .created-disclosure-icon{font-size:var(--position-disclosure-size);line-height:1;color:var(--position-disclosure-color)}
.created-din-row>td{background:#fff;color:#48646f}.created-din-row>td:nth-child(2){padding-left:31px}.created-din-row>td:nth-child(5){font-variant-numeric:tabular-nums;font-weight:600}.created-din-row.overridden>td:nth-child(5){color:#a55c20}
.unassigned-positions-scroll .created-parts-scroll th{top:calc(var(--created-main-head-height,26px) + var(--created-parent-height,26px));z-index:3}
.selected-target-detail{display:flex;flex-direction:column;gap:4px;margin:0 0 12px;padding:10px;border:1px solid #b8d9df;border-radius:7px;background:#edf8fa;color:#25586a;font-size:12px}.selected-target-detail strong{color:#147d96;font-size:10px;letter-spacing:.08em}.selected-target-detail small{color:#68818a}.selected-target-detail button{align-self:flex-start;margin-top:3px;padding:4px 7px;font-size:11px;color:#a54955}
.bill-device-empty{padding:16px;color:#748b94;font-size:12px}
.bill-device-empty-row td{color:#748b94;font-size:12px;font-weight:400}
.bill-tree-toggle{display:inline-grid;place-items:center;width:17px;height:17px;margin-right:4px;padding:0;border:0;background:transparent;color:#438093;cursor:pointer}
.bill-tree-spacer{display:inline-block;width:21px}
.bill-device-child{color:#55727e;background:#f7fafb}
.bill-device-child td:first-child{padding-left:31px;cursor:text}
.bill-device-child.selected,.bill-device-table .bill-preview-row.linked-selected,.bill-pair .bill-preview-row.linked-selected>td{background:#d9f1f5}
.bill-manual-list .bill-preview-row.selected>td,.bill-pair .bill-preview-row.manual.selected>td,.bill-device-table .bill-preview-row.selected>td{background:#ceeef4;box-shadow:inset 0 1px #81c7d3,inset 0 -1px #81c7d3}
.bill-pair tbody tr.range-preview td,.bill-pair tbody tr.range-preview th,.bill-device-table tbody tr.range-preview td,.bill-manual-list tbody tr.range-preview td{background:#def6f2;box-shadow:inset 0 1px #82cbbd,inset 0 -1px #82cbbd}
.bill-pair .bill-preview-row.section td,.bill-manual-list .bill-preview-row.section td,.bill-device-table .bill-preview-row.section td{background:white;color:#385663;font-weight:650}.bill-pair .bill-preview-row.section:hover td,.bill-manual-list .bill-preview-row.section:hover td,.bill-device-table .bill-preview-row.section:hover td{background:#f3fafb}.bill-preview-row.section [data-heading-text]{cursor:text}.bill-preview-row.section .bill-inline-input{width:min(100%,600px)}.bill-inserting .bill-device-scroll{cursor:copy}.bill-inserting .bill-device-table .bill-preview-row:hover td{background:#e9f8fb}.bill-inserting-heading .bill-insert-line::before{content:'✎'}
#schedulePane>.schedule-devices,#sortPositions,#releaseDevice{display:none}
.pane-tabs .add-type-tab{flex:0 0 28px;min-width:28px;max-width:28px;width:28px;padding:0!important;text-align:center;font-size:19px;color:#28768a}
.pane-tabs .add-type-tab:disabled,.pane-tabs .add-type-tab:disabled:hover{color:#a5b3ba;opacity:.55;cursor:default;background:transparent;border-color:transparent}
.bill-circle-filters{display:flex;align-items:end;gap:8px;flex-wrap:wrap;padding:7px 10px;border-bottom:1px solid #dce8eb;background:#f7fbfc;font-size:11px;color:#47636e}
.bill-circle-filters label{display:flex;flex-direction:column;gap:2px}.bill-circle-filters input,.bill-circle-filters select{box-sizing:border-box;height:27px;border:1px solid #c8dbe1;border-radius:4px;background:white;color:#254a58;font:inherit;padding:3px 6px}.bill-circle-filters input{width:min(260px,32vw)}.bill-circle-filters>span{margin-left:auto;white-space:nowrap}
.bill-circle-table.assigning th:first-child,.bill-circle-table.assigning td:first-child{width:34px;min-width:34px;max-width:34px;text-align:center;padding:5px 3px}.bill-circle-table.assigning input[type=checkbox]{accent-color:#168c9e;cursor:pointer}.bill-circle-assignment-row{cursor:pointer}.bill-circle-assignment-row:hover{background:#eaf7fa}.bill-circle-table.assigning th:last-child{width:140px}
.bill-circle-manage{width:100%;border-collapse:collapse;table-layout:fixed;font-size:11px}.bill-circle-manage th,.bill-circle-manage td{padding:7px 4px;border-bottom:1px solid #e2edef;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bill-circle-manage th:first-child{width:auto}.bill-circle-manage th:nth-child(2){width:46px;text-align:center}.bill-circle-manage th:last-child{width:28px}.bill-circle-manage td:nth-child(2){text-align:center}.bill-circle-manage tbody tr{cursor:pointer}.bill-circle-manage tbody tr:hover{background:#eff8fa}.bill-circle-manage tbody tr.selected{background:#dff3f7}.bill-circle-manage td[data-circle-field]{cursor:text;user-select:text}
.bill-circle-mode-toggle{display:grid;place-items:center;flex:none;width:30px;height:30px;padding:4px;border:1px solid #c9dce1;border-radius:5px;background:white;color:#28768a;cursor:pointer}.bill-circle-mode-toggle:hover,.bill-circle-mode-toggle:focus-visible{background:#e3f5f9}.bill-circle-mode-toggle.active{border-color:#168ca2;background:#d9f3f7;color:#086f88}.bill-circle-mode-toggle .toolbar-icon{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.bill-circle-mode-toggle .toolbar-icon .accent{stroke:#168ca2}
.bill-circle-quick-filter{align-self:end;height:27px;border:1px solid #b8d1d8;border-radius:14px;background:white;color:#426773;padding:2px 10px;font-size:11px;cursor:pointer}.bill-circle-quick-filter:hover{background:#eaf7fa}.bill-circle-quick-filter.active{border-color:#168da1;background:#d9f3f7;color:#086f88;font-weight:650}
.bill-preview table :is(th,td):nth-child(4),.bill-manual-list :is(th,td):nth-child(4),.bill-device-table:not(.assigning) :is(th,td):nth-child(4),.bill-trash-table :is(th,td):nth-child(4),.bill-circle-table.assigning :is(th,td):nth-child(5),.unassigned-positions :is(th,td):nth-child(3),.bill-source :is(th,td).bill-source-unit{text-align:center}
.bill-preview table :is(th,td):nth-child(5),.bill-manual-list :is(th,td):nth-child(5),.bill-device-table:not(.assigning) :is(th,td):nth-child(5),.bill-trash-table :is(th,td):nth-child(5),.bill-circle-table.assigning :is(th,td):nth-child(6),.unassigned-positions :is(th,td):nth-child(4),.bill-source :is(th,td).bill-source-quantity{text-align:right}
td[data-field=unit] .bill-inline-input{text-align:center}td[data-field=quantity] .bill-inline-input{text-align:right}

/* Mark positions created in VentiLab at the corner of their code cell only. */
.bill-preview-row.manual td[data-field="code"],.bill-circle-assignment-row.manual td[data-field="code"],.bill-trash-table tr.manual td[data-field="code"],.unassigned-positions tr.manual td:first-child{position:relative}
.bill-preview-row.manual td[data-field="code"]::before,.bill-circle-assignment-row.manual td[data-field="code"]::before,.bill-trash-table tr.manual td[data-field="code"]::before,.unassigned-positions tr.manual td:first-child::before{content:"";position:absolute;top:0;left:0;width:9px;height:9px;background:url(manual-position-corner.svg?v=345) no-repeat center/9px 9px;pointer-events:none}
.bill-pair>.bill-preview{overflow:visible}
.bill-pair .bill-preview-scroll{margin-left:-1px}
.bill-pair .bill-preview-scroll>table{margin-left:1px}
.bill-pair .bill-preview-row.manual td[data-field="code"]{overflow:visible}
.bill-pair .bill-preview-row.manual td[data-field="code"]::before{left:-1px;z-index:1}
.bill-preview-row.note td{background:#fff;color:#526872;font-style:italic}.bill-preview-row.note td:first-child{background:#f4f7f8}
.bill-preview-row.note [data-note-text]{cursor:text;user-select:text}
.bill-manual-list{margin-top:0}
.bill-actions .bill-load-original{height:30px;padding:4px 10px;font-size:11px}

#settingsDialog form>div.aim-setting{display:flex;align-items:center;justify-content:initial;gap:10px;margin:10px 0 14px;padding:5px 8px;border:1px solid var(--line);border-radius:7px;background:#f8fafb}
.model-3d-detail-menu{position:fixed;z-index:10000;display:grid;gap:2px;min-width:210px;padding:5px;border:1px solid #b9d1d8;border-radius:7px;background:#fff;box-shadow:0 8px 28px #183d4a30}
.model-3d-detail-menu[hidden]{display:none}
.model-3d-detail-menu button{position:relative;width:100%;border:0;border-radius:4px;padding:7px 9px 7px 27px;background:transparent;color:#294d5b;font:12px Inter,system-ui,sans-serif;text-align:left;cursor:pointer}
.model-3d-detail-menu button:hover,.model-3d-detail-menu button:focus-visible{background:#e8f5f8;outline:none}
.model-3d-detail-menu button[data-detail][aria-checked="true"]{background:#d9f1f5;color:#0c7289;font-weight:700}
.model-3d-detail-menu button[data-detail][aria-checked="true"]::before{content:'✓';position:absolute;left:9px}
.model-3d-detail-menu button[data-drawing]{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:4px;border-top:1px solid #d8e4e8;border-radius:0 0 4px 4px;padding:10px 9px 6px}
.model-3d-detail-menu button[data-drawing]:disabled{opacity:.5;cursor:default}
.model-3d-drawing-switch{position:relative;flex:none;width:31px;height:17px;border:1px solid #9aafb6;border-radius:10px;background:#d7e0e3;transition:background .15s,border-color .15s}
.model-3d-drawing-switch::after{content:'';position:absolute;top:2px;left:2px;width:11px;height:11px;border-radius:50%;background:#fff;box-shadow:0 1px 2px #183d4a40;transition:transform .15s}
.model-3d-detail-menu button[data-drawing][aria-checked="true"] .model-3d-drawing-switch{border-color:#0e8199;background:#168da4}
.model-3d-detail-menu button[data-drawing][aria-checked="true"] .model-3d-drawing-switch::after{transform:translateX(14px)}
#aimPreview{position:static;display:block;flex:none;width:46px;height:46px;touch-action:auto}
.aim-slider{position:relative;display:flex;align-items:center;flex:1;min-width:0;height:34px}
.aim-slider input[type="range"]{width:100%;margin:0;accent-color:var(--blue)}
.aim-default-mark{position:absolute;left:calc(25% + 4px);bottom:0;width:2px;height:8px;border-radius:1px;background:#758996;pointer-events:none}
.aim-setting output{min-width:44px;text-align:right;font-size:12px;font-variant-numeric:tabular-nums;color:#456274}

.hardware-row,.hardware-row td,.hardware-subitem td,.hardware-subitem:hover td,.hardware-subitem.selected td{background:#fff}.hardware-subitem td:first-child{padding-left:24px}.hardware-subitem td:nth-child(2){padding-left:22px}.hardware-subitem{cursor:pointer}.hardware-row.selected td:first-child,.hardware-subitem.selected td:first-child{box-shadow:inset 3px 0 #278ba1}.hardware-row.selected,.hardware-subitem.selected{color:#176f84}
.created-position-group>.created-hardware-row td:first-child{padding-left:22px}.created-position-group>.hardware-subitem td:first-child{padding-left:42px}.created-position-group>.created-hardware-row{scroll-margin-top:calc(var(--created-main-head-height,26px) + var(--created-parent-height,72px) + 4px)}.created-position-group>.hardware-subitem{scroll-margin-top:calc(var(--created-main-head-height,26px) + var(--created-parent-height,72px) + var(--created-hardware-height,28px) + 4px)}.unassigned-positions-scroll>table>tbody.created-position-group.active-sticky-parent>tr.created-hardware-row>td{position:sticky;top:calc(var(--created-main-head-height,26px) + var(--created-parent-height,72px));z-index:6;background:#fff}
.unassigned-positions-scroll>table>thead>tr>th:nth-child(5),.unassigned-positions-scroll>table>tbody>tr>td:nth-child(5){text-align:right}
.created-parts-scroll tr[data-id]{scroll-margin-top:calc(var(--created-main-head-height,26px) + var(--created-parent-height,72px) + 24px);scroll-margin-bottom:4px}
.created-parts-scroll tr[data-id].selected td{background:#d9f1f5;box-shadow:inset 0 1px #81c7d3,inset 0 -1px #81c7d3}
#details #hardwareItemParent{border:0;background:transparent;color:#16768b;padding:0;margin:0 0 14px;cursor:pointer;text-align:left}
#details #hardwareItemQR{grid-column:2;grid-row:1/3}
#details #hardwareItemNote{display:block;width:100%;box-sizing:border-box;border:1px solid var(--line);border-radius:4px;padding:9px;margin:6px 0;color:#24374b;font:inherit;resize:vertical}

/* Drawing cutouts */
.cutout-tool{margin-left:auto}.cutout-tool[aria-pressed=true]{background:#d5edf3;color:#087e9c;border-color:#3b9db5}.cutout-tool svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.4}.cutout-panel-list{display:grid;gap:5px;margin:10px 0}.cutout-panel-row{display:flex;align-items:center;gap:8px;padding:5px;border:1px solid #d6e4e8;border-radius:4px}.cutout-panel-row.active{border-color:#3397af;background:#e8f6f9}.cutout-panel-row button{flex:1;min-width:0;text-align:left}.cutout-panel-row input{flex:none}.cutout-panel-actions{display:flex;gap:8px;align-items:center}.cutout-panel-actions input{min-width:0;flex:1}.cutout-panel-actions button{flex:none}.cutout-panel-hint{color:#526e78;font-size:12px;line-height:1.4}

.cutout-panel-switch{appearance:none;width:30px;height:17px;border:1px solid #8daab4;border-radius:12px;background:#dce8eb;position:relative;cursor:pointer;vertical-align:middle}.cutout-panel-switch::after{content:"";position:absolute;top:2px;left:2px;width:11px;height:11px;border-radius:50%;background:white;box-shadow:0 1px 2px #2443}.cutout-panel-switch:checked{background:#1591ad;border-color:#087d99}.cutout-panel-switch:checked::after{left:15px}.cutout-panel-switch:focus-visible{outline:2px solid #0b809d;outline-offset:2px}
.cutout-validity-option{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:10px 0;padding:8px 2px;color:#355a66;font-size:13px}.cutout-validity-option .cutout-panel-switch{flex:none}.cutout-validity-option .cutout-panel-switch:disabled{opacity:.45;cursor:default}
.cutout-source-preview{display:grid;justify-items:center;gap:5px;margin:10px 0;padding:9px;border:1px solid #d4e3e8;border-radius:5px;background:#f5f9fa}.cutout-source-preview canvas{position:static;display:block;justify-self:center;width:auto;height:auto;max-width:100%;max-height:150px;box-shadow:0 1px 5px #18374424;background:#fff}.cutout-source-preview small{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#526e78}
form.cutout-panel-actions{display:grid;gap:8px;align-items:stretch;margin:10px 0}form.cutout-panel-actions label{display:grid;gap:4px;color:#526e78;font-size:12px}form.cutout-panel-actions input{width:100%;box-sizing:border-box}form.cutout-panel-actions small{color:#526e78;line-height:1.35}form.cutout-panel-actions button{justify-self:start}

#localDefaultSetting.local-default-setting{margin:18px 0 12px;padding:12px;border:1px solid var(--line);border-radius:7px;background:#f8fafb}
#localDefaultSetting[hidden]{display:none}
#localDefaultSetting button{width:100%}
#catalog .reuse-offcuts{color:#208ba1;grid-column:1/-1;justify-self:center}#catalog .catalog-column:has([data-duct-family="flex"])>[data-kind="flex"]{grid-column:1/-1;justify-self:center}#catalog .reuse-offcuts svg{fill:none;stroke:none}#catalog .reuse-offcuts text{fill:currentColor;stroke:none}
#catalog .reuse-offcuts:hover,#catalog .reuse-offcuts:focus-visible{color:#086e84}

.created-parts-scroll .round-position-groups,.created-parts-scroll .round-position-groups table{min-width:560px}.round-position-groups tr[data-round-group-row]{cursor:pointer}.round-position-groups tr[data-round-group-row].selected td{background:#d9f1f5}

.unassigned-positions-scroll .round-position-groups th{top:calc(var(--created-main-head-height,26px) + var(--created-parent-height,26px) + var(--created-hardware-height,0px))}

.unassigned-positions-scroll.compact-focus .created-position-name{white-space:nowrap!important;max-width:280px}.unassigned-positions-scroll.compact-focus>table>tbody.created-position-group.active-sticky-parent>tr.created-hardware-row>td{position:static}

.round-group-row{cursor:pointer}.round-group-row>td:first-child{padding-left:22px}.round-physical-row>td:first-child{padding-left:42px}.round-group-row.selected>td,.round-physical-row.selected>td{background:#d9f1f5}
.unassigned-positions-scroll>table>tbody>tr.round-group-row:not(.selected)>td,.unassigned-positions-scroll>table>tbody>tr.round-physical-row:not(.selected)>td{background:#fff}

.unassigned-positions-scroll .created-parts-scroll th{top:calc(var(--created-main-head-height,26px) + var(--created-parent-height,26px) + var(--created-hardware-height,0px));z-index:5}
.unassigned-positions-scroll.compact-focus .created-parts-scroll th{position:sticky;top:calc(var(--created-main-head-height,26px) + var(--created-parent-height,26px))}

.dimension-hud.round-reducer-hud{width:max-content;max-width:none;height:auto;min-height:28px}.dimension-hud.round-reducer-hud small{width:auto;min-width:70px}

#schedulePane tr.spiro-lineage:not(.selected)>td{background:#d9f2df;color:#467757;box-shadow:inset 0 1px #a7d8b4,inset 0 -1px #a7d8b4;}

.drawing-device{width:240px;max-width:45vw;min-width:140px;height:30px;text-overflow:ellipsis;border:1px solid #cedadd;border-radius:3px;color:#36505a;background:#fff;padding:3px 8px}

.accessory-settings{border:1px solid #adc4cb;border-radius:10px;color:#2c4f5c;max-width:430px}.accessory-settings form{display:grid;gap:14px}.accessory-settings label{display:flex;align-items:center;gap:10px}.accessory-settings input[type=number]{width:100px}.accessory-settings form>div{display:flex;justify-content:flex-end;gap:8px}.accessory-catalog-item{position:relative}

.drawing-device.device-unselected{background:rgba(205,65,65,.14);border-color:rgba(179,55,55,.45)}
.drawing-device option[value=""]{background:rgba(205,65,65,.14)}

dialog.anchored-options{position:fixed;inset:auto;margin:0!important;max-width:min(430px,calc(100vw - 24px));max-height:calc(100vh - 24px);overflow:auto;box-shadow:0 8px 26px #23465030;z-index:10000;animation:anchored-options-enter .13s ease-out}
@keyframes anchored-options-enter{from{opacity:0;transform:translateX(-6px)}to{opacity:1;transform:translateX(0)}}
@media(prefers-reduced-motion:reduce){dialog.anchored-options{animation:none}}

.drawing-load-overlay{position:absolute;inset:0;z-index:20;background:#edf3f5f5;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:12px;color:#285b6a;pointer-events:auto}.drawing-load-overlay[hidden]{display:none}.drawing-load-overlay span{max-width:90%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.drawing-load-overlay strong:before{content:'';display:inline-block;width:14px;height:14px;margin-right:10px;border:2px solid #b5d6dd;border-top-color:#258ba0;border-radius:50%;animation:drawing-load-spin .8s linear infinite}@keyframes drawing-load-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.drawing-load-overlay strong:before{animation:none}}
.drawing-crosshair-viewport{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:10}
.drawing-crosshair-layer{position:absolute;left:0;top:0;width:0;height:0;pointer-events:none;z-index:10;transform-origin:0 0}
.drawing-crosshair-layer[hidden]{display:none}
.drawing-crosshair-line{position:absolute;background:var(--crosshair-line,#31566978);pointer-events:none;will-change:transform}
.drawing-crosshair-line.horizontal{left:0;top:0;width:0;height:1px}
.drawing-crosshair-line.vertical{left:0;top:0;width:1px;height:0}
.drawing-crosshair-square{position:absolute;will-change:transform;border:1px solid var(--crosshair-color,#264a5e);box-sizing:border-box;pointer-events:none}
.drawing-navigation-layer{position:absolute;inset:0;pointer-events:none;z-index:5;will-change:transform}
.drawing-navigation-layer[hidden]{display:none}
.embedded-created-row>td{padding:0!important}
.embedded-created-positions .unassigned-positions-scroll{height:auto;max-height:none;overflow:visible}
.embedded-created-positions>.bill-toolbar{display:none}
.embedded-created-positions .created-position-group>tr:first-child{position:static}
/* Embedded generated rows belong to the surrounding bill, including its type style. */
.embedded-created-row>td{font-weight:400;color:#253546}
.embedded-created-positions .unassigned-positions-scroll>table{width:100%;border-collapse:collapse;font-size:inherit}
/* Start with the shared column layout before the first table measurement.
   Auto layout of thousands of long imported descriptions blocks Safari. */
.bill-pair .bill-preview-scroll>table,.bill-device-scroll>table:not(.assigning),.unassigned-positions-scroll>table{table-layout:fixed;width:100%}
.bill-preview-scroll>table>thead th:nth-child(1),.bill-device-scroll>table:not(.assigning)>thead th:nth-child(1){width:100px}
.bill-preview-scroll>table>thead th:nth-child(3),.bill-device-scroll>table:not(.assigning)>thead th:nth-child(3){width:140px}
.bill-preview-scroll>table>thead th:nth-child(4),.bill-device-scroll>table:not(.assigning)>thead th:nth-child(4){width:70px}
.bill-preview-scroll>table>thead th:nth-child(5),.bill-device-scroll>table:not(.assigning)>thead th:nth-child(5){width:90px}
.bill-preview-scroll>table>thead th:nth-child(6),.bill-device-scroll>table:not(.assigning)>thead th:nth-child(6){width:100px}
#schedulePane.schedule-stale :is(.bill-workspace,.unassigned-positions,.table-scroll){opacity:.55}
.embedded-created-positions .created-quantity{display:flex;gap:0;max-width:100%;min-width:0}
.embedded-created-positions .created-quantity input{width:100%;min-width:0;flex:1;padding:1px}
.embedded-created-positions .created-quantity-reset-space,.embedded-created-positions .created-quantity>button{flex:0 0 14px;width:14px;padding:0}
/* All bill parents share the owning table's native column grid. */
.bill-device-scroll>table>tbody.created-position-group,.bill-preview-scroll>table>tbody.created-position-group{font-weight:400;color:#253546}
.bill-device-scroll>table>tbody.created-position-group .created-quantity,.bill-preview-scroll>table>tbody.created-position-group .created-quantity{display:flex;gap:0;max-width:100%;min-width:0}
.bill-device-scroll>table>tbody.created-position-group .created-quantity input,.bill-preview-scroll>table>tbody.created-position-group .created-quantity input{width:100%;min-width:0;flex:1;padding:1px}
.bill-device-scroll>table>tbody.created-position-group .created-quantity-reset-space,.bill-preview-scroll>table>tbody.created-position-group .created-quantity-reset-space{flex:0 0 14px;width:14px}
.palette-heading{display:grid;grid-template-columns:24px minmax(0,1fr) 24px;align-items:center;gap:0 4px;position:relative;min-width:0;min-height:30px;margin:0 0 12px}
.palette-heading>button{grid-row:1;box-sizing:border-box;width:24px;height:30px;min-width:24px;padding:0;border:0;background:transparent;font-size:23px;color:inherit;letter-spacing:normal}
.palette-heading>button:first-child{grid-column:1;justify-self:start}.palette-heading>button:last-child{grid-column:3;justify-self:end}
.palette-heading>span{grid-column:2;grid-row:1;min-width:0;text-align:center;line-height:1.25;white-space:nowrap}
.palette-heading[data-heading-layout="stacked"]>span{grid-column:1/-1;grid-row:2;white-space:normal;overflow-wrap:anywhere}
main>.catalog,main>.inspector{padding-top:4px}
#catalogSet[hidden],#branchClipboardSet[hidden]{display:none!important}.branch-card{position:relative;margin:8px 0;border:1px solid #cadce0;border-radius:9px;overflow:hidden}.branch-card>button:first-child{display:flex;flex-direction:column;align-items:center;width:100%;background:#f8fbfc;border:0;padding:7px}.branch-card svg{width:100%;height:90px;stroke:#318fa2;stroke-width:3;fill:none}.branch-card circle{fill:#d18226;stroke:#d18226}.branch-card>button:last-child{position:absolute;right:1px;top:1px;border:0;background:transparent}.branch-overlay{position:absolute;pointer-events:none;z-index:9;overflow:hidden}.branch-target{stroke:#c27a21;stroke-width:2;fill:#ffa92720}.branch-ghost{stroke:#d18324;stroke-width:4;fill:none;opacity:.75}.branch-rotation{position:absolute;z-index:12;display:flex;background:#f6fbfc;border:1px solid #88aab4;border-radius:7px}.branch-rotation[hidden],.branch-port-menu[hidden]{display:none}.branch-rotation button{padding:5px;min-width:28px}.branch-rotation output{padding:6px;min-width:5ch;text-align:center}.branch-port-menu{position:fixed;z-index:100;background:#f8fcfd;box-shadow:0 3px 14px #25485435;border:1px solid #bfd3d9;border-radius:8px;padding:4px;display:flex;flex-direction:column;min-width:160px}.branch-port-menu button{text-align:left;border:0;background:transparent;padding:9px}.branch-port-menu button:hover{background:#d7edf0}
.branch-ghost-outline{stroke:#ce842a;stroke-width:1.5;fill:none;opacity:.65}

.branch-card>button[data-delete-branch]{position:absolute;z-index:2;right:6px;top:6px;display:grid;place-items:center;width:32px;height:32px;min-height:32px;padding:0;border:1px solid #d6aaa7;border-radius:6px;background:#fff4f2;color:#a0443c;font-size:23px;line-height:1;cursor:pointer;box-shadow:0 1px 3px #793a3015}.branch-card>button[data-delete-branch]:hover{background:#f7dcd7;border-color:#ab6158;color:#7e2520}.branch-card>button[data-delete-branch]:active{background:#efc9c2}.branch-card>button[data-delete-branch]:focus-visible{outline:2px solid #a0443c;outline-offset:2px}

.position-clipboard-card{position:relative;margin:8px 0;border:1px solid #cadce0;border-radius:9px;background:#f8fbfc;overflow:hidden}.position-clipboard-card>[data-position-clipboard-open]{display:block;width:100%;padding:12px 40px 12px 8px;text-align:left;border:0;background:transparent;font-size:12px;overflow:hidden}.position-clipboard-card strong{display:block;margin-bottom:7px}.position-clipboard-card span{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.position-clipboard-card>.branch-delete{position:absolute;z-index:2;right:6px;top:6px;width:30px;height:30px;padding:0;border:1px solid #d6aaa7;border-radius:6px;background:#fff4f2;color:#a0443c;font-size:23px;cursor:pointer}.position-clipboard-dialog{max-width:min(520px,90vw);border:1px solid #bfd3d9;border-radius:10px;padding:20px}.position-clipboard-dialog select{display:block;width:100%;margin-top:8px}.position-clipboard-dialog form>div{display:flex;justify-content:flex-end;gap:10px}.branch-port-menu button:disabled{opacity:.45;cursor:default}
#schedulePane .hardware-row.selected>td,#schedulePane .hardware-subitem.selected>td{background:#ceeef4;box-shadow:inset 0 1px #81c7d3,inset 0 -1px #81c7d3}

/* Position codes remain blue; quantities and descriptions use normal body text. */
#schedulePane tbody tr:is([data-position-id],[data-id],[data-part-id],.round-group-row,.round-physical-row,.hardware-subitem,.created-din-row)>td:not(:first-child),
#schedulePane .created-parts-row>td{color:#294d5b;font-weight:400}
#schedulePane .created-quantity input:not(.overridden),#schedulePane .created-din-toggle{font-weight:400}
#schedulePane .created-quantity:not(.overridden) input{color:#294d5b}
#schedulePane .position-output-icon .toolbar-icon{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.position-print-dialog{width:min(1200px,95vw);max-width:95vw;height:90vh;padding:18px;border:1px solid #bfd2d9;border-radius:9px;color:#294d5b}
.position-print-dialog[open]{display:flex;flex-direction:column;gap:12px}.position-print-dialog::backdrop{background:#294d5b55}
.position-print-dialog h2{margin:0}.position-print-dialog iframe{flex:1;min-height:0;width:100%;border:1px solid #d9e4e8;background:white}.position-print-actions{display:flex;justify-content:flex-end;gap:8px}
.created-quantity.overridden{flex-wrap:wrap}.created-quantity-override-label{flex-basis:100%;font-size:9px;color:#a55c20;text-align:right;line-height:1.2}

/* Physical duct rows are white unless explicitly selected or previewed. */
#schedulePane .created-parts-scroll tr[data-id]:not(.selected):not(.range-preview)>td,#schedulePane .bill-device-child:not(.selected):not(.range-preview)>td{background:#fff;box-shadow:none}

.model-webgl-backdrop,.model-webgl-layer{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.model-webgl-backdrop{z-index:4}.model-webgl-layer{z-index:5}#model3dCanvas.webgl-overlay{z-index:6;background:transparent}.model-webgl-backdrop[hidden],.model-webgl-layer[hidden]{display:none}

.webgl-benchmark-panel{position:fixed;bottom:25px;right:8px;z-index:1000;background:#fff;border:1px solid #9cbec7;padding:5px;display:flex;gap:5px}.webgl-benchmark-panel textarea{width:260px;height:40px;font-size:9px}

/* Independent renderer selection and display switches in the 3D menu. */
.model-3d-renderer-choice{display:grid;grid-template-columns:1fr 35px;grid-template-rows:32px 32px;padding-bottom:5px;border-bottom:1px solid #d8e4e8}
.model-3d-renderer-choice button[data-renderer]{padding:7px 9px}
.model-3d-renderer-choice button[data-renderer][aria-checked="true"]{color:#0c7289;font-weight:600;background:#e8f5f8}
.model-3d-renderer-choice button[data-renderer-toggle]{grid-column:2;grid-row:1/3;padding:0;display:grid;place-items:center}
.model-3d-renderer-switch{position:relative;width:17px;height:43px;border:1px solid #0e8199;border-radius:10px;background:#168da4}
.model-3d-renderer-switch::after{content:'';position:absolute;top:2px;left:2px;width:11px;height:11px;border-radius:50%;background:white;box-shadow:0 1px 2px #183d4a40;transform:translateY(26px);transition:transform .15s}
[data-renderer-toggle][aria-checked="true"] .model-3d-renderer-switch::after{transform:translateY(0)}
.model-3d-detail-menu button[data-hidden]{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:10px 9px}
.model-3d-detail-menu button[data-hidden][aria-checked="true"] .model-3d-drawing-switch{border-color:#0e8199;background:#168da4}
.model-3d-detail-menu button[data-hidden][aria-checked="true"] .model-3d-drawing-switch::after{transform:translateX(14px)}

.drawing-port-hover{position:absolute;z-index:12;pointer-events:none;width:18px;height:18px;transform:translate(-50%,-50%);border:2px solid #078da7;border-radius:50%;background:#21b0cb24;box-shadow:0 0 0 2px #ffffffb8;box-sizing:border-box}.drawing-port-hover::after{content:"";position:absolute;width:7px;height:7px;left:50%;top:50%;transform:translate(-50%,-50%);border:1.5px solid #078da7;border-radius:50%;background:#fff}.drawing-port-hover[hidden]{display:none}

/* Small retained overlays stay distinct from PDF without full-screen filters. */
.dimension-hud{box-shadow:0 1px 3px rgba(20,40,50,.12)}
.dimension-hud input{background:transparent;color:inherit}

.pdf-contrast-zones{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.pdf-contrast-zones[hidden],.pdf-contrast-zone[hidden],.pdf-inline-underlay[hidden]{display:none}
.pdf-inline-underlay{pointer-events:none;left:0;top:0}
.pdf-contrast-zone{position:absolute;left:0;top:0;pointer-events:none;transform-origin:center;will-change:transform;overflow:hidden;mask-image:linear-gradient(to right,transparent,#000 20px,#000 calc(100% - 20px),transparent),linear-gradient(to bottom,transparent,#000 20px,#000 calc(100% - 20px),transparent);mask-composite:intersect;-webkit-mask-image:linear-gradient(to right,transparent,#000 20px,#000 calc(100% - 20px),transparent),linear-gradient(to bottom,transparent,#000 20px,#000 calc(100% - 20px),transparent);-webkit-mask-composite:source-in}

.pdf-ink-shadow-image{position:absolute;left:0;top:0;pointer-events:none;transform-origin:0 0;background-size:100% 100%;background-repeat:no-repeat}

/* Blend the shared PDF shadow once even where several reveal regions overlap. */
.pdf-contrast-zones{isolation:isolate;mix-blend-mode:darken}
.pdf-contrast-zone{mix-blend-mode:darken}

/* One continuous working field; the PDF ink shadow remains world anchored. */
.pdf-contrast-zone{mask-image:radial-gradient(ellipse closest-side,#000 62%,transparent 100%);-webkit-mask-image:radial-gradient(ellipse closest-side,#000 62%,transparent 100%)}

.split-side-preset-center{grid-column:2;grid-row:2;font-size:20px}

.webgl-benchmark-panel{display:none!important}
#insulationSet[hidden]{display:none!important}#insulationSet{padding:8px 3px}#insulationSet>select{width:100%;min-height:130px;border:1px solid #b4cbd2;border-radius:6px;background:#fff;color:#234b59;font:inherit}#insulationSet option{padding:6px}.insulation-list-actions{display:flex;gap:7px;margin:8px 0 14px}.insulation-list-actions button{min-width:36px;font-size:23px}.insulation-settings{display:flex;flex-direction:column;gap:11px}.insulation-settings[hidden]{display:none}.insulation-settings label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:#3a5a65}.insulation-settings input,.insulation-settings select,.insulation-settings textarea{width:100%;box-sizing:border-box;font:inherit;padding:7px;border:1px solid #b8ced3;border-radius:5px;background:#fff}.insulation-settings textarea{resize:vertical;min-height:90px}.insulate-action{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;margin-top:14px;background:#e0f0f2;border:1px solid #7db4be;color:#1c6376}.insulate-action svg{width:26px;height:26px;stroke:currentColor;fill:none;stroke-width:1.2}.insulation-area-detail{padding:12px;border:1px solid #c4d9de;border-radius:6px;margin:12px 0}.insulation-area-detail p{display:flex;justify-content:space-between;gap:8px}.insulation-area-detail button{width:100%;margin-top:6px}

.insulation-context-menu{position:fixed;z-index:150;background:#fff;border:1px solid #9dbfc7;border-radius:6px;padding:5px;box-shadow:0 4px 16px #173f5630}.insulation-context-menu[hidden]{display:none}.insulation-context-menu button{white-space:nowrap}[data-insulation-positions]{display:flex;flex-direction:column;gap:5px;margin-top:12px}[data-insulation-position]{font:inherit;text-align:left;padding:6px;font-size:11px}.insulate-action.active{background:#c7e5ec;border-color:#19758b}

.insulation-hatch-select{display:flex;align-items:stretch;width:100%;height:34px;padding:0;border:1px solid #a9c2ca;border-radius:4px;background:#fff;overflow:hidden}.insulation-hatch-select [data-hatch-preview]{flex:1;min-width:0}.insulation-hatch-select>span:last-child{display:grid;place-items:center;width:24px;background:#edf5f7}.insulation-pattern-preview{display:block;min-height:28px}.insulation-hatch-menu{position:fixed;z-index:10020;overflow:auto;background:#fff;border:1px solid #9db9c3;border-radius:5px;box-shadow:0 4px 14px #173d4b25;padding:3px}.insulation-hatch-menu[hidden]{display:none}.insulation-hatch-menu button{display:block;width:100%;height:34px;padding:0;margin:2px 0;border:1px solid transparent;border-radius:3px;background:#fff}.insulation-hatch-menu button[aria-selected="true"]{border-color:#29869b;background:#e4f3f5}.insulation-hatch-menu button:hover,.insulation-hatch-menu button:focus-visible{outline:2px solid #29869b;outline-offset:-2px}.insulation-dimension-pattern{display:block;width:100%;height:30px;min-width:20px;overflow:hidden}

.insulation-toolbar{display:flex;justify-content:flex-end;align-items:center;gap:6px;margin:0 0 8px}.insulation-toolbar .insulate-action{width:36px;height:34px;min-width:36px;padding:5px;margin:0;border:1px solid #c5d9df;border-radius:5px;background:#fff;color:#496773}.insulation-toolbar .insulate-action svg{width:24px;height:24px;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.insulation-toolbar .insulate-action:hover{background:#edf6f8;border-color:#83b1bf}.insulation-toolbar .insulate-action.active{background:#d8eef2;border-color:#38889d;color:#23778b}

.insulation-hatch-menu{box-sizing:border-box;overscroll-behavior:contain}
td:has(>.insulation-dimension-pattern){position:relative}.insulation-dimension-pattern{position:absolute;inset:0;width:auto;height:auto;min-width:0}

.position-takeoff-detail{padding:12px;border:1px solid #c4d9de;border-radius:6px;margin:12px 0}.position-takeoff-detail p,.position-quantity-breakdown p{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.position-quantity-breakdown{border-top:1px solid #d8e5e9;margin-top:12px;padding-top:9px}.position-quantity-breakdown h4{margin:0 0 8px;font-size:inherit;font-weight:500}.position-quantity-breakdown b,.position-quantity-total b{white-space:nowrap}.position-quantity-breakdown small{display:block;color:#607c88;line-height:1.4}.quantity-breakdown-heading td{font-weight:500}

.insulation-run-row>td:first-child{padding-left:24px!important}.insulation-run-row>td:nth-child(2){padding-left:22px!important}

.drawing-part-count{font-size:10px;line-height:1.1;font-weight:700;color:var(--accent,#277f92);background:#d9edf1;border-radius:8px;padding:2px 5px;flex:none}

.ai-drawing-overlay{position:absolute;inset:0;pointer-events:none;z-index:16;overflow:hidden}
.ai-drawing-overlay[hidden]{display:none}
.ai-drawing-value{position:absolute;left:0;top:0;color:#bb2132;border:1px solid #d66b77;background:#fff5f6;padding:4px 8px;border-radius:5px;white-space:nowrap;font-size:13px;font-variant-numeric:tabular-nums}
.ai-drawing-value.recognized{color:#733ca4;border-color:#9d78bb;background:#f5edfc}
.ai-ocr-drop{position:absolute;color:#70349a;background:#f5edfc;padding:3px 6px;border:1px solid #ae8bc9;border-radius:4px;font-size:14px;font-weight:600;will-change:transform}
.ai-drawing #canvas{cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='28'%3E%3Cpath d='M2 2V23L7 18L12 27L16 25L11 16H19Z' fill='%23cb2639' stroke='white' stroke-width='1'/%3E%3C/svg%3E") 2 2,crosshair!important}

.ai-angle-drop,.ai-alignment-drop{color:#b82033;border-color:#d66b77;background:#fff2f3}

.ai-drawing-value[data-origin="series"],.ai-ocr-drop[data-origin="series"]{color:#176fc1;border-color:#73a5d0;background:#edf5ff}
.ai-drawing-value[data-origin="tens"],.ai-ocr-drop[data-origin="tens"]{color:#c72d37;border-color:#d8737a;background:#fff1f2}
.ai-drawing-value[data-origin="area"],.ai-ocr-drop[data-origin="area"]{color:#247e51;border-color:#71ab89;background:#edf8ef}
.ai-drawing-value[data-origin="free"],.ai-drawing-value[data-origin="alignment"],.ai-ocr-drop[data-origin="free"],.ai-ocr-drop[data-origin="alignment"]{color:#bb2132;border-color:#d66b77;background:#fff5f6}
.ai-number[data-origin="ocr"]{color:#733ca4}.ai-number[data-origin="series"]{color:#176fc1}.ai-number[data-origin="tens"]{color:#c72d37}.ai-number[data-origin="area"]{color:#247e51}.ai-number[data-origin="free"]{color:#bb2132}
.ai-ocr-drop{font-weight:800;transform-origin:center;line-height:1.15}

.ai-drawing-value[data-origin="free"],.ai-ocr-drop[data-origin="free"]{color:#24313b;border-color:#64727c;background:#eef1f4}
.ai-number[data-origin="free"]{color:#24313b}

.ai-number[data-origin="alignment"]{color:#bb2132}

.ai-drawing-value[data-origin="equal"],.ai-ocr-drop[data-origin="equal"]{color:#008ba2;border-color:#60acb8;background:#eafaFC}
.ai-number[data-origin="equal"]{color:#008ba2}

.drag-fitting-badge .drag-section{position:absolute;left:calc(100% + 7px);top:50%;transform:translateY(-50%);white-space:nowrap;pointer-events:none;font:12px ui-monospace,monospace;color:#177b94;border:1px solid #70a7b5;border-radius:5px;background:#f5fbfd;padding:5px 7px;box-shadow:0 2px 5px #23465116}
.drag-fitting-badge .drag-section[hidden]{display:none}
.ai-ocr-choices,.ai-ocr-source{position:absolute;inset:0;pointer-events:none}
.ai-ocr-pick{position:absolute;border:1px solid #8d4fa87a;border-radius:3px;background:#a26fbc16;pointer-events:none}
.ai-ocr-pick.active{border:2px solid #8d35b3;background:#ae70c931;box-shadow:0 0 0 2px #fff9}
.ai-ocr-pick b{position:absolute;left:50%;bottom:calc(100% + 4px);transform:translateX(-50%);font:700 16px ui-monospace,monospace;color:#80319e;background:#f8f1fc;border:1px solid #a86dc0;border-radius:4px;padding:2px 5px;white-space:nowrap}

/* One compact context row and one live value row, shared by UI and AI. */
.dimension-hud.cursor-indicator{isolation:isolate;display:flex;flex-direction:column;align-items:stretch;gap:1px;width:max-content;min-width:112px;max-width:min(380px,calc(100vw - 24px));height:auto;padding:15px 9px 5px 24px;border:0;border-radius:0;background:transparent;box-shadow:none;font:12px ui-monospace,monospace;line-height:20px;white-space:nowrap}
.dimension-hud.cursor-indicator[hidden]{display:none}
.dimension-hud.cursor-indicator.with-offset,.dimension-hud.cursor-indicator.round-radius-hud,.dimension-hud.cursor-indicator.round-reducer-hud,.dimension-hud.cursor-indicator.height-offset-drag{width:max-content;min-width:112px;max-width:min(380px,calc(100vw - 24px))}
.cursor-indicator-contour{position:absolute;inset:0;width:100%;height:100%;z-index:-1;overflow:visible;pointer-events:none}
.cursor-indicator-contour path{fill:var(--indicator-fill,#fff);stroke:currentColor;stroke-width:1.2;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.cursor-indicator-context{display:flex;align-items:center;gap:0;min-height:20px;padding-left:18px;font-size:inherit;line-height:20px;color:inherit}
.cursor-indicator-title{font-size:inherit;font-weight:400}
.cursor-indicator-icon{position:absolute;left:3px;top:3px;display:flex;align-items:center;justify-content:center;width:28px;height:28px;flex:none}
.cursor-indicator-icon>svg{width:25px;height:24px;overflow:visible}
.cursor-indicator-icon .round-bend-icon text{display:none}
.cursor-indicator-angles{display:flex;align-items:center;margin-left:auto}
.cursor-indicator-angles[hidden]{display:none}
.cursor-indicator-angles .round-angle-axes{width:30px;height:24px}
.cursor-indicator-reading{display:flex;align-items:center;gap:4px;min-height:20px;font-size:inherit;line-height:20px}
.dimension-hud.cursor-indicator .cursor-indicator-reading>small,.dimension-hud.cursor-indicator .cursor-indicator-reading>input{width:auto;min-width:0;text-align:left;font:inherit;flex:none}
.dimension-hud.cursor-indicator .cursor-indicator-reading>input{width:calc(var(--input-chars,5)*1ch);height:20px;padding:0;border:0;outline:0}
.dimension-hud.cursor-indicator .cursor-indicator-reading>[hidden]{display:none}
.dimension-hud.cursor-indicator .outlet-offset{display:inline;width:auto;min-width:0;border:0;padding:0;margin-left:4px;font:inherit;text-align:left;opacity:.85}
.dimension-hud.cursor-indicator .outlet-offset:empty{display:none}
.cursor-indicator .ai-drawing-value{position:static;display:inline;transform:none;left:auto;top:auto;border:0;background:transparent;padding:0;border-radius:0;font:inherit;white-space:nowrap}
.cursor-indicator .ai-drawing-value[hidden]{display:none}
.cursor-indicator .ai-number[data-origin="ocr"]{color:#8732a7}.cursor-indicator .ai-number[data-origin="series"]{color:#2563d9}.cursor-indicator .ai-number[data-origin="tens"],.cursor-indicator .ai-number[data-origin="angle"]{color:#b82e40}.cursor-indicator .ai-number[data-origin="area"]{color:#247747}.cursor-indicator .ai-number[data-origin="free"]{color:#20262b}

/* Browser-local training evidence, independent of the drawing canvas. */
#aiTrainingDialog{width:min(1380px,96vw);max-width:96vw;max-height:92dvh;padding:20px;overflow:auto;color:#28424e}#aiTrainingDialog:not([open]){display:none}.ai-training-header,.ai-training-tools,.ai-training-pager,.ai-training-preview-tools{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.ai-training-header{justify-content:space-between}.ai-training-header h2{margin:0}.ai-training-tools{margin:16px 0}.ai-training-tools label{display:flex;gap:5px;align-items:center;font-size:12px}.ai-training-tools select{max-width:220px;padding:7px;border:1px solid var(--line);border-radius:4px;background:white}.ai-training-note,.ai-training-storage{font-size:12px;line-height:1.5;color:#607884}.ai-training-metrics{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:8px;margin:15px 0}.ai-training-metrics>div{border:1px solid var(--line);border-radius:5px;padding:12px;background:#f5fafb}.ai-training-metrics strong{display:block;font-size:23px;color:#087b83}.ai-training-metrics span{display:block;margin-top:4px;font-size:11px}.ai-training-layout{display:grid;grid-template-columns:minmax(300px,1.1fr) minmax(300px,1fr);gap:16px;align-items:start}.ai-training-list{overflow:auto}.ai-training-list table,.ai-training-detail table{width:100%;border-collapse:collapse;font-size:11px}.ai-training-list th,.ai-training-detail th{position:static;text-align:left;background:#eef5f7;padding:8px}.ai-training-list td,.ai-training-detail td{padding:7px;border-bottom:1px solid var(--line)}.ai-training-list tr[data-selected=true]{background:#e2f4f4}.ai-training-record{display:flex;flex-direction:column;text-align:left;padding:3px;border:0;background:transparent;font-size:11px}.ai-training-record small{color:#7b8e96;font-family:ui-monospace,monospace}.ai-training-pager{justify-content:space-between;font-size:11px;margin-top:10px}.ai-training-detail{border:1px solid var(--line);border-radius:5px;padding:12px;min-width:0;overflow-wrap:anywhere}.ai-training-detail h3{margin-top:0}.ai-training-detail code{font-size:10px}.ai-training-detail dl{display:grid;grid-template-columns:130px minmax(0,1fr);font-size:11px;gap:5px}.ai-training-detail dt{color:#647e89}.ai-training-detail dd{margin:0;font-family:ui-monospace,monospace}.ai-training-detail pre{font-size:10px;max-height:220px;overflow:auto}.ai-training-detail details{margin:12px 0;font-size:11px}.ai-training-detail ol{padding-left:20px;max-height:200px;overflow:auto}.ai-training-canvas{position:static;display:block;width:100%;height:260px;border:1px solid var(--line);background:#fbfdfe;touch-action:none;cursor:grab}.ai-training-canvas:active{cursor:grabbing}.ai-training-preview-tools{margin-top:6px}.ai-training-preview-tools button{font-size:11px;padding:5px 8px}@media(max-width:1100px){.ai-training-metrics{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(max-width:850px){.ai-training-layout{grid-template-columns:1fr}.ai-training-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}

#schedulePane tr.schedule-linked-focus>td{background:#d9f1f5;box-shadow:inset 0 1px #78b5c2,inset 0 -1px #78b5c2}
/* Equal free space between the three control groups at wide sizes. */
.part-preview,.preview-dialog>section{container-type:inline-size}
.preview-heading{display:grid;grid-template-columns:auto minmax(6px,1fr) auto minmax(6px,1fr) auto;column-gap:0;row-gap:6px;align-items:start}
.preview-controls{display:contents;min-width:0}
.preview-heading .preview-views{grid-column:1;grid-row:1;flex-wrap:wrap;min-width:0;max-width:100%}
.preview-heading .preview-text-controls{grid-column:3;grid-row:1;min-width:0}
.preview-expand-slot{grid-column:5;grid-row:1;align-self:start;justify-self:end}
.preview-heading .expand-preview{display:grid;place-items:center;width:30px;height:30px;min-width:30px;padding:4px}
.preview-heading .axis-font-size-tool{flex:none}
.preview-expand-slot:empty{display:none}
.preview-heading:has(.preview-expand-slot:empty){grid-template-columns:minmax(0,1fr) auto;gap:12px}
.preview-heading:has(.preview-expand-slot:empty) .preview-text-controls{grid-column:2}
@container(max-width:310px){
 .preview-heading{grid-template-columns:minmax(0,1fr) auto;column-gap:6px}
 .preview-controls{display:flex;flex-direction:column;gap:6px;align-items:flex-start;grid-column:1;grid-row:1}
 .preview-heading .preview-views{flex-wrap:wrap}
 .preview-expand-slot{grid-column:2}
}
.preview-hover-help{position:fixed;z-index:2000;max-width:min(300px,calc(100vw - 16px));padding:7px 10px;border-radius:5px;background:#264550;color:white;font:11px/1.45 Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;white-space:normal;pointer-events:none;box-shadow:0 3px 12px #173f5630}
.preview-hover-help[hidden]{display:none!important}
.radius-recommendation-dialog{width:min(450px,calc(100vw - 32px));border:1px solid #b8cbd2;border-radius:10px;padding:22px;color:#24424e}
.radius-recommendation-dialog::backdrop{background:#173a4b55}
.radius-recommendation-dialog .dialog-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}
.radius-recommendation-dialog button{white-space:normal}

.flex-diameter-editor{margin:12px 0;border-top:1px solid #d7e3e7;padding-top:10px}.flex-diameter-editor>summary{cursor:pointer;color:#385f6c;font-weight:600}.flex-diameter-row{display:grid;grid-template-columns:minmax(0,1fr) 30px;align-items:center;gap:6px;margin:5px 0}.flex-diameter-row>input{box-sizing:border-box;min-width:0;width:100%;height:30px;min-height:30px;margin:0}.flex-diameter-row .inspector-action,.flex-diameter-editor>[data-flex-diameter-add]{width:30px;height:30px;min-height:30px;flex-shrink:0}

/* Fixed geometric clips with independent compositor transforms per view. */
.split-navigation-layer,.split-navigation-pane,.split-navigation-overlay{position:absolute;inset:0;pointer-events:none}
.split-navigation-layer{z-index:2;overflow:hidden}
.split-navigation-pane{overflow:hidden}
.split-navigation-pane canvas{left:0;top:0;transform-origin:0 0;will-change:transform}
.split-navigation-overlay{z-index:3}
.split-navigation-layer[hidden],.split-navigation-overlay[hidden]{display:none}

.stock-cut-quantity{display:inline-flex;flex-wrap:wrap;justify-content:flex-end;align-items:baseline;gap:4px 10px}.stock-cut-source{white-space:nowrap;font-size:11px;color:#617687}
button.stock-cut-source{border:0;border-radius:0;background:transparent;padding:0;min-height:0;font-weight:inherit;text-align:inherit;cursor:pointer}button.stock-cut-source:hover,button.stock-cut-source:focus-visible{text-decoration:underline;color:#18778c}

.drawing-related-count{font-size:10px;line-height:1.1;font-weight:700;color:#467757;background:#d9f2df;border-radius:8px;padding:2px 5px;flex:none}

.split-divider-track{position:absolute;z-index:4;height:10px;background:transparent;transform-origin:0 50%;cursor:ns-resize;touch-action:none}.split-divider-track[hidden]{display:none}

/* VV pairing uses a distinct activity colour, without covering the drawing. */
#vvPairing{position:relative}#vvPairing.vv-working{color:#7633aa;background:#f1ddff;border-color:#a85cce;animation:vv-pulse 1.2s ease-in-out infinite}#vvPairing.vv-working .accent{stroke:#7633aa}#vvPairing.vv-ready{color:#7633aa;background:#f1ddff;border-color:#a85cce}#vvPairing.vv-ready:after{content:'';position:absolute;right:2px;top:2px;width:6px;height:6px;border-radius:50%;background:#c43b9c}
@keyframes vv-pulse{50%{box-shadow:0 0 0 3px #a85cce33}}@media(prefers-reduced-motion:reduce){#vvPairing.vv-working{animation:none}}
.vv-pairing-panel{position:relative;width:100%;min-width:0;padding:0;color:#2c414b;font-size:12px}.vv-pairing-panel[hidden]{display:none}.vv-pairing-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.vv-pairing-head h2{font-size:15px;margin:0;line-height:1.3}.vv-pairing-head button{padding:3px 6px;font-size:11px}.vv-pairing-panel p{margin:10px 0}.vv-pairing-panel dl{display:grid;grid-template-columns:1fr auto;gap:5px 12px;margin:10px 0}.vv-pairing-panel dd{margin:0;font-variant-numeric:tabular-nums;font-weight:600}.vv-pairing-panel small{display:block;margin:8px 0;color:#607982}.vv-transport{display:flex;gap:8px;margin-top:12px}.vv-transport button{width:34px;height:34px;display:grid;place-items:center;padding:4px}.vv-transport .vv-rec{color:#ba3d4e}.vv-transport button:disabled{opacity:.3}.vv-transport [aria-pressed=true]{background:#e0f1f4;border-color:#258fa4}#vvPairing.vv-paused{color:#7633aa;background:#f1ddff;border-color:#a85cce}.vv-pairing-panel .inspector-pinned-header{padding-top:2px}

.vv-review-text{position:absolute;z-index:4;box-sizing:border-box;border:3px solid #df7b12;border-radius:3px;background:#ffdb4d59;box-shadow:0 0 0 2px #fff9;pointer-events:none}.vv-review-anchor{position:absolute;z-index:5;transform:translate(-50%,-50%);font-size:23px;line-height:1;color:#8436a8;text-shadow:0 0 3px white;pointer-events:none}
.vv-pairing-proposals{display:flex;flex-direction:column;flex-wrap:nowrap;max-height:none;gap:4px}.vv-pairing-proposals button{text-align:left;padding:6px 8px;flex:none;min-width:0;display:flex;flex-direction:column;align-items:stretch;gap:2px}.vv-pairing-proposals button span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.vv-pairing-proposals button small{margin:0;font-size:10px}.vv-pairing-selected{padding:6px;background:#fff1bf;border-radius:3px}.vv-pairing-pages{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:5px;margin-top:5px}.vv-pairing-pages button{font-size:10px;padding:3px 5px}.vv-pairing-pages span{font-size:10px;text-align:center}
#vvWorkspace{min-height:100%;display:flex;flex-direction:column}#vvWorkspace[hidden]{display:none}#vvWorkspace>.vv-pairing-panel{display:flex;flex-direction:column;flex:1;min-height:100%}#vvWorkspace>.vv-pairing-panel[hidden]{display:none}.vv-ai-motion{margin-top:auto;padding:34px 0 10px;flex:none;pointer-events:none}.vv-ai-motion svg{display:block;width:100%;height:auto;max-height:150px;overflow:hidden}.vv-ai-motion path{transform-box:fill-box;transform-origin:center;animation:vv-ai-wave 2.8s ease-in-out infinite alternate;animation-delay:calc(var(--wave)*-0.31s)}.vv-ai-motion[data-state=paused] path{animation-play-state:paused;opacity:.35!important}@keyframes vv-ai-wave{from{transform:translate(-11px,-5px) scaleY(.65)}to{transform:translate(11px,5px) scaleY(1.18)}}@media(prefers-reduced-motion:reduce){.vv-ai-motion path{animation:none}}
.vv-proposal-row{display:flex;flex-direction:column;border:1px solid #d4dfe2;border-radius:5px;overflow:hidden}.vv-proposal-row>[data-vv-proposal]{border:0;border-radius:0;width:100%}.vv-proposal-actions{display:flex;justify-content:flex-end;align-items:center;gap:5px;padding:3px 6px;background:#f6f9fa}.vv-pairing-proposals .vv-proposal-actions button{width:28px;height:27px;padding:2px;display:grid;place-items:center;font-size:20px}.vv-pairing-proposals .vv-proposal-actions [data-vv-decision-action=restore]{width:auto;font-size:11px;padding:2px 6px}.vv-proposal-actions [data-vv-decision-action=accept]{color:#26834f}.vv-proposal-actions [data-vv-decision-action=reject]{color:#b7464b}.vv-proposal-row[data-vv-decision=accepted]{border-color:#67a580}.vv-proposal-row[data-vv-decision=rejected],.vv-proposal-row[data-vv-decision=excluded]{border-color:#c0959b}.vv-proposal-row[data-vv-decision=rejected]>button,.vv-proposal-row[data-vv-decision=excluded]>button{opacity:.65}.vv-excluded-area{position:absolute;box-sizing:border-box;border:2px dashed #bc4762;background:#ce547415;pointer-events:none;z-index:3}.vv-rules{padding:8px 0;border-bottom:1px solid #dce4e7;margin-bottom:8px}.vv-rules>[data-vv-action=exclude]{width:100%;text-align:left}.vv-rules>[aria-pressed=true]{color:#a13854;background:#f9e4ee}.vv-rules details{margin-top:8px;font-size:12px}.vv-rule-row{display:flex;gap:4px;margin-top:4px}.vv-rule-row button:first-child{flex:1;min-width:0;text-align:left;overflow:hidden;text-overflow:ellipsis;font-size:11px}.vv-rule-row button:last-child{width:28px;height:28px;flex:none;padding:3px}.vv-rule-row .toolbar-icon{width:20px;height:20px}.vv-decision-counts{font-size:11px;font-weight:600}
.vv-proposal-actions [aria-pressed=true]{background:#d9eefa;border-color:#298ba5;box-shadow:inset 0 0 0 1px #298ba5}.vv-proposal-actions [data-vv-decision-action=reject][aria-pressed=true]{background:#f8dce3;border-color:#b7465c;box-shadow:inset 0 0 0 1px #b7465c}
.vv-excluded-area{overflow:visible}.vv-area-selected{border-color:#a13f65}.vv-excluded-area .vv-area-edge,.vv-excluded-area .vv-area-grip{position:absolute;margin:0;padding:0;min-width:0;min-height:0;background:transparent;border:0;border-radius:0;pointer-events:auto;touch-action:none;box-shadow:none}.vv-excluded-area .vv-area-edge{cursor:move}.vv-area-edge-n{left:0;right:0;top:-5px;height:10px}.vv-area-edge-s{left:0;right:0;bottom:-5px;height:10px}.vv-area-edge-w{top:0;bottom:0;left:-5px;width:10px}.vv-area-edge-e{top:0;bottom:0;right:-5px;width:10px}.vv-excluded-area .vv-area-grip{width:18px;height:18px;transform:translate(-50%,-50%);z-index:1}.vv-area-grip::after{content:'';position:absolute;width:9px;height:9px;left:50%;top:50%;transform:translate(-50%,-50%);background:#fff;border:2px solid #277f91;box-shadow:0 0 0 1px #fff9}.vv-area-grip:hover::after,.vv-area-grip:focus-visible::after{background:#c9edf4}.vv-area-nw{left:0;top:0;cursor:nwse-resize}.vv-area-n{left:50%;top:0;cursor:ns-resize}.vv-area-ne{left:100%;top:0;cursor:nesw-resize}.vv-area-e{left:100%;top:50%;cursor:ew-resize}.vv-area-se{left:100%;top:100%;cursor:nwse-resize}.vv-area-s{left:50%;top:100%;cursor:ns-resize}.vv-area-sw{left:0;top:100%;cursor:nesw-resize}.vv-area-w{left:0;top:50%;cursor:ew-resize}
.vv-report-filters{display:flex;flex-direction:column;gap:2px;margin:10px 0}.vv-report-filters button{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;text-align:left;padding:4px 6px;background:transparent;border:1px solid transparent;border-radius:4px;white-space:normal;font-size:inherit}.vv-report-filters button strong{font-variant-numeric:tabular-nums;flex:none}.vv-report-filters button[aria-pressed=true]{border-color:#4099aa;background:#e1f2f5;color:#20697b}.vv-report-filters button:hover{border-color:#a0bfca;background:#f1f8fa}.vv-filter-caption{font-weight:600;color:#306d80}.vv-pairing-proposals .vv-finding-row small{white-space:normal;line-height:1.4}.vv-finding-row{border-left:3px solid #8f9ba2}.vv-filter-empty{padding:9px;background:#f4f7f9;border-radius:4px}
.vv-pairing-proposals .vv-finding-row[aria-pressed=true]{border-color:#298ba5;background:#e0f1f4;color:#246779}

/* VV review decisions share one filtered-list scope; excluded findings stay read-only. */
.vv-transport{gap:6px;flex-wrap:nowrap}.vv-transport .vv-control{flex:0 1 34px;min-width:24px}.vv-transport .vv-exclude{margin-left:auto}.vv-pairing-head .vv-close{width:28px;height:28px;flex:none;padding:3px}.vv-pairing-head .vv-close .toolbar-icon{width:22px;height:22px}.vv-bulk-decisions{display:flex;justify-content:flex-end;gap:6px;margin:6px 0}.vv-bulk-decisions button{width:30px;height:29px;font-size:20px;padding:1px}.vv-bulk-decisions [data-vv-bulk-decision=accept]{color:#26834f}.vv-bulk-decisions [data-vv-bulk-decision=reject]{color:#b7464b}.vv-bulk-decisions [aria-checked=true],.vv-bulk-decisions [aria-checked=mixed]{background:#d9eefa;border-color:#298ba5}.vv-bulk-decisions [data-vv-bulk-decision=reject][aria-checked=true]{background:#f8dce3;border-color:#b7465c}.vv-bulk-decisions [aria-checked=mixed]{box-shadow:inset 0 -3px #298ba5}.vv-proposal-row>.vv-finding-row{width:100%;border:0;border-radius:0}.vv-proposal-row>select{max-width:100%;font-size:11px;margin:4px}.vv-proposal-row:has([data-vv-candidate]:invalid){border-color:#be9d50}

.vv-review-quantity{border-color:#9254ba;background:#a668c526}
