/* ═══════════════════════════════════════════════════════════
   FirmwareHub v3 — Professional Design System
   ═══════════════════════════════════════════════════════════ */
@import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;700&display=swap');

/* ── DARK THEME ─────────────────────────────────────────── */
:root {
  --bg:        #0a0e1a;
  --bg2:       #111827;
  --bg3:       #1a2235;
  --surface:   #131a2c;
  --surface2:  #18233c;
  --surface3:  #1e2d4a;
  --border:    rgba(255,255,255,0.08);
  --border2:   rgba(255,255,255,0.14);
  --accent:    #f59e0b;
  --accent2:   #d97706;
  --accent3:   #10b981;
  --orange:    #ff6b35;
  --red:       #ef4444;
  --yellow:    #fbbf24;
  --purple:    #8b5cf6;
  --text:      #f5f7fa;
  --text2:     #a8b3c7;
  --text3:     #6b7691;
  --card-glow: 0 0 0 1px rgba(245,158,11,.08), 0 8px 32px rgba(0,0,0,.4);
  --glow:      0 0 24px rgba(245,158,11,.24);
  --r:         12px;
  --r-sm:      8px;
  --r-xs:      5px;
  --tr:        .18s cubic-bezier(.4,0,.2,1);
  --font-h:    'Space Grotesk', sans-serif;
  --font-b:    'Inter', sans-serif;
  --font-m:    'JetBrains Mono', monospace;
  --font-mono: 'JetBrains Mono', monospace;
  --font-display: 'Space Grotesk', sans-serif;
  --font-body: 'Inter', sans-serif;
  --nav-h:     90px;
  color-scheme: dark;
}

/* ── LIGHT THEME ─────────────────────────────────────────── */
[data-theme="light"] {
  --bg:        #fdfbf7;
  --bg2:       #f6f0e2;
  --bg3:       #ede2c8;
  --surface:   #ffffff;
  --surface2:  #faf8f2;
  --surface3:  #f3ebd7;
  --border:    #ebdcb9;
  --border2:   #dbcaa1;
  --accent:    #d97706;
  --accent2:   #b45309;
  --accent3:   #047857;
  --orange:    #d45a1a;
  --red:       #cc1a36;
  --yellow:    #b45309;
  --purple:    #6d28d9;
  --text:      #1a1307;
  --text2:     #5e5038;
  --text3:     #8f7c5e;
  --card-glow: 0 0 0 1px rgba(217,119,6,.07), 0 4px 16px rgba(0,0,0,.06);
  --glow:      0 0 20px rgba(217,119,6,.18);
  color-scheme: light;
}


/* ── RESET ──────────────────────────────────────────────── */
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;font-size:15px}
body{background:var(--bg);color:var(--text);font-family:var(--font-b);min-height:100vh;overflow-x:hidden;line-height:1.6;transition:background .3s,color .3s}
a{color:var(--accent);text-decoration:none;transition:color var(--tr)}
a:hover{opacity:.85}
img{max-width:100%;display:block}
button,select,input,textarea{font-family:inherit}
::-webkit-scrollbar{width:5px;height:5px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:var(--border2);border-radius:99px}

/* ── TYPOGRAPHY ─────────────────────────────────────────── */
h1,h2,h3,h4{font-family:var(--font-h);line-height:1.2;letter-spacing:-.3px}

/* ═══ NAVBAR ════════════════════════════════════════════════ */
.site-nav {
  background: rgba(10, 14, 26, 0.75);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
  position: sticky;
  top: 0;
  z-index: 200;
  padding: 0 20px;
  transition: background 0.3s, border-color 0.3s, transform 0.3s cubic-bezier(0.16, 1, 0.3, 1);
  box-shadow: 0 4px 30px rgba(0, 0, 0, 0.15);
}
.site-nav--hidden {
  transform: translateY(-100%);
}
[data-theme="light"] .site-nav {
  background: rgba(253, 251, 247, 0.75);
  border-bottom-color: rgba(0, 0, 0, 0.05);
  box-shadow: 0 4px 30px rgba(0, 0, 0, 0.03);
}
.nav-inner {
  max-width: 1360px;
  margin: 0 auto;
  height: var(--nav-h);
  display: flex;
  align-items: center;
  gap: 16px;
}
.nav-logo {
  display: flex;
  align-items: center;
  gap: 10px;
  text-decoration: none;
  flex-shrink: 0;
  height: 100%;
}
.logo-icon-wrap {
  width: 36px;
  height: 36px;
  border-radius: 9px;
  overflow: hidden;
  flex-shrink: 0;
  background: linear-gradient(135deg, var(--accent), var(--accent2));
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 16px;
  box-shadow: var(--glow);
}
.logo-icon-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.logo-text {
  font-family: var(--font-h);
  font-size: 19px;
  font-weight: 700;
  color: var(--text);
  letter-spacing: -.5px;
}
.logo-text span {
  color: var(--accent);
}
.site-logo-img {
  max-width: 300px;
  height: auto;
  max-height: calc(var(--nav-h) - 16px);
  object-fit: contain;
  display: block;
}
.nav-search {
  flex: 1;
  max-width: 440px;
  position: relative;
}
.nav-search input {
  width: 100%;
  background: var(--surface);
  border: 1.5px solid var(--border);
  border-radius: 9px;
  padding: 8px 13px 8px 38px;
  color: var(--text);
  font-size: 13.5px;
  outline: none;
  transition: all var(--tr);
}
.nav-search input:focus {
  border-color: var(--accent);
  box-shadow: 0 0 0 3px rgba(0, 200, 248, 0.1);
}
.nav-search input::placeholder {
  color: var(--text3);
}
.nav-search-icon {
  position: absolute;
  left: 11px;
  top: 50%;
  transform: translateY(-50%);
  color: var(--text3);
  font-size: 14px;
  pointer-events: none;
}
.nav-right {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-left: auto;
  flex-shrink: 0;
}
.site-nav .btn-ghost {
  background: rgba(255, 255, 255, 0.02);
  border: 1px solid rgba(255, 255, 255, 0.08);
  color: var(--text2);
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1);
  transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
}
[data-theme="light"] .site-nav .btn-ghost {
  background: rgba(0, 0, 0, 0.02);
  border-color: rgba(0, 0, 0, 0.06);
  color: var(--text2);
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.02);
}
.site-nav .btn-ghost:hover {
  background: rgba(255, 255, 255, 0.05);
  border-color: var(--accent);
  color: var(--text);
  transform: translateY(-1.5px);
  box-shadow: 0 4px 12px rgba(245, 158, 11, 0.15);
}
[data-theme="light"] .site-nav .btn-ghost:hover {
  background: rgba(0, 0, 0, 0.04);
  border-color: var(--accent);
  color: var(--text);
  box-shadow: 0 4px 12px rgba(217, 119, 6, 0.1);
}
.site-nav .btn-primary {
  background: linear-gradient(135deg, var(--accent) 0%, var(--accent2) 100%) !important;
  color: #000 !important;
  font-weight: 700;
  border-bottom: 2.5px solid rgba(0, 0, 0, 0.25) !important;
  box-shadow: 0 3px 8px rgba(245, 158, 11, 0.2);
  transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
}
.site-nav .btn-primary:hover {
  transform: translateY(-1.5px);
  box-shadow: 0 5px 14px rgba(245, 158, 11, 0.35);
  opacity: 1;
}
.site-nav .btn-primary:active {
  transform: translateY(1px);
  border-bottom-width: 1px !important;
  box-shadow: 0 1px 4px rgba(245, 158, 11, 0.1);
}
.theme-btn {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.02);
  border: 1px solid rgba(255, 255, 255, 0.08);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
  transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1);
  color: var(--text2);
}
[data-theme="light"] .theme-btn {
  background: rgba(0, 0, 0, 0.02);
  border-color: rgba(0, 0, 0, 0.06);
}
.theme-btn:hover {
  border-color: var(--accent);
  background: rgba(255, 255, 255, 0.05);
  color: var(--text);
  transform: translateY(-1.5px) rotate(30deg);
  box-shadow: 0 4px 12px rgba(245, 158, 11, 0.15);
}
[data-theme="light"] .theme-btn:hover {
  background: rgba(0, 0, 0, 0.04);
  box-shadow: 0 4px 12px rgba(217, 119, 6, 0.1);
}
.mob-menu-btn {
  width: 36px;
  height: 36px;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.02);
  border: 1px solid rgba(255, 255, 255, 0.08);
  cursor: pointer;
  display: none;
  align-items: center;
  justify-content: center;
  font-size: 18px;
  color: var(--text2);
  transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1);
}
[data-theme="light"] .mob-menu-btn {
  background: rgba(0, 0, 0, 0.02);
  border-color: rgba(0, 0, 0, 0.06);
  color: var(--text2);
}
.mob-menu-btn:hover {
  border-color: var(--accent);
  background: rgba(255, 255, 255, 0.05);
  color: var(--text);
  transform: translateY(-1px);
}
@media(max-width:992px) {
  .mob-menu-btn {
    display: flex !important;
  }
  .nav-search {
    display: none !important;
  }
  .finder-nav-btn,
  .brands-nav-btn {
    display: none !important;
  }
}

/* ═══ BUTTONS ═══════════════════════════════════════════════ */
.btn{
  display:inline-flex;align-items:center;gap:6px;
  padding:8px 17px;border-radius:var(--r-sm);
  font-family:var(--font-b);font-size:13.5px;font-weight:600;
  cursor:pointer;border:none;transition:all var(--tr);
  white-space:nowrap;text-decoration:none;vertical-align:middle;line-height:1.3;
}
.btn-primary{background:var(--accent);color:#000;font-weight:700}
.btn-primary:hover{transform:translateY(-1px);box-shadow:var(--glow);opacity:1;color:#000}
.btn-ghost{background:var(--surface);color:var(--text2);border:1.5px solid var(--border)}
.btn-ghost:hover{background:var(--surface2);color:var(--text);border-color:var(--accent);opacity:1}
.btn-danger{background:rgba(255,61,90,.1);color:var(--red);border:1.5px solid rgba(255,61,90,.18)}
.btn-danger:hover{background:rgba(255,61,90,.18);opacity:1}
.btn-success{background:rgba(0,232,122,.1);color:var(--accent3);border:1.5px solid rgba(0,232,122,.18)}
.btn-warning{background:rgba(255,193,7,.1);color:var(--yellow);border:1.5px solid rgba(255,193,7,.18)}
.btn-sm{padding:6px 12px;font-size:12.5px}
.btn-xs{padding:3px 9px;font-size:11.5px}
.btn:disabled{opacity:.35;pointer-events:none}

/* ═══ HERO ═══════════════════════════════════════════════════ */
.hero{
  position:relative;padding:64px 20px 52px;text-align:center;overflow:hidden;
}
.hero::before{
  content:'';position:absolute;inset:0;
  background:
    radial-gradient(ellipse 70% 50% at 50% 0%,rgba(0,200,248,.1) 0%,transparent 70%),
    radial-gradient(ellipse 40% 40% at 10% 80%,rgba(0,232,122,.05) 0%,transparent 60%);
  pointer-events:none;
}
[data-theme="light"] .hero::before{
  background:radial-gradient(ellipse 70% 50% at 50% 0%,rgba(0,102,204,.07) 0%,transparent 70%);
}
.hero::after{content:'';position:absolute;bottom:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--border),transparent)}
.hero-inner{position:relative;z-index:1;max-width:700px;margin:0 auto}
.hero-badge{
  display:inline-flex;align-items:center;gap:6px;
  background:rgba(0,200,248,.08);border:1px solid rgba(0,200,248,.18);
  border-radius:20px;padding:4px 13px;font-size:11px;font-family:var(--font-m);
  color:var(--accent);letter-spacing:1.5px;text-transform:uppercase;margin-bottom:20px;
}
[data-theme="light"] .hero-badge{background:rgba(0,102,204,.07);border-color:rgba(0,102,204,.18)}
.hero h1{font-size:clamp(26px,5vw,54px);font-weight:700;margin-bottom:13px;line-height:1.1;letter-spacing:-1.5px}
.hero h1 .hl{
  background:linear-gradient(135deg,var(--accent) 0%,var(--accent3) 100%);
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;
}
.hero-sub{color:var(--text2);font-size:15.5px;margin-bottom:32px;line-height:1.7;max-width:500px;margin-left:auto;margin-right:auto}
.hero-actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-bottom:38px}

