/* Základné štýly pre webstránku OZ */

/* === Farebné premenné === */
:root {
    /* === FARBY - Primary === */
    --bg-primary: #003366;
    --bg-secondary: #f9f9f9;
    --bg-card: #FFFFFF;
    --bg-mobile-nav: #002a55;
    --bg-hero-overlay: rgba(0, 51, 102, 0.4);

    /* === FARBY - Text === */
    --text-primary: #FFFFFF;
    --text-dark: #333333;
    --text-light: #555555;
    --text-muted: #6c757d;
    --text-accent-on-primary-bg: #FFFFFF;
    --text-footer-description: #e0e0e0;
    --text-footer-copyright: #c0c0c0;

    /* === FARBY - Accent === */
    --accent-primary: #3399ff;
    --accent-primary-text: #FFFFFF;
    --accent-primary-hover: #2879bd;

    /* === FARBY - Status === */
    --color-success: #28a745;
    --color-danger: #dc3545;
    --color-warning: #ffc107;
    --color-info: #17a2b8;

    /* === FARBY - Border & Shadow === */
    --border-light: rgba(255, 255, 255, 0.1);
    --border-medium: rgba(0, 0, 0, 0.1);
    --shadow-light: rgba(0, 0, 0, 0.05);
    --shadow-medium: rgba(0, 0, 0, 0.1);
    --shadow-hover: rgba(0, 0, 0, 0.15);

    /* === TYPOGRAPHY === */
    --font-primary: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    --font-headings: 'Montserrat', sans-serif;
    --font-size-sm: 0.875rem;
    --font-size-base: 1rem;
    --font-size-lg: 1.125rem;
    --font-size-xl: 1.25rem;
    --font-size-2xl: 1.5rem;
    --font-size-3xl: 2rem;

    /* === SPACING === */
    --space-xs: 4px;
    --space-sm: 8px;
    --space-md: 16px;
    --space-lg: 24px;
    --space-xl: 32px;
    --space-2xl: 48px;

    /* === BORDER RADIUS === */
    --radius-sm: 4px;
    --radius-md: 8px;
    --radius-lg: 12px;
    --radius-xl: 16px;

    /* === SHADOWS === */
    --shadow-sm: 0 2px 4px rgba(0, 0, 0, 0.1);
    --shadow-md: 0 4px 8px rgba(0, 0, 0, 0.1);
    --shadow-lg: 0 6px 16px rgba(0, 0, 0, 0.15);
    --shadow-xl: 0 10px 25px rgba(0, 0, 0, 0.2);

    /* === TRANSITIONS === */
    --transition-fast: 0.15s ease;
    --transition-base: 0.3s ease;
    --transition-slow: 0.5s ease;

    /* === LAYOUT === */
    --sidebar-width: 260px;
    --header-height: 64px;
    --container-max-width: 1200px;
    --admin-topbar-height: 60px;
}

/* === Základné nastavenia pre celý dokument === */
body {
    margin: 0;
    font-family: var(--font-primary);
    /* Príklad základného fontu, môžeš zmeniť */
    line-height: 1.6;
    background: linear-gradient(180deg, #003366 0%, #00509E 35%, #e6f2ff 100%);
    min-height: 100vh;
    background-repeat: no-repeat;
    /* Predvolené pozadie pre svetlý režim */
    color: var(--text-dark);
    /* Predvolená farba textu */
    transition: background-color 0.3s ease, color 0.3s ease;
}

a {
    text-decoration: none;
    /* Odstráni podčiarknutie odkazov globálne */
}

.logo-link {
    display: inline-flex;
    flex-direction: column;
    gap: 2px;
    text-decoration: none;
    color: inherit;
}

.logo-link:link,
.logo-link:visited,
.logo-link:hover,
.logo-link:active {
    text-decoration: none;
    color: inherit;
}

.logo-link:link .logo-text,
.logo-link:visited .logo-text,
.logo-link:active .logo-text {
    color: var(--accent-primary, #D4A017);
}

.logo-link:hover .logo-text {
    color: var(--accent-primary-hover, #b88a14);
}

.logo-text {
    font-size: 1.35rem;
    font-weight: 700;
    letter-spacing: 0.4px;
}

body.dark-mode .logo-link:link .logo-text,
body.dark-mode .logo-link:visited .logo-text,
body.dark-mode .logo-link:active .logo-text,
body.dark-mode .logo-link:hover .logo-text {
    color: var(--accent-primary, #FFA726);
}

ul {
    list-style: none;
    /* Odstráni odrážky zo zoznamov */
    padding: 0;
    margin: 0;
}

button {
    cursor: pointer;
    padding: 10px 15px;
    border: none;
    border-radius: 4px;
    font-weight: bold;
}

/* === Top Bar Gradient === */
.top-bar {
    /* Background handled by header gradient now, or we can keep it if header doesn't cover it. 
       But since header wraps it, let's make it transparent to let header gradient show, 
       OR keep it if we want a continuous gradient. 
       Actually, let's keep the gradient on .top-bar for now, but we need to add it to the nav part too.
       Better: Apply gradient to header and make top-bar transparent. */
    background: transparent;
    padding: 15px 20px;
    text-align: center;
    border-bottom: 1px solid var(--border-light);
}

.top-bar .logo-text {
    color: #FFFFFF !important;
    /* Override khaki/yellow to white */
}

/* === Štýly pre hlavičku - Desktop (> 768px) === */
@media (min-width: 769px) {
    header {
        background: linear-gradient(90deg, #003366 0%, #00509E 100%);
        /* Blue gradient for whole header */
        padding: 15px 0;
        /* Increased padding to prevent buttons from touching edges */
    }

    .header-container {
        max-width: 1200px;
        /* Maximálna šírka kontajnera hlavičky */
        margin: 0 auto;
        /* Centrovanie kontajnera */
        padding: 0 20px;
        /* Vnútorný padding kontajnera */
        display: flex;
        justify-content: space-between;
        /* Logo naľavo, akcie napravo, navigácia sa prispôsobí */
        align-items: center;
    }

    #logo {
        max-height: 50px;
        display: block;
        /* Pre správne fungovanie max-height */
    }

    .main-navigation ul {
        display: flex;
        /* Položky navigácie vedľa seba */
    }

    .main-navigation li a {
        color: var(--text-primary);
        padding: 10px 15px;
        /* Vnútorný padding odkazov */
        display: block;
        /* Aby padding fungoval správne */
        transition: color 0.3s ease, background-color 0.3s ease;
        /* Jemný prechod pre hover efekt */
    }

    .main-navigation li a:hover {
        color: var(--accent-primary);
        /* Zmena farby textu pri prejdení myšou */
        /* alebo text-decoration: underline; */
    }

    .main-navigation li a i {
        margin-right: 8px;
        /* Odsadenie ikony od textu */
    }

    .header-actions {
        display: flex;
        align-items: center;
    }

    .btn-login {
        background-color: transparent;
        border: 1px solid var(--text-primary);
        color: var(--text-primary);
        margin-right: 10px;
        padding: 10px 20px;
        /* Zjednotený padding */
        transition: all 0.3s ease;
        /* Plynulý prechod pre všetky vlastnosti */
    }

    .btn-login:hover {
        background-color: rgba(255, 255, 255, 0.1);
        transform: translateY(-2px);
        /* Roll-over efekt */
    }

    .btn-signup {
        background-color: var(--accent-primary);
        color: var(--accent-primary-text);
        padding: 10px 20px;
        /* Zjednotený padding */
        transition: all 0.3s ease;
    }

    .btn-signup:hover {
        background-color: var(--accent-primary-hover);
        transform: translateY(-2px);
        /* Roll-over efekt */
        box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
        /* Jemný tieň pri hoveri */
    }

    #hamburger-menu {
        display: none;
        /* Skrytie hamburger menu na desktope */
    }

    /* Skrytie mobilných odkazov na desktope */
    .main-navigation .mobile-only-link {
        display: none;
    }
}

/* === Štýly pre hlavičku - Mobil (< 768px) === */
@media (max-width: 768px) {
    header {
        position: relative;
        /* Potrebné pre absolútne pozicovanie mobilného menu */
        background: linear-gradient(90deg, #003366 0%, #00509E 100%);
        /* Blue gradient */
        padding: 10px 0;
        /* Menší padding na mobiloch */
    }

    .header-container {
        padding: 0 15px;
        /* Menší padding kontajnera na mobiloch */
        display: flex;
        /* Umožní umiestnenie loga a hamburger menu vedľa seba */
        justify-content: space-between;
        /* Logo naľavo, hamburger menu napravo */
        align-items: center;
        /* Vertikálne zarovnanie na stred */
    }

    /* Skrytie desktopovej navigácie a prihlasovacích tlačidiel */
    .main-navigation {
        display: none;
        /* Navigácia je pôvodne skrytá */
        position: absolute;
        top: 100%;
        /* Umiestnenie pod hlavičku */
        left: 0;
        width: 100%;
        background-color: var(--bg-mobile-nav);
        z-index: 1000;
        /* Aby bolo menu navrchu */
        box-shadow: 0px 3px 5px var(--shadow-medium);
        /* Použitie premennej pre tieň */
    }

    .main-navigation.active {
        display: block;
        /* Zobrazenie aktívneho menu */
        z-index: 10000;
        /* nad cookie lištou (9999) — otvorené menu nesmie byť prekryté */
    }

    /* Cookie lišta na mobile: kompaktná, max. polovica obrazovky, ostatné sa roluje */
    .cookie-consent {
        padding: 10px 0;
        max-height: 50vh;
        overflow-y: auto;
    }
    .cookie-consent__text h3 {
        font-size: 1rem;
    }
    .cookie-consent__text p {
        font-size: 0.85rem;
        line-height: 1.4;
    }

    .main-navigation ul {
        display: flex;
        flex-direction: column;
        /* Položky pod sebou */
        width: 100%;
    }

    .main-navigation li {
        width: 100%;
    }

    .main-navigation li a {
        padding: 15px 20px;
        /* Väčší padding pre ľahšie klikanie */
        text-align: left;
        /* Zarovnanie textu v mobilnom menu */
        display: block;
        border-bottom: 1px solid var(--border-light);
        color: var(--text-primary);
    }

    .main-navigation li:last-child a {
        border-bottom: none;
    }

    .main-navigation li a:hover {
        background-color: var(--accent-primary);
        color: var(--accent-primary-text);
    }

    .header-actions {
        display: none;
        /* Skrytie prihlasovacích tlačidiel */
    }

    /* Zobrazenie a štýl hamburger ikony */
    #hamburger-menu {
        display: block;
        /* Zobrazenie na mobiloch */
        background: none;
        border: none;
        color: var(--text-primary);
        font-size: 1.8rem;
        /* Väčšia ikona */
        padding: 5px;
        margin-left: auto;
        /* Posunie hamburger menu doprava */
    }

    /* Zobrazenie mobilných odkazov v mobilnom menu */
    .main-navigation.active .mobile-only-link {
        display: block;
        /* Alebo flex, ak by si chcel špecifické zarovnanie vnútri <li> */
    }
}

/* === Všeobecné pomocné triedy === */
.container {
    max-width: 1100px;
    /* Šírka kontajnera pre obsah sekcií */
    margin: 0 auto;
    padding: 0 20px;
}

section {
    padding: 60px 0;
    /* Vertikálny padding pre sekcie */
}

section h2 {
    text-align: center;
    margin-bottom: 40px;
    font-size: 2.5rem;
    color: var(--text-dark);
}

/* === Hero Sekcia === */
.hero-section {
    /* Odstránené pôvodné pozadie, bude riešené cez image-compare-container */
    color: var(--text-primary);
    text-align: center;
    padding: 100px 20px;
    /* Väčší padding pre hero sekciu */
    min-height: 70vh;
    /* Minimálna výška, aby zaberala väčšiu časť obrazovky */
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    /* Potrebné pre absolútne pozicovanie vnorených prvkov */
    overflow: hidden;
    /* Aby nič neprečnievalo */
}

.image-compare-container {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    cursor: ew-resize;
    /* Ukazovateľ myši pre posun */
}

.image-compare-container::before {
    /* Prekrytie farbou */
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(var(--bg-hero-overlay), var(--bg-hero-overlay));
    z-index: 1;
    /* Nad obrázkami, pod posuvníkom a textom */
}

.image-compare-img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    /* Obrázky vyplnia priestor bez deformácie */
    position: absolute;
    top: 0;
    left: 0;
}

.image-compare-bottom {
    /* Spodný obrázok (hero-zapad-slnka.jpg) */
    z-index: 0;
}

.image-compare-top-wrapper {
    /* Obal pre vrchný obrázok, jeho šírka sa bude meniť */
    position: absolute;
    top: 0;
    left: 0;
    width: 50%;
    /* Počiatočná šírka - stred */
    height: 100%;
    overflow: hidden;
    z-index: 0;
    /* Rovnaká úroveň ako spodný, ale v DOM je neskôr, takže prekrýva */
}

.image-compare-top {
    /* Vrchný obrázok (hero-stavba.jpg) */
    /* Štýly sú už definované v .image-compare-img */
}

.image-compare-slider-handle {
    position: absolute;
    top: 0;
    left: 50%;
    /* Počiatočná pozícia - stred */
    transform: translateX(-50%);
    /* Centrovanie samotného posuvníka */
    width: 4px;
    height: 100%;
    background-color: var(--text-primary);
    z-index: 2;
    /* Nad farebným prekrytím, pod textom */
    pointer-events: none;
    /* Aby neblokoval mousemove na rodičovi */
}

.hero-overlay {
    position: absolute;
    inset: 0;
    background-color: #ffffff;
    /* Changed to white as requested */
    opacity: 0;
    z-index: 1;
    pointer-events: none;
}

.hero-content h1 {
    font-size: 3rem;
    margin-bottom: 20px;
    line-height: 1.2;
}

.hero-content {
    /* Uistíme sa, že text je navrchu */
    position: relative;
    /* Potrebné pre z-index */
    z-index: 3;
}

.btn {
    /* Všeobecná trieda pre tlačidlá, ak ju už nemáš */
    display: inline-block;
    padding: 12px 25px;
    border-radius: 5px;
    text-decoration: none;
    font-weight: bold;
    transition: background-color 0.3s ease, transform 0.3s ease;
}

.btn-accent {
    background-color: var(--accent-primary);
    color: var(--accent-primary-text);
}

.btn-accent:hover {
    background-color: var(--accent-primary-hover);
    transform: translateY(-2px);
}

/* === Sekcia Naše hlavné ciele === */
.goals-section {
    background-color: var(--bg-secondary);
}

.goals-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    /* Responzívny grid */
    gap: 30px;
    text-align: center;
}

.goal-item {
    padding: 20px;
    background-color: var(--bg-card);
    border-radius: 8px;
    box-shadow: 0 2px 10px var(--shadow-light);
}

.goal-item i {
    color: var(--bg-primary);
    /* Farba ikon, zosúladená s hlavičkou */
    margin-bottom: 15px;
}

.goal-item h3 {
    font-size: 1.5rem;
    color: var(--text-dark);
    margin-bottom: 10px;
}

.goal-item p {
    font-size: 0.95rem;
    color: var(--text-light);
    line-height: 1.6;
}

/* === Sekcia Aktuálne projekty === */
.projects-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    /* Responzívny grid pre karty */
    gap: 30px;
}

