:root {
  --bg:#0b0c10; --bg2:#101218; --panel:#161922; --panel2:#1c2029; --line:#262b36; --line2:#323847;
  --text:#f3f4f7; --muted:#9aa3b2; --dim:#6b7384;
  --accent:#ff6a1a; --accent2:#ff9a3c; --red:#ff3d3d; --good:#2fd47a; --warn:#ffb020; --bad:#ff5c5c;
  --grad:linear-gradient(135deg,#ff7a1a 0%,#ff4d2e 100%);
  --radius:16px; --radius-sm:12px; --tabbar:64px;
  --shadow:0 10px 30px rgba(0,0,0,.35);
  --font:-apple-system,BlinkMacSystemFont,"SF Pro Text","Inter","Segoe UI",Roboto,Helvetica,Arial,sans-serif;
}
* { box-sizing:border-box; }
[hidden] { display:none !important; }
html,body { margin:0; background:var(--bg); color:var(--text); font:16px/1.45 var(--font); -webkit-text-size-adjust:100%; -webkit-font-smoothing:antialiased; }
body { min-height:100dvh; padding-bottom:calc(var(--tabbar) + env(safe-area-inset-bottom) + 12px); overflow-x:hidden; }
button, input { font-family:inherit; }
.sr-only { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); }
h1,h2,h3 { margin:0; letter-spacing:-.02em; }

/* backdrop */
.bg { position:fixed; inset:0; z-index:-1; overflow:hidden; pointer-events:none; }
.bg-glow { position:absolute; left:50%; top:-140px; width:640px; height:520px; transform:translateX(-50%); background:radial-gradient(closest-side, rgba(255,106,26,.28), rgba(255,61,61,.10) 55%, transparent 75%); filter:blur(10px); }
.bg-grid { position:absolute; inset:0; background-image:linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px); background-size:28px 28px; mask-image:linear-gradient(to bottom, rgba(0,0,0,.9), transparent 480px); -webkit-mask-image:linear-gradient(to bottom, rgba(0,0,0,.9), transparent 480px); }

