/* Public site (landing, application, status, invite): page-only additions to studio.css. */
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
.lp-sec{scroll-margin-top:72px}
.lp-brand{color:inherit;text-decoration:none}
a.lp-link{text-decoration:none;display:inline-block}
.vh{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.lp-skip{position:absolute;left:12px;top:-60px;z-index:50;background:var(--surface);color:var(--fg);padding:8px 12px;border-radius:8px;box-shadow:var(--shadow-2)}
.lp-skip:focus{top:12px}

/* Application: native inputs inside the prototype's button-styled controls. */
.ob-preview{display:flex;gap:10px;align-items:center}
.choice input,.chipf input,.capchip input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
label.choice,label.chipf,label.capchip{position:relative;user-select:none}
label.chipf{display:inline-flex;align-items:center}
label.choice:has(input:checked){border-color:var(--accent);background:var(--accent-soft);box-shadow:0 0 0 1px var(--accent) inset}
label.choice:has(input:checked) .radio{border-color:var(--accent)}
label.choice:has(input:checked) .radio::after{content:"";width:8px;height:8px;border-radius:50%;background:var(--accent)}
label.chipf:has(input:checked){background:var(--fg);color:var(--bg);border-color:var(--fg)}
label.capchip:has(input:checked){border-color:var(--accent);background:var(--accent-soft);color:var(--fg)}
label.capchip .ck{display:none}
label.capchip:has(input:checked) .ck{display:inline-flex}
label.capchip .ck svg{width:14px;height:14px;color:var(--accent)}
label.choice:has(input:focus-visible),label.chipf:has(input:focus-visible),label.capchip:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:2px}
.ob-err{margin:0}
.ob-step{text-decoration:none}
.file-pick{cursor:pointer;justify-content:flex-start;align-self:flex-start;position:relative}
.file-pick input{position:absolute;opacity:0;width:1px;height:1px}
.file-pick:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:2px}
.status-card{display:flex;flex-direction:column;gap:10px}
.ob-fs{border:0;padding:0;margin:0;min-width:0}
.ob-legend{font-size:12px;font-weight:600;color:var(--fg-2);margin-bottom:6px;padding:0}
.ob-legend-h{font-size:14px;font-weight:600;padding:0;margin-bottom:6px}
.linklike{border:0;background:none;padding:0;font:inherit;color:var(--accent);cursor:pointer;text-decoration:underline}

/* Landing: real project images (AsBuilt 3D / Acensium work) */
.wart img{display:block;width:100%;height:auto;aspect-ratio:16/10;object-fit:cover;background:var(--surface-2)}
.wart .cad-svg{aspect-ratio:16/10}
/* Landing hero: one real model render in a quiet card (Kyle 2026-10-04: no window chrome) */
.lp-shot{margin:0;min-width:0;border-radius:18px;overflow:hidden;background:#eef3f7;border:1px solid color-mix(in srgb,var(--line) 70%,transparent);box-shadow:0 24px 60px -24px rgba(0,0,0,.55),0 0 0 6px color-mix(in srgb,var(--accent) 8%,transparent)}
.lp-shot img{display:block;width:100%;height:auto;aspect-ratio:1239/742}

/* Scan partners (Kyle 2026-10-06) */
.scn-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:6px}
.scn-item{display:flex;align-items:center;gap:8px;padding:6px 8px;border:1px solid var(--line,#e3e6ec);border-radius:8px;font-size:13px}
.scn-item .grow{flex:1;min-width:0}
.scn-qty{width:58px;padding:4px 6px}
.scn-areas{display:grid;gap:6px}
.scn-ah,.scn-arow{display:grid;grid-template-columns:1.3fr 1fr 1fr .8fr .6fr;gap:6px}
@media (max-width:640px){.scn-ah{display:none}.scn-arow{grid-template-columns:1fr 1fr}}
.scn-list{margin:8px 0 0;padding-left:18px;font-size:13px}
.scn-edit{margin-top:10px}
.scn-edit>summary{list-style:none;cursor:pointer;display:inline-flex}
.scn-edit>summary::-webkit-details-marker{display:none}
