/* ================================================================
   JKZM Admin — Cinematic Light Professional (v8.0)

   Light dashboard variant matching public cinematic site:
   - Off-white body (#f8f9fb) — komfortné pre dlhú prácu
   - Dark navy sidebar (zachováva fokus + brand consistency)
   - Biele karty s jemnými borders
   - Gold akcent #d4b170 (matching public)
   - Inter sans, Fraunces serif pre nadpisy
   - Žiadne detské emoji, iba funkčné symboly (✓ ✕ ★)
   ================================================================ */

:root {
    /* Light admin palette */
    --bg: #f7f8fb !important;
    --bg-2: #ffffff !important;
    --bg-3: #f1f3f7 !important;
    --surface: #ffffff !important;
    --surface-hi: #fafbfd !important;
    --border: #e5e7eb !important;
    --border-hi: #d1d5db !important;
    --ink: #0f172a !important;
    --ink-2: #334155 !important;
    --ink-3: #64748b !important;
    --gold: #b8954e !important;
    --gold-hi: #d4b170 !important;
    --gold-soft: rgba(184, 149, 78, 0.12) !important;

    /* Legacy variable overrides */
    --primary: #b8954e !important;
    --primary-dark: #9a7a3e !important;
    --primary-light: #d4b170 !important;
    --dark: #0f172a !important;
    --gray: #64748b !important;
    --gray-light: #e5e7eb !important;
    --light: #f7f8fb !important;
    --white: #ffffff !important;
    --danger: #dc2626 !important;
    --error: #dc2626 !important;
    --success: #059669 !important;
    --warning: #d97706 !important;
    --info: #2563eb !important;
    --muted: #64748b !important;
    --text: #0f172a !important;
    --secondary: #b8954e !important;
    --bg-light: #f7f8fb !important;
    --shadow: 0 1px 2px rgba(15, 23, 42, 0.04), 0 2px 8px rgba(15, 23, 42, 0.04) !important;
    --radius: 12px !important;
}

/* Body — light off-white */
body {
    background: #f7f8fb !important;
    color: var(--ink) !important;
    font-family: 'Inter', system-ui, -apple-system, sans-serif !important;
    -webkit-font-smoothing: antialiased;
    min-height: 100vh;
}

/* Headings — Fraunces pre profesionálny look, tmavá navy */
h1, h2, h3, h4, h5, h6 {
    color: var(--ink) !important;
    letter-spacing: -0.015em !important;
}

/* Sidebar — deep navy (brand consistency s public site headerom) */
.sidebar {
    background: linear-gradient(180deg, #0a1628 0%, #0d1b2e 100%) !important;
    border-right: 1px solid rgba(15, 23, 42, 0.08) !important;
    color: #f5f6f9 !important;
    box-shadow: 4px 0 20px rgba(15, 23, 42, 0.04);
    z-index: 100 !important;
}
.sidebar-header {
    border-bottom: 1px solid rgba(255, 255, 255, 0.08) !important;
}
.sidebar-header img {
    height: 44px !important;
    filter: none !important;
    background: #fff;
    padding: 3px;
    border-radius: 50%;
}
.sidebar-header h2 {
    font-size: 0.95rem !important;
    font-weight: 600 !important;
    color: #fff !important;
}
.sidebar-header small {
    font-size: 0.66rem !important;
    letter-spacing: 0.12em !important;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.55) !important;
}

/* Nav items in sidebar — dark sidebar, gold active */
.nav-item {
    color: rgba(245, 246, 249, 0.7) !important;
    font-size: 0.88rem !important;
    font-weight: 500 !important;
    padding: 0.6rem 1rem !important;
    border-radius: 8px !important;
    transition: all 0.2s ease !important;
}
.nav-item:hover {
    background: rgba(255, 255, 255, 0.06) !important;
    color: #fff !important;
}
.nav-item.active {
    background: rgba(212, 177, 112, 0.14) !important;
    color: #d4b170 !important;
    font-weight: 600 !important;
    border-left: 2px solid #d4b170 !important;
    padding-left: calc(1rem - 2px) !important;
}
.nav-item .badge {
    background: #d4b170 !important;
    color: #0a1628 !important;
    font-weight: 700 !important;
}
.nav-section-title {
    color: rgba(255, 255, 255, 0.5) !important;
    font-size: 0.66rem !important;
    letter-spacing: 0.18em !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    padding: 0.5rem 1rem !important;
}
.nav-section-title:hover {
    color: rgba(255, 255, 255, 0.75) !important;
}
.nav-section-arrow {
    opacity: 0.45;
    font-size: 0.65em;
    margin-left: 0.5rem;
}
.nav-favorite-star {
    color: rgba(255, 255, 255, 0.25) !important;
    font-size: 0.95em;
    transition: color 0.2s ease, opacity 0.2s ease;
}
.nav-favorite-star:hover,
.nav-favorite-star.active {
    color: #d4b170 !important;
    opacity: 1;
}

