/* Joyne "Evolution" brand kit tokens; source recorded in static/brand/PROVENANCE.json. */
@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(brand/InterVariable.woff2) format("woff2")}
:root{--joyne-blue:#416AFF;--joyne-navy:#060F3B;--joyne-paper:#F5F7FF;--joyne-soft-blue:#8DABFF;--joyne-logo-blue:#4071FF;--joyne-logo-ink:#09183B;--joyne-surface:#FFFFFF;--joyne-text:#212C52;--joyne-muted:#505C6C;--joyne-rule:#CDD0E5;--joyne-evidence:#0E7C7B;--joyne-attention:#ED9807;--joyne-danger:#E60848;--joyne-font:Inter,system-ui,sans-serif;--joyne-font-data:ui-monospace,SFMono-Regular,Menlo,monospace;--joyne-radius-control:7px;--joyne-radius-panel:8px}
:root{font-family:var(--joyne-font);color:#142d4e;background:#edf0f5;font-synthesis:none;--navy:#060f3b;--blue:#416aff;--violet:#9067d9;--teal:#008577;--border:#e3e7ef;--muted:#7b8797;--rail:112px;--panel:270px}*{box-sizing:border-box}body{margin:0;overflow:hidden;font-size:12px}button,input,select,textarea{font:inherit}button{cursor:pointer;color:inherit}button:disabled{cursor:default;opacity:.45}button,a,input,select,textarea{outline-offset:4px}button:focus-visible,a:focus-visible{outline:2px solid var(--blue)}button{background:none;border:0}svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}button[hidden],[hidden]{display:none!important}.header{height:54px;display:flex;align-items:center;gap:16px;padding:0 18px;background:#fff;border-bottom:1px solid var(--border);position:relative;z-index:20}.brand{display:flex;align-items:center;gap:8px;text-decoration:none;color:var(--navy)}.brand>svg{width:23px;height:24px;stroke-width:2.1}.brand>span:not(.poc){font-size:23px;font-weight:720;letter-spacing:-1.1px}.poc{font-size:8px;font-weight:650;letter-spacing:1px;color:#8490a1;padding:3px 4px;border:1px solid #e5e9ef;border-radius:3px;margin-top:4px}.header-rule{width:1px;height:23px;background:var(--border);margin:0 1px 0 6px}.document-select{display:flex;align-items:center;gap:8px;min-width:0}.document-select>svg{width:16px;color:#8e99a8}.document-select select{border:0;background:transparent;font-weight:560;max-width:380px;cursor:pointer;color:#33435a;font-size:12px;padding:6px 20px 6px 0}.header-spacer{flex:1}.icon-button{width:30px;height:30px;display:inline-flex;justify-content:center;align-items:center;border-radius:6px;color:#778398;cursor:pointer}.icon-button:hover{background:#f0f3f8;color:var(--navy)}.icon-button svg{width:18px;height:18px}.connection{display:flex;gap:6px;align-items:center;color:#8390a2;font-size:11px}.connection>span:first-child{width:5px;height:5px;background:#c1c9d4;border-radius:100%}.connection.live>span:first-child{background:var(--teal)}.avatar{width:27px;height:27px;border-radius:50%;background:#e9edf4;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:600;color:#6b778a}.workspace{display:grid;grid-template-columns:var(--rail) minmax(0,1fr) var(--panel);height:calc(100dvh - 54px)}.workspace.panel-closed{grid-template-columns:var(--rail) minmax(0,1fr)}.workspace.panel-closed .measurements{display:none}.page-rail{background:#f8f9fc;border-right:1px solid var(--border);overflow:auto;scrollbar-width:thin;z-index:10}.rail-heading{font-size:9px;letter-spacing:1.25px;color:#8a96a7;font-weight:650;display:flex;justify-content:space-between;padding:20px 13px 13px}.rail-heading span{letter-spacing:0;color:#a3adba}.page-thumb{display:block;width:100%;padding:10px 13px;text-align:left;position:relative}.page-thumb>div{height:61px;background:#fff;border:1px solid #e0e5ed;border-radius:3px;display:flex;justify-content:center;align-items:center;overflow:hidden;box-shadow:0 1px 2px #142d4e05}.page-thumb img{width:100%;height:100%;object-fit:contain}.page-thumb .page-label{display:block;color:#7c889a;font-size:9px;margin-top:7px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.page-thumb.active{background:#eaf0fb}.page-thumb.active>div{outline:1.5px solid var(--blue);border-color:transparent}.page-thumb.active .page-label{color:var(--blue);font-weight:600}.thumb-actors{display:flex;position:absolute;right:9px;top:4px;gap:2px}.thumb-actor{width:6px;height:6px;background:var(--actor);border-radius:50%;box-shadow:0 0 0 2px #f8f9fc}.canvas-area{position:relative;min-width:0;overflow:hidden;background:#edf0f5}.canvas-top{position:absolute;left:22px;right:20px;top:18px;z-index:5;display:flex;align-items:flex-start;gap:12px;pointer-events:none}.sheet-title{display:flex;flex-direction:column;gap:5px;min-width:0}.sheet-title>span:first-child{font-size:11px;font-weight:560;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:250px}.sheet-title>span:last-child{font:9px ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.25px;color:#919bad}.agents{margin-left:auto;display:flex;gap:6px;pointer-events:auto;flex-wrap:wrap;justify-content:flex-end;max-width:65%}.agent-chip{display:flex;gap:6px;align-items:center;background:#ffffffef;border:1px solid #dce2ec;border-radius:16px;padding:5px 9px 5px 5px;box-shadow:0 2px 4px #142d4e04;max-width:200px}.agent-chip.following{border-color:var(--actor);box-shadow:0 0 0 1px var(--actor)}.agent-dot{display:flex;align-items:center;justify-content:center;width:21px;height:21px;border-radius:50%;background:var(--actor);color:white;font-size:9px;font-weight:600}.agent-name{font-size:10px;font-weight:570;white-space:nowrap}.agent-status{font-size:9px;color:#8c97a6;max-width:90px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.stage{position:absolute;inset:0;overflow:hidden;touch-action:none;outline:none}.stage[data-tool=pan]{cursor:grab}.stage.panning{cursor:grabbing}.stage[data-tool=line],.stage[data-tool=polygon],.stage[data-tool=count],.stage[data-tool=calibrate]{cursor:crosshair}.paper{position:absolute;left:0;top:0;transform-origin:0 0;background:white;box-shadow:0 6px 24px #142d4e12,0 1px 3px #142d4e0c;user-select:none}.paper>img{display:block;width:100%;height:100%;pointer-events:none}.paper>svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}.shape{pointer-events:all;cursor:pointer}.shape-label{font:10px -apple-system,BlinkMacSystemFont,sans-serif;font-weight:600;paint-order:stroke;stroke:white;stroke-width:3px;stroke-linejoin:round;pointer-events:none}.handle{fill:white;stroke:var(--blue);pointer-events:all;cursor:move}.toolbar{position:absolute;top:83px;left:18px;z-index:7;display:flex;flex-direction:column;gap:3px;background:#fff;padding:5px;border:1px solid #dce2eb;border-radius:10px;box-shadow:0 4px 12px #142d4e0b}.tool{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:6px;color:#8190a4}.tool svg{width:19px;height:19px}.tool:hover{background:#f0f3f8;color:var(--navy)}.tool.active{background:var(--navy);color:white}.toolbar-rule{height:1px;background:var(--border);margin:4px 5px}.follow-banner{position:absolute;top:66px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:12px;background:var(--actor);color:#fff;border-radius:5px;font-size:10px;padding:5px 7px 5px 11px;z-index:8;white-space:nowrap}.follow-banner button{color:#fff;font-size:16px;line-height:16px;padding:0 3px}.canvas-bottom{position:absolute;bottom:16px;left:18px;right:18px;display:flex;justify-content:space-between;align-items:center;pointer-events:none;z-index:5}.scale-status{font:9px ui-monospace,SFMono-Regular,Menlo,monospace;color:#8593a6;pointer-events:auto;cursor:pointer;background:#edf0f5da;padding:7px 0}.zoom{display:flex;align-items:center;border:1px solid #dde3ec;border-radius:7px;background:#fff;box-shadow:0 2px 4px #142d4e04;height:30px;pointer-events:auto}.zoom button{height:28px;min-width:25px;padding:0 7px;font-size:14px;color:#778397;display:flex;align-items:center;justify-content:center}.zoom #zoom-label{font:10px ui-monospace,SFMono-Regular,Menlo,monospace;min-width:46px}.zoom span{height:13px;width:1px;background:var(--border)}.zoom svg{width:13px;height:13px}.composer-wrap{position:absolute;bottom:58px;left:50%;transform:translateX(-50%);width:min(520px,calc(100% - 140px));z-index:8}.composer{display:flex;align-items:center;gap:10px;padding:9px 10px 9px 15px;background:#fff;border:1px solid #d6dfea;border-radius:12px;box-shadow:0 6px 22px #142d4e0d,0 1px 3px #142d4e05;min-height:52px}.composer:focus-within{border-color:#879dc9;box-shadow:0 0 0 3px #356ae60b,0 6px 22px #142d4e0d}.agent-mark{color:var(--navy);width:18px;height:18px;stroke-width:1.5}.composer textarea{flex:1;min-width:0;resize:none;border:0;outline:0;line-height:20px;color:var(--navy);font-size:12px;padding:3px 0;max-height:90px;background:transparent;box-shadow:none}.composer textarea::placeholder{color:#94a0b0}.run-button,.stop-button{height:30px;width:30px;background:var(--navy);color:#fff;border-radius:7px;display:flex;align-items:center;justify-content:center}.run-button svg{height:18px;width:18px}.stop-button svg{width:17px;height:17px;fill:currentColor;stroke:none}.activity{padding:8px 11px;display:flex;flex-direction:column;gap:4px;font-size:10px;max-height:100px;overflow:auto;background:#ffffffed;border:1px solid #dfe5ee;border-radius:8px 8px 0 0;margin:0 10px -3px;line-height:16px;color:#738197}.activity summary{cursor:pointer;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.activity details>div{padding-top:7px;white-space:pre-wrap}.activity strong{color:#394b66;font-weight:550}.run-error{color:#a04148;background:#fff3f2;border:1px solid #efcecf;padding:9px 12px;font-size:10px;border-radius:7px;margin-top:7px;max-height:70px;overflow:auto}.measurements{background:white;border-left:1px solid var(--border);display:flex;flex-direction:column;min-height:0;position:relative;z-index:10}.panel-header{height:62px;display:flex;align-items:center;padding:0 17px;gap:7px}.panel-header h1{margin:0;font-size:12px;font-weight:650;letter-spacing:-.1px}.panel-header>span{font:9px ui-monospace,SFMono-Regular,Menlo,monospace;color:#9ca7b6}.panel-header .icon-button{margin-left:auto;width:23px;height:23px}.panel-header .icon-button svg{width:14px;height:14px}.panel-tabs{display:flex;gap:17px;padding:0 17px;border-bottom:1px solid var(--border)}.panel-tabs button{font-size:10px;color:#94a0b0;padding:0 0 12px;border-bottom:2px solid transparent}.panel-tabs button.active{color:var(--navy);border-bottom-color:var(--navy);font-weight:600}#measurement-list{overflow:auto;flex:1;padding-bottom:12px;scrollbar-width:thin}.measure-empty{padding:30px 20px;color:#a0aaba;text-align:center;font-size:11px;line-height:18px}.measure-row{width:100%;display:grid;grid-template-columns:6px 1fr auto;gap:9px;padding:15px 17px;text-align:left;border-bottom:1px solid #eef1f6;align-items:center}.measure-row:hover{background:#fafbfe}.measure-row.selected{background:#eff4fe}.measure-swatch{width:5px;height:22px;border-radius:3px;background:var(--actor)}.measure-label{font-size:11px;color:#344760;font-weight:530;line-height:16px;display:block}.measure-meta{font-size:9px;color:#9aa5b3;display:block;margin-top:4px;line-height:13px}.measure-value{font:11px ui-monospace,SFMono-Regular,Menlo,monospace;font-weight:550;white-space:nowrap}.measure-unit{font-size:9px;color:#9aa5b3;font-weight:400;display:block;text-align:right;margin-top:5px}.measure-check{color:var(--teal)}.panel-footer{padding:13px 17px;border-top:1px solid var(--border);font-size:9px;color:#9aa5b3;display:flex;justify-content:space-between}.panel-footer>span:first-child{color:#79879b}#selection-detail{padding:16px 17px;border-top:1px solid var(--border);background:#fbfcfe;max-height:40%;overflow:auto}.detail-title{font-size:11px;font-weight:600;margin-bottom:10px}.detail-source{font-size:10px;line-height:16px;color:#8995a6;margin-bottom:13px;white-space:pre-wrap;overflow-wrap:anywhere}.detail-actions{display:flex;gap:6px}.detail-actions button{font-size:10px;padding:7px 9px;border:1px solid #dfe5ee;border-radius:5px;background:#fff}.detail-actions .accept{background:var(--navy);color:white;border-color:var(--navy)}.detail-actions .delete{margin-left:auto;color:#aa5960}.empty-canvas{position:absolute;top:45%;width:100%;text-align:center;color:#8e9caf;font-size:13px}#toast{position:fixed;left:50%;bottom:22px;transform:translateX(-50%);max-width:min(560px,90vw);background:var(--navy);color:white;padding:11px 18px;border-radius:7px;font-size:12px;box-shadow:0 5px 20px #142d4e20;z-index:100}dialog{border:1px solid #dfe4ed;border-radius:12px;width:340px;max-width:90vw;box-shadow:0 15px 80px #142d4e25;padding:25px;color:var(--navy)}dialog::backdrop{background:#142d4e28;backdrop-filter:blur(2px)}dialog h2{font-size:16px;letter-spacing:-.3px;margin:0 0 22px}dialog label{font-size:11px;color:#8190a4;display:block}dialog input{display:block;width:100%;border:1px solid #dce3ee;border-radius:6px;padding:10px;margin-top:7px;color:var(--navy);font-size:13px}.dialog-buttons{display:flex;justify-content:flex-end;gap:8px;margin-top:23px}.dialog-buttons button{padding:8px 14px;border-radius:6px;background:#edf0f5;font-size:11px}.dialog-buttons .primary{background:var(--navy);color:white}@media(max-width:1100px){:root{--panel:240px;--rail:92px}.header{gap:11px}.document-select select{max-width:280px}.page-thumb>div{height:49px}.canvas-top{left:18px}.agents{max-width:60%}.agent-status{display:none}.composer-wrap{width:calc(100% - 105px);left:calc(50% + 12px)}}@media(max-width:820px){:root{--rail:80px;--panel:225px}.measurements{position:absolute;right:0;top:54px;bottom:0;width:225px;box-shadow:-5px 0 20px #142d4e09}.workspace{grid-template-columns:var(--rail) minmax(0,1fr)}.document-select select{max-width:200px}.connection>span:last-child,.header-rule,.poc{display:none}.header{padding:0 12px;gap:9px}.canvas-top{right:12px}.sheet-title>span:first-child{max-width:150px}.agent-chip{padding-right:6px}.agent-name{max-width:65px;text-overflow:ellipsis;overflow:hidden}.page-thumb{padding:10px}.page-thumb>div{height:42px}.rail-heading{padding:18px 10px 12px;font-size:8px}.composer-wrap{width:calc(100% - 94px)}.canvas-bottom{right:12px}.toolbar{left:12px}}@media(max-width:550px){:root{--rail:60px}.header{height:50px}.brand>span:not(.poc){font-size:20px}.brand>svg{width:19px}.document-select select{max-width:145px;font-size:10px}.document-select>svg,.avatar,.connection{display:none}.workspace{height:calc(100dvh - 50px)}.measurements{top:50px}.rail-heading{font-size:7px;padding:15px 6px 8px;letter-spacing:.7px}.page-thumb{padding:9px 6px}.page-thumb>div{height:34px}.page-label{font-size:8px!important}.sheet-title{display:none}.canvas-top{top:15px}.agents{max-width:100%;gap:3px}.agent-name{max-width:50px;font-size:9px}.agent-dot{width:18px;height:18px}.toolbar{top:67px}.composer-wrap{width:calc(100% - 28px);left:50%;bottom:61px}.composer{padding-left:11px;gap:7px}.composer textarea{font-size:11px}.scale-status{font-size:8px;max-width:120px}.canvas-bottom{left:12px}.tool{width:28px;height:29px}.toolbar{padding:4px}.toolbar-rule{margin:3px 5px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}


dialog select{display:block;width:100%;border:1px solid #dce3ee;border-radius:6px;padding:10px;margin:7px 0 17px;color:var(--navy);font-size:12px;background:white}.detail-calibration-error{font-size:10px;line-height:16px;color:#a04148;margin-bottom:12px}
#stage:not([data-tool="select"]) #shapes *,#draft *,#cursors *{pointer-events:none}

.coverage-panel{border-bottom:1px solid var(--border);flex-shrink:0;font-size:11px}.coverage-panel summary{cursor:pointer;padding:13px 17px;font-weight:600}.coverage-panel[open] summary{padding-bottom:8px}#coverage-list{max-height:205px;overflow:auto;padding:0 8px 7px}.coverage-row{display:flex;align-items:baseline;gap:12px;justify-content:space-between;width:100%;padding:7px 9px;text-align:left;font-size:10px;border-radius:5px}.coverage-row:hover{background:#edf0f5}.coverage-row span{line-height:1.4}.coverage-row small{white-space:nowrap;font-size:9px;color:#8a6d39}.coverage-row .coverage-repair{color:#ad515d}.coverage-row .coverage-measured{color:#356ae6}.coverage-row .coverage-excluded{color:#8290a2}

.follow-banner select{font:inherit;color:inherit;background:transparent;border:1px solid #ffffff70;border-radius:4px;padding:3px 4px;margin-left:8px;cursor:pointer}.follow-banner select option{color:#142d4e;background:white}
.measurement-group{border-bottom:1px solid var(--border)}.measurement-group>summary{display:flex;align-items:center;gap:8px;padding:14px 16px 5px;cursor:pointer;font-size:10px;font-weight:650;color:#44566e;list-style:none}.measurement-group>summary:before{content:'▸';font-size:10px;color:#8a96a7}.measurement-group[open]>summary:before{content:'▾'}.measurement-group>summary>span:first-of-type{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.group-count{margin-left:auto;color:#8994a4;font:10px ui-monospace,monospace}.group-progress{font-size:9px;color:#8a96a7;padding:0 16px 9px 30px}.measurement-group:not([open])>summary{padding-bottom:14px}

/* Deduction relationships share a warm minus mark on canvas and in the ledger. */
.deduction-badge{color:#B5533D;font-weight:600}.detail-actions{flex-wrap:wrap}
.area-breakdown{padding:8px 17px 12px}.area-line{display:flex;justify-content:space-between;gap:12px;width:100%;text-align:left;padding:7px 0;font-size:10px;line-height:15px}.area-line>span:first-child{min-width:0;overflow-wrap:anywhere}.area-line>span:last-child{flex-shrink:0;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-variant-numeric:tabular-nums}.deduction-line{color:#B5533D}.area-line[data-id]:hover{background:#fff6f2}.net-line{border-top:1px solid var(--border);font-weight:650;color:var(--navy);margin-top:6px;padding-top:10px}.area-source{padding:0 17px 12px;color:#8995a6;font-size:10px}.area-source summary{cursor:pointer}.area-source .detail-source{margin-top:8px}.area-stale{padding:12px 17px}.deduct-boundary{font-size:11px;line-height:17px;margin-bottom:18px;color:#344760;overflow-wrap:anywhere}#deduct-dialog{width:430px}#deduct-dialog fieldset{border:0;margin:20px 0 0;padding:0}#deduct-dialog legend{font-size:11px;color:#8190a4;margin-bottom:9px}#deduct-options{max-height:220px;overflow:auto}.deduct-option{display:flex;gap:9px;align-items:center;padding:10px 0;border-bottom:1px solid #eef1f6;color:#344760}.deduct-option input{width:15px;height:15px;margin:0;flex-shrink:0}.deduct-option>span:first-of-type{flex:1;overflow-wrap:anywhere}.deduct-option>span:last-child{white-space:nowrap;font:10px ui-monospace,SFMono-Regular,Menlo,monospace}#deduct-error{font-size:11px;color:#B5533D;margin-top:12px}
.measurement-controls{padding:12px 16px;border-bottom:1px solid var(--border)}
.measurement-controls input{width:100%;border:1px solid var(--border);border-radius:5px;padding:8px;font-size:11px;color:var(--navy);background:#fbfcfe}
.measurement-controls>div{display:flex;justify-content:space-between;gap:8px;margin-top:9px}
.measurement-controls select,.measurement-controls button{font-size:10px;color:#718199;background:white;border:0;padding:3px 0}
.show-more{width:100%;padding:12px;color:var(--blue);font-size:11px}
#notes-list{max-height:170px;overflow:auto;padding:0 8px 8px}.note-row{width:100%;text-align:left;display:block;padding:9px;font-size:11px;line-height:16px;border-bottom:1px solid var(--border)}.note-row span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.note-row small{display:block;color:#8593a6;font-size:9px;margin-top:3px}
.feedback-context{display:flex;align-items:center;justify-content:space-between;background:#fff8ea;border:1px solid #e8d6b1;border-radius:8px;padding:6px 10px;margin:0 10px 6px;font-size:11px;color:#826022}.feedback-context button:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left}.feedback-context button:last-child{padding:3px 6px;font-size:16px}
#annotation-dialog textarea{display:block;width:100%;resize:vertical;min-height:90px;margin-top:7px;border:1px solid var(--border);border-radius:6px;padding:10px;color:var(--navy);font:inherit;font-size:12px;line-height:18px}
.stage[data-tool=annotate]{cursor:crosshair}.annotation-pin{pointer-events:all;cursor:pointer}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--blue);outline-offset:2px}

.edit-history,.edit-status{font-size:10px;color:#687c95;margin:0 0 12px}.edit-history summary{cursor:pointer}.edit-history-row{display:flex;flex-direction:column;gap:4px;padding:9px 0;border-bottom:1px solid var(--border)}.edit-history-row small{color:#8c97a6}

/* Scope colours link the quantity list and the drawing. */
#shapes > g[data-shape]{transition:opacity 100ms linear}
#shapes > g.scope-highlight .shape{stroke-width:2.5px;vector-effect:non-scaling-stroke}
.measure-row.scope-highlight{background:#e9f0f8;box-shadow:inset 3px 0 var(--actor)}
.boq-row{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;width:100%;padding:13px 16px;border:0;border-bottom:1px solid #e5e9ef;background:white;text-align:left;color:#142d4e;cursor:pointer}
.boq-row:hover,.boq-row:focus-visible{background:#eef3f9}.boq-label{font-size:11px;line-height:1.5;max-width:165px}.boq-label i{display:inline-block;width:8px;height:8px;margin-right:6px;border-radius:2px}.boq-row strong{font-size:23px;font-weight:600;text-align:right;font-family:var(--joyne-font-data);font-variant-numeric:tabular-nums}.boq-row small{display:block;font-size:10px;font-weight:400;color:#69788a;margin-top:4px}
#boq-panel{flex-shrink:0}.layer-control{display:flex;gap:8px;align-items:flex-end;margin:12px 0}.layer-control label{font-size:10px;flex:1;min-width:0}.layer-control input{display:block;width:100%;box-sizing:border-box;margin-top:4px;border:1px solid #dce2e9;padding:6px;border-radius:4px;font-size:11px}.layer-control button{padding:6px;border:1px solid #dce2e9;border-radius:4px;background:white}.report-link{font-size:12px;text-decoration:none;color:#142d4e;padding:8px}#evidence-dialog{max-width:520px}#evidence-quote{border-left:3px solid #b67b28;padding-left:12px;margin:16px 0;white-space:pre-wrap}#evidence-use{font-size:13px;line-height:1.6}
@media(prefers-reduced-motion:reduce){#shapes > g[data-shape]{transition:none}}

#shapes > g.scope-highlight .shape{stroke:var(--scope-color)}

.boq-section h2{margin:0;padding:10px 16px;background:#f3f6fa;color:#52647a;font-size:10px;font-weight:600;letter-spacing:.3px}
.boq-item{border-bottom:1px solid #e5e9ef}.boq-item .boq-row{border-bottom:0}.boq-basis{padding:0 16px 10px;font-size:11px;color:#52647a}.boq-basis>summary{padding:2px 0;font-size:10px;cursor:pointer}.boq-basis p{line-height:1.5;overflow-wrap:anywhere}.boq-item .boq-row strong{font-size:19px}#geometry-panel{flex-shrink:0}

.takeoff-sections{flex:1;min-height:0;overflow:auto;scrollbar-width:thin}.takeoff-sections #measurement-list{overflow:visible;flex:none}

#shapes .shape-label{display:none}#shapes .label-visible .shape-label{display:block}.team-history{position:relative;font-size:10px;background:#fff;border:1px solid var(--border);border-radius:6px;padding:8px}.team-history summary{cursor:pointer}.team-history>div{position:absolute;right:0;top:100%;display:grid;gap:6px;background:#fff;padding:10px;border:1px solid var(--border);min-width:190px;z-index:20}.team-history .agent-name{max-width:110px}.agent-chip .agent-name{max-width:110px}

.quantity-selected>.boq-row{background:#edf2f8;box-shadow:inset 3px 0 #356AE6}

.brand img{display:block;width:111px;height:30px}.composer button[type=submit],.dialog-buttons .primary{background:#416AFF}.header{color:#060F3B}

.auto-follow{border:1px solid #d9deea;border-radius:16px;padding:6px 10px;background:white;color:#536075;font-size:11px;white-space:nowrap}.auto-follow[aria-pressed=true]{background:#edf1ff;color:#416aff;border-color:#becaff}.activity-inset{position:absolute;right:20px;bottom:150px;width:320px;max-width:35%;padding:0;overflow:hidden;background:white;border:1px solid #d7deec;border-radius:10px;box-shadow:0 8px 30px #172c6526;z-index:8;text-align:left;cursor:pointer}.activity-inset[hidden]{display:none}.activity-inset>span{display:block;padding:9px 12px;font-size:11px;color:#536075;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.activity-inset svg{display:block;width:100%;height:210px;background:#f5f7fb}.activity-inset .shape-label{display:none}@media(max-width:800px){.activity-inset{width:220px;bottom:160px;right:10px;max-width:40%}.activity-inset svg{height:140px}}

/* A brief overlay only; never reserves space or changes the main camera. */
.activity-inset{width:230px;max-width:28%;right:18px;bottom:120px;border-radius:8px}.activity-inset>span{font-size:10px;padding:7px 9px}.activity-inset svg{height:145px}@media(max-width:800px){.activity-inset{width:180px;max-width:32%;right:10px;bottom:140px}.activity-inset svg{height:110px}}

#drawing-upload { position: relative; display: flex; align-items: center; gap: 8px; font-size: 12px; }
#drawing-upload label, #drawing-upload button { border: 1px solid #d9deeb; border-radius: 6px; padding: 7px 10px; background: #fff; color: #060f3b; cursor: pointer; white-space: nowrap; }
#drawing-upload input[type=file] { width: 190px; font-size: 11px; }
#drawing-upload .upload-limit { color: #667085; white-space: nowrap; }
#drawing-upload .upload-entry { display: flex; align-items: center; gap: 6px; }
#drawing-upload progress { width: 50px; }
#drawing-upload [role=alert] { color: #a62b36; max-width: 240px; }
#paper[hidden] { display: none; }
@media (max-width: 1100px) { #drawing-upload .upload-limit, #drawing-upload .upload-entry > span:first-child { display: none; } }

.project-page { max-width: 760px; width: 100%; margin: 48px auto; padding: 24px; overflow: auto; }
.project-page h1 { font-size: 28px; margin-bottom: 32px; }
.project-create { display: flex; align-items: end; gap: 16px; margin-bottom: 32px; }
.project-create label { display: block; margin-bottom: 8px; }
.project-create input { display: block; padding: 12px; border: 1px solid #cbd2de; border-radius: 6px; min-width: 300px; }
.project-create-button { padding: 13px 20px; background: #060f3b; color: white; border-radius: 6px; }
.project-card { display: block; padding: 22px 0; border-bottom: 1px solid #dce1e8; color: #060f3b; font-size: 18px; }
#project-select { display: flex; align-items: center; gap: 12px; font-size: 13px; }
#project-select select { max-width: 180px; padding: 8px; border: 1px solid #dce1e8; border-radius: 6px; }

.measurement-dialog { margin: auto; padding: 24px; width: min(360px, 90vw); border: 1px solid #dce2ed; border-radius: 12px; color: #14284c; background: #fff; box-shadow: 0 16px 48px #10204030; }
.measurement-dialog::backdrop { background: #10204055; }
.measurement-dialog h2 { font-size: 18px; margin: 0 0 20px; }
.measurement-dialog label { display: block; font-size: 13px; margin-bottom: 8px; }
.measurement-dialog input { box-sizing: border-box; width: 100%; border: 1px solid #aab7cc; border-radius: 6px; padding: 10px; font: inherit; }
.measurement-actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 20px; }
.measurement-actions button { padding: 8px 16px; border: 1px solid #dce2ed; border-radius: 6px; background: white; cursor: pointer; }
.measurement-actions button[type="submit"] { background: #14284c; color: white; border-color: #14284c; }

/* Supplier identity and navigation */
#sign-in { flex-direction: column; align-items: stretch; max-width: 420px; }
#sign-in input { min-width: 0; width: 100%; }
#sign-in button { align-self: flex-start; }
.project-page nav { display: flex; align-items: center; gap: 12px; }
.project-page a { text-decoration: none; }
.project-page .project-card { width: 100%; text-align: left; }
#members .project-card { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
#members button { border: 1px solid #dce1e8; border-radius: 6px; padding: 8px 12px; font-size: 12px; white-space: nowrap; }
.header a { flex-shrink: 0; white-space: nowrap; text-decoration: none; color: #33435a; }
.header:has(#project-select) { gap: 10px; }
.header:has(#project-select) #drawing-upload input[type=file] { width: 1px; height: 1px; position: absolute; opacity: 0; }
.header:has(#project-select) .document-select select { max-width: 140px; }
.header:has(#project-select) #project-select { gap: 8px; }
.header:has(#project-select) #project-select select { max-width: 160px; }
@media (max-width: 820px) {
  .header:has(#project-select) { height: auto; min-height: 54px; flex-wrap: wrap; padding-block: 8px; }
  #members .project-card { align-items: flex-start; flex-direction: column; }
}

#empty-schedules { display: none; color: #657086; padding: 24px 0; }
#empty-schedules:only-child { display: block; }
#schedule-jobs { margin-top: 24px; }
#schedule-jobs .project-card { display: flex; align-items: center; flex-wrap: wrap; gap: 16px; }
#schedule-jobs [data-status] { font-size: 13px; padding: 5px 10px; border-radius: 20px; background: #e4e9f2; }
#schedule-jobs [data-status="complete"] { background: #dceee5; color: #17633d; }
#schedule-jobs [data-status="failed"] { background: #f8e2dd; color: #9e362b; }
#schedule-jobs a, #schedule-jobs button, #new-schedule { font-size: 14px; text-decoration: underline; cursor: pointer; }
#schedule-jobs p { width: 100%; font-size: 14px; }
.boq-row small.review-status{font-weight:550;color:#2f6d5e}.boq-row small.review-status[data-review="Needs review"],.boq-row small.review-status[data-review=Unresolved],.boq-row small.review-status[data-review=Incomplete]{color:#895216}.boq-row small.review-note{margin-top:2px;overflow-wrap:anywhere}
/* Project overview (ADR 010): results first, the canvas only for exceptions. */
.project-overview .project-card, #projects .project-card { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.project-overview .project-card small { display: block; color: var(--muted); font-size: 13px; margin-top: 4px; }
.project-overview h2 { margin-top: 36px; }
.project-overview textarea { display: block; width: 100%; min-width: 300px; padding: 12px; border: 1px solid #cbd2de; border-radius: 6px; }
.project-overview .project-create { align-items: stretch; flex-direction: column; }
.project-overview .project-create-button { align-self: flex-start; }
.overview-status { font-size: 16px; }
.overview-status button { margin-left: 12px; padding: 6px 12px; border: 1px solid #cbd2de; border-radius: 6px; }
.overview-hint { color: var(--muted); font-size: 14px; }
.overview-table { width: 100%; border-collapse: collapse; font-size: 15px; }
.overview-table td { padding: 12px 8px 12px 0; border-bottom: 1px solid #dce1e8; }
.overview-table .num { font-variant-numeric: tabular-nums; text-align: right; white-space: nowrap; }
.review-badge { display: inline-block; padding: 3px 9px; border-radius: 10px; font-size: 12px; white-space: nowrap; }
.review-badge.validated { background: #e6f4f1; color: var(--teal); }
.review-badge.accepted { background: #e9eefc; color: #2d4fcf; }
.review-badge.needs-review { background: #fff1e0; color: #9a5300; font-weight: 600; }
.project-run-status { color: var(--muted); font-size: 13px; }
/* Landing page and free trial (ADR 012). */
.landing nav { display: flex; align-items: center; gap: 16px; }
.landing .landing-spacer { flex: 1; }
.landing-hero { margin: 56px 0 40px; }
.landing-hero h1 { font-size: 40px; line-height: 1.15; letter-spacing: -0.5px; margin-bottom: 20px; }
.landing-hero p { font-size: 18px; line-height: 1.5; color: #33435a; max-width: 620px; }
.landing-hero .project-create-button { display: inline-block; margin-top: 16px; font-size: 16px; }
.landing-small { color: var(--muted); font-size: 14px; }
.landing-steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin: 32px 0; font-size: 15px; }
.landing-steps p { color: #4b5a70; }
@media (max-width: 700px) { .landing-steps { grid-template-columns: 1fr; } .landing-hero h1 { font-size: 30px; } }
.trial-form { flex-direction: column; align-items: stretch; max-width: 520px; }
.trial-form fieldset { border: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.trial-form textarea, .trial-form select { display: block; width: 100%; padding: 12px; border: 1px solid #cbd2de; border-radius: 6px; }
.trial-form .project-create-button { align-self: flex-start; }
.trial-error { color: #a04148; font-size: 14px; margin: -8px 0 0; }
.trial-consent { font-size: 14px; line-height: 1.4; }
.trial-hp { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.trial-banner { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 16px; padding: 18px 20px; margin-bottom: 20px; background: #eef3ff; border-radius: 8px; font-size: 16px; }
.privacy li { margin-bottom: 8px; line-height: 1.5; }