/* Stats bar */
.hero-stats{
  display:flex;justify-content:center;
  background:var(--surface);border:1.5px solid var(--border);
  border-radius:14px;overflow:hidden;max-width:620px;margin:0 auto;
}
.hstat{flex:1;min-width:90px;padding:16px 10px;text-align:center;border-right:1px solid var(--border);transition:background var(--tr)}
.hstat:last-child{border-right:none}
.hstat:hover{background:var(--surface2)}
.hstat-num{font-family:var(--font-m);font-size:20px;font-weight:700;color:var(--accent);display:block;line-height:1;margin-bottom:5px}
.hstat-label{font-size:10.5px;color:var(--text3);text-transform:uppercase;letter-spacing:1px;font-weight:600}
@media(max-width:480px){
  .hstat{min-width:calc(50% - 1px)}
  .hstat:nth-child(2){border-right:none}
  .hstat:nth-child(3){border-top:1px solid var(--border)}
  .hstat:nth-child(4){border-top:1px solid var(--border);border-right:none}
  .hstat:nth-child(5){min-width:100%;border-top:1px solid var(--border);border-right:none}
}

/* ═══ FEATURED ═══════════════════════════════════════════════ */
.featured-section{background:var(--bg2);border-top:1px solid var(--border);border-bottom:1px solid var(--border);padding:20px}
.feat-wrap{max-width:1360px;margin:0 auto}
.feat-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}
.feat-label{font-family:var(--font-h);font-size:12px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--accent);display:flex;align-items:center;gap:7px}
.feat-scroll{display:flex;gap:10px;overflow-x:auto;scrollbar-width:thin;-webkit-overflow-scrolling:touch;padding-bottom:4px}
.feat-scroll::-webkit-scrollbar{height:3px}
.fi-card{
  background:var(--surface);border:1.5px solid var(--border);
  border-radius:11px;padding:13px;min-width:210px;max-width:210px;
  flex-shrink:0;transition:all var(--tr);text-decoration:none;color:inherit;display:block;
}
.fi-card:hover{border-color:var(--accent);transform:translateY(-2px);box-shadow:var(--card-glow);opacity:1}
.fi-top{display:flex;align-items:center;gap:9px;margin-bottom:9px}
.fi-icon{width:36px;height:36px;min-width:36px;background:var(--surface2);border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:20px}
.fi-name{font-family:var(--font-h);font-size:13px;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fi-model{font-family:var(--font-m);font-size:9.5px;color:var(--accent);margin-top:2px}
.fi-foot{display:flex;align-items:center;justify-content:space-between;gap:6px}
.fi-size{font-size:10.5px;color:var(--text3);font-family:var(--font-m)}

/* ═══ LAYOUT ════════════════════════════════════════════════ */
.main-layout{max-width:1360px;margin:0 auto;padding:20px;display:grid;grid-template-columns:252px 1fr;gap:18px;align-items:start;position:relative;z-index:1}
.mob-only-nav, .mob-nav-drawer {
  display: none !important;
}
@media(max-width:992px){
  .main-layout{grid-template-columns:1fr;z-index:auto !important}
  .sidebar{display:none !important}
  .sidebar.open{display:flex !important;flex-direction:column;position:fixed !important;top:0 !important;left:0 !important;width:280px;height:100vh;overflow-y:auto;z-index:9999 !important;background:var(--bg);box-shadow:var(--card-glow);border-right:1px solid var(--border);padding:20px 14px 14px 14px}
  .mob-only-nav {
    display: block !important;
    margin-bottom: 10px;
  }
  .mob-nav-drawer.open {
    display: flex !important;
    flex-direction: column;
    position: fixed !important;
    top: 0 !important;
    right: 0 !important;
    width: 280px;
    height: 100vh;
    overflow-y: auto;
    z-index: 9999 !important;
    background: var(--bg);
    box-shadow: var(--card-glow);
    border-left: 1px solid var(--border);
    padding: 20px 14px 14px 14px;
    animation: slideInRight 0.25s cubic-bezier(0.16, 1, 0.3, 1);
  }
}

@keyframes slideInRight {
  from { transform: translateX(100%); }
  to { transform: translateX(0); }
}

/* ═══ SIDEBAR ═══════════════════════════════════════════════ */
.sidebar{position:sticky;top:calc(var(--nav-h) + 16px);display:flex;flex-direction:column;gap:10px}
.sidebar-close-btn {
  display: none;
  margin-bottom: 12px;
  width: 100%;
  justify-content: center;
  align-items: center;
  padding: 10px;
  background: var(--surface2);
  border: 1px solid var(--border);
  border-radius: 6px;
  color: var(--text2);
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  transition: all var(--tr);
}
.sidebar-close-btn:hover {
  background: #ff3d5a;
  color: #fff;
  border-color: #ff3d5a;
}
@media(max-width:992px){.sidebar.open .sidebar-close-btn{display:flex}}
.scard{background:var(--surface);border:1.5px solid var(--border);border-radius:var(--r);overflow:hidden}
.scard-head{
  padding:10px 13px;font-family:var(--font-h);font-size:10px;font-weight:700;
  letter-spacing:2px;color:var(--text3);text-transform:uppercase;
  border-bottom:1px solid var(--border);background:var(--surface2);
  display:flex;align-items:center;justify-content:space-between;
}
.cat-link{
  display:flex;align-items:center;gap:8px;padding:9px 13px;
  font-size:13px;color:var(--text2);border-bottom:1px solid rgba(0,0,0,.1);
  transition:all var(--tr);text-decoration:none;
}
[data-theme="light"] .cat-link{border-bottom-color:rgba(0,0,0,.05)}
.cat-link:last-child{border-bottom:none}
.cat-link:hover,.cat-link.active{background:rgba(0,200,248,.06);color:var(--text);opacity:1}
.cat-link.active{border-left:3px solid var(--accent)}
.cat-link-name{display:flex;align-items:center;gap:7px;flex:1;min-width:0}
.cat-link-name span:last-child{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cat-badge{
  font-family:var(--font-m);font-size:9.5px;background:var(--surface2);
  color:var(--text3);padding:1px 6px;border-radius:20px;border:1px solid var(--border);
  flex-shrink:0;
}
.cat-link.active .cat-badge{background:rgba(0,200,248,.1);color:var(--accent);border-color:rgba(0,200,248,.2)}
.subcat-wrap{background:rgba(0,0,0,.12)}
[data-theme="light"] .subcat-wrap{background:rgba(0,0,0,.03)}
.sub-link{
  display:flex;align-items:center;justify-content:space-between;
  padding:7px 13px 7px 30px;font-size:12px;color:var(--text3);
  border-bottom:1px solid rgba(0,0,0,.06);
  transition:color var(--tr),background var(--tr);text-decoration:none;
}
.sub-link:last-child{border-bottom:none}
.sub-link:hover{color:var(--text2);background:rgba(0,200,248,.04);opacity:1}
.sub-link.active{color:var(--accent)}
.filter-list{padding:7px 10px;display:flex;flex-direction:column;gap:2px}
.filter-btn{
  display:flex;align-items:center;gap:9px;padding:7px 10px;
  border-radius:6px;font-size:12.5px;color:var(--text3);
  transition:all var(--tr);cursor:pointer;text-decoration:none;
}
.filter-btn:hover,.filter-btn.active{background:rgba(0,200,248,.07);color:var(--text2);opacity:1}
.filter-btn.active{color:var(--accent)}
.filter-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}

/* ═══ CONTENT ════════════════════════════════════════════════ */
.content-top{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:14px;flex-wrap:wrap;gap:10px}
.breadcrumb{display:flex;align-items:center;gap:4px;font-size:12px;color:var(--text3);flex-wrap:wrap}
.breadcrumb a{color:var(--text3);transition:color var(--tr)}
.breadcrumb a:hover{color:var(--accent);opacity:1}
.breadcrumb .sep{color:var(--border2)}
.breadcrumb .cur{color:var(--text2)}
.result-meta{font-size:11px;color:var(--text3);margin-top:3px}
.sort-row{display:flex;gap:7px;align-items:center;flex-wrap:wrap}
.fsel{
  background:var(--surface);border:1.5px solid var(--border);
  border-radius:var(--r-sm);color:var(--text2);font-size:12.5px;
  padding:6px 10px;outline:none;cursor:pointer;transition:border-color var(--tr);
}
.fsel:focus{border-color:var(--accent)}
.tag-row{display:flex;gap:5px;margin-bottom:14px;flex-wrap:wrap}
.tag{
  padding:4px 12px;border-radius:20px;font-size:12px;font-weight:600;
  border:1.5px solid var(--border);background:var(--surface);color:var(--text3);
  transition:all var(--tr);text-decoration:none;cursor:pointer;display:inline-block;
}
.tag:hover,.tag.active{background:rgba(0,200,248,.1);color:var(--accent);border-color:rgba(0,200,248,.25);opacity:1}

/* ═══ FIRMWARE CARDS ══════════════════════════════════════════ */
.fw-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:12px}
@media(max-width:600px){.fw-grid{grid-template-columns:1fr;gap:11px}}
.fw-card{
  background:var(--surface);border:1.5px solid var(--border);
  border-radius:var(--r);overflow:hidden;
  transition:all var(--tr);position:relative;display:flex;flex-direction:column;
}
.fw-card:hover{border-color:var(--accent);transform:translateY(-2px);box-shadow:var(--card-glow)}
.fw-card-content{flex:1;display:flex;flex-direction:column;text-decoration:none;color:inherit;position:relative}
.fw-main-link{color:var(--text);text-decoration:none}
.fw-main-link:hover{color:var(--accent)}
.fw-main-link::after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:1}
.fw-card-subcat,
.fw-size,
.dl-btn,
.fw-badge {
  position: relative;
  z-index: 2;
}
.fw-card-body{padding:13px 13px 10px;flex:1}
.fw-card-top{display:flex;align-items:flex-start;gap:10px;margin-bottom:10px}
.fw-icon{
  width:42px;height:42px;min-width:42px;
  background:var(--surface2);border-radius:10px;
  display:flex;align-items:center;justify-content:center;
  font-size:21px;border:1px solid var(--border);
}
.fw-title-wrap{flex:1;min-width:0}
.fw-name{font-family:var(--font-h);font-size:14.5px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:4px;letter-spacing:-.2px}
.fw-model{font-family:var(--font-m);font-size:9.5px;color:var(--accent);background:rgba(0,200,248,.08);padding:2px 6px;border-radius:4px;display:inline-block}
.fw-badge{font-family:var(--font-m);font-size:9.5px;padding:2px 7px;border-radius:4px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;white-space:nowrap;flex-shrink:0}
.badge-official{background:rgba(0,232,122,.1); color:var(--accent3); border:1px solid rgba(0,232,122,.22)}
.badge-stable  {background:rgba(0,200,248,.08);color:var(--accent); border:1px solid rgba(0,200,248,.18)}
.badge-beta    {background:rgba(255,107,53,.1); color:var(--orange); border:1px solid rgba(255,107,53,.22)}
.badge-security{background:rgba(167,139,250,.1);color:var(--purple);border:1px solid rgba(167,139,250,.22)}
.badge-recovery{background:rgba(255,193,7,.1);  color:var(--yellow);border:1px solid rgba(255,193,7,.22)}
.badge-fastboot{background:rgba(255,61,90,.1);  color:var(--red);   border:1px solid rgba(255,61,90,.22)}
.fw-meta{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:2px}
.meta-chip{background:var(--bg3);border-radius:7px;padding:7px 9px;border:1px solid var(--border);min-width:0;overflow:hidden}
.meta-chip.full{grid-column:1 / -1}
.meta-l{font-size:9px;color:var(--text3);text-transform:uppercase;letter-spacing:.7px;margin-bottom:3px;font-weight:600}
.meta-v{font-family:var(--font-m);font-size:11px;color:var(--text2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}
.meta-v.wrap{white-space:normal;word-break:break-all;font-size:10px;line-height:1.4}
.fw-card-foot{padding:10px 13px;border-top:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:8px}
.fw-size-info{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}
.fw-size{font-family:var(--font-m);font-size:11px;color:var(--text2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fw-date{font-size:10.5px;color:var(--text3)}
.dl-btn{
  display:flex;align-items:center;gap:5px;background:var(--accent);
  color:#000;padding:7px 14px;border-radius:7px;font-size:12px;
  font-weight:700;cursor:pointer;border:none;transition:all var(--tr);
  text-decoration:none;white-space:nowrap;flex-shrink:0;font-family:var(--font-b);
}
.dl-btn:hover{transform:translateY(-1px);box-shadow:var(--glow);color:#000;opacity:1}
.feat-ribbon{position:absolute;top:0;right:0;background:linear-gradient(135deg,var(--orange),#ff9a6b);color:#fff;font-size:9px;font-weight:700;padding:3px 9px;border-bottom-left-radius:8px;letter-spacing:.5px;text-transform:uppercase}

/* ═══ EMPTY STATE ════════════════════════════════════════════ */
.empty-state{text-align:center;padding:60px 20px;color:var(--text3);grid-column:1/-1}
.empty-state .ei{font-size:44px;margin-bottom:12px;opacity:.5}
.empty-state h3{font-family:var(--font-h);font-size:18px;color:var(--text2);margin-bottom:7px}

/* ═══ PAGINATION ═════════════════════════════════════════════ */
.pagination{display:flex;align-items:center;justify-content:center;gap:5px;margin-top:24px;flex-wrap:wrap}
.page-btn{
  min-width:34px;height:34px;padding:0 9px;border-radius:7px;
  font-size:12.5px;cursor:pointer;border:1.5px solid var(--border);
  background:var(--surface);color:var(--text3);transition:all var(--tr);
  text-decoration:none;display:inline-flex;align-items:center;justify-content:center;
}
.page-btn.active{background:var(--accent);color:#000;border-color:var(--accent);font-weight:700}
.page-btn:hover:not(.active):not(.disabled){border-color:var(--accent);color:var(--text);opacity:1}
.page-btn.disabled{opacity:.3;pointer-events:none}
.page-dots{color:var(--text3);line-height:34px;padding:0 2px}

/* ═══ DETAIL ════════════════════════════════════════════════ */
.detail-wrap{max-width:880px;margin:0 auto;padding:20px;position:relative;z-index:1}
.back-btn{display:inline-flex;align-items:center;gap:6px;color:var(--text3);font-size:12.5px;margin-bottom:18px;padding:6px 12px;background:var(--surface);border:1.5px solid var(--border);border-radius:7px;transition:all var(--tr);box-shadow: 0 2px 4px rgba(0,0,0,0.15)}
.back-btn:hover{color:var(--accent);border-color:var(--accent);opacity:1;transform:translateX(-2px)}
.detail-card{
  background: var(--surface);
  border: 1.5px solid var(--border);
  border-radius: var(--r);
  overflow: hidden;
  margin-bottom: 18px;
  box-shadow: 
    0 10px 30px rgba(0,0,0,0.3),
    inset 0 1px 0 rgba(255,255,255,0.05);
}
[data-theme="light"] .detail-card {
  box-shadow: 
    0 10px 30px rgba(0,0,0,0.06),
    inset 0 1px 0 rgba(255,255,255,0.6);
}
.detail-head{
  background: linear-gradient(135deg, var(--surface2) 0%, var(--surface) 100%);
  padding: 24px;
  border-bottom: 1px solid var(--border);
  display: flex;
  gap: 20px;
  align-items: center;
  flex-wrap: wrap;
}
.detail-dev-icon{
  width: 68px;
  height: 68px;
  background: var(--surface3);
  border-radius: 16px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 34px;
  border: 1.5px solid var(--border);
  box-shadow: 
    0 4px 10px rgba(0,0,0,0.2),
    inset 0 2px 4px rgba(0,0,0,0.15);
  flex-shrink: 0;
}
.detail-info h1{font-size:clamp(20px,4vw,28px);font-weight:800;margin-bottom:8px;letter-spacing:-.6px}
.detail-chips{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:8px}
.chip{
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 4px 10px;
  border-radius: 20px;
  font-size: 11px;
  font-weight: 700;
  border: 1px solid transparent;
  text-transform: uppercase;
  letter-spacing: .5px;
}
.chip-a{background:rgba(0,232,122,.08);color:var(--accent3);border-color:rgba(0,232,122,.18)}
.chip-r{background:rgba(0,200,248,.07);color:var(--accent); border-color:rgba(0,200,248,.15)}
.chip-c{background:rgba(167,139,250,.08);color:var(--purple);border-color:rgba(167,139,250,.18)}
.detail-model{font-family:var(--font-m);font-size:11.5px;color:var(--text3);font-weight:500}

/* Separated Grid of Neumorphic Detail Chips */
.detail-meta-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));
  gap: 12px;
  padding: 20px;
  border-bottom: 1px solid var(--border);
  background: rgba(0, 0, 0, 0.12);
}
[data-theme="light"] .detail-meta-grid {
  background: rgba(0,0,0,0.02);
}
.dmc {
  background: var(--surface);
  border: 1.5px solid var(--border);
  border-radius: var(--r-sm);
  padding: 14px 16px;
  min-width: 0;
  overflow: hidden;
  box-shadow: 
    0 2px 4px rgba(0,0,0,0.1),
    inset 0 1px 0 rgba(255,255,255,0.04);
  transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
}
[data-theme="light"] .dmc {
  box-shadow: 
    0 2px 4px rgba(0,0,0,0.03),
    inset 0 1px 0 rgba(255,255,255,0.6);
}
.dmc:hover {
  transform: translateY(-3px);
  border-color: var(--accent);
  box-shadow: 
    0 6px 12px rgba(0,0,0,0.15),
    0 0 8px rgba(0,200,248,0.15);
}
[data-theme="light"] .dmc:hover {
  box-shadow: 
    0 6px 12px rgba(0,0,0,0.04),
    0 0 8px rgba(0,102,204,0.1);
}
.dmc-l{font-size:9.5px;color:var(--text3);text-transform:uppercase;letter-spacing:.8px;margin-bottom:6px;font-weight:700}
.dmc-v{font-family:var(--font-m);font-size:13.5px;color:var(--text2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:600}
.dmc-v.wrap{white-space:normal;word-break:break-all;font-size:11.5px;line-height:1.5}

.detail-body{padding:24px}
.changelog-box {
  background: linear-gradient(135deg, var(--bg2) 0%, var(--bg3) 100%);
  border: 1.5px solid var(--border);
  border-radius: var(--r-sm);
  padding: 18px;
  margin-bottom: 20px;
  box-shadow: inset 0 2px 4px rgba(0,0,0,0.15);
}
[data-theme="light"] .changelog-box {
  background: linear-gradient(135deg, var(--bg2) 0%, var(--bg) 100%);
  box-shadow: inset 0 1px 2px rgba(0,0,0,0.04);
}
.changelog-box h4{font-family:var(--font-h);font-size:11.5px;letter-spacing:1.5px;color:var(--text3);text-transform:uppercase;margin-bottom:12px;font-weight:700}
.cl-item{font-size:13.5px;color:var(--text2);padding:6px 0 6px 18px;position:relative;border-bottom:1px solid rgba(0,0,0,0.08);font-weight:500}
[data-theme="light"] .cl-item{border-bottom-color:rgba(0,0,0,0.04)}
.cl-item:last-child{border-bottom:none}
.cl-item::before{content:'›';position:absolute;left:0;color:var(--accent);font-weight:800;font-size:16px;line-height:1.2}

.hash-box {
  background: linear-gradient(135deg, var(--bg2) 0%, var(--bg3) 100%);
  border: 1.5px solid var(--border);
  border-radius: var(--r-sm);
  padding: 16px;
  margin-bottom: 20px;
  box-shadow: inset 0 2px 4px rgba(0,0,0,0.15);
}
[data-theme="light"] .hash-box {
  background: linear-gradient(135deg, var(--bg2) 0%, var(--bg) 100%);
  box-shadow: inset 0 1px 2px rgba(0,0,0,0.04);
}
.hash-row{display:flex;gap:12px;margin-bottom:8px;align-items:flex-start}
.hash-row:last-child{margin-bottom:0}
.hash-lbl{font-size:9.5px;color:var(--text3);text-transform:uppercase;letter-spacing:.8px;min-width:54px;margin-top:2px;font-family:var(--font-m);font-weight:700}
.hash-val{font-family:var(--font-m);font-size:11px;color:var(--text2);word-break:break-all;cursor:pointer;transition:color var(--tr);font-weight:500}
.hash-val:hover{color:var(--accent)}

.detail-actions{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:20px}
.dl-btn-lg {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  background: linear-gradient(135deg, var(--accent) 0%, var(--accent2) 100%) !important;
  color: #000 !important;
  padding: 13px 28px;
  border-radius: 11px;
  font-size: 15px;
  font-weight: 800;
  cursor: pointer;
  border: none;
  border-bottom: 4.5px solid rgba(0,0,0,0.3) !important;
  box-shadow: 0 6px 20px rgba(0, 200, 248, 0.35);
  transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
  text-shadow: 0 0.5px 0.5px rgba(255,255,255,0.3);
}
.dl-btn-lg:hover {
  transform: translateY(-2px);
  border-bottom-width: 5.5px !important;
  box-shadow: 0 8px 24px rgba(0, 200, 248, 0.45);
}
.dl-btn-lg:active {
  transform: translateY(3px);
  border-bottom-width: 1px !important;
  box-shadow: 0 2px 6px rgba(0, 200, 248, 0.15);
}
[data-theme="light"] .dl-btn-lg {
  color: #fff !important;
  text-shadow: 0 -0.5px 0.5px rgba(0,0,0,0.2);
}

.warn-box {
  padding: 16px 18px;
  background: rgba(255,193,7,.05);
  border: 1.5px solid rgba(255,193,7,.18);
  border-radius: 10px;
  font-size: 12.5px;
  color: var(--text2);
  line-height: 1.7;
}

.sec-title{font-family:var(--font-h);font-size:16px;font-weight:800;margin-bottom:14px;display:flex;align-items:center;gap:9px;letter-spacing:-.2px}
.sec-title::after{content:'';flex:1;height:1.5px;background:linear-gradient(90deg,var(--border),transparent)}

/* Related Firmware Slider */
.related-section {
  margin-top: 32px;
  width: 100%;
}
.related-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 16px;
}
.slider-arrows {
  display: flex;
  gap: 8px;
}
.slide-arrow {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: var(--surface2);
  border: 1.5px solid var(--border);
  color: var(--text);
  font-size: 16px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all var(--tr);
  user-select: none;
}
.slide-arrow:hover {
  border-color: var(--accent);
  background: var(--surface3);
  box-shadow: 0 0 10px rgba(0, 200, 248, 0.15);
}

.related-slider-container {
  position: relative;
  width: 100%;
  overflow: hidden;
}

.related-slider {
  display: flex;
  gap: 16px;
  overflow-x: auto;
  scroll-behavior: smooth;
  scroll-snap-type: x mandatory;
  padding: 4px;
  scrollbar-width: none; /* Firefox */
}
.related-slider::-webkit-scrollbar {
  display: none; /* Safari and Chrome */
}

.rel-slide-item {
  flex: 0 0 240px; /* fixed width cards in row */
  scroll-snap-align: start;
  background: var(--surface);
  border: 1.5px solid var(--border);
  border-radius: 12px;
  padding: 14px;
  text-decoration: none;
  color: inherit;
  transition: all var(--tr);
  display: flex;
  flex-direction: column;
  gap: 12px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}
[data-theme="light"] .rel-slide-item {
  border-color: rgba(0,0,0,0.06);
  box-shadow: 0 2px 4px rgba(0,0,0,0.02);
}

.rel-slide-item:hover {
  border-color: var(--accent);
  transform: translateY(-2px);
  box-shadow: var(--card-glow);
}

.rel-slide-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.rel-slide-top .fw-icon {
  width: 36px;
  height: 36px;
  min-width: 36px;
  font-size: 18px;
}

.rel-slide-info {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
}

.rel-slide-name {
  font-family: var(--font-h);
  font-size: 13.5px;
  font-weight: 700;
  color: var(--text);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.rel-slide-model {
  font-family: var(--font-m);
  font-size: 11px;
  color: var(--text3);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.rel-slide-version {
  font-family: var(--font-m);
  font-size: 10px;
  color: var(--accent);
  background: rgba(0, 200, 248, 0.06);
  padding: 2px 6px;
  border-radius: 4px;
  display: inline-block;
  align-self: flex-start;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 100%;
}

@media (max-width: 768px) {
  .rel-slide-item {
    flex: 0 0 200px;
    padding: 12px;
  }
  .slider-arrows {
    display: none;
  }
}

/* ═══ FLASH ══════════════════════════════════════════════════ */
.flash{padding:10px 14px;border-radius:8px;margin-bottom:12px;display:flex;align-items:center;gap:9px;font-size:13px;border:1.5px solid transparent}
.flash-icon{width:20px;height:20px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;flex-shrink:0}
.flash-success{background:rgba(0,232,122,.07);border-color:rgba(0,232,122,.18);color:var(--accent3)}
.flash-success .flash-icon{background:rgba(0,232,122,.18);color:var(--accent3)}
.flash-error{background:rgba(255,61,90,.07);border-color:rgba(255,61,90,.18);color:var(--red)}
.flash-error .flash-icon{background:rgba(255,61,90,.18);color:var(--red)}
.flash-warning{background:rgba(255,193,7,.07);border-color:rgba(255,193,7,.18);color:var(--yellow)}
.flash-info{background:rgba(0,200,248,.06);border-color:rgba(0,200,248,.18);color:var(--accent)}

/* ═══ FORMS ══════════════════════════════════════════════════ */
.form-group{margin-bottom:14px}
.form-label{display:block;font-size:12px;color:var(--text2);margin-bottom:5px;font-weight:600;letter-spacing:.2px}
.form-label .req{color:var(--red);margin-left:2px}
.form-control{
  width:100%;background:var(--surface);border:1.5px solid var(--border);
  border-radius:var(--r-sm);padding:9px 12px;color:var(--text);
  font-size:13px;outline:none;transition:all var(--tr);
}
.form-control:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(0,200,248,.08)}
.form-control::placeholder{color:var(--text3)}
.form-control:disabled{opacity:.45}
textarea.form-control{resize:vertical;min-height:76px}
.form-hint{font-size:11px;color:var(--text3);margin-top:3px}
.form-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media(max-width:520px){.form-grid-2{grid-template-columns:1fr}}

/* ═══ FOOTER ═════════════════════════════════════════════════ */
.site-footer{background:var(--bg2);border-top:1px solid var(--border);padding:36px 20px 20px;margin-top:44px;position:relative;z-index:1}
.site-footer .nav-logo{height:auto !important}
.footer-inner{max-width:1360px;margin:0 auto}
.footer-grid{display:grid;grid-template-columns:1.4fr repeat(3,1fr);gap:28px;margin-bottom:28px}
@media(max-width:720px){.footer-grid{grid-template-columns:1fr 1fr}}
@media(max-width:460px){.footer-grid{grid-template-columns:1fr}}
.footer-desc{font-size:12.5px;color:var(--text3);line-height:1.8;margin-top:8px}
.footer-head{font-family:var(--font-h);font-size:10.5px;font-weight:700;letter-spacing:2px;color:var(--text3);text-transform:uppercase;margin-bottom:12px}
.footer-links{list-style:none}
.footer-links li{margin-bottom:7px}
.footer-links a{font-size:12.5px;color:var(--text3);transition:color var(--tr)}
.footer-links a:hover{color:var(--accent);opacity:1}
.footer-bottom{border-top:1px solid var(--border);padding-top:16px;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:7px}
.footer-bottom p{font-size:11.5px;color:var(--text3)}

/* Advanced Footer Styles */
.footer-badges {
  display: flex;
  gap: 8px;
  margin-top: 14px;
  flex-wrap: wrap;
}
.footer-badges .f-badge {
  font-size: 10px;
  background: var(--surface2);
  border: 1px solid var(--border);
  padding: 4px 8px;
  border-radius: 12px;
  color: var(--text3);
  font-weight: 600;
  letter-spacing: 0.5px;
}
.footer-logo-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 14px;
  height: 14px;
  vertical-align: middle;
  margin-right: 4px;
}
.footer-logo-icon svg {
  width: 100%;
  height: 100%;
}
.footer-theme-toggle:hover {
  color: var(--accent) !important;
}
.footer-legal-links a:hover {
  color: var(--accent) !important;
}

/* ═══ MOBILE OVERLAY ═════════════════════════════════════════ */
.mob-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.65);z-index:290}
.mob-overlay.visible{display:block}
.mob-search-bar{display:none;padding:9px 16px;background:var(--bg2);border-bottom:1px solid var(--border)}
.mob-search-bar form{position:relative}
.mob-search-bar input{width:100%;background:var(--surface);border:1.5px solid var(--border);border-radius:9px;padding:9px 14px 9px 38px;color:var(--text);font-size:13.5px;outline:none}
.mob-search-bar .si{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--text3)}
@media(max-width:768px){.mob-search-bar{display:block}}
.mob-filter-row{display:none;padding:10px 16px;gap:7px;background:var(--bg2);border-bottom:1px solid var(--border);position:sticky;top:var(--nav-h);z-index:100}
@media(max-width:992px){.mob-filter-row{display:flex}}
.mob-filter-row .fsel{flex:1}

/* ═══ MOBILE BUTTON ══════════════════════════════════════════ */
.mob-filter-btn{display:none}
@media(max-width:992px){.mob-filter-btn{display:flex}}

/* ──────────────────────────────────────────────────────────
   3D Visual Styling & Android App Mobile View
   ────────────────────────────────────────────────────────── */

/* Enable perspective globally on grids */
.fw-grid, .featured-scroll {
  perspective: 1200px;
  transform-style: preserve-3d;
}

/* Card 3D Depth */
.fw-card {
  transform-style: preserve-3d;
  transition: transform 0.4s cubic-bezier(0.25, 0.8, 0.25, 1), box-shadow 0.4s ease, border-color 0.4s ease;
  background: linear-gradient(135deg, var(--surface) 0%, var(--bg3) 100%);
  border: 1px solid rgba(255, 255, 255, 0.05);
  box-shadow: 
    0 4px 6px -1px rgba(0,0,0,0.2), 
    0 2px 4px -1px rgba(0,0,0,0.1),
    inset 0 1px 0 0 rgba(255,255,255,0.08);
}

.fw-card:hover {
  transform: translateY(-8px) rotateX(3deg) rotateY(-1.5deg) translateZ(10px);
  border-color: var(--accent);
  box-shadow: 
    0 20px 25px -5px rgba(0,0,0,0.4), 
    0 10px 10px -5px rgba(0,0,0,0.3),
    0 0 15px rgba(0, 200, 248, 0.2),
    inset 0 1px 0 0 rgba(255,255,255,0.15);
}

.fi-card {
  transform-style: preserve-3d;
  transition: transform 0.4s cubic-bezier(0.25, 0.8, 0.25, 1), box-shadow 0.4s ease, border-color 0.4s ease;
  background: linear-gradient(135deg, var(--surface) 0%, var(--bg3) 100%);
  border: 1px solid rgba(255, 255, 255, 0.05);
  box-shadow: 
    0 4px 6px -1px rgba(0,0,0,0.2),
    inset 0 1px 0 0 rgba(255,255,255,0.08);
}

.fi-card:hover {
  transform: translateY(-6px) rotateX(2.5deg) rotateY(-1.5deg) translateZ(8px);
  border-color: var(--accent);
  box-shadow: 
    0 15px 20px -5px rgba(0,0,0,0.4), 
    0 0 12px rgba(0, 200, 248, 0.15),
    inset 0 1px 0 0 rgba(255,255,255,0.15);
}

/* Light mode adjustments */
[data-theme="light"] .fw-card {
  background: linear-gradient(135deg, var(--surface) 0%, var(--bg2) 100%);
  border: 1px solid rgba(0,0,0,0.06);
  box-shadow: 
    0 4px 6px -1px rgba(0,0,0,0.06), 
    0 2px 4px -1px rgba(0,0,0,0.03),
    inset 0 1px 0 0 rgba(255,255,255,0.7);
}

[data-theme="light"] .fw-card:hover {
  box-shadow: 
    0 20px 25px -5px rgba(0,0,0,0.12), 
    0 10px 10px -5px rgba(0,0,0,0.08),
    0 0 15px rgba(0, 102, 204, 0.15),
    inset 0 1px 0 0 rgba(255,255,255,0.9);
}

[data-theme="light"] .fi-card {
  background: linear-gradient(135deg, var(--surface) 0%, var(--bg2) 100%);
  border: 1px solid rgba(0,0,0,0.06);
  box-shadow: 
    0 4px 6px -1px rgba(0,0,0,0.06),
    inset 0 1px 0 0 rgba(255,255,255,0.7);
}

[data-theme="light"] .fi-card:hover {
  box-shadow: 
    0 15px 20px -5px rgba(0,0,0,0.12), 
    0 0 12px rgba(0, 102, 204, 0.12),
    inset 0 1px 0 0 rgba(255,255,255,0.9);
}

/* 3D Push Buttons */
.btn-primary, .dl-btn, .dl-btn-lg {
  background: linear-gradient(135deg, var(--accent) 0%, var(--accent2) 100%) !important;
  color: #000 !important;
  border-bottom: 3.5px solid rgba(0,0,0,0.3) !important;
  box-shadow: 0 4px 10px rgba(0, 200, 248, 0.2);
  transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
  text-shadow: 0 0.5px 0.5px rgba(255,255,255,0.3);
}

.btn-primary:hover, .dl-btn:hover, .dl-btn-lg:hover {
  transform: translateY(-2px);
  border-bottom-width: 4.5px !important;
  box-shadow: 0 6px 15px rgba(0, 200, 248, 0.35);
  opacity: 1;
}

.btn-primary:active, .dl-btn:active, .dl-btn-lg:active {
  transform: translateY(2px);
  border-bottom-width: 1px !important;
  box-shadow: 0 1px 4px rgba(0, 200, 248, 0.1);
}

[data-theme="light"] .btn-primary, [data-theme="light"] .dl-btn, [data-theme="light"] .dl-btn-lg {
  background: linear-gradient(135deg, var(--accent) 0%, var(--accent2) 100%) !important;
  color: #fff !important;
  text-shadow: 0 -0.5px 0.5px rgba(0,0,0,0.2);
}

/* Android App Bottom Navigation */
.mobile-bottom-nav {
  display: none;
}

/* Brand Scroller */
.mobile-brands-scroller {
  display: none;
}

@media (max-width: 768px) {
  /* Bottom Nav hidden on mobile */
  .mobile-bottom-nav {
    display: none !important;
  }

  /* Prevent bottom padding since bottom nav is removed */
  body {
    padding-bottom: 0px !important;
  }
  
  /* Hide standard footer extra padding on mobile */
  .site-footer {
    padding-bottom: 20px;
  }
}

@media (max-width: 992px) {
  /* Horizontal swipeable category selection */
  .mobile-brands-scroller {
    display: flex;
    gap: 8px;
    overflow-x: auto;
    padding: 12px 16px;
    background: var(--bg2);
    border-bottom: 1.5px solid var(--border);
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
    position: relative;
    z-index: 10;
  }
  
  .mobile-brands-scroller::-webkit-scrollbar {
    display: none;
  }

  .brand-chip {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 7px 13px;
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: 20px;
    color: var(--text2);
    font-size: 12.5px;
    font-weight: 600;
    white-space: nowrap;
    transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: 0 2px 4px rgba(0,0,0,0.1);
  }

  .brand-chip:hover {
    color: var(--text);
    opacity: 1;
    transform: translateY(-1px);
  }

  .brand-chip.active {
    background: rgba(0, 200, 248, 0.12);
    color: var(--accent);
    border-color: rgba(0, 200, 248, 0.35);
    box-shadow: 0 4px 10px rgba(0, 200, 248, 0.15);
  }
  
  [data-theme="light"] .brand-chip.active {
    background: rgba(0, 102, 204, 0.1);
    border-color: rgba(0, 102, 204, 0.35);
    box-shadow: 0 4px 10px rgba(0, 102, 204, 0.15);
  }

  /* Make main layout grid touch-optimized */
  .fw-grid {
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 14px;
    padding: 4px;
  }

  .hero {
    padding: 40px 16px 28px;
  }
  
  .hero-stats {
    transform: none; /* remove rotation skew on touch devices */
  }

  /* App bar adjustments */
  .site-nav {
    border-bottom-width: 1.5px;
    box-shadow: 0 4px 12px rgba(0,0,0,0.15);
  }
}

/* Professional Grid Navigation Card (3D Neumorphic Look matching the user's screenshot) */
.grid-nav-container {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
  gap: 16px;
  margin: 16px 0 32px;
}

@media(max-width:768px) {
  .grid-nav-container {
    grid-template-columns: 1fr;
    gap: 12px;
  }
}

.grid-nav-card {
  display: flex;
  align-items: center;
  gap: 16px;
  background: var(--surface);
  border: 1.5px solid var(--border);
  border-radius: var(--r);
  padding: 16px;
  text-decoration: none;
  color: inherit;
  transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);
  box-shadow: 
    0 4px 6px -1px rgba(0,0,0,0.2),
    inset 0 1px 0 rgba(255,255,255,0.05);
  transform-style: preserve-3d;
}

