:root {
  font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
  color: #263a31;
  background: #f6f5f0;
  font-synthesis: none;
  --paper: #f6f5f0;
  --surface: #fffefb;
  --ink: #263a31;
  --green: #285342;
  --muted: #68746c;
  --line: #dfe3d9;
  --tint: #eaf0e5;
}
* { box-sizing: border-box; }
body { margin: 0; }
button, textarea { font: inherit; }
button { color: inherit; background: none; border: 0; cursor: pointer; }
button:disabled { opacity: .4; cursor: default; }
button:not(:disabled):hover { background-color: #e9eee4; }
button:focus-visible, textarea:focus-visible, summary:focus-visible, label:focus-within { outline: 2px solid #56826a; outline-offset: 3px; }
button { transition: background-color .15s, color .15s, border-color .15s; }
svg { flex-shrink: 0; vertical-align: middle; }
h1, h2, h3, p { margin: 0; }
h1, h2, h3 { font-size: 16px; font-weight: 600; letter-spacing: -.025em; }
p { line-height: 1.6; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; clip: rect(0,0,0,0); overflow: hidden; white-space: nowrap; }
#app { height: 100dvh; min-height: 650px; display: grid; grid-template-rows: 64px minmax(0,1fr); }
.app-header { display: flex; align-items: center; padding: 0 24px; gap: 20px; border-bottom: 1px solid var(--line); background: var(--surface); position: relative; z-index: 20; }
.project-title { width: 292px; flex-shrink: 0; display: flex; gap: 12px; align-items: center; font-size: 16px; }
.project-mark { width: 28px; height: 28px; border-radius: 6px; background: var(--green); color: #f4f6ef; display: grid; place-items: center; }
.project-mark svg { width: 16px; height: 16px; }
nav { display: flex; align-self: stretch; justify-content: center; gap: 4px; margin: auto; height: 64px; }
.step-tab { font-size: 13px; color: #647269; padding: 0 16px; position: relative; white-space: nowrap; }
.step-tab.active { color: var(--green); font-weight: 600; }
.step-tab.active::after { content: ''; position: absolute; bottom: 0; left: 16px; right: 16px; height: 3px; background: var(--green); }
.header-actions { display: flex; align-items: center; gap: 20px; margin-left: auto; white-space: nowrap; }
.concept-label { font-size: 11px; color: var(--muted); }
.demo-trigger { display: flex; align-items: center; gap: 9px; font-size: 12px; padding: 8px 10px; border: 1px solid var(--line); border-radius: 5px; }
.demo-menu { position: absolute; right: 24px; top: 55px; width: 224px; padding: 8px; border: 1px solid #d6ded0; background: var(--surface); border-radius: 7px; box-shadow: 0 10px 40px #263a3122; z-index: 50; }
.demo-menu button { display: flex; align-items: center; gap: 10px; width: 100%; text-align: left; padding: 11px 12px; border-radius: 4px; font-size: 13px; }
.menu-group { padding-bottom: 7px; margin-bottom: 8px; border-bottom: 1px solid var(--line); }
.menu-label { display: block; font-size: 11px; color: var(--muted); padding: 5px 12px; }
main { min-height: 0; overflow: hidden; }
.workspace { height: 100%; display: grid; grid-template-columns: 340px minmax(0,1fr); min-height: 0; }
.conversation { background: #fbfaf6; border-right: 1px solid var(--line); min-height: 0; display: flex; flex-direction: column; }
.conversation-heading { display: flex; align-items: center; gap: 10px; padding: 22px 24px 18px; flex-shrink: 0; }
.conversation-heading h1 { font-size: 14px; }
.agent-avatar { width: 27px; height: 27px; display: grid; place-items: center; color: var(--green); font-size: 26px; }
.project-files { padding: 0 22px 12px; border-bottom: 1px solid var(--line); flex-shrink: 0; }
.files-heading { display: flex; align-items: center; justify-content: space-between; width: 100%; padding: 6px 2px; font-size: 12px; }
.files-heading>span:first-child { display: flex; align-items: center; gap: 7px; }
.files-heading svg { width: 14px; height: 14px; }
.count { color: #6d796f; font-size: 11px; margin-left: 4px; }
.file-thumbnails { display: flex; gap: 10px; overflow-x: auto; max-height: 120px; padding: 10px 0 2px; scrollbar-width: thin; }
.file-thumbnail { padding: 0; border: 1px solid #d9e0d2; border-radius: 5px; width: 112px; flex-shrink: 0; overflow: hidden; background: #fff; text-align: left; }
.file-thumbnail img { width: 100%; height: 61px; object-fit: cover; display: block; }
.file-thumbnail>span:last-child { display: block; padding: 7px 9px; font-size: 11px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.file-icon { height: 61px; display: grid; place-items: center; }
.file-note { font-size: 11px; color: #68746c; display: block; margin-top: 10px; }
.chat-messages { min-height: 0; flex: 1; overflow-y: auto; padding: 23px 22px 20px; scroll-behavior: smooth; scrollbar-width: thin; }
.message { margin-bottom: 22px; display: flex; gap: 9px; font-size: 14px; line-height: 1.6; overflow-wrap: anywhere; }
.message-mark { flex-shrink: 0; color: #4f7159; width: 17px; font-size: 20px; line-height: 1.2; }
.message.assistant>div { padding-top: 2px; }
.message.customer { margin-left: 22px; padding: 12px 15px; border-radius: 10px 10px 2px 10px; background: #e8ede2; color: #2b4334; }
.suggestions { display: flex; gap: 8px; flex-wrap: wrap; padding: 0 0 5px 26px; }
.suggestion { border: 1px solid #b9cbb4; padding: 8px 10px; color: #31553b; border-radius: 5px; font-size: 12px; text-align: left; line-height: 1.4; }
.composer { border: 1px solid #cfd9c7; background: var(--surface); border-radius: 9px; padding: 12px; margin: 0 18px 20px; flex-shrink: 0; box-shadow: 0 2px 5px #263a3105; }
textarea { border: 0; width: 100%; height: 78px; resize: none; outline: none; background: transparent; color: #263a31; font-size: 14px; line-height: 1.5; padding: 2px; }
textarea::placeholder { color: #778275; }
textarea:focus-visible { outline: 0; }
.composer:focus-within { border-color: #6e9273; box-shadow: 0 0 0 2px #597b5910; }
.composer-tools { display: flex; align-items: center; justify-content: space-between; gap: 15px; margin-top: 6px; }
.attach-button { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; color: #5c6e5c; cursor: pointer; padding: 6px 0; }
.attach-button svg { width: 15px; height: 15px; }
.send-button { background: var(--green); color: #fff; border-radius: 6px; width: 32px; height: 32px; display: grid; place-items: center; }
button.send-button:hover { background: #396950; }
.workspace-main { min-width: 0; min-height: 0; display: flex; flex-direction: column; position: relative; }
.canvas-area, .plan-canvas { flex: 1; min-height: 0; display: flex; flex-direction: column; background: #f0ede6; }
.canvas-toolbar { height: 56px; padding: 0 24px; display: flex; align-items: center; gap: 14px; flex-shrink: 0; background: #f6f5f0; border-bottom: 1px solid #e0e3d9; }
.canvas-tools { display: flex; align-items: center; gap: 9px; margin-left: auto; }
.view-switch { display: flex; align-items: center; gap: 2px; border: 1px solid #d7ded0; border-radius: 6px; padding: 3px; background: #eeeFE8; }
.view-switch button { font-size: 12px; padding: 5px 14px; border-radius: 4px; color: #667363; }
.view-switch button.active { background: var(--surface); color: var(--green); box-shadow: 0 1px 3px #25362112; font-weight: 600; }
.version-tag { font-size: 12px; color: #5d6b5d; padding-left: 2px; }
.toolbar-button { display: flex; gap: 7px; align-items: center; padding: 8px 11px; font-size: 12px; border: 1px solid #cdd8c6; border-radius: 5px; background: #fbfcf6; }
.toolbar-button svg { width: 15px; height: 15px; }
.icon-button { padding: 7px; display: inline-grid; place-items: center; border-radius: 4px; color: #67765e; }
.canvas-name { display: flex; align-items: center; gap: 8px; font-size: 13px; font-weight: 500; }
.plan-board { flex: 1; min-height: 0; display: grid; place-items: center; padding: 42px; background-color: #eeefe7; background-image: radial-gradient(#d3d9cb .7px,transparent .7px); background-size: 18px 18px; }
.plan-board>img { max-width: 100%; width: 85%; max-height: 100%; height: auto; object-fit: contain; background: white; box-shadow: 0 3px 24px #34432b14; border: 1px solid #e0e4d9; }
.model-area { flex: 1; min-height: 0; position: relative; overflow: hidden; }
.scene-mount, #scene-host { position: absolute; inset: 0; }
#scene-host canvas { display: block; width: 100%; height: 100%; touch-action: none; }
.action-bar { min-height: 90px; border-top: 1px solid var(--line); background: #fffefb; padding: 17px 28px; display: flex; align-items: center; justify-content: space-between; gap: 20px; flex-shrink: 0; z-index: 2; }
.price-block { display: flex; flex-wrap: wrap; align-items: center; column-gap: 17px; row-gap: 5px; }
.price-block>div { display: flex; gap: 8px; align-items: center; flex: 0 0 100%; }
.price-label { font-size: 11px; color: #6b766b; }
.demo-price { font-size: 10px; color: #75806e; border-left: 1px solid #cdd5c5; padding-left: 8px; font-weight: 400; }
.price-block>strong { font-size: 24px; font-weight: 600; letter-spacing: -.04em; }
.text-button { font-size: 12px; color: #486443; padding: 5px 0; text-decoration: underline; text-decoration-color: #a5b79c; text-underline-offset: 4px; }
.primary, .secondary { display: inline-flex; align-items: center; justify-content: center; gap: 10px; border-radius: 5px; padding: 12px 20px; font-size: 13px; font-weight: 550; line-height: 1.3; white-space: nowrap; }
.primary { color: #fffef8; background: var(--green); border: 1px solid var(--green); }
button.primary:not(:disabled):hover { background: #39694f; }
.secondary { border: 1px solid #b9c9b0; color: #3c5b34; background: #f9fbf5; }
.primary-action { display: flex; align-items: center; gap: 18px; }
.action-status { font-size: 12px; color: #8b642e; }
.requirements-action>span { color: #4d6d43; font-size: 12px; display: flex; align-items: center; gap: 8px; }
.proposal { padding: 16px; margin: 0 0 15px 25px; background: #f0f3e9; border-left: 2px solid #759067; border-radius: 0 5px 5px 0; }
.proposal>strong { font-size: 13px; display: block; margin-bottom: 15px; }
.proposal>div { display: flex; align-items: start; justify-content: space-between; gap: 14px; font-size: 11px; line-height: 1.5; margin-top: 10px; }
.proposal b { font-weight: 500; white-space: nowrap; }
.proposal .proposal-total { border-top: 1px solid #d7e0ce; padding-top: 10px; color: #36582e; }
.conflict-label { position: absolute; top: 25px; right: 25px; display: flex; align-items: start; gap: 10px; border: 1px solid #dfc2aa; border-radius: 6px; background: #fff9f0f5; padding: 14px 17px; box-shadow: 0 3px 16px #543a2010; }
.conflict-dot { height: 7px; width: 7px; border-radius: 50%; background: #b86b42; margin-top: 4px; }
.conflict-label b { display: block; font-size: 13px; color: #934622; }
.conflict-label>div>span { font-size: 13px; display: block; margin-top: 7px; color: #765039; }
.conflict-label small { font-size: 10px; color: #8c735e; }
.image-view { position: absolute; inset: 0; background: #eeece5; }
.image-view>img { width: 100%; height: 100%; display: block; object-fit: contain; }
.image-switch { display: flex; padding: 4px; background: #fffefbf0; box-shadow: 0 2px 15px #263a3112; border: 1px solid #d4ddcb; border-radius: 7px; position: absolute; bottom: 22px; left: 50%; transform: translateX(-50%); gap: 3px; }
.image-switch button { font-size: 12px; padding: 8px 15px; white-space: nowrap; border-radius: 4px; color: #6d7966; }
.image-switch button.active { background: var(--green); color: white; }
.tag { display: inline-flex; align-items: center; border: 1px solid #d8e0d0; color: #64765a; border-radius: 4px; padding: 5px 8px; font-size: 11px; line-height: 1.2; white-space: nowrap; }
.tag.positive { color: #3d6837; background: #e9f0e1; border-color: #c6d9b8; }
.review-customer-content { display: flex; flex-direction: column; flex: 1; min-height: 0; overflow: auto; }
.review-result { padding: 32px 38px 25px; background: #fbfaf6; flex-shrink: 0; }
.review-person { display: flex; align-items: center; gap: 12px; }
.person-avatar { width: 37px; height: 37px; border-radius: 50%; color: #486641; background: #e8eddf; font-size: 11px; font-weight: 600; display: grid; place-items: center; }
.review-person strong { font-size: 13px; display: block; font-weight: 600; }
.review-person>div>span { font-size: 11px; color: #6c7765; display: block; margin-top: 4px; }
.review-person time { margin-left: auto; font-size: 11px; color: #6c7765; }
.review-conclusion { display: flex; gap: 10px; align-items: center; margin: 24px 0 11px; }
.review-conclusion h2 { font-size: 23px; letter-spacing: -.04em; }
.approval-icon { height: 24px; width: 24px; display: grid; place-items: center; border-radius: 50%; color: #356432; background: #e3edda; }
.approval-icon svg { width: 15px; height: 15px; }
.review-conclusion .tag { margin-left: 5px; }
.review-summary { font-size: 13px; color: #50624b; }
.review-opinion { margin: 21px 0 18px; border-left: 2px solid #c0d0b6; padding-left: 15px; }
.review-opinion>span { font-size: 11px; color: #637959; }
.review-opinion p { font-size: 14px; line-height: 1.55; margin-top: 6px; max-width: 750px; }
.configuration-row { display: flex; align-items: center; gap: 12px; font-size: 12px; }
.review-links { display: flex; gap: 23px; align-items: center; margin-top: 21px; }
.review-image { flex: 1; min-height: 170px; background: #eeece5; position: relative; overflow: hidden; }
.review-image img { width: 100%; height: 100%; object-fit: contain; display: block; position: absolute; }
.waiting-review { padding: 46px 38px 34px; }
.waiting-icon { width: 34px; height: 34px; background: #efece1; color: #8c794e; border-radius: 50%; display: grid; place-items: center; margin-bottom: 20px; }
.waiting-review h2 { font-size: 22px; margin-bottom: 12px; }
.waiting-review p { color: #607057; font-size: 13px; margin-top: 8px; }
.workspace.designer-mode { grid-template-columns: 1fr; }
.designer-workspace { display: flex; flex-direction: column; flex: 1; min-height: 0; padding: 24px 30px; }
.designer-heading { display: flex; justify-content: space-between; align-items: center; padding-bottom: 22px; }
.designer-heading>div:last-child { display: flex; align-items: center; gap: 20px; }
.designer-grid { flex: 1; min-height: 0; display: grid; grid-template-columns: 440px minmax(0,1fr); gap: 24px; }
.designer-review { background: #fffefb; border: 1px solid #dbe2d3; border-radius: 6px; padding: 24px; overflow: auto; }
.section-heading { display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.section-heading h2 { font-size: 15px; }
.review-state { margin: 18px 0; }
.review-check { border-top: 1px solid var(--line); padding: 16px 0; }
.review-check summary { cursor: pointer; font-size: 13px; font-weight: 550; list-style: none; display: flex; align-items: center; gap: 10px; }
.review-check summary::after { content: '+'; font-weight: 400; margin-left: auto; color: #78886d; }
.review-check[open] summary::after { content: '−'; }
.check-icon { width: 23px; height: 23px; background: #edf2e6; color: #577647; border-radius: 50%; font-size: 10px; display: grid; place-items: center; }
.review-check p { font-size: 12px; color: #586e4c; padding: 13px 0 0 33px; }
.review-check .configuration-row { flex-wrap: wrap; margin: 14px 0 0 33px; gap: 8px; font-size: 11px; }
.designer-canvas { min-height: 0; display: flex; border: 1px solid #dbe2d3; border-radius: 6px; overflow: hidden; }
.order-workspace { height: 100%; display: flex; flex-direction: column; padding: 0 24px 24px; min-height: 0; }
.order-header { min-height: 84px; display: flex; justify-content: space-between; align-items: center; gap: 20px; flex-shrink: 0; }
.order-header>div { display: flex; align-items: center; gap: 15px; }
.order-header h1 { font-size: 20px; }
.order-grid { display: grid; grid-template-columns: minmax(0,1fr) 420px; gap: 20px; flex: 1; min-height: 0; }
.order-document { display: flex; flex-direction: column; min-height: 0; background: #fffefb; border: 1px solid #d8e1cf; border-radius: 5px; overflow: hidden; }
.document-heading { padding: 24px 26px 14px; display: flex; align-items: center; justify-content: space-between; }
.document-heading h2 { font-size: 19px; }
.document-type { color: #708567; border: 1px solid #b8c9ac; padding: 5px 7px; border-radius: 3px; font-size: 11px; }
.document-meta { display: flex; gap: 35px; padding: 0 26px 20px; font-size: 11px; color: #6e7d65; }
.document-meta b { font-weight: 500; color: #3f5536; display: block; margin-top: 5px; font-size: 12px; }
.oc-scroll { flex: 1; min-height: 0; overflow: auto; scrollbar-width: thin; }
.oc-table { border-collapse: collapse; width: 100%; table-layout: fixed; font-size: 12px; text-align: left; }
.oc-table thead { position: sticky; top: 0; z-index: 1; background: #f6f8f1; }
.oc-table th { padding: 13px 14px; font-size: 11px; font-weight: 500; color: #66785a; border-top: 1px solid #dfe6d6; border-bottom: 1px solid #dfe6d6; }
.oc-table th:first-child { width: 12%; padding-left: 26px; }
.oc-table th:nth-child(2) { width: 29%; }
.oc-table th:nth-child(3) { width: 7%; }
.oc-table th:nth-child(4) { width: 29%; }
.oc-table th:nth-child(5) { width: 23%; }
.oc-table td { padding: 15px 14px; border-bottom: 1px solid #e7ebdf; vertical-align: middle; overflow-wrap: anywhere; }
.oc-table td:first-child { padding-left: 26px; }
.oc-table tr.selected { background: #e8f0df; box-shadow: inset 3px 0 #568247; }
.oc-table td small { display: block; color: #697e5b; font-size: 10px; margin-top: 6px; line-height: 1.35; }
.position-button { font-size: 13px; font-weight: 600; padding: 3px 0; }
.model-button { padding: 3px 0; font-family: ui-monospace,SFMono-Regular,Consolas,monospace; font-size: 12px; text-align: left; }
.package-link { color: #3d6834; padding: 3px 0; text-decoration: underline; text-underline-offset: 4px; text-decoration-color: #a0b891; font-family: ui-monospace,SFMono-Regular,Consolas,monospace; font-size: 11px; text-align: left; }
.finish-cell { font-size: 12px; }
.order-side { display: flex; flex-direction: column; min-height: 0; gap: 14px; overflow-y: auto; scrollbar-width: thin; }
.order-kitchen { height: 260px; flex-shrink: 0; display: flex; border: 1px solid #d9e1d1; border-radius: 5px; overflow: hidden; }
.canvas-area.mini .canvas-toolbar { padding: 0 13px; height: 45px; gap: 9px; }
.mini .canvas-tools { gap: 2px; }
.mini .view-switch button { padding: 4px 8px; font-size: 11px; }
.mini .icon-button { padding: 5px; }
.selection-empty { padding: 13px 16px; color: #667a5c; font-size: 12px; }
.selected-cabinet { background: #edf2e6; border-radius: 5px; padding: 16px 18px; flex-shrink: 0; }
.selected-cabinet>div:first-child { display: flex; align-items: center; gap: 10px; font-size: 12px; }
.field-label { color: #6a7c5e; font-size: 11px; }
.selected-cabinet strong { font-size: 17px; }
.selected-cabinet>div>span:last-child { margin-left: auto; color: #5a714d; }
dl { margin: 0; }
dt, dd { margin: 0; }
.selected-cabinet dl { margin-top: 12px; }
.selected-cabinet dl>div { display: flex; align-items: center; gap: 20px; justify-content: space-between; margin-top: 5px; }
.selected-cabinet dt { font-size: 11px; color: #68805a; }
.selected-cabinet dd { font-family: ui-monospace,SFMono-Regular,Consolas,monospace; font-size: 12px; }
.selected-cabinet .secondary { margin-top: 13px; padding: 8px 12px; font-size: 12px; }
.delivery-events { padding: 4px 0 12px; }
.delivery-events .section-heading { padding: 0 4px 13px; }
.quiet-label { font-size: 10px; color: #738268; }
.event-list { border-top: 1px solid var(--line); }
.event-button { display: flex; gap: 9px; align-items: center; width: 100%; text-align: left; padding: 13px 4px; border-bottom: 1px solid var(--line); font-size: 12px; }
.event-button.selected { color: #365d2c; background: #ecf2e5; }
.event-number { width: 20px; height: 20px; color: #849577; display: grid; place-items: center; }
.event-number svg { width: 14px; height: 14px; }
.event-button time { margin-left: auto; color: #6d7e62; font-size: 10px; }
.event-chevron { padding: 0 6px; color: #6a7d5e; }
.event-detail { padding: 15px 15px 10px; background: #edf2e6; border-bottom: 1px solid #d5e0ca; }
.event-detail>strong { font-size: 11px; color: #4a693e; }
.event-detail p { font-size: 12px; margin: 9px 0; }
.event-detail>span { font-size: 10px; color: #6a815d; }
.event-detail>div { margin-top: 6px; }
.event-detail .secondary { margin-top: 12px; font-size: 11px; padding: 9px 13px; }
.drawer { position: fixed; top: 64px; bottom: 90px; right: 0; width: 390px; background: #fffefb; border-left: 1px solid #cbd9c0; box-shadow: -10px 0 36px #263a3116; z-index: 15; display: flex; flex-direction: column; min-height: 0; }
.drawer-header { display: flex; align-items: center; justify-content: space-between; padding: 18px 23px; border-bottom: 1px solid var(--line); flex-shrink: 0; }
.drawer-header h2 { font-size: 16px; }
.drawer-header h2>span { font-weight: 400; font-size: 12px; color: #7a8a6e; margin-left: 6px; }
.drawer-header .icon-button { padding: 5px; }
.module-list { flex: 1; min-height: 0; overflow-y: auto; scrollbar-width: thin; }
.module-item { width: 100%; display: flex; align-items: center; gap: 13px; padding: 15px 23px; border-bottom: 1px solid #e5ebdf; text-align: left; }
.module-pos { width: 40px; flex-shrink: 0; font-size: 11px; color: #637a56; }
.module-item b { font-size: 12px; display: block; font-weight: 500; }
.module-item small { display: block; font-size: 10px; margin-top: 6px; color: #6d805e; font-family: ui-monospace,SFMono-Regular,Consolas,monospace; }
.module-qty { margin-left: auto; font-size: 12px; color: #536e45; }
.module-item.selected { background: #e8f0df; box-shadow: inset 3px 0 #577f49; }
.module-detail { padding: 18px 23px; border-top: 1px solid #cddac2; background: #f5f8ef; flex-shrink: 0; }
.module-detail h3 { font-size: 13px; }
.module-detail .section-heading>span { font-size: 11px; color: #6b7e60; }
.module-detail dl { margin-top: 15px; }
.module-detail dl>div { display: flex; justify-content: space-between; font-size: 12px; gap: 10px; }
.module-detail dt { color: #6c7e60; }
.module-lighting { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; margin-top: 17px; }
.module-lighting>span:first-child { font-size: 12px; }
.module-lighting>.tag { margin-left: auto; font-size: 10px; }
.module-lighting .text-button { font-size: 11px; }
.drawer-content { overflow-y: auto; min-height: 0; padding: 23px; font-size: 13px; }
.drawer-content h3 { font-size: 13px; margin: 20px 0 10px; }
.drawer-content>p { font-size: 13px; color: #516849; }
.drawer-review-person { display: flex; flex-direction: column; gap: 8px; padding: 0 0 18px; border-bottom: 1px solid var(--line); }
.drawer-review-person>strong { font-size: 14px; }
.drawer-review-person>span { color: #6c805e; font-size: 11px; }
.record-section { border-bottom: 1px solid var(--line); padding: 17px 0; }
.record-section h3 { display: flex; gap: 10px; align-items: center; margin: 0; font-size: 12px; }
.record-section h3 svg { width: 15px; height: 15px; color: #4d7440; }
.record-section p { font-size: 12px; margin: 10px 0 0 25px; color: #536c48; }
.specifications h3 { font-size: 15px; margin-top: 0; }
.specifications dl { margin-top: 25px; }
.specifications dl>div, .fee-list>div { display: flex; align-items: start; justify-content: space-between; gap: 20px; border-bottom: 1px solid #e3e9db; padding: 14px 0; font-size: 12px; line-height: 1.4; }
.specifications dt { color: #6b7e60; }
.specifications dd { text-align: right; font-weight: 500; }
.specifications p { font-size: 12px; color: #647b58; margin-top: 24px; }
.quote-context { display: flex; align-items: center; gap: 12px; font-size: 12px; color: #627957; }
.fee-list { margin-top: 20px; }
.fee-list dd { white-space: nowrap; }
.fee-list .fee-total { font-size: 14px; font-weight: 600; border-bottom: 0; }
.fee-total dt>span { display: block; margin-top: 6px; border: 0; padding: 0; }
#toast { position: fixed; bottom: 108px; left: 50%; transform: translate(-50%,8px); color: #fffef6; background: #294b36; border-radius: 6px; padding: 12px 18px; box-shadow: 0 3px 20px #203a1d26; font-size: 12px; line-height: 1.5; opacity: 0; pointer-events: none; z-index: 80; max-width: 540px; transition: opacity .2s, transform .2s; }
#toast.visible { opacity: 1; transform: translate(-50%,0); }
dialog { padding: 22px; border: 1px solid #cad9bd; border-radius: 7px; max-height: 92vh; width: min(1100px,88vw); color: var(--ink); background: #fffefb; }
dialog::backdrop { background: #17291dcc; backdrop-filter: blur(3px); }
.modal-header { display: flex; align-items: center; justify-content: space-between; gap: 25px; margin-bottom: 20px; }
.modal-header h2 { font-size: 16px; }
dialog>img { display: block; width: 100%; max-height: 75vh; object-fit: contain; }
dialog>iframe { width: 100%; height: 70vh; border: 0; }
dialog>p { font-size: 12px; color: #657b59; margin-top: 15px; }
::-webkit-scrollbar { width: 5px; height: 5px; }
::-webkit-scrollbar-thumb { background: #becbb1; border-radius: 5px; }
@media(min-width:1700px) {
  .project-title { width: 292px; }
  .app-header { gap: 30px; }
  .step-tab { padding: 0 23px; font-size: 14px; }
  .step-tab.active::after { left: 23px; right: 23px; }
  .header-actions { gap: 26px; }
  .canvas-toolbar { padding: 0 30px; height: 60px; }
  .review-customer-content { flex-direction: row; }
  .review-result { width: 510px; padding: 40px 34px; }
  .review-image { flex: 1; }
  .review-person { flex-wrap: wrap; }
  .review-person time { margin-left: 49px; flex-basis: 100%; }
  .review-conclusion { margin-top: 35px; }
  .review-opinion { margin-top: 28px; }
  .configuration-row { flex-wrap: wrap; }
  .order-workspace { padding: 0 30px 28px; }
  .order-grid { grid-template-columns: minmax(0,1fr) 490px; gap: 26px; }
  .order-kitchen { height: 300px; }
  .order-header { min-height: 91px; }
  .order-header h1 { font-size: 22px; }
  .oc-table { font-size: 14px; }
  .oc-table td { padding: 19px 20px; }
  .oc-table th { padding: 15px 20px; font-size: 12px; }
  .model-button { font-size: 14px; }
  .position-button { font-size: 14px; }
  .package-link { font-size: 12px; }
  .oc-table td small { font-size: 11px; }
  .finish-cell { font-size: 14px; }
  .event-button { padding: 14px 5px; font-size: 13px; }
  .event-button time { font-size: 11px; }
  .document-meta { font-size: 12px; gap: 50px; }
  .document-meta b { font-size: 14px; }
}
@media(max-width:1250px) {
  .app-header { padding: 0 18px; gap: 10px; }
  .project-title { width: 200px; font-size: 14px; }
  .step-tab { font-size: 11px; padding: 0 10px; }
  .header-actions { gap: 10px; }
  .concept-label { font-size: 10px; }
  .workspace { grid-template-columns: 310px minmax(0,1fr); }
  .canvas-toolbar { padding: 0 17px; gap: 10px; }
  .canvas-tools { gap: 5px; }
  .action-bar { padding: 15px 20px; }
  .review-result { padding: 25px 28px 20px; }
  .review-person time { font-size: 10px; }
  .configuration-row { gap: 9px; font-size: 11px; }
  .order-workspace { padding: 0 18px 18px; }
  .order-grid { grid-template-columns: minmax(0,1fr) 360px; gap: 16px; }
  .oc-table td { padding: 14px 10px; }
  .oc-table th { padding: 12px 10px; font-size: 10px; }
  .oc-table td:first-child,.oc-table th:first-child { padding-left: 17px; }
  .model-button { font-size: 10px; }
  .package-link { font-size: 10px; }
  .finish-cell { font-size: 11px; }
  .document-meta { padding-left: 17px; gap: 25px; }
  .document-heading { padding-left: 17px; }
  .designer-grid { grid-template-columns: 390px minmax(0,1fr); }
  .drawer { width: 360px; }
}
@media(max-height:780px) {
  .conversation-heading { padding-top: 15px; padding-bottom: 12px; }
  .file-thumbnails { padding-top: 6px; }
  .file-thumbnail img,.file-icon { height: 47px; }
  .file-note { margin-top: 6px; font-size: 10px; }
  .chat-messages { padding-top: 18px; }
  .composer { margin-bottom: 14px; }
  textarea { height: 65px; }
  .review-result { padding-top: 23px; padding-bottom: 18px; }
  .review-conclusion { margin-top: 19px; }
  .review-opinion { margin: 15px 0; }
  .review-links { margin-top: 15px; }
  .order-header { min-height: 70px; }
  .order-kitchen { height: 220px; }
}
@media(max-width:980px) {
  #app { min-height: 760px; }
  .app-header { gap: 8px; }
  .project-title { width: auto; }
  .project-mark { display: none; }
  .concept-label { display: none; }
  .step-tab { font-size: 10px; padding: 0 7px; }
  .demo-trigger { font-size: 11px; padding: 7px; }
  .workspace { grid-template-columns: 290px minmax(0,1fr); }
  .conversation-heading { padding-left: 18px; }
  .project-files { padding-left: 18px; padding-right: 18px; }
  .chat-messages { padding-left: 17px; padding-right: 17px; }
  .message { font-size: 13px; }
  .canvas-toolbar { padding: 0 12px; gap: 7px; }
  .canvas-tools { gap: 2px; }
  .toolbar-button { font-size: 11px; padding: 7px; }
  .icon-button { padding: 5px; }
  .view-switch button { padding: 5px 9px; }
  .version-tag { font-size: 11px; }
  .primary { padding: 11px 14px; font-size: 12px; }
  .price-block>strong { font-size: 22px; }
  .plan-board { padding: 20px; }
  .plan-board>img { width: 100%; }
  .review-result { padding: 23px; }
  .review-person time { flex-basis: 100%; margin-left: 49px; }
  .review-person { flex-wrap: wrap; }
  .review-conclusion h2 { font-size: 20px; }
  .configuration-row { flex-wrap: wrap; }
  .review-links { gap: 15px; }
  .order-grid { grid-template-columns: minmax(0,1fr) 310px; gap: 12px; }
  .order-header h1 { font-size: 16px; }
  .order-header .tag { font-size: 10px; }
  .order-header>div { gap: 10px; }
  .order-header .secondary,.order-header .primary { font-size: 11px; padding: 10px; }
  .oc-table th:nth-child(4),.oc-table td:nth-child(4) { display: none; }
  .oc-table th:nth-child(2) { width: 37%; }
  .oc-table th:nth-child(5) { width: 31%; }
  .document-meta>span:last-child { display: none; }
  .designer-grid { grid-template-columns: 330px minmax(0,1fr); }
  .designer-workspace { padding: 20px; }
}
/* Fit the entire plan inside its canvas; chat keeps the latest response in view. */
.plan-board { position: relative; display: block; }
.plan-board>img { position: absolute; left: 30px; top: 30px; width: calc(100% - 60px); height: calc(100% - 60px); max-height: none; max-width: none; object-fit: contain; border: 0; background: transparent; box-shadow: none; }
.chat-messages { scroll-behavior: auto; }

/* Directed presentation: the shell stays fixed as work changes hands. */
#app.demo-mode { grid-template-rows:64px minmax(0,1fr) 78px; }
.project-title { width:240px; }
.project-title>div { display:flex;flex-direction:column;gap:3px; }
.current-role { font-size:11px;line-height:1.2;font-weight:450;color:#65746b; }
#presenter-controls { min-width:0;z-index:25; }
.presenter-footer { height:78px;display:flex;align-items:center;justify-content:space-between;gap:20px;background:#fffefb;border-top:1px solid #dfe3d9;padding:0 26px; }
.presentation-controls { display:flex;align-items:center;gap:12px;margin-left:auto; }
.presentation-controls>button { min-height:42px;border-radius:5px;font-size:13px;white-space:nowrap; }
.control-previous { padding:10px 14px; }
.control-play { width:102px;border:1px solid #d2dacd; }
.control-next { width:126px; }
.scene-progress { width:64px;font-variant-numeric:tabular-nums;text-align:center;font-size:14px;font-weight:650; }
.scene-progress>span { color:#6e776f;font-weight:400; }
.presentation-price { display:flex;align-items:center;gap:14px; }
.presentation-price>span:first-child { font-size:11px;line-height:1.6; }
.presentation-price small { display:block;font-size:10px;color:#6e7769; }
.presentation-price>strong { font-size:22px;letter-spacing:-.035em; }
.playback-error { max-width:280px;font-size:12px;color:#a64631; }
.demo-mode .drawer { bottom:78px; }
.presentation { height:100%;overflow:hidden;min-height:0; }
.requirements-scene { height:100%;display:grid;grid-template-columns:minmax(0,1fr) 350px; }
.matching-plan { min-height:0;display:flex;flex-direction:column;background:#f2f2eb; }
.matching-plan>svg { flex:1;min-height:0;width:100%;padding:24px; }
.matching-plan .canvas-toolbar { justify-content:space-between; }
.requirements-side { display:flex;flex-direction:column;min-height:0;border-left:1px solid #dce2d6;background:#fcfbf7; }
.scene-brief { min-height:0;overflow:auto;padding:30px 28px;background:#fcfbf7; }
.assistant-label { display:flex;align-items:center;gap:9px;font-size:12px;font-weight:600;color:#6d5986;margin-bottom:30px; }
.assistant-label>span { width:25px;height:25px;background:#eee9f5;border-radius:7px;display:grid;place-items:center;font-size:23px; }
.presentation .message-mark { color:#8263a0; }
.presentation .message.assistant { color:#4f4261; }
.presentation .message { font-size:15px;line-height:1.65;margin-bottom:24px; }
.presentation .message.customer { margin-left:0; }
.preparation-request { font-size:17px;line-height:1.7; }
.earlier-messages { font-size:11px;color:#68756b;margin-bottom:22px; }
.earlier-messages summary { cursor:pointer;padding:6px 0; }
.earlier-messages[open] .message { font-size:12px;margin:12px 0; }
.reference-tile { margin:auto 28px 28px;padding:0;position:relative;border-radius:5px;overflow:hidden;text-align:left;flex-shrink:0; }
.reference-tile img { display:block;width:100%;height:148px;object-fit:cover; }
.reference-tile>span { position:absolute;bottom:10px;left:10px;background:#fffefbea;padding:5px 8px;border-radius:3px;font-size:11px; }
.design-scene { height:100%;display:grid;grid-template-columns:minmax(0,1fr) 330px; }
.design-scene>.scene-brief,.design-scene>.change-modules { border-left:1px solid #dfe3d9; }
.presentation-model { min-height:0;position:relative;overflow:hidden;background:#f0ede6; }
.presentation-tools { position:absolute;left:24px;top:20px;z-index:4;display:flex;gap:3px;padding:4px;border:1px solid #d6dccf;border-radius:6px;background:#fffefbf2;box-shadow:0 2px 12px #2b39280a; }
.presentation-tools button { font-size:12px;padding:7px 13px;border-radius:3px; }
.presentation-tools .active { background:#e7ede0;color:#285342;font-weight:650; }
.clearance-overlay { position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:3; }
.change-proposal { border-top:1px solid #d9d3e3;padding-top:20px;margin-top:15px; }
.proposal-label { font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:#79618f; }
.change-proposal h2 { font-size:15px;margin:10px 0 18px; }
.change-proposal>div { display:flex;justify-content:space-between;gap:14px;font-size:12px;line-height:1.5;margin-top:14px; }
.change-proposal b { font-weight:500;white-space:nowrap; }
.change-proposal .change-total { border-top:1px solid #ded8e5;padding-top:15px;align-items:center; }
.change-proposal strong { white-space:nowrap; }
.change-modules { padding:30px 24px;background:#fcfbf7;overflow:auto; }
.change-modules .section-heading { margin-bottom:24px; }
.change-module { display:flex;flex-direction:column;gap:9px;padding:17px;width:100%;text-align:left;border:1px solid #dde3d7;border-radius:5px;margin-bottom:14px; }
.change-module.selected { border-color:#65896e;background:#e7efdf;box-shadow:inset 3px 0 #285342; }
.change-module>span { font-size:11px;color:#66785b; }
.change-module>strong { font-size:14px; }
.change-module>small { font-size:11px;font-family:ui-monospace,monospace; }
.resolved-status { border-top:1px solid #dce2d4;margin-top:24px;padding:20px 0;display:flex;flex-wrap:wrap;gap:12px;font-size:13px;color:#34633b; }
.resolved-status b { margin-left:auto; }
.immersive-scene { height:100%;position:relative;background:#f0ede6; }
.presentation-image { position:absolute;inset:0; }
.presentation-image>img { display:block;width:100%;height:100%;object-fit:contain; }
.image-version { position:absolute;left:28px;top:24px;display:flex;align-items:center;gap:12px;font-size:13px; }
.image-version .tag { background:#fffefb; }
.decision-overlay { position:absolute;top:30px;left:30px;width:320px;padding:26px;background:#fffefbf5;border:1px solid #dce2d3;border-radius:6px;box-shadow:0 8px 28px #34442c0a; }
.decision-overlay h2 { font-size:21px;letter-spacing:-.035em;margin:17px 0; }
.decision-overlay p { font-size:13px;margin:14px 0; }
.decision-status { margin-top:20px;border-top:1px solid #dfe5d6;padding-top:16px;color:#385c3c;font-size:12px;line-height:1.6; }
.review-byline { font-size:12px!important; }
.review-byline time { display:block;font-size:10px;color:#6b7766;margin-top:4px; }
.handoff-order { display:block;font-size:23px;margin-top:18px;letter-spacing:-.03em; }
.professional-scene { height:100%;display:grid;grid-template-columns:340px minmax(0,1fr);background:#f5f7fa; }
.professional-record { background:#fff;border-right:1px solid #dce3ea;padding:27px 26px;overflow:auto; }
.record-date { font-size:11px;color:#526d86;margin-bottom:30px;display:flex;flex-direction:column;gap:6px; }
.record-date time { color:#65727c;font-size:10px; }
.review-task-list { margin:24px 0; }
.review-task { display:flex;align-items:center;gap:10px;padding:14px 10px;font-size:12px;border-bottom:1px solid #e1e6eb;color:#687684; }
.review-task b { font-weight:450; }
.review-task.active { background:#eaf0f7;color:#3e607e;border-radius:4px; }
.review-task.checked>span { color:#3b6b40; }
.review-task>span { width:14px;flex-shrink:0; }
.review-focus { display:flex;flex-direction:column;min-height:0; }
.review-focus>.presentation-model { flex:1; }
.review-plan { flex:1;min-height:0;display:flex;align-items:center;justify-content:center;padding:26px; }
.review-plan>svg { width:100%;height:100%; }
.review-current-note { font-size:13px;line-height:1.7;color:#516477; }
.light-check h3 { font-size:14px;margin-bottom:10px; }
.light-check p { font-size:12px;color:#536777; }
.light-check dl { margin:18px 0; }
.light-check dl>div { display:flex;justify-content:space-between;font-size:11px;gap:12px;padding:8px 0; }
.light-check dt { color:#647788; }
.light-check dd { text-align:right; }
.light-check .text-button { display:block;margin-top:10px; }
.approval-stamp { display:inline-flex;padding:10px 13px;border:1px solid #b8d1b4;border-radius:4px;color:#3f6d43;font-size:12px;margin-top:24px; }
.studio-scene { height:100%;padding:0 25px 24px;display:flex;flex-direction:column;background:#f9f9f6; }
.handoff-strip { height:95px;flex-shrink:0;display:flex;align-items:center;gap:28px;color:#778075; }
.handoff-strip>div { display:grid;grid-template-columns:18px auto;column-gap:7px;row-gap:5px; }
.handoff-strip b { font-size:12px;font-weight:500; }
.handoff-strip small { font-size:10px;grid-column:2; }
.handoff-strip .done { color:#7e652c; }
.handoff-arrow { font-size:20px;color:#a39471; }
.studio-grid { flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:20px; }
.studio-grid .document-heading { gap:14px; }
.studio-grid .document-heading h2 { margin-right:auto; }
.studio-preview { display:flex;flex-direction:column;min-height:0; }
.studio-preview>.presentation-model { height:340px;flex-shrink:0;border:1px solid #d9dfd3;border-radius:5px; }
.linked-object { padding:24px;background:#f0eee5;margin-top:18px;border-radius:5px; }
.linked-object>span { font-size:11px;color:#7e6a3c; }
.linked-object h2 { margin:10px 0;font-size:17px; }
.linked-object p { font-size:13px;font-family:ui-monospace,monospace;margin-bottom:18px; }
.factory-scene { height:100%;display:grid;grid-template-columns:minmax(0,1fr) 350px;background:#252c30;color:#f2f3ed; }
.manufacturing-object { min-height:0;position:relative; }
.manufacturing-object>.presentation-model { height:100%;background:#252c30; }
.manufacturing-status { display:flex;gap:9px;align-items:center;position:absolute;left:30px;top:25px;font-size:13px;color:#e4ebdf; }
.status-dot { width:7px;height:7px;border-radius:50%;background:#a5bf94; }
.factory-traveller { padding:34px 28px;background:#2c3437;border-left:1px solid #465052;overflow:auto; }
.document-overline { font-size:11px;color:#bdc6c4; }
.factory-traveller h2 { font-size:25px;margin:28px 0 7px; }
.factory-traveller>p { font-size:14px;color:#dae1dc; }
.factory-traveller dl { margin:30px 0; }
.factory-traveller dl>div { display:flex;justify-content:space-between;gap:20px;font-size:11px;line-height:1.6;padding:11px 0;border-bottom:1px solid #465052; }
.factory-traveller dt { color:#b6c1bc; }
.factory-traveller dd { text-align:right; }
.package-ticket { padding:22px;background:#dfd1ac;color:#30372f;border-radius:4px; }
.package-ticket>span { display:block;font-size:10px;letter-spacing:.04em; }
.package-ticket>strong { display:block;font-family:ui-monospace,monospace;font-size:17px;margin:11px 0; }
.package-ticket>small { font-size:10px; }
.barcode { height:35px;width:82%;margin:15px 0;background:repeating-linear-gradient(90deg,#414737 0px,#414737 2px,transparent 2px,transparent 5px,#414737 5px,#414737 6px,transparent 6px,transparent 10px); }
.factory-event { display:flex;flex-direction:column;gap:10px;margin-top:28px;font-size:12px; }
.factory-event time,.factory-event small { font-size:10px;color:#c3ceca;line-height:1.5; }
.logistics-scene { padding:35px 50px;height:100%;background:#f5f6f2;overflow:auto; }
.shipment-heading { display:flex;align-items:center;gap:15px; }
.shipment-heading>div { margin-right:auto; }
.shipment-heading>div>span { color:#6b7869;font-size:11px; }
.shipment-heading h2 { margin-top:8px;font-size:24px;font-family:ui-monospace,monospace; }
.route-map { margin:20px auto 0;width:100%;max-width:1100px; }
.route-map svg { width:100%;height:270px; }
.route-land { fill:#e4e8de; }
.route-track { fill:none;stroke:#d0d9c9;stroke-width:4;stroke-dasharray:6 6; }
.route-progress { fill:none;stroke:#45694e;stroke-width:4;stroke-dasharray:800; }
.route-0 { stroke-dashoffset:800; }
.route-1 { stroke-dashoffset:400; }
.route-2 { stroke-dashoffset:0; }
.route-map circle { fill:#f8f9f5;stroke:#46674d;stroke-width:3; }
.route-nodes { display:grid;grid-template-columns:repeat(3,1fr);text-align:center;margin-top:-15px; }
.route-nodes>div { color:#72806d; }
.route-nodes .arrived { color:#2e593d; }
.route-nodes span { font-size:11px; }
.route-nodes h3 { font-size:15px;margin:8px 0; }
.route-nodes time { font-size:11px; }
.shipment-bottom { display:grid;grid-template-columns:1fr 1fr;gap:40px;margin-top:40px;border-top:1px solid #dce3d3;padding-top:28px; }
.shipment-package { display:flex;align-items:center;gap:22px; }
.package-icon { color:#9d8758;font-size:70px; }
.shipment-package strong { display:block;font-size:16px;font-weight:500; }
.shipment-package div>span { display:block;font-size:12px;margin-top:10px;color:#62705b; }
.shipment-record { display:flex;flex-wrap:wrap;column-gap:20px;row-gap:10px;padding-left:30px;border-left:1px solid #dce3d3; }
.shipment-record>span { font-size:10px;color:#73806c;width:100%; }
.shipment-record>strong { font-size:14px; }
.shipment-record time { font-size:11px;color:#6b7965; }
.shipment-record p { width:100%;font-size:12px;line-height:1.6; }
.shipment-record small { font-size:10px;color:#6b7965; }
.installation-scene { height:100%;position:relative; }
.installation-scene>.presentation-model { height:100%; }
.installation-ticket { position:absolute;left:28px;top:28px;width:300px;background:#fffefbf2;border:1px solid #d8dfd0;padding:24px;border-radius:5px; }
.installation-ticket>span { font-size:11px;color:#718266; }
.installation-ticket h2 { margin:17px 0;font-size:19px; }
.installation-ticket p { font-size:13px; }
.installation-ticket time { display:block;font-size:10px;margin-top:20px;color:#687b5a; }
.completed-project { position:absolute;left:35px;top:28px; }
.completed-project h2 { font-size:22px;margin:16px 0 10px; }
.completed-project p { font-size:12px; }
.completed-project>span:last-child { display:block;font-size:10px;color:#66765c;margin-top:9px; }
@media (max-width:1280px) {
  .project-title{width:170px}.step-tab{padding:0 11px}.header-actions{gap:12px}.app-header{gap:10px;padding:0 18px}
  .design-scene{grid-template-columns:minmax(0,1fr) 300px}.scene-brief{padding:22px}
  .studio-grid{grid-template-columns:minmax(0,1fr) 320px}.studio-preview>.presentation-model{height:290px}
  .professional-scene{grid-template-columns:310px minmax(0,1fr)}.presentation-price{gap:10px}.presentation-price>strong{font-size:20px}
}
@media (max-height:800px) {
  .scene-brief{padding:22px}.presentation .message{font-size:13px;margin-bottom:18px}.assistant-label{margin-bottom:20px}
  .reference-tile img{height:110px}.professional-record{padding:20px}.record-date{margin-bottom:20px}.review-task-list{margin:15px 0}.review-task{padding:11px 8px}.light-check dl{margin:10px 0}
  .factory-traveller{padding:25px}.factory-traveller h2{margin-top:18px}.factory-traveller dl{margin:18px 0}.factory-event{margin-top:18px}
  .route-map svg{height:200px}.shipment-bottom{margin-top:25px;padding-top:20px}.logistics-scene{padding:25px 40px}
}
.environment-stage{position:relative;width:100%;height:100%;overflow:hidden;background:#edeae2;isolation:isolate;container-type:size}
.environment-picture{position:absolute;left:0;top:50%;width:100%;height:auto;max-width:none;aspect-ratio:1672/941;display:block;transform:translateY(-50%);opacity:1;object-fit:contain}
.environment-caption{position:absolute;z-index:5;left:4%;bottom:8%;font:600 clamp(18px,1.65vw,28px)/1.25 Arial,Helvetica,sans-serif;letter-spacing:-.01em;color:#263b31;background:rgba(255,254,249,.92);padding:13px 19px;border-radius:3px;box-shadow:0 3px 20px #1d30291c;opacity:1}
.environment-screen{position:absolute;z-index:3;left:0;top:0;width:100%;height:calc(100cqw * var(--screen-h) / var(--screen-w) * 941 / 1672);border:0;border-radius:0;background:#fbfaf7;transform:translate(calc(var(--screen-x) * 100cqw),calc(50cqh + (var(--screen-y) - .5) * 100cqw * 941 / 1672)) scale(var(--screen-w));transform-origin:0 0;overflow:hidden;box-shadow:none}
.environment-product{width:100%;height:100%;min-height:0;position:relative;background:#fbfaf7;overflow:hidden}
.environment-product>.presentation,.environment-product>.immersive-scene,.environment-product>.product-shell{height:100%;width:100%}
.environment-stage[data-phase=screen] .environment-screen{height:100%;transform:none;animation:environment-enter-screen 1s cubic-bezier(.22,.61,.36,1) both}
.environment-stage[data-phase=screen] .environment-picture{opacity:0;animation:environment-leave-room 1s ease both}
.environment-stage[data-phase=screen] .environment-caption{opacity:0;pointer-events:none;animation:environment-caption-out .35s ease both}
.environment-stage.is-complete .environment-picture{left:0;top:-2.5%;width:32%;height:105%;aspect-ratio:auto;transform:none;object-fit:cover;object-position:left center;opacity:1}
.environment-stage.is-complete .environment-screen{left:32%;top:0;width:68%;height:100%;transform:none;border:0;border-radius:0;box-shadow:none}
.environment-stage.is-complete .environment-caption{left:3%;bottom:7%;font-size:clamp(18px,1.4vw,24px)}
.environment-finale-title{position:absolute;z-index:2;left:3%;top:6%;max-width:26%;margin:0;color:#284b3c;font-size:clamp(34px,3.6vw,64px);font-weight:600;letter-spacing:-.03em;line-height:1.05}
@keyframes environment-enter-screen{from{height:calc(100cqw * var(--screen-h) / var(--screen-w) * 941 / 1672);transform:translate(calc(var(--screen-x) * 100cqw),calc(50cqh + (var(--screen-y) - .5) * 100cqw * 941 / 1672)) scale(var(--screen-w))}to{height:100%;transform:translate(0,0) scale(1)}}
@keyframes environment-leave-room{from{opacity:1;transform:translateY(-50%) scale(1)}to{opacity:0;transform:translateY(-50%) scale(1.035)}}
@keyframes environment-caption-out{from{opacity:1}to{opacity:0}}
@media(prefers-reduced-motion:reduce){.environment-stage[data-phase=screen] .environment-screen,.environment-stage[data-phase=screen] .environment-picture,.environment-stage[data-phase=screen] .environment-caption{animation-duration:.15s}}
.actor-motion-layer{position:absolute;inset:0;z-index:90;pointer-events:none;overflow:visible;opacity:0;isolation:isolate}
.actor-motion-layer.is-visible{opacity:1}
.actor-cursor{position:absolute;left:0;top:0;width:32px;height:38px;transform-origin:0 0;will-change:transform;pointer-events:none}
.actor-pointer{display:block;position:absolute;width:32px;height:38px;left:-4px;top:-3px;filter:drop-shadow(0 2px 2px #1f352b35)}
.actor-pointer svg{width:100%;height:100%;overflow:visible}
.actor-click-ring{position:absolute;left:4px;top:4px;width:42px;height:42px;border:2px solid #4d7960;border-radius:50%;opacity:0;transform:translate(-50%,-50%);box-shadow:0 0 0 7px #689b7b18}
.actor-cursor.kind-type .actor-click-ring{border-color:#7c6696;box-shadow:0 0 0 7px #8874a51c}
.actor-drag-preview{position:absolute;top:22px;left:24px;width:150px;height:124px;display:none}
.actor-cursor.kind-drag .actor-drag-preview{display:block}
.actor-drag-file{position:absolute;inset:0;display:grid;grid-template-rows:82px 1fr;gap:5px;padding:7px;background:#fffefa;border:1px solid #d2d7c8;border-radius:7px;box-shadow:0 7px 25px #203a2e29;transform:translate(calc(var(--file-index)*15px),calc(var(--file-index)*9px)) rotate(calc(var(--file-index)*4deg));z-index:calc(3 - var(--file-index))}
.actor-drag-file img{width:100%;height:82px;object-fit:contain;background:#f3f3ed;border-radius:3px}
.actor-drag-file>span:last-child{font:500 11px/1.2 Arial,Helvetica,sans-serif;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#314337}
.actor-file-symbol{display:grid;place-items:center;background:#f0f1eb;font-size:40px;color:#7b8776}
.actor-motion-layer.is-paused *{animation-play-state:paused!important}
.story-header { justify-content:center; }
.story-header nav { margin:0 auto;flex:1;max-width:850px; }
.story-header .header-actions { margin-left:0;position:absolute;right:24px; }
.story-header nav { padding-right:0; }
.story-presentation { position:relative; }
.story-presentation.is-paused * { animation-play-state:paused!important; }
.product-stage { width:100%;height:100%;position:relative;overflow:hidden; }
.story-presentation button { transition:background .15s,box-shadow .15s; }
.story-presentation .primary { min-height:42px; }
.launch-desktop { height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:28px;background:linear-gradient(140deg,#e5e8dc,#f7f4eb); }
.browser-launch-icon { font-size:90px;color:#486650; }
.intake-window { position:relative;height:calc(100% - 52px);max-width:1180px;margin:26px auto;background:#fffefb;border:1px solid #d9dfd1;border-radius:10px;box-shadow:0 15px 45px #253a2710;overflow:hidden; }
.product-window-bar { height:62px;display:flex;align-items:center;gap:16px;padding:0 24px;border-bottom:1px solid #e0e5d9;background:#fafbf6; }
.window-dots { letter-spacing:5px;color:#a3ad9b;font-size:10px; }
.product-window-bar .secondary { margin-left:auto;padding:8px 17px;font-size:12px; }
.file-count { font-size:11px;color:#687561; }
.intake-grid { height:calc(100% - 62px);display:grid;grid-template-columns:minmax(0,1fr) 390px; }
.intake-files { padding:28px;display:flex;flex-direction:column;min-height:0;background:#f4f5ef; }
.upload-zone { flex:1;min-height:230px;border:1.5px dashed #bdc9b4;border-radius:7px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:15px;position:relative;background:#fafbf7;transition:background .15s,border-color .15s; }
.upload-zone h2 { font-size:22px; }
.upload-zone p { color:#69785e;font-size:13px; }
.upload-symbol { font-size:35px;color:#52704b; }
.upload-zone.drag-over { border-color:#35624a;background:#e1ecda;box-shadow:inset 0 0 0 2px #456d4c; }
.upload-zone.has-files { min-height:128px;flex:0 0 auto;border:none;background:transparent; }
.uploaded-files { display:flex;gap:16px;width:100%; }
.uploaded-card { width:190px;border:1px solid #d7dfcf;border-radius:5px;background:#fff;overflow:hidden;text-align:left;padding:0; }
.uploaded-card img { width:100%;height:100px;object-fit:cover;display:block; }
.uploaded-card span { display:block;font-size:12px;padding:10px 12px 4px; }
.uploaded-card small { display:block;font-size:10px;color:#65745d;padding:0 12px 10px; }
.intake-chat { border-left:1px solid #e0e5d9;display:flex;flex-direction:column;min-height:0;padding:25px; }
.story-conversation { flex:1;min-height:0;overflow:auto; }
.story-conversation .assistant-label { margin-bottom:22px; }
.story-presentation .message { font-size:13px;margin-bottom:17px; }
.story-presentation .message.customer { margin-left:15px; }
.story-presentation .message.assistant { color:#5b496c; }
.story-messages { min-height:25px; }
.story-composer { margin-top:20px;flex-shrink:0;border:1px solid #ccd6c3;border-radius:7px;padding:12px;background:#fffefb; }
.story-composer.focused { box-shadow:0 0 0 3px #738a6024;border-color:#5b8054; }
.story-composer textarea { height:88px;font-size:14px;line-height:1.6;padding:4px; }
.story-composer>div { display:flex;justify-content:flex-end; }
.story-composer .primary { min-height:35px;padding:8px 18px;font-size:12px; }
.intake-chat>.secondary { margin-top:14px; }
.source-plan-view { position:relative;flex:1;min-height:0;margin-top:20px;overflow:hidden;border:1px solid #dde3d6;background:#fff; }
.source-plan-view>img { width:100%;height:100%;object-fit:contain; }
.input-source-label { position:absolute;left:10px;bottom:10px;background:#fffefbe8;font-size:10px;padding:5px 8px; }
.simulated-folder { position:absolute;left:8%;top:18%;width:450px;border:1px solid #c5cfc0;border-radius:9px;box-shadow:0 20px 70px #21372335;background:#fff;z-index:7;overflow:hidden;animation:folder-arrive .3s ease-out; }
.folder-title { padding:17px 20px;background:#eef1e9;border-bottom:1px solid #d8e0d0;display:flex;gap:10px;font-size:14px;align-items:center; }
.folder-title .window-dots { margin-left:auto; }
.folder-file-pair { display:flex;gap:18px;padding:25px; }
.folder-file-pair>div { width:50%;text-align:center;border:2px solid transparent;border-radius:5px;padding:9px; }
.folder-file-pair img { height:105px;width:100%;object-fit:cover;border:1px solid #d9ded3; }
.folder-file-pair b { font-size:11px;font-weight:450;display:block;margin-top:11px;white-space:nowrap; }
.folder-file-pair.selected>div { background:#e1ebd9;border-color:#719161; }
.upload-progress { width:130px;height:4px;background:linear-gradient(90deg,#dce5d5 20%,#5b8050 50%,#dce5d5 80%);background-size:200% 100%;animation:upload-progress .8s linear infinite; }
.upload-zone>strong { font-size:13px; }
@keyframes folder-arrive { from{transform:translateY(15px);opacity:0} to{transform:translateY(0);opacity:1} }
@keyframes upload-progress { to{background-position:-200% 0} }
.generation-product { height:100%;display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:30px;padding:35px; }
.source-plan-sheet { background:white;min-height:0;position:relative;display:flex;align-items:center;justify-content:center;border:1px solid #dce3d3;overflow:hidden; }
.source-plan-sheet>img { width:100%;height:100%;object-fit:contain;padding:20px; }
.source-plan-sheet>span { position:absolute;left:18px;bottom:14px;font-size:11px;background:#fffefb;padding:6px 9px; }
.plan-focus-outline { position:absolute;left:15%;top:11%;width:35%;height:68%;border:2px solid #9c87b5;box-shadow:0 0 0 500px #f7f4fb30;pointer-events:none;animation:understand 1.1s ease-in-out infinite alternate; }
@keyframes understand { from{opacity:.35}to{opacity:1} }
.generation-product>aside { display:flex;flex-direction:column;justify-content:space-between; }
.generation-product .uploaded-files { flex-direction:column; }
.generation-product .uploaded-card { width:100%; }
.generation-product .uploaded-card img { height:150px; }
.generation-summary { padding:24px 0; }
.generation-summary p { font-size:15px;line-height:1.7;margin:20px 0; }
.design-product { height:100%;display:flex;flex-direction:column; }
.design-product-bar { min-height:72px;display:flex;align-items:center;gap:18px;padding:0 25px;background:#fffefb;border-bottom:1px solid #dce3d3; }
.product-tabs { display:flex;gap:4px; }
.product-tabs button { padding:8px 13px;font-size:12px;border-radius:4px; }
.product-tabs button.active { background:#e8eee1;color:#2a5637;font-weight:600; }
.product-price { display:flex;align-items:center;gap:12px; }
.design-product-bar>.product-price { margin-left:auto; }
.product-price>span:first-child { display:flex;flex-direction:column;font-size:11px;gap:4px; }
.product-price small { font-size:10px;color:#66755c; }
.product-price strong { font-size:22px;letter-spacing:-.035em; }
.design-product-main { flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,1fr) 330px; }
.story-model { position:relative;height:100%;min-height:0;background:#f0ede6;overflow:hidden; }
.design-action-panel { padding:25px;border-left:1px solid #dce3d4;display:flex;flex-direction:column;min-height:0;overflow:auto;background:#fbfaf6; }
.design-action-panel .story-conversation { flex:1; }
.design-action-panel .change-proposal>.primary { margin-top:24px;width:100%; }
.changed-modules .section-heading { margin-bottom:25px; }
.story-image { position:relative;height:100%;min-height:0;background:#f0ede6; }
.story-image>img { width:100%;height:100%;object-fit:contain;display:block; }
.render-product { height:100%;display:flex;flex-direction:column; }
.render-product>.story-image { flex:1; }
.render-product-toolbar { height:65px;display:flex;gap:15px;align-items:center;padding:0 28px;background:#fffefb; }
.render-product-toolbar>.product-price { margin-left:auto; }
.detail-product { height:100%;display:grid;grid-template-columns:minmax(0,1fr) 310px; }
.detail-product>aside { background:#fffefb;padding:32px 25px; }
.detail-product h2 { font-size:22px;margin-bottom:15px; }
.detail-product p { font-size:13px;margin:22px 0; }
.handoff-product { height:100%;display:grid;place-items:center;padding:35px;background:#f2f3ed; }
.submission-sheet { max-width:1060px;width:100%;background:#fffefb;border:1px solid #d7dfcd;border-radius:7px;padding:15px 15px 35px;box-shadow:0 12px 45px #3341260c; }
.submitted-project { display:grid;grid-template-columns:45% 1fr;gap:35px;padding:20px 30px; }
.small-design-preview { position:relative;min-height:200px;background:#f0ede6;overflow:hidden; }
.small-design-preview img { width:100%;height:100%;object-fit:contain;position:absolute;inset:0; }
.submitted-project>div:last-child { padding-top:10px; }
.submitted-project h3 { font-size:19px; }
.submitted-project p { font-size:13px;margin:15px 0; }
.submitted-project .product-price { margin:25px 0;flex-wrap:wrap; }
.recipient { display:flex;gap:11px;align-items:center;border-top:1px solid #e1e6d9;padding-top:20px;margin:25px 0; }
.recipient strong,.recipient span { display:block;font-size:12px; }
.recipient>div>span { font-size:11px;color:#6d7a63;margin-top:4px; }
.success-line { display:flex;flex-wrap:wrap;align-items:center;gap:10px;color:#326341;font-size:13px;line-height:1.6;margin:18px 0; }
.success-line time { font-size:11px;color:#6c7b62;margin-left:auto; }
.inbox-product { height:100%;background:#f5f7f7;padding:45px max(35px,calc((100% - 1080px)/2));overflow:auto; }
.inbox-product>header { display:flex;align-items:center;gap:30px;padding-bottom:25px;border-bottom:1px solid #dbe2e4;margin-bottom:25px; }
.inbox-product h2 { font-size:22px; }
.day-marker { font-size:12px;color:#688092;margin-left:auto; }
.inbox-empty { padding:45px 25px;background:#fff;border:1px solid #dce3e6;border-radius:5px;font-size:14px;color:#647480; }
.notification-item { width:100%;display:flex;gap:18px;align-items:center;padding:23px 25px;background:#fff;border:1px solid #d8e1e4;border-radius:5px;text-align:left; }
.notification-item.new { border-left:4px solid #658298;box-shadow:0 4px 18px #3b566111; }
.notification-icon { font-size:23px;color:#5e7c90;width:30px; }
.notification-item>div { display:flex;flex-direction:column;gap:10px; }
.notification-item strong { font-size:16px; }
.notification-item span { font-size:12px;color:#667a88; }
.notification-item>b { margin-left:auto;font-size:12px;font-weight:500; }
.task-preview { display:grid;grid-template-columns:43% 1fr;gap:35px;background:#fff;border:1px solid #dce3e6;border-radius:5px;margin-top:24px;padding:26px; }
.task-preview h3 { font-size:20px;margin:17px 0 12px; }
.task-preview p { font-size:13px;margin-bottom:25px; }
.review-product { height:100%;display:grid;grid-template-columns:300px minmax(0,1fr);background:#f4f6f9; }
.review-record { background:white;border-right:1px solid #dce3ea;padding:28px 22px; }
.review-author { display:flex;align-items:center;gap:12px;margin-bottom:35px; }
.review-author strong { display:block;font-size:14px; }
.review-author>div>span { display:block;font-size:11px;color:#6b8091;margin-top:4px; }
.review-record>.section-heading { margin-bottom:24px; }
.record-time { display:block;font-size:10px;color:#6e8292;margin-top:24px; }
.review-work { min-height:0; }
.plan-check { height:100%;display:flex;flex-direction:column; }
.plan-check>.matching-plan { flex:1;min-height:0;background:#f4f6f9; }
.plan-check-action { height:84px;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:0 30px;background:#fff;border-top:1px solid #dce3ea; }
.plan-check-action p { font-size:13px; }
.review-light-focus { height:100%;display:grid;grid-template-columns:minmax(0,1fr) 310px; }
.spec-check { background:#fff;padding:30px 24px;overflow:auto; }
.spec-check h3 { font-size:16px;margin-bottom:25px; }
.spec-check dl>div { display:flex;justify-content:space-between;gap:15px;font-size:12px;padding:14px 0;border-bottom:1px solid #e1e6eb; }
.spec-check dt { color:#667c8d; }
.spec-check dd { text-align:right; }
.spec-check p { font-size:12px;line-height:1.6;margin:25px 0; }
.spec-check .primary { width:100%;font-size:12px;padding:11px;white-space:normal; }
.scope-review { padding:35px 45px;height:100%;overflow:auto;background:#fff; }
.scope-review h2 { font-size:22px; }
.scope-version { margin:22px 0;display:flex;align-items:center;gap:12px;font-size:13px; }
.scope-review>p { font-size:14px;max-width:750px;line-height:1.8; }
.scope-fees { margin:26px 0;max-width:750px; }
.scope-fees>div { display:flex;justify-content:space-between;border-bottom:1px solid #e2e7e9;padding:11px 0;font-size:12px; }
.review-actions { margin-top:25px; }
.approval-product { height:100%;display:grid;grid-template-columns:minmax(0,1fr) 430px;background:#f7f6f1; }
.approved-plan { position:relative;min-height:0; }
.approved-plan>.small-design-preview { height:100%; }
.approved-plan>.tag { position:absolute;left:25px;top:25px;background:#fff; }
.quote-sheet { padding:40px 32px;background:#fffefb;border-left:1px solid #dde4d4;overflow:auto; }
.quote-author { display:flex;gap:10px;align-items:center; }
.quote-author strong,.quote-author span { display:block;font-size:12px; }
.quote-author>div>span { font-size:10px;color:#6b7a60;margin-top:5px; }
.quote-sheet h2 { font-size:25px;margin:34px 0 15px; }
.quote-sheet p { font-size:13px;line-height:1.7; }
.confirmed-config { margin:24px 0;font-size:12px;color:#426f45; }
.quote-sheet .product-price { flex-wrap:wrap;border-top:1px solid #dfe5d7;border-bottom:1px solid #dfe5d7;padding:24px 0;margin:25px 0; }
.quote-sheet .quote-scope { font-size:12px;color:#5f7156;margin-bottom:25px; }
.quote-sheet>.primary { display:block;width:100%;margin-top:28px; }
.confirmed-order-id { display:block;font-size:27px;margin:30px 0; }
.studio-inbox { background:#f8f7f1; }
.studio-inbox .notification-item.new { border-left-color:#a88e4d; }
.studio-document-layout { display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:22px;height:100%;padding:28px;background:#f8f7f2; }
.studio-document-layout .document-heading { gap:15px; }
.studio-document-layout .document-heading h2 { margin-right:auto; }
.story-oc th:first-child { width:14%; }.story-oc th:nth-child(2){width:40%}.story-oc th:nth-child(3){width:9%}.story-oc th:nth-child(4){width:37%}
.story-oc td button { font-size:12px;text-align:left;padding:3px 0; }
.story-oc tr.fields-focused td { background:#f1ead7;font-size:16px; }
.story-oc tr.fields-focused td button { font-size:16px; }
.document-action { min-height:78px;padding:17px 24px;display:flex;justify-content:flex-end;align-items:center;border-top:1px solid #dce3d3;background:#fffefb; }
.document-action .success-line { margin:0;font-size:12px; }
.order-cabinet-preview { min-height:0;display:flex;flex-direction:column; }
.order-cabinet-preview>.story-model { height:320px;flex:none;border:1px solid #d8dfce;border-radius:5px; }
.order-cabinet-preview>div:last-child:not(.story-model) { padding:25px 20px;background:#efeadb;margin-top:18px;border-radius:4px; }
.order-cabinet-preview>div>span { font-size:11px;color:#836d39; }
.order-cabinet-preview h3 { font-size:17px;margin-top:12px; }
.order-cabinet-preview>p { padding:24px;font-size:12px; }
.oc-file-cover { background:#f0eee4;display:flex;flex-direction:column;align-items:center;justify-content:center;border:1px solid #ded8c1;min-height:210px;gap:22px; }
.oc-file-cover>span { font-size:45px;color:#9b8550; }.oc-file-cover>b { font-size:13px; }
.factory-order-intake { height:100%;padding:65px;background:#293135;color:#e9eeea; }
.factory-order-intake h2 { font-size:24px;margin-bottom:35px; }
.work-order-card { display:block;max-width:680px;width:100%;padding:30px;text-align:left;border:1px solid #65716f;border-radius:5px;background:#35403f; }
.work-order-card span { color:#ccd7d0;font-size:12px; }.work-order-card h3{font-size:24px;margin:20px 0}.work-order-card p{font-size:14px;margin-bottom:30px}.work-order-card b{font-size:13px}
.story-factory .story-model { background:#252c30; }
.story-factory .factory-traveller .primary { background:#d5c292;color:#29392d;border:0;margin-top:20px; }
.story-factory .success-line { color:#cbdcb5; }
.label-sheet { padding:20px;background:#eee3c7;color:#384234;border-radius:4px;margin-top:25px; }
.label-sheet>span { font-size:13px; }.label-sheet small { font-size:11px; }.packing-status{font-size:12px;margin-top:15px;color:#d2ddcf}
.package-drop-target { display:none;position:absolute;width:100px;height:85px;transform:translate(-50%,-50%);border:2px dashed #ddcc97;border-radius:4px;z-index:4;pointer-events:none; }
.package-drop-target:not([hidden]) { display:block; }
.package-drop-target[hidden] { display:none; }
.shipment-activity { display:grid;grid-template-columns:1fr 1fr;gap:35px;margin-top:30px;border-top:1px solid #dbe3d2;padding-top:25px; }
.transport-records { min-height:170px; }
.transport-records article { display:flex;flex-wrap:wrap;gap:8px 16px;border-bottom:1px solid #dbe3d2;padding:14px 0; }
.transport-records b { font-size:13px; }.transport-records time{font-size:11px}.transport-records span{font-size:10px;color:#6a795f;width:100%}.transport-records>.primary{margin-top:20px}
.onsite-product { display:grid;grid-template-columns:55% 1fr;height:100%;background:#eeeae0; }
.onsite-package { display:grid;place-items:center;min-height:0;padding:70px; }
.package-face { width:100%;max-width:500px;aspect-ratio:1.2;background:linear-gradient(90deg,#bfa677 0 6%,#d8c49a 6% 48%,#e6dac0 48% 52%,#d8c49a 52% 94%,#bfa677 94%);border:1px solid #a9946b;transform:perspective(1000px) rotateY(-12deg) rotateX(3deg);box-shadow:20px 25px 20px #5d523b20;display:grid;place-items:center; }
.package-paper { width:65%;padding:24px;background:#f7f3e8;box-shadow:0 2px 4px #5b4e2b20; }
.package-paper span { font-size:12px; }.package-paper strong { display:block;font-size:24px;margin:16px 0; }.package-paper b {font-size:13px}
.installation-record { align-self:center;padding:35px 50px;border-left:1px solid #d2c9b6; }
.installation-record h2 { font-size:24px;margin-bottom:25px; }.installation-record p{font-size:14px;margin:22px 0}.installation-record dl{margin:25px 0}.installation-record dl>div{display:flex;justify-content:space-between;font-size:13px;padding:12px 0;border-bottom:1px solid #d2c9b6}.installation-record .primary{margin-top:20px}
.completed-kitchen { height:100%;position:relative; }.completion-receipt{position:absolute;top:28px;left:28px;background:#fffefbe8;padding:20px 24px;border-radius:5px;display:flex;flex-wrap:wrap;gap:12px;max-width:380px}.completion-receipt strong{font-size:19px}.completion-receipt>span:last-child{width:100%;font-size:11px;color:#65775b}
.story-presentation .inbox-product,.story-presentation .scope-review{scrollbar-width:thin}
@media(max-width:1280px){
 .story-header nav{max-width:820px;padding-right:110px}.intake-window{margin:20px;height:calc(100% - 40px)}.intake-grid{grid-template-columns:minmax(0,1fr) 340px}.intake-chat{padding:20px}.intake-files{padding:20px}.design-product-main{grid-template-columns:minmax(0,1fr) 310px}.product-price strong{font-size:20px}.review-product{grid-template-columns:270px minmax(0,1fr)}.review-light-focus{grid-template-columns:minmax(0,1fr) 290px}.studio-document-layout{grid-template-columns:minmax(0,1fr) 300px;gap:15px;padding:20px}.order-cabinet-preview>.story-model{height:290px}.approval-product{grid-template-columns:minmax(0,1fr) 400px}
}
@media(max-height:800px){
 .intake-window{margin-top:18px;margin-bottom:18px;height:calc(100% - 36px)}.story-presentation .message{font-size:12px;margin-bottom:13px}.story-composer textarea{height:65px}.uploaded-card img{height:75px}.upload-zone{min-height:180px}.product-window-bar{height:54px}.intake-grid{height:calc(100% - 54px)}.generation-product{padding:25px}.generation-product .uploaded-card img{height:110px}.review-record{padding:20px}.review-author{margin-bottom:25px}.scope-review{padding:25px 35px}.scope-fees{margin:15px 0}.scope-fees>div{padding:8px 0}.spec-check{padding:23px 18px}.spec-check dl>div{padding:10px 0}.quote-sheet{padding:25px}.quote-sheet h2{margin-top:25px}.submitted-project{padding-top:10px;padding-bottom:10px}.handoff-product{padding:25px}
}
.demo-mode>main { position:relative; }
.launch-desktop .primary { font-size:clamp(52px,4vw,68px);padding:28px 48px; }

/* Plan -> room -> cabinets -> materials: one real model, staged locally. */
.recipient>.person-avatar { display:grid;place-items:center; }
.reconstruction-product { position:relative;width:100%;height:100%;min-height:0;background:#f3f0e9;overflow:hidden; }
.reconstruction-product>.story-model { width:100%;height:100%; }
.reconstruction-overlay { position:absolute;inset:0;z-index:4;pointer-events:none;container-type:size;--plan-opacity:1;--scan-position:4%; }
.reconstruction-plan { position:absolute;inset:0;background:#fffefa;display:grid;place-items:center;opacity:var(--plan-opacity); }
.reconstruction-sheet { position:relative;width:min(84cqw,110cqh);aspect-ratio:1120/875; }
.reconstruction-sheet>img { width:100%;height:100%;object-fit:contain;display:block;opacity:.86;mix-blend-mode:multiply; }
.plan-scan-line { position:absolute;left:7%;right:5%;top:var(--scan-position);height:1px;background:linear-gradient(90deg,transparent,#426c50 15%,#426c50 42%,#c7d2bd 75%,transparent); }
.reconstruction-activity { position:absolute;bottom:25px;left:50%;transform:translateX(-50%);z-index:5;display:flex;align-items:center;gap:12px;background:#fffef9ed;padding:16px 22px 22px;box-shadow:0 5px 30px #263a3115;border:1px solid #e1e5da;border-radius:8px;font-size:16px;min-width:320px; }
.assistant-symbol { color:#756086;font-size:25px; }
.reconstruction-track { position:absolute;height:2px;bottom:0;left:0;right:0;background:#dce3d8;overflow:hidden; }
.reconstruction-track i { height:100%;display:block;background:#315640;transform:scaleX(0);transform-origin:left; }

/* Presenter subtitles sit on their own centred line above the controls. */
#app.demo-mode { grid-template-rows:64px minmax(0,1fr) 76px; }
#app.demo-mode.with-caption { grid-template-rows:64px minmax(0,1fr) 130px; }
.presenter-footer { height:76px;display:grid;grid-template-columns:minmax(0,1fr);justify-content:stretch;grid-template-rows:44px;align-content:end;gap:7px;padding:10px 28px 12px; }
.with-caption .presenter-footer { height:130px;grid-template-rows:minmax(0,1fr) 44px; }
.scene-caption:empty { display:none; }
.scene-caption { width:100%;max-width:1280px;justify-self:center;align-self:center;text-align:center;font-size:22px;line-height:1.3;font-weight:550;color:#263f32;margin:0;text-wrap:balance; }
.presenter-toolbar { width:100%;height:44px;display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center; }
.presentation-controls { grid-column:2;justify-self:center;align-self:center;margin:0;display:flex;gap:0;border:1px solid #d8dfd4;border-radius:7px;background:#f8f9f5; }
.presentation-controls>button { width:116px;min-height:40px;padding:8px 16px;border:0;border-radius:0;font-size:15px;font-weight:550;color:#294b3b;background:transparent; }
.presentation-controls>button+button { border-left:1px solid #d8dfd4; }
.presentation-controls>button:first-child { border-radius:6px 0 0 6px; }
.presentation-controls>button:last-child { border-radius:0 6px 6px 0; }
.presentation-controls>button:focus-visible { outline-offset:-3px; }
.presenter-toolbar>.scene-progress { grid-column:3;justify-self:end;width:auto;min-width:64px;text-align:right;font-size:14px;font-weight:500;color:#58685e; }
.presenter-feedback { grid-column:1;grid-row:1;display:flex;align-items:center;gap:12px;max-width:100%;padding-right:18px; }
.presenter-feedback>button { text-decoration:underline;flex-shrink:0; }
.demo-mode .drawer { bottom:76px; }
.demo-mode.with-caption .drawer { bottom:130px; }
.intake-window.is-conversation .intake-grid { grid-template-columns:300px minmax(0,1fr); }
.intake-window.is-conversation .intake-files { padding:26px; }
.intake-window.is-conversation .uploaded-files { flex-direction:column;align-items:center;gap:20px; }
.intake-window.is-conversation .uploaded-card { width:100%;max-width:244px; }
.intake-window.is-conversation .uploaded-card img { height:142px; }
.intake-window.is-conversation .intake-chat { padding:28px 38px; }
.story-presentation .intake-window.is-conversation .message { font-size:15px; }
@media(min-width:1700px){.scene-caption{font-size:26px;max-width:1600px}}
@media(max-width:1100px){.presenter-footer{padding:8px 18px 10px;gap:6px}.scene-caption{font-size:20px}.presentation-controls>button{width:104px}}
.investor-overview {
  width: 100%;
  height: 100%;
  display: grid;
  grid-template-columns: minmax(360px, .82fr) minmax(0, 1.18fr);
  align-items: center;
  gap: clamp(38px, 4.5vw, 86px);
  padding: clamp(36px, 4.2vw, 80px);
  background: #f6f5f0;
  overflow: auto;
}
.overview-copy { max-width: 590px; }
.overview-copy h1 {
  max-width: 15ch;
  font-size: clamp(42px, 3.75vw, 66px);
  line-height: 1.07;
  font-weight: 520;
  letter-spacing: -.045em;
  color: #263a31;
  text-wrap: balance;
}
.overview-copy > p {
  max-width: 45ch;
  margin-top: 28px;
  font-size: clamp(17px, 1.25vw, 21px);
  line-height: 1.55;
  color: #49584f;
}
.overview-flow {
  list-style: none;
  margin: 38px 0 0;
  padding: 0;
  display: flex;
  align-items: center;
  gap: 0;
  font-size: clamp(13px, .96vw, 16px);
  line-height: 1.4;
  color: #344c3e;
}
.overview-flow li {
  position: relative;
  display: flex;
  align-items: center;
  white-space: nowrap;
}
.overview-flow li:not(:last-child)::after {
  content: '→';
  margin: 0 clamp(7px, .75vw, 14px);
  color: #7d8d7b;
}
.overview-flow li:first-child::after { content: '↔'; }
.overview-flow .overview-ai > span { color: #7d628f; }
.overview-visual {
  margin: 0;
  width: 100%;
  aspect-ratio: 8 / 5;
  overflow: hidden;
  border-radius: 4px;
  background: #eae4d8;
}
.overview-visual img { display: block; width: 100%; height: 100%; object-fit: cover; }
@media (max-height: 780px) and (min-width: 1000px) {
  .investor-overview { padding-block: 28px; }
  .overview-copy h1 { font-size: clamp(36px, 3.25vw, 52px); }
  .overview-copy > p { margin-top: 20px; }
  .overview-flow { margin-top: 25px; }
}
@media (max-width: 1000px) {
  .investor-overview { grid-template-columns: 1fr 1fr; gap: 30px; padding: 30px; }
  .overview-copy h1 { font-size: 38px; }
  .overview-flow { flex-wrap: wrap; row-gap: 12px; }
}
@media (max-width: 720px) {
  .investor-overview { grid-template-columns: 1fr; align-content: start; }
  .overview-copy h1 { max-width: 20ch; }
  .overview-flow { margin-top: 24px; }
}