.project-card {
    background-color: var(--bg-card);
    border-radius: 8px;
    box-shadow: 0 4px 15px var(--shadow-medium);
    overflow: hidden;
    /* Aby obrázok neprečnieval cez zaoblené rohy */
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.project-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 8px 25px var(--shadow-hover);
}

.project-card img {
    width: 100%;
    height: 200px;
    /* Fixná výška pre obrázky projektov */
    object-fit: cover;
    /* Zabezpečí, že obrázok vyplní priestor bez deformácie */
    display: block;
}

.project-card h3 {
    font-size: 1.4rem;
    color: var(--text-dark);
    margin: 15px 20px 10px;
}

.project-card p {
    font-size: 0.9rem;
    color: var(--text-light);
    line-height: 1.5;
    margin: 0 20px 15px;
    min-height: 60px;
    /* Aby karty mali podobnú výšku aj pri rôznej dĺžke textu */
}

.btn-link {
    display: inline-block;
    margin: 0 20px 20px;
    color: var(--bg-primary);
    font-weight: bold;
    text-decoration: none;
}

.btn-link:hover {
    text-decoration: underline;
}

.btn-link i {
    margin-left: 5px;
}

/* === Sekcia Call to Action === */
.cta-section {
    background-color: var(--bg-primary);
    color: var(--text-primary);
    text-align: center;
}

.cta-section h2 {
    color: var(--text-primary);
}

.cta-buttons .btn {
    margin: 10px;
}

.btn-primary {
    /* Štýl pre primárne CTA tlačidlo */
    background-color: var(--accent-primary);
    color: var(--accent-primary-text);
}

.btn-primary:hover {
    background-color: var(--accent-primary-hover);
    color: var(--accent-primary-text); /* text nikdy nesplynie s pozadím tlačidla */
}

.btn-secondary {
    /* Štýl pre sekundárne CTA tlačidlo */
    background-color: transparent;
    border: 2px solid var(--text-primary);
    color: var(--text-primary);
}

.btn-secondary:hover {
    background-color: var(--text-primary);
    color: var(--bg-primary);
}