/* top bar */
.top { position:sticky; top:0; z-index:5; display:flex; align-items:center; justify-content:space-between; gap:10px; padding:calc(10px + env(safe-area-inset-top)) 16px 10px; background:rgba(11,12,16,.72); backdrop-filter:saturate(160%) blur(14px); -webkit-backdrop-filter:saturate(160%) blur(14px); border-bottom:1px solid rgba(255,255,255,.06); }
.brand { display:flex; align-items:center; gap:9px; color:var(--text); text-decoration:none; font-weight:800; letter-spacing:-.01em; font-size:18px; }
.logo { display:inline-grid; place-items:center; width:30px; height:30px; border-radius:9px; background:var(--grad); color:#fff; box-shadow:0 4px 14px rgba(255,90,30,.45); }
.logo svg { width:20px; height:20px; }
.top-pill { font-size:12px; font-weight:700; color:var(--warn); background:rgba(255,176,32,.12); border:1px solid rgba(255,176,32,.3); border-radius:999px; padding:4px 10px; white-space:nowrap; }

main { padding:14px 16px 24px; max-width:720px; margin:0 auto; }
.panel { display:none; }
.panel.is-active { display:block; animation:fadeUp .28s ease-out both; }
@keyframes fadeUp { from { opacity:0; transform:translateY(6px); } to { opacity:1; transform:none; } }
.page-head { margin:6px 0 14px; display:flex; flex-wrap:wrap; align-items:baseline; gap:8px 12px; }
.page-head h2 { font-size:28px; font-weight:800; }
.page-head .hint { flex-basis:100%; margin:0; }
.hint { color:var(--muted); margin:0 0 12px; font-size:14px; }
.total:not(:empty) { font-weight:800; color:var(--good); font-size:18px; }

/* hero */
.hero { text-align:center; padding:18px 6px 8px; }
.hero-mark { position:relative; width:84px; height:84px; margin:0 auto 14px; display:grid; place-items:center; }
.hero-mark .mark { position:relative; z-index:2; display:grid; place-items:center; width:64px; height:64px; border-radius:20px; background:var(--grad); color:#fff; box-shadow:0 12px 32px rgba(255,90,30,.45), inset 0 1px 0 rgba(255,255,255,.3); }
.hero-mark .mark svg { width:40px; height:40px; }
.hero-mark .ring { position:absolute; inset:0; border-radius:50%; border:1.5px solid rgba(255,122,26,.45); animation:ping 2.6s ease-out infinite; }
.hero-mark .ring.r2 { animation-delay:1.3s; }
@keyframes ping { 0% { transform:scale(.7); opacity:.9; } 100% { transform:scale(1.6); opacity:0; } }
.hero h1 { font-size:34px; line-height:1.08; font-weight:800; }
.hero h1 em { font-style:normal; background:var(--grad); -webkit-background-clip:text; background-clip:text; color:transparent; }
.hero p { color:var(--muted); margin:10px auto 0; max-width:34ch; font-size:15.5px; }

/* search */
.search { display:flex; gap:8px; margin-top:18px; }
.search-box { flex:1; position:relative; min-width:0; }
.search-ico { position:absolute; left:14px; top:50%; transform:translateY(-50%); width:20px; height:20px; color:var(--dim); pointer-events:none; }
.search input { width:100%; font-size:17px; font-weight:600; padding:16px 12px 16px 40px; border-radius:var(--radius); border:1.5px solid var(--line2); background:var(--panel); color:var(--text); min-width:0; -webkit-appearance:none; appearance:none; transition:border-color .15s, box-shadow .15s; }
.search input::placeholder { color:var(--dim); font-weight:500; }
.search input:focus { outline:none; border-color:var(--accent); box-shadow:0 0 0 4px rgba(255,106,26,.18); }
.search input::-webkit-search-cancel-button { -webkit-appearance:none; }
.go { flex:0 0 auto; display:inline-flex; align-items:center; gap:5px; padding:0 14px; border:0; border-radius:var(--radius); background:var(--grad); color:#fff; font-weight:800; font-size:16px; box-shadow:0 8px 22px rgba(255,90,30,.4); transition:transform .1s, filter .15s; }
.go:active { transform:scale(.97); filter:brightness(.95); }
.go-ico svg { width:22px; height:22px; display:block; }
.suggest { background:var(--panel); border:1px solid var(--line); border-radius:14px; margin-top:8px; overflow:hidden; box-shadow:var(--shadow); }
.suggest button { display:flex; align-items:baseline; gap:8px; width:100%; text-align:left; background:none; border:0; color:var(--text); font:inherit; font-weight:600; padding:12px 14px; border-bottom:1px solid var(--line); }
.suggest button:last-child { border-bottom:0; }
.suggest small { color:var(--muted); font-weight:500; }
.recent { display:flex; gap:6px; flex-wrap:wrap; margin:10px 0 0; }
.chip { background:var(--panel); border:1px solid var(--line); color:var(--muted); border-radius:999px; padding:6px 12px; font-size:13px; font-weight:600; }
.chip:active { border-color:var(--accent); color:var(--text); }

.rules { display:flex; gap:6px; justify-content:center; flex-wrap:wrap; margin:16px 0 6px; }
.rule { font-size:12.5px; color:var(--muted); background:rgba(255,255,255,.04); border:1px solid var(--line); border-radius:999px; padding:5px 11px; }
.rule b { color:var(--text); }

.how-it-works { display:grid; gap:10px; margin:28px 0 8px; }
.how-it-works .step { display:flex; gap:12px; align-items:flex-start; background:var(--panel); border:1px solid var(--line); border-radius:var(--radius); padding:14px; }
.how-it-works .n { flex:0 0 28px; height:28px; border-radius:50%; display:grid; place-items:center; background:var(--grad); color:#fff; font-weight:800; font-size:14px; }
.how-it-works b { display:block; font-size:15px; }
.how-it-works small { color:var(--muted); font-size:13.5px; }
.has-result .how-it-works, .has-result .hero, .has-result .rules { display:none; }
.has-result .search { margin-top:4px; }

/* result shell */
.result { margin-top:14px; }
.carhead { display:flex; flex-direction:column; align-items:flex-start; gap:4px; margin:18px 0 12px; }
.carhead h2 { font-size:26px; font-weight:800; }
.carhead small { color:var(--muted); font-size:13px; }
.subhead { color:var(--muted); font-weight:700; font-size:13px; letter-spacing:.06em; text-transform:uppercase; margin:18px 0 8px; }

.notice { background:var(--panel); border:1px solid var(--line); border-radius:var(--radius); padding:14px 16px; margin:10px 0; color:var(--text); font-size:15px; }
.notice.est { border-color:rgba(255,176,32,.45); background:linear-gradient(180deg, rgba(255,176,32,.10), rgba(255,176,32,.04)); }
.notice.est b, .notice.est strong { color:var(--warn); }
.notice.warn { border-color:rgba(255,92,92,.4); }

/* scanning */
.loading { text-align:center; padding:34px 16px 30px; background:var(--panel); border:1px solid var(--line); border-radius:var(--radius); margin-top:12px; overflow:hidden; position:relative; }
.scope { position:relative; width:112px; height:112px; margin:0 auto 18px; }
.scope .sweep { position:absolute; inset:0; border-radius:50%; background:conic-gradient(from 0deg, rgba(255,106,26,0) 0deg, rgba(255,106,26,0) 250deg, rgba(255,106,26,.55) 360deg); animation:spin 1.4s linear infinite; mask:radial-gradient(circle, transparent 30%, #000 31%); -webkit-mask:radial-gradient(circle, transparent 30%, #000 31%); }
.scope .reticle { position:absolute; inset:0; width:100%; height:100%; color:var(--accent); }
.scope .reticle .dash { animation:spinR 6s linear infinite; transform-origin:50% 50%; }
.scope .dot { position:absolute; left:50%; top:50%; width:10px; height:10px; margin:-5px; border-radius:50%; background:var(--accent); box-shadow:0 0 0 0 rgba(255,106,26,.6); animation:pulse 1.4s ease-out infinite; }
@keyframes spin { to { transform:rotate(360deg); } }
@keyframes spinR { to { transform:rotate(-360deg); } }
@keyframes pulse { 0% { box-shadow:0 0 0 0 rgba(255,106,26,.6); } 100% { box-shadow:0 0 0 18px rgba(255,106,26,0); } }
.loading strong { display:block; font-size:18px; font-weight:800; letter-spacing:-.01em; padding:0 6px; overflow-wrap:anywhere; }
.loading small { display:block; color:var(--muted); margin-top:6px; font-size:14px; }
.loading .scanline { position:absolute; left:0; right:0; height:2px; background:linear-gradient(90deg, transparent, rgba(255,106,26,.7), transparent); animation:scan 2.4s ease-in-out infinite; }
@keyframes scan { 0% { top:0; opacity:0; } 10% { opacity:1; } 90% { opacity:1; } 100% { top:100%; opacity:0; } }
.loading .dots { display:inline-block; width:1.1em; text-align:left; }
.loading .dots::after { content:""; animation:dots 1.5s steps(4, end) infinite; }
@keyframes dots { 0% { content:""; } 25% { content:"."; } 50% { content:".."; } 75% { content:"..."; } }

/* target locked */
.locked { display:flex; align-items:center; gap:14px; padding:16px 18px; border-radius:var(--radius); background:var(--grad); color:#fff; box-shadow:0 14px 34px rgba(255,80,30,.4); margin:12px 0 14px; animation:lock .5s cubic-bezier(.2,.9,.3,1.2) both; position:relative; overflow:hidden; }
.locked::after { content:""; position:absolute; inset:0; background:linear-gradient(110deg, transparent 30%, rgba(255,255,255,.22) 50%, transparent 70%); transform:translateX(-120%); animation:shine 1.6s ease-out .3s 1; }
@keyframes lock { 0% { transform:scale(.92); opacity:0; } 100% { transform:scale(1); opacity:1; } }
@keyframes shine { to { transform:translateX(120%); } }
.locked svg { width:44px; height:44px; flex:0 0 auto; filter:drop-shadow(0 2px 6px rgba(0,0,0,.25)); animation:lockIn .6s cubic-bezier(.2,.9,.3,1.3) both; }
@keyframes lockIn { 0% { transform:scale(2) rotate(-20deg); opacity:0; } 100% { transform:none; opacity:1; } }
.locked .eyebrow { display:block; font-size:11px; font-weight:800; letter-spacing:.14em; text-transform:uppercase; opacity:.9; }
.locked b { display:block; font-size:19px; font-weight:800; line-height:1.15; }
.locked small { display:block; font-size:13px; opacity:.92; margin-top:3px; }

/* miss */
.miss { text-align:center; padding:34px 18px 30px; }
.miss .big { display:grid; place-items:center; width:76px; height:76px; margin:0 auto 14px; border-radius:50%; background:rgba(255,255,255,.05); border:1px solid var(--line2); color:var(--muted); }
.miss .big svg { width:44px; height:44px; }
.miss strong { display:block; font-size:20px; font-weight:800; line-height:1.2; }
.miss span.sub { display:block; color:var(--muted); margin-top:6px; font-size:14.5px; }

/* part cards */
.part { display:grid; grid-template-columns:92px 1fr; gap:10px 12px; background:var(--panel); border:1px solid var(--line); border-radius:var(--radius); padding:12px; margin:0 0 10px; animation:fadeUp .35s ease-out both; }
.part:nth-child(2) { animation-delay:.05s } .part:nth-child(3) { animation-delay:.1s } .part:nth-child(4) { animation-delay:.15s } .part:nth-child(5) { animation-delay:.2s } .part:nth-child(6) { animation-delay:.25s }
.part.est { border-color:rgba(255,176,32,.28); }
.thumb { width:92px; height:92px; border-radius:12px; overflow:hidden; background:var(--panel2); display:grid; place-items:center; color:var(--dim); border:1px solid var(--line); padding:0; }
.thumb img { width:100%; height:100%; object-fit:cover; display:block; }
.thumb svg { width:36px; height:36px; }
button.thumb { cursor:zoom-in; }
.pbody { min-width:0; }
.ptitle { display:flex; justify-content:space-between; align-items:flex-start; gap:10px; }
.ptitle h3 { font-size:16px; font-weight:700; line-height:1.25; }
.pricebox { text-align:right; flex:0 0 auto; }
.pricebox .price { display:block; font-size:24px; font-weight:800; color:var(--accent2); letter-spacing:-.02em; line-height:1; }
.pricebox small { display:block; color:var(--muted); font-size:11px; margin-top:3px; }
.stats { display:flex; flex-wrap:wrap; gap:6px; margin-top:8px; font-size:12.5px; color:var(--muted); align-items:center; }
.stats b { color:var(--text); }
.stats .stat { background:rgba(255,255,255,.04); border:1px solid var(--line); border-radius:8px; padding:3px 8px; }
.badge { display:inline-flex; align-items:center; gap:5px; font-weight:800; font-size:12.5px; border-radius:999px; padding:4px 10px; color:#0b0c10; }
.badge.good { background:var(--good); }
.badge.warn { background:var(--warn); }
.badge::before { content:""; width:6px; height:6px; border-radius:50%; background:rgba(0,0,0,.45); }
.tag { font-size:10.5px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; color:var(--muted); border:1px solid var(--line2); border-radius:6px; padding:2px 6px; }
.tag.est { color:var(--warn); border-color:rgba(255,176,32,.5); background:rgba(255,176,32,.1); }
.tip { color:var(--muted); font-size:13px; margin:8px 0 0; }
.actions { display:flex; flex-wrap:wrap; gap:6px; margin-top:10px; }
.part .actions { grid-column:1 / -1; display:grid; grid-template-columns:1fr 1fr 1fr; margin-top:2px; }
.part .actions .btn { justify-content:center; padding:11px 6px; white-space:nowrap; }
.part .more { grid-column:1 / -1; margin-top:0; }
.part .tip { grid-column:1 / -1; margin:0; }
.btn { font:inherit; font-weight:700; font-size:13.5px; padding:9px 12px; border-radius:10px; border:1px solid var(--line2); background:var(--panel2); color:var(--text); text-decoration:none; display:inline-flex; align-items:center; gap:4px; }
.btn:active { transform:scale(.97); }
.btn.primary { background:var(--grad); border-color:transparent; color:#fff; box-shadow:0 4px 12px rgba(255,90,30,.3); }
.btn.ghost { background:transparent; }
.btn[aria-pressed="true"] { border-color:var(--good); color:var(--good); background:rgba(47,212,122,.08); }
.more { margin-top:8px; }
.more summary { color:var(--muted); font-size:13px; cursor:pointer; }
.samples { list-style:none; padding:0; margin:8px 0; }
.samples li { display:flex; justify-content:space-between; gap:10px; font-size:12.5px; color:var(--muted); padding:5px 0; border-bottom:1px solid var(--line); }
.samples li span:first-child { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.samples li span:last-child { color:var(--text); font-weight:700; white-space:nowrap; }
.title-line { font-size:12.5px; color:var(--muted); background:rgba(255,255,255,.04); border:1px dashed var(--line2); border-radius:8px; padding:8px 10px; margin:6px 0; word-break:break-word; }
@media (max-width:360px) { .part { grid-template-columns:76px 1fr; } .thumb { width:76px; height:76px; } }

/* list items */
.item { display:grid; grid-template-columns:72px 1fr; gap:10px 12px; background:var(--panel); border:1px solid var(--line); border-radius:var(--radius); padding:12px; margin:0 0 10px; }
.item .thumb { width:72px; height:72px; }
.item h3 { font-size:15.5px; font-weight:700; }
.item .car { color:var(--muted); font-size:13px; margin-top:3px; }
.item .money { color:var(--accent2); font-weight:800; }
.item .row { grid-column:1 / -1; display:flex; flex-wrap:wrap; gap:6px; margin-top:0; align-items:center; }
.item .row .btn { flex:1 1 auto; justify-content:center; }
.item .row .check { flex:1 1 auto; justify-content:center; }
.check { display:inline-flex; align-items:center; gap:8px; font-weight:700; font-size:14px; padding:8px 12px; border-radius:10px; border:1px solid var(--line2); background:var(--panel2); }
.check input { width:20px; height:20px; accent-color:var(--accent); margin:0; }
.empty { text-align:center; color:var(--muted); padding:40px 16px; background:var(--panel); border:1px dashed var(--line2); border-radius:var(--radius); font-size:15px; }
.empty b { color:var(--text); display:block; font-size:17px; margin-bottom:4px; }
.summary-card { display:flex; justify-content:space-between; align-items:center; gap:10px; background:var(--panel); border:1px solid var(--line); border-radius:var(--radius); padding:12px 14px; margin-bottom:12px; }
.summary-card .k { color:var(--muted); font-size:13px; }
.summary-card .v { font-size:22px; font-weight:800; color:var(--good); }

/* status */
.status-grid { display:grid; gap:10px; }
.status-row { display:flex; justify-content:space-between; gap:12px; font-size:14px; padding:12px 14px; background:var(--panel); border:1px solid var(--line); border-radius:var(--radius-sm); }
.status-row span:first-child { flex:0 0 auto; font-weight:600; }
.status-row span:last-child { color:var(--muted); text-align:right; }
.status-row.big { display:block; }
.status-row.big .k { color:var(--muted); font-size:13px; }
.status-row.big .v { font-size:24px; font-weight:800; }
.progress { height:8px; background:var(--line); border-radius:4px; overflow:hidden; margin-top:10px; }
.progress i { display:block; height:100%; background:var(--grad); border-radius:4px; transition:width .6s ease; }
.models { display:grid; grid-template-columns:1fr 1fr; gap:6px; margin-top:14px; font-size:13.5px; }
.models div { padding:8px 10px; background:var(--panel); border:1px solid var(--line); border-radius:10px; color:var(--muted); }
.models div.yes { color:var(--text); border-color:rgba(47,212,122,.35); }
.models div.yes::before { content:"✓ "; color:var(--good); font-weight:800; }
.models div.now { border-color:var(--accent); color:var(--text); }
.models small { color:var(--dim); }
.how { margin-top:18px; color:var(--muted); font-size:14px; }
.how summary { color:var(--text); font-weight:700; cursor:pointer; }

/* bottom tab bar */
.tabbar { position:fixed; left:0; right:0; bottom:0; z-index:6; display:flex; justify-content:space-around; padding:6px 6px calc(6px + env(safe-area-inset-bottom)); background:rgba(14,15,20,.86); backdrop-filter:saturate(160%) blur(16px); -webkit-backdrop-filter:saturate(160%) blur(16px); border-top:1px solid rgba(255,255,255,.07); }
.tab { position:relative; flex:1; display:flex; flex-direction:column; align-items:center; gap:3px; background:none; border:0; color:var(--dim); font-size:10.5px; font-weight:700; padding:6px 2px 4px; border-radius:12px; -webkit-tap-highlight-color:transparent; }
.tab svg { width:24px; height:24px; transition:transform .15s; }
.tab.is-active { color:var(--accent2); }
.tab.is-active svg { transform:translateY(-1px); filter:drop-shadow(0 0 8px rgba(255,122,26,.6)); }
.count:not(:empty) { position:absolute; top:2px; right:calc(50% - 22px); min-width:17px; height:17px; line-height:17px; text-align:center; background:var(--red); color:#fff; border-radius:9px; padding:0 5px; font-size:11px; font-style:normal; font-weight:800; box-shadow:0 0 0 2px var(--bg); }
.tab:focus-visible, button:focus-visible, input:focus-visible, a:focus-visible { outline:2px solid var(--accent2); outline-offset:2px; }

/* lightbox + toast */
.lightbox { position:fixed; inset:0; z-index:20; background:rgba(0,0,0,.92); display:grid; place-items:center; padding:20px; grid-template-rows:1fr auto; }
.lightbox img { max-width:100%; max-height:80vh; border-radius:12px; }
.lightbox p { color:var(--muted); margin:10px 0 0; text-align:center; }
.toast { position:fixed; left:50%; bottom:calc(var(--tabbar) + env(safe-area-inset-bottom) + 14px); transform:translateX(-50%); z-index:30; background:#fff; color:#0b0c10; font-weight:700; padding:10px 16px; border-radius:999px; box-shadow:var(--shadow); font-size:14px; animation:fadeUp .2s ease-out; white-space:nowrap; }

@media (min-width:720px) {
  .hero h1 { font-size:44px; }
  .tabbar { max-width:720px; left:50%; transform:translateX(-50%); border-radius:18px 18px 0 0; border:1px solid rgba(255,255,255,.07); border-bottom:0; }
}
@media (prefers-reduced-motion:reduce) { *, *::before, *::after { animation:none !important; transition:none !important; } }

/* year ranges (Oct 15 2026) */
.rangetag { display:inline-block; font-size:12px; font-weight:800; letter-spacing:.06em; padding:3px 9px; border-radius:999px; color:#fff; background:var(--grad); box-shadow:0 4px 14px rgba(255,90,30,.35); }
.carhead h2 { line-height:1.15; }
.notice.wider { border-color:rgba(154,163,178,.35); background:linear-gradient(180deg, rgba(154,163,178,.10), rgba(154,163,178,.04)); }
.notice.wider strong { color:var(--text); }
.rangechips { display:flex; flex-wrap:wrap; gap:8px; margin:10px 0 4px; }
.rangechips .chip { font-size:15px; padding:9px 14px; color:var(--text); border-color:var(--line2); }
.rmodels { display:grid; gap:8px; margin-top:14px; }
.rmodel { background:var(--panel); border:1px solid var(--line); border-radius:12px; padding:10px 12px; }
.rm-h { display:flex; justify-content:space-between; align-items:baseline; margin-bottom:8px; font-size:14.5px; }
.rm-h small { color:var(--dim); font-size:12.5px; }
.rm-r { display:flex; flex-wrap:wrap; gap:6px; }
.rr { display:inline-flex; flex-direction:column; align-items:center; min-width:74px; padding:5px 8px; border-radius:9px; border:1px solid var(--line2); color:var(--muted); font-size:13px; font-weight:700; background:var(--bg2); }
.rr i { font-style:normal; font-weight:600; font-size:10.5px; letter-spacing:.04em; text-transform:uppercase; color:var(--dim); }
.rr.done { color:var(--text); border-color:rgba(47,212,122,.45); } .rr.done i { color:var(--good); }
.rr.estimate { border-color:rgba(255,176,32,.45); } .rr.estimate i { color:var(--warn); }
.rr.reading, .rr.live { color:var(--text); border-color:var(--accent); } .rr.reading i, .rr.live i { color:var(--accent2); }

/* Oct 16 2026: status rows = make + model + years, each a link to that range's parts */
.badge.na { background:var(--line2); color:var(--text);}
.muted-s { color:var(--muted); font-size:13px; font-weight:600;}
.sfilter { display:flex; flex-direction:column; gap:8px; margin:16px 0 10px;}
.sfilter input { width:100%; font-size:16px; padding:11px 14px; border-radius:12px; border:1px solid var(--line2); background:var(--panel); color:var(--text); outline:none;}
.sfilter input:focus { border-color:var(--accent);}
.seg { display:flex; gap:6px;}
.seg button { flex:1; font:inherit; font-size:13.5px; font-weight:700; padding:8px 6px; border-radius:10px; border:1px solid var(--line2); background:transparent; color:var(--muted);}
.seg button[aria-pressed="true"] { background:var(--panel2); color:var(--text); border-color:var(--accent);}
.rlist { display:grid; gap:6px;}
.rrow { display:flex; align-items:center; gap:10px; padding:11px 12px; background:var(--panel); border:1px solid var(--line); border-left:3px solid var(--line2); border-radius:12px; color:var(--text); text-decoration:none; -webkit-tap-highlight-color:transparent;}
.rrow:active { background:var(--panel2);}
.rr-main { flex:1 1 auto; min-width:0; font-size:15px; line-height:1.3;}
.rr-main b { font-weight:700;}
.rr-y { font-weight:800; color:var(--accent2); white-space:nowrap;}
.rr-main small { display:block; color:var(--dim); font-size:12px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
.rr-st { flex:0 0 auto; font-size:10.5px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; color:var(--dim);}
.rr-go { flex:0 0 auto; color:var(--dim); font-size:22px; line-height:1; margin-left:-2px;}
.rrow.done { border-left-color:var(--good);} .rrow.done .rr-st { color:var(--good);}
.rrow.estimate { border-left-color:var(--warn);} .rrow.estimate .rr-st { color:var(--warn);}
.rrow.reading, .rrow.live { border-left-color:var(--accent);} .rrow.reading .rr-st, .rrow.live .rr-st { color:var(--accent2);}
.more-rows { width:100%; justify-content:center; margin-top:6px; padding:12px;}

/* Oct 16 2026 (J 3:46 AM): sell-through as selling speed */
.badge.slow { background:var(--bad);}
.slow-note { margin:6px 0 0; font-size:12.5px; font-weight:600;}
.slow-note.warn { color:var(--warn);} .slow-note.slow { color:var(--bad);}
.st-legend { margin:8px 2px 12px; font-size:12.5px; color:var(--muted); line-height:1.6;}
.st-legend b { color:var(--text); font-weight:700;}
.st-legend .lg { display:inline-block; width:8px; height:8px; border-radius:50%; margin:0 4px 0 8px; vertical-align:1px;}
.lg.good { background:var(--good);} .lg.warn { background:var(--warn);} .lg.slow { background:var(--bad);}

/* Oct 17 2026: customer ratings (no eBay numbers) + owner switch */
body:not(.owner) .own-only { display:none !important; }
body.owner .cust-only { display:none !important; }
.rating { display:inline-flex; align-items:center; gap:4px; flex:none; font-weight:800; font-size:14px; border-radius:999px; padding:5px 11px; color:#0b0c10; white-space:nowrap; }
.rating.good { background:var(--good); } .rating.warn { background:var(--warn); } .rating.slow { background:var(--bad); color:#fff; } .rating.na { background:var(--line2); color:var(--text); }
.item .rating { font-size:12px; padding:2px 8px; vertical-align:1px; }
.part.rated .ptitle { align-items:center; }
.rlegend { margin:8px 0 12px; border:1px solid var(--line2); border-radius:12px; padding:0 12px; background:rgba(255,255,255,.03); }
.rlegend summary { cursor:pointer; padding:10px 0; font-size:13.5px; font-weight:700; color:var(--text); list-style:none; }
.rlegend summary::-webkit-details-marker { display:none; }
.rlegend summary::after { content:"▾"; float:right; color:var(--muted); }
.rlegend[open] summary::after { content:"▴"; }
.rlegend ul { margin:0 0 6px; padding:0; list-style:none; font-size:13.5px; line-height:1.7; }
.rlegend small { display:block; padding:0 0 10px; color:var(--muted); font-size:12px; line-height:1.5; }
.part.rated .actions { flex-wrap:wrap; }

/* Sort control + left-out lists (Oct 21 2026: 25% sell-through minimum, sort by sell rate) */
.sortbar { display:flex; align-items:center; justify-content:space-between; gap:10px; margin:4px 0 12px; padding:8px 8px 8px 12px; border:1px solid var(--line2); border-radius:var(--radius-sm); background:var(--panel); }
.sortbar label { display:flex; align-items:center; gap:7px; font-size:13.5px; font-weight:700; color:var(--muted); white-space:nowrap; }
.sortbar label svg { width:16px; height:16px; color:var(--accent2); flex:none; }
.sortsel { appearance:none; -webkit-appearance:none; min-width:0; flex:0 1 auto; max-width:62%; font:600 16px/1.2 var(--font); color:var(--text); background:var(--panel2) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23ff9a3c' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat right 12px center / 12px 8px; border:1px solid var(--line2); border-radius:10px; padding:10px 34px 10px 12px; min-height:44px; text-overflow:ellipsis; }
.sortsel:focus { outline:2px solid var(--accent); outline-offset:1px; }
.hidden-note { margin:14px 2px 6px; font-size:13px; color:var(--muted); }
.nocheck { margin:8px 0 16px; border:1px dashed var(--line2); border-radius:12px; padding:0 12px; background:rgba(255,255,255,.02); }
.nocheck summary { cursor:pointer; padding:12px 0; font-size:14px; font-weight:700; color:var(--text); list-style:none; display:flex; align-items:center; gap:8px; }
.nocheck summary::-webkit-details-marker { display:none; }
.nocheck summary::after { content:"›"; margin-left:auto; color:var(--muted); font-size:18px; transition:transform .2s; }
.nocheck[open] summary::after { transform:rotate(90deg); }
.nocheck .cnt { font-size:12px; font-weight:700; color:var(--bg); background:var(--muted); border-radius:999px; padding:1px 8px; }
.nocheck p { margin:0 0 8px; font-size:12.5px; color:var(--muted); line-height:1.5; }
.nocheck ul { margin:0 0 12px; padding-left:18px; font-size:13.5px; color:var(--text); line-height:1.7; }

/* Oct 21: which sell-through the badge is (whole model) + J's-years figure */
.stats .stat.basis { background:transparent; border:1px dashed var(--line); font-size:11.5px; }

/* Nov 4 1104c: profit + fees sheet + tally */
.pricebox .profit { color:var(--good, #3fb950); font-size:11px; margin-top:4px; }
.pricebox .profit b { font-weight:800; }
.part.rated .stats { display:flex; flex-wrap:wrap; gap:6px; align-items:center; margin:6px 0 4px; }
.summary-card.tally { display:flex; flex-wrap:wrap; align-items:center; gap:10px; }
.summary-card.tally .v small { font-size:11px; color:var(--muted); font-weight:500; }
.summary-card.tally .v.pr { color:var(--good, #3fb950); }
.sheet-backdrop { position:fixed; inset:0; background:rgba(0,0,0,.55); z-index:60; display:flex; align-items:flex-end; justify-content:center; }
.sheet-backdrop[hidden] { display:none; }
.sheet { background:var(--card, #161b22); color:inherit; width:100%; max-width:520px; border-radius:16px 16px 0 0; padding:18px 18px calc(18px + env(safe-area-inset-bottom)); }
.sheet h3 { margin:0 0 6px; }
.sheet label { display:flex; justify-content:space-between; align-items:center; gap:10px; padding:8px 0; border-bottom:1px solid rgba(255,255,255,.07); }
.sheet input { width:110px; font-size:16px; padding:6px 8px; border-radius:8px; border:1px solid rgba(255,255,255,.15); background:rgba(255,255,255,.05); color:inherit; text-align:right; }
.sheet .row { display:flex; gap:8px; margin-top:12px; flex-wrap:wrap; }

/* Nov 4 1104c: My Junkyard */
.yard-form { display:flex; flex-direction:column; gap:10px; margin:6px 0 14px; }
.yard-form input[type=url] { font-size:16px; padding:12px 14px; border-radius:12px; border:1px solid rgba(255,255,255,.14); background:rgba(255,255,255,.05); color:inherit; width:100%; box-sizing:border-box; }
.yard-row { display:flex; gap:8px; }
.yard-row select { flex:1; font-size:15px; padding:10px; border-radius:10px; background:rgba(255,255,255,.05); color:inherit; border:1px solid rgba(255,255,255,.14); }
.chips { display:flex; flex-wrap:wrap; gap:6px; }
.chip { border:1px solid rgba(255,255,255,.16); background:rgba(255,255,255,.04); color:inherit; border-radius:999px; padding:8px 12px; font-size:13px; font-weight:700; }
.chip.is-on { background:var(--accent, #ff7a1a); border-color:transparent; color:#111; }
.btn.big { padding:13px; font-size:16px; }
.yard-sum { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.yard-sum b { display:block; font-size:18px; margin:2px 0; }
.yard-sum small { color:var(--muted); font-size:12px; }
.yard-hint { margin:10px 2px; }
.ycar { border:1px solid rgba(255,255,255,.08); border-radius:14px; margin:8px 0; background:rgba(255,255,255,.03); overflow:hidden; }
.ycar-head { display:flex; align-items:center; gap:10px; width:100%; text-align:left; background:none; border:0; color:inherit; padding:12px; }
.ycar-head .rank { flex:0 0 28px; height:28px; border-radius:50%; background:rgba(255,255,255,.08); display:flex; align-items:center; justify-content:center; font-weight:800; font-size:13px; }
.ycar-main { flex:1; min-width:0; display:flex; flex-direction:column; gap:2px; }
.ycar-main b { font-size:16px; }
.ycar-main small { color:var(--muted); font-size:12px; }
.ycar-main .ytop { color:var(--accent2, #ffb36b); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.ycar-head .chev { font-size:22px; color:var(--muted); transition:transform .15s; }
.ycar-head[aria-expanded=true] .chev { transform:rotate(90deg); }
.yparts { list-style:none; margin:0; padding:0 12px 10px; }
.ypart { border-top:1px solid rgba(255,255,255,.07); padding:9px 0; }
.yp-top { display:flex; justify-content:space-between; gap:8px; }
.yp-top .price-s { font-weight:800; color:var(--accent2, #ffb36b); font-size:17px; }
.yp-stats { display:flex; flex-wrap:wrap; align-items:center; gap:6px; margin-top:5px; }
.btn.small { padding:6px 10px; font-size:12px; margin-left:auto; }
.yard-nr ul { columns:2; font-size:13px; }

/* "Test it" cards (Nov 5 2026): expander under the tip, outside the price area */
.testit { grid-column:1 / -1; margin:8px 0 0; border:1px solid var(--line2); border-radius:var(--radius-sm); background:var(--bg2); font-size:13px; }
.testit > summary { cursor:pointer; list-style:none; padding:7px 10px; font-weight:600; color:var(--accent2); }
.testit > summary::-webkit-details-marker { display:none; }
.testit > summary::after { content:"▸"; float:right; color:var(--dim); }
.testit[open] > summary::after { content:"▾"; }
.ti-body { padding:0 10px 10px; }
.ti-head { margin:0 0 6px; display:flex; flex-wrap:wrap; gap:6px; align-items:center; }
.ti-kind { font-size:11px; padding:1px 7px; border-radius:999px; background:var(--panel2); color:var(--muted); }
.ti-tag { font-size:11px; padding:1px 7px; border-radius:999px; border:1px dashed var(--warn); color:var(--warn); }
.ti-why { margin:0 0 6px; color:var(--text); }
.ti-steps { margin:0 0 6px; padding-left:20px; }
.ti-wh { margin:4px 0 2px; font-weight:600; font-size:13px; }
.ti-wires { margin:0 0 8px; padding-left:18px; font-size:13px; }
.ti-wires li { margin:2px 0; }
.ti-1src { font-size:11px; padding:0 6px; border-radius:999px; border:1px dashed var(--warn); color:var(--warn); white-space:nowrap; }
.ti-steps li { margin:2px 0; }
.ti-tip { margin:0 0 6px; color:var(--muted); }
.ti-warn { margin:0 0 6px; color:var(--warn); font-size:13px; font-weight:600; }
.ti-safe { margin:0; color:var(--warn); font-size:12px; }
.ti-lock { margin-left:4px; font-size:12px; }
.ti-wait { margin:0; color:var(--muted); }
.ti-locked { display:flex; flex-direction:column; gap:6px; align-items:flex-start; }
.ti-pitch { margin:0; color:var(--text); }
.ti-soon { font-size:11px; padding:2px 8px; border-radius:999px; background:var(--panel2); color:var(--accent2); font-weight:600; }

/* v29 (J Nov 6 3:10 AM): List it must fit inside every part card. List it full width on top, Pull list + Sold on eBay below. */
.part .actions { display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:6px; width:100%; box-sizing:border-box; }
.part .actions .btn { min-width:0; max-width:100%; box-sizing:border-box; white-space:normal; text-align:center; line-height:1.15; padding:11px 6px; overflow-wrap:anywhere; }
.part .actions .btn.primary { grid-column:1 / -1; order:-1; font-size:15px; padding:12px 8px; }
.part.rated .actions { flex-wrap:nowrap; }
.part, .pbody { max-width:100%; box-sizing:border-box; }
.part { overflow:hidden; }

/* ===== PRO (Nov 7 2026) ===== */
.pro-head { display:flex; align-items:center; justify-content:space-between; gap:10px; margin:6px 0 6px; }
.pro-status { font-size:12px; font-weight:800; padding:4px 10px; border-radius:999px; background:var(--panel2); color:var(--muted); border:1px solid var(--line2); }
.pro-status.on { color:#111; background:var(--grad); border-color:transparent; }
.pro-pitch { color:var(--muted); font-size:14px; margin:0 0 10px; }
.pro-nav { display:flex; gap:6px; overflow-x:auto; padding-bottom:6px; margin-bottom:8px; scrollbar-width:none; }
.pro-nav .chip, .pro-row .chip { white-space:nowrap; }
.chip.is-on { background:var(--grad); color:#111; border-color:transparent; }
.pro-lock { background:var(--panel); border:1px dashed var(--line2); border-radius:var(--radius); padding:14px; margin:10px 0; }
.pro-lock-h { margin:0 0 6px; font-size:16px; }
.pro-lock p { margin:0 0 6px; color:var(--muted); }
.pro-muted { color:var(--muted); font-size:13px; margin:6px 0; }
.pro-foot { color:var(--dim); font-size:12px; margin:14px 0; }
.pro-in { width:100%; background:var(--bg2); color:var(--text); border:1px solid var(--line2); border-radius:12px; padding:11px 12px; font-size:16px; }
.pro-row { display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin:8px 0; }
.pro-row .pro-in { flex:1; min-width:140px; }
.pro-walk { display:grid; gap:8px; margin:6px 0; }
.pro-grid { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin:6px 0 12px; }
.pro-grid .btn { grid-column:1 / -1; }
.pro-btn { display:inline-flex; align-items:center; justify-content:center; gap:6px; background:var(--grad); color:#111; font-weight:800; border:0; border-radius:12px; padding:11px 14px; font-size:15px; text-decoration:none; cursor:pointer; }
.pro-btn.sm { padding:7px 10px; font-size:13px; border-radius:10px; }
.pro-btn.ghost { background:var(--panel2); color:var(--text); border:1px solid var(--line2); }
.pro-snap { cursor:pointer; }
.pro-badge { font-size:9.5px; font-weight:900; letter-spacing:.06em; padding:2px 5px; border-radius:6px; background:var(--grad); color:#111; vertical-align:middle; }
.pro-yards, .pro-box { background:var(--panel); border:1px solid var(--line); border-radius:var(--radius-sm); padding:10px 12px; margin:8px 0; }
.pro-yards summary, .pro-box summary { font-weight:800; cursor:pointer; }
.pro-ylist { max-height:320px; overflow:auto; margin:8px 0; }
.pro-ych { margin:10px 0 4px; font-size:12px; font-weight:900; color:var(--accent2); text-transform:uppercase; letter-spacing:.05em; }
.pro-y { display:block; padding:6px 2px; border-bottom:1px solid var(--line); font-size:14px; }
.pro-y small { display:block; color:var(--dim); margin-left:24px; }
.pro-wl, .pro-ul, .pro-fll, .pro-pl { list-style:none; padding:0; margin:6px 0; }
.pro-wl li { display:flex; gap:8px; align-items:center; padding:6px 0; border-bottom:1px solid var(--line); }
.pro-wl small { color:var(--dim); flex:1; }
.pro-x { background:none; border:0; color:var(--dim); font-size:16px; cursor:pointer; padding:4px 8px; }
.pro-sum { margin:12px 0 6px; }
.pro-h3 { font-size:15px; margin:14px 0 6px; }
.pro-arr { background:var(--panel); border:1px solid var(--line); border-radius:var(--radius-sm); padding:10px 12px; margin:8px 0; }
.pro-arr.hit { border-color:var(--accent); box-shadow:0 0 0 1px var(--accent) inset; }
.pro-arr h3 { font-size:17px; margin:2px 0 4px; }
.pro-arr h3 small { color:var(--dim); font-size:12px; font-weight:600; }
.pro-arr-y { margin:0; color:var(--muted); font-size:12px; }
.pro-val { margin:4px 0; color:var(--good); font-weight:800; }
.pro-val small { color:var(--muted); font-weight:600; }
.pro-tps { display:flex; flex-wrap:wrap; gap:4px; margin:4px 0 8px; }
.pro-tp { font-size:11.5px; background:var(--panel2); border:1px solid var(--line2); border-radius:8px; padding:2px 6px; color:var(--text); }
.pro-wh h3 { margin:12px 0 2px; }
.pro-unv { color:var(--warn); }
.pro-pl li { background:var(--panel); border:1px solid var(--line); border-radius:var(--radius-sm); padding:10px 12px; margin:8px 0; }
.pro-pl li.done { opacity:.55; }
.pro-pl label { display:flex; align-items:center; gap:10px; font-weight:800; }
.pro-pl input[type=checkbox] { width:22px; height:22px; accent-color:var(--accent); flex:none; }
.pro-pn { flex:1; }
.pro-pp { font-size:17px; color:var(--muted); }
.pro-pp.pos { color:var(--good); }
.pro-pd { margin:4px 0 0 32px; color:var(--muted); font-size:12.5px; }
.pro-acts { display:flex; gap:6px; flex-wrap:wrap; margin:8px 0 0; }
.pro-pl .pro-acts { margin-left:32px; }
.pro-walkbtn { width:100%; margin:4px 0 10px; }
.pro-listit { margin-top:8px; background:var(--panel2); color:var(--text); border:1px solid var(--line2); border-radius:10px; padding:6px 10px; font-weight:800; font-size:13px; cursor:pointer; }
.pro-modal { position:fixed; inset:0; z-index:40; background:rgba(0,0,0,.6); display:flex; align-items:flex-end; justify-content:center; }
.pro-sheet { position:relative; width:100%; max-width:640px; max-height:88dvh; overflow:auto; background:var(--bg2); border:1px solid var(--line2); border-radius:18px 18px 0 0; padding:16px 16px calc(20px + env(safe-area-inset-bottom)); }
.pro-close { position:absolute; top:8px; right:8px; }
.pro-sheet h3 { margin:0 28px 10px 0; }
.pro-f { margin:10px 0; }
.pro-fl { margin:0 0 4px; font-size:12px; font-weight:900; color:var(--muted); text-transform:uppercase; letter-spacing:.04em; display:flex; justify-content:space-between; align-items:center; }
.pro-fv { margin:0; background:var(--panel); border:1px solid var(--line); border-radius:10px; padding:9px 10px; font:14px/1.4 var(--font); white-space:pre-wrap; }
.pro-copy { background:var(--panel2); color:var(--text); border:1px solid var(--line2); border-radius:8px; padding:3px 9px; font-size:12px; font-weight:800; text-transform:none; letter-spacing:0; }
.pro-tbl { width:100%; border-collapse:collapse; font-size:13px; }
.pro-tbl th, .pro-tbl td { text-align:right; padding:6px 4px; border-bottom:1px solid var(--line); }
.pro-tbl th:first-child, .pro-tbl td:first-child { text-align:left; }
.pro-fll li { background:var(--panel); border:1px solid var(--line); border-radius:var(--radius-sm); padding:10px 12px; margin:8px 0; }
.pro-fll li.mine { border-color:var(--accent); }
.pro-fll p { margin:2px 0; }
.pro-st { font-weight:800; text-transform:uppercase; font-size:11px; }
.pro-st.sold { color:var(--good); } .pro-st.listed { color:var(--warn); }
.pro-ol { padding-left:22px; } .pro-ol li { margin:6px 0; } .pro-ol small { color:var(--muted); display:block; }
.pro-law { background:var(--panel); border-left:3px solid var(--warn); padding:8px 10px; border-radius:8px; font-size:13px; }
.testit .pro-badge { margin-left:4px; }
.pro-pl li.pro-big { background:none; border:0; padding:10px 2px 0; color:var(--warn); font-size:12.5px; font-weight:800; }
#panel-pro a:not(.btn) { color:var(--accent2); }
.pro-fits { margin:6px 0 0 32px; font-size:12.5px; } .pro-fits summary { color:var(--accent2); font-weight:800; cursor:pointer; } .pro-fits small { color:var(--dim); }
/* ===== end PRO ===== */

/* Snap the car (Nov 7 2026) */
.pro-snapcar { background:var(--panel); border:1px solid var(--line2); border-radius:var(--radius-sm); padding:10px 12px; margin:10px 0; }
.pro-snaph { margin:0 0 6px; }
.pro-tip { font-size:.85em; margin:6px 0 0; }
.pro-vin, .pro-vintxt { font-family: ui-monospace, Menlo, Consolas, monospace; letter-spacing:.06em; }
.pro-vintxt mark, .pro-fix mark { background:var(--warn); color:#111; border-radius:3px; padding:0 1px; }
.pro-fix, .pro-guess { display:block; width:100%; text-align:left; margin:6px 0; font-family: ui-monospace, Menlo, Consolas, monospace; }
.pro-guess { font-family:inherit; }

/* Nov 7 2026: logo #6 patch + Discord join button (header, Pro, Q&A) */
.logo.logo-img { width:34px; height:34px; border-radius:50%; background:none; box-shadow:0 3px 12px rgba(255,90,30,.35); overflow:hidden; }
.logo.logo-img img { width:34px; height:34px; display:block; }
.top-right { display:flex; align-items:center; gap:8px; min-width:0; }
.discord-btn { display:inline-flex; align-items:center; gap:6px; flex:none; padding:6px 11px; border-radius:999px; background:#5865f2; color:#fff; font-weight:800; font-size:13px; text-decoration:none; box-shadow:0 3px 12px rgba(88,101,242,.4); white-space:nowrap; }
.discord-btn svg { width:17px; height:17px; }
a.discord-btn, a.discord-btn:visited { color:#fff; }
.discord-btn:active { transform:scale(.97); }
.discord-card { display:flex; align-items:center; justify-content:space-between; gap:10px; margin:12px 0; padding:11px 13px; border-radius:14px; background:rgba(88,101,242,.12); border:1px solid rgba(88,101,242,.35); }
.discord-card p { margin:0; font-size:13px; line-height:1.35; color:var(--text); }
.discord-card small { display:block; color:var(--muted, #9aa0aa); font-size:12px; }
@media (max-width:360px) { .discord-btn span { display:none; } .discord-btn { padding:7px 9px; } }

/* v41 Pull log + Leaderboard */
.neg { color:var(--bad); }
.pl-tots { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin:8px 0; }
.pl-tot { background:var(--panel); border:1px solid var(--line); border-radius:12px; padding:10px 8px; display:flex; flex-direction:column; gap:2px; text-align:center; }
.pl-tot b { font-size:19px; color:var(--good); } .pl-tot b.neg { color:var(--bad); } .pl-tot small { color:var(--muted); font-size:11.5px; }
.pl-sub { font-size:13px; }
.pl-add { background:var(--panel); border:1px solid var(--line); border-radius:12px; padding:10px 12px; margin:10px 0; } .pl-add summary { font-weight:800; cursor:pointer; }
.pl-form { display:flex; flex-direction:column; gap:8px; margin-top:8px; } .pl-row { display:flex; gap:8px; align-items:center; } .pl-row .pro-in { flex:1; min-width:0; } .pl-row .pl-y { flex:0 0 76px; }
.pl-me { display:flex; align-items:center; justify-content:space-between; gap:8px; background:var(--panel2); border-radius:12px; padding:8px 12px; margin:8px 0; font-size:14px; }
.pl-linked { color:var(--good); font-weight:800; text-decoration:none; white-space:nowrap; } .pl-flag { color:var(--warn); font-weight:700; }
.pro-st.pulled { color:var(--warn); } .pro-st.listed { color:var(--accent2); } .pro-st.sold { color:var(--good); }
.pl-sold:empty { display:none; }
.lb-prize { background:linear-gradient(135deg,rgba(255,106,26,.18),rgba(255,176,32,.12)); border:1px solid var(--accent); border-radius:14px; padding:12px 14px; margin:8px 0 12px; display:flex; flex-direction:column; gap:4px; }
.lb-prize p { margin:0; font-size:15px; } .lb-prize small { color:var(--muted); } .lb-rule { font-weight:700; color:var(--accent2) !important; }
.lb-list { list-style:none; padding:0; margin:8px 0; } .lb-list li { display:flex; align-items:center; gap:10px; padding:10px 4px; border-bottom:1px solid var(--line); }
.lb-rk { width:30px; text-align:center; font-size:18px; font-weight:800; color:var(--muted); } .lb-nm { flex:1; font-weight:700; min-width:0; } .lb-ln { color:var(--good); font-weight:700; font-size:11.5px; white-space:nowrap; }
.lb-pf { text-align:right; font-weight:800; color:var(--good); display:flex; flex-direction:column; } .lb-pf small { color:var(--muted); font-weight:500; font-size:11.5px; }
.lb-empty { text-align:center; padding:22px 8px; font-size:17px; font-weight:800; background:var(--panel); border:1px dashed var(--line2); border-radius:12px; margin:8px 0; }
.lb-facts { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin:10px 0; } .lb-facts > div { background:var(--panel); border:1px solid var(--line); border-radius:12px; padding:10px; display:flex; flex-direction:column; gap:2px; }
.lb-facts small { color:var(--muted); font-size:11.5px; } .lb-facts b { font-size:18px; } .lb-facts span { font-size:12.5px; color:var(--muted); }
.lb-rules-a { color:var(--muted); font-size:12.5px; } .lb-rules { background:var(--panel); border-radius:12px; padding:10px 12px; font-size:13px; color:var(--muted); }
.lb-join { margin:12px 0; } .lb-own { margin:14px 0; background:var(--panel); border:1px solid var(--line2); border-radius:12px; padding:10px 12px; } .lb-own summary { font-weight:800; cursor:pointer; } .lb-own h4 { margin:12px 0 4px; }

/* Row badge (v43, J Nov 7 2026 2:16 PM): compact ROW box at the left of each yard car ("doesn't need to be too big") */
.rowb { flex:0 0 auto; width:48px; min-height:46px; border:2px solid var(--accent2); border-radius:10px; display:flex; flex-direction:column; align-items:center; justify-content:center; padding:3px 2px; line-height:1; background:rgba(255,154,60,.08); color:var(--text); text-align:center; }
.rowb small { font-size:9px; font-weight:800; letter-spacing:.1em; color:var(--muted); }
.rowb b { font-size:21px; font-weight:900; margin-top:3px; letter-spacing:-.03em; overflow-wrap:anywhere; }
.rowb.t3 b { font-size:19px; }
.rowb.md b { font-size:14px; }
.rowb.sm b { font-size:11px; }
.rowb.unk { border-color:var(--line2); background:rgba(255,255,255,.03); }
.rowb.unk b, .rowb.unk small { color:var(--dim); }
.ycar-head .yrk { color:var(--dim); font-size:12px; font-weight:800; margin-right:2px; }
.pro-arr.has-rowb { display:flex; gap:10px; align-items:flex-start; }
.pro-arr-b { flex:1; min-width:0; }

/* Nov 7 2026: tappable yard car cards + yard car page strip */
.tapcar, .ycar-head[data-act=yview] { cursor:pointer; -webkit-tap-highlight-color:rgba(255,255,255,.06); }
.tapcar:active, .ycar-head[data-act=yview]:active { background:rgba(255,255,255,.05); }
.vcar { display:block; text-align:right; color:var(--accent2, #ffb36b); font-size:12px; font-weight:700; margin-top:4px; }
.ycar-head .vcar { flex:0 0 auto; align-self:center; margin:0; white-space:nowrap; }
.ycar-more { display:block; width:100%; text-align:left; background:none; border:0; border-top:1px solid rgba(255,255,255,.06); color:var(--muted); font-size:12px; padding:8px 12px; }
.carfrom { background:var(--panel, rgba(255,255,255,.03)); border:1px solid var(--line, rgba(255,255,255,.08)); border-radius:14px; padding:10px 12px; margin:6px 0 12px; }
.cf-back { background:none; border:0; color:var(--accent2, #ffb36b); font-weight:700; font-size:15px; padding:4px 0 8px; }
.cf-row { display:flex; gap:10px; align-items:center; }
.cf-main { display:flex; flex-direction:column; gap:2px; min-width:0; }
.cf-main b { font-size:17px; } .cf-main small { color:var(--muted); font-size:12px; }

/* v45 (Nov 8 2026): est. net, low-data / old-data / fitment tags (site/net.js), VIN scan (pro.js 2c) */
.ss-tags{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0 2px}
.ss-tag{display:inline-flex;align-items:center;gap:4px;font-size:12px;line-height:1.2;font-weight:700;padding:4px 8px;border-radius:999px;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.05);color:inherit}
.ss-tag small{font-weight:500;opacity:.75}
.ss-tag.low.risky{background:rgba(255,77,77,.16);border-color:rgba(255,99,99,.55);color:#ff9b9b}
.ss-tag.low.thin{background:rgba(255,186,58,.14);border-color:rgba(255,186,58,.5);color:#ffcf7a}
.ss-tag.low.old{background:rgba(160,160,170,.14);border-color:rgba(170,170,180,.45);color:#c9c9d2}
.ss-tag.fit{background:rgba(90,160,255,.13);border-color:rgba(90,160,255,.45);color:#a9cbff}
.ss-tag.eng{background:rgba(60,200,120,.14);border-color:rgba(60,200,120,.5);color:#8ee6b1}
.ss-net{margin:8px 0 4px;padding:8px 10px;border-radius:10px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08)}
.ss-net-top{display:flex;align-items:center;justify-content:space-between;gap:8px}
.ss-net-v{font-size:14px}
.ss-net-v b{font-size:17px}
.ss-net.pos .ss-net-v b{color:#5fe08f}
.ss-net.shaky .ss-net-v b{opacity:.7}
.ss-net-before{opacity:.75;font-size:11px}
.ss-net-math{display:block;margin-top:3px;font-size:11.5px;opacity:.75;line-height:1.35}
.ss-net-ed{flex:none;font:inherit;font-size:12px;padding:4px 8px;border-radius:8px;border:1px solid rgba(255,255,255,.18);background:transparent;color:inherit;cursor:pointer}
.ss-net-form{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.ss-net-form label{display:flex;align-items:center;gap:4px;font-size:13px}
.ss-net-form input{width:96px;font:inherit;font-size:16px;padding:6px 8px;border-radius:8px;border:1px solid rgba(255,255,255,.2);background:rgba(0,0,0,.25);color:inherit}
.ss-net-form small{flex-basis:100%;opacity:.7;font-size:11px}
.pro-pp small{font-weight:500;opacity:.7;font-size:11px}
.pro-vinscan{margin:10px 0;padding:10px;border-radius:12px;border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.03)}
.pro-vincam video{width:100%;max-height:220px;border-radius:10px;background:#000;object-fit:cover;margin:6px 0}
.pro-vincard{margin-top:8px;padding:10px;border-radius:10px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.1)}
.pro-vinh{margin:0 0 6px;font-size:16px}
.pro-vinh span{opacity:.75;font-size:13px}
.pro-vindl{display:grid;grid-template-columns:1fr;gap:4px;margin:0 0 6px}
.pro-vindl div{display:flex;gap:8px}
.pro-vindl dt{min-width:56px;opacity:.65;font-size:13px}
.pro-vindl dd{margin:0;font-weight:700;font-size:14px}
.ss-net-v{display:flex;flex-direction:column;line-height:1.15}
.ss-net-v b{display:inline}
.ss-net-before{display:block;margin-top:2px}
.pro-vinhit{display:flex;gap:10px;align-items:center;margin-top:8px;padding:8px;border-radius:10px;background:rgba(255,255,255,.04)}
.pro-vinhit div{display:flex;flex-direction:column;gap:2px;min-width:0}
.pro-vinhit small{opacity:.8}


/* v46 (Nov 8 2026): the yard's own car photo (site/yardphoto.js) - real photos or none; tap to enlarge */
.yph { float:right; width:104px; height:70px; margin:0 0 6px 10px; padding:0; border:1px solid var(--line); border-radius:10px; overflow:hidden; background:var(--panel2); cursor:zoom-in; flex:none; }
.yph.md { float:none; width:120px; height:80px; margin:0 0 0 auto; }
.yph.pending { background:linear-gradient(90deg,var(--panel2),var(--line),var(--panel2)); }
.yph img { display:block; width:100%; height:100%; object-fit:cover; }
.pro-vinhit .yph { float:none; margin:0; width:84px; height:56px; }
.yph-box { position:fixed; inset:0; z-index:9999; background:rgba(0,0,0,.92); display:flex; flex-direction:column; align-items:center; justify-content:center; padding:16px; }
.yph-box img { max-width:100%; max-height:78vh; border-radius:10px; object-fit:contain; background:#000; }
.yph-box p { color:var(--muted); font-size:12px; margin:10px 0 0; }
.yph-x { position:absolute; top:12px; right:12px; width:40px; height:40px; border-radius:999px; border:1px solid var(--line2); background:var(--panel); color:var(--text); font-size:18px; }
/* v46: profit tracker over the pull log */
.pt { background:var(--panel); border:1px solid var(--line); border-radius:12px; padding:10px 12px; margin:12px 0; }
.pt .pro-h3 { margin-top:2px; }
.pt-per { display:flex; gap:6px; margin:6px 0 8px; flex-wrap:wrap; }
.pt-per .chip.is-on { border-color:var(--accent); color:var(--text); }
.pt-l { display:flex; justify-content:space-between; gap:10px; padding:4px 0; font-size:15px; border-bottom:1px dashed var(--line); }
.pt-l span { color:var(--muted); }
.pt-l.tot { border-bottom:0; border-top:1px solid var(--line2); margin-top:2px; padding-top:7px; font-size:17px; }
.pt-l.tot span { color:var(--text); font-weight:700; }
.pt-l.pos b, .pt-rank .pos { color:var(--good); } .pt-l.neg b, .pt-rank .neg { color:var(--bad); }
.pt-inv { margin:10px 0 4px; font-size:14px; } .pt-inv small { color:var(--muted); display:block; }
.pt-rank { margin-top:8px; } .pt-rank summary { cursor:pointer; color:var(--accent2); font-weight:600; font-size:14px; }
.pt-rank ol { margin:6px 0 0; padding-left:22px; } .pt-rank li { margin:5px 0; font-size:14px; } .pt-rank li small { display:block; color:var(--muted); font-size:12px; }
.pt-acts { margin:8px 0 0; } .pt-note { font-size:12px; }
.pl-lab { display:flex; flex-direction:column; gap:3px; font-size:12px; color:var(--muted); flex:1; min-width:0; }

/* v47 Learn tab (free eBay guides) */
.lr-list { display:grid; gap:10px; }
.lr-card { display:flex; align-items:center; gap:14px; width:100%; text-align:left; background:var(--panel); border:1px solid var(--line); border-radius:var(--radius); padding:14px; color:var(--text); font:inherit; cursor:pointer; -webkit-tap-highlight-color:transparent; }
.lr-card:active { background:var(--panel2); }
.lr-emoji { flex:0 0 46px; height:46px; border-radius:14px; display:grid; place-items:center; font-size:24px; background:rgba(255,122,26,.12); border:1px solid rgba(255,122,26,.25); }
.lr-main { flex:1; min-width:0; }
.lr-main b { display:block; font-size:16px; line-height:1.3; }
.lr-main small { display:block; color:var(--muted); font-size:13px; margin-top:3px; }
.lr-chev { color:var(--dim); font-size:26px; line-height:1; }
.lr-guide { padding-bottom:12px; }
.lr-back { background:none; border:0; color:var(--accent2); font:700 15px/1 var(--font); padding:10px 0; cursor:pointer; }
.lr-back2 { display:block; margin-top:14px; }
.lr-video { margin:6px 0 14px; border-radius:var(--radius); overflow:hidden; background:#000; border:1px solid var(--line); }
.lr-video video { display:block; width:100%; max-height:70vh; }
.lr-head { margin:4px 0 16px; }
.lr-big { font-size:38px; line-height:1; display:block; margin-bottom:8px; }
.lr-head h2 { margin:0; font-size:24px; line-height:1.2; letter-spacing:-.01em; }
.lr-head small { display:block; color:var(--muted); font-size:13.5px; margin-top:6px; }
.lr-sec { margin:0 0 18px; }
.lr-sec h3 { font-size:17px; margin:0 0 6px; color:var(--text); }
.lr-sec p, .lr-tip p { margin:0 0 10px; font-size:16px; line-height:1.55; color:#dfe2ea; }
.lr-guide strong { color:var(--text); font-weight:750; }
.lr-guide ul, .lr-guide ol { margin:0 0 10px; padding-left:22px; }
.lr-guide li { margin:0 0 6px; font-size:16px; line-height:1.5; color:#dfe2ea; }
.lr-guide li::marker { color:var(--accent2); font-weight:700; }
.lr-guide ul.lr-check { list-style:none; padding:0; display:grid; gap:6px; }
.lr-check li { margin:0; }
.lr-tick { display:flex; gap:12px; align-items:flex-start; width:100%; text-align:left; background:var(--panel); border:1px solid var(--line); border-radius:12px; padding:11px 12px; color:#dfe2ea; font:16px/1.45 var(--font); cursor:pointer; -webkit-tap-highlight-color:transparent; }
.lr-box { flex:0 0 22px; height:22px; margin-top:1px; border-radius:7px; border:2px solid var(--line2); display:grid; place-items:center; transition:all .15s; }
.lr-tick[aria-pressed="true"] { border-color:rgba(47,212,122,.35); }
.lr-tick[aria-pressed="true"] .lr-box { background:var(--good); border-color:var(--good); }
.lr-tick[aria-pressed="true"] .lr-box::after { content:"✓"; color:#08130c; font-weight:900; font-size:14px; }
.lr-tick[aria-pressed="true"] > span:last-child { color:var(--muted); text-decoration:line-through; text-decoration-color:rgba(154,163,178,.6); }
.lr-tip { position:relative; margin:4px 0 20px; padding:14px 14px 4px 16px; border-radius:var(--radius); background:linear-gradient(135deg,rgba(255,122,26,.16),rgba(255,77,46,.07)); border:1px solid rgba(255,122,26,.38); box-shadow:inset 4px 0 0 var(--accent); }
.lr-tip-h { font-weight:800; font-size:14.5px; color:var(--accent2); margin-bottom:8px; }
.lr-tip p, .lr-tip li { color:var(--text); }
.lr-src { margin-top:22px; padding-top:14px; border-top:1px solid var(--line); }
.lr-src h4 { margin:0 0 8px; font-size:14px; color:var(--muted); text-transform:uppercase; letter-spacing:.05em; }
.lr-src h4 small { text-transform:none; letter-spacing:0; font-weight:500; color:var(--dim); }
.lr-src ol { padding-left:20px; margin:0; }
.lr-src li { font-size:13.5px; line-height:1.4; margin:0 0 6px; overflow-wrap:anywhere; }
.lr-src a { color:var(--accent2); text-decoration:none; }

/* ===== v50 7-day free trial (trial.js): teaser, banner, sheet, Pro tab card, owner signup list ===== */
.trial-btn { display:inline-flex; align-items:center; justify-content:center; gap:6px; border:0; border-radius:999px; background:var(--grad); color:#fff; font:700 15px/1 var(--font); padding:12px 18px; cursor:pointer; box-shadow:0 8px 22px rgba(255,90,30,.35); white-space:nowrap; }
.trial-btn.big { width:100%; font-size:18px; padding:17px 20px; margin:6px 0 4px; }
.trial-btn:disabled { opacity:.6; }
.trial-banner { display:flex; align-items:center; gap:10px; margin:12px 0 4px; padding:12px 12px 12px 14px; border-radius:var(--radius); background:linear-gradient(135deg,rgba(255,122,26,.16),rgba(255,77,46,.08)); border:1px solid rgba(255,122,26,.45); }
.trial-banner[hidden] { display:none; }
.trial-banner > span:nth-child(2) { flex:1; min-width:0; }
.trial-banner b { display:block; font-size:14.5px; line-height:1.3; }
.trial-banner small { display:block; color:var(--muted); font-size:12.5px; margin-top:2px; }
.trial-banner .tb-ico { font-size:22px; }
.trial-banner.on { background:rgba(47,212,122,.1); border-color:rgba(47,212,122,.45); }
.trial-banner.ended { display:block; }
.trial-ended { margin:0 0 8px; color:var(--text); font-size:14px; line-height:1.45; }
.trial-ended a { color:var(--accent2); }
.trial-discord { display:inline-flex; }
.teaser { margin:14px 0; padding:20px 16px 16px; border-radius:var(--radius); background:var(--panel); border:1px solid rgba(255,122,26,.5); text-align:center; box-shadow:var(--shadow); }
.teaser-h { font-size:21px; line-height:1.3; font-weight:800; margin:0 0 14px; }
.teaser-h b { color:var(--accent2); }
.teaser-ghost { display:grid; gap:8px; margin:0 0 14px; }
.teaser-ghost span { height:46px; border-radius:12px; background:linear-gradient(90deg,var(--panel2),var(--line),var(--panel2)); opacity:.7; filter:blur(1px); }
.teaser-ghost span:nth-child(2) { opacity:.5; } .teaser-ghost span:nth-child(3) { opacity:.3; }
.teaser-cta { margin:0 0 6px; color:var(--text); font-size:15.5px; font-weight:600; }
.teaser-note { color:var(--muted); font-size:13px; margin:0 0 10px; }
.teaser-fine { display:block; color:var(--dim); font-size:12px; margin-top:6px; }
.teaser.is-ended { text-align:left; }
.trial-inline { display:flex; align-items:center; justify-content:space-between; gap:10px; flex-wrap:wrap; margin:10px 0; padding:12px 14px; border-radius:var(--radius); background:var(--panel); border:1px solid rgba(255,122,26,.45); font-weight:600; font-size:14px; }
.ycar.ylocked .ytop { color:var(--accent2); }
.trial-sheet { position:fixed; inset:0; z-index:200; background:rgba(0,0,0,.6); display:flex; align-items:flex-end; justify-content:center; }
.ts-card { position:relative; width:100%; max-width:520px; background:var(--bg2); border:1px solid var(--line2); border-radius:22px 22px 0 0; padding:24px 18px calc(22px + env(safe-area-inset-bottom)); box-shadow:var(--shadow); max-height:92vh; overflow:auto; }
@media (min-width:600px) { .trial-sheet { align-items:center; } .ts-card { border-radius:22px; } }
.ts-card h2 { margin:0 0 6px; font-size:23px; padding-right:30px; }
.ts-sub { color:var(--text); margin:0 0 10px; font-size:15.5px; }
.ts-list { margin:0 0 14px; padding-left:20px; color:var(--muted); font-size:14px; line-height:1.5; }
.ts-form label { display:block; font-weight:700; font-size:14px; margin:0 0 6px; }
.ts-form input[type=email] { width:100%; background:var(--panel); color:var(--text); border:1px solid var(--line2); border-radius:14px; padding:14px; font-size:17px; }
.ts-hp { position:absolute; left:-9999px; width:1px; height:1px; opacity:0; }
.ts-msg { min-height:20px; margin:6px 0 0; font-size:14px; color:var(--muted); }
.ts-msg.bad { color:var(--bad); }
.ts-fine { display:block; color:var(--dim); font-size:12px; margin-top:10px; line-height:1.45; }
.ts-x { position:absolute; top:14px; right:14px; width:34px; height:34px; border-radius:50%; border:1px solid var(--line2); background:var(--panel); color:var(--text); font-size:16px; cursor:pointer; }
.trial-card { margin:10px 0 12px; padding:16px; border-radius:var(--radius); background:linear-gradient(135deg,rgba(255,122,26,.18),rgba(255,77,46,.06)); border:1px solid rgba(255,122,26,.5); }
.trial-card-h { margin:0 0 4px; font-weight:800; font-size:17px; line-height:1.3; }
.trial-card-sub { margin:0 0 6px; color:var(--muted); font-size:13px; }
.trial-owner { margin:10px 0; padding:12px 14px; border-radius:var(--radius); background:var(--panel); border:1px solid var(--line2); }
.trial-owner p { margin:0 0 8px; }
.trial-list { list-style:none; margin:10px 0 0; padding:0; font-size:13px; }
.trial-list li { display:flex; justify-content:space-between; gap:8px; padding:6px 0; border-top:1px solid var(--line); }
.trial-list small { color:var(--muted); white-space:nowrap; }
.pro-lock .trial-btn { margin:6px 0 2px; }
body.has-result .trial-banner:not(.on) { display:none; } /* after a search the teaser card carries the trial button */