/* Main content area */
.main {
    padding: 2rem 2.5rem !important;
    background: #f7f8fb !important;
}

/* Header (page topbar) */
.header {
    background: transparent !important;
    border-bottom: 1px solid var(--border) !important;
    padding: 1rem 0 !important;
    margin-bottom: 1.5rem !important;
}
.header h1 {
    font-size: 1.65rem !important;
    font-weight: 500 !important;
    color: var(--ink) !important;
    font-family: 'Fraunces', 'Inter', serif !important;
    letter-spacing: -0.02em !important;
}

/* Buttons */
.btn {
    font-family: 'Inter', system-ui, sans-serif !important;
    font-weight: 500 !important;
    letter-spacing: 0.01em !important;
    border-radius: 10px !important;
    transition: all 0.2s ease !important;
    padding: 0.6rem 1.1rem !important;
}
.btn-primary {
    background: var(--ink) !important;
    color: #ffffff !important;
    border: 1px solid var(--ink) !important;
    font-weight: 600 !important;
}
.btn-primary:hover {
    background: #1e293b !important;
    border-color: #1e293b !important;
    transform: translateY(-1px);
    box-shadow: 0 6px 16px rgba(15, 23, 42, 0.18);
}
.btn-outline,
.btn-secondary {
    background: #ffffff !important;
    border: 1px solid var(--border-hi) !important;
    color: var(--ink-2) !important;
}
.btn-outline:hover,
.btn-secondary:hover {
    border-color: var(--gold) !important;
    color: var(--gold) !important;
    background: var(--gold-soft) !important;
}
.btn-gold {
    background: var(--gold-hi) !important;
    color: var(--ink) !important;
    border: 1px solid var(--gold-hi) !important;
    font-weight: 600 !important;
}
.btn-gold:hover {
    background: var(--gold) !important;
    border-color: var(--gold) !important;
    color: #fff !important;
    transform: translateY(-1px);
}
.btn-danger {
    background: #fff !important;
    border: 1px solid #fecaca !important;
    color: #b91c1c !important;
}
.btn-danger:hover {
    background: #fef2f2 !important;
    border-color: #ef4444 !important;
    color: #991b1b !important;
}
.btn-sm {
    font-size: 0.78rem !important;
    padding: 0.4rem 0.85rem !important;
}

/* Cards */
.card {
    background: #ffffff !important;
    border: 1px solid var(--border) !important;
    border-radius: var(--radius) !important;
    box-shadow: var(--shadow) !important;
    color: var(--ink) !important;
}
.card-header {
    background: #fafbfd !important;
    border-bottom: 1px solid var(--border) !important;
    padding: 1rem 1.25rem !important;
}
.card-header h3 {
    font-size: 0.98rem !important;
    font-weight: 600 !important;
    color: var(--ink) !important;
    font-family: 'Fraunces', 'Inter', serif !important;
}
.card-body {
    padding: 1.25rem !important;
    color: var(--ink-2) !important;
}

/* Stats cards */
.stat-card {
    background: #ffffff !important;
    border: 1px solid var(--border) !important;
    border-radius: var(--radius) !important;
    box-shadow: var(--shadow) !important;
    padding: 1.25rem !important;
}
.stat-card .icon,
.stat-card .icon.green {
    background: var(--gold-soft) !important;
    color: var(--gold) !important;
    border-radius: 10px !important;
}
.stat-card .value {
    color: var(--ink) !important;
    font-weight: 600 !important;
    font-family: 'Fraunces', 'Inter', serif !important;
    letter-spacing: -0.02em !important;
}
.stat-card .label {
    color: var(--ink-3) !important;
    font-size: 0.76rem !important;
    text-transform: uppercase !important;
    letter-spacing: 0.09em !important;
    font-weight: 600 !important;
}

/* Tables */
.table {
    background: #ffffff !important;
    border-radius: var(--radius) !important;
    overflow: hidden;
    border: 1px solid var(--border) !important;
    box-shadow: var(--shadow) !important;
}
.table th {
    background: #f7f8fb !important;
    color: var(--ink-3) !important;
    font-size: 0.72rem !important;
    text-transform: uppercase !important;
    letter-spacing: 0.1em !important;
    font-weight: 600 !important;
    border-bottom: 1px solid var(--border) !important;
    padding: 0.85rem 1rem !important;
}
.table td {
    border-bottom: 1px solid var(--border) !important;
    font-size: 0.88rem !important;
    padding: 0.85rem 1rem !important;
    color: var(--ink-2) !important;
}
.table tbody tr:hover {
    background: var(--gold-soft) !important;
}
.table tbody tr:hover td {
    color: var(--ink) !important;
}

