:root {
  font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: #15233b;
  background: #f4f7fb;
  font-synthesis: none;
  --blue: #075fe5;
  --blue-dark: #0645ad;
  --blue-soft: #eef5ff;
  --navy: #14233b;
  --muted: #66758d;
  --line: #dce5f1;
  --panel: #ffffff;
  --green: #22a65a;
  --shadow: 0 18px 55px rgba(25, 61, 112, .12);
}
* { box-sizing: border-box; }
body { margin: 0; min-width: 320px; background: radial-gradient(circle at top, #ffffff 0, #f3f7fc 62%, #edf3fa 100%); }
button, input, select { font: inherit; }
button { cursor: pointer; }
.material-symbols-rounded { font-size: 20px; line-height: 1; vertical-align: middle; }
.site-page { min-height: 100vh; padding: 34px 28px 0; }
.app-shell { --header-control-gutter: 28px; position: relative; max-width: 1440px; min-height: calc(100vh - 110px); margin: 0 auto; overflow: hidden; background: var(--panel); border: 4px solid #1688ff; border-radius: 34px; box-shadow: var(--shadow); }
.topbar { min-height: 88px; display: grid; grid-template-columns: minmax(280px,1fr) auto auto; align-items: center; gap: 20px; padding: 14px 28px; border-bottom: 1px solid var(--line); }
.brand-block { display: flex; align-items: center; gap: 24px; min-width: 0; }
.brand-logo-panel { flex: 0 0 200px; width: 200px; }
.logo-frame { display: block; width: 200px; }
.brand-block img { display: block; width: 200px; height: 146px; object-fit: contain; }
.project-name { min-width: 0; display: flex; align-items: center; gap: 8px; padding: 9px 12px; background: transparent; border: 0; color: var(--navy); border-radius: 9px; }
.logic-intro { margin: 0 0 22px; padding: 18px 20px; border-left: 3px solid #1688ff; border-radius: 0 10px 10px 0; background: #f5f9ff; }
.logic-intro p { margin: 0; color: #29486e; font-size: 17px; line-height: 1.6; }
.logic-intro strong { color: #17385f; font-weight: 700; }
@media(max-width:600px) {
  .logic-intro { padding: 14px 16px; }
  .logic-intro p { font-size: 16px; }
}
@media print { .logic-intro { display: none !important; } }
.project-name:hover { background: #f2f6fb; }
.project-name span:first-child { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.project-name .material-symbols-rounded { color: #7b8aa0; font-size: 17px; }
.top-progress { display: flex; align-items: center; gap: 8px; }
.progress-wrap { display: flex; align-items: center; gap: 8px; }
.top-progress button { display: flex; align-items: center; gap: 8px; padding: 7px; color: #78869b; border: 0; background: transparent; font-size: 13px; }
.top-progress button span { width: 28px; height: 28px; display: grid; place-items: center; border: 1px solid #c9d4e2; border-radius: 50%; font-weight: 700; background: #fff; }
.top-progress button.active { color: var(--blue); font-weight: 600; }
.top-progress button.active span { color: #fff; background: var(--blue); border-color: var(--blue); }
.progress-wrap i { width: 34px; height: 1px; background: #cfd8e4; }
.save-state { justify-self: end; display: flex; align-items: center; gap: 7px; color: #6b7a90; font-size: 13px; }
.save-state .material-symbols-rounded { color: var(--green); font-size: 21px; }
.workspace { min-height: 760px; display: grid; grid-template-columns: 190px minmax(0, 1fr) 390px; }
.step-rail { position: relative; padding: 48px 18px; border-right: 1px solid var(--line); background: linear-gradient(180deg, #fff, #fbfdff); }
.rail-line { position: absolute; top: 80px; bottom: 220px; left: 47px; width: 1px; background: #d7e0eb; }
.step-rail button { position: relative; z-index: 1; width: 100%; min-height: 86px; display: flex; align-items: center; gap: 13px; padding: 8px 4px; border: 0; background: transparent; color: #6c7b92; text-align: left; }
.rail-marker { flex: 0 0 auto; width: 34px; height: 34px; display: grid; place-items: center; color: #72829a; background: #fff; border: 1px solid #cdd8e5; border-radius: 50%; font-size: 13px; font-weight: 700; }
.rail-marker .material-symbols-rounded { font-size: 18px; }
.rail-label { display: flex; flex-direction: column; gap: 7px; font-size: 12px; font-weight: 500; }
.rail-label > .material-symbols-rounded { font-size: 22px; }
.step-rail button.active { color: var(--blue); }
.step-rail button.active .rail-marker { color: #fff; background: var(--blue); border-color: var(--blue); box-shadow: 0 5px 12px rgba(7, 95, 229, .25); }
.main-content { min-width: 0; padding: 34px 34px 42px; background: #fff; }
.form-panel { max-width: 830px; margin: 0 auto; }
.panel-header { padding-bottom: 26px; border-bottom: 1px solid var(--line); }
.eyebrow { display: block; margin-bottom: 7px; color: var(--blue); font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.panel-header h1, .review-hero h1 { margin: 0; color: #13223b; font-size: clamp(26px, 2.4vw, 38px); line-height: 1.16; letter-spacing: -.025em; }
.panel-header p, .review-hero p { margin: 9px 0 0; color: var(--muted); line-height: 1.6; }
.form-grid, .metric-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; margin: 30px 0; }
.form-grid.three { grid-template-columns: repeat(3, 1fr); margin: 18px 0; }
.field { display: flex; flex-direction: column; gap: 7px; min-width: 0; }
.field-wide { grid-column: 1 / -1; }
.field-label { font-size: 14px; font-weight: 650; color: #25344c; }
.field-help { min-height: 18px; color: #7a8799; font-size: 12px; }
.field input, .field select, .area-edit-row input, .area-edit-row select { width: 100%; height: 48px; padding: 0 14px; color: #26364f; background: #fff; border: 1px solid #cfd9e6; border-radius: 9px; outline: none; }
.field input:focus, .field select:focus, .area-edit-row input:focus, .area-edit-row select:focus { border-color: var(--blue); box-shadow: 0 0 0 3px rgba(7, 95, 229, .1); }
.field select:disabled { color: #75839a; background: #eef3f8; cursor: not-allowed; }
.unit-input { display: flex; align-items: center; height: 48px; overflow: hidden; border: 1px solid #cfd9e6; border-radius: 9px; background: #fff; }
.unit-input:focus-within { border-color: var(--blue); box-shadow: 0 0 0 3px rgba(7, 95, 229, .1); }
.unit-input input { min-width: 0; height: 100%; border: 0; box-shadow: none !important; }
.unit-input span { padding: 0 13px; color: #6f7d90; font-size: 12px; white-space: nowrap; }
.unit-input.compact { width: 130px; height: 42px; }
.field-summary { margin-top: -1px; color: #5f718b; font-size: 11px; font-weight: 600; }
.floor-choice { display: flex; flex-wrap: wrap; gap: 10px; margin: 0; padding: 0; border: 0; }
.floor-choice label { min-height: 48px; display: flex; align-items: center; gap: 9px; padding: 0 16px; color: #53647c; background: #fff; border: 1px solid #cfd9e6; border-radius: 9px; cursor: pointer; font-size: 13px; font-weight: 650; }
.floor-choice label:has(input:checked) { color: var(--blue); background: #eef5ff; border-color: var(--blue); box-shadow: inset 0 0 0 1px var(--blue); }
.floor-choice input { width: 17px; height: 17px; margin: 0; accent-color: var(--blue); }
.additional-floor-slider { margin-top: 8px; padding: 17px 18px 13px; background: #f8faff; border: 1px solid #dce5f1; border-radius: 11px; }
.slider-heading { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; color: #53647c; font-size: 12px; font-weight: 650; }
.slider-heading output { min-width: 38px; padding: 5px 9px; color: #fff; background: var(--blue); border-radius: 7px; text-align: center; font-size: 14px; }
.additional-floor-slider input[type="range"] { width: 100%; height: 28px; padding: 0; border: 0; box-shadow: none; accent-color: var(--blue); cursor: pointer; }
.additional-floor-slider input[type="range"]:focus { box-shadow: none; outline: 3px solid rgba(7, 95, 229, .14); outline-offset: 3px; }
.slider-scale { display: flex; justify-content: space-between; color: #73829a; font-size: 10px; font-weight: 650; }
.insight-card { display: flex; gap: 15px; margin-top: 22px; padding: 20px; background: var(--blue-soft); border: 1px solid #cfe0ff; border-radius: 13px; }
.insight-card > span { flex: 0 0 auto; width: 34px; height: 34px; display: grid; place-items: center; color: #fff; background: var(--blue); border-radius: 10px; font-weight: 700; }
.insight-card strong { color: #164492; }
.insight-card p { margin: 5px 0 0; color: #5f718b; font-size: 13px; line-height: 1.55; }
.linked-note, .warning-note, .scope-disclaimer { margin-top: 24px; padding: 14px 16px; color: #53647c; background: #f8faff; border: 1px solid #dfe7f3; border-radius: 10px; font-size: 13px; line-height: 1.5; }
.warning-note, .scope-disclaimer { display: flex; align-items: flex-start; gap: 9px; }
.warning-note { color: #8b5a00; background: #fffaf0; border-color: #f2d79b; }
.validation-panel { display: flex; align-items: flex-start; gap: 11px; margin-top: 24px; padding: 15px 17px; color: #8b2f37; background: #fff5f6; border: 1px solid #efb9be; border-radius: 10px; }
.validation-panel > .material-symbols-rounded { color: #c84450; font-size: 21px; }
.validation-panel strong { font-size: 13px; }
.validation-panel ul { margin: 6px 0 0; padding-left: 18px; font-size: 12px; line-height: 1.55; }
.main-content .validation-field, .main-content .unit-input.validation-field-group { border-color: #c83445; outline: 1px solid #c83445; outline-offset: 0; background-color: #fffafb; }
.main-content .unit-input.validation-field-group input { outline: none; }
.main-content .validation-field:focus, .main-content .unit-input.validation-field-group:focus-within { border-color: #c83445; box-shadow: 0 0 0 3px rgba(200,52,69,.16); }
.panel-actions { display: flex; justify-content: flex-end; margin-top: 34px; padding-top: 24px; border-top: 1px solid var(--line); }
.panel-actions.split { justify-content: space-between; }
.primary-button, .continue-button { min-height: 50px; display: inline-flex; align-items: center; justify-content: center; gap: 10px; padding: 0 24px; color: #fff; background: linear-gradient(135deg, var(--blue-dark), #096cff); border: 0; border-radius: 9px; font-weight: 650; box-shadow: 0 8px 20px rgba(7, 95, 229, .18); }
.primary-button:hover, .continue-button:hover { filter: brightness(.96); transform: translateY(-1px); }
.secondary-button { min-height: 46px; display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 0 18px; color: var(--blue); background: #fff; border: 1px solid #b9cdf0; border-radius: 9px; font-weight: 600; }
.timing-card { display: grid; grid-template-columns: minmax(190px, .72fr) 1.4fr; gap: 18px 24px; align-items: center; margin-top: 18px; padding: 20px; background: #f9fbfe; border: 1px solid #dfe7f2; border-radius: 12px; }
.timing-card h2 { margin: 0; color: #25344c; font-size: 15px; }
.timing-card p { margin: 5px 0 0; color: #75839a; font-size: 11px; line-height: 1.45; }
.segment-grid { display: grid; gap: 8px; }
.shift-grid { grid-template-columns: repeat(3, 1fr); }
.day-grid { grid-template-columns: repeat(7, 1fr); }
.segment-grid button { min-height: 50px; color: #5d6d84; background: #fff; border: 1px solid #d1dbe7; border-radius: 8px; font-weight: 650; }
.segment-grid button:hover { background: #f3f7fd; }
.segment-grid button.selected { color: var(--blue); background: #edf4ff; border-color: var(--blue); box-shadow: inset 0 0 0 1px var(--blue); }
.shift-grid button { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px; }
.shift-grid strong { font-size: 14px; }
.shift-grid span { font-size: 9px; }
.timing-advice { grid-column: 2; display: flex; align-items: center; gap: 8px; margin-top: -8px; color: #607189; font-size: 11px; }
.timing-advice .material-symbols-rounded { color: #2e6cc7; font-size: 18px; }
.choice-section { padding: 24px 0; border-bottom: 1px solid var(--line); }
.choice-section h2 { margin: 0; font-size: 15px; }
.choice-section > p { margin: 6px 0 13px; color: #75839a; font-size: 12px; }
.choice-grid { display: grid; gap: 0; overflow: hidden; border: 1px solid #cfd9e6; border-radius: 10px; }
.choice-grid button { min-width: 0; min-height: 98px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; padding: 12px 8px; color: #52627a; background: #fff; border: 0; border-right: 1px solid #dbe3ed; }
.choice-grid button:last-child { border-right: 0; }
.choice-grid button:hover { background: #f7faff; }
.choice-grid button.selected { position: relative; z-index: 1; color: var(--blue); background: #f1f6ff; box-shadow: inset 0 0 0 1px var(--blue); }
.choice-grid button > .material-symbols-rounded { font-size: 25px; color: #162945; }
.choice-grid button.selected > .material-symbols-rounded { color: var(--blue); }
.choice-grid strong { font-size: 13px; }
.choice-grid small { color: #7b899c; font-size: 10px; text-align: center; line-height: 1.35; }
.dirt-grid { grid-template-columns: repeat(5, 1fr); }
.traffic-grid { grid-template-columns: repeat(3, 1fr); }
.traffic-grid button { min-height: 72px; }
.traffic-grid button > span { display: flex; align-items: center; gap: 7px; }
.traffic-grid button .material-symbols-rounded { font-size: 18px; }
.condition-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.condition-grid button { min-height: 48px; display: flex; align-items: center; gap: 8px; padding: 0 13px; color: #65758c; background: #fff; border: 1px solid #d5deea; border-radius: 9px; }
.condition-grid button .material-symbols-rounded:last-child { margin-left: auto; }
.condition-grid button.selected { color: var(--blue); background: #f0f6ff; border-color: var(--blue); }
.floor-table { margin-top: 28px; overflow: hidden; border: 1px solid #d8e1ec; border-radius: 12px; }
.floor-table-head, .floor-row { display: grid; grid-template-columns: minmax(0, 1fr) 150px 52px; align-items: center; gap: 14px; padding: 10px 16px; }
.floor-table-head { color: #75849a; background: #f8faff; font-size: 11px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.floor-row { min-height: 62px; border-top: 1px solid #e5ebf2; }
.floor-row > span { display: flex; align-items: center; gap: 12px; font-size: 14px; }
.floor-row > span .material-symbols-rounded { width: 30px; height: 30px; display: grid; place-items: center; color: #4774b8; background: #edf4ff; border-radius: 7px; }
.icon-only { width: 38px; height: 38px; color: #77879e; background: transparent; border: 0; border-radius: 8px; }
.icon-only:hover { color: #c43e48; background: #fff2f3; }
.floor-controls { min-height: 58px; display: flex; align-items: center; justify-content: space-between; padding: 0 16px; border-top: 1px solid #e5ebf2; }
.floor-controls button { display: flex; align-items: center; gap: 7px; color: var(--blue); background: transparent; border: 0; font-weight: 600; }
.floor-controls strong { font-size: 13px; }
.floor-controls > span { color: #6d7c91; font-size: 12px; font-weight: 600; }
.floor-coverage-feedback { margin: 12px 0 0; font-size: 14px; font-weight: 600; line-height: 1.5; }
.valid { color: var(--green); }
.invalid { color: #c17400; }
.exterior-table { margin-top: 18px; }
.exterior-copy { min-width:0;display:flex;flex-direction:column;gap:5px; }
.exterior-copy small { color:var(--muted);font-size:13px;line-height:1.5; }
.exterior-table .material-symbols-rounded { flex-shrink:0; }
.winter-impact-card { margin-top: 24px; padding: 22px; background: linear-gradient(145deg, #f5f9ff, #fbfdff); border: 1px solid #cfe0f7; border-radius: 14px; }
.winter-title { display: flex; align-items: flex-start; gap: 12px; }
.winter-title > .material-symbols-rounded { width: 38px; height: 38px; display: grid; place-items: center; color: #fff; background: #397de0; border-radius: 10px; }
.winter-title h2 { margin: 0; color: #18345e; font-size: 17px; }
.winter-title p { margin: 5px 0 0; color: #667791; font-size: 12px; line-height: 1.55; }
.winter-compact-grid, .winter-settings-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.winter-compact-grid { margin: 18px 0 0; padding-top: 18px; border-top: 1px solid #dbe6f4; }
.winter-settings-grid { margin-top: 16px; padding-top: 16px; border-top: 1px solid #dbe6f4; }
.read-only-value { height: 48px; display: flex; align-items: center; padding: 0 14px; color: #52647d; background: #f1f5fa; border: 1px solid #d4deea; border-radius: 9px; }
.winter-note { display: flex; align-items: flex-start; gap: 8px; margin-top: 14px; color: #607189; font-size: 11px; line-height: 1.5; }
.winter-note .material-symbols-rounded { color: var(--blue); font-size: 18px; }
.winter-note a { color: var(--blue-dark); font-weight: 650; }
.area-editor { margin-top: 26px; overflow: hidden; border: 1px solid var(--line); border-radius: 12px; }
.area-edit-row { display: grid; grid-template-columns: 42px 1.25fr 1fr 1fr 42px; align-items: center; gap: 10px; padding: 11px 12px; border-bottom: 1px solid var(--line); }
.area-edit-row:last-child { border-bottom: 0; }
.area-edit-row input, .area-edit-row select { height: 42px; }
.area-icon { width: 36px; height: 36px; display: grid; place-items: center; color: var(--blue); background: #eef5ff; border-radius: 9px; }
.add-area-card { margin-top: 22px; padding: 20px; background: #f9fbfe; border: 1px dashed #b7c9e2; border-radius: 12px; }
.add-area-card h2 { margin: 0; font-size: 16px; }
.add-area-card .field-help { display: none; }
.scope-preview { position: relative; min-width: 0; padding: 30px 22px 148px; border-left: 1px solid var(--line); background: #fbfdff; }
.preview-header { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.preview-header h2 { margin: 0; font-size: 16px; }
.preview-header button { display: flex; align-items: center; gap: 6px; color: var(--blue); background: transparent; border: 0; font-size: 12px; font-weight: 600; }
.linked-banner { display: flex; align-items: center; gap: 9px; margin-top: 18px; padding: 13px; color: var(--blue); background: #edf4ff; border: 1px solid #c9dcff; border-radius: 9px; font-size: 12px; }
.service-strip { display: flex; align-items: center; gap: 11px; margin: 14px 0; padding: 12px; background: #fff; border: 1px solid var(--line); border-radius: 9px; }
.service-dot { width: 10px; height: 10px; border-radius: 50%; background: #4eb3ff; }
.service-dot.high { background: #f05a5f; }
.service-dot.medium { background: #f0a83a; }
.service-dot.light { background: #43b987; }
.service-strip div { display: flex; flex-direction: column; gap: 3px; }
.service-strip strong { font-size: 12px; }
.service-strip small { color: #738198; font-size: 10px; }
.preview-areas { overflow: hidden; background: #fff; border: 1px solid var(--line); border-radius: 10px; }
.preview-areas button { width: 100%; min-height: 78px; display: grid; grid-template-columns: 40px minmax(0, 1fr) auto; align-items: center; gap: 11px; padding: 11px 12px; text-align: left; background: #fff; border: 0; border-bottom: 1px solid var(--line); }
.preview-areas button:last-child { border-bottom: 0; }
.preview-areas button:hover { background: #f8fbff; }
.preview-areas button > span:nth-child(2) { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.preview-areas button strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 12px; }
.preview-areas button small { color: #7b899c; font-size: 10px; }
.area-task-count { display: flex; align-items: center; color: #607089; font-size: 10px; white-space: nowrap; }
.add-area { width: 100%; height: 49px; display: flex; align-items: center; justify-content: center; gap: 6px; margin-top: 13px; color: var(--blue); background: #fff; border: 1px dashed #9ebbe6; border-radius: 9px; font-size: 12px; font-weight: 600; }
.preview-footer { position: absolute; right: 0; bottom: 0; left: 0; padding: 20px 22px 25px; background: rgba(251, 253, 255, .97); border-top: 1px solid var(--line); }
.preview-footer > div { display: flex; align-items: baseline; justify-content: center; gap: 6px; margin-bottom: 14px; }
.preview-footer > div strong { font-size: 13px; }
.preview-footer > div span { color: #748299; font-size: 11px; }
.preview-footer > div i { width: 1px; height: 24px; margin: 0 18px; background: #dbe3ed; }
.continue-button { width: 100%; }
.scope-workspace { max-width: 900px; }
.scope-context { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; margin: 22px 0; }
.scope-context > div { padding: 15px; background: #f7faff; border: 1px solid #e0e8f2; border-radius: 10px; }
.scope-context span { display: block; margin-bottom: 5px; color: #77859a; font-size: 10px; text-transform: uppercase; }
.scope-context strong { font-size: 13px; }
.scope-area-cards { display: grid; gap: 16px; }
.scope-area-card { overflow: hidden; border: 1px solid #d9e3ef; border-radius: 13px; }
.scope-area-card header { display: grid; grid-template-columns: 42px minmax(0, 1fr) auto; align-items: center; gap: 12px; padding: 15px 17px; background: #f7faff; border-bottom: 1px solid #e0e8f2; }
.scope-area-card h2 { margin: 0; font-size: 15px; }
.scope-area-card header p { margin: 4px 0 0; color: #76849a; font-size: 11px; }
.task-badge { color: var(--blue); background: #eaf3ff; border-radius: 999px; padding: 6px 9px; font-size: 10px; font-weight: 700; }
.task-list { display: grid; grid-template-columns: 1fr 1fr; gap: 0 18px; padding: 11px 17px 16px; }
.task-list label { display: flex; align-items: flex-start; gap: 9px; padding: 9px 4px; color: #35445a; font-size: 12px; line-height: 1.4; border-bottom: 1px solid #edf1f6; }
.task-list label.excluded { color: #9aa5b4; text-decoration: line-through; }
.task-list input { margin-top: 1px; accent-color: var(--blue); }
.review-page { grid-column: 1 / -1; max-width: 1180px; margin: 0 auto; }
.review-hero { display: flex; align-items: center; gap: 18px; padding-bottom: 26px; border-bottom: 1px solid var(--line); }
.review-check { flex: 0 0 auto; width: 58px; height: 58px; display: grid; place-items: center; color: #fff; background: var(--blue); border-radius: 16px; }
.review-check .material-symbols-rounded { font-size: 34px; }
.review-layout { display: grid; grid-template-columns: 330px minmax(0, 1fr); gap: 24px; margin-top: 24px; }
.review-summary, .review-scope { padding: 22px; border: 1px solid var(--line); border-radius: 13px; background: #fff; }
.review-summary h2, .review-scope > h2 { margin: 0 0 18px; font-size: 17px; }
.review-summary dl { margin: 0; }
.review-summary dl div { display: flex; justify-content: space-between; gap: 20px; padding: 11px 0; border-bottom: 1px solid #edf1f6; }
.review-summary dt { color: #77859a; font-size: 11px; }
.review-summary dd { margin: 0; text-align: right; font-size: 12px; font-weight: 600; }
.review-scope article { padding: 14px 0; border-top: 1px solid var(--line); }
.review-scope article:first-of-type { border-top: 0; }
.review-scope h3 { display: flex; justify-content: space-between; margin: 0; font-size: 14px; }
.review-scope h3 span { color: var(--blue); font-size: 10px; }
.review-scope ul { columns: 2; margin: 10px 0 0; padding-left: 19px; color: #526278; font-size: 11px; line-height: 1.7; }
.review-actions { display: flex; align-items: center; gap: 12px; margin-top: 24px; }
.text-danger { margin-left: auto; color: #b1434c; background: transparent; border: 0; }
.site-footer { max-width: 1440px; margin: 0 auto; padding: 24px 18px; color: #74839a; font-size: 12px; }
.footer-links { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 12px 20px; }
.site-copyright { margin: 18px 0 0; text-align: center; color: #52677e; line-height: 1.6; }
.site-footer a { color: #3d66a0; text-decoration: none; }
.site-footer a:hover { text-decoration: underline; }
.app-notice { position: fixed; right: 24px; bottom: 24px; z-index: 50; display: flex; align-items: center; gap: 9px; min-height: 48px; padding: 0 18px; color: #fff; background: #173b70; border-radius: 10px; box-shadow: 0 14px 34px rgba(20, 48, 90, .25); font-size: 13px; font-weight: 600; }
.app-notice .material-symbols-rounded { color: #6de1a6; }

@media (max-width: 1180px) {
  .workspace { grid-template-columns: 150px minmax(0, 1fr) 330px; }
  .brand-logo-panel, .logo-frame { width: 150px; }
  .brand-logo-panel { flex-basis: 150px; }
  .brand-block img { width: 128px; }
  .rail-label { font-size: 10px; }
  .main-content { padding: 28px 24px 36px; }
  .condition-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 960px) {
  .site-page { padding: 0; }
  .app-shell { border: 0; border-radius: 0; min-height: 100vh; }
  .topbar { grid-template-columns: 1fr auto; }
  .top-progress { order: 3; grid-column: 1 / -1; justify-content: center; }
  .workspace { display: block; }
  .step-rail { display: flex; overflow-x: auto; padding: 8px 16px; border: 0; border-bottom: 1px solid var(--line); }
  .rail-line { display: none; }
  .step-rail button { min-width: 145px; min-height: 64px; }
  .scope-preview { border: 0; border-top: 1px solid var(--line); }
  .preview-footer { position: static; margin: 20px -22px -148px; }
  .site-footer { padding: 18px; flex-wrap: wrap; }
}
@media (max-width: 680px) {
  .topbar { gap: 10px; padding: 12px 16px; }
  .brand-block { gap: 8px; }
  .brand-logo-panel, .logo-frame { width: 120px; }
  .brand-logo-panel { flex-basis: 120px; }
  .brand-block img { width: 104px; }
  .project-name { max-width: 140px; font-size: 11px; }
  .save-state { font-size: 0; }
  .top-progress { width: 100%; }
  .top-progress button { font-size: 11px; }
  .progress-wrap i { width: 16px; }
  .main-content { padding: 24px 17px 32px; }
  .form-grid, .metric-grid, .form-grid.three { grid-template-columns: 1fr; }
  .winter-compact-grid, .winter-settings-grid { grid-template-columns: 1fr; }
  .timing-card { grid-template-columns: 1fr; }
  .timing-advice { grid-column: 1; margin-top: 0; }
  .shift-grid { grid-template-columns: 1fr; }
  .day-grid { grid-template-columns: repeat(4, 1fr); }
  .field-wide { grid-column: auto; }
  .dirt-grid { grid-template-columns: 1fr 1fr; }
  .choice-grid button { border-bottom: 1px solid #dbe3ed; }
  .traffic-grid { grid-template-columns: 1fr; }
  .condition-grid { grid-template-columns: 1fr; }
  .floor-table-head, .floor-row { grid-template-columns: minmax(0, 1fr) 110px 38px; padding: 10px; }
  .area-edit-row { grid-template-columns: 38px minmax(0, 1fr) 38px; }
  .area-edit-row select, .area-edit-row input:nth-of-type(2) { grid-column: 2 / -1; }
  .scope-context { grid-template-columns: 1fr 1fr; }
  .task-list { grid-template-columns: 1fr; }
  .review-layout { grid-template-columns: 1fr; }
  .review-scope ul { columns: 1; }
  .review-actions { flex-wrap: wrap; }
  .text-danger { margin-left: 0; width: 100%; }
  .review-actions .secondary-button { flex: 1 1 100%; }
  .app-notice { right: 14px; bottom: 14px; left: 14px; justify-content: center; }
  .footer-divider { display: none; }
}
.full-workspace { grid-template-columns:190px minmax(0,1fr); }
.guide-tip { margin:0 0 18px;padding:14px 16px;background:#f1f7ff;border:1px solid #d6e5fa;border-radius:12px;font-size:13px;line-height:1.6; }
.guide-tip summary { cursor:pointer;font-weight:600;color:#175395; }
.guide-tip p { margin:10px 0 0;color:#526278; }
.sample-link { background:transparent;border:0;color:var(--blue);padding:0 0 18px;font-size:13px; }
.sample-banner { display:flex;justify-content:space-between;align-items:center;gap:16px;padding:16px 28px;background:#fff8df;border-bottom:1px solid #eddfae;font-size:13px;line-height:1.5; }
.sample-banner button { border:1px solid #c7aa54;border-radius:8px;background:#fff;padding:10px 14px;color:#654f15; }
.allocation-summary { display:grid;gap:6px;margin:20px 0;padding:18px;border:1px solid #d6e5fa;border-radius:12px;background:#f4f8fe;font-size:13px; }
.allocation-summary.complete { background:#f0faf3;border-color:#c7e7d1;color:#246b3b; }
.measured-area { border:1px solid var(--line);padding:20px;border-radius:12px;margin:0 0 18px; }
.measured-area-heading { display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:15px; }
.measured-area-heading h2 { font-size:16px;margin:0; }
.measured-area-heading { flex-wrap:wrap; }
.area-heading-actions { display:flex;align-items:center;gap:8px;margin-left:auto; }
.duplicate-area-button { min-height:44px;padding:8px 12px;font-size:14px; }
.kitchen-area-items h3 { margin:0;font-size:14px;font-weight:600;color:#3b5b89; }
.optional-area-items { padding:14px;background:#f7f9fc;border-radius:8px;font-size:13px; }
.optional-area-items summary { cursor:pointer;font-weight:600;color:#3b5b89; }
.optional-area-items p { color:var(--muted);line-height:1.5; }
.service-schedule { margin:28px 0;padding:20px;border:1px solid var(--line);border-radius:12px; }
.service-schedule h2 { font-size:17px; }
.service-schedule>p { font-size:13px;color:var(--muted);line-height:1.6; }
.light-service-choice { min-width:0;margin:0;padding:0;border:0; }
.light-service-choice legend { padding:0;margin-bottom:7px; }
.light-service-options { display:flex;gap:12px;flex-wrap:wrap; }
.light-service-options label { display:flex;align-items:center;gap:9px;min-height:48px;padding:0 18px;border:1px solid #cfd9e6;border-radius:9px;cursor:pointer; }
.light-service-options label:has(input:checked) { color:var(--blue);background:#eef5ff;border-color:var(--blue); }
.light-service-options input { width:18px;height:18px;margin:0;accent-color:var(--blue); }
.light-service-options label:focus-within { outline:3px solid rgba(7,95,229,.2);outline-offset:2px; }
.light-extra { display:flex;align-items:flex-start;gap:10px;margin-top:20px;font-size:13px; }
.light-extra small { display:block;color:var(--muted);margin-top:6px; }
.scope-task-rows { padding:8px 18px; }
.scope-task-row { display:grid;grid-template-columns:minmax(0,1fr) 145px;align-items:center;gap:15px;border-bottom:1px solid #edf1f6;padding:13px 0; }
.scope-task-row:last-child { border:0; }
.scope-task-row label { display:flex;align-items:flex-start;gap:10px;line-height:1.5;font-size:13px; }
.scope-task-row label input { margin:3px 0 0;flex:none;accent-color:var(--blue); }
.scope-task-row select { width:100%;font-size:11px;padding:9px 5px;border:1px solid #d0dbea;border-radius:7px;background:#fff;color:#435571; }
.scope-task-row.excluded { color:#7a8596; }
.scope-task-row.excluded label span { text-decoration:line-through; }
.schedule-summary { padding:20px;background:var(--blue-soft);border:1px solid #d6e5fa;border-radius:12px;margin:20px 0;font-size:14px; }
.schedule-summary p { margin-bottom:0;line-height:1.5; }
.price-page { max-width:850px;margin:auto; }
.customer-price { margin:30px 0 20px;padding:40px 30px;border:1px solid #c3d7f2;border-radius:18px;background:#f2f7ff;text-align:center; }
.customer-price>span { display:block;color:#385b8c;font-size:15px; }
.customer-price>strong { display:block;color:#0755c9;font-size:48px;letter-spacing:-2px;margin:18px 0; }
.customer-price>small { display:block;color:#66758d; }
.price-scope-summary { padding:22px;border:1px solid var(--line);border-radius:12px;line-height:1.6; }
.price-scope-summary h2 { font-size:19px;margin:0; }
.price-scope-summary p { font-size:14px;color:#526278; }
.price-scope-summary small { color:#74839a; }
.price-selected { margin-top:30px;padding:20px;border:1px solid var(--line);border-radius:12px;line-height:1.7;font-size:13px; }
.price-selected summary { cursor:pointer;font-weight:600; }
.price-selected h3 { font-size:14px;margin-top:22px; }
button:disabled { cursor:wait;opacity:.6; }
input:focus-visible,select:focus-visible,button:focus-visible,a:focus-visible,summary:focus-visible { outline:3px solid #88b8fc;outline-offset:3px; }
@media(max-width:1180px) { .full-workspace{grid-template-columns:150px minmax(0,1fr)}.topbar{gap:12px}.brand-block{gap:5px}.project-name{max-width:175px}.progress-wrap i{width:15px} }
@media(max-width:960px) { .full-workspace{display:block}.review-actions{flex-wrap:wrap}.review-layout{grid-template-columns:1fr}.sample-banner{padding:16px} }
@media(max-width:680px) { .scope-task-row{grid-template-columns:1fr}.scope-task-row select{width:180px;margin-left:24px}.sample-banner{flex-direction:column;align-items:flex-start}.customer-price>strong{font-size:38px}.review-actions .primary-button{width:100%}.top-progress{gap:2px}.progress-wrap{gap:3px}.top-progress button{gap:4px;padding:4px}.top-progress button span{width:25px;height:25px}.progress-wrap i{width:7px} }
@media print {
  body { background: #fff; }
  .site-page { padding: 0; }
  .app-shell { border: 0; box-shadow: none; }
  .topbar, .step-rail, .scope-preview, .site-footer, .review-actions { display: none !important; }
  .workspace { display: block; }
  .main-content { padding: 0; }
  .review-layout { grid-template-columns: 280px 1fr; }
  .review-summary, .review-scope { break-inside: avoid; }
  .sample-banner button,.guide-tip,.sample-link,.price-selected summary { display:none; }
  .price-selected { display:block; }
}

/* Static dimensional branding and touch-friendly customer screens. */
.brand-logo-panel,.logo-frame{width:200px}.brand-logo-panel{flex-basis:200px}.brand-block img{width:200px;height:146px}
.panel-actions{gap:12px;flex-wrap:wrap}.review-summary dd,.scope-context strong,.price-scope-summary h2,.scope-area-card h2{overflow-wrap:anywhere}
.scope-area-card header>div{min-width:0}.unit-input.compact{max-width:100%}
@media(max-width:1180px){.brand-logo-panel,.logo-frame{width:180px}.brand-logo-panel{flex-basis:180px}.brand-block img{width:180px;height:132px}.topbar{grid-template-columns:1fr auto}.top-progress{grid-column:1/-1;order:3;justify-content:center}}
@media(max-width:680px){
 .brand-logo-panel,.logo-frame{width:146px}.brand-logo-panel{flex-basis:146px}.brand-block img{width:146px;height:107px}
 .topbar{padding:8px 12px;gap:5px}.brand-block{gap:4px}.project-name{font-size:13px;max-width:125px;min-height:44px;padding:6px}
 .top-progress{justify-content:space-between;gap:0}.top-progress button{min-height:44px;font-size:12px;gap:4px;padding:2px}.progress-wrap i{width:5px}
 .top-progress button span{height:25px;width:25px}.progress-wrap{gap:2px}
 .field-help,.guide-tip,.timing-card p,.service-schedule>p,.optional-area-items,.light-extra,.allocation-summary,.insight-card p{font-size:14px;line-height:1.55}
 .field input:not([type=radio]):not([type=checkbox]):not([type=range]),.field select,.scope-task-row select{font-size:16px;min-height:44px}.scope-task-row select{width:calc(100% - 30px);margin-left:30px}
 .scope-task-row label{font-size:15px;min-height:44px;align-items:center}.scope-task-row label input{width:20px;height:20px;margin:0}
 .scope-area-card header{flex-wrap:wrap;gap:10px}.scope-area-card header>div{flex:1}.scope-area-card header .task-badge{margin-left:45px}
 .floor-table-head,.floor-row{grid-template-columns:minmax(0,1fr) 86px 36px;gap:6px}.floor-row .unit-input{width:100%}.floor-row input{min-width:0;width:100%;font-size:16px}
 .panel-actions>button,.review-actions>button{width:100%;padding:12px 14px;min-height:48px}.panel-actions.split{flex-direction:column}
 .sample-link,.guide-tip summary,.optional-area-items summary,.price-selected summary{min-height:44px}.guide-tip summary,.optional-area-items summary{padding:6px 0}
 .step-rail button{min-width:150px}.rail-label{font-size:12px}.sample-banner{font-size:14px}.sample-banner button{min-height:44px}
 .customer-price{padding:28px 12px}.customer-price>strong{font-size:clamp(25px,8vw,38px);letter-spacing:-1px;overflow-wrap:anywhere}
 .review-scope h3{flex-wrap:wrap;gap:8px}.measured-area{padding:14px}.scope-task-rows{padding:8px 14px}
 .light-extra input{width:20px;height:20px;flex:none}.review-actions{gap:12px}.site-footer a{min-height:36px;display:inline-flex;align-items:center}
}
@media(max-width:380px){.top-progress{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}.progress-wrap{justify-content:center}.top-progress button{flex-direction:column;gap:4px;padding:5px 0;font-size:12px}.progress-wrap i{display:none}.project-name{max-width:105px}.brand-logo-panel,.logo-frame{width:138px}.brand-logo-panel{flex-basis:138px}.brand-block img{width:138px;height:101px}}

.content-loading{max-width:600px;margin:10vh auto;padding:30px;line-height:1.6}
.finalize-card { margin: 24px 0; padding: 24px; background: #f0f6ff; border: 1px solid #d5e3f7; border-radius: 16px; }
.finalize-card h2 { margin: 0 0 10px; }
.finalize-card p { line-height: 1.65; max-width: 72ch; }
.finalize-card button { max-width: 100%; white-space: normal; }
.fixed-floor-type { border: 1px solid #d0dced; border-radius: 10px; padding: 13px 16px; min-height: 48px; background: #f6f9ff; }
.surface-other { display: flex; align-items: center; gap: 9px; font-size: 14px; font-weight: 600; }
.surface-other input { width: auto; min-height: auto; accent-color: #0866ff; }
.surface-other + .field { margin-top: 12px; }
.refrigerator-interior { padding-top: 15px; border-top: 1px solid #dbe6f5; }
.refrigerator-interior .surface-other { align-items: flex-start; }
.refrigerator-interior small { display: block; margin-top: 4px; color: #526989; font-weight: 400; }
.refrigerator-interior .form-grid { margin-top: 18px; align-items: start; }
.refrigerator-process { line-height: 1.65; margin: 0; }
.fixture-list { display: grid; gap: 18px; margin-top: 24px; }
.fixture-card { border: 1px solid var(--line); border-radius: 12px; padding: 22px; background: #fff; }
.fixture-card > summary { cursor: pointer; min-height: 44px; align-content: center; color: var(--ink, #172c48); }
.fixture-card > summary::marker { color: #172c48; }
.fixture-card > summary:focus-visible { outline: 3px solid #0864ed; outline-offset: 4px; border-radius: 4px; }
.fixture-heading { display: inline-flex; width: calc(100% - 22px); justify-content: space-between; align-items: center; gap: 12px; vertical-align: middle; }
.fixture-name { font-size: 18px; font-weight: 700; }
.fixture-heading > [data-fixture-total] { color: #1764b0; font-weight: 600; white-space: nowrap; }
.fixture-frequency { display: block; margin: 10px 0 0; color: #667a9b; font-size: 14px; font-weight: 400; line-height: 1.5; }
.fixture-card .form-grid { margin-bottom: 0; }
.fixture-entry + .fixture-entry { border-top: 1px solid var(--line); margin-top: 20px; padding-top: 20px; }
.fixture-card .sample-link { margin-top: 14px; }
@media (max-width: 600px) { .fixture-card { padding: 16px; } }

.scope-availability { margin: 0 30px 18px; padding: 12px 18px; border: 1px solid #d7e6fa; border-radius: 10px; background: #f4f8ff; color: #385b8c; font-size: 13px; line-height: 1.6; }
@media (max-width:680px) { .scope-availability { margin: 0 14px 14px; } }
.difficulty-factors{display:grid;gap:14px;margin:26px 0 32px}
.building-conditions{display:grid;gap:14px;margin:26px 0 32px}
.condition-card{min-width:0;border:1px solid #d2dff3;border-radius:12px;background:#fff}
.condition-card summary{padding:18px 20px;min-height:60px;color:#172943;font-size:17px;font-weight:700;cursor:pointer;border-radius:12px}
.condition-card summary::marker{font-size:13px}
.condition-card summary:focus-visible{outline:3px solid #0864ed;outline-offset:3px}
.condition-body{padding:0 20px 20px;display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.3fr);gap:26px;align-items:start}
.condition-question{font-size:14px;line-height:1.5;color:#617493;margin:3px 0 0}
.condition-control{min-width:0}
.condition-answer{display:block;min-height:24px;color:#0759ca;font-size:14px;font-weight:600;line-height:1.5}
.condition-answer.unanswered{color:#66758b;font-weight:400}
.condition-range{display:block;width:100%;height:44px;margin:0;padding:0;border:0;border-radius:0;appearance:none;background:transparent;touch-action:pan-y;cursor:pointer;box-shadow:none}
.condition-range::-webkit-slider-runnable-track{height:7px;border-radius:8px;background:linear-gradient(to right,#0864ed 0 var(--condition-fill),#dce6f4 var(--condition-fill) 100%)}
.condition-range::-webkit-slider-thumb{appearance:none;width:23px;height:23px;border-radius:50%;background:#0864ed;border:3px solid #fff;margin-top:-8px;box-shadow:0 0 0 1px #0864ed}
.condition-range::-moz-range-track{height:7px;border-radius:8px;background:#dce6f4}
.condition-range::-moz-range-progress{height:7px;border-radius:8px;background:#0864ed}
.condition-range::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:#0864ed;border:3px solid #fff;box-shadow:0 0 0 1px #0864ed}
.condition-range.unanswered::-webkit-slider-thumb{background:#8c99aa;box-shadow:0 0 0 1px #8c99aa}
.condition-range.unanswered::-moz-range-thumb{background:#8c99aa;box-shadow:0 0 0 1px #8c99aa}
.condition-range:focus-visible{outline:3px solid #0864ed;outline-offset:3px;border-radius:5px}
.condition-endpoints{display:flex;justify-content:space-between;gap:16px;color:#617493;font-size:12px;line-height:1.4}
.condition-endpoints span{max-width:46%}
.condition-endpoints span:last-child{text-align:right}
.condition-endpoints b{display:block;color:#273b56;font-size:13px;font-weight:600;margin-bottom:3px}
.condition-clear{border:0;background:transparent;color:#0759ca;text-decoration:underline;font:inherit;font-size:12px;padding:10px 0 0;cursor:pointer}
.condition-clear[hidden]{display:none}
.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:1100px){.condition-body{grid-template-columns:minmax(0,1fr);gap:12px}}
@media(max-width:540px){.condition-card summary{padding:16px 14px;font-size:16px}.condition-body{padding:0 14px 18px}.building-conditions{gap:12px}}
.difficulty-card{border:1px solid #d2dff3;border-radius:12px;padding:18px;background:#fbfcff}
.difficulty-top{display:grid;grid-template-columns:minmax(165px,1fr) minmax(0,2fr);gap:20px;align-items:center}
.difficulty-copy h2{font-size:16px;margin:0 0 6px}
.difficulty-copy p{font-size:14px;line-height:1.5;color:#667a9b;margin:0}
.difficulty-options{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:5px}
.difficulty-options button{min-height:48px;padding:9px 4px;background:#fff;border:1px solid #c6d6f0;border-radius:8px;color:#50688d;font:inherit;font-size:14px;font-weight:700;cursor:pointer}
.difficulty-options button.selected{background:#0864ed;color:#fff;border-color:#0864ed;box-shadow:0 3px 9px #0763ed26}
.difficulty-options button:hover{border-color:#0864ed}
.difficulty-options button:focus-visible{outline:3px solid #152d52;outline-offset:3px}
.difficulty-description{margin:15px 0 0;padding:10px 12px;border-left:3px solid #287aff;background:#edf4ff;color:#385681;font-size:14px;line-height:1.5}
.bid-facility-summary{padding:20px 22px;border-bottom:1px solid #dbe5f3;line-height:1.5}
.bid-facility-summary p{font-size:14px;color:#667a9b;margin:8px 0 0}
.bid-factor-summary{padding:6px 22px 16px;margin:0}
.bid-factor-summary div{display:flex;justify-content:space-between;gap:14px;padding:12px 0;border-bottom:1px solid #e6edf7;font-size:14px}
.bid-factor-summary dt{color:#667a9b}.bid-factor-summary dd{margin:0;font-weight:700;text-align:right}
.fixture-task-options{margin:24px 0;padding:18px;border:1px solid #d2dff3;border-radius:12px}
.fixture-task-options summary{font-weight:700;cursor:pointer}.fixture-task-options>p{font-size:14px;color:#667a9b}
@media(max-width:1100px){.difficulty-top{grid-template-columns:1fr;gap:14px}}
@media(max-width:540px){.difficulty-card{padding:14px}.difficulty-options{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.difficulty-description{font-size:14px}}
.waste-enabled{display:flex;align-items:center;gap:10px;margin:16px 0 20px;font-size:16px;font-weight:600;cursor:pointer}
.waste-enabled input{width:20px;height:20px;accent-color:#0864ed}
.cleanable-area-context{padding:16px 18px;margin:0 0 24px;background:#edf4ff;border:1px solid #d2dff3;border-radius:10px;color:#385681;font-size:16px;line-height:1.6}
.cleanable-area-context strong{color:#15325a;white-space:nowrap}
.workspace{grid-template-columns:260px minmax(0,1fr) 310px}
.full-workspace{grid-template-columns:260px minmax(0,1fr)}
.bid-sidebar{min-width:0;border-right:1px solid var(--line);background:#fbfdff}
.bid-sidebar .step-rail{border-right:0;padding:28px 18px 12px;background:none}
.bid-sidebar .rail-line{bottom:55px;top:68px}
.bid-sidebar .rail-label{font-size:14px}
.bid-price-panel{margin:16px 16px 30px;padding:20px 16px;border:1px solid #c9daf3;border-top:4px solid #0764ed;border-radius:12px;background:#fff;min-width:0}
.bid-price-panel h2{font-size:17px;line-height:1.4;margin:0 0 16px}
.price-breakdown{margin:0;font-size:14px;line-height:1.5}
.price-breakdown div{padding:8px 0;display:flex;justify-content:space-between;gap:8px}
.price-breakdown dd{margin:0;font-weight:700;text-align:right;white-space:nowrap}
.monthly-total{border-top:1px solid #d8e4f5;padding-top:16px;margin-top:8px;display:grid;gap:5px}
.monthly-total>span{font-size:14px;font-weight:600;color:#526a8f}
.monthly-total strong{font-size:clamp(22px,2.1vw,30px);letter-spacing:-1px;color:#0758c8;overflow-wrap:anywhere}
.monthly-total small{font-size:12px;color:#526a8f}
.estimate-message{font-size:14px;line-height:1.6;color:#536a8b;margin:8px 0 14px}
.monthly-total .industry-threshold-amount,.customer-price>.industry-threshold-amount,.industry-threshold-note{color:#b42318}
.industry-threshold-note{font-size:13px;line-height:1.5;margin:12px 0}
.detail-controls{border-top:1px solid #d8e4f5;margin-top:20px;padding-top:18px}
.detail-enable{display:flex;align-items:center;gap:9px;font-weight:700;font-size:15px;cursor:pointer;line-height:1.5}
.detail-enable input{width:20px;height:20px;accent-color:#0864ed;flex:none}
.detail-controls p{font-size:14px;line-height:1.5;color:#526a8f;margin:10px 0 14px}
.detail-controls [data-detail-slider]>label{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.detail-controls .additional-detail-allowance>label{position:static;display:block;width:auto;height:auto;overflow:visible;clip-path:none;font-size:16px;font-weight:700;line-height:1.5;color:#182d4b}
.detail-controls output{display:block;font-size:14px;font-weight:600;color:#0758c8;margin-top:16px}
.detail-controls input[type=range]{width:100%;margin:8px 0;min-height:32px;accent-color:#0864ed;cursor:pointer}
.detail-horizontal-control{display:grid;gap:0;margin:20px 0}
.detail-horizontal-endpoint{display:flex;flex-direction:column;gap:5px;width:100%;font-size:14px;line-height:1.5;color:#173b65;overflow-wrap:anywhere}
.detail-endpoint-maximum{align-items:flex-end;text-align:right}
.detail-endpoint-standard{align-items:flex-start;text-align:left}
.detail-endpoint-arrow{font-size:12px;line-height:1;color:#0758c8;width:16px;text-align:center}
.detail-controls .additional-detail-allowance input[type=range]{writing-mode:horizontal-tb;direction:ltr;width:100%;height:44px;min-height:44px;margin:0;touch-action:pan-y}
.detail-current-selection{text-align:center;font-size:13px;line-height:1.5;color:#536a8b}
.detail-controls .detail-current-selection output{margin-top:4px}
.detail-endpoints{display:flex;justify-content:space-between;gap:8px;font-size:13px;color:#536a8b}
.price-link{display:block;background:none;border:0;padding:8px 0;min-height:44px;color:#0758c8;text-decoration:underline;font:inherit;font-size:14px;line-height:1.5;text-align:left;cursor:pointer}
.service-comparison{width:min(900px,calc(100% - 32px));max-height:85dvh;padding:28px;border:1px solid #c9daf3;border-radius:16px;color:#182d4b;box-shadow:0 20px 70px #0e315440}
.service-comparison::backdrop{background:#0c23488c}
.comparison-heading{display:flex;align-items:center;justify-content:space-between;gap:20px}
.comparison-heading h2{margin:0;font-size:25px}
.comparison-heading button{padding:10px 16px;background:#eef5ff;border:1px solid #c6d9f4;border-radius:8px;color:#0758c8;font:inherit;cursor:pointer}
.service-comparison p,.service-comparison li{font-size:16px;line-height:1.65}
.service-comparison li{margin-bottom:6px}
.comparison-columns{display:grid;grid-template-columns:1fr 1fr;gap:26px;border-top:1px solid var(--line);margin-top:22px}
.comparison-columns h3,.service-comparison details h3{font-size:18px;line-height:1.5}
.detail-cadence{padding:18px;background:#edf4ff;border-radius:10px}
.service-comparison summary{min-height:44px;cursor:pointer;font-size:16px;font-weight:700;padding:12px 0}
.allowance-comparison .comparison-heading{position:sticky;top:-28px;z-index:1;background:linear-gradient(180deg,#fff,#f5f9ff);padding:12px 0;border-bottom:1px solid #bed6f6;box-shadow:0 5px 10px #173b6508}
.allowance-comparison .comparison-heading button{flex:none;min-height:44px}
.comparison-brand{display:flex;align-items:center;gap:18px;min-width:0}
.comparison-brand img{width:84px;height:66px;object-fit:contain;flex:none}
.comparison-brand h2{color:#173b65;line-height:1.3}
.allowance-category{min-width:0;margin:22px 0;border:1px solid #c9daf3;border-radius:12px;padding:22px;background:linear-gradient(135deg,#f5f9ff,#fff 70%);box-shadow:inset 0 1px 0 #fff,0 4px 12px #173b6507}
.allowance-category-extra{border-top:3px solid #0864ed;background:#f5f9ff}
.allowance-category h3{font-size:20px;line-height:1.4;margin:0 0 8px;color:#173b65}
.allowance-category h4{font-size:16px;margin:20px 0 6px}
.allowance-category p{margin:8px 0}
.allowance-category .allowance-category-note{color:#0758c8;font-size:15px;font-weight:600}
.allowance-section-heading{display:flex;align-items:center;gap:14px}
.allowance-section-heading h3,.allowance-section-heading h4{margin:0;color:#173b65}
.allowance-section-heading .allowance-category-note{margin:4px 0 0}
.allowance-section-icon{display:grid;place-items:center;flex:0 0 44px;width:44px;height:44px;border:1px solid #1979df;border-radius:12px;color:#fff;background:linear-gradient(145deg,#8fd4ff 0%,#238df2 40%,#0752c3 76%,#043874);box-shadow:inset 0 2px 1px #ffffffa6,inset -2px -3px 2px #00275a66,0 3px 0 #073b80,0 5px 9px #0752c326}
.allowance-section-icon svg{width:25px;height:25px;filter:drop-shadow(0 1px 1px #073b80)}
.allowance-routine-list{display:grid;grid-template-columns:1fr 1fr;gap:12px 26px;padding-left:22px;margin:14px 0 18px}
.allowance-routine-list li::marker,.allowance-extra-list li::marker{color:#0864ed}
.allowance-routine-list strong{color:#173b65}
.allowance-standard{margin-top:22px;padding-top:22px;border-top:1px solid #c9daf3}
.allowance-workstations{margin-top:22px}
.allowance-workstations h4{font-size:17px;line-height:1.5;color:#173b65}
.allowance-slider-guide{border-left:4px solid #0864ed;padding:4px 18px;background:#edf4ff;border-radius:0 10px 10px 0}
.allowance-slider-guide p{margin:10px 0}
.allowance-example-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;padding:8px 0}
.allowance-example-grid article{border:1px solid #c9daf3;border-radius:10px;padding:16px;background:#fff;box-shadow:0 3px 0 #e6effc}
.allowance-example-grid h5{font-size:17px;color:#173b65;margin:12px 0 8px}
.allowance-example-grid p{font-size:15px;line-height:1.65;margin:0}
.allowance-depth{display:flex;gap:5px;align-items:flex-end;height:20px}
.allowance-depth i{width:14px;height:10px;border-radius:3px;border:1px solid #bfcee3;background:#eaf0f8}
.allowance-depth i:nth-child(2){height:15px}.allowance-depth i:nth-child(3){height:20px}
.allowance-depth i.is-filled{border-color:#0864d0;background:linear-gradient(135deg,#86cfff,#0871e2 65%,#0648a2);box-shadow:inset 0 1px 0 #ffffff8c,0 2px 1px #073b8033}
.allowance-category .allowance-level-note{font-size:15px;margin-top:16px}
.allowance-extra-list{padding-left:22px}
@media(max-width:700px){.allowance-example-grid,.allowance-routine-list{grid-template-columns:1fr}.allowance-routine-list{gap:6px}.allowance-category{padding:16px}.allowance-comparison .comparison-heading h2{font-size:20px;line-height:1.4}}
@media(max-width:600px){.allowance-comparison .comparison-heading{top:-20px;gap:10px}.comparison-brand{gap:10px}.comparison-brand img{width:48px;height:40px}.allowance-comparison .comparison-heading h2{font-size:17px}.allowance-comparison .comparison-heading button{padding:10px 12px}.allowance-section-heading{gap:12px}.allowance-section-icon{flex-basis:36px;width:36px;height:36px;border-radius:10px}.allowance-section-icon svg{width:22px;height:22px}}
@media(max-width:1250px){.workspace{grid-template-columns:235px minmax(0,1fr)}.workspace>.scope-preview{display:none}.full-workspace{grid-template-columns:235px minmax(0,1fr)}}
@media(max-width:960px){.workspace,.full-workspace{display:flex;flex-direction:column}.bid-sidebar{display:contents}.bid-sidebar .step-rail{order:0;border-bottom:1px solid var(--line);padding:8px 16px}.workspace>.main-content{order:1}.bid-price-panel{order:2;margin:10px 24px 28px}.bid-sidebar .rail-label{font-size:14px}.monthly-total strong{font-size:30px}.workspace>.scope-preview{order:3}.comparison-columns{grid-template-columns:1fr;gap:0}}
@media(max-width:600px){.service-comparison{padding:20px;width:calc(100% - 24px)}.comparison-heading{align-items:flex-start}.comparison-heading h2{font-size:21px}.bid-price-panel{margin:10px 16px 24px;padding:20px}.detail-controls input[type=range]{min-height:44px}}
@media print{.bid-sidebar,.bid-price-panel,.service-comparison{display:none!important}}
.building-age-guidance{font-size:14px;line-height:1.6;color:#536a8b;margin:14px 0 0}

/* Selected option 2: genuine dimensional wordmark artwork and blue Lite badge. */
.topbar.bidstar-lite-header{grid-template-columns:minmax(0,1fr) 224px;gap:28px;padding-top:20px;padding-bottom:20px}
.bidstar-lite-header .brand-block{gap:26px}
.brand-copy{min-width:0;max-width:560px;padding:10px 0}
.brand-edition{width:440px;max-width:100%;margin:0 0 17px}
/* Object-fit trims only the generated asset's transparent canvas padding. */
.bidstar-lite-header .brand-block .brand-edition-art{display:block;width:100%;height:auto;aspect-ratio:2172/275;object-fit:cover;object-position:center}
.brand-engine{margin:0;color:#29486e;font-size:16px;line-height:1.5}
.brand-engine strong{color:#0757ab;font-weight:700}
.brand-promise{margin:5px 0 0;color:#61728b;font-size:13px;line-height:1.5}
.qcr-endorsement{display:grid;justify-items:center;align-content:center;gap:7px;min-width:0;padding-left:24px;border-left:1px solid #bdd3ef}
.qcr-endorsement-caption{margin:0;color:#29486e;font-size:15px;line-height:1.5}
.qcr-endorsement img{display:block;width:180px;max-width:100%;height:auto}
.qcr-endorsement a{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;color:#0757ab;font-size:14px;font-weight:500;text-decoration:underline;text-underline-offset:3px}
.qcr-endorsement a:hover{color:#0645ad}
.qcr-endorsement a:focus-visible{outline:2px solid var(--blue);outline-offset:4px;border-radius:2px}
.qcr-endorsement .material-symbols-rounded{font-size:16px}
@media(max-width:960px){
 .topbar.bidstar-lite-header{grid-template-columns:minmax(0,1fr);gap:16px}
 .bidstar-lite-header .brand-block{gap:20px}
 .qcr-endorsement{grid-template-columns:112px minmax(0,1fr);grid-template-rows:auto auto;justify-items:start;align-content:center;align-items:center;column-gap:18px;row-gap:0;border-left:0;border-top:1px solid #bdd3ef;padding:14px 0 0}
 .qcr-endorsement-caption{grid-column:2;grid-row:1;align-self:end;font-size:14px}
 .qcr-endorsement img{grid-column:1;grid-row:1/3;width:112px}
 .qcr-endorsement a{grid-column:2;grid-row:2;align-self:start}
}
@media(max-width:600px){
 .topbar.bidstar-lite-header{padding:14px 14px 10px}
 .bidstar-lite-header .brand-block{gap:14px;align-items:center}
 .bidstar-lite-header .brand-logo-panel{flex-basis:100px}
 .bidstar-lite-header .brand-logo-panel,.bidstar-lite-header .logo-frame{width:100px}
 .bidstar-lite-header .brand-block img{width:100px;height:73px}
 .brand-copy{padding:4px 0}
 .brand-edition{margin-bottom:10px}
 .brand-engine{font-size:13px;line-height:1.45}
 .brand-promise{font-size:12px;margin-top:6px}
 .qcr-endorsement{column-gap:14px}
}
@media(max-width:380px){
 .bidstar-lite-header .brand-block{gap:10px}
 .bidstar-lite-header .brand-logo-panel{flex-basis:82px}
 .bidstar-lite-header .brand-logo-panel,.bidstar-lite-header .logo-frame{width:82px}
 .bidstar-lite-header .brand-block img{width:82px;height:60px}
}
.draft-tools{display:flex;align-items:center;justify-content:flex-end;gap:16px;flex-wrap:wrap;margin:16px 0;padding-inline:var(--header-control-gutter)}
.draft-tools button{flex:0 0 auto;min-height:44px}
.draft-tools [data-customer-estimate-action="prepare-save"]{font-weight:700}
.app-shell .customer-access-session .secondary-button,
.app-shell .draft-tools .secondary-button,
.app-shell .customer-estimates-nav .secondary-button{min-height:46px;padding:8px 18px;color:#fff;font-size:16px;background:linear-gradient(180deg,#1870d4 0%,#0863d8 48%,#0753c5 100%);border:1px solid #0757bf;border-bottom:3px solid #043b91;box-shadow:inset 0 1px 0 #ffffff99,0 2px 0 #053c8133,0 5px 10px #0753b329;text-shadow:0 1px 1px #04377c66;transition:transform .15s ease,box-shadow .15s ease,filter .15s ease}
.app-shell .customer-access-session .secondary-button:hover:not(:disabled),
.app-shell .draft-tools .secondary-button:hover:not(:disabled),
.app-shell .customer-estimates-nav .secondary-button:hover:not(:disabled){filter:brightness(1.06);transform:translateY(-1px)}
.app-shell .customer-access-session .secondary-button:active:not(:disabled),
.app-shell .draft-tools .secondary-button:active:not(:disabled),
.app-shell .customer-estimates-nav .secondary-button:active:not(:disabled){transform:translateY(2px);box-shadow:inset 0 1px 2px #043b9133,0 1px 3px #0753b326}
.app-shell .customer-access-session .secondary-button:focus-visible,
.app-shell .draft-tools .secondary-button:focus-visible,
.app-shell .customer-estimates-nav .secondary-button:focus-visible{outline:3px solid #82b6ff;outline-offset:3px}
@media(max-width:600px){
 .app-shell{--header-control-gutter:16px}
 .draft-tools{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
 .draft-tools button{min-width:0;width:100%;white-space:normal;line-height:1.4}
 .draft-tools [data-customer-estimate-action="list"],.draft-tools button:only-child{grid-column:1/-1}
}
.customer-estimate-contact{scroll-margin-top:20px}
#customer-estimate-save-title:focus{outline:2px solid #82b6ff;outline-offset:5px}
@media print{.draft-tools{display:none}}
.draft-confirmation{width:min(480px,calc(100% - 32px));padding:24px;border:1px solid #b8d2ff;border-radius:14px;color:#173b65;box-shadow:0 14px 60px #12345630}
.draft-confirmation::backdrop{background:#122d4d70}
.draft-confirmation h2{margin:0 0 12px;font-size:22px}
.draft-confirmation p{line-height:1.6}
:root .bid-session-notice{margin:12px var(--header-control-gutter);line-height:1.6}
:root .bid-session-notice button{display:block;margin-top:12px}
