/* LibelulaFly Cosmos Navigator v3.2 — UX Enhanced */
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
:root{
  --A:#00c8ff;--A2:rgba(0,200,255,.15);
  --W:rgba(255,255,255,.93);--W2:rgba(255,255,255,.6);--W3:rgba(255,255,255,.28);
  --GOLD:#ffd84d;--BG:#04090f;--CARD:rgba(4,10,18,.94);
  /* UX: action hierarchy colors */
  --CTA:#00c8ff;--CTA-DANGER:#ff4466;--CTA-CONFIRM:#00e07a;
}

/* ══ SHELL ══ */
#lf-app{position:absolute;inset:0;width:100%;height:100%;font-family:'Helvetica Neue',Arial,system-ui,sans-serif;color:var(--W);background:var(--BG);overflow:hidden;}
body.lf-active{overflow:hidden !important;height:100% !important;}
#bg{position:absolute;inset:0;pointer-events:none;z-index:0;background:radial-gradient(ellipse 90% 65% at 10% 30%,rgba(0,40,80,.4) 0%,transparent 55%),radial-gradient(ellipse 70% 55% at 90% 70%,rgba(0,90,140,.22) 0%,transparent 50%),var(--BG);}
#grid{position:absolute;inset:0;pointer-events:none;z-index:0;background-image:linear-gradient(rgba(0,200,255,.015) 1px,transparent 1px),linear-gradient(90deg,rgba(0,200,255,.015) 1px,transparent 1px);background-size:65px 65px;}
#aurora{position:absolute;inset:0;pointer-events:none;z-index:0;background:radial-gradient(ellipse 55% 45% at 15% 42%,rgba(0,70,130,.18) 0%,transparent 60%),radial-gradient(ellipse 40% 35% at 85% 58%,rgba(0,140,190,.13) 0%,transparent 55%);animation:aurora 28s ease-in-out infinite alternate;}
@keyframes aurora{from{opacity:.5}to{opacity:1}}
#stars{position:absolute;inset:0;pointer-events:none;z-index:1;overflow:hidden;}
.st{position:absolute;border-radius:50%;animation:twinkle var(--sd) ease-in-out infinite var(--dl);}
@keyframes twinkle{0%,100%{opacity:var(--op)}50%{opacity:calc(var(--op)*.08)}}

/* ══ TOPBAR ══ */
#topbar{position:absolute;top:0;left:0;right:0;z-index:600;background:#04090f;background:rgba(4,9,15,.98);border-bottom:1px solid rgba(0,200,255,.16);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);}
/* Force dark on all topbar children — prevents theme white leak */
#topbar *{color-scheme:dark;}
#tb-r1{display:flex;align-items:center;gap:6px;padding:6px 12px;min-height:48px;}
.brand{display:flex;align-items:center;gap:8px;flex-shrink:0;}
/* UX FIX 4: organic, animated logo shape */
.blogo{width:32px;height:32px;border-radius:50%;overflow:hidden;background:var(--A2);border:2px solid rgba(0,200,255,.4);display:flex;align-items:center;justify-content:center;flex-shrink:0;animation:logoPulse 4s ease-in-out infinite;}
@keyframes logoPulse{0%,100%{box-shadow:0 0 0 0 rgba(0,200,255,.3)}50%{box-shadow:0 0 0 6px rgba(0,200,255,.0)}}
.blogo img{width:100%;height:100%;object-fit:contain;}
.brand-text{display:flex;flex-direction:column;}
.bname{font-size:10px;font-weight:700;letter-spacing:.12em;color:var(--A);}
.bsub{font-size:8px;color:var(--W2);}
.tsep{width:1px;height:24px;background:rgba(0,200,255,.15);flex-shrink:0;}

/* Search */
#sw{flex:1;min-width:0;display:flex;align-items:center;background:rgba(255,255,255,.07);border:1.5px solid rgba(0,200,255,.25);border-radius:999px;overflow:hidden;transition:border-color .2s,box-shadow .2s;}
#sw:focus-within{border-color:rgba(0,200,255,.65);box-shadow:0 0 0 3px rgba(0,200,255,.12);}
.sico{flex-shrink:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;color:rgba(0,200,255,.55);font-size:13px;}
#si{flex:1;background:none;border:none;outline:none;color:var(--W);font-size:12px;caret-color:var(--A);height:32px;padding:0 4px;}
#si::placeholder{color:rgba(255,255,255,.3);}
#sc{background:none;border:none;color:var(--W3);cursor:pointer;font-size:12px;padding:0 10px;height:32px;display:none;align-items:center;}
#sc.v{display:flex;}