/* Badges */
.badge {
    font-size: 0.72rem !important;
    font-weight: 600 !important;
    padding: 0.25rem 0.6rem !important;
    border-radius: 999px !important;
    letter-spacing: 0.03em !important;
    display: inline-flex !important;
    align-items: center !important;
}
.badge-success {
    background: #d1fae5 !important;
    color: #065f46 !important;
    border: 1px solid #a7f3d0 !important;
}
.badge-warning {
    background: #fef3c7 !important;
    color: #92400e !important;
    border: 1px solid #fde68a !important;
}
.badge-danger {
    background: #fee2e2 !important;
    color: #991b1b !important;
    border: 1px solid #fecaca !important;
}
.badge-info {
    background: #dbeafe !important;
    color: #1e40af !important;
    border: 1px solid #bfdbfe !important;
}

/* Modals */
.modal-content {
    background: #ffffff !important;
    border-radius: 14px !important;
    border: 1px solid var(--border) !important;
    box-shadow: 0 30px 80px rgba(15, 23, 42, 0.2) !important;
    color: var(--ink) !important;
}
.modal-header {
    background: #fafbfd !important;
    border-bottom: 1px solid var(--border) !important;
    color: var(--ink) !important;
}
.modal-header h3,
.modal-header h2 {
    color: var(--ink) !important;
    font-family: 'Fraunces', 'Inter', serif !important;
    font-weight: 500 !important;
}
.modal-footer {
    background: #f7f8fb !important;
    border-top: 1px solid var(--border) !important;
}
.modal-body {
    color: var(--ink-2) !important;
}

/* Form controls */
.form-control,
input[type="text"], input[type="email"], input[type="tel"],
input[type="password"], input[type="number"], input[type="date"],
input[type="time"], input[type="datetime-local"], input[type="search"],
input[type="url"],
textarea, select {
    background: #ffffff !important;
    border: 1px solid var(--border-hi) !important;
    border-radius: 8px !important;
    color: var(--ink) !important;
    font-size: 0.9rem !important;
    padding: 0.65rem 0.85rem !important;
    font-family: inherit !important;
    transition: border-color 0.2s ease, box-shadow 0.2s ease !important;
}
.form-control:focus,
input:focus, textarea:focus, select:focus {
    border-color: var(--gold) !important;
    outline: none !important;
    box-shadow: 0 0 0 3px rgba(184, 149, 78, 0.15) !important;
}
.form-control::placeholder,
input::placeholder, textarea::placeholder {
    color: #94a3b8 !important;
}
label {
    color: var(--ink-2) !important;
    font-weight: 500 !important;
    font-size: 0.86rem !important;
}

/* Tabs */
.tabs,
.tab-bar {
    border-bottom: 1px solid var(--border) !important;
}
.tab {
    font-size: 0.88rem !important;
    font-weight: 500 !important;
    letter-spacing: 0.01em !important;
    color: var(--ink-3) !important;
    padding: 0.75rem 1rem !important;
    transition: color 0.2s ease, border-color 0.2s ease !important;
}
.tab:hover { color: var(--ink-2) !important; }
.tab.active {
    color: var(--gold) !important;
    border-bottom: 2px solid var(--gold) !important;
    font-weight: 600 !important;
}

/* Alerts */
.alert {
    border-radius: var(--radius) !important;
    font-size: 0.88rem !important;
    padding: 0.85rem 1rem !important;
    line-height: 1.55;
}
.alert-info {
    background: #eff6ff !important;
    border-left: 3px solid #2563eb !important;
    color: #1e40af !important;
}
.alert-warning {
    background: #fffbeb !important;
    border-left: 3px solid #d97706 !important;
    color: #92400e !important;
}
.alert-success {
    background: #ecfdf5 !important;
    border-left: 3px solid #059669 !important;
    color: #065f46 !important;
}
.alert-danger {
    background: #fef2f2 !important;
    border-left: 3px solid #dc2626 !important;
    color: #991b1b !important;
}

