:root{--bg:#f4f6f8;--fg:#202a35;--muted:#556270;--line:#d8dfe6;--field:#758394;--accent:#2457c5;--ok:#216644;--warn:#8a4b08;--error:#b42318;--card:#fff;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:var(--fg);background:var(--bg);font-synthesis:none}*{box-sizing:border-box}body{margin:0;font-size:16px;line-height:1.5}button,input,textarea,select{font:inherit}button,a,input,textarea,summary,select{-webkit-tap-highlight-color:transparent}a{color:var(--accent);text-underline-offset:3px}button{cursor:pointer}button:disabled{cursor:default;opacity:.55}a,button,input,textarea,select,summary{touch-action:manipulation}:focus-visible{outline:2px solid var(--accent);outline-offset:3px}h1:focus{outline:none}h1,h2,h3,p,figure{margin:0}h1{font-size:32px;line-height:1.18;font-weight:650;letter-spacing:-.035em}h2{font-size:22px;line-height:1.3;font-weight:600;letter-spacing:-.02em}h3{font-size:16px;line-height:1.5;font-weight:600}p+p{margin-top:12px}img{display:block;max-width:100%}ul{padding-left:20px}dl,dd{margin:0}small,.small{font-size:14px;line-height:1.45}.muted{color:var(--muted)}.hidden,[hidden]{display:none!important}.row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.wrap{width:100%;max-width:1320px;margin:auto;padding:32px}.narrow{max-width:620px}.top{height:80px;padding:0 32px;max-width:1320px;margin:auto;display:flex;align-items:center;justify-content:space-between;gap:16px}.brand{display:flex;gap:10px;align-items:center;color:var(--fg);text-decoration:none;font-size:18px;font-weight:650;letter-spacing:-.035em;white-space:nowrap}.brand svg{color:var(--accent);flex-shrink:0}.top nav{display:flex;gap:24px;align-items:center;font-size:14px}.top nav>a{color:var(--fg);text-decoration:none;padding:12px 0}.nav-login{border-bottom:1px solid var(--field)}.account{position:relative}.account>summary{list-style:none;cursor:pointer;padding:12px 0}.account-menu{position:absolute;right:0;top:100%;z-index:30;min-width:220px;max-width:calc(100vw - 32px);padding:20px;background:#fff;border:1px solid var(--line);box-shadow:0 10px 30px #202a3514;border-radius:12px;display:grid;gap:12px;overflow-wrap:anywhere}.footer{max-width:1320px;margin:0 auto;padding:28px 32px;display:flex;justify-content:space-between;gap:24px;color:var(--muted);font-size:13px}.footer>div{display:flex;gap:24px}.footer a{color:var(--muted)}main{min-height:calc(100dvh - 160px)}.skip-link{position:fixed;top:-70px;left:16px;background:#fff;padding:12px;z-index:100}.skip-link:focus{top:8px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 20px;min-height:48px;border:1px solid var(--accent);border-radius:8px;background:var(--accent);color:#fff;text-decoration:none;line-height:1.35;font-size:15px;font-weight:550;text-align:center}.btn:hover:not(:disabled){background:#1b48ac;border-color:#1b48ac}.btn.secondary{background:transparent;color:var(--fg);border-color:var(--field)}.btn.secondary:hover:not(:disabled){background:#e9eef5;border-color:var(--field)}.text-button{border:0;padding:10px 0;background:transparent;color:var(--accent);font-size:14px;min-height:44px;text-align:left}.text-link{display:inline-block;padding:12px 0;font-size:15px}.back-link{display:inline-block;font-size:14px;margin-bottom:32px}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:28px}.field-error{color:var(--error);font-size:14px;line-height:1.45}.field-error:empty,[role=alert]:empty,[role=status]:empty{display:none}.field-error:not(:empty){margin-top:12px}.warn{color:var(--warn)}.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:24px}.empty-state{padding:64px 0}.empty-state h1,.empty-state h2{margin-bottom:16px}.empty-state .btn{margin-top:20px}.loading-line{padding:24px 0;color:var(--muted)}.loading-line:before{content:"";display:inline-block;width:12px;height:12px;margin-right:10px;border:2px solid var(--line);border-top-color:var(--accent);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.hero{display:grid;grid-template-columns:5fr 6fr;align-items:center;gap:64px;padding:36px 0 64px}.hero h1{font-size:clamp(34px,3.6vw,48px);line-height:1.12;letter-spacing:-.045em;margin-bottom:36px}.hero-copy{max-width:510px}.hero .btn{min-width:220px;min-height:56px;font-size:16px}.upload-control{margin-bottom:8px}.upload-control p{margin-top:8px}.upload-control.over{outline:2px dashed var(--accent);outline-offset:12px;border-radius:8px}.hero-plan{margin:0;position:relative}.hero-plan img{width:100%;height:auto;border-radius:16px;background:#162634;box-shadow:0 24px 60px #202a3514}.hero-plan figcaption{font-size:12px;line-height:1.5;color:var(--muted);text-align:right;margin-top:12px}.file-privacy{margin-top:4px;max-width:380px;color:var(--muted)}details>summary{cursor:pointer;min-height:44px;display:flex;align-items:center;gap:8px;list-style:none;font-size:14px}details>summary::-webkit-details-marker{display:none}details>summary:after{content:"+";margin-left:4px;font-size:18px;font-weight:400}details[open]>summary:after{content:"−"}.account>summary:after{display:none}details p{margin-bottom:12px}.offer{display:grid;grid-template-columns:1fr 1fr;gap:64px;border-top:1px solid var(--line);padding:40px 0 8px}.offer h2{margin-bottom:12px}.offer-price{font-size:32px;font-weight:600;letter-spacing:-.035em;margin-bottom:4px}.offer #pricing{max-width:480px}.offer #pricing>.small{margin-top:12px}.price-list{margin:8px 0 16px}.price-list>div,.room-areas>div{display:flex;justify-content:space-between;gap:16px;padding:6px 0}.price-list dd{font-variant-numeric:tabular-nums;white-space:nowrap}.price-list dt{color:var(--muted)}.auth-page{padding-top:56px;max-width:490px}.auth-page h1{margin-bottom:28px}.form-stack{display:flex;flex-direction:column;gap:12px}.form-stack>label:not(.consent){font-size:14px;font-weight:550}input:not([type=checkbox]):not([type=file]),textarea,select{width:100%;min-height:48px;padding:12px;border:1px solid var(--field);border-radius:8px;background:var(--card);color:var(--fg);font-size:16px}textarea{resize:vertical;line-height:1.5;min-height:100px}input[aria-invalid=true],textarea[aria-invalid=true]{border-color:var(--error)}.consent{display:flex;align-items:flex-start;gap:12px;font-size:14px;margin:4px 0 12px}.consent input{width:20px;height:20px;flex-shrink:0;accent-color:var(--accent);margin-top:1px}.code-input{letter-spacing:8px;text-align:center;font-size:24px!important;max-width:100%}.terms{max-width:760px}.terms h1{margin-bottom:32px}.terms h2{margin:28px 0 12px}.terms p{color:var(--muted)}.match-page{padding-top:40px;max-width:820px}.match-page h1{margin-bottom:16px}.match-page .row{margin-top:20px}.candidate-plan{margin:24px 0}.plan-img{width:100%;height:auto;border-radius:8px;background:#fff}.room-areas{font-size:14px;color:var(--muted);display:grid;grid-template-columns:1fr 1fr;gap:0 28px}.preset-options{margin:20px 0}.preset[aria-pressed=true]{border-color:var(--accent);background:var(--accent);color:#fff}#preview{margin-top:24px}#preview>.btn{margin-top:24px}.project-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.project-card{color:var(--fg);text-decoration:none;background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden}.project-card:hover{border-color:var(--accent)}.project-card>img,.project-placeholder{width:100%;aspect-ratio:1;object-fit:contain;background:#e9eef2}.project-placeholder{background:linear-gradient(135deg,#e9eef2,#f4f6f8)}.project-card-caption{padding:20px;display:grid;gap:6px}.project-card-caption h2{font-size:18px}.example-image{max-width:720px;margin:auto;border-radius:12px}.example-page>.small{max-width:720px;margin:20px auto}.project-page{padding-top:16px}.project-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px}.project-heading h1{font-size:26px}.project-meta{display:flex;gap:16px;align-items:center;color:var(--muted);font-size:14px}.project-layout,.grid.project{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,380px);gap:28px;align-items:start}.project-canvas,.project-sidebar{min-width:0}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin:0 0 16px}.tabs button{min-height:48px;padding:12px 16px;border:0;border-bottom:2px solid transparent;background:none;color:var(--muted);font-size:14px}.tabs button[aria-selected=true],.tabs button.active{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}.tab-panel{min-height:280px}.viewer{width:100%;aspect-ratio:4/3;background:#e4eaf0;border-radius:12px;position:relative;overflow:hidden}.viewer canvas{display:block;width:100%;height:100%}.workspace-plan{width:100%;max-height:70dvh;object-fit:contain;background:#fff;border-radius:12px}.validation{margin-top:12px;border-bottom:1px solid var(--line);padding-bottom:4px}.validation.has-notes>summary{color:var(--warn)}.details-body{padding:8px 0 12px}.details-body h3{margin-bottom:8px}.details-body ul{font-size:14px;line-height:1.6}.measurements{color:var(--muted)}.project-sidebar{background:#fff;border:1px solid var(--line);border-radius:12px;padding:24px}.project-sidebar h2{margin:0 0 16px;font-size:18px}.feed{display:flex;flex-direction:column;gap:16px;max-height:330px;overflow:auto;overscroll-behavior:contain;margin-bottom:20px}.msg{padding:12px 14px;border-radius:8px;font-size:14px;overflow-wrap:anywhere}.msg.user{background:#edf1f7;align-self:flex-end;max-width:95%;white-space:pre-wrap}.msg.sys{align-self:flex-start;padding-left:0;max-width:100%;white-space:pre-wrap}.msg .small{display:block;margin-top:6px;color:var(--muted);font-size:12px}.edit-form{display:flex;flex-direction:column;gap:10px}.edit-form>label{font-size:14px;font-weight:550}.edit-form .btn{width:100%}.wallet{margin-top:20px;font-size:14px}.bar{height:4px;background:#edf1f7;border-radius:2px;margin-top:10px;overflow:hidden}.bar i{display:block;height:100%;background:var(--accent)}.wallet.low{color:var(--warn)}.budget-details{color:var(--muted)}.budget-details p{margin-top:6px}.project-actions{display:flex;flex-wrap:wrap;gap:20px;border-top:1px solid var(--line);margin-top:24px;padding-top:12px}.project-actions .text-button{color:var(--fg)}.project-actions>details{position:relative}.project-actions details>.actions-menu{position:absolute;right:0;bottom:100%;min-width:230px;background:#fff;z-index:5;border:1px solid var(--line);border-radius:8px;padding:12px;box-shadow:0 10px 30px #202a3514}.views{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.views img{width:100%;border-radius:8px}.purchase-panel{display:grid;gap:16px}.purchase-panel .price{font-size:26px;font-weight:600}.purchase-panel ul{margin:0}.purchase-panel .small{color:var(--muted)}.notice{padding:14px 16px;border:1px solid var(--line);background:#fff;border-radius:8px;font-size:14px;margin-bottom:16px}.notice.success{border-color:#9fc5ac;color:var(--ok)}.notice.error{border-color:#dfb5b0;color:var(--error)}.notice:empty{display:none}.history-list{display:grid;gap:12px;margin-top:16px}.history-item{border-top:1px solid var(--line);padding-top:12px;display:flex;justify-content:space-between;gap:12px;align-items:center}.history-item strong{font-size:14px}.history-item small{display:block;color:var(--muted);font-size:12px}.share-panel{margin-top:16px;display:grid;gap:12px}.share-panel input{font-size:14px!important}.toast{position:fixed;bottom:max(24px,env(safe-area-inset-bottom));left:50%;transform:translate(-50%);padding:12px 20px;max-width:calc(100vw - 32px);border-radius:8px;background:var(--fg);color:#fff;font-size:14px;z-index:100;box-shadow:0 4px 20px #202a3522}.walk-fullscreen{position:fixed!important;top:0;right:0;bottom:0;left:0;z-index:60;background:#dfe4ea;padding:0}.walk-fullscreen .viewer{height:100dvh;width:100%;aspect-ratio:auto;border-radius:0}.walk-exit{position:absolute;z-index:65;top:max(16px,env(safe-area-inset-top));left:max(16px,env(safe-area-inset-left));background:#fff!important;color:var(--fg)!important;border-color:var(--line)!important}.viewer-status{position:absolute;top:16px;left:16px;right:16px;background:#ffffffed;border-radius:8px;padding:10px 14px;color:var(--fg);font-size:14px;pointer-events:auto}.viewer-status:empty{display:none}.walk-fullscreen .viewer-status{top:76px}.viewer-settings{position:absolute;right:max(16px,env(safe-area-inset-right));top:16px;pointer-events:auto;z-index:2;background:#fff;border-radius:8px;color:var(--fg);max-height:65dvh;overflow:auto}.viewer-settings>summary{padding:4px 16px}.viewer-settings>div{padding:0 12px 12px;display:grid;gap:8px;max-width:240px}.viewer-settings button{font-size:13px;min-height:44px;border:1px solid var(--line);border-radius:6px;background:#fff;padding:8px 12px;text-align:left}.viewer-settings button[aria-pressed=true]{background:var(--accent);color:#fff}.viewer-pad{position:absolute;bottom:max(20px,env(safe-area-inset-bottom));left:16px;display:grid;grid-template-columns:repeat(3,44px);gap:4px;pointer-events:auto}.viewer-pad button{width:44px;height:44px;border:1px solid #758394;background:#ffffffe8;border-radius:8px;color:var(--fg);font-size:20px}.viewer-stick{position:absolute;bottom:36px;left:28px;width:104px;height:104px;border:2px solid #ffffffcc;border-radius:50%;background:#202a3533;pointer-events:none}.viewer-stick:after{content:"";position:absolute;top:32px;right:32px;bottom:32px;left:32px;border-radius:50%;background:#ffffffc9;border:1px solid #758394}.viewer-help{position:absolute;bottom:12px;right:16px;max-width:50%;pointer-events:auto;color:var(--fg);background:#ffffffed;border-radius:8px;font-size:13px;padding:8px 12px}.viewer-help>summary{min-height:32px;font-size:13px}.viewer-help p{max-width:260px}.viewer-settings select{font-size:14px;min-height:44px}@media(min-width:1500px){.hero{gap:88px}.hero h1{font-size:50px}}@media(max-width:999px){.project-layout,.grid.project{grid-template-columns:minmax(0,1fr);gap:24px}.project-sidebar{max-width:none}.project-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.hero{gap:32px}.hero h1{font-size:36px}.workspace-plan{max-height:62dvh}.project-sidebar .feed{max-height:240px}.offer{gap:32px}}@media(max-width:600px){.wrap{padding:20px 16px}.top{height:68px;padding:0 16px}.brand{font-size:16px;gap:8px}.brand svg{width:24px;height:24px}.top nav{gap:14px;font-size:13px}.top nav a{max-width:95px}.footer{padding:24px 16px;font-size:12px;gap:12px}.footer>div{gap:16px}h1{font-size:28px}.hero{display:flex;flex-direction:column;gap:20px;padding:12px 0 32px;align-items:stretch}.hero-copy{display:contents}.hero h1{font-size:34px;line-height:1.12;margin:0;order:0}.hero-plan{order:1;max-width:100%}.hero-plan img{aspect-ratio:1.4;object-fit:contain;object-position:center;border-radius:12px;box-shadow:none}.hero-plan figcaption{margin-top:6px;font-size:11px}.upload-control{order:2;margin:0}.hero .btn{width:100%;min-height:52px}.hero .text-link{order:3;align-self:center;padding:0;min-height:32px}.file-privacy{order:4;margin:-8px 0 0}.hero .upload-control p{font-size:12px;margin-top:6px}.offer{grid-template-columns:1fr;gap:20px;padding-top:28px}.offer h2{font-size:21px}.offer-price{font-size:28px}.offer #pricing{max-width:none}.auth-page{padding-top:28px}.auth-page .back-link{margin-bottom:28px}.room-areas{grid-template-columns:1fr}.page-heading{align-items:flex-start;flex-wrap:wrap;margin-bottom:24px}.project-cards{grid-template-columns:1fr;gap:20px}.project-card>img{aspect-ratio:1.3;object-fit:cover}.project-heading{display:block}.project-heading h1{font-size:24px}.project-meta{margin-top:8px;justify-content:space-between}.tabs{gap:0;flex-wrap:wrap}.tabs button{flex:1;min-width:65px;padding:10px 8px;font-size:13px}.project-sidebar{padding:20px 16px}.project-layout{gap:20px}.views{grid-template-columns:1fr}.project-actions{gap:16px;margin-top:16px}.project-actions>.text-button{font-size:13px}.workspace-plan{max-height:60dvh}.viewer{aspect-ratio:1.1}.walk-fullscreen .viewer-settings{top:16px;right:12px}.walk-exit{font-size:13px;padding:10px 12px;left:12px}.viewer-help{font-size:12px;max-width:calc(100% - 164px)}.viewer-settings>summary{font-size:13px;padding:4px 12px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;scroll-behavior:auto!important;transition:none!important}}#sent-to{overflow-wrap:anywhere}.viewer-settings{max-height:min(65dvh,calc(100% - 32px))}