[data-theme="light"] .grid-nav-card {
  background: var(--surface);
  border-color: rgba(0,0,0,0.08);
  box-shadow: 
    0 4px 12px rgba(0,0,0,0.03),
    inset 0 1px 0 rgba(255,255,255,0.6);
}

.grid-nav-card:hover {
  border-color: var(--accent);
  transform: translateY(-5px) rotateX(2deg) rotateY(-1deg);
  box-shadow: 
    0 15px 25px -5px rgba(0,0,0,0.35),
    0 0 15px rgba(0, 200, 248, 0.2),
    inset 0 1px 0 rgba(255,255,255,0.1);
}

[data-theme="light"] .grid-nav-card:hover {
  box-shadow: 
    0 15px 25px -5px rgba(0,0,0,0.08),
    0 0 12px rgba(0, 102, 204, 0.12),
    inset 0 1px 0 rgba(255,255,255,0.8);
}

.grid-nav-icon-wrap {
  width: 50px;
  height: 50px;
  min-width: 50px;
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 24px;
  background: var(--surface2);
  border: 1px solid var(--border);
  box-shadow: inset 0 2px 4px rgba(0,0,0,0.15);
  transition: transform 0.3s;
}

[data-theme="light"] .grid-nav-icon-wrap {
  box-shadow: inset 0 1px 2px rgba(0,0,0,0.05);
}

