/* ============================================
   CARTIFY - Main Stylesheet
   assets/css/style.css
   ============================================ */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --purple:#7F77DD;--purple-light:#EEEDFE;--purple-dark:#534AB7;
  --teal:#1D9E75;--teal-light:#E1F5EE;
  --amber:#EF9F27;--red:#E24B4A;--red-light:#FCEBEB;
  --blue:#378ADD;--blue-light:#E8F2FC;
  --text:#1a1a1a;--text2:#555;--text3:#888;
  --bg:#f7f7f9;--white:#fff;
  --border:#e4e4e8;--border2:#d0d0d8;
  --radius:12px;--radius-sm:8px;--radius-xs:5px;
  --shadow:0 2px 12px rgba(0,0,0,0.08);--shadow-lg:0 8px 32px rgba(0,0,0,0.12);
  --font:'Segoe UI',system-ui,-apple-system,sans-serif;
  --transition:0.2s ease;
}
body{font-family:var(--font);color:var(--text);background:var(--bg);font-size:14px;line-height:1.6}
a{text-decoration:none;color:inherit}
img{max-width:100%;height:auto;display:block}
input,select,textarea,button{font-family:var(--font)}

/* ---- CONTAINER ---- */
.container{max-width:1200px;margin:0 auto;padding:0 16px}

/* ---- ANNOUNCEMENT ---- */
.announcement{background:var(--purple-dark);color:rgba(255,255,255,0.95);text-align:center;padding:7px 16px;font-size:12px;font-weight:500}

/* ---- NAVBAR ---- */
.navbar{background:var(--white);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:200;box-shadow:var(--shadow)}
.nav-inner{display:flex;align-items:center;gap:16px;padding:12px 16px;max-width:1200px;margin:0 auto}
.nav-logo img{height:36px;width:auto}
.nav-logo span{font-size:22px;font-weight:800;color:var(--purple);letter-spacing:-0.5px}
.nav-links{display:flex;gap:4px;margin:0 auto}
.nav-links a{padding:7px 14px;font-size:14px;color:var(--text2);border-radius:var(--radius-xs);transition:all var(--transition);font-weight:500}
.nav-links a:hover,.nav-links a.active{color:var(--purple);background:var(--purple-light)}
.nav-search{display:flex;align-items:center;border:1.5px solid var(--border);border-radius:30px;overflow:hidden;transition:border-color var(--transition)}
.nav-search:focus-within{border-color:var(--purple)}
.nav-search input{border:none;outline:none;padding:7px 14px;font-size:13px;width:200px;background:transparent}
.nav-search button{background:none;border:none;padding:7px 12px;cursor:pointer;color:var(--text3);font-size:16px;display:flex;align-items:center}
.nav-search button:hover{color:var(--purple)}
.nav-actions{display:flex;gap:8px;align-items:center}
.btn-login{padding:7px 18px;border:1.5px solid var(--purple);color:var(--purple);border-radius:30px;font-size:13px;font-weight:600;transition:all var(--transition);cursor:pointer;background:none}
.btn-login:hover{background:var(--purple);color:var(--white)}
.nav-profile{position:relative;cursor:pointer}
.nav-profile .avatar{width:36px;height:36px;border-radius:50%;background:var(--purple-light);border:2px solid var(--purple);display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;color:var(--purple);overflow:hidden}
.nav-profile .avatar img{width:100%;height:100%;object-fit:cover}
.profile-dropdown{position:absolute;right:0;top:calc(100% + 8px);background:var(--white);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-lg);min-width:160px;display:none;z-index:300}
.nav-profile:hover .profile-dropdown{display:block}
.profile-dropdown a{display:flex;align-items:center;gap:8px;padding:10px 16px;font-size:13px;color:var(--text);transition:background var(--transition)}
.profile-dropdown a:hover{background:var(--purple-light);color:var(--purple)}
.profile-dropdown hr{border:none;border-top:1px solid var(--border);margin:4px 0}
.mobile-menu-btn{display:none;background:none;border:none;font-size:24px;cursor:pointer;color:var(--text);padding:4px}

