/* ── CSS Custom Properties ──────────────────────────────────── */
:root {
    --wa-primary:   #4361ee;
    --wa-success:   #10b981;
    --wa-danger:    #ef4444;
    --wa-warning:   #f59e0b;
    --wa-info:      #06b6d4;
    --wa-secondary: #64748b;

    --bs-primary:       var(--wa-primary);
    --bs-primary-rgb:   67, 97, 238;
    --bs-success:       var(--wa-success);
    --bs-success-rgb:   16, 185, 129;
    --bs-danger:        var(--wa-danger);
    --bs-danger-rgb:    239, 68, 68;
    --bs-warning:       var(--wa-warning);
    --bs-warning-rgb:   245, 158, 11;
    --bs-info:          var(--wa-info);
    --bs-info-rgb:      6, 182, 212;
    --bs-secondary:     var(--wa-secondary);
    --bs-secondary-rgb: 100, 116, 139;

    --bs-body-bg:           #f4f6f9;
    --bs-border-radius:     0.5rem;
    --bs-border-radius-sm:  0.375rem;
    --bs-border-radius-lg:  0.75rem;
}

/* ── Layout ─────────────────────────────────────────────────── */
body { background-color: var(--bs-body-bg); }

.admin-sidebar {
    width: 240px;
    min-width: 240px;
    min-height: 100vh;
}

/* ── Sidebar nav links ──────────────────────────────────────── */
.wa-nav-link {
    display: flex;
    align-items: center;
    padding: .55rem .9rem;
    border-radius: .5rem;
    color: #475569;
    text-decoration: none;
    font-size: .9rem;
    font-weight: 500;
    transition: background .15s, color .15s;
    margin-bottom: 2px;
}
.wa-nav-link:hover  { background: #f1f5f9; color: #1e293b; }
.wa-nav-link.active {
    background: #eff0fd;
    color: var(--wa-primary);
    font-weight: 600;
    border-left: 3px solid var(--wa-primary);
    padding-left: calc(.9rem - 3px);
}

/* ── Buttons ────────────────────────────────────────────────── */
.btn {
    border-radius: .5rem;
    font-weight: 500;
    transition: box-shadow .15s, transform .08s;
}
.btn:active { transform: scale(.97); }
.btn:focus-visible { outline: none; box-shadow: 0 0 0 3px rgba(67,97,238,.35); }

.btn-primary  { background: var(--wa-primary);   border-color: var(--wa-primary); }
.btn-primary:hover  { background: #3651d4; border-color: #3651d4; box-shadow: 0 4px 12px rgba(67,97,238,.35); }
.btn-outline-primary { color: var(--wa-primary); border-color: var(--wa-primary); }
.btn-outline-primary:hover  { background: var(--wa-primary); border-color: var(--wa-primary); color: #fff; }

.btn-success  { background: var(--wa-success);   border-color: var(--wa-success); }
.btn-success:hover  { background: #0da070; border-color: #0da070; box-shadow: 0 4px 12px rgba(16,185,129,.35); }
.btn-outline-success { color: var(--wa-success); border-color: var(--wa-success); }
.btn-outline-success:hover  { background: var(--wa-success); border-color: var(--wa-success); color: #fff; }

.btn-danger  { background: var(--wa-danger);  border-color: var(--wa-danger); }
.btn-danger:hover  { background: #dc2020; border-color: #dc2020; box-shadow: 0 4px 12px rgba(239,68,68,.35); }
.btn-outline-danger { color: var(--wa-danger); border-color: var(--wa-danger); }
.btn-outline-danger:hover  { background: var(--wa-danger); border-color: var(--wa-danger); color: #fff; }

.btn-warning  { background: var(--wa-warning);  border-color: var(--wa-warning); color: #fff; }
.btn-warning:hover  { background: #d97706; border-color: #d97706; box-shadow: 0 4px 12px rgba(245,158,11,.35); }
.btn-outline-warning { color: var(--wa-warning); border-color: var(--wa-warning); }
.btn-outline-warning:hover  { background: var(--wa-warning); border-color: var(--wa-warning); color: #fff; }

.btn-info  { background: var(--wa-info);  border-color: var(--wa-info); color: #fff; }
.btn-info:hover  { background: #0891b2; border-color: #0891b2; box-shadow: 0 4px 12px rgba(6,182,212,.35); }
.btn-outline-info { color: var(--wa-info); border-color: var(--wa-info); }
.btn-outline-info:hover  { background: var(--wa-info); border-color: var(--wa-info); color: #fff; }

.btn-secondary  { background: var(--wa-secondary); border-color: var(--wa-secondary); color: #fff; }
.btn-secondary:hover  { background: #4e6080; border-color: #4e6080; box-shadow: 0 4px 12px rgba(100,116,139,.3); }
.btn-outline-secondary { color: var(--wa-secondary); border-color: #cbd5e1; }
.btn-outline-secondary:hover  { background: #f8fafc; color: #1e293b; border-color: #94a3b8; }

/* ── Cards ──────────────────────────────────────────────────── */
.card { border-radius: .75rem !important; }
.card-header {
    padding: 1rem 1.25rem;
}

/* ── Tables ─────────────────────────────────────────────────── */
.table thead th {
    font-size: .7rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: #94a3b8;
    border-bottom: 1px solid #f1f5f9;
}
.table-light { --bs-table-bg: #f8fafc; }
.table-hover tbody tr:hover { --bs-table-hover-bg: #f8fafc; }

/* ── Forms ──────────────────────────────────────────────────── */
.form-control, .form-select {
    border-radius: .5rem;
    border-color: #e2e8f0;
    transition: border-color .15s, box-shadow .15s;
}
.form-control:focus, .form-select:focus {
    border-color: var(--wa-primary);
    box-shadow: 0 0 0 3px rgba(67,97,238,.15);
}

/* ── Badges ─────────────────────────────────────────────────── */
.badge { font-weight: 600; }

/* ── Alerts ─────────────────────────────────────────────────── */
.alert {
    border-radius: .75rem;
    border: none;
    border-left: 4px solid;
}
.alert-success { border-left-color: var(--wa-success); background: #f0fdf9; color: #065f46; }
.alert-danger  { border-left-color: var(--wa-danger);  background: #fef2f2; color: #991b1b; }
.alert-warning { border-left-color: var(--wa-warning); background: #fffbeb; color: #92400e; }
.alert-info    { border-left-color: var(--wa-info);    background: #ecfeff; color: #164e63; }

/* ── Pagination ─────────────────────────────────────────────── */
.page-link { border-radius: .375rem !important; color: var(--wa-primary); }
.page-item.active .page-link { background: var(--wa-primary); border-color: var(--wa-primary); }
