/* DBN VAULT storefront — switchable themes.
   Presentation is driven entirely by CSS variables. The active theme is the
   data-theme attribute on <html>, set pre-paint by the inline script in
   base.html (localStorage 'dbn_theme', cookie fallback) and changed live by
   static/js/theme.js via the header switcher.
   Themes: vault-gold (default) · cloud9-sky · midnight-concert */
:root, [data-theme="vault-gold"]{
  --bg:#0b0b0e; --panel:#15151b; --line:#26262f;
  --accent:#d4af37; --accent2:#f0d877; --on-accent:#000;
  --txt:#f2efe6; --dim:#a49f8f;
  --header-bg:#000;
  --banner-a:#1a1405; --banner-b:#3a2c07; --banner-c:#141210; --banner-h:#f0d877;
  --noimg-a:#241c05; --noimg-b:#4a3a08; --noimg-txt:#f0d877;
  --ctl-bg:#22222b; --img-bg:#fff; --card-shadow:none;
}
[data-theme="cloud9-sky"]{
  --bg:#eef6fd; --panel:#ffffff; --line:#d3e5f3;
  --accent:#0284c7; --accent2:#0ea5e9; --on-accent:#fff;
  --txt:#10334d; --dim:#5d7f94;
  --header-bg:#ffffff;
  --banner-a:#e0f2fe; --banner-b:#bae6fd; --banner-c:#f0f9ff; --banner-h:#0369a1;
  --noimg-a:#e0f2fe; --noimg-b:#7dd3fc; --noimg-txt:#075985;
  --ctl-bg:#e6f2fa; --img-bg:#fff; --card-shadow:0 1px 5px rgba(3,105,161,.12);
}
[data-theme="midnight-concert"]{
  --bg:#07040f; --panel:#130a26; --line:#2b1a4d;
  --accent:#e879f9; --accent2:#22d3ee; --on-accent:#2b0638;
  --txt:#f4f0ff; --dim:#a493d6;
  --header-bg:#040209;
  --banner-a:#1c0533; --banner-b:#3b0764; --banner-c:#0a0616; --banner-h:#22d3ee;
  --noimg-a:#2e1065; --noimg-b:#701a75; --noimg-txt:#22d3ee;
  --ctl-bg:#1e113d; --img-bg:#150b2e; --card-shadow:0 2px 14px rgba(0,0,0,.5);
}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--txt);font-family:system-ui,-apple-system,'Segoe UI',Roboto,sans-serif}
a{color:var(--accent);text-decoration:none}
.site-header{display:flex;align-items:center;gap:14px;padding:12px 16px;background:var(--header-bg);border-bottom:2px solid var(--accent);position:sticky;top:0;z-index:20;flex-wrap:wrap}
.logo{font-size:22px;font-weight:800;letter-spacing:2px;color:var(--txt)}.logo span{color:var(--accent)}
.nav-toggle{display:none;background:none;border:1px solid var(--accent);color:var(--accent);font-size:18px;border-radius:6px;padding:4px 10px}
.main-nav{display:flex;gap:16px;flex-wrap:wrap;align-items:center}
.main-nav a{color:var(--txt);font-size:13px;font-weight:600;letter-spacing:1px}
.main-nav a:hover{color:var(--accent2)}
.cart-count{background:var(--accent);color:var(--on-accent);border-radius:10px;padding:0 7px;font-size:12px}
.theme-switch{display:flex;align-items:center;gap:6px;margin-left:auto;font-size:11px;font-weight:700;letter-spacing:1px;color:var(--dim)}
.theme-switch select{background:var(--panel);color:var(--txt);border:1px solid var(--accent);border-radius:6px;padding:5px 8px;font-size:12px;font-weight:600;cursor:pointer}
main{max-width:1200px;margin:0 auto;padding:18px 14px 40px}
.heist-banner{background:linear-gradient(135deg,var(--banner-a),var(--banner-b) 55%,var(--banner-c));border:1px solid var(--accent);border-radius:14px;text-align:center;padding:38px 16px;margin-bottom:26px}
.heist-banner h1{font-size:clamp(24px,6vw,44px);margin:0 0 8px;letter-spacing:1px;color:var(--banner-h)}
.btn-gold{display:inline-block;background:var(--accent);color:var(--on-accent);font-weight:800;padding:12px 26px;border-radius:8px;border:0;cursor:pointer;font-size:16px;letter-spacing:.5px}
.btn-gold:hover{background:var(--accent2)}
.shelf h1,.shelf h2{letter-spacing:1px}.blurb,.fulfil,.pending-note{color:var(--dim)}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:14px}
.card{background:var(--panel);border:1px solid var(--line);border-radius:10px;overflow:hidden;box-shadow:var(--card-shadow);transition:border-color .15s ease,transform .15s ease}
.card:hover{border-color:var(--accent);transform:translateY(-2px)}
.card a{color:var(--txt);display:block}
.card img{width:100%;aspect-ratio:1;object-fit:cover;display:block;background:var(--img-bg)}
.card-noimg,.product-noimg{display:flex;align-items:center;justify-content:center;aspect-ratio:1;background:linear-gradient(135deg,var(--noimg-a),var(--noimg-b));color:var(--noimg-txt);font-weight:800;letter-spacing:2px}
.card h3{font-size:14px;margin:10px;line-height:1.3}.card .price{margin:0 10px 12px;color:var(--accent);font-weight:700}
.lane-row{display:flex;gap:10px;flex-wrap:wrap}.lane-row a{background:var(--panel);border:1px solid var(--accent);padding:10px 18px;border-radius:8px;color:var(--txt);font-weight:700}
.product{display:grid;grid-template-columns:1fr 1fr;gap:26px}
.product-media img{width:100%;border-radius:12px;background:var(--img-bg)}
.product-info label{display:block;margin:14px 0 5px;color:var(--dim);font-size:13px}
.product-info select,.product-info input{width:100%;padding:11px;background:var(--panel);color:var(--txt);border:1px solid var(--line);border-radius:8px;font-size:15px}
.product-info .btn-gold{width:100%;margin-top:18px}
.price.big{font-size:26px;color:var(--accent);font-weight:800}
.desc-pending{margin-top:22px;border-top:1px solid var(--line);padding-top:12px}
.cart-row{display:grid;grid-template-columns:2fr .7fr auto .7fr auto;gap:10px;align-items:center;background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:10px 12px;margin-bottom:8px;font-size:14px}
.cart-name small{display:block;color:var(--dim)}
.qty-ctl button,.rm{background:var(--ctl-bg);color:var(--txt);border:1px solid var(--line);border-radius:6px;padding:3px 9px;cursor:pointer;margin:0 4px}
.cart-total{font-size:19px;margin:18px 0}
.vault-gate{border:1px dashed var(--accent);border-radius:12px;padding:30px;text-align:center}
.policy-list li{margin-bottom:9px;line-height:1.45}
.narrow{max-width:680px}.empty{color:var(--dim)}
.site-footer{border-top:1px solid var(--line);padding:22px 16px;text-align:center;color:var(--dim)}
.foot-brand{margin:14px 0 2px;font-size:17px;font-weight:800;letter-spacing:3px;color:var(--accent)}
.foot-search input{background:var(--panel);border:1px solid var(--line);color:var(--txt);padding:10px;border-radius:8px;width:min(320px,70vw)}
.foot-search button{background:var(--accent);color:var(--on-accent);border:0;padding:10px 16px;border-radius:8px;font-weight:700;cursor:pointer}
.foot-links{display:flex;gap:16px;justify-content:center;flex-wrap:wrap;margin:16px 0}
.foot-links a{color:var(--dim);font-size:13px}
/* Per-theme flourishes */
[data-theme="cloud9-sky"] .site-header{box-shadow:0 1px 8px rgba(3,105,161,.10)}
[data-theme="midnight-concert"] .heist-banner h1{text-shadow:0 0 18px rgba(34,211,238,.55)}
[data-theme="midnight-concert"] .btn-gold{box-shadow:0 0 14px rgba(232,121,249,.45)}
[data-theme="midnight-concert"] .logo span{text-shadow:0 0 10px rgba(232,121,249,.6)}
@media(max-width:760px){
  .nav-toggle{display:block}.main-nav{display:none;width:100%;flex-direction:column;align-items:flex-start;gap:10px;padding:8px 0}
  body.nav-open .main-nav{display:flex}
  .theme-switch{margin-left:0}
  .product{grid-template-columns:1fr}
  .cart-row{grid-template-columns:1.4fr .6fr auto;font-size:13px}
}
