/* css/core.css - v2.2.0 */

:root {
    --font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    --accent-color: hsl(221, 83%, 53%);
    --accent-color-hover: hsl(221, 83%, 48%);
    --background-primary: hsl(210, 40%, 98%);
    --background-secondary: hsl(210, 40%, 95%);
    --surface-primary: hsl(0, 0%, 100%);
    --surface-secondary: hsl(210, 40%, 96%);
    --text-primary: hsl(215, 25%, 27%);
    --text-secondary: hsl(215, 15%, 48%);
    --border-primary: hsl(214, 32%, 91%);
    --border-secondary: hsl(210, 20%, 85%);
    --error-color: hsl(0, 72%, 51%);
    --error-color-hover: hsl(0, 72%, 46%);
    --success-color: hsl(142, 71%, 45%);
    --warning-color: hsl(45, 100%, 51%);
    --shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1);
    --shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.1);
    --radius: 0.75rem;
}

body.dark-mode {
    --accent-color: hsl(217, 91%, 60%);
    --accent-color-hover: hsl(217, 91%, 65%);
    --background-primary: hsl(222, 47%, 11%);
    --background-secondary: hsl(222, 47%, 15%);
    --surface-primary: hsl(222, 47%, 16%);
    --surface-secondary: hsl(216, 30%, 25%);
    --text-primary: hsl(210, 40%, 98%);
    --text-secondary: hsl(215, 20%, 65%);
    --border-primary: hsl(217, 33%, 27%);
    --border-secondary: hsl(217, 25%, 35%);
}

* { box-sizing: border-box; }
html, body { overflow-x: hidden; }
body {
    font-family: var(--font-sans);
    margin: 0;
    background-color: var(--background-primary);
    color: var(--text-primary);
    transition: background-color 0.2s, color 0.2s;
}
.view { display: none; animation: fadeIn 0.5s ease-in-out; }
@keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }
h1, h2, h3, h4, p { margin: 0; }
h1 { font-size: 1.875rem; font-weight: 700; }
h2 { font-size: 1.5rem; font-weight: 600; }
h3 { font-size: 1.25rem; font-weight: 600; }
h4 { font-size: 1.1rem; font-weight: 600; }
a { color: var(--accent-color); text-decoration: none; }
a:hover { text-decoration: underline; }

.admin-only { display: none; }

hr { border: none; border-top: 1px solid var(--border-primary); margin: 2rem 0; }

.error-message { color: var(--error-color); font-size: 0.875rem; min-height: 20px; text-align: left; margin-top: 0.5rem; }

.diag-success { color: var(--success-color); font-weight: bold; }
.diag-fail { color: var(--error-color); font-weight: bold; }
