*, *::before, *::after {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

:root {
    --bg: #0E0B08;
    --surface: #181410;
    --card: #221D15;
    --border: rgba(255,255,255,0.07);
    --primary: #F09318;
    --primary-light: #FFB740;
    --secondary: #C05828;
    --accent: #FF5A22;
    --success: #10B981;
    --danger: #EF4444;
    --text: #F0F0F5;
    --text-muted: #8888A0;
    --radius: 6px;
    --radius-lg: 10px;
    --shadow: 0 8px 32px rgba(0,0,0,0.4);
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    --font-display: 'Space Grotesk', 'Inter', sans-serif;
    --transition: 0.2s ease;
    --dot-color: rgba(255,255,255,0.05);
}

[data-theme="light"] {
    --bg: #E4E8F2;
    --surface: #F8F9FC;
    --card: #FFFFFF;
    --border: rgba(0,0,0,0.09);
    --text: #1A1A2E;
    --text-muted: #6B6B85;
    --shadow: 0 8px 32px rgba(0,0,0,0.1);
    --dot-color: rgba(0,0,0,0.09);
}

/* ── Pastéis ── */
[data-theme="lavender"] {
    --bg: #E8DEFF; --surface: #FAF8FF; --card: #F3EFFF;
    --border: rgba(139,92,246,0.2); --text: #1E1030; --text-muted: #6B5F85;
    --primary: #7C3AED; --primary-light: #9F67FF;
    --shadow: 0 8px 32px rgba(124,58,237,0.14); --dot-color: rgba(139,92,246,0.1);
}
[data-theme="mint"] {
    --bg: #C8F0E0; --surface: #F4FCF9; --card: #E8F8F1;
    --border: rgba(16,185,129,0.2); --text: #0A2A1C; --text-muted: #3A6E58;
    --primary: #059669; --primary-light: #10B981;
    --shadow: 0 8px 32px rgba(5,150,105,0.14); --dot-color: rgba(16,185,129,0.1);
}
[data-theme="rose"] {
    --bg: #FFD6DC; --surface: #FFF7F8; --card: #FFEEF1;
    --border: rgba(244,63,94,0.2); --text: #2E0D14; --text-muted: #8A3A50;
    --primary: #E11D48; --primary-light: #F43F5E;
    --shadow: 0 8px 32px rgba(225,29,72,0.14); --dot-color: rgba(244,63,94,0.1);
}
[data-theme="peach"] {
    --bg: #FFD8B0; --surface: #FFF7EF; --card: #FFEEDD;
    --border: rgba(249,115,22,0.2); --text: #2E1A0D; --text-muted: #8A5A2A;
    --primary: #EA6A0A; --primary-light: #F97316;
    --shadow: 0 8px 32px rgba(234,106,10,0.14); --dot-color: rgba(249,115,22,0.1);
}
[data-theme="sky"] {
    --bg: #C0DCFF; --surface: #F2F8FF; --card: #E2F0FF;
    --border: rgba(14,165,233,0.2); --text: #0A1E30; --text-muted: #2E5A80;
    --primary: #0284C7; --primary-light: #0EA5E9;
    --shadow: 0 8px 32px rgba(2,132,199,0.14); --dot-color: rgba(14,165,233,0.1);
}

/* ── Elegantes ── */
[data-theme="bordeaux"] {
    --bg: #130409; --surface: #1E080F; --card: #270C16;
    --border: rgba(255,255,255,0.07); --text: #F0E8EA; --text-muted: #A08088;
    --primary: #C0392B; --primary-light: #E74C3C;
    --shadow: 0 8px 32px rgba(0,0,0,0.5); --dot-color: rgba(255,255,255,0.05);
}
[data-theme="petrol"] {
    --bg: #040F12; --surface: #07181C; --card: #0A2028;
    --border: rgba(255,255,255,0.07); --text: #E0F4F8; --text-muted: #608090;
    --primary: #0E7490; --primary-light: #06B6D4;
    --shadow: 0 8px 32px rgba(0,0,0,0.5); --dot-color: rgba(255,255,255,0.05);
}
[data-theme="leather"] {
    --bg: #120A04; --surface: #1C1008; --card: #25160A;
    --border: rgba(255,255,255,0.07); --text: #F4EDE6; --text-muted: #9A7A60;
    --primary: #A0522D; --primary-light: #C06A38;
    --shadow: 0 8px 32px rgba(0,0,0,0.5); --dot-color: rgba(255,255,255,0.05);
}
[data-theme="slate"] {
    --bg: #0C0E12; --surface: #141720; --card: #1C2030;
    --border: rgba(255,255,255,0.07); --text: #E8EAF0; --text-muted: #788090;
    --primary: #64748B; --primary-light: #94A3B8;
    --shadow: 0 8px 32px rgba(0,0,0,0.5); --dot-color: rgba(255,255,255,0.05);
}
[data-theme="moss"] {
    --bg: #060D08; --surface: #0C1610; --card: #111E15;
    --border: rgba(255,255,255,0.07); --text: #E4F0E6; --text-muted: #5A8060;
    --primary: #4A7C59; --primary-light: #6BAE80;
    --shadow: 0 8px 32px rgba(0,0,0,0.5); --dot-color: rgba(255,255,255,0.05);
}

/* ── Vibrantes ── */
[data-theme="terra"] {
    --bg: #A9B79E; --surface: #EEECE4; --card: #F5F3EC;
    --border: rgba(194,88,72,0.15); --text: #2A180E; --text-muted: #7A5A48;
    --primary: #C25848; --primary-light: #D97060;
    --shadow: 0 8px 32px rgba(194,88,72,0.18); --dot-color: rgba(194,88,72,0.08);
}
[data-theme="naval"] {
    --bg: #1D2F46; --surface: #243757; --card: #2E4A63;
    --border: rgba(255,255,255,0.08); --text: #DAD5B7; --text-muted: #8A9AAA;
    --primary: #4A7A8E; --primary-light: #6A9AB0;
    --shadow: 0 8px 32px rgba(0,0,0,0.5); --dot-color: rgba(255,255,255,0.05);
}
[data-theme="fogo"] {
    --bg: #1A0810; --surface: #331327; --card: #40192F;
    --border: rgba(255,255,255,0.08); --text: #FFE8F5; --text-muted: #C080A0;
    --primary: #D90F5A; --primary-light: #F34739;
    --shadow: 0 8px 32px rgba(0,0,0,0.6); --dot-color: rgba(217,15,90,0.08);
}
[data-theme="botanico"] {
    --bg: #D6E1C7; --surface: #F5F2EB; --card: #EDEBE6;
    --border: rgba(64,59,51,0.12); --text: #403B33; --text-muted: #7A6A5A;
    --primary: #D3643B; --primary-light: #E8875A;
    --shadow: 0 8px 32px rgba(211,100,59,0.15); --dot-color: rgba(64,59,51,0.08);
}
[data-theme="tropical"] {
    --bg: #C8E0D5; --surface: #F8F5E0; --card: #FFF9DE;
    --border: rgba(184,28,72,0.15); --text: #2A1520; --text-muted: #632739;
    --primary: #B81C48; --primary-light: #D43065;
    --shadow: 0 8px 32px rgba(184,28,72,0.15); --dot-color: rgba(184,28,72,0.08);
}

html { transition: background 0.25s ease, color 0.25s ease; }

html, body {
    height: 100%;
    font-family: 'Inter', system-ui, -apple-system, sans-serif;
    background: var(--bg);
    color: var(--text);
    overflow: hidden;
}

a {
    color: var(--primary-light);
    text-decoration: none;
    transition: color var(--transition);
}

a:hover { color: var(--secondary); }

input, textarea, select, button { font-family: inherit; }

button { cursor: pointer; border: none; outline: none; }

::-webkit-scrollbar { width: 5px; height: 5px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: rgba(255,255,255,0.1); border-radius: 3px; }

.hidden { display: none !important; }
