:root {
  --proposal-green: #138b63;
  --proposal-green-deep: #0f6f50;
  --proposal-ink: #17211e;
  --proposal-muted: #69746f;
  --proposal-line: #e1e8e4;
  --proposal-workspace: #eef1ef;
  --proposal-warning: #b7791f;
  --proposal-danger: #c2413a;
}

.proposal-create-action { display: inline-flex; align-items: center; gap: 6px; }
.proposal-create-action .material-symbols-outlined { font-size: 17px; }
.proposal-record-btn { display: inline-flex; align-items: center; gap: 4px; color: var(--proposal-green-deep); }
.proposal-record-btn .material-symbols-outlined { font-size: 16px; }

.proposal-list-view { color: var(--proposal-ink); }
.proposal-list-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin: 8px 0 22px; }
.proposal-list-head h2 { margin: 2px 0 5px; font: 700 28px/1.2 Manrope, "Noto Sans SC", sans-serif; letter-spacing: -.035em; }
.proposal-list-head p { margin: 0; color: var(--proposal-muted); font-size: 13px; }
.proposal-list-head .primary-btn { display: inline-flex; align-items: center; gap: 6px; }
.proposal-list-metrics { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin-bottom: 16px; }
.proposal-list-metrics article { display: grid; gap: 5px; min-height: 105px; padding: 18px; border: 1px solid var(--proposal-line); border-radius: 14px; background: #fff; }
.proposal-list-metrics span { color: var(--proposal-muted); font-size: 12px; font-weight: 700; }
.proposal-list-metrics strong { color: var(--proposal-ink); font: 700 27px/1 Manrope, sans-serif; }
.proposal-list-metrics small { color: #8a9590; font-size: 11px; }
.proposal-list-toolbar { display: grid; grid-template-columns: minmax(280px, 1fr) repeat(3, minmax(145px, 190px)); gap: 10px; margin-bottom: 12px; }
.proposal-list-toolbar select,
.proposal-search { height: 44px; border: 1px solid var(--proposal-line); border-radius: 10px; background: #fff; }
.proposal-list-toolbar select { padding: 0 34px 0 13px; color: var(--proposal-ink); }
.proposal-search { display: flex; align-items: center; gap: 9px; padding: 0 13px; }
.proposal-search .material-symbols-outlined { color: #82908a; font-size: 20px; }
.proposal-search input { width: 100%; border: 0; outline: 0; background: transparent; font: inherit; }
.proposal-list-table { overflow: hidden; border: 1px solid var(--proposal-line); border-radius: 14px; background: #fff; }
.proposal-table-head,
.proposal-row { display: grid; grid-template-columns: 160px minmax(220px, 1.35fr) 150px 150px 90px 80px 100px 160px; align-items: center; gap: 14px; padding: 0 18px; }
.proposal-table-head { min-height: 48px; background: #f4f8f6; color: #63706a; font-size: 11px; font-weight: 700; letter-spacing: .035em; }
.proposal-row { min-height: 82px; border-top: 1px solid var(--proposal-line); }
.proposal-row:hover { background: #fbfdfc; }
.proposal-row strong { color: var(--proposal-ink); font-size: 13px; }
.proposal-row span,
.proposal-row small { color: var(--proposal-muted); font-size: 12px; }
.proposal-row .proposal-project-cell { display: grid; gap: 4px; }
.proposal-row .proposal-project-cell strong { font-size: 14px; }
.proposal-row .proposal-project-cell small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.proposal-row-actions { display: flex; align-items: center; justify-content: flex-end; gap: 5px; }
.proposal-row-actions button { width: 32px; height: 32px; display: grid; place-items: center; border: 1px solid var(--proposal-line); border-radius: 8px; background: #fff; color: #52615b; cursor: pointer; }
.proposal-row-actions button:hover { border-color: #a8cabb; color: var(--proposal-green-deep); background: #eff9f4; }
.proposal-row-actions button.danger:hover { border-color: #e9b4b0; color: var(--proposal-danger); background: #fff5f4; }
.proposal-row-actions .material-symbols-outlined { font-size: 17px; }
.proposal-empty { display: grid; place-items: center; min-height: 320px; padding: 44px; text-align: center; }
.proposal-empty .material-symbols-outlined { color: #9fb2aa; font-size: 42px; }
.proposal-empty h3 { margin: 12px 0 6px; }
.proposal-empty p { margin: 0 0 18px; color: var(--proposal-muted); }
.proposal-status-badge { display: inline-flex; width: max-content; align-items: center; padding: 5px 9px; border-radius: 999px; background: #edf2ef; color: #52605a; font-size: 11px; }
.proposal-status-badge.generated { background: #e5f4ed; color: #0f7252; }
.proposal-status-badge.exported { background: #dff5e9; color: #08744e; }
.proposal-edition-badge { display: inline-flex; width: max-content; align-items: center; padding: 3px 7px; border-radius: 999px; background: #eef3f0; color: #607069; font-size: 9px; font-weight: 700; }
.proposal-edition-badge.premium { background: #f7edda; color: #72551f; }

.proposal-generate-dialog,
.proposal-check-dialog { width: 100%; max-width: none; height: 100%; max-height: none; padding: 0; border: 0; background: transparent; }
.proposal-generate-dialog::backdrop,
.proposal-check-dialog::backdrop { background: rgba(20, 30, 26, .46); backdrop-filter: blur(2px); }
.proposal-generate-panel { width: min(760px, calc(100vw - 32px)); max-height: calc(100vh - 42px); margin: 21px auto; display: flex; flex-direction: column; overflow: hidden; border: 0; border-radius: 18px; background: #fff; box-shadow: 0 28px 80px rgba(13, 35, 27, .22); }
.proposal-generate-panel > header,
.proposal-check-panel > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; padding: 22px 26px 18px; border-bottom: 1px solid var(--proposal-line); }
.proposal-generate-panel h2,
.proposal-check-panel h2 { margin: 2px 0 5px; font: 700 23px/1.3 Manrope, "Noto Sans SC", sans-serif; }
.proposal-generate-panel header p,
.proposal-check-panel header p { margin: 0; color: var(--proposal-muted); font-size: 12px; }
.proposal-generate-body { overflow-y: auto; padding: 22px 26px 20px; }
.proposal-generate-panel > footer,
.proposal-check-panel > footer { display: flex; justify-content: flex-end; gap: 9px; padding: 15px 26px; border-top: 1px solid var(--proposal-line); background: #fbfcfb; }
.proposal-generate-panel fieldset { min-width: 0; margin: 0; padding: 0; border: 0; }
.proposal-generate-panel legend,
.proposal-quote-selector > span { display: block; margin-bottom: 9px; color: #53615b; font-size: 12px; font-weight: 700; }
.proposal-quote-selector { display: grid; margin-bottom: 10px; }
.proposal-quote-selector select { height: 45px; padding: 0 13px; border: 1px solid var(--proposal-line); border-radius: 9px; background: #fff; }
.proposal-source-summary { min-height: 64px; margin-bottom: 20px; padding: 13px 15px; border: 1px solid #cce6db; border-radius: 10px; background: #f0f8f4; }
.proposal-source-summary strong { display: block; margin-bottom: 5px; color: #174a38; }
.proposal-source-summary span { color: #587069; font-size: 12px; }
.proposal-choice-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; padding-bottom: 20px; border-bottom: 1px solid var(--proposal-line); }
.proposal-choice-pills { display: flex; gap: 8px; }
.proposal-choice-pills label { cursor: pointer; }
.proposal-choice-pills input { position: absolute; opacity: 0; pointer-events: none; }
.proposal-choice-pills span { display: grid; min-width: 104px; height: 40px; place-items: center; border: 1px solid var(--proposal-line); border-radius: 9px; color: #56645e; font-weight: 600; }
.proposal-choice-pills input:checked + span { border-color: var(--proposal-green); background: #eaf7f1; color: var(--proposal-green-deep); box-shadow: inset 0 0 0 1px var(--proposal-green); }
.proposal-edition-fieldset { padding: 20px 0 !important; border-bottom: 1px solid var(--proposal-line) !important; }
.proposal-edition-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.proposal-edition-card { position: relative; min-height: 82px; display: grid; grid-template-columns: 42px minmax(0, 1fr) auto; align-items: center; gap: 11px; padding: 14px; border: 1px solid var(--proposal-line); border-radius: 11px; background: #fff; cursor: pointer; }
.proposal-edition-card > input { position: absolute; opacity: 0; pointer-events: none; }
.proposal-edition-card > .material-symbols-outlined { width: 40px; height: 40px; display: grid; place-items: center; border-radius: 9px; background: #edf4f0; color: var(--proposal-green-deep); font-size: 21px; }
.proposal-edition-card > div { display: grid; gap: 4px; }
.proposal-edition-card strong { color: #24312c; font-size: 13px; }
.proposal-edition-card small { color: var(--proposal-muted); font-size: 10px; line-height: 1.45; }
.proposal-edition-card > b { align-self: start; color: #829089; font-size: 9px; font-weight: 600; white-space: nowrap; }
.proposal-edition-card:has(input:checked) { border-color: var(--proposal-green); background: #f1faf6; box-shadow: inset 0 0 0 1px var(--proposal-green); }
.proposal-edition-card.premium:has(input:checked) { background: linear-gradient(135deg, #edf8f3, #f8f4ea); }
.proposal-edition-card.premium > .material-symbols-outlined { background: #173f34; color: #d9b66f; }
.proposal-premium-assets { margin-top: 10px; padding: 11px 13px; border-left: 3px solid #c49a4c; border-radius: 7px; background: #fbf8f0; color: #5e584c; font-size: 10px; line-height: 1.55; }
.proposal-premium-assets strong { display: block; margin-bottom: 3px; color: #423c32; }
.proposal-premium-assets[hidden] { display: none; }
.proposal-template-fieldset { padding: 20px 0 !important; border-bottom: 1px solid var(--proposal-line) !important; }
.proposal-template-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.proposal-template-card { position: relative; display: grid; gap: 4px; overflow: hidden; padding-bottom: 11px; border: 1px solid var(--proposal-line); border-radius: 11px; cursor: pointer; }
.proposal-template-card > input { position: absolute; opacity: 0; }
.proposal-template-card:has(input:checked) { border-color: var(--proposal-green); box-shadow: inset 0 0 0 1px var(--proposal-green); }
.proposal-template-preview { position: relative; display: block; height: 112px; overflow: hidden; border-bottom: 1px solid var(--proposal-line); background: #edf4f0; }
.proposal-template-preview i { position: absolute; inset: 13px 15px; border-radius: 3px; background: #fff; box-shadow: 0 7px 18px rgba(30, 42, 36, .11); }
.proposal-template-preview b { position: absolute; left: 31px; bottom: 28px; color: #19231f; font: 700 12px/1.25 Manrope, sans-serif; }
.proposal-template-preview small { position: absolute; left: 31px; top: 25px; color: var(--proposal-green); font: 800 9px Manrope, sans-serif; }
.proposal-template-card.architectural-warm .proposal-template-preview { background: #efe9df; }
.proposal-template-card.architectural-warm .proposal-template-preview i { background: #fffdf8; border-bottom: 4px solid #b4946d; }
.proposal-template-card.architectural-warm .proposal-template-preview small { color: #9b744c; }
.proposal-template-card.dealer-neutral .proposal-template-preview { background: #e7e9e8; }
.proposal-template-card.dealer-neutral .proposal-template-preview i { background: #fff; border-left: 4px solid #4f5955; }
.proposal-template-card.dealer-neutral .proposal-template-preview small { color: #4f5955; }
.proposal-template-card > strong,
.proposal-template-card > small { padding: 0 10px; }
.proposal-template-card > strong { margin-top: 7px; font-size: 12px; }
.proposal-template-card > small { min-height: 30px; color: var(--proposal-muted); font-size: 10px; line-height: 1.45; }
.proposal-module-fieldset { padding-top: 20px !important; }
.proposal-module-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.proposal-module-grid label { display: flex; align-items: center; gap: 8px; padding: 10px 11px; border: 1px solid var(--proposal-line); border-radius: 8px; color: #52605a; font-size: 12px; }
.proposal-module-grid input { accent-color: var(--proposal-green); }
.proposal-generation-check { margin-top: 16px; display: flex; align-items: flex-start; gap: 9px; padding: 11px 13px; border-radius: 9px; background: #f5f8f6; color: #59665f; font-size: 12px; }
.proposal-generation-check.warning { background: #fff7e8; color: #875b13; }
.proposal-generation-check .material-symbols-outlined { font-size: 18px; }

.proposal-builder-view.is-active { margin: 0 -28px -36px; min-height: calc(100vh - 68px); background: var(--proposal-workspace); }
.proposal-builder-toolbar { position: sticky; top: 68px; z-index: 24; min-height: 64px; display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 9px 20px; border-bottom: 1px solid #dfe6e2; background: rgba(255, 255, 255, .97); }
.proposal-builder-context,
.proposal-builder-actions { display: flex; align-items: center; gap: 9px; min-width: 0; }
.proposal-builder-context > div { display: grid; gap: 1px; min-width: 180px; }
.proposal-builder-context > div span { color: var(--proposal-green-deep); font: 700 9px/1 Manrope, sans-serif; letter-spacing: .12em; }
.proposal-builder-context > div strong { overflow: hidden; color: var(--proposal-ink); font-size: 14px; text-overflow: ellipsis; white-space: nowrap; }
.proposal-builder-context > small { padding-left: 10px; border-left: 1px solid var(--proposal-line); color: var(--proposal-muted); }
.proposal-icon-btn { width: 35px; height: 35px; display: grid; place-items: center; border: 1px solid var(--proposal-line); border-radius: 9px; background: #fff; color: #52605a; cursor: pointer; }
.proposal-builder-actions select { height: 36px; max-width: 150px; padding: 0 30px 0 10px; border: 1px solid var(--proposal-line); border-radius: 8px; background-color: #fff; font-size: 11px; }
.proposal-builder-actions button { min-height: 36px; display: inline-flex; align-items: center; gap: 5px; padding: 0 10px; font-size: 11px; white-space: nowrap; }
.proposal-builder-actions .material-symbols-outlined { font-size: 16px; }
.proposal-builder-actions [data-proposal-check] b { min-width: 18px; height: 18px; display: grid; place-items: center; border-radius: 999px; background: #f3e5c8; color: #8b5c12; font-size: 9px; }
.proposal-save-state { color: var(--proposal-muted); font-size: 10px; white-space: nowrap; }
.proposal-save-state.dirty { color: var(--proposal-warning); }
.proposal-save-state.saving { color: var(--proposal-green); }
.proposal-builder-layout { display: grid; grid-template-columns: 218px minmax(520px, 1fr) 300px; min-height: calc(100vh - 132px); }
.proposal-pages-panel,
.proposal-properties-panel { position: sticky; top: 132px; height: calc(100vh - 132px); overflow: hidden; background: #fff; }
.proposal-pages-panel { border-right: 1px solid #dfe6e2; }
.proposal-properties-panel { border-left: 1px solid #dfe6e2; }
.proposal-panel-title { min-height: 60px; display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 0 15px; border-bottom: 1px solid var(--proposal-line); background: #f7faf8; }
.proposal-panel-title > div { display: grid; gap: 2px; }
.proposal-panel-title span { color: var(--proposal-green-deep); font: 700 9px/1 Manrope, sans-serif; letter-spacing: .12em; }
.proposal-panel-title strong { font-size: 13px; }
.proposal-panel-title small { color: #87938e; font-size: 9px; }
.proposal-page-list { height: calc(100% - 60px); overflow-y: auto; padding: 12px 10px 32px; }
.proposal-page-item { display: grid; grid-template-columns: 24px 72px minmax(0, 1fr); gap: 8px; align-items: start; margin-bottom: 8px; padding: 8px 7px; border: 1px solid transparent; border-radius: 9px; cursor: pointer; }
.proposal-page-item:hover { background: #f7faf8; }
.proposal-page-item.is-active { border-color: #b9ddce; background: #eaf7f1; }
.proposal-page-item.is-hidden { opacity: .48; }
.proposal-page-item.is-dragging { opacity: .35; }
.proposal-page-number { padding-top: 2px; color: #7d8984; font: 600 10px Manrope, sans-serif; }
.proposal-page-thumb { position: relative; width: 72px; height: 102px; overflow: hidden; border: 1px solid #dfe6e2; background: #fff; box-shadow: 0 3px 9px rgba(24, 41, 34, .05); }
.proposal-page-item.is-active .proposal-page-thumb { border: 2px solid var(--proposal-green); }
.proposal-page-thumb i { position: absolute; left: 8px; right: 8px; top: 11px; height: 5px; background: #cfdbd5; }
.proposal-page-thumb b { position: absolute; left: 8px; right: 8px; top: 23px; height: 43px; background: #e7eeea; }
.proposal-page-thumb small { position: absolute; left: 8px; right: 26px; bottom: 13px; height: 3px; background: #d8e2dd; }
.proposal-page-meta { min-width: 0; display: grid; gap: 4px; padding-top: 2px; }
.proposal-page-meta strong { overflow: hidden; color: #2d3934; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.proposal-page-meta small { color: #84908b; font-size: 9px; }
.proposal-page-meta button { width: max-content; display: inline-flex; align-items: center; gap: 3px; padding: 0; border: 0; background: none; color: #66736d; font-size: 9px; cursor: pointer; }
.proposal-page-meta button .material-symbols-outlined { font-size: 13px; }
.proposal-page-warning { position: absolute; top: 4px; right: 4px; color: var(--proposal-warning); font-size: 14px !important; }
.proposal-canvas-wrap { position: relative; min-width: 0; height: calc(100vh - 132px); overflow: auto; padding: 38px 28px 92px; background: var(--proposal-workspace); }
.proposal-canvas { width: max-content; min-width: 100%; display: flex; justify-content: center; transform-origin: top center; }
.proposal-page-stage { flex: 0 0 auto; transition: width .15s ease, height .15s ease; }
.proposal-page-stage > .proposal-page { transform-origin: top left; }
.proposal-zoom-controls { position: fixed; z-index: 25; left: calc(50% + 68px); bottom: 24px; display: flex; align-items: center; gap: 9px; padding: 6px 10px; border: 1px solid #dce5e0; border-radius: 999px; background: rgba(255, 255, 255, .96); box-shadow: 0 8px 24px rgba(20, 37, 30, .12); }
.proposal-zoom-controls button { width: 28px; height: 28px; display: grid; place-items: center; border: 0; border-radius: 999px; background: transparent; color: #53615b; cursor: pointer; }
.proposal-zoom-controls button:hover { background: #edf6f1; color: var(--proposal-green); }
.proposal-zoom-controls strong { min-width: 42px; text-align: center; font: 700 11px Manrope, sans-serif; }
.proposal-zoom-controls i { width: 1px; height: 18px; background: var(--proposal-line); }
.proposal-properties { height: calc(100% - 60px); overflow-y: auto; padding: 15px 16px 30px; }
.proposal-property-group { display: grid; gap: 9px; margin-bottom: 18px; padding-bottom: 18px; border-bottom: 1px solid var(--proposal-line); }
.proposal-property-group:last-child { border: 0; }
.proposal-property-heading { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.proposal-property-heading strong { font-size: 11px; letter-spacing: .035em; }
.proposal-property-heading small { color: var(--proposal-muted); font-size: 9px; }
.proposal-property-group label { display: grid; gap: 6px; color: #66736d; font-size: 10px; font-weight: 700; }
.proposal-property-group input[type="text"],
.proposal-property-group textarea { width: 100%; padding: 9px 10px; border: 1px solid var(--proposal-line); border-radius: 8px; background: #fff; color: var(--proposal-ink); font: 400 12px/1.5 "Noto Sans SC", sans-serif; }
.proposal-property-group textarea { min-height: 74px; resize: vertical; }
.proposal-page-toggle { display: flex !important; align-items: center; justify-content: space-between; grid-template-columns: 1fr auto; padding: 10px 11px; border: 1px solid var(--proposal-line); border-radius: 8px; }
.proposal-page-toggle input { width: 36px; height: 20px; accent-color: var(--proposal-green); }
.proposal-source-card { padding: 10px 11px; border-left: 3px solid var(--proposal-green); border-radius: 6px; background: #f0f7f4; }
.proposal-source-card strong { display: flex; align-items: center; gap: 5px; margin-bottom: 4px; color: #21513f; font-size: 10px; }
.proposal-source-card p { margin: 0; color: #64736d; font-size: 10px; line-height: 1.5; }
.proposal-source-card .material-symbols-outlined { font-size: 14px; }
.proposal-property-image { overflow: hidden; border: 1px solid var(--proposal-line); border-radius: 8px; background: #f4f7f5; }
.proposal-property-image img { width: 100%; height: 128px; display: block; object-fit: cover; }
.proposal-property-image-empty { height: 96px; display: grid; place-items: center; color: #87938e; font-size: 10px; }
.proposal-image-actions { display: grid; grid-template-columns: 1fr auto; gap: 7px; }
.proposal-image-upload { position: relative; min-height: 34px; display: grid; place-items: center; overflow: hidden; border: 1px solid #bedbce; border-radius: 8px; background: #f2faf6; color: var(--proposal-green-deep); font-size: 10px; cursor: pointer; }
.proposal-image-upload input { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
.proposal-image-actions button { min-width: 62px; border: 1px solid var(--proposal-line); border-radius: 8px; background: #fff; color: var(--proposal-danger); font-size: 10px; cursor: pointer; }
.proposal-property-hint { margin: 0; padding: 8px 10px; border-radius: 8px; background: #edf8f3; color: #3d6a5a; font-size: 10px; line-height: 1.5; }
.proposal-image-slot-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 7px; }
.proposal-image-slot-grid button { min-height: 86px; display: grid; grid-template-rows: 58px auto; gap: 5px; padding: 6px; border: 1px solid var(--proposal-line); border-radius: 9px; background: #fff; color: #53625c; cursor: pointer; }
.proposal-image-slot-grid button.is-active { border: 2px solid var(--proposal-green); background: #edf8f3; color: var(--proposal-green-deep); }
.proposal-image-slot-grid img { width: 100%; height: 58px; object-fit: cover; border-radius: 6px; background: #edf3f0; }
.proposal-image-slot-grid .material-symbols-outlined { display: grid; place-items: center; height: 58px; border-radius: 6px; background: #eef3f0; color: #8a9690; font-size: 20px; }
.proposal-image-slot-grid b { font-size: 10px; line-height: 1.2; }
.proposal-image-slot-actions button { width: 100%; min-height: 32px; border: 1px solid var(--proposal-line); border-radius: 8px; background: #fff; color: var(--proposal-danger); font-size: 10px; cursor: pointer; }
.proposal-media-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; }
.proposal-media-grid button { position: relative; aspect-ratio: 1; overflow: hidden; padding: 0; border: 1px solid var(--proposal-line); border-radius: 7px; background: #f1f4f2; cursor: pointer; }
.proposal-media-grid button.is-selected { border: 2px solid var(--proposal-green); }
.proposal-media-grid img { width: 100%; height: 100%; object-fit: cover; }
.proposal-media-grid button > span { position: absolute; left: 3px; right: 3px; bottom: 3px; padding: 3px 4px; overflow: hidden; border-radius: 4px; color: #fff; background: rgba(11, 37, 28, .76); font-size: 7px; line-height: 1.15; text-overflow: ellipsis; white-space: nowrap; backdrop-filter: blur(3px); }
.proposal-media-filter { min-width: 116px; height: 30px; padding: 0 26px 0 8px; border: 1px solid var(--proposal-line); border-radius: 7px; color: #52615b; background-color: #fff; font-size: 9px; }
.proposal-media-empty { grid-column: 1 / -1; min-height: 78px; padding: 12px; display: grid; place-items: center; border: 1px dashed #c8d9d1; border-radius: 8px; color: #75827c; background: #f5f9f7; font-size: 9px; line-height: 1.5; text-align: center; }
.proposal-reset-btn { min-height: 36px; border: 1px solid var(--proposal-line); border-radius: 8px; background: #fff; color: #627069; font-size: 10px; cursor: pointer; }

.proposal-page { --theme-accent: #138b63; --theme-deep: #0f5f47; --theme-soft: #eaf5f0; --theme-paper: #fff; position: relative; width: 794px; height: 1123px; overflow: hidden; box-sizing: border-box; background: var(--theme-paper); color: #17211e; font-family: Manrope, "Noto Sans SC", sans-serif; box-shadow: 0 14px 38px rgba(25, 42, 35, .09); }
.proposal-page.theme-architectural-warm { --theme-accent: #a47d52; --theme-deep: #4b4035; --theme-soft: #f3ede4; --theme-paper: #fffdf8; }
.proposal-page.theme-dealer-neutral { --theme-accent: #4f5c57; --theme-deep: #26302c; --theme-soft: #eff2f1; --theme-paper: #fff; }
.proposal-page-inner { position: absolute; inset: 0; padding: 58px 62px 52px; box-sizing: border-box; }
.proposal-page-header { display: flex; align-items: flex-end; justify-content: space-between; gap: 30px; padding-bottom: 13px; border-bottom: 1px solid var(--theme-accent); }
.proposal-page-header h2 { margin: 0 0 4px; color: var(--theme-deep); font-size: 29px; line-height: 1.16; letter-spacing: -.025em; }
.proposal-page-header p { margin: 0; color: #6f7a75; font-size: 12px; }
.proposal-page-header span { max-width: 170px; color: #7b8681; font-size: 9px; text-align: right; letter-spacing: .06em; }
.proposal-page-footer { position: absolute; left: 62px; right: 62px; bottom: 30px; display: flex; align-items: center; justify-content: space-between; padding-top: 8px; border-top: 1px solid #dce3df; color: #7d8883; font-size: 9px; }
.proposal-page-footer b { color: var(--theme-accent); font: 700 10px Manrope, sans-serif; }
.proposal-kicker { color: var(--theme-accent); font-size: 10px; font-weight: 800; letter-spacing: .18em; }
.proposal-hero-image { width: 100%; display: block; object-fit: cover; background: var(--theme-soft); }
.proposal-cover-hero { height: 686px; }
.proposal-cover-brand { position: absolute; top: 48px; left: 58px; z-index: 2; min-width: 120px; padding: 15px 18px; border-left: 4px solid var(--theme-accent); background: rgba(255, 255, 255, .92); }
.proposal-cover-brand img { width: 88px; height: 44px; object-fit: contain; }
.proposal-cover-brand strong { display: block; color: var(--theme-deep); font-size: 22px; }
.proposal-cover-brand span { color: #6d7873; font-size: 9px; letter-spacing: .11em; }
.proposal-cover-content { height: 437px; box-sizing: border-box; padding: 48px 62px 42px; border-bottom: 8px solid var(--theme-accent); }
.proposal-cover-content h1 { max-width: 650px; margin: 18px 0 29px; color: #121b17; font-size: 44px; line-height: 1.13; letter-spacing: -.038em; text-transform: uppercase; }
.proposal-cover-rule { width: 64px; height: 4px; margin-bottom: 28px; background: var(--theme-accent); }
.proposal-cover-meta { display: grid; grid-template-columns: 1fr 1fr; gap: 15px 48px; }
.proposal-cover-meta div { padding-top: 9px; border-top: 1px solid #dfe5e2; }
.proposal-cover-meta span { display: block; margin-bottom: 4px; color: #78827e; font-size: 9px; letter-spacing: .06em; }
.proposal-cover-meta strong { font-size: 12px; }
.proposal-overview-layout { display: grid; grid-template-columns: 1.15fr .85fr; gap: 24px; margin-top: 28px; }
.proposal-overview-layout .proposal-hero-image { height: 380px; }
.proposal-spec-sheet { border-top: 2px solid var(--theme-accent); }
.proposal-spec-row { display: grid; grid-template-columns: 42% 58%; gap: 10px; padding: 11px 5px; border-bottom: 1px solid #dfe5e2; }
.proposal-spec-row span { color: #727e78; font-size: 10px; }
.proposal-spec-row strong { font-size: 11px; text-align: right; }
.proposal-overview-note { margin-top: 25px; padding: 17px 19px; border-left: 4px solid var(--theme-accent); background: var(--theme-soft); color: #4d5b55; font-size: 12px; line-height: 1.7; }
.proposal-section-title { margin: 28px 0 15px; color: var(--theme-deep); font-size: 17px; }
.proposal-profile-image { width: 100%; height: 405px; object-fit: contain; border: 1px solid #e0e6e3; background: #fff; }
.proposal-feature-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; margin-top: 20px; }
.proposal-feature-grid article { min-height: 82px; padding: 14px 12px; border-top: 2px solid var(--theme-accent); background: var(--theme-soft); }
.proposal-feature-grid strong { display: block; margin-bottom: 7px; color: var(--theme-deep); font-size: 11px; }
.proposal-feature-grid span { color: #6d7973; font-size: 9px; line-height: 1.5; }
.proposal-dual-visual { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-top: 28px; }
.proposal-dual-visual figure { margin: 0; }
.proposal-dual-visual img { width: 100%; height: 345px; object-fit: cover; }
.proposal-dual-visual figcaption { display: flex; justify-content: space-between; padding: 10px 2px; border-bottom: 1px solid #dce3df; color: #5d6964; font-size: 10px; }
.proposal-side-hero { height: 340px; margin-top: 25px; }
.proposal-data-table { width: 100%; margin-top: 18px; border-collapse: collapse; table-layout: fixed; }
.proposal-data-table th { padding: 10px 8px; border-top: 1px solid var(--theme-accent); border-bottom: 1px solid #dce3df; background: var(--theme-soft); color: #64706b; font-size: 9px; text-align: left; }
.proposal-data-table td { padding: 11px 8px; border-bottom: 1px solid #e2e8e5; color: #27332e; font-size: 10px; vertical-align: top; }
.proposal-data-table th:last-child,
.proposal-data-table td:last-child { text-align: right; }
.proposal-table-product-cell { display: grid; grid-template-columns: 54px 1fr; align-items: center; gap: 9px; }
.proposal-table-product-cell img { width: 48px; height: 48px; object-fit: cover; border: 1px solid #dce5e1; background: var(--theme-soft); }
.proposal-option-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px; margin-top: 25px; }
.proposal-option-grid.count-small { grid-template-columns: 1fr; }
.proposal-option-card { display: grid; grid-template-columns: 145px 1fr; min-height: 155px; border-bottom: 1px solid #dfe5e2; }
.proposal-option-card img { width: 132px; height: 132px; object-fit: cover; background: var(--theme-soft); }
.proposal-option-card div { padding: 9px 0 9px 4px; }
.proposal-option-card strong { display: block; margin-bottom: 8px; color: var(--theme-deep); font-size: 13px; }
.proposal-option-card span { display: block; margin-bottom: 4px; color: #6e7974; font-size: 9px; line-height: 1.45; }
.proposal-visual-main { height: 500px; margin-top: 26px; }
.proposal-visual-gallery { display: grid; grid-template-columns: repeat(3, 1fr); gap: 11px; margin-top: 12px; }
.proposal-visual-gallery img { width: 100%; height: 190px; object-fit: cover; }
.proposal-disclaimer { margin-top: 15px; color: #7d8782; font-size: 9px; line-height: 1.5; }
.proposal-quote-table { width: 100%; margin-top: 28px; border-collapse: collapse; table-layout: fixed; }
.proposal-quote-table th { padding: 11px 8px; border-top: 1px solid var(--theme-accent); border-bottom: 1px solid #d9e1dd; background: var(--theme-soft); color: #64706a; font-size: 9px; text-align: left; }
.proposal-quote-table td { padding: 13px 8px; border-bottom: 1px solid #e1e7e4; font-size: 10px; vertical-align: top; }
.proposal-quote-table th:nth-last-child(-n+3),
.proposal-quote-table td:nth-last-child(-n+3) { text-align: right; }
.proposal-quote-table td strong { font-size: 11px; }
.proposal-quote-summary { width: 320px; margin: 22px 0 0 auto; }
.proposal-quote-summary div { display: flex; align-items: center; justify-content: space-between; padding: 8px 2px; border-bottom: 1px solid #dfe5e2; color: #68746e; font-size: 10px; }
.proposal-quote-summary .grand { margin-top: 8px; padding: 15px 17px; border: 0; background: var(--theme-deep); color: #fff; }
.proposal-quote-summary .grand span { font-size: 11px; }
.proposal-quote-summary .grand strong { font-size: 22px; }
.proposal-commercial-note { margin-top: 18px; padding: 11px 13px; background: var(--theme-soft); color: #68736e; font-size: 9px; line-height: 1.5; }
.proposal-order-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-top: 28px; }
.proposal-order-grid article { min-height: 100px; padding: 16px; border-top: 2px solid var(--theme-accent); background: #fafcfb; }
.proposal-order-grid span { display: block; margin-bottom: 9px; color: #6d7973; font-size: 9px; letter-spacing: .05em; text-transform: uppercase; }
.proposal-order-grid strong { color: #25312c; font-size: 11px; line-height: 1.55; white-space: pre-line; }
.proposal-order-notes { margin-top: 19px; padding: 17px 19px; border-left: 4px solid var(--theme-accent); background: var(--theme-soft); }
.proposal-order-notes h3 { margin: 0 0 8px; color: var(--theme-deep); font-size: 13px; }
.proposal-order-notes p { margin: 0; color: #5e6b65; font-size: 10px; line-height: 1.65; white-space: pre-line; }
.proposal-contact-page { background: var(--theme-deep); color: #fff; }
.proposal-contact-image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: .33; }
.proposal-contact-overlay { position: absolute; inset: 0; background: linear-gradient(90deg, color-mix(in srgb, var(--theme-deep) 94%, transparent) 0%, color-mix(in srgb, var(--theme-deep) 74%, transparent) 58%, color-mix(in srgb, var(--theme-deep) 36%, transparent) 100%); }
.proposal-contact-content { position: absolute; left: 64px; right: 64px; top: 120px; z-index: 2; }
.proposal-contact-content .proposal-kicker { color: #bfe7d4; }
.proposal-contact-content h1 { max-width: 560px; margin: 24px 0 45px; font-size: 48px; line-height: 1.13; letter-spacing: -.035em; }
.proposal-contact-details { display: grid; grid-template-columns: 1fr 1fr; gap: 16px 40px; max-width: 550px; }
.proposal-contact-details div { padding-top: 11px; border-top: 1px solid rgba(255, 255, 255, .3); }
.proposal-contact-details span { display: block; margin-bottom: 5px; color: rgba(255, 255, 255, .65); font-size: 9px; letter-spacing: .06em; }
.proposal-contact-details strong { font-size: 12px; }
.proposal-contact-brand { position: absolute; left: 64px; bottom: 66px; z-index: 2; font-size: 20px; font-weight: 800; }
.proposal-page-placeholder { display: grid; min-height: 390px; place-items: center; margin-top: 28px; border: 1px dashed #bfcac5; background: var(--theme-soft); color: #85908b; text-align: center; }
.proposal-page-placeholder .material-symbols-outlined { display: block; margin-bottom: 8px; font-size: 35px; }
.proposal-premium-intro { display: grid; grid-template-columns: 1.02fr .98fr; gap: 30px; margin-top: 30px; }
.proposal-premium-intro .proposal-hero-image { height: 430px; }
.proposal-premium-copy { padding: 16px 0; }
.proposal-premium-copy h3 { margin: 0 0 16px; color: var(--theme-deep); font-size: 25px; line-height: 1.25; }
.proposal-premium-copy p { margin: 0 0 24px; color: #5e6a65; font-size: 12px; line-height: 1.85; white-space: pre-line; }
.proposal-premium-principles { display: grid; border-top: 2px solid var(--theme-accent); }
.proposal-premium-principles article { display: grid; grid-template-columns: 34px 1fr; gap: 10px; padding: 13px 4px; border-bottom: 1px solid #dde4e0; }
.proposal-premium-principles b { color: var(--theme-accent); font-size: 11px; }
.proposal-premium-principles strong { display: block; margin-bottom: 3px; color: #28342f; font-size: 11px; }
.proposal-premium-principles span { color: #74807a; font-size: 9px; line-height: 1.5; }
.proposal-performance-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px; margin-top: 28px; }
.proposal-performance-card { min-height: 178px; padding: 20px; border-top: 3px solid var(--theme-accent); background: var(--theme-soft); }
.proposal-performance-card .material-symbols-outlined { color: var(--theme-accent); font-size: 27px; }
.proposal-performance-card strong { display: block; margin: 14px 0 7px; color: var(--theme-deep); font-size: 14px; }
.proposal-performance-card p { margin: 0; color: #627069; font-size: 10px; line-height: 1.7; }
.proposal-material-layout { display: grid; grid-template-columns: 1.2fr .8fr; gap: 22px; margin-top: 28px; }
.proposal-material-layout .proposal-hero-image { height: 470px; }
.proposal-material-board { display: grid; align-content: start; gap: 10px; }
.proposal-material-board article { padding: 16px; border-left: 3px solid var(--theme-accent); background: #fafcfb; }
.proposal-material-board span { display: block; color: #78847e; font-size: 9px; }
.proposal-material-board strong { display: block; margin-top: 5px; color: #27342e; font-size: 12px; }
.proposal-install-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 13px; margin-top: 25px; }
.proposal-install-grid figure { margin: 0; }
.proposal-install-grid img,
.proposal-install-grid .proposal-page-placeholder { width: 100%; height: 270px; min-height: 270px; margin: 0; object-fit: cover; }
.proposal-install-grid figcaption { padding: 10px 2px; border-bottom: 1px solid #dce3df; color: #52605a; font-size: 10px; }
.proposal-warranty-timeline { margin-top: 29px; border-top: 2px solid var(--theme-accent); }
.proposal-warranty-timeline article { display: grid; grid-template-columns: 90px 1fr; gap: 22px; padding: 18px 4px; border-bottom: 1px solid #dfe5e2; }
.proposal-warranty-timeline b { color: var(--theme-accent); font-size: 11px; letter-spacing: .05em; }
.proposal-warranty-timeline strong { display: block; margin-bottom: 5px; color: #27342e; font-size: 12px; }
.proposal-warranty-timeline span { color: #6b7771; font-size: 10px; line-height: 1.65; }

.proposal-check-panel { width: min(680px, calc(100vw - 32px)); margin: 70px auto; overflow: hidden; border-radius: 16px; background: #fff; box-shadow: 0 28px 80px rgba(13, 35, 27, .22); }
.proposal-check-groups { max-height: 64vh; overflow-y: auto; padding: 20px 25px; }
.proposal-check-group { margin-bottom: 18px; }
.proposal-check-group h3 { display: flex; align-items: center; gap: 7px; margin: 0 0 9px; font-size: 13px; }
.proposal-check-group h3 .material-symbols-outlined { font-size: 18px; }
.proposal-check-group.must h3 { color: var(--proposal-danger); }
.proposal-check-group.suggest h3 { color: var(--proposal-warning); }
.proposal-check-group.pass h3 { color: var(--proposal-green-deep); }
.proposal-generation-check > div { display: grid; gap: 3px; min-width: 0; }
.proposal-generation-check > div > span { color: #65756e; font-size: 11px; line-height: 1.55; }
.proposal-generation-shortcuts { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 7px; }
.proposal-generation-shortcuts button,
.proposal-check-actions button { display: inline-flex; align-items: center; justify-content: center; gap: 4px; min-height: 28px; padding: 5px 9px; border: 1px solid #acd5c4; border-radius: 7px; background: #fff; color: var(--proposal-green-deep); font-size: 10px; font-weight: 700; cursor: pointer; }
.proposal-generation-shortcuts button:hover,
.proposal-check-actions button:hover { border-color: var(--proposal-green); background: #eef8f3; }
.proposal-generation-shortcuts .material-symbols-outlined { font-size: 14px; }
.proposal-check-item { display: flex; align-items: center; justify-content: space-between; gap: 14px; min-height: 42px; padding: 8px 10px; border-top: 1px solid var(--proposal-line); color: #52605a; font-size: 11px; }
.proposal-check-actions { display: flex; flex: 0 0 auto; flex-wrap: wrap; justify-content: flex-end; gap: 7px; }
.proposal-check-item button { border: 0; background: none; color: var(--proposal-green-deep); font-size: 10px; cursor: pointer; }
.proposal-check-actions button { border: 1px solid #acd5c4; background: #fff; }
.proposal-builder-view.is-preview .proposal-pages-panel,
.proposal-builder-view.is-preview .proposal-properties-panel { display: none; }
.proposal-builder-view.is-preview .proposal-builder-layout { grid-template-columns: minmax(0, 1fr); }
.proposal-builder-view.is-preview .proposal-canvas-wrap { padding-inline: 32px; }
.proposal-toast { position: fixed; z-index: 300; right: 24px; bottom: 24px; max-width: 360px; display: flex; align-items: center; gap: 10px; padding: 13px 16px; border: 1px solid #b9dacb; border-radius: 10px; background: #fff; color: #234a3b; box-shadow: 0 14px 38px rgba(20, 42, 33, .18); opacity: 0; transform: translateY(12px); transition: .2s ease; }
.proposal-toast.is-visible { opacity: 1; transform: translateY(0); }
.proposal-toast.error { border-color: #efc2be; color: #a43b34; }
.proposal-toast .material-symbols-outlined { font-size: 20px; }
.proposal-confirm-backdrop { position: fixed; z-index: 290; inset: 0; display: grid; place-items: center; padding: 20px; background: rgba(20, 30, 26, .45); }
.proposal-confirm-card { width: min(420px, 100%); padding: 22px; border-radius: 14px; background: #fff; box-shadow: 0 24px 70px rgba(13, 35, 27, .24); }
.proposal-confirm-card h3 { margin: 0 0 8px; }
.proposal-confirm-card p { margin: 0; color: var(--proposal-muted); font-size: 12px; line-height: 1.6; }
.proposal-confirm-actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 20px; }

.proposal-pdf-document { width: 210mm; margin: 0; padding: 0; }
.proposal-pdf-document .proposal-page { width: 210mm; height: 297mm; box-shadow: none; page-break-after: always; break-after: page; }
.proposal-pdf-document .proposal-page:last-child { page-break-after: auto; break-after: auto; }

@media (max-width: 1280px) {
  .proposal-builder-layout { grid-template-columns: 182px minmax(420px, 1fr) 270px; }
  .proposal-builder-actions [data-proposal-preview],
  .proposal-save-state { display: none; }
  .proposal-table-head,
  .proposal-row { grid-template-columns: 130px minmax(190px, 1.3fr) 120px 125px 70px 70px 90px 150px; gap: 9px; padding-inline: 12px; }
}

@media (max-width: 980px) {
  .proposal-list-metrics { grid-template-columns: repeat(2, 1fr); }
  .proposal-list-toolbar { grid-template-columns: 1fr 1fr; }
  .proposal-table-head { display: none; }
  .proposal-row { grid-template-columns: 1fr 1fr; gap: 8px 14px; padding: 15px; }
  .proposal-row-actions { grid-column: 1 / -1; justify-content: flex-start; }
  .proposal-builder-view.is-active { margin: 0 -20px -28px; }
  .proposal-builder-toolbar { align-items: flex-start; flex-direction: column; top: 68px; }
  .proposal-builder-actions { width: 100%; overflow-x: auto; padding-bottom: 2px; }
  .proposal-builder-layout { grid-template-columns: 1fr; }
  .proposal-pages-panel,
  .proposal-properties-panel { position: fixed; z-index: 40; top: 160px; bottom: 0; height: auto; width: 280px; transform: translateX(-102%); transition: transform .2s ease; }
  .proposal-properties-panel { right: 0; transform: translateX(102%); }
  .proposal-builder-view.show-pages .proposal-pages-panel,
  .proposal-builder-view.show-properties .proposal-properties-panel { transform: translateX(0); }
  .proposal-canvas-wrap { height: calc(100vh - 160px); }
}

@media (max-width: 640px) {
  .proposal-list-head { align-items: flex-start; flex-direction: column; }
  .proposal-list-metrics { grid-template-columns: 1fr 1fr; }
  .proposal-list-toolbar { grid-template-columns: 1fr; }
  .proposal-choice-grid,
  .proposal-edition-grid,
  .proposal-template-grid,
  .proposal-module-grid { grid-template-columns: 1fr; }
  .proposal-template-preview { height: 94px; }
  .proposal-builder-view.is-active { margin: 0 -14px -94px; min-height: calc(100vh - 58px); }
  .proposal-builder-toolbar { top: 58px; padding-inline: 12px; }
  .proposal-builder-context > div { min-width: 140px; }
  .proposal-builder-context > small,
  .proposal-builder-context .proposal-status-badge { display: none; }
  .proposal-builder-actions [data-proposal-save],
  .proposal-builder-actions [data-proposal-check],
  .proposal-builder-actions select { display: none; }
  .proposal-canvas-wrap { padding-inline: 8px; }
  .proposal-zoom-controls { left: 50%; bottom: 78px; }
}

@media print {
  @page { size: A4 portrait; margin: 0; }
  html, body { margin: 0 !important; padding: 0 !important; background: #fff !important; }
  .proposal-pdf-document { display: block !important; }
  .proposal-pdf-document .proposal-page { margin: 0 !important; }
}
