/* Members Platform brand tokens */
:root {
    --wca-orange: #ea5b0c;
    --wca-orange-hover: #d14f0a;
    --wca-burgundy: #761e2b;
    --wca-gold: #ffcc00;
    --mp-surface: hsl(var(--b1));
    --mp-surface-soft: hsl(var(--b2));
    --mp-border: hsl(var(--b3));
    --mp-text: hsl(var(--bc));
    --mp-text-muted: hsl(var(--bc) / 0.62);
    --mp-primary: hsl(var(--p));
}

body {
    background: linear-gradient(180deg, hsl(var(--b2)) 0%, hsl(var(--b1)) 100%);
    color: var(--mp-text);
}

/* Brand accent overrides */
.bg-accent { background-color: hsl(var(--a)); }
.hover\:bg-accent:hover { filter: brightness(0.95); }
.text-accent { color: hsl(var(--a)); }
.border-accent { border-color: hsl(var(--a)); }

/* Compatibility bridge for older Tailwind-heavy pages during the theme rollout. */
html[data-theme] .bg-white { background-color: hsl(var(--b1)) !important; }
html[data-theme] .bg-gray-50,
html[data-theme] .bg-slate-50 { background-color: hsl(var(--b2)) !important; }
html[data-theme] .bg-gray-100,
html[data-theme] .bg-slate-100 { background-color: hsl(var(--b3)) !important; }
html[data-theme] .border-gray-100,
html[data-theme] .border-gray-200,
html[data-theme] .border-gray-300,
html[data-theme] .border-slate-100,
html[data-theme] .border-slate-200,
html[data-theme] .border-slate-300 { border-color: hsl(var(--b3)) !important; }
html[data-theme] .text-gray-900,
html[data-theme] .text-slate-900 { color: hsl(var(--bc)) !important; }
html[data-theme] .text-gray-800,
html[data-theme] .text-gray-700,
html[data-theme] .text-slate-800,
html[data-theme] .text-slate-700 { color: hsl(var(--bc) / 0.78) !important; }
html[data-theme] .text-gray-600,
html[data-theme] .text-slate-600 { color: hsl(var(--bc) / 0.68) !important; }
html[data-theme] .text-gray-500,
html[data-theme] .text-slate-500 { color: hsl(var(--bc) / 0.58) !important; }
html[data-theme] .text-gray-400,
html[data-theme] .text-slate-400 { color: hsl(var(--bc) / 0.45) !important; }
html[data-theme] .hover\:bg-gray-50:hover,
html[data-theme] .hover\:bg-gray-100:hover,
html[data-theme] .hover\:bg-slate-50:hover,
html[data-theme] .hover\:bg-slate-100:hover { background-color: hsl(var(--b2)) !important; }
html[data-theme] .hover\:text-gray-900:hover,
html[data-theme] .hover\:text-slate-900:hover { color: hsl(var(--bc)) !important; }

/* App shell polish */
#sidebar {
    background: linear-gradient(180deg, hsl(var(--b1) / 0.98) 0%, hsl(var(--b2) / 0.98) 100%);
}

#sidebar a,
header a,
header button {
    transition: all 0.2s ease;
}

#sidebar .nav-link,
#sidebar nav a {
    border: 1px solid transparent;
}

#sidebar nav summary {
    border: 1px solid transparent;
}

#sidebar .nav-link:hover,
#sidebar nav a:hover,
#sidebar nav summary:hover {
    background: hsl(var(--b1));
    border-color: hsl(var(--b3));
    box-shadow: 0 6px 18px hsl(var(--bc) / 0.06);
}

#sidebar .nav-active {
    background: linear-gradient(135deg, hsl(var(--p) / 0.14), hsl(var(--bc) / 0.05));
    color: hsl(var(--bc)) !important;
    border-color: hsl(var(--p) / 0.22);
}

#sidebar .bg-wca-orange-500.text-white {
    background: hsl(var(--p)) !important;
    color: hsl(var(--pc)) !important;
    box-shadow: 0 10px 24px hsl(var(--p) / 0.20);
}

#sidebar .bg-wca-orange-50 {
    background: hsl(var(--p) / 0.10) !important;
}

header {
    box-shadow: 0 6px 24px hsl(var(--bc) / 0.05);
}

main .rounded-lg,
main .rounded-xl,
main .rounded-2xl {
    border-color: var(--mp-border);
}

main .shadow-sm {
    box-shadow: 0 8px 24px rgba(15, 23, 42, 0.04);
}

/* Shared component polish */
.shadow-card {
    box-shadow: 0 12px 32px hsl(var(--bc) / 0.07) !important;
}

.bg-white.rounded-xl.border.border-gray-100.shadow-card,
.bg-white.rounded-xl.border.border-gray-100.shadow-card.p-5,
.bg-white.rounded-xl.border.border-gray-100.shadow-card.p-4,
.bg-white.rounded-xl.border.border-gray-100.shadow-card.overflow-hidden {
    background: hsl(var(--b1)) !important;
    border-color: hsl(var(--b3)) !important;
    border-radius: 1rem !important;
    box-shadow: 0 12px 32px hsl(var(--bc) / 0.07) !important;
}

.btn-md {
    border-radius: 0.85rem !important;
    font-weight: 600 !important;
}

.btn-primary {
    background: hsl(var(--p)) !important;
    color: hsl(var(--pc)) !important;
    border-color: hsl(var(--p)) !important;
    box-shadow: 0 12px 24px hsl(var(--p) / 0.18);
}

.btn-primary:hover {
    filter: brightness(0.94);
}

.btn-secondary {
    border-color: hsl(var(--b3)) !important;
    background: hsl(var(--b1)) !important;
    color: hsl(var(--bc)) !important;
    box-shadow: 0 4px 14px hsl(var(--bc) / 0.04);
}

.btn-secondary:hover {
    border-color: hsl(var(--p) / 0.28) !important;
    background: linear-gradient(135deg, hsl(var(--p) / 0.08), hsl(var(--bc) / 0.03)) !important;
    color: hsl(var(--bc)) !important;
}

.table-header {
    color: hsl(var(--bc) / 0.62) !important;
    font-weight: 700 !important;
    letter-spacing: 0.08em !important;
}

.table-cell {
    color: hsl(var(--bc) / 0.76) !important;
}

.table-row {
    border-color: hsl(var(--b3) / 0.55) !important;
}

.table-row:hover {
    background: linear-gradient(135deg, hsl(var(--b2) / 0.95), hsl(var(--p) / 0.08)) !important;
}

.badge {
    border-radius: 999px !important;
    font-weight: 700 !important;
}

.page-title,
main h1,
main h2,
main h3 {
    color: hsl(var(--bc));
}

/* Chart colors */
.chart-primary { background-color: hsl(var(--p)); }
.chart-secondary { background-color: hsl(var(--s)); }
.chart-accent { background-color: var(--wca-gold); }
