:root{--bg: #0f1115;--bg-elev: #171a21;--bg-card: #1c2029;--border: #2a2f3a;--text: #e8eaed;--text-dim: #9aa3b2;--accent: #5b8cff;--accent-2: #7c5bff;--good: #38c172;--warn: #f0a020;--radius: 14px;--shadow: 0 6px 24px rgba(0, 0, 0, .35);font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%}body{background:radial-gradient(1200px 600px at 50% -10%,#1a1f2b 0%,var(--bg) 60%);color:var(--text);-webkit-font-smoothing:antialiased}.app{max-width:920px;margin:0 auto;padding:0 16px 48px;min-height:100vh;display:flex;flex-direction:column}.topbar{display:flex;align-items:baseline;gap:12px;padding:22px 4px 16px;border-bottom:1px solid var(--border);margin-bottom:24px}.brand{background:none;border:none;color:var(--text);font-size:22px;font-weight:700;cursor:pointer;display:flex;align-items:center;gap:8px;padding:0}.logo{color:var(--accent)}.tagline{color:var(--text-dim);font-size:13px;letter-spacing:.04em}.content{flex:1}.btn{background:var(--bg-elev);color:var(--text);border:1px solid var(--border);border-radius:10px;padding:11px 16px;font-size:14px;font-weight:600;cursor:pointer;transition:border-color .15s,background .15s,transform .05s}.btn:hover:not(:disabled){border-color:var(--accent)}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.primary{background:linear-gradient(135deg,var(--accent),var(--accent-2));border-color:transparent;color:#fff}.btn.back{margin-bottom:16px}.icon-btn{background:none;border:none;color:var(--text-dim);font-size:18px;cursor:pointer}.scanner-input{margin-bottom:24px}.scan-row{display:flex;gap:10px}.upc-field{flex:1;background:var(--bg-elev);border:1px solid var(--border);border-radius:10px;padding:13px 16px;color:var(--text);font-size:18px;letter-spacing:.05em;outline:none}.upc-field:focus{border-color:var(--accent);box-shadow:0 0 0 3px #5b8cff2e}@media (max-width: 560px){.scan-row{flex-wrap:wrap}.upc-field{flex-basis:100%}}.banner{border-radius:10px;padding:12px 16px;margin-bottom:16px;font-size:14px}.banner.error{background:#f03c3c1f;border:1px solid rgba(240,60,60,.4);color:#ff9b9b}.loading{display:flex;align-items:center;gap:12px;color:var(--text-dim);padding:24px 4px}.spinner{width:18px;height:18px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.empty{text-align:center;padding:64px 16px;color:var(--text-dim)}.empty-big{font-size:22px;color:var(--text);margin:0 0 8px}.empty-sub{margin:0}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow);margin-bottom:20px}.country-filter{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}.chip{background:var(--bg-elev);border:1px solid var(--border);color:var(--text-dim);border-radius:999px;padding:6px 12px;font-size:13px;font-weight:600;cursor:pointer;transition:all .12s}.chip:hover{color:var(--text);border-color:var(--accent)}.chip.active{background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#fff;border-color:transparent}.chip-count{opacity:.7;font-variant-numeric:tabular-nums;margin-left:2px}.results-meta{color:var(--text-dim);font-size:14px;margin:4px 0 16px}.results-meta code{color:var(--text);background:var(--bg-elev);padding:2px 6px;border-radius:6px}.result-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px}.result-card{display:flex;gap:14px;width:100%;text-align:left;background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:12px;cursor:pointer;color:var(--text);transition:border-color .15s,transform .05s}.result-card:hover{border-color:var(--accent)}.result-card:active{transform:translateY(1px)}.thumb,.thumb-placeholder{width:64px;height:64px;border-radius:8px;flex-shrink:0;overflow:hidden;background:var(--bg-elev)}.thumb img{width:100%;height:100%;object-fit:cover}.thumb-placeholder{display:flex;align-items:center;justify-content:center;font-size:26px;color:var(--text-dim)}.result-info{display:flex;flex-direction:column;gap:4px;min-width:0}.result-title{font-weight:600;font-size:14px;line-height:1.3}.result-sub,.result-label{color:var(--text-dim);font-size:12px}.press-line{display:inline-flex;align-items:baseline;gap:4px;font-size:12px;font-weight:600;color:var(--good);margin-top:2px}.press-line .plant-icon{font-size:11px}.badges{display:flex;flex-wrap:wrap;gap:5px;margin:4px 0}.badge{font-size:11px;background:var(--bg-elev);border:1px solid var(--border);color:var(--text-dim);padding:2px 7px;border-radius:999px}.detail-top{display:flex;gap:20px}.cover,.cover-placeholder{width:180px;height:180px;border-radius:10px;overflow:hidden;flex-shrink:0;background:var(--bg-elev)}.cover img{width:100%;height:100%;object-fit:cover}.cover-placeholder{display:flex;align-items:center;justify-content:center;font-size:48px;color:var(--text-dim)}.detail-meta h2{margin:0 0 4px;font-size:22px}.detail-meta .artist{margin:0 0 6px;color:var(--text);font-size:16px}.detail-meta .sub,.detail-meta .labels,.detail-meta .genres,.detail-meta .community{color:var(--text-dim);font-size:13px;margin:4px 0 0}.discogs-link{display:inline-block;margin-top:12px;color:var(--accent);text-decoration:none;font-size:14px;font-weight:600}.discogs-link:hover{text-decoration:underline}@media (max-width: 560px){.detail-top{flex-direction:column}.cover,.cover-placeholder{width:100%;height:auto;aspect-ratio:1}}.prices h3,.tracklist h3{margin:0 0 14px;font-size:16px}.condition-picker{display:flex;flex-wrap:wrap;gap:8px}.cond-btn{background:var(--bg-elev);border:1px solid var(--border);color:var(--text-dim);border-radius:9px;padding:8px 12px;font-weight:700;font-size:13px;cursor:pointer;min-width:46px;transition:all .12s}.cond-btn:hover{color:var(--text);border-color:var(--accent)}.cond-btn.active{background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#fff;border-color:transparent}.condition-full{color:var(--text-dim);font-size:13px;margin:10px 0 16px}.price-highlight{display:flex;gap:16px;flex-wrap:wrap;align-items:stretch;margin-bottom:18px}.price-main{background:var(--bg-elev);border:1px solid var(--border);border-radius:12px;padding:18px 22px;flex:1;min-width:200px;display:flex;flex-direction:column;gap:6px}.price-aside{display:flex;gap:12px}.price-aside>div{background:var(--bg-elev);border:1px solid var(--border);border-radius:12px;padding:18px;display:flex;flex-direction:column;gap:6px;justify-content:center;min-width:120px}.price-label{color:var(--text-dim);font-size:12px;text-transform:uppercase;letter-spacing:.05em}.price-value{font-size:34px;font-weight:800;color:var(--good);line-height:1}.price-value-sm{font-size:20px;font-weight:700}.range-caption{color:var(--text-dim);font-size:13px;margin:0 0 8px}.price-table{width:100%;border-collapse:collapse;font-size:14px}.price-table td{padding:8px 10px;border-bottom:1px solid var(--border)}.price-table td.num{text-align:right;font-variant-numeric:tabular-nums;font-weight:600}.price-table tr:last-child td{border-bottom:none}.price-table tr.row-active td{background:#5b8cff1f;color:var(--text)}.demand h3{margin:0 0 8px;font-size:16px}.gauge-wrap{position:relative;max-width:280px;margin:0 auto}.gauge{width:100%;height:auto;display:block;overflow:visible}.gauge-track{fill:none;stroke:var(--bg-elev);stroke-width:16;stroke-linecap:round}.gauge-value{fill:none;stroke-width:16;stroke-linecap:round;transition:stroke-dasharray .4s ease}.gauge-end{fill:var(--text-dim);font-size:11px}.gauge-center{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding-top:34px;pointer-events:none}.gauge-level{font-size:24px;font-weight:800;line-height:1.1}.gauge-ratio{font-size:12px;color:var(--text-dim);text-transform:uppercase;letter-spacing:.08em}.demand-stats{display:flex;justify-content:center;gap:28px;margin-top:6px}.demand-stats>div{display:flex;flex-direction:column;align-items:center;gap:2px}.demand-stats .num{font-size:20px;font-weight:700;font-variant-numeric:tabular-nums}.demand-stats .lbl{font-size:11px;color:var(--text-dim);text-transform:uppercase;letter-spacing:.04em}.hint.center{text-align:center;margin:12px auto 0;max-width:360px}.pressing h3{margin:0 0 14px;font-size:16px}.subhead{margin:18px 0 8px;font-size:13px;text-transform:uppercase;letter-spacing:.05em;color:var(--text-dim)}.company-list{list-style:none;margin:0;padding:0}.company-list li{display:flex;gap:12px;align-items:baseline;padding:8px 0;border-bottom:1px solid var(--border)}.company-list li:last-child{border-bottom:none}.company-role{flex-shrink:0;width:150px;color:var(--text-dim);font-size:12px;text-transform:uppercase;letter-spacing:.04em}.company-name{font-size:15px;font-weight:600}.company-list.plant .company-name{color:var(--good)}.plant-icon{margin-right:6px}.company-list.muted .company-name{font-weight:500;color:var(--text-dim)}.other-credits{margin-top:14px}.other-credits>summary{cursor:pointer;color:var(--text-dim);font-size:13px;padding:6px 0}.other-credits[open]>summary{margin-bottom:4px}@media (max-width: 560px){.company-list li{flex-direction:column;gap:2px}.company-role{width:auto}}.tracklist ol{list-style:none;margin:0;padding:0}.tracklist li{display:flex;gap:12px;padding:7px 0;border-bottom:1px solid var(--border);font-size:14px}.tracklist li:last-child{border-bottom:none}.track-pos{color:var(--text-dim);min-width:36px}.track-title{flex:1}.track-dur{color:var(--text-dim);font-variant-numeric:tabular-nums}.hint{color:var(--text-dim);font-size:13px}.hint.warn{color:var(--warn)}.error-text{color:#ff9b9b}.footer{margin-top:32px;padding-top:16px;border-top:1px solid var(--border);color:var(--text-dim);font-size:12px;text-align:center}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;display:flex;align-items:center;justify-content:center;padding:16px;z-index:50}.modal{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:16px;max-width:480px;width:100%;box-shadow:var(--shadow)}.scanner-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;font-size:14px;color:var(--text-dim)}.video-wrap{position:relative;border-radius:10px;overflow:hidden;background:#000}.scanner-video{width:100%;display:block;aspect-ratio:4 / 3;object-fit:cover}.scanner-reticle{position:absolute;left:10%;right:10%;top:50%;height:2px;background:var(--accent);box-shadow:0 0 12px var(--accent);transform:translateY(-50%)}
