:root {
    --color-bg: #f8f9fe;
    --color-bg-light: #f1f3f8;
    --color-surface: #ffffff;
    --color-border: #eef0f2;
    --color-text-primary: #1e2022;
    --color-text-secondary: #6c757d;
    --color-text-tertiary: #9ca3af;
    --color-accent: #0180b6;
    --color-accent-dark: #016a98;
    --color-accent-gradient: linear-gradient(45deg, #0180b6, #02a1e6);
    --color-accent-glow: rgba(1, 128, 182, 0.15);
    --color-accent-light: #e6f7ff;
    --color-green: #16a34a;
    --color-orange: #f97316;
    --color-red: #dc2626;
    --color-blue: #2563eb;
    --color-purple: #9333ea;
    --border-radius-sm: 6px;
    --border-radius-md: 10px;
    --border-radius-lg: 16px;
    --shadow-sm: 0 2px 4px rgba(0, 0, 0, 0.05);
    --shadow-md: 0 4px 12px rgba(0, 0, 0, 0.08);
    --shadow-lg: 0 10px 30px rgba(1, 128, 182, 0.1);
    --font-family: 'DM Sans', sans-serif;
}
* { margin: 0; padding: 0; box-sizing: border-box; }
@keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }
@keyframes fadeInUp {
    from { opacity: 0; transform: translateY(15px); }
    to { opacity: 1; transform: translateY(0); }
}
@keyframes fadeOutDown {
    from { opacity: 1; transform: translateY(0); }
    to { opacity: 0; transform: translateY(15px); }
}
@keyframes spin {
    to { transform: rotate(360deg); }
}
.spinner {
    display: none;
    width: 20px;
    height: 20px;
    border: 2px solid rgba(255,255,255,0.5);
    border-top-color: #fff;
    border-radius: 50%;
    animation: spin 0.8s linear infinite;
}
.btn.loading .spinner { display: inline-block; }
.btn.loading .btn-text,
.btn.loading .lucide { display: none; }
.fade-out {
    animation: fadeOutDown 0.3s cubic-bezier(0.5, 0, 0.75, 0) forwards;
}
body {
    font-family: var(--font-family); background-color: var(--color-bg);
    color: var(--color-text-primary); height: 100vh; overflow: hidden;
    -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale;
}