.rendering-viewer{color:#202e29;background:#fff;border:1px solid #d8dfd8;border-radius:16px;min-width:0;overflow:hidden}.rendering-viewer .rv-heading{justify-content:space-between;align-items:center;gap:12px;padding:20px 20px 0;display:flex}.rendering-viewer h2{letter-spacing:-.025em;margin:3px 0 0;font-size:1.3rem}.rendering-viewer .rv-eyebrow{color:#536c5e;letter-spacing:.13em;font-size:.65rem;font-weight:750}.rendering-viewer .rv-tag{white-space:nowrap;border:1px solid #d8dfd8;border-radius:20px;padding:5px 9px;font-size:.7rem}.rendering-viewer .rv-intro{color:#5b6960;margin:6px 20px 18px;font-size:.87rem}.rendering-viewer .rv-stage{background:#e9ede9;height:clamp(340px,53vh,570px);position:relative}.rendering-viewer canvas{touch-action:none;width:100%;height:100%;display:block}.rendering-viewer canvas:focus-visible{outline-offset:-3px;outline:3px solid #c2410c}.rendering-viewer .rv-loading,.rendering-viewer .rv-failure{text-align:center;background:#e9ede9;align-content:center;justify-items:center;margin:0;padding:24px;display:grid;position:absolute;inset:0}.rendering-viewer .rv-controls{flex-wrap:wrap;gap:6px;padding:12px 16px 0;display:flex}.rendering-viewer button{min-width:44px;min-height:44px;font:inherit;color:#284b38;box-shadow:none;cursor:pointer;background:#fff;border:1px solid #c6d1c7;border-radius:9px;padding:9px 12px;font-size:.85rem}.rendering-viewer button:hover:not(:disabled){background:#e8eee8;border-color:#667f6d}.rendering-viewer button[aria-pressed=true]{color:#fff;background:#294e3a;border-color:#294e3a}.rendering-viewer button[aria-pressed=true]:hover:not(:disabled){background:#1f3d2d;border-color:#1f3d2d}.rendering-viewer button:disabled{opacity:.45;cursor:default}.rendering-viewer .rv-navigation{padding-top:7px}.rendering-viewer .rv-navigation>button{font-size:1.15rem}.rendering-viewer summary{cursor:pointer;min-height:44px;padding:10px 4px;font-size:.85rem}.rendering-viewer .rv-navigation details .rv-controls{padding:0 0 8px}.rendering-viewer .rv-help{color:#627267;margin:8px 20px 14px;font-size:.75rem}.rendering-viewer .rv-review{background:#f6f8f4;border-top:1px solid #dfe5dc;padding:12px 20px 16px;font-size:.8rem}.rendering-viewer .rv-review p{margin:5px 0}.rendering-viewer .rv-scope{color:#626d63;font-size:.75rem;line-height:1.5}.rendering-viewer .rv-assumptions summary{color:#8c4a14;font-weight:600}.rendering-viewer ul{margin:4px 0 12px;padding-left:20px}.rendering-viewer li{margin:5px 0}.rendering-viewer .rv-diagnostics{color:#713c13;background:#fff3dd;padding:14px 20px;font-size:.85rem}.rendering-viewer .rv-empty{background:#f0f3ed;padding:35px 20px}@media (width<=480px){.rendering-viewer .rv-heading{gap:8px;padding:16px 12px 0}.rendering-viewer h2{font-size:1.1rem}.rendering-viewer .rv-intro{margin:6px 12px 14px;font-size:.8rem}.rendering-viewer .rv-stage{height:360px}.rendering-viewer .rv-controls{gap:5px;padding-left:10px;padding-right:10px}.rendering-viewer .rv-controls button{padding:8px 9px;font-size:.8rem}.rendering-viewer .rv-review{padding:12px}}@media (orientation:landscape) and (height<=500px){.rendering-viewer .rv-stage{height:max(180px,100dvh - 72px)}.rendering-viewer .rv-toolbar{flex-wrap:wrap;align-items:flex-start;column-gap:6px;display:flex}.rendering-viewer .rv-toolbar>.rv-controls{gap:5px;padding:8px 0 0 10px}.rendering-viewer .rv-controls button{padding:8px 9px;font-size:.8rem}.rendering-viewer .rv-help{margin-top:4px}}.rendering-viewer.compact{flex-direction:column;display:flex}.rendering-viewer.compact .rv-stage{flex:1;height:auto;min-height:200px}.rendering-viewer.compact .rv-toolbar{flex-wrap:wrap;justify-content:space-between;gap:6px;padding:8px 10px 10px;display:flex}.rendering-viewer.compact .rv-toolbar>.rv-controls{gap:5px;padding:0}.rendering-viewer.compact .rv-controls button{justify-content:center;align-items:center;padding:8px 10px;font-size:.8rem;display:inline-flex}.rendering-viewer.compact .rv-help{clip-path:inset(50%);width:1px;height:1px;margin:0;position:absolute;overflow:hidden}:root{--bg:#f4f3ef;--surface:#fff;--surface-muted:#faf9f6;--text:#1a1d23;--muted:#667085;--border:#e5e2db;--border-strong:#d3cfc6;--accent:#c2410c;--accent-hover:#9a3412;--accent-bright:#f97316;--accent-soft:#fff4e8;--accent-ring:#ea580c2e;--focus:var(--accent);--ink:#18202f;--ink-raised:#252f42;--danger:#b91c1c;--ok:#15803d;--radius:14px;--shadow:0 1px 2px #18202f0a, 0 2px 6px #18202f0d;--shadow-raised:0 4px 12px #18202f14, 0 1px 3px #18202f0f;--tabbar:0px;color:var(--text);background:var(--bg);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;-webkit-font-smoothing:antialiased;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.45}*{box-sizing:border-box}body{margin:0}h1,h2{letter-spacing:-.02em;margin:0;font-size:1.25rem;font-weight:700}h3{letter-spacing:-.01em;margin:0;font-size:1rem;font-weight:650}code{background:#efece6;border-radius:5px;padding:0 .3rem;font-size:.9em}a{color:var(--accent)}::selection{background:#fed7aa}button,label.button{font:inherit;border:1px solid var(--accent);background:var(--accent);color:#fff;cursor:pointer;border-radius:9px;padding:.45rem .95rem;font-weight:550;transition:background-color .15s,border-color .15s,color .15s,box-shadow .15s,transform 80ms;box-shadow:0 1px 2px #18202f14,inset 0 1px #ffffff24}button:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}button:active:not(:disabled){transform:translateY(1px)}button:focus-visible,label.button:focus-within{outline:2px solid var(--focus);outline-offset:2px}.topnav :focus-visible,.context-bar>* :focus-visible,.context-bar>:focus-visible{outline-color:#fdba74}.menu :focus-visible{outline-color:var(--focus)}button.secondary,label.button{background:var(--surface);color:var(--accent);border-color:#f3c6a5}button.secondary:hover:not(:disabled),label.button:hover{background:var(--accent-soft);color:var(--accent-hover);border-color:var(--accent)}button.danger{background:var(--surface);color:var(--danger);border-color:#f0b4b4}button.danger:hover:not(:disabled){border-color:var(--danger);background:#fef2f2}button.link,button.link:hover:not(:disabled){color:var(--muted);text-underline-offset:2px;box-shadow:none;background:0 0;border:none;margin-right:.75rem;padding:0;font-weight:400;text-decoration:underline;transform:none}button.link.row-open,button.link.row-open:hover:not(:disabled){color:inherit;text-align:left;font:inherit;font-weight:inherit;margin-right:0;text-decoration:none}button.link.row-open:focus-visible{outline:2px solid var(--focus,currentColor);outline-offset:2px}.load-error{flex-wrap:wrap;align-items:center;gap:.75rem;padding:1rem;display:flex}button.small{padding:.25rem .65rem;font-size:.85rem}button:disabled{opacity:.45;cursor:default;box-shadow:none}input,select,textarea{font:inherit;border:1px solid var(--border-strong);background:var(--surface);color:var(--text);border-radius:9px;width:100%;padding:.4rem .55rem;transition:border-color .15s,box-shadow .15s}input:hover:not(:disabled):not(:focus),select:hover:not(:disabled):not(:focus),textarea:hover:not(:disabled):not(:focus){border-color:#bdb8ad}input:focus,select:focus,textarea:focus{border-color:var(--focus);box-shadow:0 0 0 1px var(--focus);outline:none}input[type=checkbox]:focus-visible,input[type=radio]:focus-visible{outline:2px solid var(--focus);outline-offset:2px;box-shadow:none}input[aria-invalid=true]{border-color:var(--danger)}input[aria-invalid=true]:focus{border-color:var(--danger);box-shadow:0 0 0 1px var(--danger)}input::placeholder,textarea::placeholder{color:#9a9fab}input[type=checkbox]{width:1.1rem;height:1.1rem;accent-color:var(--accent)}input.short{width:6.5rem}input:disabled,select:disabled,textarea:disabled{background:var(--surface-muted);color:var(--muted)}textarea{min-height:4rem}textarea.tall{min-height:9rem}fieldset{border:none;flex-direction:column;gap:.75rem;min-width:0;margin:0;padding:0;display:flex}.app{flex-direction:column;min-height:100dvh;display:flex}.topnav{background:linear-gradient(90deg, var(--accent-bright), var(--accent)) bottom / 100% 2px no-repeat, var(--ink);color:#fff;align-items:center;gap:.25rem;padding:.5rem 1rem;display:flex}.topnav .brand{letter-spacing:-.01em;align-items:center;gap:.55rem;margin-right:1.5rem;font-size:1.05rem;display:flex}.brand-mark{background:linear-gradient(135deg, var(--accent-bright), var(--accent));border-radius:8px;place-items:center;width:30px;height:30px;display:grid;box-shadow:inset 0 1px #ffffff40,0 2px 6px #ea580c59}.brand-mark svg{width:18px;height:18px}.topnav .tab{color:#b8c0cc;box-shadow:none;background:0 0;border-color:#0000;align-items:center;gap:.45rem;display:flex}.topnav .tab:hover:not(.active){color:#fff;background:#ffffff0f;border-color:#0000}.topnav .tab.active{background:var(--ink-raised);color:#fff;border-color:#0000;box-shadow:inset 0 1px #ffffff0f}.topnav .tab.active svg{color:#fdba74}.topnav .tab svg{width:18px;height:18px}.layout{flex:1;grid-template-columns:320px minmax(0,1fr);display:grid}.layout.alone{grid-template-columns:minmax(0,1fr)}.sidebar{background:var(--surface);border-right:1px solid var(--border)}.sidebar header{justify-content:space-between;align-items:center;padding:1rem;display:flex}.sidebar ul{margin:0;padding:0;list-style:none}.sidebar li{border-top:1px solid var(--border);cursor:pointer;flex-direction:column;gap:.2rem;padding:.8rem 1rem;transition:background-color .12s;display:flex}.sidebar li:hover{background:var(--surface-muted)}.sidebar li.selected{background:var(--accent-soft);box-shadow:inset 3px 0 0 var(--accent)}.sidebar li.muted{cursor:default;background:0 0;padding:1.25rem 1rem}main{min-width:0;padding:1.5rem 2rem 3rem}.back{display:none}.empty{text-align:center;border:1.5px dashed var(--border-strong);border-radius:var(--radius);background:#ffffff80;flex-direction:column;align-items:center;gap:.75rem;max-width:420px;margin:3rem auto 0;padding:2.5rem 1.5rem;display:flex}.empty:before{content:"";background:var(--accent-soft) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23c2410c' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 3h7l5 5v13H7z'/%3E%3Cpath d='M14 3v5h5M10 13h6M10 17h6'/%3E%3C/svg%3E") center / 22px no-repeat;border-radius:12px;width:44px;height:44px}.row{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.wrap{flex-wrap:wrap}.muted{color:var(--muted);font-size:.9rem}.small{font-size:.8rem}.error{color:var(--danger);margin:0}.status{white-space:nowrap;text-transform:capitalize;color:#4b5563;background:#eef0f3;border-radius:999px;padding:.05rem .55rem;font-size:.75rem;font-weight:600;line-height:1.5;display:inline-block}.status.sent{color:#075985;background:#e0f2fe}.status.unpaid{color:#92400e;background:#fef3c7}.status.accepted,.status.completed,.status.paid{color:#166534;background:#dcfce7}.status.rejected,.status.overdue{color:#991b1b;background:#fee2e2}.status.void{color:var(--muted);background:#f3f4f6;text-decoration:line-through}.lines tr.void td{color:var(--muted)}.notice{background:var(--accent-soft);border:1px solid #fcdcbf;border-left:3px solid var(--accent-bright);color:#5c2a0e;border-radius:9px;margin:0;padding:.6rem .9rem}.actions{align-items:center;gap:.5rem;display:flex}.actions select{width:auto;max-width:100%}.actions:has(>.template-picker){flex-wrap:wrap}.actions>.template-picker,.sheet-body .actions>.template-picker{flex:100%;grid-template-columns:repeat(auto-fill,minmax(8.5rem,1fr));gap:.4rem;margin:0;padding:0;display:grid;overflow:visible}.template-picker>button{white-space:normal;text-align:center;justify-content:center;width:100%;min-height:44px}.send-checklist{margin:0;padding-left:1.2rem}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);flex-direction:column;gap:.75rem;padding:1rem 1.25rem;display:flex}.panel p{margin:0}.badge{border-radius:999px;margin-left:.4rem;padding:.05rem .5rem;font-size:.72rem;font-weight:600;display:inline-block}.price-change.badged{color:#92400e;-webkit-box-decoration-break:clone;box-decoration-break:clone;background:#fef3c7;border-radius:.3rem;padding:.1rem .3rem}.catalog td[data-label=Change]{overflow-wrap:anywhere}.badge.current{color:#166534;background:#dcfce7}.badge.stale{color:#92400e;background:#fef3c7}.badge.unverified{color:#991b1b;background:#fee2e2}.price-checked{font-variant-numeric:tabular-nums;white-space:nowrap;font-size:.88rem}.price-checked.current{color:#15803d}.price-checked.stale{color:#b45309}.price-checked.unverified{color:#b91c1c}.badge.plan{color:#075985;background:#e0f2fe;margin-left:.25rem}.editor{flex-direction:column;gap:1.25rem;max-width:1100px;display:flex}.editor.narrow{max-width:640px}.editor header{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.editor-header{z-index:5;background:color-mix(in srgb, var(--bg) 92%, transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);margin:-.75rem 0 0;padding:.75rem 0;position:sticky;top:0}.editor-header .title{align-items:baseline;gap:.75rem;min-width:0;display:flex}.fields{grid-template-columns:1fr 1fr;gap:.75rem 1rem;display:grid}.fields label,.param-grid label,.price-check label,.plan-fields label{color:var(--muted);flex-direction:column;gap:.25rem;font-size:.85rem;display:flex}.fields .wide{grid-column:1/-1}label.checkbox{white-space:nowrap;color:var(--text);align-items:center;gap:.4rem;display:flex;flex-direction:row!important}.lines{border-collapse:separate;border-spacing:0;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:100%;box-shadow:var(--shadow);overflow:hidden}.lines th{text-align:left;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;background:var(--surface-muted);font-size:.72rem;font-weight:650}.lines th,.lines td{border-bottom:1px solid var(--border);vertical-align:middle;padding:.5rem .6rem}.lines tbody tr:last-child td{border-bottom:none}.lines tbody td{transition:background-color .12s}.lines tr.from-template td{background:#fcfbf8}.lines tr.clickable{cursor:pointer}.lines tr.clickable:hover td{background:var(--accent-soft)}.lines tr.total td{border-top:1px solid var(--border);font-weight:600}.lines td .badge{margin-top:.2rem}.starter-price-note{white-space:normal;max-width:20rem;font-weight:400}.money{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.summary{grid-template-columns:1fr 300px;align-items:start;gap:2rem;display:grid}.summary dl{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);font-variant-numeric:tabular-nums;margin:0;padding:.75rem 1rem}.summary dl div{justify-content:space-between;padding:.2rem 0;display:flex}.summary dt{text-transform:capitalize;color:var(--muted)}.summary dd{margin:0}.summary .total{background:var(--accent-soft);border-radius:0 0 var(--radius) var(--radius);border-top:1px solid #fcdcbf;margin:.5rem -1rem -.75rem;padding:.7rem 1rem;font-size:1.15rem;font-weight:700}.summary .total dt{color:inherit}.summary .total dd{color:var(--accent-hover)}.catalog{flex-direction:column;gap:1rem;max-width:1200px;display:flex}.catalog header{flex-wrap:wrap;align-items:center}.filters input{max-width:360px}.filters select{width:auto}.filter-choices{gap:.5rem;display:flex}.param-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.75rem 1rem;display:grid}.param-grid input.short{width:100%}.from-plan{color:var(--text);font-variant-numeric:tabular-nums;padding:.4rem 0;font-size:1rem}.param-name{flex-direction:column;min-width:0;display:flex}.param-name small{opacity:.85;font-size:.75rem}.param-value{align-items:center;gap:.4rem;display:flex}details.from-drawing summary{cursor:pointer;color:var(--muted);font-size:.85rem}details.from-drawing .plan-measures{margin-top:.5rem}.group-label{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-size:.72rem;font-weight:650}.plan-menu .group-label{flex-basis:100%}.chip-row .group-label{align-self:center}details.labor summary{cursor:pointer}details table{border-collapse:collapse;margin-top:.5rem}details td{padding:.15rem 1.5rem .15rem 0}details tr.total td{border-top:1px solid var(--border);font-weight:600}.price-check{max-width:640px}.reader-progress{width:100%;height:.75rem}.reader-question{border:2px solid #f79009;border-radius:8px;margin:.75rem 0;padding:.75rem 1rem}.reader-results{margin-top:1.5rem}.reader-result,.evidence-record{border-top:1px solid var(--border,#ddd);overflow-wrap:anywhere;padding:1rem 0}.reader-result p,.evidence-record p{margin:.45rem 0}.reader-warning{color:#78350f;background:#fff7ed;border-left:3px solid #d97706;padding:.65rem .8rem}.evidence-identity{overflow-wrap:anywhere}.price-check input.short{width:10rem;font-size:1.25rem}.template-editor input.formula{font-family:ui-monospace,monospace;font-size:.85rem}.template-editor td:first-child select{min-width:6.5rem}.custom-item{flex-wrap:wrap;align-items:center;gap:.35rem;display:flex}.custom-item select{width:auto}.factor{border-left:3px solid var(--border);flex-direction:column;gap:.35rem;padding-left:.75rem;display:flex}.factor .option{justify-content:flex-start;padding-left:1rem}.factor .option input:first-child{max-width:280px}.plan-editor{flex-direction:column;gap:.5rem;display:flex}.plan-toolbar,.plan-menu,.tool-buttons{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.spacer{flex:1}button.tool{white-space:nowrap;background:var(--surface);color:var(--text);border-color:var(--border-strong);align-items:center;gap:.35rem;padding:.35rem .7rem;font-size:.85rem;display:inline-flex;box-shadow:0 1px 2px #18202f0d}button.tool:hover:not(:disabled){background:var(--surface-muted);border-color:#bdb8ad}button.tool.active,button.tool.active:hover:not(:disabled){background:var(--ink);color:#fff;border-color:var(--ink)}button.tool.danger{color:var(--danger)}button.tool svg{flex:none}.plan-stage{position:relative}.plan-canvas{border:1px solid var(--border);width:100%;height:520px;box-shadow:var(--shadow);touch-action:none;-webkit-user-select:none;user-select:none;cursor:grab;background:#fbfcfd;border-radius:12px;display:block}.plan-canvas.drawing{cursor:crosshair;border-color:var(--accent)}.plan-canvas.placing,.plan-canvas.placing *{cursor:crosshair!important}.plan-canvas .grid{stroke:#eceff2;stroke-width:1px}.plan-canvas .grid.major{stroke:#dde2e7}.plan-faded{opacity:.3;pointer-events:none}.plan-stroke{fill:none;stroke:var(--accent);stroke-width:3px;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}.plan-shape{fill:#c2410c12}.plan-shape.existing{fill:#64748b1f}.plan-shape.removed{fill:url(#plan-hatch)}.plan-shape.line{fill:none;stroke:none}.plan-shape.selected{fill:#c2410c2e}.plan-shape.existing.selected{fill:#64748b42}.plan-hatch-line{stroke:#9f1239;stroke-width:1.5px;opacity:.6}.plan-wall.existing{stroke:#64748b}.plan-wall.removed{stroke:#9f1239;stroke-dasharray:7 4}.plan-wall.existing.selected,.plan-wall.removed.selected{stroke:var(--accent)}.existing .plan-corner{stroke:#64748b}.removed .plan-corner{stroke:#9f1239}.plan-hit{stroke:#0000;fill:#0000;cursor:pointer}.plan-wall{stroke:#374151;stroke-width:3px;stroke-linecap:round;pointer-events:none}@media (hover:hover){.plan-wall-group:hover .plan-wall{stroke:var(--accent-hover)}}.plan-house{stroke:#94a3b8;stroke-width:9px;stroke-linecap:butt;pointer-events:none}.plan-railing{stroke:#374151;stroke-width:1.5px;stroke-dasharray:2 5;stroke-linecap:round;pointer-events:none}.plan-wall.selected{stroke:var(--accent);stroke-width:5px}.plan-inert{pointer-events:none;opacity:.55}.plan-existing-layer.passive{pointer-events:none;opacity:.75}.plan-existing{stroke:#64748b;stroke-width:2px;stroke-dasharray:6 4;fill:#64748b1f;cursor:grab}.plan-existing.houseWall{stroke-width:7px;stroke-dasharray:none;stroke-linecap:butt}.plan-existing.fence{fill:none}.plan-existing.tree{fill:#4d7c0f1f;stroke:#65a30d}.plan-existing.selected{stroke:var(--accent)}.plan-existing.misplaced{stroke:#b91c1c}.plan-existing-post{fill:#64748b;pointer-events:none}.plan-existing-opening{stroke-width:7px;stroke-linecap:butt;pointer-events:none}.plan-existing-opening.door{stroke:#a16207}.plan-existing-opening.window{stroke:#38bdf8}.plan-tag.existing{fill:#475569;font-style:italic}.plan-opening{stroke-width:7px;stroke-linecap:butt;pointer-events:none}.plan-opening.window{stroke:#38bdf8}.plan-opening.door{stroke:#a16207}.plan-opening.overheadDoor{stroke:#7c3aed}.plan-opening.stairs{stroke:#16a34a}.plan-stairs{pointer-events:none}.plan-stairs polygon{fill:#16a34a14;stroke:#16a34a;stroke-width:1.5px}.plan-stairs line{stroke:#16a34a;stroke-width:1px;opacity:.6}.plan-stairs .plan-stairs-platform{fill:#c2410c12;stroke-dasharray:4 3}.plan-stairs .plan-stairs-landing{fill:#64748b1a;stroke:#64748b;stroke-dasharray:4 3}.plan-stairs .plan-stairs-arrow{fill:none;stroke:#16a34a;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}.existing .plan-opening{stroke:#64748b}.removed .plan-opening{stroke:#9f1239;stroke-dasharray:3 2}.plan-opening.selected{stroke-width:11px}.plan-corner{fill:#fff;stroke:#374151;stroke-width:2px;pointer-events:none}.plan-corner.selected{fill:var(--accent);stroke:var(--accent)}.plan-corner-group,.plan-opening-group{cursor:grab}.plan-dimension,.plan-tag{text-anchor:middle;dominant-baseline:central;pointer-events:none;paint-order:stroke;stroke:#fbfcfd;stroke-linejoin:round;font-variant-numeric:tabular-nums}.plan-dimension{fill:var(--text);font-weight:600}.plan-dimension.interior{fill:var(--muted);font-weight:500}.plan-tag{fill:var(--muted);font-weight:700}.plan-shape.movable{cursor:move}.plan-interior{stroke:#6b7280;stroke-width:2.5px;stroke-linecap:round;pointer-events:none}.plan-interior.selected{stroke:var(--accent);stroke-width:4px}.plan-interior.new{stroke:var(--accent);stroke-dasharray:6 4}.plan-interior.kept{stroke:#94a3b8;stroke-width:2px}.plan-interior.removed{stroke:#9f1239;stroke-dasharray:6 4}.plan-interior.kept.selected,.plan-interior.removed.selected{stroke:var(--accent);stroke-width:4px}.plan-opening.door.partition-door{stroke:#a16207;stroke-width:5px;stroke-dasharray:none}.plan-overlay .partition-door-fields .plan-fields{grid-template-columns:minmax(0,1fr)}.room-tools,.partition-door-fields{flex-direction:column;gap:.5rem;display:flex}.partition-door-fields{border-top:1px solid var(--border);padding-top:.4rem}.partition-door-fields>button{align-self:flex-start}.structural-notes ul{margin:0;padding-left:1.1rem}.plan-interior-group{cursor:grab}@media (hover:hover){.plan-interior-group:hover .plan-interior{stroke:var(--accent-hover)}}.plan-other{opacity:.5}.plan-other-shape{fill:#c2410c0f;stroke:#9a3412;stroke-width:2px;stroke-dasharray:5 4;cursor:pointer}.plan-other .plan-tag,.plan-context .plan-tag{pointer-events:none}.plan-other-shape.line{fill:none}.plan-context.passive{pointer-events:none}.plan-context.existing .plan-other-shape{fill:#64748b1f;stroke:#64748b;stroke-width:3px;stroke-dasharray:none}.plan-context.removed .plan-other-shape{fill:url(#plan-hatch);stroke:#9f1239;stroke-width:2px;stroke-dasharray:7 4}.plan-hint{background:var(--ink);color:#fff;pointer-events:none;white-space:nowrap;text-overflow:ellipsis;border-radius:999px;max-width:calc(100% - 16px);margin:0;padding:.3rem .7rem;font-size:.78rem;position:absolute;top:8px;left:50%;overflow:hidden;transform:translate(-50%)}.plan-hint.with-action{pointer-events:auto;white-space:normal;border-radius:18px;align-items:center;gap:.5rem;width:max-content;padding-right:.3rem;line-height:1.25;display:flex}.plan-hint.with-action button.tool{flex:none;min-height:32px;padding-block:.15rem}.plan-scale{color:var(--muted);pointer-events:none;font-size:.72rem;position:absolute;top:8px;left:10px}.plan-float{z-index:13;gap:.3rem;display:flex;position:absolute;top:8px;right:8px}.plan-start{text-align:center;pointer-events:none;flex-direction:column;justify-content:center;align-items:center;gap:.4rem;padding:1.5rem;display:flex;position:absolute;inset:0}.plan-start.top{justify-content:flex-start;padding-top:2rem}.plan-start .tool-buttons{justify-content:center;margin-top:.6rem}.plan-start button{pointer-events:auto}.plan-overlay{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:10px;flex-direction:column;gap:.55rem;padding:.65rem .75rem;display:flex}.plan-overlay p{margin:0}.plan-flag{cursor:pointer}.plan-flag-pole{stroke:#7f1d1d;stroke-width:2px;stroke-linecap:round;pointer-events:none}.plan-flag-cloth{fill:#dc2626;stroke:#7f1d1d;stroke-width:1px;stroke-linejoin:round;pointer-events:none}.plan-flag-foot{fill:#7f1d1d;pointer-events:none}.plan-flag.resolved .plan-flag-cloth{fill:#fca5a5}.hold-ring{pointer-events:none;opacity:0;width:64px;height:64px;animation:qb-hold-show 1ms linear calc(var(--hold-ms) * .25) forwards;margin:-32px 0 0 -32px;position:absolute;transform:rotate(-90deg)}.hold-ring circle{fill:#dc262614;stroke:#dc2626;stroke-width:3px;stroke-linecap:round;stroke-dasharray:100;stroke-dashoffset:100px;animation:qb-hold-fill calc(var(--hold-ms) * .75) linear calc(var(--hold-ms) * .25) forwards}@keyframes qb-hold-show{to{opacity:1}}@keyframes qb-hold-fill{to{stroke-dashoffset:0}}.plan-flag.lost .plan-flag-cloth{fill:#fff;stroke:#dc2626;stroke-dasharray:3 2}.plan-flag.selected .plan-flag-pole,.plan-flag.selected .plan-flag-foot{stroke:var(--accent);fill:var(--accent)}.plan-flag.selected .plan-flag-cloth{stroke:var(--accent);stroke-width:2px}.plan-tag.flag{fill:#991b1b;pointer-events:none}.flag-icon{fill:#dc2626}.flag-fields{flex-direction:column;gap:.5rem;display:flex}.flag-fields label{flex-direction:column;gap:.25rem;font-size:.85rem;display:flex}.flag-fields label>input{width:100%}.flag-fields .row{flex-wrap:wrap}.flag-fields .flag-lost{flex-direction:column;gap:.4rem;display:flex}.flag-charge{flex-direction:column;gap:.25rem;font-size:.85rem;display:flex}.flag-charge-input{align-items:center;gap:.5rem}.flag-work,.flag-work-item{flex-direction:column;gap:.5rem;display:flex}.flag-work-item .row{flex-wrap:wrap;align-items:baseline;gap:.5rem}.flag-work-lines input:not([type=checkbox]),.flag-work-lines select{width:100%}.flag-work-lines td.wide{min-width:14rem}.needs-attention h3{color:var(--danger)}.quote-lines tr.fixed-price .line-summary .line-name{font-style:italic}.line-sources summary{cursor:pointer}.line-sources ul{margin:.2rem 0 0;padding-left:1.1rem}.badge.fixed{color:#991b1b;background:#fee2e2;border-radius:999px;margin-left:.35rem;padding:0 .45rem;font-size:.72rem;font-weight:600}.plan-overlay .row{flex-wrap:wrap}.plan-overlay .row strong{white-space:nowrap}.plan-overlay .row select{flex:1;width:auto;min-width:0}.plan-prompt{color:var(--accent-hover);font-size:.85rem;font-weight:500}.plan-measures{flex-wrap:wrap;gap:.35rem 1.1rem;margin:0;display:flex}.plan-measures dt{color:var(--muted);font-size:.7rem}.plan-measures dd{font-variant-numeric:tabular-nums;white-space:nowrap;margin:0;font-size:.92rem;font-weight:600}.plan-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem;display:grid}.existing-fields{grid-template-columns:repeat(auto-fit,minmax(min(100%,10rem),1fr))}.plan-fields>div{flex-direction:column;gap:.2rem;display:flex}.feet-input{gap:.4rem;display:inline-flex}.feet-part{color:var(--muted);align-items:center;gap:.2rem;font-size:.85rem;display:inline-flex}.feet-part input{text-align:right;width:3.6rem}.chip-row{flex-wrap:wrap;gap:.4rem;display:flex}.chip-row>*{flex:none}.chip-row.icons button.tool{flex-direction:column;justify-content:center;gap:.15rem;min-width:4.2rem;min-height:3.6rem;padding:.35rem .5rem;font-size:.72rem;line-height:1.1}.chip-row.icons button.tool svg{width:24px;height:24px}.swatches,.finishes{flex-direction:column;gap:.3rem;display:flex}.finishes{gap:.6rem}.swatches button{white-space:normal;overflow-wrap:anywhere;max-width:100%}.swatch{vertical-align:-.15rem;border:1px solid #00000040;border-radius:50%;width:.9rem;height:.9rem;display:inline-block}.finishes input[type=color]{flex:none;width:3rem;height:2.2rem;padding:.15rem}.existing-name{flex:1;width:auto;min-width:0}.existing-opening{border:1px solid var(--border);border-radius:8px;margin:0;padding:.4rem .6rem .6rem}.existing-opening legend{padding:0 .25rem;font-size:.85rem;font-weight:600}button.chip{background:var(--surface);color:var(--text);border-color:var(--border-strong);white-space:nowrap;border-radius:999px;padding:.4rem .9rem;box-shadow:0 1px 2px #18202f0d}button.chip:hover:not(:disabled){background:var(--accent-soft);color:var(--accent-hover);border-color:#f3c6a5}button.chip.active,button.chip.active:hover:not(:disabled){background:var(--accent);color:#fff;border-color:var(--accent);box-shadow:0 2px 8px #c2410c47,inset 0 1px #ffffff2e}.tabs{border-bottom:1px solid var(--border);gap:.25rem;display:flex}.tabs button,.tabs button:hover:not(:disabled){color:var(--muted);box-shadow:none;background:0 0;border:none;border-bottom:2px solid #0000;border-radius:0;margin-bottom:-1px;padding:.55rem .95rem;transform:none}.tabs button:hover:not(:disabled){color:var(--text);border-bottom-color:var(--border-strong)}.tabs button.active,.tabs button.active:hover:not(:disabled){color:var(--accent);border-bottom-color:var(--accent);font-weight:650}.tabs button:focus-visible{outline:2px solid var(--focus);outline-offset:-2px;border-radius:6px 6px 0 0}.tabs .count{color:var(--text);background:#ebe8e2;border-radius:999px;margin-left:.4rem;padding:0 .45rem;font-size:.72rem;font-weight:600}.tabs button.active .count{background:var(--accent);color:#fff}.editor-header .title{flex:1}.editor-header .title .name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.header-end{align-items:center;gap:.75rem;display:flex}.editor-header button.total,.editor-header button.total:hover:not(:disabled){white-space:nowrap;background:var(--accent-soft);min-height:0;color:var(--accent-hover);box-shadow:none;font-variant-numeric:tabular-nums;border:1px solid #fcdcbf;border-radius:999px;padding:.15rem .75rem;font-size:1.1rem;font-weight:700}.editor-header button.total:hover:not(:disabled){border-color:var(--accent)}.save-chip{color:var(--muted);white-space:nowrap;font-size:.8rem}.save-chip.saved:before{content:"✓ ";color:var(--ok)}button.save-chip.failed,button.save-chip.failed:hover:not(:disabled){color:var(--danger);border-color:var(--danger);background:#fef2f2;padding:.25rem .6rem}.job-row{align-items:center;gap:.5rem;min-width:0;display:flex}.job-row .chip-row{flex:0 auto;min-width:0}.row-end{align-items:center;gap:.5rem;display:flex}button.quote-delete,button.quote-delete:hover:not(:disabled){border-radius:8px;place-items:center;width:30px;height:30px;margin:-5px -6px -5px 0;display:grid}button.quote-delete svg{width:17px;height:17px}button.quote-delete:hover:not(:disabled),button.quote-delete:focus-visible{color:var(--danger);background:#fef2f2}@media (hover:hover){.sidebar li:not(:hover):not(.selected) .quote-delete:not(:focus-visible){opacity:0}}.fields>h3,.summary>h3{grid-column:1/-1}.segmented{background:var(--surface);border:1px solid var(--border-strong);box-shadow:var(--shadow);border-radius:11px;gap:2px;padding:3px;display:inline-flex}.segmented button,.segmented button:hover:not(:disabled){min-height:0;color:var(--text);box-shadow:none;background:0 0;border-color:#0000;border-radius:8px;padding:.3rem .75rem;font-size:.85rem;transform:none}.segmented button:hover:not(:disabled){background:var(--surface-muted)}.segmented button[aria-checked=true],.segmented button[aria-checked=true]:hover:not(:disabled){background:var(--ink);color:#fff}.bottom-sheet{z-index:15;box-sizing:content-box;padding-bottom:env(safe-area-inset-bottom);background:var(--surface);border-top:1px solid var(--border);border-radius:16px 16px 0 0;flex-direction:column;transition:height .24s cubic-bezier(.2,.8,.2,1);display:flex;position:fixed;inset:auto 0 0;box-shadow:0 -6px 24px #18202f24}.bottom-sheet.dragging{transition:none}.sheet-handle{touch-action:none;-webkit-user-select:none;user-select:none;cursor:grab;flex:none;align-items:center;gap:.6rem;height:60px;padding:0 .85rem;display:flex;position:relative}.sheet-handle .grip{background:var(--border-strong);border-radius:999px;width:38px;height:4px;margin-left:-19px;position:absolute;top:7px;left:50%}button.sheet-toggle,button.sheet-toggle:hover:not(:disabled){min-width:0;color:inherit;font:inherit;text-align:left;box-shadow:none;background:0 0;border:none;border-radius:0;flex:1;align-self:stretch;align-items:center;margin:0 -.85rem;padding:.7rem .85rem 0;display:flex;transform:none}button.sheet-toggle:focus-visible{outline:2px solid var(--focus);outline-offset:-3px;border-radius:12px}.sheet-peek{text-overflow:ellipsis;white-space:nowrap;font-variant-numeric:tabular-nums;min-width:0;max-width:100%;display:block;overflow:hidden}.sheet-actions{flex:none;gap:.4rem;padding-top:.7rem;display:flex}.sheet-body{overscroll-behavior:contain;flex-direction:column;flex:1;gap:.7rem;min-height:0;padding:.35rem .85rem 1.25rem;display:flex;overflow-y:auto}.sheet-body>*{flex:none}.sheet-body p{margin:0}.sheet-body .row{flex-wrap:wrap;justify-content:flex-start}.sheet-body .row select{flex:1;width:auto;min-width:0}.sheet-body .chip-row{gap:.3rem;margin:0;padding:0;flex-wrap:wrap!important;overflow:visible!important}.sheet-body .chip-row button.tool{padding-inline:.55rem}.sheet-body .panel>h3{display:none}.sheet-body .panel{border:none;border-top:1px solid var(--border);box-shadow:none;background:0 0;border-radius:0;padding:.75rem 0 0}.sheet-above{pointer-events:none;justify-content:space-between;align-items:flex-end;gap:.5rem;padding:0 .6rem .5rem;display:flex;position:absolute;inset:auto 0 100%}.sheet-above>*{pointer-events:auto}.more-wrap{position:relative}.plan-menu.pop{background:var(--surface);border:1px solid var(--border);width:max-content;max-width:calc(100vw - 1.2rem);box-shadow:var(--shadow-raised);max-height:max(44px, calc(100dvh - var(--sheet-height,0px) - 170px - env(safe-area-inset-bottom)));overscroll-behavior:contain;border-radius:12px;flex-flow:column;align-items:stretch;padding:.5rem;animation:.14s ease-out qb-fade;position:absolute;bottom:calc(100% + 6px);right:0;overflow-y:auto}.plan-menu.pop>*{flex-shrink:0}.add-item{display:contents}.add-menu button.tool{justify-content:flex-start;min-height:44px}.quick-actions{z-index:11;background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-raised);border-radius:24px;flex-direction:column;align-items:center;gap:.3rem;padding:.25rem;animation:.14s ease-out qb-fade;display:flex;position:absolute;transform:translate(-50%,-50%)}.quick-actions button.tool{min-width:44px;min-height:44px;box-shadow:none;border:none;border-radius:999px;justify-content:center;padding:0}.quick-icons{gap:.3rem;display:flex}.quick-turns{border-right:1px solid var(--border);gap:.3rem;margin-right:.05rem;padding-right:.3rem;display:flex}.quick-actions.vertical .quick-turns{border-right:none;border-bottom:1px solid var(--border);flex-direction:column;margin:0 0 .05rem;padding:0 0 .3rem}.quick-turns:last-child{border:none;margin:0;padding:0}.quick-slider{font-variant-numeric:tabular-nums;flex-direction:column;align-items:center;gap:.4rem;padding:.4rem 0;font-size:.8rem;font-weight:650;display:flex}.quick-slider span{text-align:center;min-width:3.4rem}.quick-slider input[type=range]{writing-mode:vertical-lr;accent-color:#795d3b;direction:rtl;width:28px;height:9rem;margin:0}.ground-contours path{fill:none;stroke:#8a6a45;stroke-opacity:.28;stroke-width:1px;vector-effect:non-scaling-stroke}.ground-contours path.major{stroke-opacity:.45;stroke-width:1.4px}.quick-actions.vertical .quick-icons{flex-direction:column}.quick-role{background:var(--surface-sunken,#f1efea);border-radius:999px;align-self:center;gap:2px;padding:2px;display:flex}.quick-actions.vertical .quick-role{border-radius:18px;flex-direction:column}.quick-role button{min-height:40px;font:inherit;color:var(--muted);background:0 0;border:none;border-radius:999px;padding:0 .7rem;font-size:.8rem;font-weight:600}.quick-role button.active{background:var(--surface);color:var(--text,#1a1d23);box-shadow:0 1px 2px #18202f1f}.quick-actions button.tool.danger{color:var(--danger,#b42318)}.quick-actions:not(.vertical) .quick-icons button.tool.danger:not(:first-child){border-left:1px solid var(--border);border-radius:0 999px 999px 0;margin-left:.25rem}.quick-actions.vertical .quick-icons button.tool.danger:not(:first-child){border-top:1px solid var(--border);border-radius:0 0 999px 999px;margin-top:.25rem}.plan-editor.moving .quick-actions{opacity:0;pointer-events:none}.plan-menu.pop.paged{width:min(16rem,100vw - 1.2rem);padding:0;overflow-x:hidden}.add-pages{align-items:flex-start;width:200%;transition:transform .22s;display:flex}.on-structures .add-pages{transform:translate(-50%)}.plan-menu.paged:not(.on-structures) .add-page:last-child,.plan-menu.on-structures .add-page:first-child{max-height:0;padding-block:0;overflow:hidden}.add-page{box-sizing:border-box;flex-direction:column;align-items:stretch;gap:.3rem;width:50%;padding:.5rem;display:flex}.add-menu button.add-group .add-group-arrow{color:var(--muted);margin-left:auto}.add-menu button.add-back{box-shadow:none;background:0 0;border:none;padding-left:.2rem;font-weight:650}@media (prefers-reduced-motion:reduce){.add-pages{transition:none}}.quick-adds{flex-direction:column-reverse;gap:.45rem;display:flex;position:absolute;bottom:calc(100% + .5rem);left:50%;transform:translate(-50%)}.quick-adds button.tool{min-width:44px;min-height:44px;box-shadow:var(--shadow-raised);border-radius:999px;justify-content:center;padding:0;animation:.18s ease-out backwards qb-rise}.quick-adds button.tool:nth-child(2){animation-delay:30ms}.quick-adds button.tool:nth-child(3){animation-delay:60ms}@keyframes qb-rise{0%{opacity:0;transform:translateY(14px)scale(.85)}}.quick-adds button.tool.leaving{pointer-events:none;animation:.18s ease-in forwards qb-sink}.quick-adds button.tool.leaving:nth-child(3){animation-delay:0s}.quick-adds button.tool.leaving:nth-child(2){animation-delay:30ms}.quick-adds button.tool.leaving:first-child{animation-delay:60ms}@keyframes qb-sink{to{opacity:0;transform:translateY(14px)scale(.85)}}.quick-add-icon{place-items:center;animation:.16s ease-out qb-swap;display:grid}@keyframes qb-swap{0%{opacity:0;transform:scale(.6)}}.plan-editor.moving .quick-adds{opacity:0;pointer-events:none}@media (prefers-reduced-motion:reduce){.quick-adds button.tool,.quick-add-icon{animation:none}}button.tool.add-button{border-radius:999px;justify-content:center;min-width:48px;min-height:48px;padding:0}button.tool.add-button:not(.active){background:var(--accent);border-color:var(--accent);color:#fff}button.tool.add-button:not(.active):hover{background:var(--accent-hover);border-color:var(--accent-hover)}.plan-menu.pop.down{z-index:20;max-width:min(280px,100vw - 1.2rem);inset:calc(100% + 6px) 0 auto auto}.plan-menu.pop .group-label{margin:.2rem .15rem 0}.sketch-pane{display:contents}.sketch-pane[hidden]{display:none}.render-backdrop{z-index:40;background:#18202f47;animation:.2s ease-out qb-fade;position:fixed;inset:0}.render-drawer{z-index:41;box-sizing:border-box;background:var(--bg);width:min(760px,100vw);padding:max(.6rem, env(safe-area-inset-top)) max(.75rem, env(safe-area-inset-right)) max(.6rem, env(safe-area-inset-bottom)) .75rem;flex-direction:column;animation:.28s cubic-bezier(.2,.8,.2,1) qb-swing-in;display:flex;position:fixed;top:0;bottom:0;right:0;box-shadow:-8px 0 32px #18202f2e}@keyframes qb-swing-in{0%{transform:translate(100%)}}@media (prefers-reduced-motion:reduce){.render-drawer,.render-backdrop{animation:none}}.render-page{flex-direction:column;flex:1;gap:.5rem;min-width:0;min-height:0;display:flex}.render-bar{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.render-bar h3{margin:0}.render-bar button.tool{justify-content:center;min-width:44px;min-height:44px}.render-view{flex-direction:column;flex:1;gap:.5rem;min-width:0;min-height:0;display:flex}.render-view>p{margin:0}.render-view .rendering-viewer{flex:1;min-height:0}.render-building-notes{font-size:.85rem}.render-building-notes summary{cursor:pointer;color:#8c4a14;align-items:center;min-height:36px;font-weight:600;display:flex}.render-building-notes ul{max-height:30vh;margin:.25rem 0 0;padding-left:1.2rem;overflow:auto}.render-building-notes li p{margin:.15rem 0 .4rem}.proposal-view .rendering-viewer.bare{border-radius:var(--radius);overflow:hidden}.proposal-view .rendering-viewer.bare .rv-stage{flex:none;height:clamp(320px,100dvh - 260px,680px)}.line-summary{display:none}.customer-items{flex-direction:column;gap:.5rem;display:flex}.customer-items ul{flex-direction:column;gap:.4rem;margin:0;padding:0;list-style:none;display:flex}.customer-items .customer-item-row{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);min-height:3.25rem;box-shadow:var(--shadow);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.5rem;padding:.25rem .9rem .25rem .25rem;display:grid}.customer-items .customer-item-check{cursor:pointer;justify-content:center;align-items:center;width:44px;height:44px;display:flex}.customer-items input[type=checkbox]{width:1.5rem;height:1.5rem;accent-color:var(--accent);margin:0}.customer-items .customer-item-name{overflow-wrap:anywhere;flex-direction:column;font-weight:500;display:flex}.customer-items .customer-item-amount{text-align:right;flex-direction:column;align-items:flex-end;display:flex}.customer-items li.deselected .customer-item-row{background:var(--surface-muted);box-shadow:none}.customer-items li.deselected .customer-item-name{color:var(--muted);text-decoration:line-through}.customer-items li{flex-direction:column;display:flex}.customer-items .customer-item-remove{align-self:flex-end;min-height:44px;padding:.35rem .5rem}.customer-items .customer-item-add{align-self:flex-start;min-height:44px}.add-item-dialog label{flex-direction:column;gap:.25rem;display:flex}.customer-items-total{justify-content:space-between;align-items:baseline;margin:.25rem 0 0;padding:0 .9rem;font-size:1.1rem;display:flex}.since-sent{color:var(--muted);font-size:.8rem;font-weight:600}.since-sent.up{color:var(--accent-hover)}.since-sent.down{color:var(--ok)}.customer-items-sent{color:var(--muted);justify-content:space-between;align-items:baseline;gap:.75rem;margin:0;padding:0 .9rem;font-size:.9rem;display:flex}.since-sent-dropped{flex-direction:column;gap:.25rem;margin:0;padding:0 .9rem;list-style:none;display:flex}.since-sent-dropped li{color:var(--muted);text-decoration:line-through;-webkit-text-decoration-color:var(--border-strong);text-decoration-color:var(--border-strong);justify-content:space-between;gap:.75rem;display:flex}.since-sent-dropped .since-sent{text-decoration:none}.list-filters{gap:.5rem;padding:0 1rem .75rem;display:flex}.list-filters select{text-transform:capitalize;width:auto}@media (width>=1024px){.plan-editor.desk .plan-menu.pop{z-index:20;max-height:max(44px,100dvh - 300px);inset:calc(100% + 6px) auto auto 0}.plan-editor.desk .plan-menu.pop.down{left:auto;right:0}.plan-editor.desk .add-menu button.tool{min-height:34px}.plan-stage{grid-template-columns:minmax(0,1fr) 290px;align-items:start;gap:1rem;display:grid}.plan-start{right:calc(290px + 1rem)}.plan-hint,.plan-stage>.removed-status{left:calc(50% - 145px - .5rem)}.plan-float{right:calc(298px + 1rem)}.plan-editor.desk .plan-canvas{height:clamp(520px,62vh,820px)}.plan-editor.desk .plan-overlay{overscroll-behavior:contain;max-height:clamp(520px,62vh,820px);overflow-y:auto}}.plan-tables{grid-template-columns:repeat(auto-fit,minmax(min(640px,100%),1fr));align-items:start;gap:1rem;margin-top:.5rem;display:grid}.plan-tables .panel{gap:.5rem;overflow-x:auto}table.compact th,table.compact td{padding:.3rem .5rem}table.compact select{width:auto}.plan-tables input.outline-name{width:100%;min-width:6.5rem}.plan-tables th{white-space:normal}.plan-tables td.money{white-space:nowrap}@media (width<=1199px){.plan-tables .around{display:none}}table.compact .feet-part input{width:3.4rem;padding:.25rem .4rem}.lines tr.selected td{background:var(--accent-soft)}@media (width>=1024px){.quote-lines td[data-label=Description]{width:40%}}@media (width<=1023px){:root{--tabbar:calc(60px + env(safe-area-inset-bottom))}.app{padding-bottom:var(--tabbar)}.topnav{z-index:20;height:var(--tabbar);padding:0 0 env(safe-area-inset-bottom);border-top:1px solid var(--ink-raised);background:var(--ink);gap:0;position:fixed;inset:auto 0 0}.topnav .brand{display:none}.topnav .tab{border-radius:0;flex-direction:column;flex:1;gap:.15rem;height:100%;padding:.35rem 0 .25rem;font-size:.7rem;font-weight:500;position:relative}.topnav .tab svg{width:22px;height:22px}.topnav .tab.active{box-shadow:none;color:#fdba74;background:0 0}.topnav .tab.active:before{content:"";background:var(--accent-bright);border-radius:0 0 3px 3px;width:28px;height:3px;margin-left:-14px;position:absolute;top:-1px;left:50%}.topnav .tab:hover:not(.active){background:0 0}input,select,textarea{padding:.55rem .65rem;font-size:16px}input.short{width:100%}button,label.button{min-height:44px}button.small{min-height:38px}button.link,button.link:hover:not(:disabled){min-height:44px;margin-block:-13px}.find-links{flex-wrap:wrap;align-items:center;column-gap:.25rem;display:flex}.find-links button.link,.find-links button.link:hover:not(:disabled){margin-block:0}button.quote-delete,button.quote-delete:hover:not(:disabled){width:44px;height:44px;margin:-13px -12px -13px 0}.layout{grid-template-columns:minmax(0,1fr)}.layout.show-detail .sidebar,.layout:not(.show-detail)>main{display:none}.sidebar{border-right:none}.sidebar header{background:var(--surface);z-index:2;position:sticky;top:0}.sidebar li{padding:.9rem 1rem}.back{text-align:left;margin:0 0 .25rem;font-size:1rem;display:inline-block;color:var(--accent)!important;text-decoration:none!important}main{padding:.75rem .85rem 2rem}.editor{gap:1rem}.editor-header{border-bottom:1px solid var(--border);gap:.35rem;margin:-.75rem -.85rem 0;padding:.3rem .85rem .3rem .35rem;flex-wrap:nowrap!important}.editor-header button.back,.editor-header button.back:hover:not(:disabled){border-radius:10px;flex:none;place-items:center;width:40px;height:40px;margin:0;display:grid}.editor-header .back svg{width:22px;height:22px}.editor-header .title{flex:0 auto;align-items:baseline;gap:.45rem;min-width:0;overflow:hidden}.editor-header h2{white-space:nowrap;flex:none;font-size:1.05rem}.editor-header .save-chip{flex:none}.editor-header .save-chip:not(.saved):not(.failed){font-size:0}.editor-header .save-chip:not(.saved):not(.failed):before{content:"●";color:var(--accent-bright);font-size:.7rem}.editor-header .quote-word{display:none}.header-end{display:contents}.editor-header .save-chip{order:1}.editor-header .save-chip.saved{font-size:0}.editor-header .save-chip.saved:before{content:"✓";font-size:.9rem}.editor-header button.total{order:2;margin-left:auto;padding:.1rem .65rem;font-size:1rem}.app.in-quote .topnav{display:none}.quote-editor{gap:.6rem}.app.in-quote{padding-bottom:env(safe-area-inset-bottom)}.segmented button,.room-tools label.checkbox{min-height:44px}.room-tools input[type=checkbox]{width:22px;height:22px}.plan-float button.tool{justify-content:center;min-width:44px;min-height:44px}.tabs{margin:0 -.85rem;padding:0 .4rem}.tabs button{white-space:nowrap;flex:1;min-height:42px;padding:.5rem .25rem}.chip-row{scrollbar-width:none;flex-wrap:nowrap;margin:0 -.85rem;padding:0 .85rem;overflow-x:auto}.chip-row::-webkit-scrollbar{display:none}.feet-part input{width:4rem}.list-filters input{flex:1}.editor header{flex-wrap:wrap}.panel{border-radius:10px;padding:.9rem}.fields{grid-template-columns:minmax(0,1fr)}.summary{grid-template-columns:minmax(0,1fr);gap:1rem}.summary dl{order:-1}.summary>h3{order:-2}.param-grid{grid-template-columns:minmax(0,1fr);gap:0}.param-grid label{border-top:1px solid var(--border);color:var(--text);flex-direction:row;justify-content:space-between;align-items:center;gap:.75rem;padding:.45rem 0;font-size:.92rem}.param-grid label:first-child{border-top:none}.param-name small{color:var(--muted)}.param-value{flex:none;width:7.5rem}.param-value:has(select){width:11rem}.plan-hint{top:56px}.plan-start.top{padding-top:3.75rem}.plan-toolbar{gap:.35rem}.filters{flex-direction:column;align-items:stretch}.filters input,.filters select{width:100%;max-width:none}.filter-choices{flex-direction:column}.actions.wrap{flex-wrap:wrap}.actions select{flex:1}table.stack,table.stack tbody{box-shadow:none;background:0 0;border:none;display:block;overflow:visible}table.stack thead{display:none}table.stack tbody{flex-direction:column;gap:.6rem;display:flex}table.stack tr{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:10px;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem .75rem;padding:.8rem;display:grid}table.stack tr.from-template{background:#fafaf9}table.stack td{border:none;min-width:0;padding:0;display:block;background:0 0!important}table.stack td.wide{grid-column:1/-1}table.stack td[data-label]:before{content:attr(data-label);color:var(--muted);text-transform:uppercase;letter-spacing:.03em;margin-bottom:.2rem;font-size:.72rem;font-weight:600;display:block}table.stack td.money{text-align:left;font-weight:600}table.stack td.line-remove{text-align:right;grid-column:1/-1}table.stack td:empty{display:none}table.preview td{padding:.45rem}table.quote-lines tbody{gap:.4rem}table.quote-lines tr{grid-template-columns:repeat(3,minmax(0,1fr));padding:0}table.quote-lines tr:not(.open) td:not(.line-summary){display:none}table.quote-lines td.line-summary{order:-2;grid-column:1/-1;display:block}button.line-toggle,button.line-toggle:hover:not(:disabled){width:100%;min-height:0;color:inherit;text-align:left;box-shadow:none;background:0 0;border:none;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.1rem .75rem;padding:.65rem .8rem;font-weight:400;display:grid;transform:none}.line-toggle .line-name{font-weight:500}.line-toggle .muted{grid-row:2}.line-toggle .money{grid-area:1/2/span 2}table.quote-lines tr.open{padding:0 .8rem .8rem}table.quote-lines tr.open td.line-summary{border-bottom:1px solid var(--border);margin:0 -.8rem}table.quote-lines tr.open td[data-label=Cost],table.quote-lines tr.open .line-flags .badge{display:none}table.quote-lines td[data-label=Description]{order:-1}table.quote-lines td[data-label=Category],table.quote-lines td[data-label=Taxable],table.quote-lines td[data-label=Cost]{order:1}table.quote-lines td.line-remove{order:2;margin-top:-.25rem}}@media (width<=1023px) and (height>=520px),(width<=1023px) and (orientation:landscape){html:has(.quote-editor.on-sketch){overscroll-behavior:none}.quote-editor.on-sketch{padding:0 .85rem;position:fixed;inset:0;overflow:hidden}.on-sketch .editor-header{margin-top:0}.on-sketch .plan-editor{flex:1;min-height:0}.on-sketch .plan-stage{flex-direction:column;flex:1;min-height:0;display:flex}.on-sketch .plan-canvas{flex:1 1 0;height:auto;min-height:0}.on-sketch .job-hint{display:none}.job-row .chip-row{margin-right:0;padding-right:.2rem}}@media (width<=1023px) and (height<=519px) and (orientation:landscape){:root{--side-sheet:min(340px, 42vw)}.quote-editor.on-sketch{right:var(--side-sheet);gap:.35rem}.on-sketch .editor-header{padding-block:.1rem}.on-sketch .tabs button{min-height:36px;padding-block:.3rem}.bottom-sheet.side{width:var(--side-sheet);box-sizing:border-box;height:auto;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) 0;border-top:none;border-left:1px solid var(--border);border-radius:0;inset:0 0 0 auto;box-shadow:-6px 0 24px #18202f1f}.bottom-sheet.side .sheet-handle{cursor:default;touch-action:auto;height:52px}.bottom-sheet.side .sheet-peek{flex:1}.bottom-sheet.side .sheet-actions{padding-top:0}.bottom-sheet.side .sheet-above{width:calc(100vw - var(--side-sheet) - 1.7rem);margin-right:.85rem;padding:0 0 .6rem;inset:auto 100% 0 auto}.bottom-sheet.side .plan-menu.pop{max-height:calc(100dvh - 140px)}}.demo-banner{color:#78350f;text-align:center;background:#fef3c7;border-bottom:1px solid #fcd34d;padding:.4rem 1rem;font-size:.82rem}.demo-banner button.link{color:inherit;margin:0}@media (width<=1023px){.app.in-quote .demo-banner{display:none}}.customer-name{flex-direction:column;gap:.25rem;display:flex;position:relative}.suggestions{z-index:10;background:var(--surface);border:1px solid var(--border);border-radius:8px;margin:0;padding:.25rem;list-style:none;position:absolute;top:3.6rem;left:0;right:0;box-shadow:0 6px 20px #1018281f}.suggestions button,.suggestions button:hover:not(:disabled){width:100%;color:var(--text);text-align:left;box-shadow:none;background:0 0;border:none;border-radius:6px;flex-direction:column;align-items:flex-start;gap:.1rem;padding:.45rem .6rem;font-weight:400;display:flex}.suggestions button:hover:not(:disabled),.suggestions [aria-selected=true] button{background:var(--accent-soft)}.suggestions .add-customer{border-top:1px solid var(--border);margin-top:.25rem;padding-top:.25rem}.suggestions .add-customer strong{color:var(--accent)}.customer-card{background:var(--surface);border:1px solid var(--border);border-radius:8px;align-items:flex-start;gap:.5rem;padding:.5rem .5rem .5rem .75rem;display:flex}.customer-card-body{flex-direction:column;flex:1;align-items:flex-start;min-width:0;display:flex}.customer-card-body strong{overflow-wrap:anywhere}.customer-card dl{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:.35rem 1rem;width:100%;margin:.5rem 0;display:grid}.customer-card dt{color:var(--muted);font-size:.75rem}.customer-card dd{overflow-wrap:anywhere;white-space:pre-line;margin:0}.customer-card button.link{color:var(--accent);margin:0}.customer-card>button.tool{flex:none;justify-content:center;min-width:44px;min-height:44px}.customer-dialog label{flex-direction:column;gap:.25rem;display:flex}.invoice-totals{font-variant-numeric:tabular-nums;flex-wrap:wrap;gap:.5rem 2rem;margin:0;display:flex}.invoice-totals dt{color:var(--muted);font-size:.75rem}.invoice-totals dd{margin:0;font-weight:600}.invoice-actions{flex-wrap:wrap;justify-content:flex-end;gap:.35rem;display:flex}.invoice-new{border-top:1px solid var(--border);flex-direction:column;gap:.5rem;padding-top:.75rem;display:flex}.invoice-new .from-plan{padding:.4rem 0}.plain-list{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}button.list-button,button.list-button:hover:not(:disabled){border:none;border-top:1px solid var(--border);width:100%;color:var(--text);text-align:left;box-shadow:none;background:0 0;border-radius:0;grid-template-columns:minmax(0,1fr) auto auto;gap:1rem;padding:.55rem .25rem;font-weight:400;display:grid;transform:none}button.list-button:hover:not(:disabled){background:var(--surface-muted)}.editor.accuracy{margin-top:1.25rem}.auth-screen{background:radial-gradient(ellipse 60% 45% at 50% 0%, #f9731621, transparent 70%), linear-gradient(#18202f0b 1px, transparent 1px) 0 0 / 24px 24px, linear-gradient(90deg, #18202f0b 1px, transparent 1px) 0 0 / 24px 24px, var(--bg);flex-direction:column;justify-content:center;align-items:center;gap:1rem;min-height:100dvh;padding:2rem 1rem;display:flex}.auth-card{background:var(--surface);border:1px solid var(--border);width:min(100%,26rem);box-shadow:0 12px 32px #18202f1a, var(--shadow);border-radius:18px;flex-direction:column;gap:1.1rem;padding:2rem 1.75rem 1.6rem;display:flex}.auth-card p{margin:0}.auth-brand{text-align:center;flex-direction:column;align-items:center;gap:.7rem;display:flex}.auth-brand .brand-mark{border-radius:14px;width:52px;height:52px}.auth-brand .brand-mark svg{color:#fff;width:28px;height:28px}.auth-brand h1{font-size:1.5rem}.auth-lede{text-align:center;color:var(--muted)}.auth-points{background:var(--surface-muted);border:1px solid var(--border);border-radius:12px;flex-direction:column;gap:.45rem;margin:0;padding:.85rem 1rem;font-size:.9rem;list-style:none;display:flex}.auth-points li{align-items:flex-start;gap:.55rem;display:flex}.auth-points li:before{content:"";background:var(--accent-soft) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23c2410c' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 12.5 4 4 8-9'/%3E%3C/svg%3E") center / 12px no-repeat;border-radius:50%;flex:none;width:18px;height:18px;margin-top:.1rem}.auth-card>.muted.small{text-align:center}.google-button{color:#1f1f1f;background:#fff;border:1px solid #c9ccd1;border-radius:12px;justify-content:center;align-items:center;gap:.7rem;min-height:48px;padding:.7rem 1rem;font-weight:600;text-decoration:none;transition:background-color .15s,box-shadow .15s,border-color .15s,transform 80ms;display:flex;box-shadow:0 1px 2px #18202f14}.google-button:hover{box-shadow:var(--shadow-raised);background:#f8f9fa;border-color:#aeb3ba}.google-button:active{transform:translateY(1px)}.google-button:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.auth-legal{color:var(--muted);margin:0}.auth-legal a{color:var(--muted)}.auth-legal a:hover{color:var(--accent)}@keyframes qb-spin{to{transform:rotate(360deg)}}.loading{justify-content:center;align-items:center;gap:.6rem;display:flex}.loading:before{content:"";border:2px solid var(--border-strong);border-top-color:var(--accent);border-radius:50%;width:16px;height:16px;animation:.7s linear infinite qb-spin}.context-bar{background:var(--ink);color:#b8c0cc;border-bottom:1px solid #ffffff12;align-items:center;gap:.75rem;padding:.4rem 1rem;font-size:.85rem;display:flex}.context-bar .initial{background:hsl(var(--hue) 60% 52%);color:#fff}button.company-switch,button.company-switch:hover:not(:disabled){color:#fff;min-width:0;box-shadow:none;background:#ffffff0f;border:1px solid #ffffff17;border-radius:999px;align-items:center;gap:.55rem;padding:.2rem .7rem .2rem .25rem;font-size:.85rem;display:inline-flex}button.company-switch:hover:not(:disabled){background:#ffffff1f}.company-switch strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.auth-account{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.55rem;min-width:0;display:flex}.auth-account .email{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.auth-account button.link{color:#fdba74;margin:0}.auth-account .error{color:#fca5a5}.caret{color:#9aa4b2;transition:transform .15s;display:grid}.caret svg{width:15px;height:15px}.company-switch[aria-expanded=true] .caret{transform:rotate(180deg)}.company-switch .dot{background:var(--accent-bright);width:8px;height:8px;box-shadow:0 0 0 2px var(--ink);border-radius:50%}.company-menu{min-width:0;position:relative}.menu{z-index:30;background:var(--surface);width:300px;max-width:calc(100vw - 2rem);color:var(--text);border:1px solid var(--border);transform-origin:0 0;overscroll-behavior:contain;border-radius:14px;flex-direction:column;max-height:min(34rem,100dvh - 5rem);padding:.35rem;animation:.14s ease-out qb-pop;display:flex;position:absolute;top:calc(100% + 6px);left:0;overflow-y:auto;box-shadow:0 16px 40px #18202f2e,0 2px 6px #18202f14}.menu>*{flex-shrink:0}.menu hr{border:none;border-top:1px solid var(--border);margin:.35rem .25rem}.menu-label{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:.35rem .6rem .25rem;font-size:.7rem;font-weight:650}.menu-error{margin:.25rem .6rem}button.menu-item,button.menu-item:hover:not(:disabled){width:100%;min-height:0;color:var(--text);text-align:left;box-shadow:none;background:0 0;border:none;border-radius:9px;align-items:center;gap:.65rem;padding:.5rem .6rem;font-weight:400;display:flex;transform:none}button.menu-item:hover:not(:disabled),button.menu-item:focus-visible{background:var(--accent-soft)}button.menu-item:focus-visible{outline:2px solid var(--focus);outline-offset:-2px}.menu-item .who{flex:1}.menu-item .tick{color:var(--accent);display:grid}.menu-item .tick svg{width:18px;height:18px}.menu-icon{width:24px;height:24px;color:var(--accent);flex:none;place-items:center;display:grid}.menu-icon svg{width:18px;height:18px}.menu-item .count{background:var(--accent);color:#fff;border-radius:999px;padding:0 .45rem;font-size:.72rem;font-weight:650}.context-bar .menu .initial{background:hsl(var(--hue) 70% 92%);color:hsl(var(--hue) 55% 30%)}.editor header.page-head{flex-direction:column;justify-content:flex-start;align-items:flex-start;gap:.2rem}.page-head p,.people-page .banner{margin:0}.people{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.person{border-top:1px solid var(--border);align-items:center;gap:.8rem;min-width:0;padding:.7rem 0;display:flex}.person:first-child{border-top:none;padding-top:.2rem}.person .who{flex:1}.person.current .initial{box-shadow:0 0 0 2px var(--surface), 0 0 0 4px var(--accent)}.you{color:#075985;vertical-align:.1em;background:#e0f2fe;border-radius:999px;margin-left:.45rem;padding:0 .45rem;font-size:.7rem;font-weight:650}.role{color:#4b5563;white-space:nowrap;background:#eef0f3;border-radius:999px;padding:.05rem .55rem;font-size:.75rem;font-weight:600}.role.owner{background:var(--accent-soft);color:var(--accent-hover)}.initial.pending{background:var(--surface-muted);color:var(--muted);border:1.5px dashed var(--border-strong)}.initial.pending svg{width:18px;height:18px}.email-name{white-space:nowrap;min-width:0;max-width:100%;display:flex}.email-name .local{text-overflow:ellipsis;flex:0 auto;min-width:4ch;font-weight:650;overflow:hidden}.email-name .domain{color:var(--muted);flex:none}.email-name .domain.long{text-overflow:ellipsis;flex:0 1000 auto;min-width:9ch;overflow:hidden}.meta{flex-wrap:wrap;align-items:center;gap:.25rem .5rem;margin-top:.25rem;display:flex}.meta>*{white-space:nowrap}.meta .you{margin-left:0}.swipe-hint{margin:-.25rem 0 0}.swipe-row.person{padding:0;display:block;position:relative;overflow:hidden}.swipe-content{touch-action:pan-y;-webkit-user-select:none;user-select:none;cursor:pointer;align-items:center;gap:.8rem;padding:.7rem 0;display:flex}.swipe-row:first-child .swipe-content{padding-top:.2rem}.swipe-content:focus-visible{outline:2px solid var(--focus);outline-offset:-2px;border-radius:8px}.swipe-actions{z-index:1;background:linear-gradient(90deg, transparent, var(--surface) 1.4rem);padding:.4rem 0 .4rem 1.6rem;transition:transform .22s cubic-bezier(.2,.8,.2,1);display:flex;position:absolute;top:0;bottom:0;right:0}.swipe-row.dragging .swipe-actions{transition:none}.swipe-row:first-child .swipe-actions{padding-top:0}button.swipe-action,button.swipe-action:hover:not(:disabled){min-width:92px;height:100%;min-height:0;box-shadow:none;border-radius:10px;padding:0 1rem;font-weight:650;transform:none}button.swipe-action.danger:not(.filled){color:var(--danger);background:#fee2e2;border-color:#fee2e2}.person.pending .email-name .local{color:var(--muted);font-weight:600}.role.pending{color:#92400e;background:#fef3c7;align-items:center;gap:.25rem;display:inline-flex}.role.pending svg{width:12px;height:12px}button.danger.filled{background:var(--danger);border-color:var(--danger);color:#fff}button.danger.filled:hover:not(:disabled){background:#991b1b;border-color:#991b1b}.row-actions,.invitation-actions{flex:none;align-items:center;gap:.4rem;display:flex}.row-actions .badge{margin:0}form.rename{flex:1;align-items:center;gap:.4rem;min-width:0;display:flex}form.rename input{flex:1;min-width:0}.initial{background:hsl(var(--hue) 70% 92%);width:40px;height:40px;color:hsl(var(--hue) 55% 30%);border-radius:11px;flex:none;place-items:center;font-size:1.05rem;font-weight:700;display:grid}.initial.small{border-radius:999px;width:24px;height:24px;font-size:.72rem}.company-picker{flex-direction:column;gap:1.25rem;max-width:40rem;margin:0 auto;padding:2rem 1rem 4rem;display:flex}.company-picker p{margin:0}button.back-link{color:var(--accent);align-self:flex-start;text-decoration:none}.picker-head{align-items:center;gap:1rem;display:flex}.picker-head .brand-mark{border-radius:13px;flex:none;width:48px;height:48px}.picker-head .brand-mark svg{color:#fff;width:26px;height:26px}.picker-head h1{font-size:1.5rem}.picker-section{flex-direction:column;gap:.6rem;display:flex}.picker-section h2{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-size:.75rem;font-weight:650}.company-list{gap:.6rem;display:grid}button.company-card,button.company-card:hover:not(:disabled){text-align:left;background:var(--surface);width:100%;color:var(--text);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:.9rem;padding:.8rem 1rem;font-weight:400;display:grid}button.company-card:hover:not(:disabled){box-shadow:var(--shadow-raised);border-color:#f3c6a5;transform:translateY(-1px)}button.company-card.current{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-ring)}.company-card .badge{margin:0}.who{flex-direction:column;gap:.05rem;min-width:0;display:flex}.who strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.chevron{color:var(--muted);transition:transform .15s,color .15s;display:grid}.chevron svg{width:18px;height:18px}.company-card:hover:not(:disabled) .chevron{color:var(--accent);transform:translate(2px)}.company-invitation{background:linear-gradient(135deg, var(--accent-soft), var(--surface) 70%);border-radius:var(--radius);border:1px solid #fcdcbf;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.9rem;padding:.8rem 1rem;display:grid}.picker-form{gap:.9rem}.inline-field{align-items:flex-end;gap:.6rem;display:flex}.inline-field label{color:var(--muted);flex-direction:column;flex:1;gap:.25rem;font-size:.85rem;display:flex}.inline-field button{white-space:nowrap}.banner{border-radius:9px;padding:.6rem .9rem}.error.banner{background:#fef2f2;border:1px solid #fecaca}.success{color:#166534}.success.banner{background:#f0fdf4;border:1px solid #bbf7d0}.privacy-page{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);max-width:48rem;box-shadow:var(--shadow);margin:2rem auto;padding:2rem 2.5rem 2.5rem;line-height:1.65}.privacy-page>a:first-child{color:var(--ink);font-weight:700;text-decoration:none}.privacy-page>a:first-child:before{content:"‹ ";color:var(--accent)}.privacy-page h1{margin-top:1.5rem;font-size:1.75rem}.privacy-page h2{margin-top:1.75rem;font-size:1.15rem}.plan-tables>section:first-child{grid-column:1/-1}.factor .option{flex-wrap:wrap}@media (width<=1023px){.auth-account .email{display:none}body:has(.app.in-quote) .context-bar{display:none}.inline-field{flex-direction:column;align-items:stretch}.company-invitation{grid-template-columns:auto minmax(0,1fr)}.invitation-actions{grid-column:1/-1}.invitation-actions button{flex:1}.menu{width:auto;max-width:none;max-height:calc(100dvh - 4.5rem - var(--tabbar));margin-top:6px;position:fixed;top:auto;left:.5rem;right:.5rem}.people:not(.team) .person{grid-template-columns:auto minmax(0,1fr) auto;gap:.5rem .8rem;display:grid}.person .who strong{white-space:normal;overflow-wrap:anywhere}.person .row-actions,form.rename{grid-column:2/-1;justify-self:start}.people.team .person>button{min-height:34px;padding:.25rem .7rem;font-size:.82rem}form.rename{justify-self:stretch}.company-picker{padding-top:1.25rem}.privacy-page{box-shadow:none;border:none;border-radius:0;margin:0;padding:1.25rem 1.1rem 2rem}}.settings{gap:1rem}.settings-section{gap:1rem;padding:1.15rem 1.35rem 1.35rem}.section-head{align-items:flex-start;gap:.8rem;display:flex}.section-head>div{flex-direction:column;gap:.2rem;padding-top:.15rem;display:flex}.section-icon{background:var(--accent-soft);width:34px;height:34px;color:var(--accent);border:1px solid #fcdcbf;border-radius:10px;flex:none;place-items:center;display:grid}.section-icon svg{width:18px;height:18px}.letterhead{border:1px solid var(--border);border-bottom:2px solid var(--ink);box-shadow:var(--shadow-raised);color:var(--muted);background:#fff;border-radius:10px;justify-content:space-between;gap:1rem;padding:1.1rem 1.25rem 1rem;font-size:.78rem;line-height:1.5;display:flex}.letterhead>div{flex-direction:column;min-width:0;display:flex}.letterhead .company{color:var(--ink);overflow-wrap:anywhere;margin-bottom:.15rem;font-size:1.15rem}.letterhead .company.unset{color:#b8bcc4;font-style:italic;font-weight:600}.letterhead .contact{overflow-wrap:anywhere}.letterhead .doc{text-align:right;flex:none;align-items:flex-end}.letterhead .doc strong{color:var(--accent);letter-spacing:.02em;font-size:1.2rem}.save-bar{z-index:5;background:color-mix(in srgb, var(--surface) 92%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);flex-wrap:wrap;align-items:center;gap:.6rem;margin:0 -.5rem;padding:.7rem .75rem;transition:border-color .2s,box-shadow .2s;display:flex;position:sticky;bottom:0}.save-bar.dirty{box-shadow:var(--shadow-raised), 0 0 0 3px var(--accent-ring);border-color:#f3c6a5}.save-bar .error{flex-basis:100%}.save-bar .save-chip:not(.saved):before{content:"● ";color:var(--accent-bright)}@media (width<=1023px){.settings-section{padding:.95rem}.save-bar{bottom:calc(var(--tabbar) + .5rem);margin:0}.letterhead{flex-direction:column}.letterhead .doc{text-align:left;align-items:flex-start}}@keyframes qb-enter{0%{opacity:0;transform:translateY(6px)}}@keyframes qb-fade{0%{opacity:0}}@keyframes qb-pop{0%{opacity:0;transform:translateY(-4px)scale(.98)}}main>:not(.quote-editor){animation:.22s ease-out qb-enter}main>.quote-editor{animation:.18s ease-out qb-fade}.quote-editor>.tabs~*,.sketch-pane>*{animation:.2s ease-out qb-enter}.sketch-pane>.plan-editor{animation:.2s ease-out qb-fade}.plan-overlay>*{animation:.15s ease-out qb-fade}.suggestions{transform-origin:top;animation:.14s ease-out qb-pop}details[open]>:not(summary){animation:.18s ease-out qb-enter}details>summary{transition:color .15s}details>summary:hover{color:var(--accent)}.save-chip{transition:color .2s}@media (width<=1023px){.layout:not(.show-detail)>.sidebar{animation:.18s ease-out qb-fade}table.quote-lines tr.open>td:not(.line-summary){animation:.18s ease-out qb-enter}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}.agreement-fields{border:0;min-width:0;margin:0;padding:0}.quote-workflow label{gap:.35rem;margin-bottom:.75rem;display:grid}.quote-cancel{margin-top:1rem}.quote-cancel summary{cursor:pointer;margin-bottom:.75rem}.version-record{border-top:1px solid var(--border,#d8dce0);overflow-wrap:anywhere;padding:.75rem 0}.status.design{background:#e5e7eb}.status.proposal{background:#dbeafe}.status.contract,.status.in_progress{background:#dcfce7}.status.complete,.status.closed{background:#e0e7ff}.status.declined,.status.cancelled{background:#fee2e2}.sketch-pane:disabled svg{pointer-events:none}.upgrade-layer.passive{pointer-events:none;opacity:.65}.upgrade>polygon,.upgrade>circle,.upgrade>polyline:not(.plan-hit){fill:#d6e5d7;stroke:#476a4b;stroke-width:2px;vector-effect:non-scaling-stroke;cursor:move}.upgrade>polyline:not(.plan-hit){fill:none}.upgrade.selected>polygon,.upgrade.selected>circle,.upgrade.selected>polyline:not(.plan-hit){stroke:#2563eb}.upgrade-fields{gap:10px;display:grid}.upgrade-fields input[type=number]{min-width:0;max-width:100%}.upgrade-points{gap:8px;display:grid}.upgrade-table{margin-top:1rem}.upgrade-table .table-scroll{overflow-x:auto}.upgrade-table td .row{flex-wrap:wrap}.plan-cabinets{cursor:pointer}.cabinet-footprint{fill:#d7b890;fill-opacity:.65;stroke:#8d6038;stroke-width:2px}.cabinet-footprint.upper{fill:#f2dbc1;fill-opacity:.35;stroke-dasharray:5 3}.cabinet-top{fill:#f6ead9;fill-opacity:.6;stroke:#8d6038;stroke-width:1.5px;stroke-dasharray:4 3}.plan-cabinets.selected .cabinet-footprint{stroke:var(--accent,#c65c22);stroke-width:3px}.plan-cabinets.detached .cabinet-footprint{stroke:var(--danger);stroke-dasharray:6 4}.plan-cabinets.detached .plan-tag{fill:var(--danger)}.plan-tag.wall-number{fill:var(--accent-hover)}.cabinet-tools{grid-template-columns:minmax(0,1fr);gap:.6rem;min-width:0;display:grid}.cabinet-tools fieldset{border:1px solid #d6d1c9;min-width:0;margin:.7rem 0;padding:.65rem}.cabinet-tools select{max-width:100%}.cabinet-tools summary{cursor:pointer;padding:.65rem 0}.cabinet-counter{gap:.6rem;display:grid}.cabinet-counter p{align-items:baseline;margin:0}.counter-cutouts span{flex:1}.counter-cutouts output{text-align:center;min-width:1.5rem;font-weight:600}.counter-cutouts button.tool{justify-content:center;min-width:44px;min-height:44px;font-size:1.1rem}.cabinet-list{gap:.5rem;margin:.6rem 0;display:grid}.plan-float{flex-wrap:wrap;justify-content:flex-end;max-width:calc(100% - 110px)}.row.nowrap{flex-wrap:nowrap}.sheet-body .upgrade-fields>.row:first-child strong{display:none}.upgrade-table td .row{flex-wrap:nowrap;align-items:center;gap:.3rem}.upgrade-table td .row input{width:4.5rem}.upgrade-table td .row .feet-input{flex:none}.plan-start.top>strong,.plan-start.top>.small{background:#fbfcfdeb;border-radius:8px;padding:.15rem .5rem}.milestone-editor{min-width:0;margin:1rem 0}.milestone-row{grid-template-columns:minmax(0,1fr) 90px auto;align-items:end;gap:10px;margin-bottom:12px;display:grid}.milestone-row input{width:100%;min-width:0}@media (width<=600px){.milestone-row{grid-template-columns:minmax(0,1fr) 80px}.milestone-row button{grid-column:1/-1;justify-self:start}}.upgrade.pergola>polygon{fill:#a6c9a633;pointer-events:none}.upgrade-layer:not(.passive) .upgrade.pergola.selected>polygon{pointer-events:all;cursor:move}.upgrade-layer:not(.passive) .upgrade-name .plan-tag{pointer-events:all;cursor:pointer}.pergola-wall{stroke:#476a4b;stroke-width:2px;cursor:pointer}.pergola-wall.selected{stroke:#2563eb;stroke-width:4px}.upgrade>polygon.retaining-fill{fill:#b99b6b44;stroke:#977846;stroke-dasharray:4 3;pointer-events:none}.ground-point{cursor:pointer}.ground-point.passive{pointer-events:none}.milestone-progress{margin:1rem 0}.milestone-progress h4{margin:0 0 .5rem}.milestone-progress progress{width:100%;height:.6rem;margin-bottom:.5rem}.milestone-progress ul{margin:0 0 .75rem;padding:0;list-style:none}.milestone-progress li{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.35rem 1rem;padding:.45rem 0;display:flex}.feedback-dialog{background:var(--surface);width:min(32rem,100vw - 2rem);color:var(--text);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem;box-shadow:0 16px 40px #18202f2e}.feedback-dialog::backdrop{background:#18202f66}.feedback-dialog form,.feedback-sent{flex-direction:column;gap:.85rem;display:flex}.feedback-dialog h2{margin:0;font-size:1.15rem}.feedback-dialog p{margin:0}.feedback-dialog .segmented{align-self:flex-start}.feedback-dialog textarea{resize:vertical;width:100%;min-height:8rem}.feedback-actions{justify-content:flex-end;gap:.5rem;display:flex}.confirm-dialog .confirm-body{flex-direction:column;gap:.85rem;display:flex}.confirm-dialog .confirm-body label{flex-direction:column;gap:.25rem;display:flex}.confirm-dialog .feedback-actions button{min-height:44px}.send-to{margin:.25rem 0 .5rem}.editor-header button.feedback-icon{display:none}@media (width<=1023px){.editor-header button.feedback-icon,.editor-header button.feedback-icon:hover:not(:disabled){width:40px;height:40px;color:var(--muted);flex:none;order:3;place-items:center;margin:0 -.35rem 0 0;padding:0;display:grid}.editor-header .feedback-icon svg{width:21px;height:21px}}@media (width<=640px){.feedback-dialog{width:100%;max-width:none;padding:1.1rem 1rem calc(1rem + env(safe-area-inset-bottom));border-radius:var(--radius) var(--radius) 0 0;border-bottom:none;margin:auto 0 0}.feedback-dialog .segmented{align-self:stretch}.feedback-dialog .segmented button,.feedback-actions button{flex:1;min-height:44px}}.change-orders .change-order-list{margin:.75rem 0;padding:0;list-style:none}.change-orders .change-order-list li{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.35rem 1rem;padding:.45rem 0;display:flex}.change-orders .change-order-list .money{font-variant-numeric:tabular-nums}.change-order-difference table{margin-bottom:.75rem}.cabinet-unit{border-bottom:1px solid var(--border);padding:.75rem 0}.cabinet-schedule fieldset{min-width:0}.cabinet-unit .row>fieldset,.cabinet-unit label>fieldset{border:0;margin:0;padding:0}.cabinet-schedule input,.cabinet-schedule select{max-width:100%}.quote-lines .line-number{border:0;min-width:0;margin:0;padding:0}.cabinet-unit>.row{justify-content:flex-start}.cabinet-unit>.row>select{width:auto;min-width:10rem}.cabinet-unit details{margin-top:.5rem}.cabinet-unit .form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;margin:.75rem 0;display:grid}.cabinet-unit .form-grid label{flex-direction:column;gap:.25rem;display:flex}.cabinet-unit .form-grid label.check{flex-direction:row}.customer-proposal{overflow-wrap:anywhere;max-width:960px;margin:0 auto;padding:24px}.customer-proposal>*+*{margin-top:20px}.customer-prices{padding:0;list-style:none}.customer-prices li{border-bottom:1px solid var(--border);justify-content:space-between;gap:16px;padding:12px 0;display:flex}.customer-prices small{display:block}.customer-prices strong{white-space:nowrap}.customer-render-image{width:100%;height:auto}.cp-summary h1{margin:0}.cp-total{border-top:1px solid var(--border);border-bottom:1px solid var(--border);justify-content:space-between;align-items:baseline;gap:16px;padding:12px 0;display:flex}.cp-total span{font-weight:600}.cp-total strong{white-space:nowrap;font-size:1.6rem}.cp-schedule h2{margin:0;font-size:1rem}.cp-schedule .customer-prices{margin:4px 0 0}.cp-schedule .customer-prices li{padding:6px 0}.cp-done{color:#054f31;background:#ecfdf3;border:1px solid #abefc6;border-radius:9px;padding:.75rem .9rem}.cp-done h2{margin:0 0 4px;font-size:1.05rem}.cp-done p+p{margin-top:6px}.cp-act{width:100%;padding:.75rem 1rem;font-size:1.05rem}@media (width>=601px){.cp-act{align-self:flex-start;width:auto;min-width:16rem}}.cp-summary-anchor,.cp-action{scroll-margin-top:12px}.cp-action label:not(.optional-choice){flex-direction:column;gap:4px;display:flex}.cp-record summary{cursor:pointer;font-size:.9rem}.cp-record p{margin-top:6px}.cp-action-bar{display:none}@media (width<=600px){.customer-proposal.has-action-bar{padding-bottom:88px}.cp-action-bar{z-index:20;padding:10px 16px calc(10px + env(safe-area-inset-bottom));background:var(--surface);border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;margin:0;display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -2px 8px #18202f14}.cp-action-bar span{white-space:nowrap}.cp-action-bar button{padding:.7rem 1.1rem}}.customer-link-panel{margin-top:24px}.customer-proposal input,.customer-proposal select,.customer-link-panel input{min-width:0;max-width:100%}@media (width<=600px){.customer-proposal{padding:16px}}.editor label.optional-choice{color:var(--text);flex-direction:row;justify-content:flex-start;align-items:flex-start;gap:.6rem;display:flex}.optional-choice input{flex:none;margin-top:.2rem}.optional-choice span{min-width:0}.signature-pad{touch-action:none;background:var(--surface);border:1px solid;border-radius:8px;width:100%;height:180px;margin:12px 0;display:block}.signature-hash{overflow-wrap:anywhere}.evidence-field{flex-direction:column;gap:.25rem;min-width:0;display:flex}.evidence-field>label{font-size:.85rem}.catalog dd{overflow-wrap:anywhere}.deal-comparison .deal-fields{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.75rem;margin:.75rem 0;display:grid}.deal-comparison table{border-collapse:collapse;width:100%;margin:.75rem 0}.deal-comparison th,.deal-comparison td{text-align:left;border-bottom:1px solid var(--border);vertical-align:top;padding:.5rem}.deal-comparison button{margin:.25rem .25rem .25rem 0}html:has(.sketch-fullscreen){overscroll-behavior:none;overflow:hidden}.quote-editor.sketch-fullscreen{z-index:100;background:var(--surface);gap:0;max-width:none;margin:0;padding:0;position:fixed;inset:0;overflow:hidden}.sketch-fullscreen>:not(.sketch-pane):not(.sketch-screen-bar),.sketch-fullscreen .job-row,.sketch-fullscreen .job-hint{display:none}.sketch-screen-bar{z-index:6;top:calc(8px + env(safe-area-inset-top));left:calc(8px + env(safe-area-inset-left));pointer-events:none;align-items:center;gap:.4rem;transition:opacity .18s;display:flex;position:absolute}.sketch-screen-bar>*{pointer-events:auto}.sketch-screen-bar button.tool{min-width:44px;min-height:44px;box-shadow:var(--shadow-raised);border-radius:999px;justify-content:center;padding:0}.sketch-screen-bar .total{white-space:nowrap;font-variant-numeric:tabular-nums;background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-raised);border-radius:10px;padding:.3rem .6rem;font-size:.9rem;font-weight:700}.sketch-fullscreen:has(.plan-editor.moving) .sketch-screen-bar{opacity:0;pointer-events:none}.sketch-fullscreen:has(.plan-editor.moving) .sketch-screen-bar>*{pointer-events:none}.sketch-fullscreen .plan-editor{flex:1;gap:0;min-height:0}.sketch-fullscreen .plan-stage{flex-direction:column;flex:1;min-height:0;display:flex}.sketch-fullscreen .plan-canvas{border-radius:0;flex:1 1 0;height:auto;min-height:0}.sketch-fullscreen .plan-float{top:calc(8px + env(safe-area-inset-top));right:calc(8px + env(safe-area-inset-right))}.sketch-fullscreen .plan-scale{top:calc(62px + env(safe-area-inset-top));left:calc(10px + env(safe-area-inset-left))}.sketch-fullscreen .sheet-above{padding-left:calc(.6rem + env(safe-area-inset-left));padding-right:calc(.6rem + env(safe-area-inset-right))}.sketch-fullscreen .plan-editor:not(.has-selection) .sheet-above{padding-bottom:calc(.5rem + env(safe-area-inset-bottom))}.sketch-fullscreen .plan-start{right:0}.sketch-fullscreen .plan-hint,.sketch-fullscreen .removed-status{left:50%}.sketch-fullscreen .bottom-sheet{position:absolute}.sketch-fullscreen .plan-editor:not(.has-selection) .bottom-sheet{border:0;padding:0;height:0!important}.sketch-fullscreen .plan-editor:not(.has-selection) .sheet-handle,.sketch-fullscreen .plan-editor:not(.has-selection) .sheet-body{display:none}.sketch-fullscreen .plan-editor:not(.has-selection) .sheet-above{display:flex}.sketch-fullscreen .plan-menu.pop{max-height:max(44px, calc(100dvh - var(--sheet-height,0px) - 120px))}@media (width<=1023px) and (height<=519px) and (orientation:landscape){.quote-editor.sketch-fullscreen{right:0}.sketch-fullscreen:has(.has-selection){padding-right:var(--side-sheet)}.sketch-fullscreen .plan-editor:not(.has-selection) .bottom-sheet.side{width:0;inset:auto 0 0 auto}.sketch-fullscreen .plan-editor:not(.has-selection) .sheet-above{width:calc(100vw - 1rem);margin-right:.5rem}}.sketch-fullscreen .sketch-pane>:not(.plan-editor){display:none}.sketch-fullscreen .plan-editor:not(.has-selection) .bottom-sheet{--sheet-height:0px!important}body:has(.sketch-fullscreen) :is(.topnav,.sidebar,.account-bar,.demo-banner){visibility:hidden}.material-tiles{grid-template-columns:repeat(auto-fit,minmax(min(100%,9rem),1fr));gap:.4rem;display:grid}.material-tile{text-align:left;align-items:center;gap:.45rem;min-height:48px;display:flex}.material-tile>span:nth-child(2){flex:1;min-width:0}.material-tile small{font-weight:400;display:block}.material-tile .swatch,.material-tile svg{flex-shrink:0}.material-colours{background:var(--surface);width:min(28rem,100vw - 2rem);max-height:min(70dvh,36rem);color:var(--text);border:1px solid var(--border);border-radius:var(--radius);padding:1rem;overflow-y:auto;box-shadow:0 16px 40px #18202f2e}.material-colours::backdrop{background:#18202f66}.material-colours-heading{justify-content:space-between;margin-bottom:.75rem}.material-colours-heading strong{overflow-wrap:anywhere;min-width:0}.material-colours-heading button{flex-shrink:0}.colour-choices{gap:.4rem;display:grid}.colour-choices button{text-align:left;white-space:normal;overflow-wrap:anywhere;min-height:48px}.colour-choices .swatch{flex-shrink:0;width:1.25rem;height:1.25rem}.another-colour{min-height:48px;margin-top:.75rem}.upgrade-finishes .swatches{width:100%}@media (width<=640px){.material-colours{width:100%;max-width:none;padding-bottom:calc(1rem + env(safe-area-inset-bottom));border-radius:var(--radius) var(--radius) 0 0;margin:auto 0 0}}.quote-steps{flex-direction:column;gap:.75rem;min-width:0;display:flex}.step-tabs{scrollbar-width:none;gap:.35rem;display:flex;overflow-x:auto}.step-tabs::-webkit-scrollbar{display:none}.step-tabs button{border:1px solid var(--border);min-width:0;min-height:40px;color:var(--muted);white-space:nowrap;background:0 0;border-radius:999px;flex:auto;justify-content:center;align-items:center;gap:.35rem;padding:.3rem .55rem;font-size:.88rem;font-weight:600;display:inline-flex}.step-tabs button.active{background:var(--accent-soft);border-color:var(--accent-ring);color:var(--accent-hover)}.step-number{background:var(--surface-muted);border:1px solid var(--border);border-radius:999px;flex:none;place-items:center;width:1.4rem;height:1.4rem;font-size:.75rem;display:inline-grid}.step-tabs button.active .step-number{background:var(--accent);border-color:var(--accent);color:#fff}.step-track{scroll-snap-type:x mandatory;overscroll-behavior-x:contain;scrollbar-width:none;align-items:flex-start;transition:height .2s;display:flex;overflow:auto hidden}.step-track::-webkit-scrollbar{display:none}.step-page{box-sizing:border-box;scroll-snap-align:start;scroll-snap-stop:always;flex-direction:column;flex:0 0 100%;gap:1rem;min-width:0;padding:0 1px .5rem;display:flex}.step-nav{justify-content:space-between;gap:.5rem;display:flex}.price-step{flex-direction:column;gap:1.25rem;width:100%;max-width:560px;margin:0 auto;display:flex}.price-step .summary{grid-template-columns:minmax(0,1fr);gap:.75rem}.price-step .summary .total{font-size:1.35rem}.send-step{flex-direction:column;gap:.6rem;display:flex}.send-step p{margin:0}button.send-proposal{border-radius:12px;width:100%;min-height:56px;font-size:1.1rem;font-weight:700}.send-extras{justify-content:center;gap:1rem}button.link.same-address{text-align:left;color:var(--accent);justify-self:start;margin:-.35rem 0 0}@media (prefers-reduced-motion:reduce){.step-track{transition:none}}.proposal-flow{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.proposal-flow>li{min-width:0}.flow-open{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);flex-direction:column;gap:1rem;padding:1.1rem 1.2rem;animation:.25s ease-out qb-enter;display:flex}.flow-title{align-items:center;gap:.5rem;margin:0;font-size:1.05rem;display:flex}.flow-title .step-number{background:var(--accent);border-color:var(--accent);color:#fff}.flow-next{justify-content:flex-end;display:flex}.flow-next button{justify-content:center;align-items:center;gap:.5rem;min-width:8rem;min-height:44px;display:inline-flex}button.flow-summary{text-align:left;background:var(--surface-muted);width:100%;min-height:52px;color:var(--text);border:1px solid var(--border);transform-origin:top;border-radius:12px;align-items:center;gap:.75rem;padding:.4rem 1rem;font-weight:400;animation:.3s ease-out qb-squash;display:flex}button.flow-summary:hover{border-color:var(--border-strong);background:var(--surface)}.flow-check{background:var(--ok);color:#fff;border-radius:999px;flex:none;place-items:center;width:1.4rem;height:1.4rem;display:inline-grid}.flow-summary-title{color:var(--muted);flex:none;min-width:7.5rem;font-size:.85rem}.flow-summary-value{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-weight:600;overflow:hidden}.flow-edit{color:var(--accent);flex:none;font-size:.85rem;font-weight:600}.flow-thumb{object-fit:cover;border:1px solid var(--border);border-radius:6px;width:64px;height:40px;animation:.35s ease-out qb-shrink;display:block}@media (width<=1023px){main:has(.fit-screen){padding-bottom:.5rem}.flow-open:has(.fit-screen){gap:.75rem;padding-bottom:.75rem}.flow-open:has(.fit-screen) .flow-next button{width:100%;min-height:52px;font-size:1.05rem}}@keyframes qb-squash{0%{opacity:0;transform:scaleY(2.2)}}@keyframes qb-shrink{0%{opacity:.4;transform:scale(2.5)}}.spinner{border:2px solid;border-right-color:#0000;border-radius:999px;flex:none;width:1em;height:1em;animation:.7s linear infinite qb-spin;display:inline-block}button.send-proposal{justify-content:center;align-items:center;gap:.6rem;transition:background .2s;display:inline-flex}button.send-proposal.sent,button.send-proposal.sent:disabled{background:var(--ok);border-color:var(--ok);color:#fff;opacity:1}button.send-proposal.sent svg{animation:.25s ease-out qb-pop}.sent-packet{flex-direction:column;gap:1rem;width:100%;max-width:560px;margin:0 auto;display:flex}.packet-card{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);box-shadow:var(--shadow-raised);animation:.45s cubic-bezier(.2,.9,.3,1.2) qb-seal;position:relative;overflow:hidden}.sent-packet .packet-head{background:var(--ink);color:#fff;letter-spacing:.01em;justify-content:flex-start;align-items:center;gap:.5rem;padding:.6rem 1rem;font-size:.85rem;font-weight:600;display:flex}.packet-body{grid-template-columns:auto 1fr auto;align-items:center;gap:1rem;padding:1rem;display:grid}.packet-image{object-fit:cover;border:1px solid var(--border);border-radius:8px;width:120px;height:80px}.packet-who{flex-direction:column;min-width:0;display:flex}.packet-who strong{font-size:1.1rem}.packet-total{font-variant-numeric:tabular-nums;font-size:1.6rem;font-weight:800}.packet-send{flex-direction:column;gap:.4rem;display:flex}.packet-send p{text-align:center;margin:0}.packet-links{flex-wrap:wrap;justify-content:center;gap:1.25rem;font-size:.9rem;display:flex}.packet-changed{background:var(--accent-soft);border:1px solid var(--accent-ring);border-radius:12px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;padding:.75rem 1rem;animation:.25s ease-out qb-enter;display:flex}.packet-changed p{flex:14rem;margin:0;font-size:.92rem}.packet-changed button{min-height:44px}button.flow-back{align-self:flex-start;margin-bottom:.25rem}.contract-step{flex-direction:column;gap:.75rem;width:100%;max-width:560px;margin:1rem auto 0;display:flex}.contract-approval{background:var(--surface-muted);border:1px solid var(--border);border-radius:12px;align-items:center;gap:.75rem;min-height:52px;padding:.4rem 1rem;display:flex}.contract-approval button{flex:none;min-height:44px}.contract-approval .flow-summary-value{white-space:normal}.contract-step .flow-open p{margin:0}.contract-step .flow-done>p{margin:.35rem 1rem 0}.flow-check.pending{border:2px solid var(--border-strong);background:0 0}.contract-amounts{flex-direction:column;gap:.25rem;margin:0;padding:0;list-style:none;display:flex}.contract-amounts li{font-variant-numeric:tabular-nums;justify-content:space-between;gap:1rem;display:flex}.contract-step .packet-send button{min-height:48px}.contract-more{flex-direction:column;gap:.25rem;display:flex}.contract-fold{border-top:1px solid var(--border);flex-direction:column;gap:.6rem;padding:.5rem 0;display:flex}.contract-fold>summary{cursor:pointer;min-height:44px;color:var(--muted);align-items:center;font-weight:600;display:flex}@media (width<=520px){.contract-approval{flex-wrap:wrap}.contract-approval .flow-summary-value{flex-basis:100%;order:3;padding-bottom:.4rem}}@keyframes qb-seal{0%{opacity:0;transform:scale(1.04)}60%{opacity:1;transform:scale(.985)}}@media (width<=520px){.packet-body{grid-template-columns:auto 1fr}.packet-total{text-align:right;grid-column:1/-1}.flow-summary-title{min-width:0}}@media (prefers-reduced-motion:reduce){.flow-open,button.flow-summary,.flow-thumb,.packet-card{animation:none}}.sheet-above-end{align-items:flex-end;gap:.5rem;margin-left:auto;display:flex}button.tool.screen-toggle{min-width:44px;min-height:44px;box-shadow:var(--shadow-raised);border-radius:999px;justify-content:center;padding:0}.plan-history{gap:.4rem;display:flex}.plan-history button.tool,button.tool.armed-exit{min-width:44px;min-height:44px;box-shadow:var(--shadow-raised);border-radius:999px;justify-content:center;padding:0 .9rem}.plan-history button.tool{padding:0}button.tool.armed-exit{margin-left:auto}.plan-editor:has(.plan-history) .plan-float>button:is([aria-label=Undo],[aria-label=Redo]){display:none}.plan-editor:has(.armed-exit) :is(.plan-hint.with-action,.plan-start .tool-buttons)>button:last-child{display:none}.removed-status{z-index:14;pointer-events:none;width:max-content;max-width:calc(100% - 1.2rem);position:absolute;bottom:12px;left:50%;transform:translate(-50%)}.sheet-above>.removed-status{pointer-events:none;bottom:calc(100% + 4px)}.removed-toast{pointer-events:auto;background:var(--ink);color:#fff;box-shadow:var(--shadow-raised);border-radius:999px;align-items:center;gap:.6rem;padding:.2rem .25rem .2rem .9rem;font-size:.88rem;animation:.14s ease-out qb-fade;display:flex}.removed-toast>span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.removed-toast button.tool{border-radius:999px;flex:none;justify-content:center;min-width:44px;min-height:44px}.plan-float,.plan-scale,.sheet-above>*{transition:opacity .18s}.plan-editor.moving :is(.plan-float,.plan-scale,.sheet-above>*){opacity:0;pointer-events:none}@media (prefers-reduced-motion:reduce){.plan-float,.plan-scale,.sheet-above>*,.sketch-screen-bar{transition:none}}.sheet-body:has(>.sheet-pages){padding-inline:0;gap:0;padding-bottom:0;overflow:hidden}.sheet-pages{flex-direction:column;min-height:0;display:flex;flex:auto!important}.sheet-tabs{scrollbar-width:none;flex:none;gap:.25rem;padding:0 .85rem .4rem;display:flex;overflow-x:auto}.sheet-tabs::-webkit-scrollbar{display:none}.sheet-tabs button{min-height:36px;color:var(--muted);background:0 0;border:1px solid #0000;border-radius:999px;flex:none;padding:.25rem .7rem;font-size:.85rem;font-weight:600}.sheet-tabs button.active{background:var(--accent-soft);border-color:var(--accent-ring);color:var(--accent-hover)}.sheet-track{scroll-snap-type:x mandatory;overscroll-behavior-x:contain;scrollbar-width:none;flex:1;min-height:0;display:flex;overflow:auto hidden}.sheet-track::-webkit-scrollbar{display:none}.sheet-page{box-sizing:border-box;scroll-snap-align:start;scroll-snap-stop:always;overscroll-behavior-y:contain;flex-direction:column;flex:0 0 100%;gap:.7rem;min-width:0;padding:.35rem .85rem 1.25rem;display:flex;overflow-y:auto}.sheet-page>*{flex:none}.sheet-section{flex-direction:column;gap:.7rem;display:flex}.sheet-section+.sheet-section{border-top:1px solid var(--border);padding-top:.75rem}.sheet-section>h4{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:0;font-size:.8rem}.sheet-page>.panel:first-child,.sheet-section>h4+.panel{border-top:none;padding-top:0}.prop-list,.prop-detail{flex-direction:column;gap:1.1rem;scroll-margin-top:1rem;display:flex}.prop-group{flex-direction:column;gap:.45rem;display:flex}.prop-group>h4,.prop-detail>h4{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:0;font-size:.78rem}.prop-detail>h4{text-transform:none;letter-spacing:0;color:var(--text);font-size:1.05rem}.prop-rows{border:1px solid var(--border);background:var(--surface);border-radius:12px;flex-direction:column;display:flex;overflow:hidden}.prop-row,button.prop-row,button.prop-row:hover:not(:disabled){min-height:52px;box-shadow:none;color:inherit;font:inherit;text-align:left;background:0 0;border:none;border-radius:0;align-items:center;gap:.6rem;margin:0;padding:.35rem .85rem;display:flex;transform:none}.prop-row+.prop-row{border-top:1px solid var(--border)}button.prop-row:active{background:var(--surface-muted,#18202f0a)}.prop-label{flex:1;min-width:0;font-weight:600}.prop-value{text-overflow:ellipsis;white-space:nowrap;max-width:55%;color:var(--muted);font-variant-numeric:tabular-nums;flex:none;overflow:hidden}.prop-value.assumed{font-style:italic}.prop-arrow{color:var(--border-strong);flex:none}.prop-row.danger .prop-label{color:var(--danger,#b42318)}button.prop-back,button.prop-back:hover:not(:disabled){min-height:44px;box-shadow:none;color:var(--accent-hover);font:inherit;background:0 0;border:none;align-self:flex-start;align-items:center;gap:.15rem;margin-left:-.4rem;padding:0 .6rem 0 .2rem;font-weight:600;display:inline-flex;transform:none}.prop-group>p{margin:0}.deck-extras.flat{flex-direction:column;gap:.6rem;display:flex}.proposal-picture{align-items:center;gap:.75rem;display:flex}.proposal-picture img{object-fit:cover;border:1px solid var(--border);border-radius:8px;flex:none;width:96px;height:64px}.merge-choice{flex-direction:column;gap:10px;display:flex}.merge-choice p{margin:0}.merge-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px 12px;display:flex}.merge-part{font-weight:600}.merge-row .segmented button{text-align:left;flex-direction:column;align-items:flex-start;line-height:1.2;display:inline-flex}.merge-row .segmented button[aria-checked=true] .muted{color:inherit;opacity:.8}@media (width<=1023px){.merge-row .segmented{width:100%;display:flex}.merge-row .segmented button{flex:1;min-width:0}}.restored-notice{justify-content:space-between;align-items:center;gap:8px;display:flex}.icon-button,button.icon-button{vertical-align:middle;border:1px solid var(--border);width:28px;height:28px;min-height:0;color:var(--muted);box-shadow:none;background:0 0;border-radius:6px;place-items:center;margin-left:.25rem;padding:0;display:inline-grid}.icon-button:hover{color:var(--text)}.quote-lines .line-remove{white-space:nowrap}.quote-lines .line-catalog{white-space:nowrap;display:block}.quote-lines .line-remove .link{margin-left:.5rem}.material-dialog{width:min(52rem,100vw - 2rem);max-height:calc(100dvh - 2rem);overflow:auto}.material-dialog .panel{box-shadow:none;border:none;padding:0}.total-change{vertical-align:middle;border-radius:999px;margin-left:.4rem;padding:.05rem .4rem;font-size:.75em;font-weight:700;animation:.2s ease-out qb-pop}.total-change.up{background:var(--accent-ring);color:var(--accent-hover)}.total-change.down{color:var(--ok);background:#15803d1f}.drawer-backdrop{z-index:50;background:#18202f59;justify-content:flex-end;display:flex;position:fixed;inset:0}.drawer{overscroll-behavior:contain;background:var(--bg);width:min(640px,100vw);height:100%;box-shadow:var(--shadow-raised);padding:.75rem;animation:.16s ease-out drawer-in;overflow-y:auto}.drawer>.panel{box-sizing:border-box;min-height:100%}.drawer>.panel>.row:first-child{z-index:1;background:var(--surface);border-bottom:1px solid var(--border);margin:-1rem -1.25rem 0;padding:1rem 1.25rem .5rem;position:sticky;top:-.75rem}@keyframes drawer-in{0%{opacity:0;transform:translate(24px)}}@media (prefers-reduced-motion:reduce){.drawer{animation:none}}.find-at-store .row{justify-content:flex-start}.find-at-store .row select{flex:0 12rem;width:auto}.price-percent{font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:600}.price-percent.up{color:var(--danger)}.price-percent.down{color:var(--ok)}.price-percent.flat{color:var(--muted);font-weight:400}.price-percent.badged{font-weight:800}td button.small{white-space:nowrap}button.secondary.find{color:#6941c6;border-color:#d9d0f5}button.secondary.find:hover:not(:disabled){color:#53389e;background:#f4f0ff;border-color:#6941c6}@media (width>=1024px){.catalog-list tbody:not(:last-of-type) tr:last-child td{border-bottom:1px solid var(--border)}.catalog-list tbody+tbody tr.material-head td{border-top:1px solid var(--border)}}.catalog-list tr.material-head td{border-bottom:none;padding-top:.4rem;padding-bottom:.4rem}.catalog-list tr.material-head .row-open{font-weight:650}.catalog-list tr.material-head .row-open .unit{font-weight:400}.catalog-list tr.material-head .row-open:hover{text-decoration:underline}.catalog-list tbody.expanded{background:var(--surface-muted)}.catalog-list td.fold{text-align:right;width:1%}@media (width>=1024px){.catalog-list .inline-change{display:none}}button.link.fold-toggle,button.link.fold-toggle:hover:not(:disabled){color:var(--muted);margin:0;padding:0 .25rem;font-size:.9rem;text-decoration:none}.catalog-list tr.listing-row td{border-bottom:none;padding-top:.25rem;padding-bottom:.25rem;font-size:.92rem}.catalog-list tr.listing-row:last-child td{padding-bottom:.5rem}.catalog-list td.store{color:var(--muted);white-space:nowrap;padding-left:1.5rem}.catalog-list tr.listing-row.unlisted td.store{opacity:.75}.catalog-list td.not-listed{color:var(--muted);font-size:.85rem;font-style:italic}.store-listings{border-bottom:1px solid var(--border);flex-direction:column;gap:.75rem;padding:.25rem 0 .75rem;display:flex}.store-listings .tabs .count{font-variant-numeric:tabular-nums}@media (width<=1023px){.catalog-list{flex-direction:column;gap:0;display:flex!important}table.stack.catalog-list{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:10px;overflow:hidden}table.stack.catalog-list tbody.material-group{flex-direction:column;gap:0;padding:.55rem .8rem;display:flex}table.stack.catalog-list tbody.material-group+tbody.material-group{border-top:1px solid var(--border)}table.stack.catalog-list button.fold-toggle{min-height:0}table.stack.catalog-list tr{box-shadow:none;background:0 0;border:none;border-radius:0;padding:.45rem 0}table.stack.catalog-list tr.material-head{grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:0 .6rem;padding:0}table.stack.catalog-list tr.material-head td[data-label]:before{display:none}table.stack.catalog-list tr.material-head td.name{grid-column:1;align-items:center;min-width:0;display:flex}table.stack.catalog-list tr.material-head button.row-open{white-space:nowrap;text-overflow:ellipsis;min-width:0;min-height:0;padding:0;display:block;overflow:hidden}table.stack.catalog-list tr.material-head .unit,table.stack.catalog-list tr.material-head td[data-label=Checked],table.stack.catalog-list tr.material-head td.low-at{display:none}table.stack.catalog-list tr.material-head td.money{white-space:nowrap}table.stack.catalog-list tr.material-head td.fold{grid-column:3}table.stack.catalog-list tbody.expanded{background:var(--surface-muted)}table.stack.catalog-list tr.listing-row{border-top:1px solid var(--border);grid-template-columns:minmax(0,1fr) 5.5rem 6.5rem;align-items:center;gap:0 .75rem;padding:.4rem 0}table.stack.catalog-list tr.listing-row td.money,table.stack.catalog-list tr.listing-row td[data-label=Checked]{text-align:right}table.stack.catalog-list tr.listing-row td[data-label]:before,table.stack.catalog-list tr.listing-row td[data-label=Supplier],table.stack.catalog-list tr.listing-row td:last-child,table.stack.catalog-list td[data-label=Change]{display:none}table.stack.catalog-list td.store{color:var(--text);padding-left:0;font-weight:600}table.stack.catalog-list tr.listing-row.unlisted{grid-template-columns:minmax(0,1fr) auto}table.stack.catalog-list tr.listing-row.unlisted td.store{color:var(--muted);font-weight:500}table.stack.catalog-list td.not-listed{text-align:right}}.customer-sketch{overflow-wrap:anywhere;max-width:960px;margin:0 auto;padding:24px}.customer-sketch>*+*{margin-top:16px}.customer-sketch textarea{width:100%}.customer-sketch .sketch-pane{border:0;min-width:0;margin-left:0;margin-right:0;padding:0}.sketch-link-panel input{width:100%;min-width:0;max-width:100%}.sketch-link-panel{margin-top:12px}.sketch-link-status{margin:0 0 8px}.sketch-link-status p{margin:.25em 0}.pre-line{white-space:pre-line}@media (width<=600px){.customer-sketch{padding:12px}}.customer-sketch.has-sheet{padding-bottom:calc(140px + env(safe-area-inset-bottom))}
