:root{color-scheme:light;--ink:#292c28;--muted:#565d54;--paper:#f5f3ee;--rule:#c7cbc2;--accent:#374c3a}
*{box-sizing:border-box}
[hidden]{display:none!important}
body{margin:0;font:1rem/1.55 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--paper);overflow-wrap:anywhere}
a{color:var(--accent);text-underline-offset:3px}
:focus-visible{outline:3px solid #87631f;outline-offset:3px}
.wrap{max-width:1050px;margin:auto;padding-inline:clamp(1rem,4vw,3rem)}
header{border-bottom:1px solid var(--rule)}
header>.wrap{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-block:1rem;flex-wrap:wrap}
.wordmark,h1,h2{font-family:Georgia,"Times New Roman",serif;font-weight:500}
.wordmark{font-size:1.4rem;text-decoration:none}
.intro{margin:clamp(2rem,7vw,4rem) 0 2rem;max-width:740px}
.eyebrow{letter-spacing:.13em;text-transform:uppercase;font-size:.8rem;color:var(--muted)}
h1{font-size:clamp(2.4rem,6vw,4.35rem);line-height:1.04;margin:.2em 0}
h2{font-size:clamp(1.5rem,3vw,2rem);line-height:1.2;margin:0}
.card{background:#fffdfa;border:1px solid var(--rule);padding:clamp(1rem,3vw,1.7rem);margin-block:1rem}
.note{color:var(--muted);font-size:.95rem}
.controls{display:flex;align-items:end;gap:.65rem;flex-wrap:wrap}
.controls label{display:grid;grid-template-columns:minmax(0,1fr);gap:.2rem;min-width:0;max-width:100%;font-size:.95rem}
button,input,select{font:inherit;color:inherit;min-width:0;max-width:100%}
input:not([type=checkbox]),select,button{border:1px solid #81887c;border-radius:.2rem;background:#fffdfa;min-height:44px;padding:.43rem .7rem}
input[type=number]{width:9rem}input{max-width:100%}
button,summary{cursor:pointer}
button:hover:enabled{border-color:var(--accent);background:#edf0e9}
button:disabled,input:disabled,select:disabled{opacity:.56;cursor:default}
.primary,#apply-scale,#finish-room{background:var(--accent);color:white}
.primary:hover:enabled,#apply-scale:hover:enabled,#finish-room:hover:enabled{background:#243827}
#stage{position:relative;max-width:100%;margin-block:1rem;border:1px solid var(--rule);background:#fff}
#raster canvas{width:100%;height:auto;display:block}
#overlay{position:absolute;inset:0;width:100%;height:100%;display:block;cursor:crosshair;touch-action:manipulation}
#overlay .room{fill:rgba(44,105,68,.23);stroke:#214d2c;stroke-width:2;vector-effect:non-scaling-stroke}
#overlay .excluded{fill:rgba(72,72,72,.15);stroke:#545454;stroke-dasharray:5 3}
#overlay .draft,#overlay .scale-line{fill:none;stroke-width:3;vector-effect:non-scaling-stroke;stroke:#ad5410}
#overlay .scale-line{stroke:#2a54a0;stroke-dasharray:5 3}
#overlay .pin{fill:#ad5410;stroke:#fff;stroke-width:1.5;vector-effect:non-scaling-stroke}
#overlay .calibration{fill:#2a54a0}
summary{color:var(--accent);padding-block:.65rem}
#room-list{list-style:none;padding:0;margin:0}
#room-list li{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;border-top:1px solid var(--rule);padding-block:.7rem}
#room-list label{flex:1 1 14rem;overflow-wrap:anywhere}
input[type=checkbox]{min-width:1.15rem;min-height:1.15rem;vertical-align:middle;accent-color:var(--accent)}
.total{background:#edf0e9;padding:.9rem 1rem;display:flex;align-items:baseline;gap:.8rem;flex-wrap:wrap;margin-block:1rem}
.total strong{font-size:1.4rem}
.consent{display:block;margin-block:1rem}
#status{position:static;padding:.65rem .9rem;border:1px solid var(--rule);background:#e8ede4;box-shadow:0 -2px 5px #0001}
#status.error{background:#fff1df;color:#592d08;border-color:#aa8058}
footer{margin:2rem 0 3rem}
.skip{position:absolute;left:1rem;top:-120px;padding:.7rem;background:#fff}
.skip:focus{top:.2rem;z-index:10}
@media(max-width:480px){header .wrap{gap:.4rem}.controls input[type=file]{width:100%}.card{padding:.9rem}.controls{align-items:start}#status{position:static}.intro{margin-block:2rem}}

/* Oz editorial measurement workspace; all styles remain route scoped. */
.wrap{max-width:1440px}
header{background:#fffdfa}header nav{display:flex;flex-wrap:wrap;gap:1.2rem;align-items:center}header nav a{font-size:.9rem;text-decoration:none;padding-block:.5rem}header nav [aria-current]{border-bottom:2px solid var(--ink)}
.intro{max-width:none;margin-block:3.5rem 2rem}.hero-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:3rem;align-items:center}.hero-grid h1{font-size:clamp(2.5rem,5vw,4.5rem);max-width:13ch}.lead{font-size:1.15rem;max-width:52ch}.hero-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-block:1.5rem}.action{display:inline-flex;align-items:center;min-height:48px;padding:.7rem 1.2rem;border:1px solid var(--rule);text-decoration:none;font-weight:600}.action.primary{background:var(--ink);color:#fff}.journey-card{background:#e8e7df;padding:1.6rem 2rem;border:1px solid var(--rule)}.journey-card ol{padding-left:1.3rem;display:grid;gap:.8rem}
.pathways{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:2.5rem}.pathways a{padding:1.2rem 1.5rem;border:1px solid var(--rule);text-decoration:none;background:#fffdfa}.pathways strong,.pathways span{display:block}.pathways span{font-size:.9rem;color:var(--muted);margin-top:.3rem}
.measurement-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,340px);gap:1.5rem;align-items:start;scroll-margin-top:1rem}.measurement-main{min-width:0}.step-bar{list-style:none;display:flex;flex-wrap:wrap;padding:0;margin:0;gap:.4rem}.step-bar li{flex:1;padding:.7rem .6rem;border-bottom:2px solid var(--rule);font-size:.85rem;white-space:nowrap}.step-bar [aria-current]{border-color:var(--ink);font-weight:700;background:#e8e7df}.card{border-radius:4px}.review-panel{position:sticky;top:1rem;margin-top:0}.review-panel h2{font-size:1.6rem}.review-panel .total{display:grid;gap:.2rem;background:var(--ink);color:#fff}.review-panel .total strong{font-size:2.2rem}.summary-checks{font-size:.85rem;color:var(--muted)}.summary-checks p{margin-block:.4rem}.review-panel button{width:100%;margin-bottom:.7rem}.review-panel #room-list li{display:flex;gap:.4rem}.review-panel #room-list button{width:auto;margin:0}.review-panel #room-list label{flex-basis:100%}
.drawing-toolbar{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin-block:1rem}.drawing-toolbar span{font-size:.8rem;color:var(--muted);flex-basis:100%}.drawing-toolbar output{min-width:3rem;text-align:center}.drawing-toolbar [aria-pressed=true]{background:var(--ink);color:#fff}#plan-viewport{overflow:auto;max-width:100%;max-height:70vh;overscroll-behavior:contain;border:1px solid var(--rule);background:#e8e7df}#stage{margin:0;max-width:none;min-width:100%;border:0}#plan-viewport.pan-mode #overlay{cursor:grab;touch-action:none}.guidance-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.5rem}.guidance-grid h3{font-size:1rem}.guidance-grid p{color:var(--muted);font-size:.95rem}.before-ordering{margin-top:2rem}
@media(max-width:1000px){.measurement-layout{grid-template-columns:minmax(0,1fr)}.review-panel{position:static}.hero-grid{gap:1.5rem}.review-panel #room-list label{flex-basis:14rem}}
@media(max-width:640px){.hero-grid,.pathways,.guidance-grid{grid-template-columns:minmax(0,1fr)}.journey-card{padding:1rem 1.3rem}.intro{margin-top:2rem}.hero-actions .action{flex:1 1 12rem;justify-content:center}header nav{gap:.8rem}.measurement-layout{gap:1rem}.step-bar li{padding:.6rem .3rem}.drawing-toolbar button{flex:0 1 auto}.review-panel .total strong{font-size:2rem}.controls label{width:100%}.controls input[type=number]{width:100%}#plan-viewport{max-height:55vh}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}

/* Connected task workspace: one drawing, contextual controls, review below. */
.connected-tool{scroll-margin-top:1rem}.studio-grid{display:grid;grid-template-columns:minmax(260px,320px) minmax(0,1fr);gap:1.5rem;align-items:start}.drawing-panel{grid-column:2;grid-row:1;min-width:0}.step-panel{grid-column:1;grid-row:1;min-width:0;border-right:1px solid var(--rule);padding-right:1.5rem}.step-panel h2{font-size:1.45rem}.step-panel p{font-size:.95rem}.step-panel .eyebrow{font-size:.75rem}.step-panel .controls{align-items:stretch}.step-panel .controls label{width:100%}.step-panel input[type=number]{width:100%}.step-panel #apply-scale,.step-panel #finish-room{width:100%}.step-panel section+section{margin-top:1.2rem;padding-top:1.2rem;border-top:1px solid var(--rule)}.secondary-help{font-size:.85rem}.secondary-help p{font-size:.85rem}.drawing-heading{display:flex;align-items:baseline;gap:1rem;flex-wrap:wrap}.drawing-heading h2{font-size:1.3rem}.drawing-heading p{font-size:.85rem;color:var(--muted);margin:0}.drawing-toolbar{margin-block:.6rem}.drawing-toolbar span{flex-basis:auto;flex:1 1 14rem}.point-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.5rem}#plan-viewport{height:min(58vh,620px);min-height:280px;max-height:none}#stage{min-width:0;margin-inline:auto}.working-total{border-top:1px solid var(--rule);margin-top:1.2rem;padding-top:1rem;display:grid;gap:.2rem}.working-total strong{font-size:1.8rem}.working-total span{font-size:.85rem;color:var(--muted)}.working-total a{margin-block:.5rem;font-weight:600}.step-bar button{background:none;border:0;min-height:44px;padding:0;font-size:inherit;text-align:left;width:100%}.step-bar li{padding-block:.2rem}.step-bar li:first-child{display:flex;align-items:center}.step-bar{margin-bottom:1rem}.review-panel{position:static;grid-column:auto;margin-top:1.5rem;scroll-margin-top:1rem}.review-panel h2{font-size:2rem}.review-panel .total{display:flex;align-items:baseline;gap:1.5rem}.review-panel button{width:auto}.review-panel #handoff{min-width:220px}.review-panel #room-list label{flex-basis:14rem}#review-panel h2:focus{outline:3px solid #87631f;outline-offset:3px}
body.plan-loaded .intro{display:block;margin-block:1rem}body.plan-loaded .intro h1{font-size:1.8rem;max-width:none}body.plan-loaded .intro .lead,body.plan-loaded .intro .hero-actions,body.plan-loaded .intro .note,body.plan-loaded .journey-card,body.plan-loaded .pathways,body.plan-loaded .intro .eyebrow{display:none}body.plan-loaded .upload-panel{display:flex;align-items:end;justify-content:space-between;gap:1rem;padding:1rem;margin-block:.7rem}body.plan-loaded .upload-panel h2{font-size:1.1rem}body.plan-loaded #upload-explainer{display:none}.scale-is-set #scale-help{display:none}.scale-is-set #scale-panel h2{font-size:1.15rem}.scale-is-set #scale-panel .eyebrow{display:none}.scale-is-set #scale-info{font-size:.85rem}#status{margin-block:.7rem;font-size:.95rem;box-shadow:none}#scale-entry{border-left:3px solid var(--accent);padding-left:.85rem;margin-block:.8rem}#coords{font-size:.85rem}#coords summary{padding-block:.45rem}#coords .controls label{width:auto}.drawing-panel #coords input{width:7rem}
@media(min-width:1000px){.drawing-panel{position:sticky;top:1rem}}
@media(max-width:999px){.studio-grid{grid-template-columns:minmax(0,1fr)}.drawing-panel,.step-panel{grid-column:1;grid-row:auto}.step-panel{border:0;border-top:1px solid var(--rule);padding:1rem 0 0}.step-panel .controls{display:flex;flex-wrap:wrap}.step-panel .controls label{width:auto;flex:1 1 8rem}.step-panel #finish-room{width:auto;flex:1 1 8rem}.step-panel #apply-scale{width:auto;flex:1 1 7rem}.working-total{grid-template-columns:1fr auto;align-items:center}.working-total a{grid-column:1/-1}#plan-viewport{height:clamp(230px,38vh,420px);min-height:200px}.drawing-panel{position:static}body.plan-loaded .upload-panel{flex-wrap:wrap}}
@media(max-width:480px){.studio-grid{gap:.6rem}body.plan-loaded .intro h1{font-size:1.5rem}.drawing-toolbar span{display:none}.drawing-toolbar{gap:.35rem}.drawing-toolbar button{padding-inline:.5rem}.step-panel h2{font-size:1.25rem}.step-panel .controls label{flex-basis:100%}.review-panel .total{display:grid;gap:.3rem}.review-panel #handoff{min-width:0;width:100%}.review-panel h2{font-size:1.55rem}.working-total strong{font-size:1.4rem}}
.step-panel>#status{margin-top:0;font-size:.9rem}.step-panel #choose-scale-points{width:100%}
@media(max-width:999px){body.plan-loaded #scale-entry:not([hidden]),body.is-checking #scale-check-controls{position:fixed;z-index:20;bottom:.5rem;left:max(.5rem,calc((100vw - 600px)/2));right:max(.5rem,calc((100vw - 600px)/2));margin:0;padding:.9rem;background:#fffdfa;border:1px solid var(--rule);border-top:3px solid var(--accent);border-radius:4px;box-shadow:0 -4px 20px #0002;max-height:65dvh;overflow:auto}body.plan-loaded #scale-entry .controls{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:.5rem}body.plan-loaded #scale-entry .controls label{width:100%;min-width:0}body.plan-loaded #scale-entry .controls button{width:100%;font-size:.9rem;padding-inline:.5rem}body.plan-loaded #scale-entry .controls input{width:100%}}
