000} /* ── SECTION HEADING ── */ .section-heading{font-family:var(--ff);font-size:30px;font-weight:600;color:var(--gold2);margin-bottom:4px} .section-sub{font-size:14px;color:var(--text2);margin-bottom:20px} /* ── BOTTLE GRID ── */ .bottle-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:16px;animation:fadeIn .3s ease} .bottle-card{background:var(--card);border:1px solid var(--border);border-radius:var(--r2);overflow:hidden;cursor:pointer;transition:border-color .2s} .bottle-card:active{border-color:var(--gold)} .bc-top{background:linear-gradient(135deg,var(--bg3),var(--bg4));padding:16px 16px 12px;display:flex;gap:12px;align-items:flex-start} .bc-icon{font-size:36px;flex-shrink:0} .bc-info{flex:1;min-width:0} .bc-name{font-family:var(--ff);font-size:18px;font-weight:600;color:var(--cream);line-height:1.2;margin-bottom:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis} .bc-distillery{font-size:12px;color:var(--text2);margin-bottom:7px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis} .bc-badges{display:flex;flex-wrap:wrap;gap:4px} .badge{padding:3px 9px;border-radius:20px;font-size:10px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;white-space:nowrap;border:1px solid transparent} .badge-type{background:rgba(200,146,10,.15);color:var(--gold);border-color:rgba(200,146,10,.3)} .badge-sealed{background:rgba(200,146,10,.1);color:var(--seal);border-color:rgba(200,146,10,.25)} .badge-open{background:rgba(74,144,96,.1);color:var(--open2);border-color:rgba(74,144,96,.3)} .bc-body{padding:13px 16px;border-top:1px solid var(--border)} .bc-meta{display:grid;grid-template-columns:1fr 1fr;gap:6px 12px;margin-bottom:11px} .meta-item{display:flex;flex-direction:column} .meta-lbl{font-size:9px;text-transform:uppercase;letter-spacing:.1em;color:var(--text3)} .meta-val{font-size:14px;color:var(--cream2)} .bc-footer{display:flex;align-items:center;justify-content:space-between} .score-big{font-family:var(--ff);font-size:24px;font-weight:700;color:var(--gold2)} /* ── EMPTY STATE ── */ .empty{text-align:center;padding:64px 20px} .empty-icon{font-size:52px;opacity:.4;margin-bottom:14px} .empty h3{font-family:var(--ff);font-size:26px;color:var(--text2);margin-bottom:6px} .empty p{font-size:14px;color:var(--text3);max-width:300px;margin:0 auto} /* ── MODAL ── */ .overlay{position:fixed;inset:0;background:rgba(0,0,0,.78);z-index:200;display:flex;align-items:center;justify-content:center;padding:20px;animation:fadeIn .2s ease;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)} .overlay.hidden{display:none} .modal{background:var(--bg2);border:1px solid var(--border);border-radius:var(--r2);width:100%;max-width:640px;max-height:90vh;overflow-y:auto;-webkit-overflow-scrolling:touch;box-shadow:var(--sh2)} .modal-wide{max-width:820px} .modal-hdr{padding:18px 22px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border);position:sticky;top:0;background:var(--bg2);z-index:1} .modal-title{font-family:var(--ff);font-size:22px;font-weight:600;color:var(--gold2)} .close-btn{width:34px;height:34px;border-radius:50%;background:var(--bg3);color:var(--text2);font-size:18px;display:flex;align-items:center;justify-content:center} .modal-body{padding:20px 22px 28px} /* ── DETAIL MODAL ── */ .detail-hero{background:linear-gradient(135deg,var(--bg3),var(--bg4));border-radius:var(--r);padding:20px;margin-bottom:18px;display:flex;gap:16px;align-items:flex-start} .detail-icon{font-size:58px;flex-shrink:0} .detail-name{font-family:var(--ff);font-size:28px;font-weight:700;color:var(--cream);line-height:1.1;margin-bottom:4px} .detail-dist{color:var(--text2);font-size:13px;margin-bottom:10px} .detail-badges{display:flex;flex-wrap:wrap;gap:6px} .detail-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px;margin-bottom:18px} .detail-field{background:var(--bg3);border-radius:var(--r);padding:11px 13px} .df-label{font-size:9px;text-transform:uppercase;letter-spacing:.1em;color:var(--text3);margin-bottom:3px} .df-val{font-size:15px;color:var(--cream2);font-weight:600} .detail-sec{margin-bottom:18px} .detail-sec-title{font-family:var(--ff);font-size:17px;color:var(--gold2);margin-bottom:10px;padding-bottom:5px;border-bottom:1px solid var(--border)} .notes-box{background:var(--bg3);border-radius:var(--r);padding:13px 15px;font-size:14px;color:var(--cream2);line-height:1.7;font-style:italic} .detail-actions{display:flex;flex-wrap:wrap;gap:9px;padding-top:14px;border-top:1px solid var(--border)} .detail-btn{flex:1;min-width:110px;padding:11px 14px;border-radius:var(--r);font-size:13px;font-weight:700;transition:all .2s;border:1px solid transparent;text-align:center} .btn-seal{color:var(--seal);border-color:rgba(200,146,10,.4);background:transparent} .btn-open-style{color:var(--open2);border-color:rgba(74,144,96,.4);background:transparent} .btn-note{color:var(--cream);border-color:var(--border);background:transparent} .btn-del{color:var(--red);border-color:rgba(192,64,64,.3);background:transparent} .fin-row{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--border);font-size:14px} .fin-row:last-child{border-bottom:none;padding-top:10px;font-weight:700;font-size:15px} .fin-label{color:var(--text2)} .fin-val{color:var(--cream2)} /* ── FORM ── */ .form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px} .fg-full{grid-column:1/-1} .form-field{display:flex;flex-direction:column;gap:5px} .form-label{font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:var(--text2)} .form-input,.form-sel,.form-ta{background:var(--bg3);border:1px solid var(--border);border-radius:var(--r);padding:12px 14px;color:var(--text);font-size:15px;width:100%;transition:border-color .2s} .form-input:focus,.form-sel:focus,.form-ta:focus{border-color:var(--gold)} .form-input::placeholder,.form-ta::placeholder{color:var(--text3)} .form-ta{resize:vertical;min-height:76px} .form-sel{cursor:pointer} .seal-toggle{display:flex;gap:8px} .seal-opt{flex:1;padding:12px;border-radius:var(--r);border:1px solid var(--border);background:var(--bg3);color:var(--text2);font-size:14px;font-weight:600;text-align:center} .seal-opt.active-s{border-color:var(--gold);background:rgba(200,146,10,.1);color:var(--gold)} .seal-opt.active-o{border-color:var(--open);background:rgba(74,144,96,.08);color:var(--open2)} .form-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:20px;padding-top:14px;border-top:1px solid var(--border)} .form-submit{padding:12px 26px;background:var(--gold);color:#000;border-radius:var(--r);font-size:15px;font-weight:700} .form-submit:active{background:var(--gold2)} .form-cancel{padding:12px 18px;background:transparent;border:1px solid var(--border);border-radius:var(--r);color:var(--text2);font-size:15px} .scanned-banner{background:rgba(200,146,10,.1);border:1px solid rgba(200,146,10,.3);border-radius:var(--r);padding:10px 14px;color:var(--gold);font-size:13px;grid-column:1/-1} /* ── SCORE SLIDER ── */ .score-wrap{grid-column:1/-1} .score-display{font-family:var(--ff);font-size:34px;font-weight:700;color:var(--gold2);text-align:center;margin:6px 0 10px} .score-track{height:10px;background:var(--bg3);border-radius:5px;border:1px solid var(--border);cursor:pointer;position:relative;touch-action:none} .score-fill{height:100%;border-radius:4px;background:linear-gradient(to right,var(--gold),var(--gold2));pointer-events:none} .score-labels{display:flex;justify-content:space-between;margin-top:5px;font-size:11px;color:var(--text3)} /* ── SCAN MODAL ── */ .scan-tabs{display:flex;gap:2px;background:var(--bg3);border-radius:var(--r);padding:3px;margin-bottom:18px} .scan-tab{flex:1;padding:10px;text-align:center;border-radius:6px;background:transparent;color:var(--text2);font-size:14px} .scan-tab.active{background:var(--gold);color:#000;font-weight:700} .cam-wrap{position:relative;background:#000;border-radius:var(--r);overflow:hidden;aspect-ratio:4/3;margin-bottom:12px} .cam-wrap video{width:100%;height:100%;object-fit:cover} .scan-frame{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none} .scan-box{width:210px;height:140px;border:2px solid var(--gold);border-radius:8px;position:relative;overflow:hidden} .scan-line{position:absolute;left:0;right:0;height:2px;background:linear-gradient(to right,transparent,var(--gold2),transparent);animation:scanLine 1.8s linear infinite} .scan-corner{position:absolute;width:14px;height:14px;border-color:var(--gold2)} .sc-tl{top:-2px;left:-2px;border-top:3px solid;border-left:3px solid} .sc-tr{top:-2px;right:-2px;border-top:3px solid;border-right:3px solid} .sc-bl{bottom:-2px;left:-2px;border-bottom:3px solid;border-left:3px solid} .sc-br{bottom:-2px;right:-2px;border-bottom:3px solid;border-right:3px solid} .cam-status{text-align:center;font-size:13px;color:var(--text2);margin-bottom:12px} .cam-btn{width:100%;padding:13px;background:var(--gold);color:#000;border-radius:var(--r);font-weight:700;font-size:15px;margin-bottom:9px} .cam-btn:active{background:var(--gold2)} .upload-label{display:block;width:100%;padding:12px;background:var(--bg3);border:1px solid var(--border);border-radius:var(--r);color:var(--text2);font-size:14px;cursor:pointer;text-align:center} .scan-result{background:var(--bg3);border:1px solid rgba(200,146,10,.3);border-radius:var(--r);padding:15px;margin-top:12px} .scan-result-title{font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:var(--gold);margin-bottom:7px} .scan-result-name{font-family:var(--ff);font-size:21px;font-weight:600;color:var(--cream);margin-bottom:3px} .scan-result-meta{font-size:12px;color:var(--text2);margin-bottom:8px} .conf{display:inline-block;padding:3px 9px;border-radius:20px;font-size:10px;font-weight:700;margin-bottom:10px;border:1px solid} .conf-h{background:rgba(74,144,96,.2);color:var(--open2);border-color:rgba(74,144,96,.3)} .conf-m{background:rgba(200,146,10,.15);color:var(--gold);border-color:rgba(200,146,10,.3)} .conf-l{background:rgba(192,64,64,.15);color:#f09090;border-color:rgba(192,64,64,.3)} .use-btn{width:100%;padding:12px;background:var(--gold);color:#000;border-radius:var(--r);font-weight:700;font-size:14px} .use-btn:active{background:var(--gold2)} .spinner-wrap{text-align:center;padding:22px;color:var(--text2);font-size:14px} .spinner{width:30px;height:30px;border:3px solid var(--border);border-top-color:var(--gold);border-radius:50%;animation:spin 1s linear infinite;margin:0 auto 10px} /* ── PROFILE ── */ .profile-panel{position:absolute;right:0;top:50px;width:270px;background:var(--bg2);border:1px solid var(--border);border-radius:var(--r2);padding:18px;box-shadow:var(--sh2);z-index:150;animation:fadeIn .2s ease} .pp-avatar{font-size:40px;text-align:center;margin-bottom:7px} .pp-name{font-family:var(--ff);font-size:21px;font-weight:600;color:var(--cream);text-align:center} .pp-email{font-size:12px;color:var(--text2);text-align:center;margin-bottom:14px} .pp-stats{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-bottom:14px} .pp-stat{background:var(--bg3);border-radius:var(--r);padding:9px;text-align:center} .pp-stat-val{font-family:var(--ff);font-size:21px;font-weight:700;color:var(--gold2)} .pp-stat-lbl{font-size:9px;color:var(--text3);text-transform:uppercase;letter-spacing:.08em} .signout-btn{width:100%;padding:10px;background:var(--bg3);border:1px solid var(--border);border-radius:var(--r);color:var(--text2);font-size:14px;font-weight:700} .signout-btn:active{border-color:var(--red);color:var(--red)} /* ── MARKET ── */ .market-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:16px} .market-card{background:var(--card);border:1px solid var(--border);border-radius:var(--r2);overflow:hidden} .mc-img{background:linear-gradient(135deg,var(--bg3),var(--bg4));padding:22px;text-align:center;font-size:50px;position:relative} .mc-verified{position:absolute;top:10px;right:10px;background:rgba(74,144,96,.2);border:1px solid var(--open);color:var(--open2);font-size:10px;padding:3px 8px;border-radius:20px;font-weight:700} .mc-body{padding:14px 16px} .mc-name{font-family:var(--ff);font-size:18px;font-weight:600;color:var(--cream);margin-bottom:2px} .mc-seller{font-size:11px;color:var(--text2);margin-bottom:9px} .mc-details{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:11px} .mc-detail{font-size:11px;color:var(--text2);background:var(--bg3);padding:3px 8px;border-radius:4px} .mc-footer{display:flex;align-items:center;justify-content:space-between;padding-top:10px;border-top:1px solid var(--border)} .mc-price{font-family:var(--ff);font-size:25px;font-weight:700;color:var(--gold2)} .mc-msrp{font-size:11px;color:var(--text3);text-decoration:line-through} .mc-btns{display:flex;gap:6px} .mc-btn{padding:8px 12px;border-radius:7px;font-size:13px;font-weight:700;border:none} .mc-buy{background:var(--gold);color:#000} .mc-buy:active{background:var(--gold2)} .mc-watch{background:var(--bg3);border:1px solid var(--border);color:var(--text2)} /* ── COMMUNITY ── */ .community-list{display:flex;flex-direction:column;gap:14px} .cc-card{background:var(--card);border:1px solid var(--border);border-radius:var(--r2);padding:17px 19px} .cc-hdr{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:9px} .cc-bottle{font-family:var(--ff);font-size:21px;font-weight:600;color:var(--cream)} .cc-dist{font-size:11px;color:var(--text2);margin-top:1px} .cc-score{font-family:var(--ff);font-size:38px;font-weight:700;color:var(--gold2);line-height:1} .cc-score-lbl{font-size:10px;color:var(--text3);text-align:center;text-transform:uppercase;letter-spacing:.08em} .cc-meta{font-size:12px;color:var(--text3);margin-bottom:10px} .cc-notes{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px} .cc-note{background:var(--bg3);border-radius:7px;padding:10px} .cc-note-lbl{font-size:9px;text-transform:uppercase;letter-spacing:.1em;color:var(--text3);margin-bottom:3px} .cc-note-txt{font-size:12px;color:var(--cream2);line-height:1.6;font-style:italic} /* ── WISHLIST ── */ .wish-list{display:flex;flex-direction:column;gap:11px} .wish-card{background:var(--card);border:1px solid var(--border);border-radius:var(--r2);padding:14px 16px;display:flex;align-items:center;gap:14px} .wish-icon{font-size:30px;flex-shrink:0} .wish-info{flex:1;min-width:0} .wish-name{font-family:var(--ff);font-size:18px;font-weight:600;color:var(--cream);margin-bottom:1px} .wish-detail{font-size:12px;color:var(--text2)} .wish-notes{font-size:11px;color:var(--text3);font-style:italic;margin-top:2px} .wish-right{text-align:right;flex-shrink:0} .wish-target{font-family:var(--ff);font-size:21px;font-weight:700;color:var(--gold2)} .wish-target-lbl{font-size:10px;color:var(--text3)} .wish-pri{display:inline-block;padding:2px 8px;border-radius:20px;font-size:10px;font-weight:700;margin-top:3px;border:1px solid} .pri-h{background:rgba(192,64,64,.12);color:#f09090;border-color:rgba(192,64,64,.25)} .pri-m{background:rgba(200,146,10,.1);color:var(--gold);border-color:rgba(200,146,10,.25)} .pri-l{background:rgba(74,144,96,.08);color:var(--open2);border-color:rgba(74,144,96,.2)} .remove-btn{padding:7px 10px;background:transparent;border:1px solid var(--border);border-radius:var(--r);color:var(--text3);font-size:13px;flex-shrink:0} .remove-btn:active{color:var(--red);border-color:var(--red)}