/* /studio-ui.css */
@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500&family=IBM+Plex+Sans:wght@400;500;600;700&display=swap');

/* Presentation-only layer. Catalog, editor geometry and business rules stay unchanged. */
.advisor-product-previews{display:flex;flex-wrap:wrap;gap:var(--space-8);margin-top:var(--space-12);white-space:normal}
.advisor-mini-product{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-4) var(--space-8) var(--space-4) var(--space-4);border:1px solid #3c4144;border-radius:7px;background:#1b1f21;max-width:100%;font-size:10px;color:#c5c9cc}
.advisor-mini-product img{width:36px;height:36px;object-fit:contain;border-radius:4px;background:#fff;flex-shrink:0}.advisor-mini-product span{overflow-wrap:anywhere}
.advisor-typing{display:flex;align-items:center;gap:var(--space-4);width:fit-content;padding:var(--space-12) var(--space-16);margin:0 0 var(--space-12);border:1px solid #363c40;border-radius:10px;background:#23282c}
.advisor-typing span{width:5px;height:5px;border-radius:50%;background:#b8bdc1;animation:advisor-typing-pulse 1.4s ease-in-out infinite}
.advisor-typing span:nth-child(2){animation-delay:.18s}.advisor-typing span:nth-child(3){animation-delay:.36s}
@keyframes advisor-typing-pulse{0%,65%,100%{opacity:.35;transform:translateY(0)}30%{opacity:.9;transform:translateY(-3px)}}
@media(prefers-reduced-motion:reduce){.advisor-typing span{animation:none;opacity:.65}}
.advisor-recommendations{display:grid;gap:var(--space-12);margin-top:var(--space-12);white-space:normal}
.advisor-answer:empty{display:none}.advisor-answer a{color:#ff9e95}
.assistant .advisor-product{display:grid;grid-template-columns:84px minmax(0,1fr);gap:var(--space-8);padding:var(--space-12);background:#1d2022;cursor:default;min-width:0}
.assistant .advisor-product .photo-wrap,.assistant .advisor-product .machine-photo,.assistant .advisor-product .machine-fallback{width:84px;height:84px}
.assistant .advisor-product h3{font-size:13px;line-height:1.35;overflow-wrap:anywhere}
.assistant .advisor-product .meta{font-size:10px;line-height:1.5}
.assistant .advisor-product .level{display:none}
.advisor-reason{display:inline-block;background:#382825;border:1px solid #70423d;border-radius:6px;color:#f3b3ac;font-size:11px;line-height:1.4;padding:var(--space-4) var(--space-8);margin:var(--space-4) 0;overflow-wrap:anywhere}
.assistant .advisor-product .card-foot{flex-wrap:wrap;gap:var(--space-8)}.assistant .advisor-product .price{font-size:16px}.assistant .advisor-product .card-actions{flex-wrap:wrap;gap:var(--space-8)}
.assistant .advisor-product .pdf,.assistant .advisor-product .add{width:auto;height:auto;min-height:36px;padding:var(--space-8) var(--space-8);font-size:11px;white-space:normal;text-align:center}
.assistant .advisor-product .add{background:var(--red);border-color:var(--red)}.assistant .advisor-product .add:disabled{opacity:.4;cursor:default}
.advisor-card-feedback{grid-column:1/-1;font-size:11px;color:#c8ccce;overflow-wrap:anywhere}.advisor-card-feedback:empty{display:none}
@media(max-width:720px){.assistant .advisor-product{grid-template-columns:72px minmax(0,1fr);padding:var(--space-8)}.assistant .advisor-product .photo-wrap,.assistant .advisor-product .machine-photo,.assistant .advisor-product .machine-fallback{width:72px;height:72px}.assistant .advisor-product .card-actions{width:100%}.assistant .advisor-product .card-actions button{flex:1}}
:root{--red:#e5231b;--panel:#171819;--panel2:#222426;--muted:#a3a7aa;--line:#35383b;--paper:#f5f5f2}
body{font-family:"Segoe UI",Arial,sans-serif;font-size:13px;background:#111213}
button,select,input,textarea{font-family:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}
button:focus-visible,a:focus-visible,select:focus-visible{outline:2px solid #ef655e;outline-offset:3px}
*{scrollbar-width:thin;scrollbar-color:#505356 transparent}
.app{height:100dvh;grid-template-rows:76px minmax(0,1fr)}
.topbar{padding:0 var(--space-24);gap:var(--space-24);background:#101112;border-bottom:1px solid #343638}
.brand{font-size:18px;font-weight:850;letter-spacing:-.5px;line-height:1.05}.brand b{color:#ef3b32}.brand small{display:block;font-size:8px;font-weight:600;letter-spacing:2px;color:#8e9295;margin-top:var(--space-8)}
.mark{width:36px;height:40px;border-radius:3px;background:var(--red);font-style:italic;font-size:27px}
.project{display:flex;flex:1;gap:var(--space-4);align-items:flex-start;flex-direction:column;padding-left:var(--space-24)}.project input{width:100%;max-width:240px;font-size:13px}.saved{font-size:10px}
.top-actions{gap:var(--space-8);flex-shrink:0}.btn{font-size:11px;min-height:36px;border-radius:5px;padding:var(--space-8) var(--space-12);transition:background .15s,border-color .15s}.btn:hover{background:#35383a}.btn.red:hover{background:#c51b15}.btn.save-project:hover{background:#ddd}
#exportBtn{border-color:#e5231b;background:#e5231b;color:white}#exportBtn:hover{background:#c51b15}
.workspace{grid-template-columns:380px minmax(0,1fr) 280px;min-width:0;gap:0}
.sidebar{min-width:0;background:#171819;border-color:#353739}.side-head{padding:var(--space-16);border-color:#333537;flex-shrink:0}.sidebar:not(.right)>.side-head{max-height:46vh;overflow:auto}
.filter-label{color:#a3a7aa;font-size:9px;letter-spacing:.1em;margin-bottom:var(--space-4);font-weight:700}
.catalog-brand{font-size:16px;background:#171819;border:0;border-bottom:1px solid #434649;border-radius:0;padding:0 0 var(--space-8);margin-bottom:var(--space-12);cursor:pointer}
.search{background:#252729;border-color:#3b3e40;border-radius:5px;padding:var(--space-8) var(--space-12);font-size:12px}.search::placeholder{color:#a4a7aa}
.filter-row{gap:var(--space-8);margin-top:var(--space-8)}.filter-select,.level-tab{height:32px;padding:var(--space-4) var(--space-8);font-size:10px;border-radius:4px;background:#202224;border-color:#383b3d;color:#d8dbdd}.level-tab{color:#a5a9ac}.level-tab.active{background:#42201f;border-color:#c53a32;color:#fff}
.stock-row{margin-top:var(--space-8);gap:var(--space-4)}.stock-toggle{font-size:10px;min-height:27px}.stock-toggle input{width:13px;height:13px}.catalog-stats{font-size:10px;white-space:normal}.source-link{background:transparent;border:0;padding:var(--space-4) 0;font-size:10px;font-weight:500;color:#a3a7aa}.source-link span{color:#e5e7e9}.source-link:hover{background:transparent;color:white}.catalog-count{margin-top:var(--space-4)}
.catalog-section-tabs{padding:var(--space-8) var(--space-16);gap:var(--space-8);flex-shrink:0}.catalog-section-tabs button{font-size:10px;border-radius:4px;padding:var(--space-8);background:transparent}.catalog-section-tabs button.active{background:#292b2d;border-color:#56595b;box-shadow:inset 0 -2px #e5231b}
.catalog{padding:var(--space-12);gap:var(--space-12);min-height:0;flex:1;scrollbar-gutter:stable;grid-template-columns:repeat(2,minmax(0,1fr))}
.machine-card{display:flex;flex-direction:column;gap:var(--space-8);padding:var(--space-8);background:#222426;border:1px solid #36393b;border-radius:7px;transition:border-color .15s,background .15s;overflow:hidden}.machine-card:hover{background:#292c2e;border-color:#74787b}
.photo-wrap{width:100%;height:112px;border-radius:4px;background:#fff;overflow:hidden}.machine-photo,.machine-fallback{width:100%;height:112px;border-radius:4px;object-fit:contain}.machine-photo{padding:var(--space-8)}.machine-fallback{background:#eceeec;color:#555}
.machine-card h3{font-size:11px;font-weight:650;line-height:1.4;margin:var(--space-4) 0;overflow-wrap:anywhere}.sku{font-size:9px;color:#b7bbbe;letter-spacing:.05em}.level{font-size:8px;border-radius:3px;margin-left:var(--space-4)}.meta{font-size:9px;line-height:1.45;color:#a8adb0;overflow-wrap:anywhere}
.card-foot{display:flex;flex-direction:column;align-items:stretch;gap:var(--space-8);margin-top:auto;padding-top:var(--space-8);border-color:#414446}.price{font-size:16px;letter-spacing:-.5px;font-variant-numeric:tabular-nums}.stock{font-size:9px}.stock-date{font-size:9px;line-height:1.35}
.card-actions{display:flex;flex-wrap:wrap;gap:var(--space-4);justify-content:flex-end;align-items:center}.add,.pdf{width:28px;height:28px;border-radius:4px;background:#313437;border-color:#4a4e51;text-decoration:none}.add{background:#e5231b;border-color:#e5231b;font-size:18px}.add:hover{background:#bd1b15}
.compare-badge,.similar-badge{order:2;width:100%;min-height:29px;justify-content:center;white-space:normal;font-size:10px;font-weight:600;border-radius:4px;line-height:1.3;padding:var(--space-4) var(--space-4)}.compare-badge.suggested{color:#c0c5c9;background:#292d30;border-color:#4b5155}.similar-badge{background:#252d32;border-color:#47565e;color:#c3d5de}
.stage-wrap{min-width:0;min-height:0;overflow:hidden;background:#f5f5f2}.canvas-shell{position:absolute;inset:136px 0 42px}.toolbar{top:14px;left:148px;right:14px;max-width:none;transform:none;display:flex;flex-wrap:wrap;align-content:start;gap:var(--space-4);padding:var(--space-4);border:1px solid #d7d9d8;border-radius:7px;background:#fff;box-shadow:0 4px 16px #15191d10;overflow:visible}
.tool,.tool-select{color:#555b60;border:1px solid transparent;background:transparent;border-radius:4px;font-size:10px;padding:var(--space-8) var(--space-8);height:32px;white-space:nowrap}.tool span{font-size:14px}.tool:hover,.tool-select:hover{background:#f0f1ef;color:#171819}.tool.active{background:#181b1d;color:#fff;border-color:#181b1d}.tool-select{max-width:135px;border-color:#e0e2df}
.area-badge{top:14px;left:14px;width:120px;min-width:0;padding:var(--space-12);background:#fff;border:1px solid #d7d9d8;border-radius:7px;color:#73797c;font-size:8px;letter-spacing:.08em;box-shadow:0 4px 16px #15191d0a}.area-badge strong{display:block;color:#191d20;font-size:23px;letter-spacing:-1px;margin-top:var(--space-4);font-weight:750}
.hint{left:12px;right:12px;bottom:10px;max-width:none;transform:none;text-align:center;font-size:9px;color:#777d81;background:#f5f5f2e8;border:0;padding:var(--space-4);pointer-events:none}
.selbar{max-width:calc(100% - 24px);width:max-content;flex-wrap:wrap;justify-content:center;bottom:44px;border-radius:6px;box-shadow:0 5px 24px #0003}.selbar button,.selbar select,.selbar label{font-size:10px}.selbar select{max-width:180px}#fixturebar,#floorbar{top:140px;bottom:auto}
.right{display:flex;border-left:1px solid #353739}.right .side-head{padding:var(--space-16) var(--space-16)}.side-head h2{font-size:13px;letter-spacing:.02em;margin:0}.panel-scroll{min-height:0;overflow:auto;padding-bottom:var(--space-48)}.kpis{gap:var(--space-8);padding:var(--space-16)}.kpi{border:1px solid #35393c;background:#222527;border-radius:6px;padding:var(--space-12)}.kpi strong{font-size:23px;font-variant-numeric:tabular-nums}.kpi small{font-size:10px;color:#a5aaae}
.section{padding:var(--space-16) var(--space-16);border-color:#35383a}.section-title{margin-bottom:var(--space-12)}.section-title h3{font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:#bec2c5}.section-title span{font-size:13px}.budget-row{font-size:11px;gap:var(--space-12);padding:var(--space-8) 0}.budget-row>span:first-child{min-width:0;overflow-wrap:anywhere}.budget-row>span:last-child,.budget-row>strong:last-child{flex-shrink:0;font-variant-numeric:tabular-nums}.budget-row:has(#total){border-top:1px solid #4b4e50;margin-top:var(--space-4);padding-top:var(--space-12)}.budget-row #total{font-size:22px;letter-spacing:-.7px}.budget-row small{font-size:8px;letter-spacing:.05em;color:#949ba0;margin-top:var(--space-4)}.budget-savings{font-size:10px}
.field label{font-size:10px}.field input,.list-input{border-radius:5px;background:#222527;border-color:#414548;font-size:12px}.roi{border-radius:6px;background:#222527;border:1px solid #35393c;font-size:11px;padding:var(--space-12)}.roi strong{font-size:23px}.file-note{font-size:10px;line-height:1.5;color:#999fa3}.upload{border-radius:5px;border-color:#5b6064;font-size:11px;background:#222527}.replacement-history-empty{font-size:10px;color:#999fa3}.wide{width:100%;margin-top:var(--space-8);white-space:normal}
.assistant-btn{right:16px;bottom:16px;max-width:246px;width:calc(280px - 32px);font-size:11px;border-radius:5px;padding:var(--space-12);background:#292c2e;border:1px solid #555b5f;box-shadow:0 6px 24px #0005}.assistant{right:16px;bottom:65px;border-radius:8px}
.comparison-panel{background:#17191b;border-color:#4b5054;width:min(660px,100vw);box-shadow:-16px 0 60px #0006}.comparison-head{padding:var(--space-24)}.comparison-head strong{font-size:18px;letter-spacing:-.3px}.comparison-current{background:#17191bf5;padding-top:var(--space-16);padding-bottom:var(--space-16)}.comparison-current-card{grid-template-columns:72px minmax(0,1fr) auto}.comparison-current-card img{width:72px;height:72px;border-radius:5px}.alternative-card{padding:var(--space-12);border-radius:5px;background:#23272a;grid-template-columns:55px minmax(0,1fr) auto}.alternative-card img{width:55px;height:55px;border-radius:4px}.alternative-card strong{font-size:12px}.alternative-card small{font-size:10px;line-height:1.4}.alternative-card.selected{border-color:#c04b43;background:#302321}.comparison-photo{height:145px;border-radius:4px}.comparison-table{border-radius:6px}.comparison-table td{font-size:12px}.comparison-price-value{font-size:19px}.comparison-confidence{border-radius:4px}.projects-dialog{border-radius:8px}
@media(min-width:1600px){.workspace{grid-template-columns:440px minmax(0,1fr) 310px}.photo-wrap,.machine-photo,.machine-fallback{height:145px}.machine-card h3{font-size:12px}.assistant-btn{width:278px}.canvas-shell{inset:104px 0 42px}}
@media(min-width:1100px) and (max-width:1350px){.workspace{grid-template-columns:340px minmax(0,1fr) 260px}.topbar{padding:0 var(--space-16);gap:var(--space-16)}.project{padding-left:var(--space-16)}.top-actions .btn{padding:var(--space-8);font-size:10px}.brand{font-size:16px}.assistant-btn{width:228px}.catalog{padding:var(--space-8);gap:var(--space-8)}.machine-card{padding:var(--space-8)}.photo-wrap,.machine-photo,.machine-fallback{height:100px}.toolbar{left:14px;top:86px}.canvas-shell{inset:216px 0 42px}#fixturebar,#floorbar{top:220px}.area-badge{width:130px}.area-badge strong{font-size:21px}.area-badge{padding:var(--space-8) var(--space-12)}.project input{max-width:180px}}
@media(min-width:721px) and (max-width:1099px){body{overflow:auto}.app{height:auto;min-height:100dvh;grid-template-rows:70px auto}.workspace{display:grid;grid-template-columns:340px minmax(0,1fr);grid-template-rows:calc(100dvh - 70px) auto}.right{grid-column:1/-1;height:auto;display:flex}.right .panel-scroll{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));padding-bottom:var(--space-48)}.project{display:none}.topbar{padding:0 var(--space-12);gap:var(--space-12)}.top-actions .btn{font-size:10px;padding:var(--space-8)}.brand{font-size:15px}.toolbar{left:14px;top:86px}.canvas-shell{inset:210px 0 42px}.assistant-btn{position:fixed;width:auto}.assistant{position:fixed}#fixturebar,#floorbar{top:214px}}
@media(max-width:720px){body{overflow:auto}.app{height:auto;grid-template-rows:auto auto}.topbar{padding:var(--space-12);flex-wrap:wrap;gap:var(--space-12);position:relative}.brand{font-size:16px}.project{display:none}.top-actions{width:100%;display:flex;gap:var(--space-4)}.top-actions .ghost{display:block}.top-actions .btn{flex:1;min-width:0;font-size:9px;padding:var(--space-8) var(--space-4)}.workspace{display:flex;flex-direction:column}.sidebar:not(.right){height:650px}.sidebar:not(.right)>.side-head{max-height:none}.stage-wrap{height:80dvh;min-height:560px}.toolbar{left:14px;right:14px;top:86px;max-width:none;transform:none;overflow:visible}.canvas-shell{inset:210px 0 42px}.right{height:auto;display:flex}.right .panel-scroll{padding-bottom:var(--space-48)}.assistant-btn{position:fixed;width:auto;right:14px;bottom:14px}.assistant{position:fixed;right:14px;width:calc(100vw - 28px)}.photo-wrap,.machine-photo,.machine-fallback{height:130px}.comparison-current-card{grid-template-columns:48px minmax(0,1fr) auto}.comparison-current-card img{width:48px;height:48px}.comparison-current-price{font-size:12px}.comparison-table td{font-size:10px}.comparison-photo{height:95px}.comparison-head{padding:var(--space-16)}.area-badge{top:14px}#fixturebar,#floorbar{top:214px}.selbar{width:calc(100% - 24px)}}
.catalog{grid-auto-rows:max-content}.machine-card{min-height:max-content}.machine-card>*{flex-shrink:0}.sidebar:not(.right)>.side-head{max-height:53vh}
.right .panel-scroll{padding-left:0;padding-right:0;padding-top:0}.right .section{margin-top:0;border-top:1px solid #35383a}
.hint{font-size:11px;line-height:1.4}#similarPlacedBtn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-4)}#similarPlacedBtn svg{width:12px;height:12px}#similarPlacedBtn[hidden]{display:none}
.wall-angle-tip{position:absolute;z-index:5;left:50%;top:12px;transform:translateX(-50%);width:max-content;max-width:calc(100% - 32px);padding:9px 12px;border:1px solid var(--line,#d1d0cb);border-radius:5px;background:var(--panel,#faf9f5);color:var(--muted,#777d81);box-shadow:0 3px 12px #00000010;font-size:11px;line-height:1.5;text-align:center;pointer-events:none}.wall-angle-tip[hidden]{display:none}.wall-angle-tip kbd{padding:1px 5px;border:1px solid var(--line,#d1d0cb);border-radius:3px;background:var(--panel2,#f1f0ec);color:var(--ink,#333);font:inherit;font-weight:600}
.object-action .action-hit{fill:transparent;stroke:none}.object-action .action-disc{fill:#fffffff2;stroke:#bfc5ca;stroke-width:.7}.object-action .action-icon{fill:none;stroke:#606a73;stroke-width:1.1;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}.object-action:hover .action-disc,.object-action:focus-visible .action-disc{fill:#f1f4f5;stroke:#78838d}.object-action:focus-visible{outline:none}
.similar-badge.ready{display:inline-grid;place-items:center;order:0;width:26px;height:26px;min-height:26px;padding:0;border-radius:5px;background:transparent;border-color:#454b50;color:#abb4bc}.similar-badge svg{width:12px;height:12px}.similar-badge.ready:hover{background:#30363a;color:#e3e7ea}
#deleteBtn,#lockBtn,#floorLock,#floorDelete,#fixtureDelete{display:inline-flex;align-items:center;justify-content:center}#deleteBtn svg,#lockBtn svg,#floorLock svg,#floorDelete svg,#fixtureDelete svg{width:12px;height:12px}
.toolbar .tool,.toolbar .tool-select{font-size:12px;font-weight:600;line-height:1.2}.toolbar .tool span{font-size:14px}.toolbar .tool-select{font-weight:500}
@media(min-width:1100px){.toolbar{top:14px;left:148px;right:14px;min-height:80px}.area-badge{height:80px;display:flex;flex-direction:column;justify-content:center}.canvas-shell{top:104px}#fixturebar,#floorbar{top:106px}}
@media(min-width:1100px) and (max-width:1350px){.toolbar{display:grid;grid-template-columns:1.05fr .75fr 1.3fr .9fr 1.35fr;grid-auto-rows:32px;gap:var(--space-4);height:80px;min-height:80px;padding:var(--space-4) var(--space-4);align-content:center}.toolbar .tool,.toolbar .tool-select{min-width:0;width:100%;height:32px;padding:var(--space-4) var(--space-4);text-align:left}.toolbar .tool-select{max-width:none}.toolbar .tool span{margin-right:var(--space-4)}}
@media(min-width:721px) and (max-width:1099px){.area-badge{height:72px}.toolbar{top:100px}.canvas-shell{top:228px}#fixturebar,#floorbar{top:230px}}
@media(max-width:720px){.area-badge{height:72px}.toolbar{top:100px}.canvas-shell{top:240px}#fixturebar,#floorbar{top:242px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;scroll-behavior:auto!important}}

/* The commercial advisor is a permanent part of the planning workspace. */
.workspace{grid-template-columns:350px minmax(0,1fr) 460px}
.right{overflow:hidden;min-height:0;background:#17191b}
.advisor-tabs{display:flex;gap:0;padding:0;border-bottom:1px solid #353739;flex-shrink:0;background:#111315}
.advisor-tabs button{flex:1;border:0;background:transparent;color:#a4a9ad;border-radius:0;padding:var(--space-16) var(--space-4);font-size:12px;font-weight:650;cursor:pointer;white-space:nowrap}
.advisor-tabs button+button{border-left:1px solid #565052}
.advisor-tabs button.active{background:#33201f;color:#fff;box-shadow:inset 0 -3px #e5231b}
.right .assistant{position:static;width:100%;max-height:none;min-height:0;flex:1;border:0;border-radius:0;box-shadow:none;background:transparent;display:flex;flex-direction:column;overflow:hidden}
.right [role="tabpanel"][hidden]{display:none!important}
.assistant-head{padding:var(--space-16) var(--space-16);align-items:center;gap:var(--space-8);border:0;border-bottom:1px solid #353334;background:linear-gradient(110deg,#2a1c1c,#191b1d 75%);flex-shrink:0}
.advisor-avatar{width:36px;height:36px;display:grid;place-items:center;flex-shrink:0;background:#382321;color:#ff827a;border:1px solid #6b3530;border-radius:10px;font-size:23px}
.advisor-title{min-width:0;flex:1}.advisor-title strong{display:block;font-size:14px}.advisor-title span{display:block;font-size:10px;color:#a2a8ac;margin-top:var(--space-4)}
.assistant-head #evaNewChat{font-size:10px;color:#c2c6c9;border:1px solid #414649;border-radius:5px;padding:var(--space-8);white-space:nowrap}
#evaStatus{position:absolute;width:1px;height:1px;padding:0;margin:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.right .assistant .messages{min-height:0;max-height:none;flex:1;padding:var(--space-24) var(--space-16);overflow:auto}
.advisor-welcome{padding-top:0}.advisor-eyebrow{color:#ed827a;font-size:9px;font-weight:750;letter-spacing:.13em}.advisor-welcome h2{font-size:26px;line-height:1.2;letter-spacing:-.7px;margin:var(--space-8) 0;color:#f3f3f3;max-width:none}.advisor-welcome p{font-size:13px;color:#aeb4b8;line-height:1.6;margin:0 0 var(--space-12)}
.advisor-prompts{display:flex;flex-wrap:wrap;gap:var(--space-4)}.advisor-prompts button{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);text-align:left;padding:var(--space-8) var(--space-8);border:1px solid #383e41;border-radius:6px;background:transparent;color:#aeb5b9;font-size:10px;cursor:pointer}.advisor-prompts button:hover{border-color:#ba5149;background:#302523;color:#fff}.advisor-prompts span{color:#a7746e;font-size:12px}
.assistant .bubble{line-height:1.65;border:1px solid #363c40;background:#23282c;margin-bottom:var(--space-12);padding:var(--space-12);border-radius:10px;font-size:12px}.assistant .bubble.user{background:#3b2421;border-color:#754039;margin-left:var(--space-24)}
.advisor-compose{padding:var(--space-16) var(--space-16) var(--space-16);background:#17191b;border-top:1px solid #33383b;flex-shrink:0}.advisor-compose>label{display:block;font-size:15px;font-weight:700;margin-bottom:var(--space-12)}.advisor-compose .ask{display:flex;flex-direction:column;padding:var(--space-12);border:1px solid #875049;background:linear-gradient(145deg,#2d2828,#222629);border-radius:12px;gap:var(--space-12);box-shadow:0 5px 22px #0002}.advisor-compose .ask:focus-within{border-color:#e6756c}.advisor-compose .ask textarea{width:100%;min-height:130px;max-height:220px;resize:vertical;border:0;outline:0;background:transparent;color:#fff;padding:var(--space-4);font-size:15px;line-height:1.6}.advisor-compose .ask textarea::placeholder{color:#b3b7ba}.advisor-send{display:flex;align-items:center;justify-content:space-between;gap:var(--space-12)}.advisor-send span{font-size:9px;line-height:1.5;color:#a3a8ac;max-width:160px}.advisor-compose .ask button{min-height:42px;padding:var(--space-8) var(--space-12);font-size:12px;font-weight:700;border-radius:7px;white-space:nowrap}.advisor-compose>p{font-size:10px;color:#8f969b;text-align:center;margin:var(--space-12) 0 0}
.advisor-conversation{flex:1;min-height:0;display:flex;flex-direction:column;margin:var(--space-16) var(--space-16) var(--space-12);border:1px solid #875049;border-radius:12px;background:linear-gradient(145deg,#2d2828,#222629);overflow:hidden;box-shadow:0 5px 22px #0002}
.advisor-conversation:focus-within{border-color:#e6756c}
.right .assistant .advisor-conversation .messages{flex:1;min-height:0;padding:var(--space-16);overflow:auto;overscroll-behavior:contain}
.advisor-conversation .advisor-compose{flex:0 0 auto;padding:var(--space-12);background:transparent;border-top:1px solid #474044}
.advisor-conversation .advisor-compose .ask{padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;gap:var(--space-8)}
.advisor-conversation .advisor-compose .ask textarea{height:104px;min-height:104px;max-height:104px;resize:none;overflow:auto}
.advisor-import{flex-shrink:0;padding:var(--space-16) var(--space-16);border-top:1px solid #353b3e;background:#1d2022;max-height:40%;overflow:auto}
.advisor-import .section-title{margin-bottom:var(--space-8)}.advisor-import .section-title h3{font-size:11px;color:#d7dcdf}.advisor-import .upload{display:block;padding:var(--space-12);font-size:12px}.advisor-import .file-note{margin-top:var(--space-8)}
.advisor-send{justify-content:flex-end}.right .assistant .messages{padding-top:var(--space-8);padding-bottom:var(--space-16)}
.right .panel-scroll{flex:1;display:block;padding-bottom:var(--space-24)}
@media(min-width:1600px){.workspace{grid-template-columns:410px minmax(0,1fr) 500px}.advisor-welcome h2{font-size:28px}}
@media(min-width:1100px) and (max-width:1350px){.workspace{grid-template-columns:280px minmax(0,1fr) 400px}.advisor-tabs button{font-size:12px}.assistant-head{padding-left:var(--space-16);padding-right:var(--space-16)}}
@media(min-width:721px) and (max-width:1099px){.workspace{grid-template-columns:280px minmax(0,1fr);grid-template-rows:calc(100dvh - 70px) auto}.right{height:640px;grid-column:1/-1}.right .panel-scroll{display:block}.advisor-welcome{max-width:480px;padding-top:var(--space-8)}.advisor-welcome h2{max-width:none}}
@media(max-width:720px){.right{height:760px;min-height:680px}.right .panel-scroll{padding-bottom:var(--space-24)}.advisor-welcome{padding-top:var(--space-12)}.advisor-tabs button{font-size:12px}.advisor-send span{max-width:130px}}

/* Technical workbench: presentation only, preserving editor and advisor behavior. */
:root {
  --ink: #20272c;
  --panel: #ffffff;
  --panel2: #f2f3ef;
  --muted: #5d6972;
  --line: #d5dadd;
  --paper: #f2f3ef;
  --red: #c33b2f;
  --technical-mono: 'IBM Plex Mono', Consolas, monospace;
}
body { background: var(--paper); color: var(--ink); font-family: 'IBM Plex Sans', 'Segoe UI', sans-serif; }
button, input, select, textarea { font-family: inherit; }
button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible {
  outline: 2px solid var(--red); outline-offset: 3px;
}
* { scrollbar-color: var(--line) transparent; }
.topbar { background: var(--ink); border-color: var(--ink); color: #fff; }
.brand { font-weight: 600; letter-spacing: 0; }
.brand b { color: #fff; font-weight: 600; }
.brand small { color: #d5dadd; font-size: 10px; font-weight: 400; letter-spacing: .03em; }
.mark { border-radius: 2px; background: var(--red); }
.project { border-color: var(--muted); }
.saved { color: #d5dadd; }
.btn { border-radius: 4px; font-weight: 500; background: var(--paper); border-color: var(--line); color: var(--ink); }
.btn:hover { background: #fff; border-color: var(--muted); }
.btn.red, #exportBtn { background: var(--red); border-color: var(--red); color: #fff; }
.btn.red:hover, #exportBtn:hover { background: var(--red); filter: brightness(.92); }
.top-actions .btn:not(.save-project):not(.red) { background: transparent; color: #fff; border-color: var(--muted); }
.top-actions .btn:not(.save-project):not(.red):hover { background: var(--muted); }
.btn.save-project { background: #fff; color: var(--ink); border-color: #fff; }
.sidebar, .right { background: var(--paper); border-color: var(--line); }
.side-head { background: var(--paper); border-color: var(--line); }
.filter-label { font-size: 11px; font-weight: 500; letter-spacing: 0; color: var(--muted); text-transform: lowercase; }
.filter-label::first-letter { text-transform: uppercase; }
.catalog-brand { background: transparent; color: var(--ink); border-color: var(--line); font-size: 20px; font-weight: 600; }
.search, .filter-select, .level-tab { background: #fff; color: var(--ink); border-color: var(--line); border-radius: 4px; }
.search { font-size: 13px; padding: var(--space-8); }
.search::placeholder { color: var(--muted); }
.filter-select { font-size: 12px; }
.level-tab { font-size: 11px; font-weight: 500; min-width: 0; padding: var(--space-4) var(--space-4); }
.level-tab.active { background: var(--ink); border-color: var(--ink); color: #fff; box-shadow: inset 0 -2px var(--red); }
.stock-toggle { color: var(--ink); font-size: 11px; }
.catalog-stats, .catalog-count, .source-link, .source-link span { color: var(--muted); font-size: 11px; }
.source-link:hover { color: var(--ink); }
.catalog-section-tabs { border-color: var(--line); background: var(--paper); grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); }
.catalog-section-tabs button { color: var(--muted); border-color: transparent; border-radius: 0; font-size: 12px; font-weight: 500; }
.catalog-section-tabs button.active { background: transparent; color: var(--ink); border-color: transparent; box-shadow: inset 0 -2px var(--red); }
.catalog { grid-template-columns: minmax(0, 1fr); gap: var(--space-8); padding: var(--space-12); background: var(--paper); }
.catalog .machine-card {
  display: grid; grid-template-columns: 82px minmax(0, 1fr); grid-template-rows: auto auto;
  gap: var(--space-8) var(--space-12); padding: var(--space-12); border: 1px solid var(--line); border-radius: 2px;
  background: #fff; color: var(--ink); box-shadow: none;
}
.catalog .machine-card:hover { background: #fff; border-color: var(--muted); }
.catalog .photo-wrap, .catalog .machine-photo, .catalog .machine-fallback {
  width: 82px; height: 100px; border-radius: 0; background: #fff;
}
.catalog .machine-photo { padding: var(--space-4); }
.catalog .machine-fallback { background: var(--paper); color: var(--muted); font-family: var(--technical-mono); }
.catalog .machine-card h3 { font-size: 15px; font-weight: 600; line-height: 1.3; margin: var(--space-8) 0; letter-spacing: -.15px; }
.sku { color: var(--muted); font-family: var(--technical-mono); font-size: 11px; font-weight: 400; letter-spacing: 0; }
.level { border-radius: 2px; padding: var(--space-4) var(--space-4); font-size: 9px; line-height: 1.2; font-weight: 600; letter-spacing: .02em; }
.level.pro { background: var(--ink); color: #fff; border-color: var(--ink); }
.level.semi { background: #fff; color: var(--ink); border-color: var(--muted); }
.level.home { background: var(--paper); color: var(--ink); border-color: var(--line); }
.meta { color: var(--muted); font-size: 12px; line-height: 1.5; }
.dimensions-pending, .machine-note { color: var(--muted); }
.card-foot { border-color: var(--line); }
.catalog .card-foot { grid-column: 1 / -1; flex-direction: row; align-items: center; flex-wrap: wrap; gap: var(--space-8); padding-top: var(--space-8); }
.price { color: var(--ink); font-size: 18px; font-weight: 600; letter-spacing: 0; font-variant-numeric: tabular-nums; }
.stock, .stock.ok, .stock.low, .stock.out, .stock-date { color: var(--muted); font-size: 11px; font-weight: 400; }
.stock.out, .stock.low { text-decoration: underline; text-decoration-style: dotted; text-underline-offset: 3px; }
.card-actions { margin-left: auto; gap: var(--space-4); }
.catalog .card-actions button, .add, .pdf, .similar-badge.ready {
  color: var(--ink); background: #fff; border: 1px solid var(--line); border-radius: 4px;
  width: 30px; height: 30px; min-height: 30px;
}
.catalog .card-actions button:hover, .add:hover, .pdf:hover, .similar-badge.ready:hover {
  background: var(--paper); border-color: var(--muted); color: var(--ink);
}
.compare-badge, .similar-badge, .compare-badge.suggested, .explore-badge {
  background: var(--paper); border-color: var(--line); color: var(--ink); border-radius: 4px;
}
.pack-contents { color: var(--muted); }
.stage-wrap, .plan { background: var(--paper); }
.toolbar, .area-badge { border-color: var(--line); border-radius: 2px; box-shadow: none; }
.tool, .tool-select { color: var(--muted); font-weight: 500; }
.tool.active { background: var(--ink); color: #fff; border-color: var(--ink); }
.area-badge { color: var(--muted); font-size: 10px; letter-spacing: 0; }
.area-badge strong { color: var(--ink); font-size: 22px; font-weight: 600; letter-spacing: -.5px; }
.hint { color: var(--muted); background: var(--paper); }
.selbar { background: var(--ink); color: #fff; border-color: var(--muted); border-radius: 4px; }
.floor-metrics, .floor-metrics strong { color: #fff; }
.measure-editor { background: #fff; color: var(--ink); border-color: var(--line); border-radius: 4px; }
.measure-editor input { background: var(--paper); color: var(--ink); border-color: var(--line); border-radius: 4px; }
.measure-editor button { color: #fff; border-radius: 4px; }
.measure-editor .close-measure { background: var(--ink); color: var(--panel); }

/* The advisor reads as a working document rather than a stack of product cards. */
.advisor-tabs { background: var(--paper); border-color: var(--line); }
.advisor-tabs button { color: var(--muted); font-weight: 500; padding: var(--space-16) var(--space-4); }
.advisor-tabs button + button { border-color: var(--line); }
.advisor-tabs button.active { background: var(--paper); color: var(--ink); box-shadow: inset 0 -2px var(--red); }
.assistant-head { background: var(--ink); color: #fff; border-color: var(--ink); padding: var(--space-16) var(--space-16); }
.advisor-avatar { background: transparent; border-color: var(--muted); color: #fff; border-radius: 2px; font-size: 19px; }
.advisor-title strong { font-size: 15px; font-weight: 600; }
.advisor-title span { color: #d5dadd; font-size: 11px; }
.assistant-head #evaNewChat { color: #fff; border-color: var(--muted); font-size: 11px; border-radius: 4px; }
.advisor-conversation { margin: var(--space-16) var(--space-16) var(--space-12); border: 1px solid var(--line); border-radius: 2px; background: #fff; box-shadow: none; }
.advisor-conversation:focus-within { border-color: var(--line); }
.right .assistant .advisor-conversation .messages { padding: var(--space-16); }
.advisor-welcome { padding-top: 0; }
.advisor-welcome h2 { color: var(--ink); font-size: 19px; font-weight: 600; line-height: 1.35; letter-spacing: -.2px; margin: 0 0 var(--space-8); }
.advisor-welcome p { color: var(--muted); font-size: 14px; line-height: 1.6; }
.advisor-prompts { display: flex; flex-wrap: wrap; gap: var(--space-8); margin-top: var(--space-12); }
.advisor-prompts button { flex: 1 1 calc(50% - 4px); min-width: 0; border: 1px solid var(--line); border-radius: 4px; padding: var(--space-8) var(--space-12); background: var(--paper); color: var(--ink); font-size: 12px; line-height: 1.4; }
.advisor-prompts button:hover { color: var(--ink); background: var(--paper); border-color: var(--muted); }
.advisor-prompts span { color: var(--muted); }
.assistant .bubble { background: transparent; color: var(--ink); border: 0; border-bottom: 1px solid var(--line); border-radius: 0; padding: 0 0 var(--space-16); margin-bottom: var(--space-16); font-size: 14px; line-height: 1.7; }
.assistant .bubble.user { background: #fff; color: var(--ink); border: 1px solid var(--line); border-left: 3px solid var(--muted); border-radius: 2px; padding: var(--space-12) var(--space-12); margin-left: var(--space-24); }
.advisor-answer a { color: var(--red); text-decoration: underline; }
.advisor-conversation .advisor-compose { padding: var(--space-12) var(--space-16); border-color: var(--line); background: #fff; }
.advisor-conversation .advisor-compose > label { color: var(--muted); font-size: 12px; font-weight: 500; margin-bottom: var(--space-8); }
.advisor-conversation .advisor-compose .ask { background: transparent; border: 0; border-radius: 0; padding: 0; box-shadow: none; }
.advisor-conversation .advisor-compose .ask textarea { height: 88px; min-height: 88px; max-height: 88px; background: #fff; border: 1px solid var(--line); border-radius: 4px; padding: var(--space-8) var(--space-12); }
.advisor-conversation .advisor-compose .ask textarea:focus-visible { border-color: var(--red); outline: 2px solid var(--red); outline-offset: 2px; }
.advisor-compose .ask textarea { color: var(--ink); font-size: 14px; line-height: 1.6; }
.advisor-compose .ask textarea::placeholder { color: var(--muted); }
.advisor-compose .ask button { display: inline-flex; align-items: center; justify-content: center; gap: var(--space-8); background: var(--red); color: #fff; border-radius: 4px; font-size: 12px; font-weight: 500; min-height: 36px; padding: var(--space-8) var(--space-12); }
.advisor-compose .ask button:hover { filter: brightness(.92); }
.advisor-send { flex-wrap: wrap; gap: var(--space-8); }
/* Quiet key hints stay with the four plan controls, including changing labels. */
.toolbar [data-shortcut]::after {
  content: attr(data-shortcut); display: inline-flex; align-items: center; justify-content: center; flex: none;
  min-width: 14px; min-height: 15px; margin-left: var(--space-4); padding: 0 var(--space-4);
  border: 0; border-radius: 0;
  background: transparent; color: var(--muted); opacity: .55;
  font: 400 9px/1.2 var(--technical-mono); letter-spacing: 0; white-space: nowrap; pointer-events: none;
}
.toolbar .tool.active[data-shortcut]::after { color: #fff; }
.layout2d-view .toolbar #snapBtn { display: inline-flex; align-items: center; justify-content: center; gap: var(--space-4); }
.layout2d-view .toolbar #snapBtn::after { color: var(--muted); }
.layout2d-view .toolbar .tool[data-shortcut] { font-size: 12px; }
@container plan-pane (max-width:410px) {
  .layout2d-view .toolbar .tool[data-shortcut] { flex-wrap: wrap; font-size: 11px; gap: var(--space-4); padding: var(--space-4) var(--space-4); }
  .layout2d-view .toolbar .tool[data-shortcut] span { font-size: 12px; }
  .layout2d-view .toolbar .tool[data-shortcut]::after { min-height: 13px; padding: 0 var(--space-4); margin-left: 0; }
}
/* Conversation above, clearly labeled writing area pinned below in the same frame. */
@media(min-width:1100px) and (max-height:760px) {
  .advisor-tabs button { padding-top: var(--space-12); padding-bottom: var(--space-12); }
  .assistant-head { padding-top: var(--space-12); padding-bottom: var(--space-12); }
  .advisor-conversation { margin-top: var(--space-8); margin-bottom: var(--space-8); }
  .advisor-import { padding-top: var(--space-8); padding-bottom: var(--space-8); }
  .advisor-import .upload { padding-top: var(--space-8); padding-bottom: var(--space-8); }
  .right .assistant .advisor-conversation:has(.advisor-welcome) .messages { padding: var(--space-8) var(--space-16) var(--space-8); }
  .advisor-welcome h2 { font-size: 17px; margin-bottom: var(--space-4); }
  .advisor-welcome p { font-size: 13px; line-height: 1.45; margin-bottom: 0; }
  .advisor-prompts { margin-top: var(--space-8); gap: var(--space-4); }
  .advisor-prompts button { padding: var(--space-8) var(--space-8); font-size: 11.5px; }
  .advisor-conversation .advisor-compose { padding: var(--space-8) var(--space-12); }
  .advisor-conversation .advisor-compose .ask textarea { height: 64px; min-height: 64px; max-height: 64px; }
}
.advisor-import { background: var(--paper); border-color: var(--line); }
.section-title h3, .advisor-import .section-title h3 { color: var(--ink); font-size: 13px; font-weight: 600; text-transform: none; letter-spacing: 0; }
.section-title span { font-variant-numeric: tabular-nums; }
.file-note, .replacement-history-empty { color: var(--muted); font-size: 11px; }
.upload { background: #fff; color: var(--ink); border-color: var(--line); border-radius: 4px; }
.advisor-typing { background: transparent; border: 0; border-radius: 0; padding: var(--space-8) 0; }
.advisor-typing span { background: var(--muted); }
.advisor-card-feedback { color: var(--muted); }
.assistant .advisor-product { background: #fff; color: var(--ink); border-color: var(--line); border-radius: 2px; }
.assistant .advisor-product h3 { color: var(--ink); font-size: 14px; font-weight: 600; }
.assistant .advisor-product .meta { color: var(--muted); font-size: 12px; }
.assistant .advisor-product .level { display: inline-flex; }
.advisor-reason { background: transparent; color: var(--muted); border: 0; border-left: 2px solid var(--line); border-radius: 0; padding: var(--space-4) var(--space-8); font-size: 12px; }
.assistant .advisor-product .pdf { background: #fff; color: var(--ink); border-color: var(--line); }
.assistant .advisor-product .add { color: #fff; }

/* Supporting panels share the same technical reading hierarchy. */
.right .section, .right .side-head { border-color: var(--line); }
.kpi, .roi { background: #fff; color: var(--ink); border-color: var(--line); border-radius: 2px; box-shadow: none; }
.kpi strong, .roi strong { font-weight: 600; }
.kpi small { color: var(--muted); font-size: 12px; }
.budget-row { font-size: 12px; }
.budget-row:has(#total) { border-color: var(--line); }
.budget-row small, .budget-row .tile-detail { color: var(--muted); letter-spacing: 0; font-size: 10px; }
.field label { color: var(--muted); font-size: 12px; }
.field input, .list-input { background: #fff; color: var(--ink); border-color: var(--line); border-radius: 4px; }
.comparison-panel { background: #fff; color: var(--ink); border-color: var(--line); }
.comparison-head, .comparison-current { background: #fff; border-color: var(--line); }
.comparison-close { background: var(--paper); color: var(--ink); border-radius: 4px; }
.comparison-eyebrow, .alternatives-title h3 { color: var(--muted); font-weight: 500; text-transform: none; letter-spacing: 0; font-size: 12px; }
.comparison-current-card small, .alternative-card small, .comparison-sub, .alternatives-title span { color: var(--muted); font-size: 11px; }
.alternative-card { background: #fff; color: var(--ink); border-color: var(--line); border-radius: 2px; }
.alternative-card:hover, .alternative-card.selected { background: var(--paper); border-color: var(--muted); }
.alternative-card.selected { border-left: 3px solid var(--red); }
.alternative-price, .comparison-current-price, .comparison-price-value { font-weight: 600; font-variant-numeric: tabular-nums; }
.comparison-table { background: #fff; border-color: var(--line); border-radius: 2px; }
.comparison-table th, .comparison-table td { border-color: var(--line); }
.comparison-table thead th { background: var(--paper); font-weight: 600; }
.comparison-table tbody th { background: var(--paper); color: var(--muted); font-size: 11px; text-transform: none; letter-spacing: 0; }
.comparison-name { font-weight: 600; }
.comparison-confidence, .comparison-confidence.verified, .explore-note { background: var(--paper); color: var(--ink); border-color: var(--line); border-radius: 2px; }
.comparison-price-value.best { color: var(--ink); text-decoration: underline; text-underline-offset: 4px; }
.technical-list, .comparison-empty, .comparison-loading { color: var(--muted); }
.comparison-error { color: var(--red); }
.projects-dialog { background: #fff; color: var(--ink); border-color: var(--line); border-radius: 8px; }
.projects-head { border-color: var(--line); }
.project-row { background: var(--paper); color: var(--ink); border-color: var(--line); border-radius: 2px; }
.project-row.current { border-color: var(--red); }
.project-meta, .project-empty { color: var(--muted); }
.project-actions button { background: #fff; color: var(--ink); border-color: var(--line); border-radius: 4px; }
.project-actions .project-delete, .save-error { color: var(--red); }
.image-zoom { border-radius: 8px; border-color: var(--line); }
@media(min-width:1100px) and (max-width:1350px) {
  .workspace { grid-template-columns: 320px minmax(0, 1fr) 380px; }
}
@media(max-width:720px) {
  .catalog { padding: var(--space-12); }
  .catalog .machine-card { grid-template-columns: 96px minmax(0, 1fr); }
  .catalog .photo-wrap, .catalog .machine-photo, .catalog .machine-fallback { width: 96px; height: 108px; }
  .right .assistant .advisor-conversation .messages { padding: var(--space-16); }
}

/* Display preferences stay separate from tools that edit the plan. */
.layout2d-view .toolbar .plan-display-controls { position: absolute; top: calc(100% + 12px); right: 0; display: flex; align-items: center; gap: var(--space-4); }
.layout2d-view .toolbar .plan-display-controls #snapBtn { position: static; box-shadow: none; }
.layout2d-view .toolbar :is(#dimensionsToggle,#gridToggle) { display: grid; place-items: center; width: 32px; height: 30px; padding: var(--space-4); color: var(--muted); background: #fff; border: 1px solid var(--line); border-radius: 0; cursor: pointer; }
:is(#dimensionsToggle,#gridToggle) svg { width: 18px; height: 18px; pointer-events: none; }
#dimensionsToggle .eye-slash { display: none; }
#dimensionsToggle[aria-pressed='false'] .eye-slash { display: block; }
.layout2d-view .toolbar :is(#dimensionsToggle,#gridToggle):hover { border-color: var(--muted); background: var(--paper); }
.plan.dimensions-hidden .dim, .plan.dimensions-hidden .machine-size { display: none; }
.plan.grid-hidden #grid { display:none; }
#gridToggle .grid-slash { display:none; }
#gridToggle[aria-pressed='false'] .grid-slash { display:block; }

.catalog-view-bar { display: flex; align-items: center; justify-content: space-between; gap: var(--space-8); flex-shrink: 0; padding: var(--space-8) var(--space-12); border-bottom: 1px solid var(--line); color: var(--muted); background: var(--paper); font-size: 11px; }
.catalog-view-options { display: flex; gap: var(--space-4); }
.catalog-view-options button { display: inline-flex; align-items: center; justify-content: center; gap: var(--space-4); min-height: 30px; padding: var(--space-4) var(--space-8); border: 1px solid transparent; border-radius: 3px; color: var(--muted); background: transparent; font: inherit; cursor: pointer; white-space: nowrap; }
.catalog-view-options svg { width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-width: 1px; shape-rendering: crispEdges; }
.catalog-view-options svg path { vector-effect: non-scaling-stroke; }
.catalog-view-options button[aria-pressed='true'] { color: var(--ink); border-color: var(--line); background: #fff; }
.catalog-view-options button:hover { border-color: var(--muted); }
.catalog-view-options button:focus-visible, #dimensionsToggle:focus-visible { outline: 2px solid var(--muted); outline-offset: 2px; }
.catalog[data-view='columns'], .catalog[data-view='compact'] { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-8); }
.catalog[data-view='columns'] .machine-card, .catalog[data-view='compact'] .machine-card { grid-template-columns: minmax(0, 1fr); grid-template-rows: auto 1fr auto; gap: var(--space-8); padding: var(--space-8); }
.catalog[data-view='columns'] .photo-wrap, .catalog[data-view='columns'] .machine-photo, .catalog[data-view='columns'] .machine-fallback,
.catalog[data-view='compact'] .photo-wrap, .catalog[data-view='compact'] .machine-photo, .catalog[data-view='compact'] .machine-fallback { width: 100%; height: 100px; }
.catalog[data-view='columns'] .machine-card h3 { font-size: 13px; line-height: 1.35; min-height: 2.7em; margin: var(--space-4) 0; }
.catalog[data-view='columns'] .meta, .catalog[data-view='compact'] .meta { font-size: 11px; }
.catalog[data-view='columns'] .card-foot, .catalog[data-view='compact'] .card-foot { align-items: stretch; flex-direction: column; gap: var(--space-8); }
.catalog[data-view='columns'] .card-actions, .catalog[data-view='compact'] .card-actions { margin-left: 0; justify-content: flex-end; }
.catalog[data-view='columns'] .price, .catalog[data-view='compact'] .price { font-size: 16px; }
.catalog[data-view='columns'] .price.pending, .catalog[data-view='compact'] .price.pending { font-size: 11px; }
.catalog[data-view='compact'] { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-4); padding: var(--space-8); }
.catalog[data-view='compact'] .machine-card { padding: var(--space-8); gap: var(--space-4); }
.catalog[data-view='compact'] .photo-wrap, .catalog[data-view='compact'] .machine-photo, .catalog[data-view='compact'] .machine-fallback { height: 76px; }
.catalog[data-view='compact'] .machine-card h3 { font-size: 12px; line-height: 1.35; -webkit-line-clamp: 3; min-height: 4.05em; margin: var(--space-4) 0; }
.catalog[data-view='compact'] .sku { font-size: 10px; overflow-wrap: anywhere; }
.catalog[data-view='compact'] .level { font-size: 8px; padding: var(--space-4) var(--space-4); }
.catalog[data-view='compact'] .card-actions { gap: var(--space-4); }
.catalog[data-view='compact'] .card-actions button { width: 26px; height: 28px; min-height: 28px; }
@media (max-height:760px) and (min-width:721px) {
  .sidebar:not(.right) > .side-head { max-height: 36vh; }
  .catalog-section-tabs { padding-top: var(--space-4); padding-bottom: var(--space-4); }
  .catalog-view-bar { padding-top: var(--space-4); padding-bottom: var(--space-4); }
  .catalog[data-view='columns'] .photo-wrap, .catalog[data-view='columns'] .machine-photo, .catalog[data-view='columns'] .machine-fallback { height: 80px; }
}
.plan .machine-eight-envelope{fill:transparent;stroke:#8397a6;stroke-width:.8;stroke-dasharray:3 6;opacity:.4;vector-effect:non-scaling-stroke;cursor:move}
.plan .machine-eight-cable-zone{fill:none;stroke:none;pointer-events:none}
.plan .machine-eight-bridge{fill:#9aafbf;stroke:#718a9c;stroke-width:.8;vector-effect:non-scaling-stroke;pointer-events:none}
.plan .machine-shape.machine-eight-module{fill:#edf2f5;stroke:#8397a6;stroke-width:1;vector-effect:non-scaling-stroke}
html[data-theme=dark] .plan .machine-shape.machine-eight-module{fill:#2d3b46;stroke:#849aa9}
html[data-theme=dark] .plan .machine-eight-bridge{fill:#657f92;stroke:#91a8b9}
.plan .machine-eight-note{font:500 6px Inter,sans-serif;fill:#718594;text-anchor:middle;paint-order:stroke;stroke:#fff;stroke-width:2;pointer-events:none}
html[data-theme=dark] .plan .machine-eight-note{fill:#a8bac7;stroke:#20272c}
.plan .selected .machine-eight-envelope{stroke:#f04438;stroke-width:1.2;opacity:1}
.plan .machine-placement-invalid .machine-eight-envelope{stroke:#d83b35;stroke-width:2;opacity:1}

/* /professional-ui.css */
/* Workspace organization. Existing brand and all 3D assets remain intact. */
.budget-conditions{display:grid;gap:var(--space-12);margin-top:var(--space-16);padding:var(--space-12);border:1px solid var(--line);border-radius:4px;font-size:12px;line-height:1.6;color:var(--ink)}
.budget-conditions p{margin:0}.budget-conditions strong{display:block;margin-bottom:var(--space-4);font-weight:700}
.export-download{display:inline-flex;align-items:center;justify-content:center;justify-self:start;padding:var(--space-8) var(--space-12);border:1px solid var(--line);border-radius:4px;color:var(--ink);text-decoration:none;font-weight:600}
.export-download[hidden]{display:none}
.assistant .advisor-product-previews{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,108px),1fr));gap:var(--space-8);align-items:stretch;margin-top:var(--space-12)}
.assistant .advisor-mini-product{grid-template-columns:minmax(0,1fr);grid-template-rows:64px 1fr auto;gap:var(--space-4);min-width:0;padding:var(--space-8);border-radius:4px;font-size:11px}
.assistant .advisor-mini-product:not(:has(img)){grid-template-rows:1fr auto}
.assistant .advisor-mini-product img{width:100%;height:64px;object-fit:contain;border-radius:3px;background:#fff}
.assistant .advisor-product-details{display:flex;flex-direction:column;gap:var(--space-4);min-width:0}
.assistant .advisor-product-details strong{font-size:11px;line-height:1.35;overflow-wrap:anywhere}
.assistant .advisor-product-details span,.assistant .advisor-product-details small{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;line-height:1.35;font-size:11px}
.assistant .advisor-product-details small{font-size:10px;margin-top:auto}
.assistant .advisor-product-actions{display:flex;gap:var(--space-4);grid-column:auto;flex-wrap:nowrap}
.assistant .advisor-product-actions button{display:grid;place-items:center;flex:1;min-width:28px;min-height:30px;padding:var(--space-4);font-size:0;border-radius:3px}
.advisor-product-actions .advisor-card-info::before{content:'';display:block;width:12px;height:15px;border:1px solid currentColor;border-radius:1px;background:linear-gradient(currentColor,currentColor) center 40%/6px 1px no-repeat,linear-gradient(currentColor,currentColor) center 65%/6px 1px no-repeat}
.advisor-product-actions .advisor-card-add::before{content:'＋';font:20px/1 system-ui}
.advisor-answer{white-space:normal;overflow-wrap:anywhere;font-size:13px;line-height:1.75}.advisor-answer p{margin:0 0 var(--space-16);white-space:pre-line}.advisor-answer p:last-child{margin-bottom:0}.advisor-answer .advisor-answer-lead{font-size:14px;line-height:1.7;color:var(--ink)}.advisor-answer strong{font-weight:650;color:var(--ink)}.advisor-answer-heading{font-size:13px;font-weight:700;line-height:1.5;margin:var(--space-24) 0 var(--space-8);padding-top:var(--space-16);border-top:1px solid var(--line);color:var(--ink)}.advisor-answer-heading:first-child{border-top:0;padding-top:0;margin-top:0}.advisor-answer ul,.advisor-answer ol{margin:var(--space-8) 0 var(--space-16);padding-left:var(--space-16)}.advisor-answer li{padding-left:var(--space-4);margin:0 0 var(--space-8);white-space:pre-line}.advisor-answer li:last-child{margin-bottom:0}.advisor-answer li::marker{color:var(--muted);font-size:.85em}.advisor-answer-table{max-width:100%;overflow-x:auto;margin:var(--space-16) 0;white-space:normal}.advisor-answer-table table{width:100%;border-collapse:collapse;font-size:12px;line-height:1.5}.advisor-answer-table th,.advisor-answer-table td{padding:var(--space-8) var(--space-8);border:1px solid var(--line);text-align:left;vertical-align:top;min-width:90px}.advisor-answer-table th{background:var(--paper);font-weight:600}.advisor-followup{margin-top:var(--space-16);padding:var(--space-12) var(--space-16);border:1px solid var(--line);border-left:3px solid var(--red);border-radius:6px;background:color-mix(in srgb,var(--red) 5%,var(--paper));color:var(--ink)}.advisor-followup-label{display:block;margin-bottom:var(--space-8);color:var(--muted);font-size:10px;font-weight:650;letter-spacing:.06em;text-transform:uppercase}.advisor-followup p{margin:0;font-size:14px;font-weight:600;line-height:1.65;white-space:pre-line;overflow-wrap:anywhere}
.advisor-typing{flex-direction:column;align-items:flex-start;gap:var(--space-8);width:100%}.advisor-typing-dots{display:flex;align-items:center;gap:var(--space-4);min-height:11px}.advisor-typing-caption{display:block;max-width:100%;min-height:3em;color:var(--muted);font-size:11px;font-weight:400;line-height:1.5;letter-spacing:.01em;overflow-wrap:anywhere}
.export-dialog .project-list{display:grid;gap:var(--space-16)}.export-dialog label{display:grid;gap:var(--space-4);font-size:13px}.export-dialog select,.export-dialog input{padding:var(--space-8);color:var(--ink);border:1px solid var(--line);background:#fff}.export-actions{display:flex;gap:var(--space-8);flex-wrap:wrap}.export-actions button{padding:var(--space-12) var(--space-16);background:var(--ink);color:#fff;border:0;border-radius:4px;cursor:pointer}.export-actions button:disabled{opacity:.5}.export-dialog #exportStatus{font-size:13px;line-height:1.6}
.catalog .eva-catalog-card .price{font-size:14px}.catalog .eva-catalog-card .card-actions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-4)}.catalog .eva-catalog-card .card-actions button{width:100%;min-width:24px}.catalog .eva-catalog-card .stock.pending{font-size:10px}.catalog .eva-catalog-card h3{font-size:12px;line-height:1.4}
.workspace{--catalog-width:300px;--project-width:340px;position:relative;grid-template-columns:var(--catalog-width) minmax(0,1fr) var(--project-width);grid-template-rows:minmax(0,1fr)}
.app{height:100dvh;grid-template-rows:72px minmax(0,1fr)}.topbar{padding:0 var(--space-16);gap:var(--space-16)}.project{flex:1}.project input{width:min(230px,100%)}.top-actions .btn{padding:var(--space-8) var(--space-12);font-size:12px}.workspace-switches{display:flex;gap:var(--space-4);margin-left:auto}.workspace-switches button{background:transparent;border:1px solid #5f676d;border-radius:4px;padding:var(--space-8);color:#fff;font-size:11px;cursor:pointer}.top-actions{margin-left:0}
.sidebar:not(.right)>.side-head{max-height:57dvh;padding:var(--space-12) var(--space-12);flex-shrink:0;overflow:auto}.filter-label{font-size:10px;letter-spacing:.03em}.filter-row{gap:var(--space-8);margin-top:var(--space-8)}.filter-select{min-height:34px;font-size:12px}.search{min-height:40px;font-size:13px}.catalog-brand{font-size:16px;margin-bottom:var(--space-8)}.filter-disclosure{display:block;width:100%;text-align:left;border:0;border-bottom:1px solid var(--line);background:transparent;color:var(--muted);padding:var(--space-8) 0;font-size:12px;cursor:pointer}.filter-disclosure:after{content:' ＋';float:right}.filter-disclosure[aria-expanded=true]:after{content:' −'}.filters-collapsed .side-head .filter-row,.filters-collapsed .side-head .stock-row{display:none}.catalog-count{margin-top:var(--space-8);font-size:11px}.catalog-section-tabs{padding:var(--space-8) var(--space-12)}.catalog-section-tabs button{font-size:12px;padding:var(--space-8)}.catalog-view-bar{padding:var(--space-4) var(--space-8)}.catalog-view-options button{min-height:32px;padding:var(--space-4);font-size:11px}.active-filter-bar{display:flex;align-items:center;gap:var(--space-8);padding:var(--space-8) var(--space-12);border-bottom:1px solid var(--line);font-size:11px;color:var(--muted)}.active-filter-bar span{flex:1}.active-filter-bar button{border:0;background:transparent;color:var(--red);cursor:pointer;font-size:11px}.catalog[data-view=compact]{grid-template-columns:repeat(3,minmax(0,1fr))}.catalog .card-actions{flex-wrap:wrap!important}.catalog .card-actions button{min-width:30px;min-height:32px}.catalog .machine-card h3{font-size:12px}.catalog .stock.pending,.catalog .price.pending{color:var(--muted)}
.sidebar.right{min-width:0}.advisor-tabs{display:flex;flex-wrap:wrap;flex-shrink:0;min-height:86px}.advisor-tabs button{flex:1 1 30%;padding:var(--space-12) var(--space-4);font-size:12px;min-height:40px}.workspace-panel{overflow:auto;min-height:0;flex:1;background:var(--paper);color:var(--ink);padding:0 var(--space-12) var(--space-16)}.workspace-panel[hidden]{display:none}.panel-title{padding:var(--space-16) 0 var(--space-4)}.panel-title h2{font-size:17px;margin:0}.panel-description{font-size:12px;color:var(--muted);line-height:1.6;margin:var(--space-8) 0 var(--space-12)}.empty-state{padding:var(--space-24) var(--space-12);border:1px dashed var(--line);font-size:13px;line-height:1.6}.empty-state p{color:var(--muted);margin-bottom:0}.equipment-row{padding:var(--space-12) 0;border-bottom:1px solid var(--line)}.equipment-identity{display:flex;gap:var(--space-8);align-items:center}.equipment-identity img{width:52px;height:58px;object-fit:contain;background:#fff}.equipment-identity strong{display:block;font-size:13px;line-height:1.4}.equipment-identity small{display:block;font-size:11px;color:var(--muted);margin-top:var(--space-4)}.equipment-fields,.inspector-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-8);margin:var(--space-8) 0}.equipment-fields label,.project-form label,.workspace-panel .form-grid>label{display:grid;gap:var(--space-4);font-size:12px;color:var(--muted)}.equipment-fields input,.project-form input,.project-form select,.project-form textarea,.workspace-panel .form-grid input{width:100%;min-width:0;padding:var(--space-8);border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:4px;min-height:36px;font:inherit}.equipment-actions{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-4)}.equipment-actions span{margin-right:auto;font-size:12px;font-weight:600}.equipment-actions button,.project-form button,.workspace-panel>button,.project-list-tools button{padding:var(--space-4) var(--space-8);min-height:32px;background:#fff;border:1px solid var(--line);border-radius:4px;color:var(--ink);font-size:11px;cursor:pointer}.price-provenance{font-size:10px;color:var(--muted);display:block;margin-top:var(--space-8)}.project-form{display:grid;gap:var(--space-12)}.project-form details label{margin-top:var(--space-8)}.project-form summary,.workspace-panel details summary{cursor:pointer;font-size:13px;padding:var(--space-8) 0}.workspace-panel .section{padding:var(--space-12) 0}.workspace-panel .section h3{font-size:14px}.issue-row{display:block;width:100%;text-align:left;padding:var(--space-12);margin:var(--space-8) 0;background:#fff;border:1px solid var(--line);border-left:3px solid #b4843f;color:var(--ink);font-size:12px;line-height:1.6;border-radius:3px}.issue-row.error{border-left-color:var(--red)}button.issue-row{cursor:pointer}.budget-row small{display:block;color:var(--muted)}.project-list-tools{display:flex;align-items:center;gap:var(--space-12);font-size:11px;color:var(--muted);margin-bottom:var(--space-16)}.project-row{gap:var(--space-12);grid-template-columns:64px 1fr auto}.project-mini{width:64px;height:64px;display:grid;place-content:center;text-align:center;font-size:20px;border:1px solid var(--line);background:#fff}.project-mini img{width:64px;height:64px;object-fit:contain}.project-mini small{font-size:10px}.project-actions{flex-wrap:wrap;max-width:200px}.projects-dialog{max-height:85dvh;overflow:auto}.projects-dialog .advisor-import{padding:var(--space-16)}.projects-dialog .upload{min-height:58px}
.panel-resize{position:absolute;top:0;bottom:0;width:7px;cursor:col-resize;z-index:8;touch-action:none}.panel-resize.left{left:calc(var(--catalog-width) - 3px)}.panel-resize.right{right:calc(var(--project-width) - 3px)}.panel-resize:hover,.panel-resize:focus-visible{background:#bd413744}.workspace.catalog-collapsed{grid-template-columns:0 minmax(0,1fr) var(--project-width)}.workspace.project-collapsed{grid-template-columns:var(--catalog-width) minmax(0,1fr) 0}.workspace.catalog-collapsed.project-collapsed,.workspace.plan-expanded{grid-template-columns:0 minmax(0,1fr) 0}.workspace.catalog-collapsed>.sidebar:not(.right),.workspace.project-collapsed>.sidebar.right,.workspace.plan-expanded>.sidebar{visibility:hidden;overflow:hidden}.workspace.catalog-collapsed>.panel-resize.left,.workspace.project-collapsed>.panel-resize.right,.workspace.plan-expanded>.panel-resize{display:none}
.plan-zoom{position:absolute;bottom:42px;left:12px;z-index:5;display:flex;box-shadow:0 2px 8px #0001}.plan-zoom button{height:34px;min-width:34px;border:1px solid var(--line);background:#fff;color:var(--ink);cursor:pointer;font-size:12px}.object-inspector{position:absolute;right:12px;bottom:42px;z-index:4;width:260px;max-width:calc(100% - 120px);padding:var(--space-12);background:#fff;border:1px solid var(--line);box-shadow:0 5px 20px #0001;border-radius:4px;font-size:12px;color:var(--ink)}.object-inspector[hidden]{display:none}.object-inspector>strong{display:block;font-size:12px;line-height:1.4}.object-inspector>span{display:block;color:var(--muted);margin-top:var(--space-4);font-size:11px}.inspector-fields{grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-4)}.inspector-fields label{display:grid;font-size:10px;gap:var(--space-4)}.inspector-fields input{width:100%;min-width:0;border:1px solid var(--line);padding:var(--space-4);color:var(--ink);background:#fff}.object-inspector button{border:1px solid var(--line);background:var(--paper);padding:var(--space-4);color:var(--ink);cursor:pointer}.mobile-workspace-nav{display:none}.selbar button:disabled{opacity:.45;cursor:not-allowed}button:focus-visible,select:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--red);outline-offset:2px}
@media(min-width:1600px){.workspace{--catalog-width:320px;--project-width:360px}}
@media(min-width:900px) and (max-width:1199px){.workspace{--catalog-width:260px;--project-width:300px}.topbar{gap:var(--space-8)}.brand{font-size:14px}.brand small{display:none}.project input{max-width:150px}.workspace-switches button{font-size:10px;padding:var(--space-4)}.top-actions .btn{font-size:10px;padding:var(--space-8)}.workspace-switches #toggleProjectPanel{max-width:75px}}
@media(max-height:760px) and (min-width:900px){.sidebar:not(.right)>.side-head{max-height:48dvh}.filters-collapsed .side-head{max-height:none}}
@media(max-width:899px){body{overflow:hidden}.app{height:100dvh;grid-template-rows:102px minmax(0,1fr)}.topbar{height:102px;display:flex;flex-wrap:wrap;align-content:center;gap:var(--space-8);padding:var(--space-8) var(--space-12)}.brand{font-size:14px}.brand .mark{width:30px;height:30px}.brand small{display:none}.project{display:flex;border:0;padding:0;flex:1;gap:var(--space-4);flex-direction:column;align-items:flex-end}.project input{width:150px;max-width:100%;font-size:12px;text-align:right}.saved{font-size:10px}.workspace-switches{display:none}.top-actions{width:100%;gap:var(--space-4)}.top-actions .btn{flex:1;min-height:33px;font-size:10px;padding:var(--space-4)}.workspace{display:block!important;min-height:0;padding-bottom:calc(var(--space-48) + var(--space-8))}.workspace>.sidebar,.workspace>.stage-wrap{height:100%!important;min-height:0!important;width:100%;visibility:visible!important}.workspace>.sidebar:not(.right){display:none}.workspace>.sidebar.right{display:none}.workspace>.stage-wrap{display:none}.workspace[data-mobile=plan]>.stage-wrap{display:block}.workspace[data-mobile=catalog]>.sidebar:not(.right){display:flex}.workspace[data-mobile=project]>.sidebar.right,.workspace[data-mobile=advisor]>.sidebar.right{display:flex}.workspace>.panel-resize{display:none}.sidebar:not(.right)>.side-head{max-height:55dvh}.catalog{padding:var(--space-8)}.catalog[data-view=compact]{grid-template-columns:repeat(3,minmax(0,1fr))}.catalog .card-actions button{min-width:30px;min-height:34px}.catalog .machine-card h3{font-size:12px}.mobile-workspace-nav{position:fixed;left:0;right:0;bottom:0;height:56px;padding-bottom:env(safe-area-inset-bottom);display:grid;grid-template-columns:repeat(4,1fr);background:#fff;border-top:1px solid var(--line);z-index:30}.mobile-workspace-nav button{border:0;background:#fff;color:var(--muted);font:600 12px system-ui;cursor:pointer}.mobile-workspace-nav button[aria-pressed=true]{box-shadow:inset 0 3px var(--red);color:var(--ink)}.advisor-tabs{min-height:82px}.workspace-panel{padding:0 var(--space-16) var(--space-16)}.right .assistant{position:static;width:auto;right:auto;bottom:auto;height:auto;min-height:0;flex:1;display:flex}.right .assistant[hidden]{display:none}.advisor-conversation{min-height:0;margin:var(--space-8)}.advisor-prompts button{flex-basis:100%}.layout2d-view .hint{font-size:10px;padding:var(--space-4)}.object-inspector{width:220px;max-width:calc(100% - 120px);right:8px;bottom:40px}.object-inspector>strong{max-height:34px;overflow:hidden}.plan-zoom{left:8px;bottom:40px}.project-row{display:flex;align-items:flex-start;flex-wrap:wrap}.project-mini{flex:none}.project-actions{max-width:none;width:100%}.projects-dialog{max-width:calc(100vw - 20px);width:600px}.comparison-panel{width:100vw}.equipment-fields input{font-size:16px}.project-form input,.project-form select,.project-form textarea{font-size:16px}.right .panel-scroll{display:block;padding-bottom:var(--space-16)}.right .kpis{display:grid}.object-inspector input{font-size:14px}}





/* Restore the compact controls: room area above the view switch, tools above snap/visibility. */
.workspace-switches{align-items:center;padding-right:var(--space-12);border-right:1px solid #ffffff2e}
.toolbar .tool-icon{width:16px;height:16px;flex:none;fill:none;stroke:currentColor;stroke-width:1.2;stroke-linecap:round;stroke-linejoin:round}
.workspace .layout2d-view .toolbar :is(.tool,.tool-select){border:1px solid var(--line);border-radius:4px}
.workspace .layout2d-view .toolbar .tool.active{border-color:var(--red)}
.advisor-new-chat-dialog{width:340px;max-width:calc(100vw - 32px);padding:var(--space-24);border:1px solid var(--line);border-radius:8px;background:var(--paper);color:var(--ink);box-shadow:0 12px 48px #0003}
.advisor-new-chat-dialog::backdrop{background:#0005}
.advisor-new-chat-dialog h2{margin:0 0 var(--space-8);font-size:17px}.advisor-new-chat-dialog p{margin:0 0 var(--space-16);color:var(--muted);font-size:13px;line-height:1.6}
.advisor-new-chat-dialog form>div{display:flex;justify-content:flex-end;gap:var(--space-8)}.advisor-new-chat-dialog button{padding:var(--space-8) var(--space-12);border:1px solid var(--line);border-radius:4px;background:var(--paper);color:var(--ink);font:inherit;font-size:12px;cursor:pointer}.advisor-new-chat-dialog button[value=new]{background:var(--red);border-color:var(--red);color:#fff}
.advisor-compose .ask button.is-stopping{background:var(--ink);color:var(--paper);width:36px;height:36px;min-width:36px;padding:0;border-radius:50%}.advisor-stop-icon{display:block;width:12px;height:12px;border-radius:2px;background:currentColor;pointer-events:none}.advisor-compose .ask button:disabled{opacity:.65;cursor:wait}
#catalogCount:empty{display:none}
.workspace .layout2d-view .toolbar{top:14px;left:148px;right:14px;max-width:none;height:80px;min-height:80px;padding:var(--space-4);display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));grid-auto-rows:auto;gap:var(--space-4);transform:none}
.workspace .layout2d-view .toolbar .tool,.workspace .layout2d-view .toolbar .tool-select{height:auto;min-height:0;min-width:0;width:100%;max-width:none;padding:var(--space-4) var(--space-4);font-size:12px;line-height:1.2;display:flex;align-items:center;justify-content:center;gap:var(--space-4)}
.workspace .layout2d-view .toolbar .plan-display-controls{top:calc(100% + 12px);right:0}
.workspace .layout2d-view .toolbar .plan-display-controls #snapBtn{height:30px;min-width:82px;width:auto}
.workspace .layout2d-view .area-badge{top:14px;left:14px;height:80px;width:120px;padding:var(--space-8) var(--space-12);font-size:9px;line-height:1.15}
.workspace .layout2d-view .area-badge #roomArea{white-space:nowrap;line-height:1.1;margin-top:2px;font-size:var(--area-value-size,22px);font-variant-numeric:tabular-nums}
.workspace .layout2d-view .canvas-shell{inset:148px 0 34px}
.workspace .stage-wrap:has(.layout2d-view:not([hidden]))>.layout-view-switch{top:102px;left:14px;right:auto}
.workspace .stage-wrap.is-split>.layout-view-switch button{width:36px}
@media(max-width:899px){.workspace .stage-wrap:has(.layout2d-view:not([hidden]))>.layout-view-switch button{width:36px}}
.workspace .layout2d-view #fixturebar,.workspace .layout2d-view #floorbar,.workspace .layout2d-view #doorbar{top:152px}
.catalog .eva-catalog-card .price{font-size:13px;font-weight:600;letter-spacing:0;font-variant-numeric:tabular-nums;white-space:nowrap}
.catalog[data-view=compact] .eva-catalog-card{padding:var(--space-8);gap:var(--space-4)}
.catalog[data-view=compact] .eva-catalog-card .price{font-size:12px}
.catalog[data-view=compact] .eva-catalog-card .price.pending{font-size:10px;white-space:normal}
.catalog[data-view=compact] .meta{font-size:9px}
.catalog[data-view=compact] .card-actions{grid-template-columns:repeat(2,minmax(0,1fr))}
.catalog[data-view=compact] .card-actions button{min-width:24px;min-height:28px;height:28px}
.catalog[data-view=compact] .stock{font-size:9px}
.advisor-import{padding:var(--space-16) 0}
.eva-price-detail{margin:var(--space-12) 0;color:var(--muted);font-size:12px}
.eva-price-detail strong{font-size:16px;font-weight:600;color:var(--ink);margin-right:var(--space-8)}
body.catalog-dragging .image-zoom{display:none!important}
.workspace>.sidebar:not(.right)>.side-head{max-height:none;overflow:visible;padding:var(--space-8) var(--space-12)}
.side-head .filter-row{margin-top:var(--space-4);gap:var(--space-4)}
.side-head .filter-row label{margin-bottom:var(--space-4)}
.side-head .filter-select{min-height:30px;padding:var(--space-4) var(--space-8)}
.side-head .filter-disclosure{padding:var(--space-4) 0}
.side-head .stock-row{margin-top:var(--space-4);min-height:20px}
.side-head .catalog-count{margin-top:var(--space-4)}
@container plan-pane (max-width:500px){
 .workspace .layout2d-view .toolbar{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(4,minmax(0,1fr));height:156px;min-height:156px}
 .workspace .layout2d-view .toolbar .tool,.workspace .layout2d-view .toolbar .tool-select{font-size:10px;padding:var(--space-4) var(--space-4)}
 .workspace .layout2d-view .canvas-shell{top:220px}
 .workspace .layout2d-view #fixturebar,.workspace .layout2d-view #floorbar,.workspace .layout2d-view #doorbar{top:224px}
}

/* Pane widths, rather than window widths, determine the workbench layout. */
.workspace .layout2d-view .canvas-shell{top:184px}
.workspace .layout2d-view .toolbar :is(.tool,.tool-select){overflow:hidden;white-space:nowrap}
.workspace .layout2d-view .toolbar .plan-display-controls{max-width:100%;flex-wrap:wrap}
.workspace .layout2d-view :is(#fixturebar,#floorbar,#doorbar){max-width:calc(100% - 24px);flex-wrap:wrap;max-height:40%;overflow:auto}
.workspace .layout2d-view .selbar{width:max-content;max-width:calc(100% - 24px);box-sizing:border-box;flex-wrap:wrap;justify-content:center}
.workspace .layout2d-view .selbar>*{min-width:0;max-width:100%}
.workspace .layout2d-view .building-levels{max-width:calc(100% - 24px)}
.workspace .layout2d-view .building-level-row{min-width:0;max-width:100%}
.workspace .layout2d-view .building-level-row label{min-width:0}
.workspace .layout2d-view .building-level-trigger{min-width:0;max-width:180px;flex:1}
@container plan-pane (max-width:780px){
 .workspace .layout2d-view .area-badge{height:64px}
 .workspace .layout2d-view .toolbar{top:90px;left:12px;right:12px;height:80px;min-height:80px;grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr))}
 .workspace .layout2d-view .toolbar .tool[data-shortcut]::after{display:none}
 .workspace .layout2d-view .toolbar :is(.tool,.tool-select){font-size:12px;flex-wrap:nowrap}
 .workspace>.stage-wrap .layout2d-view .canvas-shell{top:258px}
 .workspace .layout2d-view :is(#fixturebar,#floorbar,#doorbar){top:262px}
}
@container plan-pane (max-width:410px){
 .workspace .layout2d-view .toolbar{height:156px;min-height:156px;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(4,minmax(0,1fr))}
 .workspace>.stage-wrap .layout2d-view .canvas-shell{top:334px}
 .workspace .layout2d-view :is(#fixturebar,#floorbar,#doorbar){top:338px}
 .workspace .layout2d-view .area-badge{width:104px;min-width:0;left:12px;padding:8px}
 .workspace .layout2d-view .hint{max-width:calc(100% - 16px);white-space:normal}
}

/* 3D uses the same surfaces, type, borders and control sizes as the 2D tools. */
.workspace .layout3d-view{container:scene-pane / inline-size;color:var(--ink);background:var(--paper);min-width:0;min-height:0}
.workspace .layout3d-head{min-height:0;flex:none;gap:12px;padding:14px;background:var(--panel);border-color:var(--line)}
.workspace .layout3d-title{min-width:0}
.workspace .layout3d-title strong{font-size:14px;font-weight:600}
.workspace .layout3d-title small{font-size:11px;color:var(--muted);overflow-wrap:anywhere}
.workspace .layout3d-tools{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));width:100%;gap:4px;max-height:none;overflow:visible}
.workspace .layout3d-tools :is(button,label),.workspace .layout3d-actionbar button{display:flex;align-items:center;justify-content:center;gap:4px;box-sizing:border-box;min-width:0;min-height:34px;padding:4px 8px;font-weight:500;font-family:inherit;font-size:12px;line-height:1.2;background:var(--panel);color:var(--muted);border:1px solid var(--line);border-radius:4px;white-space:normal;text-align:center}
.workspace .layout3d-tools button:hover,.workspace .layout3d-actionbar button:hover{background:var(--paper);color:var(--ink);border-color:var(--muted)}
.workspace .layout3d-tools button[aria-pressed=true]{background:var(--ink);color:var(--paper);border-color:var(--red)}
.workspace .layout3d-tools input{box-sizing:border-box;width:46px;min-width:0;padding:2px;border:0;border-bottom:1px solid var(--line);border-radius:0;background:var(--paper);color:var(--ink);font:inherit}
.workspace .layout3d-view :is(button,input):focus-visible{outline:2px solid var(--red);outline-offset:2px}
.workspace .layout3d-render{min-height:0;flex:1 1 180px;min-width:0}
.workspace .layout3d-actionbar{width:max-content;box-sizing:border-box;max-width:calc(100% - 24px);padding:4px;gap:4px;background:var(--panel);border-color:var(--line);border-radius:4px;box-shadow:none}
.workspace .layout3d-actionbar strong{overflow-wrap:anywhere;min-width:0;max-width:100%;color:var(--ink)}
.workspace .layout3d-actionbar strong small{color:var(--muted)}
.workspace .layout3d-actionbar .danger{color:var(--red)}
.workspace .layout3d-shelf{display:flex;flex:none;gap:8px;padding:8px;overflow-x:auto;background:var(--panel);border-color:var(--line)}
.workspace .layout3d-product{flex:1 0 112px;display:flex;min-width:0;padding:8px;gap:4px;border:1px solid var(--line);border-radius:4px;background:var(--panel);color:var(--ink)}
.workspace .layout3d-product:is(:hover,.placing){background:var(--paper);border-color:var(--red)}
.workspace .layout3d-product img{height:48px;flex:none;border-radius:2px}
.workspace .layout3d-product small{display:none}
.workspace .layout3d-product em{font-size:10px;white-space:normal;overflow-wrap:anywhere;color:var(--muted)}
.workspace .layout3d-product span{color:var(--red);font-weight:600}
.workspace .layout3d-footer{flex:none;padding:8px 12px;background:var(--panel);color:var(--muted);border-color:var(--line);font-size:11px;overflow-wrap:anywhere}
.workspace .layout3d-status{color:var(--muted)}
.workspace .layout3d-status.invalid{color:var(--red)}
.workspace .layout3d-attribution,.workspace .layout3d-attribution a{color:var(--muted);font-size:10px}
.workspace .stage-wrap.is-3d>.layout-view-switch{top:14px;left:14px;right:auto;background:var(--panel);border-color:var(--line);border-radius:4px;box-shadow:none}
.workspace .stage-wrap.is-3d .layout3d-head{padding-top:68px}
.workspace .stage-wrap.is-3d>.layout-view-switch button{color:var(--muted)}
.workspace .stage-wrap.is-3d>.layout-view-switch button[aria-pressed=true]{background:var(--ink);color:var(--paper)}
html[data-theme=dark] .workspace .layout3d-tools button[aria-pressed=true]{background:#3a4d5b;color:#fff}
@container scene-pane (max-width:620px){
 .workspace .layout3d-head{gap:8px;padding:12px}
 .workspace .layout3d-tools{grid-template-columns:repeat(3,minmax(0,1fr))}
 .workspace .layout3d-tools label{grid-column:span 2}
 .workspace .layout3d-product{flex:0 0 112px}
}
@container scene-pane (max-width:360px){
 .workspace .layout3d-head{padding:8px}
 .workspace .layout3d-tools{grid-template-columns:repeat(2,minmax(0,1fr))}
 .workspace .layout3d-tools label{grid-column:auto}
 .workspace .layout3d-footer{max-height:72px;overflow-y:auto}
 .workspace .layout3d-product{flex-basis:100px}
}
/* On phones each editor gets a usable canvas, with vertical scrolling between panes. */
@media(max-width:899px){
 .workspace>.stage-wrap.is-split{overflow-y:auto;overflow-x:hidden}
 .workspace>.stage-wrap.is-split>.layout2d-view,.workspace>.stage-wrap.is-split>.layout3d-view{position:relative;inset:auto;width:100%;height:640px;min-height:640px;border-right:0}
 .workspace>.stage-wrap.is-split>.layout3d-view{border-top:1px solid var(--line)}
}

#doorbar label{display:inline-flex;align-items:center;gap:4px;font-size:12px}#doorbar select{min-width:0;max-width:140px;min-height:30px;padding:4px 8px;border:1px solid var(--line);border-radius:4px;background:var(--panel);color:var(--ink);font:inherit}
#circulationReport{margin:12px 0;padding:12px;border:1px solid var(--line);border-radius:4px;color:var(--ink);font-size:12px}#circulationReport p{margin:8px 0}#circulationReport button{display:block;width:100%;margin:8px 0;padding:8px;text-align:left;border:1px solid var(--line);border-radius:4px;background:var(--panel);color:var(--ink);font:inherit;cursor:pointer}#circulationReport small{display:block;color:var(--muted)}#checkCirculation{min-height:34px;padding:4px 12px;border:1px solid var(--line);border-radius:4px;background:var(--panel);color:var(--ink);font:inherit;cursor:pointer}

/* /planner-theme.css */
/* Appearance is scoped to the document; plan captures preserve its resolved palette. */
.plan .stair-outline{fill:var(--paper);stroke:var(--ink);stroke-width:1.2;vector-effect:non-scaling-stroke}
.plan :is(.stair-tread,.stair-rail){fill:none;stroke:var(--ink);stroke-width:.7;stroke-linecap:butt;vector-effect:non-scaling-stroke}
.plan .stair-label{fill:var(--ink);stroke:none;text-anchor:middle;font-size:12px;font-weight:500;letter-spacing:0;pointer-events:none}
.plan .restroom-floor{fill:var(--paper);stroke:none}
.plan .restroom-line{fill:none;stroke:var(--ink);stroke-width:1.2;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.plan .toilet-porcelain{fill:var(--paper)}
.plan .fixture-selected .restroom-line{stroke:var(--blue)}
html[data-theme] #fixturebar{flex-wrap:wrap;max-width:calc(100% - 24px);width:max-content}
#fixturebar [hidden]{display:none}
html[data-theme] #fixturebar.stair-controls{padding:8px;gap:8px;background:var(--panel);border-color:var(--line);color:var(--ink)}
html[data-theme] #fixturebar.stair-controls label{color:var(--muted)}
html[data-theme] #fixturebar.stair-controls :is(input,select,button){background:var(--paper);border-color:var(--line);color:var(--ink)}
html[data-theme] #fixturebar.stair-controls input{width:50px}
html[data-theme] #fixturebar.stair-controls .fixture-rotation-controls{gap:4px}
.plan .stair-resize-hit{fill:transparent;stroke:none;pointer-events:all}
.plan .stair-resize-point{fill:var(--paper);stroke:var(--blue);stroke-width:1.5;vector-effect:non-scaling-stroke;pointer-events:none}
.plan .stair-resize-handle:hover .stair-resize-point{fill:var(--blue)}
html[data-theme] .plan #fixtures .fixture-stair .action-disc{fill:var(--paper);stroke:var(--ink)}
html[data-theme] .plan #fixtures .fixture-stair .action-icon{stroke:var(--ink)}
html[data-theme] .plan #fixtures .fixture-stair .object-action:is(:hover,:focus-visible) .action-disc{fill:var(--panel2);stroke:var(--accent)}
:root{--floating-surface:#fff;--floating-line:#d7d9d8;--floating-ink:#596168}
.theme-switch{position:absolute;z-index:15;display:grid;place-items:center;padding:var(--space-4);border:1px solid var(--floating-line);border-radius:7px;background:var(--floating-surface);box-shadow:0 4px 16px #15191d10}
.theme-switch button{display:grid;place-items:center;min-width:0;min-height:0;padding:0;border:0;border-radius:4px;background:transparent;color:var(--floating-ink);cursor:pointer}
.theme-switch button:hover{background:var(--paper);color:var(--ink)}
.theme-switch button:focus-visible{outline:2px solid var(--red);outline-offset:2px}
.theme-switch svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}
.stage-wrap.is-3d>.theme-switch{--floating-surface:#292f33;--floating-line:#535d64;--floating-ink:#bfc7cd}
@container plan-pane (max-width:500px){.workspace .layout2d-view .canvas-shell{top:234px}.workspace .layout2d-view #fixturebar,.workspace .layout2d-view #floorbar,.workspace .layout2d-view #doorbar{top:238px}}

html[data-theme=dark]{
  color-scheme:dark;
  --ink:#e4ebf0;--muted:#a4b2bd;--line:#39464f;--paper:#171e24;--panel:#202930;--panel2:#27333c;
  --red:#eb8b7b;--green:#83cba7;--amber:#e3bf7c;--blue:#8fbee7;
  --night-input:#151d23;--night-hover:#2b3943;--night-action:#b63f32;
  --floating-surface:#202a32;--floating-line:#465761;--floating-ink:#c5d1db;
}
html[data-theme=dark] body{background:var(--paper);color:var(--ink)}
html[data-theme=dark] .topbar,html[data-theme=dark] .assistant-head{background:#151c22;border-color:var(--line);color:#edf2f6}
html[data-theme=dark] .mark{background:var(--night-action)}
html[data-theme=dark] .top-actions .btn.save-project{background:#dce5ec;border-color:#dce5ec;color:#18232b}
html[data-theme=dark] .top-actions .btn:not(.save-project):not(.red){color:#e4ebf0;border-color:#566772}
html[data-theme=dark] .top-actions #exportBtn,html[data-theme=dark] .btn.red,html[data-theme=dark] .advisor-compose .ask button{background:var(--night-action);border-color:var(--night-action);color:#fff}
html[data-theme=dark] .workspace-switches button{color:#dbe4eb;border-color:#566772}
html[data-theme=dark] .workspace-switches button:hover,html[data-theme=dark] .top-actions .btn:not(.save-project):hover{background:#2c3943}
html[data-theme=dark] .workspace-switches{border-color:#53616b}
html[data-theme=dark] :is(.sidebar,.right,.side-head,.catalog,.workspace-panel,.advisor-tabs,.catalog-section-tabs,.catalog-view-bar,.active-filter-bar){background:var(--paper);border-color:var(--line);color:var(--ink)}
html[data-theme=dark] .catalog-brand{color:var(--ink);border-color:var(--line)}
html[data-theme=dark] .workspace :is(input:not([type=checkbox]):not([type=range]),select,textarea),
html[data-theme=dark] :is(.projects-dialog,.eva-product-dialog) :is(input,select,textarea){background:var(--night-input);border-color:var(--line);color:var(--ink)}
html[data-theme=dark] input::placeholder,html[data-theme=dark] textarea::placeholder{color:#96a6b1}
html[data-theme=dark] input[type=checkbox]{accent-color:#dd7c6c}
html[data-theme=dark] :is(.level-tab,.catalog-view-options button[aria-pressed=true]){background:var(--panel);border-color:var(--line);color:var(--ink)}
html[data-theme=dark] .level-tab.active{background:#344955;border-color:#6c8493;color:#fff}
html[data-theme=dark] .catalog .machine-card{background:var(--panel);border-color:var(--line);color:var(--ink)}
html[data-theme=dark] .catalog .machine-card:hover{background:#25313a;border-color:#718694}
html[data-theme=dark] .catalog .photo-wrap,html[data-theme=dark] .catalog .machine-photo{background:#fff}
html[data-theme=dark] .catalog .machine-fallback{background:var(--panel2);color:var(--muted)}
html[data-theme=dark] .level.pro{background:#354752;border-color:#657d8d;color:#eaf0f4}
html[data-theme=dark] .level.semi,html[data-theme=dark] .level.home{background:var(--paper);border-color:#62727c;color:#cbd8e1}
html[data-theme=dark] .catalog .card-actions button,html[data-theme=dark] .eva-load-more,html[data-theme=dark] .eva-retry{background:var(--panel2);border-color:#4b5c68;color:var(--ink)}
html[data-theme=dark] .catalog .card-actions button:hover{background:#354752;border-color:#879ca9;color:#fff}
html[data-theme=dark] :is(.equipment-actions button,.project-form button,.workspace-panel>button,.project-list-tools button,.project-actions button){background:var(--panel2);border-color:var(--line);color:var(--ink)}
html[data-theme=dark] :is(.issue-row,.kpi,.roi,.object-inspector,.empty-state,.project-mini){background:var(--panel);border-color:var(--line);color:var(--ink)}
html[data-theme=dark] .issue-row{border-left-color:#d8b77a}
html[data-theme=dark] .issue-row.error{border-left-color:#ef8b7a}
html[data-theme=dark] .equipment-identity img,html[data-theme=dark] .project-mini img{background:#fff}
html[data-theme=dark] .budget-row,html[data-theme=dark] .equipment-row,html[data-theme=dark] .workspace-panel .section{border-color:var(--line)}
html[data-theme=dark] .upload{background:var(--panel);border-color:#617786;color:var(--ink)}
html[data-theme=dark] :is(.advisor-conversation,.assistant .bubble.user,.advisor-conversation .advisor-compose,.assistant .advisor-product,.advisor-mini-product){background:var(--panel);border-color:var(--line);color:var(--ink)}
html[data-theme=dark] .advisor-conversation .advisor-compose .ask textarea{background:var(--night-input);border-color:#4b5c68;color:var(--ink)}
html[data-theme=dark] .advisor-prompts button{background:#26333c;border-color:#455762;color:var(--ink)}
html[data-theme=dark] .advisor-prompts button:hover{background:#334651;border-color:#7c929f}
html[data-theme=dark] .advisor-title span{color:#aabcc8}
html[data-theme=dark] .assistant .bubble{color:var(--ink);border-color:var(--line)}
html[data-theme=dark] .advisor-product-details strong,html[data-theme=dark] .assistant .advisor-product h3{color:var(--ink)}
html[data-theme=dark] .advisor-product-actions button,html[data-theme=dark] .assistant .advisor-product .pdf{background:var(--panel2);border-color:var(--line);color:var(--ink)}

/* The drawing remains legible without changing product photos or planning geometry. */
html[data-theme=dark] :is(.stage-wrap,.plan){background:#161e25}
html[data-theme=dark] .plan .grid-minor{stroke:#29353f}
html[data-theme=dark] .plan .grid-major{stroke:#3d4c58}
html[data-theme=dark] :is(.toolbar,.area-badge,.measure-editor,.plan-zoom button,.layout-view-switch,.theme-switch){background:var(--floating-surface);border-color:var(--floating-line);color:var(--floating-ink)}
html[data-theme=dark] .layout2d-view .toolbar :is(.tool,.tool-select){color:#c6d3dc}
html[data-theme=dark] .layout2d-view .toolbar :is(.tool,.tool-select):hover{background:#344752;color:#fff}
html[data-theme=dark] .layout2d-view .toolbar .tool.active{background:#3a4d5b;border-color:#6c8493;color:#fff}
html[data-theme=dark] .layout2d-view .toolbar .tool-select{background:var(--night-input);border-color:var(--line)}
html[data-theme=dark] .area-badge strong{color:#edf4f8}
html[data-theme=dark] .layout2d-view .toolbar .plan-display-controls #snapBtn,
html[data-theme=dark] .layout2d-view .toolbar #dimensionsToggle{background:var(--floating-surface);border-color:var(--floating-line);color:var(--floating-ink)}
html[data-theme=dark] .layout-view-switch button{color:#c5d3dc}
html[data-theme=dark] .layout-view-switch button[aria-pressed=true]{background:#3a4d5b;color:#fff}
html[data-theme=dark] .theme-switch button{color:#e6c994}
html[data-theme=dark] .theme-switch button:hover,html[data-theme=dark] .plan-zoom button:hover{background:#344752;color:#fff}
html[data-theme=dark] .hint{background:#19232bd9;color:#aabac7;border-color:var(--line)}
html[data-theme=dark] .plan .wall-body,html[data-theme=dark] .plan .fixture-column{fill:#a1b1bd}
html[data-theme=dark] .plan .fixture-column,html[data-theme=dark] .plan .wall-outline{stroke:#a1b1bd}
html[data-theme=dark] .plan .wall-visual.is-selected .wall-body{fill:#f49a8b}
.fixture-rotation-controls{display:inline-flex;align-items:center;justify-content:center;flex-wrap:wrap;max-width:100%;gap:8px}
.fixture-rotation-controls[hidden]{display:none}
.plan .fixture-person-shoulders{fill:#89949f;stroke:#53616d;stroke-width:1.25}
.plan .fixture-person-head{fill:#c2cad1;stroke:#53616d;stroke-width:1.25}
.plan .fixture-selected .fixture{stroke:var(--red)}
html[data-theme=dark] .plan .fixture-person-shoulders{fill:#687b8a;stroke:#b2bec8}
html[data-theme=dark] .plan .fixture-person-head{fill:#bcc8d1;stroke:#657682}
html[data-theme=dark] .plan .fixture-selected .fixture{stroke:#f49a8b}
html[data-theme=dark] .plan .door-leaf{stroke:#a7c5da}
html[data-theme=dark] .plan .door-swing{stroke:#7c98ac}
html[data-theme=dark] .plan .door-threshold{stroke:#637d91}
html[data-theme=dark] .plan .glass-outline{stroke:#385c72}
html[data-theme=dark] .plan .glass-center{stroke:#8fc5e2}
html[data-theme=dark] .plan .dim{fill:#d8e5ed;stroke:none}
html[data-theme] .plan #wallDimensionLabel feFlood{flood-color:var(--paper)}
html[data-theme=dark] .plan .machine-shape{fill:#293640;stroke:#8397a6}
html[data-theme=dark] .plan :is(.machine-label,.machine-sku,.machine-size){fill:#dfe9f1;stroke:#293640}
html[data-theme=dark] .plan .machine-placement-invalid .machine-shape{fill:#a543344d!important;stroke:#ff9988!important}
html[data-theme=dark] .plan .machine-placement-invalid :is(.machine-label,.machine-sku,.machine-size){fill:#ffc1b4;stroke:#382927}
html[data-theme=dark] .plan .snap-guide,html[data-theme=dark] .plan .snap-marker{stroke:#8dc2e5}
html[data-theme=dark] .plan .snap-marker{fill:#213744}
html[data-theme=dark] .plan .machine-rotation-angle{fill:#ffd0c5;stroke:#1a242c}
html[data-theme=dark] .plan .machine-rotation-knob{fill:#263844;stroke:#f1a293}
html[data-theme=dark] .selbar{background:#202c35;border-color:#526b7b;color:var(--ink)}
html[data-theme=dark] .selbar :is(button,select,input){background:#2a3a46;border-color:#586e7d;color:var(--ink)}
html[data-theme=dark] .object-inspector button{background:var(--panel2);border-color:var(--line);color:var(--ink)}

/* Comparisons, forms and modal surfaces use the same palette as the workbench. */
html[data-theme=dark] :is(.comparison-panel,.comparison-head,.comparison-current,.comparison-table,.projects-dialog,.eva-product-dialog,.eva-product-head){background:var(--panel);border-color:var(--line);color:var(--ink)}
html[data-theme=dark] :is(.comparison-close,.alternative-card,.project-row,.export-dialog select,.export-dialog input){background:var(--night-input);border-color:var(--line);color:var(--ink)}
html[data-theme=dark] .alternative-card.selected,html[data-theme=dark] .alternative-card:hover{background:#2c3c48;border-color:#738d9e}
html[data-theme=dark] :is(.comparison-table thead th,.comparison-table tbody th,.comparison-confidence,.explore-note){background:#25333d;border-color:var(--line);color:var(--ink)}
html[data-theme=dark] :is(.comparison-table td,.comparison-table th,.projects-head,.eva-product-content dl>div){border-color:var(--line)}
html[data-theme=dark] .export-actions button{background:#344c5d;color:#f2f6f8}
html[data-theme=dark] .project-row.current{border-color:#e59484}
html[data-theme=dark] .project-actions .project-delete,html[data-theme=dark] .save-error{color:#ffac9d}
html[data-theme=dark] :is(.projects-dialog,.eva-product-dialog)::backdrop{background:#02080fbd;backdrop-filter:blur(4px)}
html[data-theme=dark] .image-zoom{border-color:#687b89;box-shadow:0 16px 50px #0009}
html[data-theme=dark] .mobile-workspace-nav,html[data-theme=dark] .mobile-workspace-nav button{background:#1c262e;border-color:var(--line);color:var(--muted)}
html[data-theme=dark] .mobile-workspace-nav button[aria-pressed=true]{color:#f0f5f8}
@media(prefers-reduced-motion:no-preference){.theme-switch button{transition:background-color .15s,color .15s}}

/* Layout Studio identity — presentation only. Keep workspace widths, canvas
   geometry, toolbar anchors and view-switch dimensions owned by the editor. */
html[data-theme] {
  --ink:#24272b; --muted:#62676e; --line:#d6d8db;
  --paper:#f4f4f3; --panel:#ffffff; --panel2:#eceeef;
  --accent:#b6362d; --accent-hover:#962c25; --accent-soft:#f7e9e6;
  --accent-ink:#a12f27; --red:var(--accent);
  --green:#237454; --amber:#93652a; --blue:#366e9b;
  --header:#202326; --header-line:#41454b; --header-muted:#c1c4c9;
  --input-surface:#fff; --surface-hover:#f8f8f7;
  --danger:#b64c43; --danger-soft:#faeeeb;
  --floating-surface:var(--panel); --floating-line:var(--line); --floating-ink:var(--muted);
  --surface-shadow:0 2px 8px #20232606;
  --floating-shadow:0 4px 18px #2023260c;
}
html[data-theme=dark] {
  --ink:#e9eaed; --muted:#afb3bb; --line:#3c4147;
  --paper:#17191c; --panel:#212428; --panel2:#2a2e33;
  --accent:#ef9a8c; --accent-hover:#f5b4a8; --accent-soft:#3b2928;
  --accent-ink:#ffc0b6; --red:var(--accent);
  --green:#91d6b4; --amber:#e1bd80; --blue:#9bc5e7;
  --header:#141619; --header-line:#373c42; --header-muted:#b8bcc3;
  --input-surface:#1b1e22; --surface-hover:#292d32;
  --danger:#f2a297; --danger-soft:#412d30;
  --night-input:var(--input-surface); --night-hover:var(--surface-hover); --night-action:#b63f32;
  --surface-shadow:0 2px 10px #0000000c;
  --floating-shadow:0 4px 18px #00000020;
}
html[data-theme] body { background:var(--paper); color:var(--ink); }
html[data-theme] :is(button,input,select,textarea) { accent-color:var(--accent); }
html[data-theme] :is(button,a,input,select,textarea):focus-visible { outline-color:var(--accent); }
html[data-theme] * { scrollbar-color:var(--line) transparent; }

/* A neutral graphite header keeps the existing logo and every action in place. */
html[data-theme] .topbar { background:var(--header); border-color:var(--header-line); }
html[data-theme] .topbar .project { border-color:var(--header-line); }
html[data-theme] .topbar .saved { color:var(--header-muted); }
html[data-theme] .workspace-switches { border-color:var(--header-line); }
html[data-theme] .workspace-switches button,
html[data-theme] .top-actions .btn:not(.save-project):not(.red) {
  color:#e9eaed; border-color:#62676f; background:transparent; border-radius:0;
}
html[data-theme] .workspace-switches button:hover,
html[data-theme] .top-actions .btn:not(.save-project):not(.red):hover { background:#34383e; border-color:#989ea8; }
html[data-theme] .top-actions .btn.save-project { background:#eceef0; border-color:#eceef0; color:#24272b; border-radius:0; }
html[data-theme] .top-actions #exportBtn,
html[data-theme] .btn.red,
html[data-theme] .advisor-compose .ask button:not(.is-stopping) {
  background:#b63f32; border-color:#b63f32; color:#fff; border-radius:0;
}
html[data-theme] .top-actions #exportBtn:hover,
html[data-theme] .btn.red:hover,
html[data-theme] .advisor-compose .ask button:not(.is-stopping):hover { background:#9c3026; border-color:#9c3026; filter:none; }

/* Filter groups have real breathing room, independently of the pane widths. */
html[data-theme] :is(.sidebar,.right,.side-head,.workspace-panel,.catalog-section-tabs,.catalog-view-bar,.active-filter-bar,.advisor-tabs) {
  background:var(--paper); border-color:var(--line); color:var(--ink);
}
html[data-theme] .workspace>.sidebar:not(.right)>.side-head {
  padding:16px; max-height:60dvh; overflow:auto; scrollbar-gutter:stable;
}
html[data-theme] .side-head .filter-label { margin-bottom:7px;   line-height:1.5; color:var(--muted); }
html[data-theme] .side-head .catalog-brand { margin-bottom:12px; padding-bottom:10px; color:var(--ink); border-color:var(--line);  }
html[data-theme] .side-head .search { padding:10px 12px; border-radius:0; line-height:1.5; }
html[data-theme] .side-head .filter-disclosure { padding:12px 0; margin-bottom:4px; color:var(--muted); }
html[data-theme] .side-head .filter-row { margin-top:12px; gap:12px; align-items:end; }
html[data-theme] .side-head .filter-row label { margin-bottom:7px; }
html[data-theme] .side-head .filter-select { min-height:35px; padding:7px 8px; border-radius:0; }
html[data-theme] .side-head .stock-row { margin-top:14px; gap:10px; line-height:1.5; }
html[data-theme] .side-head .catalog-count { margin-top:10px; line-height:1.6; }
html[data-theme] .workspace :is(input:not([type=checkbox]):not([type=range]),select,textarea),
html[data-theme] :is(.projects-dialog,.eva-product-dialog) :is(input,select,textarea) {
  background:var(--input-surface); color:var(--ink); border-color:var(--line);
}
html[data-theme] :is(input,textarea)::placeholder { color:var(--muted); opacity:1; }
html[data-theme] .level-tab { background:var(--panel); color:var(--muted); border-color:var(--line); border-radius:0; }
html[data-theme] .level-tabs .level-tab.active { background:var(--usage-bg); border-color:var(--usage-ink); color:var(--usage-ink); box-shadow:inset 0 -2px var(--usage-ink); }
html[data-theme] .catalog-section-tabs { padding:10px 12px; }
html[data-theme] .catalog-section-tabs button { color:var(--muted); line-height:1.5; }
html[data-theme] .catalog-section-tabs button.active { background:var(--accent-soft); color:var(--accent-ink); border-color:transparent; border-radius:0; box-shadow:inset 0 -2px var(--accent); }
html[data-theme] .active-filter-bar { padding:10px 14px; line-height:1.5; color:var(--muted); }
html[data-theme] .catalog-view-bar { padding:8px 10px; }
html[data-theme] .catalog-view-options button { border-radius:0; color:var(--muted); }
html[data-theme] .catalog-view-options button[aria-pressed=true] { color:var(--accent-ink); background:var(--accent-soft); border-color:var(--line); }

/* The three catalog views retain their columns. Spacing belongs inside cards. */
html[data-theme] .catalog { background:var(--paper); padding:12px; gap:12px; }
html[data-theme] .catalog .machine-card {
  padding:12px; gap:12px; background:var(--panel); color:var(--ink);
  border:1px solid var(--line); border-radius:0; box-shadow:var(--surface-shadow);
}
html[data-theme] .catalog .machine-card:hover { background:var(--surface-hover); border-color:var(--accent); }
html[data-theme] .catalog :is(.photo-wrap,.machine-photo) { background:#fff; border-radius:0; }
html[data-theme] .catalog .machine-fallback { background:var(--panel2); color:var(--muted); }
html[data-theme] .catalog .eva-card-identity { min-width:0; }
html[data-theme] .catalog .eva-card-code { gap:6px; row-gap:6px; line-height:1.6; }
html[data-theme] .catalog .sku { color:var(--muted);  overflow-wrap:anywhere; }
html[data-theme] .catalog .level { padding:4px 6px; border-radius:0;  line-height:1.25; margin-left:0; }
/* Product usage levels keep distinct colors in every catalog view. */
html[data-theme] :is(.level.pro,.level-tab[data-level=PRO]) { --usage-bg:#f2e8e6; --usage-ink:#884a44; --usage-border:#d7bcb7; }
html[data-theme] :is(.level.semi,.level-tab[data-level=SEMI]) { --usage-bg:#f3eddf; --usage-ink:#77603a; --usage-border:#d7c9ae; }
html[data-theme] :is(.level.home,.level-tab[data-level=HOME]) { --usage-bg:#e8edf3; --usage-ink:#4a627f; --usage-border:#becbdc; }
html[data-theme=dark] :is(.level.pro,.level-tab[data-level=PRO]) { --usage-bg:#342a2a; --usage-ink:#cfaaa5; --usage-border:#65504d; }
html[data-theme=dark] :is(.level.semi,.level-tab[data-level=SEMI]) { --usage-bg:#332f25; --usage-ink:#cdbd97; --usage-border:#655b45; }
html[data-theme=dark] :is(.level.home,.level-tab[data-level=HOME]) { --usage-bg:#252e39; --usage-ink:#a4b5cb; --usage-border:#4e5d71; }
html[data-theme] :is(.level.pro,.level.semi,.level.home) { background:var(--usage-bg); color:var(--usage-ink); border-color:var(--usage-border); }
html[data-theme] .catalog .machine-card h3 { margin:10px 0 8px;   line-height:1.5;  min-height:3em; }
html[data-theme] .catalog .meta { color:var(--muted);  line-height:1.65; }
html[data-theme] .catalog .card-foot { padding-top:12px; gap:12px; border-color:var(--line); }
html[data-theme] .catalog .eva-card-commercial { gap:7px; }
html[data-theme] .catalog .eva-catalog-card .price {  line-height:1.5; color:var(--ink); }
html[data-theme] .catalog .eva-catalog-card .price.pending {  white-space:normal; color:var(--muted); }
html[data-theme] .catalog :is(.stock,.stock.pending,.stock-date) {  line-height:1.6; color:var(--muted); }
html[data-theme] .catalog .stock.ok { color:var(--green); }
html[data-theme] .catalog .card-actions { gap:6px; }
html[data-theme] .catalog .card-actions button {
  min-width:0; border-radius:0; border-color:var(--line); background:var(--panel); color:var(--muted);
}
html[data-theme] .catalog .card-actions button:hover { background:var(--accent-soft); border-color:var(--accent); color:var(--accent-ink); }
html[data-theme] .catalog .card-actions .add { background:var(--accent-soft); border-color:var(--line); color:var(--accent-ink); }
html[data-theme] .catalog[data-view=compact] { grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; padding:10px; }
html[data-theme] .catalog[data-view=compact] .machine-card { padding:8px; gap:6px; }
html[data-theme] .catalog[data-view=compact] :is(.photo-wrap,.machine-photo,.machine-fallback) { height:64px; }
html[data-theme] .catalog[data-view=compact] .machine-photo { padding:4px; }
html[data-theme] .catalog[data-view=compact] .machine-card h3 { line-height:1.3; min-height:2.6em; -webkit-line-clamp:2; margin:6px 0 0; }
html[data-theme] .catalog[data-view=compact] .meta { display:none; }
html[data-theme] .catalog[data-view=compact] .card-foot { padding-top:6px; gap:8px; }
html[data-theme] .catalog[data-view=compact] .eva-card-commercial { gap:4px; }
html[data-theme] .catalog[data-view=compact] .sku {  }
html[data-theme] .catalog[data-view=compact] .level { padding:4px; }
html[data-theme] .catalog[data-view=compact] .price {  white-space:normal; }
html[data-theme] .catalog[data-view=compact] .price.pending {  }
html[data-theme] .catalog[data-view=compact] .card-actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:4px; }
html[data-theme] .catalog[data-view=compact] .card-actions button { width:100%; min-width:0; }
html[data-theme] :is(.eva-load-more,.eva-retry) { border-radius:0; border-color:var(--line); background:var(--panel); color:var(--ink); padding:14px; }

/* Read-only scale reference beside the existing zoom controls. */
.plan-scale{box-sizing:border-box;flex:none;width:116px;height:34px;margin-left:12px;padding:4px 8px 5px;display:flex;flex-direction:column;align-items:center;justify-content:space-between;gap:4px;background:var(--floating-surface);color:var(--muted);pointer-events:none;user-select:none}
.plan-scale-label{font-size:10px;line-height:12px;font-weight:500;font-variant-numeric:tabular-nums;white-space:nowrap}
.plan-scale-track{display:flex;justify-content:center;align-items:center;width:100%;height:7px}
.plan-scale-line{position:relative;display:block;flex:none;height:1px;background:currentColor}
.plan-scale-line::before,.plan-scale-line::after{content:'';position:absolute;top:-3px;width:1px;height:7px;background:currentColor}
.plan-scale-line::before{left:0}.plan-scale-line::after{right:0}
@container plan-pane (max-width:320px){.plan-scale{width:88px;margin-left:8px}}
@container plan-pane (max-width:250px){.plan-scale{width:60px;padding-inline:6px}}

/* Floating controls: surface and color refinements, with all anchors intact. */
html[data-theme] :is(.toolbar,.area-badge,.measure-editor,.layout-view-switch,.theme-switch,.object-inspector) {
  background:var(--floating-surface); border-color:var(--floating-line); color:var(--floating-ink);
  border-radius:0; box-shadow:var(--floating-shadow);
}
html[data-theme] .workspace .layout2d-view .toolbar :is(.tool,.tool-select) { background:var(--panel); color:var(--muted); border-color:var(--line); border-radius:0; }
html[data-theme] .workspace .layout2d-view .toolbar :is(.tool,.tool-select):hover { background:var(--surface-hover); color:var(--ink); }
html[data-theme] .workspace .layout2d-view .toolbar :is(#undoBtn,#redoBtn):disabled { opacity:.4; cursor:default; background:var(--panel); color:var(--muted); border-color:var(--line); }
html[data-theme] .workspace .layout2d-view .toolbar .tool.active { background:var(--accent-soft); color:var(--accent-ink); border-color:var(--accent); }
html[data-theme] .toolbar .tool.active[data-shortcut]::after { color:var(--accent-ink); }
html[data-theme] .area-badge strong { color:var(--ink); }
html[data-theme] .layout-view-switch button { color:var(--muted); }
html[data-theme] .layout-view-switch button[aria-pressed=true] { background:var(--accent-soft); color:var(--accent-ink); }
html[data-theme] .theme-switch button { color:var(--accent-ink); }
html[data-theme] .theme-switch button:hover { background:var(--accent-soft); }
html[data-theme] .workspace .layout2d-view .toolbar .plan-display-controls :is(#snapBtn,#spacesToggle,#muscleZonesToggle,#openWallsToggle,#dimensionsToggle,#gridToggle),
html[data-theme] .plan-zoom button { background:var(--panel); border-color:var(--line); color:var(--muted); }
html[data-theme] .workspace .layout2d-view .toolbar .plan-display-controls :is(#snapBtn,#spacesToggle,#muscleZonesToggle,#openWallsToggle,#dimensionsToggle,#gridToggle):hover { background:var(--surface-hover); }
html[data-theme] .workspace .layout2d-view .toolbar .plan-display-controls :is(#snapBtn,#spacesToggle,#muscleZonesToggle,#openWallsToggle,#dimensionsToggle,#gridToggle)[aria-pressed=true] { color:var(--accent-ink); border-color:var(--accent); }
html[data-theme] .workspace .layout2d-view .toolbar .plan-display-controls :is(#snapBtn,#spacesToggle,#muscleZonesToggle,#openWallsToggle,#dimensionsToggle,#gridToggle):focus-visible { outline:2px solid var(--accent); outline-offset:2px; }
html[data-theme] :is(.stage-wrap,.plan) { background:var(--paper); }
html[data-theme=light] .plan .grid-minor { stroke:#b9c0c8; stroke-width:.85; }
html[data-theme=light] .plan .grid-major { stroke:#929da9; stroke-width:1.15; }
html[data-theme=dark] .plan .grid-minor { stroke:#30353b; }
html[data-theme=dark] .plan .grid-major { stroke:#4b535d; }
html[data-theme] .hint { background:var(--paper); color:var(--muted); }
html[data-theme] .panel-resize:hover,html[data-theme] .panel-resize:focus-visible { background:color-mix(in srgb,var(--accent) 28%,transparent); }

/* Advisor and project panels share the same material, rhythm and text hierarchy. */
html[data-theme] .advisor-tabs button { color:var(--muted); line-height:1.5; }
html[data-theme] .advisor-tabs button.active { color:var(--accent-ink); background:var(--accent-soft); box-shadow:inset 0 -2px var(--accent); }
html[data-theme] .assistant-head { background:var(--panel); border-color:var(--line); color:var(--ink); gap:12px; }
html[data-theme] .advisor-avatar { color:var(--accent-ink); background:var(--accent-soft); border-color:var(--line); border-radius:0; }
html[data-theme] .advisor-title strong {  color:var(--ink); line-height:1.5; }
html[data-theme] .advisor-title span { color:var(--muted); line-height:1.6; margin-top:4px; }
html[data-theme] .assistant-head #evaNewChat { color:var(--muted); border-color:var(--line); border-radius:0; background:var(--panel); }
html[data-theme] .advisor-conversation { background:var(--panel); border-color:var(--line); border-radius:0; box-shadow:var(--surface-shadow); }
html[data-theme] .advisor-conversation:focus-within { border-color:var(--accent); }
html[data-theme] .right .assistant .advisor-conversation .messages { padding:20px; }
html[data-theme] .advisor-welcome h2 {  line-height:1.4;   margin-bottom:14px; color:var(--ink); }
html[data-theme] .advisor-welcome p { color:var(--muted); line-height:1.75; margin-bottom:20px; }
html[data-theme] .advisor-prompts { gap:10px 8px; margin-top:18px; }
html[data-theme] .advisor-prompts button { padding:12px; border-radius:0; line-height:1.6; background:var(--paper); border-color:var(--line); color:var(--ink); }
html[data-theme] .advisor-prompts button:hover { background:var(--accent-soft); border-color:var(--accent); color:var(--accent-ink); }
html[data-theme] .advisor-conversation .advisor-compose { background:var(--panel); border-color:var(--line); padding:16px; }
html[data-theme] .advisor-conversation .advisor-compose .ask textarea { background:var(--input-surface); border-color:var(--line); border-radius:0; padding:12px; }
/* Give the first message room; the normal composer returns as welcome is removed. */
.advisor-conversation:has(> .messages > .advisor-welcome) .advisor-compose .ask textarea {
  --first-message-height:clamp(96px,20dvh,220px);
  height:var(--first-message-height); min-height:var(--first-message-height); max-height:var(--first-message-height);
}
html[data-theme] .assistant .bubble.user { background:var(--accent-soft); border-color:var(--line); border-left-color:var(--accent); border-radius:0; }
html[data-theme] :is(.advisor-mini-product,.assistant .advisor-product,.advisor-typing) { background:var(--paper); color:var(--ink); border-color:var(--line); border-radius:0; padding:12px; }
html[data-theme] :is(.advisor-product-details strong,.assistant .advisor-product h3) { color:var(--ink); }
html[data-theme] :is(.advisor-product-details small,.advisor-card-feedback) { color:var(--muted); }
html[data-theme] :is(.advisor-product-actions button,.assistant .advisor-product .pdf) { background:var(--panel); color:var(--ink); border-color:var(--line); border-radius:0; }
html[data-theme] .advisor-reason { color:var(--accent-ink); background:var(--accent-soft); border-color:var(--line); line-height:1.6; padding:6px 8px; }
html[data-theme] .workspace-panel { padding-inline:16px; }
html[data-theme] .panel-title { padding-top:20px; padding-bottom:8px; }
html[data-theme] .panel-title h2 {  line-height:1.5; }
html[data-theme] .panel-description { margin:8px 0 20px; line-height:1.75; }
html[data-theme] .project-form { gap:20px; }
html[data-theme] :is(.equipment-fields,.inspector-fields) { row-gap:12px; }
html[data-theme] .equipment-row { padding:18px 0; }
html[data-theme] .equipment-identity { gap:12px; }
html[data-theme] .equipment-identity strong { line-height:1.6; }
html[data-theme] .equipment-identity small { margin-top:6px; line-height:1.6; }
html[data-theme] .equipment-actions { gap:8px; margin-top:12px; }
html[data-theme] :is(.equipment-actions button,.project-form button,.workspace-panel>button,.project-list-tools button,.project-actions button) {
  background:var(--panel); color:var(--ink); border-color:var(--line); border-radius:0;
}
html[data-theme] :is(.issue-row,.kpi,.roi,.empty-state,.project-mini) { background:var(--panel); border-color:var(--line); color:var(--ink); border-radius:0; }
html[data-theme] .issue-row { padding:16px; margin:12px 0; line-height:1.75; border-left-color:var(--amber); }
html[data-theme] .issue-row.error { border-left-color:var(--danger); }
html[data-theme] .budget-row { padding-block:12px; gap:12px; line-height:1.6; border-color:var(--line); }
html[data-theme] .section-title { margin-bottom:16px; }
html[data-theme] .section-title h3 { color:var(--muted); }
html[data-theme] .file-note { color:var(--muted); line-height:1.75; margin-top:10px; }
html[data-theme] .upload { padding:16px 12px; line-height:1.6; background:var(--panel); border-color:var(--line); color:var(--ink); border-radius:0; }
html[data-theme] .workspace-panel .section { padding-block:20px; border-color:var(--line); }

/* Secondary surfaces stay coherent when opened from either theme. */
html[data-theme] :is(.comparison-panel,.comparison-head,.comparison-current,.comparison-table,.projects-dialog,.eva-product-dialog,.eva-product-head,.advisor-new-chat-dialog) { background:var(--panel); border-color:var(--line); color:var(--ink); }
html[data-theme] :is(.projects-dialog,.eva-product-dialog,.advisor-new-chat-dialog) { border-radius:0; box-shadow:0 24px 80px #11131640; }
html[data-theme] :is(.projects-dialog,.eva-product-dialog,.advisor-new-chat-dialog)::backdrop { background:#11131670; backdrop-filter:blur(4px); }
html[data-theme] :is(.comparison-close,.alternative-card,.project-row) { background:var(--paper); color:var(--ink); border-color:var(--line); border-radius:0; }
html[data-theme] .alternative-card.selected,html[data-theme] .alternative-card:hover { background:var(--accent-soft); border-color:var(--accent); }
html[data-theme] :is(.comparison-table thead th,.comparison-table tbody th,.comparison-confidence,.explore-note) { background:var(--paper); color:var(--ink); border-color:var(--line); }
html[data-theme] :is(.comparison-table td,.comparison-table th,.projects-head,.eva-product-content dl>div) { border-color:var(--line); }
html[data-theme] .eva-product-content dd { color:var(--muted); }
html[data-theme] .export-dialog :is(input,select) { background:var(--input-surface); color:var(--ink); border-color:var(--line); border-radius:0; }
html[data-theme] .export-actions button { background:#b63f32; color:#fff; border-radius:0; }
html[data-theme] .advisor-new-chat-dialog button[value=new] { background:#b63f32; border-color:#b63f32; color:#fff; }
html[data-theme] .project-row.current { border-color:var(--accent); }
html[data-theme] :is(.project-actions .project-delete,.save-error) { color:var(--danger); }
html[data-theme] .mobile-workspace-nav,html[data-theme] .mobile-workspace-nav button { background:var(--panel); color:var(--muted); border-color:var(--line); }
html[data-theme] .mobile-workspace-nav button[aria-pressed=true] { color:var(--accent-ink); background:var(--accent-soft); }
html[data-theme] .layout3d-head,html[data-theme] .layout3d-footer { background:var(--panel); color:var(--ink); border-color:var(--line); }
html[data-theme] .layout3d-tools .return2d { background:#b63f32; border-color:#b63f32; }
html[data-theme] .layout3d-tools :is(button,label),html[data-theme] .layout3d-actionbar button { background:var(--panel); color:var(--muted); border-color:var(--line); }
html[data-theme] .layout3d-tools button[aria-pressed=true],html[data-theme] .layout3d-product.placing { background:var(--accent-soft); color:var(--accent-ink); border-color:var(--accent); }
html[data-theme] .layout3d-actionbar { background:var(--panel); border-color:var(--line); }
html[data-theme] .layout3d-shelf { background:var(--panel); border-color:var(--line); }
html[data-theme] .layout3d-product { background:var(--panel); color:var(--ink); border-color:var(--line); }
html[data-theme] .layout3d-product:hover { background:var(--paper); border-color:var(--accent); }
html[data-theme] .layout3d-product span { color:var(--accent-ink); }
html[data-theme] .stage-wrap.is-3d>.theme-switch { --floating-surface:var(--panel); --floating-line:var(--line); --floating-ink:var(--muted); }
html[data-theme=dark] .plan .wall-visual.is-selected .wall-body { fill:var(--accent); }
html[data-theme=dark] .plan .fixture-selected .fixture { stroke:var(--accent); }
html[data-theme=dark] .plan .machine-rotation-knob { stroke:var(--accent); }

@media(max-height:760px) {
  html[data-theme] .workspace>.sidebar:not(.right)>.side-head { max-height:52dvh; }
  html[data-theme] .right .assistant .advisor-conversation .messages { padding:16px; }
  html[data-theme] .advisor-welcome h2 {  margin-bottom:12px; }
  html[data-theme] .advisor-welcome p {  margin-bottom:16px; }
}
@media(max-width:1199px) {
  html[data-theme] .workspace>.sidebar:not(.right)>.side-head { padding:12px; }
  html[data-theme] .side-head .filter-row { gap:8px; }
  html[data-theme] .catalog { gap:10px; padding:10px; }
  html[data-theme] .catalog .machine-card { padding:10px; }
  html[data-theme] .catalog[data-view=compact] { gap:8px; padding:8px; }
  html[data-theme] .catalog[data-view=compact] .machine-card { padding:8px; }
}
@media(max-width:899px) {
  html[data-theme] .workspace>.sidebar:not(.right)>.side-head { max-height:42dvh; }
}
@media(prefers-reduced-motion:no-preference) {
  html[data-theme] :is(.machine-card,.advisor-prompts button,.level-tab,.catalog-view-options button) { transition:background-color .16s,border-color .16s,color .16s; }
}

/* Keep controls square and preserve the original IBM Plex typography. */
html[data-theme] :is(.layout-view-switch button,.theme-switch button,.plan-zoom button,.selbar,.selbar button) { border-radius:0; }
html[data-theme=dark] .theme-switch button,
html[data-theme=dark] .theme-switch button:hover { color:#e6c994; }

/* Compact keeps three columns across the catalog panel's full resize range. */
.workspace>.sidebar:not(.right) { container-type:inline-size; container-name:catalog-pane; }
@media(min-width:900px) { .workspace { --catalog-width:320px; } }

/* Shared basket/star identity, with tab names left available to assistive tools. */
.advisor-tabs button { gap:6px; }
.advisor-tabs button svg { width:15px; height:15px; flex:none; pointer-events:none; }
.workspace-tab-star { font-size:16px; line-height:1; }

/* The wall type is actionable only while the wall tool is active. */
html[data-theme] .workspace .layout2d-view .toolbar #wallKind:disabled,
html[data-theme] .workspace .layout2d-view .toolbar #wallKind:disabled:hover {
  background:var(--panel2); color:var(--muted); border-color:var(--line); opacity:.6; cursor:not-allowed;
}

/* Keep scale/zoom, machine actions and the inspector on separate rows. */
html[data-theme] .workspace .layout2d-view #selbar { padding:8px; gap:8px; bottom:calc(42px + var(--plan-zoom-height,34px) + 12px); }
html[data-theme] .workspace .layout2d-view #selbar :is(button,select) {
  min-height:36px; padding:8px 12px; font-size:13px; line-height:1.3;
}
html[data-theme] .workspace .layout2d-view #selbar .icon-btn { min-width:36px; padding:8px; }
html[data-theme] .workspace .layout2d-view #selbar button svg { width:16px; height:16px; }
html[data-theme] .stage-wrap:has(#selbar.show) #objectInspector {
  bottom:calc(42px + var(--plan-zoom-height,34px) + 12px + var(--selection-menu-height,56px) + 8px);
}
/* The canvas starts below the display icons; keep its legend in that corner. */
html[data-theme] #spacesLegend {
  top:8px; right:14px; bottom:auto; left:auto; width:340px;
  max-width:calc(100% - 28px); max-height:calc(100% - 20px);
  overflow:auto; overscroll-behavior:contain; border-radius:8px;
}
html[data-theme] .stage-wrap:has(#selbar.show) #spacesLegend {
  max-height:calc(100% - var(--plan-zoom-height,34px) - var(--selection-menu-height,56px) - var(--object-inspector-height,0px) - 40px);
}
@media(max-width:600px){html[data-theme] #spacesLegend{right:8px;max-width:calc(100% - 16px)}}
@container plan-pane (max-width:780px){
  html[data-theme] .layout2d-view:has(#selbar.show) #objectInspector {
    left:12px; right:auto; width:calc(50% - 20px); max-width:none;
  }
  html[data-theme] .layout2d-view:has(#selbar.show) #spacesLegend {
    width:calc(50% - 20px); max-width:none;
    max-height:calc(100% - var(--plan-zoom-height,34px) - var(--selection-menu-height,56px) - 40px);
  }
}

/* A quiet lift stays inside the catalog's existing spacing, with no grid reflow. */
html[data-theme] .catalog .machine-card {
  position:relative; isolation:isolate;
  --card-hover-shadow:0 7px 18px #20232616,0 2px 5px #20232608;
}
html[data-theme=dark] .catalog .machine-card {
  --card-hover-shadow:0 7px 18px #00000040,0 2px 5px #00000020;
}
html[data-theme] .catalog .machine-card::before {
  content:""; position:absolute; inset:0; z-index:-1; pointer-events:none; opacity:0;
  background:linear-gradient(to top,
    color-mix(in srgb,var(--accent) 14%,transparent) 0%,
    color-mix(in srgb,var(--accent) 6%,transparent) 40%,transparent 78%);
}
@media(hover:hover) and (pointer:fine) {
  html[data-theme] body:not(.catalog-dragging) .catalog .machine-card:is(:hover,:has(:focus-visible)) {
    z-index:1; background:var(--panel); border-color:var(--accent); box-shadow:var(--card-hover-shadow);
  }
  html[data-theme] body:not(.catalog-dragging) .catalog .machine-card:is(:hover,:has(:focus-visible))::before { opacity:1; }
}
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference) {
  html[data-theme] .catalog .machine-card {
    transition:transform .18s ease-out,box-shadow .18s ease-out,border-color .18s,background-color .18s;
  }
  html[data-theme] .catalog .machine-card::before { transition:opacity .18s ease-out; }
  html[data-theme] body:not(.catalog-dragging) .catalog .machine-card:is(:hover,:has(:focus-visible)) {
    transform:translateY(-2px) scale(1.015);
  }
}
html[data-theme] body.catalog-dragging .catalog .machine-card { transform:none; transition:none; }

/* /planner-spacing.css */
/* Shared spacing scale. Zero and auto retain their structural meaning. */
:root {
  --space-4: 4px;
  --space-8: 8px;
  --space-12: 12px;
  --space-16: 16px;
  --space-24: 24px;
  --space-32: 32px;
  --space-48: 48px;
}

/* Replace browser-default spacing; component rules retain precedence. */
:where(button, input, select, textarea) { margin: 0; }
:where(button) { padding: var(--space-4) var(--space-8); }
:where(input:not([type='checkbox']):not([type='radio']):not([type='range']), select, textarea) {
  padding: var(--space-4) var(--space-8);
}
:where(h1, h2, h3, h4, h5, h6, p, dl, blockquote, figure, fieldset) {
  margin: 0 0 var(--space-12);
}
:where(ul, ol) { margin: 0 0 var(--space-12); padding-inline-start: var(--space-24); }
:where(dd) { margin: 0; }

/* Center labels inside controls, without changing their typography or anchors. */
:is(.btn, .workspace-switches button, .catalog-section-tabs button,
    .catalog-view-options button, .advisor-tabs button, .level-tab,
    .project-actions button, .export-actions button, .equipment-actions button,
    .project-list-tools button, .advisor-new-chat-dialog button,
    .layout3d-tools button, .layout3d-actionbar button,
    .trial3d-head button, .trial3d-head a, .trial3d-angles button,
    .mobile-workspace-nav button):not([hidden]) {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-align: center;
}
.level, .compare-badge, .similar-badge, .explore-badge {
  align-items: center;
  justify-content: center;
  text-align: center;
}
/* Text badges keep one full scale step between the label and every edge. */
.level { padding: var(--space-4) var(--space-8); }
.catalog[data-view='compact'] .level { padding: var(--space-4); }
.toolbar [data-shortcut]::after,
.workspace .layout2d-view .toolbar .tool[data-shortcut]::after {
  padding: var(--space-4);
  margin-left: 0;
}

/* /planner-brand.css */
/* Transparent wordmark: the header background shows through every counter. */
.topbar .brand{display:block;flex:0 0 auto;line-height:0;padding:0;background:transparent;border-radius:0}
.topbar .brand-logo{display:block;width:180px;max-width:100%;height:auto;aspect-ratio:1479/347;object-fit:contain}
.topbar .project{align-items:flex-start}
.project-title{display:flex;align-items:center;gap:var(--space-4);width:100%;max-width:240px;min-width:0}
.topbar .project-title input{field-sizing:content;flex:0 1 auto;min-width:4ch;width:auto;max-width:calc(100% - 28px);padding:0;text-align:left;line-height:24px}
.project-rename{display:inline-flex;align-items:center;justify-content:center;flex:0 0 24px;width:24px;height:24px;padding:var(--space-4);border:0;border-radius:4px;background:transparent;color:var(--header-muted,#d5dadd);cursor:pointer}
.project-rename svg{display:block;width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.project-rename:hover,.project-rename:focus-visible{color:var(--header-ink,#fff);background:#ffffff14}
.topbar .project .saved{padding:0;text-align:left}
.export-dialog .export-options{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:var(--space-12)}
.export-dialog .export-options select{width:100%;min-width:0}
.export-dialog .export-options input{width:5.5rem;min-width:0}
.export-dialog .export-dossier-note{margin:0;color:var(--muted);font-size:12px;line-height:1.5}
.export-dialog :is(#exportVersionRow,#exportDossierNote)[hidden]{display:none}
@media(max-width:899px){.export-dialog .export-options :is(select,input){font-size:16px}}
@media(max-width:1199px){.topbar .brand-logo{width:156px}}
@media(max-width:899px){.topbar .brand-logo{width:144px}.project-title{max-width:174px}}

/* /advisor-chat.css */
/* The advisor is the primary conversation; project tools stay within reach. */
.right .advisor-tabs{min-height:0;gap:0}
.right .advisor-tabs #advisorTab{flex:1 0 100%;justify-content:flex-start;gap:8px;padding:12px 20px;min-height:44px;font-size:15px}
.right .advisor-tabs button:not(#advisorTab){flex:1 1 22%;padding:8px 4px;min-height:34px;font-size:11px}
html[data-theme] .right .assistant-head{margin-inline:12px;padding:14px 20px;align-items:center}
html[data-theme] .right .advisor-title strong{font-size:16px;font-weight:600}
html[data-theme] .right .advisor-title span{font-size:12px;line-height:1.5;margin-top:2px}
html[data-theme] .right .advisor-avatar{width:30px;height:30px;flex:none;border:0;background:transparent}
.right .advisor-status:empty{display:none}
.advisor-send [hidden]{display:none!important}
html:root[data-theme] .app.studio-refined .right .advisor-conversation .advisor-compose .ask button.advisor-queue{margin-right:auto;padding-inline:0;background:transparent;border-color:transparent;color:var(--muted);font-weight:400;box-shadow:none}
html:root[data-theme] .app.studio-refined .right .advisor-conversation .advisor-compose .ask button.advisor-queue:hover:not(:disabled){color:var(--ink);text-decoration:underline;text-underline-offset:3px}
.advisor-compose .ask :is(#evaSendMessage,#evaQueueMessage):disabled{cursor:default}
html[data-theme] .right .assistant .advisor-conversation{margin:0 12px 12px;box-shadow:none;border-color:var(--line)}
html[data-theme] .right .assistant .advisor-conversation:focus-within{border-color:var(--line)}
html[data-theme] .right .assistant .advisor-conversation .messages{padding:22px 20px;min-height:0;scroll-padding-block:20px}
html[data-theme] .right .assistant .messages .bubble:not(.user){padding:0;margin:0 0 24px;background:transparent;border:0;border-radius:0;box-shadow:none;color:var(--ink)}
html[data-theme] .right .assistant .messages .bubble.user{width:fit-content;max-width:90%;margin:0 0 24px auto;padding:10px 14px;background:var(--paper);border:1px solid var(--line);border-radius:12px;font-size:14px;line-height:1.6;color:var(--ink)}
.right .advisor-answer,.right .advisor-answer .advisor-answer-lead{font-size:15px;line-height:1.65;font-weight:400}
.right .advisor-answer p{margin:0 0 12px}
.right .advisor-answer p:last-child{margin-bottom:0}
.right .advisor-answer strong{font-weight:600}
.right .advisor-answer-heading{font-size:15px;font-weight:600;line-height:1.5;margin:20px 0 8px;padding:0;border:0}
.right .advisor-answer-heading:first-child{margin-top:0}
.right .advisor-answer ul,.right .advisor-answer ol{margin:8px 0 14px;padding-left:20px}
.right .advisor-answer li{margin-bottom:6px;padding-left:2px}
.right .advisor-answer-table table{font-size:13px}
html[data-theme] .right .advisor-welcome h2{font-size:23px;font-weight:600;line-height:1.35;margin-bottom:12px}
html[data-theme] .right .advisor-welcome p{font-size:14px;line-height:1.65;margin-bottom:20px}
html[data-theme] .right .advisor-prompts{gap:8px}
html[data-theme] .right .advisor-prompts button{padding:10px 12px;font-size:12px;border-radius:8px;line-height:1.5}
html[data-theme] .right .advisor-conversation .advisor-compose{padding:12px;border-top:1px solid var(--line)}
html[data-theme] .right .advisor-conversation .advisor-compose .ask textarea{min-height:80px;max-height:180px;padding:12px;font-size:14px;line-height:1.6;border-radius:8px}
html[data-theme] .right .advisor-conversation:has(> .messages > .advisor-welcome) .advisor-compose .ask textarea{--first-message-height:clamp(144px,22dvh,220px);height:var(--first-message-height);min-height:var(--first-message-height);max-height:var(--first-message-height)}
@media(max-width:899px){
  html[data-theme] .right .assistant-head{margin-inline:8px;padding:12px 16px}
  html[data-theme] .right .assistant .advisor-conversation{margin:0 8px 8px}
  html[data-theme] .right .assistant .advisor-conversation .messages{padding:18px 16px}
  html[data-theme] .right .advisor-conversation .advisor-compose .ask textarea{font-size:16px}
}

/* /raycast-studio.css */
/* Raycast study: precise search, layered neutrals, quiet chrome and clear actions.
   Presentation only. Canvas geometry and product data remain owned by the editor. */
html[data-theme] {
  --ink:#24262c; --muted:#646773; --line:#dcdde3;
  --paper:#f2f3f6; --panel:#fff; --panel2:#e9ebf0;
  --input-surface:#fff; --surface-hover:#eaecf2;
  --accent:#b52f48; --accent-hover:#98263c; --accent-soft:#f7e7ec; --accent-ink:#a12b42;
  --red:var(--accent); --header:#18191e; --header-line:#34363f; --header-muted:#b8bbc6;
  --floating-surface:var(--panel); --floating-line:var(--line); --floating-ink:var(--muted);
  --surface-shadow:none; --floating-shadow:0 8px 24px #1516220a;
  --studio-action:#292c35; --studio-action-ink:#fff; --studio-photo:#fafafa;
}
html[data-theme=dark] {
  --ink:#eeeff3; --muted:#a9adbb; --line:#343640;
  --paper:#15161b; --panel:#1d1e25; --panel2:#262832;
  --input-surface:#242630; --surface-hover:#2b2e39;
  --accent:#f08b9e; --accent-hover:#ffadbc; --accent-soft:#39242e; --accent-ink:#ffa5b6;
  --header:#121318; --header-line:#30323c; --header-muted:#a9adbb;
  --night-input:var(--input-surface); --night-hover:var(--surface-hover);
  --studio-action:#ebeef5; --studio-action-ink:#20222a;
  --floating-shadow:0 8px 28px #0003;
}
html[data-theme] body { font-family:'IBM Plex Sans','Segoe UI',sans-serif; -webkit-font-smoothing:antialiased; }
html[data-theme] ::selection { background:var(--accent-soft); color:var(--accent-ink); }
html[data-theme] :is(input,textarea) { caret-color:var(--accent); }
html[data-theme] :is(button,input,select,textarea,a):focus-visible { outline:2px solid var(--accent); outline-offset:3px; }
html[data-theme] * { scrollbar-width:thin; scrollbar-color:var(--line) transparent; }
html[data-theme] .topbar { padding-inline:20px; gap:16px; background:var(--header); }
html[data-theme] .topbar .project input { font-size:13px; }
html[data-theme] .topbar .saved { font-size:11px; }
html[data-theme] .workspace-switches { gap:2px; padding-right:12px; }
html[data-theme] .workspace-switches button { border-color:transparent; color:var(--header-muted); padding:8px; font-size:11px; border-radius:6px; }
html[data-theme] .top-actions .btn { min-height:34px; border-radius:7px; font-size:11px; padding:7px 12px; }
html[data-theme] .top-actions .btn:not(.save-project):not(.red) { border-color:var(--header-line); border-radius:7px; }
html[data-theme] .top-actions .btn.save-project { border-radius:7px; }
html[data-theme] .top-actions #exportBtn { background:#30333d; color:#eef0f6; border-color:#454958; border-radius:7px; }
html[data-theme] .top-actions #exportBtn:hover { background:#3b3f4b; border-color:#73798c; }

/* Search and the four common facets remain visible above the results. */
html[data-theme] .catalog-workspace { background:var(--panel); container:catalog-pane / inline-size; }
html[data-theme] .workspace>.sidebar.catalog-workspace:not(.right)>.side-head {
  padding:20px 16px 14px; background:var(--panel); max-height:calc(100% - 260px);
  overflow:auto; overscroll-behavior:contain; scrollbar-gutter:auto; z-index:auto;
}
html[data-theme] .catalog-title { margin:0 0 14px; font-size:20px; letter-spacing:-.025em; font-weight:650; line-height:1.2; }
.catalog-search-field { position:relative; }
.catalog-search-field>svg { position:absolute; left:12px; top:14px; width:17px; height:17px; fill:none; stroke:var(--muted); stroke-width:1.7; pointer-events:none; }
html[data-theme] .side-head .catalog-search-field .search { min-height:46px; padding:11px 12px 11px 38px; font-size:12px; border-radius:9px; border:1px solid var(--line); background:var(--input-surface); }
html[data-theme] .catalog-search-field:focus-within>svg { stroke:var(--accent); }
html[data-theme] .catalog-head-tools { gap:10px; margin:10px 0 16px; }
html[data-theme] .catalog-head-tools #searchCatalogProfile { font-size:12px; font-weight:500; min-height:32px; padding:5px 8px; border:0; border-radius:6px; background:var(--panel2); }
html[data-theme] .catalog-workspace .catalog-head-tools #toggleCatalogFilters { min-width:94px; min-height:32px; padding:5px 8px; border-color:var(--line); border-radius:6px; background:transparent; font-size:11px; }
html[data-theme] .catalog-workspace .catalog-head-tools #toggleCatalogFilters:is([aria-expanded=true],.has-active-filters) { background:var(--accent-soft); border-color:transparent; color:var(--accent-ink); }
.catalog-primary-filters { display:grid; grid-template-columns:1fr 1fr; gap:12px 10px; }
html[data-theme] .side-head .catalog-primary-filters .filter-label { color:var(--muted); font-size:11px; font-weight:500; letter-spacing:0; text-transform:lowercase; line-height:1.3; margin:0 0 6px; }
.catalog-primary-filters .filter-label::first-letter { text-transform:uppercase; }
html[data-theme] .side-head .catalog-primary-filters :is(.filter-select,.catalog-brand) { width:100%; min-width:0; min-height:34px; margin:0; padding:6px 24px 6px 8px; border-radius:6px; font-size:11px; font-weight:500; text-overflow:ellipsis; }

/* Advanced filters expand in the flow. They never cover the product list. */
html[data-theme] .catalog-workspace #catalogFilterPanel { position:static; margin-top:16px; display:block; min-width:0; border:0; border-top:1px solid var(--line); background:transparent; box-shadow:none; }
html[data-theme] .catalog-workspace #catalogFilterPanel[hidden] { display:none; }
.catalog-filter-heading { padding:12px 0 0; border:0; font-size:12px; }
.catalog-filter-heading button { color:var(--muted); border-radius:5px; }
.catalog-filter-body { padding:0; overflow:visible; scrollbar-gutter:auto; }
html[data-theme] .catalog-filter-body .filter-row { margin-top:12px; grid-template-columns:1fr; gap:12px; }
html[data-theme] .catalog-filter-body .filter-select { border-radius:6px; font-size:12px; }
html[data-theme] .catalog-workspace .level-tabs { display:flex; gap:4px; }
html[data-theme] .catalog-workspace .level-tab { flex:1; min-width:0; min-height:34px; padding:5px 2px; border:1px solid var(--line); border-radius:6px; background:var(--input-surface); color:var(--muted); font-size:11px; font-weight:600; }
html[data-theme] .catalog-workspace .level-tabs .level-tab.active { background:var(--accent-soft); color:var(--accent-ink); border-color:var(--accent); box-shadow:none; }
.catalog-filter-body .stock-toggle { font-size:11px; }
.catalog-filter-body .eva-search-ranges { font-size:11px; }
html[data-theme] .catalog-filter-body .eva-search-range input { min-width:0; border-radius:5px; padding:7px; }
html[data-theme] .catalog-workspace .active-filter-bar { background:var(--panel); padding:8px 16px; border:0; }
html[data-theme] .catalog-workspace .active-filter-bar .catalog-filter-chip { border:0; border-radius:5px; background:var(--panel2); color:var(--ink); padding:5px 7px; }
html[data-theme] .catalog-workspace #clearCatalogFilters { color:var(--accent-ink); font-size:11px; }
html[data-theme] .catalog-workspace .catalog-results-toolbar { padding:10px 16px; gap:8px; background:var(--panel); border-block:1px solid var(--line); }
html[data-theme] .catalog-results-toolbar #sortFilter { background:transparent; color:var(--ink); border-color:transparent; border-radius:5px; color-scheme:light; }
html[data-theme=dark] .catalog-results-toolbar #sortFilter { color-scheme:dark; }
/* Native option menus need an opaque surface and matching text in both themes. */
html[data-theme] .catalog-results-toolbar #sortFilter option { background:var(--panel); color:var(--ink); }
html[data-theme] .catalog-results-toolbar .catalog-view-options { gap:1px; padding:2px; background:var(--paper); border-radius:6px; }
html[data-theme] .catalog-results-toolbar .catalog-view-options button { border:0; border-radius:4px; min-height:28px; width:27px; }
html[data-theme] .catalog-view-options button[aria-pressed=true] { background:var(--panel2); color:var(--ink); box-shadow:none; }

/* Product photos have their own light stage. Text and prices stay readable. */
html[data-theme] .catalog { padding:14px 12px; gap:12px; align-content:start; background:var(--paper); }
html[data-theme] .catalog .machine-card { position:relative; min-width:0; padding:10px; gap:10px; border:1px solid var(--line); border-radius:12px; background:var(--panel); box-shadow:none; transform:none; }
html[data-theme] .catalog .machine-card::before { display:none; }
html[data-theme] body:not(.catalog-dragging) .catalog .machine-card:is(:hover,:has(:focus-visible)) { transform:none; background:var(--panel); border-color:var(--muted); }
html[data-theme] .catalog .machine-card :is(.photo-wrap,.machine-photo,.machine-fallback) { background:var(--studio-photo); border:0; border-radius:7px; }
html[data-theme] .catalog .machine-card .photo-wrap { overflow:hidden; }
html[data-theme] .catalog .machine-card .machine-photo { object-fit:contain; padding:10px; mix-blend-mode:normal; }
html[data-theme] .catalog[data-view=columns] .machine-card :is(.photo-wrap,.machine-photo,.machine-fallback) { width:100%; height:126px; }
html[data-theme] .catalog .machine-card h3 { display:block; -webkit-line-clamp:unset; overflow:visible; min-height:0; margin:8px 0; font-size:12px; font-weight:600; line-height:1.45; color:var(--ink); overflow-wrap:anywhere; }
html[data-theme] .catalog .machine-card .sku { font-size:11px; color:var(--muted); letter-spacing:.02em; }
html[data-theme] .catalog .machine-card .meta { display:block; font-size:11px; line-height:1.5; color:var(--muted); }
html[data-theme] .catalog .machine-card .eva-card-kind { color:var(--muted); font-size:11px; }
html[data-theme] .catalog .machine-card .level { font-size:11px; line-height:1.2; padding:3px 4px; border:0; border-radius:3px; background:var(--panel2); color:var(--muted); }
html[data-theme] .catalog .machine-card .card-foot { flex-direction:column; align-items:stretch; gap:10px; padding-top:0; border:0; }
html[data-theme] .catalog .machine-card .eva-card-commercial { display:block; }
html[data-theme] .catalog .machine-card .eva-card-commercial:has(>.price.pending):has(>.stock.unconfirmed) { display:block; }
html[data-theme] .catalog .machine-card .price { display:block; color:var(--ink); font-size:16px; font-weight:650; line-height:1.4; font-variant-numeric:tabular-nums; }
html[data-theme] .catalog .machine-card .price.pending { display:block; color:var(--muted); font-size:11px; font-weight:500; }
html[data-theme] .catalog .machine-card .stock.unconfirmed { display:none; }
html[data-theme] .catalog .machine-card .card-actions { display:block; margin:0; }
html[data-theme] .catalog .machine-card .card-actions button { border-radius:6px; }
html[data-theme] .catalog .machine-card .card-actions .add { display:flex; align-items:center; justify-content:center; gap:6px; width:100%; min-height:32px; height:auto; padding:7px 8px; border:0; background:var(--studio-action); color:var(--studio-action-ink); font-size:11px; font-weight:600; }
html[data-theme] .catalog .machine-card .add::after { content:'Añadir al plano'; }
html[data-theme] .catalog .machine-card .add:disabled::after { content:'Medidas pendientes'; }
html[data-theme] .catalog .machine-card .add:disabled { opacity:.5; }
html[data-theme] .catalog .machine-card .card-actions button:not(.add) { position:absolute; top:16px; width:29px; height:29px; min-height:29px; min-width:0; padding:5px; background:#fff; color:#30333c; border:1px solid #c9cbd3; opacity:0; pointer-events:none; }
html[data-theme] .catalog .machine-card .card-actions .similar-badge { right:82px; }
html[data-theme] .catalog .machine-card .card-actions .eva-list-add { right:49px; }
html[data-theme] .catalog .machine-card .card-actions .eva-info { right:16px; }
html[data-theme] .catalog .machine-card:is(:hover,:focus-within) .card-actions button:not(.add) { opacity:1; pointer-events:auto; }
html[data-theme] .catalog .machine-card .card-actions button:not(.add):hover { background:#eceef4; color:#20222a; }
html[data-theme] .catalog[data-view=list] .machine-card { grid-template-columns:100px minmax(0,1fr); grid-template-rows:auto auto; }
html[data-theme] .catalog[data-view=list] .photo-wrap { grid-row:1/-1; width:100px; height:120px; }
html[data-theme] .catalog[data-view=list] .machine-photo { width:100px; height:120px; }
html[data-theme] .catalog[data-view=list] .card-foot { grid-column:2; }
html[data-theme] .catalog[data-view=list] .card-actions button:not(.add) { top:auto; bottom:10px; }
html[data-theme] .catalog[data-view=list] .card-actions .similar-badge { left:12px; right:auto; }
html[data-theme] .catalog[data-view=list] .card-actions .eva-list-add { left:44px; right:auto; }
html[data-theme] .catalog[data-view=list] .card-actions .eva-info { left:76px; right:auto; }
html[data-theme] .catalog[data-view=compact] .machine-card { padding:8px; gap:7px; }
html[data-theme] .catalog[data-view=compact] .machine-card :is(.photo-wrap,.machine-photo,.machine-fallback) { height:84px; }
html[data-theme] .catalog[data-view=compact] .machine-card h3 { font-size:11px; margin:6px 0; }
html[data-theme] .catalog[data-view=compact] .machine-card .add::after { content:'Añadir'; }
html[data-theme] .catalog[data-view=compact] .machine-card .add:disabled::after { content:'Pendiente'; }
html[data-theme] .catalog[data-view=compact] .machine-card .card-actions button:not(.add) { width:25px; height:27px; top:10px; padding:4px; }
html[data-theme] .catalog[data-view=compact] .machine-card .card-actions .similar-badge { right:66px; }
html[data-theme] .catalog[data-view=compact] .machine-card .card-actions .eva-list-add { right:38px; }
html[data-theme] .catalog[data-view=compact] .machine-card .card-actions .eva-info { right:10px; }
html[data-theme] :is(.eva-catalog-more,.eva-retry,.eva-load-more) { min-height:38px; border:1px solid var(--line); background:var(--panel); color:var(--ink); border-radius:8px; }

/* Preserve the grid and every editor anchor; refine controls in place. */
html[data-theme] :is(.toolbar,.area-badge,.layout-view-switch,.theme-switch,.object-inspector) { border-radius:9px; box-shadow:var(--floating-shadow); }
html[data-theme] .workspace .layout2d-view .toolbar { background:var(--panel); padding:5px; gap:4px; }
html[data-theme] .workspace .layout2d-view .toolbar :is(.tool,.tool-select) { border-color:transparent; border-radius:5px; background:transparent; color:var(--muted); font-size:11px; }
html[data-theme] .workspace .layout2d-view .toolbar .tool.active { background:var(--panel2); border-color:var(--line); color:var(--ink); }
html[data-theme] .workspace .layout2d-view .toolbar :is(.tool,.tool-select):hover { background:var(--surface-hover); color:var(--ink); }
html[data-theme] .workspace .layout2d-view .toolbar :is(#undoBtn,#redoBtn,#captureBtn) { border-left:1px solid var(--line); }
html[data-theme] .toolbar .shortcut { opacity:.65; font-size:11px; }
html[data-theme] .layout-view-switch button { border-radius:5px; }
html[data-theme] .layout-view-switch button[aria-pressed=true] { background:var(--panel2); color:var(--ink); }
html[data-theme] .area-badge strong { color:var(--ink); font-weight:650; letter-spacing:-.03em; }
html[data-theme] .area-badge span { color:var(--muted); }
html[data-theme] .plan-zoom button { background:var(--panel); color:var(--ink); border-color:var(--line); }
html[data-theme] .plan-zoom button:first-child { border-radius:6px 0 0 6px; }
html[data-theme] .plan-zoom button[data-zoom=fit] { border-radius:0 6px 6px 0; }

/* Project tabs are navigation. The conversation is a single continuous surface. */
html[data-theme] .sidebar.right { background:var(--panel); }
html[data-theme] .right .advisor-tabs { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); padding:8px; gap:4px; background:var(--panel); border-bottom:1px solid var(--line); }
html[data-theme] .right .advisor-tabs #advisorTab { grid-column:1/-1; min-height:38px; padding:8px 10px; font-size:14px; }
html[data-theme] .right .advisor-tabs button { border:0; border-radius:6px; background:transparent; color:var(--muted); box-shadow:none; }
html[data-theme] .right .advisor-tabs button.active { color:var(--ink); background:var(--panel2); box-shadow:none; }
html[data-theme] .right .advisor-tabs button:not(#advisorTab) { padding:8px 3px; font-size:11px; }
html[data-theme] .right .assistant { background:var(--panel); }
html[data-theme] .right .assistant-head { padding:16px 10px; margin-inline:12px; border-color:var(--line); background:var(--panel); }
html[data-theme] .right .advisor-title strong { font-size:14px; }
html[data-theme] .right .advisor-title span { font-size:11px; color:var(--muted); }
html[data-theme] .right .assistant .advisor-conversation { margin:0; border:0; border-radius:0; background:var(--panel); }
html[data-theme] .right .assistant .advisor-conversation .messages { padding:28px 22px; }
html[data-theme] .right .advisor-welcome h2 { font-size:25px; line-height:1.2; letter-spacing:-.03em; font-weight:600; }
html[data-theme] .right .advisor-welcome p { font-size:13px; color:var(--muted); line-height:1.65; }
html[data-theme] .right .advisor-prompts { display:flex; flex-direction:column; gap:0; margin-top:24px; }
html[data-theme] .right .advisor-prompts button { width:100%; min-height:43px; flex:auto; padding:11px 2px; border:0; border-bottom:1px solid var(--line); border-radius:0; background:transparent; font-size:12px; color:var(--ink); text-align:left; }
html[data-theme] .right .advisor-prompts button:hover { color:var(--accent-ink); background:var(--panel2); }
html[data-theme] .right .advisor-compose { padding:14px; border-color:var(--line); background:var(--panel); }
html[data-theme] .right .advisor-conversation .advisor-compose .ask textarea,
html[data-theme] .right .advisor-conversation:has(>.messages>.advisor-welcome) .advisor-compose .ask textarea { height:80px; min-height:80px; max-height:160px; border-radius:9px; padding:12px; background:var(--input-surface); font-size:12px; }
html[data-theme] .advisor-compose .ask button:not(.is-stopping) { border:0; border-radius:6px; background:var(--studio-action); color:var(--studio-action-ink); font-weight:600; }
html[data-theme] .advisor-compose .ask button:not(.is-stopping):hover { background:var(--accent); color:var(--studio-action-ink); }
html[data-theme] :is(.equipment-row,.project-row,.eva-product-dialog,.projects-dialog) { border-radius:9px; }

@media(hover:none) {
  html[data-theme] .catalog .machine-card .card-actions button:not(.add) { opacity:1; pointer-events:auto; }
}
@media(prefers-reduced-motion:no-preference) {
  .catalog-search-field>svg { transition:stroke .15s ease-out; }
  html[data-theme] .catalog .machine-card .card-actions button:not(.add) { transition:opacity .14s ease-out; }
}
@media(min-width:900px) and (max-width:1199px) {
  html[data-theme] .topbar { gap:6px; padding-inline:10px; }
  html[data-theme] .workspace-switches button { padding:5px 3px; font-size:11px; }
  html[data-theme] .top-actions .btn { padding:6px; font-size:11px; }
}
@media(max-width:899px) {
  html[data-theme] .topbar { padding:8px 12px; gap:8px; }
  html[data-theme] .catalog-title { font-size:20px; margin-bottom:12px; }
  html[data-theme] .workspace>.sidebar.catalog-workspace:not(.right)>.side-head { padding:14px 14px 12px; }
  html[data-theme] .side-head :is(input,select) { font-size:16px; }
  html[data-theme] .catalog[data-view=columns] .machine-card :is(.photo-wrap,.machine-photo,.machine-fallback) { height:116px; }
  html[data-theme] .catalog .machine-card .card-actions button:not(.add) { opacity:1; pointer-events:auto; }
  html[data-theme] .mobile-workspace-nav, html[data-theme] .mobile-workspace-nav button { background:var(--panel); color:var(--muted); }
  html[data-theme] .mobile-workspace-nav button[aria-pressed=true] { background:var(--panel2); color:var(--ink); }
}

/* Plan controls: context, editing, then floor/display. Measured clearance keeps
   the canvas aligned when groups wrap or the split view narrows the 2D pane. */
html[data-theme] .workspace .layout2d-view .grouped-plan-toolbar {
  top:12px; left:12px; right:12px; width:auto; height:auto; min-height:0;
  display:flex; flex-direction:column; align-items:stretch; gap:8px;
  padding:8px; border:1px solid var(--line); border-radius:9px;
  background:var(--panel); box-shadow:none; overflow:visible;
}
.grouped-plan-toolbar .plan-tool-row { display:flex; align-items:center; flex-wrap:wrap; gap:6px; min-width:0; }
.grouped-plan-toolbar .plan-wall-tools { display:flex; align-items:center; gap:2px; min-width:0; }
.grouped-plan-toolbar .plan-history-tools { display:flex; align-items:center; gap:4px; margin-left:auto; padding-left:10px; border-left:1px solid var(--line); }
html[data-theme] .workspace .layout2d-view .grouped-plan-toolbar :is(.tool,.tool-select) {
  flex:none; width:auto; height:34px; min-height:34px; max-width:100%;
  padding:6px 9px; gap:6px; font-size:12px; line-height:1.2;
  border:1px solid transparent; border-radius:5px; white-space:nowrap;
}
html[data-theme] .grouped-plan-toolbar .tool .plan-control-label { margin:0; font:inherit; }
html[data-theme] .grouped-plan-toolbar .tool-icon { width:16px; height:16px; fill:none; stroke:currentColor; stroke-width:1.5; }
html[data-theme] .workspace .layout2d-view .grouped-plan-toolbar #wallKind { width:120px; background:var(--input-surface); border-color:var(--line); padding:6px; }
html[data-theme] .workspace .layout2d-view .grouped-plan-toolbar #fixtureAdd { width:112px; background:var(--input-surface); border-color:var(--line); padding:6px; }
html[data-theme] .workspace .layout2d-view .grouped-plan-toolbar :is(#undoBtn,#redoBtn,#captureBtn) { border:0; }
html[data-theme] .workspace .layout2d-view .grouped-plan-toolbar #captureBtn { margin-left:4px; border-left:1px solid var(--line); border-radius:0 5px 5px 0; }
html[data-theme] .grouped-plan-toolbar .tool[data-shortcut]::after { font-size:10px; margin-left:2px; color:var(--muted); }
.grouped-plan-toolbar .plan-options-row { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:8px 12px; padding-top:8px; border-top:1px solid var(--line); min-width:0; }
html[data-theme] .workspace .layout2d-view .grouped-plan-toolbar .building-levels {
  position:relative; inset:auto; flex:none; flex-direction:column; align-items:flex-start;
  width:auto; max-width:100%; font-size:11px; z-index:1;
}
html[data-theme] .grouped-plan-toolbar .building-levels :is(button,select,input) { min-height:32px; border-radius:5px; font-size:11px; }
html[data-theme] .grouped-plan-toolbar .building-levels .building-level-trigger { min-width:110px; max-width:180px; }
html[data-theme] .grouped-plan-toolbar .building-levels .building-level-icon { width:30px; }
html[data-theme] .workspace .layout2d-view .grouped-plan-toolbar .plan-display-controls {
  position:static; display:flex; flex-wrap:wrap; justify-content:flex-start; align-items:center;
  gap:4px; margin-left:auto; min-width:0; max-width:100%;
}
html[data-theme] .workspace .layout2d-view .grouped-plan-toolbar .plan-display-controls :is(#snapBtn,#spacesToggle,#muscleZonesToggle,#openWallsToggle,#dimensionsToggle,#gridToggle) {
  position:static; display:flex; flex:none; align-items:center; justify-content:center;
  width:auto; min-width:30px; min-height:32px; height:32px; gap:4px; padding:5px 7px;
  border:1px solid transparent; border-radius:5px; box-shadow:none; background:transparent;
  color:var(--muted); font:500 11px 'IBM Plex Sans','Segoe UI',sans-serif;
}
html[data-theme] .workspace .layout2d-view .grouped-plan-toolbar .plan-display-controls :is(#snapBtn,#spacesToggle,#muscleZonesToggle,#openWallsToggle,#dimensionsToggle,#gridToggle)[aria-pressed=true] {
  background:var(--panel2); border-color:var(--line); color:var(--ink);
}
html[data-theme] .grouped-plan-toolbar .plan-display-controls svg { width:15px; height:15px; flex:none; }
html[data-theme] .workspace .layout2d-view:has(>.grouped-plan-toolbar) .area-badge {
  top:12px; left:12px; width:160px; height:44px; padding:6px 10px; display:flex;
  flex-direction:row; align-items:center; justify-content:space-between; gap:8px;
  border:0; border-radius:0; box-shadow:none; background:transparent;
}
html[data-theme] .area-badge .area-caption { max-width:76px; font-size:11px; line-height:1.3; text-transform:none; }
.area-caption::first-letter { text-transform:uppercase; }
html[data-theme] .workspace .layout2d-view:has(>.grouped-plan-toolbar) .area-badge #roomArea { margin:0; min-width:0; font-size:var(--area-value-size,21px); line-height:1.1; }
html[data-theme] .workspace>.stage-wrap .layout2d-view:has(>.grouped-plan-toolbar) .canvas-shell { top:var(--plan-controls-height,200px); }
html[data-theme] .workspace .layout2d-view:has(>.grouped-plan-toolbar) :is(#fixturebar,#floorbar,#doorbar) { top:calc(var(--plan-controls-height,200px) + 4px); }
@container plan-pane (max-width:900px) {
  html[data-theme] .grouped-plan-toolbar .plan-history-tools .plan-control-label { display:none; }
  html[data-theme] .grouped-plan-toolbar .plan-history-tools .tool[data-shortcut]::after { display:none; }
  html[data-theme] .workspace .layout2d-view .grouped-plan-toolbar .plan-history-tools .tool { width:32px; min-width:32px; padding:6px; font-size:0; }
  html[data-theme] .workspace .layout2d-view .grouped-plan-toolbar :is(.tool,.tool-select) { font-size:11px; padding:6px; }
  html[data-theme] .workspace .layout2d-view .grouped-plan-toolbar #wallKind { width:112px; }
  html[data-theme] .workspace .layout2d-view .grouped-plan-toolbar #fixtureAdd { width:104px; }
  html[data-theme] .grouped-plan-toolbar .tool[data-shortcut]::after { display:none; }
}
@container plan-pane (max-width:440px) {
  html[data-theme] .workspace .layout2d-view:has(>.grouped-plan-toolbar) .area-badge { width:120px; height:48px; padding:2px 6px; flex-direction:column; gap:2px; align-items:flex-start; }
  html[data-theme] .area-badge .area-caption { max-width:100%; }
  html[data-theme] .workspace .layout2d-view .grouped-plan-toolbar .plan-display-controls { margin-left:0; }
  html[data-theme] .workspace .layout2d-view .grouped-plan-toolbar .plan-display-controls :is(#snapBtn,#spacesToggle,#muscleZonesToggle,#openWallsToggle,#dimensionsToggle,#gridToggle) { padding:5px; }
}
@container plan-pane (max-width:360px) {
  html[data-theme] .workspace .layout2d-view:has(>.grouped-plan-toolbar) .area-badge { width:90px; }
  html[data-theme] .area-badge .area-caption { font-size:11px; }
  html[data-theme] .grouped-plan-toolbar .plan-display-controls .plan-control-label { display:none; }
}

/* Static color depth; animated feedback belongs to the controls, not the grid. */
html[data-theme] {
  --state-start:#fae3eb; --state-end:#ede8f5; --state-edge:#ad5774; --state-ink:#762c48;
  --header-sheen:linear-gradient(112deg,#192333 0%,#232337 52%,#332333 100%);
  --chrome-sheen:linear-gradient(120deg,#fff 0%,#f1f3fa 58%,#f7eaf0 100%);
  --catalog-sheen:linear-gradient(145deg,#fff 0%,#f4f2fb 60%,#f7eaf0 100%);
  --advisor-sheen:radial-gradient(ellipse at 100% 0%,#ead9ee 0%,transparent 65%),linear-gradient(155deg,#f4f7ff,#fff 65%,#f6edf4);
}
html[data-theme=dark] {
  --state-start:#583348; --state-end:#352a45; --state-edge:#b87594; --state-ink:#ffdaea;
  --chrome-sheen:linear-gradient(120deg,#2b3042 0%,#232532 58%,#362737 100%);
  --catalog-sheen:linear-gradient(145deg,#292f42 0%,#232432 60%,#362737 100%);
  --advisor-sheen:radial-gradient(ellipse at 100% 0%,#70477755 0%,transparent 65%),linear-gradient(155deg,#273146,#1c2230 65%,#302439);
}
html[data-theme] .topbar { background-image:var(--header-sheen); }
html[data-theme] .workspace>.sidebar.catalog-workspace:not(.right)>.side-head { background-image:var(--catalog-sheen); }
html[data-theme] .workspace .layout2d-view .grouped-plan-toolbar { background-image:var(--chrome-sheen); }
html[data-theme] .sidebar.right { background-image:var(--advisor-sheen); }
html[data-theme] .right :is(.assistant,.assistant-head,.advisor-conversation,.messages,.advisor-compose) { background:transparent; }
html[data-theme] .right .assistant .advisor-conversation,
html[data-theme] .right .assistant .advisor-conversation .messages { background:transparent; }
html[data-theme] .right .advisor-tabs { background:transparent; }
html[data-theme] .right .assistant-head { background:transparent; }

/* Selection is persistent and distinct from hover. Read the real state attrs. */
html[data-theme] .workspace .layout2d-view .grouped-plan-toolbar .tool[data-tool].active,
html[data-theme] .workspace .layout2d-view .grouped-plan-toolbar .plan-display-controls :is(#snapBtn,#spacesToggle,#muscleZonesToggle,#openWallsToggle,#dimensionsToggle,#gridToggle)[aria-pressed=true],
html[data-theme] .layout-view-switch button[aria-pressed=true],
html[data-theme] .catalog-view-options button[aria-pressed=true],
html[data-theme] .catalog-workspace .level-tabs .level-tab.active,
html[data-theme] .right .advisor-tabs button[aria-selected=true],
html[data-theme] .workspace-switches #expandPlan[aria-pressed=true],
html[data-theme] .mobile-workspace-nav button[aria-pressed=true] {
  background:linear-gradient(135deg,var(--state-start),var(--state-end));
  border-color:var(--state-edge); color:var(--state-ink);
  box-shadow:inset 0 1px 0 #ffffff15;
}
html[data-theme] .workspace .layout2d-view .grouped-plan-toolbar .tool[data-tool].active:hover,
html[data-theme] .workspace .layout2d-view .grouped-plan-toolbar .plan-display-controls :is(#snapBtn,#spacesToggle,#muscleZonesToggle,#openWallsToggle,#dimensionsToggle,#gridToggle)[aria-pressed=true]:hover,
html[data-theme] .layout-view-switch button[aria-pressed=true]:hover { background:linear-gradient(135deg,var(--state-start),var(--state-end)); color:var(--state-ink); border-color:var(--state-edge); }
html[data-theme] .layout-view-switch button,
html[data-theme] .catalog-view-options button { border:1px solid transparent; }
html[data-theme] .right .advisor-tabs button[aria-selected=true] { border:1px solid var(--state-edge); }
html[data-theme] .catalog-view-options button[aria-pressed=true] { border:1px solid var(--state-edge); }

/* The selected surface carries the state; no miniature switches or shortcut badge. */
html[data-theme] .workspace .layout2d-view .grouped-plan-toolbar .plan-display-controls button[aria-pressed]::after { content:none; display:none; }
html[data-theme] .workspace .layout2d-view .grouped-plan-toolbar .plan-display-controls button[aria-pressed=false] { color:var(--muted); }
html[data-theme] .catalog-workspace .catalog-head-tools #toggleCatalogFilters[aria-expanded=true] { background:linear-gradient(135deg,var(--state-start),var(--state-end)); color:var(--state-ink); }
html[data-theme] .theme-switch #themeToggle { background:transparent; color:var(--muted); }
html[data-theme] .theme-switch #themeToggle:hover { background:var(--surface-hover); }
html[data-theme=dark] .theme-switch #themeToggle { color:var(--sun-ink); }
html[data-theme] .workspace .layout3d-tools button[data-action=cut][aria-pressed=true] { background:linear-gradient(135deg,var(--state-start),var(--state-end)); border-color:var(--state-edge); color:var(--state-ink); }

/* Product photos sit on the drawing, with a quiet outline for their true footprint. */
html[data-theme] { --sun-ink:#f4cf68; }
/* Prevent native text/image selection and the browser's SVG focus box on double click.
   Keyboard focus keeps the footprint highlight defined below. */
.plan #machines, .plan #machines * { -webkit-user-select:none; user-select:none; }
.plan #machines [data-uid]:focus { outline:none; }
html[data-theme] .plan #machines .machine-shape { fill:#0000000d; stroke:var(--muted); stroke-width:.8; }
html[data-theme=dark] .plan #machines .machine-shape { fill:#00000033; }
html[data-theme] .plan #machines .selected .machine-shape,
html[data-theme] .plan #machines [data-uid]:focus-visible .machine-shape { stroke:var(--accent); stroke-width:1.8; }
html[data-theme] .plan #machines .locked .machine-shape { stroke-dasharray:4 3; }
html[data-theme] .plan #machines [data-uid]:not(.machine-placement-invalid) .machine-front { fill:var(--muted); stroke:var(--paper); }
html[data-theme] .plan #machines .selected:not(.machine-placement-invalid) .machine-front { fill:var(--accent); }
html[data-theme] .plan #machines :is(.machine-sku,.machine-size,.machine-eight-note) { font-family:inherit; stroke:var(--paper); stroke-width:2.5; stroke-linejoin:round; }
html[data-theme] .plan #machines [data-uid]:not(.machine-placement-invalid) .machine-sku { fill:var(--ink); }
html[data-theme] .plan #machines [data-uid]:not(.machine-placement-invalid) :is(.machine-size,.machine-eight-note) { fill:var(--muted); }
html[data-theme] .plan #machines [data-uid]:not(.machine-placement-invalid) .machine-eight-envelope { stroke:var(--muted); }
html[data-theme] .plan #machines .selected:not(.machine-placement-invalid) .machine-eight-envelope { stroke:var(--accent); }
html[data-theme] .plan #machines .machine-eight-bridge { fill:var(--muted); stroke:var(--muted); }
html[data-theme] .plan #machines .object-action .action-disc { fill:var(--panel); stroke:var(--muted); }
html[data-theme] .plan #machines .object-action .action-icon { stroke:var(--ink); }
html[data-theme] .plan #machines .object-action:is(:hover,:focus-visible) .action-disc { fill:var(--surface-hover); stroke:var(--accent); }
html[data-theme] .plan .machine-rotation-ring { stroke:var(--accent); }
html[data-theme] .plan .machine-rotation-knob { fill:var(--panel); stroke:var(--accent); }
html[data-theme] .plan .machine-rotation-knob:focus { fill:var(--accent-soft); }
html[data-theme] .plan .machine-rotation-angle { fill:var(--accent-ink); stroke:var(--paper); font-family:inherit; font-weight:600; }
html[data-theme] .workspace #selbar { background:var(--panel); border:1px solid var(--line); border-radius:9px; box-shadow:var(--floating-shadow); color:var(--ink); }
html[data-theme] .workspace #selbar :is(button,select) { background:var(--panel2); border:1px solid var(--line); border-radius:6px; color:var(--ink); font-family:inherit; font-size:11px; }
html[data-theme] .workspace #selbar :is(button,select):hover { background:var(--surface-hover); border-color:var(--muted); }

@media(prefers-reduced-motion:no-preference) {
  html[data-theme] :is(.grouped-plan-toolbar button,.layout-view-switch button,.theme-switch button,.catalog-view-options button,.right .advisor-tabs button,.advisor-prompts button,.top-actions .btn) {
    transition:background-color 160ms cubic-bezier(.16,1,.3,1),border-color 160ms cubic-bezier(.16,1,.3,1),color 160ms cubic-bezier(.16,1,.3,1),box-shadow 160ms cubic-bezier(.16,1,.3,1),transform 100ms ease-out;
  }
  html[data-theme] :is(.grouped-plan-toolbar button,.layout-view-switch button,.theme-switch button,.top-actions .btn):not(:disabled):active { transform:translateY(1px); }
}
@media(prefers-reduced-motion:reduce) {
  html[data-theme] :is(.grouped-plan-toolbar button,.layout-view-switch button,.theme-switch button,.catalog-view-options button,.right .advisor-tabs button,.advisor-prompts button,.top-actions .btn) { transition:color 80ms linear,border-color 80ms linear; transform:none; }
}

/* Local placeholder: no phone number, remote assets or connection to WhatsApp. */
html[data-theme] { --whatsapp-green:#128c7e; --whatsapp-hover:#075e54; }
.whatsapp-contact { position:absolute; left:16px; right:20px; bottom:48px; display:flex; justify-content:flex-end; pointer-events:none; z-index:15; }
.whatsapp-contact[hidden] { display:none; }
html[data-theme] .whatsapp-button { display:grid; place-items:center; width:52px; height:52px; padding:12px; border:0; border-radius:50%; background:var(--whatsapp-green); color:#fff; box-shadow:0 8px 20px #0003; cursor:pointer; pointer-events:auto; }
html[data-theme] .whatsapp-button:hover { background:var(--whatsapp-hover); }
.whatsapp-button svg { width:28px; height:28px; fill:currentColor; pointer-events:none; }
html[data-theme] .whatsapp-notice { position:absolute; right:0; bottom:64px; width:264px; max-width:100%; padding:16px; border:1px solid var(--line); border-radius:12px; background:var(--panel); color:var(--ink); font-size:13px; line-height:1.5; pointer-events:auto; }
.whatsapp-notice[hidden] { display:none; }
.whatsapp-notice strong { font-weight:600; }
html[data-theme] .whatsapp-notice p { margin:4px 0 0; color:var(--muted); }

html[data-theme] .plan-empty-message { position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); width:calc(100% - 48px); max-width:360px; margin:0; padding:16px; border-radius:9px; background:var(--paper); color:var(--muted); text-align:center; font-size:16px; line-height:1.5; pointer-events:none; user-select:none; z-index:1; }
.plan-empty-message[hidden] { display:none; }

/* Both modes use the 2D toolbar's measured frame, including its responsive wrap.
   Keep this pane measurable but hidden/inaccessible while 3D owns the canvas. */
.stage-wrap.is-3d>.layout2d-view[hidden] { display:block; visibility:hidden; pointer-events:none; }
html[data-theme] .workspace .stage-wrap .layout3d-head {
  position:relative; display:block; align-content:start; flex:none; height:var(--shared-controls-height,200px);
  min-height:0; padding:12px; border:0; background:var(--paper);
}
html[data-theme] .workspace .layout3d-tools {
  display:flex; flex-wrap:wrap; align-content:center; align-items:center; gap:8px;
  min-height:var(--shared-tools-height,140px); padding:8px; border:1px solid var(--line);
  border-radius:9px; background:var(--panel); color:var(--ink);
}
.layout3d-tool-group { display:flex; align-items:center; flex-wrap:wrap; gap:4px; min-width:0; }
.layout3d-group-caption { flex-basis:100%; padding-left:8px; color:var(--muted); font-size:11px; line-height:16px; }
.layout3d-camera-tools { flex:1 1 350px; }
.layout3d-utility-tools { flex:0 0 180px; width:180px; margin-left:auto; }
.layout3d-scene-tools { flex-basis:100%; padding-top:8px; border-top:1px solid var(--line); }
html[data-theme] .workspace .layout3d-tools button,
html[data-theme] .workspace .layout3d-tools label {
  display:inline-flex; align-items:center; justify-content:center; flex:none; gap:6px;
  min-height:34px; padding:6px 8px; border:1px solid transparent; border-radius:5px;
  background:transparent; color:var(--muted); font:500 12px var(--studio-font,'IBM Plex Sans',sans-serif);
  line-height:20px; white-space:nowrap;
}
html[data-theme] .workspace .layout3d-tools button:hover { background:var(--surface-hover); color:var(--ink); }
html[data-theme] .workspace .layout3d-tools button[aria-pressed=true] { background:var(--panel2); border-color:var(--line); color:var(--ink); }
html[data-theme] .workspace .layout3d-tools :is(button,input):focus-visible { outline:2px solid var(--ink); outline-offset:2px; }
.layout3d-tools svg { width:16px; height:16px; flex:none; pointer-events:none; }
.layout3d-render:has(.layout3d-empty:not([hidden])) .layout3d-meta { display:none; }
html[data-theme] .workspace .layout3d-tools label { margin-left:auto; padding:0 8px; cursor:default; }
html[data-theme] .workspace .layout3d-tools input {
  width:58px; height:32px; padding:4px; border:1px solid var(--line); border-radius:5px;
  background:var(--input-surface); color:var(--ink); font:inherit; font-variant-numeric:tabular-nums;
}
html[data-theme] .workspace .layout3d-title {
  position:absolute; top:var(--shared-context-top,160px); left:20px;
  display:flex; flex-direction:column; justify-content:center; width:auto;
  max-width:calc(100% - 248px); height:42px; gap:2px;
}
html[data-theme] .workspace .layout3d-title strong { font-size:13px; color:var(--ink); }
html[data-theme] .workspace .layout3d-title small { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; margin:0; font-size:11px; color:var(--muted); }
/* A wide 2D toolbar is only 104px tall. Its 3D counterpart must fit that same
   frame: keep all three labelled groups on one row rather than spilling into
   the fixed context row. Use the measured height, not the window width. */
html[data-theme] .workspace .stage-wrap[data-compact-3d-tools] .layout3d-tools {
  display:grid; grid-template-columns:minmax(350px,1fr) minmax(280px,1fr) 180px;
  grid-template-areas:'camera room presentation';
}
.stage-wrap[data-compact-3d-tools] .layout3d-camera-tools { grid-area:camera; }
.stage-wrap[data-compact-3d-tools] .layout3d-scene-tools { grid-area:room; padding:0 0 0 12px; border-top:0; border-left:1px solid var(--line); }
.stage-wrap[data-compact-3d-tools] .layout3d-utility-tools { grid-area:presentation; width:auto; margin:0; }
@container scene-pane (max-width:900px) {
  html[data-theme] .workspace .stage-wrap[data-compact-3d-tools] .layout3d-tools { display:flex; }
  .stage-wrap[data-compact-3d-tools] .layout3d-group-caption { display:none; }
  .stage-wrap[data-compact-3d-tools] .layout3d-scene-tools { padding:8px 0 0; border-left:0; border-top:1px solid var(--line); }
  .stage-wrap[data-compact-3d-tools] .layout3d-utility-tools { width:180px; margin-left:auto; }
}
@media(max-width:720px) {
  .layout3d-camera-tools { flex-basis:100%; }
  html[data-theme] .workspace .layout3d-tools button { min-height:36px; }
  .layout3d-utility-tools { order:3; flex-basis:100%; width:100%; justify-content:flex-end; }
  .layout3d-utility-tools .layout3d-group-caption { text-align:right; padding-right:8px; }
  html[data-theme] .workspace .layout3d-title { max-width:calc(100% - 220px); }
  .workspace .layout3d-product { flex:0 0 180px; display:grid; grid-template-columns:44px 1fr; column-gap:8px; padding:8px; }
  .workspace .layout3d-product img { grid-row:1/4; width:44px; height:44px; }
  .workspace .layout3d-footer { max-height:64px; overflow-y:auto; }
}

/* Standalone 3D only: mirror the compact two-row layout without changing the
   2D or split views, or the shared view/theme/settings anchor. */
html:root[data-theme] .app .workspace .stage-wrap.is-3d .layout3d-tools {
  display:flex; align-content:start;
}
.workspace .stage-wrap.is-3d .layout3d-group-caption { display:none; }
.workspace .stage-wrap.is-3d .layout3d-camera-tools { flex:1 1 350px; }
.workspace .stage-wrap.is-3d .layout3d-utility-tools { flex:0 0 auto; width:auto; margin-left:auto; }
.workspace .stage-wrap.is-3d .layout3d-scene-tools {
  flex-basis:100%; padding:8px 0 0; border-left:0; border-top:1px solid var(--line);
}
html:root[data-theme] .app.studio-refined .workspace .stage-wrap.is-3d .layout3d-tools button:is([aria-pressed=true],:active) {
  background:var(--studio-accent-soft); background-image:none;
  color:var(--studio-accent); border-color:var(--studio-accent); box-shadow:none;
}

/* /studio-taste.css */
/* Layout Studio / Taste phase 1. Presentation only; no editor geometry or events.
   Existing grid arithmetic, pane widths, collapse modes and drag coordinates stay
   owned by planner-workspace. This sheet overrides the older visual layers even
   when planner-theme moves those links to the end of the document. */
@font-face{font-family:'Studio General Sans';src:url('/landing-assets/general-sans-400.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:'Studio General Sans';src:url('/landing-assets/general-sans-500.woff2') format('woff2');font-weight:500;font-display:swap}
@font-face{font-family:'Studio General Sans';src:url('/landing-assets/general-sans-700.woff2') format('woff2');font-weight:700;font-display:swap}
html:root[data-theme]{
 --studio-font:'Studio General Sans','Segoe UI',sans-serif;
 --paper:#f7f7f7;--panel:#fff;--panel2:#ededed;--ink:#202126;--muted:#646469;--line:#dedee0;
 --input-surface:#fff;--surface-hover:#ececee;--accent:#ce302d;--accent-hover:#ad2421;--accent-soft:#fbeeed;--accent-ink:#ad2421;--red:#ce302d;
 --header:#f7f7f7;--header-line:#dedee0;--header-muted:#646469;--studio-action:#242426;--studio-action-ink:#fff;
 --night-action:#242426;--night-input:#fff;--studio-canvas:#fafafa;--studio-active:#e6e6e8;--studio-control:#c7c7cb;
 --floating-surface:#fff;--floating-line:#dedee0;--floating-ink:#55555c;--floating-shadow:none;
 --state-start:#e6e6e8;--state-end:#e6e6e8;--state-edge:#b8b8bd;--state-ink:#202126;
 --header-sheen:var(--header);--chrome-sheen:var(--paper);--catalog-sheen:var(--paper);--advisor-sheen:var(--paper);
}
html:root[data-theme=dark]{
 --paper:#111;--panel:#1b1b1b;--panel2:#272727;--ink:#f2f2f3;--muted:#b0b0b5;--line:#303033;
 --input-surface:#1b1b1b;--surface-hover:#29292b;--accent:#ee827b;--accent-hover:#f9a49d;--accent-soft:#33211f;--accent-ink:#f19b95;--red:#ee827b;
 --header:#111;--header-line:#303033;--header-muted:#b0b0b5;--studio-action:#efeff0;--studio-action-ink:#181819;
 --night-action:#efeff0;--night-input:#1b1b1b;--studio-canvas:#0c0c0c;--studio-active:#303033;--studio-control:#49494e;
 --floating-surface:#1b1b1b;--floating-line:#303033;--floating-ink:#d1d1d5;
 --state-start:#303033;--state-end:#303033;--state-edge:#66666d;--state-ink:#f2f2f3;
}
html:root[data-theme] body{background:var(--paper);color:var(--ink);font:400 14px/1.5 var(--studio-font);-webkit-font-smoothing:antialiased}
html:root[data-theme] .app :is(button,input,select,textarea){font-family:var(--studio-font);font-variant-numeric:tabular-nums}
html:root[data-theme] .app :is(button,select){transition:background-color .16s ease,color .16s ease,border-color .16s ease}
html:root[data-theme] .app :is(button,input,select,textarea):focus-visible{outline:2px solid var(--accent);outline-offset:2px}
html:root[data-theme] .app ::selection{background:var(--accent);color:var(--paper)}
html:root[data-theme] .app *{scrollbar-color:var(--studio-control) transparent;scrollbar-width:thin}
html:root[data-theme] .app :is(input,textarea)::placeholder{color:var(--muted);opacity:1}
html:root[data-theme] .app :is(.topbar,.sidebar,.side-head,.catalog-view-bar,.active-filter-bar,.advisor-tabs,.workspace-panel){background:var(--paper);background-image:none;color:var(--ink);border-color:var(--line)}
html:root[data-theme] .app .topbar{padding-inline:20px;gap:20px;box-shadow:none}
html:root[data-theme] .app .topbar .brand{margin:0}
html:root[data-theme] .app .topbar .brand-logo{width:150px}
html:root[data-theme=light] .app .topbar .brand-logo{filter:invert(1) hue-rotate(180deg)}
html:root[data-theme=dark] .app .topbar .brand-logo{filter:none}
html:root[data-theme] .app .project{border-color:var(--line);gap:2px}
html:root[data-theme] .app .project-title input{font-size:14px;font-weight:500;color:var(--ink);background:transparent}
html:root[data-theme] .app .saved{font-size:11px;color:var(--muted)}
html:root[data-theme] .app .workspace-switches button{font-size:12px;color:var(--muted);background:transparent;border-color:transparent;min-height:34px}
html:root[data-theme] .app .workspace-switches button:hover{background:var(--panel2);color:var(--ink)}
html:root[data-theme] .app .top-actions{gap:6px}
html:root[data-theme] .app .top-actions .btn{min-height:34px;border:1px solid var(--line);border-radius:6px;background:transparent;color:var(--ink);font-size:12px;font-weight:500;padding:7px 12px;box-shadow:none}
html:root[data-theme] .app .top-actions #saveProjectBtn{background:var(--studio-action);border-color:var(--studio-action);color:var(--studio-action-ink)}
html:root[data-theme] .app .top-actions #exportBtn{background:transparent;color:var(--ink)}
html:root[data-theme] .app .top-actions .btn:hover{background:var(--surface-hover);color:var(--ink)}
html:root[data-theme] .app .top-actions #saveProjectBtn:hover{opacity:.85;background:var(--studio-action);color:var(--studio-action-ink)}
/* Real catalog objects: larger media slots and legible identity, no tinted trays. */
html:root[data-theme] .app .catalog-workspace .side-head{padding:16px;background:var(--paper)}
html:root[data-theme] .app .catalog-title{font-size:18px;letter-spacing:-.025em;font-weight:500}
html:root[data-theme] .app .catalog-workspace :is(input.search,select,#toggleCatalogFilters){background:var(--input-surface);border:1px solid var(--line);color:var(--ink);border-radius:6px;min-height:34px;font-size:12px;box-shadow:none}
html:root[data-theme] .app .catalog-workspace input.search{min-height:40px;font-size:13px}
html:root[data-theme] .app .catalog-workspace .filter-label{font-size:11px;font-weight:400;color:var(--muted);letter-spacing:0;text-transform:none}
html:root[data-theme] .app .catalog-workspace .level-tabs .level-tab{background:var(--panel);color:var(--muted);border:1px solid var(--line);border-radius:5px;font-size:11px;min-height:34px;box-shadow:none}
html:root[data-theme] .app .catalog-workspace #catalogFilterPanel{border-color:var(--line)}
html:root[data-theme] .app .catalog-view-bar{padding:8px 16px;min-height:44px}
html:root[data-theme] .app .catalog-view-bar :is(span,select){font-size:11px;color:var(--muted)}
html:root[data-theme] .app .catalog-view-options button{background:transparent;border-color:transparent;color:var(--muted);border-radius:4px;box-shadow:none}
html:root[data-theme] .app .catalog{background:var(--paper);padding:12px;gap:10px}
html:root[data-theme] .app .catalog[data-view=compact]{grid-template-columns:repeat(auto-fit,minmax(122px,1fr))}
html:root[data-theme] .app .catalog .machine-card{padding:10px;gap:10px;background:var(--panel);border:0;border-radius:8px;box-shadow:none;transform:none;isolation:auto}
html:root[data-theme] .app .catalog .machine-card::before{content:none;background:none}
html:root[data-theme] .app .catalog .machine-card:hover{background:var(--surface-hover);box-shadow:none;transform:none}
html:root[data-theme] .app .catalog .photo-wrap{background:#fff;border:0;border-radius:5px;overflow:hidden}
html:root[data-theme] .app .catalog[data-view=compact] .photo-wrap{height:104px}
html:root[data-theme] .app .catalog .photo-wrap img{object-fit:contain;background:#fff;border-radius:0;mix-blend-mode:normal}
html:root[data-theme] .app .catalog .machine-card h3{font-size:12px;font-weight:500;line-height:1.45;color:var(--ink);letter-spacing:0}
html:root[data-theme] .app .catalog .machine-card .sku{font-size:12px;color:var(--ink);font-weight:700}
html:root[data-theme] .app .catalog .machine-card :is(.meta,.price,.stock){font-size:11px;line-height:1.5;color:var(--muted)}
html:root[data-theme] .app .catalog .machine-card .level{background:var(--panel2);color:var(--muted);font-size:11px;border:0;border-radius:3px;padding:2px 4px}
html:root[data-theme] .app .catalog .card-actions button{background:transparent;border:1px solid var(--line);border-radius:4px;color:var(--ink);box-shadow:none;min-height:30px;font-size:11px;font-weight:500}
html:root[data-theme] .app .catalog .card-actions button:hover{background:var(--panel2);border-color:var(--studio-control)}
html:root[data-theme] .app .catalog .card-actions button:disabled{opacity:1;color:var(--muted);background:transparent;border-color:var(--line);cursor:not-allowed}
/* Native plan, scale, photos and geometry stay unchanged. Only chrome is toned. */
html:root[data-theme] .app :is(.stage-wrap,.layout2d-view,.canvas-shell){background:var(--studio-canvas)}
html:root[data-theme] .app .workspace .layout2d-view .grouped-plan-toolbar{background:var(--paper);border-color:var(--line);border-radius:8px;box-shadow:none;padding:8px;gap:8px}
html:root[data-theme] .app .workspace .layout2d-view .grouped-plan-toolbar :is(button,select){font-family:var(--studio-font);font-size:11px;font-weight:500;border-radius:5px;color:var(--muted);background:transparent;border-color:transparent;box-shadow:none}
html:root[data-theme] .app .workspace .layout2d-view .grouped-plan-toolbar :is(button,select):hover:not(:disabled){color:var(--ink);background:var(--panel2)}
html:root[data-theme] .app .workspace .layout2d-view .grouped-plan-toolbar :is(button,select):disabled{color:var(--muted);opacity:.6;background:transparent;border-color:transparent}
html:root[data-theme] .app .workspace .layout2d-view .grouped-plan-toolbar .tool[data-tool].active,
html:root[data-theme] .app .workspace .layout2d-view .grouped-plan-toolbar .plan-display-controls :is(#snapBtn,#spacesToggle,#muscleZonesToggle,#openWallsToggle,#dimensionsToggle,#gridToggle)[aria-pressed=true],
html:root[data-theme] .app .layout-view-switch button[aria-pressed=true],
html:root[data-theme] .app .catalog-view-options button[aria-pressed=true],
html:root[data-theme] .app .catalog-workspace .level-tabs .level-tab.active,
html:root[data-theme] .app .workspace-switches #expandPlan[aria-pressed=true],
html:root[data-theme] .app .mobile-workspace-nav button[aria-pressed=true],
html:root[data-theme] .app .catalog-head-tools #toggleCatalogFilters[aria-expanded=true],
html:root[data-theme] .app .workspace .layout3d-tools button[data-action=cut][aria-pressed=true]{background:var(--studio-active);background-image:none;color:var(--ink);border-color:var(--studio-control);box-shadow:none}
html:root[data-theme] .app .workspace .layout2d-view .grouped-plan-toolbar .tool[data-tool].active:hover,
html:root[data-theme] .app .workspace .layout2d-view .grouped-plan-toolbar .plan-display-controls :is(#snapBtn,#spacesToggle,#muscleZonesToggle,#openWallsToggle,#dimensionsToggle,#gridToggle)[aria-pressed=true]:hover,
html:root[data-theme] .app .layout-view-switch button[aria-pressed=true]:hover{background:var(--studio-active);background-image:none;color:var(--ink)}
html:root[data-theme] .app .layout-view-switch,html:root[data-theme] .app .theme-switch{background:var(--paper);border-color:var(--line);border-radius:6px;box-shadow:none}
html:root[data-theme] .app .layout-view-switch button,html:root[data-theme] .app .theme-switch button{color:var(--muted);border-radius:4px;background:transparent;box-shadow:none}
html:root[data-theme] .app .area-badge{color:var(--muted);font-size:11px;background:transparent;box-shadow:none}
html:root[data-theme] .app .area-badge b{font-family:var(--studio-font);font-size:20px;font-weight:500;letter-spacing:-.025em;color:var(--ink)}
html:root[data-theme] .app .plan-zoom{border:1px solid var(--line);border-radius:6px;overflow:hidden;box-shadow:none;background:var(--paper)}
html:root[data-theme] .app .plan-zoom button{background:transparent;border:0;color:var(--ink);font-size:11px}
html:root[data-theme] .app .plan-zoom button:hover{background:var(--panel2)}
html:root[data-theme] .app :is(.object-inspector,#selbar){background:var(--panel);color:var(--ink);border:1px solid var(--line);border-radius:8px;box-shadow:none}
html:root[data-theme=dark] .app .grid-minor{stroke:#202020}
html:root[data-theme=dark] .app .grid-major{stroke:#353535}
html:root[data-theme=light] .app .grid-minor{stroke:#e9e9e9}
html:root[data-theme=light] .app .grid-major{stroke:#d8d8da}
/* Advisor and working panels are a quiet second column, with one clear composer. */
html:root[data-theme] .app .right .advisor-tabs{background:var(--paper);padding:8px 12px 0;gap:0;border-bottom:1px solid var(--line)}
html:root[data-theme] .app .right .advisor-tabs button{background:transparent;background-image:none;border:0;border-radius:0;color:var(--muted);box-shadow:none;font-weight:400;font-size:11px;min-height:38px}
html:root[data-theme] .app .right .advisor-tabs #advisorTab{padding:8px 4px;font-size:14px;min-height:36px}
html:root[data-theme] .app .right .advisor-tabs button[aria-selected=true]{background:transparent;background-image:none;color:var(--ink);box-shadow:none;border-bottom:2px solid var(--ink);font-weight:500}
html:root[data-theme] .app .right .advisor-tabs button:hover{color:var(--ink);background:var(--panel)}
html:root[data-theme] .app .right .assistant{background:var(--paper);background-image:none}
html:root[data-theme] .app .right .assistant-head{background:var(--paper);background-image:none;margin-inline:0;padding:20px;border-color:var(--line);box-shadow:none}
html:root[data-theme] .app .assistant-head :is(strong,h3){font-size:14px;font-weight:500;color:var(--ink)}
html:root[data-theme] .app .assistant-head small{font-size:11px;color:var(--muted)}
html:root[data-theme] .app .assistant-head #evaNewChat{background:transparent;color:var(--muted);border:1px solid var(--line);border-radius:5px;font-size:11px;min-height:30px}
html:root[data-theme] .app .right .assistant .advisor-conversation{background:var(--paper);background-image:none;border:0;border-radius:0;box-shadow:none;margin:0;min-height:0}
html:root[data-theme] .app .right .assistant .advisor-conversation .messages{padding:24px 20px;color:var(--ink)}
html:root[data-theme] .app .advisor-welcome h2{font-family:var(--studio-font);font-size:24px;font-weight:500;letter-spacing:-.035em;line-height:1.2;color:var(--ink);max-width:25ch}
html:root[data-theme] .app .advisor-welcome p{font-size:13px;line-height:1.7;color:var(--muted)}
html:root[data-theme] .app .advisor-prompts button{font-size:12px;font-weight:400;color:var(--ink);background:transparent;border-color:var(--line);border-radius:0;min-height:44px}
html:root[data-theme] .app .advisor-prompts button:hover{background:var(--panel)}
html:root[data-theme] .app .advisor-conversation .advisor-compose{background:var(--paper);background-image:none;padding:16px 20px;border-top:1px solid var(--line)}
html:root[data-theme] .app .advisor-compose>label{font-size:11px;color:var(--muted);margin-bottom:8px}
html:root[data-theme] .app .right .advisor-conversation .advisor-compose .ask textarea{background:var(--input-surface);border:1px solid var(--studio-control);border-radius:8px;box-shadow:none;color:var(--ink);padding:12px;line-height:1.6;font-size:13px;caret-color:var(--accent)}
html:root[data-theme] .app .right .advisor-conversation:has(> .messages > .advisor-welcome) .advisor-compose .ask textarea{--first-message-height:112px}
html:root[data-theme] .app .advisor-compose .ask button{background:var(--studio-action);color:var(--studio-action-ink);border:0;border-radius:6px;font-size:12px;font-weight:500;min-height:36px;padding:8px 14px;box-shadow:none}
html:root[data-theme] .app .right .assistant .messages .bubble.user{background:var(--panel2);color:var(--ink);border:0;border-radius:8px;padding:12px 14px;font-size:13px;line-height:1.65}
html:root[data-theme] .app .right .assistant .messages .bubble:not(.user){color:var(--ink);font-size:14px;line-height:1.75}
html:root[data-theme] .app .workspace-panel{padding-inline:20px}
html:root[data-theme] .app .panel-title h2{font-size:20px;letter-spacing:-.025em;font-weight:500;color:var(--ink)}
html:root[data-theme] .app .panel-description{font-size:12px;line-height:1.65;color:var(--muted)}
html:root[data-theme] .app .workspace-panel :is(input,select,textarea){background:var(--input-surface);border-color:var(--studio-control);color:var(--ink);border-radius:5px}
html:root[data-theme] .app .empty-state{background:transparent;border:1px dashed var(--studio-control);color:var(--muted);border-radius:6px;font-size:13px;line-height:1.7;padding:16px}
html:root[data-theme] .app .panel-resize:hover{background:var(--studio-control)}
@media(min-width:900px){html:root[data-theme] .app{grid-template-rows:64px minmax(0,1fr)}html:root[data-theme] .app .topbar{height:64px}}
@media(max-width:1199px) and (min-width:900px){html:root[data-theme] .app .topbar{gap:10px;padding-inline:12px}html:root[data-theme] .app .topbar .brand-logo{width:124px}html:root[data-theme] .app .top-actions .btn{padding-inline:8px;font-size:11px}html:root[data-theme] .app .workspace-switches button{font-size:11px}}
@media(max-width:899px){html:root[data-theme] .app .topbar{gap:8px;padding-inline:12px}html:root[data-theme] .app .topbar .brand-logo{width:124px}html:root[data-theme] .app .top-actions .btn{padding-inline:8px;min-height:34px;font-size:11px}html:root[data-theme] .app .mobile-workspace-nav,html:root[data-theme] .app .mobile-workspace-nav button{background:var(--paper);color:var(--muted);border-color:var(--line);font-family:var(--studio-font)}html:root[data-theme] .app .catalog[data-view=compact]{grid-template-columns:repeat(auto-fit,minmax(122px,1fr))}html:root[data-theme] .app .right .advisor-conversation .advisor-compose .ask textarea{font-size:16px}html:root[data-theme] .app .right .assistant-head{padding:16px}html:root[data-theme] .app .right .assistant .advisor-conversation .messages{padding:20px 16px}}
@media(prefers-reduced-motion:reduce){html:root[data-theme] .app :is(button,input,select,textarea){transition:none}}
/* Keep auxiliary controls legible too, including tools revealed after selection. */
html:root[data-theme] .app :is(.selbar,.object-inspector,.plan-scale-ruler,.layout3d-attribution,.layout3d-model-status) :is(label,small,span,em,button,select,option){font-size:11px}
html:root[data-theme] .app :is(#doorOrientation,#floorProduct,#floorProduct option,.plan-scale-label,.layout3d-attribution,.layout3d-model-status em){font-size:11px}
html:root[data-theme] .app .layout3d-model-badge em{font-size:11px}
html:root[data-theme] .app .top-actions :is(#newBtn,#openProjectsBtn){color:var(--ink)}
html:root[data-theme] .app .top-actions :is(#newBtn,#openProjectsBtn):disabled{color:var(--muted);opacity:1}
html:root[data-theme=light] .app #saveStatus[style*="color"]{color:var(--accent-ink)!important}
html:root[data-theme] .comparison-panel{box-shadow:none}
html:root[data-theme] .mobile-workspace-nav,html:root[data-theme] .mobile-workspace-nav button{background:var(--paper);background-image:none;color:var(--muted);border-color:var(--line);font-family:var(--studio-font);box-shadow:none}
html:root[data-theme] .mobile-workspace-nav button[aria-pressed=true]{background:var(--studio-active);background-image:none;color:var(--ink);box-shadow:none;border-top:2px solid var(--ink)}
/* Replace the decorative text sparkle with the same meaning as an outline SVG. */
html:root[data-theme] .app .workspace-tab-star{display:inline-flex}
html:root[data-theme] .app .workspace-tab-star svg{width:14px;height:14px}
html:root[data-theme] .app .layout3d-product em{font-size:11px}
/* Final reading sizes and native grouped-tool wrapping. */
html:root[data-theme] .app .catalog .machine-card h3,html:root[data-theme] .app .catalog .machine-card .sku{font-size:13px}
html:root[data-theme] .app :is(.hint,.budget-row small){font-size:11px}
html:root[data-theme] :is(.layout3d-attribution,.layout3d-attribution *){font-size:11px}
html:root[data-theme] .app .advisor-avatar svg{width:22px;height:22px}
html:root[data-theme] .app .workspace .layout2d-view .grouped-plan-toolbar .plan-tool-row{flex-wrap:wrap}
html:root[data-theme] .app .workspace .layout2d-view .grouped-plan-toolbar .plan-history-tools{flex-shrink:0}
/* Give every project tab its own readable cell on narrow, resizable rails. */
html:root[data-theme] .app .right .advisor-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;flex-shrink:0}
html:root[data-theme] .app .right .advisor-tabs #advisorTab{grid-column:1/-1}
html:root[data-theme] .app .right .advisor-tabs button:not(#advisorTab){justify-content:flex-start;padding-inline:4px;white-space:nowrap}
html:root[data-theme] .app .workspace .layout2d-view .grouped-plan-toolbar .plan-tool-row{overflow:visible}
html:root[data-theme] .app .workspace .layout2d-view .grouped-plan-toolbar .plan-history-tools{width:auto;max-width:none;flex:0 0 auto}
html:root[data-theme] .app .workspace .layout2d-view .grouped-plan-toolbar #captureBtn{width:auto;min-width:64px;flex:0 0 auto;overflow:visible}
/* Pending issues retain a quiet red state; only a new issue earns a brief pulse. */
html:root[data-theme]{--issue-ink:#a52522}
html:root[data-theme=dark]{--issue-ink:#f19b95}
html:root[data-theme] .app #issuesTab.has-issues{color:var(--issue-ink);background:transparent}
html:root[data-theme] .app #issuesTab.has-issues:is(:hover,[aria-selected=true]){color:var(--issue-ink);background:var(--studio-active)}
html:root[data-theme] .app #issuesTab.has-issues:focus-visible{outline:2px solid var(--issue-ink);outline-offset:-2px}
html:root[data-theme] .app .issue-row.compatibility{display:flex;flex-direction:column;gap:12px;width:100%;box-sizing:border-box;white-space:normal;overflow-wrap:anywhere;text-align:left;padding:16px;border:1px solid var(--line);background:var(--panel);color:var(--ink);font-size:13px;line-height:1.65}
html:root[data-theme] .app .issue-row.compatibility strong{color:var(--issue-ink);font-size:13px;font-weight:600;line-height:1.5}
html:root[data-theme] .app .issue-row.compatibility .issue-action{font-weight:500}
html:root[data-theme] .app .issue-row.compatibility:hover{border-color:var(--studio-control)}
.issues-status{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
@keyframes issues-attention{0%,100%{color:var(--issue-ink)}45%{color:var(--red)}}
@media(prefers-reduced-motion:no-preference){html:root[data-theme] .app #issuesTab.has-issues.issues-new{animation:issues-attention 1.2s cubic-bezier(.16,1,.3,1)}}
@media(prefers-reduced-motion:reduce){html:root[data-theme] .app #issuesTab.has-issues{animation:none;transition:none}}

/* /studio-refine.css */
/* Taste: True-black flat / 605912852, neutral dark with a steel-blue accent.
   The native pane widths, camera, tools and tab handlers remain authoritative.
   1440px shell = 340 catalog + 760 canvas + 340 project. New navigation: 48px. */
.studio-import-dialog .advisor-import{max-height:none;overflow:visible;padding:20px;border:0;background:transparent}
.studio-import-dialog .advisor-import>.section-title{display:none}
.studio-import-dialog .upload{margin-bottom:12px}
.studio-import-dialog .background-photo-action{display:block;width:100%;min-height:40px;margin:0 0 16px;padding:10px 12px;border:1px solid var(--line);border-radius:6px;background:var(--input-surface);color:var(--ink);font:inherit;cursor:pointer}
.studio-import-dialog .background-photo-action.is-remove{border-color:var(--danger);background:var(--danger-soft);color:var(--danger)}
.studio-import-dialog .background-photo-action:hover{border-color:currentColor;filter:brightness(.95)}
.studio-import-dialog .background-photo-action:focus-visible{outline:2px solid var(--studio-accent);outline-offset:3px}
.studio-import-dialog .background-photo-action.is-remove:focus-visible{outline-color:var(--danger)}
html[data-theme] .studio-import-dialog :is(.btn,.calibration input){background:var(--input-surface);color:var(--ink);border:1px solid var(--line)}
html[data-theme] .studio-import-dialog .btn:disabled{opacity:.45;cursor:default}
.studio-import-dialog .file-note{line-height:1.5}
.studio-import-dialog #recognizePlan{margin-top:16px;width:100%}
.studio-import-dialog .calibration{margin-top:20px}
html:root[data-theme]{--studio-accent:#35688f;--advisor-accent:var(--studio-accent);--advisor-paper:var(--paper);--advisor-raised:var(--panel);--catalog-hover:#eff3f6;--studio-accent-soft:#e5edf4;--studio-accent-ink:#fff}
html:root[data-theme=dark]{--studio-accent:#7fa8c9;--advisor-paper:#141414;--advisor-raised:#1c1c1c;--catalog-hover:#242a2f;--studio-accent-soft:#26333e;--studio-accent-ink:#121b22}
html:root[data-theme] .app.studio-refined{--accent:var(--studio-accent);--accent-hover:var(--studio-accent);--accent-ink:var(--studio-accent);--accent-soft:var(--studio-accent-soft)}
html:root[data-theme] .app.studio-refined .topbar{background:var(--header)}
html:root[data-theme] .app.studio-refined .top-actions #saveProjectBtn{background:#b63f38;border-color:#b63f38;color:#fff}
html:root[data-theme] .app.studio-refined .top-actions #saveProjectBtn:hover{background:#a23630;border-color:#a23630;color:#fff;opacity:1}
html:root[data-theme] .app.studio-refined .catalog-workspace{background:var(--paper)}
html:root[data-theme] .app.studio-refined .catalog-workspace .filter-label{font-size:12px;letter-spacing:0;line-height:1.4;color:var(--muted)}
html:root[data-theme] .app.studio-refined .catalog-primary-filters{gap:12px}
html:root[data-theme] .app.studio-refined .catalog-workspace :is(.filter-select,#searchCatalogProfile,#toggleCatalogFilters){min-height:36px;border-radius:6px;font-size:12px;box-shadow:none}
html:root[data-theme] .app.studio-refined .catalog-workspace :is(#seriesFilter,#commercialSeriesFilter,#typeFilter,#bodyFilter,#searchCatalogProfile,#sortFilter),
html:root[data-theme] .app.studio-refined .grouped-plan-toolbar select{
 appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2395979b' stroke-width='1.8' stroke-linecap='round'%3E%3Cpath d='m7 10 5 5 5-5'/%3E%3C/svg%3E");
 background-repeat:no-repeat;background-position:right 8px center;padding-right:28px;
}
html:root[data-theme] .app.studio-refined .catalog-workspace select:focus-visible{border-color:var(--accent)}
html:root[data-theme] .app.studio-refined .eva-catalog-origin{font-size:11px}
html:root[data-theme] .app.studio-refined .catalog-workspace .level-tabs{gap:5px}
html:root[data-theme] .app.studio-refined .catalog-workspace .level-tabs .level-tab{min-height:36px;font-size:11px;background:var(--input-surface)}
/* Compact is explicitly three products per row, independent of List/2 columns. */
html:root[data-theme] .app.studio-refined #catalog[data-view=compact]{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-flow:row;gap:8px;padding:12px;align-content:start}
html:root[data-theme] .app.studio-refined #catalog[data-view=compact] .machine-card{display:flex;flex-direction:column;grid-template-columns:none;min-width:0;padding:7px;gap:7px;border:0;border-radius:6px;background:var(--panel);box-shadow:none}
html:root[data-theme] .app.studio-refined #catalog[data-view=compact] :is(.photo-wrap,.machine-photo,.machine-fallback){width:100%;height:84px;border-radius:4px;flex:none}
html:root[data-theme] .app.studio-refined #catalog[data-view=compact] .machine-photo{object-fit:contain;padding:5px}
html:root[data-theme] .app.studio-refined #catalog[data-view=compact] .eva-card-identity{width:100%;min-width:0}
html:root[data-theme] .app.studio-refined #catalog[data-view=compact] .eva-card-code{display:flex;flex-wrap:wrap;gap:3px;min-height:18px;align-content:start}
html:root[data-theme] .app.studio-refined #catalog[data-view=compact] .sku{font-size:11px;font-weight:500;letter-spacing:0;color:var(--muted);overflow-wrap:anywhere}
html:root[data-theme] .app.studio-refined #catalog[data-view=compact] h3{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;height:2.8em;min-height:2.8em;font-size:12px;font-weight:500;line-height:1.4;margin:5px 0;overflow-wrap:normal}
html:root[data-theme] .app.studio-refined #catalog[data-view=compact] .meta{font-size:11px;line-height:1.5;min-height:3em}
html:root[data-theme] .app.studio-refined #catalog[data-view=compact] .card-foot{display:flex;flex-direction:column;align-items:stretch;gap:7px;width:100%;margin-top:auto}
html:root[data-theme] .app.studio-refined #catalog[data-view=compact] .card-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:3px;width:100%;margin:0}
html:root[data-theme] .app.studio-refined #catalog[data-view=compact] .card-actions button{position:static;inset:auto;display:flex;opacity:1;visibility:visible;pointer-events:auto;transform:none;width:100%;height:28px;min-height:28px;min-width:0;padding:4px;border:0;background:var(--panel2);color:var(--ink);border-radius:4px}
html:root[data-theme] .app.studio-refined #catalog[data-view=compact] .card-actions .add{grid-column:1/-1;height:30px;min-height:30px;gap:3px;font-size:11px;background:var(--studio-action);color:var(--studio-action-ink)}
html:root[data-theme] .app.studio-refined #catalog[data-view=compact] .card-actions svg{width:13px;height:13px;color:inherit;opacity:1}
/* Feedback stays inside each card: the catalog grid and drag coordinates never move. */
html:root[data-theme] .app.studio-refined #catalog[data-view] .machine-card{--catalog-card-surface:var(--panel);--catalog-card-edge:transparent;--catalog-photo-scale:1;background:var(--catalog-card-surface);outline:1px solid var(--catalog-card-edge);outline-offset:-1px;transition:background-color 180ms ease-out,outline-color 180ms ease-out}
html:root[data-theme] .app.studio-refined #catalog[data-view] .machine-card:has(:focus-visible){--catalog-card-surface:var(--catalog-hover);--catalog-card-edge:var(--advisor-accent)}
@media(hover:hover) and (pointer:fine){
 html:root[data-theme] body:not(.catalog-dragging) .app.studio-refined #catalog[data-view] .machine-card:hover{--catalog-card-edge:var(--studio-accent);--catalog-photo-scale:1.045}
 html:root[data-theme] .app.studio-refined #catalog[data-view] .machine-card .add:not(:disabled):is(:hover,:focus-visible){background:var(--studio-accent);color:var(--studio-accent-ink)}
 /* Keep every native action tabbable; reveal the secondary row over the photo. */
 html:root[data-theme] .app.studio-refined #catalog[data-view=compact] .card-actions button:not(.add){position:absolute;top:9px;width:calc((100% - 22px)/3);max-width:24px;height:26px;min-height:26px;background:var(--panel);color:var(--ink);border:1px solid var(--line);opacity:0;pointer-events:none}
 html:root[data-theme] .app.studio-refined #catalog[data-view=compact] .card-actions .similar-badge{left:9px;right:auto}
 html:root[data-theme] .app.studio-refined #catalog[data-view=compact] .card-actions .eva-list-add{left:50%;right:auto;transform:translateX(-50%)}
 html:root[data-theme] .app.studio-refined #catalog[data-view=compact] .card-actions .eva-info{left:auto;right:9px}
 html:root[data-theme] .app.studio-refined #catalog[data-view=compact] .machine-card:is(:hover,:focus-within) .card-actions button:not(.add){opacity:1;pointer-events:auto}
 html:root[data-theme] .app.studio-refined #catalog[data-view=compact] .card-actions button:not(.add):hover{background:var(--panel2);color:var(--studio-accent)}
}
@media(prefers-reduced-motion:no-preference){
 html:root[data-theme] .app.studio-refined #catalog .photo-wrap .machine-photo{transform:scale(var(--catalog-photo-scale));transform-origin:center;transition:transform 220ms cubic-bezier(.22,1,.36,1)}
}
html:root[data-theme] body.catalog-dragging .app.studio-refined #catalog .photo-wrap .machine-photo{transform:none;transition:none}
@media(prefers-reduced-motion:reduce){
 html:root[data-theme] .app.studio-refined #catalog[data-view] .machine-card{transition:none}
}
html:root[data-theme] .app.studio-refined .catalog-workspace :is(.catalog-view-options button[aria-pressed=true],.level-tabs .level-tab.active){background:var(--studio-accent-soft);color:var(--studio-accent);border-color:var(--studio-accent)}
/* Two quiet rows: drawing/history; floor/display. Keep the native fitting code. */
html:root[data-theme] .app.studio-refined .workspace .layout2d-view .grouped-plan-toolbar{background:var(--panel);border:0;padding:8px;gap:8px;border-radius:8px}
html:root[data-theme] .app.studio-refined .workspace .layout2d-view .grouped-plan-toolbar .plan-tool-row{gap:6px}
html:root[data-theme] .app.studio-refined .workspace .layout2d-view .grouped-plan-toolbar :is(button,select){font-size:12px;min-height:34px;font-weight:400}
html:root[data-theme] .app.studio-refined .workspace .layout2d-view .grouped-plan-toolbar .plan-options-row{padding:6px 8px;border:0;border-radius:4px;background:var(--paper)}
html:root[data-theme] .app.studio-refined .workspace .layout2d-view .grouped-plan-toolbar .plan-history-tools{padding-left:8px;border-color:var(--line)}
html:root[data-theme] .app.studio-refined .workspace .layout2d-view .grouped-plan-toolbar :is(#wallKind,#fixtureAdd){background-color:var(--input-surface);border:1px solid var(--line);border-radius:5px;padding-right:26px;min-width:112px}
html:root[data-theme] .app.studio-refined .grouped-plan-toolbar .tool[data-shortcut]::after{display:none}
html:root[data-theme] .app.studio-refined .workspace .layout2d-view .grouped-plan-toolbar .plan-display-controls button{font-size:11px}
html:root[data-theme] .app.studio-refined .workspace .layout2d-view .grouped-plan-toolbar .plan-tool-row .tool[data-tool]{color:var(--ink);font-weight:500}
html:root[data-theme] .app.studio-refined .workspace .layout2d-view .grouped-plan-toolbar .plan-tool-row .tool[data-tool].active{background:var(--studio-accent-soft);color:var(--studio-accent);border-color:var(--studio-accent)}
html:root[data-theme] .app.studio-refined .workspace .layout2d-view .grouped-plan-toolbar .plan-display-controls button[aria-pressed=true]{background:var(--panel2);color:var(--studio-accent);border-color:transparent}
/* SVG geometry properties square only the equipment footprint and clearance. */
html:root[data-theme] .app.studio-refined #plan #machines :is(.machine-shape,.clearance,.machine-eight-envelope){rx:0;ry:0}
html:root[data-theme] .app.studio-refined .right .assistant-head{background:var(--advisor-raised);padding:18px 20px;border-bottom:0}
html:root[data-theme] .app.studio-refined .right .assistant,
html:root[data-theme] .app.studio-refined .right .assistant .advisor-conversation{background:var(--advisor-paper)}
html:root[data-theme] .app.studio-refined :is(.advisor-avatar,.workspace-tab-star){color:var(--advisor-accent)}
html:root[data-theme] .app.studio-refined .advisor-prompts{gap:0;margin-top:24px}
html:root[data-theme] .app.studio-refined .advisor-prompts button{padding:12px 0;border-color:var(--line);font-size:13px;min-height:46px}
html:root[data-theme] .app.studio-refined .advisor-conversation .advisor-compose{background:var(--advisor-raised);border-top:0;padding:16px 20px 20px}
html:root[data-theme] .app.studio-refined .advisor-compose>label{font-size:12px;color:var(--muted)}
html:root[data-theme] .app.studio-refined .right .advisor-conversation .advisor-compose .ask textarea{background:var(--input-surface);border-color:var(--studio-control);font-size:14px}
html:root[data-theme] .app.studio-refined .area-badge{color:var(--muted)}
/* One quiet outline family. CSS keeps dynamic issue counts and tab handlers intact. */
html:root[data-theme] .app.studio-refined .advisor-tabs button{display:flex;align-items:center;gap:7px}
html:root[data-theme] .app.studio-refined .advisor-tabs #equipmentTab>svg{display:none}
html:root[data-theme] .app.studio-refined .advisor-tabs :is(#equipmentTab,#issuesTab,#briefTab,#feasibilityTab)::before{content:'';display:block;width:16px;height:16px;flex:none;background:currentColor;mask:var(--project-tab-icon) center/contain no-repeat}
html:root[data-theme] .app.studio-refined #equipmentTab{--project-tab-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4' y='7' width='4' height='10' rx='1'/%3E%3Crect x='16' y='7' width='4' height='10' rx='1'/%3E%3Cpath d='M8 12h8 M2 10v4 M22 10v4'/%3E%3C/svg%3E")}
html:root[data-theme] .app.studio-refined #issuesTab{--project-tab-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 8v5 M12 16h.01'/%3E%3C/svg%3E")}
html:root[data-theme] .app.studio-refined #briefTab{--project-tab-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 20h16 M7 15v-4 M12 15V7 M17 15V4'/%3E%3C/svg%3E")}
html:root[data-theme] .app.studio-refined #feasibilityTab{--project-tab-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 10V7H4a1 1 0 0 1 0-2l13-2v4 M4 7H3v13h17v-5'/%3E%3Cpath d='M16 10h5v5h-5a2.5 2.5 0 0 1 0-5Z M17 12.5h.01'/%3E%3C/svg%3E")}
/* The project tabs sit above the plan; EVA has its own right-hand access. */
@media(min-width:900px){
 html:root[data-theme] .app.studio-refined .workspace{grid-template-rows:48px minmax(0,1fr)}
 html:root[data-theme] .app.studio-refined .workspace>.sidebar{grid-row:2}
 html:root[data-theme] .app.studio-refined .workspace>.catalog-workspace{grid-column:1;grid-row:1/-1}
 html:root[data-theme] .app.studio-refined .workspace>.stage-wrap{grid-row:2;grid-column:2}
 html:root[data-theme] .app.studio-refined .workspace>.sidebar.right{grid-column:3}
 html:root[data-theme] .app.studio-refined .workspace>.panel-resize{top:48px}
 html:root[data-theme] .app.studio-refined .workspace>.panel-resize.left{top:0}
 /* The drag target straddles the edge; only the pane draws its divider. */
 html:root[data-theme] .app.studio-refined .workspace>.panel-resize.right{border:0;background:transparent}
 html:root[data-theme] .app.studio-refined .workspace>.panel-resize.right:is(:hover,:focus-visible){background:var(--studio-control)}
 html:root[data-theme] .app.studio-refined .workspace>.studio-project-nav{grid-row:1;grid-column:2/-1;display:grid;grid-template-columns:minmax(0,1fr) var(--project-width);align-items:stretch;min-height:0;gap:0;margin:0;padding:0;border:0;border-bottom:1px solid var(--line);background:var(--paper)}
 html:root[data-theme] .app.studio-refined .studio-project-links{display:flex;flex:1;min-width:0;align-items:stretch;gap:20px;padding-inline:20px;overflow-x:auto;scrollbar-width:thin}
 html:root[data-theme] .app.studio-refined .studio-project-nav button{display:flex;align-items:center;justify-content:center;gap:7px;flex:none;width:auto;min-height:0;height:100%;padding:0 2px;border:0;border-bottom:2px solid transparent;border-radius:0;background:transparent;color:var(--muted);font:400 13px var(--studio-font);white-space:nowrap;box-shadow:none}
 html:root[data-theme] .app.studio-refined .studio-project-nav button[aria-selected=true]{color:var(--advisor-accent);border-bottom-color:var(--advisor-accent);font-weight:500}
 html:root[data-theme] .app.studio-refined .studio-project-nav button:hover{background:var(--surface-hover);color:var(--ink)}
 html:root[data-theme] .app.studio-refined .studio-project-nav #advisorTab{justify-content:flex-start;min-width:var(--project-width);padding-inline:20px;border-left:1px solid var(--line);font-size:14px}
 html:root[data-theme] .app.studio-refined .studio-project-nav #advisorTab[aria-selected=true]{border-bottom-color:transparent;background:var(--advisor-raised)}
 html:root[data-theme] .app.studio-refined .studio-project-nav button svg{width:16px;height:16px}
 html:root[data-theme] .app.studio-refined .workspace:is(.project-collapsed,.plan-expanded) .studio-project-nav{grid-template-columns:minmax(0,1fr) 130px}
 html:root[data-theme] .app.studio-refined .workspace:is(.project-collapsed,.plan-expanded) .studio-project-nav #advisorTab{min-width:130px}
}
@media(min-width:900px) and (max-width:1199px){
 html:root[data-theme] .app.studio-refined .studio-project-links{gap:12px;padding-inline:12px}
 html:root[data-theme] .app.studio-refined .studio-project-nav button{font-size:12px}
}
@media(max-width:899px){
 html:root[data-theme] .app.studio-refined .right .advisor-conversation .advisor-compose .ask textarea{font-size:16px}
 html:root[data-theme] .app.studio-refined #catalog[data-view=compact] .card-actions button{min-height:32px;height:32px}
}

/* Keep the product inspector beside zoom; center actions in the actual plan pane. */
html:root[data-theme] .app .topbar .brand-home{display:flex;align-items:center}
html:root[data-theme] .app.studio-refined #stage .layout2d-view #objectInspector{
 left:12px;right:auto;bottom:calc(42px + var(--plan-zoom-height,36px) + 12px);
 width:260px;max-width:calc(100% - 24px);max-height:calc(100% - 180px);overflow-y:auto;overscroll-behavior:contain;
}
html:root[data-theme] .app.studio-refined #stage .layout2d-view :is(#selbar,#doorbar,#fixturebar){
 background:var(--panel);color:var(--ink);border:1px solid var(--line);border-radius:8px;box-shadow:none;
 padding:4px;gap:4px;align-items:center;font-family:var(--studio-font);font-size:12px;
}
html:root[data-theme] .app.studio-refined #stage .layout2d-view :is(#selbar,#doorbar,#fixturebar) :is(button,select,input){
 box-sizing:border-box;min-height:32px;border:1px solid var(--line);border-radius:4px;padding:4px 8px;
 background:var(--panel2);color:var(--ink);font:inherit;line-height:1.3;
}
html:root[data-theme] .app.studio-refined #stage .layout2d-view :is(#selbar,#doorbar,#fixturebar) :is(button,select):hover{background:var(--surface-hover)}
html:root[data-theme] .app.studio-refined #stage .layout2d-view :is(#selbar,#doorbar,#fixturebar) :is(button,select,input):focus-visible{outline:2px solid var(--studio-accent);outline-offset:2px}
html:root[data-theme] .app.studio-refined #stage .layout2d-view :is(#doorbar,#fixturebar) label{display:inline-flex;align-items:center;gap:6px;min-height:32px;margin:0;padding-inline:4px;font-size:12px;color:var(--muted);white-space:nowrap}
html:root[data-theme] .app.studio-refined #stage .layout2d-view :is(#doorbar,#fixturebar)>:is(strong,#fixtureName){padding-inline:8px;font-size:12px;font-weight:500;white-space:nowrap}
html:root[data-theme] .app.studio-refined #stage .layout2d-view #fixturebar input{width:64px;margin:0;font-variant-numeric:tabular-nums}
html:root[data-theme] .app.studio-refined #stage .layout2d-view :is(#doorbar,#fixturebar) [hidden]{display:none}
html:root[data-theme] .app.studio-refined #stage .layout2d-view #doorOrientationLabel{display:none}
html:root[data-theme] .app.studio-refined #stage .layout2d-view #selbar{
 left:50%;right:auto;bottom:42px;transform:translateX(-50%);
 height:auto;min-height:var(--plan-zoom-height,36px);padding:0 4px;gap:4px;flex-wrap:wrap;align-items:center;justify-content:center;
 max-width:calc(100% - var(--plan-zoom-width,250px) - var(--plan-zoom-width,250px) - 40px);
}
html:root[data-theme] .app.studio-refined #stage .layout2d-view #selbar :is(button,select){
 height:calc(var(--plan-zoom-height,36px) - 2px);min-height:0;padding:4px 8px;line-height:1.3;font-size:11px;flex:none;
}
html:root[data-theme] .app.studio-refined #stage .layout2d-view #selbar .icon-btn{min-width:32px;padding:6px}
html:root[data-theme] .app.studio-refined #stage .layout2d-view #alignSelect{width:132px}
/* Keep every action available when the canvas cannot hold both groups in one row. */
@container plan-pane (max-width:819px){
 html:root[data-theme] .app.studio-refined #stage .layout2d-view #selbar{
  bottom:calc(42px + var(--plan-zoom-height,36px) + 12px);height:auto;min-height:var(--plan-zoom-height,36px);
  max-width:calc(100% - 24px);flex-wrap:wrap;
 }
 html:root[data-theme] .app.studio-refined #stage .layout2d-view:has(#objectInspector:not([hidden])) #selbar{
  bottom:calc(42px + var(--plan-zoom-height,36px) + 12px + var(--object-inspector-height,0px) + 12px);
 }
}

/* /editor-polish-preview.css */
/* Reversible editor presentation trial. Existing nodes, states and handlers own behavior. */
@media (min-width:900px){
 .app.studio-refined .workspace{
  --catalog-width:var(--catalog-preferred-width,340px);
  --project-width:var(--project-preferred-width,340px);
 }
}
@media (min-width:1500px){
 .app.studio-refined .workspace{
  --catalog-width:var(--catalog-preferred-width,400px);
  --project-width:var(--project-preferred-width,380px);
 }
}
@media (900px <= width < 1440px){
 .app.studio-refined .workspace{
  --catalog-width:min(var(--catalog-preferred-width,320px),calc(100vw - 560px));
  --project-width:min(var(--project-preferred-width,340px),calc(100vw - 560px));
 }
 html:root[data-theme] .app.studio-refined .workspace-switches button{max-width:none;min-width:max-content;white-space:nowrap;padding-inline:7px}
 html:root[data-theme] .app.studio-refined .workspace>.studio-project-nav,
 html:root[data-theme] .app.studio-refined .workspace:is(.project-collapsed,.plan-expanded)>.studio-project-nav{grid-template-columns:minmax(0,1fr) auto}
 html:root[data-theme] .app.studio-refined .workspace>.studio-project-nav #advisorTab,
 html:root[data-theme] .app.studio-refined .workspace:is(.project-collapsed,.plan-expanded)>.studio-project-nav #advisorTab{min-width:0;padding-inline:12px 18px}
 html:root[data-theme] .app.studio-refined .workspace.project-collapsed .studio-project-nav #advisorTab[aria-selected=true]{
  background:transparent;color:var(--muted);
 }
}
@media(min-width:900px){
 html:root[data-theme] .app.studio-refined .workspace{grid-template-rows:auto minmax(0,1fr)}
 html:root[data-theme] .app.studio-refined .workspace>.studio-project-nav{min-height:42px}
 html:root[data-theme] .app.studio-refined .studio-project-links{
  flex-wrap:wrap;align-content:center;gap:0 4px;padding:0 8px;overflow:visible;
 }
 html:root[data-theme] .app.studio-refined .studio-project-links>button{
  flex:1 0 auto;height:42px;padding:0 5px;gap:6px;font-size:12px;
 }
 html:root[data-theme] .app.studio-refined .workspace>.panel-resize.right{top:var(--project-nav-height,42px)}

 html:root[data-theme] .app.studio-refined .workspace .layout2d-view .grouped-plan-toolbar{
  padding:10px;gap:10px;border:1px solid var(--line);border-radius:8px;
 }
 html:root[data-theme] .app.studio-refined .workspace .layout2d-view .grouped-plan-toolbar .plan-tool-row{gap:8px}
 html:root[data-theme] .app.studio-refined .workspace .layout2d-view .grouped-plan-toolbar :is(.tool,.tool-select){
  height:36px;min-height:36px;padding:7px 10px;font-size:12px;
 }
 html:root[data-theme] .app.studio-refined .workspace .layout2d-view .grouped-plan-toolbar .plan-tool-row :is([data-tool],#drawZones){padding-inline:9px}
 html:root[data-theme] .app.studio-refined .workspace .layout2d-view .grouped-plan-toolbar #wallKind:disabled{display:none}
 html:root[data-theme] .app.studio-refined .workspace .layout2d-view .grouped-plan-toolbar #fixtureAdd{
  width:112px;min-width:112px;padding-left:10px;font-size:12px;
 }
 html:root[data-theme] .app.studio-refined .workspace .layout2d-view .grouped-plan-toolbar .plan-history-tools{
  gap:6px;padding-left:10px;margin-left:auto;
 }
 html:root[data-theme] .app.studio-refined .workspace .layout2d-view .grouped-plan-toolbar .plan-history-tools .tool{
  width:30px;min-width:30px;padding:6px;font-size:0;
 }
 html:root[data-theme] .app.studio-refined .grouped-plan-toolbar :is(#undoBtn,#redoBtn) .plan-control-label{display:none}
 html:root[data-theme] .app.studio-refined .grouped-plan-toolbar #captureBtn .plan-control-label{display:inline}
 html:root[data-theme] .app.studio-refined .workspace .layout2d-view .grouped-plan-toolbar .plan-options-row{
  padding:8px 0 0;gap:8px 12px;border-top:1px solid var(--line);border-radius:0;background:transparent;
 }
 html:root[data-theme] .app.studio-refined .grouped-plan-toolbar .building-level-row{gap:2px}
 html:root[data-theme] .app.studio-refined .grouped-plan-toolbar .building-levels .building-level-trigger{
  min-width:90px;max-width:150px;padding-inline:6px;
 }
 html:root[data-theme] .app.studio-refined .grouped-plan-toolbar .building-levels .building-level-icon{width:28px;min-width:28px}
 html:root[data-theme] .app.studio-refined .workspace .layout2d-view .grouped-plan-toolbar .plan-display-controls{
  gap:3px;margin-left:auto;
 }
 html:root[data-theme] .app.studio-refined .workspace .layout2d-view .grouped-plan-toolbar .plan-display-controls button{
  padding:5px 6px;min-height:30px;height:30px;font-size:11px;
 }
}

/* Reclaim vertical room on short windows without shrinking text or controls. */
@media (min-width:900px) and (max-height:780px){
 html:root[data-theme] .app.studio-refined{grid-template-rows:56px minmax(0,1fr)}
 html:root[data-theme] .app.studio-refined .topbar{height:56px}
 html:root[data-theme] .app.studio-refined .workspace .layout2d-view .grouped-plan-toolbar{padding:6px 8px;gap:6px}
 html:root[data-theme] .app.studio-refined .workspace .layout2d-view .grouped-plan-toolbar .plan-options-row{padding-top:4px}
}
@media (900px <= width < 1160px){
 html:root[data-theme] .app.studio-refined .studio-project-links{gap:0;padding-inline:4px;flex-wrap:nowrap;overflow-x:auto}
 html:root[data-theme] .app.studio-refined .studio-project-links>button{padding-inline:4px;font-size:11px}
 html:root[data-theme] .app.studio-refined .workspace .studio-project-links>button svg{display:none}
 html:root[data-theme] .app.studio-refined .workspace:is(.project-collapsed,.plan-expanded)>.studio-project-nav #advisorTab{padding-inline:8px 18px}
}
@media (min-width:900px){
 @container plan-pane (max-width:750px){
  html:root[data-theme] .app.studio-refined .workspace .layout2d-view .grouped-plan-toolbar #captureBtn{
   width:36px;min-width:36px;margin-left:0;padding-inline:6px;
  }
  html:root[data-theme] .app.studio-refined .grouped-plan-toolbar #captureBtn .plan-control-label{display:none}
  html:root[data-theme] .app.studio-refined .workspace .layout2d-view .grouped-plan-toolbar .plan-tool-row{gap:4px}
  html:root[data-theme] .app.studio-refined .workspace .layout2d-view .grouped-plan-toolbar .plan-tool-row :is([data-tool],#drawZones){padding-inline:6px}
 }
 @container plan-pane (max-width:650px){
  html:root[data-theme] .app.studio-refined .grouped-plan-toolbar .plan-display-controls .plan-control-label{display:none}
 }
}

@media (720px <= width < 900px){
 html:root[data-theme] .app.studio-refined{grid-template-rows:56px minmax(0,1fr)}
 html:root[data-theme] .app.studio-refined .topbar{height:56px;flex-wrap:nowrap}
 html:root[data-theme] .app.studio-refined .top-actions{width:auto;flex:none}
 html:root[data-theme] .app.studio-refined .top-actions .btn{white-space:nowrap}
}
@media (width < 900px){
 html:root[data-theme] .app.studio-refined .workspace .layout2d-view .grouped-plan-toolbar #wallKind:disabled{display:none}
}
@media (width < 480px){
 html:root[data-theme] .app.studio-refined .grouped-plan-toolbar .plan-display-controls .plan-control-label{display:none}
}

html:root[data-theme] .app.studio-refined .workspace .layout2d-view .grouped-plan-toolbar #captureBtn{
 width:auto;min-width:86px;margin-left:4px;gap:6px;padding-inline:9px;font-size:12px;
}
html:root[data-theme] .app.studio-refined .grouped-plan-toolbar #captureBtn svg{width:16px;height:16px}

/* Keep selection actions beside zoom and the metric scale in the split pane. */
html:root[data-theme] .app.studio-refined #stage.is-split .layout2d-view #selbar{
 left:calc(24px + var(--plan-zoom-width,250px));right:auto;transform:none;
 box-sizing:border-box;width:max-content;max-width:calc(100% - var(--plan-zoom-width,250px) - 36px);flex-wrap:nowrap;
 justify-content:flex-start;overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;scrollbar-width:thin;
}
html:root[data-theme] .app.studio-refined #stage.is-split .layout2d-view #selbar,
html:root[data-theme] .app.studio-refined #stage.is-split .layout2d-view:has(#objectInspector:not([hidden])) #selbar{
 bottom:42px;
}

/* Align the existing 3D capture action with the right edge of its split pane. */
html:root[data-theme] .app.studio-refined .stage-wrap.is-split .layout3d-utility-tools{justify-content:flex-end}
html:root[data-theme] .app.studio-refined .stage-wrap.is-split .layout3d-utility-tools .layout3d-group-caption{text-align:right;padding-right:8px}

/* Standard stop affordance. Keep the original cancellation handler and labels. */
html:root[data-theme] .app.studio-refined .right .advisor-conversation .advisor-compose .ask button.is-stopping{
 display:inline-flex;align-items:center;justify-content:center;align-self:flex-end;
 flex:0 0 36px;width:36px;height:36px;min-width:36px;min-height:36px;max-width:36px;max-height:36px;
 padding:0;border:0;border-radius:50%;background:var(--studio-action);color:var(--studio-action-ink);
 font-size:0;line-height:1;aspect-ratio:1;
}
html:root[data-theme] .app.studio-refined .advisor-compose .ask button.is-stopping .advisor-stop-icon{
 display:block;flex:none;width:11px;height:11px;min-width:11px;max-width:11px;max-height:11px;
 margin:0;border-radius:2px;background:currentColor;pointer-events:none;
}
@media(pointer:coarse){
 html:root[data-theme] .app.studio-refined .right .advisor-conversation .advisor-compose .ask button.is-stopping{
  flex-basis:44px;width:44px;height:44px;min-width:44px;min-height:44px;max-width:44px;max-height:44px;
 }
}

/* Preserve List and Compact; refine the existing two-column view. */
html:root[data-theme] .app.studio-refined #catalog[data-view=columns]{
 display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:12px;align-content:start;
}
html:root[data-theme] .app.studio-refined #catalog[data-view=columns] .machine-card{
 display:flex;flex-direction:column;min-width:0;padding:10px;gap:8px;border-radius:8px;
}
html:root[data-theme] .app.studio-refined #catalog[data-view=columns] :is(.photo-wrap,.machine-photo,.machine-fallback){
 width:100%;height:124px;border-radius:5px;flex:none;
}
html:root[data-theme] .app.studio-refined #catalog[data-view=columns] .machine-photo{object-fit:contain;padding:6px}
html:root[data-theme] .app.studio-refined #catalog[data-view=columns] .eva-card-code{display:flex;flex-wrap:wrap;gap:4px;align-items:center}
html:root[data-theme] .app.studio-refined #catalog[data-view=columns] .sku{font-size:12px;font-weight:600;color:var(--ink);overflow-wrap:anywhere}
html:root[data-theme] .app.studio-refined #catalog[data-view=columns] h3{
 display:block;height:auto;max-height:none;min-height:0;margin:6px 0;font-size:13px;font-weight:500;
 line-height:1.45;overflow:visible;overflow-wrap:anywhere;-webkit-line-clamp:unset;
}
html:root[data-theme] .app.studio-refined #catalog[data-view=columns] .meta{font-size:11px;line-height:1.5;min-height:0}
html:root[data-theme] .app.studio-refined #catalog[data-view=columns] .card-foot{margin-top:auto;width:100%}
html:root[data-theme] .app.studio-refined #catalog[data-view=columns] .card-actions .add{min-height:34px;font-size:12px}

@media(max-width:899px){
 html:root[data-theme] .app.studio-refined #catalog[data-view=columns] :is(.photo-wrap,.machine-photo,.machine-fallback){height:116px}
}

/* /studio-settings.css */
/* Small editor preferences; keep native inputs, events and drawing geometry. */
html:root[data-theme] .app.studio-refined .workspace .layout2d-view .grouped-plan-toolbar #wallKind{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%2392979d' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m4 6 4 4 4-4'/%3E%3C/svg%3E");background-repeat:no-repeat;background-size:16px;background-position:right 9px center;padding-right:30px}
html:root[data-theme] .app .layout-view-switch #studioSettingsButton{display:grid;place-items:center;flex:none;width:34px;height:32px;min-width:34px;padding:6px;color:var(--muted);border:0;border-left:1px solid var(--line);border-radius:0;background:transparent}
html:root[data-theme] .app .layout-view-switch #studioSettingsButton:hover{color:var(--studio-accent);background:var(--panel2)}
.studio-settings-trigger svg{width:18px;height:18px;pointer-events:none}
.studio-settings-dialog{box-sizing:border-box;width:380px;max-width:calc(100vw - 32px);max-height:calc(100dvh - 32px);overflow:auto;padding:24px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--ink);font-family:var(--studio-font)}
.studio-settings-dialog::backdrop{background:#0008}
.studio-settings-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:24px}
.studio-settings-head h2{margin:0;font-size:20px;font-weight:500;letter-spacing:-.025em}
.studio-settings-head button{display:grid;place-items:center;flex:none;width:32px;height:32px;padding:7px;border:0;border-radius:4px;background:transparent;color:var(--muted);cursor:pointer}
.studio-settings-head button:hover{background:var(--panel2);color:var(--ink)}
.studio-settings-head svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round}
.studio-future-setting{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-bottom:24px;color:var(--muted);font-size:14px}
.studio-future-setting small{font-size:12px}
.studio-unit-setting{min-width:0;margin:0 0 24px;padding:0 0 24px;border:0;border-bottom:1px solid var(--line)}
.studio-unit-setting legend{padding:0;margin-bottom:16px;font-size:14px;font-weight:500}
.studio-setting-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,180px);align-items:center;gap:12px;margin:12px 0;font-size:13px}
.studio-setting-row[hidden]{display:none}
.studio-setting-row select{box-sizing:border-box;width:100%;min-width:0;min-height:36px;padding:6px 8px;border:1px solid var(--line);border-radius:4px;background:var(--paper);color:var(--ink);font:inherit;color-scheme:inherit}
.studio-setting-row select:focus-visible{outline:2px solid var(--studio-accent);outline-offset:2px}
.studio-setting-row select:disabled{color:var(--muted);cursor:not-allowed}
.studio-unit-example{margin:16px 0 8px;font-size:13px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.studio-unit-help{margin:0;color:var(--muted);font-size:12px;line-height:1.6}
@media(max-width:600px){.studio-setting-row select{min-height:44px;font-size:16px}.studio-setting-row{grid-template-columns:minmax(0,1fr) minmax(0,175px)}}
.studio-dimension-setting{min-width:0;margin:0;padding:0;border:0}
.studio-dimension-setting legend{padding:0;font-size:14px;font-weight:500}
.studio-dimension-setting p{margin:8px 0 16px;color:var(--muted);font-size:12px;line-height:1.6}
.studio-dimension-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.studio-dimension-options label{position:relative;min-width:0;cursor:pointer}
.studio-dimension-options input{position:absolute;width:1px;height:1px;clip-path:inset(50%);overflow:hidden}
.studio-dimension-options span{display:grid;gap:10px;padding:12px;border:1px solid var(--line);border-radius:5px;background:var(--paper);font-size:13px;color:var(--muted)}
.studio-dimension-options input:checked+span{border-color:var(--studio-accent);background:var(--studio-accent-soft);color:var(--studio-accent)}
.studio-dimension-options input:focus-visible+span{outline:2px solid var(--studio-accent);outline-offset:3px}
.studio-settings-dialog button:focus-visible{outline:2px solid var(--studio-accent);outline-offset:2px}
.studio-dimension-options svg{width:100%;height:54px;fill:none;stroke:currentColor;stroke-width:1;stroke-linecap:butt}
.studio-dimension-options .setting-wall{stroke-width:5}
.studio-dimension-options .setting-label{fill:var(--paper);stroke:none}
.studio-dimension-options input:checked+span .setting-label{fill:var(--studio-accent-soft)}
.studio-dimension-options text{fill:currentColor;stroke:none;text-anchor:middle;font:10px var(--studio-font)}
.wall-external-dimension{pointer-events:none;fill:none;stroke:var(--muted);stroke-width:.8;vector-effect:non-scaling-stroke}
.wall-external-dimension line{vector-effect:non-scaling-stroke}
/* Exterior labels sit above their dimension line without the integrated label's box. */
.plan .dim.dim-external{filter:none}
.dimensions-hidden .wall-external-dimension{display:none}
.studio-interior-setting{display:flex;align-items:center;gap:9px;margin-top:20px;font-size:13px;cursor:pointer}
.studio-interior-setting input{width:16px;height:16px;accent-color:var(--ink)}
.studio-dimension-setting .studio-interior-help{margin-bottom:0;font-size:12px;line-height:1.6}
.room-interior-dimensions{pointer-events:none}
.room-interior-line{fill:none;stroke:var(--muted,#646773);stroke-opacity:.38;stroke-width:.65;stroke-dasharray:3 5;vector-effect:non-scaling-stroke}
.room-interior-tick{stroke:var(--muted,#646773);stroke-opacity:.6;stroke-width:.65;vector-effect:non-scaling-stroke}
.room-interior-label{fill:var(--muted,#646773);stroke:var(--studio-canvas,var(--paper,#fff));paint-order:stroke;stroke-linejoin:round;font-family:var(--studio-font,'Segoe UI',sans-serif);font-weight:400}
.dimensions-hidden .room-interior-dimensions{display:none}
.studio-dimension-density{display:grid;grid-template-columns:1fr auto;align-items:center;gap:16px;margin-top:20px;font-size:13px}.studio-dimension-density select{min-height:36px;padding:6px 28px 6px 10px;border:1px solid var(--line);border-radius:4px;background:var(--paper);color:var(--ink);font:inherit}.studio-dimension-density select:focus-visible{outline:2px solid var(--ink);outline-offset:2px}
.adaptive-dimension-line{stroke:var(--muted);stroke-opacity:.6;stroke-width:.75;vector-effect:non-scaling-stroke;pointer-events:none}
.adaptive-dimension-label .dimension-hit-area{fill:transparent;stroke:none}.plan .dim.dim-adaptive{fill:var(--ink);stroke:var(--studio-canvas,var(--paper));stroke-width:3;stroke-linejoin:round;filter:none;font-family:var(--studio-font);font-weight:500;paint-order:stroke;pointer-events:none}
.adaptive-dimension-label[role=button]{cursor:pointer}.adaptive-dimension-label:focus-visible{outline:none}.adaptive-dimension-label:is(:focus-visible,.is-selected) .dim{fill:var(--studio-accent,var(--ink))}.adaptive-dimension-label:focus-visible .dim{text-decoration:underline;text-underline-offset:3px}.dimensions-hidden .adaptive-dimensions{display:none}
.plan .door-slide-panel{fill:var(--studio-canvas,var(--paper));stroke:var(--ink);stroke-width:1;vector-effect:non-scaling-stroke}.plan .door-slide-track{stroke:var(--muted);stroke-width:1;vector-effect:non-scaling-stroke}.plan .door-slide-closed{stroke:var(--muted);stroke-width:1;stroke-dasharray:3 3;vector-effect:non-scaling-stroke}.plan .wall-visual.is-selected .door-slide-panel{stroke:var(--studio-accent,var(--ink))}
@media(max-width:600px){.studio-dimension-density select{min-height:44px;font-size:16px}}
/* Investment copy shares a single inset, with amounts in their own column. */
html:root[data-theme] .app #feasibilityPanel{padding:0;min-width:0;overflow-x:hidden}
html:root[data-theme] .app #feasibilityPanel>.side-head{padding:16px 20px}
html:root[data-theme] .app #feasibilityPanel>.side-head h2{margin:0;font-size:18px;font-weight:500;line-height:1.4;overflow-wrap:anywhere}
html:root[data-theme] .app #feasibilityPanel>.kpis{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0;padding:16px 20px}
html:root[data-theme] .app #feasibilityPanel .kpi{min-width:0;padding:12px;border:0;background:var(--panel)}
html:root[data-theme] .app #feasibilityPanel .kpi small{display:block;white-space:normal;font-size:12px;line-height:1.5;overflow-wrap:anywhere}
html:root[data-theme] .app #feasibilityPanel .kpi strong{display:block;margin-top:6px;font-size:24px;line-height:1.3;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
html:root[data-theme] .app #feasibilityPanel>#availableAreaNote{margin:0;padding:0 20px 16px;font-size:12px;line-height:1.65;overflow-wrap:anywhere}
html:root[data-theme] .app #feasibilityPanel>.section{padding:16px 20px}
html:root[data-theme] .app #feasibilityPanel .section-title{display:grid;grid-template-columns:minmax(0,1fr) fit-content(48%);align-items:start;gap:12px}
html:root[data-theme] .app #feasibilityPanel .section-title h3{min-width:0;margin:0;font-size:14px;line-height:1.5}
html:root[data-theme] .app #feasibilityPanel .section-title>span{white-space:normal;text-align:right;font-size:13px;overflow-wrap:break-word;font-variant-numeric:tabular-nums}
html:root[data-theme] .app #feasibilityPanel .budget-row{display:grid;grid-template-columns:minmax(0,1fr) fit-content(48%);align-items:start;gap:12px;line-height:1.6}
html:root[data-theme] .app #feasibilityPanel .budget-row>:first-child{min-width:0;overflow-wrap:anywhere}
html:root[data-theme] .app #feasibilityPanel .budget-row>:last-child{max-width:100%;text-align:right;font-variant-numeric:tabular-nums;white-space:normal;overflow-wrap:break-word}
html:root[data-theme] .app #feasibilityPanel #total{font-size:20px;line-height:1.4}
html:root[data-theme] .app #feasibilityPanel [hidden]{display:none}
html:root[data-theme] .app #feasibilityPanel .budget-conditions{padding:14px;font-size:12px;line-height:1.65;overflow-wrap:anywhere}
html:root[data-theme] .app #feasibilityPanel .budget-conditions strong{font-size:12px;font-weight:500;line-height:1.65;letter-spacing:0}

/* /layout-3d.css */
.layout3d-attribution{font-size:11px;color:#aab3b9;margin-top:var(--space-4)}.layout3d-attribution a{color:#c1d5e0;text-decoration:underline;text-underline-offset:2px}.layout3d-actionbar strong small{display:block;font-size:10px;font-weight:400;color:#b5c5ce;margin-top:var(--space-4)}.layout3d-product em{font-size:10px;color:#b8ccd7;font-style:normal}
.layout3d-projection{position:absolute;top:12px;right:12px;z-index:3;display:flex;flex-direction:column;gap:4px;width:148px;padding:8px;background:var(--panel);color:var(--ink);border:1px solid var(--line);border-radius:6px;font:12px var(--studio-font,'IBM Plex Sans',sans-serif)}
.layout3d-projection>span{font-size:11px;color:var(--muted)}
.layout3d-projection select{width:100%;min-height:34px;padding:4px 6px;border:1px solid var(--line);border-radius:4px;background:var(--input-surface,var(--panel));color:var(--ink);font:inherit;cursor:pointer;color-scheme:light dark}
.layout3d-projection select:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
@media(pointer:coarse){.layout3d-projection select{min-height:44px;font-size:16px}.layout3d-projection{width:164px}}
.layout-view-switch{position:absolute;z-index:15;left:14px;top:102px;display:flex;gap:var(--space-4);padding:var(--space-4);background:#fff;border:1px solid #d7d9d8;border-radius:7px;box-shadow:0 4px 16px #15191d10}
.layout-view-switch button{border:0;border-radius:4px;padding:var(--space-8) var(--space-12);background:transparent;color:#596168;font:600 13px inherit;cursor:pointer}.layout-view-switch button[aria-pressed=true]{background:#202629;color:#fff}.layout-view-switch button:hover{color:#d3463c}
.layout3d-view{position:absolute;inset:0;z-index:13;background:#202326;display:flex;flex-direction:column;color:#fff;overflow:hidden}.layout3d-view[hidden]{display:none}
.layout3d-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-8);min-height:60px;padding:var(--space-8) var(--space-12);background:#1d2225;border-bottom:1px solid #ffffff15;flex-wrap:wrap}.layout3d-title strong{font-size:15px;display:block}.layout3d-title small{display:block;font-size:12px;color:#a7aeb4;margin-top:var(--space-4)}.layout3d-tools{display:flex;gap:var(--space-4);align-items:center;flex-wrap:wrap}.layout3d-tools button,.layout3d-tools label{font-size:12px;color:#e1e5e8;border:1px solid #4b5258;background:#292f33;border-radius:5px;padding:var(--space-8) var(--space-8);cursor:pointer}.layout3d-tools button[aria-pressed=true]{border-color:#a2684d;background:#4a3328}.layout3d-tools input{width:47px;border:0;border-bottom:1px solid #8e959b;color:#fff;background:transparent;font:inherit;text-align:right}.layout3d-tools .return2d{background:#d7473b;border-color:#d7473b;color:#fff}
.layout3d-render{position:relative;flex:1;min-height:240px;overflow:hidden;background:#202326}.layout3d-render canvas{width:100%;height:100%;display:block;touch-action:none}.layout3d-empty{position:absolute;inset:0;display:grid;place-content:center;text-align:center;pointer-events:none;z-index:2;padding:var(--space-16);color:#fff}.layout3d-empty[hidden]{display:none}.layout3d-empty strong{font-size:20px}.layout3d-empty p{font-size:14px;color:#aeb4b9;max-width:360px;line-height:1.5}.layout3d-actionbar{position:absolute;left:50%;bottom:12px;transform:translateX(-50%);z-index:2;display:flex;align-items:center;gap:var(--space-4);background:#1b2124f2;border:1px solid #536066;border-radius:7px;padding:var(--space-8);max-width:calc(100% - 24px);flex-wrap:wrap;justify-content:center;box-shadow:0 8px 30px #0004}.layout3d-actionbar[hidden]{display:none}.layout3d-actionbar strong{font-size:12px;padding:0 var(--space-8)}.layout3d-actionbar button{background:#313a3f;border:1px solid #58646b;color:#fff;padding:var(--space-8) var(--space-8);border-radius:4px;cursor:pointer;font:12px inherit}.layout3d-actionbar button:disabled{opacity:.4;cursor:not-allowed}.layout3d-actionbar .danger{color:#ffafa7}
.layout3d-shelf{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:var(--space-4);padding:var(--space-8);background:#1d2225;border-top:1px solid #ffffff15}.layout3d-product{display:flex;flex-direction:column;min-width:0;gap:var(--space-4);text-align:left;padding:var(--space-8);border:1px solid #4a5156;border-radius:5px;color:#f3f4f5;background:#2b3135;cursor:pointer}.layout3d-product:hover{border-color:#e07a61;background:#383c3e}.layout3d-product img{height:51px;width:100%;object-fit:contain;background:#fff;border-radius:3px}.layout3d-product strong{font-size:11px;white-space:nowrap}.layout3d-product small{font-size:10px;line-height:1.25;color:#b2b9be}.layout3d-product span{font-size:11px;color:#ef9b86;font-weight:600}
.layout3d-footer{padding:var(--space-8) var(--space-12);background:#1d2225;font-size:12px;line-height:1.45;color:#aab3b9;border-top:1px solid #ffffff0b}.layout3d-status{color:#edc19d}.layout3d-status.invalid{color:#ffa299}.layout3d-meta{position:absolute;left:14px;top:14px;z-index:2;font-size:12px;color:#c0c7cc;pointer-events:none}.layout3d-meta strong{display:block;font-size:20px;color:#fff;margin-bottom:var(--space-4)}.layout3d-error{padding:var(--space-24);color:#ffb1a8;font-size:14px;line-height:1.5}
.stage-wrap.is-3d>.layout-view-switch{top:74px;left:auto;right:14px}.stage-wrap.is-3d>.selbar,.stage-wrap.is-3d>.replacement-bar{display:none!important}.stage-wrap.is-3d>.layout-view-switch button{padding:var(--space-4) var(--space-8);font-size:12px}.stage-wrap.is-3d>.layout-view-switch{background:#292f33;border-color:#535d64}.stage-wrap.is-3d>.layout-view-switch button{color:#bfc7cd}.stage-wrap.is-3d>.layout-view-switch button[aria-pressed=true]{background:#fff;color:#1b242a}
@media(max-width:1099px){.layout-view-switch{top:18px;left:auto;right:14px}.layout3d-head{padding:var(--space-8)}.layout3d-title strong{font-size:14px}.layout3d-tools button,.layout3d-tools label{font-size:11px;padding:var(--space-4)}.stage-wrap.is-3d>.layout-view-switch{top:115px}.layout3d-shelf{gap:var(--space-4);padding:var(--space-4)}.layout3d-product{padding:var(--space-4)}.layout3d-product img{height:42px}.layout3d-product small{display:none}}
.stage-wrap.layout3d-expanded{position:fixed!important;inset:76px 0 0!important;width:100%!important;height:calc(100vh - 76px)!important;z-index:100;margin:0!important}.layout3d-expanded .layout3d-shelf{grid-template-columns:repeat(5,minmax(120px,185px));justify-content:center}.layout3d-expanded .layout3d-product{display:grid;grid-template-columns:60px 1fr;grid-template-rows:auto auto;align-items:center;gap:var(--space-4) var(--space-8)}.layout3d-expanded .layout3d-product img{grid-row:1/4;height:56px}.layout3d-expanded .layout3d-product small{display:none}.layout3d-product.placing{border-color:#ffab87;background:#533f35}.layout3d-product strong{font-size:12px}.layout3d-product small{font-size:11px}.layout-view-switch button{font-family:inherit}
@media(max-width:720px){.layout3d-shelf{grid-template-columns:repeat(5,125px);overflow-x:auto}.layout3d-footer{font-size:11px}.layout3d-title{width:100%}.layout3d-meta{top:55px}.stage-wrap.is-3d>.layout-view-switch{top:120px}.layout3d-expanded .layout3d-shelf{justify-content:start}.stage-wrap.layout3d-expanded{inset:0!important;height:100vh!important}}

/* One editor, two views. Container sizing follows the pane, not the window. */
.layout2d-view{position:absolute;inset:0;container-type:inline-size;container-name:plan-pane;overflow:hidden}
.layout2d-view[hidden]{display:none}
.stage-wrap.is-split>.layout2d-view{right:50%;border-right:1px solid #b9bfc2}
.stage-wrap.is-split>.layout3d-view{left:50%;z-index:12}
.layout2d-view .toolbar{top:14px;left:148px;right:14px;height:80px;min-height:80px;padding:var(--space-4);display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));grid-auto-rows:auto;gap:var(--space-4);align-content:stretch;align-items:stretch;overflow:visible;transform:none}
.layout2d-view .toolbar .tool,.layout2d-view .toolbar .tool-select{height:auto;min-height:0;min-width:0;width:100%;max-width:none;padding:var(--space-4) var(--space-4);font-size:13px;line-height:1.2;text-align:center;display:flex;align-items:center;justify-content:center;gap:var(--space-4)}
.layout2d-view .toolbar .tool span{margin:0;font-size:16px}
.layout2d-view .toolbar [hidden]{display:none!important}
.layout2d-view .toolbar #snapBtn{position:absolute;top:calc(100% + 12px);right:0;width:auto;min-width:82px;height:30px;padding:var(--space-4) var(--space-8);border:1px solid #d7d9d8;border-radius:5px;background:#fff;color:#667078;font-size:11px;font-weight:500;box-shadow:0 2px 7px #15191d08}
.layout2d-view .toolbar #snapBtn.active{background:#fff;border-color:#c8d0d5;color:#394850}
.layout2d-view .toolbar #snapBtn:hover{background:#f0f2f3;border-color:#aab6bf}
.layout2d-view .area-badge{top:14px;left:14px;height:80px;width:120px;display:flex;flex-direction:column;justify-content:center}
.layout2d-view .canvas-shell{inset:148px 0 42px}
.layout2d-view #fixturebar,.layout2d-view #floorbar{top:152px}
.layout-view-switch,.stage-wrap.is-3d>.layout-view-switch{top:102px;left:14px;right:auto}
.layout-view-switch button,.stage-wrap.is-3d>.layout-view-switch button{display:grid;place-items:center;width:46px;height:34px;padding:0;font-size:13px}
.layout-view-switch svg{width:21px;height:21px;pointer-events:none}
.stage-wrap.is-3d>.layout-view-switch{top:80px;left:auto;right:14px}
.is-split .layout3d-head{min-height:94px;align-content:center;padding:var(--space-12);gap:var(--space-8)}
.is-split .layout3d-title{width:100%}.is-split .layout3d-tools{gap:var(--space-4)}
.is-split .layout3d-tools button,.is-split .layout3d-tools label{font-size:12px;padding:var(--space-4)}
.is-split .layout3d-shelf{display:flex;overflow-x:auto;gap:var(--space-4);padding:var(--space-8)}
.is-split .layout3d-product{flex:0 0 112px;display:flex}.is-split .layout3d-product img{height:48px}.is-split .layout3d-product small{display:none}
.is-split .layout3d-footer{font-size:11px;padding:var(--space-8) var(--space-8)}.is-split .layout3d-attribution{font-size:10px}
.is-split .layout2d-view .selbar{max-width:calc(100% - 16px)}
@container plan-pane (max-width:780px){
 .layout2d-view .toolbar{top:104px;left:14px;right:14px;height:80px;min-height:80px}
 .layout2d-view .canvas-shell{top:194px}.layout2d-view #fixturebar,.layout2d-view #floorbar,.layout2d-view #doorbar{top:198px}
}
.stage-wrap:has(.layout2d-view:not([hidden]))>.layout-view-switch{top:26px;left:auto;right:14px}
@container plan-pane (max-width:410px){
 .layout2d-view .toolbar{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(4,32px);height:150px}
 .layout2d-view .canvas-shell{top:264px}.layout2d-view #fixturebar,.layout2d-view #floorbar,.layout2d-view #doorbar{top:268px}
 .layout2d-view .hint{font-size:10px}
}
/* Keep the switch inside the left pane when divided. */
.stage-wrap.is-split:has(.layout2d-view:not([hidden]))>.layout-view-switch{right:calc(50% + 14px)}
.stage-wrap.plan-wide:has(.layout2d-view:not([hidden]))>.layout-view-switch{top:102px;left:14px;right:auto}
@media(max-width:720px){.stage-wrap.is-split{height:850px;min-width:0}.is-split .layout2d-view .area-badge{width:calc(100% - 20px);left:10px;height:64px}.stage-wrap.is-split>.layout-view-switch{top:84px;left:10px;right:auto}.is-split .layout2d-view .toolbar{top:130px;left:6px;right:6px}.is-split .layout2d-view .canvas-shell{top:286px}.is-split .layout3d-render{min-height:180px}.is-split .layout3d-head{padding:var(--space-8)}.is-split .layout3d-tools{max-height:124px;overflow:auto}}

/* Leave the center clear while the rotation ring is active. */
.layout3d-view.rotation-mode .layout3d-actionbar{left:12px;right:auto;transform:none}
.layout3d-view.rotation-mode .layout3d-actionbar strong,.layout3d-view.rotation-mode .layout3d-actionbar button:not([data-object="rotate"]){display:none}

/* /wall-properties.css */
.wall-properties{position:absolute;z-index:26;left:12px;right:12px;top:calc(var(--plan-controls-height,240px) + 8px);max-width:410px;max-height:calc(100% - var(--plan-controls-height,240px) - 64px);overflow:auto;padding:12px;background:var(--panel);color:var(--ink);border:1px solid var(--line);border-radius:8px;font-size:12px;line-height:1.4}
.wall-properties[hidden],.wall-properties [hidden]{display:none!important}
.layout3d-render>.wall-properties{top:auto;bottom:12px;max-height:calc(100% - 24px)}
.wall-properties-heading{display:flex;align-items:center;gap:8px;margin-bottom:12px}
.wall-properties-heading strong{font-size:13px;font-weight:600}
.wall-properties-heading>span{color:var(--muted);font-size:11px}
.wall-properties-heading button{margin-left:auto;display:grid;place-items:center;width:32px;height:32px;padding:6px;border:1px solid var(--line);border-radius:6px;background:var(--panel2);color:var(--ink);cursor:pointer}
.wall-properties-heading svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round}
.wall-properties-fields{display:flex;flex-wrap:wrap;gap:12px}
.wall-properties-fields label{display:flex;flex:1 1 120px;flex-direction:column;gap:4px;min-width:0;font-size:12px}
.wall-properties-fields label>span{display:flex;align-items:center;gap:6px}
.wall-properties-fields input,.wall-properties-fields select{min-width:0;width:100%;min-height:36px;padding:6px 8px;background:var(--input-surface,var(--panel));color:var(--ink);border:1px solid var(--line);border-radius:6px;font:inherit;font-variant-numeric:tabular-nums}
.wall-properties-fields [data-wall-unit]{flex:none;color:var(--muted)}
.wall-properties :is(button,input,select):focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.wall-properties :is(button,input,select):disabled{opacity:.55;cursor:not-allowed}
.wall-properties :is(button,select):hover:not(:disabled){background:var(--surface-hover,var(--panel2))}
.wall-properties input[aria-invalid=true]{border-color:var(--accent)}
.wall-properties p{margin:12px 0 0;font-size:11px;color:var(--muted);max-width:60ch}
.wall-properties .wall-properties-error{color:var(--ink);font-weight:600}
.wall-properties.is-solid-wall{max-width:272px;padding:var(--space-8)}
.is-solid-wall .wall-properties-heading{margin-bottom:var(--space-4)}
.is-solid-wall .wall-properties-heading button{width:26px;height:26px;padding:4px}
.is-solid-wall .wall-properties-fields{gap:var(--space-8)}
.is-solid-wall .wall-properties-fields label{flex:1 1 88px;gap:2px;font-size:11px}
.is-solid-wall .wall-properties-fields input{min-height:28px;padding:3px var(--space-8);font-size:12px}
.is-solid-wall #wallPropertiesHelp{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.is-solid-wall .wall-properties-error{margin-top:var(--space-4)}
@media(pointer:coarse){.wall-properties :is(button,input,select){min-height:44px}.wall-properties input{font-size:16px}}
@media(pointer:coarse){.is-solid-wall .wall-properties-heading button{width:44px}.is-solid-wall .wall-properties-fields input{min-height:44px;font-size:16px}}

/* /planner-levels.css */
.building-levels{position:absolute;z-index:16;left:14px;top:152px;display:flex;align-items:center;width:max-content;max-width:calc(100% - 28px);padding:0;color:var(--ink);font-size:12px}
.building-level-row{display:flex;align-items:center;gap:4px;flex-wrap:nowrap}
.building-level-row label{display:flex;align-items:center;gap:6px;font-weight:650}
.building-levels :is(button,select,input){font:inherit;min-height:30px;border:1px solid var(--line);background:var(--panel);color:var(--ink);padding:4px 8px;border-radius:3px}
.building-levels :is(button,select){cursor:pointer}
.building-levels select{max-width:180px}
.building-levels .building-level-trigger{display:flex;align-items:center;justify-content:space-between;gap:18px;min-width:145px;max-width:220px;text-align:left;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.building-level-trigger::after{content:'';width:5px;height:5px;border-right:1px solid currentColor;border-bottom:1px solid currentColor;transform:rotate(45deg);margin:0 2px 3px 0;flex:none}
.building-levels .building-level-icon{display:inline-grid;place-items:center;width:30px;min-height:30px;padding:5px;border:1px solid var(--line);background:var(--panel);color:var(--muted)}
.building-level-icon svg,.building-level-pencil svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}
.building-levels .building-level-icon:hover{color:var(--ink);background:var(--panel)}
.building-levels small{display:block;color:var(--muted);margin-top:5px;line-height:1.4}
.building-level-legend{display:flex;gap:5px;flex-wrap:wrap;margin-top:6px}
.building-level-legend span{display:inline-flex;align-items:center;gap:5px;padding:2px 8px 2px 0;color:var(--muted)}
.building-level-legend span::before{content:'';width:7px;height:7px;border-radius:50%;background:var(--level-color)}
.building-level-legend span[data-active=true]{color:var(--ink);font-weight:650}
.building-levels [hidden]{display:none}
@container plan-pane (max-width:780px){.building-levels .building-level-trigger{min-width:95px;max-width:145px;gap:8px}}
.building-level-menu{position:fixed;z-index:90;width:260px;max-width:calc(100vw - 16px);overflow:auto;padding:5px;border:1px solid var(--line);border-radius:5px;background:var(--panel);color:var(--ink);box-shadow:0 6px 24px #0004;font-size:12px}
.building-level-menu[hidden]{display:none}
.building-level-menu-row{display:flex;align-items:center;gap:3px;min-height:34px}
.building-level-menu button{font:inherit;color:inherit;cursor:pointer;background:transparent;border:0;border-radius:3px;min-height:32px;padding:6px 8px}
.building-level-menu button:hover{background:var(--paper)}
.building-level-menu .building-level-choice{flex:1;min-width:0;display:block;text-align:left;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.building-level-menu button[aria-pressed=true]{color:var(--red);font-weight:650}
.building-level-menu .building-level-pencil{display:grid;place-items:center;padding:5px;width:28px;min-height:28px;color:var(--muted)}
.building-level-menu .building-level-all{width:100%;border-top:1px solid var(--line);margin-top:4px;border-radius:0}
.building-level-menu input{font:inherit;color:inherit;background:var(--paper);border:1px solid var(--line);border-radius:3px;min-width:0;flex:1;padding:6px 8px}
.building-colors-menu .building-level-choice{width:100%}
.building-level-menu small{display:block;padding:6px 8px;color:var(--muted);font-size:11px}
.building-level-menu :is(button,input):focus-visible{outline:2px solid var(--red);outline-offset:-2px}
.building-level-dialog{width:min(430px,calc(100vw - 32px));background:var(--panel);color:var(--ink);border:1px solid var(--line);padding:20px;border-radius:8px;box-shadow:0 12px 60px #0005}
.building-level-dialog::backdrop{background:#0007}
.building-level-dialog header{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px;font-size:16px}
.building-level-dialog label{display:flex;flex-direction:column;gap:7px;margin:14px 0;font-size:13px}
.building-level-dialog input:not([type=checkbox]){width:100%;font:inherit;padding:9px;background:var(--paper);color:var(--ink);border:1px solid var(--line)}
.building-level-dialog .building-level-copy{flex-direction:row;align-items:center}
.building-level-dialog p{font-size:12px;color:var(--muted);line-height:1.5}
.building-level-dialog footer{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap;margin-top:20px}
.building-level-dialog button{font:inherit;font-size:12px;padding:7px 10px;cursor:pointer;border:1px solid var(--line);background:var(--paper);color:var(--ink)}
.building-level-dialog button[type=submit]{background:var(--red);color:#171e24;border-color:var(--red)}
.building-level-dialog button:disabled{opacity:.4;cursor:default}
.building-levels :is(button,select,input):focus-visible,.building-level-dialog :is(button,input):focus-visible{outline:2px solid var(--red);outline-offset:2px}

/* /planner-spaces.css */
.layout2d-view .toolbar .plan-display-controls #spacesToggle{display:grid;place-items:center;width:32px;height:30px;padding:4px;border:1px solid var(--line);border-radius:0;background:var(--panel,#fff);color:var(--muted);cursor:pointer}
#spacesToggle svg{width:18px;height:18px;pointer-events:none}
.layout2d-view .toolbar .plan-display-controls #spacesToggle[aria-pressed=true]{background:#fff2b5;color:#796000;border-color:#c49c21}
#spacesToggle:focus-visible{outline:2px solid #b58a00;outline-offset:2px}
#spaces{pointer-events:none}
.spaces-visible .grid-minor{stroke-opacity:.13}.spaces-visible .grid-major{stroke-opacity:.3}
.spaces-visible .clearance{display:none}
#spacesLegend{position:absolute;left:12px;bottom:48px;z-index:6;max-width:min(365px,calc(100% - 24px));padding:11px 13px;border:1px solid var(--line,#ccd2d6);border-radius:12px;background:var(--panel,#fff);color:var(--ink,#262c31);box-shadow:0 4px 20px #0001;font-size:12px;line-height:1.5}
#spacesLegend[hidden]{display:none}
.spaces-key{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.spaces-key>span{display:inline-flex;gap:5px;align-items:center;white-space:nowrap}
.spaces-key i{width:10px;height:10px}
.spaces-key details{margin-left:auto}.spaces-key summary,.spaces-issues summary{cursor:pointer;color:var(--muted,#65717b)}
.spaces-settings{padding-top:10px;max-width:325px;max-height:min(570px,65vh);overflow:auto}.spaces-settings>label{display:flex;align-items:center;gap:10px;justify-content:space-between;margin-bottom:8px}
.spaces-settings p{margin:8px 0;color:var(--muted,#65717b)}
.spaces-settings select,.spaces-settings input,.spaces-settings button{font:inherit;background:var(--paper,#f7f8f9);color:var(--ink,#262c31);border:1px solid var(--line,#ccd2d6);border-radius:4px;padding:4px}
.spaces-settings button{cursor:pointer}.spaces-settings :disabled{opacity:.5;cursor:default}
#spacesConfidence{margin-top:4px;font-size:10px;color:var(--muted);font-variant-numeric:tabular-nums}
#spacesStatus{margin-top:5px;color:var(--muted,#65717b);max-width:300px}
#spacesStatus.has-issues{color:#bb574b}.spaces-issues{margin-top:5px;max-height:145px;overflow:auto}
.spaces-issues button{display:block;text-align:left;width:100%;font:inherit;color:var(--ink,#262c31);border:0;background:transparent;padding:5px 0;cursor:pointer}
.spaces-issues button:hover{text-decoration:underline}
.spaces-issues .is-error{color:#cf796c}.spaces-issues .is-review{color:var(--muted)}
html[data-theme=dark] .layout2d-view .toolbar .plan-display-controls #spacesToggle[aria-pressed=true]{background:#473f21;color:#f4d36a;border-color:#937932}
@media(max-width:600px){#spacesLegend{left:8px;bottom:45px;padding:6px 8px;max-width:calc(100% - 16px)}.spaces-key{gap:8px}.spaces-settings{max-height:230px;overflow:auto}}

.spaces-measurement path{fill:none;stroke:#c1dce9;stroke-width:1;vector-effect:non-scaling-stroke}
.spaces-measurement rect{fill:var(--panel,#fff);stroke:#7a9bad;stroke-width:.7;vector-effect:non-scaling-stroke}
.spaces-measurement text{font-family:Inter,sans-serif;font-weight:650;fill:var(--ink,#262c31)}
.dimensions-hidden .spaces-measurement{display:none}
.spaces-key i.narrow{background:repeating-linear-gradient(135deg,#c78657 0 2px,transparent 2px 4px);border:1px solid #c78657;border-radius:2px}
.spaces-narrow-zone path{stroke:#c78657;stroke-width:1;vector-effect:non-scaling-stroke;stroke-dasharray:3 3}
.spaces-measurement.is-clearance path,.spaces-measurement.is-clearance rect{stroke:#c78657}
.spaces-measurement.is-clearance text{fill:#dba276}
#spacesStatus.has-issues{color:#b47c48}

.spaces-settings a{color:inherit;text-decoration:underline}

/* /planner-muscle-zones.css */
.layout2d-view .toolbar .plan-display-controls #muscleZonesToggle{display:grid;place-items:center;width:32px;height:30px;padding:4px;border:1px solid var(--line);border-radius:0;background:var(--panel,#fff);color:var(--muted);cursor:pointer}
#muscleZonesToggle svg{width:18px;height:18px;pointer-events:none}
.layout2d-view .toolbar .plan-display-controls #muscleZonesToggle[aria-pressed=true]{background:var(--panel2,#f1f0ec);color:var(--ink);border-color:var(--muted)}
#muscleZonesToggle:focus-visible{outline:2px solid var(--ink);outline-offset:2px}
#muscleZones,#muscleZoneLabels{pointer-events:none}

/* /planner-open-walls.css */
#openWallsToggle svg{width:18px;height:18px;pointer-events:none}
#openWallEndpoints{pointer-events:none}
#openWallEndpoints .open-wall-ring{fill:var(--paper);fill-opacity:.9;stroke:#e24646;stroke-width:2}
#openWallEndpoints .open-wall-dot{fill:#e24646;stroke:var(--paper);stroke-width:1}
#openWallsStatus{position:absolute;top:12px;right:12px;max-width:calc(100% - 24px);padding:6px 9px;border:1px solid var(--line);border-radius:5px;background:var(--panel);color:var(--ink);font:500 11px/1.4 var(--studio-font,'IBM Plex Sans','Segoe UI',sans-serif);pointer-events:none;z-index:2}
#openWallsStatus[hidden]{display:none}

/* /plan-import.css */
.plan-import-dialog{width:min(1120px,calc(100vw - 28px));max-height:calc(100dvh - 28px);padding:0;border:1px solid var(--line);border-radius:12px;color:var(--ink);background:var(--panel,#fff);box-shadow:0 20px 80px #0006}.plan-import-dialog::backdrop{background:#0009}.plan-import-head,.plan-import-footer{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:16px 20px;border-bottom:1px solid var(--line)}.plan-import-head h2{font-size:19px;margin:0}.plan-import-head p{font-size:12px;margin:5px 0 0;color:var(--muted)}.plan-import-body{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(260px,1fr);max-height:64dvh;overflow:auto}.plan-import-canvas{display:grid;place-items:center;min-height:300px;padding:16px;background:#e7e9e8;position:sticky;top:0;align-self:start}.plan-import-canvas svg{width:100%;height:52dvh;background:white}.plan-import-canvas svg.marking{cursor:crosshair;outline:2px solid var(--red)}.recognized-wall{stroke:#d84530;stroke-width:3;fill:none}.recognized-wall.door{stroke:#be8b20;stroke-dasharray:5 4}.recognized-wall.glass{stroke:#3b8fbc}.recognized-dimension{stroke:#087da2;stroke-width:2;stroke-dasharray:6 4}.recognized-point{fill:#087da2;stroke:#fff;stroke-width:1}.recognized-label{fill:#075d7b;stroke:white;stroke-width:3;paint-order:stroke;font-weight:800}.plan-import-sidebar{padding:16px;display:grid;align-content:start;gap:12px}.plan-import-sidebar>p{margin:0;font-size:12px;color:var(--muted)}.plan-import-cotas{display:grid;gap:10px}.plan-import-cota{display:grid;gap:8px;padding:12px;border:1px solid var(--line);border-radius:8px;background:var(--paper)}.plan-import-cota[data-conflict=true]{border-color:#d56a38}.plan-import-cota strong{font-size:13px}.plan-import-cota small{font-size:11px;color:var(--muted)}.plan-import-cota label,.plan-import-footer label{font-size:12px}.plan-import-cota label:first-of-type{display:grid;gap:4px}.plan-import-cota input[type=number]{width:100%;padding:8px;border:1px solid var(--line);border-radius:5px;background:var(--panel);color:var(--ink)}.plan-import-dialog input[type=checkbox]{accent-color:var(--red);width:auto}.plan-import-status{margin:0;padding:14px 20px;font-size:13px;line-height:1.5;border-top:1px solid var(--line)}.plan-import-footer{border-top:1px solid var(--line);border-bottom:0;flex-wrap:wrap}.plan-import-checks{display:grid;gap:8px}.plan-import-dialog button:focus-visible,.plan-import-dialog input:focus-visible{outline:2px solid var(--red);outline-offset:3px}.plan-import-dialog button:disabled{opacity:.45;cursor:default}#recognizePlan{width:100%;margin-top:8px;padding:10px}@media(max-width:760px){.plan-import-body{grid-template-columns:1fr;max-height:65dvh}.plan-import-canvas{position:static;min-height:200px}.plan-import-canvas svg{height:32dvh}.plan-import-footer{align-items:start}.plan-import-footer .btn{width:100%}}

.plan-import-dialog .btn{background:var(--paper,#f6f6f6);color:var(--ink,#20252a);border:1px solid var(--line,#ccc)}.plan-import-dialog .btn.primary{background:#aa3f32;color:white;border-color:#aa3f32}
.imported-cota .imported-cota-label{fill:#9ee7ec}.plan.dimensions-hidden .imported-cota{display:none}html[data-theme=light] .imported-cota .imported-cota-label{fill:#166a76}html[data-theme=light] .imported-cota path{stroke:#247e8b}
.plan-import-feedback{margin:10px 0;padding:12px;border:1px solid var(--line,#ccc);border-left:4px solid var(--blue,#3587a4);border-radius:6px;background:var(--panel,#fff);color:var(--ink,#20252a);font-size:13px;line-height:1.5}.plan-import-feedback[hidden]{display:none}.plan-import-feedback[data-state=blocked],.plan-import-feedback[data-state=error]{border-left-color:#d98731}.plan-import-status[data-state=blocked],.plan-import-status[data-state=error]{border-left:5px solid #d98731;font-weight:650;background:var(--paper,#f6f6f6)}.plan-import-feedback[data-state=success]{border-left-color:var(--green,#32865f)}.plan-import-feedback:is([data-state=checking],[data-state=reading],[data-state=queued])::before,.plan-import-status:is([data-state=checking],[data-state=reading],[data-state=queued])::before{content:'';display:inline-block;width:13px;height:13px;margin-right:9px;vertical-align:-2px;border:2px solid var(--line,#ccc);border-top-color:var(--red,#aa3f32);border-radius:50%;animation:plan-import-spin .8s linear infinite}@keyframes plan-import-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.plan-import-feedback::before,.plan-import-status::before{animation:none!important}}

/* /planner-zones.css */
/* Named areas reuse the muted floor colors of the public demo. */
html:root[data-theme] .training-zone{--zone-fill:#e4e6eb;--zone-ink:#424b5b;--zone-edge:#a1a9b6}
html:root[data-theme] .training-zone[data-color=blue]{--zone-fill:#deebf1;--zone-ink:#35546b;--zone-edge:#8cabbf}
html:root[data-theme] .training-zone[data-color=green]{--zone-fill:#e0ece5;--zone-ink:#3b5b4b;--zone-edge:#91af9d}
html:root[data-theme] .training-zone[data-color=amber]{--zone-fill:#efe8dc;--zone-ink:#665437;--zone-edge:#b6a68c}
html:root[data-theme=dark] .training-zone{--zone-fill:#252830;--zone-ink:#b9c2d1;--zone-edge:#667387}
html:root[data-theme=dark] .training-zone[data-color=blue]{--zone-fill:#242f38;--zone-ink:#b0cbdd;--zone-edge:#617f94}
html:root[data-theme=dark] .training-zone[data-color=green]{--zone-fill:#253732;--zone-ink:#b0d2c1;--zone-edge:#648d77}
html:root[data-theme=dark] .training-zone[data-color=amber]{--zone-fill:#393226;--zone-ink:#dac9a8;--zone-edge:#968260}
.training-zone-shape{fill:var(--zone-fill);fill-opacity:.9;stroke:var(--zone-edge);stroke-opacity:.35;stroke-width:1;vector-effect:non-scaling-stroke;stroke-linejoin:round}
.training-zone.is-selected .training-zone-shape{stroke:var(--zone-ink);stroke-opacity:1;stroke-dasharray:5 3}
.training-zone-label{fill:var(--zone-ink);font-family:var(--studio-font,'Segoe UI',sans-serif);font-weight:600;cursor:move;pointer-events:all;user-select:none}
.training-zone-label:focus-visible{outline:1px solid var(--zone-ink)}
.training-zone-handle{fill:var(--panel);stroke:var(--ink);stroke-width:1.2;vector-effect:non-scaling-stroke;cursor:crosshair;pointer-events:all}
.training-zone-draft{fill:var(--panel2);fill-opacity:.35;stroke:var(--ink);stroke-width:1.2;stroke-dasharray:5 4;vector-effect:non-scaling-stroke;pointer-events:none}
.training-zone-start{fill:var(--panel);stroke:var(--ink);stroke-width:1;vector-effect:non-scaling-stroke}
html:root[data-theme] .app .training-zones-panel{position:absolute;z-index:12;top:calc(var(--plan-controls-height,180px) + 8px);left:12px;width:min(310px,calc(100% - 24px));max-height:calc(100% - var(--plan-controls-height,180px) - 24px);overflow:auto;box-sizing:border-box;padding:16px;border:1px solid var(--studio-control);border-radius:8px;background:var(--panel);color:var(--ink);font:13px/1.5 var(--studio-font,'Segoe UI',sans-serif)}
.training-zones-panel[hidden]{display:none!important}
.training-zones-panel header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}
.training-zones-panel header strong{font-size:15px;font-weight:600}
.training-zones-panel label{display:grid;gap:6px;font-size:12px;min-width:0}
.training-zones-fields{display:grid;grid-template-columns:1.15fr 1fr;gap:12px;margin-top:12px}
html:root[data-theme] .app .training-zones-panel :is(input,select){width:100%;min-width:0;min-height:36px;box-sizing:border-box;padding:7px 9px;border:1px solid var(--studio-control);border-radius:5px;background:var(--input-surface);color:var(--ink);font:inherit}
.training-zones-panel p{font-size:12px;line-height:1.6;color:var(--muted);margin:16px 0}
.training-zones-panel footer{display:flex;flex-wrap:wrap;gap:8px}
html:root[data-theme] .app .training-zones-panel.is-drawing{display:flex;align-items:center;gap:12px;width:max-content;max-width:calc(100% - 24px);padding:8px 12px}
.training-zones-panel.is-drawing header{margin:0;gap:12px}
.training-zones-panel.is-drawing>label,.training-zones-panel.is-drawing>.training-zones-fields,.training-zones-panel.is-drawing>p,.training-zones-panel.is-drawing #trainingZoneDraw{display:none}
html:root[data-theme] .app .training-zones-panel button{min-height:34px;padding:7px 10px;border:1px solid var(--studio-control);border-radius:5px;background:var(--panel2);color:var(--ink);font:inherit;cursor:pointer}
html:root[data-theme] .app .training-zones-panel header button{min-width:32px;padding:3px 8px;background:transparent}
html:root[data-theme] .app .training-zones-panel #trainingZoneDelete{color:var(--danger);background:transparent}
html:root[data-theme] .app .training-zones-panel :is(button,input,select):focus-visible{outline:2px solid var(--ink);outline-offset:2px}
html:root[data-theme] .app .training-zones-panel button:hover{border-color:var(--muted)}
@media(max-width:899px){html:root[data-theme] .app .training-zones-panel :is(input,select){font-size:16px}}

/* /planner-workflow.css */
.workflow-budget{margin:16px 0;padding:14px;background:var(--panel2);border-radius:9px;color:var(--ink)}
.workflow-budget label{display:block;font-size:12px;font-weight:600;margin-bottom:8px}
.workflow-budget-input{display:flex;align-items:center;gap:8px}.workflow-budget-input input{width:100%;min-width:0;padding:9px 10px;border:1px solid var(--line);border-radius:6px;background:var(--panel);color:var(--ink);font:inherit;font-variant-numeric:tabular-nums}
.workflow-budget p{font-size:13px;line-height:1.5;margin:10px 0}.workflow-budget small{display:block;color:var(--muted);font-size:11px;line-height:1.5;margin-top:10px}
.workflow-budget[data-over=true] #projectBudgetAssessment,.budget-over-target{color:var(--red)!important}.workflow-budget details{font-size:12px}.workflow-budget summary{cursor:pointer;padding:4px 0}.workflow-budget ul{list-style:none;margin:8px 0;padding:0}.workflow-budget li{display:flex;justify-content:space-between;gap:10px;padding:4px 0}.workflow-budget li span:last-child{color:var(--muted)}
.budget-limit-warning{position:absolute;left:16px;bottom:88px;z-index:6;max-width:calc(100% - 92px);padding:10px 12px;background:var(--panel);color:var(--red);border:1px solid var(--line);border-radius:8px;font-size:12px;text-align:left;cursor:pointer;font-variant-numeric:tabular-nums}
.budget-limit-warning[hidden]{display:none}.equipment-references{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}.equipment-references button{padding:3px 7px;background:var(--panel2);border:1px solid var(--line);border-radius:4px;color:var(--ink);font-size:12px;font-variant-numeric:tabular-nums;cursor:pointer}.equipment-number rect{fill:var(--ink);stroke:var(--panel);stroke-width:1}.equipment-number text{fill:var(--panel);font:600 11px var(--studio-font);stroke:none;paint-order:normal}
.workflow-templates-trigger svg,.layout-radial svg,.workflow-templates-dialog header button svg{width:18px;height:18px;flex:none}.workflow-templates-trigger{display:inline-flex;gap:6px;align-items:center}
/* taste-skill-ignore: this shadow belongs to the floating template dialog. */
.workflow-templates-dialog{width:min(1040px,calc(100vw - 32px));max-height:calc(100dvh - 32px);margin:auto;padding:0;background:var(--panel);color:var(--ink);border:1px solid var(--line);border-radius:12px;box-shadow:0 24px 60px #0005;overflow:auto;font-family:inherit} /* taste-skill-ignore: actual floating dialog or radial menu; overlay elevation. */
.workflow-templates-dialog::backdrop{background:#0008}.workflow-templates-dialog header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:22px 24px 14px}.workflow-templates-dialog h2{font-size:20px;line-height:1.2;margin:0 0 8px;letter-spacing:-.02em}.workflow-templates-dialog header p{font-size:13px;color:var(--muted);margin:0}.workflow-templates-dialog header button{display:grid;place-items:center;min-width:36px;min-height:36px;border:0;border-radius:6px;background:var(--panel2);color:var(--ink);cursor:pointer}
.template-filters{display:grid;grid-template-columns:1fr 1.6fr 1fr;gap:12px;padding:8px 24px 20px}.template-filters label{font-size:12px;color:var(--muted)}.template-filters select{display:block;width:100%;margin-top:6px;padding:9px 8px;border:1px solid var(--line);border-radius:6px;background:var(--panel2);color:var(--ink);font:inherit;font-size:12px}
.template-library-body{display:grid;grid-template-columns:300px minmax(0,1fr);gap:24px;padding:0 24px 20px}.template-results{display:flex;flex-direction:column;gap:8px;max-height:480px;overflow:auto}.template-results>button{padding:14px;text-align:left;border:1px solid transparent;border-radius:8px;background:var(--panel2);color:var(--ink);font-family:inherit;cursor:pointer}.template-results>button:hover,.template-results>button[aria-pressed=true]{border-color:var(--muted)}.template-results strong{display:flex;justify-content:space-between;gap:8px;font-size:16px;font-variant-numeric:tabular-nums}.template-results strong span{font-size:11px;color:var(--muted);font-weight:400}.template-results>button>span{display:block;font-size:13px;margin-top:6px}.template-results small{display:block;color:var(--muted);font-size:11px;line-height:1.5;margin-top:4px}.template-detail{min-width:0}.template-detail h3{font-size:16px;margin:16px 0 6px}.template-detail>p{font-size:12px;color:var(--muted);line-height:1.5;margin:0 0 12px}
#templatePreview{background:var(--panel2);border-radius:8px;padding:12px}#templatePreview svg{display:block;width:100%;height:240px}.template-room{fill:var(--panel);stroke:var(--muted);stroke-width:.04}.template-machine{fill:#fff;stroke:var(--muted);stroke-width:.025}.template-number{fill:#111;stroke:#fff;stroke-width:.09;paint-order:stroke;font-size:.3px;font-weight:700}.template-entry{fill:var(--muted);font-size:.26px}
.template-equipment-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 20px;list-style:none;padding:0;margin:0;max-height:390px;overflow:auto;scrollbar-gutter:stable}
/* Each row reserves the same photo and quantity tracks; the identity takes all remaining width. */
.template-equipment-list li{display:grid;grid-template-columns:44px minmax(0,1fr) 4ch;align-items:center;gap:12px;min-width:0;min-height:76px;padding:12px 0;border-bottom:1px solid var(--line);font-size:12px;line-height:1.45}
.template-machine-photo{display:block;width:44px;height:44px}.template-equipment-list img{display:block;width:100%;height:100%;object-fit:contain;background:#fff;border-radius:4px}.template-machine-identity{display:block;min-width:0;overflow-wrap:anywhere}.template-equipment-list strong{display:block;font-size:12px;font-weight:600}.template-machine-name{display:block;margin-top:3px;color:var(--muted)}.template-equipment-list .template-quantity{display:block;justify-self:stretch;text-align:right;color:var(--ink);font-size:13px;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}
.template-detail h3{margin-top:0}.template-series{color:var(--ink)!important}.template-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;flex:none}.template-actions button{padding:11px 14px;border:1px solid var(--line);border-radius:7px;background:var(--ink);color:var(--panel);font:600 12px var(--studio-font);cursor:pointer}.template-actions .template-layout-action{background:transparent;color:var(--ink)}.template-empty{font-size:13px;color:var(--muted)}.workflow-templates-dialog footer{gap:16px}.workflow-templates-dialog footer p{flex:1;min-width:0}.template-filters{grid-template-columns:1fr 1.3fr 1fr}
.workflow-templates-dialog footer{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:16px 24px;background:var(--panel2);position:sticky;bottom:0}.workflow-templates-dialog footer p{font-size:12px;line-height:1.5;color:var(--muted);margin:0;max-width:66ch}.workflow-templates-dialog footer>button{padding:11px 16px;border:0;border-radius:7px;background:var(--ink);color:var(--panel);font-size:13px;font-weight:600;cursor:pointer;flex:none}.workflow-templates-dialog button:disabled{opacity:.45;cursor:not-allowed}
/* taste-skill-ignore: this shadow belongs to the floating radial menu. */
.layout-radial{position:fixed;z-index:100;background:var(--panel);color:var(--ink);border-radius:50%;box-shadow:0 16px 56px #0006}.layout-radial[hidden]{display:none}.radial-center,.radial-option{position:absolute;display:flex;align-items:center;justify-content:center;background:transparent;color:var(--ink);border:0;cursor:pointer}.radial-center{left:calc(50% - 23px);top:calc(50% - 23px);width:46px;height:46px;border-radius:50%;background:var(--panel2)}.radial-option{width:78px;height:66px;left:calc(50% - 39px);top:calc(50% - 33px);flex-direction:column;gap:5px;border-radius:9px;transform:rotate(var(--radial-angle)) translateX(var(--radial-distance,120px)) rotate(var(--radial-counter-angle));font:500 11px var(--studio-font)}.radial-option:hover,.radial-option.active{background:var(--panel2)}.radial-option:disabled{opacity:.35;cursor:not-allowed}.layout-radial button:focus-visible,.workflow-templates-dialog button:focus-visible,.equipment-references button:focus-visible{outline:2px solid var(--ink);outline-offset:2px} /* taste-skill-ignore: actual floating dialog or radial menu; overlay elevation. */
@media(min-width:701px) and (max-width:1000px){.template-library-body{grid-template-columns:230px minmax(0,1fr);gap:20px}.template-equipment-list{grid-template-columns:minmax(0,1fr)}}
@media(max-width:700px){.template-filters{grid-template-columns:1fr;padding:4px 16px 16px;gap:8px}.workflow-templates-dialog header{padding:18px 16px 12px}.template-library-body{grid-template-columns:1fr;gap:16px;padding:0 16px 16px}.template-results{flex-direction:row;max-height:none;overflow:auto;padding-bottom:8px}.template-results>button{min-width:230px}.workflow-templates-dialog footer{padding:14px 16px;align-items:stretch;flex-direction:column;gap:10px}.template-equipment-list{max-height:170px}#templatePreview svg{height:200px}.workflow-budget-input input{font-size:16px}.equipment-references button{min-height:32px;min-width:36px}.workflow-templates-dialog header button{min-width:44px;min-height:44px}.template-filters select{min-height:44px}.layout-radial{--radial-distance:110px}.radial-option{transform:rotate(var(--radial-angle)) translateX(var(--radial-distance,110px)) rotate(var(--radial-counter-angle))}}
@media(max-width:700px){.template-equipment-list{grid-template-columns:1fr;max-height:320px}.template-actions{display:grid;grid-template-columns:1fr}.template-actions button{min-height:44px}.template-results>button{max-width:270px;white-space:normal}}
.template-plan-notice{box-sizing:border-box;width:min(400px,calc(100vw - 32px));padding:32px;border:1px solid var(--line);border-radius:12px;background:var(--panel);color:var(--ink);text-align:center;font:14px/1.6 var(--studio-font)}
.template-plan-notice::backdrop{background:rgb(0 0 0 / .65)}
.template-notice-icon{display:grid;place-items:center;width:44px;height:44px;margin:0 auto 18px;border:1.5px solid var(--ink);border-radius:50%;font-size:24px;font-weight:600}
.template-plan-notice h2{margin:0 0 12px;font-size:24px;font-weight:600;line-height:1.2;letter-spacing:-.025em}.template-plan-notice p{margin:0 0 24px;color:var(--muted)}
.template-plan-notice button{width:100%;min-height:44px;padding:12px 16px;border:1px solid var(--ink);border-radius:6px;background:var(--ink);color:var(--panel);font:600 14px var(--studio-font);cursor:pointer}.template-plan-notice button:focus-visible{outline:2px solid var(--ink);outline-offset:4px}
.issue-row.template-placement{display:flex;flex-direction:column;gap:12px;overflow-wrap:anywhere}.issue-row.template-placement strong{font-weight:600;line-height:1.5}.issue-row.template-placement button{align-self:flex-start;padding:6px 10px;border:1px solid var(--line);border-radius:4px;background:var(--panel);color:var(--ink);font:inherit;cursor:pointer}