/* === Štýly pre pätičku === */
footer {
    background: linear-gradient(90deg, #003366 0%, #00509E 100%);
    /* Blue gradient */
    color: var(--text-primary);
    padding: 50px 0 0;
    /* Horný padding, spodný bude riešený copyrightom */
    font-size: 0.9rem;
}

.footer-container {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 30px;
    margin-bottom: 30px;
}

.footer-column h4 {
    font-size: 1.2rem;
    margin-bottom: 20px;
    color: var(--text-primary);
    position: relative;
    padding-bottom: 10px;
}

.footer-column h4::after {
    /* Jemné podčiarknutie nadpisov v pätičke */
    content: '';
    position: absolute;
    left: 0;
    bottom: 0;
    width: 50px;
    height: 2px;
    background-color: var(--accent-primary);
}

.footer-logo {
    display: inline-block;
    font-size: 1.2rem;
    font-weight: 700;
    color: var(--accent-primary, #D4A017);
    margin-bottom: 15px;
}

body.dark-mode .footer-logo {
    color: var(--accent-primary, #FFA726);
}

.footer-about p {
    line-height: 1.7;
    color: var(--text-footer-description);
}

.footer-links ul li {
    margin-bottom: 10px;
}

.footer-links ul li a,
.footer-contact p a {
    color: var(--text-primary);
    text-decoration: none;
    transition: color 0.3s ease;
}

.footer-links ul li a:hover,
.footer-contact p a:hover {
    color: var(--accent-primary);
}

.footer-contact p {
    margin-bottom: 10px;
    color: var(--text-footer-description);
}

.footer-contact p i {
    margin-right: 10px;
    color: var(--accent-primary);
}

.social-icons a {
    color: var(--text-primary);
    font-size: 1.5rem;
    margin-right: 15px;
    transition: color 0.3s ease;
}

.social-icons a:last-child {
    margin-right: 0;
}

.social-icons a:hover {
    color: var(--accent-primary);
}

.footer-copyright {
    text-align: center;
    padding: 20px 0;
    border-top: 1px solid var(--border-light);
    font-size: 0.85rem;
    color: var(--text-footer-copyright);
}

/* === Tmavý režim === */
body.dark-mode {
    --font-primary: 'Inter', sans-serif;
    --font-headings: 'Montserrat', sans-serif;
    --bg-primary: #1A2A3A;
    /* Tmavomodrá pre hlavičku/pätičku v tmavom režime */
    --bg-secondary: #2A3B4C;
    /* Tmavšie pozadie pre sekcie */
    --bg-card: #3A4B5C;
    /* Pozadie kariet a hlavné pozadie body */
    --bg-mobile-nav: #14202B;
    --bg-hero-overlay: rgba(10, 20, 30, 0.5);
    /* Znížená priehľadnosť prekrytia pre tmavý režim */

    --text-primary: #E0E0E0;
    /* Svetlejší text na tmavom pozadí */
    --text-dark: #F5F5F5;
    /* Hlavný text v tmavom režime */
    --text-light: #B0B0B0;
    /* Svetlejší (menej dôležitý) text */
    --text-accent-on-primary-bg: #E0E0E0;
    --text-footer-description: #C0C0C0;
    --text-footer-copyright: #A0A0A0;

    --accent-primary: #3399ff;
    /* Vibrant Blue for dark mode too */
    /* Jasnejšia oranžová pre akcent v tmavom režime - CHANGED TO BLUE */
    --accent-primary-text: #FFFFFF;
    --accent-primary-hover: #2879bd;

    --border-light: rgba(255, 255, 255, 0.08);
    --shadow-light: rgba(0, 0, 0, 0.2);
    --shadow-medium: rgba(0, 0, 0, 0.3);
    --shadow-hover: rgba(0, 0, 0, 0.4);
}

/* Špecifické úpravy pre tmavý režim, ak sú potrebné mimo premenných */
body.dark-mode .btn-login {
    border-color: var(--text-primary);
    /* Uisti sa, že okraj je viditeľný */
}

body.dark-mode .project-card img {
    opacity: 0.9;
    /* Mierne zníženie opacity obrázkov v tmavom režime pre lepší súlad */
}

/* === Štýly pre registračný formulár (presunuté z registracia.php) === */
.registration-form .form-group {
    margin-bottom: 1.5rem;
}

.registration-form label {
    display: block;
    margin-bottom: 0.5rem;
    font-weight: bold;
}

.registration-form .address-group {
    /* Odsadenie pre celú skupinu adresy */
    /* Môžeš upraviť podľa potreby */
}

.registration-form .address-group-label {
    /* Štýl pre hlavný nadpis skupiny adries */
    font-size: 1.1em;
    /* Trochu väčší nadpis */
    margin-bottom: 1rem;
    /* Väčší odstup pod nadpisom */
    font-weight: bold;
}

.registration-form input[type="text"],
.registration-form input[type="email"],
.registration-form input[type="password"],
.registration-form select,
.registration-form input[type="file"] {
    width: 100%;
    padding: 0.9rem;
    /* Zväčšený padding pre väčšiu výšku */
    border: 1px solid #ccc;
    border-radius: 4px;
    box-sizing: border-box;
    font-size: 1.2rem;
    /* Zväčšené písmo v poliach */
}

/* Štýl pre chybné pole */
.registration-form input.error,
.registration-form select.error {
    border-color: darkred !important;
    /* Tmavší červený okraj pre lepší kontrast */
    background-color: red !important;
    /* Červené pozadie */
    color: white !important;
    /* Biely text pre kontrast */
}

.registration-form input.error::placeholder {
    /* Farba placeholderu pre chybné polia */
    color: #ffdddd;
    /* Svetlejšia farba pre placeholder na červenom pozadí */
}

/* Štýl pre label checkboxu, keď je samotný checkbox v stave chyby */
.registration-form input[type="checkbox"].error+label.checkbox-label {
    background-color: red !important;
    /* Červené pozadie */
    color: white !important;
    /* Biely text */
    padding: 5px 10px;
    /* Pridáme padding, aby pozadie vyzeralo lepšie */
    border-radius: 4px;
    /* Zaoblené rohy */
    display: inline-block;
    /* Aby padding a background fungovali */
}

/* Štýl pre individuálne chybové hlášky pri poliach */
.field-error {
    color: red;
    font-size: 0.9em;
    margin-top: 5px;
    font-weight: 500;
}

.field-error:empty {
    display: none;
}

.registration-form .date-selects {
    display: flex;
    gap: 0.25rem;
    /* Ešte menšia medzera medzi select boxami */
}

.registration-form .date-selects select {
    /* Odstránime width: 100% zdedené z vyššieho pravidla, aby sme mohli nastaviť vlastnú šírku */
    width: auto;
    flex-grow: 0;
    /* Nebudú sa rozťahovať, aby vyplnili všetok priestor */
    flex-shrink: 1;
    /* Môžu sa zmenšiť, ak je málo miesta */
    flex-basis: 18%;
    /* Ešte menšia bázová šírka */
    min-width: 80px;
    /* Mierne zväčšená minimálna šírka */
    padding: 0.9rem 0.6rem;
    /* Zväčšený padding pre väčšiu výšku a lepší vzhľad */
}

.registration-form .checkbox-container {
    display: flex;
    align-items: center;
    gap: 10px;
    /* Medzera medzi checkboxom a labelom */
}

.registration-form .checkbox-container input[type="checkbox"] {
    /* Zväčšenie checkboxu pre lepšiu viditeľnosť a klikateľnosť */
    width: 26px;
    height: 26px;
    flex-shrink: 0;
    /* Zabráni zmenšeniu checkboxu */
    cursor: pointer;
    /* Zmení kurzor na ruku pri prejdení myšou */
}

.registration-form .checkbox-container .checkbox-label {
    margin-bottom: 0;
    /* Zrušíme spodný margin, ktorý má label defaultne */
}

/* === Štýly pre prihlasovací formulár === */
.login-section {
    padding: 60px 0;
}

.login-form {
    max-width: 500px;
    /* Maximálna šírka formulára */
    margin: 0 auto;
    /* Centrovanie formulára */
    padding: 30px;
    background-color: var(--bg-card);
    /* Použitie premennej pre pozadie karty */
    border-radius: 8px;
    box-shadow: 0 4px 15px var(--shadow-medium);
    /* Použitie premennej pre tieň */
}

.login-form .form-group {
    margin-bottom: 1.5rem;
}

.login-form label {
    display: block;
    margin-bottom: 0.5rem;
    font-weight: bold;
    color: var(--text-dark);
}

.login-form input[type="email"],
.login-form input[type="password"] {
    width: 100%;
    padding: 0.75rem;
    border: 1px solid #ccc;
    /* Alebo var(--border-input) ak máš definované */
    border-radius: 4px;
    box-sizing: border-box;
    font-size: 1rem;
}

.login-form .form-options {
    margin-bottom: 1.5rem;
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 0.9em;
}

.login-form .forgot-password-link {
    text-decoration: none;
    font-size: 0.9em;
    /* Zachovanie pôvodnej veľkosti písma */
}

.login-form .remember-me input[type="checkbox"] {
    /* Zväčšenie checkboxu pre konzistenciu */
    width: 18px;
    height: 18px;
    cursor: pointer;
}

.login-form .remember-me {
    display: flex;
    align-items: center;
}

.login-form .remember-me label {
    margin-bottom: 0;
    margin-left: 8px;
    font-weight: normal;
    cursor: pointer;
    user-select: none;
}

.login-form button.btn-primary {
    width: 100%;
    padding: 0.75rem;
    font-size: 1.1rem;
}

.login-form .register-link-text {
    text-align: center;
    margin-top: 20px;
    font-size: 0.95em;
    color: var(--text-light);
}

.login-form .register-link-text a {
    font-weight: bold;
}

/* === Štýl pre dôležité textové odkazy === */
/* Zjednotený štýl pre odkazy v obsahu (žlté/sivé) */
.text-link-action,
.login-form .forgot-password-link,
.login-form .register-link-text a {
    color: var(--accent-primary);
    font-weight: bold;
    text-decoration: none;
    transition: color 0.3s ease;
}

/* Farba pre navštívené odkazy */
.text-link-action:visited,
.login-form .forgot-password-link:visited,
.login-form .register-link-text a:visited {
    color: var(--text-light);
}

/* Efekt pri prejdení myšou */
.text-link-action:hover,
.login-form .forgot-password-link:hover,
.login-form .register-link-text a:hover {
    color: var(--accent-primary-hover);
    text-decoration: underline;
}

/* === Štýly pre statické informačné boxy (napr. reset-link-odoslany) === */
.message-box {
    max-width: 600px;
    margin: 0 auto;
    padding: 40px 30px;
    background-color: var(--bg-card);
    border-radius: 8px;
    box-shadow: 0 4px 15px var(--shadow-medium);
    text-align: center;
}

.message-box .icon {
    font-size: 4rem;
    color: var(--accent-primary);
    margin-bottom: 20px;
}

.message-box h2 {
    color: var(--text-dark);
    margin-bottom: 20px;
    font-size: 2rem;
}

.message-box p {
    font-size: 1.1rem;
    color: var(--text-light);
    margin: 0 auto 30px auto;
}

/* === Štýly pre správy vo formulároch (úspech, info, chyba) === */
.form-message {
    padding: 15px;
    margin-bottom: 20px;
    border-radius: 4px;
    border: 1px solid transparent;
    text-align: center;
    max-width: 500px;
    /* Prispôsobí šírku formuláru */
    margin-left: auto;
    /* Vycentruje box horizontálne */
    margin-right: auto;
    /* Vycentruje box horizontálne */
}

.form-message.success {
    color: #155724;
    background-color: #d4edda;
    border-color: #c3e6cb;
}

.form-message.error {
    color: #721c24;
    background-color: #f8d7da;
    border-color: #f5c6cb;
}

.form-message.info {
    color: #0c5460;
    background-color: #d1ecf1;
    border-color: #bee5eb;
}

/* === Štýly pre profilovú stránku === */
.profile-section {
    padding: 60px 0;
    background-color: var(--bg-secondary);
}

.profile-content {
    max-width: 800px;
    margin: 0 auto;
    padding: 30px;
    background-color: var(--bg-card);
    border-radius: 8px;
    box-shadow: 0 4px 15px var(--shadow-medium);
    text-align: center;
}

.profile-content p {
    font-size: 1.1rem;
    color: var(--text-light);
    line-height: 1.7;
    margin-bottom: 1rem;
}

.profile-content .btn {
    margin-top: 20px;
}

/* Štýl pre uvítaciu správu v hlavičke */
.header-actions .welcome-message {
    color: var(--text-primary);
    margin-right: 15px;
    font-weight: bold;
}

/* === Nové štýly pre detail profilu === */
.profile-content .status-box {
    padding: 15px 20px;
    margin-bottom: 30px;
    border-radius: 8px;
    display: flex;
    align-items: center;
    font-size: 1.1rem;
    font-weight: 500;
}

.profile-content .status-box.info {
    background-color: #e7f3fe;
    /* Svetlomodrá */
    border-left: 5px solid #2196F3;
    /* Modrý okraj */
    color: #0d47a1;
    /* Tmavomodrý text */
}

.profile-content .status-box.success {
    background-color: #d4edda;
    /* Svetlozelená */
    border-left: 5px solid #28a745;
    /* Zelený okraj */
    color: #155724;
    /* Tmavozelený text */
}

.profile-content .status-box i {
    margin-right: 15px;
    font-size: 1.5rem;
}

.profile-content h3 {
    text-align: left;
    margin-bottom: 20px;
    font-size: 1.5rem;
    color: var(--text-dark);
}

.profile-details {
    display: grid;
    grid-template-columns: max-content 1fr;
    /* Popisok zaberie len potrebnú šírku, hodnota zvyšok */
    gap: 10px 20px;
    /* Medzera medzi riadkami a stĺpcami */
    text-align: left;
    line-height: 1.8;
    align-items: center;
    /* Vertikálne zarovnanie pre krajší vzhľad */
}

.profile-details dt {
    font-weight: bold;
    color: var(--text-dark);
    margin-top: 0;
    /* Resetujeme pôvodný margin */
}

.profile-details dd {
    margin-left: 0;
    margin-bottom: 0;
    /* Resetujeme pôvodný margin */
    color: var(--text-light);
}

.profile-divider {
    border: 0;
    height: 1px;
    background-color: #e0e0e0;
    margin: 30px 0;
}

/* === Štýly pre nahraté dokumenty na profile === */
.profile-documents {
    display: flex;
    flex-wrap: wrap;
    gap: 30px;
    justify-content: center;
    margin-top: 20px;
}

.document-item {
    text-align: center;
    flex-basis: 250px;
    /* Základná šírka pre každú položku */
}

.document-item p {
    margin-bottom: 10px;
    font-size: 1rem;
    font-weight: 500;
}

.document-item img {
    max-width: 100%;
    height: auto;
    border: 2px solid #ddd;
    border-radius: 8px;
    padding: 5px;
    background-color: #fff;
    box-shadow: 0 2px 5px var(--shadow-light);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.document-item img:hover {
    transform: scale(1.05);
    box-shadow: 0 4px 10px var(--shadow-medium);
}

/* === Štýly pre Admin Dashboard === */
.admin-section {
    padding: 60px 0;
    background-color: var(--bg-secondary);
}

.admin-table-responsive {
    overflow-x: auto;
    /* Umožní horizontálne skrolovanie na malých obrazovkách */
    background-color: var(--bg-card);
    border-radius: 8px;
    box-shadow: 0 4px 15px var(--shadow-medium);
    padding: 20px;
}

.admin-table {
    width: 100%;
    border-collapse: collapse;
    margin-top: 20px;
}

.admin-table th,
.admin-table td {
    padding: 12px 15px;
    text-align: left;
    border-bottom: 1px solid #ddd;
    color: var(--text-dark);
}

.admin-table th {
    background-color: var(--bg-primary);
    color: var(--text-primary);
    font-weight: bold;
    text-transform: uppercase;
    font-size: 0.9em;
}

.admin-table tbody tr:nth-child(even) {
    background-color: var(--bg-secondary);
}

.admin-table tbody tr:hover {
    background-color: #eef2f7;
    /* Jemný hover, aby text nezanikol */
}

body {
    font-family: var(--font-primary);
    background-color: var(--bg-primary);
    /* Tmavší hover efekt pre dark mode */
}

/* Štýly pre tmavý režim - admin tabuľky */
body.dark-mode .admin-table th,
body.dark-mode .admin-table td {
    color: var(--text-dark);
    border-bottom-color: rgba(255, 255, 255, 0.1);
}

body.dark-mode .admin-table th {
    background-color: var(--bg-primary);
    color: var(--text-primary);
}

body.dark-mode .admin-table tbody tr:nth-child(even) {
    background-color: rgba(255, 255, 255, 0.05);
}

body.dark-mode .admin-table tbody tr:hover {
    background-color: rgba(255, 255, 255, 0.08);
}

body.dark-mode .admin-table-responsive {
    background-color: var(--bg-card);
}

/* Štýly pre tmavý režim - email inbox */
body.dark-mode .email-unread {
    background-color: #1e3a5f !important;
}

body.dark-mode .email-unread:hover {
    background-color: #254a7a !important;
}

body.dark-mode .admin-table td a {
    color: #8bb8e8;
}

body.dark-mode .email-body-container {
    background: var(--bg-card) !important;
    border-color: rgba(255, 255, 255, 0.1) !important;
    color: var(--text-dark) !important;
}

body.dark-mode .email-html-body,
body.dark-mode .email-html-body p,
body.dark-mode .email-html-body div,
body.dark-mode .email-html-body span,
body.dark-mode .email-html-body td,
body.dark-mode .email-html-body th {
    color: var(--text-dark) !important;
    background-color: transparent !important;
}

body.dark-mode .email-html-body a {
    color: #6db3f2 !important;
}

body.dark-mode .email-html-body table {
    background-color: transparent !important;
}

/* Štýly pre tmavý režim - admin layout */
body.dark-mode .admin-topbar {
    background-color: var(--bg-card);
    border-bottom-color: rgba(255, 255, 255, 0.1);
}

body.dark-mode .admin-footer {
    background-color: var(--bg-card);
    border-top-color: rgba(255, 255, 255, 0.1);
}

body.dark-mode .topbar-user-info {
    color: var(--text-dark);
}

/* White text for specific sections on dark gradient */
#o-nas h2,
#o-nas p,
#tim h2,
#tim>.section-container>p,
#preco h2,
#preco>p,
#preco>.section-container>p {
    color: #ffffff;
}

/* Ensure card text remains dark */
.team-card h3,
.team-card p,
.benefit-box h3,
.benefit-box p {
    color: var(--text-dark, #333333);
}

.section p {
    color: var(--text-dark, #333333);
}

body.dark-mode .section p {
    color: var(--text-light, #e0e0e0);
}

body.dark-mode .admin-theme-toggle {
    border-color: var(--text-light);
    color: var(--text-dark);
}

/* Štýly pre view controls */
.view-controls {
    display: flex;
    gap: 10px;
    align-items: center;
}

.view-controls .btn {
    font-size: 0.9rem;
    padding: 8px 16px;
}

.table-info {
    border: 1px solid var(--border-light);
}

.table-info p {
    margin: 5px 0;
}

.table-info a {
    text-decoration: none;
    font-weight: bold;
}

.table-info a:hover {
    text-decoration: underline;
}

/* Dark mode štýly pre table-info */
body.dark-mode .table-info {
    background-color: var(--bg-card) !important;
    border-color: rgba(255, 255, 255, 0.1);
}

/* === Štýly pre vyhľadávací panel === */
.search-filter-panel {
    background: var(--bg-card);
    border: 1px solid var(--border-light);
    border-radius: 8px;
    padding: 20px;
    margin: 20px 0;
    box-shadow: 0 2px 4px var(--shadow-light);
}

.search-form {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.search-row {
    display: flex;
    gap: 15px;
    align-items: end;
    flex-wrap: wrap;
}

.search-field {
    display: flex;
    flex-direction: column;
    min-width: 200px;
    flex: 1;
}

.search-field label {
    font-weight: bold;
    margin-bottom: 5px;
    color: var(--text-dark);
    font-size: 0.9rem;
}

.search-field input,
.search-field select {
    padding: 8px 12px;
    border: 1px solid var(--border-light);
    border-radius: 4px;
    font-size: 0.9rem;
    background: var(--bg-primary);
    color: var(--text-dark);
}

.search-field input:focus,
.search-field select:focus {
    outline: none;
    border-color: var(--accent-primary);
    box-shadow: 0 0 0 2px rgba(0, 124, 186, 0.2);
}

.search-buttons {
    display: flex;
    gap: 10px;
    align-items: end;
}

.search-buttons .btn {
    padding: 8px 16px;
    font-size: 0.9rem;
    white-space: nowrap;
}

/* === Štýly pre výsledky === */
.results-info {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin: 15px 0;
    padding: 10px 15px;
    background: var(--bg-secondary);
    border-radius: 5px;
    border: 1px solid var(--border-light);
}

.results-summary {
    display: flex;
    align-items: center;
    gap: 10px;
}

.results-count {
    color: var(--text-dark);
    font-size: 0.9rem;
}

.filter-badge {
    padding: 4px 8px;
    border-radius: 12px;
    font-size: 0.8rem;
    font-weight: bold;
}

.badge-person {
    background: #e3f2fd;
    color: #1976d2;
}

.badge-company {
    background: #f3e5f5;
    color: #7b1fa2;
}

.pagination-info {
    color: var(--text-light);
    font-size: 0.9rem;
}

/* === Štýly pre stránkovanie === */
.pagination-wrapper {
    margin: 20px 0;
    text-align: center;
}

.pagination {
    display: flex;
    justify-content: center;
    gap: 5px;
    margin-bottom: 10px;
    flex-wrap: wrap;
}

.pagination .btn {
    padding: 8px 12px;
    font-size: 0.9rem;
    min-width: auto;
}

.pagination .btn-primary {
    background: var(--accent-primary);
    border-color: var(--accent-primary);
    font-weight: bold;
}

.pagination .btn i {
    font-size: 0.8rem;
}

/* === Responsive štýly === */
@media (max-width: 768px) {
    .search-row {
        flex-direction: column;
        align-items: stretch;
    }

    .search-field {
        min-width: auto;
    }

    .search-buttons {
        justify-content: center;
        margin-top: 10px;
    }

    .results-info {
        flex-direction: column;
        gap: 10px;
        text-align: center;
    }

    .pagination {
        justify-content: center;
        gap: 3px;
    }

    .pagination .btn {
        padding: 6px 10px;
        font-size: 0.8rem;
    }
}

/* === Dark mode štýly === */
body.dark-mode .search-filter-panel {
    background: var(--bg-card);
    border-color: rgba(255, 255, 255, 0.1);
}

body.dark-mode .search-field input,
body.dark-mode .search-field select {
    background: var(--bg-primary);
    border-color: rgba(255, 255, 255, 0.2);
    color: var(--text-dark);
}

body.dark-mode .search-field input:focus,
body.dark-mode .search-field select:focus {
    border-color: var(--accent-primary);
}

body.dark-mode .results-info {
    background: var(--bg-primary);
    border-color: rgba(255, 255, 255, 0.1);
}

body.dark-mode .badge-person {
    background: rgba(25, 118, 210, 0.2);
    color: #90caf9;
}

body.dark-mode .badge-company {
    background: rgba(123, 31, 162, 0.2);
    color: #ce93d8;
}

/* === Štýly pre detail vlastníka === */
.admin-card {
    background: var(--bg-card);
    border: 1px solid var(--border-light);
    border-radius: 8px;
    padding: 20px;
    margin: 20px 0;
    box-shadow: 0 2px 4px var(--shadow-light);
}

.admin-card h3 {
    color: var(--accent-primary);
    margin-bottom: 20px;
    padding-bottom: 10px;
    border-bottom: 1px solid var(--border-light);
}

.admin-card h3 i {
    margin-right: 10px;
}

.admin-panel {
    padding: 12px;
    border-radius: 6px;
    background: var(--bg-card);
    border: 1px solid var(--border-light);
    margin-bottom: 15px;
}

.admin-panel-lg {
    padding: 15px;
    border-radius: 8px;
}

.admin-border-info {
    border-left: 4px solid #0d6efd;
}

.admin-border-success {
    border-left: 4px solid #28a745;
}

.admin-border-warning {
    border-left: 4px solid #ffc107;
}

.admin-border-primary {
    border-left: 5px solid #0d6efd;
}

.owner-details,
.membership-details {
    display: grid;
    gap: 15px;
}

.detail-row {
    display: flex;
    align-items: center;
    padding: 10px 0;
    border-bottom: 1px solid var(--border-light);
}

.detail-row:last-child {
    border-bottom: none;
}

.detail-row strong {
    min-width: 200px;
    color: var(--text-dark);
    font-weight: 600;
}

.detail-row span {
    color: var(--text-light);
    flex: 1;
}

/* Status badges */
.status-badge {
    padding: 4px 12px;
    border-radius: 12px;
    font-size: 0.85rem;
    font-weight: bold;
    text-transform: uppercase;
}

.status-badge--lg {
    padding: 6px 14px;
    border-radius: 14px;
    font-size: 0.95rem;
}

.status-verified {
    background: #d4edda;
    color: #155724;
}

.status-pending {
    background: #fff3cd;
    color: #856404;
}

.status-rejected {
    background: #f8d7da;
    color: #721c24;
}

.status-none {
    background: #e2e3e5;
    color: #6c757d;
}

.function-badge {
    padding: 4px 8px;
    background: #e3f2fd;
    color: #1976d2;
    border-radius: 8px;
    font-size: 0.9rem;
    font-weight: 500;
}

.mapping-method {
    padding: 3px 8px;
    background: #fff3e0;
    color: #f57c00;
    border-radius: 6px;
    font-size: 0.85rem;
    font-weight: 500;
}

/* Parcels summary */
.parcels-summary {
    border: 1px solid var(--border-light);
}

.no-membership,
.no-parcels {
    text-align: center;
    padding: 30px;
    color: var(--text-light);
}

.no-membership i,
.no-parcels i {
    font-size: 2rem;
    margin-bottom: 10px;
    color: var(--accent-primary);
}

/* Tabuľka parciel */
.admin-table tfoot tr {
    background: var(--bg-secondary) !important;
    border-top: 2px solid var(--accent-primary);
}

.admin-table tfoot td {
    font-weight: bold;
    color: var(--text-dark);
}

/* Responsive štýly */
@media (max-width: 768px) {
    .detail-row {
        flex-direction: column;
        align-items: flex-start;
        gap: 5px;
    }

    .detail-row strong {
        min-width: auto;
        width: 100%;
    }

    .parcels-summary>div {
        flex-direction: column;
        gap: 10px;
        text-align: center;
    }
}

/* Dark mode štýly */
body.dark-mode .admin-card {
    background: var(--bg-card);
    border-color: rgba(255, 255, 255, 0.1);
}

body.dark-mode .detail-row {
    border-bottom-color: rgba(255, 255, 255, 0.1);
}

body.dark-mode .status-verified {
    background: rgba(40, 167, 69, 0.2);
    color: #28a745;
}

body.dark-mode .status-pending {
    background: rgba(255, 193, 7, 0.2);
    color: #ffc107;
}

body.dark-mode .status-rejected {
    background: rgba(220, 53, 69, 0.2);
    color: #dc3545;
}

body.dark-mode .status-none {
    background: rgba(108, 117, 125, 0.2);
    color: #6c757d;
}

body.dark-mode .function-badge {
    background: rgba(25, 118, 210, 0.2);
    color: #90caf9;
}

body.dark-mode .parcels-summary {
    background: var(--bg-primary) !important;
    border-color: rgba(255, 255, 255, 0.1);
}

body.dark-mode .mapping-method {
    background: rgba(245, 124, 0, 0.2);
    color: #ffb74d;
}

/* Spárovanie vlastníkov */
.mapping-info {
    padding: 20px;
    border-radius: 8px;
    margin-bottom: 20px;
    color: var(--text-primary);
}

.mapping-info.success {
    background: #f0f8f0;
    border: 1px solid #4caf50;
    color: #2e7d32;
}

.mapping-info.pending {
    background: #fef7e0;
    border: 1px solid #ff9800;
    color: #e65100;
}

.mapping-info.warning {
    background: #fef7e0;
    border: 1px solid #ff9800;
    color: #e65100;
}

.potential-owners-list {
    max-height: 400px;
    overflow-y: auto;
    margin: 15px 0;
}

.potential-owner-item {
    border: 1px solid #ddd;
    border-radius: 6px;
    margin-bottom: 10px;
    transition: all 0.2s ease;
}

.potential-owner-item:hover {
    border-color: #2196f3;
    box-shadow: 0 2px 4px rgba(33, 150, 243, 0.1);
}

.potential-owner-item.unavailable {
    opacity: 0.6;
    background: #f5f5f5;
}

.owner-radio-label {
    display: block;
    padding: 15px;
    cursor: pointer;
    margin: 0;
}

.owner-radio-label input[type="radio"] {
    margin-right: 12px;
    transform: scale(1.2);
}

.owner-info {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
}

.owner-name {
    flex: 1;
}

.owner-details {
    flex: 2;
    margin-left: 20px;
    font-size: 0.9em;
    color: #666;
}

.match-scores {
    margin-top: 5px;
}

.score-badge {
    display: inline-block;
    padding: 2px 6px;
    border-radius: 4px;
    font-size: 0.75em;
    font-weight: 500;
    margin-right: 5px;
}

.score-badge.name-score {
    background: #e8f4fd;
    color: #1565c0;
    border: 1px solid #bbdefb;
}

.score-badge.date-score {
    background: #f1f8e9;
    color: #2e7d32;
    border: 1px solid #c8e6c9;
}

.availability-status {
    margin-top: 5px;
    font-weight: 500;
}

.availability-status.dostupný {
    color: #4caf50;
}

.availability-status.už-spárovaný {
    color: #f44336;
}

/* Dark mode pre spárovanie */
body.dark-mode .mapping-info {
    color: var(--text-primary);
}

body.dark-mode .mapping-info.success {
    background: rgba(76, 175, 80, 0.15);
    border-color: #66bb6a;
    color: #a5d6a7;
}

body.dark-mode .mapping-info.pending,
body.dark-mode .mapping-info.warning {
    background: rgba(255, 152, 0, 0.15);
    border-color: #ffb74d;
    color: #ffcc02;
}

body.dark-mode .potential-owner-item {
    border-color: rgba(255, 255, 255, 0.2);
    background: var(--bg-secondary);
}

body.dark-mode .potential-owner-item:hover {
    border-color: #2196f3;
}

body.dark-mode .potential-owner-item.unavailable {
    background: rgba(255, 255, 255, 0.05);
}

body.dark-mode .owner-details {
    color: var(--text-light);
}

/* Perfect match riadky v tabuľke */
.perfect-match-row {
    background: #f8fdf8 !important;
    color: #2e7d32 !important;
}

body.dark-mode .perfect-match-row {
    background: rgba(76, 175, 80, 0.1) !important;
    color: #a5d6a7 !important;
}

body.dark-mode .perfect-match-row td {
    color: #a5d6a7 !important;
}

/* Dark mode pre score badges */
body.dark-mode .score-badge.name-score {
    background: rgba(33, 150, 243, 0.2);
    color: #90caf9;
    border-color: rgba(33, 150, 243, 0.3);
}

body.dark-mode .score-badge.date-score {
    background: rgba(76, 175, 80, 0.2);
    color: #a5d6a7;
    border-color: rgba(76, 175, 80, 0.3);
}

/* Warning box pre dávkové spárovanie */
.bulk-warning-box {
    margin-top: 20px;
    padding: 15px;
    background: #fef9e7;
    border: 1px solid #ffc107;
    border-radius: 5px;
    color: #8a6914;
}

.bulk-warning-box h4 {
    color: #f57c00;
    margin-top: 0;
}

body.dark-mode .bulk-warning-box {
    background: rgba(255, 193, 7, 0.1);
    border-color: #ffb74d;
    color: #ffcc02;
}

body.dark-mode .bulk-warning-box h4 {
    color: #ffb74d;
}

/* Warning box pre dávkové spárovanie */
.bulk-warning-box {
    margin-top: 20px;
    padding: 15px;
    background: #fef9e7;
    border: 1px solid #ffc107;
    border-radius: 5px;
    color: #8a6914;
}

.bulk-warning-box h4 {
    color: #f57c00;
    margin-top: 0;
}

body.dark-mode .bulk-warning-box {
    background: rgba(255, 193, 7, 0.1);
    border-color: #ffb74d;
    color: #ffcc02;
}

body.dark-mode .bulk-warning-box h4 {
    color: #ffb74d;
}

/* Veľké tlačidlo pre dávkové spárovanie */
.btn-large {
    padding: 15px 30px;
    font-size: 1.1em;
    font-weight: 600;
    border-radius: 8px;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
    transition: all 0.3s ease;
}

.btn-large:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 12px rgba(0, 0, 0, 0.15);
}

body.dark-mode .btn-large {
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.3);
}

body.dark-mode .btn-large:hover {
    box-shadow: 0 6px 12px rgba(0, 0, 0, 0.4);
}

.admin-table td a {
    color: var(--accent-primary);
    text-decoration: none;
    font-weight: bold;
}

.admin-table td a:hover {
    text-decoration: underline;
}

.btn-small {
    padding: 6px 10px;
    font-size: 0.8em;
}

.btn-success {
    background-color: #28a745;
    /* Zelená */
    color: white;
}

.btn-danger {
    background-color: #dc3545;
    /* Červená */
    color: white;
}

.no-users-message {
    text-align: center;
    font-size: 1.2em;
    color: var(--text-light);
    padding: 50px 0;
}

/* === Štýly pre Admin Layout (Sidebar) === */
.admin-wrapper {
    display: flex;
    min-height: 100vh;
    background-color: var(--bg-secondary);
}

.admin-sidebar {
    width: 260px;
    background-color: var(--bg-primary);
    color: var(--text-primary);
    display: flex;
    flex-direction: column;
    transition: left 0.3s ease, width 0.3s ease;
    flex-shrink: 0;
}

.admin-sidebar .sidebar-header {
    padding: 20px;
    text-align: center;
    border-bottom: 1px solid var(--border-light);
}

.admin-sidebar .sidebar-header #logo {
    max-height: 40px;
    margin-bottom: 10px;
}

.admin-sidebar .sidebar-header h3 {
    margin: 0;
    color: var(--text-primary);
    font-size: 1.2rem;
}

.admin-sidebar .sidebar-nav {
    flex-grow: 1;
    overflow-y: auto;
}

.admin-sidebar .sidebar-nav ul {
    list-style: none;
    padding: 0;
    margin: 15px 0;
}

.admin-sidebar .sidebar-nav li a {
    display: flex;
    align-items: center;
    padding: 15px 20px;
    color: var(--text-primary);
    text-decoration: none;
    transition: background-color 0.3s ease, color 0.3s ease;
}

.admin-sidebar .sidebar-nav li a:hover {
    background-color: rgba(255, 255, 255, 0.1);
    color: var(--accent-primary);
}

.admin-sidebar .sidebar-nav li.active>a {
    background-color: var(--accent-primary);
    color: var(--accent-primary-text);
    font-weight: bold;
}

.admin-sidebar .sidebar-nav li a i {
    width: 20px;
    margin-right: 15px;
    font-size: 1.1rem;
    text-align: center;
}

/* Submenu styles */
.admin-sidebar .sidebar-nav .submenu {
    list-style: none;
    padding-left: 20px;
    background-color: rgba(0, 0, 0, 0.2);
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.3s ease-out;
}

.admin-sidebar .sidebar-nav .nav-item-collapsible.open .submenu {
    max-height: 500px;
    /* Dostatočne veľká hodnota */
}

.admin-sidebar .sidebar-nav .submenu li a {
    padding: 12px 20px 12px 15px;
}

.admin-sidebar .sidebar-nav .submenu li a i {
    font-size: 0.9rem;
}

/* Arrow for collapsible menu */
.admin-sidebar .sidebar-nav .collapsible-toggle .arrow {
    margin-left: auto;
    transition: transform 0.3s ease;
}

.admin-sidebar .sidebar-nav .nav-item-collapsible.open .collapsible-toggle .arrow {
    transform: rotate(180deg);
}

/* Main Content Area */
.admin-main-content {
    flex-grow: 1;
    display: flex;
    flex-direction: column;
    background-color: var(--bg-secondary);
}

.admin-topbar {
    background-color: var(--bg-card);
    padding: 15px 20px;
    border-bottom: 1px solid #ddd;
    display: flex;
    justify-content: space-between;
    align-items: center;
    box-shadow: 0 2px 5px var(--shadow-light);
}

#admin-hamburger-menu {
    display: none;
    background: none;
    border: none;
    font-size: 1.5rem;
    color: var(--text-dark);
    cursor: pointer;
}

.topbar-controls {
    display: flex;
    align-items: center;
    gap: 15px;
}

.admin-theme-toggle {
    background: none;
    border: 1px solid var(--text-light);
    color: var(--text-dark);
    padding: 8px 12px;
    border-radius: 5px;
    cursor: pointer;
    transition: all 0.3s ease;
}

.admin-theme-toggle:hover {
    background-color: var(--accent-primary);
    color: var(--accent-primary-text);
    border-color: var(--accent-primary);
}

.topbar-user-info {
    color: var(--text-dark);
    font-weight: bold;
}

.admin-page-content {
    flex-grow: 1;
    padding: 20px;
    overflow-y: auto;
}

.admin-footer {
    background-color: var(--bg-card);
    padding: 15px 20px;
    border-top: 1px solid #ddd;
    text-align: center;
    color: var(--text-light);
}

.admin-text-muted {
    color: var(--text-light);
}

.admin-text-strong {
    color: var(--text-dark);
    font-weight: 600;
}

.admin-link {
    color: var(--accent-primary);
    text-decoration: none;
}

.admin-link:hover {
    color: var(--accent-primary-hover);
    text-decoration: underline;
}

.email-subject-link {
    color: var(--text-dark);
    font-weight: 500;
    text-decoration: none;
}

.email-subject-link:hover {
    text-decoration: underline;
}

.email-subject-link.is-unread {
    color: var(--accent-primary);
    font-weight: 600;
}

.admin-attachment-pill {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: var(--bg-secondary);
    color: var(--text-dark);
    border: 1px solid var(--border-light);
    border-radius: 4px;
    padding: 3px 10px;
    margin-right: 5px;
    font-size: 0.85rem;
}

.admin-surface-muted {
    background: var(--bg-secondary);
}

.admin-surface-card {
    background: var(--bg-card);
}

.admin-surface-info {
    background: rgba(33, 150, 243, 0.12);
}

.admin-surface-success {
    background: rgba(40, 167, 69, 0.12);
}

.admin-surface-warning {
    background: rgba(255, 193, 7, 0.12);
}

.admin-surface-danger {
    background: rgba(220, 53, 69, 0.12);
}

.admin-text-info {
    color: var(--accent-primary);
}

.admin-text-success {
    color: #28a745;
}

.admin-text-warning {
    color: #ffc107;
}

.admin-text-danger {
    color: #dc3545;
}

.admin-legend-item {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 0.95rem;
}

.admin-legend-dot {
    display: inline-block;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background: var(--dot-color, var(--accent-primary));
    border: 2px solid var(--dot-color, var(--accent-primary));
}

.admin-legend-dot-empty {
    background: var(--bg-card);
    border: 1px solid var(--border-light);
}

.admin-legend-square {
    width: 20px;
    height: 20px;
    border-radius: 3px;
}

.admin-legend-square--owners {
    background: #4a90e2;
    border: 2px solid #2e5c8a;
}

.admin-legend-square--empty {
    background: #e0e0e0;
    border: 2px solid #999999;
}

.admin-legend-square--parcels {
    background: rgba(13, 110, 253, 0.25);
    border: 2px solid #0d6efd;
}

.admin-legend-square--share-full {
    background: rgba(25, 135, 84, 0.45);
    border: 2px solid #198754;
}

.admin-legend-square--share-half {
    background: rgba(255, 193, 7, 0.45);
    border: 2px solid #ffc107;
}

.admin-legend-square--share-partial {
    background: rgba(253, 126, 20, 0.5);
    border: 2px solid #fd7e14;
}

.admin-legend-square--share-small {
    background: rgba(220, 53, 69, 0.5);
    border: 2px solid #dc3545;
}

.admin-input-readonly {
    background: rgba(255, 255, 255, 0.08);
    color: var(--text-light);
}

.admin-dot {
    display: inline-block;
    width: 10px;
    height: 10px;
    border-radius: 50%;
}

.admin-dot-primary {
    background: var(--accent-primary);
}

.admin-popup-header {
    background: #4a90e2;
    color: #ffffff;
}

.admin-legend-chip {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 12px;
    border-radius: 4px;
}

.admin-legend-label {
    font-size: 0.875rem;
}

.admin-popup-close {
    background: none;
    border: none;
    color: inherit;
    font-size: 24px;
    cursor: pointer;
    padding: 0;
    width: 30px;
    height: 30px;
}

.admin-btn-inverse {
    background: #ffffff;
    color: #667eea;
    border: none;
    padding: 12px 25px;
    border-radius: 8px;
    font-weight: bold;
    cursor: pointer;
}

.admin-icon-accent {
    color: #667eea;
}

.admin-icon-gap {
    margin-right: 8px;
}

.admin-page-title {
    margin-bottom: 10px;
}

.admin-page-subtitle {
    margin-bottom: 30px;
}

.admin-card-spacing {
    margin-bottom: 30px;
}

.admin-card-spacing-sm {
    margin-bottom: 20px;
}

.admin-mt-15 {
    margin-top: 15px;
}

.admin-mt-10 {
    margin-top: 10px;
}

.admin-mt-8 {
    margin-top: 8px;
}

.admin-mt-6 {
    margin-top: 6px;
}

.admin-mt-5 {
    margin-top: 5px;
}

.admin-mt-4 {
    margin-top: 4px;
}

.admin-mt-2 {
    margin-top: 2px;
}

.admin-mt-20 {
    margin-top: 20px;
}

.admin-mt-30 {
    margin-top: 30px;
}

.admin-mb-15 {
    margin-bottom: 15px;
}

.admin-mb-8 {
    margin-bottom: 8px;
}

.admin-mb-10 {
    margin-bottom: 10px;
}

.admin-mb-20 {
    margin-bottom: 20px;
}

.admin-text-center {
    text-align: center;
}

.admin-text-right {
    text-align: right;
}

.admin-inline {
    display: inline;
}

.admin-inline-block {
    display: inline-block;
}

.admin-ml-10 {
    margin-left: 10px;
}

.admin-block {
    display: block;
}

.is-hidden {
    display: none;
}

.admin-flex {
    display: flex;
}

.admin-flex-center {
    display: flex;
    justify-content: center;
    align-items: center;
}

.admin-flex-between {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.admin-flex-wrap {
    flex-wrap: wrap;
}

.admin-align-center {
    align-items: center;
}

.admin-align-end {
    align-items: flex-end;
}

.admin-justify-between {
    justify-content: space-between;
}

.admin-justify-center {
    justify-content: center;
}

.admin-gap-xs {
    gap: 5px;
}

.admin-gap-sm {
    gap: 10px;
}

.admin-gap-md {
    gap: 15px;
}

.admin-gap-lg {
    gap: 20px;
}

.admin-flex-1 {
    flex: 1;
}

.admin-label-strong {
    font-weight: bold;
}

.admin-label {
    display: block;
    margin-bottom: 5px;
    font-weight: 600;
}

.admin-toolbar {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

.admin-toolbar--spaced {
    justify-content: space-between;
    gap: 15px;
}

.admin-filter-group {
    display: flex;
    align-items: center;
    gap: 10px;
}

.admin-input {
    padding: 8px 12px;
    border: 1px solid var(--border-light);
    border-radius: 6px;
    background: var(--bg-card);
    color: var(--text-dark);
}

.admin-input--compact {
    border-radius: 4px;
}

.admin-input--full {
    width: 100%;
}

.admin-input--search {
    width: 250px;
}

.admin-max-600 {
    max-width: 600px;
    width: 100%;
}

.btn-medium {
    padding: 8px 16px;
    font-size: 0.9em;
}

.admin-pagination {
    margin-top: 20px;
    display: flex;
    justify-content: center;
    gap: 5px;
}

.admin-page-chip {
    padding: 8px 15px;
    border-radius: 4px;
}

.admin-empty-state {
    text-align: center;
    padding: 40px;
}

.admin-empty-state--compact {
    padding: 20px;
}

.admin-empty-icon {
    font-size: 3rem;
    margin-bottom: 20px;
    opacity: 0.5;
    display: block;
}

.admin-empty-icon-sm {
    font-size: 2rem;
    margin-bottom: 10px;
    display: block;
}

.admin-empty-icon-lg {
    font-size: 48px;
    margin-bottom: 15px;
    opacity: 0.3;
    display: block;
}

.admin-subtitle {
    margin: 4px 0 0;
}

.admin-intro-text {
    margin: 8px 0 20px;
}

.admin-text-lg {
    font-size: 16px;
}

.admin-text-md {
    font-size: 14px;
}

.admin-text-sm {
    font-size: 13px;
}

.admin-text-xl {
    font-size: 18px;
}

.admin-text-xs {
    font-size: 12px;
}

.admin-popup-card {
    padding: 10px;
    max-width: 400px;
}

.admin-popup-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 12px;
}

.admin-divider {
    margin-bottom: 10px;
    padding-bottom: 10px;
    border-bottom: 1px solid var(--border-light);
}

.admin-divider-top {
    margin-top: 15px;
    border-top: 1px solid var(--border-light);
    padding-top: 10px;
}

.admin-break-word {
    word-break: break-word;
}

.admin-owner-card {
    margin-bottom: 8px;
    padding: 8px;
    border-radius: 4px;
    border-left: 3px solid var(--accent-primary);
}

.admin-link-strong {
    font-weight: 600;
    font-size: 14px;
}

.admin-icon-compact {
    width: 14px;
    display: inline-block;
}

.admin-btn-block {
    width: 100%;
}

.admin-card-compact {
    padding: 10px;
    border-radius: 4px;
}

.admin-card-padded {
    padding: 15px;
    border-radius: 6px;
}

.admin-info-banner {
    margin-bottom: 10px;
    padding: 8px 10px;
    border-left: 3px solid var(--accent-primary);
    border-radius: 4px;
}

.admin-warning-box {
    border: 1px solid #ffc107;
    border-radius: 6px;
    padding: 15px;
}

.admin-relative {
    position: relative;
}

.admin-flex-grow {
    flex: 1;
}

.admin-min-250 {
    min-width: 250px;
}

.admin-min-200 {
    min-width: 200px;
}

.admin-min-180 {
    min-width: 180px;
}

.admin-min-150 {
    min-width: 150px;
}

.admin-min-120 {
    min-width: 120px;
}

.admin-field-col {
    display: flex;
    flex-direction: column;
}

.admin-form-banner {
    margin: 12px 0 20px;
    padding: 12px;
    border-radius: 8px;
    border-left: 4px solid var(--accent-primary);
}

.admin-hint {
    margin-top: 6px;
}

.admin-row-strong {
    font-weight: 600;
}

.admin-link-gap {
    margin-left: 12px;
}

.admin-map-card {
    height: 400px;
    margin-bottom: 20px;
    border-radius: 8px;
    border: 1px solid var(--border-light);
}

.admin-grid-auto-340 {
    display: grid;
    gap: 20px;
    grid-template-columns: repeat(auto-fit, minmax(340px, 1fr));
    align-items: stretch;
}

.admin-chart-panel {
    min-height: 340px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 15px;
}

.admin-table-responsive--flush {
    margin: 0;
}

.admin-map-large {
    height: 520px;
    border-radius: 8px;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.08);
}

.admin-legend-panel {
    margin-top: 15px;
    padding: 12px 16px;
    background: var(--bg-secondary);
    border-radius: 6px;
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}

.admin-color-dot {
    display: inline-block;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    vertical-align: middle;
    background: var(--dot-color, var(--accent-primary));
    border: 2px solid var(--dot-color, var(--accent-primary));
}

.admin-card-border-success {
    border: 2px solid #4caf50;
}

.admin-card-border-info {
    border: 2px solid #2196f3;
}

.admin-scroll-400 {
    max-height: 400px;
    overflow-y: auto;
}

.admin-grid-2 {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
}

.admin-list-reset {
    list-style: none;
    padding: 0;
    margin: 0;
}

.admin-list-item {
    padding: 12px 0;
    border-bottom: 1px solid var(--border-light);
}

.admin-list-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.admin-list-desc {
    color: var(--text-light);
    font-size: 0.9rem;
}

.admin-map-container {
    position: relative;
    width: 100%;
    height: 700px;
    border: 2px solid var(--border-light);
    border-radius: 8px;
    overflow: hidden;
}

.admin-loading-indicator {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    text-align: center;
}

.admin-icon-xl {
    font-size: 48px;
}

.admin-info-panel {
    margin-top: 15px;
    padding: 15px;
    border-radius: 6px;
}

.admin-heading-tight {
    margin: 0 0 10px 0;
}

.admin-popup {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    border-radius: 8px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
    max-width: 600px;
    max-height: 80vh;
    overflow: hidden;
    z-index: 10000;
}

.admin-popup-content {
    padding: 20px;
    overflow-y: auto;
    max-height: calc(80vh - 80px);
}

.admin-popup-overlay {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.5);
    z-index: 9999;
}

.admin-modal-overlay {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.5);
    z-index: 10000;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
}

.admin-modal {
    background: var(--bg-card);
    color: var(--text-dark);
    border-radius: 8px;
    max-width: 700px;
    width: 100%;
    max-height: 80vh;
    overflow-y: auto;
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.3);
}

