:root{--bg:#f4f5f7;--surface:#fff;--border:#e2e5ea;--border-strong:#cfd4dc;--text:#1a1d23;--text-muted:#6b7280;--text-quiet:#9ca3af;--primary:#ef7d00;--primary-hover:#c96800;--primary-soft:#fff1e0;--success:#198a00;--success-bg:#e3f4dc;--warn:#92400e;--warn-bg:#fef3c7;--empty:#6b7280;--empty-bg:#f3f4f6;--danger:#de2010;--shadow:0 1px 2px #1018280f, 0 1px 3px #10182814;--shadow-md:0 4px 12px #10182814, 0 1px 3px #1018280f;--radius:8px;--header-bg:#0b0b0b;--primary-text:#b35c00;--font:"Segoe UI", system-ui, -apple-system, BlinkMacSystemFont, "Helvetica Neue", Arial, sans-serif;--mono:"SF Mono", "Cascadia Mono", Consolas, "Liberation Mono", ui-monospace, monospace;--max:1100px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:var(--font);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;min-height:100vh;font-size:14px;line-height:1.45}#root{min-height:100vh}a{color:var(--primary-text)}.page{max-width:var(--max);margin:0 auto;padding:24px 20px 48px}.wrap{max-width:var(--max);margin:0 auto;padding:0 20px}.brand{color:var(--text);align-items:center;gap:10px;text-decoration:none;display:flex}.brand-mark{color:#fff;letter-spacing:-.02em;background:linear-gradient(145deg,#ef7d00,#c96800);border-radius:7px;place-items:center;width:32px;height:32px;font-size:13px;font-weight:700;display:grid}.brand-name{letter-spacing:-.02em;font-size:16px;font-weight:700}.brand-name span{color:var(--text-muted);margin-left:6px;font-size:13px;font-weight:500}.btn{appearance:none;border:1px solid var(--border-strong);background:var(--surface);color:var(--text);font:inherit;cursor:pointer;white-space:nowrap;border-radius:6px;justify-content:center;align-items:center;gap:6px;padding:7px 12px;font-size:13px;font-weight:600;text-decoration:none;transition:background .12s,border-color .12s,color .12s;display:inline-flex}.btn:hover:not(:disabled){background:#f8f9fb;border-color:#b8bfc9}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:var(--primary);border-color:var(--primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--primary-hover);border-color:var(--primary-hover);color:#fff}.btn-ghost{color:var(--text-muted);background:0 0;border-color:#0000;padding:7px 8px;font-weight:500}.btn-ghost:hover:not(:disabled){background:var(--empty-bg);color:var(--text);border-color:#0000}.btn-danger{color:var(--danger);background:#fff;border-color:#fecaca}.btn-danger:hover:not(:disabled){background:#fef2f2}.btn-sm{padding:5px 10px;font-size:12.5px}.btn-lg{padding:11px 16px;font-size:14px}.app-nav{z-index:40;background:var(--header-bg);border-bottom:3px solid var(--primary);position:sticky;top:0;box-shadow:0 2px #de2010}.app-nav-inner{max-width:var(--max);justify-content:space-between;align-items:center;gap:16px;margin:0 auto;padding:12px 20px;display:flex}.nav-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.plan-pill{background:var(--primary-soft);color:var(--primary);border-radius:999px;padding:3px 9px;font-size:11.5px;font-weight:650}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:16px;padding:18px 20px}.card-title{letter-spacing:-.01em;margin-bottom:14px;font-size:15px;font-weight:650}.table-wrap{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.table{border-collapse:collapse;width:100%}.table thead th{text-align:left;text-transform:uppercase;letter-spacing:.045em;color:var(--text-muted);border-bottom:1px solid var(--border);white-space:nowrap;background:#f8f9fb;padding:10px 14px;font-size:11px;font-weight:650}.table td{vertical-align:middle;border-bottom:1px solid var(--border);padding:11px 14px}.table tbody tr:last-child td{border-bottom:none}.table tbody tr:hover{background:#fafbfc}.table .num,.num{text-align:right;font-family:var(--mono);font-variant-numeric:tabular-nums;letter-spacing:-.01em;font-size:13px;font-weight:500}.num.strong{font-weight:650}.table tr.is-empty{color:var(--text-quiet)}.table tr.is-empty .trade-name{color:var(--text-muted);font-weight:500}.trade-name{color:var(--text);font-size:13.5px;font-weight:600}.badge{white-space:nowrap;border-radius:999px;align-items:center;padding:2px 8px;font-size:11.5px;font-weight:600;display:inline-flex}.badge-empty{background:var(--empty-bg);color:var(--empty)}.badge-progress{background:var(--warn-bg);color:var(--warn)}.badge-complete{background:var(--success-bg);color:var(--success)}.totals-bar{z-index:20;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);grid-template-columns:repeat(4,1fr);margin-bottom:20px;display:grid;position:sticky;top:57px;overflow:hidden}.total-cell{border-right:1px solid var(--border);padding:14px 18px}.total-cell:last-child{background:#f0f4f9;border-right:none}.total-label{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-bottom:4px;font-size:11px;font-weight:600}.total-value{font-family:var(--mono);font-variant-numeric:tabular-nums;letter-spacing:-.02em;font-size:18px;font-weight:650}.total-cell:last-child .total-value{color:var(--primary);font-size:20px}.form-grid{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));align-items:end;gap:12px 14px;display:grid}.field{flex-direction:column;gap:5px;display:flex}.field.span-2{grid-column:span 2}.field label{text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);font-size:11.5px;font-weight:650}.field .hint{color:var(--text-quiet);text-transform:none;letter-spacing:0;font-size:11.5px;font-weight:400}.field input,.field select{font:inherit;border:1px solid var(--border-strong);color:var(--text);background:#fff;border-radius:6px;width:100%;padding:8px 10px;font-size:13.5px}.field input:focus,.field select:focus{outline:2px solid var(--primary-soft);border-color:#9bb4d4}.field-row{gap:8px;display:flex}.field-row>*{flex:1}.field-row .unit{flex:0 0 88px}.form-actions{flex-wrap:wrap;align-items:center;gap:8px;margin-top:16px;display:flex}.form-msg{color:var(--text-muted);font-size:12.5px}.form-msg.ok{color:var(--success)}.form-msg.err{color:var(--danger)}.project-title{letter-spacing:-.03em;font-size:26px;font-weight:700;line-height:1.2}.job-type{color:var(--primary);background:var(--primary-soft);border-radius:999px;padding:3px 9px;font-size:12.5px;font-weight:600;display:inline-flex}.project-meta{flex-wrap:wrap;align-items:baseline;gap:10px 14px;margin:16px 0 6px;display:flex}.project-sub{color:var(--text-muted);margin-bottom:16px;font-size:13px}.crumb{color:var(--text-muted);margin:12px 0 4px;font-size:13px}.crumb a{color:var(--primary);font-weight:500;text-decoration:none}.crumb a:hover{text-decoration:underline}.section-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin:8px 0 12px;display:flex}.section-heading{letter-spacing:-.01em;font-size:15px;font-weight:650}.muted{color:var(--text-muted);font-size:12.5px}.empty-state{text-align:center;color:var(--text-quiet);padding:28px 16px;font-size:13.5px}.line-desc{font-size:13.5px;font-weight:600}.line-meta{color:var(--text-muted);margin-top:2px;font-size:12px}.footer-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;margin-top:20px;display:flex}.gate-note{color:var(--warn);background:var(--warn-bg);border:1px solid #fde68a;border-radius:6px;margin-bottom:12px;padding:8px 12px;font-size:12.5px}.landing-nav{z-index:40;border-bottom:1px solid var(--border);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#fffffff2;position:sticky;top:0}.landing-hero{grid-template-columns:1.15fr .85fr;align-items:center;gap:36px;padding:56px 0 48px;display:grid}.eyebrow{color:var(--primary);background:var(--primary-soft);border-radius:999px;margin-bottom:14px;padding:4px 10px;font-size:12.5px;font-weight:650;display:inline-flex}.landing-hero h1{letter-spacing:-.035em;margin-bottom:14px;font-size:40px;font-weight:750;line-height:1.15}.lead{color:var(--text-muted);max-width:540px;margin-bottom:22px;font-size:17px;line-height:1.55}.hero-ctas{flex-wrap:wrap;gap:10px;margin-bottom:14px;display:flex}.hero-note{color:var(--text-quiet);font-size:13px}.block{padding:48px 0}.block.alt{background:var(--surface);border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.section-label{text-transform:uppercase;letter-spacing:.06em;color:var(--primary);margin-bottom:8px;font-size:12px;font-weight:700}.section-title{letter-spacing:-.03em;margin-bottom:10px;font-size:28px;font-weight:700}.section-sub{color:var(--text-muted);max-width:560px;margin-bottom:28px;font-size:15.5px}.steps{grid-template-columns:repeat(3,1fr);gap:16px;display:grid}.step{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px 18px}.step-num{background:var(--primary-soft);width:28px;height:28px;color:var(--primary);border-radius:6px;place-items:center;margin-bottom:12px;font-size:13px;font-weight:700;display:grid}.step h3{margin-bottom:6px;font-size:16px;font-weight:650}.step p{color:var(--text-muted);font-size:13.5px}.pricing-grid{grid-template-columns:1fr 1fr;gap:16px;display:grid}.price-card{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:10px;flex-direction:column;padding:24px 22px;display:flex;position:relative}.price-card.featured{box-shadow:var(--shadow-md);border-color:#9bb4d4}.price-badge{background:var(--primary);color:#fff;border-radius:999px;padding:3px 9px;font-size:11px;font-weight:700;position:absolute;top:-10px;right:18px}.plan-name{margin-bottom:6px;font-size:15px;font-weight:700}.plan-price{align-items:baseline;gap:6px;margin-bottom:4px;display:flex}.plan-price .amt{letter-spacing:-.03em;font-variant-numeric:tabular-nums;font-size:36px;font-weight:750}.plan-price .per{color:var(--text-muted);font-size:14px}.plan-alt{color:var(--text-muted);margin-bottom:16px;font-size:13px}.plan-list{flex:1;margin:0 0 20px;list-style:none}.plan-list li{border-bottom:1px solid var(--border);gap:8px;padding:7px 0;font-size:13.5px;display:flex}.plan-list li:last-child{border-bottom:none}.plan-list li:before{content:"✓";color:var(--success);font-weight:700}.pricing-note{text-align:center;color:var(--text-muted);margin-top:16px;font-size:13px}.preview-card{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-md);border-radius:10px;overflow:hidden}.preview-top{border-bottom:1px solid var(--border);background:#f0f4f9;justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.preview-totals{border-bottom:1px solid var(--border);grid-template-columns:repeat(4,1fr);display:grid}.preview-cell{border-right:1px solid var(--border);padding:12px 10px}.preview-cell:last-child{background:#f8fafc;border-right:none}.preview-label{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);font-size:10px;font-weight:650}.preview-val{font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:13px;font-weight:650}.preview-cell:last-child .preview-val{color:var(--primary)}.site-footer{border-top:1px solid var(--border);background:var(--surface);color:var(--text-quiet);text-align:center;margin-top:24px;padding:28px 0;font-size:12.5px}.projects-list{flex-direction:column;gap:10px;display:flex}.project-row{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;display:flex}.project-row h3{letter-spacing:-.01em;font-size:15px;font-weight:650}.toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}@media (width<=900px){.landing-hero{grid-template-columns:1fr}.landing-hero h1{font-size:32px}.steps,.pricing-grid{grid-template-columns:1fr}.totals-bar{grid-template-columns:1fr 1fr;top:0}.total-cell:nth-child(2){border-right:none}.total-cell:first-child,.total-cell:nth-child(2){border-bottom:1px solid var(--border)}.table-wrap{overflow-x:auto}.table{min-width:640px}.field.span-2{grid-column:span 1}.preview-totals{grid-template-columns:1fr 1fr}}.brand-stack{flex-direction:column;gap:2px;display:flex}.kalai-cobrand{color:var(--text-quiet);margin-top:8px;font-size:12.5px}.kalai-cobrand a{color:var(--text-muted);font-weight:500;text-decoration:none}.kalai-cobrand a:hover{color:var(--primary);text-decoration:underline}.kalai-cobrand--compact{margin:0;padding-left:42px;font-size:11px;line-height:1.2}.page-footer{border-top:1px solid var(--border);text-align:center;margin-top:32px;padding-top:16px}.plumbing-deep{flex-direction:column;gap:4px;display:flex}.plumbing-cat-field{margin:10px 0 6px}.plumbing-chips{flex-wrap:wrap;gap:8px;display:flex}.plumbing-chip{appearance:none;border:1px solid var(--border-strong);background:var(--surface);color:var(--text);font:inherit;cursor:pointer;border-radius:999px;padding:7px 12px;font-size:12.5px;font-weight:600;transition:background .12s,border-color .12s,color .12s}.plumbing-chip:hover{background:#f8f9fb;border-color:#b8bfc9}.plumbing-chip.is-active{background:var(--primary-soft);color:var(--primary);border-color:#9bb4d4}.plumbing-cascade{margin-top:4px}.plumbing-join-readonly{color:var(--text-muted);cursor:default;background:#f8f9fb!important}.plumbing-parts-head{flex-wrap:wrap;align-items:baseline;gap:8px 12px;margin:14px 0 10px;display:flex}.plumbing-parts-title{letter-spacing:-.01em;margin:0;font-size:13px;font-weight:650}.plumbing-part-grid{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.plumbing-part-card{border:1px solid var(--border);border-radius:var(--radius);background:#fafbfc;padding:10px 12px;transition:border-color .12s,background .12s,box-shadow .12s}.plumbing-part-card.is-on{background:var(--surface);box-shadow:var(--shadow);border-color:#9bb4d4}.plumbing-part-top{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.plumbing-part-icon{border:1px solid var(--border);box-sizing:border-box;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:48px;height:48px;display:inline-flex;overflow:hidden}.plumbing-part-icon svg{width:44px;height:44px;display:block}.plumbing-part-card .plumbing-part-toggle{flex:1;min-width:0}.plumbing-part-toggle{cursor:pointer;align-items:flex-start;gap:8px;min-width:0;display:flex}.plumbing-part-toggle input{width:15px;height:15px;accent-color:var(--primary);flex-shrink:0;margin-top:2px}.plumbing-part-label{color:var(--text);font-size:13px;font-weight:600;line-height:1.3}.plumbing-part-cost{font-family:var(--mono);color:var(--text-muted);white-space:nowrap;font-variant-numeric:tabular-nums;font-size:11.5px}.plumbing-part-qty{flex-direction:column;gap:4px;margin-top:8px;display:flex}.plumbing-part-qty input{width:100%;max-width:140px}@media (width<=900px){.plumbing-part-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=560px){.plumbing-part-grid{grid-template-columns:1fr}}@media (width<=400px){.plumbing-part-top{flex-wrap:wrap}.plumbing-part-icon{width:44px;height:44px}}.trade-product-icon{border:1px solid var(--border);box-sizing:border-box;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:48px;height:48px;display:inline-flex;overflow:hidden}.trade-product-icon svg{width:44px;height:44px;display:block}.product-photo-thumb{object-fit:cover;object-position:center;border-radius:inherit;background:#f4f5f7;width:100%;height:100%;display:block}.plumbing-part-icon--photo,.trade-product-icon--photo{background:#f4f5f7;padding:0;position:relative}.plumbing-part-icon--photo .product-photo-caption{text-align:center;color:#3d4450;text-shadow:0 0 3px #fff,0 0 3px #fff;pointer-events:none;font-family:ui-sans-serif,system-ui,sans-serif;font-size:8px;font-weight:700;line-height:1;position:absolute;bottom:1px;left:0;right:0}.plumbing-part-icon img.product-photo-thumb,.trade-product-icon img.product-photo-thumb{width:100%;height:100%}.product-picker{flex-direction:column;gap:8px;display:flex}.product-picker-search{align-items:center;gap:8px;display:flex}.product-picker-search input[type=search]{flex:1;min-width:0}.product-picker-scroll{border:1px solid var(--border);border-radius:var(--radius);background:#fafbfc;max-height:320px;padding:8px;overflow-y:auto}.product-picker-empty{text-align:center;color:var(--text-muted);padding:16px;font-size:13px}.product-picker-group+.product-picker-group{margin-top:10px}.product-picker-cat{letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);margin:0 0 6px 2px;font-size:11px;font-weight:650}.product-picker-grid{grid-template-columns:repeat(2,1fr);gap:8px;display:grid}.product-picker-card{text-align:left;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);cursor:pointer;color:inherit;font:inherit;align-items:flex-start;gap:10px;width:100%;padding:8px 10px;transition:border-color .12s,background .12s,box-shadow .12s;display:flex}.product-picker-card:hover{background:#f8f9fb;border-color:#b8bfc9}.product-picker-card.is-selected{background:var(--primary-soft);box-shadow:var(--shadow);border-color:#9bb4d4}.product-picker-info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.product-picker-name{color:var(--text);font-size:13px;font-weight:600;line-height:1.3}.product-picker-cost{font-family:var(--mono);color:var(--text-muted);font-variant-numeric:tabular-nums;font-size:11.5px}@media (width<=700px){.product-picker-grid{grid-template-columns:1fr}}@media (width<=400px){.trade-product-icon{width:44px;height:44px}}.product-photo-hit{cursor:zoom-in;color:inherit;line-height:0;font:inherit;background:0 0;border:none;border-radius:8px;flex-shrink:0;margin:0;padding:0;display:inline-flex}.product-photo-hit:hover .plumbing-part-icon,.product-photo-hit:hover .trade-product-icon{border-color:#9bb4d4;box-shadow:0 0 0 2px #1e4d8c2e}.product-photo-hit:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.product-lightbox-overlay{z-index:1000;box-sizing:border-box;background:#1218208c;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.product-lightbox-panel{background:var(--surface);border:1px solid var(--border);box-sizing:border-box;border-radius:12px;width:min(720px,100%);max-height:min(90vh,880px);padding:16px 18px 18px;overflow:auto;box-shadow:0 18px 48px #00000047}.product-lightbox-head{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px;display:flex}.product-lightbox-title{letter-spacing:-.02em;color:var(--text);margin:0;font-size:18px;font-weight:700;line-height:1.25}.product-lightbox-close{flex-shrink:0}.product-lightbox-body{grid-template-columns:minmax(180px,280px) 1fr;align-items:start;gap:16px;display:grid}.product-lightbox-visual{aspect-ratio:1;border:1px solid var(--border);box-sizing:border-box;background:#f4f5f7;border-radius:10px;justify-content:center;align-items:center;width:100%;max-height:320px;display:flex;overflow:hidden}.product-lightbox-img{object-fit:contain;object-position:center;background:#f4f5f7;width:100%;height:100%;display:block}.product-lightbox-fallback{box-sizing:border-box;justify-content:center;align-items:center;width:100%;height:100%;padding:16px;display:flex}.product-lightbox-fallback .plumbing-part-icon,.product-lightbox-fallback .trade-product-icon,.product-lightbox-icon.plumbing-part-icon,.product-lightbox-icon.trade-product-icon{border-radius:12px;width:min(200px,70%);height:min(200px,70%)}.product-lightbox-fallback .plumbing-part-icon svg,.product-lightbox-fallback .trade-product-icon svg,.product-lightbox-icon.plumbing-part-icon svg,.product-lightbox-icon.trade-product-icon svg{width:92%;height:92%}.product-lightbox-fallback-text{color:var(--text-muted);font-size:13px}.product-lightbox-details{min-width:0}.product-lightbox-blurb{color:var(--text);margin:0 0 12px;font-size:13.5px;line-height:1.45}.product-lightbox-specs{gap:8px;margin:0;display:grid}.product-lightbox-spec{border-bottom:1px solid var(--border);grid-template-columns:110px 1fr;align-items:baseline;gap:8px;padding:6px 0;display:grid}.product-lightbox-spec:last-child{border-bottom:none}.product-lightbox-spec dt{letter-spacing:.03em;text-transform:uppercase;color:var(--text-muted);margin:0;font-size:11.5px;font-weight:650}.product-lightbox-spec dd{color:var(--text);font-variant-numeric:tabular-nums;word-break:break-word;margin:0;font-size:13.5px}@media (width<=620px){.product-lightbox-body{grid-template-columns:1fr}.product-lightbox-visual{width:min(280px,100%);max-height:260px;margin:0 auto}}.measure-input-row{align-items:center;gap:6px;display:flex}.measure-input-row input{flex:1;min-width:0}.measure-unit{color:var(--text-muted);white-space:nowrap;font-size:12px;font-weight:600}.chip-group{flex-wrap:wrap;gap:8px;display:flex}.chip{border:1px solid var(--border-strong);background:var(--surface);cursor:pointer;font:inherit;color:var(--text);border-radius:999px;padding:6px 14px;font-size:13px}.chip--on{background:var(--primary);border-color:var(--primary);color:#fff}.chip-sub{opacity:.75;margin-left:4px;font-size:11px}.tier-picker{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;display:grid}.tier-card{text-align:left;border:1.5px solid var(--border);border-radius:var(--radius);background:var(--surface);cursor:pointer;font:inherit;color:var(--text);flex-direction:column;align-items:flex-start;gap:4px;padding:12px;display:flex}.tier-card--on{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}.tier-badge{text-transform:uppercase;letter-spacing:.05em;color:var(--primary);font-size:11px;font-weight:700}.tier-visual .trade-product-icon{width:56px;height:56px}.tier-title{font-weight:600}.tier-sub{color:var(--text-muted);font-size:12px}.tier-price{font-size:13px;font-weight:600}.formula-list{flex-direction:column;gap:6px;display:flex}.formula-group-title{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin:12px 0 2px;font-size:12px;font-weight:700}.formula-line{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);grid-template-columns:48px 1fr auto 110px;align-items:center;gap:10px;padding:8px 10px;display:grid}.formula-line--locked{background:var(--warn-bg);border-color:#d97706}.formula-line-photo{cursor:zoom-in;background:0 0;border:0;padding:0}.formula-line-photo .trade-product-icon{width:44px;height:44px}.formula-line-math{color:var(--text-muted);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.formula-line-qty{align-items:center;gap:4px;display:flex}.formula-line-qty input{width:72px}.formula-line-cost{text-align:right}.lock-btn{border:1px solid var(--border-strong);background:var(--surface);cursor:pointer;border-radius:6px;padding:3px 6px}.lock-btn--on{border-color:#d97706}.roof-summary{background:var(--primary-soft);border-radius:var(--radius);flex-wrap:wrap;gap:16px;margin:12px 0;padding:10px 12px;font-size:14px;display:flex}.roof-step{margin-top:18px}.roof-step h3{margin:0 0 8px;font-size:14px}@media (width<=640px){.formula-line{grid-template-columns:40px 1fr}.formula-line-qty,.formula-line-cost{text-align:left;grid-column:2}}.rooms-editor{border:1px dashed var(--border-strong);border-radius:var(--radius);background:var(--bg);margin-bottom:14px;padding:10px 12px}.rooms-head{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.rooms-head .muted{flex:1;font-size:13px}.rooms-table input,.rooms-table select{width:100%;min-width:56px}.rooms-table td{padding:4px 6px}.room-include{flex-wrap:wrap;gap:6px;margin-top:6px;display:flex}.tab-row{border-bottom:1px solid var(--border);gap:6px;margin:6px 0 4px;display:flex}.tab-btn{cursor:pointer;font:inherit;color:var(--text-muted);background:0 0;border:0;border-bottom:2px solid #0000;padding:8px 14px}.tab-btn--on{color:var(--primary);border-bottom-color:var(--primary);font-weight:600}.grid-table input{width:54px}.grid-table th{white-space:nowrap;font-size:11px}.toggle-field{align-items:center;gap:8px;padding-top:22px;display:flex}.brand-logo{width:auto;height:64px;display:block}.landing-nav{background:var(--header-bg);border-bottom:3px solid var(--primary);box-shadow:0 2px #de2010}.app-nav .kalai-cobrand--compact,.landing-nav .kalai-cobrand--compact{color:#a3a3a3;padding-left:0}.app-nav .kalai-cobrand a,.landing-nav .kalai-cobrand a{color:#d4d4d4}.app-nav .kalai-cobrand a:hover,.landing-nav .kalai-cobrand a:hover{color:var(--primary)}.app-nav .btn-ghost,.landing-nav .btn-ghost{color:#f5f5f5}.app-nav .btn-ghost:hover,.landing-nav .btn-ghost:hover,.app-nav .btn-ghost.active{color:#fff;background:#ef7d002e}.app-nav .plan-pill{color:#ffb257;background:#ef7d0033}@media (width<=640px){.brand-logo{height:48px}}.formula-line--nophoto{grid-template-columns:1fr auto 110px}@media (width<=640px){.formula-line--nophoto{grid-template-columns:1fr}.formula-line--nophoto .formula-line-qty,.formula-line--nophoto .formula-line-cost{grid-column:1}}.modal-backdrop{z-index:100;background:#0b0b0b8c;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.modal{background:var(--surface);box-shadow:var(--shadow-md);border-radius:10px;flex-direction:column;gap:12px;width:min(760px,100%);max-height:calc(100vh - 32px);padding:18px 20px;display:flex;overflow:auto}.modal-head{border-bottom:3px solid var(--primary);justify-content:space-between;align-items:center;padding-bottom:8px;display:flex}.modal-head h2{margin:0;font-size:18px}.modal-actions{justify-content:flex-end;gap:8px;display:flex}.bid-grid{grid-template-columns:1fr 1fr;gap:14px;display:grid}.bid-dialog fieldset{border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:8px;margin:0;padding:10px 12px;display:flex}.bid-dialog legend{padding:0 4px;font-size:13px;font-weight:650}.bid-legend-2{margin-top:6px}.bid-options{flex-wrap:wrap;flex-direction:row!important;gap:14px!important}.bid-options label{align-items:center;gap:6px;font-size:13.5px;display:flex}.bid-note{flex-basis:100%;margin:0;font-size:12px}.field-label{color:var(--text-muted);font-size:12px;font-weight:600}.field textarea{border:1px solid var(--border-strong);font:inherit;border-radius:6px;padding:8px 10px;font-size:13px}.link-btn{color:var(--primary-text);cursor:pointer;background:0 0;border:0;padding:0;font-size:12px;text-decoration:underline}@media (width<=640px){.bid-grid{grid-template-columns:1fr}}.auth-page{place-items:start center;display:grid}.auth-card{width:min(480px,100%);padding:22px}.auth-card h1{margin:0 0 4px;font-size:22px}.auth-card form{flex-direction:column;gap:12px;margin-top:12px;display:flex}.plan-choice{gap:8px;display:grid}.plan-opt{border:1.5px solid var(--border);border-radius:var(--radius);cursor:pointer;grid-template-columns:auto 1fr auto;align-items:center;column-gap:8px;padding:8px 10px;display:grid}.plan-opt small{color:var(--text-muted);grid-column:2/4}.plan-opt.is-on{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}.agree{flex-wrap:wrap;align-items:baseline;gap:6px;font-size:13px;display:flex}.draft-banner{background:var(--warn-bg);color:var(--warn);border-radius:var(--radius);border:1px solid #f5d27a;padding:8px 12px;font-size:13px}.legal-page{max-width:780px;line-height:1.6}.legal-page h1{margin-top:18px}.legal-page h2{margin-top:22px;font-size:17px}.legal-callout{border-left:4px solid var(--danger);background:#fdf0ee;border-radius:4px;margin:18px 0;padding:4px 14px}.footer-legal a{color:inherit}.upgrade-prompt{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px 16px;padding:12px 14px;display:flex}.upgrade-prompt-body{flex-direction:column;flex:260px;gap:2px;min-width:0;line-height:1.45;display:flex}.upgrade-prompt-title{color:var(--text,#111);font-size:13.5px}.upgrade-prompt-actions{flex-wrap:wrap;gap:8px;display:flex}.totals-bar{top:109px}.modal{overscroll-behavior:contain;max-height:calc(100dvh - 32px)}.modal-actions{background:var(--surface);border-top:1px solid var(--border);margin:0 -20px -18px;padding:10px 20px 14px;position:sticky;bottom:-18px}@media (width<=900px){.app-nav{position:relative}.totals-bar{top:0}input:not([type=checkbox]):not([type=radio]):not([type=range]),select,textarea{font-size:16px!important}.field input,.field select,.field textarea{min-height:44px}.btn,.btn-sm,.btn-lg,.chip,.tab-btn{min-height:40px}.btn-ghost.btn-sm[aria-label=Close]{min-width:40px}.plan-pill{align-items:center;min-height:40px;padding:4px 12px;display:inline-flex}.link-btn{min-height:40px;padding:0 8px}.bid-options label,.agree{align-items:center;min-height:40px}label:has(>input[type=checkbox]){align-items:center;min-height:40px}label:has(>input[type=radio]){align-items:center;min-height:40px}input[type=checkbox],input[type=radio]{flex:none;width:18px;height:18px}.agree a{align-items:center;min-height:40px;display:inline-flex}.plumbing-chip{min-height:40px}.formula-line-qty input{width:88px;min-height:40px;padding:6px 8px}.lock-btn{min-width:40px;min-height:40px}}@media (width<=640px){.page{padding:16px 14px 40px}.app-nav-inner{gap:10px;padding:10px 14px}.nav-actions{justify-content:flex-end;gap:6px}.total-cell{padding:8px 12px}.total-label{margin-bottom:1px;font-size:10px}.total-value{font-size:15px}.total-cell:last-child .total-value{font-size:16px}.table-wrap:has(.table-cards){overflow-x:visible}.table.table-cards{min-width:0}.table-cards thead{display:none}.table-cards,.table-cards tbody{display:block}.table-cards tbody tr{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:6px 12px;padding:12px 14px;display:flex}.table-cards tbody tr:last-child{border-bottom:none}.table-cards td{padding:0;display:block;border:0!important}.table-cards td[colspan]{flex:100%}.table-cards td.cell-main{flex:55%;order:0;min-width:0}.table-cards td.cell-action{text-align:right;flex:none;order:0}.table-cards td.cell-status{flex-wrap:wrap;flex:100%;order:1;align-items:center;gap:4px;display:flex}.table-cards td.cell-status .btn{margin-left:0!important}.table-cards td.num[data-label]{text-align:left;overflow-wrap:anywhere;flex:20%;order:2;min-width:0;font-size:12.5px}.table-cards td.num[data-label]:before{content:attr(data-label);font-family:var(--font);text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);font-size:10px;font-weight:650;display:block}.modal-backdrop{padding:8px}.modal{max-height:calc(100dvh - 16px);padding:14px 14px 18px}.modal-actions{margin:0 -14px -18px;padding:10px 14px 14px}.modal-actions .btn{flex:1 1 0}.upgrade-prompt-actions{width:100%}.upgrade-prompt-actions .btn{flex:auto}}.plan-guarantee,.guarantee-line{color:var(--success);margin:0 0 14px;font-size:12.5px;font-weight:600;line-height:1.45;display:block}.guarantee-line{margin:4px 0 0;font-weight:500}.plan-guarantee a,.guarantee-line a{color:inherit;font-weight:500;text-decoration:underline}.auth-card .plan-guarantee{margin:6px 0 12px}.legal-refunds{border-left:4px solid var(--success);background:var(--success-bg);border-radius:4px;margin:18px 0;padding:4px 14px}.founding-badge{background:var(--success-bg);color:var(--success);border:1px solid #9fd38f;gap:4px}.app-nav .founding-badge{color:#9be38a;background:#198a0038;border-color:#9be38a66}.founding-badge--compact{padding:1px 7px;font-size:11px}.feedback-fab{right:max(14px, env(safe-area-inset-right));bottom:max(14px, env(safe-area-inset-bottom));z-index:90;font:inherit;color:#fff;background:var(--header-bg);border:0;border-left:3px solid var(--primary);box-shadow:0 2px 0 0 var(--danger), var(--shadow-md);cursor:pointer;opacity:.92;border-radius:999px;align-items:center;gap:6px;padding:8px 14px 8px 12px;font-size:13px;font-weight:600;display:inline-flex;position:fixed}.feedback-fab:hover,.feedback-fab:focus-visible{opacity:1;background:#1c1c1c}.feedback-fab:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.feedback-fab-icon{color:var(--primary);font-size:14px;line-height:1}@media print{.feedback-fab{display:none}}.feedback-modal{width:min(560px,100%)}.feedback-form{flex-direction:column;gap:12px;display:flex}.feedback-form textarea{box-sizing:border-box;resize:vertical;width:100%}.feedback-form .field input{box-sizing:border-box;width:100%}.feedback-type{border:0;margin:0;padding:0}.feedback-type legend{margin-bottom:6px}.chip-row{flex-wrap:wrap;gap:6px;display:flex}.chip-radio{border:1px solid var(--border-strong);cursor:pointer;background:var(--surface);border-radius:999px;align-items:center;gap:6px;padding:5px 12px;font-size:13px;font-weight:600;display:inline-flex}.chip-radio input{opacity:0;width:1px;height:1px;position:absolute}.chip-radio.is-on{background:var(--primary-soft);border-color:var(--primary);color:var(--primary-text)}.chip-radio:has(input:focus-visible){outline:2px solid var(--primary);outline-offset:1px}.feedback-identity{grid-template-columns:1fr 1fr;gap:10px;display:grid}@media (width<=520px){.feedback-identity{grid-template-columns:1fr}}.feedback-consent{align-items:flex-start;gap:8px;font-size:13px;display:flex}.feedback-fine{margin:0;font-size:12px}.feedback-done{flex-direction:column;gap:6px;display:flex}.feedback-done-title{color:var(--success);margin:0;font-size:15px}.stars{gap:2px;display:inline-flex}.star-btn{cursor:pointer;color:#d1d5db;justify-content:center;align-items:center;min-width:36px;min-height:36px;padding:2px;font-size:26px;line-height:1;display:inline-flex;position:relative}.star-btn input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.star-btn.on{color:var(--primary)}.star-btn:has(input:focus-visible){outline:2px solid var(--primary);border-radius:4px}.stars-readonly .star{color:#d1d5db;font-size:16px}.stars-readonly .star.on{color:var(--primary)}.review-prompt{background:var(--success-bg);border:1px solid #9fd38f;border-left:4px solid var(--success);border-radius:6px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px 16px;margin-bottom:12px;padding:12px 14px;font-size:13px;display:flex}.review-prompt-body{flex-direction:column;flex:280px;gap:2px;line-height:1.45;display:flex}.review-prompt-actions{flex-wrap:wrap;gap:8px;display:flex}.reviews-page{max-width:900px}.lead-sm{color:var(--text-muted);max-width:720px;line-height:1.55}.reviews-empty{background:var(--empty-bg);border:1px dashed var(--border-strong);border-radius:var(--radius);color:var(--text-muted);margin:10px 0 20px;padding:16px}.review-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;margin:10px 0 20px;display:grid}.review-card{background:var(--surface);border:1px solid var(--border);border-top:3px solid var(--primary);border-radius:var(--radius);box-shadow:var(--shadow);padding:12px 14px;font-size:14px}.review-card p{margin:6px 0;line-height:1.5}.review-card-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.review-q{color:var(--text-muted);font-size:12.5px;font-weight:600}.review-by{font-weight:600}.review-card.is-example{border-top-color:var(--danger);background:#fdf0ee}.example-flag{color:var(--danger);letter-spacing:.02em;margin-bottom:4px;font-size:11px;font-weight:700}.review-form-card{margin:10px 0 24px;padding:16px 18px}.review-form-card h2{margin-top:0}.review-form-card .modal-actions{border:0;margin:0;padding:0;position:static}.admin-gate{flex-direction:column;gap:12px;max-width:420px;display:flex}.admin-actions{gap:8px;display:flex}.admin-filters{flex-wrap:wrap;gap:12px;margin:12px 0;display:flex}.admin-filters .field{min-width:180px}.admin-list{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.admin-item{background:var(--surface);border:1px solid var(--border);border-left:4px solid var(--primary);border-radius:var(--radius);padding:12px 14px}.admin-item.status-done{border-left-color:var(--success)}.admin-item.status-declined{border-left-color:var(--text-quiet);opacity:.85}.admin-item-head{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.admin-meta{font-size:12px}.type-badge{background:var(--empty-bg);color:var(--text)}.type-review{background:var(--primary-soft);color:var(--primary-text)}.type-bug{color:var(--danger);background:#fdf0ee}.type-feature{background:var(--success-bg);color:var(--success)}.admin-answers{grid-template-columns:max-content 1fr;gap:4px 12px;margin:10px 0;font-size:13.5px;display:grid}.admin-answers dt{color:var(--text-muted);font-weight:600}.admin-answers dd{white-space:pre-wrap;margin:0}@media (width<=560px){.admin-answers{grid-template-columns:1fr}.admin-answers dd{margin-bottom:6px}}.ok-text{color:var(--success)}.admin-controls{border-top:1px solid var(--border);flex-wrap:wrap;align-items:flex-end;gap:12px;padding-top:10px;display:flex}.admin-approve{align-items:center;gap:6px;font-size:13px;font-weight:600;display:inline-flex}.admin-approve.is-disabled{color:var(--text-quiet)}.admin-note{flex:280px;align-items:flex-end;gap:8px;display:flex}.admin-note .field{flex:1}.admin-note textarea{box-sizing:border-box;width:100%}.stars .star-btn>span,.stars-readonly .star{line-height:0;display:inline-flex}.feedback-form .feedback-consent{grid-template-columns:20px 1fr;align-items:start;gap:8px;display:grid}.feedback-form .feedback-consent input{margin:2px 0 0}.legal-refunds ul{padding-left:20px}@media (width<=640px){.legal-refunds{padding:4px 10px}}.stars .star-btn{color:#c9ced6}.stars .star-btn.on{color:var(--primary)}.reviews-page section>h2.section-heading{margin:22px 0 6px}#root{padding-bottom:64px}