/* UX FIX 1: Tab strip — pill group, max 3 tabs, no cognitive overload */
#tabs{display:flex;gap:2px;flex-shrink:0;background:rgba(0,200,255,.07);border-radius:999px;padding:2px;}
.tab{padding:5px 14px;border-radius:999px;border:none;background:none;color:var(--W2);font-size:10px;font-weight:700;cursor:pointer;white-space:nowrap;transition:all .22s;-webkit-tap-highlight-color:transparent;}
.tab:hover{background:rgba(0,200,255,.12);color:var(--W);}
.tab.on{background:rgba(0,200,255,.25);color:var(--A);box-shadow:0 0 12px rgba(0,200,255,.2);}

/* Nav icons — organic circles */
#nav{display:flex;gap:3px;flex-shrink:0;align-items:center;}
.nb{width:36px;height:36px;border-radius:50%;border:1.5px solid rgba(0,200,255,.18);background:rgba(255,255,255,.06);color:var(--W2);cursor:pointer;font-size:14px;display:flex;align-items:center;justify-content:center;transition:all .18s;position:relative;-webkit-tap-highlight-color:transparent;}
.nb:hover,.nb.on{background:var(--A2);border-color:var(--A);color:var(--A);}
/* UX FIX 6: Saved = prominent, larger, distinct color */
#bSaved{width:40px;height:40px;font-size:16px;background:rgba(255,60,60,.14);border-color:rgba(255,80,80,.4);color:rgba(255,130,130,.9);}
#bSaved:hover{color:#ff6b6b;border-color:rgba(255,100,100,.7);background:rgba(255,60,60,.22);}
#saved-badge{position:absolute;top:-5px;right:-5px;width:16px;height:16px;border-radius:50%;background:#ff4444;color:#fff;font-size:8px;font-weight:700;display:none;align-items:center;justify-content:center;border:2px solid var(--BG);}

