/* ============================================================
   STORE.CSS — store.html
   Edit data produk di setting.js → storeProducts
   ============================================================ */

:root {
    --primary:     #ffaa00;
    --primary-rgb: 255, 170, 0;
    --bg:    #07060a;
    --bg2:   #0d0b12;
    --card:  rgba(255,255,255,.03);
    --card-h:rgba(255,255,255,.055);
    --border:rgba(255,255,255,.07);
    --text:  #eeeef2;
    --muted: #6b6e82;
    --muted2:#9698a8;
    --wa:    #25D366;
    --r:     14px;
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
    font-family:'Syne',sans-serif;
    background:var(--bg);
    color:var(--text);
    overflow-x:hidden;min-height:100vh;
}
a{text-decoration:none;color:inherit}

#bg-canvas{position:fixed;inset:0;z-index:0;pointer-events:none;opacity:.4}

/* ── TOPNAV ──────────────────────────────────────────────── */
.topnav{
    position:sticky;top:0;z-index:300;
    height:54px;
    background:rgba(7,6,10,.94);
    backdrop-filter:blur(24px);
    border-bottom:1px solid var(--border);
    display:flex;align-items:center;justify-content:space-between;
    padding:0 24px;
}
.nav-back{
    display:flex;align-items:center;gap:7px;
    color:var(--muted);font-size:12px;font-weight:700;letter-spacing:.5px;
    transition:color .2s;
}
.nav-back svg{width:17px;height:17px}
.nav-back:hover{color:var(--primary)}
.nav-logo{
    font-family:'Bebas Neue',sans-serif;
    font-size:16px;font-weight:400;letter-spacing:4px;color:var(--primary);
}
.nav-cart{
    position:relative;cursor:pointer;
    display:flex;align-items:center;justify-content:center;
    width:40px;height:40px;
    border-radius:9px;
    border:1px solid var(--border);
    background:var(--card);
    color:var(--muted);transition:all .2s;
}
.nav-cart:hover{color:var(--primary);border-color:rgba(var(--primary-rgb),.4)}
.nav-cart svg{width:19px;height:19px}
.cart-count{
    position:absolute;top:-6px;right:-6px;
    min-width:18px;height:18px;
    background:#e8294a;color:#fff;
    font-size:9px;font-weight:800;border-radius:9px;
    display:flex;align-items:center;justify-content:center;
    padding:0 4px;transition:transform .15s;
}
.cart-count.bump{transform:scale(1.6)}

/* ── HERO ────────────────────────────────────────────────── */
.store-hero{
    position:relative;z-index:1;
    padding:56px 24px 40px;
    text-align:center;
    background:radial-gradient(ellipse 70% 60% at 50% 0%,rgba(var(--primary-rgb),.07) 0%,transparent 70%);
    border-bottom:1px solid var(--border);
}
.store-badge{
    display:inline-block;
    padding:4px 14px;
    background:rgba(var(--primary-rgb),.07);
    border:1px solid rgba(var(--primary-rgb),.25);
    border-radius:20px;
    font-size:9px;font-weight:800;letter-spacing:3px;
    color:var(--primary);margin-bottom:14px;
}
.store-hero h1{
    font-family:'Bebas Neue',sans-serif;
    font-size:clamp(30px,7vw,60px);
    font-weight:400;letter-spacing:5px;color:#fff;
    margin-bottom:8px;
}
.store-hero p{font-size:13px;color:var(--muted2)}

/* ── BODY ────────────────────────────────────────────────── */
.store-body{
    position:relative;z-index:1;
    max-width:1120px;margin:0 auto;
    padding:28px 24px 100px;
}

/* ── CATEGORY TABS ───────────────────────────────────────── */
.cat-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:26px}
.cat-tab{
    display:flex;align-items:center;gap:7px;
    padding:8px 16px;border-radius:8px;
    border:1px solid var(--border);background:var(--card);
    color:var(--muted);font-size:12px;font-weight:700;letter-spacing:.5px;
    cursor:pointer;transition:all .2s;user-select:none;
}
.cat-tab:hover{border-color:rgba(var(--primary-rgb),.35);color:var(--text)}
.cat-tab.active{background:rgba(var(--primary-rgb),.1);border-color:var(--primary);color:var(--primary)}

/* ── PRODUCTS GRID ───────────────────────────────────────── */
.products-grid{
    display:grid;
    grid-template-columns:repeat(auto-fill,minmax(250px,1fr));
    gap:20px;
}
.empty-state{
    text-align:center;padding:80px 0;
    display:flex;flex-direction:column;align-items:center;gap:10px;
    color:var(--muted);
}
.empty-state span{font-size:44px}

