@font-face { font-family: Mont; src: url('assets/fonts/Mont-Regular.woff2') format('woff2'); font-weight: 400; font-display: swap; }
@font-face { font-family: Mont; src: url('assets/fonts/Mont-SemiBold.woff2') format('woff2'); font-weight: 600; font-display: swap; }
@font-face { font-family: Mont; src: url('assets/fonts/Mont-Bold.woff2') format('woff2'); font-weight: 700; font-display: swap; }

:root { --ink:#181d29; --blue:#71a6db; --blue-bright:#4da5dc; --blue-soft:#e8f5ff; --blue-pale:#f4f9fd; --turq:#53aabd; --turq-dark:#4893a4; --yellow:#ffb72b; --yellow-light:#ffdf6d; --red:#d8384b; --red-soft:#fff1f3; --line:#dce8f2; --muted:#6f7b88; --panel:#fff; --shadow:0 14px 42px rgba(36,85,124,.09); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:#eef6fb; font-family:Mont,Arial,sans-serif; font-size:14px; }
button,input,textarea,select { color:inherit; font:inherit; }
button { cursor:pointer; }
.intake-new-upload { display:inline-flex; width:max-content; margin:7px 12px 8px auto; padding:7px 12px; align-items:center; color:var(--turq-dark); border:1px solid #bdd3df; border-radius:999px; background:#fff; font-size:8px; font-weight:600; cursor:pointer; }
.intake-new-upload:hover { border-color:var(--turq); background:#f2fbfc; }

.app-header { position:relative; z-index:3; height:68px; display:grid; grid-template-columns:180px minmax(300px,1fr); align-items:center; gap:18px; padding:0 24px; background:#fff; border-bottom:1px solid var(--line); }
.brand { display:inline-flex; width:118px; height:54px; align-items:center; }
.brand img { display:block; width:100%; height:48px; object-fit:contain; }
.header-project { min-width:0; }
.header-project strong { display:block; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; font-size:15px; }
.kicker { display:block; color:var(--blue); font-size:9px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; }
.header-actions { display:flex; align-items:center; gap:10px; }
.header-tab { min-height:38px; padding:0 15px; color:var(--turq-dark); border:1px solid #b9d9e2; border-radius:999px; background:#fff; font-size:9px; font-weight:700; }
.header-tab:hover { color:#fff; background:var(--turq); }
.source-chip { display:inline-flex; align-items:center; gap:7px; padding:9px 12px; color:#4f5e6c; background:var(--blue-pale); border:1px solid var(--line); border-radius:999px; font-size:10px; }
.source-chip i { width:7px; height:7px; border-radius:50%; background:var(--turq); box-shadow:0 0 0 4px rgba(83,170,189,.13); }
.button { min-height:42px; padding:0 18px; border:0; border-radius:999px; font-weight:600; transition:.18s ease; }
.button:hover { transform:translateY(-1px); }
.button-blue { color:#fff; background:var(--turq); }
.button-blue:hover { background:var(--turq-dark); }
.button-yellow { color:var(--ink); background:linear-gradient(180deg,var(--yellow-light),var(--yellow)); }
.button-outline { color:var(--ink); background:#fff; border:1px solid var(--blue); }

.app-shell { display:block; max-width:1480px; margin:0 auto; padding:10px 18px 18px; }
.rail-card,.flow-section,.room-card { background:#fff; border:1px solid var(--line); border-radius:20px; box-shadow:var(--shadow); }
.rail-card { padding:18px; }
.section-title { display:flex; align-items:center; gap:12px; margin-bottom:18px; }
.compact-title { align-items:flex-start; margin-bottom:8px; }
.section-title h2,.estimate-head h2,.stream-heading h2,.dialog-head h2 { margin:3px 0 0; font-size:22px; line-height:1.2; }
.compact-title h2 { font-size:18px; }
.section-number { flex:0 0 auto; display:grid; place-items:center; width:39px; height:39px; color:var(--ink); background:linear-gradient(180deg,var(--yellow-light),var(--yellow)); border-radius:50%; font-weight:700; font-size:11px; }
.completion,.section-state { margin-left:auto; padding:6px 9px; border-radius:999px; color:var(--turq-dark); background:rgba(83,170,189,.12); font-size:9px; font-weight:700; }
.section-state.danger { color:var(--red); background:var(--red-soft); }
.rail-intro { margin:0 0 15px; color:var(--muted); font-size:11px; line-height:1.5; }
.field { display:block; margin-top:12px; }
.field>span { display:block; margin:0 0 6px 3px; color:#455260; font-size:10px; font-weight:600; }
.field>span b { color:var(--red); }
.field input,.field textarea,.room-control select,.voice-command textarea,.segment-row input,.segment-row select { width:100%; border:1px solid #cddfed; border-radius:13px; background:#fbfdff; outline:0; }
.field input { height:43px; padding:0 12px; }
.field textarea { resize:vertical; min-height:70px; padding:11px 12px; }
.field input:focus,.field textarea:focus,.room-control select:focus,.voice-command textarea:focus { border-color:var(--blue); box-shadow:0 0 0 4px rgba(113,166,219,.13); }
.field small { display:none; margin:5px 0 0 3px; color:var(--red); font-size:9px; }
.required-field.invalid input,.required-field.invalid textarea { border-color:var(--red); background:var(--red-soft); }
.required-field.invalid small { display:block; }
.source-card h3,.release-checklist h3 { margin:5px 0 12px; font-size:13px; line-height:1.35; }
.source-meta { display:flex; gap:7px; margin-bottom:12px; }
.source-meta span { padding:5px 8px; border-radius:999px; color:#52616f; background:var(--blue-pale); font-size:9px; }
.source-pages { display:grid; gap:7px; margin:12px 0; padding:12px; background:var(--blue-pale); border-radius:13px; font-size:10px; }
.source-pages span { display:flex; gap:8px; }.source-pages b { color:var(--blue-bright); }
.text-link { padding:0; border:0; color:var(--turq-dark); background:transparent; font-size:10px; text-decoration:underline; }
.release-checklist ul { display:grid; gap:9px; margin:0; padding:0; list-style:none; }
.release-checklist li { display:flex; align-items:center; gap:8px; color:#5c6874; font-size:10px; }
.release-checklist li i { width:15px; height:15px; border:1px solid #b8c7d3; border-radius:50%; }
.release-checklist li.done { color:var(--turq-dark); }
.release-checklist li.done i { border-color:var(--turq); background:var(--turq); box-shadow:inset 0 0 0 4px #fff; }

.project-flow { min-width:0; }
.flow-heading { display:flex; justify-content:space-between; align-items:center; padding:10px 4px 18px; }
.flow-heading h1 { margin:5px 0; font-size:clamp(26px,3vw,40px); line-height:1.1; }
.flow-heading p,.stream-heading p { margin:0; color:var(--muted); line-height:1.5; }
.progress-ring { display:grid; place-items:center; flex:0 0 82px; height:82px; background:conic-gradient(var(--blue-bright) 29%,#dfeaf2 0); border-radius:50%; position:relative; }
.progress-ring::before { content:''; position:absolute; inset:8px; background:#eef6fb; border-radius:50%; }
.progress-ring strong,.progress-ring span { position:relative; z-index:1; }
.progress-ring strong { font-size:16px; }.progress-ring span { margin-top:-17px; color:var(--muted); font-size:8px; }
.prototype-note { display:grid; grid-template-columns:25px 1fr; gap:10px; align-items:start; margin-bottom:16px; padding:12px 14px; color:#3f566a; background:var(--blue-soft); border:1px solid #c5e5ff; border-radius:15px; }
.prototype-note>span { display:grid; place-items:center; width:23px; height:23px; color:#fff; background:var(--blue); border-radius:50%; font-weight:700; }
.prototype-note p { margin:0; font-size:10px; line-height:1.5; }
.flow-section { margin-bottom:17px; padding:20px; }
.visually-hidden { position:absolute!important; width:1px!important; height:1px!important; padding:0!important; margin:-1px!important; overflow:hidden!important; clip:rect(0,0,0,0)!important; white-space:nowrap!important; border:0!important; }
.project-intake { padding:0; overflow:hidden; }
.intake-source { width:100%; display:grid; grid-template-columns:auto minmax(180px,1fr) auto auto; gap:12px; align-items:center; padding:11px 14px; color:inherit; border:0; border-bottom:1px solid var(--line); background:#fbfdff; text-align:left; }
.intake-source:hover { background:#f3f9fd; }
.source-file-icon { display:grid; place-items:center; width:38px; height:43px; color:#fff; background:var(--blue); border-radius:7px; font-size:8px; font-weight:700; }
.intake-source-name strong { display:block; margin-top:3px; font-size:11px; }
.intake-source-summary { color:var(--muted); font-size:8px; white-space:nowrap; }.intake-source-arrow { display:grid; place-items:center; width:29px; height:29px; color:var(--turq-dark); border:1px solid #c4dce8; border-radius:50%; font-size:11px; }
.live-project-panel { padding:16px; border-bottom:5px solid #eef6fb; background:#fbfdff; }
.recognition-workspace[hidden],.estimate-generation-bar[hidden],.mismatch-register[hidden] { display:none!important; }
.live-project-status { display:flex; justify-content:space-between; gap:16px; align-items:center; }
.live-project-status div,.live-project-status span { display:block; }.live-project-status strong { font-size:13px; }.live-project-status span { margin-top:3px; color:var(--muted); font-size:9px; }.live-project-status>b { color:var(--blue-bright); font-size:16px; }
.live-project-progress { height:7px; margin:10px 0 16px; overflow:hidden; border-radius:999px; background:#dfeaf2; }.live-project-progress i { display:block; width:0; height:100%; background:linear-gradient(90deg,var(--blue),var(--turq)); transition:width .25s ease; }
.live-project-result { display:grid; gap:14px; }.live-project-result section { padding:13px; border:1px solid var(--line); border-radius:14px; background:#fff; }.live-project-result h3 { margin:0 0 9px; font-size:11px; }.live-summary { margin:0; color:#3f566a; font-size:10px; line-height:1.55; }
.live-tags { display:flex; flex-wrap:wrap; gap:6px; }.live-tags span { padding:6px 8px; border-radius:999px; color:#356b7a; background:#eaf6f8; font-size:8px; }
.live-room-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:7px; }.live-room-grid article { min-width:0; padding:9px; border:1px solid var(--line); border-radius:10px; }.live-room-grid strong,.live-room-grid span,.live-room-grid b,.live-room-grid small { display:block; overflow:hidden; text-overflow:ellipsis; }.live-room-grid strong { font-size:9px; }.live-room-grid span,.live-room-grid small { margin-top:3px; color:var(--muted); font-size:7px; }.live-room-grid b { margin-top:5px; font-size:8px; }
.live-issue-list { display:grid; gap:5px; }.live-issue-list>div { display:grid; grid-template-columns:110px 1fr 70px; gap:8px; padding:7px 8px; border-left:3px solid var(--yellow); background:#fffaf0; font-size:8px; }.live-issue-list>div.blocking { border-left-color:var(--red); background:var(--red-soft); }.live-issue-list span { color:#536571; }.live-issue-list em { color:#8a6c1a; font-style:normal; text-align:right; }
.live-questions { display:grid; gap:7px; }.live-questions label { display:grid; grid-template-columns:minmax(0,1fr) minmax(180px,32%); gap:10px; align-items:center; padding:8px; border:1px solid var(--line); border-radius:10px; }.live-questions span,.live-questions small { display:block; }.live-questions b { font-size:9px; }.live-questions small { margin-top:3px; color:var(--muted); font-size:7px; }.live-questions input,.live-questions select { width:100%; min-height:34px; padding:0 9px; border:1px solid #cddfed; border-radius:8px; background:#fff; font-size:8px; }
.live-calculation-actions { position:sticky; z-index:4; bottom:8px; display:flex; justify-content:flex-end; align-items:center; gap:18px; margin-top:5px; padding:11px 12px; border:1px solid #cfe0eb; border-radius:13px; background:rgba(255,255,255,.96); box-shadow:0 10px 28px rgba(36,85,124,.16); backdrop-filter:blur(8px); }.live-calculation-actions>span { margin-right:auto; }.live-calculation-actions b,.live-calculation-actions small { display:block; }.live-calculation-actions b { font-size:9px; }.live-calculation-actions small { margin-top:3px; color:var(--muted); font-size:7px; }.live-calculation-actions .button { flex:0 0 auto; min-width:210px; }.live-calculation-actions .button:disabled { color:#8b9297; background:#e7ecef; cursor:wait; transform:none; }
.live-pdf-actions { display:flex; justify-content:space-between; align-items:center; gap:18px; }.live-pdf-actions h3 { margin-bottom:4px; }.live-pdf-actions p { margin:0; color:var(--muted); font-size:8px; line-height:1.45; }.live-pdf-actions .button { flex:0 0 auto; min-width:210px; }.live-pdf-actions .button:disabled { color:#8b9297; background:#e7ecef; cursor:not-allowed; transform:none; }
.live-error { margin:0; padding:12px; color:#8f3540; background:var(--red-soft); border:1px solid #f1b5bd; border-radius:12px; font-size:10px; }
@media (max-width:900px) { .live-room-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.live-questions label { grid-template-columns:1fr; }.live-issue-list>div { grid-template-columns:1fr; }.live-issue-list em { text-align:left; }.live-calculation-actions,.live-pdf-actions { align-items:stretch; flex-direction:column; }.live-calculation-actions .button,.live-pdf-actions .button { width:100%; }.live-calculation-actions>span { margin-right:0; } }
.recognition-workspace { display:grid; grid-template-columns:minmax(0,56fr) minmax(0,44fr); align-items:start; border-bottom:5px solid #eef6fb; }.first-pass-source { min-width:0; border-right:1px solid var(--line); }.recognition-questions { min-width:0; background:#fff; }.first-pass-bar { display:grid; grid-template-columns:minmax(150px,1fr) auto auto; gap:6px; align-items:center; min-height:48px; padding:6px 8px 6px 11px; border-bottom:1px solid var(--line); }.first-pass-bar [hidden],.agreement-intake[hidden],.first-pass-content>[hidden] { display:none!important; }.first-pass-identity strong { display:block; overflow:hidden; font-size:9px; white-space:nowrap; text-overflow:ellipsis; }.first-pass-floor { display:flex; gap:3px; padding:2px; background:#f3f7fa; border-radius:999px; }.first-pass-floor button { min-height:26px; padding:0 9px; color:var(--muted); border:0; border-radius:999px; background:transparent; font-size:7px; }.first-pass-floor button.active { color:#fff; background:var(--turq); }.first-pass-viewport { position:relative; height:min(72vh,760px); min-height:500px; overflow:hidden; background:#dfe9f0; cursor:grab; touch-action:none; }.first-pass-viewport.dragging { cursor:grabbing; }.first-pass-content { position:absolute; left:0; top:0; transform-origin:0 0; will-change:transform; user-select:none; }.first-pass-content img { display:block; width:100%; height:100%; object-fit:fill; pointer-events:none; }.first-pass-caption { min-height:26px; display:flex; align-items:center; justify-content:center; color:var(--muted); border-top:1px solid var(--line); background:#fbfdff; font-size:7px; }.review-questions-title { display:flex; align-items:center; min-height:39px; padding:7px 11px; border-bottom:1px solid var(--line); }.review-questions-title>strong { font-size:10px; }
.first-pass-source.geometry-live .source-tabs,.first-pass-source.geometry-live .first-pass-floor,.first-pass-source.geometry-live #firstPassFullscreen { display:none; }.first-pass-source.geometry-live .first-pass-bar { grid-template-columns:minmax(150px,1fr) auto; }.geometry-editor-panel { display:grid; grid-template-columns:minmax(120px,.65fr) minmax(160px,1fr) auto; gap:7px; align-items:center; padding:7px 9px; border-bottom:1px solid var(--line); background:#f8fbfd; }.geometry-editor-panel[hidden],.geometry-editor-message[hidden] { display:none; }.geometry-editor-panel label { display:grid; grid-template-columns:auto minmax(0,1fr); gap:5px; align-items:center; color:var(--muted); font-size:7px; }.geometry-editor-panel select { min-width:0; height:29px; padding:0 24px 0 8px; border:1px solid #c9dbe5; border-radius:7px; color:var(--ink); background:#fff; font:600 8px Mont,Arial,sans-serif; }.geometry-metrics { min-width:135px; color:var(--turq-dark); font-size:8px; font-weight:600; text-align:right; }.geometry-actions { grid-column:1/-1; display:flex; gap:5px; align-items:center; flex-wrap:wrap; }.geometry-actions button { min-height:28px; padding:0 10px; border:1px solid #bdd3df; border-radius:999px; color:var(--turq-dark); background:#fff; font:600 7px Mont,Arial,sans-serif; }.geometry-actions button.active { color:#fff; border-color:var(--turq); background:var(--turq); }.geometry-actions button:disabled { opacity:.45; cursor:not-allowed; }.geometry-history-actions { display:inline-flex; gap:3px; margin-left:auto; padding-left:6px; border-left:1px solid var(--line); }.geometry-actions .geometry-history-actions button { width:28px; padding:0; font-size:12px; }.geometry-actions .geometry-confirm { margin-left:0; color:#172230; border-color:#e8bd20; background:var(--yellow); }.geometry-editor-message { padding:7px 10px; color:#5a4a04; border-bottom:1px solid #efd45c; background:#fff7cb; font-size:8px; }.geometry-editor-message.error { color:#8a1f1f; border-color:#efbcbc; background:#fff0f0; }.first-pass-content canvas { display:block; width:100%; height:100%; pointer-events:none; }.geometry-overlay { position:absolute; inset:0; width:100%; height:100%; overflow:visible; pointer-events:none; }.geometry-overlay.drawing { cursor:crosshair; pointer-events:auto; }.geometry-polygon { fill:rgba(23,168,178,.11); stroke:#12a7b5; stroke-width:2; vector-effect:non-scaling-stroke; cursor:grab; pointer-events:all; }.geometry-polygon.selected { fill:rgba(239,75,75,.14); stroke:#eb3d3d; stroke-width:3; }.geometry-polygon.confirmed { fill:rgba(48,172,111,.12); stroke:#2aa669; }.geometry-label { fill:#12212c; paint-order:stroke; stroke:#fff; stroke-width:3px; stroke-linejoin:round; font:700 13px Mont,Arial,sans-serif; pointer-events:all; cursor:grab; }.geometry-handle { fill:#fff; stroke:#eb3d3d; stroke-width:3; vector-effect:non-scaling-stroke; cursor:grab; pointer-events:all; touch-action:none; }.geometry-handle.active { fill:var(--yellow); }.geometry-handle.close-target { fill:#eb3d3d; stroke:#fff; animation:geometry-pulse 1s ease-in-out infinite alternate; }.geometry-handle.delete-target { fill:#eb3d3d; cursor:not-allowed; }.geometry-handle:active { cursor:grabbing; }.geometry-draft-line,.geometry-preview-line,.geometry-preview-close,.geometry-preview-shape { fill:none; stroke:#eb3d3d; stroke-width:2.5; vector-effect:non-scaling-stroke; pointer-events:none; }.geometry-preview-line,.geometry-preview-close,.geometry-preview-shape { stroke-dasharray:7 5; }.geometry-preview-shape { fill:rgba(239,75,75,.08); }.geometry-preview-close { opacity:.55; }.geometry-ghost { fill:#eb3d3d; stroke:#fff; stroke-width:2; vector-effect:non-scaling-stroke; pointer-events:none; }.geometry-overlay.drawing .geometry-polygon,.geometry-overlay.drawing .geometry-label { cursor:crosshair; }.geometry-overlay.drawing:has(.delete-target) { cursor:not-allowed; }@keyframes geometry-pulse { from { opacity:.6; } to { opacity:1; } }
.geometry-workspace-toggle { min-height:31px; padding:0 12px; color:#172230; border:1px solid #e4b817; border-radius:999px; background:var(--yellow); font-size:8px; font-weight:700; }.geometry-workspace-toggle[hidden] { display:none; }body.geometry-workspace-open { overflow:hidden; }body.geometry-workspace-open .first-pass-source.geometry-live { position:fixed; z-index:100; inset:0; display:flex; flex-direction:column; width:100vw; height:100vh; border:0; background:#fff; box-shadow:none; }body.geometry-workspace-open .first-pass-source.geometry-live .first-pass-bar { flex:0 0 auto; }body.geometry-workspace-open .first-pass-source.geometry-live .first-pass-viewport { flex:1 1 auto; height:auto; min-height:0; }body.geometry-workspace-open .first-pass-source.geometry-live .first-pass-caption { flex:0 0 auto; }
.zoom-slider-control { position:absolute; z-index:16; top:50%; right:12px; display:flex; flex-direction:column; align-items:center; gap:5px; padding:7px 5px; border:1px solid rgba(186,210,224,.95); border-radius:999px; background:rgba(255,255,255,.96); box-shadow:0 8px 28px rgba(24,29,41,.17); transform:translateY(-50%); touch-action:none; }.zoom-slider-control button { display:grid; place-items:center; width:28px; height:28px; padding:0; color:var(--turq-dark); border:0; border-radius:50%; background:var(--blue-pale); font-size:14px; font-weight:700; }.zoom-slider-control input[type="range"] { width:20px; height:112px; margin:0; accent-color:var(--turq); writing-mode:vertical-lr; direction:rtl; }.zoom-slider-control strong { min-width:35px; color:var(--ink); font-size:7px; text-align:center; }.zoom-slider-control .zoom-slider-reset { width:24px; height:24px; color:var(--muted); background:#f3f7fa; font-size:10px; }
.intake-client { display:grid; grid-template-columns:.8fr .9fr 1.7fr auto; gap:8px; align-items:end; padding:10px 12px; border-bottom:1px solid var(--line); }
.intake-client-top { background:#fff; }
.intake-client .field { min-width:0; margin:0; }.intake-client .field>span { margin-bottom:4px; font-size:8px; }.intake-client .field input { height:36px; padding:0 9px; border-radius:8px; font-size:9px; }.intake-client .field small { font-size:7px; }
.intake-client .completion { align-self:center; margin-left:2px; white-space:nowrap; }
.compact-questions { padding:0; overflow:hidden; }
.compact-question-row { display:flex; align-items:center; flex-wrap:wrap; gap:4px; min-height:36px; padding:5px 11px; overflow:visible; border-bottom:1px solid var(--line); background:#fff; }
.compact-question-row:last-child { border-bottom:0; }
.compact-question-row::before { content:''; flex:0 0 auto; width:6px; height:6px; margin-right:3px; border-radius:50%; background:#aeb9c2; }
.compact-question-row.needs-answer::before { background:var(--yellow); }
.compact-question-row.answered::before { background:var(--turq); }
.compact-question-row.answered { background:#fbfefe; }
.compact-question-row>strong { flex:0 0 auto; color:#344653; font-size:8px; font-weight:600; white-space:nowrap; }
.compact-question-row .segmented-control { display:inline-flex; flex:0 0 auto; flex-wrap:nowrap; gap:3px; }
.compact-question-row .segmented-control button { position:relative; flex:0 0 auto; min-height:24px; padding:0 7px; color:#536571; border:1px solid #d6e2ea; border-radius:6px; background:#fff; font-size:7px; white-space:nowrap; }
.compact-question-row .segmented-control button.active { color:#286d7b; border-color:#9ccbd4; background:#eaf6f8; box-shadow:none; }
.compact-question-row .segmented-control button.active::before { content:'✓'; margin-right:3px; color:var(--turq); font-weight:800; }
.detected-note { flex:0 1 auto; color:var(--muted); font-size:7px; line-height:1.35; }
.analysis-questions { border-top:1px solid var(--line); }.analysis-question { display:flex; align-items:center; flex-wrap:wrap; gap:4px; min-height:36px; padding:5px 11px; overflow:visible; border-bottom:1px solid var(--line); }.analysis-question>i { flex:0 0 auto; width:6px; height:6px; margin-right:3px; border-radius:50%; background:var(--yellow); }.analysis-question>span { flex:1 1 250px; min-width:0; color:#52616d; font-size:8px; line-height:1.35; white-space:normal; }.analysis-question>span b { display:block; color:var(--ink); }.analysis-question>span small { display:block; margin-top:2px; color:var(--muted); font-size:7px; line-height:1.35; }.analysis-answer-text { display:block; margin-top:2px; color:#347984; font-size:7px; font-style:normal; }.analysis-free-answer,.published-answer-input { flex:0 1 190px; min-height:24px; padding:0 7px; color:#526571; border:1px solid #d3e0e8; border-radius:6px; background:#fff; font-size:7px; text-decoration:none; white-space:nowrap; }.analysis-free-answer:hover,.analysis-free-answer.active,.published-answer-input:focus,.published-answer-input.active { color:#286d7b; border-color:#9ccbd4; background:#eaf6f8; outline:none; }.analysis-free-answer.active::before { content:'✓'; margin-right:3px; color:var(--turq); font-weight:700; }.analysis-quick { display:inline-flex; justify-content:flex-start; gap:3px; flex:0 1 auto; flex-wrap:wrap; }.analysis-quick>button,.analysis-quick>div button { min-height:24px; padding:0 7px; color:#526571; border:1px solid #d3e0e8; border-radius:6px; background:#fff; font-size:7px; white-space:nowrap; }.analysis-quick button:hover,.analysis-quick button.active { color:#286d7b; border-color:#9ccbd4; background:#eaf6f8; }.analysis-quick button.active::before { content:'✓'; margin-right:3px; color:var(--turq); font-weight:700; }.analysis-quick-parts { display:inline-flex; align-items:center; flex-wrap:wrap; gap:5px; }.analysis-quick-parts>div { display:inline-flex; align-items:center; flex-wrap:wrap; gap:3px; }.analysis-quick-parts small { min-width:auto; margin-right:2px; color:var(--muted); font-size:6.5px; white-space:nowrap; }.analysis-question.answered>i { background:var(--turq); }.analysis-question.answered { background:#fbfefe; }.analysis-question.answered .analysis-free-answer { color:#587b83; }
.estimate-generation-bar { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:7px; min-height:82px; padding:13px 16px; border-bottom:5px solid #eef6fb; background:#fbfdff; }.estimate-generation-actions { display:flex; justify-content:center; gap:9px; flex-wrap:wrap; }.estimate-generation-actions .button { min-width:190px; min-height:40px; padding:0 18px; font-size:9px; }.estimate-generation-bar>span { color:var(--muted); font-size:8px; }
.mismatch-register { border-top:5px solid #eef6fb; }.mismatch-register summary { display:flex; justify-content:space-between; align-items:center; min-height:42px; padding:8px 12px; cursor:pointer; list-style:none; }.mismatch-register summary::-webkit-details-marker { display:none; }.mismatch-register summary strong { font-size:10px; }.mismatch-register summary span { color:var(--muted); font-size:8px; }.mismatch-list { border-top:1px solid var(--line); }.mismatch-list>div { display:grid; grid-template-columns:7px 100px minmax(0,1fr) 68px; gap:8px; align-items:center; min-height:32px; padding:6px 12px; border-bottom:1px solid var(--line); font-size:7.5px; }.mismatch-list i { width:6px; height:6px; border-radius:50%; background:#d8a62d; }.mismatch-list i.blocking { background:#c96269; }.mismatch-list b { font-size:8px; }.mismatch-list span { color:#536571; line-height:1.4; }.mismatch-list em { color:#8a6c1a; font-style:normal; text-align:right; }.mismatch-register>small { display:block; padding:8px 12px; color:var(--muted); font-size:7px; }
.review-complete-bar { display:flex; justify-content:space-between; align-items:center; gap:14px; padding:12px; border-top:5px solid #eef6fb; background:#fbfdff; }.review-complete-bar strong,.review-complete-bar span { display:block; }.review-complete-bar strong { font-size:10px; }.review-complete-bar span { margin-top:3px; color:var(--muted); font-size:8px; }.review-complete-bar .button { min-height:36px; font-size:8px; }.review-complete-bar .button:disabled { color:#8b9297; background:#e7ecef; cursor:not-allowed; }.project-results[hidden] { display:none!important; }.agreement-intake { padding:0; overflow:hidden; }.agreement-head { display:flex; justify-content:space-between; align-items:center; padding:13px 15px; border-bottom:1px solid var(--line); }.agreement-head h2 { margin:3px 0 0; font-size:18px; }.agreement-head .button { min-height:32px; font-size:8px; }.agreed-grid { display:grid; grid-template-columns:repeat(5,1fr); gap:1px; background:var(--line); }.agreed-grid>div { min-width:0; padding:10px 12px; background:#fff; }.agreed-grid span,.agreed-grid strong { display:block; }.agreed-grid span { color:var(--muted); font-size:7px; }.agreed-grid strong { margin-top:4px; overflow:hidden; text-overflow:ellipsis; font-size:9px; }
.defaults-strip { display:grid; grid-template-columns:1fr 1.2fr auto; gap:10px; align-items:center; margin-bottom:14px; padding:13px; background:var(--blue-pale); border:1px solid #d4e8f7; border-radius:15px; }
.defaults-strip span { display:block; color:var(--muted); font-size:9px; }.defaults-strip strong { display:block; margin-top:3px; font-size:11px; }.defaults-strip .button { min-height:36px; font-size:9px; }
.question-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.question-card { min-width:0; padding:13px; border:1px solid var(--line); border-radius:15px; background:#fff; }
.question-card.needs-answer { border-color:#f1b5bd; background:var(--red-soft); }
.question-label { display:block; min-height:28px; margin-bottom:7px; font-size:10px; font-weight:600; }
.question-label b { display:inline-block; margin-left:4px; padding:3px 6px; color:#fff; background:var(--red); border-radius:999px; font-size:7px; }
.segmented-control { display:flex; gap:4px; flex-wrap:wrap; }
.segmented-control button { min-height:31px; flex:1 1 auto; padding:0 8px; border:1px solid #cbddea; border-radius:999px; background:#fff; font-size:9px; }
.segmented-control button.active { color:#fff; border-color:var(--blue); background:linear-gradient(90deg,#89c1ec,#71a6db); }
.question-card small { display:block; margin-top:7px; color:var(--muted); font-size:8px; line-height:1.4; }
.nothing-extra { display:flex; gap:11px; align-items:center; margin-top:12px; padding:12px 13px; border:1px dashed var(--blue); border-radius:15px; background:#fbfdff; cursor:pointer; }
.nothing-extra input { width:18px; height:18px; accent-color:var(--turq); }.nothing-extra b,.nothing-extra small { display:block; }.nothing-extra b { font-size:10px; }.nothing-extra small { margin-top:3px; color:var(--muted); font-size:8px; }

.confirmation-total { margin-left:auto; padding-right:18px; border-right:1px solid var(--line); text-align:right; }.confirmation-total span,.area-total span { display:block; color:var(--muted); font-size:8px; }.confirmation-total strong,.area-total strong { display:block; margin-top:2px; color:var(--blue-bright); font-size:17px; }.area-total { text-align:right; }
.overview-legend { display:flex; align-items:center; gap:5px; margin:-5px 0 11px; color:var(--muted); font-size:8px; }
.overview-legend span { width:7px; height:7px; margin-left:7px; border-radius:50%; }.overview-legend span:first-child { margin-left:0; }.ok-dot { background:var(--turq); }.warn-dot { background:var(--yellow); }.empty-dot { background:#aeb9c2; }
.room-overview-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:8px; }
.overview-room { display:grid; grid-template-columns:9px 1fr; gap:7px; align-items:center; min-width:0; padding:10px; border:1px solid var(--line); border-radius:13px; background:#fff; text-align:left; }
.overview-room:hover { border-color:var(--blue); background:var(--blue-pale); }.overview-room i { width:8px; height:8px; border-radius:50%; }.overview-room i.ready { background:var(--turq); }.overview-room i.review { background:var(--yellow); }.overview-room i.missing { background:#aeb9c2; }
.overview-room strong,.overview-room small { overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }.overview-room strong { display:block; font-size:9px; }.overview-room small { display:block; margin-top:2px; color:var(--muted); font-size:8px; }
.stream-heading { display:flex; gap:12px; align-items:flex-start; padding:12px 4px 14px; }.rooms-stream>.stream-heading .section-number { margin-top:2px; }

.room-card { scroll-margin-top:92px; margin-bottom:16px; overflow:hidden; }
.room-card-header { display:grid; grid-template-columns:auto 1fr auto auto; gap:11px; align-items:center; padding:15px 17px; border-bottom:1px solid var(--line); }
.room-index { display:grid; place-items:center; width:34px; height:34px; color:#fff; background:var(--blue); border-radius:50%; font-size:10px; font-weight:700; }
.room-name strong { display:block; font-size:17px; }.room-name span { display:block; margin-top:3px; color:var(--muted); font-size:8px; }
.room-inherited { padding:7px 10px; color:#355c72; background:var(--blue-soft); border-radius:999px; font-size:8px; }
.room-area { min-width:92px; text-align:right; }.room-area strong { display:block; font-size:17px; }.room-area span { display:block; margin-top:2px; color:var(--muted); font-size:8px; }
.room-status { grid-column:2; width:max-content; margin-top:-5px; padding:5px 8px; border:0; border-radius:999px; font-size:8px; font-weight:700; }
.room-status.ready { color:#347984; background:rgba(83,170,189,.12); }.room-status.review { color:#966000; background:#fff5d8; }.room-status.missing { color:#6a7279; background:#eef1f3; }
.room-visuals { position:relative; display:grid; grid-template-columns:1fr 1fr; gap:1px; background:var(--line); }.visual { min-width:0; background:#fff; }
.visual-title { display:flex; justify-content:space-between; align-items:center; padding:10px 13px; }.visual-title strong { display:block; font-size:10px; }.visual-title span,.visual-title small { color:var(--muted); font-size:8px; }
.visual-title .scheme-method { padding:5px 8px; color:#347984; border:1px solid #b9dce4; border-radius:999px; background:#eef9fb; font-weight:700; white-space:nowrap; }
.source-title-actions { display:flex; align-items:center; gap:9px; }
.source-title-actions button { min-height:25px; padding:0 9px; color:var(--turq-dark); border:1px solid #c5dce7; border-radius:999px; background:#fff; font-size:7px; font-weight:600; white-space:nowrap; }
.source-title-actions button:hover { background:var(--blue-pale); }
.source-frame,.scheme-frame { position:relative; aspect-ratio:1985/1404; display:grid; place-items:center; overflow:hidden; background:#f5f8fa; }
.source-frame img { display:block; width:100%; height:100%; object-fit:contain; }.scheme-frame canvas { width:100%; height:100%; }
.room-pointer { position:absolute; z-index:2; width:6px; height:6px; transform:translate(-3px,-3px); pointer-events:none; transition:opacity .15s; }.room-pointer i { position:absolute; inset:0; background:var(--red); border:1px solid #fff; border-radius:50%; box-shadow:0 0 0 1px rgba(216,56,75,.3); }.compare-room-pointer.hidden,.room-callout.hidden { opacity:0; }.room-callout::after { content:''; position:absolute; top:2px; width:30px; height:1px; background:var(--red); }.room-callout b { position:absolute; top:-13px; width:max-content; padding:4px 6px; color:#fff; background:var(--red); border-radius:6px; font-size:7px; line-height:1; box-shadow:0 3px 9px rgba(24,29,41,.16); }.room-callout.callout-right::after { left:7px; transform:rotate(-22deg); transform-origin:left; }.room-callout.callout-right b { left:35px; }.room-callout.callout-left::after { right:7px; transform:rotate(22deg); transform-origin:right; }.room-callout.callout-left b { right:35px; }.legend-dot { width:6px; height:6px; border:1px solid #fff; border-radius:50%; background:var(--red); box-shadow:0 0 0 1px rgba(216,56,75,.25); }
.mini-plan-viewport { position:relative; cursor:grab; touch-action:none; }.mini-plan-viewport.dragging { cursor:grabbing; }.mini-plan-content { position:absolute; left:0; top:0; transform-origin:0 0; user-select:none; will-change:transform; }.mini-plan-content img { width:100%; height:100%; object-fit:fill; pointer-events:none; }.mini-zoom-controls { position:absolute; z-index:5; right:8px; top:8px; display:flex; align-items:center; gap:3px; padding:4px; background:rgba(255,255,255,.94); border:1px solid var(--line); border-radius:999px; box-shadow:0 5px 18px rgba(24,29,41,.12); }.mini-zoom-controls button { width:25px; height:25px; padding:0; border:0; border-radius:50%; color:var(--turq-dark); background:var(--blue-pale); font-weight:700; }.mini-zoom-controls strong { min-width:35px; text-align:center; font-size:7px; }
.mini-zoom-controls.zoom-slider-control { z-index:5; top:50%; right:8px; display:flex; flex-direction:column; gap:3px; padding:5px 4px; border-radius:999px; transform:translateY(-50%); }.mini-zoom-controls.zoom-slider-control input[type="range"] { height:70px; }.mini-zoom-controls.zoom-slider-control button { width:25px; height:25px; }.mini-zoom-controls.zoom-slider-control .zoom-slider-reset { width:21px; height:21px; }
.mini-source-carousel { display:flex; justify-content:center; align-items:center; gap:10px; min-height:36px; padding:4px 8px; border-top:1px solid var(--line); background:#fbfdff; }.mini-source-carousel button { width:25px; height:25px; padding:0; border:1px solid #d1dfe8; border-radius:50%; color:var(--turq-dark); background:#fff; }.mini-source-carousel span { min-width:142px; text-align:center; color:#405563; font-size:8px; font-weight:600; }
.visual-legend { display:flex; flex-wrap:wrap; gap:9px; padding:8px 12px; color:var(--muted); border-top:1px solid var(--line); font-size:8px; }.visual-legend span { display:inline-flex; align-items:center; gap:4px; }.legend-line { width:16px; height:3px; border-radius:2px; background:var(--blue); }.legend-line.segment { background:var(--yellow); }.legend-line.question { background:var(--red); }
.scheme-visual .legend-dot { width:7px; height:7px; border:2px solid #397f91; background:#fff; box-shadow:none; }
.room-details { padding:12px 14px 14px; }
.room-edit-grid { display:grid; grid-template-columns:1fr; gap:10px; margin-bottom:12px; }
.fixture-editor,.room-draft { border:1px solid var(--line); border-radius:14px; overflow:hidden; background:#fff; }.fixture-editor-head,.room-draft-head { display:flex; justify-content:space-between; gap:10px; align-items:center; padding:10px 11px; background:var(--blue-pale); }.fixture-editor-head span,.fixture-editor-head strong { display:block; }.fixture-editor-head span,.fixture-editor-head small,.room-draft-head b { color:var(--muted); font-size:7px; }.fixture-editor-head strong,.room-draft-head span { margin-top:2px; font-size:9px; font-weight:600; }
.fixture-row { display:grid; grid-template-columns:24px 1fr auto; gap:8px; align-items:center; padding:8px 10px; border-top:1px solid var(--line); }.fixture-icon { display:grid; place-items:center; width:23px; height:23px; color:#fff; background:var(--turq); border-radius:50%; font-size:10px; }.fixture-row strong,.fixture-row small { display:block; }.fixture-row strong { font-size:9px; }.fixture-row small { margin-top:2px; color:var(--muted); font-size:7px; }
.quantity-stepper { display:grid; grid-template-columns:27px 28px 27px; align-items:center; overflow:hidden; border:1px solid #cddfed; border-radius:999px; background:#fff; }.quantity-stepper button { height:27px; padding:0; border:0; color:var(--turq-dark); background:var(--blue-pale); font-size:16px; }.quantity-stepper b { text-align:center; font-size:10px; }
.fixture-add { display:grid; grid-template-columns:1fr auto; gap:7px; padding:8px 10px; border-top:1px solid var(--line); }.fixture-add select { min-width:0; height:31px; padding:0 8px; border:1px solid #cddfed; border-radius:9px; background:#fff; font-size:8px; }.fixture-add button { padding:0 10px; border:1px solid var(--blue); border-radius:999px; color:var(--turq-dark); background:#fff; font-size:8px; }
.room-draft { border-color:#a8d1e8; border-radius:7px; }.room-draft-head { padding:10px 12px; border-bottom:1px solid #a8d1e8; background:#fff; }.room-draft-head div span,.room-draft-head div strong { display:block; }.room-draft-head div span { color:var(--blue-bright); font-size:8px; font-weight:700; text-transform:uppercase; }.room-draft-head div strong { margin-top:3px; font-size:11px; }.room-estimate-table { display:grid; }.room-estimate-row { display:grid; grid-template-columns:minmax(260px,1fr) 118px 78px 100px 110px; min-height:34px; border-bottom:1px solid #c6deec; }.room-estimate-row>* { display:flex; align-items:center; padding:6px 10px; border-right:1px solid #c6deec; font-size:9px; font-weight:500; }.room-estimate-row>*:last-child { justify-content:flex-end; border-right:0; }.room-estimate-row>*:nth-child(2),.room-estimate-row>*:nth-child(3),.room-estimate-row>*:nth-child(4) { justify-content:center; }.room-estimate-header { min-height:29px; color:#526a78; background:#edf7fc; }.room-estimate-header>* { font-size:8px; font-weight:700; }.estimate-pending { color:#687a86; background:#fbfdff; }.estimate-pending>span:first-child::after { content:'нужно уточнить'; margin-left:8px; color:#967000; font-size:7px; }.table-stepper { display:grid!important; grid-template-columns:25px 32px 25px; padding:2px!important; overflow:hidden; border:1px solid #c9dce8!important; border-radius:999px; background:#fff; }.table-stepper button { height:24px; padding:0; color:var(--turq-dark); border:0; background:#f0f8fc; }.table-stepper b { display:grid; place-items:center; font-size:9px; }.room-estimate-total { display:flex; justify-content:flex-end; gap:20px; align-items:center; min-height:43px; padding:8px 12px; background:#f8fcfe; }.room-estimate-total small { margin-right:auto; color:#72818c; font-size:7px; }.room-estimate-total span { color:#4e6572; font-size:8px; }.room-estimate-total strong { min-width:90px; text-align:right; font-size:13px; }.room-estimate-actions { display:grid; grid-template-columns:minmax(210px,1fr) auto auto; gap:7px; padding:9px 10px; border-top:1px solid #c6deec; }.room-estimate-actions select { min-width:0; height:34px; padding:0 9px; border:1px solid #cddfed; border-radius:9px; background:#fff; font-size:8px; }.room-estimate-actions .button { min-height:34px; padding:0 12px; font-size:8px; }
.room-linked-questions { margin-top:10px; overflow:hidden; border:1px solid #d5e4ed; border-radius:9px; }.room-linked-head { display:flex; justify-content:space-between; gap:10px; padding:8px 10px; background:#f5fafc; border-bottom:1px solid #dce8ef; }.room-linked-head strong { font-size:9px; }.room-linked-head span { color:var(--muted); font-size:7px; }.room-linked-question { display:grid; grid-template-columns:7px minmax(0,1fr) auto; gap:8px; align-items:center; padding:8px 10px; border-top:1px solid #e2ebf1; }.room-linked-question:first-of-type { border-top:0; }.room-linked-question>i { width:7px; height:7px; border-radius:50%; background:var(--yellow); }.room-linked-question span b,.room-linked-question span small,.room-linked-question span em { display:block; }.room-linked-question span b { font-size:8px; }.room-linked-question span small { margin-top:2px; color:var(--muted); font-size:7px; line-height:1.4; }.room-linked-question span em { margin-top:3px; color:#347984; font-size:7px; font-style:normal; }.room-linked-question button { padding:4px 0; color:var(--turq-dark); border:0; background:transparent; font-size:7px; text-decoration:underline; }.room-linked-question.answered { background:#fbfefe; }.room-linked-question.answered>i { background:var(--turq); }
.room-controls { display:grid; grid-template-columns:1fr 1fr auto; gap:9px; align-items:end; }.room-control span { display:block; margin:0 0 5px 2px; color:var(--muted); font-size:8px; }.room-control select { height:39px; padding:0 10px; font-size:9px; }.edit-wall { min-height:39px; font-size:9px; }
.room-question { display:grid; grid-template-columns:23px 1fr auto; gap:8px; align-items:center; margin-top:11px; padding:10px; color:#7e2633; background:var(--red-soft); border:1px solid #f2c5cb; border-radius:13px; }.room-question>span { display:grid; place-items:center; width:22px; height:22px; color:#fff; background:var(--red); border-radius:50%; font-weight:700; }.room-question strong,.room-question small { display:block; }.room-question strong { font-size:9px; }.room-question small { margin-top:2px; color:#9b5862; font-size:8px; }.room-question button { border:0; color:var(--red); background:transparent; font-size:8px; text-decoration:underline; }
.room-card-footer { display:flex; justify-content:space-between; align-items:center; padding:11px 15px; background:#fbfdff; border-top:1px solid var(--line); }.room-card-footer span { color:var(--muted); font-size:8px; }.confirm-room { min-height:35px; padding:0 13px; font-size:8px; }

.estimate-card { padding:0; overflow:hidden; }.estimate-head { display:flex; justify-content:space-between; align-items:flex-start; padding:18px; border-bottom:1px solid var(--line); }.estimate-head h2 { font-size:20px; }.pulse { padding:5px 8px; color:#fff; background:var(--turq); border-radius:999px; font-size:8px; }
.estimate-status { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border-bottom:1px solid var(--line); }.estimate-status div { padding:11px 6px; background:#fff; text-align:center; }.estimate-status span { display:block; color:var(--muted); font-size:8px; }.estimate-status strong { display:block; margin-top:3px; font-size:14px; }.estimate-status .red { color:var(--red); }
.estimate-list { padding:4px 16px; }.estimate-group { padding:12px 1px; border-bottom:1px solid var(--line); }.estimate-group-title { display:flex; justify-content:space-between; gap:7px; font-size:10px; font-weight:600; }.estimate-group-title b { color:var(--blue-bright); text-align:right; font-size:8px; }.estimate-group p { margin:6px 0 3px; color:#4d5a66; font-size:9px; }.estimate-group small { color:var(--muted); font-size:8px; line-height:1.4; }.warning-group .estimate-group-title b { color:var(--red); }
.estimate-mini-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:4px; margin:8px 0; }.estimate-mini-grid span { padding:7px 4px; color:var(--muted); background:var(--blue-pale); border-radius:8px; text-align:center; font-size:7px; }.estimate-mini-grid strong { display:block; margin-top:3px; color:var(--ink); font-size:13px; }
.estimate-total { padding:16px; background:var(--blue-pale); }.estimate-total span { font-size:10px; font-weight:600; }.estimate-total strong { display:block; margin:4px 0; font-size:29px; }.estimate-total small { display:block; color:var(--muted); font-size:8px; line-height:1.45; }
.generate-button { width:calc(100% - 32px); margin:14px 16px 8px; color:#8b9297; background:#e7ecef; cursor:not-allowed; }.generate-button.enabled { color:var(--ink); background:linear-gradient(180deg,var(--yellow-light),var(--yellow)); cursor:pointer; }.disabled-reason { margin:0 16px 16px; color:var(--red); font-size:8px; line-height:1.4; text-align:center; }

dialog { padding:0; border:0; border-radius:20px; box-shadow:0 30px 100px rgba(24,29,41,.3); } dialog::backdrop { background:rgba(24,29,41,.67); backdrop-filter:blur(4px); }.wall-dialog { width:min(760px,94vw); }.compare-dialog { width:100vw; max-width:none; height:100vh; max-height:100vh; margin:0; border-radius:0; }
.dialog-head { display:flex; justify-content:space-between; gap:20px; align-items:center; padding:17px 20px; border-bottom:1px solid var(--line); }.icon-button { width:35px; height:35px; border:1px solid var(--line); border-radius:50%; background:#fff; font-size:19px; }.dialog-lead { margin:16px 20px 10px; color:var(--muted); font-size:11px; }
.voice-command { display:grid; grid-template-columns:1fr auto; gap:8px; margin:0 20px 15px; padding:13px; background:var(--blue-pale); border-radius:15px; }.voice-command>span { grid-column:1/-1; color:var(--blue-bright); font-size:9px; font-weight:700; text-transform:uppercase; }.voice-command textarea { min-height:55px; padding:10px; resize:vertical; }
.segments-editor { margin:0 20px; border:1px solid var(--line); border-radius:14px; overflow:hidden; }.segment-row { display:grid; grid-template-columns:52px 90px 90px 100px 1fr; gap:7px; align-items:center; padding:9px; border-top:1px solid var(--line); }.segment-row:first-child { border-top:0; }.segment-row input,.segment-row select { height:36px; padding:0 8px; }.segment-row strong { font-size:9px; }.segment-header { color:var(--muted); background:#f7fafc; font-size:8px; }
.add-segment { margin:10px 20px 0; padding:0; border:0; color:var(--turq-dark); background:transparent; font-size:9px; text-decoration:underline; }.dialog-actions { display:flex; justify-content:flex-end; gap:8px; padding:15px 20px 20px; }
.compare-dialog form { position:relative; height:100%; display:flex; flex-direction:column; }.compare-source-pane { flex:1; min-width:0; min-height:0; background:#fff; }.plan-viewer-bar { flex:0 0 45px; display:grid; grid-template-columns:minmax(150px,1fr) auto auto auto; gap:8px; align-items:center; padding:5px 8px 5px 12px; border-bottom:1px solid var(--line); background:#fff; }.plan-viewer-identity { min-width:0; }.plan-viewer-identity strong,.plan-viewer-identity span { display:block; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }.plan-viewer-identity strong { font-size:10px; }.plan-viewer-identity span { margin-top:2px; color:var(--muted); font-size:7px; }.viewer-close { width:31px; height:31px; font-size:16px; }.sheet-manager-toggle { min-height:30px; padding:0 10px; color:var(--turq-dark); border:1px solid #c5dce8; border-radius:999px; background:#fff; font-size:7px; font-weight:600; }.sheet-manager { position:absolute; z-index:12; top:42px; right:45px; width:230px; padding:7px; border:1px solid var(--line); border-radius:11px; background:#fff; box-shadow:0 15px 45px rgba(24,29,41,.2); }.sheet-manager strong { display:block; padding:5px 7px; font-size:8px; }.sheet-manager button { display:block; width:100%; padding:8px 7px; border:0; border-top:1px solid var(--line); background:#fff; text-align:left; font-size:8px; }.sheet-manager button:hover { background:var(--blue-pale); }
.source-tabs { display:flex; gap:3px; padding:3px; background:var(--blue-pale); border-radius:999px; }.source-tabs button { padding:7px 11px; border:0; border-radius:999px; color:var(--muted); background:transparent; font-size:8px; }.source-tabs button.active { color:#fff; background:var(--turq); }
.plan-viewer-bar .source-tabs { padding:2px; }.plan-viewer-bar .source-tabs button { min-height:26px; padding:0 9px; font-size:7px; }.zoom-inline { display:flex; align-items:center; gap:2px; padding:2px; border:1px solid var(--line); border-radius:999px; background:#fff; }.zoom-inline button { width:25px; height:25px; padding:0; color:var(--turq-dark); border:0; border-radius:50%; background:var(--blue-pale); }.zoom-inline strong { min-width:34px; text-align:center; font-size:7px; }
.zoom-toolbar { display:flex; align-items:center; gap:6px; min-height:43px; padding:6px 12px; border-bottom:1px solid var(--line); background:#fbfdff; }.zoom-toolbar button { min-width:31px; height:30px; padding:0 9px; border:1px solid #cbddea; border-radius:999px; background:#fff; font-weight:600; }.zoom-toolbar strong { min-width:43px; text-align:center; font-size:9px; }.zoom-toolbar .zoom-reset { margin-left:3px; color:var(--turq-dark); border-color:var(--blue); font-size:8px; }.zoom-toolbar span { margin-left:auto; color:var(--muted); font-size:8px; }
.full-sheet-viewport { position:relative; width:100%; height:100%; min-height:0; overflow:hidden; background:#dfe9f0; cursor:grab; touch-action:none; }.full-sheet-viewport.dragging { cursor:grabbing; }.panzoom-content { position:absolute; left:0; top:0; transform-origin:0 0; will-change:transform; user-select:none; }.panzoom-content img { display:block; width:100%; height:100%; object-fit:fill; pointer-events:none; }.source-carousel { position:absolute; z-index:7; left:50%; bottom:10px; transform:translateX(-50%); display:flex; justify-content:center; align-items:center; gap:9px; min-height:34px; padding:4px 7px; border:1px solid rgba(199,217,229,.9); border-radius:999px; background:rgba(255,255,255,.94); box-shadow:0 7px 25px rgba(24,29,41,.12); }.source-carousel button { width:25px; height:25px; padding:0; border:0; border-radius:50%; background:var(--blue-pale); }.source-carousel span { min-width:130px; text-align:center; font-size:7px; font-weight:600; }
.compare-scheme-frame { aspect-ratio:600/420; background:var(--blue-pale); }.compare-scheme-frame canvas { display:block; width:100%; height:100%; }.compare-system-pane>.fixture-editor,.compare-system-pane>.compare-draft { margin:10px; }.compare-system-pane .room-draft { border-radius:14px; }
.assistant-dock { position:fixed; z-index:55; right:2px; top:50%; display:grid; justify-items:end; gap:8px; transform:translateY(-50%); }.assistant-trigger { display:grid; place-items:center; width:30px; height:30px; padding:0; color:#fff; border:1px solid rgba(255,255,255,.56); border-radius:50%; background:rgba(72,147,164,.66); -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px); box-shadow:0 7px 20px rgba(50,113,130,.16); }.assistant-trigger span { font-size:11px; }.assistant-trigger:hover { background:rgba(72,147,164,.94); transform:scale(1.04); }.assistant-trigger.active { color:var(--ink); background:rgba(255,183,43,.94); }.assistant-panel { width:min(390px,calc(100vw - 28px)); margin-right:8px; padding:14px; border:1px solid #bdd9e8; border-radius:16px; background:#fff; box-shadow:0 22px 70px rgba(24,29,41,.22); }.assistant-panel-head { display:flex; justify-content:space-between; align-items:flex-start; margin-bottom:10px; }.assistant-panel-head strong { display:block; margin-top:3px; font-size:12px; }.assistant-panel-head button { width:27px; height:27px; padding:0; border:1px solid var(--line); border-radius:50%; background:#fff; }.assistant-panel textarea { width:100%; min-height:86px; padding:10px; border:1px solid #cddfed; border-radius:10px; resize:vertical; outline:0; font-size:9px; line-height:1.45; }.assistant-panel textarea:focus { border-color:var(--blue); box-shadow:0 0 0 3px rgba(113,166,219,.12); }.assistant-actions { display:grid; grid-template-columns:1fr 1fr; gap:7px; margin-top:8px; }.assistant-actions .button { min-height:36px; padding:0 10px; font-size:8px; }.assistant-panel>small { display:block; margin-top:8px; color:var(--muted); font-size:7px; line-height:1.45; }
.toast { position:fixed; z-index:60; left:50%; bottom:24px; transform:translate(-50%,25px); padding:11px 15px; color:#fff; background:var(--ink); border-radius:999px; opacity:0; pointer-events:none; transition:.2s; font-size:10px; box-shadow:var(--shadow); }.toast.show { opacity:1; transform:translate(-50%,0); }

@media (max-width:1320px) { .app-shell { padding:10px 12px 12px; }.app-header { grid-template-columns:160px 1fr; padding:0 16px; }.room-overview-grid { grid-template-columns:repeat(3,1fr); } }
@media (max-width:1100px) { .recognition-workspace { grid-template-columns:1fr; }.first-pass-source { border-right:0; border-bottom:5px solid #eef6fb; } }
@media (max-width:1050px) { .intake-client { grid-template-columns:1fr 1fr; }.intake-address { grid-column:1/-1; }.intake-client .completion { position:absolute; visibility:hidden; }.analysis-question { grid-template-columns:8px minmax(0,1fr) auto; }.analysis-quick { grid-column:2; justify-content:flex-start; }.analysis-free-answer { grid-column:3; grid-row:1/3; } }
@media (max-width:820px) { .app-shell { padding:8px 10px 10px; }.app-header { height:62px; padding:0 10px; }.brand { width:88px; }.brand img { height:40px; }.header-project strong { font-size:11px; }.first-pass-bar { grid-template-columns:minmax(150px,1fr) auto auto; }.first-pass-bar>.zoom-inline,.first-pass-bar>.sheet-manager-toggle { display:none; }.first-pass-viewport { height:54vh; min-height:360px; }.agreed-grid { grid-template-columns:1fr 1fr; }.question-grid,.room-visuals,.room-edit-grid { grid-template-columns:1fr; }.defaults-strip { grid-template-columns:1fr; }.room-overview-grid { grid-template-columns:repeat(2,1fr); }.room-card-header { grid-template-columns:auto 1fr auto; }.room-inherited { grid-column:2/-1; width:max-content; }.room-area { grid-column:3; grid-row:1; }.room-status { grid-column:2; }.room-controls { grid-template-columns:1fr; }.room-estimate-row { grid-template-columns:minmax(200px,1fr) 96px 60px 80px 90px; }.room-estimate-actions { grid-template-columns:1fr 1fr; }.room-estimate-actions select { grid-column:1/-1; }.segment-row { grid-template-columns:38px 1fr 1fr; }.segment-row>*:nth-child(4),.segment-row>*:nth-child(5) { grid-column:2/-1; }.plan-viewer-bar { grid-template-columns:minmax(95px,1fr) auto auto auto; gap:4px; padding-left:7px; }.plan-viewer-bar .source-tabs { display:none; }.sheet-manager-toggle { padding:0 7px; font-size:6px; } }
@media (max-width:820px) { .geometry-editor-panel { grid-template-columns:1fr; }.geometry-metrics { text-align:left; }.geometry-actions { grid-column:auto; }.geometry-actions .geometry-confirm { margin-left:0; }.first-pass-source.geometry-live .first-pass-bar { grid-template-columns:1fr; } }
@media (max-width:520px) { .app-header { grid-template-columns:auto 1fr; }.flow-section { padding:15px; }.project-intake { padding:0; }.intake-source { grid-template-columns:auto minmax(0,1fr) auto; gap:8px; }.intake-source-summary { display:none; }.intake-client { grid-template-columns:1fr; }.intake-address { grid-column:auto; }.compact-questions { padding:0; }.compact-question-row { gap:4px; padding:5px 8px; }.compact-question-row .detected-note { white-space:normal; }.compact-question-row .segmented-control button { padding:0 4px; font-size:7px; }.compact-question-row .segmented-control button.active::before { margin-right:2px; }.mismatch-list>div { grid-template-columns:7px 76px minmax(0,1fr); }.mismatch-list em { display:none; }.question-grid { grid-template-columns:1fr; }.room-overview-grid { grid-template-columns:1fr 1fr; }.section-title { flex-wrap:wrap; }.confirmation-total { margin-left:auto; }.room-card-header { padding:13px; }.room-inherited { max-width:230px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }.source-visual-title { align-items:flex-start; gap:8px; }.source-title-actions { align-items:flex-end; flex-direction:column; gap:3px; }.source-title-actions small { display:none; }.source-title-actions button { white-space:normal; text-align:right; }.voice-command { grid-template-columns:1fr; }.voice-command .button { width:100%; }.room-estimate-row { min-width:0; grid-template-columns:minmax(118px,1fr) 72px 37px 49px 55px; }.room-estimate-row>* { min-width:0; padding:5px 3px; font-size:6.5px; }.estimate-pending>span:first-child::after { display:none; }.table-stepper { grid-template-columns:19px 25px 19px; }.table-stepper button { height:21px; }.room-estimate-total { flex-wrap:wrap; gap:8px 14px; }.room-estimate-total small { width:100%; }.room-estimate-actions { grid-template-columns:1fr; }.room-estimate-actions select { grid-column:auto; }.assistant-dock { right:1px; }.assistant-trigger { width:28px; height:28px; }.assistant-actions { grid-template-columns:1fr; }.plan-viewer-bar { grid-template-columns:minmax(74px,1fr) auto auto; }.zoom-inline { display:none; }.sheet-manager-toggle { min-width:84px; }.compare-dialog { width:100vw; height:100vh; max-height:100vh; border-radius:0; } }
