:root {
  color-scheme: dark;
  --bg:#070b15; --panel:#0d1424; --panel2:#111a2d; --line:#24304b;
  --text:#f5f7ff; --muted:#9aa9c7; --accent:#6ee7b7; --accent2:#7dd3fc;
  --warn:#fbbf24; --danger:#fb7185; --good:#34d399; --shadow:0 18px 48px rgba(0,0,0,.35);
  --radius:18px;
}
*{box-sizing:border-box} html,body{margin:0;min-height:100%;background:radial-gradient(circle at 80% -10%,#172a46 0,#070b15 35%);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
button,input,select{font:inherit} button{color:inherit} button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--accent2);outline-offset:2px}
.hidden{display:none!important}.muted{color:var(--muted)}.tiny{font-size:.74rem}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}
#appShell{min-height:100vh;padding-bottom:78px}.topbar{position:sticky;top:0;z-index:20;height:68px;padding:10px 16px;display:flex;align-items:center;justify-content:space-between;background:rgba(7,11,21,.88);backdrop-filter:blur(16px);border-bottom:1px solid rgba(255,255,255,.06)}
.brand{border:0;background:none;display:flex;align-items:center;gap:10px;padding:0;text-align:left}.brand-mark{display:grid;place-items:center;width:40px;height:40px;border-radius:14px;background:linear-gradient(145deg,var(--accent2),var(--accent));color:#061018;font-weight:900;box-shadow:0 8px 24px rgba(110,231,183,.16)}.brand strong{display:block;letter-spacing:-.02em}.brand small{display:block;color:var(--muted);font-size:.62rem;letter-spacing:.14em;margin-top:1px}
.top-actions{display:flex;align-items:center;gap:9px}.engine-badge{font-size:.72rem;border:1px solid var(--line);padding:6px 9px;border-radius:999px;color:var(--muted);background:rgba(255,255,255,.03)}.icon-btn{border:1px solid var(--line);background:var(--panel2);width:38px;height:38px;border-radius:12px;font-size:1.25rem;display:grid;place-items:center}
main{max-width:1080px;margin:0 auto;padding:20px 16px 48px}.bottom-nav{position:fixed;z-index:25;bottom:0;left:0;right:0;height:72px;padding:6px max(10px,env(safe-area-inset-right)) max(6px,env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left));display:grid;grid-template-columns:repeat(5,1fr);background:rgba(8,13,24,.95);backdrop-filter:blur(18px);border-top:1px solid rgba(255,255,255,.08)}.nav-item{border:0;background:none;color:#7181a3;border-radius:14px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px}.nav-item span{font-size:1.25rem}.nav-item small{font-size:.68rem}.nav-item.active{color:var(--accent);background:rgba(110,231,183,.08)}
.hero{padding:24px 0 18px}.eyebrow{font-size:.7rem;font-weight:800;letter-spacing:.14em;color:var(--accent);text-transform:uppercase}.hero h1{font-size:clamp(2rem,8vw,3.3rem);line-height:.98;margin:10px 0 12px;letter-spacing:-.05em;max-width:800px}.hero p{color:var(--muted);max-width:720px;line-height:1.6;margin:0}.hero-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px}
.btn{border:1px solid var(--line);background:var(--panel2);padding:11px 15px;border-radius:13px;font-weight:750;cursor:pointer}.btn.primary{background:linear-gradient(135deg,var(--accent),#60a5fa);border-color:transparent;color:#061017}.btn.ghost{background:transparent}.btn.danger{color:#ffd4dc;border-color:rgba(251,113,133,.45)}.btn.small{padding:8px 11px;font-size:.82rem}.btn:disabled{opacity:.45;cursor:not-allowed}
.grid{display:grid;gap:14px}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.panel{background:linear-gradient(180deg,rgba(17,26,45,.96),rgba(11,17,30,.96));border:1px solid rgba(255,255,255,.075);border-radius:var(--radius);padding:16px;box-shadow:0 10px 30px rgba(0,0,0,.12)}.panel h2,.panel h3{margin:0 0 8px;letter-spacing:-.025em}.panel p{color:var(--muted);line-height:1.5}.metric-tile{padding:16px;border-radius:16px;background:rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.06)}.metric-tile strong{font-size:1.6rem;display:block}.metric-tile small{color:var(--muted)}
.section-head{display:flex;align-items:end;justify-content:space-between;gap:12px;margin:22px 0 10px}.section-head h2{margin:0}.section-head p{margin:3px 0 0;color:var(--muted);font-size:.86rem}.feature-row{display:grid;grid-template-columns:42px 1fr;gap:12px;align-items:start}.feature-icon{width:42px;height:42px;border-radius:13px;background:rgba(125,211,252,.1);display:grid;place-items:center;color:var(--accent2);font-weight:900}
.status-dot{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:5px;background:var(--muted)}.status-dot.good{background:var(--good)}.status-dot.warn{background:var(--warn)}
.wizard-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.steps{display:flex;gap:6px}.step-dot{width:34px;height:6px;border-radius:999px;background:#25314c}.step-dot.active{background:var(--accent)}.step-dot.done{background:#4f8d7b}.wizard-title h1{font-size:1.65rem;margin:4px 0}.wizard-title p{margin:0;color:var(--muted)}
.capture-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.capture-card{position:relative;border:1px dashed #405071;background:rgba(255,255,255,.025);border-radius:18px;min-height:330px;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden}.capture-card.required::after{content:"REQUIRED";position:absolute;top:10px;right:10px;font-size:.62rem;font-weight:900;letter-spacing:.11em;color:#061017;background:var(--accent);padding:5px 7px;border-radius:8px}.capture-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:#050810}.capture-empty{text-align:center;padding:20px}.card-outline{width:112px;aspect-ratio:5/7;border:2px solid #445779;border-radius:8px;margin:0 auto 14px;position:relative}.card-outline:after{content:"";position:absolute;inset:9px;border:1px solid rgba(255,255,255,.16);border-radius:5px}.capture-actions{position:absolute;bottom:12px;left:12px;right:12px;display:flex;justify-content:center;gap:8px;z-index:2}.capture-card.has-image .capture-actions{background:linear-gradient(transparent,rgba(0,0,0,.76));bottom:0;left:0;right:0;padding:32px 12px 12px}.file-input{display:none}.quality-strip{position:absolute;top:10px;left:10px;z-index:3;display:flex;gap:5px;flex-wrap:wrap;max-width:70%}.chip{display:inline-flex;align-items:center;gap:5px;font-size:.68rem;padding:5px 7px;border-radius:999px;background:rgba(7,11,21,.86);border:1px solid rgba(255,255,255,.11);backdrop-filter:blur(8px)}.chip.good{color:#b9f7df}.chip.warn{color:#ffe39a}.chip.bad{color:#ffb4c0}
.optional-scans{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.mini-capture{border:1px dashed #344361;border-radius:13px;min-height:120px;background:rgba(255,255,255,.02);display:grid;place-items:center;text-align:center;padding:8px;overflow:hidden;position:relative}.mini-capture img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.mini-capture span{font-size:.72rem;color:var(--muted);z-index:1}.mini-capture.has-image span{background:rgba(0,0,0,.65);padding:4px 7px;border-radius:8px;color:#fff}
.progress-card{display:grid;grid-template-columns:48px 1fr;gap:12px;align-items:center}.spinner{width:42px;height:42px;border:4px solid #24304b;border-top-color:var(--accent);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.progress-bar{height:7px;background:#202a42;border-radius:999px;overflow:hidden}.progress-bar span{display:block;height:100%;background:linear-gradient(90deg,var(--accent),var(--accent2));width:0;transition:width .2s}
.search-bar{display:flex;gap:8px}.input{width:100%;background:#080d19;border:1px solid var(--line);color:var(--text);border-radius:13px;padding:12px 13px}.input::placeholder{color:#657395}.field label{display:block;font-size:.78rem;color:var(--muted);margin:0 0 6px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.card-results{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin-top:14px}.card-result{border:1px solid var(--line);background:var(--panel);border-radius:14px;overflow:hidden;text-align:left;padding:0;cursor:pointer}.card-result img{width:100%;aspect-ratio:245/337;object-fit:contain;background:#050810}.card-result .info{padding:9px}.card-result strong{display:block;font-size:.85rem}.card-result small{display:block;color:var(--muted);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.identity-card{display:grid;grid-template-columns:120px 1fr;gap:14px}.identity-card img{width:120px;border-radius:9px;background:#050810}.identity-card h2{margin:0 0 4px}.meta-list{display:flex;gap:6px;flex-wrap:wrap;margin:10px 0}.price-row{display:flex;gap:10px;flex-wrap:wrap}.price-pill{background:rgba(52,211,153,.08);border:1px solid rgba(52,211,153,.2);padding:8px 10px;border-radius:11px}.price-pill strong{display:block}.price-pill small{color:var(--muted)}
.grade-hero{display:grid;grid-template-columns:180px 1fr;gap:18px;align-items:center}.grade-ring{width:170px;height:170px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--accent) calc(var(--pct,80)*1%),#1b2740 0);position:relative}.grade-ring:before{content:"";position:absolute;inset:10px;background:var(--panel);border-radius:50%}.grade-value{position:relative;text-align:center}.grade-value strong{font-size:3.5rem;letter-spacing:-.06em}.grade-value small{display:block;color:var(--muted);font-weight:700}.verdict{font-size:1.2rem;font-weight:900;margin:3px 0}.confidence{color:var(--muted);font-size:.86rem}.subgrades{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:9px;margin-top:15px}.subgrade{border:1px solid var(--line);border-radius:13px;padding:11px;background:rgba(255,255,255,.025)}.subgrade small{color:var(--muted);display:block}.subgrade strong{font-size:1.35rem}.bar{height:5px;background:#1f2940;border-radius:999px;margin-top:7px;overflow:hidden}.bar i{height:100%;display:block;background:linear-gradient(90deg,var(--accent2),var(--accent))}
.centering-box{display:grid;grid-template-columns:1fr 1fr;gap:10px}.ratio-card{padding:12px;border-radius:14px;border:1px solid var(--line);background:rgba(255,255,255,.025)}.ratio-card strong{display:block;font-size:1.2rem}.ratio-card small{color:var(--muted)}
.defect-list{display:grid;gap:8px}.defect{display:grid;grid-template-columns:10px 1fr auto;gap:9px;align-items:start;padding:10px;border:1px solid var(--line);border-radius:12px}.sev{width:8px;height:8px;border-radius:50%;margin-top:5px;background:var(--muted)}.sev.low{background:var(--warn)}.sev.med,.sev.high{background:var(--danger)}.defect small{color:var(--muted)}
.annotated-wrap{position:relative;max-width:410px;margin:0 auto}.annotated-wrap canvas{width:100%;display:block;border-radius:13px;background:#050810}
.roi-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.roi-stat{background:rgba(255,255,255,.03);border:1px solid var(--line);border-radius:13px;padding:12px}.roi-stat strong{display:block;font-size:1.2rem}.roi-stat small{color:var(--muted)}.recommendation{padding:13px;border-radius:13px;font-weight:800}.recommendation.good{background:rgba(52,211,153,.1);border:1px solid rgba(52,211,153,.3);color:#b9f7df}.recommendation.neutral{background:rgba(251,191,36,.09);border:1px solid rgba(251,191,36,.3);color:#ffe8ab}.recommendation.bad{background:rgba(251,113,133,.09);border:1px solid rgba(251,113,133,.3);color:#ffc0cb}
.history-row{display:grid;grid-template-columns:54px 1fr auto;gap:11px;align-items:center;padding:10px 0;border-bottom:1px solid rgba(255,255,255,.06)}.history-row:last-child{border:0}.history-row img{width:54px;height:74px;object-fit:contain;border-radius:5px;background:#050810}.history-row strong{display:block}.history-row small{color:var(--muted)}.history-grade{font-size:1.25rem;font-weight:900}
.camera-dialog{width:min(96vw,720px);height:min(92dvh,900px);max-width:none;max-height:none;margin:auto;padding:0;border:0;border-radius:22px;background:#050810;color:white;box-shadow:var(--shadow);overflow:hidden}.camera-dialog::backdrop,.sheet-dialog::backdrop{background:rgba(0,0,0,.78);backdrop-filter:blur(5px)}.camera-head{height:64px;display:flex;justify-content:space-between;align-items:center;padding:12px 14px}.camera-head small{display:block;color:var(--muted);font-size:.75rem}.camera-stage{position:relative;height:calc(100% - 164px);min-height:360px;background:#000;overflow:hidden}.camera-stage video{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 50%;transform:none}.camera-guide{position:absolute;inset:0;pointer-events:none;display:grid;place-items:center}.camera-guide-frame{position:relative;width:58%;aspect-ratio:63/88;border:2px solid rgba(110,231,183,.98);border-radius:15px;box-shadow:0 0 0 9999px rgba(0,0,0,.32),0 0 28px rgba(110,231,183,.12)}.camera-guide-frame small{position:absolute;left:50%;bottom:-26px;transform:translateX(-50%);white-space:nowrap;font-size:.62rem;letter-spacing:.14em;font-weight:850;color:#d8fff0;text-shadow:0 1px 6px #000}.guide-corner{position:absolute;width:26px;height:26px;border-color:#fff;border-style:solid}.guide-corner.tl{left:-3px;top:-3px;border-width:4px 0 0 4px;border-radius:13px 0 0 0}.guide-corner.tr{right:-3px;top:-3px;border-width:4px 4px 0 0;border-radius:0 13px 0 0}.guide-corner.br{right:-3px;bottom:-3px;border-width:0 4px 4px 0;border-radius:0 0 13px 0}.guide-corner.bl{left:-3px;bottom:-3px;border-width:0 0 4px 4px;border-radius:0 0 0 13px}.camera-controls{height:100px;display:flex;align-items:center;justify-content:space-between;padding:10px 18px max(10px,env(safe-area-inset-bottom));gap:12px;background:#050810}.camera-controls>span{color:var(--muted);font-size:.78rem;max-width:260px;line-height:1.35}.shutter{flex:0 0 auto;width:64px;height:64px;border-radius:50%;border:5px solid white;background:#dce8f4;box-shadow:inset 0 0 0 4px #111827}.sheet-dialog{width:min(94vw,880px);max-height:82vh;border:1px solid var(--line);border-radius:20px;background:var(--panel);color:var(--text);padding:0}.sheet-head{position:sticky;top:0;z-index:2;background:var(--panel);display:flex;justify-content:space-between;align-items:center;padding:14px;border-bottom:1px solid var(--line)}.card-picker-grid{padding:12px;display:grid;grid-template-columns:repeat(auto-fill,minmax(135px,1fr));gap:9px;overflow:auto}.toast-host{position:fixed;z-index:80;left:50%;bottom:86px;transform:translateX(-50%);width:min(92vw,500px);display:grid;gap:7px}.toast{background:#111a2d;border:1px solid #34415e;border-radius:13px;padding:11px 13px;box-shadow:var(--shadow);animation:toastin .2s ease}@keyframes toastin{from{transform:translateY(8px);opacity:0}}
.about-list{display:grid;gap:10px}.about-list a{color:var(--accent2)}.notice{font-size:.82rem;line-height:1.5;color:var(--muted);padding:11px;border-left:3px solid var(--warn);background:rgba(251,191,36,.05);border-radius:0 10px 10px 0}.success-notice{border-left-color:var(--accent);background:rgba(110,231,183,.05)}
@media(max-width:720px){main{padding-top:14px}.grid.two,.grid.three,.form-grid{grid-template-columns:1fr}.capture-grid{grid-template-columns:1fr}.capture-card{min-height:390px}.optional-scans{grid-template-columns:repeat(2,1fr)}.grade-hero{grid-template-columns:1fr;text-align:center}.grade-ring{margin:0 auto}.subgrades{grid-template-columns:repeat(2,1fr)}.identity-card{grid-template-columns:92px 1fr}.identity-card img{width:92px}.roi-grid{grid-template-columns:1fr}.centering-box{grid-template-columns:1fr}.hero h1{font-size:2.5rem}.engine-badge{display:none}}
@media(min-width:900px){.bottom-nav{left:50%;right:auto;transform:translateX(-50%);width:560px;bottom:12px;border:1px solid rgba(255,255,255,.08);border-radius:22px;height:66px;box-shadow:var(--shadow)}#appShell{padding-bottom:90px}}

/* public/install experience */
.icon-btn.installed{color:var(--accent);border-color:rgba(110,231,183,.35);background:rgba(110,231,183,.08)}
.install-dialog{width:min(92vw,560px)}
.install-body{padding:20px}
.install-big{width:64px;height:64px;border-radius:20px;display:grid;place-items:center;background:linear-gradient(145deg,rgba(125,211,252,.16),rgba(110,231,183,.12));border:1px solid rgba(255,255,255,.08);font-size:1.75rem;margin-bottom:14px}
.install-body h2{margin:0 0 8px;font-size:1.55rem;letter-spacing:-.035em}.install-body p{color:var(--muted);line-height:1.55}.install-body ol{margin:16px 0;padding-left:23px;display:grid;gap:11px;line-height:1.45}.btn.wide{width:100%;margin-top:10px}
.welcome-dialog{width:min(92vw,620px)}.welcome-wrap{padding:28px}.welcome-mark{width:68px;height:68px;border-radius:22px;display:grid;place-items:center;background:linear-gradient(145deg,var(--accent2),var(--accent));color:#061018;font-weight:950;font-size:1.25rem;margin-bottom:20px}.welcome-wrap h2{font-size:2rem;letter-spacing:-.045em;margin:8px 0 10px}.welcome-wrap>p{color:var(--muted);line-height:1.6;margin:0}.welcome-points{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin:22px 0}.welcome-points>div{padding:13px;border-radius:14px;border:1px solid var(--line);background:rgba(255,255,255,.025)}.welcome-points span{width:26px;height:26px;border-radius:9px;background:rgba(110,231,183,.1);color:var(--accent);font-weight:900;display:grid;place-items:center;margin-bottom:9px}.welcome-points strong,.welcome-points small{display:block}.welcome-points small{color:var(--muted);font-size:.72rem;line-height:1.35;margin-top:3px}.text-btn{display:block;width:100%;border:0;background:none;color:var(--muted);padding:10px;cursor:pointer}.text-btn:hover{color:var(--text)}
.update-banner{position:fixed;z-index:90;left:50%;top:max(12px,env(safe-area-inset-top));transform:translateX(-50%);width:min(92vw,560px);padding:10px 11px 10px 14px;border-radius:15px;background:#111a2d;border:1px solid #34415e;box-shadow:var(--shadow);display:flex;align-items:center;justify-content:space-between;gap:12px}.update-banner span{font-size:.85rem;font-weight:700}
@media(max-width:560px){.welcome-wrap{padding:22px 18px}.welcome-points{grid-template-columns:1fr}.welcome-points>div{display:grid;grid-template-columns:30px 1fr;column-gap:9px;align-items:center}.welcome-points span{grid-row:1/3;margin:0}.welcome-points small{grid-column:2}.top-actions{gap:6px}.icon-btn{width:36px;height:36px}}
@media(display-mode:standalone){.topbar{padding-top:max(10px,env(safe-area-inset-top));height:calc(68px + env(safe-area-inset-top))}}


/* grading/search/camera reliability pass */
.physical-check{margin-top:14px;border-color:rgba(251,191,36,.22);background:linear-gradient(180deg,rgba(34,29,18,.82),rgba(11,17,30,.96))}.physical-check-head{display:flex;justify-content:space-between;gap:14px;align-items:start}.physical-check-head h3{margin:3px 0 4px}.physical-check-head p{margin:0;max-width:700px}.structure-badge{flex:0 0 auto;font-size:.64rem;letter-spacing:.12em;font-weight:900;color:#ffe6a2;border:1px solid rgba(251,191,36,.35);background:rgba(251,191,36,.08);padding:7px 9px;border-radius:999px}.damage-toggles{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}.damage-toggles label{display:flex;align-items:center;gap:7px;padding:9px 10px;border:1px solid var(--line);border-radius:11px;background:rgba(255,255,255,.025);font-size:.82rem;color:var(--muted)}.damage-toggles input{accent-color:var(--warn)}.damage-cap{margin-top:10px;padding:10px 12px;border-radius:12px;background:rgba(251,113,133,.08);border:1px solid rgba(251,113,133,.3);color:#ffd0d8}.preselected-card{display:grid;grid-template-columns:auto 1fr auto;gap:8px 12px;align-items:center;margin-bottom:14px}.preselected-card strong{font-size:1rem}.preselected-card small{grid-column:2;color:var(--muted)}.preselected-card .btn{grid-row:1/3;grid-column:3}
.search-hero strong{color:var(--text)}.search-examples{display:flex;gap:7px;flex-wrap:wrap;margin-top:10px}.search-examples button{border:1px solid var(--line);background:rgba(255,255,255,.025);color:var(--muted);padding:6px 9px;border-radius:999px;font-size:.73rem;cursor:pointer}.search-examples button:hover{color:var(--text);border-color:#44536f}.search-summary{min-height:32px;display:flex;align-items:center;gap:9px;color:var(--muted);font-size:.8rem;margin-top:4px}.search-summary strong{font-size:1rem;color:var(--accent)}.empty-state{grid-column:1/-1;display:grid;place-items:center;text-align:center;min-height:150px;border:1px dashed var(--line);border-radius:16px;color:var(--muted)}.empty-state strong{color:var(--text)}.empty-state small{margin-top:4px}.card-image-frame{position:relative;width:100%;aspect-ratio:245/337;background:#050810;display:grid;place-items:center;overflow:hidden}.card-image-frame img{position:relative;z-index:1;width:100%;height:100%;object-fit:contain;background:transparent}.image-fallback-label{position:absolute;z-index:0;color:#566480;font-size:.72rem}.card-image-frame.image-missing .image-fallback-label{display:none}.card-result .info em{display:block;margin-top:5px;color:#7181a3;font-style:normal;font-size:.65rem}.card-result.loading{opacity:.65;pointer-events:none}.remote-card-image{object-fit:contain}.identity-card .remote-card-image{aspect-ratio:245/337;object-fit:contain}.chip.bad{color:#ffd0d8;border-color:rgba(251,113,133,.4);background:rgba(251,113,133,.08)}
@media(max-width:720px){.camera-dialog{inset:0;width:100vw;height:100dvh;margin:0;border-radius:0}.camera-head{height:60px;padding-top:max(10px,env(safe-area-inset-top))}.camera-stage{height:calc(100% - 162px);min-height:0}.camera-controls{height:102px}.camera-controls>span{max-width:58%;font-size:.72rem}.physical-check-head{display:block}.structure-badge{display:inline-block;margin-top:9px}.preselected-card{grid-template-columns:1fr auto}.preselected-card .chip{grid-column:1}.preselected-card strong,.preselected-card small{grid-column:1}.preselected-card .btn{grid-column:2;grid-row:1/4}.search-bar{align-items:stretch}.search-bar .btn{white-space:nowrap}.card-results{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.card-result strong{font-size:.78rem}.card-result .info{padding:8px}.card-result small{font-size:.66rem}}
@media(max-width:390px){.card-results{grid-template-columns:repeat(2,minmax(0,1fr))}.camera-controls>span{max-width:54%}}

/* v0.4 camera sensing + complete-search UX */
.camera-sensor-badge{position:absolute;z-index:6;top:12px;left:50%;transform:translateX(-50%);padding:7px 10px;border-radius:999px;background:rgba(5,8,16,.82);border:1px solid rgba(255,255,255,.16);font-size:.65rem;font-weight:900;letter-spacing:.08em;color:#b8c4dc;backdrop-filter:blur(8px);white-space:nowrap}.camera-sensor-badge.ready{color:#c9ffe9;border-color:rgba(110,231,183,.7);background:rgba(16,68,52,.78)}.camera-sensor-badge.warn{color:#ffe4a5;border-color:rgba(251,191,36,.45)}.camera-guide-frame.sensing{border-color:rgba(251,191,36,.9)}.camera-guide-frame.ready{border-color:#6ee7b7;box-shadow:0 0 0 9999px rgba(0,0,0,.28),0 0 34px rgba(110,231,183,.44)}.camera-guide-frame.ready .guide-corner{border-color:#6ee7b7}.camera-guide-frame.capturing{animation:capturePulse .24s ease}@keyframes capturePulse{50%{transform:scale(.985);filter:brightness(1.45)}}
.search-load-more{display:flex;justify-content:center;margin:16px 0 6px}.visual-score{position:absolute;z-index:3;top:7px;right:7px;padding:5px 7px;border-radius:999px;background:rgba(5,8,16,.88);border:1px solid rgba(110,231,183,.35);font-size:.62rem;font-weight:900;color:#c9ffe9}.visual-identify-note{margin-top:10px;padding:9px 11px;border-radius:11px;background:rgba(96,165,250,.07);border:1px solid rgba(96,165,250,.22);color:#b9c8e5;font-size:.76rem}.search-summary .showing{color:#9aabc9}.camera-controls .shutter{position:relative}.camera-controls .shutter:after{content:'MANUAL';position:absolute;left:50%;top:70px;transform:translateX(-50%);font-size:.55rem;letter-spacing:.1em;color:#667694;font-weight:800}

/* v0.5 live market center + local vault */
.market-dialog{width:min(96vw,980px);max-height:92vh}.market-dialog-body{padding:18px;overflow:auto}.market-loading{min-height:260px;display:grid;place-items:center;align-content:center;gap:12px;color:var(--muted)}
.market-card-hero{display:grid;grid-template-columns:220px 1fr;gap:20px;align-items:start}.market-card-art{border-radius:16px;overflow:hidden;background:#050810;border:1px solid var(--line);aspect-ratio:245/337}.market-card-art img{width:100%;height:100%;object-fit:contain}.market-card-copy h2{font-size:2rem;margin:4px 0 6px;letter-spacing:-.045em}.market-card-copy>p{color:var(--muted);margin:0 0 10px}.market-badges{display:flex;gap:7px;flex-wrap:wrap;margin:10px 0}.market-signal{font-size:.68rem;font-weight:900;padding:6px 8px;border:1px solid var(--line);border-radius:999px}.market-signal.good{color:#bfffe2;border-color:rgba(110,231,183,.35);background:rgba(110,231,183,.07)}.market-signal.bad{color:#ffd0d8;border-color:rgba(251,113,133,.35);background:rgba(251,113,133,.07)}.market-signal.warn{color:#ffe4a5;border-color:rgba(251,191,36,.35);background:rgba(251,191,36,.07)}
.market-primary-price{display:flex;align-items:end;gap:10px;margin:14px 0}.market-primary-price small,.market-primary-price span{color:var(--muted)}.market-primary-price small{display:block;position:absolute;transform:translateY(-30px)}.market-primary-price strong{font-size:2rem}.market-actions{display:flex;gap:8px;flex-wrap:wrap}.market-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:14px}.market-section{margin-top:12px}.market-section-head{display:flex;justify-content:space-between;gap:12px;align-items:start;margin-bottom:10px}.market-section-head h3{margin:2px 0}.market-section-head>small{color:var(--muted);font-size:.7rem;text-align:right}.market-metrics,.market-value-ladder{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.market-value-ladder{grid-template-columns:repeat(3,minmax(0,1fr))}.market-metric{padding:11px;border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.02)}.market-metric small,.market-metric strong,.market-metric em{display:block}.market-metric small{color:var(--muted);font-size:.66rem}.market-metric strong{font-size:1.15rem;margin-top:3px}.market-metric em{font-style:normal;color:#8392ae;font-size:.61rem;margin-top:3px}.market-chart{width:100%;height:190px;overflow:visible}.market-chart-line{stroke:var(--accent2);stroke-width:4;stroke-linecap:round;stroke-linejoin:round}.market-chart-fill{fill:rgba(125,211,252,.07)}.market-chart circle{fill:var(--accent);stroke:#08101c;stroke-width:2}.market-chart text{fill:#72809c;font-size:11px}.market-chart-empty{min-height:130px;display:grid;place-items:center;text-align:center;color:var(--muted);border:1px dashed var(--line);border-radius:12px;padding:20px}.market-comps-empty{display:grid;gap:8px;justify-items:start;color:var(--muted)}.market-comps-empty p{margin:0}.market-comps-empty small{font-size:.68rem}.collection-box{display:grid;grid-template-columns:1fr 1.2fr;gap:18px;align-items:end}.collection-box h3{margin:3px 0}.collection-box p{margin:4px 0;color:var(--muted)}.collection-form{display:grid;grid-template-columns:100px 1fr auto auto;gap:8px;align-items:end}.collection-form label{font-size:.7rem;color:var(--muted)}.collection-form .input{margin-top:5px}.collection-value{grid-column:1/-1;display:flex;gap:18px;flex-wrap:wrap;padding-top:10px;border-top:1px solid var(--line)}.collection-value span{font-size:.72rem;color:var(--muted)}.collection-value strong{color:var(--text);margin-left:5px}.search-price{display:block;margin-top:7px;color:var(--accent);font-size:.78rem;font-weight:900}.view-market{display:block;margin-top:4px;color:#8ba0c5;font-size:.62rem}.vault-list{padding:6px}.vault-row{width:100%;display:grid;grid-template-columns:54px 1fr auto;gap:11px;align-items:center;border:0;border-bottom:1px solid var(--line);padding:10px;background:none;color:inherit;text-align:left;cursor:pointer}.vault-row:last-child{border-bottom:0}.vault-row:hover{background:rgba(255,255,255,.025)}.vault-row img{width:54px;height:74px;object-fit:contain;border-radius:7px;background:#050810}.vault-row strong,.vault-row small{display:block}.vault-row small{color:var(--muted);font-size:.68rem;margin-top:3px}.vault-value{text-align:right}.vault-value strong{font-size:.95rem}.positive{color:var(--accent)!important}.negative{color:var(--danger)!important}
@media(max-width:760px){.market-dialog{inset:0;width:100vw;height:100dvh;max-height:none;margin:0;border-radius:0}.market-dialog-body{padding:14px}.market-card-hero{grid-template-columns:112px 1fr;gap:13px}.market-card-copy h2{font-size:1.45rem}.market-primary-price strong{font-size:1.55rem}.market-grid{grid-template-columns:1fr}.market-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.market-value-ladder{grid-template-columns:1fr}.collection-box{grid-template-columns:1fr}.collection-form{grid-template-columns:80px 1fr}.collection-form .btn{width:100%}.market-chart{height:160px}.vault-row{grid-template-columns:48px 1fr auto}.vault-row img{width:48px;height:66px}}
.target-box{display:grid;grid-template-columns:1fr auto;gap:18px;align-items:end}.target-box h3{margin:3px 0}.target-box p{margin:4px 0;color:var(--muted)}.target-form{display:flex;gap:8px;align-items:end}.target-form label{font-size:.7rem;color:var(--muted)}.target-form .input{margin-top:5px}.vault-row.target-hit{background:rgba(110,231,183,.06);box-shadow:inset 3px 0 0 var(--accent)}.vault-row.target-hit .vault-value small{color:var(--accent);font-weight:900}
@media(max-width:760px){.target-box{grid-template-columns:1fr}.target-form{align-items:end}.target-form label{flex:1}}
.set-progress{display:grid;gap:10px}.set-progress strong,.set-progress small{display:block}.set-progress small{color:var(--muted);font-size:.7rem;margin-top:3px}.set-progress-bar{height:8px;border-radius:999px;background:#0a1020;overflow:hidden;border:1px solid var(--line)}.set-progress-bar span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--accent2),var(--accent))}

/* v0.6 precision grader + localized evidence inspector */
.camera-facing-badge{position:absolute;z-index:7;left:12px;top:12px;padding:6px 9px;border-radius:999px;background:rgba(5,8,16,.78);border:1px solid rgba(255,255,255,.14);font-size:.58rem;font-weight:900;letter-spacing:.09em;color:#b8c4dc;backdrop-filter:blur(8px)}
.camera-facing-badge.good{color:#c9ffe9;border-color:rgba(110,231,183,.5)}.camera-facing-badge.bad{color:#ffd0d8;border-color:rgba(251,113,133,.55)}
.camera-control-buttons{display:flex;align-items:center;gap:15px;flex:0 0 auto}.camera-lens-btn{width:50px;height:50px;border-radius:15px;border:1px solid rgba(255,255,255,.18);background:#111a2d;color:#fff;font-size:1.2rem;font-weight:900;display:grid;place-items:center;line-height:1}.camera-lens-btn small{font-size:.5rem;letter-spacing:.08em;color:#9aa9c7;font-weight:800}.camera-controls{gap:14px}.camera-controls>span{flex:1}
.precision-status{margin-top:11px;display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:8px 10px;border-radius:11px;border:1px solid var(--line);background:rgba(255,255,255,.025);font-size:.72rem}.precision-status strong{font-size:.66rem;letter-spacing:.08em}.precision-status span{color:var(--muted)}.precision-status.ready{border-color:rgba(110,231,183,.32);background:rgba(110,231,183,.055)}.precision-status.ready strong{color:var(--accent)}.precision-status.partial strong{color:var(--warn)}
.defect-map-panel{overflow:hidden}.defect-map-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.defect-map-head h2{margin:5px 0 6px;font-size:1.55rem}.defect-map-head p{margin:0;max-width:720px}.defect-counts{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.defect-counts span{border:1px solid var(--line);border-radius:999px;padding:6px 8px;font-size:.62rem;font-weight:850;color:var(--muted)}.defect-counts .high{color:#ffd0d8;border-color:rgba(251,113,133,.4)}.defect-counts .med{color:#ffe4a5;border-color:rgba(251,191,36,.35)}
.evidence-toolbar{display:flex;gap:7px;flex-wrap:wrap;margin:15px 0 12px}.evidence-filter{border:1px solid var(--line);background:#0a1020;color:#8fa0bf;border-radius:999px;padding:7px 10px;font-size:.68rem;font-weight:850;cursor:pointer}.evidence-filter.active{color:#061017;background:var(--accent);border-color:transparent}.evidence-filter.ghost{margin-left:auto;background:transparent}
.evidence-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.evidence-card{min-width:0;border:1px solid var(--line);border-radius:15px;background:#080d18;overflow:hidden}.evidence-card-head{display:flex;justify-content:space-between;gap:8px;align-items:center;padding:9px 11px;border-bottom:1px solid var(--line)}.evidence-card-head strong{font-size:.82rem}.evidence-card-head small{color:var(--muted);font-size:.61rem;text-align:right}.evidence-card .annotated-wrap{max-width:none;margin:0;padding:8px}.evidence-card .annotated-wrap canvas{max-height:610px;object-fit:contain}
.evidence-inspector{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(260px,.85fr);gap:12px;margin-top:12px}.evidence-inspector h3{margin:3px 0 9px}.defect-button-list{display:grid;gap:7px;max-height:520px;overflow:auto;padding-right:3px}.defect-button{width:100%;border:1px solid var(--line);border-radius:12px;background:#0a1020;color:inherit;text-align:left;padding:9px;display:grid;grid-template-columns:30px 1fr auto;gap:9px;align-items:start;cursor:pointer}.defect-button:hover,.defect-button.selected{border-color:#5b7098;background:#111a2d}.defect-button.selected{box-shadow:inset 3px 0 0 var(--accent2)}.defect-button:disabled{opacity:.66;cursor:default}.defect-button strong,.defect-button small{display:block}.defect-button strong{font-size:.78rem;text-transform:capitalize}.defect-button small{font-size:.66rem;color:var(--muted);margin-top:3px;line-height:1.35}.defect-button em{font-style:normal;font-size:.56rem;text-transform:uppercase;letter-spacing:.08em;color:#8796b3;padding-top:4px}.defect-number{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:#23304a;font-size:.68rem;font-weight:950}.defect-number.high{background:rgba(251,113,133,.2);color:#ffbdc8;border:1px solid rgba(251,113,133,.45)}.defect-number.med{background:rgba(251,191,36,.16);color:#ffe09a;border:1px solid rgba(251,191,36,.38)}.defect-number.low{background:rgba(96,165,250,.15);color:#bdd8ff;border:1px solid rgba(96,165,250,.34)}
.defect-zoom-panel{border:1px solid var(--line);border-radius:15px;background:#080d18;overflow:hidden;align-self:start;position:sticky;top:82px}.defect-zoom-panel canvas{display:block;width:100%;aspect-ratio:1/1;object-fit:contain;background:#050810}.defect-zoom-panel p{padding:0 12px 12px;margin:10px 0 0}.evidence-legend{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin-top:11px;color:var(--muted);font-size:.65rem}.evidence-legend span{display:inline-flex;align-items:center;gap:5px}.legend-dot{width:8px;height:8px;border-radius:50%;background:#60a5fa}.legend-dot.med{background:#fbbf24}.legend-dot.high{background:#fb7185}
@media(max-width:760px){.defect-map-head{display:block}.defect-counts{justify-content:flex-start;margin-top:9px}.evidence-grid{grid-template-columns:1fr 1fr;gap:8px}.evidence-card-head{display:block}.evidence-card-head small{display:block;text-align:left;margin-top:2px}.evidence-inspector{grid-template-columns:1fr}.defect-zoom-panel{position:static}.evidence-filter.ghost{margin-left:0}.camera-controls>span{max-width:none}.camera-control-buttons{gap:9px}.camera-lens-btn{width:46px;height:46px}.shutter{width:60px;height:60px}.camera-facing-badge{top:10px;left:10px}}
@media(max-width:460px){.evidence-grid{grid-template-columns:1fr}.defect-button{grid-template-columns:28px 1fr auto}.camera-controls{padding-left:12px;padding-right:12px}.camera-controls>span{font-size:.66rem}.camera-lens-btn{width:42px;height:42px}.camera-control-buttons{gap:7px}}
.mini-capture.needs-retake{outline:2px solid rgba(251,191,36,.72);outline-offset:2px}
.mini-capture.needs-retake span{color:#fbbf24}
.mini-capture-actions{display:flex;gap:6px;justify-content:center;flex-wrap:wrap;margin-top:8px;position:relative;z-index:2}
.mini-capture-actions .btn{font-size:.74rem;padding:6px 9px}

/* v0.6.1 global display-currency controls */
.market-toolbar{display:flex;justify-content:space-between;gap:14px;align-items:end;margin-bottom:14px;padding:10px 12px;border:1px solid var(--line);border-radius:13px;background:rgba(255,255,255,.025)}
.market-toolbar>div{display:flex;gap:8px;align-items:center}.market-toolbar label,.inline-currency{font-size:.7rem;color:var(--muted);font-weight:800}.market-toolbar>small{color:var(--muted);font-size:.67rem;text-align:right}.compact-input{width:auto;min-width:92px;padding:8px 30px 8px 10px}.market-source-price{margin:-7px 0 12px;color:var(--muted);font-size:.72rem}.market-source-price strong{color:var(--text)}.inline-currency{display:inline-flex;align-items:center;gap:7px;padding:0 2px}.inline-currency .input{margin:0}
@media(max-width:760px){.market-toolbar{align-items:stretch;flex-direction:column}.market-toolbar>div{justify-content:space-between}.market-toolbar>small{text-align:left}.inline-currency{width:100%;justify-content:space-between}.inline-currency .compact-input{flex:0 0 105px}}
