/* ---------- VaderVapes — Liquid Glass UI (v2) ---------- */
:root{
  --bg:#0b0c10;
  --ink:#e9edf6;
  --ink-dim:#a1a8b6;
  --brand:#cf2d5e;        /* główny róż */
  --brand-2:#ff6a94;      /* gradient */
  --ok:#35d49a;
  --glass:#11131a99;      /* półprzezr. karta */
  --glass-brd:rgba(255,255,255,.08);
  --shadow:0 10px 30px rgba(0,0,0,.5);
  --radius:14px;
  --radius-lg:22px;
}

/* blokada przewijania w poziomie */
html,body{height:100%; overflow-x:hidden}
*{box-sizing:border-box}
body{
  margin:0; color:var(--ink);
  background:
    radial-gradient(1000px 700px at 10% -10%, rgba(207,45,94,.12), transparent 45%),
    radial-gradient(1200px 800px at 100% 0%, rgba(255,106,148,.08), transparent 55%),
    #0b0c10;
  font:14px/1.65 'Inter', system-ui, -apple-system, Segoe UI, Roboto, Arial;
}

.container{max-width:1060px; margin:0 auto; padding:18px 20px}
.mt{margin-top:14px}.mb{margin-bottom:14px}
.small{color:var(--ink-dim); font-size:12px}
.link-back{display:inline-block; color:var(--ink); opacity:.85; text-decoration:none}
.link-back:hover{opacity:1; text-decoration:underline}

h1,h2,h3{font-family:'Sora','Inter',system-ui; font-weight:700; letter-spacing:.2px; margin:0 0 10px}
.page-title{font-size:28px}
.section-title{font-size:22px}

/* ---------- navbar ---------- */
.navbar{position:sticky; top:0; z-index:30}
.nav-inner{
  display:flex; align-items:center; justify-content:space-between; gap:16px;
  border:1px solid var(--glass-brd); border-radius:12px;
  background:linear-gradient(180deg, rgba(255,255,255,.06), rgba(255,255,255,.02));
  box-shadow:var(--shadow); padding:10px 14px;
  backdrop-filter:saturate(120%) blur(10px);
}
.brandline{display:flex; align-items:center; gap:10px; font-weight:700}
.logo img{width:26px;height:26px;border-radius:8px;object-fit:cover;box-shadow:0 2px 8px #0006}
.nav-links{display:flex; gap:16px; align-items:center; flex-wrap:wrap}
.nav-links a{color:var(--ink-dim); text-decoration:none; padding:8px 6px; border-radius:10px}
.nav-links a:hover{color:var(--ink)}

/* ---------- liquid glass card ---------- */
.card{
  position:relative; padding:18px; border-radius:var(--radius-lg);
  border:1px solid var(--glass-brd); background:var(--glass); box-shadow:var(--shadow);
  overflow:hidden;
}
.card:before{
  content:""; position:absolute; inset:-10% -10% auto -10%; height:55%;
  background:radial-gradient(60% 100% at 0% 0%, rgba(255,255,255,.18), transparent 60%);
  filter:blur(6px); mix-blend-mode:screen; pointer-events:none;
}

/* ---------- product ---------- */
.mini-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:18px}
.product-card{padding:20px; animation:fadeInUp .5s ease both}
.product-card h3{font-size:22px; margin-bottom:8px}
.price-line{display:flex; align-items:baseline; gap:14px; margin:12px 0}
.price{font-size:26px; font-weight:800}
.ship{color:var(--ink-dim)}
.bullets{padding-left:18px; margin:0}
.bullets li{margin:4px 0}

/* ---------- inputs & buttons ---------- */
.input, select{
  width:100%; padding:12px 12px; border-radius:12px; outline:none; color:var(--ink);
  background:rgba(255,255,255,.04); border:1px solid var(--glass-brd);
  transition:border .15s ease, box-shadow .15s ease, background .15s ease;
}
.input:focus, select:focus{border-color:rgba(255,255,255,.22); box-shadow:0 0 0 3px rgba(207,45,94,.22)}
.label{display:block; font-weight:600; margin:2px 0 6px}
.block{display:block;width:100%}

