.scan-badge {display:inline-flex;justify-self:start;align-items:center;padding:5px 10px;border-radius:14px;background:#dceee8;color:#185448;font-size:13px;font-weight:650}
.scan-live {display:grid;gap:10px}
.scan-camera {position:relative;display:grid;grid-template: auto minmax(0,1fr) auto / minmax(0,1fr);min-height:490px;aspect-ratio:.75;isolation:isolate;overflow:hidden;border-radius:22px;background:#0a2220;color:#fff}
.scan-camera>img {position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 42%;transform:scale(1.12);transition:filter .2s}
.scan-phase-face>img {opacity:.12}
.scan-phase-light>img {filter:brightness(.43)}
.scan-phase-angle>img {transform:scale(1.12) translateX(12%)}
.scan-phase-distance>img {transform:scale(.77);object-fit:contain}
.scan-shade {position:absolute;inset:0;background:linear-gradient(180deg,#0b221d88,transparent 34%,transparent 63%,#071b18ee)}
.scan-camera-head {position:relative;grid-area:1/1;margin:12px;display:flex;gap:6px;justify-content:space-between;align-items:center}
.scan-camera-head small {font-weight:650;text-shadow:0 1px 4px #000}
.scan-overlay {position:absolute;inset:12% 16% 18%;width:68%;height:70%;overflow:visible;fill:none;pointer-events:none}
.scan-overlay>ellipse {stroke:#c9ffe3;stroke-width:1;stroke-dasharray:4 4}
.scan-wire {stroke:#b1ffe6;stroke-width:.65;opacity:.78}
.scan-dots {fill:#b3fbd0;stroke:#205b45;stroke-width:.7}
.scan-areas {fill:#71efd066;stroke:#d8fff1;stroke-width:1}
.scan-effect {fill:#9af4dc66;stroke:#d8fff1;stroke-width:1.3}
.scan-effect-1,.scan-effect-5 {fill:#f9978d77;stroke:#ffe4de}
.scan-effect-4,.scan-effect-6 {fill:#b18c6377;stroke:#ffe6c8}
.scan-effect-7,.scan-effect-8 {fill:#6ca8f177;stroke:#d6ebff}
.scan-left,.scan-right {position:relative;grid-area:2/1;display:grid;align-content:start;gap:8px;overflow:auto;margin:4px 9px;scrollbar-width:thin}
.scan-left {justify-self:start}
.scan-right {justify-self:end}
.scan-camera :is(.scan-left,.scan-right) button {min-width:50px;min-height:44px;margin:0;padding:5px 7px;font-size:12px;color:#fff;background:#14392eea;border:1px solid #ffffff33;border-radius:10px}
.scan-camera button[aria-pressed=true] {background:#e5fff4;color:#103f33}
.scan-beam {position:absolute;left:22%;right:22%;top:24%;height:2px;pointer-events:none;background:#b3fff1;box-shadow:0 0 22px 6px #98ffe0;animation:scan-beam 1.55s ease-in-out both}
@keyframes scan-beam {to {top:69%}}
.scan-live-footer {position:relative;grid-area:3/1;margin:10px;display:grid;gap:7px}
.scan-status,.scan-finding {padding:10px 12px;border-radius:12px;color:#fff;background:#12342ef0;font-size:14px}
.scan-finding {display:grid;grid-template-columns:auto 1fr;gap:12px;text-align:left;border:1px solid #c8ffe855;width:100%;min-height:70px}
.scan-finding div {display:grid;align-content:center;gap:2px}
.scan-finding strong {font-size:29px;color:#caffdf;line-height:1}
.scan-finding small,.scan-finding span {font-size:12px;color:#d8f3e8}
.scan-finding b {font-size:14px}
.scan-live-actions,.scan-report-actions {display:flex;flex-wrap:wrap;gap:7px}
.scan-live-actions button,.scan-report-actions button {flex:1;min-height:44px}
.scan-controls {color:#31534c}
.scan-controls summary {padding:9px 0;cursor:pointer}
.scan-controls .button-row {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.scan-controls .button-row button {min-height:44px;margin:0;padding:7px 4px;font-size:13px;white-space:nowrap}
.scan-model {position:relative;display:grid;justify-items:center;background:radial-gradient(ellipse at 50% 40%,#235b51,#112d2d 76%);color:#fff;border-radius:17px;padding:10px 10px 15px;overflow:hidden}
.scan-model canvas {width:min(100%,310px);height:auto;aspect-ratio:29/30}
.scan-model-interactive canvas {cursor:grab;touch-action:none}
.scan-model-interactive canvas:active {cursor:grabbing}
.scan-model p {margin:0;color:#d0f4e8;font-size:14px}
.scan-photo>div {position:relative;overflow:hidden;aspect-ratio: .9;border-radius:14px}
.scan-photo img {width:100%;height:100%;object-fit:cover}
.scan-photo svg {position:absolute;inset:0;width:100%;height:100%}
.scan-report-actions {margin-bottom:12px}
.scan-live button:focus-visible,.scan-capture button:focus-visible,.scan-model canvas:focus-visible {outline:3px solid #31936e;outline-offset:2px}
@media (prefers-reduced-motion:reduce) {.scan-beam {animation:none;top:48%}.scan-camera>img {transition:none}}
.scan-anchor {position:absolute;z-index:1;min-height:44px;padding:5px 8px;font-size:12px;border:1px solid #b9f7e1;border-radius:12px;color:#fff;background:#14513ce8}
.scan-anchor-0 {top:28%;left:44%}
.scan-anchor-1 {top:46%;left:31%}
.scan-anchor-2 {top:46%;left:53%}

.scan-capture,.scan-photo {display:grid;gap:14px}
.scan-capture p {margin:0}
.scan-web-entry {display:grid;gap:6px;margin-top:8px}
.scan-web-entry button,.scan-permission-actions button {min-height:44px}
.scan-sample-note {padding:10px 12px;border-radius:10px;background:#e7f3ed;color:#174e41;font-size:14px}
.scan-model-controls,.scan-model-actions {display:flex;gap:8px;flex-wrap:wrap}
.scan-model-controls button,.scan-model-actions button {flex:1;min-height:44px}
.scan-mesh-info {display:grid;gap:6px;margin:0}
.scan-mesh-info div {display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid #dceae3}
.scan-mesh-info dd {margin:0;text-align:right;font-variant-numeric:tabular-nums}
.scan-left button:disabled {opacity:.58;cursor:default}
.scan-photo>button {min-height:44px}
