:root{font-family:Inter,system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:dark;color:#e6e9f0;background-color:#0f1420;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;display:flex;min-width:100%;min-height:100vh}h1{font-size:2em;line-height:1.1}@media (min-width: 768px){h1{font-size:3.2em}body{min-width:320px}}:root{--bg: #0f1420;--surface: #161c2c;--surface-2: #1c2538;--border: #2a3550;--border-strong: #6b7896;--text: #e6e9f0;--muted: #9aa4bd;--accent: #4f9dff;--accent-hover: #74b4ff;--accent-contrast: #0b0f18;--track: #0d1119;--good: #5cc25e;--warn: #f0b428;--low: #e0823a;--header-bg: #0b0f18;--focus-ring: #74b4ff;--radius: 10px}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}#root{max-width:100%;margin:0 auto;padding:.5rem;width:100%}@media (min-width: 768px){#root{max-width:1400px;padding:1rem 1.5rem}}.main-container{width:100%}.app-header{padding:.5rem 0 1rem;border-bottom:1px solid var(--border);margin-bottom:1rem}.app-header h1{margin:0;font-size:1.75rem;font-weight:600;letter-spacing:-.01em}.subtitle{margin:.4rem 0 0;color:var(--muted);font-size:.9rem}.loading{color:var(--muted);padding:2rem 0}:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px;border-radius:4px}.filters{position:sticky;top:0;z-index:30;padding:.6rem;margin-bottom:.75rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 2px 8px #00000059}@media (min-width: 768px){.filters{padding:1rem}}.search-input{width:100%;padding:.55rem .7rem;margin-bottom:.6rem;border:1px solid var(--border-strong);border-radius:6px;background:var(--surface-2);color:var(--text);font-size:.95rem}.search-input::placeholder{color:var(--muted)}.filter-row{display:flex;align-items:flex-end;gap:.6rem;flex-wrap:wrap}.filter-row .sort-group{flex:1 1 150px;min-width:0}.filter-row .result-count{margin-top:0;margin-left:auto;align-self:center;white-space:nowrap}.filter-toggle{display:inline-flex;align-items:center;gap:.3rem;padding:.45rem .7rem;border:1px solid var(--border-strong);border-radius:6px;background:var(--surface-2);color:var(--text);font-size:.85rem;font-weight:600;cursor:pointer;line-height:1.4}.filter-toggle:hover{border-color:var(--accent);color:var(--accent)}.filter-collapsible{display:none;margin-top:.6rem}.filters.open .filter-collapsible{display:block}@media (min-width: 768px){.filter-toggle{display:none}.filter-collapsible{display:block;margin-top:.75rem}}.range-filters{display:flex;flex-direction:column;gap:.75rem}@media (min-width: 768px){.range-filters{flex-direction:row;gap:1rem;flex-wrap:wrap;align-items:flex-end}}.filter-group{width:100%}@media (min-width: 768px){.filter-group{flex:1;min-width:200px}}.filter-group label{display:block;margin-bottom:.4rem;color:var(--muted);font-size:.85rem}.filter-group select{width:100%;padding:.45rem .6rem;border:1px solid var(--border-strong);border-radius:6px;background:var(--surface-2);color:var(--text);font-size:.9rem}.result-count{color:var(--muted);font-size:.85rem}.reset-btn{margin-top:.2rem;white-space:nowrap}.dual-range-slider{position:relative;height:30px;width:100%;margin-bottom:6px;background:var(--track);border:1px solid var(--border);border-radius:5px}.range-slider{position:absolute;width:100%;height:5px;margin-top:12px;background:none;pointer-events:none;-webkit-appearance:none;z-index:10}.range-slider::-webkit-slider-thumb{-webkit-appearance:none;pointer-events:all;width:20px;height:20px;border-radius:50%;background:var(--accent);cursor:pointer;border:2px solid var(--track);box-shadow:0 0 0 2px var(--accent),0 1px 3px #00000073}.range-slider::-moz-range-thumb{pointer-events:all;width:20px;height:20px;border-radius:50%;background:var(--accent);cursor:pointer;border:2px solid var(--track);box-shadow:0 0 0 2px var(--accent),0 1px 3px #00000073}.min-slider{z-index:3}.max-slider{z-index:2}.whisky-table{width:100%;border-collapse:collapse;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;font-size:.9rem}.whisky-table thead th{background:var(--header-bg);color:var(--muted);text-transform:uppercase;font-size:.72rem;letter-spacing:.04em;text-align:left;padding:.6rem .75rem;border-bottom:1px solid var(--border);position:sticky;top:0;z-index:25}.whisky-table tbody td{padding:.6rem .75rem;border-bottom:1px solid var(--border);vertical-align:middle}.whisky-table tbody tr:nth-child(2n){background:var(--surface-2)}.whisky-table tbody tr:hover{background:var(--surface-2)}.whisky-table tbody tr:last-child td{border-bottom:none}.col-rank{width:40px;color:var(--muted);text-align:center}.col-abv,.col-price,.col-rating,.col-match,.col-added{white-space:nowrap}.col-price{font-weight:600}.col-added{color:var(--muted);font-variant-numeric:tabular-nums;font-size:.85rem}.col-actions{width:90px}.name-brand{font-weight:600}.name-model{color:var(--muted);font-size:.85rem}.name-meta{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.25rem}.meta-country,.meta-assortment{font-size:.7rem;color:var(--muted);border:1px solid var(--border, #ccc);border-radius:999px;padding:.05rem .45rem;white-space:nowrap;max-width:12rem;overflow:hidden;text-overflow:ellipsis}.col-type{color:var(--muted);font-size:.85rem}.col-producer{color:var(--muted)}.rating-cell{display:flex;align-items:center;gap:.5rem}.rating-value{font-variant-numeric:tabular-nums;min-width:2.2em}.rating-user{font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;padding:.05rem .35rem;border-radius:999px;background:#f0b4282e;color:var(--warn);border:1px solid rgba(240,180,40,.45)}.rate-control{display:flex;align-items:center;gap:.35rem;flex-wrap:wrap}.rate-input{width:5.5em;padding:.25rem .4rem;background:var(--surface-2);color:var(--text);border:1px solid var(--border-strong);border-radius:5px;font-size:.8rem;font-variant-numeric:tabular-nums}.rate-input:disabled{opacity:.6}.rate-error{font-size:.7rem;color:var(--low)}.rating-bar{display:inline-block;width:56px;height:6px;background:var(--track);border-radius:3px;overflow:hidden}.rating-bar-fill{display:block;height:100%;background:var(--accent);border-radius:3px}.match-badge{display:inline-block;min-width:2em;padding:.15rem .45rem;border-radius:999px;font-size:.8rem;font-weight:600;text-align:center;font-variant-numeric:tabular-nums}.match-badge--good{background:#5cc25e2e;color:var(--good);border:1px solid rgba(92,194,94,.45)}.match-badge--warn{background:#f0b4282e;color:var(--warn);border:1px solid rgba(240,180,40,.45)}.match-badge--low{background:#e0823a2e;color:var(--low);border:1px solid rgba(224,130,58,.45)}.match-badge--none{background:var(--surface-2);color:var(--muted);border:1px solid var(--border)}.match-none{color:var(--muted)}.links{display:flex;gap:.4rem}.btn{display:inline-block;padding:.3rem .65rem;border-radius:6px;text-decoration:none;font-size:.78rem;font-weight:600;border:1px solid transparent;line-height:1.4}.btn-primary{background:var(--accent);color:var(--accent-contrast);border-color:var(--accent)}.btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.btn-secondary{background:transparent;color:var(--text);border-color:var(--border-strong)}.btn-secondary:hover{background:var(--surface-2);border-color:var(--accent);color:var(--accent)}.btn-primary:disabled,.btn-secondary:disabled{opacity:.55;cursor:not-allowed}@media (max-width: 767px){.whisky-table,.whisky-table thead,.whisky-table tbody,.whisky-table tr,.whisky-table th,.whisky-table td{display:block;width:100%}.whisky-table thead{display:none}.whisky-table tr{margin-bottom:.6rem;border:1px solid var(--border);border-radius:8px;background:var(--surface);padding:.4rem .6rem}.whisky-table tbody td{border:none;padding:.3rem 0;display:flex;justify-content:space-between;align-items:center;gap:.5rem}.whisky-table tbody td:before{content:attr(data-label);color:var(--muted);font-size:.78rem;text-transform:uppercase;letter-spacing:.04em}.col-rank,.col-name{justify-content:flex-start}.col-name .name-brand{font-size:1.05rem}.col-actions{justify-content:flex-end}}@media (prefers-reduced-motion: reduce){*{transition:none!important}}