.admin-popup-title {
    margin: 0;
    font-size: 18px;
}

.admin-detail-header {
    border-bottom: 2px solid var(--border-light);
    padding-bottom: 20px;
    margin-bottom: 20px;
}

.admin-detail-priority {
    display: grid;
    gap: 12px;
    margin-bottom: 8px;
}

.admin-detail-pair {
    display: flex;
    align-items: flex-start;
    gap: 12px;
}

.admin-detail-label {
    min-width: 150px;
    font-weight: 600;
    color: var(--text-dark);
    white-space: nowrap;
}

.admin-detail-value {
    flex: 1;
    color: var(--text-light);
}

.admin-detail-list {
    display: grid;
    grid-template-columns: 170px 1fr;
    gap: 8px 16px;
    align-items: center;
    margin: 0;
}

.admin-detail-list dt {
    margin: 0;
    font-weight: 600;
    color: var(--text-dark);
}

.admin-detail-list dd {
    margin: 0;
    color: var(--text-light);
}

.admin-detail-list dd a {
    color: var(--text-dark);
    text-decoration: underline;
}

.admin-detail-card h3 {
    margin-top: 0;
}

.admin-detail-grid {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 10px 20px;
    font-size: 0.95rem;
}

.admin-detail-grid--single {
    grid-template-columns: 1fr;
}

