/* Alain Shop - Modern Design System */

@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700;800&display=swap');

:root {
    --primary:       #6366f1;
    --primary-dark:  #4f46e5;
    --primary-light: #ede9fe;
    --accent:        #ec4899;
    --success:       #10b981;
    --danger:        #ef4444;
    --warning:       #f59e0b;
    --dark:          #111827;
    --text:          #374151;
    --muted:         #6b7280;
    --border:        #e5e7eb;
    --bg-subtle:     #f9fafb;
    --white:         #ffffff;
    --font:          'Poppins', 'Segoe UI', sans-serif;
    --radius-sm:     8px;
    --radius:        14px;
    --radius-lg:     20px;
    --radius-xl:     24px;
    --shadow-sm:     0 2px 8px rgba(0,0,0,.06);
    --shadow:        0 8px 24px rgba(0,0,0,.08);
    --shadow-lg:     0 20px 40px rgba(0,0,0,.12);
    --transition:    all .3s ease;
}

/* ── Base ──────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; }
body {
    font-family: var(--font);
    color: var(--text);
    line-height: 1.65;
    background: #fff;
    -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; }
a { color: var(--primary); }

/* ── Navigation ─────────────────────────────────────── */
.navbar {
    padding: .85rem 0;
    background: #fff !important;
    border-bottom: 1px solid var(--border);
    box-shadow: 0 2px 16px rgba(0,0,0,.04);
}
.navbar-brand {
    font-size: 1.4rem;
    font-weight: 800;
    color: var(--primary) !important;
    letter-spacing: -.02em;
}
.navbar-nav .nav-link {
    font-weight: 500;
    color: var(--text) !important;
    padding: .4rem .9rem !important;
    border-radius: var(--radius-sm);
    transition: var(--transition);
    font-size: .92rem;
}
.navbar-nav .nav-link:hover,
.navbar-nav .nav-link.active {
    color: var(--primary) !important;
    background: var(--primary-light);
}
.dropdown-menu {
    border: 1px solid var(--border);
    border-radius: var(--radius);
    box-shadow: var(--shadow-lg);
    padding: .5rem;
    margin-top: .5rem !important;
}
.dropdown-item {
    border-radius: var(--radius-sm);
    font-size: .88rem;
    font-weight: 500;
    padding: .5rem .9rem;
    transition: var(--transition);
}
.dropdown-item:hover { background: var(--primary-light); color: var(--primary); }

/* ── Buttons ─────────────────────────────────────────── */
.btn {
    border-radius: 50px;
    font-weight: 600;
    font-size: .88rem;
    transition: var(--transition);
    letter-spacing: .01em;
}
.btn-primary {
    background: linear-gradient(135deg, var(--primary), var(--primary-dark));
    border: none;
    color: #fff;
    box-shadow: 0 4px 14px rgba(99,102,241,.35);
}
.btn-primary:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 22px rgba(99,102,241,.45);
    background: linear-gradient(135deg, var(--primary-dark), var(--primary));
    color: #fff;
}
.btn-outline-primary {
    border: 1.5px solid var(--primary);
    color: var(--primary);
}
.btn-outline-primary:hover {
    background: var(--primary);
    color: #fff;
    transform: translateY(-2px);
}
.btn-light { border-radius: 50px; }

/* ── Forms ──────────────────────────────────────────── */
.form-control {
    border-radius: var(--radius);
    border: 1.5px solid var(--border);
    padding: .6rem 1rem;
    font-size: .9rem;
    transition: var(--transition);
    font-family: var(--font);
}
.form-control:focus {
    border-color: var(--primary);
    box-shadow: 0 0 0 3px rgba(99,102,241,.15);
    outline: none;
}