/* Quick actions */
.quick-action {
    background: #ffffff !important;
    border: 1px solid var(--border) !important;
    border-radius: var(--radius) !important;
    box-shadow: var(--shadow) !important;
    color: var(--ink) !important;
    transition: all 0.25s ease !important;
    padding: 1.25rem !important;
}
.quick-action:hover {
    border-color: var(--gold) !important;
    transform: translateY(-2px);
    box-shadow: 0 8px 24px rgba(15, 23, 42, 0.1) !important;
}

/* Toast */
.toast {
    background: var(--ink) !important;
    color: #f5f6f9 !important;
    border-radius: 10px !important;
    font-size: 0.88rem !important;
    padding: 0.8rem 1.1rem !important;
    box-shadow: 0 12px 30px rgba(15, 23, 42, 0.3) !important;
}
.toast.success { background: #059669 !important; color: #fff !important; }
.toast.error, .toast.danger { background: #dc2626 !important; color: #fff !important; }
.toast.warning { background: #d97706 !important; color: #fff !important; }
.toast.info { background: #2563eb !important; color: #fff !important; }

/* Login page */
.login-page {
    background: linear-gradient(135deg, #0a1628 0%, #112240 100%) !important;
    color: #f5f6f9;
    min-height: 100vh;
}
.login-box {
    background: #ffffff !important;
    border-radius: 16px !important;
    box-shadow: 0 30px 80px rgba(0, 0, 0, 0.35) !important;
    border: 1px solid var(--border) !important;
    color: var(--ink) !important;
}
.login-box h1, .login-box h2 { color: var(--ink) !important; }

/* Fieldset */
.fieldset,
fieldset {
    background: #fafbfd !important;
    border: 1px solid var(--border) !important;
    border-radius: var(--radius) !important;
    padding: 1rem 1.25rem !important;
}
.fieldset legend,
fieldset legend {
    color: var(--gold) !important;
    font-size: 0.72rem !important;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    font-weight: 700;
    padding: 0 0.5rem;
    background: #fff;
}

/* Sort indicators */
.jkzm-sort-indicator {
    color: var(--gold) !important;
}

/* Links */
a { color: var(--gold); text-decoration: none; }
a:hover { color: var(--primary-dark); text-decoration: underline; }

/* Scrollbar */
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: #f1f3f7; }
::-webkit-scrollbar-thumb {
    background: #cbd5e1;
    border-radius: 5px;
    border: 2px solid #f1f3f7;
}
::-webkit-scrollbar-thumb:hover { background: var(--gold-hi); }

/* Print */
@media print {
    .sidebar, .toast, .btn, .header { display: none !important; }
    .main { margin-left: 0 !important; padding: 0 !important; }
    body { background: #fff !important; }
    .card { box-shadow: none !important; border: 1px solid #ddd !important; }
}

/* Loading state animations — pridáva animované bodky za "Načítavam" text */
@keyframes loading-pulse {
    0%, 80%, 100% { opacity: 0.3; }
    40% { opacity: 1; }
}
p[data-loading], .loading-state {
    position: relative;
}
p[data-loading]::after, .loading-state::after {
    content: '...';
    display: inline-block;
    animation: loading-pulse 1.4s infinite;
    margin-left: 2px;
}

/* Skeleton placeholder — pre tabuľky pri načítavaní */
.skeleton {
    background: linear-gradient(90deg, var(--ink-subtle) 0%, var(--border) 50%, var(--ink-subtle) 100%);
    background-size: 200% 100%;
    animation: skeleton-shimmer 1.5s infinite;
    border-radius: 6px;
    min-height: 1rem;
}
@keyframes skeleton-shimmer {
    0% { background-position: 200% 0; }
    100% { background-position: -200% 0; }
}

/* Mobile table scrolling — každá .card-body s tabuľkou dostane horizontal scroll na malých displejoch */
@media (max-width: 900px) {
    .card-body:has(> table.table),
    .card-body:has(> div > table.table) {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }
    .card-body table.table {
        min-width: 640px; /* aby sa neskalilo nečitateľne */
    }
    .card-body table.table th,
    .card-body table.table td {
        white-space: nowrap;
    }
    /* Actions column — zabezpečiť dostatok miesta pre tlačidlá */
    .card-body table.table td:last-child {
        white-space: nowrap;
        min-width: 180px;
    }
}

/* Tooltip style pre title atribút (pomôže kde sme pridali title + label) */
[title]:hover { cursor: help; }
button[title]:hover { cursor: pointer; }

/* Toast pridanie slide-in animácie */
.toast {
    transform: translateY(30px);
    opacity: 0;
    transition: transform 0.3s ease, opacity 0.3s ease;
}
.toast.show {
    transform: translateY(0);
    opacity: 1;
}
