/* ============================================================
   InfraRegio — Skin / Color Theme
   Všetky farby sú definované tu ako CSS Custom Properties.
   Na zmenu skinu stačí upraviť tento súbor.
   Light = default (:root), Dark = [data-theme="dark"]
   ============================================================ */

/* ==================== LIGHT THEME ==================== */
:root {
    /* Primary brand — InfraRegio teal/mint */
    --primary: #065A6E;
    --primary-light: #A1DFD6;
    --primary-dark: #023D4C;
    --primary-50: #E8F7F5;
    --primary-100: #D0F0EA;
    --primary-gradient: linear-gradient(135deg, #065A6E 0%, #0A7B8F 100%);

    /* Semantic colors */
    --success: #10B981;
    --success-light: #D1FAE5;
    --success-dark: #059669;
    --warning: #F59E0B;
    --warning-light: #FEF3C7;
    --warning-dark: #D97706;
    --danger: #EF4444;
    --danger-light: #FEE2E2;
    --danger-dark: #DC2626;
    --danger-200: #FCA5A5;
    --info: #06B6D4;
    --info-light: #CFFAFE;
    --info-dark: #0891B2;

    /* Flash messages */
    --flash-success-text: #065F46;
    --flash-error-text: #991B1B;
    --flash-warning-text: #92400E;
    --flash-info-text: #075985;

    /* Neutrals (gray scale) */
    --white: #FFFFFF;
    --gray-25: #FCFCFD;
    --gray-50: #F9FAFB;
    --gray-100: #F3F4F6;
    --gray-200: #E5E7EB;
    --gray-300: #D1D5DB;
    --gray-400: #9CA3AF;
    --gray-500: #6B7280;
    --gray-600: #4B5563;
    --gray-700: #374151;
    --gray-800: #1F2937;
    --gray-900: #111827;
    --gray-950: #030712;

    /* Slate (mapa, autocomplete, doplnkové UI) */
    --slate-200: #e2e8f0;
    --slate-300: #cbd5e1;
    --slate-400: #94a3b8;
    --slate-500: #64748b;
    --slate-600: #475569;
    --slate-700: #334155;
    --slate-800: #1e293b;

    /* Focus ring */
    --focus-ring-color: #3b82f6;
    --focus-ring-shadow: 0 0 0 3px rgba(59, 130, 246, 0.15);

    /* CTA / accent gradients */
    --cta-gradient: linear-gradient(135deg, #f0f9ff 0%, #e0f2fe 100%);
    --about-gradient: linear-gradient(135deg, #E8F7F5 0%, #F5F3FF 50%, #E8F7F5 100%);

    /* Sidebar */
    --sidebar-bg: #023D4C;
    --sidebar-hover: rgba(255,255,255,0.08);
    --sidebar-active: rgba(161,223,214,0.2);
    --sidebar-border: rgba(255,255,255,0.06);
    --sidebar-text: #94A3B8;
    --sidebar-text-active: #FFFFFF;

    /* Shadows */
    --shadow-glow: 0 0 20px rgba(6,90,110,0.15);

    /* Glass */
    --glass-bg: rgba(255,255,255,0.7);
    --glass-border: rgba(255,255,255,0.2);

    /* Topbar */
    --topbar-bg: rgba(255,255,255,0.85);

    /* Print */
    --print-border: #ddd;

}

/* ==================== DARK THEME ==================== */
[data-theme="dark"] {
    /* Primary brand — jasnejší teal pre dark pozadie */
    --primary: #0EA5C7;
    --primary-light: #164E63;
    --primary-dark: #A1DFD6;
    --primary-50: #0C2D3A;
    --primary-100: #0F3D4E;
    --primary-gradient: linear-gradient(135deg, #0E7490 0%, #06B6D4 100%);

    /* Semantic colors — jemnejšie, tmavé pozadia */
    --success: #34D399;
    --success-light: #064E3B;
    --success-dark: #6EE7B7;
    --warning: #FBBF24;
    --warning-light: #451A03;
    --warning-dark: #FCD34D;
    --danger: #F87171;
    --danger-light: #450A0A;
    --danger-dark: #FCA5A5;
    --danger-200: #991B1B;
    --info: #22D3EE;
    --info-light: #083344;
    --info-dark: #67E8F9;

    /* Flash messages */
    --flash-success-text: #6EE7B7;
    --flash-error-text: #FCA5A5;
    --flash-warning-text: #FCD34D;
    --flash-info-text: #67E8F9;

    /* Neutrals — invertovaná škála */
    --white: #111827;
    --gray-25: #111827;
    --gray-50: #1a2233;
    --gray-100: #1F2937;
    --gray-200: #374151;
    --gray-300: #4B5563;
    --gray-400: #6B7280;
    --gray-500: #9CA3AF;
    --gray-600: #D1D5DB;
    --gray-700: #E5E7EB;
    --gray-800: #F3F4F6;
    --gray-900: #F9FAFB;
    --gray-950: #FFFFFF;

    /* Slate — invertovaná škála */
    --slate-200: #334155;
    --slate-300: #475569;
    --slate-400: #94a3b8;
    --slate-500: #cbd5e1;
    --slate-600: #e2e8f0;
    --slate-700: #f1f5f9;
    --slate-800: #f8fafc;

    /* Focus ring */
    --focus-ring-color: #38BDF8;
    --focus-ring-shadow: 0 0 0 3px rgba(56, 189, 248, 0.25);

    /* CTA / accent gradients */
    --cta-gradient: linear-gradient(135deg, #0C2D3A 0%, #0F3D4E 100%);
    --about-gradient: linear-gradient(135deg, #0C2D3A 0%, #1a1a2e 50%, #0C2D3A 100%);

    /* Sidebar — tmavší */
    --sidebar-bg: #0a1929;
    --sidebar-hover: rgba(255,255,255,0.06);
    --sidebar-active: rgba(14,165,199,0.25);
    --sidebar-border: rgba(255,255,255,0.04);
    --sidebar-text: #94A3B8;
    --sidebar-text-active: #FFFFFF;

    /* Shadows */
    --shadow-glow: 0 0 20px rgba(14,165,199,0.2);

    /* Glass */
    --glass-bg: rgba(17,24,39,0.8);
    --glass-border: rgba(255,255,255,0.08);

    /* Topbar */
    --topbar-bg: rgba(17,24,39,0.85);

    /* Print */
    --print-border: #374151;

}

/* ==================== THEME TOGGLE ==================== */
.theme-toggle {
    position: relative;
    width: 44px;
    height: 24px;
    background: var(--gray-300);
    border-radius: 12px;
    border: none;
    cursor: pointer;
    padding: 0;
    transition: background 0.3s;
    flex-shrink: 0;
}
.theme-toggle::after {
    content: '';
    position: absolute;
    top: 2px;
    left: 2px;
    width: 20px;
    height: 20px;
    background: var(--gray-900);
    border-radius: 50%;
    transition: transform 0.3s, background 0.3s;
    display: flex;
    align-items: center;
    justify-content: center;
}
[data-theme="dark"] .theme-toggle {
    background: var(--primary);
}
[data-theme="dark"] .theme-toggle::after {
    transform: translateX(20px);
}

/* Ikony slnko/mesiac v toggle */
.theme-toggle-icon {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    font-size: 14px;
    line-height: 1;
    pointer-events: none;
    transition: opacity 0.3s;
}
.theme-toggle-sun {
    left: 5px;
    opacity: 1;
}
.theme-toggle-moon {
    right: 5px;
    opacity: 0.5;
}
[data-theme="dark"] .theme-toggle-sun {
    opacity: 0.5;
}
[data-theme="dark"] .theme-toggle-moon {
    opacity: 1;
}
