@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500&display=swap');
:root{font-family:'DM Sans',Arial,sans-serif;color:#263d3b;background:#f4f6f5;font-size:13px}*{box-sizing:border-box}body{margin:0}button,input,textarea,select{font:inherit}button{border:1px solid #dce3df;background:#fff;border-radius:6px;padding:9px 12px;color:#405450;cursor:pointer}button:hover{background:#eef4f0;border-color:#95b5a5}button.active,button.primary{background:#245e49;color:white;border-color:#245e49}button:disabled{opacity:.35;cursor:default}input,textarea,select{width:100%;padding:10px;border:1px solid #dbe2de;border-radius:5px;background:white;color:#263d3b}input:focus,textarea:focus{outline:2px solid #a3c6b1}header{height:72px;background:white;border-bottom:1px solid #dde4df;display:flex;align-items:center;padding:0 24px;gap:30px}.brand{font-size:16px;letter-spacing:1.8px;white-space:nowrap}.brand b{font-weight:400;color:#7b8983}.brandmark{display:inline-flex;align-items:center;justify-content:center;background:#245e49;color:white;font-size:30px;width:33px;height:35px;border-radius:8px;margin-right:10px}.header-note{font-size:9px;letter-spacing:1.8px;color:#84918b}.actions{display:flex;gap:8px;margin-left:auto}.projectbar{height:94px;padding:18px 25px;display:flex;align-items:center;gap:24px}.eyebrow{font:10px 'IBM Plex Mono',monospace;letter-spacing:1.3px;color:#86968e}.projectbar input{font-size:23px;font-weight:500;border:0;background:none;padding:7px 0 0;width:520px}.projectbar>span{margin-left:auto;color:#71897b;font-size:11px}main{display:grid;grid-template-columns:240px minmax(400px,1fr) 252px;height:calc(100vh - 166px);min-height:530px}.library,.inspector{background:#fff;padding:22px 18px;overflow:auto;border-top:1px solid #dde4df}.library{border-right:1px solid #dde4df;display:flex;flex-direction:column}.section-heading{display:flex;justify-content:space-between;font-weight:700;font-size:15px}.section-heading span{font-size:11px;background:#eef3ef;border-radius:4px;padding:2px 7px}.muted{color:#8b9792;font-size:11px;margin:8px 0 18px}.category{font:9px 'IBM Plex Mono',monospace;letter-spacing:1.5px;color:#91a097;margin:22px 0 10px}.component{display:flex;align-items:center;gap:12px;padding:9px 7px;cursor:grab;border:1px solid transparent;border-radius:7px;width:100%;text-align:left;margin:2px 0;font-size:12px}.component:hover{background:#f2f7f3;border-color:#c4d6cb}.component svg{width:31px;height:34px;flex-shrink:0}.library-foot{margin-top:auto;padding-top:24px;color:#618370;font-size:10px;line-height:2}.library-foot small{color:#99a59e;font-size:9px}.green-dot{display:inline-block;width:5px;height:5px;border-radius:50%;background:#3a926b;margin-right:4px}.workspace{min-width:0;display:flex;flex-direction:column;border-top:1px solid #dde4df}.toolbar{height:56px;display:flex;align-items:center;padding:10px 13px;gap:14px;background:#fafcfb;border-bottom:1px solid #dde4df}.toolgroup{display:flex;gap:4px}.toolbar button{font-size:11px;padding:7px 9px}.zoom{margin-left:auto;display:flex;align-items:center;gap:5px;white-space:nowrap}.zoom span{font:10px monospace;min-width:33px}.canvas-wrap{flex:1;overflow:auto;background:#e7ece8;padding:30px;display:flex;align-items:flex-start}#canvas{background:white;box-shadow:0 3px 16px #203a3214;flex-shrink:0;touch-action:none;user-select:none}footer{height:32px;display:flex;align-items:center;justify-content:space-between;padding:0 16px;font-size:10px;color:#7a8e82;background:#f9fbfa;border-top:1px solid #dbe2de}.inspector{border-left:1px solid #dde4df}.inspector h2{font-size:19px;font-weight:500;margin:9px 0 24px}.field{display:block;font-size:11px;color:#71877a;margin:17px 0}.field input,.field textarea,.field select{margin-top:7px;font-size:12px}.field textarea{min-height:90px;resize:vertical}.help{border-top:1px solid #e5eae6;margin-top:28px;padding-top:22px;color:#87998c;font-size:11px;line-height:1.7}.help b{color:#4c6857;font-size:12px}.info{background:#f3f7f3;padding:14px;border:1px solid #e1e9e2;border-radius:5px;font-size:12px;line-height:1.8;color:#708777}.node{cursor:move}.node .selection{display:none}.node.selected .selection{display:block}.edge{cursor:pointer}.edge.selected .wire{stroke:#1b9764;stroke-width:3}#toast{position:fixed;bottom:45px;left:50%;transform:translateX(-50%);background:#234e3c;color:white;border-radius:8px;padding:12px 20px;opacity:0;pointer-events:none;transition:opacity .2s}.show{opacity:1!important}@media(max-width:1150px){main{grid-template-columns:195px minmax(350px,1fr) 215px}.header-note{display:none}.toolbar{gap:5px}.toolbar button{padding:7px 6px}.brand{font-size:13px}.canvas-wrap{padding:18px}}@media(max-width:850px){header{height:auto;padding:14px;flex-wrap:wrap;gap:12px}.actions{margin:0}.projectbar input{width:100%;font-size:18px}.projectbar{height:90px}.projectbar>span{display:none}main{height:calc(100vh - 200px);grid-template-columns:150px minmax(300px,1fr)}.inspector{grid-column:1/-1}.library{padding:16px 8px}.toolbar #duplicate,.toolbar #fit{display:none}.component{font-size:10px;gap:6px}.brandmark{height:27px;width:27px}}
@media print{@page{size:landscape;margin:8mm}header,.projectbar,.library,.toolbar,.inspector,footer,#toast{display:none!important}main,.workspace,.canvas-wrap{display:block!important;height:auto!important;min-height:0!important;padding:0!important;overflow:visible!important;background:white!important}#canvas{width:100%!important;height:auto!important;box-shadow:none}.selection,.port,#gridBG{display:none!important}}
/* Review round 1: readable controls, a fitted sheet, and accessible compact panels. */
:root{font-size:14px;color:#233d30}html,body{height:100%;overflow:hidden}body{display:flex;flex-direction:column}header{height:64px;flex-shrink:0;padding:0 20px;gap:18px}.header-note{display:none}.brand{font-size:14px}.actions button{font-size:13px;white-space:nowrap}.projectbar{height:86px;flex-shrink:0;padding:14px 22px;gap:14px}.projectbar>div{min-width:0;flex:1}.eyebrow{display:block;font-size:11px;line-height:1.5;letter-spacing:1px;color:#5e7969}.projectbar input{display:block;width:100%;font-size:22px;line-height:1.4;padding-top:3px;min-width:0}.projectbar>span{font-size:12px;white-space:nowrap;flex-shrink:0}.projectbar>button{white-space:nowrap}main{flex:1;min-height:0;height:auto;grid-template-columns:220px minmax(0,1fr) 250px;overflow:hidden}.library,.inspector{padding:20px 16px;min-height:0}.section-heading{font-size:16px}.muted{font-size:12px;color:#637b6b;line-height:1.5;margin-bottom:14px}.category{font-size:11px;color:#5f7968;margin-top:20px}.component{font-size:14px;min-height:46px;gap:10px}.component svg{width:28px;height:32px}.library-foot{font-size:12px;line-height:1.7}.library-foot small{font-size:11px;color:#677f6d}.toolbar{height:auto;min-height:60px;flex-shrink:0;flex-wrap:wrap;padding:10px 12px;gap:8px}.toolbar button{font-size:13px;padding:8px 10px;white-space:nowrap;min-height:34px}.toolgroup{gap:4px}.zoom{gap:5px}.zoom span{font-size:12px;min-width:40px}.canvas-wrap{min-height:0;padding:24px;display:block;overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable}#canvas{display:block;max-width:none;font-family:'DM Sans',Arial,sans-serif}footer{min-height:40px;height:auto;gap:8px;line-height:1.5;flex-shrink:0;font-size:12px;color:#506b59;flex-wrap:wrap;padding:6px 12px}.field{font-size:13px;color:#516c5c}.field input,.field textarea,.field select{font-size:14px}.help{font-size:13px;color:#58705f}.help b{font-size:14px}.info{font-size:14px;line-height:1.6;color:#516e59;padding:12px}.inspector h2{font-size:20px;margin-bottom:16px}.inspector select{font-size:13px}.edge>path:first-child{pointer-events:stroke;stroke-width:18px;vector-effect:non-scaling-stroke}.edge .wire{pointer-events:none}.edge text{pointer-events:all}.edge.selected .wire{stroke:#168658;stroke-width:4}.node:focus{outline:none}.node:focus .selection{display:block}.responsive-toggle{display:none}button:focus-visible{outline:3px solid #79b796;outline-offset:2px}.show-library #toggleLibrary,.show-inspector #toggleInspector{background:#245e49;color:white}
@media(max-width:1300px){main{grid-template-columns:205px minmax(0,1fr) 240px}.toolbar{gap:6px}.toolbar button{padding:7px 9px}.zoom{margin-left:auto}.brand{letter-spacing:1px}}
@media(max-width:1050px){main{grid-template-columns:200px minmax(0,1fr)}.inspector{display:none;position:fixed;right:0;top:150px;bottom:0;width:280px;z-index:5;box-shadow:-8px 0 30px #143b3022}.show-inspector .inspector{display:block}#toggleInspector{display:block}.actions{gap:5px}.actions button{padding:8px}.projectbar>span{display:none}.toolbar #duplicate,.toolbar #fit{display:block}}
@media(max-width:700px){header{height:auto;min-height:96px;gap:8px;flex-wrap:wrap;padding:10px 12px}.brand{font-size:13px}.brandmark{width:27px;height:27px}.actions{width:100%;margin:0;display:grid;grid-template-columns:repeat(4,1fr)}.actions button{padding:8px 3px;font-size:12px}.projectbar{height:80px;padding:10px 12px}.projectbar input{font-size:18px}.projectbar .eyebrow{font-size:10px}.projectbar button{font-size:12px;padding:8px}.projectbar>div{max-width:calc(100% - 105px)}main{display:flex}.workspace{width:100%;flex:1}.library{display:none;position:fixed;left:0;top:176px;bottom:0;width:245px;z-index:5;box-shadow:8px 0 30px #143b3022;background:white}.show-library .library{display:flex}.inspector{top:176px;width:min(290px,90vw)}#toggleLibrary{display:block}.toolbar{padding:8px;gap:5px}.toolbar button{font-size:12px;padding:7px 8px}.zoom{margin-left:0}.canvas-wrap{padding:16px}footer{font-size:11px}.component{font-size:14px;gap:10px}}
@media print{html,body{height:auto;overflow:visible;display:block}.responsive-toggle{display:none!important}.workspace{width:100%!important}.edge.selected .wire{stroke:#294b39!important;stroke-width:2.5!important}.canvas-wrap{scrollbar-gutter:auto!important}#canvas{width:100%!important;height:auto!important}.node:focus .selection{display:none!important}}
/* Final critic repair: bound the grid row and make compact panels dismissible. */
main{grid-template-rows:minmax(0,1fr)}.workspace{min-height:0;overflow:hidden}.canvas-wrap{flex:1 1 0}.drawer-close{display:none;align-self:flex-end;margin:0 0 14px auto;font-size:13px;min-height:38px}.node,.edge{outline-offset:4px}
@media(max-width:1050px){.inspector .drawer-close{display:block}.inspector{padding-top:12px}}
@media(max-width:700px){.library .drawer-close{display:block}.library{padding-top:12px}}
@media print{.drawer-close{display:none!important}main{overflow:visible!important;grid-template-rows:none!important}.workspace{overflow:visible!important}.canvas-wrap{flex:none!important}}
dialog{border:1px solid #c9d9ce;border-radius:14px;padding:26px;width:min(740px,calc(100vw - 32px));max-height:calc(100dvh - 40px);overflow:auto;color:#254638;box-shadow:0 20px 80px #112d3840}dialog::backdrop{background:#122d2a70}.dialog-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.dialog-heading h2{font-size:24px;margin:5px 0}.dialog-heading button{font-size:24px;padding:0 10px;min-height:38px}.dialog-intro{font-size:14px;line-height:1.6;color:#5a7063}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:30px}.settings-grid section+section{border-left:1px solid #e0e7e2;padding-left:28px}.settings-grid h3{font-size:16px;margin:16px 0 0}.dimension-fields{display:flex;gap:12px}.dimension-fields .field{flex:1;min-width:0}.setting-help{font-size:12px;line-height:1.6;color:#62796b}.expand-actions{display:flex;flex-direction:column;gap:8px}.logo-preview{background:#f3f7f4;border:1px dashed #b3cabb;min-height:90px;display:flex;align-items:center;justify-content:center;padding:12px;font-size:22px;font-weight:700;color:#245e49;overflow-wrap:anywhere}.logo-preview img{max-width:100%;max-height:80px;object-fit:contain}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;border-top:1px solid #dce5df;padding-top:18px;margin-top:14px}#settingsError{color:#9d302b;font-size:13px;line-height:1.5;min-height:20px}#logoFile{font-size:12px;width:100%}#paperSettings{white-space:nowrap}@media(max-width:700px){.projectbar{height:auto;min-height:100px;flex-wrap:wrap;gap:6px}.projectbar>div{min-width:100%;max-width:100%}.projectbar button{font-size:12px}.library,.inspector{top:210px}.settings-grid{grid-template-columns:1fr;gap:8px}.settings-grid section+section{padding-left:0;border-left:none;border-top:1px solid #e0e7e2}dialog{padding:18px}.dialog-heading h2{font-size:20px}}@media print{dialog{display:none!important}}
#canvas[data-mode="connect"],#canvas[data-mode="connect"] .node,#canvas[data-mode="connect"] .node *,#canvas[data-mode="connect"] .edge,#canvas[data-mode="connect"] .port{cursor:default}#canvas[data-mode="connect"] .port:hover{stroke:#16452b;stroke-width:3}.logo-preview{padding:0;min-height:0;display:block;background:white;border:0;overflow:hidden}.logo-preview svg{display:block;width:100%;height:auto}#logoScale{padding:0;accent-color:#245e49;cursor:pointer;margin:0 0 8px}#logoScaleValue{float:right;font-variant-numeric:tabular-nums}.dialog-actions{position:sticky;bottom:-26px;background:white;padding-bottom:12px}#resetLogoScale{font-size:12px}
.diagram-label{cursor:grab;pointer-events:bounding-box}.diagram-label:active{cursor:grabbing}.edge.selected .wire{stroke:var(--wire-color,#294b39)!important;stroke-width:4}.color-swatches{display:flex;gap:6px;flex-wrap:wrap}.color-swatches button{width:23px;height:23px;padding:0;border:2px solid white;outline:1px solid #cad7cd;border-radius:50%}.label-heading{font-size:14px;margin:22px 0 6px}.appearance input[type=color]{height:36px;padding:3px}.label-nudges{display:flex;gap:3px;flex-wrap:wrap}.label-nudges button{padding:6px 9px}.appearance .dimension-fields .field{font-size:12px}.appearance .dimension-fields input{min-width:0;padding:8px}.paper-handles{pointer-events:all}#canvas[data-mode="paper"] .node{cursor:default}@media print{.paper-handles{display:none!important}.edge.selected .wire{stroke:var(--wire-color,#294b39)!important;stroke-width:2.5!important}}

#canvas[data-mode="select"] .route-handle{cursor:ns-resize;pointer-events:stroke}@media print{.route-handle{display:none}}

#canvas[data-mode="pan"],#canvas[data-mode="pan"] *{cursor:grab!important}#canvas[data-mode="pan"]:active,#canvas[data-mode="pan"]:active *{cursor:grabbing!important}

#canvas[data-mode="ground"],#canvas[data-mode="ground"] *,#canvas:not([data-mode="pan"]) .node[data-kind="ground"],#canvas:not([data-mode="pan"]) .node[data-kind="ground"] *,#canvas:not([data-mode="pan"]) .edge[data-ground="true"],#canvas:not([data-mode="pan"]) .edge[data-ground="true"] *{cursor:default!important}

.conductor-aid{border:1px solid #b9cbbf;border-radius:10px;padding:12px;margin:12px 0 22px;background:#f7faf7}.conductor-aid h3{margin:0 0 8px;font-size:16px}.aid-badge{display:inline-block;font-size:10px;font-weight:650;line-height:1.5;letter-spacing:.02em;color:#265a41;background:#dceee3;border-radius:4px;padding:2px 5px;white-space:normal}.aid-badge.manual{background:#fff0ce;color:#744600}.aid-summary{font-size:12px;line-height:1.5;background:#fff7e6;border-left:3px solid #ba8534;padding:10px;margin-bottom:12px}.aid-summary p{margin:5px 0}.aid-summary ul{padding-left:15px;margin-bottom:0}.aid-summary li+li{margin-top:5px}.aid-inputs,.aid-sources{font-size:12px;line-height:1.5;margin:12px 0}.aid-inputs summary,.aid-sources summary{cursor:pointer;font-weight:650;margin-bottom:10px}.aid-result{border-top:1px solid #dae4dc;padding:10px 0}.aid-result .field{margin-bottom:5px}.aid-result button{font-size:11px;padding:4px 7px}.aid-check{display:flex;gap:8px;font-size:12px;align-items:flex-start;line-height:1.5}.aid-check input{width:auto;margin-top:3px}.aid-sources a{color:#176743;text-decoration:underline}
.conductor-aid>summary{cursor:pointer;font-weight:650;font-size:13px;line-height:1.7}.conductor-aid>summary .aid-badge{font-size:9px}.aid-provenance{font-size:11px;line-height:1.5;color:#685122;background:#fff7e6;padding:8px;border-radius:5px}.aid-summary summary{cursor:pointer;font-weight:600}.aid-summary .aid-badge{margin-left:4px}