/* ---- MOBILE BOTTOM NAV ---- */
.mobile-bottom-nav{display:none;position:fixed;bottom:0;left:0;right:0;background:var(--white);border-top:1px solid var(--border);z-index:200;padding:6px 0 max(6px,env(safe-area-inset-bottom))}
.mobile-bottom-nav .nav-items{display:flex}
.mobile-bottom-nav .nav-item{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;padding:4px 0;cursor:pointer;color:var(--text3);font-size:10px;font-weight:500;transition:color var(--transition);text-decoration:none}
.mobile-bottom-nav .nav-item i{font-size:20px}
.mobile-bottom-nav .nav-item.active,.mobile-bottom-nav .nav-item:hover{color:var(--purple)}
.cart-dot{position:relative}
.cart-dot .badge{position:absolute;top:-4px;right:-8px;background:var(--red);color:white;border-radius:50%;width:16px;height:16px;font-size:9px;font-weight:700;display:flex;align-items:center;justify-content:center}

/* ---- HERO SLIDER ---- */
.slider-wrap{position:relative;overflow:hidden;background:var(--purple-light)}
.slider-track{display:flex;transition:transform 0.5s ease}
.slide{min-width:100%;position:relative}
.slide-img-desktop{display:block;width:100%;height:380px;object-fit:cover}
.slide-img-mobile{display:none;width:100%;height:240px;object-fit:cover}
.slide-overlay{position:absolute;inset:0;background:linear-gradient(to right,rgba(0,0,0,0.5) 0%,rgba(0,0,0,0) 60%);display:flex;align-items:center;padding:0 60px}
.slide-content h2{font-size:32px;font-weight:800;color:white;margin-bottom:8px;line-height:1.2}
.slide-content p{font-size:16px;color:rgba(255,255,255,0.85);margin-bottom:20px}
.slide-btn{display:inline-block;background:white;color:var(--purple-dark);padding:10px 28px;border-radius:30px;font-weight:700;font-size:14px;transition:all var(--transition)}
.slide-btn:hover{background:var(--purple);color:white}
.slider-arrow{position:absolute;top:50%;transform:translateY(-50%);background:rgba(255,255,255,0.85);border:none;width:40px;height:40px;border-radius:50%;cursor:pointer;font-size:18px;display:flex;align-items:center;justify-content:center;z-index:10;transition:all var(--transition)}
.slider-arrow:hover{background:white;box-shadow:var(--shadow)}
.slider-prev{left:14px}.slider-next{right:14px}
.slider-dots{position:absolute;bottom:14px;left:50%;transform:translateX(-50%);display:flex;gap:8px}
.sdot{width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,0.5);border:none;cursor:pointer;padding:0;transition:all var(--transition)}
.sdot.active{background:white;width:24px;border-radius:4px}

/* ---- SECTIONS ---- */
.section{padding:32px 0}
.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}
.section-title{font-size:20px;font-weight:800;color:var(--text)}
.section-title span{color:var(--purple)}
.see-all{font-size:13px;color:var(--purple);font-weight:600}

/* ---- CATEGORIES ---- */
.cat-row{display:flex;gap:20px;overflow-x:auto;padding-bottom:8px;scrollbar-width:none}
.cat-row::-webkit-scrollbar{display:none}
.cat-item{display:flex;flex-direction:column;align-items:center;gap:8px;cursor:pointer;flex-shrink:0;min-width:80px}
.cat-circle{width:80px;height:80px;border-radius:50%;overflow:hidden;border:3px solid var(--border);transition:border-color var(--transition);background:var(--purple-light);display:flex;align-items:center;justify-content:center;font-size:32px}
.cat-circle img{width:100%;height:100%;object-fit:cover}
.cat-item:hover .cat-circle,.cat-item.active .cat-circle{border-color:var(--purple)}
.cat-name{font-size:12px;font-weight:600;color:var(--text2);text-align:center}

