@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap');
:root{font-family:Inter,system-ui,sans-serif;color:#dce6ef;background:#101820;font-size:14px;color-scheme:dark;--edge:#2d3c49;--muted:#9caebd;--accent:#49d3cd}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,.file-button{border:1px solid #405363;border-radius:6px;background:#21303d;color:#e1edf5;padding:9px 11px;cursor:pointer;text-align:center;line-height:1.3}button:hover,.file-button:hover{background:#304658}button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:3px}a{color:var(--accent);text-decoration:none}header{display:flex;align-items:center;gap:22px;padding:14px 22px;border-bottom:1px solid var(--edge);background:#121e28;flex-wrap:wrap}h1{font-size:27px;margin:0;letter-spacing:-1px}h1 span{color:var(--accent)}.tag{font-size:12px;letter-spacing:2px;color:var(--muted)}.back{font-size:14px}.file-actions{display:flex;gap:8px;margin-left:auto;flex-wrap:wrap}main{display:grid;grid-template-columns:270px minmax(350px,1fr) 290px;min-height:calc(100vh - 75px)}aside{background:#15212b;padding:18px;border-right:1px solid var(--edge)}.right{border-left:1px solid var(--edge);border-right:0}section+section{margin-top:24px}h2{font-size:16px;margin:0 0 17px;font-weight:600}h3{font-size:14px;margin:22px 0 12px;color:var(--muted)}label{display:flex;flex-direction:column;gap:7px;margin-bottom:13px;font-size:14px;color:#bfced9}input,select,textarea{width:100%;padding:9px 10px;border:1px solid #405260;border-radius:5px;background:#0e1922;color:#eff5fa;min-width:0}textarea{min-height:70px;resize:vertical}.two{display:grid;grid-template-columns:1fr 1fr;gap:9px}.check{flex-direction:row;align-items:center;gap:9px}.check input{width:16px;height:16px;accent-color:var(--accent)}.hint{font-size:13px;line-height:1.6;color:var(--muted)}.wide{width:100%;margin:6px 0}.primary{background:#1c6768;border-color:#44b4b5}.danger{color:#ffaaaa}.library{display:flex;flex-direction:column;gap:7px;max-height:330px;overflow:auto;margin:12px 0}.library-item{display:grid;grid-template-columns:1fr 35px;gap:5px}.library-item button:first-child{text-align:left}.library-item small{display:block;font-size:12px;margin-top:4px;color:var(--muted)}.library-item .active{border-color:var(--accent);background:#204244}.favorite[aria-pressed=true]{color:#ffd176}.workspace{min-width:0;background:#182630}.toolbar{display:flex;align-items:center;gap:20px;padding:15px 20px;border-bottom:1px solid var(--edge);flex-wrap:wrap}.toolbar label{margin:0}.toolbar label:first-child{flex:1}.zoom{width:120px}.toolbar #count{color:var(--muted)}#plot-scroll{background:#eaf0f3;overflow:auto;height:calc(100vh - 230px);min-height:460px;padding:20px}#plot{display:block;background:#fafcfd;box-shadow:0 5px 20px #1112;touch-action:none;user-select:none;margin:auto}#plot .fixture{cursor:grab}#plot.placing{cursor:crosshair}#plot text{font-family:Inter,system-ui,sans-serif}#plot:focus-visible{outline:3px solid #1c8e94}.status{padding:12px 20px;display:flex;gap:15px;justify-content:space-between;border-bottom:1px solid var(--edge);font-size:12px;line-height:1.5;color:var(--muted)}#status{color:var(--accent)}.patch{margin:0;padding:20px}.table-wrap{max-height:250px;overflow:auto}table{border-collapse:collapse;width:100%;font-size:13px}th,td{text-align:left;padding:10px 9px;border-bottom:1px solid var(--edge);white-space:nowrap}th{color:var(--muted);font-weight:500}tbody tr{cursor:pointer}tbody tr:hover,tbody tr.selected{background:#244048}#warnings{font-size:12px;color:#ffbc76;font-weight:400}.legend p{font-size:14px;display:flex;gap:9px;align-items:center}.legend i{width:12px;height:12px;border-radius:3px}dialog{background:#15212b;color:#dce6ef;border:1px solid var(--edge);border-radius:12px;width:min(520px,95vw);max-height:90vh;overflow:auto;padding:26px}dialog::backdrop{background:#0009}#selected-name{font-size:16px;color:var(--accent)}[hidden]{display:none!important}.file-button{display:block;margin-bottom:0}.two>.file-button{align-self:start}.right .two button{font-size:13px}#select-mode.active{border-color:var(--accent)}@media(max-width:1100px){main{grid-template-columns:240px minmax(300px,1fr)}.right{grid-column:1/-1;display:grid;grid-template-columns:1fr 250px;gap:30px}.right form{display:grid;grid-template-columns:1fr 1fr;gap:14px}.right form #spec-fields{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.right form h3{grid-column:1/-1}}@media(max-width:720px){header{padding:12px;gap:12px}.tag{display:none}.file-actions{margin:0;width:100%}main{display:flex;flex-direction:column}.left{display:grid;grid-template-columns:1fr 1fr;gap:18px;padding:15px}.left section{margin:0;min-width:0}.library-section{grid-column:1/-1}.library{max-height:210px}.right{display:block}.right form{display:block}.right form #spec-fields{display:block}#plot-scroll{height:550px;min-height:0}.status{flex-direction:column}.toolbar{padding:12px}.file-actions button,.file-actions .file-button{font-size:13px}.left .two{grid-template-columns:1fr}.left .library-section .two{grid-template-columns:1fr 1fr}}
@media print{body{background:white;color:black}header,aside,.toolbar,.status,.file-actions{display:none!important}main{display:block}.workspace{background:white}#plot-scroll{padding:0;height:auto;overflow:visible;background:white}#plot{width:100%!important;height:auto!important;box-shadow:none}.patch{break-before:page;color:black}.table-wrap{max-height:none;overflow:visible}th,td{color:black;border-color:#aaa}#warnings{color:#a34c00}@page{size:A3 landscape;margin:12mm}}

.patch-issues{color:#ffbc76;font-size:13px;line-height:1.6;padding-left:20px;max-height:100px;overflow:auto}
/* Task menus keep the working canvas visible. */
.options-menu{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-bottom:24px}.options-menu button{font-size:14px}.options-menu button[aria-pressed=true]{border-color:var(--accent);background:#204244;color:#83ede7}.left .option-panel{margin-top:0}.library-item{grid-template-columns:minmax(0,1fr) 32px 43px;gap:4px}.library-item button{padding:8px 5px}.library-item small{margin-left:34px}.fixture-preview{width:30px;height:30px;vertical-align:middle;margin-right:4px}.library-edit{font-size:12px}.bar-depth-row{display:grid;grid-template-columns:1fr 90px;align-items:center;gap:8px}.group-row{display:grid;grid-template-columns:18px minmax(0,1fr) 33px;gap:6px;margin:15px 0}.group-row>input[type=checkbox]{width:16px;align-self:center}.group-row>input[type=color]{padding:3px;height:38px}.group-row button{grid-column:2/4;font-size:12px;padding:5px}.flybar{cursor:ns-resize;stroke-width:5;pointer-events:stroke}.flybar:hover{stroke-width:8}.patch summary{cursor:pointer;font-size:16px;font-weight:600;margin-bottom:16px}.option-panel #label-controls{margin-bottom:20px}.legend{display:none}button:disabled{opacity:.45;cursor:default}@media(max-width:720px){.left{display:block}.options-menu{grid-template-columns:repeat(3,1fr)}.left .option-panel .two{grid-template-columns:1fr 1fr}.library{max-height:260px}.bar-depth-row{grid-template-columns:1fr 120px}.left .library-section{grid-column:auto}}@media print{.patch details:not([open])>*{display:block}.patch summary{display:block}.patch{break-before:page}}

.spec-editor{margin:16px 0;grid-column:1/-1}.spec-editor summary{cursor:pointer;font-size:14px;color:var(--accent);padding:10px 0}.spec-editor #spec-fields{margin-top:12px}
.bar-depth-row{grid-template-columns:minmax(0,1fr) 73px 54px;font-size:13px}.bar-lock{font-size:12px;padding:6px 3px}.flybar.locked{cursor:default}.view-tabs{display:flex;gap:5px}.view-tabs [aria-pressed=true]{border-color:var(--accent);background:#204244}.patch{padding:20px;overflow:auto}.patch-page{background:white;color:#203345;width:var(--paper-width,297mm);min-height:var(--paper-height,420mm);padding:12mm;border:1px solid #657986;box-shadow:0 5px 20px #1113;margin:0 auto}.patch-page .patch-header{display:flex;background:white;border-bottom:1px solid #314859;padding:0 0 10px;gap:10px;flex-wrap:wrap;margin-bottom:25px;color:#203345}.patch-header h2{margin:0}.patch-header p{margin:0;font-size:14px}.patch-page .table-wrap{overflow:visible;max-height:none}.patch-page th,.patch-page td{color:#203345;border-color:#b4c3cd;font-size:12px;white-space:normal}.patch-page th{font-weight:600}.patch-page .patch-footer{margin-top:25px;font-size:12px;color:#647b8a}.patch-page h3{color:#203345}.patch-page tbody tr:hover{background:#ecf4f6}.patch-page tbody tr.selected{background:#d9eeee}#plot-scroll{height:calc(100vh - 250px);min-height:530px}.options-menu button:last-child{grid-column:1/-1}.patch-issues{color:#a45619}.patch-page table{table-layout:auto}input:disabled{opacity:.45}.patch-page .table-wrap table{width:100%}
@media print{html,body{background:white;margin:0;padding:0}main,.workspace{display:block!important;margin:0!important;padding:0!important}#plot-scroll{display:block!important;min-height:0!important;height:auto!important;padding:0!important;overflow:visible!important;break-after:page}#plot{display:block!important;margin:0!important}.patch{display:block!important;padding:0!important;margin:0!important;overflow:visible!important;break-before:page}.patch-page{box-shadow:none;margin:0!important;box-sizing:border-box;border:0;padding:12mm}.patch-page::before{content:'';position:fixed;inset:10mm;border:1px solid #657986;pointer-events:none}.patch-page .patch-header{display:flex!important}.patch-page thead{display:table-header-group}.patch-page tr{break-inside:avoid}.patch-page .table-wrap{overflow:visible!important}.patch-footer{display:none}body[data-print-pages=plot] .patch{display:none!important}body[data-print-pages=plot] #plot-scroll{break-after:auto}body[data-print-pages=patch] #plot-scroll{display:none!important}body[data-print-pages=patch] .patch{break-before:auto}.patch-page button{display:none}}
/* The application stays in the viewport; controls scroll independently. */
html,body{height:100%;overflow:hidden}body{height:100dvh;display:flex;flex-direction:column}body>header{flex:0 0 auto}main{flex:1;min-height:0;grid-template-columns:270px minmax(0,1fr);height:auto;overflow:hidden}.inspector-open main{grid-template-columns:270px minmax(0,1fr) 290px}.left,.right{height:100%;min-height:0;overflow-y:auto;overscroll-behavior:contain}.right[hidden]{display:none!important}.workspace{display:flex;flex-direction:column;min-height:0;height:100%;overflow:hidden}.toolbar{flex:0 0 auto;gap:10px}.toolbar>label:first-child{min-width:180px}.toolbar .zoom{width:80px}#plot-scroll{display:flex;align-items:center;justify-content:center;flex:1;min-height:0;height:auto;padding:12px;overflow:hidden}#plot{flex:none;margin:auto}.status{flex:0 0 auto}.patch{display:flex;align-items:flex-start;justify-content:center;flex:1;min-height:0;padding:12px;margin:0;overflow:hidden;background:#eaf0f3}.patch-viewport{position:relative;flex:none}.patch-page{position:absolute;left:0;top:0;margin:0;transform-origin:top left}.workspace:fullscreen{height:100dvh;width:100vw;background:#182630;display:flex;padding:0}.plot-expanded .workspace{position:fixed;inset:0;z-index:100;height:100dvh;width:100vw}.bar-depth-row .bar-lock{min-width:0}#patch-continue{flex:none}.right .legend{display:none}
@media(max-width:1100px){main{grid-template-columns:240px minmax(0,1fr)}.inspector-open main{grid-template-columns:240px minmax(0,1fr) 260px}.right{grid-column:auto;display:block;padding:14px}.right form{display:block}.right form #spec-fields{display:block}.left{padding:14px}}@media(max-width:800px){.inspector-open main{grid-template-columns:210px minmax(0,1fr)}.inspector-open .right{position:fixed;right:0;top:100px;bottom:0;height:auto;width:260px;z-index:30;box-shadow:-12px 0 30px #0005}.status>span:last-child{display:none}main{grid-template-columns:210px minmax(0,1fr)}.toolbar .zoom{display:none}}@media(max-width:600px){main,.inspector-open main{display:flex;flex-direction:column}.left{flex:0 0 220px;height:220px;display:block;width:100%;border-bottom:1px solid var(--edge)}.workspace{flex:1;height:auto;min-height:0}.options-menu{grid-template-columns:repeat(4,1fr);margin-bottom:15px}.options-menu button:last-child{grid-column:auto}.options-menu button{padding:7px 3px;font-size:12px}.toolbar{padding:8px}.toolbar>label:first-child{min-width:110px}.toolbar button{padding:6px;font-size:12px}.toolbar #count{font-size:12px}.inspector-open .right{top:95px}.plot-expanded .workspace,.workspace:fullscreen{height:100dvh}.left .option-panel{padding-bottom:18px}}
@media print{html,body{height:auto!important;overflow:visible!important;display:block!important}.workspace{height:auto!important;overflow:visible!important}.toolbar,.status{display:none!important}.patch-viewport{position:static!important;width:auto!important;height:auto!important}.patch-page{position:static!important;transform:none!important}.plot-expanded .workspace{position:static!important;width:auto!important;height:auto!important}#plot-scroll{overflow:visible!important}.patch{overflow:visible!important}}

/* Detail zoom scrolls inside the drawing surface. */
#plot-scroll{display:block;overflow:auto;overscroll-behavior:contain}#plot{display:block;margin-left:auto;margin-right:auto}.patch{justify-content:flex-start;overflow:auto;overscroll-behavior:contain}.patch-viewport{margin-left:auto;margin-right:auto}.toolbar .zoom{width:160px;display:grid;grid-template-columns:1fr auto;gap:3px 8px}.toolbar .zoom input{grid-column:1/-1}.toolbar .zoom output{font-size:13px;color:var(--accent)}@media(max-width:800px){.toolbar .zoom{display:grid;width:130px}}@media print{#plot{margin-top:0!important}.patch-viewport{margin:0!important}#plot-scroll{overflow:visible!important}.patch{overflow:visible!important}}

.stage-platforms [data-stage-platform]{cursor:pointer}.stage-platforms [data-stage-platform]:focus rect{stroke:#1584aa;stroke-width:3}#stage-platform-dialog{width:min(700px,90vw)}.stage-platform-settings{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px;padding:20px 0}.stage-platform-settings label{display:flex;flex-direction:column;gap:8px}

.pipe-drape-drawing [data-drape-pole]{cursor:move}.pipe-drape-drawing [data-drape-pole]:focus rect{stroke:#148d98;stroke-width:3}#pipe-drape-dialog{width:min(680px,90vw)}#pipe-drape-dialog label{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:10px 0}#pipe-drape-dialog input{max-width:180px}

.pipe-drape-actions{display:inline-flex;gap:6px}.pipe-drape-actions[hidden]{display:none}.pipe-drape-run-row{display:flex;align-items:center;gap:10px;margin:10px 0}.pipe-drape-run-row span{flex:1}

.drape-add-control[data-drape-port]{cursor:crosshair}.drape-add-control:focus circle{stroke-width:3}@media print{.drape-add-control{display:none}}