/* ── Badges ─────────────────────────────────────────── */
.badge { border-radius: 50px; font-weight: 600; font-size: .72em; padding: .4em .8em; }
.bg-danger  { background: #fee2e2 !important; color: #dc2626 !important; }
.bg-success { background: #d1fae5 !important; color: #059669 !important; }
.bg-primary { background: var(--primary) !important; }

/* ── Alerts ─────────────────────────────────────────── */
.alert { border-radius: var(--radius); border: none; }

/* ── Cards (generic) ────────────────────────────────── */
.card {
    border-radius: var(--radius-lg);
    border: 1px solid var(--border);
    box-shadow: var(--shadow-sm);
    transition: var(--transition);
    overflow: hidden;
}
.card:hover { box-shadow: var(--shadow-lg); transform: translateY(-4px); }

/* ── Toast Notifications ────────────────────────────── */
.toast-container { position: fixed; top: 24px; right: 24px; z-index: 1055; }
.toast {
    border-radius: var(--radius);
    border: none;
    box-shadow: var(--shadow-lg);
    font-family: var(--font);
    font-size: .88rem;
}

/* ── Breadcrumb ─────────────────────────────────────── */
.breadcrumb-item + .breadcrumb-item::before { color: var(--muted); }
.breadcrumb-item.active { color: var(--muted); }

/* ── Product Cards (general) ─────────────────────────── */
.product-card {
    border-radius: var(--radius-lg);
    border: 1px solid var(--border);
    transition: var(--transition);
    overflow: hidden;
}
.product-card:hover {
    transform: translateY(-6px);
    box-shadow: var(--shadow-lg);
}
.product-card .card-img-top { transition: transform .4s ease; }
.product-card:hover .card-img-top { transform: scale(1.05); }

/* ── Category Cards (general) ────────────────────────── */
.category-card {
    border-radius: var(--radius-lg);
    transition: var(--transition);
    background: #fff;
}
.category-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--shadow-lg);
    background: var(--primary-light);
}

/* ── Footer ─────────────────────────────────────────── */
footer {
    background: linear-gradient(135deg, #0f0c29 0%, #1e1b4b 100%);
}
footer a { transition: var(--transition); }
footer a:hover { color: var(--primary) !important; }
footer .text-muted { color: rgba(255,255,255,.45) !important; }

/* ── Loading Spinner ────────────────────────────────── */
.spinner-overlay {
    position: fixed; inset: 0;
    background: rgba(255,255,255,.85);
    display: flex; align-items: center; justify-content: center;
    z-index: 9999; backdrop-filter: blur(4px);
}
.spinner-border-custom { width: 3rem; height: 3rem; border-width: .3em; color: var(--primary); }

/* ── Pagination ─────────────────────────────────────── */
.page-link { border-radius: var(--radius-sm) !important; border: 1.5px solid var(--border); color: var(--primary); font-weight: 500; margin: 0 2px; transition: var(--transition); }
.page-link:hover, .page-item.active .page-link { background: var(--primary); border-color: var(--primary); color: #fff; }

/* ── Utilities ───────────────────────────────────────── */
.bg-subtle { background: var(--bg-subtle) !important; }
.text-primary { color: var(--primary) !important; }
.text-accent  { color: var(--accent) !important; }
.rounded-xl  { border-radius: var(--radius-xl) !important; }
.shadow-soft { box-shadow: var(--shadow) !important; }

/* ── Animations ──────────────────────────────────────── */
.fade-in { animation: fadeIn .5s ease-in; }
@keyframes fadeIn { from { opacity:0; transform:translateY(16px); } to { opacity:1; transform:none; } }

/* ── Responsive ──────────────────────────────────────── */
@media (max-width: 768px) {
    .navbar-nav .nav-link { padding: .55rem 1rem !important; }
    .btn-lg { padding: .7rem 1.5rem; font-size: .95rem; }
}
@media (max-width: 576px) {
    .card-body { padding: 1rem; }
    .display-4 { font-size: 2rem; }
}

/* ── RTL Support ─────────────────────────────────────── */
[dir="rtl"] { text-align: right; }
[dir="rtl"] .navbar-brand { margin-right: 0; margin-left: auto; }
[dir="rtl"] .dropdown-menu { right: 0; left: auto; }

/* ── Print ────────────────────────────────────────────── */
@media print {
    .navbar, footer, .btn, .alert { display: none !important; }
    body { font-size: 12pt; line-height: 1.4; }
    .container { width: 100% !important; max-width: none !important; }
}