.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  padding:10px 16px; border-radius:14px; border:1px solid var(--glass-brd);
  color:var(--ink); background:rgba(255,255,255,.04); text-decoration:none; cursor:pointer;
  transition:transform .08s ease, background .2s ease, box-shadow .2s ease;
  user-select:none;
}
.btn:hover{background:rgba(255,255,255,.08)}
.btn:active{transform:translateY(1px)}
.btn-primary{
  background:linear-gradient(135deg, var(--brand), var(--brand-2)); color:#fff; border-color:transparent;
  box-shadow:0 10px 22px rgba(207,45,94,.35)
}
.btn-primary:hover{filter:saturate(110%)}
.btn-primary.xl{padding:12px 22px;font-weight:700}
.btn.sm{padding:8px 12px;border-radius:10px}

/* ---------- checkout layout ---------- */
.checkout .grid{display:grid; grid-template-columns:1fr 1fr; gap:16px}
.checkout .full{grid-column:1/-1}
.summary{grid-column:1/-1; margin-top:12px; padding-top:10px; border-top:1px solid rgba(255,255,255,.08)}
.summary .row{display:flex; align-items:center; justify-content:space-between; padding:6px 0}
.summary .total{font-weight:800; font-size:18px}

/* ---------- piękne kontrolki ilości ---------- */
.qty{display:flex; align-items:center; gap:8px}
.qbtn{
  width:36px; height:36px; border-radius:12px; border:1px solid var(--glass-brd);
  background:linear-gradient(180deg, rgba(255,255,255,.06), rgba(255,255,255,.03));
  color:var(--ink); cursor:pointer; box-shadow:0 6px 12px rgba(0,0,0,.25);
  transition:transform .06s ease, background .2s ease, box-shadow .2s ease;
}
.qbtn:hover{background:rgba(255,255,255,.1)}
.qbtn:active{transform:translateY(1px)}
.qinp{
  width:64px; text-align:center; border-radius:10px; border:1px solid var(--glass-brd);
  background:#fff; color:#111; padding:8px 10px; font-weight:700; box-shadow:0 4px 12px rgba(0,0,0,.25);
}

/* ---------- features / reviews ---------- */
.features{display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin-top:8px}
.feat{display:flex; gap:10px; align-items:flex-start; padding:12px 14px; border:1px solid var(--glass-brd); border-radius:14px; background:rgba(255,255,255,.03); animation:fadeInUp .5s ease both}
.dot{width:8px;height:8px;border-radius:50%;background:var(--brand);margin-top:7px}
.muted{color:var(--ink-dim)}

