:root{color:#111827;background:#eef1f5;font-family:IBM Plex Sans,Avenir Next,sans-serif}*{box-sizing:border-box}html,body,#root{width:100%;height:100%;margin:0}body{overflow:hidden}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.48}.planner-app{position:relative;display:grid;grid-template-columns:92px 300px minmax(560px,1fr) 310px;grid-template-rows:minmax(78px,auto) minmax(0,1fr) 72px;width:100%;height:100%;background:#f5f7fa}.app-header{grid-column:1 / -1;display:grid;grid-template-columns:330px minmax(280px,1fr) auto;align-items:center;gap:20px;padding:14px 24px;border-bottom:1px solid #e5e7eb;background:#fffffff5}.brand{display:flex;align-items:center;gap:10px}.brand-mark{display:grid;place-items:center;width:34px;height:34px;border:2px solid #2f73ff;border-radius:7px;color:#2f73ff;font-size:12px;font-weight:800}.brand-mark svg{stroke-width:2.4}.brand h1,.brand p,.panel-title h2,.properties-section h2,.panel-section h2{margin:0}.brand h1{font-size:16px;line-height:1.2}.brand p{color:#4b5563;font-size:12px}.project-title{display:flex;align-items:center;gap:8px;justify-self:center;width:min(420px,100%)}.project-title input{width:100%;border:0;background:transparent;color:#111827;text-align:center;font-size:18px;font-weight:700;outline:none}.project-title svg{color:#667085}.top-controls{display:flex;align-items:center;gap:12px}.icon-group,.zoom-control,.unit-toggle{display:inline-flex;align-items:center;height:36px;border:1px solid #dfe3ea;border-radius:7px;background:#fff;overflow:hidden}.icon-group button,.zoom-control button,.unit-toggle button{display:grid;place-items:center;min-width:40px;height:34px;border:0;background:transparent}.zoom-control strong{width:74px;text-align:center}.unit-toggle button.active,.save-button,.generate-button{background:#2f73ff;color:#fff}.header-button,.save-button{display:inline-flex;align-items:center;gap:8px;height:36px;padding:0 18px;border:1px solid #dfe3ea;border-radius:7px;background:#fff}.save-button{border-color:#2f73ff}.avatar{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:#1f2937;color:#fff;font-size:11px;font-weight:800}.app-nav{grid-row:2 / 3;display:grid;align-content:start;gap:10px;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;padding:16px 10px;border-right:1px solid #e5e7eb;background:#fff}.app-nav button{display:grid;place-items:center;gap:7px;min-height:68px;border:0;border-radius:7px;background:transparent;color:#374151;font-size:12px}.app-nav button svg{display:grid;place-items:center;color:#2563eb;stroke-width:1.9}.app-nav button.active{background:#eef5ff;color:#2563eb}@media(max-height:860px){.app-nav{gap:4px;padding:10px 8px}.app-nav button{min-height:50px;gap:4px;font-size:11px}}.ai-panel,.properties-panel{grid-row:2 / 3;min-height:0;overflow:auto;background:#fff}.ai-panel{padding:20px;border-right:1px solid #e5e7eb}.properties-panel{padding:20px;border-left:1px solid #e5e7eb}.panel-title{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:18px}.panel-title h2,.properties-section h2,.panel-section h2,.properties-stack strong{display:inline-flex;align-items:center;gap:8px}.panel-title.compact{margin-bottom:10px}.panel-title h2,.properties-section h2,.panel-section h2{font-size:16px}.panel-title span{padding:4px 8px;border-radius:6px;background:#eaf2ff;color:#2563eb;font-size:12px}.field-stack{display:grid;gap:9px;margin-bottom:14px}.field-stack span,.properties-section label,.setting-row,.toggle-row,.pricing-list label{color:#111827;font-size:13px;font-weight:600}.field-stack textarea,.field-stack input,.properties-section input,.properties-section select,.pricing-list input{width:100%;border:1px solid #dfe3ea;border-radius:6px;background:#fff;outline:none}.field-stack textarea{min-height:128px;padding:12px;resize:vertical;line-height:1.5}.field-stack input,.properties-section input,.properties-section select,.pricing-list input{height:36px;padding:0 10px}.mode-segment{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-bottom:12px}.mode-segment button{display:inline-flex;align-items:center;justify-content:center;gap:7px;height:34px;border:1px solid #dfe3ea;border-radius:6px;background:#fff}.mode-segment button.active{border-color:#2f73ff;background:#eef5ff;color:#2563eb;font-weight:700}.generate-button,.secondary-action{display:inline-flex;align-items:center;justify-content:center;gap:8px;width:100%;height:40px;border:0;border-radius:6px;font-weight:700}.secondary-action{border:1px solid #dfe3ea;background:#fff;color:#2563eb}.error-copy{margin:10px 0 0;color:#b42318;font-size:13px}.panel-section{margin-top:24px}.mini-layout-preview{display:block;width:100%;height:156px;margin-bottom:12px;border:1px solid #dfe3ea;border-radius:6px;background:#fbfaf7}.text-button{display:inline-flex;align-items:center;gap:6px;border:0;background:transparent;color:#2563eb;font-weight:700}.danger-text{margin-top:8px;color:#b42318}.panel-hint{margin:0 0 10px;font-size:12px;color:#6b7280}.suggestion-button{display:flex;align-items:center;gap:8px;width:100%;min-height:34px;margin-bottom:8px;padding:8px 10px;border:1px solid #dfe3ea;border-radius:6px;background:#fff;color:#374151;text-align:left}.option-grid{display:grid;grid-template-columns:1fr;gap:10px}.option-grid.two{grid-template-columns:1fr 1fr}.option-button{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:4px 9px;min-height:58px;padding:10px;border:1px solid #dfe3ea;border-radius:7px;background:#fff;color:#111827;text-align:left}.option-button svg{grid-row:1 / span 2;color:#2563eb}.option-button span{font-size:13px;font-weight:700}.option-button small{color:#667085;font-size:11px}.option-button.active{border-color:#2f73ff;background:#eef5ff}.detail-list{display:grid;gap:8px}.layer-row{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;width:100%;min-height:36px;padding:8px 10px;border:1px solid #e5e7eb;border-radius:6px;background:#fff;color:#374151;text-align:left}.layer-row.static{cursor:default}.layer-row strong{font-size:12px}.form-grid{display:grid;gap:10px}.form-grid.two{grid-template-columns:1fr 1fr}.form-grid label{display:grid;gap:7px;color:#111827;font-size:13px;font-weight:600}.form-grid input,.form-grid select{height:36px;padding:0 10px;border:1px solid #dfe3ea;border-radius:6px;background:#fff}.canvas-workspace{position:relative;grid-row:2 / 3;min-width:0;min-height:0;overflow:hidden;background:linear-gradient(rgba(17,24,39,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(17,24,39,.035) 1px,transparent 1px),#fbfcfd;background-size:36px 36px}.planner-canvas{position:absolute;inset:0}.dimension-input-overlay{position:absolute;z-index:5;display:grid;gap:6px;min-width:150px;padding:10px;transform:translate(-50%,-100%);border:1px solid #b8c7e6;border-radius:6px;background:#fff;box-shadow:0 12px 26px #0f172a29}.dimension-input-overlay input{width:100%;height:34px;padding:0 8px;border:1px solid #dfe3ea;border-radius:5px}.room-dimension-row{display:grid;grid-template-columns:1fr auto;align-items:center;gap:8px}.room-dimension-row span{color:#667085;font-size:12px}.canvas-dim{position:absolute;z-index:4;display:inline-flex;align-items:center;gap:5px;padding:4px 8px;background:#ffffffdb;color:#111827;font-size:13px;font-weight:700}.canvas-dim.top{top:36px;left:50%;transform:translate(-50%)}.canvas-dim.left{top:50%;left:18px;transform:rotate(-90deg)}.floating-tools{position:absolute;z-index:6;left:50%;bottom:28px;display:flex;gap:7px;padding:8px;border:1px solid #dfe3ea;border-radius:8px;background:#fffffff5;box-shadow:0 14px 30px #0f172a24;transform:translate(-50%)}.floating-tools button{display:grid;place-items:center;gap:4px;width:76px;height:54px;border:0;border-radius:6px;background:transparent;color:#374151;font-size:11px}.floating-tools button svg{stroke-width:1.9}.floating-tools button.active{background:#eef5ff;color:#2563eb}.zoom-controls{position:absolute;right:16px;bottom:28px;z-index:5;display:grid;overflow:hidden;border:1px solid #dfe3ea;border-radius:7px;background:#fff;box-shadow:0 12px 26px #0f172a1f}.zoom-controls button{display:grid;place-items:center;width:34px;height:34px;border:0;background:#fff}.zoom-controls button+button{border-top:1px solid #dfe3ea}.properties-section{padding:0 0 20px;margin-bottom:20px;border-bottom:1px solid #e5e7eb}.properties-section:last-child{border-bottom:0}.properties-section p{margin:18px 0 0;color:#4b5563;font-size:14px}.properties-stack{display:grid;gap:12px;margin-top:14px}.properties-stack label,.setting-row,.pricing-list label{display:grid;gap:7px}.summary-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}.summary-grid div{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:5px 8px;min-height:66px;padding:12px;border:1px solid #e5e7eb;border-radius:6px}.summary-grid div strong{grid-column:2}.icon-badge{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:6px;border:1px solid currentColor}.icon-badge.blue{color:#2563eb;background:#eef5ff}.icon-badge.green{color:#039855;background:#ecfdf3}.icon-badge.amber{color:#d97706;background:#fffbeb}.icon-badge.violet{color:#6d4aff;background:#f3f0ff}.icon-badge.gray{color:#4b5563;background:#f3f4f6}.summary-grid span,.metrics-bar span{color:#4b5563;font-size:12px}.summary-grid strong,.metrics-bar strong{font-size:14px}.setting-row,.toggle-row{display:grid;grid-template-columns:1fr 104px;align-items:center;gap:10px;margin-top:12px}.toggle-row{grid-template-columns:1fr auto}.toggle-row>span{display:inline-flex;align-items:center;gap:7px}.switch{position:relative;width:36px;height:20px;border:0;border-radius:999px;background:#d0d5dd}.switch span{position:absolute;top:3px;left:3px;width:14px;height:14px;border-radius:50%;background:#fff;transition:transform .15s ease}.switch.on{background:#2f73ff}.switch.on span{transform:translate(16px)}.pricing-list{display:grid;grid-template-columns:1fr 1fr;gap:10px}.pricing-list.single{grid-template-columns:1fr}.pricing-list label{align-items:start}.pricing-list label svg{margin-right:5px;vertical-align:-2px;color:#2563eb}.panel-hint.muted{padding:8px 10px;border-radius:8px;background:#f3f4f6}.field-stack span small{font-weight:400;color:#9aa3af}.cost-breakdown .cost-row{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:7px 0;border-bottom:1px dashed #e8eaee;font-size:13px}.cost-breakdown .cost-row span{display:flex;flex-direction:column;color:#374151}.cost-breakdown .cost-row span small{font-size:11px;color:#9aa3af}.cost-breakdown .cost-row strong{font-variant-numeric:tabular-nums;white-space:nowrap;color:#111827}.cost-breakdown .cost-row.subtotal{border-bottom:1px solid #d7dbe2}.cost-breakdown .cost-row.total{padding-top:10px;border-bottom:0;font-size:15px}.cost-breakdown .cost-row.total strong{color:#14532d}.cost-breakdown .cost-row.rate{padding-top:0;border-bottom:0;color:#6b7280}.cost-breakdown .panel-hint{margin-top:10px}.metrics-bar{grid-column:1 / -1;display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);align-items:center;gap:12px;padding:10px 28px;border-top:1px solid #e5e7eb;background:#fff}.metrics-bar .metric-headline strong{font-size:15px;color:#0f172a}.cost-scope{margin:10px 0 14px;padding-left:18px;display:grid;gap:5px;font-size:13px;color:#475569}.share-error{position:fixed;top:90px;left:50%;transform:translate(-50%);z-index:40;display:flex;align-items:center;gap:12px;max-width:min(560px,calc(100vw - 32px));padding:9px 14px;font-size:13px;color:#92400e;background:#fef3c7;border:1px solid #fcd34d;border-radius:10px;box-shadow:0 8px 24px #0f172a1f}.share-error button{display:inline-flex;padding:2px;border:0;color:inherit;background:none;cursor:pointer}.edit-status{position:fixed;top:90px;left:50%;transform:translate(-50%);z-index:40;display:flex;flex-direction:column;gap:6px;max-width:min(620px,calc(100vw - 32px));padding:10px 34px 10px 14px;font-size:12.5px;color:#14532d;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:10px;box-shadow:0 8px 24px #0f172a1f}.edit-status.blocking{color:#7f1d1d;background:#fef2f2;border-color:#fecaca}.edit-status-headline{display:flex;align-items:center;gap:7px;font-weight:600}.edit-status-headline em{font-style:normal;font-weight:500;opacity:.7}.edit-status-group{display:block;padding-left:22px;font-weight:400}.edit-status-group strong{font-weight:600}.edit-status-group ul{margin:2px 0 0;padding-left:16px}.edit-status-group li{line-height:1.45}.edit-status>button{position:absolute;top:8px;right:8px;display:inline-flex;padding:2px;border:0;color:inherit;background:none;cursor:pointer}.panel-section.attention{border:1px solid #fcd34d;background:#fffbeb}.panel-section.attention .check-list li{display:flex;align-items:center;justify-content:space-between;gap:10px}.metrics-bar div{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:3px 8px;min-width:0;padding-left:14px;border-left:1px solid #edf0f4}.metrics-bar div span,.metrics-bar div strong{min-width:0}.metrics-bar div strong{grid-column:2}.metrics-bar div:first-child{border-left:0}@media(max-width:1600px){.app-header{grid-template-columns:minmax(0,auto) minmax(0,1fr) minmax(0,auto)}.top-controls{min-width:0;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none}.top-controls::-webkit-scrollbar{display:none}.top-controls>*{flex:0 0 auto}}@media(max-width:1180px){.planner-app{grid-template-columns:78px 280px minmax(420px,1fr);grid-template-rows:minmax(78px,auto) minmax(0,1fr) 260px 72px}.properties-panel{grid-column:1 / -1;grid-row:3;display:grid;grid-template-columns:repeat(3,minmax(240px,1fr));gap:20px;overflow:auto}.metrics-bar{grid-row:4;grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:minmax(150px,1fr);overflow-x:auto}}.mobile-only,.sheet-close{display:none}@media(max-width:1024px){.planner-app{grid-template-columns:84px minmax(240px,300px) minmax(0,1fr)}.properties-panel{position:fixed;top:0;right:0;z-index:40;width:min(340px,88vw);height:100%;transform:translate(100%);transition:transform .22s ease;box-shadow:-12px 0 32px #0f172a24}.planner-app.properties-open .properties-panel{transform:none}.mobile-only{display:inline-flex}.properties-panel .sheet-close{display:grid}.app-header{grid-template-columns:minmax(0,auto) minmax(0,1fr) minmax(0,auto);gap:12px;padding:12px 16px}.app-header .zoom-control,.app-header .avatar,.brand p{display:none}.brand h1{max-width:26vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.top-controls{min-width:0;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none}.top-controls::-webkit-scrollbar{display:none}.top-controls>*{flex:0 0 auto}.floating-tools{max-width:calc(100% - 24px);overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none}.floating-tools::-webkit-scrollbar{display:none}.floating-tools>*{flex:0 0 auto}.zoom-controls{bottom:110px}}.app-header{display:flex;flex-wrap:wrap;row-gap:10px}.project-title{flex:1 1 180px;min-width:0}.top-controls{flex-wrap:wrap;justify-content:flex-end;row-gap:8px;margin-left:auto;overflow:visible}@media(max-width:720px),(max-height:500px)and (orientation:landscape){.planner-app{grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr) 72px auto}.app-header{grid-column:1;display:flex;flex-wrap:nowrap;align-items:center;gap:8px;padding:8px 12px;overflow-x:auto;scrollbar-width:none}.app-header::-webkit-scrollbar{display:none}.brand{flex:0 0 auto}.brand h1{max-width:30vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px}.top-controls{flex:0 0 auto;flex-wrap:nowrap}.brand p,.project-title,.zoom-control,.avatar,.app-header .header-button:not(.mobile-only):not(.trial-feedback-button){display:none}.app-header .trial-feedback-button{position:fixed;top:72px;right:12px;z-index:40;background:#fff;box-shadow:0 8px 20px #0f172a29}.trial-float{top:116px;left:12px;right:12px;width:auto;max-height:calc(100vh - 128px)}.top-controls{gap:8px}.canvas-workspace{grid-column:1;grid-row:2}.app-nav{grid-column:1;grid-row:3;display:flex;gap:4px;padding:6px 8px;border-right:0;border-top:1px solid #e5e7eb;overflow-x:auto;scrollbar-width:none}.app-nav::-webkit-scrollbar{display:none}.app-nav button{flex:0 0 auto;min-width:62px;min-height:58px;font-size:10px}.ai-panel{position:fixed;left:0;right:0;bottom:0;z-index:50;max-height:min(76vh,calc(100vh - 124px));border-right:0;border-top:1px solid #e5e7eb;border-radius:16px 16px 0 0;transform:translateY(102%);transition:transform .24s ease;box-shadow:0 -14px 34px #0f172a2e}.planner-app.panel-open .ai-panel{transform:none}.ai-panel .sheet-close{display:grid}.properties-panel{width:min(340px,92vw)}.metrics-bar{grid-column:1;grid-row:4;padding:8px 14px}.floating-tools{left:50%;right:auto;transform:translate(-50%);max-width:calc(100vw - 24px);overflow-x:auto}.zoom-controls,.canvas-dim{display:none}}.sheet-close{position:absolute;top:12px;right:12px;z-index:2;place-items:center;width:32px;height:32px;border:1px solid #dfe3ea;border-radius:50%;background:#fff;color:#4b5563}.catalog-page{height:100%;overflow-y:auto;padding:40px max(28px,calc((100% - 1240px)/2)) 72px;background:#f6f5f2}.catalog-header{display:flex;align-items:flex-end;justify-content:space-between;gap:32px;flex-wrap:wrap;margin-bottom:28px}.eyebrow{margin:0 0 6px;font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#a16f3f}.catalog-header h1{margin:0 0 8px;font-size:34px;letter-spacing:-.02em;color:#1f2430}.lede{margin:0;max-width:52ch;color:#5c6472;line-height:1.55}.catalog-search{display:flex;align-items:center;gap:8px;min-width:280px;padding:10px 14px;border:1px solid #dfe3ea;border-radius:10px;background:#fff;color:#6b7280}.catalog-search input{flex:1;border:0;outline:none;font-size:14px;color:#1f2430;background:transparent}.catalog-filters{display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding:14px 18px;margin-bottom:24px;border:1px solid #e5e7eb;border-radius:12px;background:#fff}.filter-label{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:#9aa3af}.catalog-filters label{display:flex;align-items:center;gap:8px;font-size:13px;color:#4b5563}.catalog-filters select{padding:7px 10px;border:1px solid #dfe3ea;border-radius:8px;font-size:13px;background:#fff}.result-count{margin-left:auto;font-size:13px;color:#6b7280}.design-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:22px}.design-card{display:flex;flex-direction:column;border:1px solid #e5e7eb;border-radius:14px;background:#fff;overflow:hidden;transition:box-shadow .18s ease,transform .18s ease}.design-card:hover{transform:translateY(-2px);box-shadow:0 12px 28px #1f24301a}.design-thumb-button{border:0;padding:0;background:#fbfaf7;cursor:pointer;border-bottom:1px solid #eceef2}.design-thumb{display:block;width:100%;height:200px}.design-card-body{display:flex;flex-direction:column;gap:12px;padding:16px 18px 18px}.design-card-title{display:flex;align-items:baseline;gap:10px}.design-code{padding:3px 7px;border-radius:5px;background:#f3ece1;font-size:11px;font-weight:700;letter-spacing:.06em;color:#8a5f33}.design-card-title h2{margin:0;font-size:19px;color:#1f2430}.design-style{margin:0;font-size:13px;line-height:1.5;color:#6b7280}.design-specs{display:grid;grid-template-columns:1fr 1fr;gap:8px 14px;margin:0;padding:12px 0;border-top:1px solid #f0f2f5;border-bottom:1px solid #f0f2f5}.design-specs dt{display:flex;align-items:center;gap:5px;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:#9aa3af}.design-specs dd{margin:2px 0 0;font-size:13px;font-weight:600;color:#2b3140}.design-card-footer{display:flex;align-items:center;justify-content:space-between;gap:12px}.design-card-footer strong{display:block;font-size:19px;color:#14532d}.design-card-footer small{font-size:11px;color:#9aa3af}.primary-button{display:inline-flex;align-items:center;gap:7px;padding:9px 15px;border:0;border-radius:9px;background:#1f2430;color:#fff;font-size:13px;font-weight:600;cursor:pointer}.primary-button:hover{background:#2f3646}.ghost-button{display:inline-flex;align-items:center;gap:6px;padding:8px 13px;border:1px solid #dfe3ea;border-radius:9px;background:#fff;font-size:13px;color:#374151;cursor:pointer}.link-button{border:0;padding:0;background:none;color:#a16f3f;font-size:inherit;text-decoration:underline;cursor:pointer}.empty-state,.catalog-footer{margin-top:28px;color:#6b7280;font-size:14px}.design-page{display:flex;flex-direction:column;height:100vh;background:#f6f5f2}.design-page.missing{align-items:center;justify-content:center;gap:16px}.design-page-header{display:flex;align-items:center;gap:20px;padding:14px 24px;border-bottom:1px solid #e5e7eb;background:#fff}.design-page-title{flex:1}.design-page-title h1{margin:2px 0;font-size:22px;color:#1f2430}.design-page-title p{margin:0;font-size:13px;color:#6b7280}.design-page-actions{display:flex;align-items:center;gap:12px}.design-page-body{flex:1;display:grid;grid-template-columns:minmax(0,1fr) 400px;grid-template-rows:minmax(0,1fr);min-height:0}.design-canvas{position:relative;min-width:0;min-height:0}.layout-viewer{position:relative;width:100%;height:100%;overflow:hidden;background:#fbfaf7;cursor:grab;-webkit-user-select:none;user-select:none}.layout-viewer:active{cursor:grabbing}.layout-viewer svg{display:block;width:100%;height:100%}.viewer-controls{position:absolute;right:16px;bottom:44px;display:flex;flex-direction:column;gap:4px}.viewer-controls button{width:34px;height:34px;border:1px solid #dfe3ea;border-radius:8px;background:#fff;font-size:13px;cursor:pointer}.viewer-compass{position:absolute;top:16px;right:16px;display:grid;justify-items:center;width:46px;color:#b91c1c;font-size:11px;font-weight:700}.viewer-compass svg{width:26px;height:26px}.viewer-hint{position:absolute;left:16px;bottom:14px;margin:0;font-size:11px;color:#9aa3af}.design-rail{display:flex;flex-direction:column;min-height:0;overflow-y:auto;border-left:1px solid #e5e7eb;background:#fff}.rail-headline{padding:18px 20px;border-bottom:1px solid #eceef2;background:#fbfaf7}.rail-headline.compact{margin-bottom:12px;border:1px solid #eceef2;border-radius:10px}.rail-headline span{display:block;font-size:12px;color:#6b7280}.rail-headline strong{display:block;margin:2px 0;font-size:26px;color:#14532d}.rail-headline small{font-size:12px;color:#9aa3af}.rail-tabs{display:flex;gap:2px;padding:10px 16px 0;border-bottom:1px solid #eceef2}.rail-tabs button{padding:8px 12px;border:0;border-bottom:2px solid transparent;background:none;font-size:13px;color:#6b7280;cursor:pointer}.rail-tabs button.active{border-bottom-color:#a16f3f;color:#1f2430;font-weight:600}.rail-section{padding:18px 20px 28px}.rail-section h3{display:flex;align-items:center;gap:6px;margin:22px 0 10px;font-size:12px;text-transform:uppercase;letter-spacing:.07em;color:#9aa3af}.rail-section h3:first-child{margin-top:0}.rail-copy{margin:0 0 8px;font-size:13px;line-height:1.6;color:#4b5563}.rail-copy.muted{color:#9aa3af;font-size:12px}.value-list{margin:0}.value-list>div{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:7px 0;border-bottom:1px dashed #eef0f3}.value-list dt{font-size:13px;color:#6b7280}.value-list dd{margin:0;font-size:13px;font-weight:600;text-align:right;color:#1f2430}.value-list dd small{display:block;font-weight:400;font-size:11px;color:#9aa3af}.value-list.compact dt,.value-list.compact dd{font-size:12px}.room-schedule{width:100%;border-collapse:collapse;font-size:13px}.room-schedule th{text-align:left;padding:6px 0;border-bottom:1px solid #e5e7eb;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:#9aa3af}.room-schedule td{padding:8px 0;border-bottom:1px solid #f2f4f7;color:#374151}.room-schedule td:last-child,.room-schedule th:last-child{text-align:right}.vastu-score{display:flex;align-items:center;gap:12px;padding:14px 16px;margin-bottom:12px;border-radius:10px;background:#f6f7f9}.vastu-score strong{font-size:30px;color:#1f2430}.vastu-score span{font-size:12px;color:#6b7280}.vastu-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}.vastu-list li{display:grid;gap:3px;padding:10px 12px;border-left:3px solid #d1d5db;border-radius:0 8px 8px 0;background:#f9fafb}.vastu-list li strong{font-size:13px;color:#1f2430}.vastu-list li span{font-size:12px;line-height:1.5;color:#6b7280}.vastu-list li.vastu-good{border-left-color:#16a34a}.vastu-list li.vastu-caution{border-left-color:#d97706}.vastu-list li.vastu-avoid{border-left-color:#dc2626;background:#fef6f6}.design-rail details,.cost-breakdown details{border-bottom:1px solid #f0f2f5}.design-rail summary,.cost-breakdown summary{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 0;font-size:13px;font-weight:600;color:#374151;cursor:pointer}.boq-table{width:100%;border-collapse:collapse;margin-bottom:10px}.boq-table td{padding:6px 0;font-size:12px;color:#4b5563;vertical-align:top}.boq-table td:last-child{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.boq-table small{display:block;font-size:11px;color:#9aa3af}.rail-total{display:flex;align-items:baseline;justify-content:space-between;padding:14px 0 8px;font-size:15px}.rail-total strong{color:#14532d}.variant-card{display:grid;grid-template-columns:88px minmax(0,1fr);gap:12px;padding:10px;margin-bottom:8px;border:1px solid #e5e7eb;border-radius:10px}.variant-card .mini-layout-preview{height:78px}.variant-card strong{display:block;font-size:13px;color:#1f2430}.variant-card small{display:block;margin-bottom:4px;font-size:11px;color:#9aa3af}.variant-card em{display:block;font-size:11px;font-style:normal;color:#d97706}.variant-card em.error{color:#dc2626}@media(max-width:1080px){.design-page-body{grid-template-columns:minmax(0,1fr);grid-template-rows:55vh minmax(0,auto)}.design-rail{border-left:0;border-top:1px solid #e5e7eb}}.furniture-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:8px}.furniture-chip{display:grid;justify-items:center;gap:5px;padding:8px 6px;border:1px solid #dfe3ea;border-radius:9px;background:#fff;color:#4b5563;font-size:11px;line-height:1.25;text-align:center}.furniture-chip:hover:not(:disabled){border-color:#2563eb;color:#2563eb}.furniture-chip svg{width:100%;height:34px}.chip-row{display:flex;flex-wrap:wrap;gap:6px}.chip{padding:5px 9px;border:1px solid #dfe3ea;border-radius:999px;background:#fff;font-size:11px;color:#4b5563}.chip.active{border-color:#2563eb;background:#eef5ff;color:#2563eb;font-weight:600}@media(max-width:720px),(max-height:500px)and (orientation:landscape){.catalog-page{padding:24px 16px 48px}.catalog-header{flex-direction:column;align-items:stretch;gap:16px}.catalog-header h1{font-size:26px}.catalog-search{min-width:0}.catalog-filters{gap:10px;padding:12px 14px}.catalog-filters label{flex:1 1 44%}.catalog-filters select{width:100%}.result-count{flex-basis:100%;margin-left:0}.design-grid{grid-template-columns:minmax(0,1fr);gap:16px}.design-thumb{height:168px}.design-page-header{flex-wrap:wrap;gap:10px;padding:12px 14px}.design-page-title h1{font-size:18px}.design-page-title p{font-size:12px}.design-page-actions{width:100%;justify-content:space-between}.design-page-body{grid-template-columns:minmax(0,1fr);grid-template-rows:46vh minmax(0,1fr)}.design-rail{border-left:0;border-top:1px solid #e5e7eb}.rail-tabs{overflow-x:auto;scrollbar-width:none}.rail-tabs::-webkit-scrollbar{display:none}.viewer-controls{right:10px;bottom:34px}}@media(pointer:coarse){.app-nav button,.floating-tools button,.viewer-controls button,.rail-tabs button{min-height:44px}.furniture-chip{padding:10px 6px}.layout-viewer,.planner-canvas{touch-action:none}}.compass-wheel{display:grid;gap:12px;justify-items:center}.compass-wheel svg{width:100%;max-width:210px;touch-action:none;cursor:grab;outline:none}.compass-wheel svg.dragging{cursor:grabbing}.compass-wheel svg:focus-visible{filter:drop-shadow(0 0 0 2px #2563eb)}.compass-face{fill:#fbfaf7;stroke:#dfe3e8;stroke-width:1.5}.compass-tick{stroke:#b6bcc4;stroke-width:1.5}.compass-sun-path{fill:none;stroke:#f0b429;stroke-width:2.5;stroke-dasharray:4 5;opacity:.9}.compass-sun{fill:#f0b429}.compass-wind{stroke:#3b9ad9;stroke-width:2.5;stroke-linecap:round;stroke-dasharray:2 6}.compass-needle{stroke:#d64545;stroke-width:3;stroke-linecap:round}.compass-needle-tip{fill:#d64545}.compass-hub{fill:#6b7280}.compass-label{font-size:11px;font-weight:600;fill:#6b7280}.compass-label.cardinal{font-size:13px;fill:#1f2937}.compass-controls{display:flex;align-items:center;gap:10px}.compass-controls button{padding:5px 10px;font-size:12px;font-weight:600;color:#374151;background:#fff;border:1px solid #d9dee4;border-radius:8px;cursor:pointer}.compass-controls button:hover{background:#f3f4f6}.compass-input{display:inline-flex;align-items:center;gap:1px;padding:0 8px;border:1px solid #d9dee4;border-radius:8px;background:#fff;font-weight:600}.compass-input input{width:46px;height:30px;padding:0;border:0;outline:none;background:transparent;text-align:right;font-variant-numeric:tabular-nums}.compass-input:focus-within{border-color:#2f73ff}.compass-notes{display:grid;gap:6px;width:100%;margin:0;font-size:12px}.compass-notes div{display:flex;justify-content:space-between;gap:10px}.compass-notes dt{color:#6b7280}.compass-notes dd{margin:0;color:#1f2937;text-align:right}@media(pointer:coarse){.compass-controls button{padding:10px 14px;min-height:44px}}.check-list{display:grid;gap:8px;margin:0;padding:0;list-style:none;font-size:13px;line-height:1.45}.check-list li{padding:9px 11px;border-left:3px solid;border-radius:0 7px 7px 0}.check-error{border-color:#d64545;background:#fdf2f2;color:#7f1d1d}.check-warning{border-color:#e0a422;background:#fdf8ec;color:#7c5510}.panel-collapse{position:absolute;top:92px;z-index:25;display:grid;place-items:center;width:22px;height:44px;padding:0;border:1px solid #dfe3ea;background:#fff;color:#5b6472;box-shadow:0 2px 6px #0f172a12;transition:left .18s ease,right .18s ease}.panel-collapse:hover{color:#2563eb;background:#f4f7ff}.panel-collapse.left{left:392px;border-radius:0 7px 7px 0;border-left:0}.panel-collapse.right{right:310px;border-radius:7px 0 0 7px;border-right:0}.planner-app.left-collapsed .panel-collapse.left{left:92px}.planner-app.right-collapsed .panel-collapse.right{right:0}@media(min-width:1025px){.planner-app.left-collapsed{grid-template-columns:92px 0 minmax(560px,1fr) 310px}.planner-app.right-collapsed{grid-template-columns:92px 300px minmax(560px,1fr) 0}.planner-app.left-collapsed.right-collapsed{grid-template-columns:92px 0 minmax(560px,1fr) 0}.planner-app.left-collapsed .ai-panel,.planner-app.right-collapsed .properties-panel{padding:0;border:0;overflow:hidden;visibility:hidden}}@media(max-width:1024px){.panel-collapse{display:none}}@media(pointer:coarse){.app-header button,.ghost-button,.header-button,.save-button,.mode-segment button,.suggestion-button,.generate-button,.secondary-action,.chip-row .chip,.panel-section button:not(.switch):not(.text-button){min-height:44px}.icon-group,.zoom-control,.unit-toggle{height:auto}.icon-group button,.zoom-control button,.unit-toggle button{min-width:44px;height:44px}.sheet-close{width:44px;height:44px}.app-nav button{min-height:60px}.switch{position:relative}.switch:after{content:"";position:absolute;inset:-12px -6px}.properties-section input,.properties-section select,.field-stack input,.pricing-list input{min-height:44px}}.key-link{display:inline-flex;align-items:center;gap:4px;margin-top:6px;color:#2563eb;font-size:12px;font-weight:600;text-decoration:none}.key-link:hover{text-decoration:underline}.field-stack select{height:36px;padding:0 8px}.preview-scores{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:12px 0;padding:10px;border:1px solid #e6e9ee;border-radius:8px;background:#fbfcfd}.preview-scores div{display:grid;gap:2px;min-width:0}.preview-scores dt{font-size:11px;color:#6b7280}.preview-scores dd{margin:0;font-size:13px;font-weight:700;color:#1f2937}.score-good{color:#15803d}.score-fair{color:#b45309}.score-poor{color:#b91c1c}.check-list.compact{font-size:12px;margin-bottom:12px}.check-list.compact li{padding:7px 9px}.preview-assumptions{margin-bottom:12px;font-size:12px;color:#4b5563}.preview-assumptions summary{cursor:pointer;font-weight:600;color:#2563eb}.preview-assumptions ul{margin:8px 0 0;padding-left:18px;display:grid;gap:5px}.brief-list{display:grid;gap:6px;margin:8px 0 0;padding:0;list-style:none}.brief-list li{display:flex;align-items:flex-start;gap:8px;padding:7px 9px;border-radius:7px;background:#f4f7ff;font-size:12px;line-height:1.4;color:#334155}.brief-list strong{color:#1d4ed8}.brief-list button{flex:0 0 auto;display:grid;place-items:center;padding:2px;border:0;border-radius:5px;background:none;color:#64748b;cursor:pointer}.brief-list button:hover{background:#e0e7ff;color:#1d4ed8}.provenance{margin:12px 0;padding:10px;border:1px solid #e6e9ee;border-radius:8px;background:#fbfcfd}.provenance-route{display:flex;align-items:center;flex-wrap:wrap;gap:2px 6px;margin:0 0 10px;font-size:11px;font-weight:700;letter-spacing:.02em;text-transform:uppercase;color:#475569}.provenance-route span{font-weight:600;text-transform:none;letter-spacing:0;color:#6b7280}.provenance-interpreted{margin:8px 0 0;font-size:12px;line-height:1.5;color:#1f2937}.provenance-critic{margin:8px 0 0;font-size:12px;line-height:1.5;color:#4b5563;font-style:italic}.provenance .preview-assumptions{margin-bottom:10px}.provenance .preview-assumptions:last-child{margin-bottom:0}.preview-assumptions.conflict summary{color:#b45309}.preview-assumptions.conflict ul ul{margin-top:4px;color:#6b7280}.route-toggle{display:flex;align-items:flex-start;gap:10px;margin:4px 0 12px;cursor:pointer}.route-toggle>span{display:grid;gap:2px;min-width:0}.route-toggle strong{font-size:12px;color:#1f2937}.route-toggle small{font-size:11px;line-height:1.45;color:#6b7280}.revise-strength-label{display:block;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:#6b7280;margin-bottom:6px}.revise-strength-label em{text-transform:none;letter-spacing:0;color:#b45309;font-style:normal}.revise-strength{display:grid;gap:6px;margin-top:10px}.revise-strength label,.revise-check{display:flex;gap:8px;align-items:flex-start;padding:8px 10px;border:1px solid #e5e7eb;border-radius:8px;background:#fff;cursor:pointer;font-size:12px}.revise-strength label.active{border-color:#2563eb;background:#f5f9ff}.revise-strength label input,.revise-check input{margin-top:2px}.revise-strength label span,.revise-check span{display:grid;gap:2px}.revise-strength label strong,.revise-check strong{font-size:12px;color:#111827}.revise-strength label small,.revise-check small{font-size:11px;color:#6b7280;line-height:1.35}.revise-check{margin-top:6px}.revise-tradeoffs{margin-top:12px}.revise-request-list{list-style:none;margin:0 0 12px;padding:0;display:grid;gap:10px}.revise-request-list li{padding:9px 10px;border:1px solid #e5e7eb;border-radius:8px;background:#fbfcfe;display:grid;gap:7px}.revise-request-head{display:flex;justify-content:space-between;align-items:flex-start;gap:8px;font-size:12px;color:#111827}.revise-notice.blocking{border-color:#fecaca;background:#fef2f2;color:#7f1d1d}.revise-notice,.revise-conflict{display:flex;gap:8px;align-items:flex-start;padding:9px 10px;border-radius:8px;border:1px solid #fcd34d;background:#fffbeb;color:#92400e;font-size:12px;line-height:1.4;margin:10px 0}.revise-notice button{border:0;background:none;color:inherit;cursor:pointer;padding:0}.revise-conflict p{margin:4px 0 0}.revise-result h3{margin:14px 0 5px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#6b7280;display:flex;align-items:center;gap:5px}.revise-result ul{margin:0;padding-left:17px;display:grid;gap:4px;font-size:12px;color:#374151;line-height:1.45}.revise-result ul.revise-why{margin-top:5px;color:#6b7280;font-size:11.5px}.revise-lede{font-size:13px;color:#111827;line-height:1.5;margin:4px 0 10px}.revise-result.refused{border-color:#fca5a5;background:#fff7f7}.revise-result.refused .panel-title h2{color:#b91c1c}.revise-plan-type{padding:10px;border-radius:8px;border:1px solid #bfdbfe;background:#eff6ff;margin-bottom:4px}.revise-plan-type strong{display:block;font-size:12px;color:#1d4ed8;margin-bottom:4px}.revise-plan-type p{margin:0 0 4px;font-size:12px;color:#1e3a5f;line-height:1.45}.revise-plan-type p:last-child{margin-bottom:0}.revise-unmet{margin-top:14px;padding:10px;border-radius:8px;border:1px solid #fcd34d;background:#fffbeb}.revise-unmet strong{display:block;font-size:12px;color:#92400e;margin-bottom:5px}.revise-unmet ul{color:#78350f}.revise-decision{display:grid;gap:7px;margin-top:16px}.revise-compare-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.revise-compare-grid figure{margin:0;display:grid;gap:5px}.revise-compare-grid figcaption{font-size:11px;color:#6b7280}.revise-thumb{width:100%;height:150px;border:1px solid #e5e7eb;border-radius:8px;background:#fff}.revise-history ol{list-style:none;margin:0;padding:0;display:grid;gap:8px;counter-reset:revision}.revise-history li{padding:8px 10px;border-radius:8px;border:1px solid #e5e7eb;border-left-width:3px;background:#fff;display:grid;gap:3px}.revise-history li.status-accepted{border-left-color:#16a34a}.revise-history li.status-partially-met{border-left-color:#d97706}.revise-history li.status-infeasible{border-left-color:#dc2626}.revise-history li.status-declined{border-left-color:#9ca3af}.revise-history li.status-stale{border-left-color:#a855f7}.revise-history li.status-proposed{border-left-color:#2563eb}.revise-history-head{display:flex;justify-content:space-between;gap:8px;font-size:12px;color:#111827}.revise-history-head em{font-style:normal;font-size:11px;color:#6b7280;white-space:nowrap}.revise-history small{font-size:11px;color:#6b7280;line-height:1.4}@media(max-width:720px),(max-height:500px)and (orientation:landscape){.revise-compare-grid{grid-template-columns:minmax(0,1fr)}}.trial-feedback-open{display:flex;align-items:center;gap:6px;width:100%;margin-top:10px;padding:8px 10px;border:1px dashed #c7d2e0;border-radius:8px;background:#fff;color:#4b5563;font-size:12px;cursor:pointer}.trial-feedback-open:hover{border-color:#2563eb;color:#2563eb}.trial-feedback{border-color:#c7d2e0;background:#fbfcfe}.trial-feedback.sent{font-size:12px;color:#166534;border-color:#bbf7d0;background:#f0fdf4}.trial-feedback.sent p{margin:0}.trial-question{margin-top:12px}.trial-question p{margin:0 0 6px;font-size:12px;color:#111827;line-height:1.4}.trial-rank{display:flex;flex-direction:column;gap:4px}.trial-rank-item{display:flex;align-items:center;gap:8px;padding:7px 9px;border:1px solid #dfe3ea;border-radius:7px;background:#fff;color:#374151;font-size:12px;text-align:left;cursor:pointer}.trial-rank-item:hover:not(:disabled){border-color:#2563eb}.trial-rank-item:disabled{opacity:.45;cursor:default}.trial-rank-item.ranked{border-color:#2563eb;background:#eef5ff;color:#1d4ed8}.trial-rank-place{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;flex:none;border-radius:5px;background:#eef1f6;color:#6b7280;font-size:10.5px;font-weight:700}.trial-rank-item.ranked .trial-rank-place{background:#2563eb;color:#fff}.trial-rank-reset{margin-top:6px;gap:4px;font-size:11px}.trial-scope{margin:6px 0 0;font-size:11.5px;color:#6b7280}.trial-hint{display:block;margin-top:5px;font-size:10.5px;color:#9ca3af}.trial-count{display:block;text-align:right;font-size:10.5px;color:#9ca3af}.trial-failed{margin:8px 0 0;font-size:11.5px;color:#92400e;line-height:1.4}.tour-layer{position:fixed;inset:0;z-index:60;pointer-events:none}.tour-spotlight{position:fixed;border:2px solid #2563eb;border-radius:10px;box-shadow:0 0 0 4px #2563eb29;transition:top .16s ease,left .16s ease,width .16s ease,height .16s ease;pointer-events:none}.tour-card{position:fixed;width:320px;padding:14px 15px 12px;border:1px solid #dfe3ea;border-radius:12px;background:#fff;box-shadow:0 18px 40px #0f172a2e;pointer-events:auto}.tour-card-head{display:flex;align-items:center;justify-content:space-between}.tour-count{font-size:10.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:#6b7280}.tour-card h3{margin:6px 0 5px;font-size:14.5px;color:#111827}.tour-card p{margin:0 0 12px;font-size:12.5px;line-height:1.5;color:#4b5563}.tour-actions{display:flex;align-items:center;justify-content:space-between;gap:8px}.tour-nav{display:flex;align-items:center;gap:6px}.tour-nav .ghost-button:disabled{opacity:.4;cursor:default}.secondary-action.compact{width:auto;padding:6px 11px;font-size:12px}.trial-float{position:fixed;top:62px;right:16px;z-index:55;width:min(340px,calc(100vw - 24px));max-height:calc(100vh - 84px);overflow-y:auto;padding:4px;border:1px solid #dfe3ea;border-radius:12px;background:#fff;box-shadow:0 18px 40px #0f172a2e}.trial-float .panel-section{border:none;margin:0}