.grid-nav-card:hover .grid-nav-icon-wrap {
  transform: scale(1.05) translateZ(10px);
}

.grid-nav-info {
  flex: 1;
  min-width: 0;
}

.grid-nav-title {
  font-family: var(--font-h);
  font-size: 15px;
  font-weight: 700;
  color: var(--text);
  margin-bottom: 4px;
  letter-spacing: -.2px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.grid-nav-desc {
  font-size: 11.5px;
  color: var(--text2);
  line-height: 1.45;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* Premium Hero Banner (3D Dark/Light Theme) */
.hero-banner-wrap {
  position: relative;
  border-radius: 20px;
  overflow: hidden;
  margin-bottom: 28px;
  border: 1.5px solid var(--border);
  box-shadow: 0 15px 35px rgba(0,0,0,0.3);
  transform-style: preserve-3d;
}

.hero-banner {
  padding: 52px 24px;
  text-align: center;
  position: relative;
  z-index: 2;
  background: linear-gradient(135deg, rgba(13,18,37,0.92) 0%, rgba(21,30,53,0.85) 100%);
  backdrop-filter: blur(10px);
}

.hero-banner::before {
  content: '';
  position: absolute;
  inset: 0;
  background: 
    radial-gradient(circle at 10% 20%, rgba(0, 200, 248, 0.16) 0%, transparent 45%),
    radial-gradient(circle at 90% 80%, rgba(0, 232, 122, 0.08) 0%, transparent 45%);
  z-index: -1;
}

[data-theme="light"] .hero-banner-wrap {
  box-shadow: 0 15px 35px rgba(0,0,0,0.06);
}

[data-theme="light"] .hero-banner {
  background: linear-gradient(135deg, rgba(255,255,255,0.95) 0%, rgba(240,244,250,0.9) 100%);
}

.hero-banner-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: rgba(0,200,248,0.08);
  border: 1px solid rgba(0,200,248,0.2);
  color: var(--accent);
  padding: 4px 12px;
  border-radius: 20px;
  font-size: 10px;
  font-family: var(--font-m);
  letter-spacing: 1.2px;
  text-transform: uppercase;
  margin-bottom: 16px;
}

[data-theme="light"] .hero-banner-badge {
  background: rgba(0,102,204,0.08);
  border-color: rgba(0,102,204,0.2);
}

.hero-banner-title {
  font-size: clamp(24px, 4vw, 40px);
  font-weight: 800;
  letter-spacing: -1px;
  line-height: 1.15;
  margin-bottom: 12px;
  color: var(--text);
}

.hero-banner-title span {
  background: linear-gradient(135deg, var(--accent) 0%, #00e87a 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.hero-banner-desc {
  font-size: 14px;
  color: var(--text2);
  max-width: 520px;
  margin: 0 auto 24px;
  line-height: 1.6;
}

/* Banner Search bar */
.hero-banner-search {
  max-width: 500px;
  margin: 0 auto;
  position: relative;
}

.hero-banner-search input {
  width: 100%;
  padding: 13px 20px 13px 48px;
  background: var(--surface2);
  border: 2px solid var(--border);
  border-radius: 12px;
  color: var(--text);
  font-size: 14px;
  outline: none;
  transition: all 0.3s;
  box-shadow: 0 4px 12px rgba(0,0,0,0.15);
}

.hero-banner-search input:focus {
  border-color: var(--accent);
  box-shadow: 0 0 15px rgba(0,200,248,0.25);
  background: var(--surface3);
}

.hero-banner-search .icon {
  position: absolute;
  left: 18px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 16px;
  color: var(--text3);
  pointer-events: none;
}

/* Glassmorphic Stats Pill */
.nav-stats {
  display: flex;
  align-items: center;
  gap: 16px;
  margin: 0 auto;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 99px;
  padding: 6px 20px;
  box-shadow: inset 0 1px 1px rgba(255, 255, 255, 0.05), 0 4px 12px rgba(0, 0, 0, 0.25);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  transition: all var(--tr);
}
[data-theme="light"] .nav-stats {
  background: rgba(0, 0, 0, 0.02);
  border-color: rgba(0, 0, 0, 0.06);
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.02), 0 2px 6px rgba(0, 0, 0, 0.04);
}

.nstat {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  color: var(--text3);
  font-family: var(--font-b);
  border-right: 1px solid rgba(255, 255, 255, 0.08);
  padding-right: 16px;
}
[data-theme="light"] .nstat {
  border-right-color: rgba(0, 0, 0, 0.08);
  color: var(--text2);
}
.nstat:last-child {
  border-right: none;
  padding-right: 0;
}

.nstat-num {
  font-family: var(--font-m);
  font-weight: 700;
  color: var(--accent);
  font-size: 13px;
  transition: color var(--tr);
}
[data-theme="light"] .nstat-num {
  color: var(--accent);
}

.nstat-label {
  font-size: 10.5px;
  color: var(--text3);
  text-transform: uppercase;
  font-weight: 600;
  letter-spacing: 0.5px;
}

@media(max-width:1200px){
  .nav-stats {
    display: none !important;
  }
}

/* Clickable card subcategory links */
.fw-card-subcat {
  color: var(--accent);
  cursor: pointer;
  font-weight: 600;
  transition: color var(--tr);
}
.fw-card-subcat:hover {
  text-decoration: underline;
  color: var(--accent2);
}

/* ── CENTRALIZED MODEL SEARCH BAR ─────────────────────────── */
.model-search-container {
  max-width: 1360px;
  margin: 24px auto 0;
  padding: 0 20px;
}
.model-search-form {
  position: relative;
  display: flex;
  align-items: center;
  background: var(--surface);
  border: 2px solid var(--border);
  border-radius: 14px;
  overflow: hidden;
  transition: all var(--tr);
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
}
.model-search-form:focus-within {
  border-color: var(--accent);
  box-shadow: 0 0 0 4px rgba(0, 200, 248, 0.12), 0 4px 20px rgba(0, 0, 0, 0.25);
}
.model-search-form .search-icon {
  padding: 0 16px;
  font-size: 18px;
  color: var(--text3);
  pointer-events: none;
}
.model-search-form input {
  flex: 1;
  background: none;
  border: none;
  outline: none;
  color: var(--text);
  font-size: 15px;
  padding: 14px 0;
}
.model-search-form input::placeholder {
  color: var(--text3);
}
.model-search-form .search-clear-btn {
  padding: 8px 16px;
  color: var(--text3);
  font-size: 14px;
  cursor: pointer;
  transition: color var(--tr);
}
.model-search-form .search-clear-btn:hover {
  color: var(--text);
}

/* ============================================================
   Interactive Finder Widget, Device Cards Grid, Details Drawer
   ============================================================ */

/* ── INTERACTIVE FINDER WIDGET ────────────────────────────── */
.interactive-finder-widget {
  background: linear-gradient(135deg, var(--surface), rgba(0, 200, 248, 0.05));
  border: 1px solid var(--border);
  border-radius: 16px;
  padding: 24px;
  max-width: 680px;
  margin: 24px auto 0;
  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.25);
  text-align: left;
}
.finder-tabs-row {
  display: flex;
  gap: 8px;
  margin-bottom: 16px;
}
.finder-tab-btn {
  background: var(--surface2);
  border: 1px solid var(--border);
  color: var(--text2);
  padding: 8px 16px;
  border-radius: 8px;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  transition: all var(--tr);
}
.finder-tab-btn:hover {
  background: var(--surface3);
  color: var(--text);
}
.finder-tab-btn.active {
  background: var(--accent);
  color: #000;
  border-color: var(--accent);
  box-shadow: var(--glow);
}
.finder-input-row {
  display: flex;
  gap: 12px;
}
.finder-input-row input {
  flex: 1;
  background: var(--bg);
  border: 2px solid var(--border);
  border-radius: 10px;
  padding: 12px 16px;
  color: var(--text);
  font-family: var(--font-mono);
  font-size: 15px;
  outline: none;
  transition: all var(--tr);
}
.finder-input-row input:focus {
  border-color: var(--accent);
  box-shadow: 0 0 0 3px rgba(0, 200, 248, 0.15);
}
.finder-input-row button {
  background: var(--accent);
  color: #000;
  border: none;
  border-radius: 10px;
  padding: 0 24px;
  font-weight: 700;
  font-size: 14px;
  cursor: pointer;
  transition: all var(--tr);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  white-space: nowrap;
}
.finder-input-row button:hover {
  opacity: 0.9;
  box-shadow: var(--glow);
}
.finder-hint {
  font-size: 11px;
  color: var(--text3);
  margin-top: 10px;
  line-height: 1.5;
}
.finder-hint code {
  font-family: var(--font-mono);
  background: var(--surface2);
  padding: 1px 4px;
  border-radius: 4px;
  color: var(--accent);
}
.finder-error-msg {
  background: rgba(255, 61, 90, 0.1);
  border: 1px solid rgba(255, 61, 90, 0.2);
  color: var(--red);
  padding: 10px 14px;
  border-radius: 8px;
  font-size: 13px;
  margin-top: 14px;
}