/* ── PRODUCT CARD ────────────────────────────────────────── */
.product-card{
    background:var(--card);
    border:1px solid var(--border);
    border-radius:var(--r);
    overflow:hidden;
    display:flex;flex-direction:column;
    position:relative;cursor:pointer;
    opacity:0;transform:translateY(16px);
    transition:opacity .4s,transform .4s,border-color .22s,box-shadow .22s;
}
.product-card.visible{opacity:1;transform:translateY(0)}
.product-card:hover{
    border-color:rgba(var(--primary-rgb),.4);
    box-shadow:0 12px 40px rgba(0,0,0,.5);
    transform:translateY(-4px) !important;
}
.product-card::before{
    content:'';position:absolute;top:0;left:0;right:0;
    height:2px;background:var(--accent-color,var(--primary));opacity:.65;
}

/* badges */
.product-badge{
    position:absolute;top:12px;left:12px;
    font-size:8px;font-weight:800;letter-spacing:2px;
    padding:3px 9px;border-radius:4px;z-index:2;text-transform:uppercase;
}
.badge-sale   {background:#ff4d4d;color:#fff}
.badge-new    {background:#00cfff;color:#000}
.badge-hot    {background:#ff8c00;color:#000}
.badge-limited{background:#b366ff;color:#fff}

/* thumb */
.product-thumb{
    height:100px;
    display:flex;align-items:center;justify-content:center;
    font-size:50px;
    background:linear-gradient(135deg,rgba(var(--primary-rgb),.04),rgba(0,0,0,.15));
}

/* body */
.product-body{padding:16px 16px 10px;flex:1;display:flex;flex-direction:column}
.product-cat-tag{
    font-size:9px;font-weight:800;letter-spacing:2.5px;
    color:var(--accent-color,var(--primary));text-transform:uppercase;margin-bottom:5px;
}
.product-name{
    font-family:'Bebas Neue',sans-serif;
    font-size:18px;letter-spacing:.5px;color:#fff;
    margin-bottom:6px;line-height:1.1;
}
.product-desc{
    font-size:12px;color:var(--muted2);line-height:1.6;
    flex:1;margin-bottom:10px;
    display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}
.product-feature{
    list-style:none;display:flex;flex-direction:column;gap:5px;margin-bottom:10px;
}
.product-feature li{
    display:flex;align-items:flex-start;gap:7px;
    font-size:11.5px;color:var(--muted2);line-height:1.5;
}
.product-feature li::before{content:'✓';color:var(--accent-color,var(--primary));font-weight:700;flex-shrink:0}
.product-meta-tag{
    display:inline-block;
    font-size:10px;font-weight:700;letter-spacing:1px;
    padding:3px 10px;border-radius:5px;
    background:rgba(255,255,255,.04);
    border:1px solid var(--border);
    color:var(--muted);margin-bottom:10px;
}

/* footer */
.product-footer{
    display:flex;align-items:center;justify-content:space-between;gap:10px;
    padding:12px 16px 14px;
    border-top:1px solid var(--border);
}
.price-old{
    font-size:10.5px;color:var(--muted);text-decoration:line-through;
    font-family:'JetBrains Mono',monospace;
}
.price-new{
    font-family:'JetBrains Mono',monospace;
    font-size:16px;font-weight:700;color:var(--primary);line-height:1;
}
.price-new.free{color:#5dff7a}
.add-btn{
    flex-shrink:0;padding:8px 16px;border-radius:8px;
    border:1px solid rgba(var(--primary-rgb),.3);
    background:rgba(var(--primary-rgb),.08);
    color:var(--primary);
    font-size:11px;font-weight:700;letter-spacing:.5px;
    cursor:pointer;transition:all .2s;text-transform:uppercase;white-space:nowrap;
    font-family:'Syne',sans-serif;
}
.add-btn:hover{background:var(--primary);color:#000;border-color:var(--primary)}
.add-btn.in-cart{background:rgba(93,255,122,.08);border-color:#5dff7a;color:#5dff7a}

/* ── CART DRAWER ─────────────────────────────────────────── */
.cart-overlay{
    display:none;position:fixed;inset:0;
    background:rgba(0,0,0,.65);z-index:499;
    backdrop-filter:blur(4px);
}
.cart-overlay.open{display:block}
.cart-drawer{
    position:fixed;top:0;right:-420px;
    width:400px;max-width:100vw;height:100vh;
    background:var(--bg2);
    border-left:1px solid var(--border);
    z-index:500;
    display:flex;flex-direction:column;
    transition:right .32s cubic-bezier(.4,0,.2,1);
}
.cart-drawer.open{right:0}
.cart-header{
    display:flex;align-items:center;justify-content:space-between;
    padding:18px 20px;border-bottom:1px solid var(--border);flex-shrink:0;
}
.cart-header h3{
    font-family:'Bebas Neue',sans-serif;
    font-size:20px;letter-spacing:2px;color:#fff;
}
.cart-close{
    background:none;border:none;color:var(--muted);
    font-size:18px;cursor:pointer;padding:4px 8px;
    border-radius:6px;transition:color .2s;
}
.cart-close:hover{color:#fff}
.cart-items{
    flex:1;overflow-y:auto;padding:14px;
    display:flex;flex-direction:column;gap:8px;
}
.cart-empty{
    flex:1;display:flex;flex-direction:column;
    align-items:center;justify-content:center;
    gap:10px;color:var(--muted);padding:60px 0;
}
.cart-empty span{font-size:38px}
.cart-empty p{font-size:13px}
.cart-item-row{
    display:flex;align-items:center;gap:10px;
    padding:10px 12px;
    background:var(--card);
    border:1px solid var(--border);border-radius:9px;
}
.cart-item-icon{font-size:26px;flex-shrink:0}
.cart-item-info{flex:1;min-width:0}
.cart-item-name{
    font-size:13px;font-weight:600;color:#fff;
    margin-bottom:2px;
    white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.cart-item-price{
    font-family:'JetBrains Mono',monospace;
    font-size:12px;color:var(--primary);font-weight:700;
}
.cart-item-del{
    background:none;border:none;color:var(--muted);
    cursor:pointer;font-size:15px;padding:3px 6px;
    border-radius:5px;transition:color .2s;flex-shrink:0;
}
.cart-item-del:hover{color:#ff4d4d}

/* username form */
.cart-form{
    padding:16px 20px;
    border-top:1px solid var(--border);flex-shrink:0;
}
.form-label{
    display:block;font-size:11px;font-weight:700;
    letter-spacing:.8px;color:var(--text);margin-bottom:8px;text-transform:uppercase;
}
.form-label .req{color:#ff4d4d}
.form-input{
    width:100%;padding:11px 14px;
    background:rgba(255,255,255,.04);
    border:1px solid var(--border);border-radius:9px;
    color:#fff;
    font-family:'JetBrains Mono',monospace;
    font-size:14px;font-weight:700;
    outline:none;transition:border-color .2s;
}
.form-input:focus{border-color:var(--primary)}
.form-input::placeholder{color:var(--muted);font-weight:400;font-family:'Syne',sans-serif}
.form-input.error{border-color:#ff4d4d !important}
.form-hint{font-size:11px;color:var(--muted);margin-top:6px;line-height:1.5}

/* cart footer */
.cart-footer{
    padding:14px 20px;border-top:1px solid var(--border);flex-shrink:0;
    display:flex;flex-direction:column;gap:10px;
}
.cart-total{display:flex;justify-content:space-between;align-items:center;font-size:13px;font-weight:600;color:var(--muted)}
.cart-total-num{
    font-family:'JetBrains Mono',monospace;
    font-size:20px;font-weight:700;color:var(--primary);
}
.cart-checkout-btn{
    width:100%;padding:13px;
    background:var(--wa);color:#fff;
    border:none;border-radius:9px;
    font-family:'Syne',sans-serif;
    font-size:13px;font-weight:800;letter-spacing:.5px;
    cursor:pointer;
    display:flex;align-items:center;justify-content:center;gap:9px;
    transition:filter .2s,transform .2s;
    box-shadow:0 4px 20px rgba(37,211,102,.22);
}
.cart-checkout-btn svg{width:20px;height:20px;flex-shrink:0}
.cart-checkout-btn:hover{filter:brightness(1.1);transform:translateY(-1px)}
.cart-clear-btn{
    width:100%;padding:8px;
    background:none;border:1px solid rgba(255,77,77,.2);
    border-radius:8px;color:rgba(255,77,77,.6);
    font-family:'Syne',sans-serif;
    font-size:11px;font-weight:700;cursor:pointer;letter-spacing:.5px;
    transition:all .2s;
}
.cart-clear-btn:hover{background:rgba(255,77,77,.08);border-color:#ff4d4d;color:#ff4d4d}

/* ── TOAST ───────────────────────────────────────────────── */
.toast{
    position:fixed;bottom:24px;left:50%;
    transform:translateX(-50%) translateY(70px);
    background:var(--bg2);border:1px solid var(--border);
    color:var(--text);padding:11px 22px;
    border-radius:10px;font-size:13px;font-weight:600;
    z-index:9999;box-shadow:0 8px 28px rgba(0,0,0,.5);
    opacity:0;pointer-events:none;
    transition:all .3s cubic-bezier(.34,1.56,.64,1);white-space:nowrap;
}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}

/* ── RESPONSIVE ──────────────────────────────────────────── */
@media(max-width:600px){
    .products-grid{grid-template-columns:1fr 1fr}
    .store-body{padding:20px 14px 80px}
    .cart-drawer{width:100vw}
    .store-hero{padding:40px 16px 28px}
}
@media(max-width:380px){
    .products-grid{grid-template-columns:1fr}
}
