.scan-page { overflow:auto; background:var(--bg,#0a0a0f); color:var(--text); min-height:100vh; }
.scan-page [hidden] { display:none !important; }
.scan-header { max-width:1240px; margin:auto; padding:26px 32px; display:flex; align-items:center; justify-content:space-between; border-bottom:1px solid var(--line); font:11px monospace; letter-spacing:1px; }
.scan-brand { display:flex; align-items:center; gap:12px; color:var(--text); text-decoration:none; font-weight:700; }
.scan-header i { color:var(--gold); font-style:normal; margin-left:16px; }
.scan-shell { max-width:1120px; margin:auto; padding:52px 28px 24px; }
.scan-eyebrow,.scan-section-title>div>span { color:var(--gold); font:11px monospace; letter-spacing:2px; }
.scan-intro h1 { font:700 clamp(28px,4vw,48px) 'Orbitron',sans-serif; letter-spacing:-1px; margin:18px 0; }
.scan-intro h1 span { display:block; font:12px monospace; letter-spacing:3px; color:var(--muted); margin-top:16px; }
.scan-intro p,.scan-muted { color:var(--muted); font-size:13px; line-height:1.8; }
.scan-steps { display:grid; grid-template-columns:repeat(4,1fr); list-style:none; padding:0; margin:36px 0 24px; border:1px solid var(--line); border-radius:12px; overflow:hidden; }
.scan-steps li { padding:20px 16px; color:var(--muted); font-size:13px; border-right:1px solid var(--line); }
.scan-steps li:last-child { border:0; }.scan-steps b { margin-right:12px; font:12px monospace; }.scan-steps [aria-current] { background:#f4c44e12; color:var(--gold); box-shadow:inset 0 -2px var(--gold); }
.scan-panel { padding:30px; border:1px solid var(--line); border-radius:16px; background:var(--surface); animation:scan-enter .25s ease; }
.scan-section-title { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-bottom:28px; }.scan-section-title h2 { margin:12px 0 0; font-size:22px; font-weight:500; }.scan-section-title p { font:11px/1.8 monospace; color:var(--muted); }
.scan-upload-grid { display:grid; grid-template-columns:1.3fr 1fr 1fr; gap:16px; }.scan-upload { min-width:0; border:1px dashed var(--line-strong); border-radius:12px; padding:18px; background:var(--surface-2); }.scan-upload.dragging { border-color:var(--gold); }.scan-upload label { cursor:pointer; display:flex; min-height:190px; flex-direction:column; align-items:center; justify-content:center; gap:14px; text-align:center; }.scan-upload input { width:100%; margin-top:12px; font-size:11px; }.scan-upload img { width:100%; max-height:220px; object-fit:contain; border-radius:6px; }.scan-upload small { color:var(--muted); line-height:1.7; overflow-wrap:anywhere; }.scan-upload button { margin-top:12px; }.scan-camera { font-size:32px; color:var(--gold); font-weight:300; }
.scan-actions { margin-top:28px; padding-top:24px; border-top:1px solid var(--line); display:flex; justify-content:space-between; align-items:center; gap:14px; }.scan-actions>span { color:var(--muted); font-size:12px; }.scan-actions>div { display:flex; gap:10px; }.scan-page button { cursor:pointer; min-height:44px; }.scan-page button:disabled { opacity:.4; cursor:not-allowed; }
.scan-quality-layout { display:grid; grid-template-columns:200px 1fr; gap:35px; align-items:center; }.scan-quality-layout>img { width:100%; max-height:270px; object-fit:contain; }.scan-quality-list { list-style:none; padding:0; }.scan-quality-list li { margin:12px 0; padding:16px; border:1px solid var(--line); border-radius:8px; color:var(--acid); }.scan-quality-list .warning { color:var(--gold); background:#f4c44e0a; }
.scan-page fieldset { border:0; padding:0; margin:0 0 26px; }.scan-page legend { padding:0 0 18px; font:12px monospace; color:var(--gold); }.scan-form-grid { display:grid; grid-template-columns:1fr 1fr; gap:20px; }.scan-form-grid label { display:flex; flex-direction:column; gap:10px; font-size:13px; color:var(--muted); }.scan-wide { grid-column:1/-1; }.scan-form-grid input,.scan-form-grid select { width:100%; min-height:46px; border:1px solid var(--line-strong); border-radius:7px; background:var(--surface-2); padding:12px; color:var(--text); font:inherit; }.scan-page :focus-visible { outline:2px solid var(--gold); outline-offset:3px; }.scan-review { font:10px monospace; color:var(--gold); border:1px solid #f4c44e44; padding:9px; border-radius:5px; white-space:nowrap; }
.scan-preview-grid { display:grid; grid-template-columns:1fr 1fr; gap:28px; }.scan-preview-grid figure { margin:0; min-width:0; }.scan-preview-grid figcaption,.scan-slab-heading { font:11px monospace; letter-spacing:1px; color:var(--muted); margin-bottom:18px; }.scan-preview-grid canvas { display:block; width:min(100%,300px); height:auto; margin:auto; border-radius:10px; }.scan-original { position:relative; width:fit-content; max-width:100%; margin:auto; }.scan-original img { display:block; max-width:100%; max-height:420px; }.scan-crop-guide { position:absolute; border:1px dashed var(--gold); pointer-events:none; box-shadow:0 0 0 1px #0008; }.scan-slab-heading { display:flex; justify-content:space-between; margin-top:32px; padding-top:24px; border-top:1px solid var(--line); }#scanThreeHost { width:100%; height:430px; border-radius:12px; overflow:hidden; background:radial-gradient(ellipse at 50% 65%,#28251e,#0a0a0f 70%); }#scanThreeCanvas { display:block; width:100%; height:100%; touch-action:none; }.scan-3d-tools { display:flex; align-items:center; justify-content:center; gap:12px; margin-top:15px; }.scan-3d-tools span { color:var(--muted); font-size:11px; }#savedMessage { color:var(--acid); font-size:13px; }.scan-footer { display:flex; justify-content:space-between; align-items:center; gap:20px; color:var(--muted); font-size:11px; margin-top:25px; }.scan-footer a { color:var(--muted); white-space:nowrap; }
@keyframes scan-enter { from { opacity:0; transform:translateY(8px); } to { opacity:1; transform:translateY(0); } }
@media(max-width:768px) { .scan-header { padding:18px; }.scan-header>span { font-size:9px; }.scan-header i { display:block; margin:5px 0 0; }.scan-shell { padding:30px 16px 20px; }.scan-panel { padding:20px 16px; }.scan-upload-grid,.scan-form-grid,.scan-preview-grid,.scan-quality-layout { grid-template-columns:1fr; }.scan-upload label { min-height:120px; }.scan-steps li { padding:15px 6px; text-align:center; font-size:11px; }.scan-steps b { display:block; margin:0 0 7px; }.scan-section-title { align-items:flex-start; flex-direction:column; }.scan-section-title h2 { font-size:20px; }.scan-actions { flex-wrap:wrap; }.scan-actions>div { width:100%; }.scan-actions>div button { flex:1; }.scan-quality-layout>img { max-height:220px; }.scan-footer { align-items:flex-start; flex-direction:column; }.scan-3d-tools { flex-wrap:wrap; } }
@media(prefers-reduced-motion:reduce) { .scan-page * { animation:none!important; transition:none!important; scroll-behavior:auto!important; } }