/* ── DEVICE CARDS GRID ────────────────────────────────────── */
.device-card {
  background: var(--surface);
  border: 1.5px solid var(--border);
  border-radius: var(--r);
  overflow: hidden;
  transition: all var(--tr);
  cursor: pointer;
  display: flex;
  flex-direction: column;
}
.device-card:hover {
  transform: translateY(-2px);
  border-color: var(--accent);
  box-shadow: var(--card-glow);
}
.device-card-body {
  padding: 20px;
  flex: 1;
}
.device-card-top {
  display: flex;
  gap: 12px;
  align-items: center;
  margin-bottom: 16px;
}
.device-card-icon-wrap {
  width: 44px;
  height: 44px;
  border-radius: 10px;
  background: var(--surface2);
  border: 1px solid var(--border2);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 20px;
}
.device-card:hover .device-card-icon-wrap {
  background: rgba(0, 200, 248, 0.1);
  border-color: var(--accent);
  color: var(--accent);
}
.device-card-title-wrap {
  flex: 1;
  min-width: 0;
}
.device-card-name {
  font-size: 16px;
  font-weight: 700;
  color: var(--text);
  margin-bottom: 4px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.device-card-sub {
  display: flex;
  align-items: center;
  gap: 8px;
}
.device-card-model {
  font-family: var(--font-mono);
  font-size: 11px;
  color: var(--accent);
  background: rgba(0, 200, 248, 0.08);
  padding: 1px 6px;
  border-radius: 4px;
  font-weight: 600;
}
.device-card-proj {
  font-size: 11px;
  color: var(--text3);
}
.device-card-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  font-size: 12px;
  color: var(--text2);
  margin-bottom: 16px;
  border-top: 1px dashed var(--border);
  padding-top: 12px;
}
.device-card-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  max-height: 24px;
  overflow: hidden;
}
.region-tag {
  font-size: 10px;
  font-weight: 600;
  color: var(--text3);
  background: var(--surface2);
  padding: 2px 6px;
  border-radius: 4px;
  text-transform: uppercase;
}
.device-card-foot {
  padding: 12px 20px;
  background: rgba(0, 0, 0, 0.15);
  border-top: 1px solid var(--border);
  display: flex;
  gap: 8px;
}
.device-card-foot .btn {
  flex: 1;
  justify-content: center;
}

