:root{--ink:#18352f;--muted:#60716c;--line:#dce5e1;--green:#155c48;--mint:#b8e1cd;--paper:#f4f6f3;--blue:#287bba;--orange:#c58431;font-family:Arial,Helvetica,sans-serif;color:var(--ink);background:var(--paper);font-size:14px}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,.button{cursor:pointer;border-radius:8px;min-height:40px;display:inline-flex;align-items:center;justify-content:center;gap:9px;text-decoration:none;border:1px solid var(--line);background:white;color:var(--ink);padding:9px 14px;font-weight:600}button:hover,.button:hover{border-color:#709b89;background:#edf5ef}button:disabled{opacity:.5;cursor:not-allowed}a{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #16846b;outline-offset:3px}[hidden]{display:none!important}.primary{background:var(--green);border-color:var(--green);color:white}.primary:hover{background:#104535;color:white}.primary span{margin-left:24px}.quiet{background:transparent}.outline{background:white}.full{width:100%;margin:6px 0}.square{padding:10px}.skip{position:absolute;left:10px;top:-70px;background:white;padding:12px;z-index:100}.skip:focus{top:10px}.masthead{min-height:76px;display:flex;align-items:center;justify-content:space-between;gap:20px;background:#0b2027;padding:18px 3%;color:#f5f9f7}.brand{font-size:18px;font-weight:800;letter-spacing:.35px;text-decoration:none}.brand span{display:block;font-size:10px;font-weight:400;letter-spacing:1px;margin-top:5px;color:#a5b8b6}.masthead nav{display:flex;gap:25px;font-size:12px}.masthead nav a{text-decoration:none;color:#d3e0dc}.intro{padding:29px 0 25px;display:flex;align-items:center;justify-content:space-between;gap:20px}.eyebrow{font-size:10px;letter-spacing:1.6px;font-weight:700;color:#6b8076;margin:0 0 10px}h1{font-size:30px;letter-spacing:-1px;line-height:1.15;margin:0 0 10px;font-weight:600}.intro p:not(.eyebrow){margin:0;color:var(--muted);font-size:13px}.intro-actions{display:flex;gap:8px;flex-wrap:wrap}main{max-width:1800px;margin:auto;padding:0 3%}h2{font-size:17px;letter-spacing:-.35px;margin:0}h3{font-size:13px;margin:20px 0 10px}.steps{display:flex;border:1px solid var(--line);border-radius:12px 12px 0 0;background:white;align-items:center;overflow:auto}.steps button{border:0;border-radius:0;padding:16px 22px;background:transparent;color:var(--muted);white-space:nowrap;border-bottom:3px solid transparent}.steps button.active{border-bottom-color:var(--green);color:var(--green);background:#f1f7f2}.steps b{font-size:10px;opacity:.6;margin-right:6px}.steps>span{margin-left:auto;padding:15px;font-size:11px;white-space:nowrap;color:var(--muted)}.workspace{display:grid;grid-template-columns:280px minmax(0,1fr) 245px;border:1px solid var(--line);border-top:0;border-radius:0 0 12px 12px;overflow:hidden;min-height:640px;background:white}.sidebar{border-right:1px solid var(--line);background:#fff;max-height:740px;overflow:auto}.panel-content{padding:22px 18px}.panel-title{display:flex;align-items:center;gap:10px;margin-bottom:16px}.step-dot{width:25px;height:25px;border:1px solid #b9d7c7;border-radius:50%;font-size:10px;display:grid;place-items:center;color:var(--green)}.subtle{font-size:12px;line-height:1.6;color:var(--muted);margin:12px 0 18px}.hint{font-size:11px;line-height:1.55;color:var(--muted);margin:10px 0 15px}.provider-button{width:100%;justify-content:space-between;padding:14px 10px;text-align:left;font-size:12px;gap:8px}.provider-button small{display:block;font-size:10px;font-weight:400;color:var(--muted);margin-top:4px}.map-symbol{font-size:25px;font-weight:400;color:#33866a}.divider{display:flex;align-items:center;gap:10px;font-size:9px;color:#89958f;margin:20px 0}.divider:before,.divider:after{content:'';flex:1;height:1px;background:var(--line)}.file-button{position:relative;overflow:hidden}.file-button input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%}.file-button:focus-within{outline:3px solid #16846b}label{display:block;font-size:11px;line-height:1.5;color:#4f655b;font-weight:600;margin:13px 0 7px}input:not([type=checkbox]),select,textarea{width:100%;border:1px solid #cddbd3;background:#fff;border-radius:6px;padding:10px;color:var(--ink);min-height:39px;margin-top:5px;font-size:12px}input[type=range]{accent-color:var(--green);padding:0;border:0}input[type=checkbox]{accent-color:var(--green);width:16px;height:16px;flex:0 0 16px;margin:1px 0}.check{display:flex;align-items:flex-start;gap:8px;font-weight:400;font-size:11px;line-height:1.5}.check a{margin-left:-3px}.two{display:grid;grid-template-columns:1fr 1fr;gap:10px}.inline{display:flex;gap:5px;align-items:center}.inline input{min-width:0}.filters label{margin:10px 0 0}.drawing{background:#edf2ec;min-width:0;display:flex;flex-direction:column}.map-toolbar{min-height:56px;padding:8px 12px;display:flex;align-items:center;justify-content:space-between;background:#fcfdfb;border-bottom:1px solid var(--line);gap:10px}.tools{display:flex;gap:4px;align-items:center}.tool{width:34px;height:34px;min-height:34px;padding:4px;font-size:20px;font-weight:400;border-color:transparent;border-radius:6px}.tool.active{background:#dfede3;color:#14583e;border-color:#b4cebd}.toolbar-line{height:20px;width:1px;background:var(--line);margin:0 5px}.grid-toggle{margin:0;white-space:nowrap}.canvas{position:relative;flex:1;min-height:455px;overflow:hidden;background:#eaf0e8}.canvas svg{position:absolute;inset:0;width:100%;height:100%;touch-action:none;user-select:none}.canvas #googleMap{position:absolute;inset:0}.canvas.google{background:#d6e3de}.canvas.google svg{bottom:42px;height:calc(100% - 42px)}.canvas.google .canvas-note{bottom:48px}.canvas.google.pan svg{pointer-events:none}.north{position:absolute;right:15px;top:14px;text-align:center;font-size:10px;pointer-events:none;background:#f7faf0e6;border-radius:15px;padding:7px}.north span{display:block;font-size:23px;color:#597262}.canvas-note{position:absolute;bottom:13px;left:14px;font-size:9px;letter-spacing:.8px;color:#49614f;background:#f6f9f2e8;padding:7px 10px;border-radius:6px;pointer-events:none}.canvas-hint{position:absolute;left:50%;top:43%;transform:translate(-50%,-50%);max-width:310px;width:80%;text-align:center;background:#ffffffed;box-shadow:0 8px 35px #17452215;border:1px solid #dae6d6;border-radius:14px;padding:20px;pointer-events:none}.canvas-hint>span{font-size:28px;color:#458164;display:block;margin-bottom:10px}.canvas-hint strong{font-size:16px}.canvas-hint p{font-size:11px;color:#688071;line-height:1.7}.map-footer{padding:12px 15px;display:flex;justify-content:space-between;align-items:center;background:#fcfdfb;border-top:1px solid var(--line);font-size:10px;color:var(--muted);gap:12px}.legend{display:flex;gap:13px;flex-wrap:wrap}.legend span{display:flex;align-items:center;gap:5px}.legend i{width:15px;height:3px;display:inline-block}.mint{background:#74b98f}.blue{background:var(--blue)}.amber{background:var(--orange)}.metrics{display:flex;gap:20px;padding:18px;background:white;border-top:1px solid var(--line)}.metrics>div{min-width:44px}.metrics b{font-size:21px;letter-spacing:-1px;font-weight:600;display:block;white-space:nowrap}.metrics span{font-size:10px;color:var(--muted)}.metrics p{font-size:11px;line-height:1.7;margin:0 0 0 auto}.inspector{padding:24px 18px;border-left:1px solid var(--line);background:#fcfdfb;max-height:740px;overflow:auto}.inspector .eyebrow{font-size:9px;margin-bottom:13px}.inspector .idle-icon{font-size:35px;color:#a6b8ad;margin:25px 0 15px}.inspector .selected-model{font-size:13px;line-height:1.6;margin:14px 0}.inspector .pill{display:inline-block;padding:4px 7px;background:#e5f0e8;border-radius:5px;font-size:9px;letter-spacing:.3px}.coverage-note{border-top:1px solid var(--line);display:flex;gap:9px;margin-top:22px;padding-top:16px;color:var(--muted)}.coverage-note>span{border:1px solid #a7bbae;border-radius:50%;width:15px;height:15px;display:grid;place-items:center;font-size:10px;flex-shrink:0;margin-top:2px}.coverage-note p{font-size:10px;line-height:1.7;margin:0}.coverage-note strong{font-weight:500;color:#425a4b}.product-list{display:grid;gap:9px}.product{padding:13px 12px;border:1px solid var(--line);border-radius:9px;text-align:left;background:#fff;position:relative}.product:hover{border-color:#83ae92;background:#f6faf5}.product.picked{border-color:var(--green);box-shadow:inset 3px 0 var(--green)}.product .model{font-size:11px;font-weight:600;display:block;line-height:1.5;word-break:break-word}.product .brandline{font-size:9px;color:#668474;margin-bottom:6px;letter-spacing:.5px;display:flex;justify-content:space-between}.product .spec{font-size:10px;line-height:1.5;color:var(--muted);margin-top:8px;display:block}.product button{font-size:11px;min-height:32px;width:100%;margin-top:10px;padding:5px}.product a{display:block;font-size:10px;color:var(--muted);margin-top:8px}.camera-list{display:grid;gap:6px}.camera-list button{justify-content:flex-start;font-size:11px}.camera-list .number{width:22px;height:22px;display:grid;place-items:center;border-radius:50%;background:#d7e9dd;font-size:10px}.bom-row{display:flex;justify-content:space-between;gap:10px;padding:12px 0;border-bottom:1px solid var(--line);font-size:11px;line-height:1.5}.bom-row strong{white-space:nowrap}.warnings p{padding:11px;background:#faf3e8;border-left:2px solid #cdb486;font-size:10px;line-height:1.65;color:#766345;border-radius:3px}.notice{padding:12px 17px;background:#e6f2ea;border:1px solid #bbd8c4;border-radius:8px;font-size:12px;margin-bottom:12px;line-height:1.6}.notice.error{background:#fff1eb;color:#8a402b;border-color:#e9c0ad}.bottom-note{color:#76847b;font-size:11px;text-align:center;line-height:1.8;margin:20px}.danger{color:#a44c3a}.muted{color:var(--muted)}.small-actions{display:flex;gap:5px;flex-wrap:wrap;margin-top:15px}.small-actions button{font-size:11px;min-height:32px;padding:6px 10px}.connection-button{display:block;width:100%;font-size:11px;text-align:left;justify-content:space-between;margin:7px 0}.connection-button.selected{border-color:var(--green);background:#edf5ed}.coverage{pointer-events:none;fill:#4dbe8830;stroke:#468e6a;stroke-width:1;vector-effect:non-scaling-stroke}.cable{stroke:#3785b6;stroke-width:2.5;fill:none;vector-effect:non-scaling-stroke}.cable.wireless{stroke:#bc822e;stroke-dasharray:7 5}.cable.selected{stroke-width:4}.cable-hit{stroke:transparent;stroke-width:16;fill:none;vector-effect:non-scaling-stroke;cursor:pointer}.handle{cursor:grab}.rotate-handle{cursor:crosshair}.node-label{font-family:Arial,Helvetica,sans-serif;pointer-events:none}.honey,.sr-only{position:absolute;clip:rect(0,0,0,0);height:1px;width:1px;overflow:hidden;white-space:nowrap}dialog{border:1px solid #d4e2d7;border-radius:16px;padding:28px;max-width:640px;width:calc(100% - 24px);max-height:92dvh;color:var(--ink);box-shadow:0 20px 80px #102d4050}dialog::backdrop{background:#081c2b9c;backdrop-filter:blur(3px)}.dialog-header{display:flex;justify-content:space-between;align-items:flex-start;gap:20px}.dialog-header h2{font-size:23px;letter-spacing:-.6px}#sendStatus{font-size:12px;line-height:1.6}#measureDialog{max-width:370px}body.readonly .steps,body.readonly .intro-actions,body.readonly .sidebar,body.readonly .grid-toggle{display:none}body.readonly .workspace{grid-template-columns:1fr 280px;border-top:1px solid var(--line);border-radius:12px}body.readonly .inspector button,body.readonly .inspector input,body.readonly .inspector select{pointer-events:none;opacity:.7}body.readonly .canvas svg{touch-action:pan-y}body.readonly .canvas-hint{display:none}
@media(min-width:1550px){.workspace{grid-template-columns:310px minmax(0,1fr) 270px}.canvas{min-height:570px}.sidebar,.inspector{max-height:850px}.intro{padding:36px 0}}
@media(max-width:1200px){.workspace{grid-template-columns:260px minmax(0,1fr)}.inspector{grid-column:1 / -1;border-left:0;border-top:1px solid var(--line);display:grid;grid-template-columns:2fr 1fr;gap:30px;max-height:none}.inspector #inspector{display:block}.inspector label{max-width:450px}.coverage-note{margin:0;border:0;align-self:start}.intro{align-items:flex-start}.intro-actions{max-width:320px;justify-content:flex-end}.steps>span{display:none}.metrics p{display:none}.sidebar{max-height:670px}.canvas{min-height:450px}}
@media(max-width:700px){main{padding:0 12px}.masthead{padding:14px 16px;min-height:67px}.brand{font-size:14px}.masthead nav a:first-child{display:none}.masthead nav{font-size:10px}.brand span{font-size:8px}.intro{padding:23px 3px;display:block}.intro .eyebrow{font-size:9px}h1{font-size:26px}.intro-actions{justify-content:flex-start;max-width:none;margin-top:18px;gap:6px}.intro-actions button,.intro-actions .button{font-size:11px;padding:8px 10px;min-height:36px}.primary span{margin-left:3px}.steps{justify-content:space-around}.steps button{padding:13px 10px;font-size:11px;flex:1}.steps b{display:none}.workspace{display:flex;flex-direction:column}.sidebar{order:2;border-right:0;border-top:1px solid var(--line);max-height:none}.drawing{order:1}.inspector{order:3;display:block;padding:20px;max-height:none}.canvas{height:390px;min-height:390px;flex:auto}.metrics{padding:12px 18px;gap:35px}.metrics b{font-size:20px}.map-toolbar{padding:6px 9px}.toolbar-line{margin:0 1px}.tool{width:31px}.grid-toggle{font-size:10px}.map-footer{padding:10px;font-size:9px}.legend{gap:8px}.product-list{grid-template-columns:repeat(2,minmax(0,1fr));max-height:490px;overflow:auto}.panel-content{padding:20px}.panel-content .subtle{margin:8px 0 13px}.coverage-note{margin-top:20px;border-top:1px solid var(--line);padding-top:15px}.two{gap:8px}dialog{padding:20px}.dialog-header h2{font-size:21px}.intro-actions #openInquiry{margin-left:auto}.canvas-note{font-size:8px}.bottom-note{font-size:10px}.inspector input,.inspector select{max-width:100%}body.readonly .workspace{display:flex}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}

.intro-actions{align-items:center}.intro-actions label{margin:0}.canvas svg:focus-visible{outline:3px solid #16846b;outline-offset:-3px}.notice button{margin-left:12px;font-size:11px}.check>span{min-width:0}

@media(max-width:700px){input:not([type=checkbox]),select,textarea{font-size:16px}}

.connection-button{display:flex;gap:8px}.connection-button span:last-child{white-space:nowrap}
/* V2: one clear control rail, positioned to the right of the plan. */
.workspace{grid-template-columns:minmax(0,1fr) 360px;align-items:start;overflow:visible;background:#eef2ee}
.drawing{grid-column:1;grid-row:1;position:sticky;top:12px;border-radius:0 0 0 12px;overflow:hidden}
.sidebar{grid-column:2;grid-row:1;border:0;border-left:1px solid #cedbd2;max-height:none;overflow:visible;border-radius:0 0 12px 0;min-width:0}
.inspector{border:0;border-top:1px solid var(--line);max-height:none;display:block;padding:22px;background:#f7faf7}
.panel-content{padding:22px}.canvas{min-height:480px;height:min(58vh,660px);flex:none}
.step-help{margin:14px 14px 0;padding:16px 20px;border-radius:12px;background:linear-gradient(125deg,#fffffff2,#f9fffbda);border:1px solid #fff;box-shadow:0 3px 18px #173c3110;backdrop-filter:blur(12px);line-height:1.5}
.step-help>span{font-size:11px;color:#276a51;font-weight:bold;margin-right:12px}.step-help strong{font-size:15px}.step-help p{margin:7px 0;font-size:12px;color:#344f43;max-width:85ch}.step-help small{font-size:11px;color:#60766a;display:block}
.map-toolbar{margin-top:12px}.wizard-nav{display:flex;justify-content:space-between;gap:12px;padding:16px 20px;background:#f9fcf9;border-top:1px solid #d0dfd5;position:sticky;bottom:0;z-index:5;border-radius:0 0 12px 0;box-shadow:0 -6px 18px #15382c08}.wizard-nav button{flex:1}
.category-tabs{display:flex;flex-wrap:wrap;gap:6px}.category-tabs button{font-size:11px;min-height:34px;padding:7px 10px;border-radius:20px;background:#f6f8f5}.category-tabs button.active{background:#155c48;color:#fff;border-color:#155c48}
.product-list{max-height:350px;overflow:auto;padding:2px 6px 2px 0;grid-template-columns:1fr}.building-row{display:flex;justify-content:space-between;gap:12px;text-align:left;width:100%;margin:7px 0;font-size:12px}.building-row small{font-size:10px;white-space:nowrap}.building-row.active{background:#e6f2e9;border-color:#749c85}
.building{fill:#fffdf0b3;stroke:#516756;stroke-width:2;vector-effect:non-scaling-stroke;cursor:pointer}.building.selected{stroke:#155c48;stroke-width:3}.building.draft{fill:none;stroke-dasharray:6 4;pointer-events:none}.dimension{font-family:Arial,sans-serif;fill:#294934;stroke:#ffffffe8;paint-order:stroke;pointer-events:none;font-weight:600}.device-symbol{pointer-events:none}
.equipment{padding:12px;border:1px solid #d4e1d8;border-radius:8px;background:#f5f9f5;margin:8px 0;font-size:11px}.equipment b{font-size:12px;line-height:1.5}.equipment p{color:#596d62;font-size:11px;line-height:1.55;margin:4px 0 0}.bom-row strong{white-space:normal;text-align:right;max-width:55%;word-break:break-word}
#draftCount{font-size:12px;font-weight:600;color:#155c48}#draftTools{border:1px solid #c5d9cc;padding:12px;border-radius:9px;background:#f3f8f3}#draftTools .small-actions{margin-top:8px}#siteLocality{min-width:0}.site-fields{margin-bottom:20px}.map-toolbar .tools{flex-wrap:wrap}.steps button{padding:16px 18px}.steps>span{font-size:10px}
body.readonly .workspace{grid-template-columns:minmax(0,1fr) 300px}body.readonly .sidebar{display:block}body.readonly .panel-content,body.readonly .wizard-nav,body.readonly #stepHelp{display:none}body.readonly .inspector{display:block}body.readonly .drawing{position:relative}
@media(min-width:1550px){.workspace{grid-template-columns:minmax(0,1fr) 390px}.canvas{min-height:550px}.sidebar,.inspector{max-height:none}}
@media(max-width:1000px){.workspace{grid-template-columns:minmax(0,1fr) 310px}.step-help{padding:14px}.steps>span{display:none}.step-help small{font-size:10px}.panel-content,.inspector{padding:18px}.metrics{gap:16px}.canvas{height:470px;min-height:470px}.legend{gap:8px}}
@media(max-width:760px){.workspace{display:flex;flex-direction:column}.drawing{width:100%;position:static}.sidebar{width:100%;border-left:0;border-top:1px solid #cedbd2}.canvas{height:380px;min-height:380px}.step-help{margin:10px 10px 0;padding:12px}.step-help strong{font-size:13px}.step-help p{font-size:11px}.step-help small{font-size:10px}.steps button{font-size:10px;padding:14px 8px;flex:1;gap:0}.steps{justify-content:space-around}.steps b{display:none}.product-list{grid-template-columns:repeat(2,minmax(0,1fr));max-height:340px}.wizard-nav{position:sticky;bottom:0;border-radius:0;z-index:5}.panel-content{padding:20px}.inspector{padding:20px}.metrics{padding:12px 16px;gap:30px}.metrics p{display:none}.grid-toggle{font-size:9px}.map-toolbar{margin-top:8px}.canvas-note{max-width:92%;font-size:8px}.map-footer{flex-wrap:wrap}.coverage-note{margin-top:18px}body.readonly .workspace{display:flex}.masthead nav{gap:8px}}
@media(max-width:380px){.grid-toggle{max-width:65px;white-space:normal}.tool{width:29px}.tools{gap:2px}.toolbar-line{display:none}.product-list{grid-template-columns:1fr}}
/* V2.1 location choice, local postal search and contextual guidance. */
.provider-button[aria-pressed=true],#manualStart[aria-pressed=true]{border-color:#27745c;background:#e9f4ed;box-shadow:0 0 0 1px #27745c}
.site-fields{margin-top:22px;padding-top:18px;border-top:1px solid #d4dfd6}.site-fields>label{margin-top:14px}.postal-picker{position:relative;min-width:0}.postal-options{position:absolute;top:calc(100% + 4px);left:0;right:0;max-height:240px;overflow:auto;z-index:25;background:#fff;border:1px solid #7e9d8c;border-radius:8px;box-shadow:0 10px 30px #17382d25;color:#18392d}.postal-options [role=option]{padding:11px 12px;cursor:pointer;font-size:13px;line-height:1.45}.postal-options [role=option]:hover,.postal-options [aria-selected=true]{background:#e6f2e9;color:#144e3d}.postal-options[hidden]{display:none}.step-help #showGuide{padding:6px 10px;min-height:30px;font-size:11px;margin-top:7px}.product{padding:16px}.product .brandline{font-size:15px;font-weight:650;color:#214a38;gap:8px}.product .brandline>span:last-child{background:#edf5ee;border-radius:5px;padding:3px 7px;white-space:nowrap}.product .model{font-size:14px;font-weight:600;line-height:1.4;margin:10px 0}.product .spec{font-size:12px;line-height:1.6}.product .angle{display:block;font-size:14px;font-weight:600;color:#254e3b;margin-top:5px}.product-photo{height:120px;width:100%;object-fit:contain;display:block;background:#fff;border-radius:7px;margin-bottom:12px}.product-photo-missing{height:96px;display:grid;place-items:center;background:#f5f8f5;color:#637c6e;font-size:12px;border-radius:7px;margin-bottom:12px}.product-list{max-height:520px}.product button{font-size:12px;min-height:38px}.product a{font-size:11px}
@media(max-width:760px){.product-list{grid-template-columns:1fr;max-height:470px}.product-photo{height:150px}}
@media(max-width:760px){.workspace[data-stage="0"] .sidebar{order:0}.workspace[data-stage="0"] .drawing{order:1}.workspace[data-stage="0"][data-mode="demo"] .drawing{display:none}}
/* V2.2: clearer hierarchy, on-plan controls and step-by-step onboarding. */
:root{--ink:#112f28;--muted:#40594f;--line:#adbfb4;--paper:#dfe7e2;--green:#0c5842}.workspace{background:#cfdcd3;border-color:#91aa9a}.drawing{background:#d6e1d8}.sidebar{border-left:2px solid #90a899}.panel-title h2{font-size:19px}.step-help{background:#fff;border:1px solid #809e8c;box-shadow:0 4px 16px #163f3020}.step-help>span{font-size:13px;color:#0c5842}.step-help strong{font-size:17px}.step-help p{font-size:14px;color:#183d2e}.step-help small{color:#425e50;font-size:12px}.subtle,.hint{font-size:13px;color:#40594f}.divider{font-size:15px;font-weight:800;color:#304b3c;margin:20px 0}.divider:before,.divider:after{background:#91a797}.provider-button{font-size:15px;border:2px solid #91ac9d}.provider-button small{font-size:12px}.full{min-height:44px}.map-toolbar{border-top:1px solid #8fa99a;border-bottom:1px solid #8fa99a;background:#fff}.tool{min-width:40px;min-height:40px;border:1px solid #a9c0b3;background:#fff}.tool.active{background:#0e6048;color:#fff;border-color:#0e6048}.map-footer,.metrics{border-color:#9eb4a6}.step-dot{color:#fff;background:#0e6048;font-weight:700;border:0}label{font-size:12px;color:#203f31}input:not([type=checkbox]),select,textarea{border-color:#8da99a}.product{border:1px solid #90ad9c}.product .brandline{font-size:17px;color:#143f2e}.product .brandline>span:last-child{font-size:15px;background:#d9ebdf}.product .model{font-size:15px}.product .angle{font-size:15px}.product-price{display:block;font-size:23px;font-weight:800;color:#0c5842;margin:14px 0 8px;letter-spacing:-.5px;line-height:1.25}.selected-place,.product .selected-place:hover{background:#0c5842;border-color:#0c5842;color:#fff}.product.picked{background:#edf8f1;border-width:2px}.brand-buttons{display:flex;gap:10px}.brand-buttons button{font-size:18px;padding:15px 12px;flex:1;border:2px solid #8faa9c}.brand-buttons .active{background:#0c5842;color:white;border-color:#0c5842}#brandChoices{margin-bottom:20px}.partial-total{background:#103d2e;color:white;padding:17px;border-radius:9px;margin-top:16px;display:grid;gap:8px}.partial-total strong{font-size:25px}.bom-row{font-size:13px}.bom-row small{display:block;font-size:11px;font-weight:400}.equipment-price{display:block;font-size:13px;font-weight:700;margin:8px 0;color:#435c4d}.equipment{background:#e8f1eb;border-color:#9ab4a4}.equipment button{font-size:12px;margin-top:8px}.equipment b{font-size:14px}.equipment p{font-size:12px;color:#344f40}.wizard-nav{background:#edf4ef;border-color:#94ac9d}.error-bubble{position:relative;background:#fff0ee;border:2px solid #b52e28;color:#9e231d;font-weight:700;padding:12px 14px;border-radius:9px;margin:8px 0}.error-bubble:before{content:'';position:absolute;top:-8px;left:28px;width:12px;height:12px;background:#fff0ee;border-top:2px solid #b52e28;border-left:2px solid #b52e28;transform:rotate(45deg)}.house-marker{pointer-events:none}.legacy-poe{pointer-events:auto;cursor:pointer}.ghost-view{fill:#0b8b5944;stroke:#146f4c;stroke-dasharray:6 3}.range-handle{cursor:ew-resize}.map-popover.inspector{position:absolute;z-index:30;width:275px;max-width:calc(100% - 16px);max-height:calc(100% - 16px);padding:16px;overflow:auto;display:block;border:1px solid #5d8a73;border-radius:12px;background:#fffffff5;box-shadow:0 8px 30px #0b382d33}.map-popover .compact-model{font-size:12px;line-height:1.4;margin:8px 15px 8px 0}.map-popover .hint{font-size:12px;margin:7px 0}.map-popover strong{font-size:14px;display:block;padding-right:16px}.map-popover .camera-live{background:#deeee3;color:#15432f;font-size:12px;padding:7px;border-radius:5px;margin:7px 0}.map-popover label{font-size:12px}.map-popover details{border-top:1px solid #bed2c4;margin-top:8px;padding-top:8px;font-size:12px}.map-popover summary{cursor:pointer;font-weight:700;line-height:1.5}.popover-close{position:absolute;right:6px;top:6px;min-height:28px;width:28px;padding:0;font-size:20px;border:0;background:transparent}.hub-cameras{max-height:180px;overflow:auto;border-block:1px solid #c8d8cc}.hub-cameras label{font-weight:400}.coverage-note{margin:0;padding:12px 16px;background:#f8fbf8;border-top:1px solid #9ab5a5}@keyframes guidePulse{50%{box-shadow:0 0 0 10px #3ebd6855,0 0 28px #36ad6988;outline-color:#39cf78}}body.readonly .workspace{grid-template-columns:1fr}body.readonly .sidebar{display:none}body.readonly .map-popover{display:block}body.readonly .map-popover input,body.readonly .map-popover select,body.readonly .map-popover button:not(.popover-close){pointer-events:none;opacity:.7}
@media(max-width:760px){.step-help p{font-size:13px}.step-help strong{font-size:16px}.tool{min-width:34px;min-height:38px}.tools{gap:3px}.toolbar-line{display:none}.grid-toggle{font-size:10px}.map-popover.inspector{width:245px;padding:12px}.map-popover .two{gap:6px}.map-popover input:not([type=checkbox]),.map-popover select{font-size:16px;padding:6px}.brand-buttons button{font-size:17px}.sidebar{border-left:0;border-top:2px solid #90a899}.workspace[data-stage="0"][data-mode="demo"] .drawing{display:none}}
@media(prefers-reduced-motion:reduce){}

/* V2.3: readable topology and direct manipulation. */
.canvas.google::after{content:'';position:absolute;inset:0 0 42px;pointer-events:none;background:#fff;opacity:.16;z-index:1}
#planSvg{z-index:2}.canvas.google.pan #planSvg{pointer-events:auto}.canvas.panning #planSvg,.canvas.panning #planSvg *{cursor:grabbing!important}
.building{fill:#2b8edc40;stroke:#176eac;stroke-width:2}.building.selected{fill:#368dd94a;stroke:#124e87}.building.draft{fill:none;stroke:#145e99}.dimension{fill:#163f63;stroke:#ffffffee}
.cable-halo{fill:none;stroke:#ffffffd9;stroke-width:7;vector-effect:non-scaling-stroke;pointer-events:none}.cable{stroke:#0879cb;stroke-width:3.5;pointer-events:none}.cable.wireless{stroke:#c46a05;stroke-width:4;stroke-dasharray:9 6}.cable.selected{stroke-width:5}.cable-hit{stroke-width:18}.rotate-handle{stroke-width:2.5;filter:drop-shadow(0 1px 2px #133c3655)}.antenna-handle{pointer-events:auto;cursor:grab}
.connection-choice{padding:10px;background:#e5f0f7;border:1px solid #8caec7;border-radius:8px;margin-top:10px}.connection-choice select{margin-top:7px;border:2px solid #36779e}.hub-cameras label{padding:8px 0;border-bottom:1px solid #d8e4df}
.tree-panel{padding:20px 22px;background:#f2f7fa;border-bottom:2px solid #9db4c6}.tree-title{display:flex;align-items:center;justify-content:space-between;gap:12px}.tree-title h2{font-size:17px;margin:0}.tree-title>span{font-size:9px;letter-spacing:.1em;font-weight:800;background:#d4eadf;border-radius:20px;padding:5px 8px;color:#17523a}.tree-panel>.hint{font-size:11px;margin:8px 0 14px}.tree-root,.tree-root ul{list-style:none;margin:0;padding:0}.tree-root ul{margin-left:10px;padding-left:17px;border-left:1px solid #c3d1dc}.tree-item{position:relative;padding-top:6px}.tree-item:not(.root):before{content:'';position:absolute;top:23px;left:-17px;width:17px;border-top:2px solid #0879cb}.tree-item.wifi:before{border-top:3px dashed #c46a05}.tree-item button{width:100%;text-align:left;justify-content:flex-start;min-height:34px;padding:6px 8px;gap:7px;border:1px solid #b9cdd9;border-radius:6px;background:white;font-size:12px;color:#19384b}.tree-item button.selected{border-color:#147299;box-shadow:inset 3px 0 #147299;background:#e4f1f7}.tree-item button small{margin-left:auto;font-size:9px;color:#466074}.tree-item.wifi>button small{color:#8b4b09}.tree-device{width:10px;height:10px;flex-shrink:0;border:2px solid #3d657e;border-radius:2px}.tree-device.camera{border-radius:50%;border-color:#287a55}.tree-device.antenna{border-radius:5px 5px 0 0;border-color:#b66811}.tree-legend{display:flex;gap:14px;margin-top:16px;font-size:10px;color:#385466}.tree-legend span:before{content:'';display:inline-block;width:20px;vertical-align:middle;margin-right:6px;border-top:3px solid #0879cb}.tree-legend .wifi:before{border-top:3px dashed #c46a05}#networkTree{max-height:420px;overflow:auto;padding:2px 2px 6px}@keyframes targetBorder{50%{outline-color:#76b8a6;outline-offset:7px}}
body.readonly .workspace{grid-template-columns:minmax(0,1fr) 330px}body.readonly .sidebar{display:block}body.readonly .tree-panel{display:block}body.readonly #planSvg{touch-action:none}
@media(max-width:760px){.tree-panel{padding:16px 20px}.tree-root ul{margin-left:7px;padding-left:14px}.tree-item:not(.root):before{left:-14px;width:14px}#networkTree{max-height:270px}.canvas{touch-action:none}}
@media(prefers-reduced-motion:reduce){}

/* V2.4: explicit physical connections */
.wire-port{cursor:crosshair}.wire-port:hover circle{fill:#d3efff;stroke-width:3}
.wire-preview{fill:none;stroke:#087abd;stroke-width:3;stroke-dasharray:8 5;vector-effect:non-scaling-stroke}
.wire-actions{display:grid;gap:8px;margin:12px 0}.wire-tool{width:auto!important;min-width:130px;padding:8px 12px!important;font-weight:700}.wire-tool.active{background:#0b6596;color:#fff}
.unconnected-label{color:#9c4c0a;font-size:12px;font-weight:700;padding:8px 0}.connection-button{width:100%;text-align:left}
@media(max-width:760px){.map-tools{flex-wrap:wrap}.wire-tool{min-width:110px;font-size:12px}#cancelWire{width:auto!important;padding:5px}}

/* V2.5: compact controls, no floating guidance or mandatory tour. */
.intro{padding:20px 0}.intro h1{font-size:26px;margin:0}.masthead{min-height:62px;padding-block:14px}
.workspace{background:#edf2ef}.step-help{margin:0;padding:12px 16px;border:0;border-bottom:1px solid var(--line);border-radius:0;box-shadow:none;backdrop-filter:none;background:#f5f9f7;display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px}
.step-help>span{font-size:11px;margin:0}.step-help strong{font-size:14px}.step-help p{font-size:12px;margin:0;width:100%;line-height:1.45}
.map-toolbar{margin-top:0;border-top:0}.canvas{height:min(60vh,660px)}.panel-content{padding:18px}.panel-title{margin-bottom:12px}.panel-title h2{font-size:17px}
.hint,.subtle{font-size:12px;line-height:1.5}.subtle{margin:8px 0 12px}.more-options{padding:12px 0;border-top:1px solid #c9d7cf;margin-top:12px}.more-options>summary{font-size:13px;font-weight:600;cursor:pointer;line-height:1.6}
.tree-panel{padding:14px 18px;margin:0;border-bottom:0;background:#f5f8fa}.tree-panel>summary{color:#244c63}#networkTree{max-height:280px}
.tree-item.mixed:before{border:0;height:3px;background:repeating-linear-gradient(90deg,#0879cb 0 6px,#c46a05 6px 10px,transparent 10px 13px)}
.selection-panel.inspector{position:relative!important;width:100%;max-width:none;max-height:310px;overflow:auto;border:0;border-top:1px solid #96b3a2;border-radius:0;box-shadow:none;background:white;padding:14px 18px;display:block}
.selection-panel #inspector>strong{display:block;font-size:14px;padding-right:25px}.selection-panel .compact-model{font-size:12px;margin:5px 0}.selection-panel .camera-live{font-size:12px;margin:5px 0;color:#315d47}
.selection-panel .small-actions{margin-top:10px}.selection-panel .full{width:auto;min-height:36px;margin:8px 8px 0 0;font-size:12px}.selection-panel details{margin-top:8px;font-size:12px}.selection-panel summary{cursor:pointer;font-weight:600}.selection-panel label{margin-top:8px}.selection-panel .connection-button{display:inline-flex;width:auto;margin:8px 8px 0 0}
.segment-controls{display:grid;grid-template-columns:1fr 1fr;gap:12px;max-width:520px}.selection-panel .product-price{font-size:18px;margin:5px 0}.selection-panel .popover-close{right:10px;top:8px}
.wire-tool{font-size:13px}.wire-actions{gap:2px;margin:8px 0}.coverage-note{padding:8px 14px}.metrics{padding:12px 16px}.metrics b{font-size:20px}.product-list{max-height:490px}.product{padding:12px}.product-photo{height:105px;margin-bottom:8px}.product .brandline{font-size:16px}.product .model{font-size:13px;margin:8px 0}.product .angle{font-size:13px}.product .spec{font-size:11px;margin-top:3px}.product-price{font-size:23px;margin:10px 0 6px}.product a{font-size:10px}
.equipment{padding:10px}.equipment p{font-size:11px}.equipment b{font-size:12px}.equipment-price{font-size:11px}.error-bubble:before{display:none}.error-bubble{border-width:1px;border-radius:4px;padding:8px;font-size:12px}
#baseChoices>.full{margin:6px 0}#confirmObject{display:none!important}.wizard-nav{padding:12px 16px}.bottom-note{font-size:10px}
@media(max-width:760px){.intro{padding:16px 0}.intro h1{font-size:24px}.intro-actions{margin-top:12px}.step-help{padding:10px 12px}.step-help p{font-size:11px}.canvas{height:360px;min-height:360px}.selection-panel.inspector{max-height:320px;padding:12px}.selection-panel select,.selection-panel input{font-size:16px}.selection-panel .segment-controls{gap:8px}.product-list{max-height:420px}.map-toolbar{flex-wrap:wrap}.tool{min-width:34px}.wire-tool{min-width:110px}.tree-panel{padding:12px 18px}body.readonly .selection-panel{display:block}}

/* V2.6: location first, then a clear drawing step. */
.workspace[data-stage="0"]:not([data-location-phase="outline"]){display:block;min-height:0;max-width:740px;margin:auto;border-radius:0 0 12px 12px}
.workspace[data-stage="0"]:not([data-location-phase="outline"]) .drawing{display:none}
.workspace[data-stage="0"]:not([data-location-phase="outline"]) .sidebar{border:0;border-radius:0}
#locationEntry .site-fields{margin:0;padding:0;border:0}
.location-summary{font-size:12px;color:#3c594e;margin-bottom:12px;display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between}
#locationLabel{line-height:1.6}.location-summary button{font-size:12px;min-height:32px;padding:5px 9px}
.mouse-hint{font-size:11px;margin:0;padding:10px 14px;background:#f6faf8;color:#385649;border-bottom:1px solid #adbcaf;line-height:1.5}.mouse-hint span{display:none}
.object-guide-dialog{max-width:620px;width:calc(100% - 24px);padding:24px}
.object-guide-dialog .dialog-header h2{font-size:22px;line-height:1.3}.object-guide-dialog p{font-size:13px;line-height:1.6;color:#3a584c}
.object-guide-dialog picture,.object-guide-dialog img{display:block;width:100%;height:auto;border-radius:12px}
.object-check-dialog{max-width:440px;width:calc(100% - 24px);padding:28px}.object-check-dialog h2{font-size:23px;line-height:1.3}.object-check-dialog p{color:#486055;margin:14px 0 24px}
.success-dialog{max-width:490px;width:calc(100% - 24px);padding:32px;text-align:center}.success-mark{display:grid;place-items:center;width:56px;height:56px;border-radius:50%;background:#d9efe1;color:#135c42;font-size:30px;margin:0 auto 20px}.success-dialog h2{font-size:25px;line-height:1.3}.success-dialog p{line-height:1.6;color:#3b5649;margin:18px 0 24px}
@keyframes drawAttention{0%,100%{outline-color:#197e56;box-shadow:0 0 0 0 #279c5730}50%{outline-color:#b6d87b;box-shadow:0 0 0 6px #279c5730}}
#drawBuilding.draw-attention{outline:3px solid #197e56;outline-offset:3px;animation:drawAttention 1.3s ease-in-out infinite}
@media(prefers-reduced-motion:reduce){#drawBuilding.draw-attention{animation:none;outline-color:#197e56}}
@media(pointer:coarse){.mouse-hint{font-size:0}.mouse-hint span{display:block;font-size:11px}}
@media(max-width:760px){.workspace[data-stage="0"][data-location-phase="outline"] .sidebar{order:2}.workspace[data-stage="0"][data-location-phase="outline"] .drawing{order:1}.object-guide-dialog{padding:18px}.object-guide-dialog .dialog-header h2{font-size:20px}}

/* V2.6.1: drag the background, choose the main building explicitly. */
.canvas.can-pan #planSvg{cursor:grab}
.canvas.choosing-house #planSvg,.canvas.choosing-house #planSvg *{cursor:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2232%22%20height%3D%2232%22%20viewBox%3D%220%200%2032%2032%22%3E%3Cpath%20d%3D%22M3%2014L16%203L29%2014H25V28H7V14Z%22%20fill%3D%22%23146344%22%20stroke%3D%22white%22%20stroke-width%3D%223%22%20stroke-linejoin%3D%22round%22%2F%3E%3Cpath%20d%3D%22M13%2028V18H19V28%22%20fill%3D%22white%22%2F%3E%3Ccircle%20cx%3D%2216%22%20cy%3D%223%22%20r%3D%222%22%20fill%3D%22%23146344%22%2F%3E%3C%2Fsvg%3E") 16 3, crosshair!important}
.canvas.panning #planSvg,.canvas.panning #planSvg *{cursor:grabbing!important}
#chooseHouse{display:flex;flex-wrap:wrap;text-align:left;justify-content:flex-start;gap:8px 10px;padding:12px;line-height:1.4;border-width:2px}
#chooseHouse>span:nth-child(2){flex:1;min-width:160px}
#chooseHouse .house-button-icon{display:inline;font-size:28px;line-height:1}
#chooseHouse[aria-pressed=true]{background:#0c684b;color:#fff;border-color:#074d38;box-shadow:0 0 0 3px #2b9e6633}
#chooseHouse[aria-pressed=true]:hover{background:#09563e;color:#fff}
#houseSelected{display:inline-flex;font-size:11px;font-weight:700;padding:4px 8px;border-radius:20px;background:#fff;color:#10543d}
.house-selection-hint{color:#155d43;margin:5px 0 14px;font-size:12px}
.mouse-hint{display:flex;align-items:center;gap:14px;padding:10px 14px;font-size:12px}
.pan-demo{display:block;flex:0 0 156px;width:156px;height:73px;border:1px solid #b1c7b9;border-radius:9px;overflow:hidden;background:#dcebdc}
.mouse-hint-copy{min-width:0}.mouse-hint-copy strong{display:block;color:#244b3a;font-size:12px}
.mouse-hint-copy p{font-size:11px;line-height:1.5;margin:4px 0;color:#3b594a}
.mouse-hint-copy .touch-pan-copy{display:none}
#replayPanDemo{min-height:24px;padding:0;border:0;font-size:11px;display:inline-flex;background:transparent;color:#145e43;text-decoration:underline;text-underline-offset:3px}
.pan-demo-map{animation:panDemoMap 4.8s ease-in-out both}
.pan-demo-mouse{animation:panDemoMouse 4.8s ease-in-out both}
.pan-demo-button{animation:panDemoPress 4.8s linear both}
.pan-demo-click{transform-box:fill-box;transform-origin:center;animation:panDemoClick 4.8s ease-out both}
@keyframes panDemoMap{0%,28%{transform:translate(0,0)}72%,100%{transform:translate(30px,12px)}}
@keyframes panDemoMouse{0%,28%{transform:translate(0,0)}72%,100%{transform:translate(30px,12px)}}
@keyframes panDemoPress{0%,18%,82%,100%{fill:#dce8e0}24%,76%{fill:#16a66f}}
@keyframes panDemoClick{0%,18%{opacity:0;transform:scale(.65)}24%{opacity:1;transform:scale(.85)}38%,100%{opacity:0;transform:scale(1.35)}}
@media(pointer:coarse){.mouse-hint-copy .desktop-pan-copy{display:none}.mouse-hint-copy .touch-pan-copy{display:block}}
@media(max-width:520px){.mouse-hint{gap:10px;padding:9px 10px}.pan-demo{flex-basis:124px;width:124px;height:59px}.mouse-hint-copy strong{font-size:11px}.mouse-hint-copy p{font-size:10px}}
@media(prefers-reduced-motion:reduce){.pan-demo-map,.pan-demo-mouse,.pan-demo-button,.pan-demo-click{animation:none}.pan-demo-click{opacity:0}#replayPanDemo{display:none}}

/* Direct route editing and editable copies of authenticated reviews. */
.cable-hit{cursor:grab}.canvas.bending-route,.canvas.bending-route #planSvg,.canvas.bending-route .cable-hit{cursor:grabbing}.review-actions{display:flex;gap:16px;align-items:center;flex-wrap:wrap}.review-actions p{flex:1;min-width:220px;margin:0}.review-actions button{flex-shrink:0}

.backend-plan{display:flex;align-items:center;justify-content:space-between;gap:18px}.backend-plan p{margin:5px 0 0}.backend-plan a{white-space:normal}.backend-edit #openInquiry,.backend-edit .intro-actions .file-button{display:none!important}@media(max-width:760px){.backend-plan{align-items:stretch;flex-direction:column}.backend-edit #savePlan{width:100%}}

#floorDialog{max-width:760px}.floor-preview{display:flex;align-items:center;justify-content:center;min-height:120px;max-height:48dvh;overflow:auto;background:#e5eae7;border:1px solid var(--line);padding:8px;border-radius:8px}.floor-preview canvas{display:block;max-width:100%;max-height:44dvh;object-fit:contain;background:#fff}.floor-pages,.floor-rotation{display:flex;align-items:center;justify-content:center;gap:12px;margin:12px 0}.floor-pages label,.floor-rotation label{margin:0;max-width:140px}.floor-pages span{white-space:nowrap}#floorStatus{font-size:13px;line-height:1.5}#floorStatus.error{color:#9b3528}.touch-hint{display:none}@media(pointer:coarse){.touch-hint{display:block;font-size:12px;padding:8px 14px;margin:0;background:#fff;color:#34594a}}body.readonly .canvas svg{touch-action:none}

/* Shared outline camera identity. */
.masthead .brand{display:flex;align-items:center;gap:12px}.camera-brand-mark{display:block;object-fit:contain;flex:0 0 48px;width:48px;height:48px}.masthead .brand-words{margin:0;letter-spacing:inherit;font-size:inherit;color:inherit}.brand-words b{font-size:inherit;white-space:nowrap}.brand-words small{display:block;font-size:10px;font-weight:400;letter-spacing:1px;margin-top:5px;color:#a5b8b6}@media(max-width:700px){.masthead .brand{gap:8px}.camera-brand-mark{width:34px;height:34px;flex-basis:34px}.brand-words small{font-size:8px}}

.floor-manager{padding:16px 18px;border-bottom:1px solid var(--line);background:#f3f8f4}.floor-manager summary{cursor:pointer;font-weight:700;margin-bottom:12px}.floor-manager summary span{float:right;font-size:11px;color:var(--muted)}.floor-manager select{width:100%;min-width:0}.floor-manager .two input{width:100%;min-width:0}.floor-manager .check{font-size:12px}.floor-manager button.active{background:#155c48;color:#fff;border-color:#155c48}.floor-manager .hint{margin:8px 0}.moving-floor .floor-drag{cursor:move;pointer-events:all}#placementLayer .floor-drag *{pointer-events:all}
