@import"https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&display=swap";:root{font-family:Manrope,Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#17332f;background:#f3f6f4;font-synthesis:none;text-rendering:optimizeLegibility;--ink: #17332f;--ink-soft: #35534e;--muted: #647671;--primary: #0f766e;--primary-strong: #0a5f58;--primary-soft: #e5f3ee;--accent: #176b87;--surface: #ffffff;--surface-raised: #ffffff;--surface-muted: #edf2ef;--background: #f3f6f4;--border: #d8e2de;--border-strong: #b6c8c2;--danger: #b42318;--danger-soft: #fff0ee;--warning: #8a4b08;--warning-soft: #fff5df;--success: #16613e;--success-soft: #e8f6ed;--info: #155b75;--info-soft: #e8f4f8;--shadow-sm: 0 8px 24px rgba(28, 58, 51, .07);--shadow-md: 0 24px 70px rgba(28, 58, 51, .12);--radius-sm: 10px;--radius-md: 16px;--radius-lg: 24px;--focus: 0 0 0 3px rgba(15, 118, 110, .25)}*{box-sizing:border-box}.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;clip-path:inset(50%)!important;white-space:nowrap!important}html{min-width:320px;background:var(--background)}body{margin:0;min-width:320px;min-height:100dvh;background:var(--background);color:var(--ink)}button,input{font:inherit}button,label{-webkit-tap-highlight-color:transparent}button{color:inherit;touch-action:manipulation}button:focus-visible,input:focus-visible,label:has(input:focus-visible){outline:2px solid var(--primary);outline-offset:3px}h1,h2,h3,p{overflow-wrap:anywhere}h1,h2,h3{color:var(--ink);letter-spacing:-.035em}p{color:var(--muted);line-height:1.65}svg{stroke-width:1.8}.brand{display:inline-flex;align-items:center;gap:10px;min-width:max-content}.brand-mark{display:grid;width:40px;height:40px;place-items:center;border-radius:12px;background:var(--ink);color:#fff}.brand-mark svg{width:21px;height:21px}.brand-copy{display:grid;line-height:1}.brand-copy b{font-size:15px;letter-spacing:.12em}.brand-copy em{margin-top:5px;color:var(--muted);font-size:9px;font-style:normal;letter-spacing:.08em}.eyebrow{display:inline-flex;align-items:center;gap:7px;color:var(--primary);font-size:11px;font-weight:800;letter-spacing:.14em;line-height:1.4;text-transform:uppercase}.eyebrow svg{width:16px;height:16px;flex:none}.button{display:inline-flex;min-height:48px;align-items:center;justify-content:center;gap:9px;padding:0 20px;border:1px solid transparent;border-radius:12px;cursor:pointer;font-weight:750;line-height:1.2;text-align:center;transition:background-color .18s ease,border-color .18s ease,box-shadow .18s ease,color .18s ease}.button svg{width:19px;height:19px;flex:none}.button-primary{background:var(--ink);color:#fff;box-shadow:0 8px 20px #17332f29}.button-primary:hover:not(:disabled){background:var(--primary-strong)}.button-secondary{border-color:var(--border);background:var(--surface);color:var(--ink)}.button-secondary:hover:not(:disabled),.button-quiet:hover:not(:disabled){border-color:var(--border-strong);background:var(--surface-muted)}.button-quiet{border-color:transparent;background:transparent;color:var(--ink-soft)}.button-wide{width:100%}.button-compact{min-height:44px;padding-inline:14px}.button:disabled,.icon-button:disabled{cursor:not-allowed;opacity:.45}.icon-button{display:grid;width:46px;height:46px;flex:none;place-items:center;border:1px solid transparent;border-radius:12px;background:transparent;color:var(--muted);cursor:pointer;transition:background-color .18s ease,border-color .18s ease,color .18s ease}.icon-button:hover:not(:disabled){border-color:var(--border);background:var(--surface-muted);color:var(--ink)}.icon-button svg{width:20px;height:20px}.status-badge{display:inline-flex;min-height:29px;align-items:center;width:max-content;padding:5px 10px;border:1px solid var(--border);border-radius:999px;background:var(--surface-muted);color:var(--ink-soft);font-size:11px;font-weight:800;letter-spacing:.03em}.status-progress{border-color:#b9dce8;background:var(--info-soft);color:var(--info)}.status-attention{border-color:#eed19d;background:var(--warning-soft);color:var(--warning)}.status-success{border-color:#b9ddc7;background:var(--success-soft);color:var(--success)}.status-danger{border-color:#efc4bf;background:var(--danger-soft);color:var(--danger)}.spin{animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.inline-error{display:flex;align-items:flex-start;gap:12px;padding:15px 16px;border:1px solid #efc4bf;border-radius:14px;background:var(--danger-soft);color:var(--danger)}.inline-error>svg{width:21px;height:21px;flex:none;margin-top:2px}.inline-error>div{flex:1;min-width:0}.inline-error b{font-size:14px}.inline-error p{margin:3px 0 0;color:#7f2d25;font-size:13px;line-height:1.5}.session-screen{display:grid;min-height:100dvh;place-content:center;gap:32px;padding:24px;text-align:center}.session-screen>.brand{justify-self:center}.session-loader{display:grid;min-width:min(320px,calc(100vw - 48px));justify-items:center;gap:7px;padding:32px;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-sm)}.session-loader svg{width:30px;height:30px;margin-bottom:7px;color:var(--primary)}.session-loader span{color:var(--muted);font-size:13px}.auth-page{min-height:100dvh;padding:24px clamp(18px,4vw,64px) 40px;background:radial-gradient(circle at 15% 15%,rgba(15,118,110,.11),transparent 34%),linear-gradient(135deg,var(--background),#e8efeb)}.auth-header{display:flex;max-width:1280px;min-height:56px;align-items:center;justify-content:space-between;gap:24px;margin:0 auto}.auth-header>span{color:var(--muted);font-size:12px}.auth-hero{display:grid;max-width:1280px;min-height:calc(100dvh - 120px);grid-template-columns:minmax(0,1.25fr) minmax(340px,.75fr);align-items:center;gap:clamp(40px,7vw,100px);margin:0 auto;padding:72px 0}.auth-copy h1{max-width:830px;margin:22px 0 24px;font-size:clamp(42px,5.4vw,78px);line-height:1.02;letter-spacing:-.06em}.auth-copy>p{max-width:690px;margin:0;color:var(--ink-soft);font-size:clamp(16px,1.5vw,19px)}.auth-principles{display:flex;flex-wrap:wrap;gap:12px 22px;margin-top:34px}.auth-principles span{display:inline-flex;align-items:center;gap:8px;color:var(--ink-soft);font-size:13px;font-weight:700}.auth-principles svg{width:19px;color:var(--primary)}.auth-action-card{padding:clamp(24px,3vw,38px);border:1px solid rgba(255,255,255,.75);border-radius:28px;background:#ffffffdb;box-shadow:var(--shadow-md)}.auth-action-card h2{margin:12px 0 8px;font-size:28px}.auth-action-card>p{margin:0 0 24px;font-size:14px}.auth-action-card .button+.button{margin-top:10px}.workflow-mark{display:flex;min-height:112px;align-items:center;justify-content:center;gap:12px;margin-bottom:25px;border-radius:18px;background:var(--primary-soft)}.workflow-mark span{display:grid;width:46px;height:46px;place-items:center;border:1px solid var(--border);border-radius:14px;background:var(--surface);color:var(--primary);box-shadow:var(--shadow-sm)}.workflow-mark span svg{width:21px}.workflow-mark i{width:28px;height:1px;background:var(--border-strong)}.app-shell{display:grid;min-height:100dvh;grid-template-columns:264px minmax(0,1fr)}.sidebar{display:flex;position:sticky;top:0;height:100dvh;flex-direction:column;padding:26px 20px;border-right:1px solid var(--border);background:#eaf0ed}.sidebar nav{display:grid;gap:6px;margin-top:48px}.nav-item{display:flex;min-height:48px;align-items:center;gap:11px;padding:0 14px;border-radius:12px;color:var(--muted);font-size:14px;font-weight:700}.nav-item svg{width:20px}.nav-item-active{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-sm)}.sidebar-note{display:flex;align-items:flex-start;gap:10px;margin-top:auto;margin-bottom:22px;padding:14px;border:1px solid var(--border);border-radius:14px;background:#ffffff8c}.sidebar-note>svg{width:20px;flex:none;color:var(--primary)}.sidebar-note b,.sidebar-note span{display:block}.sidebar-note b{font-size:11px}.sidebar-note span{margin-top:4px;color:var(--muted);font-size:10px;line-height:1.45}.profile-card{display:flex;align-items:center;gap:10px;padding-top:20px;border-top:1px solid var(--border)}.profile-card>svg{width:38px;height:38px;flex:none;color:var(--ink-soft)}.profile-card>div{min-width:0;flex:1}.profile-card b,.profile-card span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.profile-card b{font-size:12px}.profile-card span{margin-top:3px;color:var(--muted);font-size:10px}.dashboard{width:100%;max-width:1460px;margin:0 auto;padding:clamp(28px,4vw,58px) clamp(18px,5vw,76px)}.mobile-brand-row{display:none}.page-heading{margin-bottom:32px}.page-heading-actions{display:flex;align-items:flex-end;justify-content:space-between;gap:24px}.page-heading h1{margin:5px 0 7px;font-size:clamp(36px,4vw,50px)}.page-heading p{max-width:650px;margin:0;font-size:14px}.stats-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:28px}.stats-grid article{min-height:116px;padding:20px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface)}.stats-grid span{display:block;min-height:22px;color:var(--muted);font-size:12px}.stats-grid b{display:block;margin-top:8px;font-size:32px;font-variant-numeric:tabular-nums}.dashboard>.inline-error{margin-bottom:20px}.project-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,330px),1fr));gap:16px}.project-card{display:grid;min-height:220px;grid-template-columns:52px minmax(0,1fr) 26px;align-items:start;gap:15px;padding:20px;border:1px solid var(--border);border-radius:18px;background:var(--surface);cursor:pointer;text-align:left;transition:border-color .18s ease,box-shadow .18s ease,background-color .18s ease}.project-card:hover{border-color:var(--border-strong);box-shadow:var(--shadow-sm)}.project-card-icon{display:grid;width:52px;height:52px;place-items:center;border-radius:14px;background:var(--primary-soft);color:var(--primary)}.project-card-icon svg{width:24px}.project-card-body{min-width:0}.project-card h2{margin:18px 0 8px;font-size:20px;line-height:1.28}.project-address{display:flex;align-items:flex-start;gap:6px;margin:0;font-size:12px;line-height:1.45}.project-address svg{width:15px;height:15px;flex:none;margin-top:1px}.project-facts{display:flex;flex-wrap:wrap;gap:6px 12px;margin-top:20px;color:var(--muted);font-size:11px;font-variant-numeric:tabular-nums}.project-chevron{width:20px;margin-top:15px;color:var(--border-strong)}.project-skeleton{min-height:220px;border:1px solid var(--border);border-radius:18px;background:linear-gradient(100deg,var(--surface-muted) 20%,var(--surface) 40%,var(--surface-muted) 60%);background-size:220% 100%;animation:shimmer 1.4s ease-in-out infinite}@keyframes shimmer{to{background-position-x:-220%}}.empty-state{display:flex;min-height:410px;flex-direction:column;align-items:center;justify-content:center;padding:32px;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);text-align:center}.empty-icon,.state-icon{display:grid;width:62px;height:62px;place-items:center;border-radius:18px;background:var(--primary-soft);color:var(--primary)}.empty-icon svg,.state-icon svg{width:28px}.empty-state h2{margin:20px 0 7px;font-size:25px}.empty-state p{max-width:520px;margin:0 0 20px}.workflow-page{min-height:100dvh;background:var(--background)}.app-header{display:flex;min-height:76px;align-items:center;justify-content:space-between;gap:20px;padding:12px clamp(18px,4vw,58px);border-bottom:1px solid var(--border);background:#f3f6f4eb}.create-layout{display:grid;width:min(1180px,calc(100% - 36px));grid-template-columns:minmax(0,.9fr) minmax(400px,.75fr);gap:clamp(40px,7vw,96px);margin:0 auto;padding:clamp(46px,7vw,88px) 0}.create-intro h1{margin:14px 0 20px;font-size:clamp(38px,4.4vw,62px);line-height:1.07}.create-intro>p{max-width:650px;margin:0;color:var(--ink-soft)}.create-steps{display:grid;gap:17px;margin:34px 0 0;padding:0;list-style:none}.create-steps li{display:flex;align-items:flex-start;gap:13px}.create-steps li>span{display:grid;width:32px;height:32px;flex:none;place-items:center;border-radius:10px;background:var(--primary-soft);color:var(--primary);font-size:12px;font-weight:800}.create-steps b{font-size:14px}.create-steps p{margin:3px 0 0;font-size:12px;line-height:1.5}.create-form{align-self:start;padding:clamp(24px,3vw,34px);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-sm)}.form-heading{margin-bottom:24px}.form-heading h2{margin:7px 0 0;font-size:27px}.form-step{color:var(--primary);font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.field{display:grid;gap:7px;margin-bottom:18px;color:var(--ink-soft);font-size:12px;font-weight:750}.field input{width:100%;min-height:50px;padding:0 14px;border:1px solid var(--border);border-radius:11px;outline:none;background:var(--surface-raised);color:var(--ink);font-size:16px;font-weight:500;transition:border-color .18s ease,box-shadow .18s ease}.field input:focus{border-color:var(--primary);box-shadow:var(--focus)}.field input:disabled{opacity:.58}.file-field{margin-bottom:18px}.file-label{display:block;margin-bottom:7px;color:var(--ink-soft);font-size:12px;font-weight:750}.drop-zone{display:flex;position:relative;min-height:190px;flex-direction:column;align-items:center;justify-content:center;padding:24px;border:1.5px dashed var(--border-strong);border-radius:16px;background:var(--surface-muted);cursor:pointer;text-align:center;transition:border-color .18s ease,background-color .18s ease,box-shadow .18s ease}.drop-zone:hover,.drop-zone-active,.drop-zone:focus-within{border-color:var(--primary);background:var(--primary-soft);box-shadow:var(--focus)}.drop-zone input{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;cursor:pointer;opacity:0}.drop-zone input:disabled{cursor:not-allowed}.drop-icon{display:grid;width:50px;height:50px;place-items:center;margin-bottom:13px;border-radius:15px;background:var(--surface);color:var(--primary);box-shadow:var(--shadow-sm)}.drop-icon svg{width:23px}.drop-zone b{font-size:13px}.drop-zone small{margin-top:6px;color:var(--muted);font-size:11px}.selected-file{display:flex;min-height:88px;align-items:center;gap:12px;padding:14px;border:1px solid var(--border);border-radius:14px;background:var(--surface-muted)}.selected-file>span{display:grid;width:46px;height:46px;flex:none;place-items:center;border-radius:12px;background:var(--surface);color:var(--primary)}.selected-file>span svg{width:22px}.selected-file>div{min-width:0;flex:1}.selected-file b,.selected-file small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.selected-file b{font-size:13px}.selected-file small{margin-top:4px;color:var(--muted);font-size:11px}.create-form>.inline-error{margin-bottom:16px}.project-page{width:min(1180px,calc(100% - 36px));margin:0 auto;padding:38px 0 72px}.project-loading{display:grid;min-height:55vh;place-content:center;justify-items:center;gap:12px;color:var(--muted)}.project-loading svg{width:31px;height:31px;color:var(--primary)}.project-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:24px}.project-heading h1{margin:11px 0 5px;font-size:clamp(34px,4.2vw,52px)}.project-heading p{display:flex;align-items:flex-start;gap:6px;margin:0;font-size:13px}.project-heading p svg{width:16px;flex:none;margin-top:3px}.project-progress{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));margin:34px 0;padding:0;list-style:none}.project-progress li{display:flex;position:relative;align-items:center;gap:9px;color:var(--muted);font-size:12px}.project-progress li:not(:last-child):after{position:absolute;z-index:0;right:12px;left:54px;height:1px;background:var(--border);content:""}.project-progress li>span{display:grid;z-index:1;width:34px;height:34px;flex:none;place-items:center;border:1px solid var(--border);border-radius:50%;background:var(--surface);font-size:11px;font-weight:800}.project-progress li>span svg{width:16px}.project-progress .progress-complete,.project-progress .progress-current{color:var(--ink)}.project-progress .progress-complete>span{border-color:var(--primary);background:var(--primary);color:#fff}.project-progress .progress-complete:not(:last-child):after{background:var(--primary)}.project-progress .progress-current>span{border-color:var(--primary);box-shadow:var(--focus);color:var(--primary)}.project-page>.inline-error{margin-bottom:20px}.state-panel{display:flex;min-height:430px;flex-direction:column;align-items:center;justify-content:center;padding:clamp(28px,5vw,58px);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);text-align:center}.state-panel h2{max-width:700px;margin:18px 0 8px;font-size:clamp(27px,3vw,38px)}.state-panel>p{max-width:690px;margin:0}.processing-orbit{display:grid;position:relative;width:112px;height:112px;place-items:center;margin-bottom:24px;border:1px solid var(--border);border-radius:30px;background:var(--primary-soft);color:var(--primary)}.processing-orbit>svg{width:38px;height:38px}.processing-orbit span{display:grid;position:absolute;right:-9px;bottom:-9px;width:44px;height:44px;place-items:center;border:4px solid var(--surface);border-radius:50%;background:var(--primary);color:#fff}.processing-orbit span svg{width:19px;animation:spin .9s linear infinite}.processing-note{display:flex;max-width:620px;align-items:flex-start;gap:9px;margin-top:26px;padding:12px 14px;border-radius:12px;background:var(--surface-muted);color:var(--ink-soft);font-size:12px;line-height:1.5;text-align:left}.processing-note svg{width:18px;flex:none;color:var(--primary)}.recovery-panel .state-icon{margin-bottom:20px;background:var(--warning-soft);color:var(--warning)}.recovery-danger .state-icon{background:var(--danger-soft);color:var(--danger)}.recovery-guidance{width:min(560px,100%);margin-top:24px;padding:18px;border:1px solid var(--border);border-radius:14px;background:var(--surface-muted);text-align:left}.recovery-guidance b{font-size:13px}.recovery-guidance ul{margin:10px 0 0;padding-left:20px;color:var(--muted);font-size:13px;line-height:1.65}.replacement-form{display:grid;gap:12px;width:min(620px,100%);margin:22px auto 0;padding:18px;border:1px solid var(--border);border-radius:16px;background:var(--surface-muted);text-align:left}.replacement-picker{position:relative;display:flex;min-height:64px;align-items:center;gap:14px;padding:12px 14px;border:1px dashed var(--border-strong);border-radius:12px;background:var(--surface);cursor:pointer;transition:border-color .16s ease,background .16s ease}.replacement-picker:hover,.replacement-picker:focus-within{border-color:var(--primary);background:var(--primary-soft)}.replacement-picker input{position:absolute;width:1px;height:1px;overflow:hidden;opacity:0}.replacement-picker>svg{width:22px;height:22px;flex:none;color:var(--primary)}.replacement-picker span{display:grid;min-width:0;gap:3px}.replacement-picker b,.replacement-picker small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.replacement-picker small,.photo-requirement{color:var(--muted)}.replacement-form>.button{justify-self:start}.button-row{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-top:24px}.complete-panel .state-icon{margin-bottom:20px;background:var(--success-soft);color:var(--success)}.complete-facts{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin-top:26px}.complete-facts span{min-width:145px;padding:15px 18px;border:1px solid var(--border);border-radius:13px;background:var(--surface-muted);color:var(--muted);font-size:12px}.complete-facts b{display:block;margin-bottom:2px;color:var(--ink);font-size:24px;font-variant-numeric:tabular-nums}.capture-layout{display:grid;grid-template-columns:270px minmax(0,1fr);align-items:start;gap:24px}.room-list{display:grid;position:sticky;top:20px;gap:6px;padding:12px;border:1px solid var(--border);border-radius:18px;background:var(--surface)}.room-list-heading{display:flex;align-items:center;justify-content:space-between;padding:9px 8px 12px}.room-list-heading>b{display:grid;min-width:29px;height:29px;place-items:center;border-radius:9px;background:var(--surface-muted);color:var(--muted);font-size:11px}.room-list-item{display:grid;min-height:68px;grid-template-columns:34px minmax(0,1fr) 18px;align-items:center;gap:9px;padding:9px;border:1px solid transparent;border-radius:12px;background:transparent;cursor:pointer;text-align:left;transition:border-color .18s ease,background-color .18s ease}.room-list-item:hover{background:var(--surface-muted)}.room-list-item-active{border-color:var(--border);background:var(--primary-soft)}.room-index{display:grid;width:34px;height:34px;place-items:center;border-radius:10px;background:var(--surface-muted);color:var(--muted);font-size:11px;font-weight:800}.room-list-item-active .room-index{background:var(--primary);color:#fff}.room-list-item>div{min-width:0}.room-list-item b,.room-list-item small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.room-list-item b{font-size:12px}.room-list-item small{margin-top:4px;color:var(--muted);font-size:9px}.room-list-item>svg{width:17px;color:var(--border-strong)}.room-workspace{display:grid;min-width:0;gap:16px}.room-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;padding:24px;border:1px solid var(--border);border-radius:18px;background:var(--surface)}.room-heading h2{margin:5px 0 8px;font-size:clamp(28px,3vw,38px)}.room-meta{display:flex;flex-wrap:wrap;gap:7px 13px;color:var(--muted);font-size:11px;font-variant-numeric:tabular-nums}.photo-counter{display:grid;min-width:112px;grid-template-columns:26px 1fr;align-items:center;gap:2px 8px;padding:12px;border-radius:13px;background:var(--surface-muted);color:var(--primary)}.photo-counter svg{width:23px;grid-row:1 / 3}.photo-counter b{color:var(--ink);font-size:20px;font-variant-numeric:tabular-nums}.photo-counter span{color:var(--muted);font-size:9px}.instruction-card{display:grid;grid-template-columns:52px minmax(0,1fr);gap:18px;padding:24px;border:1px solid var(--border);border-radius:18px;background:var(--surface)}.instruction-icon{display:grid;width:52px;height:52px;place-items:center;border-radius:15px;background:var(--primary-soft);color:var(--primary)}.instruction-icon svg{width:24px}.instruction-card h3{margin:8px 0 16px;font-size:21px}.instruction-card ol{display:grid;gap:11px;margin:0;padding:0;list-style:none}.instruction-card li{display:flex;align-items:flex-start;gap:10px}.instruction-card li>span{display:grid;width:27px;height:27px;flex:none;place-items:center;border-radius:8px;background:var(--surface-muted);color:var(--primary);font-size:10px;font-weight:800}.instruction-card li p{margin:2px 0 0;color:var(--ink-soft);font-size:13px;line-height:1.55}.empty-instructions{margin:0;padding:13px;border-radius:11px;background:var(--warning-soft);color:var(--warning);font-size:12px}.audit-card{padding:22px 24px;border:1px solid var(--border);border-radius:18px;background:var(--surface)}.audit-heading{display:flex;align-items:center;gap:12px}.audit-heading>span{display:grid;width:43px;height:43px;place-items:center;border-radius:12px;background:var(--success-soft);color:var(--success)}.audit-heading svg{width:21px}.audit-heading small{color:var(--muted);font-size:10px}.audit-heading h3{margin:2px 0 0;font-size:18px}.audit-section{margin-top:18px;padding:15px;border-radius:12px;background:var(--warning-soft)}.audit-section b{color:var(--warning);font-size:12px}.audit-section ul{margin:8px 0 0;padding-left:20px;color:var(--ink-soft);font-size:12px;line-height:1.6}.audit-missing{background:var(--info-soft)}.audit-missing b{color:var(--info)}.audit-card>p{margin:15px 0 0;font-size:12px}.review-banner{display:flex;align-items:flex-start;gap:13px;padding:20px;border:1px solid #b9dce8;border-radius:16px;background:var(--info-soft);color:var(--info)}.review-banner>svg{width:23px;flex:none}.review-banner b{font-size:14px}.review-banner p{margin:4px 0 0;color:var(--info);font-size:12px;line-height:1.5}.photo-upload{padding:24px;border:1px solid var(--border);border-radius:18px;background:var(--surface)}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;margin-bottom:16px}.section-heading h3{margin:6px 0 0;font-size:20px}.photo-requirement{margin:7px 0 0;font-size:12px}.selection-count{color:var(--muted);font-size:11px;font-variant-numeric:tabular-nums}.photo-drop-zone{min-height:150px}.selected-photo-list{display:grid;gap:8px;margin:14px 0;padding:0;list-style:none}.selected-photo-list li{display:grid;min-height:60px;grid-template-columns:24px minmax(0,1fr) 46px;align-items:center;gap:10px;padding:7px 7px 7px 12px;border:1px solid var(--border);border-radius:12px;background:var(--surface-muted)}.selected-photo-list>li>svg{width:21px;color:var(--primary)}.selected-photo-list li>div{min-width:0}.selected-photo-list b,.selected-photo-list small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.selected-photo-list b{font-size:11px}.selected-photo-list small{margin-top:3px;color:var(--muted);font-size:9px}.photo-upload>.inline-error{margin:14px 0}@media(max-width:960px){.auth-hero{grid-template-columns:1fr;align-content:center}.auth-copy h1{max-width:850px}.auth-action-card{width:min(520px,100%)}.app-shell{display:block}.sidebar{display:none}.mobile-brand-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:34px}.create-layout{grid-template-columns:1fr}.create-intro{max-width:760px}.create-form{width:min(680px,100%)}.capture-layout{grid-template-columns:1fr}.room-list{display:flex;position:static;overflow-x:auto;padding:10px;scrollbar-width:thin}.room-list-heading{display:none}.room-list-item{min-width:210px}}@media(max-width:680px){.auth-page{padding:16px}.auth-header>span{display:none}.auth-hero{min-height:auto;gap:40px;padding:54px 0 24px}.auth-copy h1{margin-top:17px;font-size:clamp(38px,12vw,52px)}.auth-principles{display:grid}.auth-action-card{padding:22px;border-radius:22px}.workflow-mark{min-height:94px;gap:8px}.workflow-mark span{width:40px;height:40px}.workflow-mark i{width:18px}.dashboard{padding:20px 16px 40px}.mobile-brand-row{margin-bottom:26px}.page-heading-actions,.project-heading,.room-heading,.section-heading{align-items:stretch;flex-direction:column}.page-heading-actions .button,.project-heading>.button{width:100%}.stats-grid{grid-template-columns:1fr 1fr}.stats-grid article:first-child{grid-column:1 / -1}.project-card{min-height:190px;grid-template-columns:46px minmax(0,1fr) 20px;padding:16px}.project-card-icon{width:46px;height:46px}.app-header{min-height:68px;padding:10px 16px}.app-header .button-quiet{min-width:48px;padding:0 13px;font-size:0}.create-layout,.project-page{width:min(100% - 28px,1180px)}.create-layout{padding:38px 0 48px}.create-intro h1{font-size:38px}.create-form{padding:20px}.project-page{padding-top:26px}.project-progress{gap:4px}.project-progress li{display:grid;justify-items:center;gap:6px;font-size:9px;text-align:center}.project-progress li>b{max-width:52px;line-height:1.25}.project-progress li:not(:last-child):after{top:17px;right:-8px;left:calc(50% + 24px)}.project-progress li>span{width:34px;height:34px}.state-panel{min-height:390px;padding:26px 19px}.button-row,.button-row .button{width:100%}.room-list{margin-inline:-14px;border-right:0;border-left:0;border-radius:0}.room-heading{padding:19px}.photo-counter{width:100%}.instruction-card{grid-template-columns:1fr;padding:19px}.audit-card,.photo-upload{padding:19px}.photo-upload>.button{width:100%}.inline-error{flex-wrap:wrap}.inline-error .button{width:100%}}@media(max-width:390px){.stats-grid{grid-template-columns:1fr}.stats-grid article:first-child{grid-column:auto}.brand-mark{width:37px;height:37px}.brand-copy b{font-size:13px}}.reconstruction-icon.reconstruction-queued,.reconstruction-icon.reconstruction-processing{background:var(--info-soft);color:var(--info)}.reconstruction-icon.reconstruction-failed{background:var(--danger-soft);color:var(--danger)}.reconstruction-progress{display:grid;gap:9px;width:min(520px,100%);margin:24px auto 0;text-align:left}.reconstruction-progress>span{display:flex;justify-content:space-between;gap:20px;color:var(--ink-soft);font-size:12px;font-variant-numeric:tabular-nums}.reconstruction-progress>i{height:7px;overflow:hidden;border-radius:999px;background:var(--surface-muted)}.reconstruction-progress>i>span{display:block;width:100%;height:100%;border-radius:inherit;background:var(--primary);transform-origin:left;transition:transform .24s ease-out}.reconstruction-link{margin-top:24px;text-decoration:none}.reconstruction-room-count{margin:15px 0 0;font-size:12px;font-variant-numeric:tabular-nums}.reconstruction-room-count b{color:var(--ink)}.tour-public{--tour-bg: #07100f;--tour-surface: #0d1917;--tour-surface-raised: #13221f;--tour-border: #2b403a;--tour-border-strong: #49655d;--tour-text: #f2f7f5;--tour-text-soft: #b3c5bf;--tour-muted: #90a39d;--tour-primary: #70d3c5;--tour-primary-strong: #9ae7dc;min-width:320px;min-height:100dvh;background:var(--tour-bg);color:var(--tour-text)}.tour-public h1,.tour-public h2,.tour-public h3{color:var(--tour-text)}.tour-public p{color:var(--tour-muted)}.tour-public-centered{display:grid;place-items:center;padding:24px}.tour-fetch-state{display:grid;width:min(520px,100%);justify-items:center;gap:14px;padding:40px;border:1px solid var(--tour-border);border-radius:24px;background:var(--tour-surface);text-align:center}.tour-fetch-state>svg{width:38px;height:38px;color:var(--tour-primary)}.tour-fetch-state h1{margin:4px 0 0;font-size:clamp(27px,5vw,42px)}.tour-fetch-state p{max-width:420px;margin:0}.tour-fetch-error>svg{color:#ff9b91}.tour-fetch-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-top:10px}.tour-header{display:grid;min-height:88px;grid-template-columns:minmax(150px,.8fr) minmax(0,2fr) minmax(110px,.8fr);align-items:center;gap:24px;padding:max(16px,env(safe-area-inset-top)) max(24px,env(safe-area-inset-right)) 16px max(24px,env(safe-area-inset-left));border-bottom:1px solid var(--tour-border);background:#07100ff5}.tour-brand{display:inline-flex;width:max-content;min-height:48px;align-items:center;gap:11px;color:var(--tour-text);letter-spacing:.13em;text-decoration:none;touch-action:manipulation}.tour-brand>span{display:grid;width:40px;height:40px;place-items:center;border-radius:12px;background:var(--tour-text);color:var(--tour-bg)}.tour-brand svg{width:21px;height:21px}.tour-property-title{min-width:0;text-align:center}.tour-property-title h1{margin:0;overflow:hidden;font-size:clamp(17px,2.4vw,24px);text-overflow:ellipsis;white-space:nowrap}.tour-property-title p{display:flex;align-items:center;justify-content:center;gap:6px;margin:4px 0 0;overflow:hidden;font-size:11px;line-height:1.4;text-overflow:ellipsis;white-space:nowrap}.tour-property-title p svg{width:14px;height:14px;flex:none}.tour-ready-label{display:inline-flex;min-height:32px;align-items:center;justify-self:end;gap:8px;padding:6px 12px;border:1px solid var(--tour-border);border-radius:999px;color:var(--tour-text-soft);font-size:11px;font-weight:700}.tour-ready-label>span{width:7px;height:7px;border-radius:50%;background:var(--tour-primary);box-shadow:0 0 0 4px #70d3c51f}.tour-attributions{display:flex;align-items:flex-start;gap:10px;padding:10px max(24px,env(safe-area-inset-right)) 10px max(24px,env(safe-area-inset-left));border-bottom:1px solid var(--tour-border);background:var(--tour-surface);color:var(--tour-text-soft)}.tour-attributions>svg{width:17px;height:17px;flex:none;margin-top:2px;color:var(--tour-primary)}.tour-attributions>div{display:grid;gap:8px;min-width:0}.tour-attributions section,.tour-attributions p{margin:0}.tour-attributions section{display:flex;flex-wrap:wrap;gap:3px 10px}.tour-attributions p{color:var(--tour-text-soft);font-size:11px;line-height:1.5}.tour-attributions a{display:inline-flex;align-items:center;gap:4px;color:var(--tour-primary-strong);font-weight:700;text-underline-offset:3px}.tour-attributions a svg{width:12px;height:12px}.tour-attributions .tour-engine-notice{padding-top:6px;border-top:1px solid var(--tour-border)}.tour-layout{display:grid;min-height:calc(100dvh - 88px);grid-template-columns:248px minmax(0,1fr)}.tour-rooms{padding:26px 14px max(26px,env(safe-area-inset-bottom));border-right:1px solid var(--tour-border);background:var(--tour-surface)}.tour-rooms-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:4px 10px 18px;color:var(--tour-muted);font-size:11px;font-weight:700;letter-spacing:.09em;text-transform:uppercase}.tour-rooms-heading b{display:grid;min-width:27px;height:27px;place-items:center;border-radius:8px;background:var(--tour-surface-raised);color:var(--tour-text-soft);font-variant-numeric:tabular-nums}.tour-room-options{display:grid;gap:6px}.tour-room-option{display:grid;min-height:54px;grid-template-columns:31px minmax(0,1fr);align-items:center;gap:10px;padding:8px 11px;border:1px solid transparent;border-radius:12px;background:transparent;color:var(--tour-text-soft);cursor:pointer;text-align:left;touch-action:manipulation;transition:background-color .18s ease,border-color .18s ease,color .18s ease}.tour-room-option:hover{border-color:var(--tour-border);background:var(--tour-surface-raised);color:var(--tour-text)}.tour-room-option.is-active{border-color:var(--tour-border-strong);background:#1a2d29;color:var(--tour-text)}.tour-room-option>span{color:var(--tour-muted);font-size:10px;font-variant-numeric:tabular-nums}.tour-room-option>b{overflow:hidden;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.tour-viewer{min-width:0;padding:24px;background:var(--tour-bg)}.tour-viewer-heading{display:flex;min-height:62px;align-items:flex-start;justify-content:space-between;gap:24px;padding:0 2px 18px}.tour-viewer-heading h2{margin:5px 0 0;font-size:clamp(24px,3.6vw,40px)}.tour-viewer-eyebrow{display:inline-flex;align-items:center;gap:7px;color:var(--tour-primary);font-size:10px;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.tour-viewer-eyebrow svg{width:15px;height:15px}.tour-artifact-meta{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px}.tour-artifact-meta>span{min-height:30px;padding:6px 10px;border:1px solid var(--tour-border);border-radius:999px;color:var(--tour-muted);font-size:10px;font-variant-numeric:tabular-nums;font-weight:700}.tour-scene-shell{position:relative;min-height:max(520px,calc(100dvh - 196px));overflow:hidden;border:1px solid var(--tour-border);border-radius:20px;background:#07100f;box-shadow:0 30px 80px #0000003d;overscroll-behavior:contain}.tour-scene{position:absolute;top:0;right:0;bottom:0;left:0}.tour-scene canvas{display:block;width:100%;height:100%;outline:none}.tour-scene canvas:focus-visible{box-shadow:inset 0 0 0 3px var(--tour-primary)}.tour-scene-state{position:absolute;z-index:3;top:0;right:0;bottom:0;left:0;display:grid;place-content:center;justify-items:center;gap:10px;padding:28px;background:#07100f;color:var(--tour-text);text-align:center}.tour-scene-state>svg{width:32px;height:32px;color:var(--tour-primary)}.tour-scene-state>span{max-width:460px;color:var(--tour-muted);font-size:12px;line-height:1.6}.tour-scene-error>svg{color:#ff9b91}.tour-load-track{width:min(280px,60vw);height:5px;overflow:hidden;border-radius:999px;background:var(--tour-surface-raised)}.tour-load-track>i{display:block;width:100%;height:100%;border-radius:inherit;background:var(--tour-primary);transform-origin:left;transition:transform .2s ease-out}.tour-scene-controls{position:absolute;z-index:2;top:14px;right:14px}.tour-control-button{display:inline-flex;min-height:48px;align-items:center;justify-content:center;gap:8px;padding:0 15px;border:1px solid var(--tour-border-strong);border-radius:12px;background:#0d1917f0;color:var(--tour-text);cursor:pointer;font-size:12px;font-weight:750;text-decoration:none;touch-action:manipulation;transition:background-color .18s ease,border-color .18s ease,color .18s ease}.tour-control-button:hover:not(:disabled){border-color:var(--tour-primary);background:var(--tour-surface-raised)}.tour-control-button:disabled{cursor:not-allowed;opacity:.45}.tour-control-button svg{width:18px;height:18px}.tour-control-primary{border-color:var(--tour-primary);background:var(--tour-primary);color:#07100f}.tour-control-primary:hover:not(:disabled){border-color:var(--tour-primary-strong);background:var(--tour-primary-strong)}.tour-control-button:focus-visible,.tour-brand:focus-visible,.tour-room-option:focus-visible,.tour-attributions a:focus-visible{outline:2px solid var(--tour-primary);outline-offset:3px}.tour-controls-help{position:absolute;z-index:2;bottom:14px;left:14px;display:inline-flex;max-width:min(520px,calc(100% - 28px));align-items:center;gap:9px;margin:0;padding:9px 12px;border:1px solid var(--tour-border);border-radius:10px;background:#07100fe6;color:var(--tour-text-soft)!important;font-size:10px;line-height:1.45}.tour-controls-help svg{width:16px;height:16px;flex:none}@media(max-width:900px){.tour-header{min-height:76px;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;padding:max(10px,env(safe-area-inset-top)) 14px 10px}.tour-brand{min-height:48px}.tour-brand>b,.tour-ready-label{display:none}.tour-property-title h1{font-size:16px}.tour-attributions{padding:9px 14px}.tour-attributions section{display:grid}.tour-layout{display:flex;min-height:calc(100dvh - 76px);flex-direction:column}.tour-rooms{padding:10px 12px;overflow:hidden;border-right:0;border-bottom:1px solid var(--tour-border)}.tour-rooms-heading{display:none}.tour-room-options{display:flex;overflow-x:auto;gap:8px;padding-bottom:2px;scrollbar-width:thin;scroll-snap-type:x proximity}.tour-room-option{min-width:168px;scroll-snap-align:start}.tour-viewer{padding:16px 14px max(14px,env(safe-area-inset-bottom))}.tour-viewer-heading{min-height:auto;align-items:flex-end;padding-bottom:14px}.tour-viewer-heading h2{font-size:25px}.tour-artifact-meta>span:not(:first-child){display:none}.tour-scene-shell{min-height:max(430px,calc(100dvh - 235px));border-radius:16px}}@media(max-width:520px){.tour-property-title p{display:none}.tour-viewer-eyebrow{font-size:9px}.tour-scene-controls{top:10px;right:10px}.tour-scene-controls .tour-control-button{width:48px;padding:0;font-size:0}.tour-controls-help{right:10px;bottom:10px;left:10px;max-width:none}.tour-fetch-state{padding:30px 20px}.tour-fetch-actions,.tour-fetch-actions .tour-control-button{width:100%}}@media(prefers-color-scheme:dark){:root{color:#e7f0ed;background:#0c1513;--ink: #e7f0ed;--ink-soft: #bed0ca;--muted: #91a7a0;--primary: #5fc7ba;--primary-strong: #247f75;--primary-soft: #16332e;--accent: #6fbbd3;--surface: #121f1c;--surface-raised: #172622;--surface-muted: #1a2b27;--background: #0c1513;--border: #2b403a;--border-strong: #456159;--danger: #ff9b91;--danger-soft: #3a201e;--warning: #f4c477;--warning-soft: #352a18;--success: #83d7a5;--success-soft: #183526;--info: #86cee4;--info-soft: #18313a;--shadow-sm: 0 8px 24px rgba(0, 0, 0, .2);--shadow-md: 0 24px 70px rgba(0, 0, 0, .3)}.brand-mark,.button-primary{background:#dce9e5;color:#12231f}.auth-page{background:radial-gradient(circle at 15% 15%,rgba(95,199,186,.12),transparent 34%),linear-gradient(135deg,var(--background),#12211d)}.auth-action-card{border-color:var(--border);background:#121f1cf0}.sidebar{background:#101d19}.app-header{background:#0c1513f0}.inline-error p{color:#ffb3ac}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