/* ── SLIDE-OUT DRAWER (SHEET) ────────────────────────────── */
.drawer-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.5);
  backdrop-filter: blur(4px);
  z-index: 1000;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s ease;
}
.drawer-overlay.active {
  opacity: 1;
  pointer-events: auto;
}
.detail-drawer {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  width: 100%;
  max-width: 580px;
  background: var(--bg2);
  border-left: 1px solid var(--border);
  z-index: 1001;
  box-shadow: -10px 0 40px rgba(0, 0, 0, 0.5);
  transform: translateX(100%);
  transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  display: flex;
  flex-direction: column;
}
.detail-drawer.active {
  transform: translateX(0);
}
.drawer-header {
  padding: 20px 24px;
  border-bottom: 1px solid var(--border);
  display: flex;
  align-items: center;
  gap: 16px;
  background: var(--surface);
}
.drawer-close {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: var(--surface2);
  border: 1px solid var(--border);
  color: var(--text2);
  font-size: 16px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all var(--tr);
}
.drawer-close:hover {
  background: var(--surface3);
  color: var(--text);
}
.drawer-header-info {
  flex: 1;
  min-width: 0;
}
.drawer-header-info h2 {
  font-size: 18px;
  font-weight: 700;
  color: var(--text);
  margin-bottom: 4px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.drawer-sub-meta {
  display: flex;
  align-items: center;
  gap: 10px;
}
.drawer-sub-meta .model-code {
  font-family: var(--font-mono);
  font-size: 11px;
  color: var(--accent);
  background: rgba(0, 200, 248, 0.08);
  padding: 1px 6px;
  border-radius: 4px;
}
.drawer-sub-meta span {
  font-size: 11px;
  color: var(--text3);
}
.drawer-stats-row {
  display: flex;
  padding: 16px 24px;
  background: var(--bg3);
  border-bottom: 1px solid var(--border);
  text-align: center;
}
.dstat-box {
  flex: 1;
}
.dstat-val {
  display: block;
  font-family: var(--font-mono);
  font-size: 18px;
  font-weight: 700;
  color: var(--accent);
  margin-bottom: 2px;
}
.dstat-lbl {
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 1px;
  color: var(--text3);
}
.drawer-tabs {
  display: flex;
  padding: 12px 24px;
  background: var(--surface);
  border-bottom: 1px solid var(--border);
  gap: 8px;
  overflow-x: auto;
}
.drawer-tab {
  background: var(--surface2);
  border: 1px solid var(--border);
  color: var(--text2);
  padding: 6px 14px;
  border-radius: 8px;
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
  transition: all var(--tr);
  white-space: nowrap;
}
.drawer-tab:hover {
  background: var(--surface3);
  color: var(--text);
}
.drawer-tab.active {
  background: var(--accent);
  color: #000;
  border-color: var(--accent);
  box-shadow: var(--glow);
}
.drawer-content {
  flex: 1;
  overflow-y: auto;
  padding: 24px;
  display: flex;
  flex-direction: column;
  gap: 16px;
}

/* ── FW VERSION CARD IN DRAWER ───────────────────────────── */
.fw-version-card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 12px;
  overflow: hidden;
  transition: all var(--tr);
  flex-shrink: 0;
}
.fw-version-card:hover {
  border-color: var(--border2);
}