.reviews{display:grid; grid-template-columns:repeat(3,1fr); gap:14px}
.review-head{display:flex; gap:10px; align-items:center}
.avatar{width:30px;height:30px;border-radius:50%;background:linear-gradient(135deg,#333,#555);display:grid;place-items:center;font-weight:700}
.r-name{font-weight:700}
.r-stars{position:relative;width:80px;height:14px;background:linear-gradient(to right,#777 0 100%);-webkit-mask:linear-gradient(90deg,#000 0 100%)}
.r-stars .mask{display:block;height:100%;background:linear-gradient(90deg,#ffd166,#ffaf45)}
.r-text{margin:8px 0 0}

/* ---------- accordion ---------- */
.accordion{display:grid; gap:10px}
.acc-item{border:1px solid var(--glass-brd); border-radius:14px; background:rgba(255,255,255,.03); overflow:hidden}
.acc-head{width:100%; text-align:left; padding:12px 14px; background:transparent; color:var(--ink); border:0; cursor:pointer; font-weight:600}
.acc-body{max-height:0; overflow:hidden; padding:0 14px; transition:max-height .25s ease}
.acc-item.open .acc-body{max-height:220px; padding:0 14px 12px}

/* ---------- socials & footer ---------- */
.socials{display:flex; gap:12px; margin:16px 0 10px; flex-wrap:wrap}
.social{display:flex; align-items:center; gap:8px; padding:10px 14px; border-radius:12px; border:1px solid var(--glass-brd); color:var(--ink); text-decoration:none; background:rgba(255,255,255,.03)}
.social:hover{background:rgba(255,255,255,.06)}
.social svg{width:18px;height:18px;fill:currentColor}
.footer{border-top:1px dashed rgba(255,255,255,.08); margin-top:16px; padding:14px 0; color:var(--ink-dim); font-size:12px}

/* ---------- STATUSY ---------- */
.status{padding:4px 8px; border-radius:999px; font-size:12px; border:1px solid var(--glass-brd); background:rgba(255,255,255,.03)}
.status-paid{background:rgba(53,212,154,.08); border-color:rgba(53,212,154,.25)}
.status-shipped{background:rgba(99,149,255,.08); border-color:rgba(99,149,255,.25)}

/* ---------- ADMIN ---------- */
.header{display:flex; align-items:center; justify-content:space-between; gap:12px}
.brand{display:flex; gap:10px; align-items:center; font-weight:700}
.admin .tabs{display:flex; flex-wrap:wrap; gap:8px}
.tab{padding:8px 12px; border-radius:12px; border:1px solid var(--glass-brd); color:var(--ink-dim); text-decoration:none}
.tab.active{background:linear-gradient(135deg, rgba(207,45,94,.3), rgba(255,106,148,.22)); color:#fff; border-color:transparent}
.admin-table .wrap{max-width:320px}
.searchrow{display:flex; gap:8px; flex-wrap:wrap}
.addfl{display:flex; gap:8px; flex-wrap:wrap}
.inline{display:inline-flex; gap:8px; align-items:center}
.input.mini{width:110px}

/* ---------- Cart (drawer) ---------- */
.cart-fab{
  position:fixed; right:18px; bottom:18px; z-index:40;
  width:54px; height:54px; border-radius:16px; display:grid; place-items:center;
  background:linear-gradient(135deg,var(--brand),var(--brand-2)); color:#fff;
  box-shadow:0 16px 26px rgba(207,45,94,.35); cursor:pointer; border:0;
}
.cart-fab .badge{
  position:absolute; top:-6px; right:-6px; min-width:22px; height:22px; border-radius:999px;
  background:#121318; color:#fff; border:2px solid #fff3; display:grid; place-items:center; font-size:12px; font-weight:800;
}
.cart-panel{
  position:fixed; top:0; right:0; bottom:0; width:360px; max-width:92vw; z-index:45;
  transform:translateX(110%); transition:transform .25s ease;
  background:rgba(18,19,24,.9); backdrop-filter:blur(14px);
  border-left:1px solid var(--glass-brd); box-shadow:-20px 0 40px rgba(0,0,0,.5);
  display:flex; flex-direction:column;
}
.cart-panel.open{transform:none}
.cart-head{display:flex; align-items:center; justify-content:space-between; padding:16px; border-bottom:1px solid var(--glass-brd)}
.cart-list{flex:1; overflow:auto; padding:10px 12px}
.cart-row{display:grid; grid-template-columns:1fr auto; gap:10px; align-items:center; padding:8px 6px; border-bottom:1px dashed rgba(255,255,255,.08)}
.cart-row .name{font-weight:600}
.cart-row .meta{color:var(--ink-dim); font-size:12px}
.cart-foot{padding:12px 16px; border-top:1px solid var(--glass-brd)}
.cart-foot .tot{display:flex; justify-content:space-between; margin:6px 0}
.cart-foot .btn{width:100%}

/* ---------- success ---------- */
.summary-grid{display:grid; grid-template-columns:1.2fr .8fr; gap:16px}
.sep{border:none; border-top:1px dashed rgba(255,255,255,.12); margin:10px 0}
.hint{color:var(--ink-dim); margin-top:8px}

/* ---------- animations ---------- */
@keyframes fadeInUp{from{opacity:.0; transform:translateY(8px)} to{opacity:1; transform:none}}

/* ---------- responsive ---------- */
@media (max-width:1020px){
  .mini-grid{grid-template-columns:1fr}
  .features{grid-template-columns:1fr}
  .reviews{grid-template-columns:1fr}
  .checkout .grid{grid-template-columns:1fr}
  .summary-grid{grid-template-columns:1fr}
  .nav-links{gap:10px}
}



/* === Enhancements: liquid glass, animations, steppers, no horizontal scroll === */
html, body { overflow-x:hidden; touch-action: pan-y; }
:root{
  --glass-bg: rgba(17,19,26,.72);
  --glass-brd: rgba(255,255,255,.08);
  --brand: #cf2d5e;
  --brand-2:#ff6a94;
  --txt:#e9edf6;
  --muted:#a7b0bf;
}
.container{max-width:1100px;margin:0 auto;padding:0 16px}
.product-card, .card{
  background: var(--glass-bg);
  border: 1px solid var(--glass-brd);
  border-radius: 18px;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  box-shadow: 0 10px 30px rgba(0,0,0,.25);
  transform: translateY(8px);
  opacity: .001;
  transition: transform .6s cubic-bezier(.2,.7,.2,1), opacity .6s;
}
.product-card.in, .card.in{ opacity:1; transform: translateY(0) }
.will-animate{ opacity:.001 }

.btn{
  display:inline-flex; align-items:center; gap:10px;
  background: linear-gradient(135deg, var(--brand), var(--brand-2));
  color:#fff; border:0; border-radius:14px; padding:12px 16px;
  box-shadow: 0 10px 20px rgba(207,45,94,.25);
  transition: transform .15s ease, box-shadow .15s ease, opacity .2s ease;
}
.btn:hover{ transform: translateY(-1px); box-shadow: 0 14px 28px rgba(207,45,94,.33) }
.btn:active{ transform: translateY(0) scale(.98) }

/* Price line */
.price-line{ display:flex; gap:12px; align-items:baseline; margin:8px 0 14px }
.price{ font-size:22px; font-weight:800 }
.ship{ color: var(--muted); font-size:12px }

/* Quantity steppers on /buy */
.table.flavors td.qty{ white-space:nowrap }
.qbtn{
  width:36px;height:36px;border-radius:12px;border:1px solid var(--glass-brd);
  background:linear-gradient(180deg, rgba(255,255,255,.06), rgba(255,255,255,.02));
  color:var(--txt); font-size:18px; line-height:1; cursor:pointer;
  transition: transform .1s ease, background .2s ease, border-color .2s ease;
}
.qbtn:hover{ transform: translateY(-1px); border-color: rgba(255,255,255,.18) }
.qbtn:active{ transform: translateY(0); }
.qinp{
  width:64px; height:36px; margin:0 6px; text-align:center;
  border-radius:12px; border:1px solid var(--glass-brd);
  background:rgba(255,255,255,.02); color:var(--txt);
}

/* Summary grid */
.summary-grid{ display:grid; grid-template-columns: 1fr 1fr; gap:16px }
@media (max-width: 720px){ .summary-grid{ grid-template-columns: 1fr } }

/* Tables */
.table{ width:100%; border-collapse: collapse }
.table th, .table td{ padding:10px; border-bottom:1px solid var(--glass-brd) }
.table thead th{ text-transform:uppercase; letter-spacing:.3px; font-size:12px; color:#c9d2df }

/* Footer & header polish */
.footer{ opacity:.8; margin:20px 0; text-align:center; color:var(--muted) }

/* Prefer-reduced-motion */
@media (prefers-reduced-motion: reduce){
  .product-card, .card{ transition:none !important }
  .btn{ transition:none !important }
}

/* Prevent horizontal swipe scrolling areas */
* { overscroll-behavior-x: none; }


/* Review stars */
.reviews{ display:grid; grid-template-columns: repeat(auto-fit, minmax(260px,1fr)); gap:16px }
.review .review-head{ display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:6px }
.review .avatar{ width:36px; height:36px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  background:linear-gradient(135deg, rgba(255,255,255,.12), rgba(255,255,255,.02)); border:1px solid var(--glass-brd); font-weight:800 }
.review .stars{ font-size:18px; letter-spacing:2px; }
.review .r-text{ margin-top:6px }


.btn-ghost{
  background:transparent; color:var(--txt); border:1px solid var(--glass-brd);
}
.hint.error{ color:#ff8aa6; font-size:12px; margin-top:6px }
.small{ font-size:12px }
.mt{ margin-top:10px }
.link-back{ display:inline-block; margin-bottom:12px; opacity:.8 }
.page-title{ margin:8px 0 14px }
.grid.totals{ display:grid; grid-template-columns:repeat(3,1fr); gap:12px }
.sum{ background:rgba(255,255,255,.02); border:1px solid var(--glass-brd); border-radius:14px; padding:10px }
.cart-actions{ display:flex; gap:12px; margin-top:12px }

.link{ color: var(--txt); text-decoration: underline; cursor:pointer }
.link.danger{ color:#ff6a94 }
.stars{ color:#ffd166 } /* gold-like */


/* Modal + Toast */
.modal-overlay{ position:fixed; inset:0; background:rgba(0,0,0,.5); display:none; align-items:center; justify-content:center; z-index:9999 }
.modal{ width:min(520px, calc(100vw - 32px)); background:var(--glass-bg); border:1px solid var(--glass-brd); border-radius:18px; backdrop-filter: blur(14px); padding:16px }
.modal h3{ margin:0 0 8px; font-size:18px }
.modal .flavors-list{ max-height:280px; overflow:auto; margin:8px 0; padding-right:6px }
.modal .flavor{ display:flex; align-items:center; justify-content:space-between; padding:8px 10px; border-radius:12px; border:1px solid var(--glass-brd); margin-bottom:8px }
.modal .flavor .name{ font-weight:600 }
.modal .actions{ display:flex; gap:10px; justify-content:flex-end; margin-top:8px }

.toast{ position:fixed; right:16px; bottom:16px; background:var(--glass-bg); border:1px solid var(--glass-brd); border-radius:14px; padding:12px 14px; box-shadow:0 10px 26px rgba(0,0,0,.35); opacity:0; transform: translateY(10px); transition: opacity .25s, transform .25s; z-index:9999 }
.toast.show{ opacity:1; transform: translateY(0) }

/* Contact compact */
.socials.compact{ display:flex; gap:12px; margin-top:8px }
.socials.compact .social{ display:inline-flex; align-items:center; gap:8px; padding:10px 14px; border-radius:12px; border:1px solid var(--glass-brd); background:rgba(255,255,255,.02) }
.socials.compact svg{ width:18px; height:18px }
#kontakt .contact, #kontakt .contact-row{ display:none !important } /* usuń kartę maila */
/* Modal + Toast */
.modal-overlay{ position:fixed; inset:0; background:rgba(0,0,0,.5); display:none; align-items:center; justify-content:center; z-index:9999 }
.modal{ width:min(520px, calc(100vw - 32px)); background:var(--glass-bg); border:1px solid var(--glass-brd); border-radius:18px; backdrop-filter: blur(14px); padding:16px }
.modal h3{ margin:0 0 8px; font-size:18px }
.modal .flavors-list{ max-height:280px; overflow:auto; margin:8px 0; padding-right:6px }
.modal .flavor{ display:flex; align-items:center; justify-content:space-between; padding:8px 10px; border-radius:12px; border:1px solid var(--glass-brd); margin-bottom:8px }
.modal .flavor .name{ font-weight:600 }
.modal .actions{ display:flex; gap:10px; justify-content:flex-end; margin-top:8px }

.toast{ position:fixed; right:16px; bottom:16px; background:var(--glass-bg); border:1px solid var(--glass-brd); border-radius:14px; padding:12px 14px; box-shadow:0 10px 26px rgba(0,0,0,.35); opacity:0; transform: translateY(10px); transition: opacity .25s, transform .25s; z-index:9999 }
.toast.show{ opacity:1; transform: translateY(0) }

/* Contact compact */
.socials.compact{ display:flex; gap:12px; margin-top:8px }
.socials.compact .social{ display:inline-flex; align-items:center; gap:8px; padding:10px 14px; border-radius:12px; border:1px solid var(--glass-brd); background:rgba(255,255,255,.02) }
.socials.compact svg{ width:18px; height:18px }
#kontakt .contact, #kontakt .contact-row{ display:none !important }

/* Opinie */
.reviews{ display:grid; grid-template-columns: repeat(auto-fit, minmax(260px,1fr)); gap:16px }
.review .review-head{ display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:6px }
.review .avatar{ width:36px; height:36px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  background:linear-gradient(135deg, rgba(255,255,255,.12), rgba(255,255,255,.02)); border:1px solid var(--glass-brd); font-weight:800 }
.review .stars{ font-size:18px; letter-spacing:2px; color:#ffd166 }
.review .r-text{ margin-top:6px }


/* === Konsystentne odstępy sekcji === */
:root{
  --section-gap: 40px;
}
section.container{ margin-top: var(--section-gap) }
.container .section-title{ margin-bottom: 14px }
.container.features{ margin-top: 14px } /* kompensuj po 'produkty' */

/* === Opinie (widoczne + responsywne) === */
.reviews{ display:grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap:14px }
@media (max-width: 900px){
  .reviews{ grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (max-width: 600px){
  .reviews{ grid-template-columns: 1fr; }
}
.review.card{ opacity:1; transform:none } /* upewnij się, że nie są ukryte animacją */
.review .stars{ font-size: 16px; line-height: 1 }


/* --- Navbar aliases to match markup --- */
.navbar{position:sticky; top:0; z-index:30; padding:10px 0}
.navbar .container.nav-inner{ display:flex; align-items:center; justify-content:space-between; gap:16px;
  border:1px solid var(--glass-brd); border-radius:12px;
  background:linear-gradient(180deg, rgba(255,255,255,.06), rgba(255,255,255,.02));
  box-shadow:var(--shadow); padding:10px 14px; backdrop-filter:saturate(120%) blur(10px);
}
.brand{ display:flex; align-items:center; gap:10px; font-weight:700; text-decoration:none; color:var(--ink) }
.brand img{ width:26px; height:26px; border-radius:8px; object-fit:cover; box-shadow:0 2px 8px #0006 }
.links{ display:flex; gap:16px; align-items:center; flex-wrap:wrap }
.links a{ color:var(--ink); opacity:.9; text-decoration:none; padding:6px 10px; border-radius:10px; }
.links a:hover{ background:rgba(255,255,255,.06) }

/* Force cards visible on all pages (avoid hidden auth screens) */
.card{ opacity: 1 !important; transform: none !important; transition: none !important; }
/* Mobile grids */
@media (max-width: 900px){
  .mini-grid{ grid-template-columns: 1fr; }
}


/* Full-width top toast */
.toast{ position:fixed; top:0; left:0; right:0; z-index:9999; display:flex; justify-content:center; pointer-events:none; opacity:0; transform: translateY(-10px); transition: opacity .25s ease, transform .25s ease; }
.toast .toast-bar{
  pointer-events:auto; margin:8px; padding:12px 16px; border-radius:14px;
  background: rgba(15,17,24,.86); border: 1px solid rgba(255,255,255,.08);
  backdrop-filter: blur(12px) saturate(120%); -webkit-backdrop-filter: blur(12px) saturate(120%);
  color:#e9edf6; font-weight:600; width:min(960px, calc(100vw - 16px)); text-align:center;
  box-shadow:0 20px 40px rgba(0,0,0,.35);
}
.toast.show{ opacity:1; transform: translateY(0); }
.brand-title{ margin-left:8px; font-weight:800; letter-spacing:.3px; opacity:.95 }
@media (max-width: 640px){ .brand-title{ display:none } }

/* === Top bar toast (mobile-friendly) === */
.vv-toast{ position:fixed; top:0; left:0; right:0; z-index:9999; display:flex; justify-content:center; pointer-events:none; opacity:0; transform: translateY(-10px); transition: opacity .25s ease, transform .25s ease; }
.vv-toast .toast-bar{
  pointer-events:auto; margin:8px; padding:12px 16px; border-radius:14px;
  background: rgba(15,17,24,.86); border: 1px solid rgba(255,255,255,.08);
  backdrop-filter: blur(12px) saturate(120%); -webkit-backdrop-filter: blur(12px) saturate(120%);
  color:#e9edf6; font-weight:600; width:min(960px, calc(100vw - 16px)); text-align:center;
  box-shadow:0 20px 40px rgba(0,0,0,.35);
}
.vv-toast.show{ opacity:1; transform: translateY(0); }
.toast{ background:transparent !important; border:0 !important; box-shadow:none !important; }