.admin-action-bar {
    margin-bottom: 20px;
    display: flex;
    gap: 10px;
}

.admin-action-strip {
    margin-top: 20px;
    display: flex;
    gap: 15px;
    justify-content: center;
    border-top: 1px solid var(--border-light);
    padding-top: 20px;
}

.admin-email-body {
    border: 1px solid var(--border-light);
    border-radius: 8px;
    padding: 25px;
    min-height: 300px;
}

.admin-preformatted {
    white-space: pre-wrap;
    font-family: inherit;
    margin: 0;
}

.admin-nav-row {
    margin-top: 20px;
    display: flex;
    justify-content: space-between;
}

.admin-card-accent-info {
    border-left: 4px solid #17a2b8;
}

.admin-card-accent-danger {
    border-left: 4px solid #dc3545;
}

.admin-subsection-title {
    margin-top: 16px;
}

.admin-table-spacing {
    margin-bottom: 20px;
}

.admin-table-flush {
    margin-top: 0;
}

.admin-callout {
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    color: #ffffff;
    padding: 25px;
    border-radius: 12px;
    margin-bottom: 30px;
}

.admin-callout-title {
    margin: 0 0 15px 0;
}

.admin-callout-text {
    margin: 0 0 15px 0;
    opacity: 0.9;
}

