.loading-state[data-v-dca84fdb]{min-height:300px;color:var(--muted);justify-content:center;align-items:center;gap:10px;display:flex}.quote-layout[data-v-dca84fdb]{gap:24px;display:grid}.quote-form[data-v-dca84fdb]{background:var(--paper);border:1px solid var(--line);border-radius:7px;overflow:hidden}.form-section[data-v-dca84fdb]{border-bottom:1px solid var(--line);padding:20px 16px}.form-section[data-v-dca84fdb]:last-child{border-bottom:0}.form-section.disabled[data-v-dca84fdb]{opacity:.58}.section-heading[data-v-dca84fdb]{justify-content:space-between;align-items:flex-start;gap:10px;min-height:42px;margin-bottom:15px;display:flex}.section-heading>div[data-v-dca84fdb]{align-items:center;gap:10px;display:flex}.section-heading h2[data-v-dca84fdb]{color:var(--forest);margin:0;font-size:18px}.step[data-v-dca84fdb]{color:#fff;background:var(--forest);border-radius:50%;place-items:center;width:28px;height:28px;font-size:13px;font-weight:800;display:grid}.button.compact[data-v-dca84fdb]{min-height:38px;padding:0 11px}.search-field[data-v-dca84fdb]{height:48px;color:var(--muted);background:#fff;border:1px solid #b8c0bc;border-radius:5px;align-items:center;gap:8px;padding-left:12px;display:flex}.search-field[data-v-dca84fdb]:focus-within{border-color:var(--forest-2);box-shadow:0 0 0 3px #24594a24}.search-field input[data-v-dca84fdb]{box-shadow:none;border:0;padding-left:0}.customer-options[data-v-dca84fdb]{border:1px solid var(--line);border-radius:5px;margin-top:8px;overflow:hidden}.customer-options button[data-v-dca84fdb]{text-align:left;border:0;border-bottom:1px solid var(--line);background:#fff;gap:3px;width:100%;padding:12px;display:grid}.customer-options button[data-v-dca84fdb]:last-child{border-bottom:0}.customer-options button[data-v-dca84fdb]:hover{background:#f2f5f1}.customer-options strong[data-v-dca84fdb],.selected-customer strong[data-v-dca84fdb]{color:var(--forest)}.customer-options span[data-v-dca84fdb],.selected-customer span[data-v-dca84fdb]{color:var(--muted);overflow-wrap:anywhere;font-size:13px}.selected-customer[data-v-dca84fdb]{background:#eef3eb;border:1px solid #cbd9c8;border-radius:5px;justify-content:space-between;align-items:center;gap:11px;padding:13px;display:flex}.selected-customer>div[data-v-dca84fdb]{gap:3px;min-width:0;display:grid}.text-button[data-v-dca84fdb]{color:var(--forest-2);white-space:nowrap;background:0 0;border:0;padding:8px;font-weight:800}.select-wrap[data-v-dca84fdb]{position:relative}.select-wrap svg[data-v-dca84fdb]{pointer-events:none;position:absolute;top:15px;right:12px}.select-wrap select[data-v-dca84fdb]{appearance:none;padding-right:38px}.stepper[data-v-dca84fdb]{background:#fff;border:1px solid #aeb8b3;border-radius:6px;grid-template-columns:46px minmax(60px,1fr) 46px;height:46px;display:grid;overflow:hidden}.stepper button[data-v-dca84fdb]{color:var(--forest);background:#f0f4f1;border:0;place-items:center;display:grid}.stepper input[data-v-dca84fdb]{border:0;border-left:1px solid var(--line);border-right:1px solid var(--line);min-height:44px;box-shadow:none;text-align:center;border-radius:0;font-weight:800}.format-note[data-v-dca84fdb]{color:var(--muted);margin:0;font-size:13px}.quote-preview[data-v-dca84fdb]{background:var(--forest);color:#fff;border-radius:7px;align-self:start;overflow:hidden}.preview-heading[data-v-dca84fdb]{border-bottom:1px solid #ffffff29;justify-content:space-between;align-items:flex-end;padding:20px 18px;display:flex}.preview-heading .eyebrow[data-v-dca84fdb]{color:var(--lime)}.preview-heading strong[data-v-dca84fdb]{margin-top:5px;font-size:31px;line-height:1;display:block}.sqft[data-v-dca84fdb]{color:#c7d6d0;font-size:13px}.breakdown[data-v-dca84fdb]{padding:8px 18px}.breakdown>div[data-v-dca84fdb]{border-bottom:1px solid #ffffff21;justify-content:space-between;align-items:center;gap:10px;min-height:54px;display:flex}.breakdown span[data-v-dca84fdb]{gap:2px;display:grid}.breakdown small[data-v-dca84fdb]{color:#b8cbc4}.breakdown .total[data-v-dca84fdb]{border-bottom:0;font-size:18px}.preview-empty[data-v-dca84fdb]{color:#c7d6d0;place-items:center;min-height:190px;padding:20px;display:grid}.preview-actions[data-v-dca84fdb]{grid-template-columns:1fr auto;gap:10px;padding:14px 18px 18px;display:grid}.quote-preview .button.primary[data-v-dca84fdb]{color:var(--forest);background:var(--lime)}.quote-preview .button.secondary[data-v-dca84fdb]{color:#fff;background:0 0;border-color:#789288}.email-preview[data-v-dca84fdb]{border-top:1px solid #ffffff29}.email-preview summary[data-v-dca84fdb]{cursor:pointer;padding:14px 18px;font-size:13px;font-weight:750}.email-preview pre[data-v-dca84fdb]{color:#e2ebe7;white-space:pre-wrap;overflow-wrap:anywhere;margin:0;padding:0 18px 20px;font:12px/1.55 ui-monospace,SFMono-Regular,Menlo,monospace}.success-message[data-v-dca84fdb]{color:#24522f;background:#e5f4df;border:1px solid #b8d9ad;border-radius:5px;align-items:center;gap:8px;padding:11px 12px;font-size:14px;display:flex}.small-empty[data-v-dca84fdb]{text-align:center;color:var(--muted);padding:20px;font-size:14px}@media (width>=900px){.quote-layout[data-v-dca84fdb]{grid-template-columns:minmax(0,1.35fr) minmax(330px,.65fr);align-items:start}.form-section[data-v-dca84fdb]{padding:24px}.quote-preview[data-v-dca84fdb]{position:sticky;top:92px}}.heading-action span[data-v-cc2f9d02]{display:none}.search-bar[data-v-cc2f9d02]{max-width:620px;height:48px;color:var(--muted);background:#fff;border:1px solid #b8c0bc;border-radius:5px;align-items:center;gap:9px;margin-bottom:18px;padding-left:13px;display:flex}.search-bar[data-v-cc2f9d02]:focus-within{border-color:var(--forest-2);box-shadow:0 0 0 3px #24594a24}.search-bar input[data-v-cc2f9d02]{box-shadow:none;border:0;padding-left:0}.customer-list[data-v-cc2f9d02]{border-top:1px solid var(--line)}.customer-card[data-v-cc2f9d02]{border-bottom:1px solid var(--line);grid-template-columns:40px minmax(0,1fr);gap:12px;padding:17px 0;display:grid}.avatar[data-v-cc2f9d02]{width:40px;height:40px;color:var(--forest);background:#e4ece3;border-radius:6px;place-items:center;display:grid}.customer-main[data-v-cc2f9d02]{gap:4px;min-width:0;display:grid}.customer-main strong[data-v-cc2f9d02]{color:var(--forest)}.customer-main span[data-v-cc2f9d02]{color:#3f4c47;overflow-wrap:anywhere;font-size:14px}.customer-main small[data-v-cc2f9d02]{color:var(--muted)}.customer-actions[data-v-cc2f9d02]{grid-column:1/-1;align-items:center;gap:5px;display:flex}.quote-button[data-v-cc2f9d02]{min-height:40px;margin-left:auto}.archive[data-v-cc2f9d02]{color:var(--red)}@media (width>=700px){.heading-action span[data-v-cc2f9d02]{display:inline}.customer-card[data-v-cc2f9d02]{grid-template-columns:44px minmax(250px,1fr) auto;align-items:center}.customer-actions[data-v-cc2f9d02]{grid-column:auto}}.search-bar[data-v-ef030e33]{max-width:620px;height:48px;color:var(--muted);background:#fff;border:1px solid #b8c0bc;border-radius:5px;align-items:center;gap:9px;margin-bottom:18px;padding-left:13px;display:flex}.search-bar[data-v-ef030e33]:focus-within{border-color:var(--forest-2);box-shadow:0 0 0 3px #24594a24}.search-bar input[data-v-ef030e33]{box-shadow:none;border:0;padding-left:0}.quote-list[data-v-ef030e33]{gap:12px;display:grid}.history-card[data-v-ef030e33]{background:var(--paper);border:1px solid var(--line);border-radius:7px;padding:16px}.history-head[data-v-ef030e33]{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.quote-number[data-v-ef030e33]{color:var(--forest-2);text-transform:uppercase;font-size:11px;font-weight:800}.history-head h2[data-v-ef030e33]{color:var(--forest);margin:4px 0;font-size:18px}.history-head p[data-v-ef030e33]{color:var(--muted);overflow-wrap:anywhere;margin:0;font-size:13px}.amount[data-v-ef030e33]{color:var(--forest);white-space:nowrap;font-size:21px}.quote-meta[data-v-ef030e33]{color:#4c5b55;border-bottom:1px solid var(--line);flex-wrap:wrap;gap:7px 14px;padding:13px 0;font-size:12px;display:flex}details summary[data-v-ef030e33]{color:var(--forest-2);cursor:pointer;padding:12px 0;font-size:13px;font-weight:750}pre[data-v-ef030e33]{border:1px solid var(--line);color:#33403b;white-space:pre-wrap;overflow-wrap:anywhere;background:#f7f8f6;border-radius:5px;margin:0 0 12px;padding:12px;font:12px/1.55 ui-monospace,SFMono-Regular,Menlo,monospace}.history-actions[data-v-ef030e33]{justify-content:flex-end;gap:9px;display:flex}.history-actions .button[data-v-ef030e33]{min-height:40px}@media (width<=480px){.history-head[data-v-ef030e33]{display:grid}.amount[data-v-ef030e33]{grid-row:1}}.save-top span[data-v-c96daf10]{display:none}.success-message[data-v-c96daf10]{color:#24522f;background:#e5f4df;border:1px solid #b8d9ad;border-radius:5px;align-items:center;gap:8px;padding:11px 12px;font-size:14px;display:flex}.tabs[data-v-c96daf10]{border-bottom:1px solid var(--line);margin-bottom:24px;display:flex;overflow-x:auto}.tabs button[data-v-c96daf10]{min-height:46px;color:var(--muted);white-space:nowrap;background:0 0;border:0;border-bottom:3px solid #0000;padding:0 17px;font-weight:800}.tabs button.active[data-v-c96daf10]{color:var(--forest);border-color:var(--forest)}.pricing-section[data-v-c96daf10]{max-width:760px}.pricing-toolbar[data-v-c96daf10],.product-fields[data-v-c96daf10],.settings-grid[data-v-c96daf10]{gap:0 14px;display:grid}.check-field[data-v-c96daf10]{color:#34423d;align-items:center;gap:9px;min-height:46px;font-size:13px;font-weight:750;display:flex}.check-field input[data-v-c96daf10]{width:19px;height:19px;min-height:19px;accent-color:var(--forest)}.section-note[data-v-c96daf10],.field small[data-v-c96daf10]{color:var(--muted);font-size:13px}.rate-grid[data-v-c96daf10]{border-top:1px solid var(--line);grid-template-columns:minmax(80px,.5fr) minmax(170px,1fr);display:grid}.grid-head[data-v-c96daf10],.count-cell[data-v-c96daf10],.rate-grid label[data-v-c96daf10]{border-bottom:1px solid var(--line);align-items:center;min-height:48px;padding:7px 10px;display:flex}.grid-head[data-v-c96daf10]{color:var(--muted);text-transform:uppercase;background:#eff2ef;font-size:12px;font-weight:800}.count-cell[data-v-c96daf10]{color:var(--forest);font-weight:800}.rate-grid label[data-v-c96daf10]{position:relative}.rate-grid input[data-v-c96daf10]{min-height:38px;padding-left:27px}.currency[data-v-c96daf10]{z-index:1;color:var(--muted);position:absolute;left:20px}.money-input[data-v-c96daf10]{position:relative}.money-input span[data-v-c96daf10]{z-index:1;color:var(--muted);position:absolute;top:13px;left:12px}.money-input input[data-v-c96daf10]{padding-left:27px}@media (width>=600px){.save-top span[data-v-c96daf10]{display:inline}.pricing-toolbar[data-v-c96daf10]{grid-template-columns:1fr 1fr}.product-fields[data-v-c96daf10]{grid-template-columns:1.5fr 1fr}.product-fields .check-field[data-v-c96daf10]{grid-column:1/-1}.settings-grid[data-v-c96daf10]{grid-template-columns:1fr 1fr}}:root{color:#17201d;font-synthesis:none;--forest:#16382f;--forest-2:#24594a;--lime:#d9eb7a;--paper:#fff;--ground:#f6f7f4;--line:#d9ded9;--muted:#65706c;--blue:#dfeef8;--blue-ink:#174966;--amber:#fff0bd;--amber-ink:#674d00;--red:#b42318;--shadow:0 8px 24px #16382f14;background:#f6f7f4;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0}button,input,select,textarea{font:inherit;letter-spacing:0}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:inherit}.app-shell{min-height:100vh;padding-bottom:76px}.topbar{background:var(--paper);border-bottom:1px solid var(--line);z-index:30;align-items:center;gap:24px;height:68px;padding:0 max(16px,50vw - 590px);display:flex;position:sticky;top:0}.brand{color:var(--forest);align-items:center;gap:10px;min-width:0;text-decoration:none;display:flex}.brand-mark{width:38px;height:38px;color:var(--forest);background:var(--lime);border-radius:6px;flex:none;place-items:center;display:grid}.brand strong,.brand small{letter-spacing:0;line-height:1.05;display:block}.brand strong{font-size:16px}.brand small{color:var(--muted);text-transform:uppercase;margin-top:3px;font-size:11px;font-weight:700}.desktop-nav{align-self:stretch;align-items:stretch;margin-left:auto;display:none}.desktop-nav a{color:var(--muted);border-bottom:3px solid #0000;align-items:center;gap:7px;padding:0 16px;font-size:14px;font-weight:700;text-decoration:none;display:flex}.desktop-nav a.router-link-active{color:var(--forest);border-color:var(--forest)}.logout{margin-left:auto}main{width:min(100%,1180px);margin:0 auto}.page{padding:24px 16px 40px}.page-heading{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:22px;display:flex}.page-heading h1{color:var(--forest);letter-spacing:0;margin:2px 0 0;font-size:clamp(24px,5vw,34px);line-height:1.1}.page-heading p{color:var(--muted);margin:7px 0 0;font-size:14px}.eyebrow{color:var(--forest-2);text-transform:uppercase;letter-spacing:0;font-size:11px;font-weight:800;display:block}.mobile-nav{z-index:40;background:var(--paper);border-top:1px solid var(--line);min-height:68px;padding-bottom:env(safe-area-inset-bottom);grid-auto-columns:1fr;grid-auto-flow:column;display:grid;position:fixed;bottom:0;left:0;right:0}.mobile-nav a{min-width:0;color:var(--muted);flex-direction:column;justify-content:center;align-items:center;gap:4px;font-size:11px;font-weight:700;text-decoration:none;display:flex}.mobile-nav a.router-link-active{color:var(--forest);background:#f0f5ec}.button,.icon-button{border:0;justify-content:center;align-items:center;gap:8px;font-weight:750;display:inline-flex}.button{border-radius:6px;min-height:46px;padding:0 16px}.button.primary{color:#fff;background:var(--forest)}.button.primary:hover{background:var(--forest-2)}.button.secondary{color:var(--forest);background:var(--paper);border:1px solid #aeb8b3}.button.danger{color:var(--red);background:#fff4f2;border:1px solid #f0b5ae}.button:disabled{cursor:not-allowed;opacity:.55}.icon-button{width:44px;height:44px;color:var(--forest);background:0 0;border-radius:6px;flex:none}.icon-button:hover{background:#edf2ee}.field{gap:7px;min-width:0;margin-bottom:15px;display:grid}.field>span,.field legend{color:#34423d;font-size:13px;font-weight:750}.field b{color:var(--red)}fieldset.field{border:0;padding:0}input,select,textarea{background:var(--paper);color:#17201d;border:1px solid #b8c0bc;border-radius:5px;outline:none;width:100%;min-height:46px;padding:10px 12px}textarea{resize:vertical;line-height:1.4}input:focus,select:focus,textarea:focus{border-color:var(--forest-2);box-shadow:0 0 0 3px #24594a24}.segmented{background:var(--paper);border:1px solid #aeb8b3;border-radius:6px;grid-auto-columns:1fr;grid-auto-flow:column;min-height:46px;display:grid;overflow:hidden}.segmented button{color:var(--muted);background:0 0;border:0;border-right:1px solid #cbd1cd;padding:8px 12px;font-weight:750}.segmented button:last-child{border-right:0}.segmented button.active{color:var(--forest);background:var(--lime)}.two-column{display:grid}.form-title{justify-content:space-between;align-items:flex-start;margin-bottom:20px;display:flex}.form-title h2{color:var(--forest);margin:3px 0 0;font-size:21px}.form-actions{justify-content:flex-end;gap:10px;margin-top:22px;display:flex}.error-message,.global-error{color:var(--red);background:#fff1ef;border:1px solid #f0b5ae;border-radius:5px;padding:11px 12px;font-size:14px}.global-error{width:min(100% - 32px,1150px);margin:12px auto}.notice{border-radius:5px;align-items:flex-start;gap:9px;padding:11px 12px;font-size:14px;display:flex}.notice.info{background:var(--blue);color:var(--blue-ink)}.notice.warning{background:var(--amber);color:var(--amber-ink)}.empty-state{text-align:center;color:var(--muted);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:52px 20px}.empty-state svg{color:#9aa8a1;margin-bottom:10px}.spin{animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.modal-backdrop{z-index:80;background:#0a1a1573;align-items:end;display:grid;position:fixed;inset:0}.modal{background:var(--paper);width:100%;max-height:92vh;padding:22px 18px max(24px, env(safe-area-inset-bottom));box-shadow:var(--shadow);border-radius:8px 8px 0 0;overflow:auto}@media (width>=700px){.app-shell{padding-bottom:0}.desktop-nav{display:flex}.mobile-nav{display:none}.logout{margin-left:0}.page{padding:34px 24px 64px}.two-column{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.modal-backdrop{place-items:center;padding:24px}.modal{border-radius:8px;max-width:620px;padding:28px}}
