:root{--brand:#1747b8;--brand-dark:#0f3489;--brand-tint:#eef2fb;--brand-ink:#14357f;--text:#14181c;--text-2:#3d454e;--muted:#5c656e;--muted-2:#6b7480;--line:#d2d8df;--line-soft:#e6eaee;--canvas:#e7ebf0;--page:#f3f5f8;--card:#ffffff;--band:#d8dfe7;--band-ink:#39424c;--lift:0 1px 2px rgba(20,32,48,0.06),0 1px 1px rgba(20,32,48,0.04);--ok:#0b5c44;--ok-bg:#eaf6f1;--warn:#7a5400;--warn-bg:#fdf4e3;--alert:#b0182c;--alert-bg:#fdeef0;--radius:10px;--mono:ui-monospace,SFMono-Regular,Menlo,monospace}*{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--canvas);color:var(--text);font-family:Helvetica Neue,Helvetica,Segoe UI,system-ui,sans-serif;-webkit-font-smoothing:antialiased}a{color:var(--brand);text-decoration:none}a:hover{color:var(--brand-dark)}button,input,select,textarea{font-family:inherit;font-size:inherit}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:20px;box-shadow:var(--lift)}.card .card{box-shadow:none}.label{font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--muted-2)}.field{width:100%;border:1px solid var(--line);border-radius:8px;padding:10px 12px;font-size:14px;color:var(--text);outline:none;background:#fff}.field:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-tint)}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:0 16px;border:0;border-radius:8px;background:var(--brand);color:#fff;font-size:14px;font-weight:500;cursor:pointer}.btn:hover{background:var(--brand-dark)}.btn:disabled{background:#c9ced4;cursor:default}.btn-quiet{background:#fff;color:var(--text-2);border:1px solid var(--line)}.btn-quiet:hover{background:var(--page)}.notice{border-radius:8px;padding:11px 13px;font-size:13px;line-height:1.55}.notice-alert{background:var(--alert-bg);border:1px solid #f3ccd3;color:#7d1220}.notice-ok{background:var(--ok-bg);border:1px solid #cfe8dd;color:var(--ok)}.notice-warn-block{background:var(--warn-bg);border:1px solid #f0e0bd;color:var(--warn)}.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:18px}.page-title{font-size:22px;font-weight:600;letter-spacing:-.4px;margin:0}.page-sub{font-size:13px;color:var(--muted);margin:4px 0 0}.toolbar{align-items:center;gap:10px;margin-bottom:14px}.nav-row,.toolbar{display:flex;flex-wrap:wrap}.nav-row{gap:4px}.nav-link{padding:7px 12px;border-radius:8px;font-size:13.5px;color:var(--text-2)}.nav-link:hover{background:var(--page);color:var(--text)}.nav-link[aria-current=page]{background:var(--brand-tint);color:var(--brand-ink);font-weight:500}.table-wrap{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);overflow-x:auto;box-shadow:var(--lift)}.card .table-wrap{box-shadow:none}table.data{width:100%;border-collapse:collapse;font-size:13.5px;min-width:640px}table.data th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--band-ink);font-weight:600;padding:11px 16px;border-bottom:1px solid var(--line);white-space:nowrap;background:var(--band)}table.data td{padding:13px 16px;border-bottom:1px solid var(--line-soft);color:var(--text-2);vertical-align:top}table.data tbody tr:last-child td{border-bottom:0}table.data tbody tr:hover{background:var(--page)}table.data td.num{text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.chip{display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;font-size:11.5px;font-weight:500;white-space:nowrap;background:var(--page);border:1px solid var(--line);color:var(--muted)}.chip-ok{background:var(--ok-bg);border-color:#cfe8dd;color:var(--ok)}.chip-warn{background:var(--warn-bg);border-color:#f0e0bd;color:var(--warn)}.chip-alert{background:var(--alert-bg);border-color:#f3ccd3;color:var(--alert)}.chip-brand{background:var(--brand-tint);border-color:#d4defa;color:var(--brand-ink)}.chip-plain{background:var(--page);border-color:var(--line);color:var(--muted)}.stat-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));grid-gap:12px;gap:12px}.stat{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px;box-shadow:var(--lift)}.stat-v{font-size:20px;font-weight:600;letter-spacing:-.3px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.stat-k{font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--muted-2);margin-top:3px}.empty{padding:34px 20px;text-align:center;color:var(--muted);font-size:13.5px;line-height:1.6}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));grid-gap:14px;gap:14px}.form-field{display:flex;flex-direction:column;gap:5px}.form-field.wide{grid-column:1/-1}.section-title{font-size:14px;font-weight:600;margin:0}.hint{font-size:12px;color:var(--muted-2);line-height:1.5}.field-wrap{max-width:560px;margin:0 auto;display:flex;flex-direction:column;gap:12px}.field-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.field-section{display:flex;flex-direction:column;gap:10px;margin-top:6px}.field-section-title{font-size:12px;text-transform:uppercase;letter-spacing:.6px;color:var(--muted-2);margin:0;display:flex;align-items:center;gap:8px}.field-job{display:block;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px;color:var(--text)}.field-job:active{background:var(--page)}.field-job-top{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px}.field-job-window{font-size:13px;font-weight:600;color:var(--brand-ink);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.field-job-customer{font-size:16px;font-weight:600;letter-spacing:-.2px}.field-job-what{font-size:14px;color:var(--text-2);margin-top:3px;line-height:1.45}.field-job-address{font-size:13px;color:var(--muted);margin-top:5px}.field-card{padding:16px}.field-card-title{font-size:14px;font-weight:600;margin-bottom:10px;display:flex;align-items:center;gap:8px}.field-actions{display:flex;gap:10px}.field-actions .btn{flex:1 1}.field-btn{min-height:48px;width:100%;font-size:15px}.field-btn-big{min-height:56px;width:100%;font-size:16px;font-weight:600}.field-form{display:flex;flex-direction:column;gap:6px}.field-form .label{margin-top:6px}.field-form .field,.field-inline .field{min-height:46px;font-size:16px}.field-inline{display:flex;gap:8px;align-items:stretch;flex-wrap:wrap}.field-inline .field{flex:1 1;min-width:90px}.field-inline .btn{min-height:46px}.field-line{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:14.5px;padding:8px 0;border-bottom:1px solid var(--line-soft);line-height:1.4}.field-line:last-child{border-bottom:0}.field-x{background:transparent;border:0;color:var(--muted-2);font-size:22px;line-height:1;padding:4px 10px;cursor:pointer}.field-x:active{color:var(--alert)}.field-summary{cursor:pointer;font-size:14px;font-weight:600;list-style:none}.field-summary::-webkit-details-marker{display:none}.field-summary:after{content:" ▾";color:var(--muted-2);font-weight:400}details[open]>.field-summary:after{content:" ▴"}.sig-pad{width:100%;height:190px;background:#fff;border:1px dashed var(--line);border-radius:8px;touch-action:none;cursor:crosshair;display:block}.media-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));grid-gap:10px;gap:10px}.media-tile{border:1px solid var(--line);border-radius:8px;overflow:hidden;background:var(--card);display:flex;flex-direction:column}.media-tile img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block;background:var(--page)}.media-meta{padding:7px 9px;font-size:11.5px;color:var(--muted);line-height:1.4;display:flex;justify-content:space-between;align-items:flex-start;gap:6px}.tabs{display:flex;gap:2px;border-bottom:1px solid var(--line);margin-bottom:16px;flex-wrap:wrap}.tab{padding:9px 14px;font-size:14px;color:var(--muted);border-bottom:2px solid transparent;margin-bottom:-1px}.tab:hover{color:var(--text)}.tab[aria-current=page]{color:var(--brand-ink);border-bottom-color:var(--brand);font-weight:600}.segmented{display:inline-flex;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:var(--card)}.segment{padding:8px 14px;font-size:13.5px;color:var(--text-2);border-right:1px solid var(--line)}.segment:last-child{border-right:0}.segment:hover{background:var(--page)}.segment[aria-current=page]{background:var(--brand);color:#fff;font-weight:500}.cal-wrap{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:var(--card)}.cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.cal-head-row{border-bottom:1px solid var(--line);background:var(--band);color:var(--band-ink)}.cal-dow{padding:8px 10px;font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--muted-2);font-weight:600;border-right:1px solid var(--line-soft)}.cal-dow:last-child{border-right:0}.cal-today-dow{color:var(--brand-ink)}.cal-cell{min-height:104px;border-right:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft);padding:6px;display:flex;flex-direction:column;gap:3px;overflow:hidden}.cal-cell-tall{min-height:320px}.cal-cell:nth-child(7n){border-right:0}.cal-dim{background:var(--page)}.cal-dim .cal-date{color:var(--muted-2)}.cal-today{background:var(--brand-tint)}.cal-date{font-size:12px;font-weight:600;color:var(--text-2);margin-bottom:2px}.cal-date a{color:inherit}.cal-chip{display:block;font-size:11.5px;line-height:1.35;padding:3px 6px;border-radius:5px;border-left:3px solid var(--muted-2);background:var(--page);color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cal-chip:hover{background:var(--line-soft);color:var(--text)}.cal-chip b{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.cal-chip.tone-ok{border-left-color:var(--ok);background:var(--ok-bg)}.cal-chip.tone-warn{border-left-color:var(--warn);background:var(--warn-bg)}.cal-chip.tone-alert{border-left-color:var(--alert);background:var(--alert-bg)}.cal-chip.tone-plain{border-left-color:var(--brand)}.cal-bang{color:var(--alert);font-weight:700;margin-left:3px}.cal-more{font-size:11px;color:var(--brand);padding-left:6px}.cal-empty{font-size:12px;color:var(--muted-2)}.waiting-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));grid-gap:10px;gap:10px}.waiting-card{display:block;background:var(--card);border:1px solid var(--line);border-left:3px solid var(--warn);border-radius:8px;padding:11px 13px;color:var(--text)}.waiting-card:hover{background:var(--page);color:var(--text)}.quote-page{max-width:660px;margin:0 auto;padding-block:28px 56px;padding-left:20px;padding-right:20px;display:flex;flex-direction:column;gap:18px}.quote-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap;padding-bottom:16px;border-bottom:2px solid var(--text)}.quote-company{font-size:19px;font-weight:700;letter-spacing:-.2px}.quote-company-meta{font-size:13px;color:var(--muted);margin-top:4px;line-height:1.6}.quote-ref{font-size:12.5px;color:var(--muted);text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;line-height:1.7}.quote-title{font-size:26px;font-weight:600;letter-spacing:-.5px;margin:4px 0 0;text-wrap:balance}.quote-for{font-size:14.5px;color:var(--text-2)}.quote-description{font-size:15px;line-height:1.7;color:var(--text-2);margin:0}.quote-options{display:flex;flex-direction:column;gap:14px}.quote-option{display:block;border:1px solid var(--line);border-radius:12px;padding:18px;background:var(--card);cursor:pointer}.quote-option.is-chosen{border-color:var(--brand);box-shadow:0 0 0 2px var(--brand-tint);cursor:default}.quote-option-head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.quote-option-name{font-size:17px;font-weight:600}.quote-option-price{font-size:24px;font-weight:700;letter-spacing:-.5px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.quote-equipment{font-size:14px;color:var(--brand-ink);margin-top:6px;font-weight:500}.quote-summary{font-size:14px;color:var(--text-2);line-height:1.65;margin:8px 0 0}.quote-lines{margin:14px 0 0;padding-left:18px;font-size:14.5px;line-height:1.85;color:var(--text-2)}.quote-line-desc,.quote-qty{color:var(--muted)}.quote-line-desc{font-size:13px}.quote-totals{margin-top:14px;padding-top:12px;border-top:1px solid var(--line-soft);display:flex;flex-direction:column;gap:5px;font-size:14px;color:var(--muted)}.quote-totals>div{display:flex;justify-content:space-between;gap:16px}.quote-totals span:last-child{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.quote-total-row{color:var(--text);font-weight:600;font-size:16px;padding-top:7px;border-top:1px solid var(--line)}.quote-deposit{color:var(--brand-ink);font-weight:500}.quote-warranty{margin-top:12px;font-size:13px;color:var(--muted)}.quote-accept{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:20px;display:flex;flex-direction:column;gap:8px}.quote-accept-title{font-size:17px;font-weight:600;margin:0 0 4px}.quote-accept .field{min-height:48px;font-size:16px}.quote-legal{font-size:13px;color:var(--muted);line-height:1.6;margin:4px 0 0}.quote-button{min-height:54px;font-size:16px;font-weight:600;width:100%;margin-top:6px}.quote-decline-link{background:none;border:0;color:var(--muted);font-size:14px;text-decoration:underline;cursor:pointer;align-self:center;padding:8px}.quote-decline{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:18px;display:flex;flex-direction:column;gap:8px}.quote-decline-actions{display:flex;gap:12px;align-items:center;margin-top:6px}.quote-terms h2{font-size:15px;font-weight:600;margin:0 0 8px}.quote-terms p{font-size:14px;line-height:1.7;color:var(--text-2);margin:0;white-space:pre-wrap}.quote-foot{font-size:12.5px;color:var(--muted-2);text-align:center;border-top:1px solid var(--line);padding-top:18px;line-height:1.7}.share-box{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.share-link{flex:1 1;min-width:220px;font-family:var(--mono);font-size:12px;padding:9px 11px;border:1px solid var(--line);border-radius:8px;background:var(--page);color:var(--text-2);overflow-x:auto;white-space:nowrap}@media (max-width:640px){.cal-cell{min-height:74px;padding:4px}.cal-cell-tall{min-height:150px}.cal-chip{font-size:10.5px}}.rate-scroll{overflow-x:auto;margin:0 -2px}.rate-table{width:100%;min-width:560px;border-collapse:collapse}.rate-table td,.rate-table th{padding:8px 10px 8px 0;text-align:left;vertical-align:middle}.rate-table thead th{font-size:12px;font-weight:600;color:var(--muted-2);border-bottom:1px solid var(--line);padding-bottom:6px}.rate-table tbody th{font-size:13px;font-weight:600;white-space:nowrap;padding-right:16px}.rate-note{display:block;font-size:11.5px;font-weight:400;color:var(--muted-2);margin-top:2px}.rate-cell{display:flex;align-items:center;gap:4px}.rate-prefix,.rate-suffix{font-size:13px;color:var(--muted-2);flex:none}.rate-input{width:100%;min-width:82px;text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.cat-head{padding:0 14px;font-size:12px;font-weight:600;color:var(--muted-2)}.cat-head,.cat-row{display:grid;grid-template-columns:minmax(160px,1fr) 90px 190px 150px;grid-gap:12px;gap:12px}.cat-check,.cat-row{align-items:center}.cat-check{display:flex;gap:6px;font-size:13px;color:var(--text-2)}.cat-check input{flex:none}.cat-check-label{line-height:1.25}.cat-actions{display:flex;gap:6px;justify-content:flex-end}@media (max-width:720px){.cat-head{display:none}.cat-row{grid-template-columns:1fr;gap:10px}.cat-actions{justify-content:flex-start}}.linkish{background:none;border:0;padding:0;font:inherit;color:var(--brand);text-decoration:underline;cursor:pointer}.linkish:hover{opacity:.8}.row-link{cursor:pointer}.mat-head{padding:0 14px;font-size:12px;font-weight:600;color:var(--muted-2)}.mat-head,.mat-row{display:grid;grid-template-columns:minmax(110px,1.2fr) minmax(94px,1fr) 66px 86px 80px minmax(100px,1fr) minmax(84px,.8fr) 132px;grid-gap:10px;gap:10px}.mat-row{align-items:center}.mat-actions{display:flex;gap:6px;justify-content:flex-end}@media (max-width:820px){.mat-head{display:none}.mat-row{grid-template-columns:1fr 1fr}.mat-actions{grid-column:1/-1;justify-content:flex-start}}.line-head{padding:0 14px;font-size:12px;font-weight:600;color:var(--muted-2)}.line-head,.line-row{display:grid;grid-template-columns:minmax(200px,2.2fr) 74px 96px 96px 58px 140px;grid-gap:10px;gap:10px}.line-row{align-items:center}.line-main{display:flex;flex-direction:column;gap:5px;min-width:0}.line-kind{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted-2);font-weight:600}.line-num{text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.line-tax{display:flex;align-items:center;gap:5px;font-size:12px;color:var(--text-2)}.line-actions{display:flex;gap:6px;justify-content:flex-end}@media (max-width:860px){.line-head{display:none}.line-row{grid-template-columns:1fr 1fr}.line-actions,.line-main{grid-column:1/-1}.line-actions{justify-content:flex-start}}.kind-head{padding:0 14px;font-size:12px;font-weight:600;color:var(--muted-2)}.kind-head,.kind-row{display:grid;grid-template-columns:minmax(150px,1fr) minmax(200px,2fr) 150px;grid-gap:10px;gap:10px}.kind-row{align-items:center}.kind-actions{display:flex;gap:6px;justify-content:flex-end}@media (max-width:720px){.kind-head{display:none}.kind-row{grid-template-columns:1fr}.kind-actions{justify-content:flex-start}}.cat-head,.kind-head,.line-head,.mat-head{padding:9px 20px;background:var(--band);border:1px solid var(--line);border-radius:8px;color:var(--band-ink);text-transform:uppercase;letter-spacing:.4px;font-size:11px}