.load-more-btn-wrap {
  padding: 8px 0;
  display: flex;
  justify-content: center;
  width: 100%;
  flex-shrink: 0;
}
.load-more-btn-wrap .btn {
  width: 100%;
  padding: 12px;
  font-weight: 600;
  border: 1.5px dashed var(--border);
  background: var(--surface);
  color: var(--text2);
  transition: all var(--tr);
  cursor: pointer;
}
.load-more-btn-wrap .btn:hover {
  background: var(--surface2);
  border-color: var(--border2);
  color: var(--text);
}
.fw-version-card.latest {
  border-color: rgba(0, 232, 122, 0.25);
  background: linear-gradient(135deg, var(--surface), rgba(0, 232, 122, 0.02));
}
.fw-version-top {
  padding: 16px;
  display: flex;
  gap: 12px;
  align-items: flex-start;
}
.fw-version-info {
  flex: 1;
  min-width: 0;
}
.fw-version-badges {
  display: flex;
  gap: 6px;
  margin-bottom: 8px;
}
.version-badge {
  font-size: 9px;
  font-weight: 700;
  padding: 1px 6px;
  border-radius: 4px;
  text-transform: uppercase;
}
.badge-green { background: rgba(0, 232, 122, 0.1); color: var(--accent3); border: 1px solid rgba(0, 232, 122, 0.2); }
.badge-gold { background: rgba(255, 193, 7, 0.1); color: var(--yellow); border: 1px solid rgba(255, 193, 7, 0.2); }
.badge-purple { background: rgba(167, 139, 250, 0.1); color: var(--purple); border: 1px solid rgba(167, 139, 250, 0.2); }
.badge-blue { background: rgba(0, 200, 248, 0.1); color: var(--accent); border: 1px solid rgba(0, 200, 248, 0.2); }

.fw-version-version {
  font-family: var(--font-mono);
  font-size: 12px;
  color: var(--text);
  word-break: break-all;
  line-height: 1.5;
}
.fw-version-date {
  font-size: 11px;
  color: var(--text3);
  margin-top: 4px;
}
.fw-version-regions {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  margin-top: 8px;
}
.region-chip {
  font-size: 9px;
  font-weight: 600;
  background: var(--surface2);
  color: var(--text2);
  padding: 1px 4px;
  border-radius: 3px;
}
.fw-version-actions {
  display: flex;
  flex-direction: column;
  gap: 8px;
  flex-shrink: 0;
}
.fw-version-actions .btn {
  justify-content: center;
  font-size: 12px;
  padding: 6px 12px;
}
.fw-version-detail-toggle {
  width: 100%;
  background: rgba(0, 0, 0, 0.1);
  border: none;
  border-top: 1px solid var(--border);
  padding: 8px;
  color: var(--text3);
  font-size: 11px;
  font-weight: 600;
  cursor: pointer;
  transition: all var(--tr);
}
.fw-version-detail-toggle:hover {
  color: var(--text2);
  background: rgba(0, 0, 0, 0.2);
}
.fw-version-details {
  border-top: 1px solid var(--border);
  background: rgba(0, 0, 0, 0.2);
  padding: 16px;
}
.fw-details-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
}
.fw-details-item {
  background: var(--surface2);
  border: 1px solid var(--border);
  border-radius: 6px;
  padding: 8px 12px;
}
.fw-details-lbl {
  font-size: 9px;
  text-transform: uppercase;
  color: var(--text3);
  margin-bottom: 2px;
}
.fw-details-val {
  font-family: var(--font-mono);
  font-size: 11px;
  color: var(--text2);
  word-break: break-all;
}

/* ── INTERACTIVE FINDER SPEC CARD ─────────────────────────── */
.lookup-spec-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 10px;
  margin: 16px 0;
}
.lookup-spec-item {
  background: var(--surface2);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 10px;
  text-align: center;
}
.lookup-spec-lbl {
  font-size: 9px;
  color: var(--text3);
  text-transform: uppercase;
  margin-bottom: 2px;
}
.lookup-spec-val {
  font-family: var(--font-mono);
  font-size: 12px;
  color: var(--text);
  font-weight: 600;
}

/* ── TOAST NOTIFICATIONS ──────────────────────────────────── */
.toast-notification {
  position: fixed;
  bottom: 24px;
  left: 50%;
  transform: translateX(-50%) translateY(100px);
  background: var(--surface3);
  color: var(--text);
  border: 1.5px solid var(--border2);
  border-radius: 12px;
  padding: 12px 24px;
  font-size: 13.5px;
  font-weight: 600;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.4);
  z-index: 10000;
  transition: transform 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
  pointer-events: none;
}
.toast-notification.active {
  transform: translateX(-50%) translateY(0);
}

/* ── MOBILE ADAPTATIONS ──────────────────────────────────── */
@media(max-width: 600px) {
  .detail-drawer {
    width: 100%;
    max-height: 85vh;
    top: auto;
    bottom: 0;
    border-left: none;
    border-top: 1px solid var(--border);
    transform: translateY(100%);
    border-top-left-radius: 20px;
    border-top-right-radius: 20px;
  }
  .detail-drawer.active {
    transform: translateY(0);
  }
  .drawer-header {
    padding: 14px 18px;
    gap: 10px;
  }
  .drawer-close {
    width: 32px;
    height: 32px;
    font-size: 14px;
    flex-shrink: 0;
  }
  .drawer-header-info h2 {
    font-size: 15px;
    margin-bottom: 2px;
  }
  .drawer-header-info .drawer-sub-meta {
    font-size: 11px;
    gap: 6px;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
  }
  .drawer-header-info .model-code {
    font-size: 10px;
    padding: 1px 4px;
  }
  #drawerDownloadLatestBtn {
    padding: 6px 12px;
    font-size: 11px;
    white-space: nowrap;
    flex-shrink: 0;
  }
  .drawer-stats-row {
    padding: 10px 18px;
    gap: 8px;
  }
  .dstat-box {
    padding: 6px !important;
  }
  .dstat-val {
    font-size: 15px !important;
  }
  .dstat-lbl {
    font-size: 9px !important;
  }
  .drawer-tabs {
    padding: 10px 18px;
    gap: 6px;
    scrollbar-width: none !important;
    -ms-overflow-style: none !important;
    overflow-x: auto;
    align-items: center;
    border-bottom: 1px solid var(--border);
  }
  .drawer-tabs::-webkit-scrollbar {
    display: none !important;
  }
  .drawer-tab {
    padding: 6px 12px;
    font-size: 11px;
    border-radius: 6px;
  }
  .drawer-content {
    padding: 16px;
    gap: 12px;
  }
  .fw-version-top {
    flex-direction: column;
  }
  .fw-version-actions {
    width: 100%;
    margin-top: 12px;
  }
  .fw-details-grid {
    grid-template-columns: 1fr;
  }
  .lookup-spec-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .finder-input-row {
    flex-direction: column;
  }
  .finder-input-row button {
    height: 50px;
  }
}


/* ============================================================
   Advanced Spotlight Popup Search Modal
   ============================================================ */
.model-search-trigger {
  position: relative;
  display: flex;
  align-items: center;
  background: var(--surface);
  border: 2px solid var(--border);
  border-radius: 14px;
  overflow: hidden;
  transition: all var(--tr);
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
  cursor: pointer;
  padding: 14px 20px;
}
.model-search-trigger:hover {
  border-color: var(--accent);
  box-shadow: 0 0 0 4px rgba(0, 200, 248, 0.12), 0 4px 20px rgba(0, 0, 0, 0.25);
}
.model-search-trigger .search-icon {
  margin-right: 16px;
  font-size: 18px;
  color: var(--text3);
}
.model-search-trigger .search-placeholder {
  flex: 1;
  color: var(--text3);
  font-size: 14.5px;
  text-align: left;
}
.model-search-trigger .search-shortcut {
  font-family: var(--font-mono);
  font-size: 11px;
  color: var(--text3);
  background: var(--surface2);
  padding: 2px 6px;
  border-radius: 4px;
  border: 1px solid var(--border);
}

.search-modal-overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  background: rgba(10, 15, 30, 0.7);
  backdrop-filter: blur(8px);
  z-index: 2000;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  padding-top: 10vh;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.25s cubic-bezier(0.4, 0, 0.2, 1);
}
.search-modal-overlay.active {
  opacity: 1;
  pointer-events: auto;
}
.search-modal-container {
  width: 90%;
  max-width: 680px;
  background: var(--bg2);
  border: 1px solid var(--border);
  border-radius: 16px;
  box-shadow: 0 20px 50px rgba(0, 0, 0, 0.5), 0 0 0 1px rgba(255, 255, 255, 0.05);
  overflow: hidden;
  transform: scale(0.95) translateY(-20px);
  transition: transform 0.25s cubic-bezier(0.4, 0, 0.2, 1);
}
.search-modal-overlay.active .search-modal-container {
  transform: scale(1) translateY(0);
}
.search-modal-header {
  display: flex;
  align-items: center;
  padding: 16px 20px;
  border-bottom: 1px solid var(--border);
  background: var(--surface);
  gap: 12px;
}
.modal-search-icon {
  font-size: 20px;
  color: var(--text3);
}
.search-modal-header input {
  flex: 1;
  background: none;
  border: none;
  outline: none;
  font-size: 16px;
  color: var(--text);
  padding: 4px 0;
}
.search-modal-header input::placeholder {
  color: var(--text3);
}
.modal-search-clear {
  background: none;
  border: none;
  color: var(--text3);
  font-size: 16px;
  cursor: pointer;
  padding: 4px 8px;
  transition: color var(--tr);
}
.modal-search-clear:hover {
  color: var(--text);
}
.modal-search-close {
  background: var(--surface2);
  border: 1px solid var(--border);
  color: var(--text3);
  font-family: var(--font-mono);
  font-size: 10px;
  padding: 2px 6px;
  border-radius: 4px;
  cursor: pointer;
  transition: all var(--tr);
}
.modal-search-close:hover {
  border-color: var(--border2);
  color: var(--text);
}
.search-modal-body {
  max-height: 60vh;
  overflow-y: auto;
  padding: 20px;
}
.search-modal-placeholder {
  text-align: center;
  padding: 40px 20px;
}
.placeholder-icon {
  font-size: 48px;
  margin-bottom: 16px;
  opacity: 0.6;
}
.search-modal-placeholder p {
  color: var(--text3);
  font-size: 14px;
  margin-bottom: 20px;
  line-height: 1.6;
}
.popular-queries {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  flex-wrap: wrap;
}
.popular-queries span {
  font-size: 12px;
  color: var(--text3);
  font-weight: 600;
}
.popular-queries button {
  background: var(--surface2);
  border: 1px solid var(--border);
  color: var(--text2);
  font-size: 11px;
  font-family: var(--font-mono);
  padding: 4px 10px;
  border-radius: 6px;
  cursor: pointer;
  transition: all var(--tr);
}
.popular-queries button:hover {
  border-color: var(--accent);
  color: var(--accent);
  background: rgba(0, 200, 248, 0.05);
}