.admin-card-elevated {
    border-radius: 12px;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
    overflow: hidden;
}

.admin-card-header {
    padding: 15px 20px;
    border-bottom: 1px solid #eee;
}

.admin-heading-reset {
    margin: 0;
}

.admin-m-0 {
    margin: 0;
}

.admin-form-inline {
    display: inline;
}

.admin-col-40 {
    width: 40px;
}

.admin-col-140 {
    width: 140px;
}

.admin-col-150 {
    width: 150px;
}

.admin-col-200 {
    width: 200px;
}

.admin-popup-header {
    padding: 20px;
    border-bottom: 1px solid #ddd;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.stats-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 20px;
    margin-bottom: 30px;
}

.stats-grid--spacious {
    margin-bottom: 40px;
}

.admin-stat-card {
    color: #ffffff;
    border-radius: 12px;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
    padding: 20px;
}

.admin-stat-card--lg {
    padding: 25px;
}

.admin-stat-card--indigo {
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
}

.admin-stat-card--rose {
    background: linear-gradient(135deg, #f093fb 0%, #f5576c 100%);
}

.admin-stat-card--sky {
    background: linear-gradient(135deg, #4facfe 0%, #00f2fe 100%);
}

.admin-stat-card--mint {
    background: linear-gradient(135deg, #43e97b 0%, #38f9d7 100%);
}

.admin-stat-card--coral {
    background: linear-gradient(135deg, #ff6b6b 0%, #ee5a6f 100%);
}

.admin-stat-card--primary {
    background: linear-gradient(135deg, #0d6efd 0%, #0a58ca 100%);
}

.admin-stat-card--warning {
    background: linear-gradient(135deg, #ffc107 0%, #ff8a00 100%);
}

.admin-stat-card--success {
    background: linear-gradient(135deg, #28a745 0%, #20c997 100%);
}

.admin-stat-card--danger {
    background: linear-gradient(135deg, #dc3545 0%, #c82333 100%);
}

.admin-stat-card--violet {
    background: linear-gradient(135deg, #6f42c1 0%, #e83e8c 100%);
}

.admin-stat-title {
    font-size: 0.9rem;
    opacity: 0.9;
    margin-bottom: 8px;
}

.admin-stat-value {
    font-size: 2.5rem;
    font-weight: bold;
}

.admin-stat-note {
    font-size: 0.85rem;
    opacity: 0.8;
    margin-top: 8px;
}

.admin-stat-link {
    display: inline-block;
    margin-top: 12px;
    color: inherit;
    text-decoration: underline;
    font-size: 0.9rem;
}

.admin-status {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-weight: 600;
}

.admin-status-admin {
    color: #dc3545;
}

.admin-status-member {
    color: #28a745;
}

.admin-status-pending {
    color: #ffc107;
}

.admin-status-registered {
    color: #17a2b8;
}

.admin-status-email-pending {
    color: var(--text-light);
}

body.dark-mode .admin-page-content [style*="color: #333"]:not(.btn),
body.dark-mode .admin-page-content [style*="color:#333"]:not(.btn) {
    color: var(--text-dark) !important;
}

body.dark-mode .admin-page-content [style*="color: #666"],
body.dark-mode .admin-page-content [style*="color:#666"],
body.dark-mode .admin-page-content [style*="color: #999"],
body.dark-mode .admin-page-content [style*="color:#999"],
body.dark-mode .admin-page-content [style*="color: #6c757d"],
body.dark-mode .admin-page-content [style*="color:#6c757d"],
body.dark-mode .admin-page-content [style*="color: #495057"],
body.dark-mode .admin-page-content [style*="color:#495057"] {
    color: var(--text-light) !important;
}

body.dark-mode .admin-page-content [style*="background: #fff"],
body.dark-mode .admin-page-content [style*="background:#fff"] {
    background: var(--bg-card) !important;
    color: var(--text-dark) !important;
}

body.dark-mode .admin-page-content [style*="background: #f5f5f5"],
body.dark-mode .admin-page-content [style*="background:#f5f5f5"],
body.dark-mode .admin-page-content [style*="background: #f0f0f0"],
body.dark-mode .admin-page-content [style*="background:#f0f0f0"] {
    background: var(--bg-card) !important;
    color: var(--text-dark) !important;
}

body.dark-mode .admin-page-content [style*="background: #f8f9fa"],
body.dark-mode .admin-page-content [style*="background:#f8f9fa"] {
    background: var(--bg-secondary) !important;
    color: var(--text-dark) !important;
}

body.dark-mode .admin-page-content [style*="background: #e9ecef"],
body.dark-mode .admin-page-content [style*="background:#e9ecef"] {
    background: rgba(255, 255, 255, 0.08) !important;
    color: var(--text-dark) !important;
}

body.dark-mode .admin-page-content [style*="background: #e7f3ff"],
body.dark-mode .admin-page-content [style*="background:#e7f3ff"],
body.dark-mode .admin-page-content [style*="background: #e3f2fd"],
body.dark-mode .admin-page-content [style*="background:#e3f2fd"] {
    background: rgba(33, 150, 243, 0.15) !important;
    color: #90caf9 !important;
}

body.dark-mode .admin-page-content [style*="background: #fff3cd"],
body.dark-mode .admin-page-content [style*="background:#fff3cd"] {
    background: rgba(255, 193, 7, 0.15) !important;
    color: #ffcc02 !important;
}

body.dark-mode .leaflet-popup-content-wrapper,
body.dark-mode .leaflet-popup-tip {
    background: var(--bg-card);
    color: var(--text-dark);
}

body.dark-mode .leaflet-popup-content-wrapper a {
    color: var(--accent-primary);
}

/* Responsive styles for admin layout */
@media (max-width: 992px) {
    .admin-sidebar {
        position: fixed;
        left: -260px;
        top: 0;
        height: 100%;
        z-index: 1000;
    }

    .admin-wrapper.sidebar-open .admin-sidebar {
        left: 0;
        /* css/layout/admin-layout.css (main.css) skrýva panel cez transform a čaká na
           triedu .show, ktorú JS nenastavuje — bez tohto prepisu ostal panel na mobile
           neviditeľný (stmavlo len pozadie). Oprava 2026-09-08. */
        transform: none;
    }

    .admin-main-content {
        width: 100%;
    }

    #admin-hamburger-menu {
        display: block;
    }

    .admin-wrapper.sidebar-open::after {
        content: '';
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        background: rgba(0, 0, 0, 0.5);
        z-index: 999;
    }
}

.btn-info {
    background-color: #17a2b8;
    /* Tyrkysová */
    color: white;
}

/* Štýly pre detail používateľa */
.admin-detail-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 20px;
    flex-wrap: wrap;
}

.admin-detail-actions {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    align-items: center;
}

.profile-edit-form .profile-details input,
.profile-edit-form .profile-details textarea,
.profile-edit-form .profile-details select {
    width: 100%;
    padding: 8px 12px;
    border-radius: 6px;
    border: 1px solid #ccd6e0;
    font-size: 0.95rem;
    background-color: #ffffff;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
    box-sizing: border-box;
}

.profile-edit-form .profile-details input:focus,
.profile-edit-form .profile-details textarea:focus,
.profile-edit-form .profile-details select:focus {
    outline: none;
    border-color: #0d6efd;
    box-shadow: 0 0 0 3px rgba(13, 110, 253, 0.15);
}

.profile-edit-form .profile-details input:disabled,
.profile-edit-form .profile-details textarea:disabled,
.profile-edit-form .profile-details select:disabled {
    background-color: #f5f7fb;
    color: #6c757d;
    cursor: not-allowed;
}

.address-fields {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: 10px;
}

.hidden {
    display: none !important;
}

/* Modal styles */
.modal {
    display: none;
    position: fixed;
    z-index: 1000;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    overflow: auto;
    background-color: rgba(0, 0, 0, 0.6);
    animation: fadeIn 0.3s ease;
}

.modal.show {
    display: block;
}

@keyframes fadeIn {
    from {
        opacity: 0;
    }

    to {
        opacity: 1;
    }
}

.modal-overlay {
    position: fixed;
    inset: 0;
    background: rgba(13, 31, 75, 0.65);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
    z-index: 1050;
}

.modal-content {
    background: #ffffff;
    border-radius: 12px;
    max-width: 420px;
    width: 100%;
    padding: 24px;
    box-shadow: 0 20px 45px rgba(0, 0, 0, 0.25);
    text-align: left;
    margin: 50px auto;
    position: relative;
    animation: slideDown 0.3s ease;
}

@keyframes slideDown {
    from {
        transform: translateY(-50px);
        opacity: 0;
    }

    to {
        transform: translateY(0);
        opacity: 1;
    }
}

.modal .close {
    color: #aaa;
    float: right;
    font-size: 28px;
    font-weight: bold;
    line-height: 20px;
    cursor: pointer;
    transition: color 0.3s ease;
}

.modal .close:hover,
.modal .close:focus {
    color: #000;
}

.modal-content h3 {
    margin-top: 0;
    margin-bottom: 12px;
}

.modal-actions {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
    margin-top: 18px;
    align-items: center;
}

body.dark-mode .profile-edit-form .profile-details input,
body.dark-mode .profile-edit-form .profile-details textarea,
body.dark-mode .profile-edit-form .profile-details select {
    background-color: rgba(12, 28, 52, 0.85);
    border-color: rgba(121, 176, 255, 0.4);
    color: #f5f8ff;
}

body.dark-mode .profile-edit-form .profile-details input:disabled,
body.dark-mode .profile-edit-form .profile-details textarea:disabled,
body.dark-mode .profile-edit-form .profile-details select:disabled {
    background-color: rgba(12, 28, 52, 0.6);
    color: #a4b3d1;
}

body.dark-mode .modal-content {
    background: rgba(9, 22, 44, 0.95);
    color: #f5f8ff;
    box-shadow: 0 20px 45px rgba(0, 0, 0, 0.6);
}

.admin-detail-grid {
    display: grid;
    grid-template-columns: 2fr 1fr;
    gap: 20px;
}

.admin-detail-grid.admin-detail-grid--single {
    grid-template-columns: 1fr;
}

@media (max-width: 768px) {
    .admin-detail-grid {
        grid-template-columns: 1fr;
    }
}

.admin-detail-card {
    background-color: var(--bg-card);
    padding: 20px;
    border-radius: 8px;
    box-shadow: 0 2px 10px var(--shadow-light);
}

.admin-detail-card h3 {
    margin-top: 0;
    border-bottom: 1px solid #eee;
    padding-bottom: 10px;
    margin-bottom: 15px;
}

.admin-actions-group .btn {
    width: 100%;
    margin-bottom: 10px;
    text-align: center;
    display: block;
}

.admin-actions-group form {
    display: block !important;
    margin-left: 0 !important;
}

/* GDPR consent banner */

.cookie-consent {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    width: 100%;
    background: rgba(13, 47, 107, 0.96);
    color: #f8fafc;
    padding: 18px 0;
    z-index: 9999;
    box-shadow: 0 -12px 24px rgba(13, 47, 107, 0.35);
    border-top: 3px solid rgba(255, 255, 255, 0.18);
}

.cookie-consent[hidden] {
    display: none !important;
}

.cookie-consent__inner {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 24px;
    flex-wrap: wrap;
    max-width: 1180px;
    margin: 0 auto;
    padding: 0 24px;
}

.cookie-consent__text {
    flex: 1 1 320px;
}

.cookie-consent__text h3 {
    margin: 0 0 8px;
    font-size: 1.15rem;
    color: #fde68a;
}

.cookie-consent__text p {
    margin: 0;
    font-size: 0.95rem;
    line-height: 1.6;
}

.cookie-consent__text a {
    color: #bfdbfe;
    text-decoration: underline;
}

.cookie-consent__text a:hover,
.cookie-consent__text a:focus {
    text-decoration: none;
}

.cookie-consent__actions {
    display: flex;
    justify-content: flex-end;
    gap: 12px;
    flex-wrap: wrap;
}

.cookie-consent__actions .btn {
    min-width: 150px;
    font-size: 0.95rem;
}

body.dark-mode .cookie-consent {
    background: rgba(15, 23, 42, 0.96);
    color: #f1f5f9;
    border-top-color: rgba(148, 163, 184, 0.3);
    box-shadow: 0 -12px 28px rgba(15, 23, 42, 0.65);
}

body.dark-mode .cookie-consent__text h3 {
    color: #facc15;
}

body.dark-mode .cookie-consent__text a {
    color: #93c5fd;
}

.footer-privacy {
    border-top: 1px solid rgba(148, 163, 184, 0.2);
    padding: 12px 0;
    margin: 20px auto 0;
    display: flex;
    gap: 16px;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
}

.footer-privacy a,
.footer-privacy .privacy-manage-link {
    font-size: 0.9rem;
}

.privacy-manage-link {
    background: none;
    border: none;
    padding: 0;
    color: #0d6efd;
    text-decoration: underline;
    cursor: pointer;
}

.privacy-manage-link:hover,
.privacy-manage-link:focus {
    text-decoration: none;
}

/* Politika ochrany osobných údajov - vždy modrá */
.privacy-policy-link,
.privacy-policy-link:link,
.privacy-policy-link:visited,
.privacy-policy-link:active {
    color: #0d6efd;
    text-decoration: underline;
}

.privacy-policy-link:hover,
.privacy-policy-link:focus {
    text-decoration: none;
}

body.dark-mode .privacy-manage-link,
body.dark-mode .privacy-policy-link,
body.dark-mode .privacy-policy-link:link,
body.dark-mode .privacy-policy-link:visited,
body.dark-mode .privacy-policy-link:active {
    color: #38bdf8;
}

@media (max-width: 768px) {
    .cookie-consent__inner {
        flex-direction: column;
        align-items: stretch;
    }

    .cookie-consent__actions {
        justify-content: stretch;
    }

    .cookie-consent__actions .btn {
        width: 100%;
        justify-content: center;
    }
}

body.has-cookie-banner {
    padding-bottom: 110px;
}

.badge {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 2px 8px;
    border-radius: 999px;
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.4px;
}

.badge-warning {
    background: #fef3c7;
    color: #92400e;
}

.badge-info {
    background: #e0f2fe;
    color: #0c4a6e;
}

.badge-success {
    background: #dcfce7;
    color: #166534;
}

body.dark-mode .badge-warning {
    background: rgba(251, 191, 36, 0.2);
    color: #fbbf24;
}

body.dark-mode .badge-info {
    background: rgba(14, 165, 233, 0.25);
    color: #38bdf8;
}

body.dark-mode .badge-success {
    background: rgba(34, 197, 94, 0.2);
    color: #4ade80;
}

.hero-container {
    background: rgba(240, 246, 255, 0.82);
    /* jemný modro-biely podklad so ~82 % nepriehľadnosťou */
    border-radius: 16px;
    padding: 24px 28px;
    backdrop-filter: blur(2px);
    animation: fadeInUp 1s ease-out forwards;
    /* Animation added */
    opacity: 0;
    /* Start invisible */
    transform: translateY(30px);
    /* Start slightly lower */
}

@keyframes fadeInUp {
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.visitor-toggle {
    appearance: none;
    background: rgba(13, 110, 253, 0.08);
    border: none;
    border-radius: 8px;
    color: #0d6efd;
    cursor: pointer;
    padding: 6px 8px;
    margin-right: 8px;
    transition: background 0.2s ease, color 0.2s ease;
}

.visitor-toggle .fa-chevron-down {
    transition: transform 0.2s ease;
}

.visitor-toggle.is-open .fa-chevron-down {
    transform: rotate(180deg);
}

.visitor-toggle:hover,
.visitor-toggle:focus {
    background: rgba(13, 110, 253, 0.2);
    color: #0b5ed7;
}

body.dark-mode .visitor-toggle {
    background: rgba(59, 130, 246, 0.15);
    color: #38bdf8;
}

body.dark-mode .visitor-toggle:hover,
body.dark-mode .visitor-toggle:focus {
    background: rgba(59, 130, 246, 0.25);
    color: #60a5fa;
}

.visitor-sessions-table {
    margin-top: 12px;
}

.visitor-sessions-table .admin-table {
    margin: 0;
}

.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

/* INFORMAČNÉ STRÁNKY (GDPR, stanovy a pod.): SVETLÉ pozadie na celej výške +
   obsah v bielej karte — text je vždy tmavý na svetlom, nikdy nesplýva.
   (Platí aj v tmavom režime — informačný text má byť vždy dobre čitateľný.) */
body.gdpr-page,
body.info-page,
body.dark-mode.gdpr-page,
body.dark-mode.info-page {
    background: linear-gradient(180deg, #eaf3fd 0%, #f7fbff 60%, #eaf3fd 100%);
    background-repeat: no-repeat;
    min-height: 100vh;
    color: #1a1a1a;
}

.gdpr-info-section .container,
.static-content-section .container {
    max-width: 860px;
    margin: 40px auto;
    background: #ffffff;
    border-radius: 14px;
    box-shadow: 0 6px 28px rgba(0, 0, 0, 0.18);
    padding: 34px;
    color: #1a1a1a;
}

.gdpr-info-section h1,
.gdpr-info-section h2,
.gdpr-info-section h3,
.gdpr-info-section h4,
.static-content-section h1,
.static-content-section h2,
.static-content-section h3,
.static-content-section h4 {
    color: #0d2f6b;
}

/* Odkazy v texte informačných stránok — TLAČIDLÁ (.btn) sú vyňaté,
   inak by modrý podčiarknutý text prefarbil aj tlačidlá. */
.gdpr-info-section a:not(.btn),
.static-content-section a:not(.btn) {
    color: #2879bd;
    text-decoration: underline;
}

/* === Proxy Management Styles === */
.proxy-actions {
    margin-top: 10px;
    display: flex;
    gap: 5px;
    flex-wrap: wrap;
}

.btn-small {
    padding: 4px 8px;
    font-size: 0.8rem;
    border-radius: 4px;
    cursor: pointer;
    border: none;
    text-decoration: none;
    display: inline-block;
    font-weight: 600;
}

.btn-danger {
    background-color: #dc3545;
    color: white;
}

.btn-danger:hover {
    background-color: #bb2d3b;
}

.btn-warning {
    background-color: #ffc107;
    color: #000;
}

.btn-warning:hover {
    background-color: #ffca2c;
}

.proxy-replace-form {
    display: none;
    margin: 15px 0;
    background: #fff;
    padding: 20px;
    border-radius: 8px;
    border: 1px solid #ddd;
    box-shadow: 0 2px 10px rgba(0,0,0,0.05);
}

.proxy-replace-form h4 {
    margin-top: 0;
    color: #0b3b8c;
    margin-bottom: 15px;
}

.form-grid-2 {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 15px;
    margin-bottom: 15px;
}

.form-actions {
    display: flex;
    align-items: center;
    gap: 10px;
}

.btn-text {
    background: none;
    border: none;
    color: #666;
    cursor: pointer;
    text-decoration: underline;
    font-size: 0.9rem;
    padding: 0;
}

.btn-text:hover {
    color: #333;
}

/* === Modal Styles === */
.modal {
    display: none; /* Hidden by default */
    position: fixed; /* Stay in place */
    z-index: 1000; /* Sit on top */
    left: 0;
    top: 0;
    width: 100%; /* Full width */
    height: 100%; /* Full height */
    overflow: auto; /* Enable scroll if needed */
    background-color: rgba(0,0,0,0.5); /* Black w/ opacity */
    backdrop-filter: blur(5px); /* Blur background */
}

.modal-content {
    background-color: #fefefe;
    margin: 15% auto; /* 15% from the top and centered */
    padding: 0;
    border-radius: 12px;
    box-shadow: 0 5px 25px rgba(0,0,0,0.2);
    width: 90%;
    max-width: 500px;
    position: relative;
    animation: modalFadeIn 0.3s;
}

@keyframes modalFadeIn {
    from {opacity: 0; transform: translateY(-20px);}
    to {opacity: 1; transform: translateY(0);}
}

.close-modal {
    color: #aaa;
    float: right;
    font-size: 28px;
    font-weight: bold;
    margin-right: 20px;
    margin-top: 10px;
    cursor: pointer;
    transition: color 0.2s;
}

.close-modal:hover,
.close-modal:focus {
    color: #000;
    text-decoration: none;
    cursor: pointer;
}

.modal-header {
    padding: 20px 20px 10px;
    text-align: center;
    border-bottom: 1px solid #eee;
}

.error-icon {
    font-size: 3rem;
    color: #dc3545;
    margin-bottom: 10px;
    display: block;
}

.modal-header h3 {
    margin: 0;
    color: #333;
    font-size: 1.5rem;
}

.modal-body {
    padding: 20px;
    text-align: center;
    color: #555;
    line-height: 1.6;
}

.contact-box {
    background-color: #f8f9fa;
    padding: 15px;
    border-radius: 8px;
    margin-top: 20px;
    border: 1px solid #e9ecef;
}

.contact-email {
    display: inline-block;
    margin-top: 10px;
    font-weight: bold;
    color: var(--accent-primary);
    font-size: 1.1rem;
}

.modal-footer {
    padding: 15px 20px;
    text-align: center;
    border-top: 1px solid #eee;
    background-color: #f8f9fa;
    border-bottom-left-radius: 12px;
    border-bottom-right-radius: 12px;
}

/* Dark mode support for modal */
body.dark-mode .modal-content {
    background-color: var(--bg-card);
    color: var(--text-primary);
}

body.dark-mode .modal-header {
    border-bottom-color: var(--border-light);
}

body.dark-mode .modal-header h3 {
    color: var(--text-primary);
}

body.dark-mode .modal-body {
    color: var(--text-light);
}

body.dark-mode .contact-box {
    background-color: rgba(255,255,255,0.05);
    border-color: var(--border-light);
}

body.dark-mode .modal-footer {
    background-color: rgba(0,0,0,0.2);
    border-top-color: var(--border-light);
}

body.dark-mode .close-modal {
    color: var(--text-light);
}

body.dark-mode .close-modal:hover {
    color: var(--text-primary);
}

/* Navigation badge for pending messages count */
.nav-badge {
    background: #dc3545;
    color: white;
    border-radius: 10px;
    padding: 2px 6px;
    font-size: 0.7rem;
    font-weight: bold;
    min-width: 16px;
    height: 16px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-left: 5px;
    animation: pulse 2s infinite;
}

@keyframes pulse {
    0% {
        transform: scale(1);
    }
    50% {
        transform: scale(1.1);
    }
    100% {
        transform: scale(1);
    }
}

/* =====================================================================
   JEMNE SVETLOMODRÉ VSTUPNÉ POLIA — v celom webe (2026-07-07)
   Aby bolo jasne vidno, kam sa vkladá text. Nastavujeme LEN background-color
   (nie shorthand), aby sme neodstránili šípku pri <select> ani chybové stavy.
   ===================================================================== */
input[type="text"],
input[type="email"],
input[type="password"],
input[type="tel"],
input[type="number"],
input[type="search"],
input[type="url"],
input[type="date"],
input[type="time"],
input[type="datetime-local"],
input:not([type]),
textarea,
select,
.form-control {
    background-color: #eaf3fd; /* jemná svetlomodrá */
}

input[type="text"]:focus,
input[type="email"]:focus,
input[type="password"]:focus,
input[type="tel"]:focus,
input[type="number"]:focus,
input[type="search"]:focus,
input[type="url"]:focus,
input[type="date"]:focus,
input[type="time"]:focus,
input[type="datetime-local"]:focus,
input:not([type]):focus,
textarea:focus,
select:focus,
.form-control:focus {
    background-color: #dcecfb; /* pri kliknutí o kúsok výraznejšia */
}

/* Tmavý režim — tmavomodré pole so svetlým textom (čitateľné) */
body.dark-mode input[type="text"],
body.dark-mode input[type="email"],
body.dark-mode input[type="password"],
body.dark-mode input[type="tel"],
body.dark-mode input[type="number"],
body.dark-mode input[type="search"],
body.dark-mode input[type="url"],
body.dark-mode input[type="date"],
body.dark-mode input[type="time"],
body.dark-mode input[type="datetime-local"],
body.dark-mode input:not([type]),
body.dark-mode textarea,
body.dark-mode select,
body.dark-mode .form-control {
    background-color: #17324e;
    color: #eaf2fb;
}

/* =====================================================================
   ZJEDNOTENÝ SYSTÉM TLAČIDIEL — finálna vrstva (2026-07-07)
   Web má historicky 3 sady štýlov tlačidiel (style.css, core/base.css,
   components/buttons.css) + jednorazové triedy. Táto sekcia je POSLEDNÁ
   v kaskáde a zjednocuje FARBY a ČITATEĽNOSŤ všetkých tlačidiel:
     • plné tlačidlá (primary/success/danger/info/signup) = vždy biely text
     • btn-secondary = adaptívne: modrý obrys na svetlom, biely na tmavom
     • holé .btn bez variantu dostane viditeľný obrys
     • aliasy: btn-sm=btn-small; dodefinované btn-outline-primary/-danger
   !important sa používa zámerne — jednorazové/staršie pravidlá (aj inline
   <style> v stránkach) musia prehrať, čitateľnosť má prednosť.
   ===================================================================== */

/* — tlačidlá-odkazy: nikdy podčiarknuté — */
a.btn, a.btn:link, a.btn:visited, a.btn:hover,
a.btn-back, a.btn-mini, a.btn-small {
    text-decoration: none !important;
}

/* — plné farebné tlačidlá: text vždy čitateľný — */
.btn-primary, .btn-primary:hover, .btn-primary:visited,
.btn-signup,  .btn-signup:hover,  .btn-signup:visited,
.btn-success, .btn-success:hover, .btn-success:visited,
.btn-danger,  .btn-danger:hover,  .btn-danger:visited,
.btn-info,    .btn-info:hover,    .btn-info:visited {
    color: #ffffff !important;
}
.btn-warning, .btn-warning:hover, .btn-warning:visited {
    color: #212529 !important;
}

/* — holé .btn bez variantu (napr. filtre v admin schránke): viditeľný obrys — */
.btn:not([class*="btn-"]):not(.logout-btn) {
    border: 1px solid var(--accent-primary);
    color: var(--accent-primary);
    background-color: transparent;
}
.btn:not([class*="btn-"]):not(.logout-btn):hover {
    background-color: var(--accent-primary);
    color: #ffffff;
}

/* — btn-secondary: ZÁKLAD = svetlé plochy (modrý obrys + modrý text) — */
.btn-secondary {
    background-color: transparent !important;
    border: 2px solid var(--accent-primary) !important;
    color: var(--accent-primary) !important;
}
.btn-secondary:hover {
    background-color: var(--accent-primary) !important;
    color: #ffffff !important;
}

/* — btn-secondary: VÝNIMKY NA TMAVÝCH PLOCHÁCH (biely obrys + biely text) — */
/* .hero-actions je zámerne vynechané — sedí na svetlej kartičke .hero-container,
   biely text na bielom by tam bol takmer neviditeľný (nahlásené predsedom). */
.header-actions .btn-secondary,
footer .btn-secondary,
.cookie-consent .btn-secondary,
.user-header .btn-secondary,
body.dark-mode .btn-secondary {
    background-color: transparent !important;
    border-color: #ffffff !important;
    color: #ffffff !important;
}
.header-actions .btn-secondary:hover,
footer .btn-secondary:hover,
.cookie-consent .btn-secondary:hover,
.user-header .btn-secondary:hover,
body.dark-mode .btn-secondary:hover {
    background-color: #ffffff !important;
    color: #0d2f6b !important;
}

/* — v tmavom režime sú svetlé „ostrovy" (Leaflet popup, biele karty) — tam modrý obrys — */
body.dark-mode .leaflet-popup-content .btn-secondary {
    border-color: var(--accent-primary) !important;
    color: var(--accent-primary) !important;
}

/* — veľkosti: alias btn-sm = btn-small; btn-mini kompakt — */
.btn-sm, .btn-small {
    padding: 5px 12px;
    font-size: 0.85rem;
}
.btn-mini {
    padding: 6px 12px;
    font-size: 0.85rem;
    border-radius: 5px;
}

/* — dodefinovanie tried používaných v profile (doteraz bez definície) — */
.btn-outline-primary {
    background-color: transparent;
    border: 1px solid var(--accent-primary);
    color: var(--accent-primary) !important;
}
.btn-outline-primary:hover { background-color: var(--accent-primary); color: #fff !important; }
.btn-outline-danger {
    background-color: transparent;
    border: 1px solid var(--color-danger, #dc3545);
    color: var(--color-danger, #dc3545) !important;
}
.btn-outline-danger:hover { background-color: var(--color-danger, #dc3545); color: #fff !important; }

/* — linkové tlačidlá súkromia v tmavej pätičke: svetlé, čitateľné — */
footer .privacy-manage-link,
footer .privacy-policy-link,
.footer-privacy .privacy-manage-link,
.footer-privacy .privacy-policy-link {
    color: #cfe3ff !important;
    text-decoration: underline;
    background: none;
    border: none;
    cursor: pointer;
}
.footer-privacy .privacy-manage-link:hover,
.footer-privacy .privacy-policy-link:hover {
    color: #ffffff !important;
}

/* — vypnuté tlačidlá (aj <span class="btn"> ako neaktívne stránkovanie) — */
.btn:disabled, .btn[disabled], .btn[aria-disabled="true"], span.btn {
    opacity: 0.55;
    cursor: not-allowed;
}
