:root{--bg:#f2efe7;--surface:#fff;--surface-alt:#faf8f2;--border:#e7e1d0;--border-strong:#d8cfb4;--text:#1c1d22;--text-muted:#6b6558;--text-faint:#a29a84;--gold:#a8842f;--gold-soft:#f5edd8;--emerald:#0b6b45;--emerald-soft:#e2f3ea;--copper:#a1531c;--copper-soft:#f7e8d3;--danger:#9b2f2f;--danger-soft:#f6dede;--radius-lg:16px;--radius-md:11px;--radius-sm:8px;--shadow-card:0 1px 2px #1414190a, 0 6px 18px #1414190d;--shadow-lift:0 18px 44px #14141924;--sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--display:"Lora", "Georgia", serif}*{box-sizing:border-box}html,body,#root{min-height:100%}body{background:radial-gradient(120% 140% at 15% 0%, #f8f5ec 0%, var(--bg) 55%, #ece6d4 100%);color:var(--text);font-family:var(--sans);-webkit-font-smoothing:antialiased;margin:0}.app-shell{justify-content:center;align-items:flex-start;min-height:100vh;padding:10px;display:flex}.ledger-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);width:100%;max-width:660px;box-shadow:var(--shadow-lift);padding:14px 14px 12px}@media (width>=1024px){.app-shell{min-height:calc(100vh - 42px);padding:12px 16px}.ledger-card{flex-direction:column;max-width:none;min-height:calc(100vh - 66px);padding:16px 20px 14px;display:flex}.content-grid{flex:1;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:16px;display:grid}.labor-row,.material-row{gap:4px;min-width:0;padding:5px 6px;font-size:10px}}@media (width>=1200px){.has-detail .content-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width>=1024px){.ledger-card>*{zoom:var(--fit,1)}}html{scrollbar-gutter:stable}@media (width<=480px){.app-shell{padding:8px}.ledger-card{border-radius:var(--radius-md);padding:10px 10px 9px}.section{padding:8px 9px}}.content-grid,.col-left,.col-mid,.col-right,.field-row{min-width:0}.mobile-tabs{background:var(--border);border-radius:var(--radius-sm);gap:2px;margin-bottom:7px;padding:3px;display:flex}.mobile-tabs button{text-align:center;min-width:0;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;flex:1;padding:6px 4px;font-size:11px;font-weight:700;transition:color .15s,background-color .15s,box-shadow .15s}.mobile-tabs button:hover{color:var(--text)}.mobile-tabs button.active{color:var(--text);background:var(--surface);box-shadow:var(--shadow-card)}.mobile-panel{display:none}.mobile-panel.active{display:block}@media (width>=1024px){.mobile-tabs{display:none}.mobile-panel{display:block!important}}.masthead{border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:10px;padding-bottom:8px;display:flex}.masthead h1{font-family:var(--display);color:var(--text);letter-spacing:-.01em;margin:0;font-size:17px;font-weight:700}.masthead p{color:var(--text-muted);margin:2px 0 0;font-size:10.5px;font-weight:500}.badge{letter-spacing:.02em;white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:5px 11px;font-size:10.5px;font-weight:700;display:inline-flex}.badge.live{background:var(--emerald-soft);color:var(--emerald)}.badge.calculating{background:var(--gold-soft);color:var(--gold)}.badge-dot{opacity:.9;background:currentColor;border-radius:50%;width:6px;height:6px;box-shadow:0 0 0 3px}.badge.live .badge-dot{animation:1.8s ease-in-out infinite pulse-dot}@keyframes pulse-dot{0%,to{box-shadow:0 0 0 2px #0b6b452e}50%{box-shadow:0 0 0 5px #0b6b451a}}.section{background:var(--surface-alt);border:1px solid var(--border);border-radius:var(--radius-md);margin-bottom:8px;padding:9px 11px}.eyebrow{color:var(--gold);letter-spacing:.06em;text-transform:uppercase;margin:0 0 6px;font-size:9.5px;font-weight:700}.field-row{grid-template-columns:1fr;gap:7px;margin-bottom:7px;display:grid}.field-row:last-child{margin-bottom:0}@media (width>=480px){.field-row.cols-2{grid-template-columns:1fr 1fr}.field-row.cols-3{grid-template-columns:1.4fr 1fr 1fr}}.field{min-width:0}.field label{color:var(--text-muted);margin-bottom:3px;font-size:10px;font-weight:600;display:block}.field input[type=text],.field input[type=number],.field select{width:100%;min-width:0;font-size:13px;font-weight:500;font-family:var(--sans);color:var(--text);background:var(--surface);border:1.5px solid var(--border-strong);border-radius:var(--radius-sm);appearance:none;outline:none;padding:7px 10px;transition:border-color .15s,box-shadow .15s}.field select{text-overflow:ellipsis;white-space:nowrap;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%236b6558'/%3E%3C/svg%3E");background-position:right 10px center;background-repeat:no-repeat;padding-right:26px;overflow:hidden}.design-image-row{align-items:flex-start;gap:10px;margin-bottom:8px;display:flex}.design-thumb-lg{object-fit:cover;border-radius:var(--radius-md);border:1.5px solid var(--border-strong);background:var(--surface);flex-shrink:0;width:78px;height:78px}.design-header-fields{flex:1;grid-template-columns:1fr 1fr;gap:6px;min-width:0;display:grid}.field-compact label{margin-bottom:2px;font-size:9px}.field-compact input,.field-compact select{padding:5px 8px;font-size:11px}.field input:hover,.field select:hover{border-color:var(--gold)}.field input:focus,.field select:focus{border-color:var(--gold);box-shadow:0 0 0 3px var(--gold-soft)}.warning-banner{background:var(--copper-soft);color:var(--copper);border-radius:var(--radius-sm);margin-bottom:7px;padding:7px 10px;font-size:11px;font-weight:500;line-height:1.35}.raw-material-subsection{margin-bottom:7px}.raw-material-subsection:last-child{margin-bottom:0}.raw-material-subtitle{color:var(--text);margin:0 0 5px;font-size:10px;font-weight:700}.raw-material-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:3px;display:grid}.raw-material-item{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);justify-content:space-between;align-items:baseline;gap:8px;min-width:0;padding:3px 7px;display:flex}.raw-material-item.rm-item-wide{grid-column:1/-1}.raw-material-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.02em;white-space:nowrap;text-overflow:ellipsis;font-size:9px;font-weight:600;overflow:hidden}.raw-material-value{font-family:var(--display);color:var(--text);font-variant-numeric:tabular-nums;text-align:right;min-width:0;font-size:11.5px;font-weight:700}.raw-material-item.rm-item-wide .raw-material-value{flex:auto}.raw-material-value select{width:100%;min-width:0;font-family:var(--display);color:var(--text);background:var(--surface);border:1.5px solid var(--border-strong);border-radius:var(--radius-sm);appearance:none;text-overflow:ellipsis;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%236b6558'/%3E%3C/svg%3E");background-position:right 8px center;background-repeat:no-repeat;outline:none;padding:4px 22px 4px 6px;font-size:13px;font-weight:700;transition:border-color .15s,box-shadow .15s}.raw-material-value select:hover{border-color:var(--gold)}.raw-material-value select:focus{border-color:var(--gold);box-shadow:0 0 0 3px var(--gold-soft)}.labor-section{border-color:var(--border-strong)}.eyebrow-labor{color:var(--copper)}.labor-style-heading{color:var(--text);margin:0 0 6px;font-size:11px;font-weight:700}.labor-empty{color:var(--text-faint);margin:0;font-size:11px;font-style:italic;font-weight:500}.labor-table{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);flex-direction:column;gap:0;display:flex;overflow-x:auto}.labor-rows{max-height:none}.labor-row{font-variant-numeric:tabular-nums;border-bottom:1px solid var(--border);grid-template-columns:minmax(0,1.2fr) minmax(0,.6fr) minmax(0,.8fr) minmax(0,.8fr) minmax(0,1fr) minmax(0,.8fr);gap:5px;min-width:0;padding:6px 8px;font-size:11px;display:grid}.labor-row:last-child{border-bottom:none}.labor-row span:not(:first-child){text-align:right}.labor-row>span{text-overflow:ellipsis;min-width:0;overflow:hidden}.labor-row.labor-fallback{grid-template-columns:minmax(0,1.5fr) minmax(0,.8fr) minmax(0,.8fr) minmax(0,.9fr)}.labor-row.labor-head{background:var(--copper-soft);color:var(--copper);text-transform:uppercase;letter-spacing:.02em;border-bottom:1px solid var(--border-strong);font-size:9.5px;font-weight:700}.labor-row:not(.labor-head):nth-child(2n){background:var(--surface-alt)}.labor-formula{color:var(--text-muted);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10px}.labor-row.labor-total{background:var(--gold-soft);border-top:1.5px solid var(--border-strong);font-weight:700}.material-table{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);flex-direction:column;gap:0;display:flex;overflow-x:auto}.material-rows{max-height:none}.material-row{font-variant-numeric:tabular-nums;border-bottom:1px solid var(--border);grid-template-columns:minmax(0,1fr) minmax(0,.85fr) minmax(0,.34fr) minmax(0,.42fr) minmax(0,.72fr) minmax(0,1.05fr) minmax(0,1.05fr);gap:5px;min-width:0;padding:6px 8px;font-size:11px;display:grid}.material-row span:not(:first-child){text-align:right}.material-row>span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.material-rows .material-row:last-child{border-bottom:none}.material-row.material-head{background:var(--emerald-soft);color:var(--emerald);text-transform:uppercase;letter-spacing:.02em;border-bottom:1px solid var(--border-strong);font-size:9.5px;font-weight:700}.material-row.material-total{background:var(--emerald-soft);border-top:1.5px solid var(--border-strong);border-bottom:none;font-weight:700}.material-rows .material-row:nth-child(2n){background:var(--surface-alt)}.verify-table{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);flex-direction:column;gap:0;display:flex;overflow-x:auto}.verify-rows{max-height:260px;overflow-y:auto}.verify-row{font-variant-numeric:tabular-nums;border-bottom:1px solid var(--border);grid-template-columns:minmax(0,1.4fr) minmax(0,.9fr) minmax(0,1fr) minmax(0,.8fr) minmax(0,.8fr);gap:5px;min-width:0;padding:6px 8px;font-size:11px;display:grid}.verify-row span:not(:first-child){text-align:right}.verify-rows .verify-row:last-child{border-bottom:none}.verify-row.verify-head{background:var(--emerald-soft);color:var(--emerald);text-transform:uppercase;letter-spacing:.02em;border-bottom:1px solid var(--border-strong);font-size:9.5px;font-weight:700}.verify-rows .verify-row:nth-child(2n){background:var(--surface-alt)}.verify-filter{color:var(--text-muted);white-space:nowrap;align-items:center;gap:4px;font-size:10px;display:inline-flex}.parcel-tabs{background:var(--border);border-radius:var(--radius-sm);gap:2px;margin-bottom:7px;padding:3px;display:flex}.parcel-tab{text-align:center;min-width:0;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;flex:1;padding:5px 4px;font-size:11px;font-weight:600;transition:color .15s,background-color .15s,box-shadow .15s}.parcel-tab:hover{color:var(--text)}.parcel-tab.active{color:var(--text);background:var(--surface);box-shadow:var(--shadow-card)}.size-band-row{grid-template-columns:34px 1fr;align-items:center;gap:5px;min-width:0;margin-bottom:4px;display:grid}.size-band-row:last-child{margin-bottom:0}@media (width>=420px){.size-band-row{grid-template-columns:36px 1fr 1.2fr auto}}.size-band-row .size-label{color:var(--text-muted);font-size:10.5px;font-weight:700}.size-band-row .band-inputs{grid-template-columns:1fr 1fr;gap:6px;min-width:0;display:grid}@media (width>=420px){.size-band-row .band-inputs{display:contents}}.size-band-row input,.size-band-row select{border:1.5px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);outline:none;min-width:0;padding:5px 7px;font-size:11.5px;transition:border-color .15s,box-shadow .15s}.size-band-row select{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.size-band-row input:hover,.size-band-row select:hover{border-color:var(--gold)}.size-band-row input:focus,.size-band-row select:focus{border-color:var(--gold);box-shadow:0 0 0 3px var(--gold-soft)}.availability-pill{text-align:center;white-space:nowrap;border-radius:999px;justify-self:start;min-width:0;padding:3px 8px;font-size:9.5px;font-weight:700}@media (width>=420px){.availability-pill{min-width:74px}}.availability-pill.available{background:var(--emerald-soft);color:var(--emerald)}.availability-pill.unavailable{background:var(--copper-soft);color:var(--copper)}.availability-pill.unknown{background:var(--border);color:var(--text-faint)}.tally{border-radius:var(--radius-md);background:linear-gradient(155deg,#0e7a4f 0%,#0b6b45 100%);border:none;grid-template-columns:1fr 1fr;gap:8px;padding:10px 12px;display:grid;box-shadow:0 10px 26px #0b6b4547}@media (width>=420px){.tally{grid-template-columns:repeat(4,1fr)}}.tally-item.gp{text-align:right;grid-column:span 2}@media (width>=420px){.tally-item.gp{grid-column:auto}}.tally-label{color:#ffffffb8;text-transform:uppercase;letter-spacing:.04em;font-size:9.5px;font-weight:700}.tally-value{font-family:var(--display);color:#fff;font-variant-numeric:tabular-nums;margin-top:2px;font-size:15px;font-weight:700}.tally-value.gp-value{font-size:22px}.status-line{color:var(--text-muted);margin-top:6px;font-size:10.5px;font-weight:500;line-height:1.35}.status-line.error{color:var(--danger)}.price-update-meta{color:var(--text-muted);margin:7px 0 0;font-size:10.5px;font-weight:600}.price-update-message{color:var(--emerald);margin:6px 0 0;font-size:10.5px;font-weight:500;line-height:1.35}.price-update-message.error{color:var(--danger)}.field-hint{color:var(--text-faint);flex-wrap:wrap;align-items:center;gap:4px;margin:4px 0 0;font-size:9.5px;font-weight:600;line-height:1.4;display:flex}.field-hint-sep{color:var(--border-strong)}.field-hint-reset{font:inherit;color:var(--gold);cursor:pointer;background:0 0;border:none;padding:0;font-weight:700;text-decoration:underline}.field-hint-reset:hover{color:var(--copper)}.upload-trigger{color:#fff;background:var(--gold);border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;border:none;padding:7px 14px;font-size:12px;font-weight:700;transition:opacity .15s}.upload-trigger:hover{opacity:.88}.modal-backdrop{z-index:100;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#14141980;justify-content:center;align-items:center;padding:14px;display:flex;position:fixed;inset:0}.modal-dialog{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-lg);width:100%;max-width:460px;max-height:calc(100vh - 28px);box-shadow:var(--shadow-lift);outline:none;flex-direction:column;display:flex}.modal-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:10px;padding:12px 14px;display:flex}.modal-head h2{font-family:var(--display);color:var(--text);margin:0;font-size:16px;font-weight:700}.modal-close{color:var(--text-faint);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;padding:2px 4px;font-size:13px;line-height:1}.modal-close:hover:not(:disabled){color:var(--danger);background:var(--danger-soft)}.modal-close:disabled{opacity:.4;cursor:not-allowed}.modal-body{min-height:0;padding:12px 14px;overflow-y:auto}.modal-lede{color:var(--text-muted);margin:0 0 10px;font-size:11px;font-weight:500;line-height:1.5}.modal-lede code,.modal-detail code{background:var(--surface-alt);border:1px solid var(--border);color:var(--text);border-radius:4px;padding:1px 4px;font-size:10px}.modal-detail{background:var(--border);border:1px solid var(--border);border-radius:var(--radius-sm);gap:1px;margin:0 0 12px;display:grid;overflow:hidden}.modal-detail>div{background:var(--surface);grid-template-columns:108px 1fr;gap:8px;padding:6px 9px;display:grid}.modal-detail dt{text-transform:uppercase;letter-spacing:.05em;color:var(--text-faint);font-size:9.5px;font-weight:800;line-height:1.5}.modal-detail dd{color:var(--text);margin:0;font-size:11px;font-weight:600;line-height:1.45}.modal-file-row input[type=file]{width:100%;color:var(--text-muted);border:1px dashed var(--border-strong);border-radius:var(--radius-sm);background:var(--surface-alt);padding:8px;font-size:11px}.modal-foot{border-top:1px solid var(--border);justify-content:flex-end;align-items:center;gap:8px;padding:10px 14px;display:flex}.modal-btn-ghost,.modal-btn-primary{border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;padding:7px 14px;font-size:12px;font-weight:700;transition:opacity .15s}.modal-btn-ghost{border:1px solid var(--border-strong);background:var(--surface);color:var(--text-muted)}.modal-btn-ghost:hover:not(:disabled){background:var(--surface-alt)}.modal-btn-primary{background:var(--gold);color:#fff;border:none}.modal-btn-primary:hover:not(:disabled){opacity:.88}.modal-btn-ghost:disabled,.modal-btn-primary:disabled{opacity:.45;cursor:not-allowed}@media (width<=480px){.modal-detail>div{grid-template-columns:1fr;gap:1px}}.modal-dialog-wide{max-width:820px}.applied-trigger{color:var(--emerald);background:var(--emerald-soft);border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;border:1px solid #0000;align-items:center;gap:6px;padding:7px 12px;font-size:12px;font-weight:700;display:inline-flex}.applied-trigger:hover:not(:disabled){border-color:var(--emerald)}.applied-trigger:disabled{opacity:.45;cursor:not-allowed}.applied-count{background:var(--emerald);color:#fff;border-radius:999px;padding:1px 5px;font-size:9.5px;font-weight:800}.applied-table,.formula-table{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);margin-top:5px;overflow:hidden}.applied-rows,.formula-rows{max-height:42vh;overflow:auto}.applied-row{border-bottom:1px solid var(--border);color:var(--text);grid-template-columns:52px 68px 96px 96px 62px 72px 72px 82px 82px;gap:6px;min-width:660px;padding:5px 8px;font-size:10.5px;font-weight:600;display:grid}.applied-rows .applied-row:last-child{border-bottom:none}.applied-row span:not(:first-child){text-align:right;font-variant-numeric:tabular-nums}.applied-row span:nth-child(2),.applied-row span:nth-child(3),.applied-row span:nth-child(4){text-align:left}.applied-row.applied-head{background:var(--surface-alt);border-bottom:1px solid var(--border-strong);text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);font-size:9px;font-weight:800}.applied-rows .applied-row:nth-child(2n){background:var(--surface-alt)}.applied-row.applied-row-missing{background:var(--danger-soft);color:var(--danger)}.applied-row.applied-total{background:var(--gold-soft);border-top:1px solid var(--border-strong);color:var(--gold);font-weight:800}.applied-flag{color:var(--copper);font-size:8.5px;font-style:normal;font-weight:700;line-height:1.3;display:block}.formula-row{border-bottom:1px solid var(--border);color:var(--text);grid-template-columns:150px 1fr 96px;gap:8px;min-width:420px;padding:5px 8px;font-size:10.5px;font-weight:600;display:grid}.formula-rows .formula-row:last-child{border-bottom:none}.formula-row span:last-child{text-align:right;font-variant-numeric:tabular-nums;font-family:var(--display);font-weight:700}.formula-row.formula-head{background:var(--surface-alt);border-bottom:1px solid var(--border-strong);text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);font-size:9px;font-weight:800}.formula-row.formula-head span:last-child{font-family:var(--sans)}.formula-rows .formula-row:nth-child(2n){background:var(--surface-alt)}.formula-expr{color:var(--text-muted);font-variant-numeric:tabular-nums;font-weight:500}.formula-row.formula-row-total{background:var(--gold-soft)}.formula-row.formula-row-total span,.formula-row.formula-row-total .formula-expr{color:var(--gold);font-weight:800}.formula-row.formula-row-grand{background:var(--emerald-soft)}.formula-row.formula-row-grand span,.formula-row.formula-row-grand .formula-expr{color:var(--emerald);font-weight:800}.formula-row.formula-row-grand span:last-child{font-size:14px}@media (width<=480px){.formula-row{grid-template-columns:118px 1fr 84px;min-width:360px}}.file-prices-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:10px;margin-top:12px;margin-bottom:4px;display:flex}.modal-footnote{color:var(--text-faint);margin:5px 0 0;font-size:9.5px;font-weight:500;line-height:1.45}.rate-row{border-bottom:1px solid var(--border);color:var(--text);grid-template-columns:1fr 84px;gap:8px;padding:5px 8px;font-size:10.5px;font-weight:600;display:grid}.rate-table-pt .rate-row{grid-template-columns:1fr 84px 84px}.applied-rows .rate-row:last-child{border-bottom:none}.rate-row span:not(:first-child){text-align:right;font-variant-numeric:tabular-nums}.rate-row.rate-head{background:var(--surface-alt);border-bottom:1px solid var(--border-strong);text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);font-size:9px;font-weight:800}.applied-rows .rate-row:nth-child(2n){background:var(--surface-alt)}.applied-rows .rate-row.rate-row-selected{background:var(--gold-soft);color:var(--gold);font-weight:800}.modal-dialog-fit{max-width:min(1180px,100vw - 28px)}.modal-body-fit{overflow-y:auto}.modal-body-fit .applied-rows,.modal-body-fit .formula-rows,.modal-body-fit .verify-rows{max-height:none;overflow:visible}.file-prices-grid{grid-template-columns:1fr;align-items:start;gap:12px;display:grid}@media (width>=760px){.file-prices-grid{grid-template-columns:1.15fr 1fr}}.file-prices-grid section{min-width:0}.file-prices-grid .raw-material-subtitle:first-child{margin-top:0}.price-columns{grid-template-columns:1fr;align-items:start;gap:8px;display:grid}@media (width>=760px){.price-columns{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}}.modal-body-fit .verify-row,.modal-body-fit .rate-row,.modal-body-fit .formula-row{padding:3px 7px;font-size:10px}.modal-body-fit .verify-row,.modal-body-fit .formula-row{min-width:0}.file-prices-grid .formula-row{grid-template-columns:88px 1fr 74px}.modal-foot-note{color:var(--text-faint);text-overflow:ellipsis;white-space:nowrap;min-width:0;margin-right:auto;font-size:10px;font-weight:600;overflow:hidden}.applied-grid{grid-template-columns:1fr;align-items:start;gap:12px;display:grid}@media (width>=860px){.applied-grid{grid-template-columns:1.12fr 1fr}}.applied-grid section{min-width:0}.applied-grid .formula-row{grid-template-columns:124px 1fr 78px}.modal-body-fit .applied-row{grid-template-columns:40px 56px 76px 52px 62px 62px 68px 68px;gap:4px;min-width:0}.modal-body-fit .applied-row span:nth-child(2),.modal-body-fit .applied-row span:nth-child(3){text-align:left}.modal-body-fit .applied-row span:nth-child(4){text-align:right}.toolbar-head{justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:6px;display:flex}.toolbar-head .eyebrow{margin:0}.toolbar-meta{color:var(--text-faint);white-space:nowrap;font-size:9.5px;font-weight:600}.toolbar-row{flex-wrap:wrap;gap:5px;display:flex}.toolbar-row .upload-trigger,.toolbar-row .verify-trigger,.toolbar-row .applied-trigger{border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;padding:6px 10px;font-size:11px;font-weight:700}.toolbar-row .verify-trigger{color:var(--text);background:var(--surface);border:1px solid var(--border-strong)}.toolbar-row .verify-trigger:hover:not(:disabled){border-color:var(--gold);color:var(--gold)}.toolbar-row .verify-trigger:disabled{opacity:.45;cursor:not-allowed}@media (width>=1024px){.field input[type=text],.field input[type=number],.field select{padding:5px 9px;font-size:12px}.field label{margin-bottom:2px;font-size:9.5px}.field-row{gap:6px;margin-bottom:6px}.section{margin-bottom:7px;padding:8px 10px}.labor-row,.material-row{padding:3px 6px;font-size:10px}.size-band-row{margin-bottom:3px}.size-band-row input,.size-band-row select{padding:5px 8px;font-size:11.5px}.design-thumb-lg{width:72px;height:72px}}.breakup{flex-direction:column;gap:8px;display:flex}.breakup-head{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-alt);flex-wrap:wrap;gap:18px;padding:6px 9px;display:flex}.breakup-head>div{align-items:baseline;gap:7px;min-width:0;display:flex}.breakup-head span{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);white-space:nowrap;font-size:9px;font-weight:800}.breakup-head strong{color:var(--text);font-size:12px;font-weight:700}.breakup-hl{background:#fdf3b8;border:1px solid #e6d271;border-radius:3px;padding:0 6px}.breakup-block{grid-template-columns:68px minmax(0,1fr) auto;align-items:stretch;gap:6px;display:grid}.breakup-tag{text-align:center;color:var(--text);background:var(--border);border-radius:var(--radius-sm);flex-direction:column;justify-content:center;align-items:center;gap:3px;padding:4px;font-size:9.5px;font-weight:800;display:flex}.breakup-tag .breakup-hl{font-size:10px}.breakup-cat{color:var(--text-muted);white-space:nowrap;align-items:center;font-size:10px;font-weight:700;display:flex}.breakup-table{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);min-width:0;overflow:hidden}.bk-row{border-bottom:1px solid var(--border);gap:0;display:grid}.breakup-table .bk-row:last-child{border-bottom:none}.bk-row>span{color:var(--text);text-align:center;font-variant-numeric:tabular-nums;border-right:1px solid var(--border);text-overflow:ellipsis;min-width:0;padding:3px 6px;font-size:10px;font-weight:600;overflow:hidden}.bk-row>span:last-child{border-right:none}.bk-row.bk-head>span{color:var(--text-muted);background:var(--surface-alt);text-transform:none;white-space:normal;font-size:8.5px;font-weight:800;line-height:1.25;overflow:visible}.bk-row.bk-head-group>span{border-bottom:1px solid var(--border)}.bk-head-group .bk-group{color:var(--text);background:var(--gold-soft);font-size:9.5px;font-weight:800}.bk-metal .bk-row{grid-template-columns:repeat(8,minmax(0,1fr))}.bk-other .bk-row{grid-template-columns:repeat(4,minmax(0,1fr))}.bk-dia .bk-row{grid-template-columns:minmax(0,.75fr) minmax(0,.7fr) minmax(0,1fr) minmax(0,1fr) minmax(0,1fr) minmax(0,1fr) minmax(0,.85fr)}.bk-dia .bk-row.bk-head-group{grid-template-columns:minmax(0,.75fr) minmax(0,.7fr) minmax(0,2fr) minmax(0,2fr) minmax(0,.85fr)}.bk-dia .bk-size,.bk-dia .bk-cut{color:var(--text-muted);font-weight:700}.bk-row.bk-total>span{background:var(--border);font-weight:800}.bk-totals .bk-row{grid-template-columns:repeat(6,minmax(0,1fr))}.bk-totals{border-color:var(--emerald)}.bk-row.bk-grand>span{background:var(--emerald-soft);color:var(--emerald);font-size:12px;font-weight:800;font-family:var(--display);padding:5px 6px}.bk-row.bk-grand .bk-gp{font-size:14px}@media (width<=640px){.breakup-block{grid-template-columns:1fr}.breakup-tag{flex-direction:row}}.parcel-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.parcel-head .eyebrow{margin:0}.parcel-toggle{width:22px;height:22px;color:var(--gold);background:var(--gold-soft);border-radius:var(--radius-sm);cursor:pointer;border:1px solid #0000;flex-shrink:0;justify-content:center;align-items:center;font-size:11px;line-height:1;transition:border-color .15s;display:inline-flex}.parcel-toggle:hover{border-color:var(--gold)}.parcel-summary{color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:8px;margin:6px 0 0;font-size:11px;font-weight:600;display:flex}.parcel-summary strong{font-family:var(--display);color:var(--text);font-variant-numeric:tabular-nums;font-size:13px}.parcel-warn{background:var(--copper-soft);color:var(--copper);border-radius:999px;padding:1px 6px;font-size:9.5px;font-weight:800}.parcel-head+.parcel-tabs,.parcel-summary+.parcel-tabs{margin-top:7px}@media (width>=1024px){.content-grid{align-items:stretch}.col-left,.col-mid,.col-right{flex-direction:column;display:flex}.col-left>.mobile-panel:last-child,.col-mid>.mobile-panel:last-child,.col-right>.mobile-panel:last-child{flex-direction:column;flex:1;display:flex!important}.col-left>.mobile-panel:last-child>.section:last-child,.col-right>.mobile-panel:last-child>.section:last-child{flex:1}.mobile-panel:last-child>.section:last-child,.mobile-panel:last-child>.tally:last-of-type{margin-bottom:0}}.version-badge{letter-spacing:.06em;color:var(--text-muted);background:var(--surface-alt);border:1px solid var(--border-strong);white-space:nowrap;border-radius:999px;margin-left:auto;padding:3px 8px;font-size:9.5px;font-weight:800}.material-row.bulk-row{grid-template-columns:68px 1.3fr 1fr .5fr .7fr .7fr .7fr 1fr 1fr .8fr 2fr;align-items:center}.bulk-thumb{object-fit:contain;border:1px solid var(--line,#e6e0cf);background:#fff;border-radius:6px;width:60px;height:60px}.material-row.bulk-row .bulk-notes{white-space:normal;color:#8a3a2a;font-size:.82em;line-height:1.25}.material-row.bulk-row .bulk-gp-neg{color:#b23b3b;font-weight:600}.material-row.bulk-row-click{cursor:pointer}.material-row.bulk-row-click:hover{background:var(--light,#f3efe4)}.bulk-caret{width:1em;color:var(--brand,#8a6a2a);font-size:.8em;display:inline-block}.bulk-hint{color:#8a8578;font-size:.85em;font-weight:400}.bulk-breakup{border-bottom:1px solid var(--line,#e6e0cf);background:#faf8f1;padding:12px 14px 16px}.bulk-breakup-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin-bottom:12px;display:grid}.bulk-breakup-card{border:1px solid var(--line,#e6e0cf);background:#fff;border-radius:8px;padding:8px 10px}.bulk-breakup-title{color:var(--brand-dk,#5c4a1e);margin:0 0 6px;font-size:.85em;font-weight:600}.bulk-breakup-card dl{margin:0}.bulk-breakup-card dl>div{justify-content:space-between;gap:10px;padding:2px 0;font-size:.86em;display:flex}.bulk-breakup-card dt{color:#6b665a}.bulk-breakup-card dd{font-variant-numeric:tabular-nums;margin:0}.bulk-dia-table{font-size:.85em}.bulk-dia-row{border-bottom:1px solid #eee6d6;grid-template-columns:1fr 1fr .8fr 1fr 1fr 1fr 1fr .8fr;gap:8px;padding:3px 0;display:grid}.bulk-dia-row span{text-align:right;font-variant-numeric:tabular-nums}.bulk-dia-row span:first-child,.bulk-dia-row span:nth-child(2){text-align:left}.bulk-dia-head{color:var(--brand-dk,#5c4a1e);font-weight:600}.modal-dialog.bulk-modal{max-width:min(1600px,100vw - 32px);max-height:calc(100vh - 24px)}.modal-dialog.bulk-modal .modal-body{overflow-y:auto}.modal-dialog.bulk-modal .material-row.bulk-row{border-bottom:1px solid var(--border,#e6e0cf);align-items:center;gap:12px;padding:8px 10px;font-size:13px}.modal-dialog.bulk-modal .bulk-row>span:nth-child(4){text-align:center}.modal-dialog.bulk-modal .bulk-row>span:nth-child(10),.modal-dialog.bulk-modal .bulk-row>span:nth-child(5),.modal-dialog.bulk-modal .bulk-row>span:nth-child(6),.modal-dialog.bulk-modal .bulk-row>span:nth-child(7),.modal-dialog.bulk-modal .bulk-row>span:nth-child(8),.modal-dialog.bulk-modal .bulk-row>span:nth-child(9){text-align:right;font-variant-numeric:tabular-nums}.modal-dialog.bulk-modal .bulk-row>span:nth-child(2){font-weight:600}.modal-dialog.bulk-modal .material-row.material-head.bulk-row{z-index:3;background:var(--emerald-soft,#e7f1ea);letter-spacing:.04em;text-transform:uppercase;color:var(--emerald,#1f6b45);border-bottom:2px solid var(--emerald,#1f6b45);font-size:11px;position:sticky;top:0}.modal-dialog.bulk-modal .bulk-row-click:hover{background:#f6f2e7}.modal-dialog.bulk-modal .bulk-row-open{border-left:3px solid var(--emerald,#1f6b45);background:#eef5ef;border-bottom:none}.bulk-caret{color:var(--emerald,#1f6b45);margin-right:4px;font-size:.9em}.modal-dialog.bulk-modal .bulk-breakup{border-left:3px solid var(--emerald,#1f6b45);border-bottom:1px solid var(--border,#e6e0cf);background:#eef5ef;padding:16px 18px 20px}.modal-dialog.bulk-modal .bulk-breakup-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;margin-bottom:16px}.modal-dialog.bulk-modal .bulk-breakup-card{border:1px solid var(--border,#e6e0cf);border-radius:10px;padding:12px 14px;box-shadow:0 1px 2px #0000000a}.modal-dialog.bulk-modal .bulk-breakup-title{color:var(--emerald,#1f6b45);border-bottom:1px solid var(--border,#e6e0cf);text-transform:none;letter-spacing:0;margin:0 0 8px;padding-bottom:6px;font-size:13px;font-weight:700}.modal-dialog.bulk-modal .bulk-breakup-card dl>div{padding:3px 0;font-size:13px}.modal-dialog.bulk-modal .bulk-breakup-card dt{color:var(--text-muted,#6b665a)}.modal-dialog.bulk-modal .bulk-breakup-card dd{font-variant-numeric:tabular-nums;font-weight:600}.modal-dialog.bulk-modal .bulk-dia-table{border:1px solid var(--border,#e6e0cf);background:#fff;border-radius:10px;font-size:13px;overflow:hidden}.modal-dialog.bulk-modal .bulk-dia-row{border-bottom:1px solid #eee6d6;padding:6px 12px}.modal-dialog.bulk-modal .bulk-dia-row:last-child{border-bottom:none}.modal-dialog.bulk-modal .bulk-dia-row:not(.bulk-dia-head):nth-child(2n){background:#faf8f1}.modal-dialog.bulk-modal .bulk-dia-head{background:var(--emerald-soft,#e7f1ea);color:var(--emerald,#1f6b45);letter-spacing:.04em;text-transform:uppercase;border-bottom:2px solid var(--emerald,#1f6b45);font-size:11px}.login-shell{background:radial-gradient(120% 140% at 15% 0%, #f8f5ec 0%, var(--bg) 55%, #ece6d4 100%);justify-content:center;align-items:center;min-height:100vh;padding:24px 16px;display:flex}.login-checking{color:var(--text-muted);font-size:14px}.login-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);width:100%;max-width:380px;box-shadow:var(--shadow-lift);flex-direction:column;gap:16px;padding:28px 26px 22px;display:flex}.login-brand{align-items:center;gap:12px;display:flex}.login-mark{background:var(--emerald);color:#fff;width:44px;height:44px;font-family:var(--display);border-radius:12px;flex:none;place-items:center;font-size:18px;font-weight:600;display:grid}.login-title{font-family:var(--display);color:var(--text);margin:0;font-size:20px}.login-sub{color:var(--text-muted);margin:2px 0 0;font-size:13px}.login-field{color:var(--text-muted);flex-direction:column;gap:6px;font-size:13px;display:flex}.login-field input{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface-alt);color:var(--text);outline:none;padding:10px 12px;font-size:14px;transition:border-color .15s,box-shadow .15s}.login-field input:focus{border-color:var(--emerald);box-shadow:0 0 0 3px var(--emerald-soft)}.login-btn{border-radius:var(--radius-sm);background:var(--emerald);color:#fff;cursor:pointer;border:none;margin-top:4px;padding:11px 14px;font-size:14px;font-weight:600;transition:filter .15s,opacity .15s}.login-btn:hover:not(:disabled){filter:brightness(1.06)}.login-btn:disabled{opacity:.6;cursor:default}.login-error{border-radius:var(--radius-sm);background:var(--danger-soft);color:var(--danger);margin:0;padding:8px 10px;font-size:13px}.login-host{text-align:center;color:var(--text-faint);margin:2px 0 0;font-size:11px}.auth-strip{background:var(--surface);border-bottom:1px solid var(--border);justify-content:flex-end;align-items:center;gap:14px;padding:6px 16px;font-size:13px;display:flex}.auth-strip-user{color:var(--text-muted);align-items:center;gap:7px;display:inline-flex}.auth-dot{background:var(--emerald);border-radius:50%;width:8px;height:8px}.auth-logout{border:1px solid var(--border-strong);background:var(--surface-alt);color:var(--text);border-radius:var(--radius-sm);cursor:pointer;padding:5px 12px;font-size:13px;transition:background-color .15s}.auth-logout:hover{background:var(--gold-soft)}.admin-open-button{letter-spacing:.04em;color:var(--gold);background:var(--gold-soft);border:1px solid var(--border-strong);cursor:pointer;white-space:nowrap;border-radius:999px;margin-left:auto;padding:4px 11px;font-size:10.5px;font-weight:700}.admin-open-button:hover{background:#efe3c4}.admin-modal .modal-body{display:block}.admin-error,.admin-notice{border-radius:var(--radius-sm);margin:0 0 10px;padding:8px 11px;font-size:12px;line-height:1.45}.admin-error{color:var(--danger);background:var(--danger-soft);border:1px solid #e9c6c6}.admin-notice{color:var(--emerald);background:var(--emerald-soft);border:1px solid #c4e3d3}.admin-signin{flex-direction:column;gap:12px;max-width:330px;margin:10px auto 24px;display:flex}.admin-signin-intro{color:var(--text-muted);margin:0;font-size:12px;line-height:1.5}.admin-signin label,.admin-add-grid label{color:var(--text-muted);flex-direction:column;gap:4px;font-size:11px;font-weight:600;display:flex}.admin-signin input,.admin-add-grid input,.admin-filter,.admin-field input{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);font:inherit;color:var(--text);min-width:0;padding:7px 9px;font-size:13px}.admin-field input.changed{border-color:var(--gold);background:var(--gold-soft)}.primary-button{border:1px solid var(--gold);border-radius:var(--radius-sm);background:var(--gold);color:#fff;font:inherit;cursor:pointer;padding:8px 14px;font-size:12.5px;font-weight:700}.primary-button:disabled{opacity:.45;cursor:not-allowed}.ghost-button{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface-alt);color:var(--text-muted);font:inherit;cursor:pointer;padding:5px 10px;font-size:11.5px;font-weight:600}.ghost-button:hover{background:#efe9db}.admin-tabs{border-bottom:1px solid var(--border);gap:6px;margin-bottom:12px;display:flex}.admin-tabs button{font:inherit;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;padding:7px 13px;font-size:12.5px;font-weight:600}.admin-tabs button.active{color:var(--gold);border-bottom-color:var(--gold)}.admin-clients{grid-template-columns:minmax(0,220px) minmax(0,1fr);align-items:start;gap:16px;display:grid}.admin-client-list{flex-direction:column;gap:7px;min-width:0;display:flex}.admin-client-scroll{flex-direction:column;gap:2px;max-height:460px;padding-right:4px;display:flex;overflow-y:auto}.admin-client-scroll button{text-align:left;border-radius:var(--radius-sm);font:inherit;color:var(--text);cursor:pointer;white-space:nowrap;text-overflow:ellipsis;background:0 0;border:1px solid #0000;padding:6px 9px;font-size:12px;overflow:hidden}.admin-client-scroll button:hover{background:var(--surface-alt)}.admin-client-scroll button.active{background:var(--gold-soft);border-color:var(--border-strong);font-weight:700}.admin-client-detail{min-width:0}.admin-client-detail h3{font-family:var(--display);flex-wrap:wrap;align-items:baseline;gap:10px;margin:0 0 14px;font-size:17px;display:flex}.admin-rowref{font-family:var(--sans);color:var(--text-faint);font-size:10.5px;font-weight:600}.admin-client-detail h4{letter-spacing:.07em;text-transform:uppercase;color:var(--text-muted);margin:16px 0 8px;font-size:11px;font-weight:800}.admin-field-grid{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;display:grid}.admin-field{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"field save""hint hint";align-items:end;gap:6px 8px;display:grid}.admin-field>label{flex-direction:column;grid-area:field;gap:4px;min-width:0;display:flex}.admin-field-label{color:var(--text-muted);font-size:11px;font-weight:600}.admin-field-label em{color:var(--text-faint);font-style:normal}.admin-save{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface-alt);font:inherit;cursor:pointer;white-space:nowrap;grid-area:save;padding:7px 11px;font-size:11.5px;font-weight:700}.admin-save:not(:disabled){border-color:var(--gold);background:var(--gold);color:#fff}.admin-save:disabled{opacity:.4;cursor:not-allowed}.admin-hint{color:var(--text-faint);grid-area:hint;font-size:10.5px;line-height:1.4}.admin-note{border-radius:var(--radius-sm);background:var(--surface-alt);border:1px solid var(--border);color:var(--text-muted);margin:18px 0 0;padding:9px 11px;font-size:11.5px;line-height:1.5}.admin-table-scroll{max-height:460px;overflow:auto}.admin-table{border-collapse:collapse;width:100%;font-size:11.5px}.admin-table th,.admin-table td{text-align:left;border-bottom:1px solid var(--border);vertical-align:top;padding:6px 9px}.admin-table th{background:var(--surface-alt);letter-spacing:.05em;text-transform:uppercase;color:var(--text-muted);font-size:10px;font-weight:800;position:sticky;top:0}.admin-table .failed-row{background:var(--danger-soft)}.admin-cells{color:var(--text-muted);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10.5px}.admin-users{flex-direction:column;gap:18px;display:flex}.admin-add-user h4{letter-spacing:.07em;text-transform:uppercase;color:var(--text-muted);margin:0 0 8px;font-size:11px;font-weight:800}.admin-add-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));align-items:end;gap:10px;display:grid}.admin-foot{justify-content:space-between;align-items:center;gap:14px;width:100%;display:flex}.admin-foot-note{color:var(--text-muted);font-size:11px;line-height:1.45}@media (width<=760px){.admin-clients{grid-template-columns:minmax(0,1fr)}.admin-client-scroll{max-height:180px}}.auth-admin-tag{letter-spacing:.06em;text-transform:uppercase;color:var(--gold);background:var(--gold-soft);border:1px solid var(--border-strong);vertical-align:middle;border-radius:999px;margin-left:7px;padding:1px 7px;font-size:9px;font-weight:800}.admin-add-client{text-align:center;width:100%}.admin-plain-field{flex-direction:column;gap:4px;min-width:0;display:flex}.admin-plain-field select,.admin-plain-field input{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);font:inherit;color:var(--text);min-width:0;padding:7px 9px;font-size:13px}.admin-new-client h3{font-family:var(--display);margin:0 0 14px;font-size:17px}.admin-new-client .admin-field-grid{margin-bottom:12px}.admin-new-client-actions{gap:8px;margin-top:16px;display:flex}.admin-price-setup{flex-direction:column;align-items:flex-start;gap:10px;max-width:560px;display:flex}.admin-price-setup h4{letter-spacing:.07em;text-transform:uppercase;color:var(--text-muted);margin:0;font-size:11px;font-weight:800}.admin-prices{flex-direction:column;gap:14px;display:flex}.admin-price-head{flex-wrap:wrap;align-items:flex-end;gap:14px;display:flex}.admin-price-head .admin-plain-field{min-width:260px}.admin-price-form h4{letter-spacing:.07em;text-transform:uppercase;color:var(--text-muted);margin:0 0 8px;font-size:11px;font-weight:800}.admin-price-grid{grid-template-columns:repeat(auto-fit,minmax(135px,1fr));align-items:end;gap:10px;display:grid}.bulk-template-note{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-alt);color:var(--text-muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;margin:12px 0 0;padding:9px 12px;font-size:11.5px;line-height:1.5;display:flex}.bulk-template-note a{white-space:nowrap;text-decoration:none}
