:root{color-scheme:light;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;--bg: #eef3f3;--ink: #17252f;--muted: #79736a;--line: #ddd7ce;--panel: #ffffff;--panel-soft: #f7f9f8;--accent-gold: #b07b2c;--primary-strong: #8a5f1e;--green: #7a7a2e;--amber: #c08327;--red: #c45149;--wood: #9a6742;--shadow: 0 18px 55px rgba(24, 42, 50, .14)}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;background:linear-gradient(130deg,#ffffffc7,#fff0 30%),var(--bg);color:var(--ink)}button,input,select{font:inherit}button{cursor:pointer}.app-shell{min-height:100vh;display:grid;grid-template-rows:auto 1fr}.topbar{min-height:76px;padding:14px 18px;display:flex;align-items:center;justify-content:space-between;gap:22px;border-bottom:1px solid var(--line);background:#ffffffc2;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);position:sticky;top:0;z-index:20}.auth-control{display:flex;align-items:center;gap:10px}.auth-user{display:inline-flex;align-items:center;gap:6px;max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:12px;font-weight:760}.auth-user svg{color:var(--accent-gold);flex-shrink:0}.auth-user-button{min-height:30px;padding:0 2px;border:0;background:transparent;cursor:pointer}.auth-user-button:hover{color:var(--ink)}.auth-overlay{position:fixed;inset:0;z-index:60;display:flex;align-items:center;justify-content:center;padding:18px;background:#17252f6b;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.auth-dialog{width:min(420px,100%);display:grid;gap:12px;padding:22px;border-radius:14px;border:1px solid var(--line);background:var(--panel);box-shadow:var(--shadow)}.auth-dialog-head{display:flex;align-items:center;justify-content:space-between}.auth-dialog-head h2{font-size:18px}.auth-dialog-hint{margin:0;color:var(--muted);font-size:12px;line-height:1.4;font-weight:720}.auth-form{display:grid;gap:12px}.auth-form label{display:grid;gap:5px;font-size:12px;font-weight:800;color:var(--ink)}.auth-form .auth-legal-consent{display:grid;grid-template-columns:18px 1fr;align-items:flex-start;color:var(--muted);font-size:11px;font-weight:720;line-height:1.45}.auth-legal-consent input{width:16px;height:16px;min-height:16px;margin:1px 0 0;padding:0;border-radius:4px;accent-color:var(--primary)}.auth-legal-consent a{color:var(--primary-strong);font-weight:900;text-decoration:none}.auth-legal-consent a:hover{text-decoration:underline}.auth-form input{min-height:40px;padding:0 12px;border:1px solid var(--line);border-radius:9px;font-size:14px}.auth-form input:focus-visible{outline:2px solid var(--primary-strong);outline-offset:1px}.auth-form .primary-action{margin-top:4px}.auth-success,.auth-error{display:grid;gap:4px;margin:0;padding:9px 10px;border-radius:8px;font-size:12px;font-weight:760;line-height:1.35;overflow-wrap:anywhere}.auth-success{border:1px solid rgba(122,122,46,.24);background:#7a7a2e17;color:#5f642a}.auth-error{border:1px solid rgba(196,81,73,.24);background:#c4514914;color:#84433e}.auth-dialog-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:4px 14px}.auth-toggle{justify-self:center;background:none;border:none;color:var(--primary-strong);font-size:12px;font-weight:800;cursor:pointer}.account-status-panel{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;border:1px solid var(--line);border-radius:8px;background:var(--panel-soft)}.account-status-panel h3{margin:0 0 4px;font-size:13px;font-weight:900}.account-status-panel p{margin:0;color:var(--muted);font-size:12px;font-weight:700;line-height:1.35}.verified-pill{display:inline-flex;align-items:center;gap:5px;min-height:28px;padding:0 10px;border-radius:999px;border:1px solid rgba(122,122,46,.24);background:#7a7a2e17;color:#5f642a;font-size:12px;font-weight:900;white-space:nowrap}.billing-pill{display:inline-flex;align-items:center;gap:5px;min-height:28px;padding:0 10px;border-radius:999px;border:1px solid rgba(42,125,154,.2);background:#2a7d9a14;color:var(--primary-strong);font-size:12px;font-weight:900;white-space:nowrap}.billing-pill.blocked{border-color:#c451493d;background:#c4514914;color:#84433e}.account-billing-actions{display:flex;flex-wrap:wrap;gap:8px}.danger-zone{margin-top:4px;padding-top:12px;border-top:1px solid rgba(196,81,73,.18)}.danger-zone h3{margin:0 0 4px;color:#84433e;font-size:13px;font-weight:900}.danger-zone p{margin:0;color:var(--muted);font-size:12px;font-weight:700;line-height:1.4}.danger-action{min-height:40px;border:1px solid rgba(196,81,73,.28);border-radius:9px;background:#c451491a;color:#84433e;font-size:13px;font-weight:900}.danger-action:not(:disabled):hover{background:#c4514929}.danger-action:disabled{opacity:.48;cursor:not-allowed}.brand{display:flex;align-items:center;gap:12px;min-width:260px}.brand-mark{width:42px;height:42px;display:grid;place-items:center;border-radius:8px;background:linear-gradient(145deg,#3a2410,#9a6742);color:#fff;font-size:13px;font-weight:760;letter-spacing:0;box-shadow:0 10px 25px #3a241038}.brand strong,.brand span{display:block}.brand strong{font-size:15px;line-height:1.2}.brand span{color:var(--muted);font-size:12px;margin-top:2px}.pipeline{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap}.pipeline-step{height:34px;padding:0 12px;display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--muted);font-size:12px;font-weight:700}.pipeline-step span{width:14px;height:14px;display:grid;place-items:center}.pipeline-step.active{color:var(--accent-gold);border-color:#b07b2c59;background:#b07b2c14}.pipeline-step.complete{color:var(--green)}.workspace{min-height:calc(100vh - 76px);display:grid;grid-template-columns:minmax(300px,360px) minmax(420px,1fr) minmax(300px,360px);gap:16px;padding:16px}.walkthrough-workspace{grid-template-columns:minmax(300px,340px) minmax(520px,1fr) minmax(300px,340px)}.left-column,.config-panel,.quest-panel,.decision-panel{min-width:0}.panel{background:var(--panel);border:1px solid rgba(212,222,220,.92);border-radius:8px;box-shadow:0 12px 36px #23303714}.intake-panel,.review-panel,.config-panel,.quest-panel,.decision-panel{padding:16px;height:100%;max-height:calc(100vh - 108px);overflow:auto}.panel-heading{display:flex;gap:10px;align-items:flex-start;margin-bottom:16px}.panel-heading svg{color:var(--accent-gold);margin-top:2px;flex:0 0 auto}h1,h2,h3,p{margin:0}h1{font-size:clamp(24px,2.2vw,38px);line-height:1.02;letter-spacing:0}h2{font-size:17px;line-height:1.2;letter-spacing:0}h3{font-size:12px;line-height:1;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}p{color:var(--muted);font-size:13px;line-height:1.45}.dropzone{min-height:210px;display:grid;place-items:center;text-align:center;gap:8px;padding:22px;border:1.5px dashed rgba(176,123,44,.36);border-radius:8px;background:linear-gradient(160deg,#b07b2c1a,#c9ad831a),#fbfcfc;color:var(--ink)}.dropzone input,.image-upload input{inline-size:1px;block-size:1px;position:absolute;opacity:0;pointer-events:none}.dropzone svg{color:var(--accent-gold)}.dropzone strong{font-size:17px}.dropzone span{color:var(--muted);font-size:13px}.upload-status{display:grid;grid-template-columns:18px minmax(0,1fr) auto;gap:8px;align-items:center;min-height:50px;margin-top:12px;padding:9px 10px;border:1px solid rgba(31,49,63,.09);border-radius:8px;background:#ffffffb8}.upload-status.idle{grid-template-columns:minmax(0,1fr)}.upload-status span{color:var(--accent-gold)}.upload-status.success span{color:var(--green)}.upload-status.error span{color:var(--red)}.upload-status p{min-width:0;font-size:11px;line-height:1.35}.upload-status strong{display:block;overflow:hidden;color:var(--ink);font-size:12px;text-overflow:ellipsis;white-space:nowrap}.upload-status.error{border-color:#c451493d;background:#c4514912}.primary-action:disabled,.secondary-action:disabled,.export-actions button:disabled{opacity:.52;cursor:not-allowed}.primary-action,.secondary-action,.export-actions button{min-height:42px;border:0;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-size:13px;font-weight:760;letter-spacing:0}.primary-action{width:100%;margin-top:16px;padding:0 15px;color:#fff;background:linear-gradient(135deg,#6f4a16,var(--primary-strong));box-shadow:0 12px 28px #b07b2c3d}.primary-action.compact,.secondary-action.compact{width:auto;margin:0;white-space:nowrap}.secondary-action.compact{padding:0 15px}.secondary-action{width:100%;margin-top:12px;color:var(--accent-gold);background:#b07b2c14;border:1px solid rgba(176,123,44,.16)}.guardrail-note{display:flex;align-items:flex-start;gap:8px;color:#71521e;background:#d69b2d1f;border:1px solid rgba(214,155,45,.2);padding:10px;border-radius:8px;margin-top:12px;font-size:12px;line-height:1.4}.project-library{display:grid;gap:8px;margin-top:16px}.project-library p{padding:10px 0}.project-library button{width:100%;min-height:50px;display:grid;grid-template-columns:18px 1fr;align-items:center;gap:9px;padding:9px 10px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);text-align:left}.project-library svg{color:var(--accent-gold)}.project-library strong,.project-library small{display:block}.project-library strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}.project-library small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:3px;color:var(--muted);font-size:11px}.project-library-row{display:flex;align-items:stretch;gap:8px}.project-library-row>button:first-child{flex:1 1 auto;min-width:0}.project-library-row .icon-button{display:inline-flex;flex:0 0 auto;width:42px;min-height:50px}.project-library-row .icon-button svg{color:var(--muted)}.project-library-row .icon-button:hover svg{color:var(--red)}.field-grid{display:grid;grid-template-columns:1fr 100px;gap:10px}label{color:var(--muted);font-size:12px;font-weight:700}input,select{width:100%;height:38px;margin-top:5px;padding:0 10px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);font-size:13px;font-weight:650}input:focus-visible,button:focus-visible,.image-upload:focus-within{outline:3px solid rgba(176,123,44,.18);outline-offset:2px}.finding-list{display:grid;gap:8px;margin-top:14px}.finding-row{width:100%;display:grid;grid-template-columns:88px 1fr auto;align-items:center;gap:9px;text-align:left;border:1px solid var(--line);border-radius:8px;padding:10px;background:var(--panel-soft);color:var(--ink)}.finding-confirm{justify-self:end;min-height:34px;padding:7px 14px;border:1px solid var(--primary-strong);border-radius:8px;background:var(--accent-gold);color:#fff;font-size:12px;font-weight:800;white-space:nowrap}.finding-confirm.confirmed{background:transparent;border-color:#7a7a2e80;color:var(--green)}.finding-row svg{color:#68778266}.finding-row.confirmed svg{color:var(--green)}.extraction-overview{display:grid;gap:9px;margin-top:12px;padding:11px;border:1px solid rgba(176,123,44,.16);border-radius:8px;background:#b07b2c0f}.extraction-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.extraction-grid span{min-height:42px;display:grid;align-content:center;padding:7px;border:1px solid rgba(176,123,44,.12);border-radius:8px;background:#fff;color:var(--muted);font-size:10px;font-weight:800}.extraction-grid strong{color:var(--ink);font-size:16px;line-height:1}.finding-row strong,.finding-row small{display:block}.finding-row strong{font-size:12px;margin-bottom:3px}.finding-row small{color:var(--muted);font-size:11px;line-height:1.32}.confidence-pill{min-width:78px;height:25px;display:inline-grid;place-items:center;border-radius:999px;color:#fff;font-size:10px;font-weight:800}.confidence-pill.high{background:var(--green)}.confidence-pill.medium{background:#9a6a1f}.confidence-pill.low{background:var(--red)}.room-editor,.opening-editor,.fixture-editor{margin-top:16px;display:grid;gap:9px}.model-page-card{display:grid;grid-template-columns:1fr 108px auto;gap:8px;align-items:end;margin-top:14px;padding:11px;border:1px solid rgba(176,123,44,.16);border-radius:8px;background:#b07b2c0f}.model-page-card p{margin-top:5px;font-size:11px}.model-page-card button,.editor-headline button{min-height:38px;padding:0 10px;border:1px solid rgba(176,123,44,.18);border-radius:8px;display:inline-flex;align-items:center;justify-content:center;gap:6px;color:var(--accent-gold);background:#b07b2c14;font-size:11px;font-weight:850;white-space:nowrap}.model-page-card button:disabled{cursor:not-allowed;opacity:.48}.calibration-card,.calibration-loading{margin-top:14px;border:1px solid var(--line);border-radius:8px;background:#fff}.calibration-loading{min-height:140px;display:grid;place-items:center;color:var(--accent-gold);font-size:12px;font-weight:800}.calibration-card{padding:10px}.calibration-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;margin-bottom:10px}.calibration-head p{margin-top:5px;font-size:11px}.calibration-status{height:24px;display:inline-flex;align-items:center;padding:0 8px;border-radius:999px;background:#c083271f;color:#71521e;font-size:10px;font-weight:850}.calibration-status.ready{background:#7a7a2e1f;color:var(--green)}.pdf-page-controls{min-height:34px;display:grid;grid-template-columns:auto 1fr auto;gap:8px;align-items:center;margin-bottom:9px}.pdf-page-controls button{min-height:32px;padding:0 9px;border:1px solid rgba(176,123,44,.18);border-radius:8px;display:inline-flex;align-items:center;justify-content:center;gap:4px;color:var(--accent-gold);background:#b07b2c14;font-size:11px;font-weight:850}.pdf-page-controls button:disabled{cursor:not-allowed;opacity:.46}.pdf-page-controls span{min-height:32px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:8px;background:var(--panel-soft);color:var(--muted);font-size:11px;font-weight:850}.calibration-tools{display:grid;grid-template-columns:112px 1fr;gap:8px;align-items:end}.segmented-control{min-height:38px;display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:4px;border:1px solid var(--line);border-radius:8px;background:var(--panel-soft)}.segmented-control button{border:0;border-radius:6px;display:inline-flex;align-items:center;justify-content:center;gap:5px;color:var(--muted);background:transparent;font-size:11px;font-weight:850}.segmented-control button.active{color:var(--accent-gold);background:#fff;box-shadow:0 4px 12px #182a3214}.calibration-canvas-wrap{position:relative;margin-top:10px;overflow:hidden;border:1px solid var(--line);border-radius:8px;background:var(--panel-soft);cursor:crosshair}.calibration-canvas-wrap canvas{display:block;width:100%;height:auto}.calibration-overlay{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.calibration-overlay line{stroke:#d8615a;stroke-width:.012;stroke-linecap:round}.calibration-overlay circle{fill:#d8615a;stroke:#fff;stroke-width:.006}.calibration-metrics{display:grid;grid-template-columns:1fr 1fr auto;gap:8px;align-items:center;margin-top:9px}.calibration-metrics span{min-height:30px;display:inline-flex;align-items:center;padding:0 8px;border-radius:8px;background:var(--panel-soft);color:var(--muted);font-size:11px;font-weight:800}.calibration-metrics button{min-height:30px;padding:0 9px;border:0;border-radius:8px;background:#b07b2c1a;color:var(--accent-gold);font-size:11px;font-weight:850}.raster-signal{display:grid;gap:3px;margin-top:9px;padding:9px;border:1px solid rgba(176,123,44,.16);border-radius:8px;background:#b07b2c0f}.raster-signal.attention{border-color:#d69b2d47;background:#d69b2d1f}.raster-signal span,.raster-signal small{color:var(--muted);font-size:10px;font-weight:800}.raster-signal strong{color:var(--ink);font-size:12px}.room-row,.fixture-row,.opening-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;align-items:end;padding:8px;border:1px solid var(--line);border-radius:8px;background:#fff}.room-row>input,.fixture-row>input{grid-column:1 / -1}.editor-headline{display:flex;align-items:center;justify-content:space-between;gap:8px}.opening-row>input{grid-column:span 1}.opening-row>label:first-of-type{grid-column:span 1}.stage{min-width:0;display:grid;grid-template-rows:auto minmax(460px,1fr) auto;gap:12px}.stage-header{min-height:74px;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:4px 2px 0}.stage-header p{margin-top:7px}.scene-shell{min-height:460px;position:relative;overflow:hidden;border-radius:8px;background:#e7e2d8;box-shadow:var(--shadow);isolation:isolate}.scene-loading{min-height:460px;display:grid;place-items:center;border-radius:8px;background:linear-gradient(145deg,#b07b2c1a,#9a67421f),#e7e2d8;color:var(--accent-gold);font-size:13px;font-weight:800;box-shadow:var(--shadow)}.scene-shell canvas{display:block;width:100%!important;height:100%!important}.scene-shell.measuring canvas{cursor:crosshair}.viewer-hud,.viewer-scale{position:absolute;z-index:5;pointer-events:none;display:inline-flex;align-items:center;gap:8px;min-height:34px;padding:0 10px;border:1px solid rgba(255,255,255,.72);border-radius:8px;background:#ffffffd6;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);color:var(--ink);font-size:12px;font-weight:760;box-shadow:0 8px 22px #17252f1f}.viewer-hud{left:12px;top:12px}.viewer-scale{right:12px;top:12px;flex-direction:column;align-items:flex-end;gap:1px;padding:8px 10px}.viewer-scale span{color:var(--muted);font-size:11px;font-weight:700}.viewer-debug-hud{position:absolute;left:12px;bottom:12px;z-index:6;pointer-events:none;padding:5px 10px;border:1px solid var(--line);border-radius:8px;background:#ffffffe0;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);color:var(--primary-strong);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;letter-spacing:.02em;white-space:nowrap}.viewer-comfort,.viewer-xr-note{position:absolute;left:12px;right:12px;z-index:5;min-height:42px;border:1px solid rgba(255,255,255,.72);border-radius:8px;background:#ffffffdb;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);color:var(--ink);box-shadow:0 8px 22px #17252f1f;pointer-events:none}.viewer-comfort{bottom:58px;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 12px}.viewer-xr-note{bottom:12px;left:178px;max-width:calc(100% - 190px);right:auto;display:inline-flex;align-items:center;padding:0 11px;color:#71521e;font-size:11px;font-weight:780}.viewer-comfort span{color:var(--muted);font-size:11px;font-weight:850;text-transform:uppercase}.viewer-comfort strong{font-size:12px}.status-dot{width:8px;height:8px;border-radius:99px;background:var(--amber);box-shadow:0 0 0 4px #c0832729}.status-dot.active{background:var(--green);box-shadow:0 0 0 4px #7a7a2e29}.vr-entry-button{position:absolute!important;left:12px!important;bottom:12px!important;z-index:10!important;border-radius:8px!important;background:#17252f!important;border:0!important;color:#fff!important;font:760 12px Inter,system-ui,sans-serif!important;letter-spacing:0!important}.vr-entry-button.unavailable{opacity:.82!important;cursor:not-allowed!important}.save-status{position:fixed;left:16px;bottom:16px;z-index:30;min-height:34px;display:inline-flex;align-items:center;gap:7px;padding:0 10px;border:1px solid rgba(212,222,220,.92);border-radius:8px;background:#ffffffe0;color:var(--muted);box-shadow:0 10px 30px #17252f1f;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);font-size:11px;font-weight:800}.save-status svg{color:var(--green)}.summary-rail{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.summary-rail div{min-height:50px;display:flex;align-items:center;gap:8px;padding:0 12px;border:1px solid var(--line);border-radius:8px;background:#ffffffb8;color:var(--muted);font-size:12px;font-weight:760}.summary-rail svg{color:var(--accent-gold)}.summary-rail .attention{color:#71521e;background:#d69b2d1f;border-color:#d69b2d33}.summary-rail .decision-grade-chip.ready{color:#5c5a22;background:#7a7a2e1a;border-color:#7a7a2e3d}.summary-rail .decision-grade-chip.caution{color:#71521e;background:#c083271f;border-color:#c0832738}.summary-rail .decision-grade-chip.blocked{color:#84433e;background:#c451491a;border-color:#c451493d}.summary-rail .decision-grade-chip.ready svg{color:var(--green)}.summary-rail .decision-grade-chip.caution svg{color:var(--amber)}.summary-rail .decision-grade-chip.blocked svg{color:var(--red)}.toggle-stack{display:grid;gap:8px;padding:12px;border:1px solid var(--line);border-radius:8px;background:var(--panel-soft)}.toggle-stack label{display:flex;align-items:center;gap:9px;color:var(--ink)}.toggle-stack input{width:16px;height:16px;margin:0;accent-color:var(--accent-gold)}.material-list{display:grid;gap:8px;margin-top:14px}.material-card{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center;border:1px solid var(--line);border-radius:8px;padding:8px;background:#fff}.material-card.active{border-color:#b07b2c7a;box-shadow:0 0 0 3px #b07b2c14}.material-card button{min-width:0;padding:0;border:0;display:grid;grid-template-columns:42px 1fr;align-items:center;gap:10px;text-align:left;background:transparent;color:var(--ink)}.material-swatch{width:42px;height:42px;border:1px solid rgba(23,37,47,.12);border-radius:8px;box-shadow:inset 0 0 0 1px #ffffff70}.material-card strong,.material-card small{display:block}.material-card strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}.material-card small{margin-top:3px;color:var(--muted);font-size:11px}.image-upload{min-height:30px;padding:0 9px;display:inline-flex;align-items:center;justify-content:center;border:1px solid rgba(176,123,44,.18);border-radius:8px;background:#b07b2c14;color:var(--accent-gold);font-size:11px;font-weight:800;position:relative;overflow:hidden;white-space:nowrap}.online-image-form{grid-column:1 / -1;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px;align-items:end}.online-image-form input{height:32px;margin:0;font-size:11px}.online-image-form button{min-height:32px;padding:0 9px;border:1px solid rgba(176,123,44,.18);border-radius:8px;display:inline-flex;align-items:center;justify-content:center;gap:5px;color:var(--accent-gold);background:#b07b2c14;font-size:11px;font-weight:850;white-space:nowrap}.material-card{position:relative}.material-card .material-credit{color:var(--muted);font-size:10px;font-style:italic}.material-tile-preview{display:none;position:absolute;right:8px;top:8px;z-index:5;width:132px;height:132px;border:1px solid var(--line);border-radius:8px;background-repeat:repeat;background-position:top left;box-shadow:var(--shadow);pointer-events:none;overflow:hidden}.material-card:hover .material-tile-preview,.material-card:focus-within .material-tile-preview{display:block}.material-tile-preview small{position:absolute;left:0;right:0;bottom:0;padding:3px 6px;background:#fffdf9e6;color:var(--ink);font-size:10px;font-weight:800}.tile-size-field{grid-column:1 / -1;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:7px;color:var(--muted);font-size:11px;font-weight:800}.tile-size-field input{height:30px;margin:0;font-size:11px}.tile-size-field input[aria-invalid=true]{border-color:#c451498c}.tile-size-hint{grid-column:1 / -1;color:#84433e;font-size:10px;font-weight:700}.material-card-actions{grid-column:1 / -1;display:flex;gap:7px}.material-card .material-card-actions button{min-height:28px;padding:0 9px;border:1px solid rgba(176,123,44,.18);border-radius:8px;display:inline-flex;align-items:center;justify-content:center;gap:5px;grid-template-columns:none;color:var(--accent-gold);background:#b07b2c14;font-size:11px;font-weight:800;white-space:nowrap}.material-card .material-card-actions button.material-delete{border-color:#c4514947;background:#c4514914;color:#84433e}.material-add-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;margin-top:8px;align-items:center}.material-add-row select{height:34px;margin:0;font-size:12px}.material-add-row button{min-height:34px;padding:0 11px;border:1px solid rgba(176,123,44,.22);border-radius:8px;display:inline-flex;align-items:center;justify-content:center;gap:6px;color:var(--accent-gold);background:#b07b2c1a;font-size:12px;font-weight:850;white-space:nowrap}.apply-toast{position:fixed;left:50%;bottom:26px;transform:translate(-50%);z-index:70;display:flex;align-items:center;gap:12px;padding:10px 14px;border:1px solid rgba(176,123,44,.3);border-radius:12px;background:var(--panel);color:var(--ink);font-size:13px;font-weight:700;box-shadow:var(--shadow)}.apply-toast button{min-height:32px;padding:0 12px;border:1px solid rgba(176,123,44,.32);border-radius:8px;display:inline-flex;align-items:center;gap:6px;color:var(--primary-strong);background:#b07b2c1f;font-size:12px;font-weight:850;white-space:nowrap}.confirm-dialog h2{margin:0;font-size:17px}.confirm-dialog p{margin:0;color:var(--muted);font-size:13px;line-height:1.45}.confirm-dialog-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:4px}.confirm-dialog-actions button{min-height:40px;border:1px solid var(--line);border-radius:9px;background:var(--panel-soft);color:var(--ink);font-size:13px;font-weight:850}.confirm-dialog-actions button.danger-action{border:1px solid rgba(196,81,73,.28);background:#c451491a;color:#84433e}.product-search-panel,.room-finish-panel{display:grid;gap:9px;margin-top:14px;padding:11px;border:1px solid var(--line);border-radius:8px;background:var(--panel-soft)}.product-search-panel p{margin-top:5px;font-size:11px}.product-search-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px}.product-search-form input{margin:0}.product-search-form button{min-height:38px;padding:0 11px;border:0;border-radius:8px;display:inline-flex;align-items:center;gap:6px;color:#fff;background:var(--primary-strong);font-size:12px;font-weight:850}.product-search-form button:disabled{opacity:.58}.product-results{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.product-results article{min-width:0;display:grid;grid-template-columns:1fr 30px;gap:5px;align-items:stretch}.product-results article>button,.product-results a{border:1px solid var(--line);border-radius:8px;background:#fff}.product-results article>button{min-width:0;padding:6px;display:grid;grid-template-columns:44px minmax(0,1fr);gap:7px;text-align:left;color:var(--ink)}.product-result-image{display:block;width:44px;height:44px;border-radius:7px;background-position:center;background-size:cover;object-fit:cover}.product-results strong,.product-results small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.product-results strong{font-size:11px}.product-results small{margin-top:4px;color:var(--muted);font-size:10px}.product-results a{display:grid;place-items:center;color:var(--accent-gold)}.material-source-tabs{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:14px}.material-source-tabs button{min-height:34px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--muted);font-size:12px;font-weight:800}.material-source-tabs button.active{border-color:#b07b2c73;background:#b07b2c1a;color:var(--accent-gold)}.catalog-panel{margin-top:8px}.catalog-panel h3{display:inline-flex;align-items:center;gap:6px}.catalog-chips{display:flex;flex-wrap:wrap;gap:6px}.catalog-chips button{min-height:28px;padding:0 10px;border:1px solid var(--line);border-radius:999px;background:var(--panel);color:var(--muted);font-size:11px;font-weight:800}.catalog-chips button.active{border-color:#b07b2c73;background:#b07b2c1f;color:var(--accent-gold)}.catalog-retry{justify-self:start;display:inline-flex;align-items:center;gap:6px;min-height:30px;padding:0 12px;border:1px solid rgba(176,123,44,.45);border-radius:8px;background:#b07b2c1a;color:var(--accent-gold);font-size:11px;font-weight:800}.catalog-results{max-height:320px;overflow-y:auto;padding-right:2px}.catalog-results article{grid-template-columns:1fr}.catalog-results small svg{vertical-align:-2px}.room-finish-row{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;align-items:end}.room-finish-row strong{min-height:38px;display:flex;align-items:center;color:var(--ink);font-size:12px}.qr-card{display:grid;place-items:center;gap:9px;padding:14px;border:1px solid var(--line);border-radius:8px;background:var(--panel-soft)}.qr-card img,.qr-placeholder{width:min(100%,220px);aspect-ratio:1;border:1px solid rgba(23,37,47,.12);border-radius:8px;background:#fff}.qr-placeholder{display:grid;place-items:center;color:var(--muted);font-size:11px;font-weight:850;text-transform:uppercase}.qr-card span{max-width:100%;overflow:hidden;color:var(--muted);font-size:12px;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.quest-signin-card{display:grid;gap:10px;padding:16px;border:1px solid rgba(176,123,44,.32);border-radius:8px;background:#b07b2c12}.quest-signin-head{display:flex;align-items:center;gap:8px;color:var(--primary-strong)}.quest-signin-head h3{margin:0;font-size:13px}.quest-signin-card p{margin:0;color:var(--muted);font-size:12px;line-height:1.5}.quest-signin-card.publish-error{border-color:#c451494d;background:#c4514912}.quest-signin-card.publish-error .quest-signin-head{color:var(--red)}.missing-link-screen{display:grid;place-items:center;padding:48px 18px}.missing-link-card{width:min(460px,100%);display:grid;justify-items:start;gap:12px;padding:26px;border:1px solid var(--line);border-radius:14px;background:var(--panel);box-shadow:var(--shadow)}.missing-link-card svg{color:var(--amber)}.missing-link-card h1{margin:0;font-size:20px}.missing-link-card p{margin:0;color:var(--muted);font-size:13px;line-height:1.55}.review-link-box{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px;align-items:center;margin-top:12px;padding:8px;border:1px solid var(--line);border-radius:8px;background:#fff}.review-link-box span{overflow:hidden;color:var(--muted);font-size:11px;font-weight:750;text-overflow:ellipsis;white-space:nowrap}.review-link-box button{min-height:32px;padding:0 9px;border:1px solid rgba(176,123,44,.18);border-radius:8px;display:inline-flex;align-items:center;gap:5px;color:var(--accent-gold);background:#b07b2c14;font-size:11px;font-weight:850}.review-session-note{margin-top:8px;color:var(--muted);font-size:11px;font-weight:750}.share-management{display:grid;gap:10px;margin-top:12px;padding:10px;border:1px solid rgba(176,123,44,.18);border-radius:8px;background:#b07b2c12}.share-management-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:start}.share-management h3{margin:0;color:var(--ink);font-size:12px;font-weight:900}.share-management p{margin:3px 0 0;color:var(--muted);font-size:11px;font-weight:740;line-height:1.35}.share-management-head button,.share-session-main button,.share-invite-row button,.share-invite-form button{min-height:30px;padding:0 9px;border:1px solid rgba(176,123,44,.2);border-radius:8px;display:inline-flex;align-items:center;gap:5px;color:var(--accent-gold);background:#fff;font-size:11px;font-weight:850}.share-session-list{display:grid;gap:8px}.share-session-row{display:grid;gap:8px;padding:8px;border:1px solid rgba(23,37,47,.08);border-radius:8px;background:#fff}.share-session-main{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center}.share-session-row strong,.share-session-row span,.share-invite-row strong,.share-invite-row span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.share-session-row strong,.share-invite-row strong{color:var(--ink);font-size:11px;font-weight:880}.share-session-row span,.share-invite-row span{margin-top:2px;color:var(--muted);font-size:10px;font-weight:740}.share-invite-list{display:grid;gap:6px;padding-top:7px;border-top:1px solid rgba(23,37,47,.08)}.share-invite-row{min-width:0;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center}.share-invite-row button{min-width:30px;justify-content:center;padding:0}.share-invite-form{display:grid;grid-template-columns:minmax(0,1fr);gap:7px;padding:8px;border:1px dashed rgba(23,37,47,.14);border-radius:8px;background:#ffffff9e}.share-invite-form input,.share-invite-form select{width:100%;min-width:0;height:32px;margin:0;border:1px solid rgba(212,222,220,.98);border-radius:8px;background:#fff;color:var(--ink);font-size:11px;font-weight:740}.share-invite-form button{width:100%;justify-content:center}.share-invite-form button:disabled{opacity:.48;cursor:not-allowed}.review-warning-list{display:grid;gap:7px;margin-top:10px}.review-warning-list p{display:grid;grid-template-columns:16px 1fr;gap:6px;margin:0;padding:8px;border:1px solid rgba(216,97,90,.22);border-radius:8px;background:#d8615a14;color:#84433e;font-size:11px;font-weight:760;line-height:1.3}.review-warning-list svg{margin-top:1px}.readiness-summary{display:grid;gap:10px;margin-top:14px;padding:12px;border-radius:10px;border:1px solid var(--line);background:var(--panel-soft)}.readiness-summary.ready{border-color:#7a7a2e52;background:#7a7a2e14}.readiness-summary.caution{border-color:#c0832752;background:#c0832717}.readiness-summary.blocked{border-color:#c4514952;background:#c4514914}.readiness-headline{display:grid;grid-template-columns:18px 1fr;gap:8px;align-items:start}.readiness-headline strong{display:block;color:var(--ink);font-size:13px;font-weight:800}.readiness-headline p{margin:3px 0 0;color:var(--muted);font-size:11px;line-height:1.4;font-weight:720}.readiness-summary.ready .readiness-headline svg{color:var(--green)}.readiness-summary.caution .readiness-headline svg{color:var(--amber)}.readiness-summary.blocked .readiness-headline svg{color:var(--red)}.readiness-list{display:grid;gap:6px;margin:0;padding:0;list-style:none}.readiness-list li{display:grid;grid-template-columns:16px 1fr;gap:6px;padding:8px;border-radius:8px;font-size:11px;line-height:1.35;font-weight:720}.readiness-list strong{display:block;margin-bottom:2px;font-size:11.5px}.readiness-list.blockers li{border:1px solid rgba(196,81,73,.22);background:#c4514912;color:#84433e}.readiness-list.blockers svg{color:var(--red);margin-top:1px}.readiness-list.cautions li{border:1px solid rgba(192,131,39,.22);background:#c0832714;color:#71521e}.readiness-list.cautions svg{color:var(--amber);margin-top:1px}.readiness-banner{display:grid;grid-template-columns:18px 1fr;gap:8px;align-items:start;margin-top:12px;padding:10px;border-radius:8px;border:1px solid rgba(196,81,73,.24);background:#c4514914}.readiness-banner.caution{border-color:#c0832742;background:#c083271a}.readiness-banner svg{margin-top:1px;color:var(--red)}.readiness-banner.caution svg{color:var(--amber)}.readiness-banner strong{display:block;color:var(--ink);font-size:12px;font-weight:800}.readiness-banner p{margin:3px 0 0;color:var(--muted);font-size:11px;line-height:1.4;font-weight:720}.placeholder-shell-banner{display:grid;grid-template-columns:18px 1fr;gap:8px;align-items:start;margin-top:12px;padding:10px;border-radius:8px;border:1px solid rgba(192,131,39,.38);background:#c083271f}.placeholder-shell-banner svg{margin-top:1px;color:var(--amber)}.placeholder-shell-banner strong{display:block;color:var(--ink);font-size:12px;font-weight:800}.placeholder-shell-banner p{margin:3px 0 0;color:var(--muted);font-size:11px;line-height:1.4;font-weight:720}.room-plan-section{margin-top:12px;padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--panel-soft)}.room-plan-section h3{margin:0 0 4px;font-size:12px}.room-plan-section>p{margin:0 0 8px;color:var(--muted);font-size:11px;line-height:1.4}.room-plan-wrap,.room-plan-canvas-row{display:grid;gap:8px}.room-plan-svg{width:100%;aspect-ratio:4 / 3;display:block;border:1px solid var(--line);border-radius:10px;background:var(--panel);touch-action:none}.room-plan-svg:focus-visible{outline:2px solid var(--primary-strong);outline-offset:2px}.room-plan-svg.placing{cursor:copy;border-color:var(--accent-gold)}.room-plan-room rect{fill:var(--panel-soft);stroke:var(--wood);stroke-width:1.4;cursor:pointer}.room-plan-room.selected rect{fill:#b07b2c24;stroke:var(--accent-gold);stroke-width:2}.room-plan-name{fill:var(--ink);font-weight:780;pointer-events:none}.room-plan-size{fill:var(--muted);font-weight:720;pointer-events:none}.room-plan-opening{stroke-width:4;stroke-linecap:round;pointer-events:none}.room-plan-opening.door{stroke:var(--wood)}.room-plan-opening.window{stroke:var(--amber)}.room-plan-opening.cased-opening{stroke:var(--wood);stroke-dasharray:2 2}.room-plan-ghost{fill:#b07b2c1a;stroke:var(--accent-gold);stroke-width:1.5;stroke-dasharray:5 4;pointer-events:none}.room-plan-chips{padding:10px;border:1px dashed var(--line);border-radius:10px;display:flex;flex-wrap:wrap;align-items:center;gap:6px}.room-plan-chips h4{width:100%;margin:0;font-size:12px}.room-plan-chips p{width:100%;margin:0 0 4px;color:var(--muted);font-size:11px;line-height:1.4}.room-chip{padding:5px 11px;border:1px solid var(--wood);border-radius:999px;background:var(--panel);color:var(--ink);font-size:12px;font-weight:740;cursor:grab;touch-action:none}.room-chip.armed{background:var(--accent-gold);border-color:var(--accent-gold);color:#fff}.room-chip-hint{width:100%;margin:2px 0 0;color:var(--primary-strong);font-size:11px;font-weight:740}.room-plan-card{padding:10px;border:1px solid var(--line);border-radius:10px;background:var(--panel);display:grid;grid-template-columns:1.4fr 1fr 1fr auto;gap:8px;align-items:end}.room-plan-card label{display:grid;gap:3px;font-size:10px;font-weight:760;color:var(--muted)}.room-plan-card input{min-height:30px;padding:0 8px;border:1px solid var(--line);border-radius:7px;font-size:12px;font-weight:740}.room-plan-nudges{display:flex;gap:4px}.room-plan-nudges button{width:28px;height:30px;display:grid;place-items:center;border:1px solid var(--line);border-radius:7px;background:var(--panel-soft);color:var(--ink)}.room-plan-nudges button:hover{border-color:var(--accent-gold);color:var(--primary-strong)}.room-plan-card-note{grid-column:1 / -1;margin:0;color:var(--amber);font-size:11px;font-weight:720;line-height:1.4}.room-plan-hint,.room-plan-empty{margin:0;color:var(--muted);font-size:11px;font-weight:720;line-height:1.4}.room-plan-empty{padding:12px;border:1px dashed var(--line);border-radius:8px}@media(max-width:640px){.room-plan-card{grid-template-columns:1fr 1fr}}.scale-mismatch-card{display:grid;grid-template-columns:18px 1fr;gap:8px;align-items:start;margin-top:12px;padding:10px;border-radius:8px;border:1px solid rgba(192,131,39,.38);background:#c083271f}.scale-mismatch-card svg{margin-top:1px;color:var(--amber)}.scale-mismatch-card strong{display:block;color:var(--ink);font-size:12px;font-weight:800}.scale-mismatch-card p{margin:3px 0 8px;color:var(--muted);font-size:11px;line-height:1.4;font-weight:720}.scale-mismatch-card button{padding:6px 12px;border:1px solid rgba(192,131,39,.5);border-radius:8px;background:var(--primary-strong);color:#fdf8ef;font-size:11px;font-weight:800;cursor:pointer}.scale-mismatch-card button:disabled{opacity:.6;cursor:default}.scale-match-note,.scale-cross-page-note{margin:8px 0 0;color:var(--muted);font-size:11px;font-weight:720}.scale-options-card{margin-top:12px;padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--panel-soft)}.scale-options-card h3{margin:0 0 4px;font-size:12px}.scale-options-card p{margin:0 0 8px;color:var(--muted);font-size:11px;line-height:1.4}.scale-options-card ul{margin:0;padding:0;list-style:none;display:grid;gap:6px}.scale-options-card li{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:12px;font-weight:700;color:var(--ink)}.scale-options-card li em{font-style:normal;color:var(--primary-strong);font-size:11px;font-weight:800}.scale-options-card li button{padding:4px 10px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--primary-strong);font-size:11px;font-weight:800;cursor:pointer}.scale-options-card li button:disabled{opacity:.6;cursor:default}.ai-vision-card{display:grid;grid-template-columns:18px 1fr;gap:8px;align-items:start;margin-top:12px;padding:12px;border:1px solid rgba(176,123,44,.34);border-radius:10px;background:#b07b2c14}.ai-vision-card svg{margin-top:1px;color:var(--accent-gold)}.ai-vision-card strong{display:block;color:var(--ink);font-size:12px;font-weight:800}.ai-vision-card p{margin:3px 0 0;color:var(--muted);font-size:11px;line-height:1.4;font-weight:720}.ai-vision-actions{display:flex;gap:8px;margin-top:8px}.ai-vision-actions button{padding:5px 12px;border:1px solid rgba(138,95,30,.5);border-radius:8px;background:var(--primary-strong);color:#fdf8ef;font-size:11px;font-weight:800;cursor:pointer}.ai-vision-actions button.ai-vision-dismiss{background:var(--panel);color:var(--primary-strong);border-color:var(--line)}.ai-vision-actions button:disabled{opacity:.6;cursor:default}.stage-shell-stamp{display:inline-flex;align-items:center;gap:6px;margin:6px 0 0;padding:4px 10px;border-radius:999px;border:1px solid rgba(192,131,39,.42);background:#c0832724;color:var(--primary-strong);font-size:11px;font-weight:800}.stage-shell-stamp svg{color:var(--amber)}.measurement-grade-warning{display:grid;grid-template-columns:16px 1fr;gap:6px;margin:0;padding:8px;border-radius:8px;border:1px solid rgba(196,81,73,.22);background:#c4514912;color:#84433e;font-size:11px;font-weight:740;line-height:1.35}.measurement-grade-warning svg{margin-top:1px;color:var(--red)}.add-layer-row{display:grid;grid-template-columns:1fr auto;gap:8px;margin-top:12px}.add-layer-row select{min-height:34px;padding:0 10px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--ink);font-size:12px;font-weight:700}.add-layer-upload{min-height:34px;padding:0 12px;display:inline-flex;align-items:center;gap:6px;border:1px solid rgba(176,123,44,.2);border-radius:8px;background:#b07b2c1a;color:var(--accent-gold);font-size:12px;font-weight:800;position:relative;overflow:hidden;white-space:nowrap;cursor:pointer}.add-layer-upload input{inline-size:1px;block-size:1px;position:absolute;opacity:0;pointer-events:none}.design-layers-empty{margin-top:12px;padding:12px;border:1px dashed var(--line);border-radius:8px;color:var(--muted);font-size:11px;line-height:1.4;font-weight:700}.design-layer-row{display:grid;gap:9px;margin-top:10px;padding:11px;border:1px solid var(--line);border-radius:10px;background:var(--panel-soft)}.design-layer-head{display:grid;grid-template-columns:minmax(0,1fr) auto 32px 32px;gap:7px;align-items:center}.design-layer-head input{min-height:32px;padding:0 9px;border:1px solid var(--line);border-radius:8px;font-size:12px;font-weight:760}.design-layer-head select{min-height:32px;padding:0 8px;border:1px solid var(--line);border-radius:8px;background:var(--panel);font-size:11px;font-weight:720}.icon-button{min-height:32px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--muted);cursor:pointer}.icon-button:hover{color:var(--ink);border-color:#b07b2c4d}.design-layer-meta{display:flex;align-items:center;justify-content:space-between;gap:8px}.layer-fixture-count{color:var(--muted);font-size:11px;font-weight:760}.layer-scale-button{display:inline-flex;align-items:center;gap:5px;min-height:30px;padding:0 10px;border-radius:8px;border:1px solid rgba(192,131,39,.3);background:#c083271a;color:#71521e;font-size:11px;font-weight:800;cursor:pointer}.layer-scale-button.confirmed{border-color:#7a7a2e4d;background:#7a7a2e1a;color:#5c5a22}.placement-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}.placement-grid label{display:grid;gap:4px;font-size:10px;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.02em}.placement-grid input{min-height:30px;padding:0 8px;border:1px solid var(--line);border-radius:7px;font-size:12px;font-weight:740}.plan-align-wrap{margin-top:12px;display:grid;gap:6px}.plan-align-svg{width:100%;aspect-ratio:4 / 3;display:block;border:1px solid var(--line);border-radius:10px;background:var(--panel-soft);touch-action:none}.plan-align-svg:focus-visible{outline:2px solid var(--primary-strong);outline-offset:2px}.plan-room{fill:var(--panel);stroke:var(--line);stroke-width:1.2}.plan-room-label{fill:var(--muted);font-weight:760;pointer-events:none}.plan-base-fixture{fill:var(--line);fill-opacity:.55;stroke:var(--muted);stroke-opacity:.4;stroke-width:1;pointer-events:none}.plan-layer-fixture{fill:var(--wood);fill-opacity:.2;stroke:var(--wood);stroke-width:1.3;cursor:grab}.plan-layer-fixture.selected{fill:var(--accent-gold);fill-opacity:.24;stroke:var(--accent-gold)}.plan-layer-bounds{fill:none;stroke:var(--primary-strong);stroke-width:1.5;stroke-dasharray:5 4;pointer-events:none}.plan-rotate-stalk{stroke:var(--primary-strong);stroke-width:1.5;pointer-events:none}.plan-rotate-handle{fill:var(--primary-strong);stroke:var(--panel);stroke-width:2;cursor:grab}.plan-align-svg:active .plan-layer-fixture.selected,.plan-align-svg:active .plan-rotate-handle{cursor:grabbing}.plan-align-hint,.plan-align-empty{color:var(--muted);font-size:11px;font-weight:720;line-height:1.4}.plan-align-empty{margin-top:12px;padding:12px;border:1px dashed var(--line);border-radius:8px}.design-layer-row{cursor:pointer}.design-layer-row.selected{border-color:var(--primary-strong);box-shadow:0 0 0 1px var(--primary-strong) inset}.quest-setup-card,.comfort-card,.review-checklist,.readiness-action-plan,.measurement-tool-panel{display:grid;gap:9px;margin-top:12px;padding:12px;border:1px solid var(--line);border-radius:8px;background:var(--panel-soft)}.quest-setup-card div,.comfort-card div,.review-checklist div,.readiness-action-plan div{display:grid;grid-template-columns:18px 1fr;gap:8px;align-items:start}.quest-setup-card svg,.comfort-card svg,.review-checklist svg,.readiness-action-plan svg{color:var(--accent-gold)}.quest-setup-card h3,.comfort-card h3{margin:0;color:var(--ink);font-size:12px;font-weight:900}.quest-setup-card span,.comfort-card span{color:var(--ink);font-size:12px;font-weight:760;line-height:1.35}.review-status-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.review-status-grid div{min-height:68px;padding:10px;border-radius:8px;background:linear-gradient(145deg,#17252ff5,#4a341ef0);color:#fff}.review-status-grid strong,.review-status-grid span{display:block}.review-status-grid strong{font-size:24px;line-height:1}.review-status-grid span{margin-top:8px;color:#ffffffbd;font-size:10px;font-weight:800}.review-checklist div.ready svg{color:var(--green)}.review-checklist p,.readiness-action-plan p{font-size:11px;line-height:1.35}.review-checklist strong,.readiness-action-plan strong{display:block;color:var(--ink);font-size:12px;margin-bottom:3px}.readiness-action-plan h3{margin-bottom:1px}.readiness-action-plan div{grid-template-columns:18px minmax(0,1fr);padding:8px;border-radius:8px;border:1px solid rgba(31,49,63,.08);background:#ffffff9e}.readiness-action-plan div.blocker{border-color:#c4514938;background:#c4514912}.readiness-action-plan div.caution{border-color:#c0832733;background:#c0832714}.readiness-action-plan div.blocker svg{color:var(--red)}.readiness-action-plan div.caution svg,.readiness-action-plan.ready div.caution svg{color:var(--green)}.readiness-action-plan button{grid-column:2;justify-self:start;min-height:28px;padding:0 9px;border:1px solid rgba(20,102,118,.18);border-radius:8px;background:#14667614;color:var(--accent-gold);font-size:10px;font-weight:840;cursor:pointer}.review-target-pulse{outline:2px solid rgba(20,102,118,.42);outline-offset:4px;transition:outline-color .25s ease}.measurement-tool-panel>div:first-child p{color:var(--muted);font-size:11px;font-weight:720;line-height:1.35}.measurement-tool-panel .compact{width:100%}.measurement-list{display:grid;gap:7px}.measurement-list div{display:grid;grid-template-columns:minmax(0,1fr) 30px;gap:8px;align-items:center;padding:8px;border:1px solid rgba(31,49,63,.09);border-radius:8px;background:#fff}.measurement-list span,.measurement-list strong{display:block}.measurement-list span{min-width:0;color:var(--muted);font-size:11px;font-weight:800}.measurement-list strong{overflow:hidden;color:var(--ink);font-size:12px;text-overflow:ellipsis;white-space:nowrap}.measurement-list button{width:30px;height:30px;border:1px solid rgba(216,97,90,.2);border-radius:8px;display:grid;place-items:center;color:#b24d46;background:#d8615a14}.decision-strip{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:14px}.decision-strip div{min-height:62px;padding:10px;border-radius:8px;background:linear-gradient(145deg,#17252ff5,#4a341ef0);color:#fff}.decision-strip strong,.decision-strip span{display:block}.decision-strip strong{font-size:23px;line-height:1}.decision-strip span{margin-top:7px;color:#ffffffbd;font-size:11px;font-weight:760}.export-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}.export-actions button{color:var(--ink);background:#fff;border:1px solid var(--line)}@media(max-width:1180px){.workspace{grid-template-columns:minmax(280px,330px) minmax(460px,1fr)}.config-panel,.quest-panel,.decision-panel{grid-column:1 / -1;max-height:none}.material-list{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:820px){.topbar{position:static;align-items:flex-start;flex-direction:column}.pipeline{justify-content:flex-start}.workspace{min-height:auto;grid-template-columns:1fr;padding:12px}.intake-panel,.review-panel,.config-panel{max-height:none;height:auto}.stage{grid-template-rows:auto 72vh auto}.stage-header{align-items:flex-start;flex-direction:column}.primary-action.compact{width:100%}.summary-rail,.material-list,.export-actions,.review-status-grid,.review-link-box,.online-image-form,.product-search-form,.product-results,.model-page-card,.room-finish-row,.field-grid,.room-row,.opening-row,.fixture-row,.extraction-grid,.pdf-page-controls,.calibration-tools,.calibration-metrics,.add-layer-row{grid-template-columns:1fr}.placement-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.save-status{left:12px;right:12px;justify-content:center}}.welcome-workspace{display:grid;place-items:center;padding:28px 16px 64px}.library-loading{margin:48px 0;color:var(--muted);font-size:13px;font-weight:600}.welcome-screen{width:100%;display:grid;justify-items:center}.welcome-card{width:min(480px,100%);display:grid;gap:18px;padding:34px 30px;border:1px solid var(--line);border-radius:14px;background:var(--panel);box-shadow:var(--shadow);text-align:center}.welcome-card h1{margin:0;font-size:24px;line-height:1.25;letter-spacing:-.02em}.welcome-steps{margin:0;padding:0;list-style:none;display:grid;gap:9px;justify-items:start;text-align:left}.welcome-steps li{display:flex;align-items:center;gap:10px;font-size:14px;font-weight:600;color:var(--ink)}.welcome-steps li span{width:26px;height:26px;display:inline-grid;place-items:center;border-radius:999px;background:#b07b2c24;color:var(--primary-strong);font-size:12px;font-weight:800}.welcome-upload{display:inline-flex;align-items:center;justify-content:center;gap:8px;cursor:pointer}.welcome-upload input{display:none}.welcome-upload.disabled{opacity:.65;cursor:progress}.welcome-error{display:flex;align-items:flex-start;gap:7px;margin:0;padding:10px;border:1px solid rgba(196,81,73,.35);border-radius:8px;background:#c4514914;color:var(--red);font-size:12px;text-align:left}.sample-badge{display:inline-grid;place-items:center;margin-left:10px;padding:3px 10px;border:1px solid rgba(176,123,44,.4);border-radius:999px;background:#b07b2c1f;color:var(--primary-strong);font-size:11px;font-weight:800;vertical-align:middle;white-space:nowrap}.advanced-corrections{margin-top:14px;border:1px solid var(--line);border-radius:10px;background:var(--panel-soft)}.advanced-corrections-toggle{width:100%;display:grid;grid-template-columns:auto auto 1fr;align-items:center;gap:8px;padding:12px;border:0;border-radius:10px;background:transparent;color:var(--ink);font-size:13px;font-weight:800;text-align:left}.advanced-corrections-toggle small{justify-self:end;color:var(--muted);font-size:11px;font-weight:500;text-align:right}.advanced-corrections.open .advanced-corrections-toggle{border-bottom:1px solid var(--line);border-radius:10px 10px 0 0}.advanced-corrections-body{display:grid;gap:14px;padding:12px}.advanced-corrections-body .extraction-overview{margin-top:0}.calibration-help{margin:0;color:var(--muted);font-size:12px;line-height:1.4}.advanced-telemetry summary{cursor:pointer;color:var(--muted);font-size:11px;font-weight:700}.advanced-telemetry[open] summary{margin-bottom:8px}.extraction-sentence{margin:0;font-size:13px;font-weight:600;color:var(--ink)}@media(max-width:860px){.welcome-card{padding:26px 18px}.advanced-corrections-toggle small{display:none}}.calibration-guide{margin:0 0 10px;padding:0;list-style:none;display:grid;gap:4px}.calibration-guide li{display:flex;align-items:flex-start;gap:7px;padding:4px 6px;border-radius:7px;color:var(--muted);font-size:11.5px;font-weight:720;line-height:1.35}.calibration-guide li.current{background:#c083271a;color:var(--ink)}.calibration-guide li.done{opacity:.62}.calibration-guide .guide-number{flex:none;width:17px;height:17px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:999px;background:var(--panel-soft);font-size:10px;font-weight:850}.calibration-guide li.current .guide-number{border-color:var(--amber);background:var(--amber);color:#fff}.calibration-guide li.done .guide-number{border-color:transparent;background:#7a7a2e29;color:var(--green)}.calibration-zoom-tools{margin-top:8px;display:flex;flex-wrap:wrap;gap:6px}.calibration-zoom-tools button{min-height:30px;padding:0 9px;border:1px solid rgba(176,123,44,.18);border-radius:8px;display:inline-flex;align-items:center;justify-content:center;gap:5px;background:#b07b2c14;color:var(--accent-gold);font-size:11px;font-weight:850}.calibration-zoom-tools button.active{border-color:var(--accent-gold);background:var(--accent-gold);color:#fff}.calibration-canvas-wrap{touch-action:none}.calibration-canvas-wrap.panning{cursor:grab}.calibration-plane{width:100%}.calibration-overlay{pointer-events:auto}.calibration-overlay:focus-visible{outline:2px solid var(--amber);outline-offset:-2px}.calibration-overlay circle.calibration-handle{fill:transparent;stroke:none;pointer-events:all;cursor:grab}.calibration-endpoints{margin-top:8px}.calibration-endpoints summary{cursor:pointer;color:var(--muted);font-size:11px;font-weight:750}.calibration-endpoints p{margin:6px 0 8px;color:var(--muted);font-size:11px}.endpoint-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.endpoint-grid fieldset{margin:0;padding:8px;border:1px solid var(--line);border-radius:8px;display:grid;gap:6px}.endpoint-grid legend{padding:0 3px;color:var(--muted);font-size:10.5px;font-weight:850}.endpoint-grid label{display:grid;gap:3px;color:var(--muted);font-size:10.5px;font-weight:750}.endpoint-grid input{min-height:30px;padding:0 8px;border:1px solid var(--line);border-radius:7px;font-size:12px}.scale-match-note{display:inline-flex;align-items:center;gap:5px;color:var(--green)}@media(max-width:560px){.endpoint-grid{grid-template-columns:1fr}}.phone-tabbar,.phone-review-card{display:none}@media(max-width:820px){.phone-tabbar{position:fixed;left:0;right:0;bottom:0;z-index:40;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;padding:8px 12px calc(8px + env(safe-area-inset-bottom));background:#fffffff0;border-top:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.phone-tabbar button{min-height:44px;border:1px solid transparent;border-radius:8px;background:none;color:var(--muted);font-size:12.5px;font-weight:800}.phone-tabbar button.active{color:var(--primary-strong);background:#b07b2c1f;border-color:#b07b2c42}.workspace.phone-tabbed{padding-bottom:calc(84px + env(safe-area-inset-bottom))}.workspace.phone-tabbed~.save-status{bottom:calc(74px + env(safe-area-inset-bottom))}.workspace.phone-tabbed.phone-tab-plan .stage,.workspace.phone-tabbed.phone-tab-plan .config-panel,.workspace.phone-tabbed.phone-tab-3d .left-column,.workspace.phone-tabbed.phone-tab-3d .config-panel,.workspace.phone-tabbed.phone-tab-finishes .left-column,.workspace.phone-tabbed.phone-tab-finishes .stage,.external-review .pipeline,.external-review .left-column,.external-review .decision-panel,.external-review .summary-rail{display:none}.external-review .workspace{padding:10px 12px 28px}.external-review .stage{grid-template-rows:auto minmax(300px,56vh) auto}.external-review .scene-shell{min-height:300px}.external-review .stage-header{min-height:0}.external-review .phone-review-card{display:grid;gap:10px;padding:14px;border:1px solid rgba(212,222,220,.92);border-radius:8px;background:var(--panel);box-shadow:0 12px 36px #23303714}.phone-review-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.phone-review-head h2{margin:0;font-size:16px}.phone-review-card .decision-grade-chip{display:inline-flex;align-items:center;gap:6px;padding:4px 9px;border:1px solid rgba(122,122,46,.24);border-radius:999px;color:#5c5a22;background:#7a7a2e1a;font-size:11px;font-weight:800;white-space:nowrap}.phone-review-card .decision-grade-chip.caution{color:#71521e;background:#c083271f;border-color:#c0832738}.phone-review-card .decision-grade-chip.blocked{color:#84433e;background:#c451491a;border-color:#c451493d}.phone-review-meta{margin:0;color:var(--muted);font-size:12.5px;font-weight:700}.phone-review-measurements{margin:0;padding:0;list-style:none;display:grid;gap:6px}.phone-review-measurements li{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--panel-soft);font-size:12.5px}.phone-review-measurements strong{color:var(--primary-strong)}.phone-review-empty{margin:0;color:var(--muted);font-size:12.5px}.phone-review-scope{margin:0;color:var(--muted);font-size:12px}}
