/* ── Theme Tokens ──────────────────────────────────────────────────────── */
:root {
    --color-primary: #b03b14;
    --color-primary-rgb: 176, 59, 20;
    --color-secondary: #f59e0b;
    --color-bg: 31 11 4;
    --color-nav: 10 5 2;
}
:root[data-theme="ocean"] {
    --color-primary: #2563eb;
    --color-primary-rgb: 37, 99, 235;
    --color-secondary: #9333ea;
    --color-bg: 4 13 33;
    --color-nav: 2 7 20;
}
:root[data-theme="emerald"] {
    --color-primary: #059669;
    --color-primary-rgb: 5, 150, 105;
    --color-secondary: #3b82f6;
    --color-bg: 1 28 19;
    --color-nav: 0 15 10;
}
:root[data-theme="purple"] {
    --color-primary: #9333ea;
    --color-primary-rgb: 147, 51, 234;
    --color-secondary: #ec4899;
    --color-bg: 25 5 43;
    --color-nav: 14 2 25;
}
:root[data-theme="default"] {
    --color-primary: #b03b14;
    --color-primary-rgb: 176, 59, 20;
    --color-secondary: #f59e0b;
    --color-bg: 31 11 4;
    --color-nav: 10 5 2;
}
/* Apple-blue theme (no data-theme set) */
:root:not([data-theme]) {
    --color-primary: #0071e3;
    --color-primary-rgb: 0, 113, 227;
    --color-secondary: #9333ea;
    --color-bg: 0 10 23;
    --color-nav: 0 5 14;
}

/* ── Base ──────────────────────────────────────────────────────────────── */
body {
    background-color: rgb(var(--color-bg));
    color: #f5f5f7;
    -webkit-font-smoothing: antialiased;
    transition: background-color 0.5s ease;
}

/* ── Navigation Glass ──────────────────────────────────────────────────── */
.apple-glass {
    background: rgba(var(--color-bg), 0.7);
    backdrop-filter: saturate(180%) blur(20px);
    -webkit-backdrop-filter: saturate(180%) blur(20px);
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
    transition: background-color 0.5s ease;
}

/* ── Hero Gradient ─────────────────────────────────────────────────────── */
.hero-gradient {
    background: radial-gradient(circle at 50% -20%, rgba(var(--color-primary-rgb), 0.15) 0%, rgba(0, 0, 0, 0) 50%);
}

/* ── Buttons ───────────────────────────────────────────────────────────── */
.apple-btn {
    background-color: #f5f5f7;
    color: #1d1d1f;
    border-radius: 980px;
    font-weight: 600;
    transition: all 0.3s ease;
}
.apple-btn:hover {
    background-color: #ffffff;
    transform: scale(1.02);
}
.apple-btn-blue {
    background-color: var(--color-primary);
    color: #ffffff;
    border-radius: 980px;
    font-weight: 500;
    transition: all 0.3s ease;
}
.apple-btn-blue:hover {
    filter: brightness(1.12);
    transform: scale(1.01);
}

/* ── Cards ─────────────────────────────────────────────────────────────── */
.unlock-card {
    background: linear-gradient(145deg, rgba(29, 29, 31, 0.9) 0%, rgba(0, 0, 0, 0.8) 100%);
    border: 1px solid rgba(255, 255, 255, 0.1);
    box-shadow: 0 30px 60px rgba(0,0,0,0.5);
}

/* Dashboard glassmorphism card – used across dashboard & modals */
.dash-card {
    background: rgba(255, 255, 255, 0.05);
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 1rem;
    box-shadow: 0 4px 30px rgba(0, 0, 0, 0.1);
}

/* ── Glass Inputs ──────────────────────────────────────────────────────── */
.input-glass {
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid rgba(255, 255, 255, 0.1);
    color: #fff;
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    transition: all 0.3s ease;
}
.input-glass:focus {
    border-color: var(--color-primary);
    box-shadow: 0 0 0 4px rgba(var(--color-primary-rgb), 0.2);
    outline: none;
}
.input-glass::placeholder { color: rgba(255,255,255,0.3); }

/* ── Service item selected state (dashboard) ───────────────────────────── */
.svc-item.selected {
    background-color: rgba(255, 255, 255, 0.1);
    border-left: 4px solid var(--color-primary);
}
.svc-item.selected div { color: var(--color-primary) !important; }

/* ── Nav link active state (dashboard) ────────────────────────────────── */
.nav-link.active {
    color: #ffffff;
    border-bottom: 2px solid var(--color-primary);
    font-weight: bold;
}

/* ── Animations ────────────────────────────────────────────────────────── */
@keyframes shimmer {
    100% { transform: translateX(100%); }
}
@keyframes marquee {
    0%   { transform: translateX(0); }
    100% { transform: translateX(-50%); }
}
@keyframes fade-in {
    from { opacity: 0; transform: translateY(8px); }
    to   { opacity: 1; transform: translateY(0); }
}
.animate-fade-in { animation: fade-in 0.35s ease-out both; }
