.app-header{padding:var(--spacing-sm) var(--spacing-md);background-color:var(--bg-secondary);border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;gap:var(--spacing-md);flex-wrap:wrap;display:flex}.header-brand{align-items:center;gap:var(--spacing-sm);flex-wrap:wrap;display:flex}.header-title{color:var(--text-primary);letter-spacing:-.01em;margin:0;font-size:1.125rem;font-weight:700}.header-subtitle{color:var(--text-muted);margin:0;font-size:1rem}.header-subtitle a{color:inherit}.header-controls{align-items:center;gap:var(--spacing-md);flex-wrap:wrap;display:flex}.db-status{align-items:center;gap:var(--spacing-xs);color:var(--text-muted);font-size:.8125rem;display:flex}.db-progress-bar{background-color:var(--bg-tertiary);border-radius:3px;width:100px;height:6px;overflow:hidden}.db-progress-fill{background-color:var(--accent-color);height:100%;transition:width .2s}.api-key-container{align-items:center;gap:var(--spacing-xs);background-color:var(--bg-primary);border:1px solid var(--border-color);padding:2px var(--spacing-xs);border-radius:4px;display:flex}.api-key-label{color:var(--text-muted);white-space:nowrap;font-size:.75rem}.api-key-input{padding:4px var(--spacing-xs);width:220px;color:var(--text-primary);background:0 0;border:none;outline:none;font-size:.8125rem}.status-badge{border-radius:3px;padding:2px 6px;font-size:.75rem;font-weight:600}.status-badge.ready{color:#00a844;background-color:#00c85326}.status-badge.warn{color:#d84315;background-color:#ff980026}.laptop-card{background-color:var(--bg-primary);border:1px solid var(--border-color);border-radius:6px;flex-direction:column;display:flex;overflow:hidden}.card-header{padding:var(--spacing-sm) var(--spacing-md);background-color:var(--bg-secondary);border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;gap:var(--spacing-sm);display:flex}.rank-badge{color:var(--text-muted);font-size:.8125rem;font-weight:700}.laptop-title{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;flex:1;font-family:monospace;font-size:.8125rem;overflow:hidden}.scores-badge-group{align-items:center;gap:var(--spacing-xs);display:flex}.top-score-badge{color:#000;background-color:#00e676;border-radius:3px;padding:2px 6px;font-size:.75rem;font-weight:700}.match-count-badge{background-color:var(--bg-tertiary);color:var(--text-muted);border-radius:3px;padding:2px 6px;font-size:.75rem;font-weight:600}.card-media-viewport{aspect-ratio:4/3;background-color:#0d1117;justify-content:center;align-items:center;width:100%;display:flex;position:relative;overflow:hidden}.laptop-img{object-fit:contain;width:100%;height:100%;display:block}.bbox-overlay-svg{pointer-events:none;width:100%;height:100%;position:absolute;top:0;left:0}.bbox-group{pointer-events:all;cursor:pointer}.bbox-group:focus .bbox-rect{stroke-width:4px}.bbox-rect{fill:#0000;stroke-width:2px;vector-effect:non-scaling-stroke}.bbox-group.query-match .bbox-rect{stroke:#00e676}.bbox-group.query-match:hover .bbox-rect,.bbox-group.query-match.tag-hovered .bbox-rect{fill:#00e67638}.bbox-group.unmatched .bbox-rect{stroke:gold;stroke-opacity:0}.bbox-group.unmatched:hover .bbox-rect,.bbox-group.unmatched.tag-hovered .bbox-rect,.bbox-group.unmatched:focus .bbox-rect{fill:#ffd7004d;stroke-opacity:1}.card-details{padding:var(--spacing-sm) var(--spacing-md);border-top:1px solid var(--border-color);background-color:var(--bg-primary);gap:var(--spacing-xs);flex-wrap:wrap;display:flex}.sticker-tag{appearance:none;background-color:var(--bg-secondary);border:1px solid var(--border-color);color:var(--text-primary);cursor:pointer;border-radius:3px;align-items:center;gap:4px;padding:2px 6px;font-family:monospace;font-size:.75rem;line-height:normal;display:inline-flex}.sticker-tag:hover,.sticker-tag:focus-visible{border-color:var(--text-muted)}.sticker-tag.query-match{color:#00a844;font-weight:700}.sticker-detail-dialog{width:min(90vw,720px);max-height:90vh;color:var(--text-primary);background:var(--bg-primary);border:1px solid var(--border-color);border-radius:6px;padding:0;overflow-y:auto}.sticker-detail-dialog::backdrop{background:#000000b8}.sticker-detail-header{justify-content:space-between;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md);border-bottom:1px solid var(--border-color);display:flex}.sticker-detail-header h2{margin:0;font-family:monospace;font-size:1rem}.sticker-detail-header span{color:var(--text-muted);font-size:.8125rem}.sticker-detail-close{border:1px solid var(--border-color);background:var(--bg-secondary);width:2rem;height:2rem;color:var(--text-primary);cursor:pointer;padding:0;font-size:1.5rem;line-height:1}.sticker-detail-crop{cursor:zoom-out;aspect-ratio:1;background:#0d1117;border:0;width:100%;max-height:calc(90vh - 5rem);padding:0;display:block;position:relative;overflow:hidden}.sticker-detail-crop img,.sticker-detail-crop .sticker-detail-overlay{width:100%;height:100%;left:var(--focus-left);top:var(--focus-top);transform-origin:var(--focus-origin-x) var(--focus-origin-y);transform:scale(var(--focus-scale));position:absolute}.sticker-detail-crop img{object-fit:contain;max-width:none}.sticker-detail-crop.view-transition-enabled img,.sticker-detail-crop.view-transition-enabled .sticker-detail-overlay{transition:transform .3s,left .3s,top .3s}.sticker-detail-crop.full-view{cursor:zoom-in}.sticker-detail-crop.full-view img,.sticker-detail-crop.full-view .sticker-detail-overlay{top:0;left:0;transform:scale(1)}.sticker-detail-crop.full-view .sticker-detail-overlay{pointer-events:none;opacity:1}.sticker-detail-crop.full-view .sticker-detail-overlay .detail-bbox-group{pointer-events:all}.sticker-detail-crop:focus-visible{outline:2px solid var(--text-primary);outline-offset:-2px}.sticker-detail-overlay{pointer-events:none;opacity:0}.sticker-detail-overlay .detail-bbox-group{pointer-events:none}.sticker-detail-overlay .detail-bbox-group .bbox-rect{stroke-opacity:0}.sticker-detail-overlay .detail-bbox-group:hover .bbox-rect,.sticker-detail-overlay .detail-bbox-group:focus .bbox-rect{fill:#ffd7004d;stroke:gold;stroke-opacity:1}.similar-stickers{padding:var(--spacing-md)}.similar-stickers h3{margin:0 0 var(--spacing-sm);font-family:monospace;font-size:.875rem}.similar-stickers-grid{gap:var(--spacing-sm);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.similar-sticker{min-width:0;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;padding:0}.similar-sticker:focus-visible{outline:2px solid var(--text-primary);outline-offset:2px}.similar-sticker-placeholder{visibility:hidden;pointer-events:none}.similar-sticker-crop{aspect-ratio:1;background:#000;justify-content:center;align-items:center;width:100%;display:flex;overflow:hidden}.similar-sticker-crop-window{max-width:100%;max-height:100%;position:relative;overflow:hidden}.similar-sticker-crop-window img{object-fit:contain;max-width:none;position:absolute}.similar-sticker-caption{justify-content:space-between;gap:var(--spacing-xs);padding-top:var(--spacing-xs);font-family:monospace;font-size:.6875rem;display:flex}.similar-sticker-caption span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.similar-sticker-caption strong{color:#00a844}@media (width<=520px){.similar-stickers-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.results-view{padding:var(--spacing-md);background-color:var(--bg-tertiary);flex:1;overflow-y:auto}.results-grid{gap:var(--spacing-md);grid-template-columns:repeat(auto-fill,minmax(340px,1fr));display:grid}.results-sentinel{height:1px}.empty-state{padding:60px var(--spacing-md);text-align:center;color:var(--text-muted);background-color:var(--bg-primary);border:1px border var(--border-color);border-radius:6px;flex-direction:column;justify-content:center;align-items:center;max-width:500px;margin:40px auto;display:flex}.empty-state-title{color:var(--text-primary);margin-bottom:var(--spacing-xs);font-size:1.125rem;font-weight:600}.empty-state-text{margin:0;font-size:.875rem;line-height:1.5}.search-controls{padding:var(--spacing-md);background-color:var(--bg-primary);border-bottom:1px solid var(--border-color);gap:var(--spacing-sm);flex-direction:column;display:flex}.query-input-group{display:block}.query-input{width:100%;padding:var(--spacing-sm);border:1px solid var(--border-color);color:var(--text-primary);background-color:var(--bg-primary);border-radius:4px;outline:none;font-family:inherit;font-size:.9375rem}.query-input:focus{border-color:var(--accent-color)}.controls-row{justify-content:space-between;align-items:center;gap:var(--spacing-lg);flex-wrap:wrap;display:flex}.sliders-group{align-items:center;gap:var(--spacing-lg);flex-wrap:wrap;display:flex}.slider-control{align-items:center;gap:var(--spacing-sm);color:var(--text-primary);font-size:.8125rem;display:flex}.slider-control label{font-weight:500}.slider-control input[type=range]{cursor:pointer;width:130px}.slider-val{text-align:right;font-variant-numeric:tabular-nums;min-width:42px;font-weight:600}.status-row{color:var(--text-muted);align-items:center;gap:var(--spacing-xs);font-size:.8125rem;display:flex}.status-row.error{color:#d32f2f;font-weight:500}:root{--bg-primary:#fff;--bg-secondary:#f8f9fa;--bg-tertiary:#f1f3f5;--text-primary:#111;--text-muted:#666;--border-color:#e9ecef;--accent-color:#06c;--accent-hover:#0052a3;--font-family:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--spacing-xs:4px;--spacing-sm:8px;--spacing-md:16px;--spacing-lg:24px}*{box-sizing:border-box}html,body{width:100%;height:100%;font-family:var(--font-family);background-color:var(--bg-tertiary);color:var(--text-primary);-webkit-font-smoothing:antialiased;margin:0;padding:0}#app{flex-direction:column;width:100vw;height:100vh;display:flex;overflow:hidden}.main-layout{flex-direction:column;flex:1;display:flex;overflow:hidden}