/* ---- PRODUCT CARDS ---- */
.products-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:16px}
.prod-card{background:var(--white);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;transition:all var(--transition);cursor:pointer}
.prod-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-3px);border-color:var(--purple)}
.prod-card-img{position:relative;height:200px;overflow:hidden;background:var(--bg)}
.prod-card-img img{width:100%;height:100%;object-fit:cover;transition:transform 0.3s}
.prod-card:hover .prod-card-img img{transform:scale(1.05)}
.discount-badge{position:absolute;top:10px;left:10px;background:var(--red);color:white;font-size:11px;font-weight:700;padding:3px 8px;border-radius:4px}
.flash-badge{position:absolute;top:10px;right:10px;background:var(--amber);color:white;font-size:10px;font-weight:700;padding:3px 8px;border-radius:4px}
.prod-card-body{padding:12px}
.prod-name{font-size:13px;font-weight:600;margin-bottom:6px;line-height:1.4;color:var(--text);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.prod-price-row{display:flex;align-items:center;gap:8px;margin-bottom:5px}
.prod-price{font-size:16px;font-weight:800;color:var(--purple)}
.prod-price-old{font-size:12px;color:var(--text3);text-decoration:line-through}
.prod-meta{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.prod-stars{color:var(--amber);font-size:12px}
.prod-sold{font-size:11px;color:var(--text3)}
.prod-add-btn{width:100%;background:var(--purple);color:white;border:none;border-radius:var(--radius-sm);padding:8px;font-size:13px;font-weight:600;cursor:pointer;transition:background var(--transition);display:flex;align-items:center;justify-content:center;gap:6px}
.prod-add-btn:hover{background:var(--purple-dark)}
.prod-add-btn:disabled{background:#ccc;cursor:not-allowed}

/* ---- TRUST BADGES ---- */
.trust-strip{background:var(--white);border-top:1px solid var(--border);border-bottom:1px solid var(--border);padding:20px 0}
.trust-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.trust-item{display:flex;align-items:center;gap:10px}
.trust-item i{font-size:28px;color:var(--purple)}
.trust-item-text strong{display:block;font-size:13px;font-weight:700}
.trust-item-text span{font-size:11px;color:var(--text3)}

/* ---- PRODUCT DETAIL ---- */
.product-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:start}
.product-gallery .main-img{border-radius:var(--radius);overflow:hidden;height:400px;background:var(--bg);margin-bottom:10px}
.product-gallery .main-img img{width:100%;height:100%;object-fit:cover}
.thumb-strip{display:flex;gap:8px;overflow-x:auto}
.thumb{width:70px;height:70px;border-radius:var(--radius-sm);overflow:hidden;cursor:pointer;border:2px solid var(--border);flex-shrink:0;transition:border-color var(--transition)}
.thumb:hover,.thumb.active{border-color:var(--purple)}
.thumb img{width:100%;height:100%;object-fit:cover}
.product-title{font-size:22px;font-weight:800;margin-bottom:8px}
.product-price-big{font-size:28px;font-weight:800;color:var(--purple);margin-bottom:4px}
.product-price-orig{font-size:16px;color:var(--text3);text-decoration:line-through}
.size-options{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
.size-btn{padding:6px 16px;border:1.5px solid var(--border);border-radius:var(--radius-xs);font-size:13px;cursor:pointer;transition:all var(--transition);background:white}
.size-btn:hover,.size-btn.active{border-color:var(--purple);background:var(--purple-light);color:var(--purple-dark);font-weight:600}
.qty-control{display:flex;align-items:center;gap:0;border:1.5px solid var(--border);border-radius:var(--radius-sm);overflow:hidden;width:fit-content}
.qty-btn{width:38px;height:38px;border:none;background:var(--bg);cursor:pointer;font-size:18px;font-weight:600;display:flex;align-items:center;justify-content:center;transition:background var(--transition)}
.qty-btn:hover{background:var(--purple-light);color:var(--purple)}
.qty-val{width:50px;text-align:center;font-size:15px;font-weight:700;border:none;outline:none;background:white}
.prod-action-btns{display:flex;gap:10px;margin-top:16px}
.btn-buy-now{flex:1;padding:12px;background:var(--purple);color:white;border:none;border-radius:var(--radius-sm);font-size:15px;font-weight:700;cursor:pointer;transition:background var(--transition)}
.btn-buy-now:hover{background:var(--purple-dark)}
.btn-add-cart{flex:1;padding:12px;border:2px solid var(--purple);color:var(--purple);background:none;border-radius:var(--radius-sm);font-size:15px;font-weight:700;cursor:pointer;transition:all var(--transition)}
.btn-add-cart:hover{background:var(--purple);color:white}

/* ---- CART ---- */
.cart-grid{display:grid;grid-template-columns:1fr 360px;gap:24px;align-items:start;overflow:visible}
.cart-item{display:flex;gap:10px;align-items:center;padding:14px 0;border-bottom:1px solid var(--border)}
.cart-item:last-child{border:none}
.cart-item-img{width:64px;height:64px;border-radius:var(--radius-sm);overflow:hidden;flex-shrink:0;background:var(--bg)}
.cart-item-img img{width:100%;height:100%;object-fit:cover}
.cart-remove{background:none;border:none;color:var(--text3);cursor:pointer;font-size:18px;padding:4px;transition:color var(--transition)}
.cart-remove:hover{color:var(--red)}
.order-summary{background:var(--white);border:1px solid var(--border);border-radius:var(--radius);padding:20px;position:sticky;top:80px}
.summary-row{display:flex;justify-content:space-between;padding:8px 0;font-size:14px;border-bottom:1px solid var(--border)}
.summary-row:last-of-type{border:none;font-weight:800;font-size:16px}
.summary-row.total{color:var(--purple)}

/* ---- CHECKOUT ---- */
.checkout-grid{display:grid;grid-template-columns:1fr 380px;gap:24px;align-items:start}
.form-section{background:var(--white);border:1px solid var(--border);border-radius:var(--radius);padding:20px;margin-bottom:16px}
.form-section-title{font-size:16px;font-weight:700;margin-bottom:16px;padding-bottom:10px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:8px}
.form-section-title i{color:var(--purple)}
.form-group{margin-bottom:14px}
.form-group label{display:block;font-size:12px;font-weight:700;color:var(--text2);margin-bottom:5px;text-transform:uppercase;letter-spacing:0.3px}
.form-group input,.form-group select,.form-group textarea{width:100%;padding:10px 14px;border:1.5px solid var(--border);border-radius:var(--radius-sm);font-size:14px;outline:none;transition:border-color var(--transition);background:var(--white);color:var(--text)}
.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--purple)}
.form-group textarea{resize:vertical;min-height:80px}
.payment-options{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.payment-option{border:2px solid var(--border);border-radius:var(--radius-sm);padding:16px;cursor:pointer;transition:all var(--transition);text-align:center}
.payment-option.selected{border-color:var(--purple);background:var(--purple-light)}
.payment-option i{font-size:28px;color:var(--text3);margin-bottom:6px;display:block}
.payment-option.selected i{color:var(--purple)}
.payment-option strong{display:block;font-size:13px}
.payment-option span{font-size:11px;color:var(--text3)}
.qr-box{background:var(--purple-light);border:2px dashed var(--purple);border-radius:var(--radius);padding:20px;text-align:center;margin-top:12px}
.qr-box img{width:160px;height:160px;margin:0 auto;border-radius:var(--radius-sm)}
.upload-area{border:2px dashed var(--border);border-radius:var(--radius-sm);padding:20px;text-align:center;cursor:pointer;transition:all var(--transition);margin-top:10px}
.upload-area:hover{border-color:var(--purple);background:var(--purple-light)}
.upload-area i{font-size:24px;color:var(--text3);margin-bottom:6px;display:block}

/* ---- BUTTONS ---- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 22px;border-radius:var(--radius-sm);font-size:14px;font-weight:600;cursor:pointer;transition:all var(--transition);border:none}
.btn-primary{background:var(--purple);color:white}.btn-primary:hover{background:var(--purple-dark)}
.btn-outline{background:none;border:2px solid var(--purple);color:var(--purple)}.btn-outline:hover{background:var(--purple);color:white}
.btn-success{background:var(--teal);color:white}.btn-success:hover{filter:brightness(0.9)}
.btn-danger{background:var(--red);color:white}.btn-danger:hover{filter:brightness(0.9)}
.btn-sm{padding:6px 14px;font-size:12px}
.btn-lg{padding:14px 28px;font-size:16px;border-radius:var(--radius-sm)}
.btn-full{width:100%}

/* ---- BADGES ---- */
.badge{display:inline-block;padding:3px 10px;border-radius:20px;font-size:11px;font-weight:700}
.badge-warn{background:#FAEEDA;color:#633806}
.badge-success{background:var(--teal-light);color:#085041}
.badge-info{background:var(--blue-light);color:#1A4E7A}
.badge-purple{background:var(--purple-light);color:var(--purple-dark)}
.badge-danger{background:var(--red-light);color:#791F1F}

/* ---- CARDS ---- */
.card{background:var(--white);border:1px solid var(--border);border-radius:var(--radius);padding:20px}

/* ---- TABLES ---- */
.table-wrap{overflow-x:auto;border-radius:var(--radius);border:1px solid var(--border)}
.table{width:100%;border-collapse:collapse;font-size:13px;background:var(--white)}
.table th{background:var(--bg);padding:12px 14px;text-align:left;font-weight:700;font-size:11px;color:var(--text2);text-transform:uppercase;letter-spacing:0.3px;border-bottom:2px solid var(--border)}
.table td{padding:12px 14px;border-bottom:1px solid var(--border);vertical-align:middle}
.table tr:last-child td{border:none}
.table tbody tr:hover td{background:#fafafa}

/* ---- DASHBOARD LAYOUT ---- */
.dashboard-wrap{display:flex;min-height:calc(100vh - 60px)}
.sidebar{width:240px;background:var(--white);border-right:1px solid var(--border);padding:20px 0;flex-shrink:0;position:sticky;top:60px;height:calc(100vh - 60px);overflow-y:auto}
.sidebar-logo{padding:0 20px 16px;border-bottom:1px solid var(--border);margin-bottom:8px}
.sidebar-logo span{font-size:18px;font-weight:800;color:var(--purple)}
.sidebar-section{padding:8px 12px;font-size:10px;font-weight:700;color:var(--text3);text-transform:uppercase;letter-spacing:0.5px;margin-top:8px}
.sidebar-link{display:flex;align-items:center;gap:10px;padding:9px 20px;font-size:13px;color:var(--text2);transition:all var(--transition);border-left:3px solid transparent;cursor:pointer;text-decoration:none}
.sidebar-link i{font-size:16px;width:20px}
.sidebar-link:hover{background:var(--purple-light);color:var(--purple);border-left-color:var(--purple)}
.sidebar-link.active{background:var(--purple-light);color:var(--purple);border-left-color:var(--purple);font-weight:600}
.dash-content{flex:1;padding:24px;overflow-x:hidden}
.dash-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}
.dash-title{font-size:22px;font-weight:800}
.metrics-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:24px}
.metric-card{background:var(--white);border:1px solid var(--border);border-radius:var(--radius);padding:18px;display:flex;align-items:center;gap:14px}
.metric-icon{width:48px;height:48px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;font-size:22px}
.metric-icon.purple{background:var(--purple-light);color:var(--purple)}
.metric-icon.teal{background:var(--teal-light);color:var(--teal)}
.metric-icon.amber{background:#FAEEDA;color:var(--amber)}
.metric-icon.blue{background:var(--blue-light);color:var(--blue)}
.metric-val{font-size:22px;font-weight:800}
.metric-label{font-size:12px;color:var(--text3)}

/* ---- TOAST ---- */
.toast-container{position:fixed;bottom:20px;right:20px;z-index:9999;display:flex;flex-direction:column;gap:8px}
.toast{background:#1a1a2e;color:white;padding:12px 18px;border-radius:var(--radius-sm);font-size:13px;max-width:300px;opacity:0;transform:translateY(10px);transition:all 0.3s;display:flex;align-items:center;gap:8px}
.toast.show{opacity:1;transform:translateY(0)}
.toast.success{border-left:4px solid var(--teal)}
.toast.error{border-left:4px solid var(--red)}

/* ---- PAGE HERO ---- */
.page-hero{background:var(--purple-light);padding:28px 0;margin-bottom:24px}
.page-hero h1{font-size:24px;font-weight:800;color:var(--purple-dark)}
.breadcrumb{display:flex;gap:8px;align-items:center;font-size:13px;color:var(--text3);margin-top:4px}
.breadcrumb a{color:var(--purple)}

/* ---- FOOTER ---- */
.footer{background:#12122a;color:rgba(255,255,255,0.75);padding:40px 0 0}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:32px;padding-bottom:32px}
.footer-logo{font-size:24px;font-weight:800;color:var(--purple);margin-bottom:10px}
.footer p,.footer a{font-size:13px;line-height:1.8;color:rgba(255,255,255,0.6)}
.footer h4{font-size:14px;font-weight:700;color:white;margin-bottom:12px}
.footer a{display:block;margin-bottom:4px;transition:color var(--transition)}
.footer a:hover{color:var(--purple)}
.footer-bottom{border-top:1px solid rgba(255,255,255,0.1);padding:14px 0;display:flex;justify-content:space-between;align-items:center;font-size:12px;color:rgba(255,255,255,0.4)}

/* ---- MOBILE PADDING (for bottom nav) ---- */
@media(max-width:767px){
  body{padding-bottom:65px}
  .mobile-bottom-nav{display:block}
  .navbar .nav-links,.navbar .btn-login{display:none}
  .mobile-menu-btn{display:block}
  .nav-inner{padding:10px 14px}
  .slide-img-desktop{display:none}
  .slide-img-mobile{display:block}
  .slide-overlay{padding:0 20px}
  .slide-content h2{font-size:20px}
  .slide-content p{font-size:13px}
  .products-grid{grid-template-columns:repeat(2,1fr);gap:10px}
  .trust-grid{grid-template-columns:repeat(2,1fr)}
  .product-detail-grid{grid-template-columns:1fr}
  .cart-grid,.checkout-grid{grid-template-columns:1fr}
  .cart-grid{display:flex;flex-direction:column;gap:16px}
  .cart-grid .card,.cart-grid .order-summary{width:100%;box-sizing:border-box}
  .cart-item{display:flex;align-items:center;gap:8px;box-sizing:border-box;overflow:hidden}
  .cart-item-img{width:56px!important;height:56px!important;flex-shrink:0}
  .cart-item > div:nth-child(2){flex:1;min-width:0;overflow:hidden}
  .cart-item > div:nth-child(2) > div:first-child{white-space:normal;word-break:break-word;font-size:13px}
  .cart-item > div:nth-child(2) > div.price{white-space:nowrap}
  .qty-control{flex-shrink:0;transform:scale(0.85)!important}
  .cart-item > div:nth-child(4){flex-shrink:0;white-space:nowrap;font-size:13px}
  .cart-remove{flex-shrink:0}
  .cart-item > div:nth-child(4){min-width:auto;text-align:right}
  .metrics-grid{grid-template-columns:repeat(2,1fr)}
  .dashboard-wrap{flex-direction:column}
  .sidebar{width:100%;height:auto;position:static;border-right:none;border-bottom:1px solid var(--border)}
  .footer-grid{grid-template-columns:1fr}
  .payment-options{grid-template-columns:1fr}
}