.modal-result-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 16px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 10px;
  margin-bottom: 10px;
  cursor: pointer;
  transition: all var(--tr);
  text-align: left;
}
.modal-result-card:hover {
  border-color: var(--accent);
  background: var(--surface2);
  transform: translateY(-1px);
}
.modal-result-left {
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
  flex: 1;
}
.modal-result-icon {
  font-size: 20px;
  width: 36px;
  height: 36px;
  border-radius: 8px;
  background: var(--bg3);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.modal-result-info {
  min-width: 0;
  flex: 1;
}
.modal-result-title {
  font-size: 14px;
  font-weight: 700;
  color: var(--text);
  margin-bottom: 4px;
}
.modal-result-meta {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 11px;
  color: var(--text3);
  flex-wrap: wrap;
}
.modal-result-meta code {
  font-family: var(--font-mono);
  color: var(--accent);
  background: rgba(0, 200, 248, 0.05);
  padding: 1px 4px;
  border-radius: 3px;
  font-size: 10px;
}
.modal-result-right {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
}

@media (max-width: 600px) {
  .search-modal-overlay {
    padding-top: 5vh;
  }
  .search-modal-container {
    width: 95%;
  }
  .model-search-trigger .search-placeholder {
    font-size: 13px;
  }
  .model-search-trigger .search-shortcut {
    display: none;
  }
}

/* ============================================================
   Category Brand SVG Logos
   ============================================================ */
.brand-logo {
  width: 100%;
  height: 100%;
  max-width: 100%;
  max-height: 100%;
  display: block;
}
.cat-logo-icon {
  width: 18px;
  height: 18px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-right: 8px;
  vertical-align: middle;
}
.brand-chip-icon {
  width: 16px;
  height: 16px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-right: 6px;
  vertical-align: middle;
}
.breadcrumb-logo {
  width: 14px;
  height: 14px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-right: 4px;
  vertical-align: middle;
}
.footer-logo-icon {
  width: 16px;
  height: 16px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-right: 6px;
  vertical-align: middle;
}
.grid-nav-icon-wrap .brand-logo {
  padding: 6px;
}
.cat-logo-icon .brand-logo,
.brand-chip-icon .brand-logo,
.breadcrumb-logo .brand-logo,
.footer-logo-icon .brand-logo {
  padding: 0;
}
.search-modal-placeholder .popular-queries button .brand-logo {
  display: inline-block;
  width: 12px;
  height: 12px;
  margin-right: 4px;
}
.modal-result-icon .brand-logo {
  padding: 4px;
}

/* Brands Page Styles */
.brands-page-wrap {
  max-width: 1360px;
  margin: 0 auto;
  padding: 40px 20px;
}
.brands-page-title {
  font-family: var(--font-h);
  font-size: 28px;
  font-weight: 700;
  margin-bottom: 8px;
  color: var(--text);
}
.brands-page-subtitle {
  font-family: var(--font-m);
  font-size: 14.5px;
  color: var(--text3);
  margin-bottom: 30px;
}
.brands-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 20px;
}
.brand-show-card {
  background: var(--surface);
  border: 1.5px solid var(--border);
  border-radius: var(--r);
  padding: 24px;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  text-decoration: none;
  color: inherit;
  transition: all var(--tr);
  transform-style: preserve-3d;
  box-shadow: 0 4px 6px -1px rgba(0,0,0,0.1);
}
.brand-show-card:hover {
  border-color: var(--accent);
  transform: translateY(-5px);
  box-shadow: var(--card-glow);
  opacity: 1;
}
.brand-card-logo-wrap {
  width: 64px;
  height: 64px;
  background: var(--surface2);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 16px;
  box-shadow: var(--glow);
  transition: transform var(--tr);
}
.brand-show-card:hover .brand-card-logo-wrap {
  transform: scale(1.1) rotate(5deg);
}
.brand-card-logo-wrap .brand-logo {
  width: 36px;
  height: 36px;
}
.brand-card-name {
  font-family: var(--font-h);
  font-size: 18px;
  font-weight: 600;
  color: var(--text);
  margin-bottom: 6px;
}
.brand-card-count {
  font-family: var(--font-m);
  font-size: 13px;
  color: var(--text3);
}

/* ── HORIZONTAL FILTER BAR ───────────────────────────────── */
.filter-bar-container {
  max-width: 1360px;
  margin: 20px auto 0 auto;
  padding: 0 20px;
}

.filter-bar-top {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 8px;
  font-size: 13px;
  color: var(--text2);
}

.filter-bar-stats {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  align-items: center;
}

.stats-highlight {
  color: var(--text);
  font-weight: 600;
}

.stats-updated {
  font-size: 11px;
  color: var(--text3);
  margin-left: 8px;
}

.filter-bar-row {
  background: var(--surface);
  border: 1.5px solid var(--border);
  border-radius: var(--r);
  padding: 12px 20px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 16px;
  box-shadow: var(--card-glow);
}

.filter-bar-form {
  display: flex;
  align-items: flex-end;
  flex-wrap: wrap;
  gap: 16px;
  flex: 1;
}

.filter-group {
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-width: 150px;
}

.filter-label {
  font-family: var(--font-h);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 1px;
  text-transform: uppercase;
  color: var(--text3);
}

.filter-select {
  background: var(--surface2);
  border: 1.5px solid var(--border);
  border-radius: var(--r-sm);
  color: var(--text);
  padding: 8px 12px;
  font-size: 13px;
  outline: none;
  cursor: pointer;
  transition: all var(--tr);
  width: 100%;
}

.filter-select:focus, .filter-select:hover {
  border-color: var(--accent);
}

.filter-group-toggle {
  display: flex;
  align-items: center;
  height: 38px;
  margin-top: auto;
}

.filter-toggle-btn {
  background: var(--surface2);
  border: 1.5px solid var(--border);
  border-radius: var(--r-sm);
  color: var(--text2);
  padding: 8px 16px;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  transition: all var(--tr);
  display: inline-flex;
  align-items: center;
  gap: 6px;
  white-space: nowrap;
}

.filter-toggle-btn:hover {
  border-color: var(--accent);
  color: var(--text);
}

.filter-toggle-btn.active {
  background: rgba(0, 200, 248, 0.12);
  border-color: var(--accent);
  color: var(--accent);
  box-shadow: 0 0 12px rgba(0, 200, 248, 0.15);
}

.filter-clear-wrap {
  display: flex;
  align-items: center;
  height: 38px;
  margin-top: auto;
}

.filter-bar-count {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  justify-content: center;
  border-left: 1px solid var(--border);
  padding-left: 20px;
}

.count-number {
  font-family: var(--font-m);
  font-size: 20px;
  font-weight: 700;
  color: var(--text);
}

.count-label {
  font-size: 11px;
  color: var(--text3);
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

/* layout modifier for no sidebar */
.main-layout.no-sidebar {
  grid-template-columns: 1fr;
}

/* responsive */
@media (max-width: 992px) {
  .filter-bar-row {
    flex-direction: column;
    align-items: stretch;
    padding: 16px;
  }
  .filter-bar-count {
    border-left: none;
    border-top: 1px solid var(--border);
    padding-left: 0;
    padding-top: 12px;
    align-items: center;
  }
  .filter-bar-form {
    flex-direction: column;
    align-items: stretch;
    gap: 12px;
  }
  .filter-group {
    min-width: 100%;
  }
  .filter-group-toggle {
    width: 100%;
    margin-top: 4px;
  }
  .filter-toggle-btn {
    width: 100%;
    justify-content: center;
  }
  .filter-clear-wrap {
    width: 100%;
    margin-top: 4px;
  }
  .filter-clear-wrap .btn {
    width: 100%;
    justify-content: center;
  }
}

/* ── FLASHING SERVICE BANNER ──────────────────────────────── */
.flashing-service-banner {
  max-width: 1360px;
  margin: 20px auto 0 auto;
  padding: 0 20px;
}

.flashing-banner-inner {
  background: linear-gradient(135deg, rgba(245, 158, 11, 0.1), rgba(139, 92, 246, 0.05));
  border: 1.5px solid rgba(245, 158, 11, 0.2);
  border-radius: var(--r);
  padding: 12px 24px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  box-shadow: var(--card-glow);
}

.flashing-badge {
  background: var(--accent);
  color: #1a1206;
  font-family: var(--font-mono);
  font-size: 11px;
  font-weight: 700;
  padding: 3px 10px;
  border-radius: 99px;
  letter-spacing: 0.5px;
  animation: flashPulse 2s infinite;
}

@keyframes flashPulse {
  0% { box-shadow: 0 0 0 0 rgba(245, 158, 11, 0.5); }
  70% { box-shadow: 0 0 0 8px rgba(245, 158, 11, 0); }
  100% { box-shadow: 0 0 0 0 rgba(245, 158, 11, 0); }
}

.flashing-text {
  font-size: 13.5px;
  color: var(--text2);
  margin: 0;
  flex: 1;
}

.flashing-text strong {
  color: var(--text);
}

.flashing-text a {
  color: var(--accent);
  text-decoration: underline;
}

.flashing-action-btn {
  padding: 6px 14px;
  font-size: 12.5px;
  border-radius: var(--r-sm);
  background: transparent;
  color: var(--accent);
  border-color: rgba(245, 158, 11, 0.4);
}

.flashing-action-btn:hover {
  background: var(--accent);
  color: #1a1206;
  border-color: var(--accent);
  transform: translateY(-1px);
}

@media (max-width: 768px) {
  .flashing-banner-inner {
    flex-direction: column;
    text-align: center;
    padding: 16px;
    gap: 12px;
  }
  .flashing-action-btn {
    width: 100%;
    justify-content: center;
  }
}

/* ── SOCIAL ICONS ─────────────────────────────────────────── */
.social-icon-link {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: var(--surface2);
  border: 1px solid var(--border);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--text2);
  transition: all var(--tr);
  font-size: 14px;
}

.social-icon-link:hover {
  border-color: var(--accent);
  color: #1a1206;
  background: var(--accent);
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(245, 158, 11, 0.3);
}

/* ── MOBILE FILTERS TOGGLE TRIGGER ───────────────────────── */
.filter-toggle-trigger-btn {
  display: none;
  background: var(--surface2);
  border: 1px solid var(--border);
  border-radius: var(--r-sm);
  color: var(--text2);
  padding: 6px 12px;
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
  align-items: center;
  gap: 6px;
  transition: all var(--tr);
}

.filter-toggle-trigger-btn:hover, .filter-toggle-trigger-btn.active {
  border-color: var(--accent);
  color: var(--accent);
  background: rgba(245, 158, 11, 0.08);
}

@media (max-width: 992px) {
  /* Show toggle button on mobile/tablets */
  .filter-toggle-trigger-btn {
    display: inline-flex;
  }
  
  /* Hide the filter row by default on mobile/tablets */
  .filter-bar-row {
    display: none !important;
  }
  
  /* Show only when class is toggled */
  .filter-bar-row.show {
    display: flex !important;
  }
}
/* ── MOBILE NAVBAR OVERRIDES ──────────────────────────────── */
.logo-text {
  white-space: nowrap;
}
@media (max-width: 768px) {
  :root {
    --nav-h: 70px;
  }
  .site-logo-img {
    max-width: 190px;
  }
  .site-nav .btn-primary {
    display: none !important;
  }
}
@media (max-width: 576px) {
  .site-nav {
    padding: 0 12px;
  }
  .nav-inner {
    gap: 8px;
  }
  .nav-right {
    gap: 8px;
  }
}
