:root{--austruss-orange:#eb851a;--austruss-orange-dark:#c45a18;--austruss-charcoal:#3d3d3d;--austruss-grey:#6d6e71;--austruss-off-white:#f0ebe4;--bg:#f6f3ef;--surface:#fff;--surface-2:#fbf9f7;--line:#e4ddd4;--line-strong:#cdc3b7;--ink:var(--austruss-charcoal);--ink-2:var(--austruss-grey);--ink-3:#9d9a96;--brand:var(--austruss-orange);--brand-dark:var(--austruss-orange-dark);--brand-ink:#fff;--topbar-bg:var(--austruss-charcoal);--open:#b45309;--review:#7c3aed;--closed:#15803d;--draft:#8a8580;--danger:#c0392b;--accent:var(--brand);--muted:var(--ink-2);--chip:var(--austruss-off-white);--hover:#f3efe9;--radius:8px;--pane-gap:1px;--topbar-h:56px}*{box-sizing:border-box}html,body{height:100%;margin:0}body{color:var(--ink);background:var(--bg);-webkit-text-size-adjust:100%;font:14px/1.45 system-ui,-apple-system,Segoe UI,sans-serif}#app{flex-direction:column;height:100%;display:flex}h2{margin:0;font-size:16px}h3{text-transform:uppercase;letter-spacing:.05em;color:var(--ink-2);margin:0 0 8px;font-size:12px}.muted{color:var(--ink-2)}.small{font-size:12px}.spacer{flex:1}.btn{font:inherit;border:1px solid var(--line-strong);background:var(--surface);color:var(--ink);border-radius:var(--radius);cursor:pointer;white-space:nowrap;padding:7px 12px}.btn:hover{background:var(--surface-2)}.btn-primary{background:var(--brand);border-color:var(--brand);color:var(--brand-ink);font-weight:600}.btn-primary:hover{background:#1a45c0}.btn-secondary{font-weight:600}.btn-ghost{background:0 0;border-color:#0000}.btn-ghost:hover{background:#e8eaee}.btn.active{background:var(--brand);border-color:var(--brand);color:#fff}.link{color:var(--brand);font:inherit;cursor:pointer;background:0 0;border:none;padding:0;text-decoration:underline}input,select,textarea{font:inherit;color:var(--ink);background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius);width:100%;padding:7px 9px}input:focus,select:focus,textarea:focus{outline:2px solid var(--brand);outline-offset:-1px;border-color:var(--brand)}.invalid{border-color:var(--danger);outline-color:var(--danger)}textarea{resize:vertical}.topbar{height:var(--topbar-h);background:var(--topbar-bg);border-bottom:1px solid var(--topbar-bg);color:#fff;flex:none;align-items:center;gap:14px;padding:0 14px;display:flex}.topbar .btn-ghost{color:#e7e3de}.topbar .btn-ghost:hover{color:#fff;background:#ffffff1f}.topbar select{color:#fff;font:inherit;background:#ffffff1a;border:1px solid #fff3;border-radius:6px;padding:5px 8px}.topbar select option{color:var(--ink);background:#fff}.topbar .muted,.topbar .who{color:#c9c4be}.brand{align-items:center;gap:9px;display:flex}.brand>div{align-items:baseline;gap:7px;display:flex}.logo{width:auto;height:30px;display:block}.proto-tag{color:#92400e;text-transform:uppercase;letter-spacing:.06em;background:#fef3c7;border:1px solid #fcd34d;border-radius:4px;padding:1px 5px;font-size:10px}.project-picker select{width:auto;min-width:230px}.user-switch{align-items:center;gap:7px;display:flex}.user-switch select{width:auto}.view{flex-direction:column;flex:1;min-height:0;display:flex}.view[hidden],.view-scroll[hidden],.plan-host[hidden]{display:none!important}.view-scroll{background:var(--bg);flex:1;min-height:0;overflow:auto}.plan-host{background:var(--surface);flex-direction:column;flex:1;min-height:0;display:flex}.register-head{background:var(--surface);z-index:2;justify-content:space-between;align-items:center;gap:10px;padding:12px 14px 10px;display:flex;position:sticky;top:0}.register-title{align-items:baseline;gap:8px;display:flex}.filters{border-bottom:1px solid var(--line);padding:0 14px 10px}.search{margin-bottom:9px}.chips{flex-wrap:wrap;gap:6px;margin-bottom:9px;display:flex}.chip{font:inherit;border:1px solid var(--line-strong);background:var(--surface);cursor:pointer;border-radius:999px;align-items:center;gap:5px;padding:4px 10px;font-size:12px;display:inline-flex}.chip:hover{background:var(--surface-2)}.chip-count{color:var(--ink-3);font-variant-numeric:tabular-nums}.chip.on{background:var(--ink);border-color:var(--ink);color:#fff}.chip.on .chip-count{color:#c9d2dc}.chip-overdue.on{background:var(--danger);border-color:var(--danger)}.selects{gap:6px;display:flex}.selects select{padding:5px 7px;font-size:12px}.item-list{flex-direction:column;display:flex}.item-row{text-align:left;font:inherit;color:inherit;border:none;border-bottom:1px solid var(--line);cursor:pointer;background:0 0;gap:10px;width:100%;padding:10px 14px;display:flex}.item-row:hover{background:var(--surface-2)}.item-row.selected{box-shadow:inset 3px 0 0 var(--brand);background:#eef4ff}.row-num{color:var(--ink-2);font-variant-numeric:tabular-nums;flex-direction:column;align-items:center;gap:5px;padding-top:2px;font-size:12px;font-weight:600;display:flex}.status-dot{border-radius:50%;width:9px;height:9px;display:block}.status-open{background:var(--open)}.status-ready_for_review{background:var(--review)}.status-closed{background:var(--closed)}.status-draft{background:var(--draft)}.row-main{flex:1;min-width:0}.row-title{margin-bottom:3px;font-weight:600}.prio-flag{background:var(--danger);color:#fff;vertical-align:1px;border-radius:4px;place-items:center;width:15px;height:15px;font-size:11px;font-weight:700;display:inline-grid}.row-meta,.row-foot{color:var(--ink-2);flex-wrap:wrap;align-items:center;gap:8px;font-size:12px;display:flex}.row-foot{margin-top:4px}.tag{color:var(--ink-2);background:#eef1f5;border-radius:4px;padding:1px 6px;font-size:11px}.bic{color:var(--ink);font-weight:600}.due.overdue,.overdue{color:var(--danger);font-weight:600}.icon-count{color:var(--ink-3)}.empty,.detail-empty{text-align:center;color:var(--ink-2);padding:40px 24px}.locked-out .item-list .empty:after{content:"You are signed in as an external contractor. You only see items assigned to your company.";color:var(--ink-3);margin-top:8px;font-size:12px;display:block}.plan-toolbar{border-bottom:1px solid var(--line);background:var(--surface);flex:none;align-items:center;gap:10px;padding:8px 12px;display:flex}.plan-pages{flex:1;gap:6px;display:flex;overflow-x:auto}.page-tab{font:inherit;text-align:left;cursor:pointer;border:1px solid var(--line-strong);background:var(--surface);border-radius:var(--radius);white-space:nowrap;flex-direction:column;padding:5px 9px;display:flex;position:relative}.page-tab strong{font-size:12px}.page-tab span{color:var(--ink-2);font-size:11px}.page-tab.active{border-color:var(--brand);background:#eef4ff}.page-badge{background:var(--open);color:#fff;border-radius:999px;place-items:center;min-width:17px;height:17px;padding:0 4px;font-weight:700;display:grid;position:absolute;top:-6px;right:-6px;font-size:10px!important}.plan-tools{align-items:center;gap:5px;display:flex}.zoom-label{color:var(--ink-2);text-align:center;font-variant-numeric:tabular-nums;min-width:42px;font-size:12px}.plan-viewport{cursor:grab;touch-action:none;background:#6b7280;flex:1;position:relative;overflow:hidden}.plan-viewport.placing,.plan-viewport.drawing{cursor:crosshair}.plan-viewport.pan-ready{cursor:grab}.plan-viewport.grabbing{cursor:grabbing}.plan-stage{transform-origin:0 0;position:absolute;top:0;left:0}.plan-stage canvas{display:block;box-shadow:0 2px 16px #00000059}.pin-layer{position:absolute;top:0;left:0}.plan-hint,.plan-loading{color:#fff;pointer-events:none;opacity:0;background:#16202ceb;border-radius:999px;padding:7px 14px;font-size:13px;transition:opacity .15s;position:absolute;left:50%;transform:translate(-50%)}.plan-hint{bottom:18px}.plan-loading{top:18px}.plan-hint.show,.plan-loading.show{opacity:1}.pin{transform:translate(-50%, -100%) scale(var(--pin-counter,1));transform-origin:50% 100%;cursor:pointer;filter:drop-shadow(0 2px 3px #00000073);background:0 0;border:none;padding:0;position:absolute}.pin-body{background:var(--open);color:#fff;font-variant-numeric:tabular-nums;border:2px solid #fff;border-radius:14px 14px 14px 3px;place-items:center;min-width:28px;height:28px;padding:0 7px;font:700 12px/1 system-ui,sans-serif;display:grid}.pin-ready_for_review .pin-body{background:var(--review)}.pin-closed .pin-body{background:var(--closed)}.pin-draft .pin-body{background:var(--draft)}.pin.selected .pin-body{outline:3px solid var(--brand);outline-offset:1px}.pin-high .pin-body:after{content:"!";background:var(--danger);color:#fff;border:2px solid #fff;border-radius:50%;place-items:center;width:14px;height:14px;font-size:9px;display:grid;position:absolute;top:-6px;right:-6px}.pin-draft{cursor:default;animation:.9s ease-in-out infinite alternate pulse}@keyframes pulse{to{opacity:.55}}.detail-head{border-bottom:1px solid var(--line);flex:none;justify-content:space-between;gap:10px;padding:12px 14px;display:flex}.detail-num{color:var(--ink-2);flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:4px;font-size:12px;font-weight:700;display:flex}.pill{color:#fff;text-transform:none;border-radius:999px;padding:2px 8px;font-size:11px;font-weight:600}.pill-open{background:var(--open)}.pill-ready_for_review{background:var(--review)}.pill-closed{background:var(--closed)}.pill-draft{background:var(--draft)}.pill-high,.pill-overdue{background:var(--danger)}.detail-body{flex:1;padding:14px;overflow:auto}.detail-body section{margin-bottom:20px}.description{white-space:pre-wrap;margin:0}.facts{grid-template-columns:1fr 1fr;gap:10px 14px;margin:0 0 18px;display:grid}.facts div{min-width:0}.facts dt{text-transform:uppercase;letter-spacing:.04em;color:var(--ink-3);margin-bottom:2px;font-size:11px}.facts dd{margin:0;font-weight:500}.assign-row{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius);align-items:center;gap:9px;margin-bottom:18px;padding:9px 11px;display:flex}.assign-row label{white-space:nowrap;font-size:12px;font-weight:600}.gallery{grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:7px;display:grid}.photo{cursor:pointer;border:1px solid var(--line-strong);background:var(--surface-2);aspect-ratio:4/3;border-radius:6px;padding:0;display:block;position:relative;overflow:hidden}.photo img{object-fit:cover;width:100%;height:100%;display:block}.photo-cap{color:#fff;text-overflow:ellipsis;white-space:nowrap;background:linear-gradient(#0000,#000000c7);padding:12px 5px 4px;font-size:10px;position:absolute;bottom:0;left:0;right:0;overflow:hidden}.photo-add{cursor:pointer;color:var(--ink-2);border-style:dashed;place-items:center;gap:2px;display:grid}.photo-add .plus{font-size:22px;line-height:1}.photo-add .photo-cap{color:var(--ink-2);background:0 0;padding:0;position:static}.thread{flex-direction:column;gap:12px;margin-bottom:10px;display:flex}.comment{gap:9px;display:flex}.avatar{background:var(--ink-2);color:#fff;border-radius:50%;flex:none;place-items:center;width:28px;height:28px;font-size:11px;font-weight:700;display:grid}.comment-body{min-width:0}.comment-head{flex-wrap:wrap;align-items:baseline;gap:6px;display:flex}.comment-body p{margin:2px 0 0}.comment-box{align-items:flex-start;gap:7px;display:flex}.comment-box textarea{flex:1}.activity{margin:0;padding:0;font-size:13px;list-style:none}.activity li{color:var(--ink-2);border-left:2px solid var(--line);margin-left:3px;padding:5px 0 5px 14px;position:relative}.activity li:before{content:"";background:var(--line-strong);border-radius:50%;width:8px;height:8px;position:absolute;top:11px;left:-5px}.detail-actions{border-top:1px solid var(--line);background:var(--surface-2);flex-wrap:wrap;flex:none;align-items:center;gap:8px;padding:11px 14px;display:flex}.action-note{color:var(--ink-2);font-size:12px}.lightbox{z-index:60;cursor:zoom-out;background:#0a0e14eb;place-items:center;gap:12px;padding:24px;display:grid;position:fixed;inset:0}.lightbox img{border-radius:6px;max-width:100%;max-height:78vh}.lightbox-cap{color:#e6eaf0;font-size:13px}.lightbox-close{color:#fff;cursor:pointer;background:0 0;border:none;font-size:30px;position:absolute;top:14px;right:18px}.sheet-backdrop{z-index:40;background:#0c121a73;position:fixed;inset:0}.sheet{z-index:41;background:var(--surface);border-radius:12px;flex-direction:column;width:min(560px,100vw - 32px);height:fit-content;max-height:min(88vh,760px);margin:auto;display:flex;position:fixed;inset:0;box-shadow:0 18px 50px #0000004d}.sheet-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:13px 16px;display:flex}.sheet-body{padding:14px 16px;overflow:auto}.sheet-actions{border-top:1px solid var(--line);background:var(--surface-2);border-radius:0 0 12px 12px;justify-content:flex-end;gap:8px;padding:11px 16px;display:flex}.pin-note{border-radius:var(--radius);background:#eef4ff;border:1px solid #c7d7fb;flex-wrap:wrap;align-items:baseline;gap:8px;margin:0 0 14px;padding:8px 11px;font-size:13px;display:flex}.field{margin-bottom:12px;display:block}.field>span{color:var(--ink-2);margin-bottom:4px;font-size:12px;font-weight:600;display:block}.field-row{grid-template-columns:1fr 1fr;gap:10px;display:grid}.toast{background:var(--ink);color:#fff;opacity:0;pointer-events:none;z-index:70;border-radius:999px;padding:9px 16px;font-size:13px;transition:all .18s;position:fixed;bottom:22px;left:50%;transform:translate(-50%,14px)}.toast.show{opacity:1;transform:translate(-50%)}.mobile-tabs{display:none}@media (width<=900px){.layout,.layout.has-detail{grid-template-columns:1fr}.pane{display:none}.layout[data-pane=register] .pane-register,.layout[data-pane=plan] .pane-plan{flex-direction:column;display:flex}.layout[data-pane=register] .pane-register{display:block}.layout[data-pane=detail] .pane-detail{display:flex}.mobile-tabs{border-top:1px solid var(--line);background:var(--surface);padding-bottom:env(safe-area-inset-bottom);flex:none;grid-template-columns:repeat(3,1fr);display:grid}.mobile-tabs button{font:inherit;color:var(--ink-2);cursor:pointer;background:0 0;border:none;padding:11px 0;font-weight:600}.mobile-tabs button.active{color:var(--brand);box-shadow:inset 0 -2px 0 var(--brand)}.topbar{gap:8px;padding:0 8px}.brand strong,.proto-tag,.spacer,.user-switch .small{display:none}.project-picker,.user-switch{flex:1 1 0;min-width:0}.project-picker select,.user-switch select{width:100%;min-width:0;max-width:none;padding-inline:7px;font-size:13px}.facts,.field-row{grid-template-columns:1fr}.sheet{border-radius:14px 14px 0 0;width:100vw;max-height:92vh;margin:0;inset:auto 0 0}.sheet-actions{border-radius:0}.btn{padding:10px 14px}.pin-body{min-width:32px;height:32px}.plan-toolbar{flex-wrap:wrap;gap:8px;padding:8px}.plan-tools{order:1;justify-content:space-between;width:100%}.plan-pages{flex:1 0 100%;order:2;padding-bottom:2px}.page-tab{padding:6px 10px}}.view-tabs{background:#ffffff1a;border-radius:8px;gap:2px;padding:2px;display:flex}.view-tabs button{font:inherit;color:#d6d1cb;cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:6px;padding:6px 13px;font-size:13px;font-weight:600}.view-tabs button:hover{color:#fff;background:#ffffff14}.view-tabs button.active{background:var(--brand);color:#fff;box-shadow:0 1px 2px #00000040}.access-view{background:var(--bg);flex:1;min-height:0;padding:18px;overflow:auto}.access-view[hidden],.layout[hidden],.mobile-tabs[hidden]{display:none!important}.access-head{justify-content:space-between;align-items:flex-start;gap:12px;max-width:900px;margin:0 auto 14px;display:flex}.access-head h2{margin-bottom:2px;font-size:18px}.access-foot{max-width:900px;margin:16px auto 0}.access-foot code{background:#e8ecf1;border-radius:4px;padding:1px 5px;font-size:12px}.notice{border-radius:var(--radius);background:#fff8e6;border:1px solid #f5d98a;max-width:900px;margin:0 auto 14px;padding:9px 12px;font-size:13px}.notice-lock{background:#eef4ff;border-color:#c7d7fb;margin:0 0 12px}.member-list{flex-direction:column;gap:8px;max-width:900px;margin:0 auto;display:flex}.member-card{background:var(--surface);border:1px solid var(--line);border-radius:10px;overflow:hidden}.member-card.open{border-color:var(--line-strong);box-shadow:0 2px 10px #0000000f}.member-summary{width:100%;font:inherit;color:inherit;text-align:left;cursor:pointer;background:0 0;border:none;align-items:center;gap:12px;padding:12px 14px;display:flex}.member-summary:hover{background:var(--surface-2)}.member-main{flex:1;min-width:0}.member-name{flex-wrap:wrap;align-items:center;gap:7px;font-weight:600;display:flex}.member-meta{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.member-role{text-align:right;flex-direction:column;align-items:flex-end;gap:3px;display:flex}.chev{color:var(--ink-3);text-align:center;width:16px;font-size:18px}.tag-ext{color:#9b1c1c;background:#fde8e8}.tag-int{color:#1b5e34;background:#e6f4ea}.role-pill{background:var(--ink);color:#fff;white-space:nowrap;border-radius:999px;padding:2px 9px;font-size:11px;font-weight:700}.role-admin{background:#1d4ed8}.role-manager{background:#7c3aed}.role-engineer{background:#0f766e}.role-inspector{background:#b45309}.role-installer{background:#475569}.role-viewer{background:#94a3b8}.member-detail{border-top:1px solid var(--line);background:var(--surface-2);padding:14px}.role-row{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:12px;display:flex}.role-row label{color:var(--ink-2);font-size:12px;font-weight:600}.role-row select{width:auto;min-width:170px}.role-row p{flex:260px;margin:0}.cap-groups{grid-template-columns:repeat(auto-fit,minmax(330px,1fr));gap:14px;display:grid}.cap-group{background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:10px 12px}.cap-group h4{text-transform:uppercase;letter-spacing:.05em;color:var(--ink-3);margin:0 0 7px;font-size:11px}.cap-row{border-top:1px solid var(--line);align-items:center;gap:10px;padding:6px 0;display:flex}.cap-group .cap-row:first-of-type{border-top:none}.cap-label{flex-wrap:wrap;flex:1;align-items:center;gap:7px;min-width:0;font-size:13px;display:flex}.cap-dot{background:var(--line-strong);border-radius:50%;flex:none;width:7px;height:7px}.cap-row.is-on .cap-dot{background:var(--closed)}.cap-row.cap-locked{opacity:.55}.cap-note{flex:100%}.cap-badge{text-transform:uppercase;letter-spacing:.04em;border-radius:4px;padding:1px 5px;font-size:10px;font-weight:700}.cap-badge.inherited{color:var(--ink-3);background:#eef1f5}.cap-badge.granted{color:#1b5e34;background:#e6f4ea}.cap-badge.denied{color:#9b1c1c;background:#fde8e8}.cap-badge.locked{color:#475569;background:#e8eaee}.cap-badge.muted-badge{color:var(--ink-3);background:#eef1f5}.cap-toggle{border:1px solid var(--line-strong);border-radius:7px;flex:none;display:flex;overflow:hidden}.cap-toggle .seg{font:inherit;color:var(--ink-2);background:var(--surface);cursor:pointer;border:none;padding:4px 9px;font-size:11px;font-weight:600}.cap-toggle .seg+.seg{border-left:1px solid var(--line)}.cap-toggle .seg:hover{background:var(--surface-2)}.cap-toggle .seg.on{background:var(--ink);color:#fff}.cap-static{font-size:12px;font-weight:600}.cap-static.yes{color:var(--closed)}.cap-static.no{color:var(--ink-3)}.member-actions{gap:8px;margin-top:12px;display:flex}.btn.danger{color:var(--danger)}.btn.danger:hover{background:#fde8e8}.add-member{background:var(--surface);border:1px solid var(--line);border-radius:10px;max-width:900px;margin:16px auto 0;padding:12px 14px}.add-member h3{margin-bottom:8px}.add-row{flex-wrap:wrap;gap:8px;display:flex}.add-row select{flex:200px;width:auto}.assign-multi select{height:auto}.assign-multi{flex-wrap:wrap;align-items:flex-start}.assign-hint{flex:100%;margin:6px 0 0}@media (width<=900px){.view-tabs button{padding:6px 9px;font-size:12px}.access-view{padding:12px 10px}.member-summary{flex-wrap:wrap}.member-role{text-align:left;align-items:flex-start;width:100%}.cap-groups{grid-template-columns:1fr}}.overlay{pointer-events:none;position:absolute;top:0;left:0;overflow:visible}.overlay[data-mode=zones] .zone-region,.overlay[data-mode=markup] .markup{pointer-events:all;cursor:pointer}.markup-hit{stroke:#0000;stroke-width:calc(22px * var(--pin-counter,1));stroke-linecap:round;stroke-linejoin:round;pointer-events:none}.overlay[data-mode=markup] .markup-hit{pointer-events:stroke;cursor:pointer}.zone-region{fill-opacity:.1;stroke-width:calc(3px * var(--pin-counter,1));stroke-dasharray:calc(10px * var(--pin-counter,1)) calc(6px * var(--pin-counter,1))}.zone-region.selected{fill-opacity:.22;stroke-dasharray:none}.zone-label{font:700 calc(34px * var(--pin-counter,1)) system-ui, sans-serif;text-anchor:middle;dominant-baseline:middle;opacity:.75;pointer-events:none;paint-order:stroke;stroke:#fff;stroke-width:calc(5px * var(--pin-counter,1))}.draft-region{stroke:#1d4ed8;stroke-width:calc(3px * var(--pin-counter,1));stroke-dasharray:calc(8px * var(--pin-counter,1)) calc(5px * var(--pin-counter,1))}.draft-vertex{r:calc(7px * var(--pin-counter,1));fill:#fff;stroke:#1d4ed8;stroke-width:calc(3px * var(--pin-counter,1))}.markup{fill:none;stroke-width:calc(5px * var(--pin-counter,1));stroke-linecap:round;stroke-linejoin:round}.markup.draft{opacity:.75}.markup.selected{stroke-width:calc(7px * var(--pin-counter,1))}.markup.selected+*{outline:none}.overlay .markup.selected{filter:drop-shadow(0 0 calc(4px * var(--pin-counter,1)) #1d4ed8e6)}.mode-tabs{background:#eef1f5;border-radius:7px;gap:2px;margin-right:4px;padding:2px;display:flex}.mode-tabs button{font:inherit;color:var(--ink-2);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:5px;padding:5px 10px;font-size:12px;font-weight:600}.mode-tabs button:hover{color:var(--ink)}.mode-tabs button.active{background:var(--surface);color:var(--ink);box-shadow:0 1px 2px #0000001f}.mode-tabs button[hidden]{display:none}.small-tabs button{padding:4px 8px;font-size:11px}.mode-bar{border:1px solid var(--line-strong);background:#fffffff7;border-radius:999px;flex-wrap:wrap;align-items:center;gap:8px;max-width:calc(100% - 24px);padding:6px 12px;font-size:13px;display:flex;position:absolute;bottom:14px;left:50%;transform:translate(-50%);box-shadow:0 4px 18px #0000002e}.mode-bar[hidden]{display:none}.mode-bar select{width:auto;min-width:150px;padding:4px 7px;font-size:12px}.mode-note{color:var(--ink-2);font-size:12px}.mode-bar .btn{padding:5px 10px;font-size:12px}.swatches{gap:4px;display:flex}.swatch{cursor:pointer;background:var(--c);width:20px;height:20px;box-shadow:0 0 0 1px var(--line-strong);border:2px solid #fff;border-radius:50%}.swatch.on{box-shadow:0 0 0 2px var(--ink)}@media (width<=900px){.mode-bar{gap:6px;padding:6px 10px;bottom:10px}.mode-bar select{min-width:110px}.mode-note{display:none}}.zone-chip{background:color-mix(in srgb, var(--c) 16%, white);color:var(--c);border:1px solid color-mix(in srgb, var(--c) 40%, white);border-radius:4px;padding:1px 6px;font-size:11px;font-weight:700;display:inline-block}.lightbox-stage{max-width:100%;display:inline-block;position:relative}.lightbox-stage img{border-radius:6px;max-width:100%;max-height:70vh;display:block}.pm-overlay{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.lightbox.annotating .lightbox-stage{cursor:crosshair;touch-action:none}.lightbox.annotating{cursor:default}.pm-stroke{fill:none;stroke-width:9px;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.photo-marked{color:#fff;background:#111827cc;border-radius:4px;padding:1px 4px;font-size:10px;line-height:1.4;position:absolute;top:4px;right:4px}.pm-bar{background:#fffffff7;border-radius:999px;flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;max-width:calc(100vw - 32px);padding:6px 12px;display:flex}.pm-bar .mode-note{color:var(--ink-2)}.pm-bar .btn[disabled]{opacity:.45;cursor:default}.dw-view{padding:18px}.dw-head,.dw-search,.dw-list,.upload-list{max-width:1100px;margin-left:auto;margin-right:auto}.dw-head{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px;display:flex}.dw-head h2{margin-bottom:2px;font-size:18px}.upload-btn{display:inline-block;position:relative}.dropzone{border:2px dashed var(--line-strong);text-align:center;background:var(--surface);border-radius:12px;flex-direction:column;align-items:center;gap:4px;max-width:1100px;margin:0 auto 14px;padding:22px 16px;display:flex}.dropzone.over{border-color:var(--brand);background:#eef4ff}.dropzone strong{font-size:15px}.upload-list{flex-direction:column;gap:6px;margin-bottom:14px;display:flex}.upload-row{background:var(--surface);border:1px solid var(--line);border-radius:8px;grid-template-columns:1fr 160px auto;align-items:center;gap:10px;padding:8px 12px;font-size:13px;display:grid}.upload-name{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.upload-bar{background:#e8ecf1;border-radius:999px;height:6px;overflow:hidden}.upload-bar span{background:var(--brand);height:100%;transition:width .18s;display:block}.upload-row.done .upload-bar span{background:var(--closed)}.upload-row.failed{background:#fef5f5;border-color:#f5b5b5}.upload-row.failed .upload-bar span{background:var(--danger)}.dw-search{align-items:center;gap:10px;margin-bottom:14px;display:flex}.dw-search input{flex:1}.dw-list{flex-direction:column;gap:8px;display:flex}.dw-card{background:var(--surface);border:1px solid var(--line);border-radius:10px;overflow:hidden}.dw-card.open{border-color:var(--line-strong);box-shadow:0 2px 10px #0000000f}.dw-summary{width:100%;font:inherit;color:inherit;text-align:left;cursor:pointer;background:0 0;border:none;align-items:flex-start;gap:12px;padding:12px 14px;display:flex}.dw-summary:hover{background:var(--surface-2)}.dw-main{flex:1;min-width:0}.dw-name{flex-wrap:wrap;align-items:center;gap:7px;margin-bottom:2px;font-weight:600;display:flex}.dw-flags{flex-wrap:wrap;gap:6px;margin-top:5px;display:flex}.dw-sheets{border-top:1px solid var(--line);background:var(--surface-2);padding:14px}.dw-actions{margin-top:12px}.rev-pill{background:var(--ink);color:#fff;border-radius:4px;padding:1px 6px;font-size:11px;font-weight:700}.flag{border-radius:4px;padding:1px 6px;font-size:11px;font-weight:600;display:inline-block}.flag-review{color:#92400e;background:#fef3c7;border:1px solid #fcd34d}.flag-mismatch{color:#9b1c1c;background:#fde8e8;border:1px solid #f5b5b5}.sheet-grid{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px;max-width:1100px;margin:0 auto;display:grid}.sheet-card{text-align:left;font:inherit;color:inherit;cursor:pointer;background:var(--surface);border:1px solid var(--line);border-radius:10px;flex-direction:column;padding:0;display:flex;overflow:hidden}.sheet-card:hover{border-color:var(--brand);box-shadow:0 2px 10px #1d4ed824}.sheet-thumb{aspect-ratio:297/210;border-bottom:1px solid var(--line);background:#eef1f5;place-items:center;display:grid;overflow:hidden}.sheet-thumb img{object-fit:contain;width:100%;height:100%;display:block}.thumb-wait{border:2px solid var(--line-strong);border-top-color:var(--brand);border-radius:50%;width:22px;height:22px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.sheet-meta{flex-direction:column;gap:3px;padding:9px 11px;display:flex}.sheet-no{align-items:center;gap:6px;font-size:13px;font-weight:700;display:flex}.sheet-title{color:var(--ink-2);font-size:12px}.sheet-foot{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.frame-hit{color:#1e3a8a;background:#eef4ff;border:1px solid #c7d7fb;border-radius:4px;padding:2px 6px;font-size:11px}@media (width<=900px){.dw-view{padding:12px 10px}.dw-head{flex-direction:column}.upload-row{grid-template-columns:1fr;gap:5px}.sheet-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}}.reg{max-width:1180px;margin:0 auto;padding:18px}.reg-head{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px;display:flex}.reg-head h2{margin-bottom:2px;font-size:18px}.reg-head-actions{gap:8px;display:flex}.reg .filters{border:none;padding:0 0 12px}.reg-table{border-collapse:collapse;background:var(--surface);border:1px solid var(--line);border-radius:10px;width:100%;font-size:13px;overflow:hidden}.reg-table th{text-align:left;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-3);border-bottom:1px solid var(--line);background:var(--surface-2);cursor:pointer;white-space:nowrap;padding:9px 10px;font-size:11px;font-weight:700}.reg-table th:hover{color:var(--ink)}.reg-table th.sorted{color:var(--brand)}.reg-table td{border-bottom:1px solid var(--line);vertical-align:top;padding:9px 10px}.reg-table tbody tr:last-child td{border-bottom:none}.reg-row{cursor:pointer}.reg-row:hover{background:#eef4ff}.reg-row:focus-visible{outline:2px solid var(--brand);outline-offset:-2px}.col-num{font-variant-numeric:tabular-nums;width:48px;color:var(--ink-2);font-weight:700}.col-status{white-space:nowrap;width:132px}.col-status .status-dot{vertical-align:1px;margin-right:6px;display:inline-block}.col-zone{width:74px}.col-bic{width:172px}.col-bic .bic,.col-bic .muted{display:block}.col-due{white-space:nowrap;width:120px}.reg-title{font-weight:600;display:block}.reg-loc{display:block}.report{max-width:980px;margin:0 auto;padding:18px}.report-bar{align-items:center;gap:8px;margin-bottom:14px;display:flex}.report-sheet{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:26px 28px}.report-head{border-bottom:2px solid var(--ink);justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:18px;padding-bottom:14px;display:flex}.report-eyebrow{text-transform:uppercase;letter-spacing:.07em;color:var(--ink-3);margin-bottom:4px;font-size:11px;font-weight:700}.report-head h1{margin:0 0 8px;font-size:22px;line-height:1.25}.report-pills{flex-wrap:wrap;gap:6px;display:flex}.report-logo{letter-spacing:.06em;color:var(--ink);white-space:nowrap;font-size:13px;font-weight:800}.report-cols{grid-template-columns:1fr 1fr;gap:22px;margin-bottom:20px;display:grid}.report-facts{grid-template-columns:1fr 1fr;gap:12px 16px;margin:0;display:grid}.report-facts dt{text-transform:uppercase;letter-spacing:.05em;color:var(--ink-3);margin-bottom:2px;font-size:10px;font-weight:700}.report-facts dd{margin:0;font-size:13px}.report-snip{margin:0}.report-snip img{border:1px solid var(--line-strong);background:#fff;border-radius:6px;width:100%;display:block}.snip-wait,.snip-none{aspect-ratio:900/594;border:1px dashed var(--line-strong);background:var(--surface-2);border-radius:6px;place-items:center;display:grid}.report-snip figcaption{margin-top:5px}.report-section{margin-bottom:20px}.report-section h2{text-transform:uppercase;letter-spacing:.05em;color:var(--ink-2);border-bottom:1px solid var(--line);margin:0 0 8px;padding-bottom:4px;font-size:11px}.report-actions{background:var(--surface);border:1px solid var(--line);border-radius:10px;flex-wrap:wrap;align-items:center;gap:8px;margin-top:14px;padding:12px 14px;display:flex}.report .assign-row{margin-top:14px}.report-foot{border-top:1px solid var(--line);color:var(--ink-3);margin-top:20px;padding-top:10px;font-size:10px}.pin-popup{z-index:30;background:var(--surface);border:1px solid var(--line-strong);border-radius:10px;width:300px;position:absolute;overflow:hidden;box-shadow:0 8px 28px #0000003d}.pin-popup[hidden]{display:none}.pp-head{border-bottom:1px solid var(--line);background:var(--surface-2);flex-wrap:wrap;align-items:center;gap:6px;padding:9px 11px;display:flex}.pp-num{color:var(--ink-2);font-size:13px;font-weight:700}.pp-close{cursor:pointer;color:var(--ink-3);background:0 0;border:none;margin-left:auto;padding:0 2px;font-size:19px;line-height:1}.pp-close:hover{color:var(--ink)}.pp-body{gap:10px;padding:10px 11px;display:flex}.pp-photo{object-fit:cover;border:1px solid var(--line);border-radius:6px;flex:none;width:78px;height:62px}.pp-main{flex-direction:column;gap:3px;min-width:0;display:flex}.pp-title{font-size:13px;font-weight:600;line-height:1.3}.pp-meta{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.pp-actions{border-top:1px solid var(--line);background:var(--surface-2);gap:7px;padding:9px 11px;display:flex}.pp-actions .btn{flex:1;padding:6px 10px;font-size:12px}.plan-back{flex:none;padding:5px 9px;font-size:16px}@media (width<=900px){.reg,.report{padding:12px 10px}.reg-head,.report-cols,.report-facts{grid-template-columns:1fr}.reg-head{flex-direction:column}.report-cols{display:block}.report-snip{margin-top:16px}.col-bic,.col-zone{display:none}.pin-popup{width:calc(100vw - 32px);max-width:320px}}.only-print{display:none}@media print{@page{size:A4;margin:14mm}.topbar,.no-print,.toast,#sheetHost,.mode-bar,.plan-toolbar{display:none!important}.only-print{display:block}html,body,#app{background:#fff;height:auto}.view-scroll{overflow:visible}.reg,.report{max-width:none;padding:0}.reg-table{border:none;border-radius:0;font-size:10pt}.reg-table thead{display:table-header-group}.reg-row{page-break-inside:avoid}.reg-table th{color:#000;background:#f2f4f7!important}.reg-row:hover{background:0 0}.col-bic,.col-zone{display:table-cell}.report-sheet{border:none;border-radius:0;padding:0}.report-cols{grid-template-columns:1fr 1fr;display:grid}.report-section,.report-cols,.report-snip{page-break-inside:avoid}.gallery{grid-template-columns:repeat(3,1fr)!important}.photo{break-inside:avoid}.lightbox{display:none!important}*{-webkit-print-color-adjust:exact;print-color-adjust:exact}}.frame-chip{color:#1e3a8a;background:#eef4ff;border:1px solid #c7d7fb;border-radius:4px;padding:1px 6px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;font-weight:700;display:inline-block}.frame-dot{r:calc(4px * var(--pin-counter,1));fill:#1d4ed8;opacity:.8}.frame-tag{font:700 calc(15px * var(--pin-counter,1)) ui-monospace, monospace;fill:#1e3a8a;text-anchor:middle;paint-order:stroke;stroke:#fff;stroke-width:calc(4px * var(--pin-counter,1))}.field-hint{color:var(--ink-3);text-transform:none;letter-spacing:0;margin-left:4px;font-weight:400}.ms{margin-bottom:0;position:relative}.ms-label{color:var(--ink-2);margin-bottom:4px;font-size:12px;font-weight:600;display:block}.ms-field{background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius);cursor:pointer;align-items:center;gap:6px;min-height:38px;padding:4px 4px 4px 8px;display:flex}.ms-field:hover{border-color:var(--ink-3)}.ms-field.open{border-color:var(--brand);box-shadow:0 0 0 1px var(--brand)}.ms-field.disabled{background:var(--surface-2);cursor:default}.ms-tokens{flex-wrap:wrap;flex:1;gap:5px;min-width:0;display:flex}.ms-placeholder{color:var(--ink-3);align-self:center;font-size:13px}.ms-token{color:#1e3a8a;background:#eef4ff;border:1px solid #c7d7fb;border-radius:999px;align-items:center;gap:5px;max-width:100%;padding:2px 4px 2px 3px;font-size:12px;font-weight:500;display:inline-flex}.ms-token-initials{background:var(--ink-2);color:#fff;border-radius:50%;flex:none;place-items:center;width:19px;height:19px;font-size:9px;font-weight:700;display:inline-grid}.ms-token-x{cursor:pointer;color:#5b7cc4;background:0 0;border:none;padding:0 3px;font-size:15px;line-height:1}.ms-token-x:hover{color:var(--danger)}.ms-toggle{cursor:pointer;color:var(--ink-3);background:0 0;border:none;flex:none;padding:4px 6px;font-size:11px}.ms-toggle:hover{color:var(--ink)}.ms-panel{z-index:60;background:var(--surface);border:1px solid var(--line-strong);border-radius:10px;flex-direction:column;display:flex;position:fixed;overflow:hidden;box-shadow:0 10px 30px #0000002e}.ms-search{border:none;border-bottom:1px solid var(--line);border-radius:0;padding:9px 11px;font-size:13px}.ms-search:focus{border-color:var(--line);outline:none}.ms-list{flex:1;min-height:0;overflow-y:auto}.ms-empty{text-align:center;padding:14px}.ms-group-head{text-transform:uppercase;letter-spacing:.05em;color:var(--ink-3);background:var(--surface);align-items:baseline;gap:7px;padding:7px 11px 4px;font-size:10px;font-weight:700;display:flex;position:sticky;top:0}.ms-group-note{text-transform:none;letter-spacing:0;color:#9b1c1c;background:#fde8e8;border-radius:3px;padding:0 4px;font-weight:500}.ms-option{width:100%;font:inherit;text-align:left;color:inherit;cursor:pointer;background:0 0;border:none;align-items:center;gap:8px;padding:7px 11px;font-size:13px;display:flex}.ms-option:hover{background:var(--surface-2)}.ms-option.on{background:#eef4ff}.ms-check{border:1px solid var(--line-strong);color:#fff;background:var(--surface);border-radius:4px;flex:none;place-items:center;width:16px;height:16px;font-size:11px;display:grid}.ms-option.on .ms-check{background:var(--brand);border-color:var(--brand)}.ms-option-name{flex:1;min-width:0}.ms-option-org{color:var(--ink-3);flex:none;font-size:11px}.ms-foot{border-top:1px solid var(--line);background:var(--surface-2);padding:8px 11px;line-height:1.35}.assign-row .ms{flex:100%}.co-sheet .sheet-body{padding-top:12px}.co-title{border-bottom:1px solid var(--line);margin:0 0 12px;padding-bottom:10px;font-size:14px;font-weight:600}.field-error{color:var(--danger);margin-top:5px;font-size:12px;font-weight:600;display:block}.field-error[hidden]{display:none}.photo-existing{color:#fff;text-transform:uppercase;letter-spacing:.04em;background:#15803deb;border-radius:4px;padding:1px 5px;font-size:9px;font-weight:700;position:absolute;top:4px;left:4px}.co-section{background:#f0f9f3;border:1px solid #bfe3cc;border-radius:8px;padding:12px 14px}.co-section h2{color:#15803d;border-bottom-color:#bfe3cc}.overlay .callout{pointer-events:all;cursor:pointer}.callout-ring{fill:#1d4ed80f;stroke:#1d4ed8;stroke-opacity:.45;stroke-width:calc(2px * var(--pin-counter,1));stroke-dasharray:calc(5px * var(--pin-counter,1)) calc(4px * var(--pin-counter,1))}.callout:hover .callout-ring{fill:#1d4ed829;stroke-opacity:1;stroke-dasharray:none;stroke-width:calc(3px * var(--pin-counter,1))}.callout.missing .callout-ring{stroke:var(--ink-3);stroke-opacity:.3;fill:none}.callout.missing:hover .callout-ring{stroke-opacity:.6;fill:#0000000a}.sheet-refs{flex-wrap:wrap;gap:4px;margin-top:2px;display:flex}.ref-chip{font:inherit;cursor:pointer;color:#1e3a8a;background:#eef4ff;border:1px solid #c7d7fb;border-radius:4px;padding:1px 5px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;font-weight:600}.ref-chip:hover{background:#dbe7ff}.ref-chip.missing{background:var(--surface-2);color:var(--ink-3);border-color:var(--line);cursor:default}.ref-mark{opacity:.7;font-family:system-ui,sans-serif;font-weight:400}.ms-group-mine{text-transform:none;letter-spacing:0;color:#15803d;background:#e6f4ea;border-radius:3px;padding:0 4px;font-weight:500}.edit-panel{flex-wrap:wrap;align-items:flex-start;gap:12px;display:flex}.edit-panel .field{flex:200px;margin-bottom:0}.focus-ring{fill:none;stroke:#1d4ed8;stroke-width:calc(3px * var(--pin-counter,1));animation:1.4s ease-out infinite focus-pulse}.focus-dot{r:calc(4px * var(--pin-counter,1));fill:#1d4ed8}.focus-label{font:700 calc(15px * var(--pin-counter,1)) ui-monospace, monospace;fill:#1e3a8a;text-anchor:middle;paint-order:stroke;stroke:#fff;stroke-width:calc(5px * var(--pin-counter,1))}@keyframes focus-pulse{0%{opacity:1}70%{opacity:.25}to{opacity:1}}.sheet-cell{flex-direction:column;gap:5px;display:flex}.sheet-cell .sheet-card{flex:1}.plan-find{border:1px solid var(--line-strong);background:var(--surface);border-radius:7px;align-items:center;gap:2px;padding:1px 1px 1px 7px;display:flex}.plan-find input{background:0 0;border:none;width:130px;padding:4px 2px;font-size:12px}.plan-find input:focus{outline:none}.plan-find.has-query{border-color:var(--brand)}.plan-find.no-match{border-color:var(--danger)}.find-count{color:var(--ink-3);font-variant-numeric:tabular-nums;text-align:center;white-space:nowrap;min-width:30px;font-size:11px}.plan-find.no-match .find-count{color:var(--danger);font-weight:700}.find-nav{font:inherit;cursor:pointer;color:var(--ink-2);background:0 0;border:none;border-radius:5px;padding:3px 5px;font-size:14px;line-height:1}.find-nav:hover{background:var(--surface-2);color:var(--ink)}.find-hit{fill:#facc1547;stroke:#b45309;stroke-width:calc(1.5px * var(--pin-counter,1))}.find-hit.current{fill:#facc1599;stroke:#92400e;stroke-width:calc(2.5px * var(--pin-counter,1))}@media (width<=900px){.plan-find input{width:88px}.find-count{min-width:24px}}.home{max-width:1100px;margin:0 auto;padding:26px 18px}.home-head{margin-bottom:18px}.home-head h1{margin:0 0 4px;font-size:24px}.home-head p{margin:0}.project-grid{grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:14px;display:grid}.project-card{background:var(--surface);border:1px solid var(--line);cursor:pointer;border-radius:12px;flex-direction:column;gap:12px;padding:16px 18px;transition:border-color .12s,box-shadow .12s;display:flex}.project-card:hover{border-color:var(--brand);box-shadow:0 3px 14px #1d4ed821}.project-card:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.pc-head{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.pc-head h2{margin:1px 0 3px;font-size:17px}.pc-job{letter-spacing:.06em;color:var(--ink-3);font-variant-numeric:tabular-nums;font-size:11px;font-weight:700}.pc-stats{border-top:1px solid var(--line);border-bottom:1px solid var(--line);grid-template-columns:repeat(4,1fr);gap:8px;padding:10px 0;display:grid}.stat{flex-direction:column;gap:1px;display:flex}.stat-n{font-variant-numeric:tabular-nums;font-size:20px;font-weight:700;line-height:1}.stat-l{text-transform:uppercase;letter-spacing:.04em;color:var(--ink-3);font-size:10px}.stat.review .stat-n{color:var(--review)}.stat.bad .stat-n{color:var(--danger)}.stat.good .stat-n{color:var(--closed)}.stat.zero .stat-n{color:var(--ink-3);font-weight:600}.pc-foot{flex-wrap:wrap;justify-content:space-between;gap:10px;display:flex}.pc-next{font-weight:600}.pc-actions{gap:8px;display:flex}.pc-actions .btn{text-align:center;flex:1;text-decoration:none}@media (width<=900px){.home{padding:16px 10px}.home-head h1{font-size:20px}.project-grid{grid-template-columns:1fr}}.back-to-projects{white-space:nowrap;flex:none;padding:6px 10px;font-size:13px;font-weight:600}.back-to-projects[hidden],.view-tabs[hidden],.project-picker[hidden]{display:none!important}.home-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.np-sheet .pin-note{margin:4px 0 0}[hidden]{display:none!important}body.signed-out{background:var(--bg)}#signInHost[hidden]{display:none}.signin{justify-content:center;align-items:center;min-height:100vh;padding:24px 16px;display:flex}.signin-card{border:1px solid var(--line);background:#fff;border-radius:14px;flex-direction:column;gap:18px;width:min(420px,100%);padding:28px;display:flex;box-shadow:0 10px 40px #3d3d3d1a}.signin-brand{text-align:center;flex-direction:column;align-items:center;display:flex}.signin-brand img{width:132px;height:auto;margin-bottom:14px}.signin-brand h1{letter-spacing:.01em;margin:0;font-size:20px;font-weight:600}.signin-brand p{margin:3px 0 0}.signin-form{flex-direction:column;gap:14px;display:flex}.signin-form .field input{border:1px solid var(--line);font:inherit;border-radius:8px;width:100%;padding:10px 12px}.btn-wide{justify-content:center;width:100%;padding:10px;font-size:15px}.signin-sent{margin:0;font-size:14px}.signin-error{margin:0}.code-input{letter-spacing:.28em;text-align:center;font-variant-numeric:tabular-nums;text-indent:.28em;font-size:24px}.signin-alt{justify-content:space-between;gap:12px;display:flex}.link-btn{font:inherit;color:var(--accent);cursor:pointer;background:0 0;border:0;padding:0;font-size:13px;text-decoration:underline}.signed-in{align-items:center;gap:10px;display:flex}.signed-in .who{color:var(--muted);font-size:13px}@media (width<=720px){.signed-in .who{display:none}}.ac-sheet{width:min(560px,100vw - 32px)}.ac-body{flex-direction:column;gap:12px;display:flex}.ac-body h3{align-items:center;gap:8px;margin:4px 0 0;font-size:14px;display:flex}.ac-who{background:var(--chip);border-radius:10px;align-items:center;gap:12px;padding:12px;display:flex}.ac-who strong{font-size:14px;display:block}.ac-rule{border:0;border-top:1px solid var(--line);width:100%;margin:8px 0}.ac-done{color:#166534;margin:0;font-size:13px}button.who{font:inherit;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:6px;padding:4px 6px;font-size:13px}button.who:hover{background:var(--hover);color:var(--ink)}.link-btn.centred{align-self:center}.remember{color:var(--ink-2);cursor:pointer;align-items:center;gap:9px;font-size:13px;display:flex}.remember input{width:16px;height:16px;accent-color:var(--brand);cursor:pointer}.home-actions{align-items:center;gap:8px;display:flex}.home-search{align-items:center;gap:10px;margin:0 0 16px;display:flex}.home-search input{border:1px solid var(--line);max-width:460px;font:inherit;background:#fff;border-radius:8px;flex:1;padding:8px 12px}.dir-sheet{width:min(860px,100vw - 32px)}.dir-body{flex-direction:column;gap:12px;display:flex}.dir-tools{align-items:center;gap:10px;display:flex}.dir-tools input{border:1px solid var(--line);font:inherit;border-radius:8px;flex:1;padding:8px 12px}.dir-list{border:1px solid var(--line);background:#fff;border-radius:10px;max-height:52vh;overflow-y:auto}.dir-entry{border-bottom:1px solid var(--line)}.dir-entry:last-child{border-bottom:0}.dir-entry.open{background:#f8fafc}.dir-row{text-align:left;width:100%;font:inherit;cursor:pointer;background:0 0;border:0;align-items:center;gap:12px;padding:10px 14px;display:flex}.dir-row:hover{background:var(--hover)}.dir-detail{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.dir-name{align-items:center;gap:8px;font-weight:500;display:flex}.dir-org,.dir-projects{flex:none}.np-badge.invited{color:#92400e;background:#fef3c7}.org-pill{border-radius:999px;padding:2px 8px;font-size:11px;font-weight:600}.org-pill.org-austruss{color:#3730a3;background:#e0e7ff}.org-pill.org-external{background:var(--chip);color:var(--muted)}.dir-open{flex-direction:column;gap:14px;padding:4px 14px 16px 58px;display:flex}.dir-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 24px;margin:0;display:grid}.dir-fields dt{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-size:11px}.dir-fields dd{margin:2px 0 0;font-size:14px}.dir-fields dd .np-sub{display:block}.dir-projects-list h4{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:0 0 6px;font-size:12px}.dir-projects-list ul{flex-direction:column;gap:5px;margin:0;padding:0;font-size:14px;list-style:none;display:flex}.dir-projects-list li{align-items:center;gap:8px;display:flex}.dir-actions{justify-content:flex-end;gap:8px;display:flex}.start-pass{border:1px dashed var(--line-strong);background:var(--surface-2);border-radius:9px;padding:12px}.start-pass h4{margin:0 0 3px;font-size:13px}.start-pass p{margin:0 0 9px}.start-pass-row{gap:8px;display:flex}.invite-link{flex-wrap:wrap;gap:8px;margin-bottom:8px;display:flex}.invite-link input{border:1px solid var(--line);min-width:200px;color:var(--ink);background:#fff;border-radius:7px;flex:1;padding:7px 10px;font:12px/1.4 ui-monospace,SFMono-Regular,Menlo,monospace}.start-pass-alt{margin-top:10px}.dw-zones{flex-direction:column;gap:20px;display:flex}.draft-banner{background:#fff7ed;border:1px solid #fed7aa;border-radius:10px;justify-content:space-between;align-items:center;gap:16px;margin-bottom:14px;padding:12px 16px;display:flex}.draft-banner strong{font-size:14px;display:block}.draft-banner .muted{margin-top:2px;display:block}.zone-group{flex-direction:column;gap:8px;display:flex}.zone-head{border-bottom:1px solid var(--line);align-items:baseline;gap:10px;margin:0;padding-bottom:6px;font-size:14px;display:flex}.zone-badge{background:var(--brand);color:#fff;letter-spacing:.02em;border-radius:6px;padding:3px 10px;font-size:13px;font-weight:700;display:inline-block}.zone-badge.none{background:var(--chip);color:var(--muted);font-weight:600}.sheet-foot .weight{font-variant-numeric:tabular-nums}.sheet-foot .weight.heavy{color:#b45309;font-weight:700}.sheet-foot .weight.heavy:after{content:" \16 A0"}.start-pass-alt summary{cursor:pointer;color:var(--muted);margin-bottom:8px;font-size:13px}.start-pass-alt p{margin:0 0 8px}.start-pass-row input{border:1px solid var(--line);font:inherit;border-radius:7px;flex:1;padding:7px 10px}.dir-invite{border:1px solid var(--accent);background:#f8fafc;border-radius:10px;flex-direction:column;gap:10px;padding:16px;display:flex}.dir-invite h3{margin:0;font-size:15px}@media (width<=720px){.dir-org,.dir-projects{display:none}.dir-open{padding-left:14px}.dir-fields{grid-template-columns:1fr}.home-search{flex-wrap:wrap}}.closed-projects{margin-top:28px}.closed-toggle{font:inherit;color:var(--muted);cursor:pointer;background:0 0;border:0;align-items:center;gap:8px;padding:6px 0;font-size:13px;font-weight:600;display:flex}.closed-toggle:hover{color:var(--ink)}.closed-toggle .chev{font-size:10px}.closed-list{border:1px solid var(--line);background:#fff;border-radius:10px;margin-top:6px;overflow:hidden}.closed-row{border-bottom:1px solid var(--line);align-items:center;gap:12px;padding:10px 14px;display:flex}.closed-row:last-child{border-bottom:0}.closed-detail{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.closed-when{flex:none}.project-status{border:1px solid var(--line);background:var(--chip);border-radius:10px;align-items:center;gap:20px;margin-top:24px;padding:14px 16px;display:flex}.project-status h3{margin:0 0 3px;font-size:14px}.project-status p{max-width:62ch;margin:0}.project-status>button{flex:none;margin-left:auto}.project-status.is-closed{background:#fff7ed;border-color:#fed7aa}@media (width<=640px){.closed-row{flex-wrap:wrap}.closed-when{flex-basis:100%;order:3}.project-status{flex-direction:column;align-items:flex-start;gap:12px}.project-status>button{margin-left:0}}.np-body{flex-direction:column;gap:10px;display:flex}.np-toggle{color:var(--muted);cursor:pointer;align-items:center;gap:8px;font-size:13px;display:flex}.np-toggle input{cursor:pointer;width:15px;height:15px}.np-results{border:1px solid var(--line);background:#fff;border-radius:8px;height:320px;overflow-y:auto}.np-row{border:0;border-bottom:1px solid var(--line);text-align:left;width:100%;font:inherit;cursor:pointer;background:0 0;align-items:center;gap:12px;padding:9px 12px;display:flex}.np-row:last-child{border-bottom:0}.np-row:hover{background:var(--hover)}.np-row.selected{box-shadow:inset 3px 0 0 var(--accent);background:#eff6ff}.np-row.taken{cursor:default;opacity:.55}.np-row.taken:hover{background:0 0}.np-job{font-variant-numeric:tabular-nums;flex:none;min-width:52px;font-weight:600}.np-detail{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.np-name{font-weight:500}.np-sub,.np-hint{color:var(--muted);font-size:12px}.np-name,.np-sub{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.np-badge{background:var(--chip);color:var(--muted);border-radius:999px;flex:none;padding:2px 8px;font-size:11px;font-weight:600}.np-badge.stage-in-progress{color:#166534;background:#dcfce7}.np-badge.stage-quoting,.np-badge.stage-to-be-converted{color:#92400e;background:#fef3c7}.np-badge.stage-not-proceeding{color:#991b1b;background:#fee2e2}.np-badge.added{color:#3730a3;background:#e0e7ff}.np-empty,.np-more{color:var(--muted);margin:0;padding:16px 12px;font-size:13px}.np-more{border-top:1px solid var(--line)}.np-source{color:var(--muted);margin:0;font-size:12px}.np-source a{color:inherit}.note-text{font:600 calc(16px * var(--pin-counter,1)) system-ui, sans-serif;paint-order:stroke;stroke:#fff;stroke-width:calc(4px * var(--pin-counter,1))}.markup.note{pointer-events:all}.markup.measure line{stroke-width:calc(2.5px * var(--pin-counter,1));stroke-linecap:round}.measure-text{font:700 calc(15px * var(--pin-counter,1)) ui-monospace, monospace;text-anchor:middle;paint-order:stroke;stroke:#fff;stroke-width:calc(5px * var(--pin-counter,1))}.markup.measure.draft{opacity:.85}.scale-chip{color:var(--ink-2);white-space:nowrap;background:#eef1f5;border-radius:4px;padding:2px 7px;font-size:11px;font-weight:700}.scale-chip.cal{color:#15803d;background:#e6f4ea}.scale-chip.bad{color:#9b1c1c;background:#fde8e8}.measure-leg{stroke-width:calc(1.5px * var(--pin-counter,1));stroke-dasharray:calc(6px * var(--pin-counter,1)) calc(4px * var(--pin-counter,1));opacity:.75}.measure-text.leg{font-size:calc(12px * var(--pin-counter,1));opacity:.9}.measure-anchor{r:calc(5px * var(--pin-counter,1));fill:#fff;stroke:#1d4ed8;stroke-width:calc(2.5px * var(--pin-counter,1))}.snap-mark circle{r:calc(7px * var(--pin-counter,1));fill:none;stroke:#059669;stroke-width:calc(2px * var(--pin-counter,1))}.snap-mark path{stroke:#059669;stroke-width:calc(1.5px * var(--pin-counter,1));transform-box:fill-box}.overlay[data-mode=markup]{cursor:crosshair}.mode-label{color:var(--ink-2);font-size:12px;font-weight:600}.cal-input{border:1px solid var(--brand);border-radius:var(--radius);width:92px;padding:5px 8px;font-size:13px}