/* UX FIX 3: Quick-access filter pills — scrollable, one-tap */
#tb-r2{
  display:flex;align-items:center;gap:5px;
  padding:5px 10px 8px;
  border-top:1px solid rgba(0,200,255,.12);
  overflow-x:auto;scrollbar-width:none;
  background:#020810;/* solid dark — no theme bleed */
  color-scheme:dark;
  -webkit-overflow-scrolling:touch;
}
#tb-r2::-webkit-scrollbar{display:none;}
.fs{position:relative;flex-shrink:0;}
/* UX FIX 4: pill-shaped filter selects */
.fs select{
  -webkit-appearance:none;appearance:none;
  padding:6px 24px 6px 12px;
  background:rgba(0,16,36,.92);
  border:1.5px solid rgba(0,200,255,.35);
  border-radius:999px;
  color:rgba(255,255,255,.92);
  font-size:10px;font-weight:600;
  cursor:pointer;outline:none;white-space:nowrap;
  transition:all .2s;
  box-shadow:0 2px 6px rgba(0,0,0,.4);
  color-scheme:dark;
  -webkit-text-fill-color:rgba(255,255,255,.92);
  min-width:0;
}
.fs select:hover{border-color:rgba(0,200,255,.7);background:rgba(0,200,255,.14);-webkit-text-fill-color:#fff;}
.fs select:focus{border-color:var(--A);background:rgba(0,200,255,.16);-webkit-text-fill-color:#fff;box-shadow:0 0 0 3px rgba(0,200,255,.2);}
.fs select option{background:#091828;color:#e8f4ff;}
.fa{position:absolute;right:9px;top:50%;transform:translateY(-50%);font-size:7px;color:rgba(0,200,255,.6);pointer-events:none;}
.fs-sort select{border-color:rgba(80,200,255,.4);background:rgba(0,24,50,.92);}
.fp{display:flex;align-items:center;gap:4px;flex-shrink:0;}
.fp input{
  width:74px;-webkit-appearance:none;appearance:none;
  padding:6px 10px;background:rgba(0,16,36,.92);
  border:1.5px solid rgba(0,200,255,.35);border-radius:999px;
  color:rgba(255,255,255,.92);font-size:10px;font-weight:500;
  outline:none;transition:all .2s;color-scheme:dark;
  -webkit-text-fill-color:rgba(255,255,255,.92);
}
.fp input:focus{border-color:var(--A);background:rgba(0,200,255,.12);-webkit-text-fill-color:#fff;box-shadow:0 0 0 3px rgba(0,200,255,.18);}
.fp input::placeholder{color:rgba(255,255,255,.3);-webkit-text-fill-color:rgba(255,255,255,.3);}
.fp .fsep{font-size:10px;color:rgba(0,200,255,.5);font-weight:700;flex-shrink:0;padding:0 3px;}
/* Hours range — same pill style, amber accent to distinguish from price */
.fp-hrs input{border-color:rgba(255,180,60,.4) !important;}
.fp-hrs input:focus{border-color:rgba(255,180,60,.8) !important;box-shadow:0 0 0 3px rgba(255,180,60,.18) !important;}
.fp-hrs .fsep{color:rgba(255,180,60,.5);}
#f-count{font-size:9.5px;color:rgba(0,200,255,.75);white-space:nowrap;font-weight:600;flex-shrink:0;padding:0 3px;}
/* UX FIX 6: Reset = danger-prominent action */
#f-reset{flex-shrink:0;display:none;align-items:center;gap:4px;padding:7px 16px;border-radius:999px;border:none;background:var(--CTA-DANGER);color:#fff;font-size:10px;font-weight:800;cursor:pointer;white-space:nowrap;transition:all .2s;-webkit-tap-highlight-color:transparent;box-shadow:0 3px 10px rgba(255,68,102,.35);}
#f-reset:hover{background:#ff2255;transform:scale(1.04);box-shadow:0 4px 14px rgba(255,68,102,.5);}

/* ══ STAGE ══ */
#stage{position:absolute;top:var(--tb-h,110px);left:0;right:0;bottom:0;z-index:100;overflow:hidden;outline:none;cursor:grab;touch-action:none;overscroll-behavior:none;}
#stage:active{cursor:grabbing;}
#stage.viewing .card:not(.sel){pointer-events:none;}
#focal{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);pointer-events:none;z-index:50;}
.fr{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);border-radius:50%;border:1px solid rgba(0,200,255,.07);animation:spin var(--fs,18s) linear infinite var(--fd,normal);}
.fr:nth-child(1){width:44px;height:44px;border-color:rgba(0,200,255,.18);--fs:8s;}
.fr:nth-child(2){width:90px;height:90px;--fs:16s;--fd:reverse;}
.fr:nth-child(3){width:155px;height:155px;--fs:26s;}
.fc{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:6px;height:6px;border-radius:50%;background:rgba(0,200,255,.45);box-shadow:0 0 12px rgba(0,200,255,.4);}
@keyframes spin{to{transform:translate(-50%,-50%) rotate(360deg)}}

/* ══ CARDS ══ */
/* UX FIX 4: very rounded cards */
.card{position:absolute;left:0;top:0;width:200px;cursor:pointer;will-change:transform,opacity;background:var(--CARD);border:1px solid rgba(0,200,255,.15);border-radius:20px;overflow:hidden;box-shadow:0 12px 28px rgba(0,0,0,.7);animation:cardIn .45s cubic-bezier(.34,1.36,.64,1) both;animation-delay:var(--cd,0s);transition:border-color .2s,box-shadow .2s;}
@keyframes cardIn{from{opacity:0;scale:.2}to{opacity:1}}
.card:hover{border-color:rgba(0,200,255,.45);box-shadow:0 18px 42px rgba(0,0,0,.8),0 0 26px rgba(0,200,255,.13);}
.card.flipping{animation:cardFlip .55s cubic-bezier(.4,0,.2,1) forwards !important;}
@keyframes cardFlip{0%{transform:var(--ct,translate(-50%,-50%)) rotateY(0deg)}40%{transform:var(--ct,translate(-50%,-50%)) rotateY(90deg) scale(1.1)}60%{transform:var(--ct,translate(-50%,-50%)) rotateY(90deg) scale(1.1)}100%{transform:var(--ct,translate(-50%,-50%)) rotateY(0deg)}}
.card.throwing-back{animation:throwBack .5s cubic-bezier(.34,1.56,.64,1) forwards !important;}
@keyframes throwBack{0%{transform:var(--ct,translate(-50%,-50%)) scale(0) rotate(-8deg)}60%{transform:var(--ct,translate(-50%,-50%)) scale(1.12) rotate(2deg)}100%{transform:var(--ct,translate(-50%,-50%)) scale(1) rotate(0)}}
/* UX FIX 4: like btn = organic circle */
.like-btn{position:absolute;top:7px;left:7px;z-index:10;width:28px;height:28px;border-radius:50%;background:rgba(4,9,15,.72);border:1.5px solid rgba(255,255,255,.2);color:rgba(255,255,255,.3);font-size:13px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;-webkit-tap-highlight-color:transparent;pointer-events:auto;}
.like-btn:hover,.like-btn:active{background:rgba(255,60,60,.2);border-color:rgba(255,100,100,.4);color:rgba(255,120,120,.8);}
.like-btn.liked{color:#ff4444;border-color:rgba(255,60,60,.5);background:rgba(255,40,40,.2);text-shadow:0 0 8px rgba(255,60,60,.5);}
.like-btn.like-pop{animation:likePop .4s cubic-bezier(.34,1.56,.64,1);}
@keyframes likePop{0%{scale:1}40%{scale:1.6}100%{scale:1}}
/* Card content */
.cthumb{position:relative;height:108px;overflow:hidden;background:#060c14;}
.cthumb img{width:100%;height:100%;object-fit:cover;display:block;}
.cov{position:absolute;inset:0;background:linear-gradient(to bottom,transparent 20%,rgba(4,10,18,.88) 100%);}
.cno{display:flex;align-items:center;justify-content:center;height:100%;font-size:36px;font-weight:700;color:rgba(0,200,255,.09);}
/* UX FIX 4: pill badges */
.cbadge-class{position:absolute;bottom:6px;left:7px;font-size:7.5px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--A);background:rgba(4,10,18,.78);padding:2px 8px;border-radius:999px;border:1px solid rgba(0,200,255,.28);}
.news-badge{color:rgba(255,180,60,.9);border-color:rgba(255,180,60,.3);}
.cbadge-status{position:absolute;top:7px;right:7px;font-size:7px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;padding:2px 7px;border-radius:999px;}
.s-avail{background:rgba(0,200,100,.2);border:1px solid rgba(0,200,100,.45);color:#00e07a;}
.s-sold{background:rgba(255,60,60,.18);border:1px solid rgba(255,60,60,.4);color:#ff7070;}
.s-other{background:rgba(255,180,0,.14);border:1px solid rgba(255,180,0,.35);color:#ffbb00;}
.cbody{padding:8px 9px 9px;}
.cprice{font-size:14px;font-weight:900;color:var(--GOLD);line-height:1;margin-bottom:4px;text-shadow:0 0 12px rgba(255,216,77,.4);}
.cprice.nop{font-size:9.5px;font-weight:700;opacity:.6;font-style:italic;text-shadow:none;}
.ctitle{font-size:10px;font-weight:700;color:var(--W);line-height:1.3;margin-bottom:4px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.cspecs{display:grid;grid-template-columns:1fr 1fr;gap:2px 4px;margin-bottom:4px;}
.cspec{display:flex;flex-direction:column;gap:1px;background:rgba(0,200,255,.05);border:1px solid rgba(0,200,255,.08);border-radius:8px;padding:2px 5px;}
.cspec-l{font-size:6px;color:var(--W3);text-transform:uppercase;letter-spacing:.06em;}
.cspec-v{font-size:9px;font-weight:600;color:var(--W);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.cloc{font-size:8px;color:var(--W2);margin-bottom:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.cfoot{display:flex;justify-content:space-between;align-items:center;border-top:1px solid rgba(0,200,255,.08);padding-top:5px;}
.cdom{font-size:7px;color:rgba(0,200,255,.32);}
.copen{font-size:8px;font-weight:700;color:var(--A);}
.news-open{color:rgba(255,180,60,.9);}
.cexc{font-size:8.5px;color:var(--W2);line-height:1.45;margin-bottom:4px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;}
.empty{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center;pointer-events:none;}
.empty h3{font-size:20px;margin-bottom:8px;}
.empty p{font-size:13px;color:var(--W2);}

/* ══ VIEWER ══ */
#vdim{position:fixed;inset:0;background:rgba(4,9,15,.78);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);z-index:9000;opacity:0;transition:opacity .35s;pointer-events:none;}
#viewer{
  position:fixed;top:50%;left:50%;
  transform:translate(-50%,-50%) scale(.88);
  z-index:9001;
  width:min(820px,94vw);max-height:90vh;
  background:rgba(4,9,15,.99);border:1px solid rgba(0,200,255,.28);border-radius:28px;
  display:grid;grid-template-columns:280px 1fr;
  overflow:hidden;opacity:0;
  transition:opacity .38s,transform .38s cubic-bezier(.34,1.06,.64,1);
  pointer-events:none;
}
#viewer.open{opacity:1;transform:translate(-50%,-50%) scale(1);pointer-events:auto;}
#viewer.cls{opacity:0;transform:translate(-50%,-50%) scale(.88);}
/* UX FIX 6: Close btn = large, red, unmissable */
#vcls{position:absolute;top:12px;right:12px;background:var(--CTA-DANGER);border:2px solid rgba(255,68,102,.6);color:#fff;width:40px;height:40px;border-radius:50%;cursor:pointer;font-size:17px;z-index:20;display:flex;align-items:center;justify-content:center;transition:all .15s;-webkit-tap-highlight-color:transparent;font-weight:700;box-shadow:0 3px 12px rgba(255,68,102,.4);}
#vcls:hover,#vcls:active{background:#ff2244;transform:scale(1.1);box-shadow:0 5px 18px rgba(255,68,102,.6);}
#viv{position:relative;overflow:hidden;min-height:220px;}
#viv img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
#vivg{position:absolute;inset:0;background:linear-gradient(to right,rgba(4,9,15,.45) 0%,transparent 40%);}
#vnoimg{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:72px;font-weight:700;color:rgba(0,200,255,.1);}
/* UX FIX 4: pill category badge */
.vcat{position:absolute;top:12px;left:12px;font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--A);background:rgba(4,9,15,.8);padding:3px 12px;border-radius:999px;border:1px solid rgba(0,200,255,.25);}
.vstatus{position:absolute;bottom:10px;right:10px;font-size:8px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:3px 10px;border-radius:999px;}
.vstatus.s-avail{background:rgba(0,200,100,.22);border:1px solid rgba(0,200,100,.45);color:#00e07a;}
.vstatus.s-sold{background:rgba(255,60,60,.18);border:1px solid rgba(255,60,60,.4);color:#ff7070;}
.vstatus.s-other{background:rgba(255,180,0,.15);border:1px solid rgba(255,180,0,.35);color:#ffbb00;}
#vinfo{padding:20px 18px;overflow-y:auto;max-height:90vh;display:flex;flex-direction:column;gap:8px;}
.vtag{font-size:10px;font-weight:700;letter-spacing:.1em;color:var(--A);text-transform:uppercase;}
.v-title-txt{font-size:19px;font-weight:700;color:#fff;line-height:1.3;}
.v-sub-txt{font-size:12px;color:rgba(255,255,255,.58);line-height:1.6;}
.v-price{font-size:27px;font-weight:900;color:var(--GOLD);letter-spacing:-.01em;text-shadow:0 0 20px rgba(255,216,77,.4);}
.v-price.nop{font-size:14px;font-weight:700;color:var(--GOLD);opacity:.6;font-style:italic;text-shadow:none;}
.v-date{font-size:11px;color:rgba(255,180,60,.75);font-weight:600;}
#vspecs{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:2px 0;}
.vsr{background:rgba(0,200,255,.06);border:1px solid rgba(0,200,255,.12);border-radius:12px;padding:8px 10px;}
.vsl{font-size:9px;color:var(--W3);text-transform:uppercase;letter-spacing:.08em;margin-bottom:2px;}
.vsv{font-size:12px;font-weight:600;color:var(--W);}
/* UX FIX 6: Action button hierarchy — primary is 2x more prominent */
.vbtns{display:flex;gap:8px;margin-top:auto;padding-top:10px;flex-wrap:wrap;}
.vbtn{display:inline-flex;align-items:center;justify-content:center;padding:12px 20px;border-radius:999px;font-size:13px;font-weight:800;text-decoration:none;cursor:pointer;border:none;transition:all .18s;-webkit-tap-highlight-color:transparent;letter-spacing:.02em;}
.vbtn-p{background:var(--CTA);color:#04090f;box-shadow:0 4px 16px rgba(0,200,255,.4);flex:2;}
.vbtn-p:hover,.vbtn-p:active{background:#33d4ff;transform:scale(1.02);box-shadow:0 6px 22px rgba(0,200,255,.5);}
.vbtn-s{background:rgba(0,200,255,.1);border:2px solid rgba(0,200,255,.3);color:var(--A);flex:1;}
.vbtn-s:hover,.vbtn-s:active{background:rgba(0,200,255,.2);}

/* UX FIX 5: Swipe hint for horizontal gestures */
.swipe-hint{display:none;align-items:center;justify-content:center;gap:6px;padding:4px 0 0;color:rgba(255,255,255,.3);font-size:9px;letter-spacing:.04em;}
.swipe-arrow{font-size:13px;}
.swipe-arrow.sa-l{animation:swipeL 1.8s ease-in-out infinite;}
.swipe-arrow.sa-r{animation:swipeR 1.8s ease-in-out infinite .2s;}
@keyframes swipeL{0%,100%{opacity:.2;transform:translateX(0)}50%{opacity:.8;transform:translateX(-5px)}}
@keyframes swipeR{0%,100%{opacity:.2;transform:translateX(0)}50%{opacity:.8;transform:translateX(5px)}}

/* ══ SAVED PANEL ══ */
#saved-panel{position:fixed;inset:0;z-index:9500;background:rgba(4,9,15,.88);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .3s;}
#saved-panel.open{opacity:1;pointer-events:auto;}
#saved-inner{width:min(540px,94vw);max-height:80vh;background:rgba(4,9,15,.98);border:1px solid rgba(255,100,100,.3);border-radius:24px;overflow:hidden;display:flex;flex-direction:column;}
#saved-header{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid rgba(255,100,100,.2);font-size:15px;font-weight:700;color:#ff8080;}
/* UX FIX 6: prominent close */
#saved-close{background:var(--CTA-DANGER);border:none;color:#fff;width:32px;height:32px;border-radius:50%;cursor:pointer;font-size:13px;display:flex;align-items:center;justify-content:center;-webkit-tap-highlight-color:transparent;font-weight:700;box-shadow:0 3px 10px rgba(255,68,102,.35);transition:all .15s;}
#saved-close:hover{transform:scale(1.1);box-shadow:0 4px 14px rgba(255,68,102,.5);}
#saved-list{overflow-y:auto;padding:10px;}
.saved-item{display:flex;align-items:center;gap:10px;padding:9px;border-radius:14px;border:1px solid rgba(0,200,255,.1);margin-bottom:7px;background:rgba(0,200,255,.03);}
.saved-thumb{width:52px;height:40px;border-radius:10px;background:#060c14;overflow:hidden;flex-shrink:0;background-size:cover;background-position:center;display:flex;align-items:center;justify-content:center;}
.saved-info{flex:1;min-width:0;}
.saved-title{font-size:11px;font-weight:700;color:var(--W);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.saved-price{font-size:12px;font-weight:800;color:var(--GOLD);margin-top:2px;}
.saved-cat{font-size:9px;color:var(--A);margin-top:1px;}
.saved-actions{display:flex;flex-direction:column;gap:4px;flex-shrink:0;}
.saved-open{font-size:10px;font-weight:700;color:#04090f;text-decoration:none;padding:6px 12px;border-radius:999px;background:var(--A);border:none;text-align:center;transition:all .15s;}
.saved-open:hover{background:#33d4ff;}
.saved-rm{background:rgba(255,60,60,.1);border:1px solid rgba(255,60,60,.25);color:rgba(255,100,100,.7);width:26px;height:26px;border-radius:50%;cursor:pointer;font-size:11px;display:flex;align-items:center;justify-content:center;-webkit-tap-highlight-color:transparent;transition:all .15s;}
.saved-rm:hover{background:var(--CTA-DANGER);color:#fff;border-color:var(--CTA-DANGER);}

/* ══ HUD / ZOOM / INSTRUCTIONS ══ */
#hud{position:absolute;bottom:50px;left:50%;transform:translateX(-50%);z-index:500;display:flex;gap:6px;pointer-events:none;}
.chip{display:flex;align-items:center;gap:5px;padding:5px 13px;border-radius:999px;background:rgba(4,9,15,.82);border:1px solid var(--W3);font-size:10px;backdrop-filter:blur(8px);}
.cm{font-weight:700;color:var(--A);border-color:rgba(0,200,255,.3);}
.cs{color:var(--W2);}
.hdot{width:5px;height:5px;border-radius:50%;background:var(--A);animation:pulse 2s infinite;}
@keyframes pulse{0%,100%{opacity:1;scale:1}50%{opacity:.4;scale:.7}}
.spin{width:11px;height:11px;border:1.5px solid var(--W3);border-top-color:var(--A);border-radius:50%;animation:spn .7s linear infinite;display:inline-block;margin-right:4px;}
@keyframes spn{to{transform:rotate(360deg)}}
#zbar{position:absolute;right:10px;top:50%;transform:translateY(-50%);z-index:500;display:flex;flex-direction:column;align-items:center;gap:4px;}
.zl{font-size:10px;color:var(--W3);}
.ztr{width:4px;height:70px;background:rgba(255,255,255,.1);border-radius:4px;position:relative;}
#zt{width:11px;height:11px;background:var(--A);border-radius:50%;position:absolute;left:-3.5px;top:16px;box-shadow:0 0 8px rgba(0,200,255,.5);}
#inst{position:absolute;bottom:14px;left:50%;transform:translateX(-50%);z-index:500;display:flex;gap:9px;align-items:center;background:rgba(4,9,15,.72);border:1px solid var(--W3);border-radius:999px;padding:5px 14px;backdrop-filter:blur(8px);}
.ib{display:flex;gap:4px;align-items:center;font-size:9.5px;color:var(--W2);}
kbd{background:rgba(0,200,255,.12);border:1px solid rgba(0,200,255,.25);color:var(--A);padding:2px 6px;border-radius:6px;font-size:8.5px;font-weight:700;font-family:inherit;}

/* ══ TABLET ══ */
@media(max-width:900px){
  .brand-text,.tsep:first-of-type{display:none;}
  #tb-r1{gap:5px;padding:5px 8px;}
}

/* ══ MOBILE ══ */
@media(max-width:650px){
  .brand-text,.tsep,.blogo{display:none;}
  #tb-r1{padding:5px 8px;gap:4px;min-height:42px;}
  /* UX FIX 1: Compact pill tabs */
  #tabs{gap:1px;padding:2px;}
  .tab{padding:5px 11px;font-size:9px;}
  .nb{width:34px;height:34px;font-size:12px;}
  #bSaved{width:38px;height:38px;font-size:15px;}
  /* Filters compact */
  #tb-r2{padding:4px 8px 5px;gap:4px;}
  .fs select{font-size:9.5px;padding:5px 20px 5px 10px;}
  .fp input{width:55px;font-size:9px;padding:4px 7px;}
  .dd-btn{padding:5px 9px;font-size:9px;}
  .dd-lbl{max-width:60px;}
  #f-count{font-size:9px;}
  /* CARDS mobile */
  .card{width:122px;border-radius:14px;}
  .cthumb{height:72px;}
  .cbody{padding:5px 6px 6px;}
  .cprice{font-size:11px;margin-bottom:3px;}
  .cprice.nop{font-size:8.5px;}
  .ctitle{font-size:8.5px;margin-bottom:3px;-webkit-line-clamp:2;}
  .cspecs{gap:2px 3px;margin-bottom:3px;grid-template-columns:1fr 1fr;}
  .cspec{padding:2px 4px;border-radius:6px;}
  .cspec-l{font-size:5.5px;}
  .cspec-v{font-size:7.5px;}
  .cloc{font-size:7px;margin-bottom:3px;}
  .cfoot{padding-top:4px;}
  .cdom{display:none;}
  .copen{font-size:7.5px;}
  .cbadge-class{font-size:6.5px;padding:1px 6px;bottom:4px;left:5px;}
  .cbadge-status{font-size:6px;padding:1px 6px;top:4px;right:4px;}
  .like-btn{width:22px;height:22px;font-size:11px;top:5px;left:5px;}
  /* UX FIX 5: bottom sheet + swipe affordance */
  #viewer{
    position:fixed !important;
    top:auto !important;bottom:0 !important;
    left:0 !important;right:0 !important;
    width:100% !important;max-height:90vh;
    transform:translateY(110%) !important;
    border-radius:24px 24px 0 0 !important;
    border-top:2px solid rgba(0,200,255,.35) !important;
    border-left:none !important;border-right:none !important;border-bottom:none !important;
    grid-template-columns:1fr !important;
    grid-template-rows:185px 1fr;
    transition:transform .4s cubic-bezier(.32,.72,0,1) !important;
    overflow:hidden;
  }
  #viewer.open{transform:translateY(0%) !important;opacity:1 !important;}
  #viewer.cls{transform:translateY(110%) !important;opacity:1 !important;}
  #viewer::before{content:'';position:absolute;top:8px;left:50%;transform:translateX(-50%);width:40px;height:4px;background:rgba(255,255,255,.25);border-radius:4px;z-index:5;}
  /* UX FIX 5: swipe hint visible on mobile */
  .swipe-hint{display:flex;}
  /* UX FIX 6: mobile close = very large, red, full prominence */
  #vcls{top:6px;right:10px;width:38px;height:38px;font-size:16px;}
  #viv{min-height:185px;height:185px;position:relative;}
  #viv img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
  #vivg{background:linear-gradient(to bottom,transparent 40%,rgba(4,9,15,.65) 100%);}
  #vnoimg{font-size:48px;}
  #vinfo{max-height:calc(90vh - 185px);padding:14px 12px;overflow-y:auto;-webkit-overflow-scrolling:touch;}
  .v-title-txt{font-size:16px !important;}
  .v-sub-txt{font-size:11px !important;}
  .v-price{font-size:22px !important;}
  #vspecs{grid-template-columns:1fr 1fr;gap:4px;}
  .vsr{padding:6px 8px;border-radius:10px;}
  .vsl{font-size:8px;}
  .vsv{font-size:11px;}
  /* UX FIX 6: mobile action buttons — primary huge, secondary visible */
  .vbtns{gap:8px;flex-wrap:nowrap;}
  .vbtn{flex:1;padding:14px 6px;font-size:12px;border-radius:999px;}
  .vbtn-p{flex:2;padding:15px 6px;font-size:13px;}
  #inst,#zbar{display:none;}
  #hud{bottom:20px;}
  #hud .cs{display:none;}
}
@media(min-width:1800px){
  .card{width:240px;}
  .cthumb{height:126px;}
}

/* ══ CUSTOM DROPDOWN (replaces native <select> — iOS shows white native UI) ══ */
.dd-wrap{position:relative;flex-shrink:0;}
.dd-btn{
  display:flex;align-items:center;gap:5px;
  padding:6px 11px;
  background:#030d1e;
  border:1.5px solid rgba(0,200,255,.35);
  border-radius:999px;
  color:rgba(255,255,255,.85);
  font-size:10px;font-weight:600;
  cursor:pointer;white-space:nowrap;
  -webkit-tap-highlight-color:transparent;
  transition:all .18s;
  min-height:28px;
}
.dd-btn:hover,.dd-btn:active{border-color:rgba(0,200,255,.7);background:rgba(0,200,255,.14);}
.dd-wrap.dd-active .dd-btn{border-color:var(--A);background:rgba(0,200,255,.2);color:#fff;}
.dd-ico{font-size:10px;flex-shrink:0;}
.dd-lbl{flex:1;text-align:left;overflow:hidden;text-overflow:ellipsis;max-width:80px;}
.dd-arr{font-size:7px;color:rgba(0,200,255,.6);flex-shrink:0;transition:transform .18s;}
.dd-wrap.dd-open .dd-arr{transform:rotate(180deg);}
/* Dropdown list */
.dd-list{
  display:none;
  position:absolute;top:calc(100% + 5px);left:0;
  min-width:140px;max-height:220px;overflow-y:auto;
  background:#03101f;
  border:1.5px solid rgba(0,200,255,.3);
  border-radius:14px;
  z-index:9999;
  box-shadow:0 8px 32px rgba(0,0,0,.7),0 0 0 1px rgba(0,200,255,.08);
  -webkit-overflow-scrolling:touch;
  scrollbar-width:none;
}
.dd-list::-webkit-scrollbar{display:none;}
.dd-wrap.dd-open .dd-list{display:block;}
.dd-opt{
  padding:9px 14px;
  font-size:11px;font-weight:500;
  color:rgba(255,255,255,.8);
  cursor:pointer;
  transition:background .12s;
  -webkit-tap-highlight-color:transparent;
  border-bottom:1px solid rgba(0,200,255,.06);
}
.dd-opt:last-child{border-bottom:none;}
.dd-opt:hover,.dd-opt:active{background:rgba(0,200,255,.15);color:#fff;}
.dd-opt-clear{color:rgba(0,200,255,.6);font-style:italic;font-size:10px;}

/* ══ SORT SELECT — keep as small pill (only used on desktop basically) ══ */
.fs-sort .fs select{
  font-size:9px;padding:5px 18px 5px 9px;
}

/* ══ iOS PSEUDO FULLSCREEN ══ */
#lf-app.lf-pseudo-full{
  position:fixed !important;
  inset:0 !important;
  z-index:99999 !important;
  width:100vw !important;
  height:100vh !important;
  height:100dvh !important;
}
