@import "https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@400;500;600;700&family=IBM+Plex+Sans+KR:wght@400;500;600;700&display=swap";@layer components;@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer utilities{.\!visible{visibility:visible!important}.visible{visibility:visible}.ml-auto{margin-left:auto}.grid{display:grid}.hidden{display:none}.table{display:table}.min-w-0{min-width:calc(var(--spacing) * 0)}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.resize{resize:both}.flex-wrap{flex-wrap:wrap}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}}:root{--rf-ink:#f8f8f5;--rf-ink-soft:#deded8;--rf-muted:#f8f8f5ad;--rf-subtle:#f8f8f570;--rf-line:#d6e2ec21;--rf-line-strong:#d6e2ec4d;--rf-paper:#050505;--rf-surface:#0b0d0f;--rf-surface-raised:#12161a;--rf-canvas:#101419;--rf-grid:#b9ccdc16;--rf-glass:#050607b8;--rf-glass-strong:#0c0f12e0;--rf-glass-blur:saturate(120%) blur(18px);--rf-candidate:#8fb4ff;--rf-confirmed:#8bc3a7;--rf-selected:#d8b46a;--rf-warning:#d49a5c;--rf-error:#e08b82;--rf-measure:#b9a7e8;--rf-save:#80c7c2;--rf-admin:#9ba7b4;--rf-candidate-tint:#8fb4ff24;--rf-confirmed-tint:#8bc3a721;--rf-selected-tint:#d8b46a29;--rf-warning-tint:#d49a5c24;--rf-error-tint:#e08b8226;--rf-measure-tint:#b9a7e821;--rf-save-tint:#80c7c221;--rf-admin-tint:#9ba7b41c;--rf-grad-brand:linear-gradient(135deg, #050505 0%, #172235 46%, #294642 74%, #d8b46a 100%);--rf-grad-primary:linear-gradient(135deg, #dce8ff 0%, #8fb4ff 58%, #80c7c2 100%);--rf-grad-progress:linear-gradient(90deg, #8fb4ff 0%, #80c7c2 58%, #d8b46a 100%);--rf-grad-sheen:linear-gradient(120deg, transparent 20%, #dce8ff8a 50%, transparent 80%);--rf-sans:"IBM Plex Sans KR", "IBM Plex Sans", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", "Apple SD Gothic Neo", "Pretendard", sans-serif;--rf-mono:"SFMono-Regular", "Cascadia Code", "Roboto Mono", ui-monospace, monospace;--rf-text-xs:11px;--rf-text-sm:12px;--rf-text-base:14px;--rf-text-md:16px;--rf-text-lg:18px;--rf-text-xl:22px;--rf-text-2xl:28px;--rf-text-3xl:clamp(34px, 5vw, 56px);--rf-weight-regular:400;--rf-weight-medium:500;--rf-weight-semibold:600;--rf-weight-bold:700;--rf-weight-black:800;--rf-space-1:4px;--rf-space-2:8px;--rf-space-3:12px;--rf-space-4:16px;--rf-space-5:20px;--rf-space-6:24px;--rf-space-8:32px;--rf-space-10:40px;--rf-space-12:48px;--rf-space-16:64px;--rf-radius-xs:6px;--rf-radius-sm:8px;--rf-radius-md:8px;--rf-radius-lg:8px;--rf-radius-xl:8px;--rf-radius-pill:999px;--rf-shadow-xs:0 1px 2px #0000004d;--rf-shadow-sm:0 10px 28px #00000057;--rf-shadow-md:0 18px 48px #0000006b;--rf-shadow-lg:0 28px 72px #00000085;--rf-shadow-pop:0 34px 90px #000000a3;--rf-ring:0 0 0 3px #8fb4ff57;--rf-ring-inset:inset 0 0 0 1px #dce8ff5c;--rf-dur-1:.12s;--rf-dur-2:.2s;--rf-dur-3:.32s;--rf-dur-4:.52s;--rf-ease-standard:cubic-bezier(.2, 0, 0, 1);--rf-ease-emphasized:cubic-bezier(.2, 0, 0, 1.1);--rf-ease-spring:cubic-bezier(.34, 1.56, .64, 1);--rf-ease-out:cubic-bezier(.16, 1, .3, 1);--rf-ease-in:cubic-bezier(.5, 0, .75, 0);--rf-rail-w:64px;--rf-inspector-w:320px;--rf-topbar-h:56px;--rf-statusbar-h:40px;--rf-max-w:1440px}@media (prefers-reduced-motion:reduce){:root{--rf-dur-1:.01ms;--rf-dur-2:.01ms;--rf-dur-3:.01ms;--rf-dur-4:.01ms;--rf-ease-spring:cubic-bezier(.2, 0, 0, 1)}}:root{--auth-photo-flight-z:80;--auth-theme-overlay-z:120;--auth-info-overlay-z:180}:root[data-theme=dark]{--page-bg:#050505;--auth-photo-frame-bg:#080808;--auth-photo-frame-border:#d6e2ec21;--auth-photo-frame-shadow:0 42px 96px #0000006b;--auth-photo-filter:saturate(.82) contrast(1.06) brightness(.7);--auth-photo-vignette:linear-gradient(180deg, #05070c52, transparent 34%, transparent 52%, #05070cd1), linear-gradient(90deg, #05070c6b, transparent 30%);--auth-photo-wash:radial-gradient(120% 80% at 82% 18%, #ffd28c00, transparent 60%), radial-gradient(120% 90% at 78% 22%, #7896dc73, transparent 62%);--text-main:#f8f8f5;--text-muted:#f8f8f5a8;--text-dim:#f8f8f56b;--brand-ink:#fff;--line-soft:#d6e2ec21;--line-strong:#d6e2ec4d;--surface:#ffffff0a;--surface-hover:#ffffff17;--panel:#ffffff06;--popover-bg:#101114;--modal-bg:#121318;--bar-bg:#080809b8;--accent:#8fb4ff;--success:#48d39a;--warning:#d49a5c;--danger:#f0726a;--admin:#a78bfa;--canvas:#0a0b0d;--grid-tint:#b9ccdc0d;--grid-tint-soft:#b9ccdc0a;--grid-opacity:.5}:root[data-theme=light]{--page-bg:#ecebe4;--auth-photo-frame-bg:#ecebe4;--auth-photo-frame-border:#141e2d1f;--auth-photo-frame-shadow:0 34px 84px #363a422e;--auth-photo-filter:saturate(.92) contrast(1.04) brightness(.92);--auth-photo-vignette:linear-gradient(180deg, #fffcf414, transparent 38%, transparent 58%, #12161e3d), linear-gradient(90deg, #fffcf414, transparent 34%);--auth-photo-wash:radial-gradient(120% 80% at 82% 18%, #ffd28c57, transparent 60%), radial-gradient(120% 90% at 78% 22%, #7896dc14, transparent 62%);--text-main:#15171c;--text-muted:#15171ca8;--text-dim:#15171c75;--brand-ink:#0a0c10;--line-soft:#141e2d1f;--line-strong:#141e2d42;--surface:#0f141e0b;--surface-hover:#0f141e17;--panel:#ffffff8c;--popover-bg:#fffefa;--modal-bg:#fffefa;--bar-bg:#f0efe9c7;--accent:#3f6ad8;--success:#247f5a;--warning:#9a6a2d;--danger:#b84339;--admin:#7357d7;--canvas:#1a1c20;--grid-tint:#3c506e0f;--grid-tint-soft:#3c506e0b;--grid-opacity:.4}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;min-height:100%}body{background:var(--page-bg);min-height:100vh;color:var(--text-main);font-family:var(--rf-sans);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;font-size:14px;line-height:1.55;transition:background-color .6s,color .6s}body:before{content:"";z-index:-1;pointer-events:none;background:linear-gradient(180deg, #8fb4ff0f, transparent 22%, transparent 78%, #80c7c20b), repeating-linear-gradient(90deg, var(--grid-tint) 0 1px, transparent 1px 92px), repeating-linear-gradient(180deg, var(--grid-tint-soft) 0 1px, transparent 1px 92px);opacity:var(--grid-opacity);position:fixed;inset:0}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}:focus-visible{box-shadow:var(--rf-ring);outline:none}::selection{background:var(--rf-candidate-tint)}.rf-page{z-index:1;min-height:100vh;position:relative}.rf-page--center{place-items:center;padding:32px;display:grid}.rf-panel{border:1px solid var(--line-soft);background:var(--panel);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border-radius:14px}.rf-panel--narrow{width:min(100%,520px);padding:28px}.state-panel{border:1px solid var(--line-soft);background:var(--panel);text-align:center;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border-radius:16px;width:min(100%,560px);padding:30px}.state-panel h1{color:var(--brand-ink);margin:0;font-size:30px;line-height:1.08}.state-panel p:not(.rf-eyebrow){max-width:48ch;color:var(--text-muted);margin:12px auto 0}.state-panel-actions{flex-wrap:wrap;justify-content:center;gap:8px;margin-top:22px;display:flex}.route-loading-page{place-items:center;min-height:100vh;display:grid}.route-loading-page>header{border-bottom:1px solid var(--line-soft);background:var(--bar-bg);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);top:0;align-items:center;height:56px;padding:0 16px;display:flex;position:fixed;inset-inline:0}.route-loading-page section{color:var(--text-muted);justify-items:center;gap:14px;display:grid}.route-loading-page h1{margin:0;font-size:15px}.route-loader{border:2px solid var(--line-soft);border-top-color:var(--accent);border-radius:999px;width:34px;height:34px;animation:1.1s linear infinite rf-spin}.rf-eyebrow{color:var(--text-dim);letter-spacing:0;text-transform:uppercase;margin:0 0 10px;font-size:11px;font-weight:800}.rf-btn{border:1px solid var(--line-soft);background:var(--surface);min-height:40px;color:var(--text-main);transition:transform var(--rf-dur-2) var(--rf-ease-out), background var(--rf-dur-2), border-color var(--rf-dur-2), box-shadow var(--rf-dur-2);border-radius:8px;justify-content:center;align-items:center;gap:8px;padding:0 14px;font-weight:700;display:inline-flex}.rf-btn:hover{border-color:var(--line-strong);background:var(--surface-hover);transform:translateY(-1px);box-shadow:0 18px 45px #00000047}.rf-btn:disabled:hover{border-color:var(--line-soft);background:var(--surface);box-shadow:none;transform:none}.rf-btn--primary{background:var(--rf-grad-primary);color:#050505;border-color:#dce8ffdb}.rf-btn--primary:hover{box-shadow:0 22px 58px #8fb4ff47}.rf-brand{color:var(--text-main);text-transform:uppercase;align-items:center;gap:9px;font-size:13px;font-weight:800;display:inline-flex}.rf-brand-icon{object-fit:cover;width:22px;height:22px;box-shadow:var(--rf-ring-inset);border-radius:6px}.theme-toggle{border:1px solid var(--line-soft);background:var(--surface);width:38px;height:38px;color:var(--text-main);cursor:pointer;border-radius:10px;position:relative;overflow:hidden}.theme-toggle:hover{border-color:var(--line-strong);background:var(--surface-hover)}.theme-toggle:after{content:"";pointer-events:none;background:radial-gradient(circle at 50% 36%,#0000 48%,#0000002e);position:absolute;inset:0}.theme-toggle__icon{width:20px;height:20px;animation:theme-icon-pop .34s var(--rf-ease-out);will-change:transform;place-items:center;display:grid;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.theme-toggle__svg--sun{color:#c98a27;filter:drop-shadow(0 0 8px #ffb95057)}.theme-toggle__svg--moon{color:#dbe6ff;filter:drop-shadow(0 0 8px #aac4ff6b)}@keyframes theme-icon-pop{0%{transform:translate(-50%,-50%)scale(.72)rotate(-24deg)}to{transform:translate(-50%,-50%)scale(1)rotate(0)}}.product-topbar{z-index:30;border-bottom:1px solid var(--line-soft);background:var(--bar-bg);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);top:0;align-items:center;gap:12px;height:56px;padding:0 16px;display:flex;position:fixed;inset-inline:0}.product-sidebar{z-index:20;border-right:1px solid var(--line-soft);background:var(--bar-bg);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);flex-direction:column;gap:4px;width:248px;padding:14px 12px;display:flex;position:fixed;top:56px;bottom:0;left:0}.product-main{min-height:100vh;padding:84px 28px 28px 276px}.nav-link{min-height:38px;color:var(--text-dim);transition:background var(--rf-dur-2), color var(--rf-dur-2);border-radius:9px;align-items:center;gap:10px;padding:0 12px;font-weight:700;display:flex}.nav-link:hover,.nav-link.is-active{background:var(--surface);color:var(--text-main)}.page-head{align-items:flex-end;gap:18px;margin-bottom:24px;display:flex}.page-head h1{color:var(--brand-ink);margin:0;font-size:clamp(30px,3.2vw,40px);line-height:1}.page-head p{color:var(--text-muted);margin:10px 0 0}.card-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.route-card{border:1px solid var(--line-soft);background:var(--panel);min-height:180px;transition:transform var(--rf-dur-2) var(--rf-ease-out), border-color var(--rf-dur-2), background var(--rf-dur-2);border-radius:14px;padding:18px;position:relative;overflow:hidden}.route-card:hover{border-color:var(--line-strong);background:var(--surface);transform:translateY(-2px)}.route-card h2{margin:0;font-size:17px}.route-card p{color:var(--text-muted)}.status-pill{border:1px solid var(--line-soft);min-height:24px;color:var(--text-muted);border-radius:8px;align-items:center;gap:6px;padding:0 9px;font-size:11px;font-weight:800;display:inline-flex}.status-pill:before{content:"";background:currentColor;border-radius:999px;width:6px;height:6px}.status-pill--success{color:var(--success);background:#48d39a1f;border-color:#48d39a57}.status-pill--accent{color:var(--accent);background:#8fb4ff24;border-color:#8fb4ff61}.status-pill--warning{color:var(--warning);background:#d49a5c1f;border-color:#d49a5c57}.status-pill--danger{color:var(--danger);background:#f0726a1f;border-color:#f0726a57}.status-pill--muted{border-color:var(--line-soft);background:var(--surface);color:var(--text-muted)}.rf-btn--dark{color:#fff;background:#05070c8a;border-color:#ffffff2e}.top-crumb{color:var(--text-dim);align-items:center;gap:8px;font-size:13px;font-weight:700;display:flex}.top-crumb span:last-child{color:var(--text-main)}.top-search{border:1px solid var(--line-soft);background:var(--surface);width:clamp(180px,28vw,360px);height:38px;color:var(--text-dim);border-radius:9px;align-items:center;gap:8px;margin-left:12px;padding:0 12px;display:flex}.top-search:focus-within{border-color:var(--line-strong);box-shadow:var(--rf-ring)}.top-search input{min-width:0;color:var(--text-main);background:0 0;border:0;outline:0;flex:1}.top-search input::placeholder{color:var(--text-dim)}.top-search kbd{border:1px solid var(--line-soft);color:var(--text-dim);border-radius:5px;padding:1px 6px;font-size:10px;font-weight:800}.top-actions{align-items:center;gap:8px;margin-left:auto;display:flex}.rf-menu-wrap{position:relative}.rf-popover{z-index:60;border:1px solid var(--line-strong);background:var(--popover-bg);border-radius:12px;min-width:210px;padding:8px;display:grid;position:absolute;top:calc(100% + 8px);left:0;box-shadow:0 24px 62px #00000061}.rf-popover--right{left:auto;right:0}.rf-popover a,.rf-popover button{min-height:34px;color:var(--text-muted);text-align:left;background:0 0;border:0;border-radius:8px;align-items:center;gap:8px;padding:0 10px;font-size:12px;font-weight:800;display:flex}.rf-popover a:hover,.rf-popover button:hover{background:var(--surface-hover);color:var(--text-main)}.account-menu strong,.account-menu small{padding:0 10px;display:block}.account-menu strong{color:var(--text-main);font-size:13px}.account-menu small{color:var(--text-dim);margin:2px 0 8px;font-size:11px}.compact-menu{min-width:164px}.workspace-menu{width:100%}.account-avatar,.workspace-avatar{color:#fff;background:linear-gradient(135deg,#8fb4ff,#80c7c2);place-items:center;font-size:12px;font-weight:800;display:grid}.account-avatar{border:0;border-radius:999px;width:36px;height:36px}.workspace-switcher{min-height:44px;color:var(--text-main);text-align:left;width:100%;transition:background var(--rf-dur-2), color var(--rf-dur-2);background:0 0;border:0;border-radius:10px;align-items:center;gap:10px;padding:6px 8px;display:flex}.workspace-switcher:hover{background:var(--surface)}.workspace-avatar{border-radius:8px;flex:none;width:30px;height:30px}.workspace-copy{flex:1;gap:1px;min-width:0;display:grid}.workspace-copy span,.workspace-copy small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.workspace-copy span{color:var(--text-main);font-size:13px;font-weight:800}.workspace-copy small{color:var(--text-dim);font-size:11px}.sidebar-rule{background:var(--line-soft);height:1px;margin:8px 0}.sidebar-nav{flex-direction:column;gap:2px;display:flex}.nav-link svg{flex:none}.nav-badge{color:var(--text-dim);margin-left:auto;font-size:11px;font-weight:800}.nav-dot{background:var(--accent);border-radius:999px;width:6px;height:6px;margin-left:auto}.is-pulsing{animation:1.8s ease-in-out infinite rf-pulse}.nav-grouptitle{color:var(--text-dim);text-transform:uppercase;margin:10px 12px 4px;font-size:10px;font-weight:800}.current-project-card{border:1px solid var(--line-soft);background:var(--panel);border-radius:10px;align-items:center;gap:10px;padding:8px;display:flex}.current-project-thumb{border:1px solid var(--line-soft);background:var(--surface);width:34px;height:34px;color:var(--accent);border-radius:8px;flex:none;place-items:center;display:grid}.mobile-handoff{border:1px solid var(--line-soft);background:var(--panel);border-radius:12px;margin-top:auto;padding:12px}.mobile-handoff-title{color:var(--text-main);align-items:center;gap:8px;font-size:12px;font-weight:800;display:flex}.mobile-handoff-title svg{color:var(--accent)}.mobile-handoff p{color:var(--text-muted);margin:6px 0 0;font-size:11.5px;line-height:1.45}.product-content{width:min(100%,1280px);margin:0 auto}.workspace-head,.project-head{align-items:flex-start}.workspace-toolbar,.view-toggle,.filter-row,.section-title-row{align-items:center;display:flex}.workspace-toolbar{gap:8px;margin-left:auto}.view-toggle{border:1px solid var(--line-soft);background:var(--surface);border-radius:9px;gap:2px;padding:2px}.view-toggle button{width:32px;height:32px;color:var(--text-dim);background:0 0;border:0;border-radius:7px;place-items:center;display:grid}.view-toggle button:hover,.view-toggle button.is-active{background:var(--surface-hover);color:var(--text-main)}.filter-row{flex-wrap:wrap;gap:8px;margin:22px 0 20px}.data-notice{color:var(--text-muted);background:#8fb4ff14;border:1px solid #8fb4ff40;border-radius:10px;align-items:center;gap:10px;margin:-4px 0 16px;padding:10px 12px;font-size:12px;display:flex}.data-notice strong{color:var(--accent);text-transform:uppercase;font-size:11px}.data-notice .rf-inline-link{color:var(--accent);margin-left:auto;font-size:12px;font-weight:800}.data-notice--danger{background:#f0726a14;border-color:#f0726a47}.data-notice--danger strong{color:var(--danger)}.filter-chip{border:1px solid var(--line-soft);height:32px;color:var(--text-muted);transition:border-color var(--rf-dur-2), background var(--rf-dur-2), color var(--rf-dur-2), transform var(--rf-dur-2) var(--rf-ease-out);background:0 0;border-radius:999px;align-items:center;gap:6px;padding:0 14px;font-size:12.5px;font-weight:800;display:inline-flex}.filter-chip:hover,.filter-chip.is-active{border-color:var(--line-strong);background:var(--surface-hover);color:var(--text-main)}.filter-chip:hover{transform:translateY(-1px)}.filter-chip span{color:var(--text-dim)}.project-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.create-project-card,.project-card,.summary-card,.pipeline-card,.next-step-card,.coverage-banner,.status-hero,.empty-project-panel{border:1px solid var(--line-soft);background:var(--panel);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border-radius:14px}.create-project-card,.project-card{min-height:248px;transition:transform var(--rf-dur-2) var(--rf-ease-out), border-color var(--rf-dur-2), background var(--rf-dur-2)}.create-project-card{overflow:hidden}.project-card{position:relative;overflow:visible}.create-project-card:hover,.project-card:hover{border-color:var(--line-strong);background:var(--surface);transform:translateY(-2px)}.create-project-card{text-align:center;color:inherit;cursor:pointer;border-style:dashed;align-content:center;place-items:center;gap:10px;padding:28px;display:grid}.create-project-card:disabled{cursor:wait;opacity:.72}.create-copy{justify-items:center;gap:5px;display:grid}.create-icon{border:1px solid var(--line-soft);background:var(--surface);width:48px;height:48px;color:var(--text-main);transition:transform var(--rf-dur-2) var(--rf-ease-out);border-radius:14px;place-items:center;display:grid}.create-project-card:hover .create-icon{transform:scale(1.05)}.create-project-card strong{color:var(--text-main);font-size:15px}.create-copy span{max-width:25ch;color:var(--text-dim);font-size:12px}.project-card-media-link,.project-title-link,.project-card-summary{color:inherit;display:block}.project-card-media-link{border-radius:13px 13px 0 0;overflow:hidden}.project-card-media{aspect-ratio:16/10;background:#0a0a0a;align-content:center;gap:10px;padding:22px;display:grid;position:relative;overflow:hidden}.project-card-media img{object-fit:cover;filter:saturate(.88)contrast(1.05)brightness(.78);width:100%;height:100%;transition:transform .5s var(--rf-ease-out)}.project-card:hover .project-card-media img{transform:scale(1.045)}.project-card-media .status-pill{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#05070c99;position:absolute;top:12px;right:12px}.project-card-media--placeholder{background:radial-gradient(120% 120% at 30% 20%,#8fb4ff1f,#0000 60%),#0c0d10}.project-card-media--image{background:linear-gradient(135deg,#80c7c221,#0000 52%),radial-gradient(100% 100% at 28% 12%,#8fb4ff29,#0000 62%),#0c0d10}.project-card-stage-kicker{color:var(--accent);letter-spacing:0;text-transform:uppercase;font-size:11px;font-weight:900}.project-card-stage-copy{gap:6px;max-width:18ch;display:grid}.project-card-stage-copy strong{color:var(--text-main);font-size:18px;font-weight:900}.project-card-stage-copy span{color:var(--text-dim);font-size:12px;font-weight:800}.progress-rail{background:#0000006b;height:4px;position:absolute;bottom:0;left:0;right:0}.progress-rail span,.hero-progress span{background:linear-gradient(90deg,#8fb4ff,#80c7c2);height:100%;display:block}.project-card-body{padding:16px}.project-card-title{align-items:flex-start;gap:10px;display:flex}.project-title-link{flex:1;min-width:0}.project-card-title h2{color:var(--text-main);text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:15px;font-weight:800;overflow:hidden}.project-card-menu-wrap{flex:none;position:relative}.project-card-menu-button{width:30px;height:30px;color:var(--text-dim);transition:border-color var(--rf-dur-2), background var(--rf-dur-2), color var(--rf-dur-2);background:0 0;border:1px solid #0000;border-radius:8px;place-items:center;display:grid}.project-card-menu-button:hover,.project-card-menu-button[aria-expanded=true]{border-color:var(--line-soft);background:var(--surface-hover);color:var(--text-main)}.project-card-menu{z-index:25;border:1px solid var(--line-strong);background:var(--popover-bg);border-radius:10px;width:178px;padding:6px;display:grid;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 22px 54px #00000057}.project-card-menu a,.project-card-menu button{width:100%;color:var(--text-muted);font:inherit;text-align:left;background:0 0;border:0;border-radius:7px;align-items:center;gap:8px;padding:9px 10px;font-size:12px;font-weight:800;display:flex}.project-card-menu a:hover,.project-card-menu button:hover{background:var(--surface-hover);color:var(--text-main)}.project-card-menu button.is-danger{color:var(--danger)}.project-card-menu button.is-danger:hover{color:var(--danger);background:#f0726a1f}.project-card-menu-separator{background:var(--line-soft);height:1px;margin:4px;display:block}.project-card-body p,.project-card-body small{color:var(--text-dim);display:block}.project-card-body p{margin:7px 0 0;font-size:12.5px}.project-card-body small{margin-top:10px;line-height:1.45}.project-action-backdrop{z-index:120;background:#00000094;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.project-action-dialog{border:1px solid var(--line-strong);background:var(--modal-bg);border-radius:14px;gap:18px;width:min(100%,440px);padding:18px;display:grid;box-shadow:0 32px 92px #0000007a}.project-action-dialog header,.project-action-dialog footer{align-items:center;gap:12px;display:flex}.project-action-dialog footer{justify-content:flex-end}.project-action-dialog footer .rf-btn,.project-action-dialog footer .danger-button{white-space:nowrap;min-width:88px;padding-inline:18px}.project-action-dialog h2{color:var(--text-main);margin:2px 0 0;font-size:1.05rem}.project-action-dialog--create .rf-eyebrow{margin-bottom:1px}.project-action-dialog--create h2{margin-top:-2px}.project-action-dialog--danger header{align-items:flex-start}.project-action-dialog--danger header>div{padding-top:0;transform:translateY(-2px)}.project-action-dialog--danger h2{margin-top:-14px}.project-action-icon{border:1px solid var(--line-soft);background:var(--surface);width:38px;height:38px;color:var(--accent);border-radius:10px;flex:none;place-items:center;display:grid}.project-action-icon--danger{color:var(--danger)}.project-action-field{gap:8px;display:grid}.project-action-field span{color:var(--text-muted);font-size:.78rem;font-weight:800}.project-action-field input{border:1px solid var(--line-soft);background:var(--surface);width:100%;height:42px;color:var(--text-main);font:inherit;border-radius:10px;padding:0 12px;font-weight:700}.project-action-copy{color:var(--text-muted);margin:0;font-size:.9rem;line-height:1.55}.project-action-dialog--danger .project-action-copy{margin-top:-10px;padding-left:50px;font-size:.94rem;line-height:1.7}.project-action-copy strong{color:var(--text-main)}.project-grid--list{grid-template-columns:1fr}.project-grid--list .create-project-card{text-align:left;grid-template-columns:auto minmax(0,1fr);place-items:center start;min-height:108px}.project-grid--list .create-copy{justify-items:start}.project-grid--list .project-card{grid-template-columns:minmax(220px,320px) minmax(0,1fr);min-height:148px;display:grid}.project-grid--list .project-card-media-link{border-radius:13px 0 0 13px;min-height:148px}.project-grid--list .project-card-media{aspect-ratio:auto;height:100%;min-height:148px}.project-grid--list .project-card-body{align-content:center;display:grid}.project-title-row,.project-meta{align-items:center;display:flex}.project-title-row{gap:10px}.project-title-row h1{overflow-wrap:anywhere}.project-title-edit{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.project-title-edit input{border:1px solid var(--line-soft);background:var(--surface);min-width:min(460px,60vw);height:42px;color:var(--text-main);border-radius:10px;outline:0;padding:0 12px;font-size:24px;font-weight:800}.icon-button{width:34px;height:34px;color:var(--text-dim);transition:background var(--rf-dur-2), color var(--rf-dur-2), border-color var(--rf-dur-2);background:0 0;border:1px solid #0000;border-radius:9px;place-items:center;display:grid}.icon-button:hover{border-color:var(--line-soft);background:var(--surface);color:var(--text-main)}.project-meta{color:var(--text-dim);flex-wrap:wrap;gap:10px;margin-top:10px;font-size:12.5px}.project-meta>span:not(.status-pill):before{content:"";background:var(--text-dim);opacity:.45;border-radius:999px;width:3px;height:3px;margin:0 9px 3px 0;display:inline-block}.pipeline-card{padding:18px 20px}.pipeline-stepper{align-items:center;gap:8px;display:flex;overflow-x:auto}.pipeline-item{color:var(--text-muted);white-space:nowrap;align-items:center;gap:7px;font-size:13px;font-weight:800;display:flex}.pipeline-item i{background:var(--line-soft);width:32px;height:1px}.pipeline-node{border:1px solid var(--line-soft);background:var(--surface);width:32px;height:32px;color:var(--text-dim);border-radius:10px;place-items:center;display:grid}.pipeline-node--done{color:var(--success);background:#48d39a24;border-color:#48d39a66}.pipeline-node--active{color:var(--accent);background:#8fb4ff24;border-color:#8fb4ff80;box-shadow:0 0 0 3px #8fb4ff2e}.pipeline-node--pending span{background:currentColor;border-radius:999px;width:6px;height:6px}.project-overview-grid,.source-layout,.status-grid{gap:20px;margin-top:20px;display:grid}.project-overview-grid{grid-template-columns:minmax(0,1.7fr) minmax(320px,1fr)}.source-layout{grid-template-columns:minmax(0,600px) minmax(320px,1fr);gap:28px}.status-grid{grid-template-columns:minmax(0,1.4fr) minmax(320px,1fr)}.project-main-column,.project-side-column,.source-guide,.status-side-column{flex-direction:column;gap:20px;display:flex}.preview-card,.workflow-card{border:1px solid var(--line-soft);background:#080808;border-radius:14px;overflow:hidden}.workflow-card{gap:22px;padding:22px;display:grid}.workflow-card header,.workflow-actions{justify-content:space-between;align-items:center;gap:12px;display:flex}.workflow-card h2{color:var(--text-main);margin:0;font-size:22px;font-weight:900}.workflow-card p:not(.rf-eyebrow){max-width:68ch;color:var(--text-muted);margin:8px 0 0}.workflow-flow{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.workflow-flow span{border:1px solid var(--line-soft);background:var(--surface-soft);min-height:44px;color:var(--text-dim);border-radius:10px;justify-content:center;align-items:center;gap:8px;font-size:12px;font-weight:900;display:flex}.workflow-flow span i{background:var(--text-muted);border-radius:999px;width:8px;height:8px}.workflow-flow span.is-active{color:var(--text-main);background:#8fb4ff1a;border-color:#8fb4ff6b}.workflow-flow span.is-active i{background:var(--accent)}.workflow-flow span.is-done{color:var(--text-main);border-color:#48d39a47}.workflow-flow span.is-done svg{color:#48d39a}.preview-media{aspect-ratio:16/9;position:relative}.preview-media img{object-fit:cover;filter:saturate(.92)contrast(1.05)brightness(.84);width:100%;height:100%;position:absolute;inset:0}.preview-media>.status-pill{z-index:2;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#05070c99;position:absolute;top:12px;left:12px}.preview-placeholder{color:var(--text-dim);background:radial-gradient(90% 90% at 50% 35%,#8fb4ff29,#0000 62%),#0c0d10;place-items:center;font-weight:800;display:grid;position:absolute;inset:0}.preview-actions{z-index:2;background:linear-gradient(#0000,#030406c7);gap:8px;padding:16px;display:flex;position:absolute;bottom:0;left:0;right:0}.next-step-card,.coverage-banner,.status-hero,.empty-project-panel{align-items:center;gap:16px;padding:20px;display:flex}.next-step-card{border-color:var(--line-strong)}.next-step-card .rf-eyebrow{color:var(--accent)}.next-step-card div{flex:1;min-width:0}.next-step-card h2,.summary-card h2,.status-hero h2,.empty-project-panel h2{color:var(--text-main);margin:0;font-size:16px;font-weight:800}.next-step-card p:not(.rf-eyebrow),.summary-card p,.status-hero p,.empty-project-panel p{color:var(--text-muted);margin:6px 0 0}.summary-card{padding:16px}.summary-card header{align-items:center;gap:8px;display:flex}.summary-card header span,.section-title-row>span{color:var(--text-dim);font-size:12px}.summary-card header a,.history-list a,.app-guide-card button,.app-guide-card a,.inline-action{color:var(--accent);background:0 0;border:0;margin-left:auto;font-size:12px;font-weight:800}.source-count-card{border:1px solid var(--line-soft);background:var(--surface);border-radius:12px;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;margin-top:12px;padding:14px;display:grid}.source-count-card strong{color:var(--text-main);font-size:2rem;line-height:1}.source-count-card span{color:var(--text-muted);font-size:.86rem;font-weight:800}.status-summary-row{align-items:center;gap:10px;margin-top:14px;display:flex}.status-summary-row strong,.status-summary-row small{display:block}.status-summary-row strong{color:var(--text-main);font-size:13px}.status-summary-row small{color:var(--text-dim);font-size:11.5px}.status-icon,.status-hero-icon,.coverage-icon{border-radius:12px;flex:none;place-items:center;display:grid}.status-icon{width:34px;height:34px}.status-icon--success,.status-hero--success .status-hero-icon{color:var(--success);background:#48d39a29}.status-icon--accent,.status-hero--accent .status-hero-icon{color:var(--accent);background:#8fb4ff29}.status-icon--warning,.coverage-icon{color:var(--warning);background:#d49a5c29}.status-icon--danger,.status-hero--danger .status-hero-icon{color:var(--danger);background:#f0726a29}.status-icon--muted{background:var(--surface);color:var(--text-muted)}.metric-dl{grid-template-columns:minmax(0,1fr) auto;gap:10px 14px;margin:14px 0 0;font-size:12.5px;display:grid}.metric-dl dt{color:var(--text-dim)}.metric-dl dd{color:var(--text-main);text-align:right;margin:0;font-weight:800}.empty-project-panel{text-align:center;border-style:dashed;justify-content:center;margin-top:20px;padding:36px}.empty-project-panel>div{max-width:460px}.empty-actions{justify-content:center;gap:8px;margin-top:14px;display:flex}.coverage-banner{margin-top:20px}.coverage-banner>div{flex:1;min-width:0}.coverage-banner strong{color:var(--text-main);font-size:13.5px}.coverage-banner strong span{color:var(--warning)}.coverage-banner p{color:var(--text-muted);margin:2px 0 0;font-size:12.5px}.coverage-icon{width:42px;height:42px}.section-title-row{gap:8px;margin-bottom:12px}.section-title-row h2{color:var(--text-main);margin:0;font-size:15px;font-weight:800}.capture-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.capture-cell{aspect-ratio:1;border:1px solid var(--line-soft);background:var(--surface);border-radius:14px;position:relative;overflow:hidden}.capture-cell--empty{color:var(--text-dim);transition:border-color var(--rf-dur-2), background var(--rf-dur-2), color var(--rf-dur-2);border-style:dashed;align-content:center;place-items:center;gap:6px;font-size:11px;font-weight:800;display:grid}.capture-cell--empty:hover{border-color:var(--line-strong);background:var(--surface-hover);color:var(--text-main)}.capture-cell--filled img,.extra-cell img{object-fit:cover;width:100%;height:100%}.capture-cell-placeholder{width:100%;height:100%;color:var(--text-dim);place-items:center;font-size:11px;font-weight:800;display:grid}.capture-cell--filled .status-pill{background:#05070c9e;position:absolute;top:8px;right:8px}.capture-actions{color:#ffffffe6;opacity:0;transition:opacity var(--rf-dur-2);background:linear-gradient(#0000,#030406d1);align-items:center;gap:8px;padding:8px;font-size:11px;font-weight:800;display:flex;position:absolute;bottom:0;left:0;right:0}.capture-cell--filled:hover .capture-actions{opacity:1}.capture-actions button{min-width:24px;height:24px;color:inherit;background:#ffffff14;border:0;border-radius:6px;place-items:center;padding:0 7px;font-size:11px;font-weight:800;display:inline-grid}.capture-actions button:first-child{margin-left:auto}.capture-cell--room{align-content:center;place-items:center;gap:8px;display:grid}.capture-cell--room span{color:var(--text-dim);font-size:10px;font-weight:800;position:absolute;top:8px}.capture-cell--room svg{fill:none;width:62%;height:62%;stroke:var(--text-muted);stroke-linecap:round;stroke-linejoin:round;stroke-width:3px}.capture-cell--room line{stroke:var(--accent);stroke-width:4.5px}.capture-cell--room strong{color:var(--text-main);font-size:11px;position:absolute;bottom:8px}.source-guide .summary-card ul{color:var(--text-muted);gap:8px;margin:12px 0 0;padding:0;font-size:12.5px;list-style:none;display:grid}.source-guide .summary-card li:before{content:"·";color:var(--accent);margin-right:8px}.source-room-dimensions-card header{align-items:flex-start;gap:12px;display:flex}.source-room-dimensions-card header>span{width:38px;height:38px;color:var(--accent);background:#8fb4ff1f;border:1px solid #8fb4ff47;border-radius:12px;flex:none;place-items:center;display:grid}.source-room-dimensions-card .dimension-field-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.source-room-dimensions-actions{justify-content:space-between;align-items:center;gap:10px;margin-top:12px;display:flex}.source-room-dimensions-actions>span{color:var(--text-muted);font-size:12px;font-weight:800}.source-room-dimensions-error{color:var(--danger);margin:10px 0 0;font-size:12px;line-height:1.45}.app-guide-card{border:1px solid var(--line-soft);background:var(--panel);border-radius:14px;align-items:center;gap:12px;padding:16px;display:flex}.app-guide-card>span{width:42px;height:42px;color:var(--accent);background:#8fb4ff24;border-radius:14px;flex:none;place-items:center;display:grid}.app-guide-card strong{color:var(--text-main);font-size:13px}.app-guide-card p{color:var(--text-muted);margin:2px 0 0;font-size:12px}.extra-source-section{margin-top:36px}.extra-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;display:grid}.extra-cell{aspect-ratio:1;border:1px solid var(--line-soft);background:#0a0a0a;border-radius:14px;position:relative;overflow:hidden}.extra-cell button{color:#ffffffd1;opacity:0;width:24px;height:24px;transition:opacity var(--rf-dur-2);background:#05070ca8;border:0;border-radius:6px;place-items:center;display:grid;position:absolute;bottom:8px;right:8px}.extra-cell:hover button{opacity:1}.extra-cell--add{color:var(--text-dim);background:0 0;border-style:dashed;align-content:center;place-items:center;gap:6px;font-size:10px;font-weight:800;display:grid}.status-hero{margin-top:20px;position:relative;overflow:hidden}.status-hero>div{flex:1;min-width:0}.status-hero>.status-hero-actions{flex-wrap:wrap;flex:none;justify-content:flex-end;gap:10px;display:flex}.status-hero-icon{width:50px;height:50px}.status-hero--success{background:#48d39a0f;border-color:#48d39a57}.status-hero--accent{background:#8fb4ff0f;border-color:#8fb4ff57}.status-hero--danger{background:#f0726a0f;border-color:#f0726a57}.is-spinning{animation:1.2s linear infinite rf-spin}.status-hero-icon.is-spinning{animation:none}.status-hero-icon.is-spinning svg{animation:1.2s linear infinite rf-spin}.hero-progress{background:var(--surface);border-radius:999px;height:6px;position:absolute;bottom:16px;left:20px;right:20px;overflow:hidden}.status-steps-card{padding:20px}.status-steps,.history-list{flex-direction:column;gap:12px;margin:16px 0 0;padding:0;list-style:none;display:flex}.status-step,.history-list li{align-items:center;gap:12px;display:flex}.status-step>span{border:1px solid var(--line-soft);background:var(--surface);width:26px;height:26px;color:var(--text-dim);border-radius:999px;flex:none;place-items:center;display:grid}.status-step--done>span{color:var(--success);background:#48d39a24;border-color:#48d39a57}.status-step--active>span{color:var(--accent);background:#8fb4ff24;border-color:#8fb4ff57}.status-step--failed>span{color:var(--danger);background:#f0726a24;border-color:#f0726a57}.status-step strong{color:var(--text-main);font-size:13.5px}.status-step--pending strong{color:var(--text-dim)}.status-step small{color:var(--text-dim);margin-left:auto}.history-dot{border-radius:999px;width:8px;height:8px}.history-dot--success{background:var(--success)}.history-dot--danger{background:var(--danger)}.room-dimension-grid,.recovery-grid{gap:20px;display:grid}.room-dimension-grid{grid-template-columns:minmax(0,1.2fr) minmax(340px,.8fr)}.room-side-stack{flex-direction:column;gap:20px;display:flex}.room-canvas-card{min-height:520px}.room-plan-preview{border:1px solid var(--line-soft);background:repeating-linear-gradient(90deg, var(--grid-tint) 0 1px, transparent 1px 38px), repeating-linear-gradient(180deg, var(--grid-tint-soft) 0 1px, transparent 1px 38px), var(--surface);border-radius:14px;place-items:center;min-height:440px;margin-top:18px;display:grid}.room-plan-preview svg{fill:none;width:min(82%,520px);max-height:380px;stroke:var(--text-muted);stroke-linecap:round;stroke-linejoin:round;stroke-width:8px}.room-plan-preview line{stroke:var(--accent);stroke-width:10px}.room-plan-preview path{stroke:var(--warning);stroke-width:6px}.room-plan-preview text{fill:var(--text-main);stroke:none;text-anchor:middle;font-size:22px;font-weight:800}.dimension-field-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:14px;display:grid}.dimension-field-grid label{border:1px solid var(--line-soft);background:var(--surface);border-radius:10px;grid-template-columns:1fr auto;gap:5px 8px;padding:10px;display:grid}.dimension-field-grid label span{color:var(--text-dim);grid-column:1/-1;font-size:11px;font-weight:800}.dimension-field-grid input{min-width:0;color:var(--text-main);background:0 0;border:0;outline:0;font-weight:800}.dimension-field-grid small{color:var(--text-dim);align-self:center;font-weight:800}.wall-list,.recovery-list{flex-direction:column;gap:10px;margin:14px 0 0;padding:0;list-style:none;display:flex}.wall-list li,.recovery-list li{border:1px solid var(--line-soft);background:var(--surface);border-radius:10px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px 10px;padding:10px;display:grid}.wall-list li>span{width:24px;height:24px;color:var(--success);background:#48d39a24;border-radius:999px;place-items:center;display:grid}.wall-list strong,.recovery-list strong{color:var(--text-main);font-size:13px}.wall-list em,.recovery-list em{color:var(--text-main);font-size:12px;font-style:normal;font-weight:800}.wall-list small,.recovery-list small{color:var(--text-dim);grid-column:2/-1;font-size:11.5px}.recovery-grid{grid-template-columns:minmax(0,1.3fr) minmax(300px,.7fr)}.recovery-primary-card{flex-direction:column;grid-row:span 2;justify-content:center;min-height:390px;padding:28px;display:flex}.recovery-primary-card>span{width:54px;height:54px;color:var(--warning);background:#d49a5c29;border-radius:16px;place-items:center;margin-bottom:18px;display:grid}.recovery-primary-card h2{margin-top:14px;font-size:24px;line-height:1.12}.recovery-actions{flex-wrap:wrap;gap:8px;margin-top:22px;display:flex}.history-list strong{color:var(--text-main);font-size:12.5px}.history-list span:not(.history-dot){color:var(--text-dim);font-size:12.5px}.history-list small{color:var(--text-muted);margin-left:auto;font-size:11px;font-weight:800}.reconstruction-log{gap:8px;margin:14px 0 0;padding:0;list-style:none;display:grid}.reconstruction-log li{border:1px solid var(--line-soft);background:var(--surface);border-radius:10px;gap:3px;padding:10px;display:grid}.reconstruction-log strong{color:var(--accent);font-size:11px}.reconstruction-log span{color:var(--text-muted);font-size:12px}.recovery-result{color:var(--accent);background:#8fb4ff1a;border:1px solid #8fb4ff47;border-radius:10px;padding:10px 12px;font-weight:800}@keyframes rf-pulse{0%,to{opacity:.55;transform:scale(.95)}50%{opacity:1;transform:scale(1.12)}}@keyframes rf-spin{to{transform:rotate(360deg)}}@media (width<=1180px){.project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.project-overview-grid,.source-layout,.status-grid,.room-dimension-grid,.recovery-grid{grid-template-columns:1fr}.extra-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (width<=920px){.top-crumb,.top-search,.product-sidebar,.admin-sidebar{display:none}.product-main,.admin-main{padding:84px 20px 24px}.page-head,.next-step-card,.coverage-banner,.status-hero,.empty-project-panel{flex-direction:column;align-items:flex-start}.workspace-toolbar{margin-left:0}}@media (width<=680px){.project-grid,.capture-grid,.source-room-dimensions-card .dimension-field-grid,.project-grid--list .project-card{grid-template-columns:1fr}.project-grid--list .project-card-media-link{border-radius:13px 13px 0 0;min-height:0}.project-grid--list .project-card-media{aspect-ratio:16/10;min-height:0}.extra-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.hero-grid{grid-template-columns:minmax(420px,.86fr) minmax(0,1.14fr);min-height:100vh;display:grid}.hero-copy{align-content:center;padding:88px 32px;display:grid}.hero-copy h1{max-width:10ch;color:var(--brand-ink);margin:0;font-size:clamp(46px,7vw,92px);line-height:.94}.hero-copy p{max-width:42ch;color:var(--text-muted);margin:22px 0 0;font-size:16px}.hero-actions{gap:10px;margin-top:30px;display:flex}.hero-visual{border:1px solid var(--line-soft);background:#080808;border-radius:14px;margin:14px 14px 14px 0;position:relative;overflow:hidden}.hero-visual img{object-fit:cover;filter:saturate(.82)contrast(1.06)brightness(.72);width:100%;height:100%;position:absolute;inset:0}.hero-visual:after{content:"";background:linear-gradient(#05070c47,#0000 32%,#05070cd6),linear-gradient(90deg,#05070c6b,#0000 36%);position:absolute;inset:0}.hero-badge{z-index:2;color:#fff;gap:8px;display:grid;position:absolute;bottom:22px;left:22px}.hero-badge strong{font-size:clamp(24px,3vw,38px);line-height:1}.landing-page{overflow-x:clip}.landing-nav{z-index:40;background:var(--page-bg);border-bottom:1px solid #0000;align-items:center;gap:18px;padding:14px 28px;display:flex;position:fixed;top:0;left:0;right:0}@supports (color:color-mix(in lab, red, red)){.landing-nav{background:color-mix(in srgb, var(--page-bg) 58%, transparent)}}.landing-nav{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);transition:background .6s ease, border-color var(--rf-dur-3), padding var(--rf-dur-3)}.landing-nav.is-scrolled{border-color:var(--line-soft);background:var(--page-bg);padding-block:10px}@supports (color:color-mix(in lab, red, red)){.landing-nav.is-scrolled{background:color-mix(in srgb, var(--page-bg) 90%, transparent)}}.landing-links{gap:2px;margin-left:10px;display:flex}.landing-links a{color:var(--text-dim);transition:color var(--rf-dur-2), background var(--rf-dur-2), transform var(--rf-dur-2);border-radius:8px;padding:8px 11px;font-size:12px;font-weight:800;position:relative}.landing-links a:after{content:"";transform-origin:0;height:1px;transition:transform var(--rf-dur-2) var(--rf-ease-out);background:currentColor;position:absolute;bottom:6px;left:11px;right:11px;transform:scaleX(0)}.landing-links a:hover{background:var(--surface);color:var(--text-main)}.landing-links a:hover:after{transform:scaleX(1)}.landing-cta{align-items:center;gap:10px;margin-left:auto;display:flex}.landing-account-chip,.landing-auth-status{border:1px solid var(--line-soft);background:var(--surface);border-radius:999px;align-items:center;min-height:40px;display:inline-flex}@supports (color:color-mix(in lab, red, red)){.landing-account-chip,.landing-auth-status{background:color-mix(in srgb, var(--surface) 82%, transparent)}}.landing-account-chip,.landing-auth-status{color:var(--text-main);transition:transform var(--rf-dur-2) var(--rf-ease-out), background var(--rf-dur-2), border-color var(--rf-dur-2), box-shadow var(--rf-dur-2);font-size:12px;font-weight:800}.landing-account-chip{gap:8px;max-width:220px;padding:3px 12px 3px 5px}.landing-account-chip:hover{border-color:var(--line-strong);background:var(--surface-hover);box-shadow:0 18px 45px #0000003d}.landing-account-avatar{color:#fff;background:radial-gradient(circle at 30% 22%,#ffffffdb,#0000 24%),linear-gradient(135deg,#111,#8fb4ff);border:1px solid #dce8ffb8;border-radius:999px;flex:none;place-items:center;width:30px;height:30px;font-size:11px;line-height:1;display:grid}.landing-account-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.landing-auth-status{color:var(--text-dim);padding:0 14px}.landing-intro{height:440vh;position:relative}.landing-pin{height:100svh;position:sticky;top:0;overflow:hidden}.landing-viewer{isolation:isolate;border:1px solid rgba(214, 226, 236, calc(.16 * var(--dock,0)));box-shadow:0 48px 100px rgba(0, 0, 0, calc(.55 * var(--dock,0))), inset 0 1px 0 rgba(255, 255, 255, calc(.16 * var(--dock,0)));cursor:default;-webkit-user-select:none;user-select:none;will-change:left, top, width, height;background:#080808;position:absolute;overflow:hidden}.landing-viewer.is-orbit-ready{cursor:grab}.landing-viewer.is-grabbing{cursor:grabbing}.landing-viewer.is-login-transitioning{cursor:default}.landing-viewer:before{content:"";z-index:4;pointer-events:none;mix-blend-mode:screen;opacity:calc(.5 * var(--dock,0));background:linear-gradient(90deg,#ffffff14,#0000 18% 82%,#ffffff0f),linear-gradient(#ffffff1f,#0000 15% 86%,#0000007a);position:absolute;inset:0}.landing-viewer:after{content:"";z-index:4;pointer-events:none;opacity:var(--grid,0);background-image:linear-gradient(#8fb4ff1a 1px,#0000 1px),linear-gradient(90deg,#8fb4ff17 1px,#0000 1px);background-size:44px 44px;position:absolute;inset:0}.landing-layer{left:var(--media-left,0);top:var(--media-top,0);width:var(--media-width,100%);height:var(--media-height,100%);position:absolute}.landing-layer img,.landing-layer canvas{object-fit:cover;width:100%;height:100%;display:block;position:absolute;inset:0}.landing-layer img,.auth-visual .shot{-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.landing-viewer.is-login-transitioning{view-transition-name:roomforge-auth-photo;contain:layout paint}.auth-page--photo-entry .auth-visual{view-transition-name:roomforge-auth-photo}.landing-photo-layer{z-index:1}.landing-viewer.is-return-transitioning{background:var(--auth-photo-frame-bg)}.landing-viewer.is-return-transitioning .landing-photo-layer{opacity:0}.landing-proc-layer{z-index:2;filter:saturate(.9)contrast(1.06)brightness(.96);will-change:clip-path}.landing-three-canvas{background:radial-gradient(85% 100% at 50% 40%,#8fb4ff21,#0000 58%),#050506}.landing-three-fallback{perspective:900px;background:radial-gradient(80% 94% at 50% 28%,#8fb4ff24,#0000 58%),linear-gradient(#111217 0%,#050506 100%);position:absolute;inset:0;overflow:hidden}.fallback-room{aspect-ratio:1.08;width:min(78%,560px);transform-style:preserve-3d;position:absolute;top:50%;left:50%;transform:translate(-50%,-38%)rotateX(62deg)rotate(-2deg)}.fallback-room span{border:1px solid #ffffff1f;display:block;position:absolute;box-shadow:0 24px 80px #00000057}.fallback-floor{background-color:#ffffff09;background-image:linear-gradient(90deg,#ffffff0d 1px,#0000 1px),linear-gradient(0deg,#ffffff0a 1px,#0000 1px),none;background-position:0 0,0 0,0 0;background-repeat:repeat,repeat,repeat;background-size:36px 36px;background-attachment:scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box;inset:18% 12% 8%}.fallback-wall{background:linear-gradient(135deg,#ffffff14,#ffffff05)}.fallback-wall-back{transform-origin:bottom;height:18%;top:2%;left:12%;right:12%;transform:rotateX(-86deg)}.fallback-wall-left,.fallback-wall-right{width:12%;top:18%;bottom:8%}.fallback-wall-left{transform-origin:100%;left:0;transform:rotateY(72deg)}.fallback-wall-right{transform-origin:0;right:0;transform:rotateY(-72deg)}.fallback-bed{background:linear-gradient(145deg,#fff3,#ffffff0d);width:28%;height:30%;top:42%;left:35%}.fallback-desk{background:#80c7c229;width:18%;height:14%;bottom:20%;right:16%}.fallback-window{background:#8fb4ff3d;width:14%;height:26%;top:19%;right:7%;box-shadow:0 0 42px #8fb4ff38}.landing-sky{z-index:3;aspect-ratio:1;pointer-events:none;--rot:180deg;width:130%;transform:translateX(-50%) rotate(var(--rot,0deg));transform-origin:50%;opacity:var(--dock,0);transition:transform .8s var(--rf-ease-out);will-change:transform;position:absolute;bottom:-58%;left:50%}:root[data-theme=light] .landing-sky{--rot:0deg}.landing-sky .orb{aspect-ratio:1;filter:blur(7px);mix-blend-mode:screen;border-radius:50%;width:36%;position:absolute;left:50%;transform:translate(-50%)}.landing-sky .orb.sun{background:radial-gradient(circle,#ffe2a2eb,#ffb65c47 46%,#0000 66%);top:-3%}.landing-sky .orb.moon{background:radial-gradient(circle,#dce8ffcc,#96acd638 46%,#0000 66%);bottom:-3%}.landing-scan{z-index:7;width:1px;transition:opacity var(--rf-dur-3);will-change:left;background:linear-gradient(#0000,#dce8fff2 10%,#8fb4ff 50%,#80c7c2f2 90%,#0000);position:absolute;top:0;bottom:0;transform:translate(-1px);box-shadow:0 0 0 1px #8fb4ff42,0 0 34px #8fb4ff70}.landing-scan:before{content:"";background:linear-gradient(90deg,#0000,#8fb4ff29,#0000);width:108px;position:absolute;top:0;bottom:0;left:-54px}.landing-scan .handle{color:#fff;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#050505c7;border:1px solid #ffffffb8;border-radius:8px;place-items:center;width:42px;height:42px;font-weight:800;display:grid;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 18px 40px #0000007a}.landing-mode-badge,.landing-photo-badge,.landing-dimtag{z-index:8;color:#ffffffeb;text-transform:uppercase;white-space:nowrap;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#050505b8;border:1px solid #d6e2ec29;border-radius:8px;padding:8px 12px;font-size:11px;font-weight:800;position:absolute}.landing-mode-badge{top:16px;left:50%;transform:translate(-50%);box-shadow:0 14px 28px #00000061}.landing-photo-badge{top:16px;right:16px}.landing-dimtag{z-index:6;color:#eaf0fff0;text-transform:none;transition:opacity .25s var(--rf-ease-out);border-color:#8fb4ff57;font-weight:700;box-shadow:0 10px 26px #0006}.landing-dimtag:before{content:"";background:var(--accent);vertical-align:1px;border-radius:50%;width:7px;height:7px;margin-right:7px;display:inline-block}.landing-dimtag.d1{bottom:18%;left:50%;transform:translate(-50%)}.landing-dimtag.d2{top:48px;left:16px}.landing-glow{z-index:5;pointer-events:none;mix-blend-mode:screen;width:190px;transition:opacity var(--rf-dur-3);will-change:left;background:linear-gradient(90deg,#0000,#ffffff29,#0000);position:absolute;top:0;bottom:0;transform:translate(-50%)}.landing-hint{z-index:8;color:#ffffffdb;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);transition:opacity var(--rf-dur-4), transform var(--rf-dur-4);background:#050505ad;border:1px solid #d6e2ec29;border-radius:8px;align-items:center;gap:8px;padding:8px 12px;font-size:12px;font-weight:800;display:inline-flex;position:absolute;bottom:16px;left:50%;transform:translate(-50%)}.landing-hint.gone{opacity:0;pointer-events:none;transform:translate(-50%,8px)}.landing-scrim{z-index:8;pointer-events:none;background:linear-gradient(#05050580,#0000 36% 50%,#050505d1);position:absolute;inset:0}.landing-hero-text{z-index:9;color:#f8f8f5;pointer-events:none;will-change:opacity, transform;align-content:end;padding:0 28px 9vh;display:grid;position:absolute;inset:0}.landing-hero-text.faded,.landing-hero-text.faded .rf-btn{pointer-events:none}.landing-hero-inner{width:min(1220px,100%);margin:0 auto}.landing-hero-copy{grid-template-columns:minmax(0,1fr) minmax(280px,420px);align-items:end;gap:28px;display:grid}.landing-hero-copy .eyebrow{color:#f8f8f58c;margin:0 0 14px}.landing-hero-copy h1{color:#fff;text-shadow:0 8px 40px #00000080;max-width:9ch;margin:0;font-size:clamp(52px,9vw,132px);font-weight:800;line-height:.88}.landing-hero-copy .sub{color:#f8f8f5c2;max-width:39ch;margin:0;font-size:clamp(15px,1.5vw,18px)}.landing-hero-copy .hero-actions{pointer-events:auto}.landing-hero-copy .rf-btn:not(.rf-btn--primary){color:#fff;background:#ffffff1a;border-color:#fff3}.landing-hero-metrics{background:#ffffff24;border:1px solid #ffffff24;border-radius:8px;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;margin-top:20px;display:grid;overflow:hidden}.landing-hero-metrics div{background:#05050573;min-height:68px;padding:12px}.landing-hero-metrics strong{color:#fff;font-size:18px;line-height:1;display:block}.landing-hero-metrics span{color:#f8f8f580;margin-top:8px;font-size:11px;font-weight:700;display:block}.scrollcue{color:#f8f8f599;text-transform:uppercase;align-items:center;gap:8px;margin-top:26px;font-size:11px;font-weight:800;display:inline-flex}.scrollcue .dot{background:var(--accent);width:7px;height:7px;animation:cuePulse 1.8s var(--rf-ease-standard) infinite;border-radius:50%}@keyframes cuePulse{0%,to{opacity:.35;transform:translateY(0)}50%{opacity:1;transform:translateY(2px)}}.landing-dockbar{z-index:9;pointer-events:none;justify-items:center;gap:10px;padding:0 16px;display:grid;position:absolute;bottom:3vh;left:0;right:0}.landing-dockbar .stagebar{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#0505059e;border:1px solid #d6e2ec29;border-radius:8px;align-items:center;gap:8px;padding:8px;display:flex}.landing-dockbar .step{color:#f8f8f57a;border-radius:8px;align-items:center;gap:7px;min-height:30px;padding:0 11px;font-size:11px;font-weight:800;display:inline-flex}.landing-dockbar .step.on{color:#e8efff;background:#8fb4ff26}.landing-dockbar .led{background:currentColor;border-radius:50%;width:6px;height:6px}.landing-dockbar p{color:#f8f8f57a;text-align:center;max-width:720px;margin:0;font-size:11px}.landing-section{width:min(1160px,100% - 48px);margin:0 auto;padding:96px 0 40px}.landing-section h2,.landing-final h2{max-width:12ch;color:var(--brand-ink);margin:0;font-size:clamp(34px,6vw,70px);line-height:.95}.landing-section .lead{max-width:78ch;color:var(--text-muted);margin:22px 0 0;font-size:17px}.landing-features{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:34px;display:grid}.landing-feature-card{--tilt-x:0deg;--tilt-y:0deg;border:1px solid var(--line-soft);min-height:260px;transform:perspective(900px) rotateX(var(--tilt-y)) rotateY(var(--tilt-x));transition:transform var(--rf-dur-2) var(--rf-ease-out), border-color var(--rf-dur-2), background var(--rf-dur-2);background:linear-gradient(135deg,#ffffff14,#0000 42%),linear-gradient(#ffffff0e,#ffffff05);border-radius:8px;padding:22px;position:relative}.landing-feature-card:hover{border-color:var(--line-strong);background:linear-gradient(135deg,#8fb4ff24,#0000 44%),linear-gradient(#ffffff13,#ffffff07)}.landing-feature-card .num{color:var(--text-dim);font-size:11px;font-weight:800}.landing-feature-card .ic{border:1px solid var(--line-soft);background:linear-gradient(135deg, #8fb4ff4d, #80c7c229), var(--surface);border-radius:8px;width:42px;height:42px;margin-top:50px}.landing-feature-card h3{color:var(--text-main);margin:24px 0 0;font-size:20px}.landing-feature-card p{color:var(--text-muted);margin:12px 0 0}.landing-final{border-top:1px solid var(--line-soft);width:min(1160px,100% - 48px);margin:86px auto 0;padding:42px 0 76px}.landing-final .row{flex-wrap:wrap;gap:10px;margin-top:24px;display:flex}.landing-foot{border-top:1px solid var(--line-soft);color:var(--text-dim);text-align:center;padding:24px;font-size:12px}.btn-big{min-height:48px;padding-inline:18px}.auth-page{grid-template-columns:minmax(386px,440px) 1fr;height:100vh;display:grid;overflow:hidden}.auth-column{grid-template-rows:auto 1fr auto;min-width:0;padding:14px 28px 26px;display:grid}.auth-top{align-items:center;gap:12px;display:flex}.auth-body{align-content:center;justify-items:center;display:grid}.auth-card{text-align:left;width:min(344px,100%);animation:rise .6s var(--rf-ease-out) both}.auth-page--photo-entry .auth-card{animation:authCardPhotoEntry 1.75s var(--rf-ease-out) .14s both}.auth-page--photo-entry .btn-google{opacity:0;animation:authButtonFade 1.55s var(--rf-ease-out) .42s both}@keyframes authCardPhotoEntry{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translate(0)}}@keyframes authButtonFade{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translate(0)}}@keyframes rise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}.auth-card h1{color:var(--brand-ink);margin:0;font-size:clamp(30px,3.4vw,42px);font-weight:800;line-height:1.02}.auth-card .sub{max-width:34ch;color:var(--text-muted);margin:14px 0 0;font-size:15px}.btn-google{color:#131417;width:100%;min-height:52px;transition:transform var(--rf-dur-2) var(--rf-ease-out), box-shadow var(--rf-dur-2);background:#fff;border:1px solid #14181e1a;border-radius:9px;justify-content:center;align-items:center;gap:11px;margin-top:30px;font-weight:800;display:inline-flex;box-shadow:0 14px 34px #00000047}.btn-google:hover{transform:translateY(-1px);box-shadow:0 20px 48px #00000057}.btn-google svg{width:19px;height:19px}.auth-legal{max-width:36ch;color:var(--text-dim);margin:18px 0 0;font-size:12px}.auth-handoff,.auth-notice{border:1px solid var(--line-soft);background:var(--panel);color:var(--text-muted);text-align:left;border-radius:9px;align-items:flex-start;gap:11px;margin-top:26px;padding:13px 14px;font-size:12.5px;display:flex}.auth-notice{color:var(--warning);background:#d49a5c1f;border-color:#d49a5c57}.auth-foot{color:var(--text-dim);align-items:center;gap:16px;font-size:12px;display:flex}.auth-foot a:hover{color:var(--text-main)}.auth-foot .dot{background:var(--line-strong);border-radius:50%;width:3px;height:3px}.auth-visual-stage{border-radius:14px;min-width:0;margin:14px 14px 14px 0;position:relative}.auth-visual{isolation:auto;border:1px solid var(--auth-photo-frame-border);background:var(--auth-photo-frame-bg);border-radius:14px;width:100%;height:100%;position:relative;overflow:hidden}.auth-visual .shot{object-fit:cover;width:100%;height:100%;filter:var(--auth-photo-filter);position:absolute;inset:0}.auth-page--photo-flight-pending .auth-visual .shot,.auth-page--photo-exit .auth-visual .shot{opacity:0}.auth-page--photo-exit .auth-card,.auth-page--photo-exit .auth-visual-copy{opacity:0;transition:opacity .16s var(--rf-ease-standard), transform .16s var(--rf-ease-standard);transform:translateY(12px)}.auth-visual-stage:before{content:"";z-index:var(--auth-theme-overlay-z);pointer-events:none;border-radius:inherit;background:var(--auth-photo-vignette);position:absolute;inset:0}.auth-visual-stage:after{content:"";z-index:var(--auth-theme-overlay-z);pointer-events:none;border-radius:inherit;background:var(--auth-photo-wash);mix-blend-mode:soft-light;position:absolute;inset:0}.auth-visual-copy{z-index:var(--auth-info-overlay-z);color:#f4f6fb;pointer-events:none;will-change:opacity, transform;position:absolute;bottom:28px;left:30px;right:30px;transform:translate(0)}.auth-visual-copy .tag{color:#f4f6fb9e;text-transform:uppercase;font-size:11px;font-weight:800}.auth-visual-copy h2{text-shadow:0 8px 36px #00000080;margin:12px 0 0;font-size:clamp(24px,2.4vw,34px);font-weight:800;line-height:1.05}.auth-chips{flex-wrap:wrap;gap:8px;margin-top:18px;display:flex}.auth-chip{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#05070c80;border:1px solid #d6e2ec29;border-radius:8px;align-items:baseline;gap:7px;padding:8px 12px;display:inline-flex}.auth-chip b{color:#fff;font-size:14px}.auth-chip span{color:#f4f6fb99;font-size:11px;font-weight:700}.auth-page--photo-entry .auth-visual-copy{opacity:1;animation:authVisualSlideUp .72s var(--rf-ease-out) both;transform:translateY(22px)}.auth-photo-flight,.auth-photo-flight-portal{z-index:var(--auth-photo-flight-z);pointer-events:none;border:1px solid var(--auth-photo-frame-border);background:var(--auth-photo-frame-bg);box-shadow:var(--auth-photo-frame-shadow);will-change:left, top, width, height, border-radius;border-radius:8px;position:fixed;overflow:hidden}.auth-photo-flight-portal{left:var(--from-left);top:var(--from-top);width:var(--from-width);height:var(--from-height)}.auth-photo-flight,.auth-photo-flight-portal.is-flying{left:var(--from-left);top:var(--from-top);width:var(--from-width);height:var(--from-height);will-change:left, top, width, height, border-radius, opacity;animation:1.15s cubic-bezier(.16,1,.3,1) both authPhotoFlight}.auth-photo-flight img,.auth-photo-flight-portal.is-flying img{animation:1.15s cubic-bezier(.16,1,.3,1) both authPhotoFlightFilter}.auth-photo-flight img,.auth-photo-flight-portal img{z-index:0;width:100%;height:100%;filter:var(--flight-from-filter,none);-webkit-user-select:none;user-select:none;object-fit:cover;-webkit-user-drag:none;display:block;position:absolute;inset:0}@keyframes authPhotoFlight{0%{left:var(--from-left);top:var(--from-top);width:var(--from-width);height:var(--from-height);border-radius:8px}to{left:var(--to-left);top:var(--to-top);width:var(--to-width);height:var(--to-height);border-radius:14px}}@keyframes authPhotoFlightFilter{0%{filter:var(--flight-from-filter,none)}to{filter:var(--flight-to-filter,var(--flight-from-filter,none))}}@keyframes authVisualSlideUp{0%{transform:translateY(22px)}to{transform:translate(0)}}::view-transition-old(roomforge-auth-photo){overflow:hidden}::view-transition-new(roomforge-auth-photo){overflow:hidden}::view-transition-group(roomforge-auth-photo){animation-duration:1.35s;animation-timing-function:var(--rf-ease-standard);border-radius:14px;overflow:hidden;box-shadow:0 38px 90px #00000057}::view-transition-image-pair(roomforge-auth-photo){isolation:isolate;overflow:hidden}::view-transition-old(roomforge-auth-photo){animation:roomforgeAuthPhotoOld 1.35s var(--rf-ease-standard) both}::view-transition-new(roomforge-auth-photo){animation:roomforgeAuthPhotoNew 1.35s var(--rf-ease-standard) both}@keyframes roomforgeAuthPhotoOld{0%{opacity:1;transform:scale(1)}to{opacity:.1;transform:scale(.985)}}@keyframes roomforgeAuthPhotoNew{0%{opacity:.06;clip-path:inset(5% round 12px);transform:scale(1.055)}to{opacity:1;clip-path:inset(0 round 14px);transform:scale(1)}}.admin-page{min-height:100vh}.admin-topbar{z-index:30;border-bottom:1px solid var(--line-soft);background:var(--bar-bg);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);top:0;align-items:center;gap:12px;height:56px;padding:0 16px;display:flex;position:fixed;inset-inline:0}.admin-sidebar{z-index:20;border-right:1px solid var(--line-soft);background:var(--bar-bg);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);flex-direction:column;gap:4px;width:240px;padding:12px;display:flex;position:fixed;top:56px;bottom:0;left:0}.admin-main{min-height:100vh;padding:84px 28px 28px 268px}.admin-content{width:min(100%,1200px);margin:0 auto}.admin-eyebrow{color:var(--admin)}.rf-btn--admin{background:var(--admin);color:#fff;border-color:#a78bfa6b}.admin-kpi-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:22px;display:grid}.admin-card,.admin-attention,.admin-modal{border:1px solid var(--line-soft);background:var(--panel);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border-radius:14px}.admin-card{padding:18px;overflow:hidden}.admin-kpi{gap:8px;display:grid}.admin-kpi span,.admin-kpi small,.admin-card-head span{color:var(--text-dim);font-size:12px;font-weight:700}.admin-kpi strong{color:var(--brand-ink);font-size:30px;line-height:1}.admin-tone-success{color:var(--success)!important}.admin-tone-accent{color:var(--accent)!important}.admin-tone-danger{color:var(--danger)!important}.admin-tone-muted{color:var(--text-dim)!important}.admin-dashboard-grid,.admin-detail-grid{gap:20px;margin-top:20px;display:grid}.admin-dashboard-grid{grid-template-columns:minmax(0,1.6fr) minmax(320px,1fr)}.admin-detail-grid{grid-template-columns:minmax(0,1.3fr) minmax(320px,.9fr)}.admin-side-stack{flex-direction:column;gap:20px;display:flex}.admin-card-head{border-bottom:1px solid var(--line-soft);align-items:center;gap:8px;margin:-18px -18px 14px;padding:14px 18px;display:flex}.admin-card-head h2,.admin-card h2{color:var(--text-main);margin:0;font-size:14px;font-weight:800}.admin-card-head a{color:var(--admin);margin-left:auto;font-size:12px;font-weight:800}.admin-table-card{padding:0}.admin-table{border-collapse:collapse;width:100%;font-size:12.5px}.admin-table th,.admin-table td{border-bottom:1px solid var(--line-soft);text-align:left;white-space:nowrap;padding:12px 18px}.admin-table th{color:var(--text-dim);font-weight:700}.admin-table td{color:var(--text-muted)}.admin-table td:first-child,.admin-table td:nth-child(2){color:var(--text-main);font-weight:800}.admin-table tr:hover{background:var(--surface)}.admin-action{border:1px solid var(--line-soft);min-height:28px;color:var(--text-muted);border-radius:8px;justify-content:center;align-items:center;margin-left:6px;padding:0 10px;font-size:11.5px;font-weight:800;display:inline-flex}.admin-action--primary{background:var(--admin);color:#fff;border-color:#a78bfa6b}.admin-tabs{flex-wrap:wrap;gap:8px;margin:22px 0 16px;display:flex}.admin-tabs button{border:1px solid var(--line-soft);height:32px;color:var(--text-muted);background:0 0;border-radius:999px;padding:0 14px;font-size:12.5px;font-weight:800}.admin-tabs button:hover,.admin-tabs button.is-active{color:var(--admin);background:#a78bfa24;border-color:#a78bfa6b}.admin-footnote{color:var(--text-dim);align-items:center;gap:6px;font-size:12px;display:flex}.admin-footnote svg{color:var(--admin)}.admin-bar-chart{justify-content:space-between;align-items:end;gap:8px;height:132px;margin-top:16px;display:flex}.admin-bar-chart span{flex-direction:column;flex:1;justify-content:end;gap:6px;height:100%;display:flex}.admin-bar-chart i{background:#a78bfa47;border-radius:4px 4px 0 0;display:block}.admin-bar-chart span:last-child i{background:linear-gradient(#a78bfa,#8fb4ff)}.admin-bar-chart small{color:var(--text-dim);text-align:center;font-size:10px}.admin-health{color:var(--text-muted);gap:12px;margin:14px 0 0;padding:0;font-size:12.5px;list-style:none;display:grid}.admin-health li{align-items:center;gap:10px;display:flex}.admin-health strong{color:var(--text-main);margin-left:auto}.history-dot--warning{background:var(--warning)}.admin-attention{background:#f0726a0f;border-color:#f0726a4d;padding:16px}.admin-attention div{align-items:center;gap:8px;display:flex}.admin-attention svg,.admin-attention div span{color:var(--danger)}.admin-attention strong{color:var(--text-main)}.admin-attention div span{margin-left:auto;font-size:12px;font-weight:800}.admin-attention p{color:var(--text-muted);font-size:12px}.admin-attention a{background:var(--admin);color:#fff;border-radius:8px;align-items:center;gap:6px;min-height:32px;padding:0 12px;font-size:12px;font-weight:800;display:inline-flex}.admin-step-list{gap:12px;margin:0;padding:0;list-style:none;display:grid}.admin-step-list li{color:var(--text-dim);align-items:center;gap:10px;font-size:13px;font-weight:800;display:flex}.admin-step-list li.is-done{color:var(--text-main)}.admin-step-list li.is-done svg{color:var(--success)}.admin-step-list li.is-failed{color:var(--text-main)}.admin-step-list li.is-failed svg,.admin-step-list li.is-failed span{color:var(--danger)}.admin-step-list li span{margin-left:auto;font-size:12px}.admin-log-card pre{color:var(--text-muted);background:#00000057;border-radius:10px;margin:0;padding:16px;font-size:12px;line-height:1.7;overflow-x:auto}.admin-modal-backdrop{place-items:center;min-height:calc(100vh - 112px);padding:24px;display:grid}.admin-modal{background:var(--page-bg);width:min(100%,540px);overflow:hidden}@supports (color:color-mix(in lab, red, red)){.admin-modal{background:color-mix(in srgb, var(--page-bg) 86%, var(--panel))}}.admin-modal{box-shadow:0 28px 100px #00000080}.admin-modal header,.admin-modal footer{border-color:var(--line-soft);align-items:center;gap:12px;padding:16px;display:flex}.admin-modal header{border-bottom:1px solid var(--line-soft)}.admin-modal footer{border-top:1px solid var(--line-soft);justify-content:flex-end}.admin-modal header>span{width:40px;height:40px;color:var(--admin);background:#a78bfa24;border-radius:12px;place-items:center;display:grid}.admin-modal h1{color:var(--brand-ink);margin:0;font-size:18px}.admin-modal p{color:var(--text-muted);margin:4px 0 0}.admin-modal header a{width:36px;height:36px;color:var(--text-dim);border-radius:9px;place-items:center;margin-left:auto;display:grid}.admin-modal-body{gap:14px;padding:16px;display:grid}.admin-modal-body label{color:var(--text-muted);gap:8px;font-size:12px;font-weight:800;display:grid}.admin-modal-body textarea{resize:vertical;border:1px solid var(--line-soft);background:var(--surface);min-height:92px;color:var(--text-main);font:inherit;border-radius:10px;padding:12px}.retry-option{border:1px solid var(--line-soft);color:var(--text-muted);border-radius:10px;align-items:center;gap:10px;padding:12px;display:flex}.retry-option.is-active{color:var(--text-main);background:#a78bfa1f;border-color:#a78bfa6b}.audit-timeline{border-left:1px solid var(--line-soft);gap:22px;margin:0;padding:0 0 0 22px;list-style:none;display:grid}.audit-timeline.is-compact{gap:12px}.audit-timeline li{gap:12px;display:flex;position:relative}.audit-timeline li>span{border:3px solid var(--page-bg);background:var(--admin);border-radius:999px;width:13px;height:13px;position:absolute;top:2px;left:-29px}.audit-timeline strong,.audit-timeline small,.audit-timeline em{display:block}.audit-timeline strong{color:var(--text-main)}.audit-timeline small,.audit-timeline p{color:var(--text-muted)}.audit-timeline p{margin:6px 0}.audit-timeline em{color:var(--admin);font-size:11px;font-style:normal;font-weight:800}.access-denied-page{flex-direction:column;min-height:100vh;display:flex}.access-denied-page header{border-bottom:1px solid var(--line-soft);background:var(--bar-bg);align-items:center;gap:12px;height:56px;padding:0 20px;display:flex}.access-denied-page section{text-align:center;flex:1;align-content:center;place-items:center;max-width:520px;margin:0 auto;padding:28px;display:grid}.access-denied-page section>span{width:64px;height:64px;color:var(--admin);background:#a78bfa24;border:1px solid #a78bfa6b;border-radius:18px;place-items:center;margin-bottom:18px;display:grid}.access-denied-page h1{color:var(--brand-ink);margin:0;font-size:34px;line-height:1.08}.access-denied-page p:not(.rf-eyebrow){color:var(--text-muted)}.editor-page{background:var(--page-bg);height:100vh;overflow:hidden}.editor-topbar{border-bottom:1px solid var(--line-soft);background:var(--bar-bg);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);align-items:center;gap:12px;height:56px;padding:0 16px;display:flex}.editor-crumb{flex:0 auto}.editor-pipeline{flex:1;justify-content:center;gap:8px;min-width:0;display:flex}.editor-pipeline-step{color:var(--text-muted);white-space:nowrap;align-items:center;gap:7px;font-size:12px;font-weight:800;display:inline-flex}.editor-pipeline-step>span{border:1px solid var(--line-soft);background:var(--surface);border-radius:8px;place-items:center;width:24px;height:24px;display:grid}.editor-pipeline-step.is-done>span{color:var(--success);background:#48d39a24;border-color:#48d39a61}.editor-pipeline-step.is-active>span{color:var(--accent);background:#8fb4ff24;border-color:#8fb4ff7a;box-shadow:0 0 0 3px #8fb4ff2e}.editor-pipeline-step .dot{background:currentColor;border-radius:999px;width:6px;height:6px}.editor-top-actions{align-items:center;gap:10px;margin-left:auto;display:flex}.editor-workbench{grid-template-columns:56px 240px minmax(0,1fr) 288px;height:calc(100vh - 56px);display:grid}.editor-rail,.editor-library-panel,.editor-inspector-panel,.editor-toolbar{border-color:var(--line-soft);background:var(--bar-bg);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.editor-rail{border-right:1px solid var(--line-soft);flex-direction:column;gap:8px;padding:12px 8px;display:flex}.editor-tool,.editor-icon-button{color:var(--text-dim);transition:background var(--rf-dur-2), color var(--rf-dur-2), box-shadow var(--rf-dur-2);background:0 0;border:0;border-radius:10px;place-items:center;display:grid}.editor-tool{width:40px;height:40px}.editor-tool:hover,.editor-tool.is-active,.editor-icon-button:hover{background:var(--surface);color:var(--text-main)}.editor-tool.is-active{color:var(--accent);background:#8fb4ff29;box-shadow:inset 0 0 0 1px #8fb4ff66}.editor-icon-button:disabled:hover{color:var(--text-dim);background:0 0}.editor-library-panel,.editor-inspector-panel{flex-direction:column;min-height:0;display:flex}.editor-library-panel{border-right:1px solid var(--line-soft)}.editor-library-panel header,.editor-inspector-panel header{border-bottom:1px solid var(--line-soft);align-items:center;gap:8px;height:44px;padding:0 14px;display:flex}.editor-library-panel h2,.editor-inspector-panel h2{color:var(--text-main);margin:0;font-size:13px;font-weight:800}.editor-library-panel header svg{color:var(--text-dim);margin-left:auto}.editor-tabs{border-bottom:1px solid var(--line-soft);gap:6px;padding:8px 12px;display:flex;overflow-x:auto}.editor-tabs button{height:28px;color:var(--text-dim);background:0 0;border:0;border-radius:8px;flex:none;padding:0 10px;font-size:12px;font-weight:800}.editor-tabs button:hover,.editor-tabs button.is-active{background:var(--surface-hover);color:var(--text-main)}.furniture-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;min-height:0;padding:12px;display:grid;overflow-y:auto}.furniture-card{border:1px solid var(--line-soft);color:var(--text-muted);transition:border-color var(--rf-dur-2), background var(--rf-dur-2), color var(--rf-dur-2), transform var(--rf-dur-2) var(--rf-ease-out);background:0 0;border-radius:10px;justify-items:center;gap:7px;padding:8px;display:grid}.furniture-card:hover{border-color:var(--line-strong);background:var(--surface);color:var(--text-main);transform:translateY(-1px)}.furniture-card span{aspect-ratio:1;background:var(--surface);border-radius:8px;place-items:center;width:100%;display:grid}.furniture-card strong{color:inherit;text-align:center;font-size:11px;line-height:1.25}.drag-hint{border-top:1px solid var(--line-soft);color:var(--text-dim);align-items:center;gap:6px;margin:auto 0 0;padding:10px 14px;font-size:11px;display:flex}.editor-canvas-shell{background:var(--canvas);grid-template-rows:44px minmax(0,1fr);min-width:0;display:grid}.editor-toolbar{border-bottom:1px solid var(--line-soft);align-items:center;gap:8px;padding:0 12px;display:flex}.view-segment{border:1px solid var(--line-soft);background:var(--surface);border-radius:9px;gap:2px;padding:2px;display:flex}.view-segment button{height:30px;color:var(--text-dim);background:0 0;border:0;border-radius:7px;align-items:center;gap:6px;padding:0 12px;font-size:12.5px;font-weight:800;display:inline-flex}.view-segment button:hover,.view-segment button.is-active{background:var(--surface-hover);color:var(--text-main)}.toolbar-rule{background:var(--line-soft);width:1px;height:20px;margin:0 4px}.editor-icon-button{width:32px;height:32px}.canvas-actions{color:var(--text-dim);align-items:center;gap:8px;margin-left:auto;font-size:12px;display:flex}.canvas-actions>span:not(.snap-label){color:var(--text-muted);font-variant-numeric:tabular-nums;font-weight:800}.snap-label{align-items:center;gap:5px;font-weight:700;display:inline-flex}.editor-stage{background:linear-gradient(#8fb4ff17 1px, transparent 1px), linear-gradient(90deg, #8fb4ff17 1px, transparent 1px), var(--canvas);background-size:48px 48px;position:relative;overflow:hidden}.selection-badge{z-index:3;color:#fff;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#05070c9e;border:1px solid #8fb4ff66;border-radius:10px;align-items:center;gap:8px;height:34px;padding:0 12px;font-size:12px;font-weight:800;display:inline-flex;position:absolute;top:16px;left:50%;transform:translate(-50%)}.selection-badge span{background:var(--accent);border-radius:999px;width:6px;height:6px}.css-room-scene{perspective:1000px;place-items:center;display:grid;position:absolute;inset:0}.room-shell{aspect-ratio:1.08;width:min(62vw,760px);transform:scale(var(--editor-zoom,1)) rotateX(58deg) rotateZ(-2deg) translateY(16px);transform-style:preserve-3d;transition:transform var(--rf-dur-2) var(--rf-ease-out);position:relative}.room-shell span,.room-shell button{transform-style:preserve-3d;display:block;position:absolute}.room-plane{background:#ffffff0b;border:1px solid #ffffff1f}.room-floor{background-color:#8fb4ff0b;background-image:linear-gradient(90deg,#ffffff0f 1px,#0000 1px),linear-gradient(0deg,#ffffff0b 1px,#0000 1px),none;background-position:0 0,0 0,0 0;background-repeat:repeat,repeat,repeat;background-size:38px 38px;background-attachment:scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box;inset:18% 12% 8%}.room-back{transform-origin:bottom;height:18%;top:2%;left:12%;right:12%;transform:rotateX(-86deg)}.room-left,.room-right{width:12%;top:18%;bottom:8%}.room-left{transform-origin:100%;left:0;transform:rotateY(72deg)}.room-right{transform-origin:0;right:0;transform:rotateY(-72deg)}.room-object{border:1px solid #ffffff1f;box-shadow:0 18px 42px #00000059}.room-bed{width:29%;height:33%;top:40%;left:35%}.room-headboard{background:#ffffff14;width:31%;height:8%;top:31%;left:34%}.room-desk{background:#ffffff12;width:11%;height:28%;top:39%;left:14%}.room-storage{background:#ffffff12;width:18%;height:14%;bottom:20%;right:16%}.room-window{background:#8fb4ff3d;width:14%;height:28%;top:19%;right:7%;box-shadow:0 0 42px #8fb4ff38}.room-selection{border:2px solid var(--accent);background:0 0;border-radius:8px;width:33%;height:37%;top:38%;left:33%;box-shadow:0 0 0 1px #8fb4ff40,0 0 34px #8fb4ff24}.room-added-object{color:#fff;cursor:pointer;transition:border-color var(--rf-dur-2), box-shadow var(--rf-dur-2), transform var(--rf-dur-2) var(--rf-ease-out);border-radius:8px;transform:translateZ(18px)}.room-added-object:hover,.room-added-object.is-selected{border-color:var(--accent);transform:translateZ(24px);box-shadow:0 0 0 2px #8fb4ff5c,0 18px 46px #0000006b}.room-added-object span{color:#ffffffdb;text-overflow:ellipsis;white-space:nowrap;font-size:10px;font-weight:800;inset:auto 6px 6px;overflow:hidden}.floor-plan-wrap{place-items:center;padding:32px;display:grid;position:absolute;inset:0}.floor-plan-wrap svg{width:min(100%,760px);height:min(100%,760px);font-family:var(--rf-sans);transform:scale(var(--editor-zoom,1));transition:transform var(--rf-dur-2) var(--rf-ease-out)}.floor-plan-wrap g{cursor:pointer}.floor-plan-wrap pattern path{fill:none;stroke:#8fb4ff1f;stroke-width:1px}.plan-grid{fill:url(#editor-grid)}.plan-wall{fill:#8fb4ff0b;stroke:var(--text-muted);stroke-width:6px}.plan-window{stroke:var(--accent);stroke-width:7px}.plan-door{fill:none;stroke:var(--text-dim);stroke-width:1.5px}.plan-door-gap{stroke:var(--canvas);stroke-width:8px}.plan-furniture{fill:#ffffff0e;stroke:var(--text-dim);stroke-width:2px}.plan-selected{fill:#8fb4ff29;stroke:var(--accent);stroke-width:2.5px}.plan-selected-line,.plan-dim{stroke:var(--accent);stroke-width:2px}.floor-plan-wrap text{fill:var(--accent);text-anchor:middle;pointer-events:none;font-size:13px;font-weight:800}.plan-label{fill:var(--text-muted)}.editor-inspector-panel{border-left:1px solid var(--line-soft)}.editor-inspector-panel header svg{color:var(--accent)}.editor-inspector-panel header span{color:var(--text-dim);margin-left:auto;font-size:11px;font-weight:800}.inspector-body{flex-direction:column;gap:18px;padding:16px;display:flex;overflow-y:auto}.inspector-label{color:var(--text-dim);margin:0 0 8px;font-size:11px;font-weight:800}.field-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.editor-field{border:1px solid var(--line-soft);background:var(--surface);height:34px;color:var(--text-main);border-radius:9px;align-items:center;gap:6px;padding:0 8px;font-size:12.5px;display:flex}.editor-field span{color:var(--text-dim);font-size:11px}.editor-field input{width:100%;min-width:0;color:inherit;background:0 0;border:0;outline:0}.swatch-row{grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;display:grid}.swatch-row button{aspect-ratio:1;border:1px solid var(--line-soft);border-radius:9px}.swatch-row button.is-active{border:2px solid var(--accent)}.material-name{color:var(--text-muted);margin:8px 0 0;font-size:12px}.inspector-actions{border-top:1px solid var(--line-soft);grid-template-columns:1fr 1fr;gap:8px;padding-top:14px;display:grid}.danger-button{min-height:40px;color:var(--danger);background:0 0;border:1px solid #f0726a57;border-radius:8px;justify-content:center;align-items:center;gap:7px;font-weight:800;display:inline-flex}.danger-button:disabled{border-color:var(--line-soft);color:var(--text-dim)}.editor-notes-panel{z-index:5;border:1px solid var(--line-soft);background:var(--panel);border-radius:14px;width:min(360px,100% - 36px);display:grid;position:absolute;bottom:18px;right:18px}@supports (color:color-mix(in lab, red, red)){.editor-notes-panel{background:color-mix(in srgb, var(--panel) 94%, #000 6%)}}.editor-notes-panel{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);box-shadow:0 24px 72px #0000006b}.editor-notes-panel header{border-bottom:1px solid var(--line-soft);align-items:center;padding:10px 12px;display:flex}.editor-notes-panel strong{color:var(--text-main);font-size:12px}.editor-notes-panel button{color:var(--accent);background:0 0;border:0;margin-left:auto;font-size:12px;font-weight:800}.editor-notes-panel textarea{resize:vertical;min-height:170px;color:var(--text-main);background:0 0;border:0;outline:0;padding:12px;font-size:12.5px}.room-info{border-top:1px solid var(--line-soft);margin-top:auto;padding:16px}.editor-host-page{background:var(--surface);min-height:100vh}.editor-workbench--runtime{grid-template-columns:56px minmax(0,1fr) minmax(280px,332px);height:calc(100vh - 64px);min-height:680px}.editor-rail--runtime{min-height:0}.editor-rail-rule{background:var(--line-soft);width:28px;height:1px;margin:4px auto;display:block}.editor-tool-link{text-decoration:none}.editor-runtime-canvas-shell{min-height:0}.editor-runtime-toolbar{flex-wrap:wrap;align-content:center;row-gap:6px;min-width:0;overflow-x:clip}.editor-toolbar-group{align-items:center;gap:4px;display:flex}.editor-toolbar-spacer{flex:auto;min-width:12px}.editor-icon-button.is-active,.editor-layer-toggle.is-active{color:var(--accent);background:#8fb4ff29;box-shadow:inset 0 0 0 1px #8fb4ff57}.editor-layer-toggle{width:42px;height:32px;color:var(--text-dim);background:0 0;border:0;border-radius:8px;justify-content:center;align-items:center;gap:4px;display:inline-flex}.editor-layer-toggle:hover{background:var(--surface-hover);color:var(--text-main)}.editor-runtime-inspector{border-left:1px solid var(--line-soft);min-height:0}.editor-runtime-inspector-body{overscroll-behavior:contain;flex-direction:column;flex:1;gap:12px;min-height:0;padding:16px;display:flex;overflow-y:auto}.editor-runtime-inspector-body>section,.editor-inspector-tab-panel>section{min-width:0}.editor-inspector-tabs{z-index:2;background:var(--page-bg);grid-template-columns:minmax(0,1fr);gap:5px;padding-bottom:4px;display:grid;position:sticky;top:0}@supports (color:color-mix(in lab, red, red)){.editor-inspector-tabs{background:color-mix(in srgb, var(--page-bg) 78%, transparent)}}.editor-inspector-tabs{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.editor-inspector-tabs button{border:1px solid var(--line-soft);background:var(--surface);min-width:0;min-height:42px;color:var(--text-muted);font:inherit;letter-spacing:0;border-radius:8px;justify-content:center;align-items:center;gap:7px;padding:8px 10px;font-size:.7rem;font-weight:800;display:inline-flex}.editor-inspector-tabs button:hover{border-color:var(--line-strong);background:var(--surface-hover);color:var(--text-main)}.editor-inspector-tabs button.is-active{color:var(--text-main);background:#8fb4ff29;border-color:#8fb4ff7a;box-shadow:inset 0 0 0 1px #8fb4ff1f}.editor-inspector-tabs button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.editor-inspector-tabs button span{text-overflow:ellipsis;white-space:nowrap;min-width:0;max-width:100%;overflow:hidden}.editor-inspector-tabs button small{background:var(--surface-hover);min-width:18px;height:18px;color:var(--text-main);border-radius:999px;place-items:center;padding-inline:5px;font-size:.65rem;font-weight:900;display:grid}.editor-inspector-tab-panel{gap:16px;min-width:0;display:grid}.editor-inspector-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:14px;display:grid}.editor-inspector-actions .rf-btn{justify-content:center;min-width:0;padding-inline:8px}.editor-inspector-icon-actions{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.candidate-review-tray{gap:12px;display:grid}.candidate-review-counts{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.candidate-review-counts span{border:1px solid var(--line-soft);background:var(--surface);min-width:0;color:var(--text-muted);gap:2px;padding:9px 10px;font-size:.74rem;display:grid}.candidate-review-counts strong{color:var(--text-main);font-size:.96rem}.candidate-review-list{gap:10px;display:grid}.candidate-review-card{border:1px solid var(--line-soft);background:var(--surface);gap:10px;padding:12px;display:grid}.candidate-review-card.is-review-required{border-color:#eab3086b}.candidate-review-card.is-placed{border-color:#40d39157}.candidate-review-card.is-rejected{opacity:.72}.candidate-review-card-header{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.candidate-review-card-header strong{color:var(--text-main);font-size:.92rem;line-height:1.25;display:block}.candidate-review-card-header span:not(.state-pill){color:var(--text-muted);margin-top:3px;font-size:.72rem;display:block}.candidate-review-meta{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0;display:grid}.candidate-review-meta div{min-width:0}.candidate-review-meta dt,.candidate-review-category span{color:var(--text-muted);text-transform:uppercase;font-size:.68rem;font-weight:800}.candidate-review-meta dd{overflow-wrap:anywhere;min-width:0;color:var(--text-main);margin:3px 0 0;font-size:.78rem}.candidate-review-category{gap:5px;display:grid}.candidate-review-category select{border:1px solid var(--line-soft);background:var(--panel);width:100%;height:34px;color:var(--text-main);font:inherit;border-radius:8px;font-size:.84rem}.candidate-review-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.candidate-review-actions .rf-btn{justify-content:center;min-width:0;padding-inline:8px}.placed-object-editor{gap:12px;display:grid}.placed-object-counts{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.placed-object-counts span{border:1px solid var(--line-soft);background:var(--surface);min-width:0;color:var(--text-muted);gap:2px;padding:9px 10px;font-size:.74rem;display:grid}.placed-object-counts strong{color:var(--text-main);font-size:.96rem}.placed-object-list{gap:8px;display:grid}.placed-object-card{border:1px solid var(--line-soft);background:var(--surface);width:100%;min-width:0;color:inherit;font:inherit;text-align:left;border-radius:8px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px;display:grid}.placed-object-card:focus-visible,.fixture-object-card:focus-visible,.candidate-review-card:focus-within,.fixture-candidate-card:focus-within,.confirmation-item:focus-within,.confirmed-object-row:focus-within{outline:2px solid var(--accent);outline-offset:2px}.placed-object-card:hover{background:var(--surface-hover);border-color:#d6a75b6b}.placed-object-card.is-selected{border-color:#d6a75bb8;box-shadow:inset 0 0 0 1px #d6a75b33}.placed-object-card.is-warning{border-color:#eab3086b}.placed-object-card strong,.placed-object-transform-header strong{overflow-wrap:anywhere;min-width:0;color:var(--text-main);font-size:.9rem;line-height:1.25;display:block}.placed-object-card small,.placed-object-transform-header span:not(.state-pill){overflow-wrap:anywhere;color:var(--text-muted);margin-top:3px;font-size:.72rem;display:block}.placed-object-card-meta{justify-items:end;gap:4px;display:grid}.placed-object-selection-empty{border:1px dashed var(--line-soft);min-height:48px;color:var(--text-muted);border-radius:8px;align-items:center;gap:8px;padding:10px;font-size:.82rem;display:flex}.placed-object-transform-panel{border:1px solid var(--line-soft);background:var(--surface);border-radius:8px;gap:12px;padding:12px;display:grid}.placed-object-transform-header{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.placed-object-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0;display:grid}.placed-object-summary-grid div{min-width:0}.placed-object-summary-grid dt,.placed-object-transform-grid span{color:var(--text-muted);text-transform:uppercase;font-size:.68rem;font-weight:800}.placed-object-summary-grid dd{overflow-wrap:anywhere;color:var(--text-main);margin:3px 0 0;font-size:.78rem}.placed-object-transform-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.placed-object-transform-section{gap:8px;display:grid}.placed-object-transform-section h3{color:var(--text-main);letter-spacing:0;margin:0;font-size:.78rem;font-weight:900}.placed-object-transform-grid label{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:5px 6px;min-width:0;display:grid}.placed-object-transform-grid label span{grid-column:1/-1}.placed-object-transform-grid input{border:1px solid var(--line-soft);background:var(--panel);width:100%;min-width:0;height:34px;color:var(--text-main);font:inherit;border-radius:8px;font-size:.84rem}.placed-object-transform-grid small{color:var(--text-muted);font-size:.72rem}.placed-object-actions{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.placed-object-actions .rf-btn,.placed-object-actions .danger-button{min-width:0;min-height:36px;padding-inline:8px}.placed-object-actions .rf-btn:focus-visible,.placed-object-actions .danger-button:focus-visible,.fixture-review-actions .rf-btn:focus-visible,.fixture-action-grid .rf-btn:focus-visible,.fixture-action-grid .danger-button:focus-visible,.confirmation-actions .rf-btn:focus-visible,.candidate-review-actions .rf-btn:focus-visible,.candidate-review-category select:focus-visible,.placed-object-transform-grid input:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.structural-fixture-review{gap:12px;display:grid}.fixture-review-counts{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.fixture-review-counts span{border:1px solid var(--line-soft);background:var(--surface);min-width:0;color:var(--text-muted);gap:2px;padding:9px 10px;font-size:.74rem;display:grid}.fixture-review-counts strong{color:var(--text-main);font-size:.96rem}.fixture-candidate-list,.fixture-object-list{gap:8px;display:grid}.fixture-candidate-card,.fixture-edit-panel{border:1px solid var(--line-soft);background:var(--surface);border-radius:8px;gap:10px;padding:12px;display:grid}.fixture-candidate-card.is-review-required{border-color:#eab3086b}.fixture-candidate-card.is-placed{border-color:#40d39157}.fixture-card-header{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.fixture-card-header strong,.fixture-object-card strong{overflow-wrap:anywhere;min-width:0;color:var(--text-main);font-size:.9rem;line-height:1.25;display:block}.fixture-card-header span:not(.state-pill),.fixture-object-card small{overflow-wrap:anywhere;color:var(--text-muted);margin-top:3px;font-size:.72rem;display:block}.fixture-meta-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0;display:grid}.fixture-meta-grid div{min-width:0}.fixture-meta-grid dt{color:var(--text-muted);text-transform:uppercase;font-size:.68rem;font-weight:800}.fixture-meta-grid dd{overflow-wrap:anywhere;min-width:0;color:var(--text-main);margin:3px 0 0;font-size:.78rem}.fixture-review-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.fixture-review-actions .rf-btn{justify-content:center;min-width:0;padding-inline:8px}.fixture-object-card{border:1px solid var(--line-soft);background:var(--surface);width:100%;min-width:0;color:inherit;font:inherit;text-align:left;border-radius:8px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px;display:grid}.fixture-object-card:hover{background:var(--surface-hover);border-color:#d6a75b6b}.fixture-object-card.is-selected{border-color:#d6a75bb8;box-shadow:inset 0 0 0 1px #d6a75b33}.fixture-selection-empty{border:1px dashed var(--line-soft);min-height:48px;color:var(--text-muted);border-radius:8px;align-items:center;gap:8px;padding:10px;font-size:.82rem;display:flex}.fixture-action-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.fixture-action-grid .rf-btn,.fixture-action-grid .danger-button{min-width:0;min-height:36px;padding-inline:8px}.confirmation-handoff-panel{gap:12px;display:grid}.confirmation-counts{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.confirmation-counts span{border:1px solid var(--line-soft);background:var(--surface);min-width:0;color:var(--text-muted);gap:2px;padding:9px 10px;font-size:.74rem;display:grid}.confirmation-counts strong{color:var(--text-main);font-size:.96rem}.confirmation-selected-card,.confirmation-placed-list,.confirmation-confirmed-list{gap:8px;display:grid}.confirmation-empty-selection{border:1px dashed var(--line-soft);min-height:48px;color:var(--text-muted);border-radius:8px;align-items:center;gap:8px;padding:10px;font-size:.82rem;display:flex}.confirmation-item,.confirmed-object-row{border:1px solid var(--line-soft);background:var(--surface);border-radius:8px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;min-width:0;padding:10px;display:grid}.confirmation-item.is-selected{border-color:#d6a75bb8;box-shadow:inset 0 0 0 1px #d6a75b33}.confirmation-item.is-confirmed,.confirmed-object-row{border-color:#40d39157}.confirmation-item strong,.confirmed-object-row strong{overflow-wrap:anywhere;min-width:0;color:var(--text-main);font-size:.9rem;line-height:1.25;display:block}.confirmation-item span:not(.state-pill),.confirmed-object-row span,.confirmed-object-row small{overflow-wrap:anywhere;color:var(--text-muted);margin-top:3px;font-size:.72rem;display:block}.confirmation-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.confirmation-actions .rf-btn{justify-content:center;min-width:0;padding-inline:8px}.editor-host-shell{grid-template-columns:minmax(0,1fr) minmax(280px,340px);gap:16px;min-height:calc(100vh - 84px);padding:16px;display:grid}.editor-host-frame-panel,.editor-host-status-panel{border:1px solid var(--line-soft);background:var(--panel)}.editor-host-frame-panel{grid-template-rows:auto minmax(0,1fr);min-height:680px;display:grid}.editor-host-frame-toolbar{border-bottom:1px solid var(--line-soft);justify-content:space-between;align-items:center;gap:16px;padding:16px;display:flex}.editor-host-frame-toolbar h1{margin:2px 0 0;font-size:1.35rem;line-height:1.2}.editor-host-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.editor-host-frame-wrap{background:#0f1115;min-height:0;position:relative}.editor-host-frame{background:#0f1115;border:0;width:100%;height:100%;min-height:640px;display:block}.editor-host-frame-wrap--direct{min-height:640px;display:grid}.editor-direct-runtime-root{background:#090a0c;width:100%;min-width:0;height:100%;min-height:0}.editor-direct-runtime-root .editor-shell[data-editor-chrome=embedded]{background:var(--canvas);grid-template-rows:minmax(0,1fr);width:100%;height:100%;min-height:100%;max-height:none;display:grid}.editor-direct-runtime-root .editor-shell[data-editor-chrome=embedded]>.editor-topbar,.editor-direct-runtime-root .editor-shell[data-editor-chrome=embedded]>.editor-statusbar,.editor-direct-runtime-root .editor-shell[data-editor-chrome=embedded] .tool-rail,.editor-direct-runtime-root .editor-shell[data-editor-chrome=embedded] .status-panel{display:none}.editor-direct-runtime-root .editor-shell[data-editor-chrome=embedded] .editor-stage{grid-template-columns:minmax(0,1fr);min-width:0;min-height:0;display:grid}.editor-direct-runtime-root .editor-shell[data-editor-chrome=embedded] .viewport{background-color:#090a0c;background-image:linear-gradient(#8fb4ff14 1px,#0000 1px),linear-gradient(90deg,#8fb4ff14 1px,#0000 1px),none;background-position:0 0,0 0,0 0;background-repeat:repeat,repeat,repeat;background-size:42px 42px;background-attachment:scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box;min-width:0;min-height:0;position:relative;overflow:hidden}.editor-direct-runtime-root .editor-shell[data-editor-chrome=embedded] .editor-canvas{width:100%;height:100%;display:block;position:absolute;inset:0}.editor-direct-runtime-root .editor-shell[data-editor-chrome=embedded] .viewport-toolbar,.editor-direct-runtime-root .editor-shell[data-editor-chrome=embedded] .canvas-toolbar,.editor-direct-runtime-root .editor-shell[data-editor-chrome=embedded] .viewport-layer-controls,.editor-direct-runtime-root .editor-shell[data-editor-chrome=embedded] .viewport-measurements,.editor-direct-runtime-root .editor-shell[data-editor-chrome=embedded] .viewport-warning,.editor-direct-runtime-root .editor-shell[data-editor-chrome=embedded] .viewport-status-strip,.editor-direct-runtime-root .editor-shell[data-editor-chrome=embedded] .viewport-cv-readout{display:none}.editor-host-runtime-error{z-index:2;color:var(--danger);background:#f0726a1f;border:1px solid #f0726a57;padding:10px 12px;font-size:.9rem;font-weight:700;position:absolute;inset:16px 16px auto}.editor-host-loading{z-index:1;border:1px solid var(--line-soft);background:var(--panel);color:var(--text);align-items:center;gap:8px;padding:8px 10px;font-size:.88rem;display:inline-flex;position:absolute;inset:16px auto auto 16px}.editor-host-loading svg{animation:.9s linear infinite route-spin}.editor-host-status-panel{flex-direction:column;gap:18px;padding:16px;display:flex}.editor-host-section-title{align-items:center;gap:8px;margin-bottom:12px;display:flex}.editor-host-section-title h2{margin:0;font-size:1rem}.editor-host-status-list{gap:10px;margin:0;display:grid}.editor-host-status-list div{gap:4px;display:grid}.editor-host-status-list dt{color:var(--text-muted);font-size:.76rem}.editor-host-status-list dd{overflow-wrap:anywhere;min-width:0;margin:0;font-size:.9rem}.editor-host-empty{color:var(--text-muted);margin:0;font-size:.9rem}.editor-host-event-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.editor-host-event-list li{border:1px solid var(--line-soft);background:var(--surface);gap:3px;padding:10px;display:grid}.editor-host-event-list strong{overflow-wrap:anywhere;min-width:0;font-size:.86rem}.editor-host-event-list span{color:var(--text-muted);font-size:.76rem}@media (width<=1100px){.product-sidebar{display:none}.product-main{padding-left:24px}.card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.editor-host-shell{grid-template-columns:1fr}.editor-workbench--runtime{grid-template-columns:56px minmax(0,1fr);height:auto;min-height:calc(100vh - 64px)}.editor-topbar{flex-wrap:wrap;min-height:64px}.editor-pipeline{display:none}.editor-runtime-canvas-shell{grid-template-rows:minmax(44px,auto) minmax(420px,1fr)}.editor-runtime-toolbar{min-height:52px;padding-block:6px}.editor-runtime-inspector{border-top:1px solid var(--line-soft);border-left:0;grid-column:1/-1;min-height:320px}}@media (width<=760px){.hero-grid,.card-grid{grid-template-columns:1fr}.hero-visual{min-height:340px;margin:0 16px 16px}.landing-nav{padding-inline:16px}.editor-workbench--runtime{grid-template-columns:1fr}.editor-rail--runtime{border-right:0;border-bottom:1px solid var(--line-soft);flex-direction:row;overflow-x:auto}.editor-rail-rule{width:1px;height:28px;margin:auto 4px}.editor-runtime-toolbar{gap:6px}.toolbar-rule{display:none}.candidate-review-meta,.placed-object-transform-grid,.placed-object-actions,.fixture-meta-grid,.fixture-action-grid,.confirmation-actions{grid-template-columns:1fr}.placed-object-card,.fixture-object-card,.confirmation-item,.confirmed-object-row{grid-template-columns:minmax(0,1fr)}.placed-object-card-meta{justify-items:start}.landing-links{display:none}.landing-cta{gap:8px}.landing-account-chip{padding-right:5px}.landing-account-name,.landing-auth-status{display:none}.landing-hero-copy,.landing-features{grid-template-columns:1fr}.landing-hero-text{padding:0 18px 9vh}.auth-page{grid-template-columns:1fr;height:auto;min-height:100vh;overflow:auto}.auth-visual-stage{display:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}
