/* public/admin/admin-shell.css — štýly kostry administrácie (bočný panel,
   karty, tabuľky, modály, formuláre). Vyňaté z `index.html` bez jedinej
   zmeny obsahu; poradie načítania ostalo rovnaké, takže kaskáda platí tak
   ako predtým: za `admin-cinematic.css` a `admin-responsive.css`, pred
   `calendar.css`.

   Dôvod je ten istý ako pri `calendar.css`: monolit smie už len klesať
   (`npm run check:admin-monolit`). */
:root{--primary:#228B22;--primary-dark:#1a6b1a;--primary-light:#90EE90;--danger:#dc3545;--warning:#ffc107;--info:#17a2b8;--success:#28a745;--dark:#1a1a1a;--gray:#6c757d;--gray-light:#e9ecef;--light:#f8f9fa;--white:#fff;--shadow:0 2px 10px rgba(0,0,0,0.1);--radius:12px}
*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:1rem}body{font-family:'Inter',sans-serif;background:var(--light);min-height:100vh;display:flex;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
::selection{background:var(--primary);color:var(--white)}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
.sidebar{width:280px;background:linear-gradient(180deg,var(--dark) 0%,#2d2d2d 100%);color:var(--white);padding:1.5rem;position:fixed;height:100vh;overflow-y:auto;z-index:100}
.sidebar-header{display:flex;align-items:center;gap:1rem;margin-bottom:2rem;padding-bottom:1.5rem;border-bottom:1px solid rgba(255,255,255,0.1)}
.sidebar-header img{height:50px;filter:brightness(0) invert(1)}.sidebar-header h2{font-size:1rem;font-weight:600}
.sidebar-header small{display:block;font-size:0.75rem;opacity:0.7;margin-top:0.25rem}
.nav-section{margin-bottom:1.5rem}.nav-section-title{font-size:0.78rem;font-weight:600;text-transform:uppercase;letter-spacing:1px;color:rgba(255,255,255,0.85);margin-bottom:0.75rem;padding-left:0.5rem}
.nav-item{display:flex;align-items:center;gap:0.75rem;padding:0.75rem 1rem;border-radius:var(--radius);cursor:pointer;transition:all 0.2s;margin-bottom:0.25rem;font-size:0.9rem}
.nav-item:hover{background:rgba(255,255,255,0.1)}.nav-item.active{background:var(--primary);font-weight:500}
.nav-item:focus-visible{outline:2px solid var(--gold,#d4b170);outline-offset:-2px;background:rgba(255,255,255,0.08)}
.nav-item .icon{width:20px;text-align:center;font-size:1rem}.nav-item .badge{margin-left:auto;background:var(--danger);padding:0.15rem 0.5rem;border-radius:10px;font-size:0.7rem;font-weight:600;animation:badgePulse 2s ease-in-out infinite}
@keyframes badgePulse{0%,100%{box-shadow:0 0 0 0 rgba(220,53,69,0.55)}50%{box-shadow:0 0 0 4px rgba(220,53,69,0)}}
@media (prefers-reduced-motion: reduce){.nav-item .badge{animation:none}}
.main{margin-left:280px;flex:1;padding:2rem;min-height:100vh}
.header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}
.header h1{font-size:1.75rem;color:var(--dark)}
/* U-49: hlavička s piatimi tlačidlami pretiekla na 1521 px — akcie sa zalamujú a tlačidlo sa nelomí na dva riadky. */
.header-actions{display:flex;gap:0.75rem 1rem;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.header-actions .btn{white-space:nowrap}
.btn{display:inline-flex;align-items:center;gap:0.5rem;padding:0.6rem 1.25rem;border-radius:var(--radius);font-weight:500;cursor:pointer;transition:all 0.2s;border:none;font-family:inherit;font-size:0.9rem}
.btn:focus-visible{outline:2px solid var(--gold,#d4b170);outline-offset:2px}
.btn:disabled,.btn[disabled]{opacity:0.55;cursor:not-allowed;pointer-events:none}
/* USER-292: `.btn{display:inline-flex}` prebíjal atribút `hidden`, takže
   skryté tlačidlo bolo vidieť — „‹ Späť“ pre otvorené okno (navrat.js)
   plávalo vľavo dole stále, aj bez okna, a na telefóne prekrývalo návrat
   na predošlú sekciu. Ťuknutie naň pritom robilo krok späť v histórii. */
.btn[hidden]{display:none !important}
a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--gold,#d4b170);outline-offset:1px}
.btn-primary{background:var(--primary);color:var(--white)}.btn-primary:hover{background:var(--primary-dark)}
.btn-outline{background:transparent;border:2px solid var(--primary);color:var(--primary)}.btn-outline:hover{background:var(--primary);color:var(--white)}
.btn-danger{background:var(--danger);color:var(--white)}.btn-danger:hover{background:#b52a37}
.btn-warning{background:var(--warning);color:#fff}.btn-warning:hover{background:#92400e;color:#fff}
/* USER-292: `.btn-success` a `.btn-info` nemali v administrácii štýl vôbec —
   „Uhradiť“, „Aktivovať“ či „Detail“ boli šedé ako predvolené tlačidlo
   prehliadača, hoci sú to hlavné akcie riadku. Zelená je klubová (#15803d,
   biele písmo 5,0:1), info tmavomodrá (#1d4ed8, 6,7:1). */
.btn-success{background:#15803d;color:#fff;border:1px solid #15803d}.btn-success:hover{background:#166534;border-color:#166534;color:#fff}
.btn-info{background:#fff;color:#1d4ed8;border:1px solid #93c5fd}.btn-info:hover{background:#eff6ff;border-color:#1d4ed8;color:#1e40af}
.btn-sm{padding:0.4rem 0.75rem;font-size:0.8rem}
.btn[disabled]:not([aria-busy="true"]),.btn:disabled:not([aria-busy="true"]){pointer-events:none;opacity:0.55}
.btn[aria-busy="true"]{position:relative;color:transparent !important;pointer-events:none}
.btn[aria-busy="true"]::after{content:"";position:absolute;top:50%;left:50%;width:1em;height:1em;margin:-0.5em 0 0 -0.5em;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;animation:btnSpin 0.6s linear infinite;color:initial}
@keyframes btnSpin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.btn[aria-busy="true"]::after{animation-duration:1.2s}}
.quick-filter-btn{background:var(--bg-light);border:1px solid var(--border);color:var(--text)}
.quick-filter-btn.active{background:var(--primary);color:white;border-color:var(--primary)}
.quick-filter-btn:hover:not(.active){background:var(--border)}
.quick-filter-btn.active[aria-pressed]{box-shadow:inset 0 1px 0 rgba(0,0,0,0.15)}
.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.5rem;margin-bottom:2rem}
.stat-card{background:var(--white);padding:1.5rem;border-radius:var(--radius);box-shadow:var(--shadow);transition:transform 0.18s ease,box-shadow 0.18s ease;border:1px solid transparent}
.stat-card:focus-visible{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px rgba(34,139,34,0.15)}
.stat-card[role="button"]:hover,.stat-card[onclick]:hover{transform:translateY(-2px);box-shadow:0 8px 20px rgba(0,0,0,0.12);cursor:pointer}
.stat-card .icon{width:50px;height:50px;border-radius:var(--radius);display:flex;align-items:center;justify-content:center;font-size:1.4rem;font-weight:700;margin-bottom:1rem;letter-spacing:-0.02em}
.stat-card .icon.green{background:rgba(34,139,34,0.1);color:var(--primary)}
.stat-card .icon.blue{background:rgba(23,162,184,0.1);color:var(--info)}
.stat-card .icon.orange{background:rgba(255,193,7,0.1);color:#e67e00}
.stat-card .icon.red{background:rgba(220,53,69,0.1);color:var(--danger)}
.stat-card .value{font-size:2rem;font-weight:700;color:var(--dark);font-variant-numeric:tabular-nums}.stat-card .label{color:var(--gray);font-size:0.85rem}
.table td{font-variant-numeric:tabular-nums}
.card{background:var(--white);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:1.5rem}
.card-header{padding:1.25rem 1.5rem;border-bottom:1px solid var(--gray-light);display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap}
.card-header h3{font-size:1.1rem;font-weight:600;color:var(--dark)}.card-body{padding:1.5rem}
@media (max-width:640px){.card-header{padding:1rem;gap:0.5rem}.card-body{padding:1rem}}
.table{width:100%;border-collapse:collapse}.table th,.table td{padding:0.875rem 1rem;text-align:left;border-bottom:1px solid var(--gray-light)}
.table th{font-weight:600;color:var(--gray);font-size:0.8rem;text-transform:uppercase;letter-spacing:0.5px;background:var(--light)}
.table thead th{position:sticky;top:0;z-index:2;box-shadow:0 1px 0 var(--gray-light)}
.table tbody tr:nth-child(even){background:rgba(0,0,0,0.015)}
.table tbody tr:hover{background:var(--light)}.table tbody tr:last-child td{border-bottom:none}
.table a:not(.btn){color:var(--primary);text-decoration:none}.table a:not(.btn):hover{text-decoration:underline}
/* Mobile: card-body s tabuľkou má scrollbar; tabulka min-width zachová stĺpce čitateľné */
@media (max-width: 768px){.card-body{overflow-x:auto;-webkit-overflow-scrolling:touch}.card-body .table{min-width:640px}.table th,.table td{padding:0.65rem 0.75rem;font-size:0.85rem}}
.badge{display:inline-flex;padding:0.3rem 0.75rem;border-radius:20px;font-size:0.75rem;font-weight:500;line-height:1.2;white-space:nowrap}
.badge-success{background:rgba(40,167,69,0.1);color:var(--success)}
.badge-warning{background:rgba(255,193,7,0.2);color:#856404}
.badge-danger{background:rgba(220,53,69,0.1);color:var(--danger)}
.badge-info{background:rgba(23,162,184,0.1);color:var(--info)}
.badge-gray{background:var(--gray-light);color:var(--gray)}
.avatar{width:40px;height:40px;border-radius:50%;background:var(--primary);color:var(--white);display:flex;align-items:center;justify-content:center;font-weight:600;font-size:0.9rem}
.modal{display:none;position:fixed;inset:0;background:rgba(0,0,0,0.5);z-index:1000;align-items:center;justify-content:center;padding:1rem;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}
.modal.active{display:flex;animation:modalFadeIn 0.18s ease-out}
@keyframes modalFadeIn{from{opacity:0}to{opacity:1}}
.modal-content{background:var(--white);border-radius:var(--radius);width:100%;max-width:700px;max-height:90vh;overflow-y:auto;overscroll-behavior:contain}
.modal.active .modal-content{animation:modalScaleIn 0.18s ease-out}
@keyframes modalScaleIn{from{transform:scale(0.96);opacity:0}to{transform:scale(1);opacity:1}}
@media (prefers-reduced-motion:reduce){.modal.active,.modal.active .modal-content{animation:none}}
.modal-header{padding:1.25rem 1.5rem;border-bottom:1px solid var(--gray-light);display:flex;justify-content:space-between;align-items:center}
.modal-header h3{font-size:1.2rem}.modal-close{background:none;border:none;font-size:1.5rem;cursor:pointer;color:var(--gray);width:32px;height:32px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;transition:background 0.15s,color 0.15s;line-height:1}
.modal-close:hover{background:var(--gray-light);color:var(--dark)}
.modal-body{padding:1.5rem}.modal-footer{padding:1rem 1.5rem;border-top:1px solid var(--gray-light);display:flex;justify-content:flex-end;gap:0.75rem;flex-wrap:wrap}
@media (max-width:640px){.modal-body{padding:1rem}.modal-footer{padding:0.75rem 1rem;flex-direction:column-reverse}.modal-footer .btn{width:100%;justify-content:center}}
.icon-option{cursor:pointer;padding:0.25rem;border-radius:4px;transition:background 0.2s}.icon-option:hover{background:var(--gray-light)}
.form-row{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.form-group{margin-bottom:1rem}
@media (max-width: 640px){.form-row{grid-template-columns:1fr;gap:0.5rem}}
input[type="checkbox"],input[type="radio"]{width:18px;height:18px;cursor:pointer;accent-color:var(--primary);vertical-align:middle}
.form-group label{display:block;margin-bottom:0.5rem;font-weight:500;color:var(--dark);font-size:0.9rem}
.form-group label small{font-weight:400;color:var(--gray)}
.form-control{width:100%;padding:0.7rem 1rem;border:2px solid var(--gray-light);border-radius:var(--radius);font-family:inherit;font-size:0.9rem;transition:border 0.2s,box-shadow 0.2s}
.form-control:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px rgba(34,139,34,0.12)}select.form-control{cursor:pointer}textarea.form-control{resize:vertical;min-height:80px;line-height:1.5}
.form-control:disabled{background:var(--gray-light);opacity:0.7;cursor:not-allowed}
.form-control[aria-invalid="true"]{border-color:var(--danger)}
.form-control[aria-invalid="true"]:focus{box-shadow:0 0 0 3px rgba(220,53,69,0.15)}
.tabs{display:flex;gap:0;border-bottom:2px solid var(--gray-light);margin-bottom:1.5rem}
.tab{padding:0.875rem 1.5rem;cursor:pointer;color:var(--gray);font-weight:500;border-bottom:2px solid transparent;margin-bottom:-2px;transition:all 0.2s;font-size:0.9rem;user-select:none}
.tab:hover{color:var(--primary)}.tab.active{color:var(--primary);border-bottom-color:var(--primary)}
.tab:focus-visible{outline:2px solid var(--primary);outline-offset:-2px;border-radius:4px}
/* USER-489 E2: záložky v okne sa zalomia do ďalšieho riadku — Karta koňa má dvanásť záložiek a pri 1440 px ich bolo vidieť deväť, zvyšok bol mimo okna. */
.modal .tabs{flex-wrap:wrap}.modal .tab{padding:0.7rem 1rem}
.alert{padding:1rem 1.25rem;border-radius:var(--radius);margin-bottom:1rem;display:block}
/* USER-244: `.alert` bol `display:flex` — text s vloženým <strong> či odkazom sa tým rozpadol na úzke stĺpce (každý kúsok textu je samostatná položka flexu); na mobile boli nápovedy v „Arény a časy“ nečitateľné. */
.alert-warning{background:rgba(255,193,7,0.15);color:#856404;border-left:4px solid var(--warning)}
.alert-danger{background:rgba(220,53,69,0.1);color:var(--danger);border-left:4px solid var(--danger)}
.alert-info{background:rgba(23,162,184,0.1);color:var(--info);border-left:4px solid var(--info)}
.alert-success{background:rgba(40,167,69,0.1);color:var(--success);border-left:4px solid var(--success)}
.skip-link:focus{left:0 !important;outline:2px solid white;outline-offset:2px}
.toast{position:fixed;bottom:2rem;right:2rem;background:var(--dark);color:var(--white);padding:1rem 1.5rem;border-radius:var(--radius);transform:translateY(150%);opacity:0;transition:all 0.3s;z-index:9999;max-width:calc(100vw - 4rem);box-sizing:border-box}
@media (prefers-reduced-motion:reduce){.toast{transition:opacity 0.01s !important;transform:none}.toast.show{transform:none}}
.toast.show{transform:translateY(0);opacity:1}.toast.success{background:var(--success)}.toast.error{background:var(--danger)}.toast.warning{background:var(--warning,#e67e00);color:white}.toast.info{background:var(--info,#17a2b8);color:white}
[data-loading]{position:relative;color:transparent !important;background:linear-gradient(90deg,rgba(0,0,0,0.06) 25%,rgba(0,0,0,0.12) 50%,rgba(0,0,0,0.06) 75%);background-size:200% 100%;animation:skeletonShimmer 1.4s ease-in-out infinite;border-radius:4px;min-height:1em}
@keyframes skeletonShimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}
@media (prefers-reduced-motion:reduce){[data-loading]{animation:none;background:rgba(0,0,0,0.08)}}
@media (max-width: 640px){.toast{left:1rem;right:1rem;bottom:1rem;text-align:center;max-width:none}}
/* Print štýly — pri Ctrl+P / window.print() skry sidebar, nav, toast, modals
   a renderuj len hlavný obsah na celú šírku stránky. */
@media print{
    body{background:white;color:black}
    #adminSidebar,.sidebar,#mobileMenu,.toast,.modal,.btn,button,.header-actions,.quick-actions,#dynamicNav,.search-box,.admin-hamburger,.admin-sidebar-overlay,.topbar{display:none !important}
    .main{margin-left:0 !important;padding:0 !important}
    .section{display:block !important;page-break-inside:avoid}
    .card{box-shadow:none !important;border:1px solid #ccc !important;break-inside:avoid}
    .table{font-size:11pt}.table th{background:#eee !important;color:black !important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
    .table thead th{position:static}
    .table tbody tr:nth-child(even){background:transparent !important}
    .badge{border:1px solid #888;-webkit-print-color-adjust:exact;print-color-adjust:exact}
    a{color:black;text-decoration:none}
    [data-loading]{animation:none !important;background:transparent !important;color:inherit !important}
    /* Tlač JEDNEJ tabuľky (USER-22, etapa D; public/admin/table-tools.js).
       Web-wide Ctrl+P vytlačí celú aktívnu sekciu — to ostáva. Tlačidlo
       „Tlačiť“ nad zoznamom ale tlačí len ten zoznam, aj s hlavičkou:
       čo je to za zoznam, kedy vznikol a koľko má riadkov. */
    body.jkzm-tlac>*:not(#jkzmTlacovyList){display:none !important}
    body.jkzm-tlac #jkzmTlacovyList{display:block !important}
    #jkzmTlacovyList .jkzm-tlac-hlavicka h1{font-size:16pt;margin:0 0 .2rem}
    #jkzmTlacovyList .jkzm-tlac-hlavicka p{font-size:9pt;color:#444;margin:0 0 .8rem}
    #jkzmTlacovyList table{width:100%;border-collapse:collapse;font-size:10pt}
    #jkzmTlacovyList th,#jkzmTlacovyList td{border:1px solid #bbb;padding:3pt 5pt;text-align:left;vertical-align:top}
    #jkzmTlacovyList thead{display:table-header-group}
    #jkzmTlacovyList tr{break-inside:avoid}
    /* Tlač oznamu klubu (public/admin/oznamy-detail.js): A4, text v odsekoch. */
    #jkzmTlacovyList .oznam-tlac{font-size:11pt;line-height:1.5;color:#000}
    #jkzmTlacovyList .oznam-tlac h1{font-size:16pt;margin:.6rem 0 .6rem}
    #jkzmTlacovyList .oznam-tlac-hlavicka{border-bottom:1px solid #999;padding-bottom:.4rem;font-size:9.5pt}
    #jkzmTlacovyList .oznam-tlac-meta{margin-bottom:.8rem}
    #jkzmTlacovyList .oznam-tlac-meta th{width:30%;background:#f2f2f2;-webkit-print-color-adjust:exact;print-color-adjust:exact}
    #jkzmTlacovyList .oznam-znenie p{margin:0 0 .6rem;orphans:3;widows:3}
    #jkzmTlacovyList .oznam-poznamka{font-size:9pt;font-style:italic;color:#444}
    #jkzmTlacovyList .oznam-tlac-priloha{break-before:page}
    #jkzmTlacovyList .oznam-tlac-priloha h2{font-size:13pt}
    #jkzmTlacovyList .oznam-tlac-pata{font-size:8.5pt;color:#555;margin-top:1rem}
    @page{size:A4;margin:16mm}
}
/* Tlačový list na obrazovke nesvieti — existuje len po dobu tlače. */
#jkzmTlacovyList{display:none}
.jkzm-table-tools{display:flex;justify-content:flex-end;gap:.4rem;margin-bottom:.5rem;flex-wrap:wrap}
.section{display:none}.section.active{display:block}
.search-box{position:relative}.search-box input{padding-left:2.5rem;width:250px}
.search-box::before{content:'';position:absolute;left:0.75rem;top:50%;transform:translateY(-50%);font-size:0.9rem}
.vet-timeline{position:relative;padding-left:2rem}.vet-timeline::before{content:'';position:absolute;left:0.5rem;top:0;bottom:0;width:2px;background:var(--gray-light)}
.vet-item{position:relative;margin-bottom:1.5rem;padding:1rem;background:var(--light);border-radius:var(--radius)}
.vet-item::before{content:'';position:absolute;left:-1.65rem;top:1rem;width:12px;height:12px;border-radius:50%;background:var(--primary);border:2px solid var(--white)}
.vet-item.overdue::before{background:var(--danger)}.vet-item.soon::before{background:var(--warning)}
.vet-item-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:0.5rem}
.vet-item-title{font-weight:600;color:var(--dark)}.vet-item-date{font-size:0.85rem;color:var(--gray)}
.quick-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1rem;margin-bottom:2rem}
.quick-action{background:var(--white);padding:1.25rem;border-radius:var(--radius);text-align:center;cursor:pointer;transition:all 0.2s;box-shadow:var(--shadow)}
.quick-action:hover{transform:translateY(-3px);box-shadow:0 5px 20px rgba(0,0,0,0.15)}
.quick-action .icon{font-size:2rem;margin-bottom:0.5rem}.quick-action span{font-size:0.85rem;color:var(--gray)}
.notifications-list{max-height:400px;overflow-y:auto}
.notification-item{display:flex;gap:1rem;padding:1rem;border-bottom:1px solid var(--gray-light);transition:background 0.2s}
.notification-item:hover{background:var(--light)}.notification-item:last-child{border-bottom:none}
.notification-icon{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.notification-icon.warning{background:rgba(255,193,7,0.2)}.notification-icon.danger{background:rgba(220,53,69,0.1)}
.notification-icon.info{background:rgba(23,162,184,0.1)}
.notification-content{flex:1}.notification-title{font-weight:500;color:var(--dark);margin-bottom:0.25rem}
.notification-text{font-size:0.85rem;color:var(--gray)}.notification-time{font-size:0.75rem;color:var(--gray)}
.progress-bar{height:8px;background:var(--gray-light);border-radius:4px;overflow:hidden}
.progress-bar .fill{height:100%;border-radius:4px;transition:width 0.3s}
/* Login — split-screen: brandový panel + formulár (redesign v7.7.389) */
.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:2.5rem 1.5rem;position:relative;overflow:hidden;isolation:isolate;
    background:
        radial-gradient(ellipse 55% 40% at 16% 14%,rgba(34,139,34,0.20),transparent 70%),
        radial-gradient(ellipse 45% 35% at 86% 88%,rgba(212,177,112,0.10),transparent 70%),
        linear-gradient(180deg,#0a0e1a 0%,#0f172a 100%);
    color:#e2e8f0}
.login-page::after{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;opacity:0.4;
    background-image:radial-gradient(rgba(255,255,255,0.035) 1px,transparent 1px);background-size:32px 32px}
.login-split{display:grid;grid-template-columns:1.05fr 0.95fr;width:100%;max-width:1080px;border:1px solid rgba(255,255,255,0.07);border-radius:22px;overflow:hidden;
    box-shadow:0 40px 90px -24px rgba(0,0,0,0.6),0 12px 32px -12px rgba(0,0,0,0.4)}
/* Brandový panel (ľavá strana) */
.login-brand{display:flex;flex-direction:column;justify-content:space-between;gap:2.25rem;padding:3rem 2.75rem;
    background:linear-gradient(155deg,rgba(34,139,34,0.18),rgba(15,23,42,0) 58%),linear-gradient(180deg,rgba(15,23,42,0.55),rgba(10,14,26,0.55));
    border-right:1px solid rgba(255,255,255,0.06)}
.login-brand-head{display:flex;flex-direction:column;gap:1.6rem}
.login-brand img{width:auto;max-height:52px;opacity:0.96}
.login-brand-claim h1{margin:0;font-family:'Fraunces','Georgia',serif;font-weight:400;font-size:2rem;line-height:1.12;letter-spacing:-0.02em;color:#f8fafc}
.login-brand-claim h1 span{color:#86efac}
.login-brand-claim p{margin:0.85rem 0 0;color:#94a3b8;font-size:0.95rem;line-height:1.6;font-weight:300;max-width:34ch}
/* Značka systému (USER-261): menšia, pod menom klubu — klub ostáva hlavný. */
.login-brand-claim p.login-system-znacka{margin-top:0.6rem;color:#cbd5e1;font-size:0.78rem;font-weight:500;letter-spacing:0.04em}
.login-features{display:flex;flex-direction:column;gap:1.15rem}
.login-feature{display:flex;align-items:flex-start;gap:0.85rem;text-align:left}
.login-feature-icon{flex-shrink:0;width:38px;height:38px;display:flex;align-items:center;justify-content:center;color:#86efac;background:rgba(134,239,172,0.09);border:1px solid rgba(134,239,172,0.22);border-radius:10px}
.login-feature-text{font-size:0.86rem;color:#cbd5e1;line-height:1.5;font-weight:300}
.login-feature-text strong{color:#f8fafc;display:block;margin-bottom:0.15rem;font-weight:500;font-size:0.92rem;letter-spacing:-0.005em}
.login-page-footer{display:flex;align-items:center;gap:1.25rem;flex-wrap:wrap;color:#64748b;font-size:0.76rem;letter-spacing:0.01em}
.login-page-footer span{display:flex;align-items:center;gap:0.55rem}
.login-page-footer span::before{content:'';width:4px;height:4px;border-radius:50%;background:#86efac;opacity:0.7}
/* Formulárový panel (pravá strana) */
.login-form-panel{display:flex;align-items:center;justify-content:center;padding:3rem 2.75rem;background:#fff}
.login-card{background:#fff;width:100%;max-width:380px;display:flex;flex-direction:column;align-items:stretch}
.login-card h2{text-align:left;margin:0 0 0.4rem;color:#0f172a;font-family:'Fraunces','Georgia',serif;font-size:1.7rem;font-weight:400;letter-spacing:-0.015em;line-height:1.15}
.login-tagline{text-align:left;color:#64748b;font-size:0.88rem;margin:0 0 1.85rem;line-height:1.55}
.login-card .form-group{margin-bottom:1rem}
.login-card .form-group label{font-size:0.74rem;font-weight:600;color:#475569;letter-spacing:0.04em;text-transform:uppercase;margin-bottom:0.4rem}
.login-card .form-control{padding:0.8rem 0.95rem;border:1px solid #e2e8f0;border-radius:9px;background:#fafbfc;font-size:0.95rem;transition:all 0.15s ease}
.login-card .form-control:hover{background:#fff;border-color:#cbd5e1}
.login-card .form-control:focus{outline:none;border-color:#228B22;background:#fff;box-shadow:0 0 0 3px rgba(34,139,34,0.10)}
.login-card .btn-primary{background:#15803d;color:#fff;border:0;font-weight:600;font-size:0.95rem;letter-spacing:0.005em;border-radius:9px;padding:0.9rem 1rem;margin-top:0.5rem;transition:all 0.18s ease;box-shadow:0 2px 8px rgba(21,128,61,0.22)}
.login-card .btn-primary:hover{background:#166534;transform:translateY(-1px);box-shadow:0 8px 20px rgba(21,128,61,0.30)}
.login-card .btn-primary:active{transform:translateY(0);box-shadow:0 2px 8px rgba(21,128,61,0.22)}
.login-forgot{text-align:center;margin-top:1.1rem;font-size:0.85rem}
.login-forgot a{color:#64748b;text-decoration:none;border-bottom:1px solid transparent;transition:border-color 0.15s ease}
.login-forgot a:hover{border-bottom-color:#86efac;color:#15803d}
/* Prehliadka systému bez prihlásenia (USER-251) — samostatná cesta pod formulárom. */
.login-demo{margin-top:1.25rem;padding-top:1.1rem;border-top:1px solid #e5e7eb}
.login-demo-btn{display:flex;align-items:center;justify-content:center;gap:.4rem;width:100%;min-height:44px;text-decoration:none}
.login-back{text-align:center;margin-top:1.75rem;padding-top:1.25rem;border-top:1px solid rgba(15,23,42,0.08);font-size:0.82rem}
.login-back a{color:#64748b;text-decoration:none;display:inline-flex;align-items:center;gap:0.5rem;font-weight:500;transition:color 0.15s ease}
.login-back a:hover{color:#15803d}
.login-back svg{transition:transform 0.18s ease}
.login-back a:hover svg{transform:translateX(-3px)}
@media (max-width:860px){
    .login-page{padding:0}
    .login-split{grid-template-columns:1fr;max-width:480px;border-radius:18px;margin:1.5rem auto}
    .login-brand{padding:2.25rem 2rem;border-right:0;border-bottom:1px solid rgba(255,255,255,0.06);gap:1.5rem}
    .login-brand-claim h1{font-size:1.6rem}
    .login-features{display:none}
    .login-form-panel{padding:2.25rem 2rem}
}
@media (max-width:560px){
    .login-split{margin:0;min-height:100vh;border-radius:0;border:0}
    .login-card{max-width:none}
    .login-card h2{font-size:1.5rem}
}
@media(max-width:1024px){.sidebar{transform:translateX(-100%);transition:transform 0.3s}.sidebar.open{transform:translateX(0)}.main{margin-left:0}}
.fieldset{border:1px solid var(--gray-light);border-radius:var(--radius);padding:1rem 1.25rem 1.25rem;margin-bottom:1rem;background:rgba(255,255,255,0.5)}
.fieldset legend{padding:0 0.5rem;font-weight:600;color:var(--primary);font-size:0.78rem;text-transform:uppercase;letter-spacing:0.06em}

/* Mode Switcher */
.mode-switcher{display:flex;gap:0;background:rgba(255,255,255,0.1);border-radius:var(--radius);padding:0.25rem;margin-bottom:1rem}
.mode-btn{flex:1;padding:0.5rem 1rem;border:none;background:transparent;color:rgba(255,255,255,0.7);font-size:0.85rem;font-weight:500;cursor:pointer;border-radius:calc(var(--radius) - 4px);transition:all 0.2s;font-family:inherit}
.mode-btn:hover{color:var(--white)}
.mode-btn.active{background:var(--primary);color:var(--white)}

/* Nav Search */
.nav-search{position:relative;margin-bottom:1rem}
.nav-search input{width:100%;padding:0.6rem 0.75rem 0.6rem 2.25rem;border:none;border-radius:var(--radius);background:rgba(255,255,255,0.1);color:var(--white);font-size:0.85rem;font-family:inherit}
.nav-search input::placeholder{color:rgba(255,255,255,0.5)}
.nav-search input:focus{outline:none;background:rgba(255,255,255,0.15)}
.nav-search::before{content:'';position:absolute;left:0.75rem;top:50%;transform:translateY(-50%);font-size:0.8rem;opacity:0.7}

/* Accordion Navigation */
.nav-section-accordion .nav-section-title{cursor:pointer;display:flex;justify-content:space-between;align-items:center;padding:0.5rem;border-radius:6px;transition:background 0.2s}
.nav-section-accordion .nav-section-title:hover{background:rgba(255,255,255,0.1)}
.nav-section-arrow{font-size:0.7rem;opacity:0.7;transition:transform 0.2s}
.nav-section-accordion.open .nav-section-arrow{transform:rotate(0deg)}
.nav-section-items{overflow:hidden;transition:all 0.2s}

/* Favorites Section */
.nav-section-favorites{background:rgba(34,139,34,0.15);border-radius:8px;padding:0.5rem;margin-bottom:1rem}
.nav-section-favorites .nav-section-title{color:var(--primary-light);font-weight:600}
.nav-section-favorites .nav-item{background:rgba(255,255,255,0.05)}

/* Nav Item with Star */
.nav-item{position:relative;padding-right:2rem !important}
.nav-item-label{flex:1}
.nav-favorite-star{position:absolute;right:0.5rem;top:50%;transform:translateY(-50%);cursor:pointer;opacity:0.3;font-size:0.9rem;transition:all 0.2s}
.nav-item:hover .nav-favorite-star{opacity:0.7}
.nav-favorite-star.active{opacity:1;color:gold}
.nav-favorite-star:hover{opacity:1;transform:translateY(-50%) scale(1.2)}
.horse-card{display:grid;grid-template-columns:100px 1fr;gap:1rem;padding:1rem;border:1px solid var(--gray-light);border-radius:var(--radius);margin-bottom:1rem}
.horse-card img{width:100px;height:100px;object-fit:cover;border-radius:var(--radius)}
.horse-card-info h4{margin-bottom:0.25rem}.horse-card-info p{font-size:0.85rem;color:var(--gray)}
.horse-card-badges{display:flex;gap:0.5rem;flex-wrap:wrap;margin-top:0.5rem}

/* Stránkovanie zoznamov (public/admin/strankovanie.js, USER-75/76). Ovládanie
   sa vkladá za tabuľku; bez štýlu sa text a tlačidlá lámali v predvolenom toku
   (I-36). Farby cez tokeny, platia v obidvoch témach. */
.strany-box{margin-top:0.6rem}
.strany{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:0.5rem 1rem;font-size:0.85rem;color:var(--ink-2)}
.strany-ovladanie{display:flex;align-items:center;gap:0.5rem;flex-wrap:wrap}
.strany-strana{white-space:nowrap}
.strany-pocet{white-space:nowrap}
.strany-volba,.strany-skok{display:inline-flex;align-items:center;gap:0.35rem;white-space:nowrap;font-size:0.85rem;color:var(--ink-2)}
.strany-volba select.form-control{width:auto;min-width:4.5rem;padding:0.25rem 0.4rem;font-size:0.85rem}
.strany-skok input.form-control{width:4.5rem;padding:0.25rem 0.4rem;font-size:0.85rem;text-align:center}

/* Oznamy klubu — zoznam a detail (public/admin/oznamy.js, oznamy-detail.js).
   Mobil ako prvý: údaje v detaile idú pod seba, na širšej obrazovke do mriežky. */
.oznam-riadok{cursor:pointer}
.oznam-riadok:hover td{background:rgba(130,100,24,.05)}
.oznam-riadok:focus-visible{outline:2px solid var(--gold-text,#826418);outline-offset:-2px}
.oznam-meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.6rem 1rem;margin:0 0 1rem}
.oznam-meta dt{font-size:.78rem;color:var(--ink-3)}
.oznam-meta dd{margin:.1rem 0 0;font-weight:600}
.oznam-detail h4{margin:1.2rem 0 .5rem}
.oznam-publikum{margin:0;padding-left:1.2rem}
.oznam-znenie{border:1px solid var(--border);border-radius:8px;padding:1rem;background:var(--surface,#fff);overflow-wrap:break-word}
.oznam-znenie p{margin:0 0 .8rem}
.oznam-prilohy{list-style:none;margin:.3rem 0;padding:0;display:flex;flex-direction:column;gap:.5rem}
.oznam-priloha{display:flex;gap:.75rem;align-items:center;flex-wrap:wrap;border:1px solid var(--border);border-radius:8px;padding:.5rem .6rem;background:var(--surface,#fff)}
.oznam-priloha-nahlad{flex:none;width:64px;height:64px;min-height:44px;display:flex;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:6px;background:#f7f8fb;cursor:pointer;padding:0;overflow:hidden;font-size:1.6rem}
.oznam-priloha-nahlad img{width:100%;height:100%;object-fit:cover}
.oznam-priloha-text{flex:1 1 160px;min-width:0;display:flex;flex-direction:column;overflow-wrap:anywhere}
.oznam-priloha-text small{color:var(--ink-3)}
.oznam-priloha-akcie{display:flex;gap:.4rem;flex-wrap:wrap}
.oznam-priloha-akcie .btn{min-height:44px}
.oznam-prilohy-pridat{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap;margin-top:.4rem}
.oznam-prilohy-pridat .btn{min-height:44px}
.oznam-priloha-velky{text-align:center}
.oznam-priloha-velky img{max-width:100%;max-height:75vh;height:auto}
.oznam-znenie p:last-child{margin-bottom:0}
.oznam-kontakt,.oznam-podpis{margin-top:.8rem;padding-top:.6rem;border-top:1px dashed var(--border)}
.oznam-poznamka{font-size:.85rem;color:var(--ink-3);font-style:italic;margin:0 0 .5rem}
.oznam-tlmene{color:var(--ink-3)}
.oznam-mala{font-size:.82rem}
.oznam-cisla{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:.6rem}
.oznam-cisla>div{border:1px solid var(--border);border-radius:8px;padding:.6rem .8rem}
.oznam-cisla strong{display:block;font-size:1.3rem;font-variant-numeric:tabular-nums}
.oznam-cisla span{font-size:.8rem;color:var(--ink-3)}
.oznam-filtre{display:flex;gap:.4rem;flex-wrap:wrap;margin:.8rem 0}
.oznam-filtre .btn{min-height:44px}
.oznam-prijemcovia{list-style:none;margin:0;padding:0}
.oznam-prijemcovia li{border-bottom:1px solid var(--border);padding:.6rem 0;display:grid;gap:.2rem}
@media (min-width:720px){.oznam-prijemcovia li{grid-template-columns:2fr 1.6fr 1.6fr;column-gap:1.2rem;align-items:start}}
/* Akcie v päte okna: na mobile dve vedľa seba, nie štyri pod sebou — inak
   päta zaberie polovicu obrazovky a znenie oznamu nie je vidieť. */
.modal-footer.oznam-detail-akcie{display:flex !important;flex-direction:row !important;gap:.5rem;flex-wrap:wrap;justify-content:flex-end}
.oznam-detail-akcie .btn{min-height:44px}
@media (max-width:640px){.modal-footer.oznam-detail-akcie .btn{flex:1 1 calc(50% - .5rem);width:auto !important;margin:0 !important;padding:.5rem .6rem;font-size:.9rem}}
/* Formulár oznamu: symboly, náhľad e-mailu a profilu, história verzií. */
.oznam-symboly{display:flex;gap:.35rem;flex-wrap:wrap;margin-bottom:.4rem}
.oznam-symboly .btn{min-height:36px;font-family:ui-monospace,monospace;font-size:.78rem}
.oznam-nahlad-znenia>summary{cursor:pointer;min-height:44px;display:flex;align-items:center;font-weight:600}
.oznam-nahlad-obsah{border:1px solid var(--border);border-radius:8px;padding:1rem;background:var(--surface,#fff)}
/* E-mail má vlastné farby (biely podklad) — v tmavej téme ostáva, ako ho uvidí príjemca. */
.oznam-nahlad-email{background:#fff;color:#0f172a;border-radius:6px;padding:1rem;overflow-x:auto}
.oznam-verzie{list-style:none;margin:0;padding:0}
.oznam-verzie li{border-bottom:1px solid var(--border);padding:.4rem 0}
.oznam-verzie summary{cursor:pointer;min-height:44px;display:flex;align-items:center;flex-wrap:wrap;gap:.3rem}
/* `hidden` musí skryť aj tlačidlo a upozornenie — `.btn` a `.alert` majú
   vlastné `display` a atribút by inak prebili („Zrušiť úpravu“ pri novom ozname). */
#oznamy [hidden], #web-settings [hidden]{display:none !important}
/* Karta obsahu monitora: formulár a súhlas majú inline `display`, ktoré by
   atribút `hidden` prebilo — pri pokynoch by ostal súhlas (USER-347). */
#monObsahKarta [hidden]{display:none !important}
/* ── Dnes v klube (USER-244) — dnešné termíny navrchu Prehľadu ── */
.dnes-karta{margin-bottom:1.25rem}
.dnes-karta .card-header{display:flex;flex-wrap:wrap;gap:0.5rem;align-items:center;justify-content:space-between}
.dnes-karta h3 small{font-weight:500;color:var(--ink-3,#475569);font-size:0.8rem;margin-left:0.35rem}
.dnes-akcie{display:flex;gap:0.4rem;flex-wrap:wrap}
.dnes-prazdne{color:var(--ink-3,#475569);margin:0}
.dnes-skupina{padding:0.35rem 0 0.6rem;border-bottom:1px solid #e5e7eb}
.dnes-skupina:last-child{border-bottom:0}
.dnes-cas{font-size:0.92rem;color:var(--dark,#1e293b);margin:0.35rem 0}
.dnes-riadok{display:flex;flex-wrap:wrap;align-items:center;gap:0.2rem 0.6rem;width:100%;min-height:44px;text-align:left;background:#f7f8fb;border:1px solid #e5e7eb;border-radius:8px;padding:0.5rem 0.75rem;margin:0.3rem 0;font:inherit;color:inherit;cursor:pointer}
.dnes-riadok:hover{border-color:#94a3b8}
.dnes-riadok:focus-visible{outline:2px solid #15803d;outline-offset:2px}
.dnes-meno{font-weight:600}
.dnes-detail{flex-basis:100%;font-size:0.84rem;color:#475569}
.dnes-stav{font-size:0.75rem;font-weight:600;padding:0.1rem 0.5rem;border-radius:999px;background:#e5e7eb;color:#334155}
.dnes-stav-pending,.dnes-stav-new{background:#fef3c7;color:#78350f}
.dnes-stav-completed{background:#d1fae5;color:#065f46}
.dnes-stav-no_show{background:#fee2e2;color:#991b1b}
.dnes-zrusena .dnes-meno{text-decoration:line-through;color:#64748b}
/* Rýchly stav pod jazdcom (USER-341): riadok a tlačidlá sú jeden rámček. */
.dnes-polozka{background:#f7f8fb;border:1px solid #e5e7eb;border-radius:8px;margin:0.3rem 0}
.dnes-polozka .dnes-riadok{border:0;background:transparent;margin:0}
.dnes-polozka:hover{border-color:#94a3b8}
.dnes-rychle{display:flex;flex-wrap:wrap;align-items:center;gap:0.4rem;padding:0 0.75rem 0.6rem}
.dnes-rychle .btn{min-height:40px}
.dnes-otazka{font-weight:600;margin-right:0.2rem}
/* Arény a časy: týždenný prehľad je to, s čím sa pracuje denne — ide hneď pod
   nadpis. Nastavenie priestorov, generátor a vyhradenie (robia sa zriedka)
   sú pod ním (USER-244; dovtedy bol prehľad na telefóne až na piatej obrazovke). */
#arenas.active{display:flex;flex-direction:column}
#arenas > .header{order:-2}
#arenas > .rozvrh-prehlad-karta{order:-1}
/* Týždeň na telefóne (USER-244, rozvrh.js): dnešok zvýraznený, dni, ktoré
   prebehli, za tlačidlom, pri slote „+ Jazdec“ a „⋯ Viac“. Na počítači sú
   všetky akcie vidieť ako doteraz (`display:contents`) a tlačidlá navyše nie. */
.rozvrh-den-dnes > .rozvrh-den-hlavicka{outline:2px solid #16a34a;outline-offset:-2px}
.rozvrh-viac{display:contents}
/* Meno jazdca na dlaždici: `--primary` (#15803d) má na zelenej #e8f5e9 iba
   4,45:1; #166534 má 6,35:1 a platí aj na žltej a ružovej dlaždici. */
.rozvrh-rezervacia-meno{color:#166534 !important}
/* USER-292: meno ako cieľ aspoň 24 px (WCAG 2.5.8) — dve mená vedľa seba boli bližšie než 24 px. */
.rozvrh-rezervacia-meno{display:inline-block;min-height:24px;line-height:24px}
.rozvrh-viac-btn,.rozvrh-minule-btn,.rozvrh-dnes-znacka{display:none}
/* Na počítači je stĺpec dňa úzky; značka by zalomila „+ Slot“ — dnešok nesie rámik. */
@media (max-width:640px){
  .rozvrh-minule-btn{display:block;width:100%;min-height:44px;margin-bottom:0.6rem}
  .rozvrh-dni:not(.ukaz-minule) > .rozvrh-den-minuly{display:none}
  .rozvrh-dlazdica .btn{min-height:44px;padding:0.35rem 0.8rem !important;font-size:0.85rem !important}
  .rozvrh-viac-btn,.rozvrh-dnes-znacka{display:inline-flex}
  .rozvrh-viac{display:none;flex-wrap:wrap;gap:0.35rem;flex-basis:100%}
  .rozvrh-dlazdica.otvorena .rozvrh-viac{display:flex}
}
/* Pätka okna so štyrmi a viac tlačidlami (USER-244): pod sebou zaberali na
   390 px takmer polovicu obrazovky (detail rezervácie: Uložiť, Zavrieť,
   História, Zrušiť, Zmazať) a formulár ostal v úzkom pruhu. Na telefóne sú
   v dvoch stĺpcoch, hlavné tlačidlo navrchu cez celú šírku. */
@media (max-width:640px){
  .modal-footer:not(.oznam-detail-akcie):has(> .btn:nth-of-type(4)){display:grid !important;grid-template-columns:1fr 1fr;gap:0.5rem !important}
  .modal-footer:not(.oznam-detail-akcie):has(> .btn:nth-of-type(4)) > .btn{width:auto !important;min-width:0;min-height:44px;margin:0 !important;padding:0.5rem 0.6rem}
  .modal-footer:not(.oznam-detail-akcie):has(> .btn:nth-of-type(4)) > :is(.btn-primary,.btn-success){grid-column:1/-1;order:-1}
  .modal-footer:not(.oznam-detail-akcie):has(> .btn:nth-of-type(4)) > span:empty{display:none}
  /* Zaškrtávacie pole v okne malo 13 px a lepilo sa na ďalší popisok
     („Uložiť do registra…Telefón“). Pole 22 px vľavo, text vedľa neho
     (nie flex — text so <span> by sa rozpadol na stĺpce), cieľ 44 px. */
  .modal label:has(> input[type="checkbox"]:first-child){position:relative;display:block;padding:0.55rem 0 0.55rem 2.1rem;min-height:44px;margin-bottom:0.25rem}
  .modal label > input[type="checkbox"]:first-child{position:absolute;left:0;top:0.6rem;width:22px;height:22px;margin:0}
}
/* Široká tabuľka nesmie roztiahnuť celú stránku (USER-244): `.main` je
   položka flexu s predvoleným `min-width: auto`, takže tabuľka jazdcov pri
   okne 1440 px roztiahla stránku na 1563 px a vodorovne sa rolovala celá
   administrácia aj s hlavičkou. Roluje sa iba karta s tabuľkou. */
.main{min-width:0}
/* Prepnutie sekcie mení hash (#horses) a prehliadač skočí na <section> — tá
   leží pod hornou lištou, takže stránka sa posunula o ~100 px a nadpis sekcie
   s tlačidlami („+ Nový“) zašiel pod lištu (USER-244). Veľký okraj skok
   zastaví na vrchu stránky. */
.main .section[id]{scroll-margin-top:100vh}
.card-body:has(> table){overflow-x:auto}
/* ── Narodeniny na hornej lište (USER-245) ── */
.narodeniny-obal{position:relative;display:inline-flex}
.narodeniny-btn{position:relative;font-size:1rem}
.narodeniny-pocet{position:absolute;top:-6px;right:-6px;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:#475569;color:#fff;font-size:0.7rem;font-weight:700;line-height:18px;text-align:center}
.narodeniny-pocet.narodeniny-dnes{background:#b91c1c}
.narodeniny-pocet[hidden]{display:none}
.narodeniny-zoznam{position:absolute;right:0;top:calc(100% + 8px);z-index:300;width:min(320px,calc(100vw - 2rem));background:#fff;border:1px solid #e5e7eb;border-radius:10px;box-shadow:0 10px 30px rgba(15,23,42,0.15);padding:0.85rem 1rem;color:#1e293b;text-align:left}
.narodeniny-zoznam[hidden]{display:none}
.narodeniny-zoznam h3{font-size:0.85rem;margin:0 0 0.5rem}
.narodeniny-zoznam ul{list-style:none;margin:0;padding:0}
.narodeniny-zoznam li{display:flex;flex-direction:column;padding:0.45rem 0;border-bottom:1px solid #f1f5f9}
.narodeniny-zoznam li:last-child{border-bottom:0}
.narodeniny-zoznam li span{font-size:0.82rem;color:#475569}
.narodeniny-zoznam li.dnes strong::after{content:" — dnes!";color:#b91c1c}
.narodeniny-zoznam p{margin:0.25rem 0;font-size:0.85rem;color:#475569}
.narodeniny-pozn{font-size:0.78rem !important}
.narodeniny-zoznam h3:not(:first-child){margin-top:0.75rem}
.narodeniny-zoznam .meniny-dnes{margin:0 0 0.6rem;padding:0.4rem 0.6rem;background:#f8f5ec;border-radius:6px;color:#5c4710;font-weight:600}
@media (max-width:640px){.narodeniny-zoznam{position:fixed;left:1rem;right:1rem;top:4.5rem;width:auto}}

/* USER-262 — malá značka Cavalety pri mene systému (logo A). */
.cavaleta-znak { display: inline-block; width: 14px; height: 14px; vertical-align: -2px; margin-right: 0.3em; border-radius: 3px; }

/* USER-287 — aplikácia pre trénera (`/admin/trener`, public/admin/rezim-trener.js).
   Tá istá administrácia v zjednodušenom režime: bez bočného panela a bez
   nastavení rozvrhu, s lištou dole. Lišta má vlastný tmavý podklad, takže
   kontrast nezávisí od témy (krémová 13,9:1, zlatá 8,1:1 na #14213D). */
.rezim-trener .sidebar,
.rezim-trener .admin-hamburger,
.rezim-trener .topbar-search { display: none !important; }
.rezim-trener .main { margin-left: 0 !important; padding-top: 0.75rem !important; padding-bottom: calc(84px + env(safe-area-inset-bottom, 0px)); }
/* Plávajúce prvky (asistent, „‹ Späť“, hlásenia) idú nad lištu, nie pod ňu. */
.rezim-trener #asstFab,
.rezim-trener .admin-navrat,
.rezim-trener .admin-navrat-okno,
.rezim-trener .toast { bottom: calc(84px + env(safe-area-inset-bottom, 0px)) !important; }
/* Skryté hlásenie je len posunuté a priehľadné — nad lištou by neviditeľne
   zachytávalo ťuknutia (zistené pri skúške: „Nový jazdec“ nereagoval). */
.rezim-trener .toast:not(.show) { visibility: hidden; pointer-events: none; }
/* Biely pruh pod tlačidlo menu (`.main::before`, 68 px) — menu tu nie je. */
.rezim-trener .main::before { display: none !important; }
.rezim-trener #arenas .card:not(.rozvrh-prehlad-karta):not(.rozvrh-prehlad-karta .card) { display: none; }
.trener-lista { display: none; }
.rezim-trener .trener-lista {
    display: grid; grid-template-columns: repeat(4, 1fr);
    position: fixed; left: 0; right: 0; bottom: 0; z-index: 900;
    background: #14213D; border-top: 2px solid #E8B04B;
    padding: 4px 4px calc(4px + env(safe-area-inset-bottom, 0px));
}
.trener-lista button {
    min-height: 56px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px;
    background: none; border: 0; border-radius: 8px; color: #F4EFE4; font: inherit; font-size: 0.78rem; cursor: pointer;
}
.trener-lista .trener-lista-ikona { font-size: 1.25rem; line-height: 1; }
.trener-lista button[aria-current="page"] { color: #E8B04B; font-weight: 700; }
.trener-lista button:focus-visible { outline: 2px solid #E8B04B; outline-offset: -2px; }

/* ── Menu „⋯ Viac“ v riadku (USER-292, public/admin/riadok-menu.js) ──
   V riadku ostáva jedna hlavná akcia; ostatné tlačidlá sú v zozname pod
   ním. Zoznam je `position: fixed` (umiestni ho skript), aby ho rolovací
   obal tabuľky neorezal. Položky sú tie isté tlačidlá ako predtým v riadku,
   tu len vyzerajú ako riadky zoznamu. */
.riadok-menu { display: inline-block; position: relative; }
.riadok-menu-btn { white-space: nowrap; }
.riadok-menu-zoznam {
    z-index: 1200; min-width: 12rem; max-width: calc(100vw - 16px);
    display: flex; flex-direction: column; padding: 0.3rem;
    background: #fff; border: 1px solid var(--border, #e5e7eb); border-radius: 10px;
    box-shadow: 0 12px 32px rgba(15, 23, 42, 0.18);
}
.riadok-menu-zoznam[hidden] { display: none !important; }
.riadok-menu-zoznam > .btn,
.riadok-menu-zoznam > button {
    display: flex !important; width: 100%; justify-content: flex-start; text-align: left;
    margin: 0 !important; min-height: 40px;
    background: transparent !important; border: 0 !important; border-radius: 6px !important;
    color: var(--ink, #0f172a) !important; box-shadow: none !important; transform: none !important;
    font-weight: 500 !important; white-space: nowrap;
}
.riadok-menu-zoznam > .btn:hover,
.riadok-menu-zoznam > button:hover { background: #f1f5f9 !important; color: var(--ink, #0f172a) !important; }
.riadok-menu-zoznam > .btn-danger,
.riadok-menu-zoznam > .btn-warning { color: #b91c1c !important; }
.riadok-menu-zoznam > .btn-danger:hover,
.riadok-menu-zoznam > .btn-warning:hover { background: #fef2f2 !important; color: #991b1b !important; }
@media (max-width: 640px) {
    .riadok-menu-zoznam > .btn, .riadok-menu-zoznam > button { min-height: 44px; }
}

/* Akcie riadku: hlavná akcia a menu vedľa seba, nezalamujú sa po jednom. */
.riadok-akcie { display: flex; gap: 0.4rem; align-items: center; flex-wrap: wrap; }
/* Bunka „pod sebou“: hlavný údaj tučne, pod ním doplnky menším písmom. */
.bunka-hlavne { font-weight: 600; color: var(--ink, #0f172a); }
.bunka-pod { display: block; margin-top: 0.15rem; font-size: 0.78rem; color: var(--ink-3, #576273); line-height: 1.35; }
/* Po splatnosti (USER-292-B) — tmavšia červená, aby malé písmo malo kontrast nad 4,5:1. */
.text-po-splatnosti { color: #a61e2b; font-weight: 600; }

/* ── Dátum dňa ostáva na oku pri rolovaní (USER-292) ──
   Hlavička dňa v „Arény a časy“ sa prilepí pod hornú lištu; jej výšku
   meria `public/admin/vyska-listy.js` (`--lista-v`). Na počítači, tablete
   aj telefóne — vlastník: „dátum by mal byť stále na oku“. Podklad je
   nepriehľadný, inak by pod ním presvitali dlaždice. */
.rozvrh-den-hlavicka {
    position: sticky;
    top: calc(var(--lista-v, 0px) + 4px);
    z-index: 4;
    box-shadow: 0 2px 6px rgba(15, 23, 42, 0.08);
    background: #eef2f6 !important;
}
.rozvrh-den-dnes > .rozvrh-den-hlavicka { background: #ecfdf3 !important; }
/* Rolovací obal `.card-body` (pre široké tabuľky) by z hlavičky dňa urobil
   prilepenú len vnútri karty, teda nikdy. Rozvrh tabuľka nie je. */
.card-body:has(> #rozvrhContainer) { overflow: visible !important; }

/* ── Zbalený prehľad Arén a časov (USER-293, rozvrh-pohlad.js) ──
   Vlastník: „ostanú iba malé polia s dátumami a menami … s možnosťou výberu
   arény a dátumu, ktorý sa nám komplet potom otvorí“. Malé pole = deň:
   riadok na termín s menami, voľné časy ako čipy, hlavička dňa otvorí deň
   so všetkými akciami. Rovnaké na počítači, tablete aj telefóne. */
.rozvrh-prehlad-karta { scroll-margin-top: calc(var(--lista-v, 0px) + 8px); }
.rozvrh-nastroje { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 0.5rem 0.75rem; margin-bottom: 0.9rem; }
.rozvrh-prepinac { display: inline-flex; border-radius: 6px; overflow: hidden; }
.rozvrh-prepinac .btn { border-radius: 0; min-height: 36px; }
.rozvrh-prepinac .btn + .btn { margin-left: -1px; }
.rozvrh-prepinac .btn[aria-pressed="true"] { background: #1e293b !important; border-color: #1e293b !important; color: #fff !important; }
.rozvrh-vyber { display: flex; flex-direction: column; gap: 0.15rem; font-size: 0.8rem; font-weight: 600; color: var(--ink-3, #576273); margin: 0; }
.rozvrh-vyber .form-control { min-height: 36px; padding: 0.3rem 0.5rem; width: auto; max-width: 100%; }
#rozvrhCelyTyzden { min-height: 36px; }
.rozvrh-dni-zbalene { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 0.5rem; }
.rozvrh-pole { border: 1px solid var(--border, #e2e8f0); border-radius: 6px; padding: 0 0.4rem 0.4rem; background: #fff; min-width: 0; }
.rozvrh-den-otvor { display: flex; width: calc(100% + 0.8rem); margin: 0 -0.4rem 0.35rem; justify-content: space-between; align-items: center; gap: 0.3rem;
    border: 0; border-radius: 6px 6px 0 0; padding: 0.35rem 0.5rem; font: inherit; font-weight: 600; color: var(--ink, #0f172a); cursor: pointer; min-height: 36px; text-align: left; }
.rozvrh-den-otvor:hover { text-decoration: underline; }
.rozvrh-den-datum { font-weight: 600; color: var(--ink, #0f172a); }
.rozvrh-den-arena { font-size: 0.75rem; font-weight: 500; color: var(--ink-3, #576273); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rozvrh-znacka { color: var(--ink-3, #576273); text-decoration: none; display: inline-block; }
.rozvrh-meno-zrusene { text-decoration: line-through !important; }
.rozvrh-riadok { display: flex; align-items: baseline; gap: 0.35rem; padding: 0.15rem 0; border-bottom: 1px dashed #e2e8f0; font-size: 0.8rem; }
.rozvrh-riadok:last-of-type { border-bottom: 0; }
.rozvrh-cas { flex: 0 0 auto; font: inherit; font-weight: 700; color: #0f172a; background: #e8f5e9; border: 1px solid #a5d6a7; border-radius: 4px;
    padding: 0 0.3rem; min-height: 24px; cursor: pointer; font-variant-numeric: tabular-nums; }
.rozvrh-cas-text { background: #f3f0ff; border-color: #c7bdf0; cursor: default; display: inline-flex; align-items: center; }
.rozvrh-riadok-mimo .rozvrh-cas-text { background: #eef2ff; border-style: dashed; border-color: #9aa5d6; }
.rozvrh-mena { display: flex; flex-wrap: wrap; gap: 0 0.4rem; min-width: 0; }
.rozvrh-mena .rozvrh-rezervacia-meno { background: none; border: 0; padding: 0; font: inherit; text-decoration: underline; cursor: pointer; text-align: left; }
/* Úzky stĺpec dňa na počítači: čas nad menami, mená na celú šírku. */
@media (min-width: 641px) {
  /* Arénu nesie nadpis karty nad týždňom; v hlavičke dňa by vytlačila dátum. */
  .rozvrh-den-arena { display: none; }
  .rozvrh-den-otvor > span:first-child { white-space: nowrap; }
  .rozvrh-riadok { flex-wrap: wrap; }
  .rozvrh-mena { flex: 1 1 100%; flex-direction: column; }
}
@media (min-width: 1100px) {
  .rozvrh-dni-zbalene { grid-template-columns: repeat(7, minmax(0, 1fr)); }
}
.rozvrh-pole-poznamka { color: var(--ink-3, #576273); font-size: 0.75rem; }
.rozvrh-cipy { display: flex; flex-wrap: wrap; gap: 0.3rem; margin-top: 0.35rem; }
.rozvrh-cip { font: inherit; font-size: 0.75rem; font-variant-numeric: tabular-nums; min-height: 24px; min-width: 44px; padding: 0 0.35rem;
    border: 1px solid #a5d6a7; background: #fff; color: #166534; border-radius: 999px; cursor: pointer; }
.rozvrh-cip-plny { border-color: #f0b3ab; color: #9b1c1c; }
.rozvrh-cip-vypnuty { border-color: #ced4da; color: #475569; border-style: dashed; }
.rozvrh-cip-vyhradeny { border-color: #e2c26a; background: #fff8e1; color: #6b4e00; }
.rozvrh-pole-prazdne { text-align: center; color: var(--ink-3, #576273); padding: 0.4rem; font-size: 0.78rem; }
.rozvrh-den-nazov { background: none; border: 0; padding: 0; font: inherit; color: inherit; cursor: pointer; text-decoration: underline; text-underline-offset: 2px; }
.rozvrh-nastavenie-karta[hidden] { display: none !important; }
.rozvrh-nastavenie-pas { margin-bottom: 1.5rem; padding: 0 !important; }
.rozvrh-nastavenie-btn { display: flex; width: 100%; justify-content: space-between; align-items: center; gap: 0.75rem;
    background: none; border: 0; padding: 0.9rem 1.1rem; font: inherit; text-align: left; cursor: pointer; min-height: 44px; color: inherit; }
.rozvrh-nastavenie-sipka { font-size: 1.1rem; transition: transform 0.15s; }
.rozvrh-nastavenie-btn.otvorene .rozvrh-nastavenie-sipka { transform: rotate(180deg); }
@media (prefers-reduced-motion: reduce) { .rozvrh-nastavenie-sipka { transition: none; } }
/* Deň v detaile: všetko na očiach aj na telefóne — nič sa neschováva pod „⋯ Viac“. */
.rozvrh-dni-den { display: grid; grid-template-columns: minmax(0, 32rem); }
.rozvrh-den-detail .rozvrh-viac { display: contents !important; }
.rozvrh-den-detail .rozvrh-viac-btn { display: none !important; }
@media (max-width: 640px) {
  .rozvrh-dni-zbalene { grid-template-columns: 1fr; }
  .rozvrh-den-otvor, .rozvrh-prepinac .btn, .rozvrh-vyber .form-control, #rozvrhCelyTyzden { min-height: 44px; }
  .rozvrh-cas, .rozvrh-cip { min-height: 36px; }
  .rozvrh-cip { min-width: 52px; font-size: 0.85rem; }
  .rozvrh-riadok { font-size: 0.9rem; padding: 0.25rem 0; }
  .rozvrh-dni-den { grid-template-columns: 1fr; }
  .rozvrh-den-detail .rozvrh-viac { display: flex !important; flex-wrap: wrap; gap: 0.35rem; flex-basis: 100%; }
  .rozvrh-vyber { flex: 1 1 40%; }
  .rozvrh-vyber .form-control { width: 100%; }
}

/* ── Filtre na telefóne za tlačidlom (USER-292-B, filtre-mobil.js) ──
   Na počítači sa nemení nič: tlačidlo nie je, obal v riadku je `contents`. */
.filtre-mobil-btn { display: none !important; }
.filtre-mobil-v-riadku { display: contents; }
@media (max-width: 640px) {
  .filtre-mobil-btn { display: inline-flex !important; min-height: 44px; margin-bottom: 0.6rem; }
  .filtre-mobil-obal:not(.otvorene) { display: none !important; }
  .filtre-mobil-v-riadku.otvorene { display: flex; flex-wrap: wrap; gap: 0.5rem; width: 100%; }
  .filtre-mobil-v-riadku.otvorene > * { flex: 1 1 45%; width: auto !important; }
}

/* ── Horná lišta na telefóne a tablete v pruhu s menu (USER-292-B) ──
   Pod 1024 px bola lišta (hľadanie, ikony, omrvinka) samostatná karta
   pod pevným pruhom s tlačidlom menu — spolu ~190 px nad nadpisom sekcie,
   teda štvrtina obrazovky telefónu. Lišta sa teraz zmestí do toho pruhu
   vedľa tlačidla menu; omrvinka sa skryje (nadpis sekcie hovorí to isté
   a návrat má „‹ Späť“ vľavo dole). Režim trénera má vlastnú lištu dole,
   pruh s menu nemá, preto sa ho to netýka. */
@media (max-width: 1023px) {
    html:not(.rezim-trener) .topbar {
        position: fixed !important;
        top: 12px; left: 64px; right: 10px;
        z-index: 99;
        flex-wrap: nowrap !important;
        gap: 0.4rem !important;
        margin: 0 !important; padding: 0 !important;
        background: transparent !important; border: 0 !important; box-shadow: none !important;
    }
    html:not(.rezim-trener) .topbar-breadcrumb { display: none !important; }
    html:not(.rezim-trener) .topbar-search { flex: 1 1 auto !important; min-width: 0; }
    html:not(.rezim-trener) .topbar-search input { min-width: 0; width: 100%; }
    html:not(.rezim-trener) .topbar-right { gap: 0.3rem !important; flex-shrink: 0; }
}
/* Tabuľka s riadkom „pod sebou“ sa smie zúžiť: bunky sa zalamujú (údaje sú
   v blokoch) a pevná min. šírka z tabletového rozloženia neplatí — na
   768 px sa inak stĺpec akcií odrezával rovnako ako predtým na počítači. */
table:has(.riadok-akcie) { min-width: 0 !important; }
table:has(.riadok-akcie) td { white-space: normal !important; }
.riadok-akcie .btn { white-space: nowrap; }

/* Lišta nad zoznamom na telefóne (USER-292-B): hlavné tlačidlo na celú
   šírku, vedľajšie (↻, CSV, Tlač) iba také široké, aké sú, a hľadanie
   s nimi v jednom riadku. Dovtedy mal aj „↻“ polovicu šírky obrazovky
   a lišta zaberala tri riadky. */
@media (max-width: 640px) {
    .header-actions .btn:not(.btn-primary) { flex: 0 0 auto !important; min-height: 44px; }
    .header-actions input.form-control { flex: 1 1 140px !important; width: auto !important; }
}

/* Súhrn účtov (USER-292-B) — položky v riadku s medzerou, na telefóne pod sebou bez odsadenia. */
#billingSummary { display: flex; flex-wrap: wrap; column-gap: 1.5rem; }

/* Majetok (USER-292-B): riadok pre detail zariadenia je prázdny, kým sa detail neotvorí — nesmie robiť medzeru ani prázdnu kartu na telefóne. */
.majetok-detail-riadok:has(> td > div:empty) { display: none !important; }

/* Karta jazdca (USER-292-B) — meno v riadku otvára kartu; záložky v okne. */
.meno-odkaz { background: none; border: 0; padding: 0; font: inherit; font-weight: 600; color: var(--ink, #0f172a); cursor: pointer; text-align: left; text-decoration: underline; text-decoration-color: rgba(15, 23, 42, 0.25); text-underline-offset: 3px; }
.meno-odkaz:hover { text-decoration-color: currentColor; }
.meno-odkaz:focus-visible { outline: 2px solid var(--primary); outline-offset: 2px; border-radius: 2px; }
@media (max-width: 640px) { .meno-odkaz { min-height: 44px; display: inline-flex; align-items: center; } }
.karta-jazdca-zalozky { overflow-x: auto; flex-wrap: nowrap; margin-bottom: 1rem; scrollbar-width: thin; }
.karta-jazdca-zalozky .tab { background: none; border-top: 0; border-left: 0; border-right: 0; white-space: nowrap; padding: 0.7rem 1rem; min-height: 44px; font: inherit; font-size: 0.9rem; }
.karta-jazdca-zalozky .tab[aria-selected="true"] { color: var(--primary-dark, #1a6b1a); border-bottom-color: var(--primary); font-weight: 600; }
.karta-jazdca-panel[hidden] { display: none !important; }
.karta-jazdca-udaje { display: grid; grid-template-columns: max-content minmax(0, 1fr); gap: 0.35rem 1rem; margin: 0; }
.karta-jazdca-udaje dt { color: var(--ink-3, #576273); font-size: 0.85rem; }
.karta-jazdca-udaje dd { margin: 0; overflow-wrap: anywhere; }
.karta-jazdca-zoznam { list-style: none; margin: 0; padding: 0; }
.karta-jazdca-zoznam li { padding: 0.55rem 0; border-bottom: 1px solid var(--gray-light, #e9ecef); }
@media (max-width: 640px) { .karta-jazdca-udaje { grid-template-columns: 1fr; gap: 0.1rem; } .karta-jazdca-udaje dd { margin-bottom: 0.5rem; } }

/* ── Čítanosť vzdelávania (USER-296, readership.js) ─────────────────────── */
.cit-hlavicka .cit-obdobia { display: inline-flex; gap: 0.35rem; flex-wrap: wrap; }
.cit-obdobia .btn { min-height: 36px; }
.cit-obdobia .btn[aria-pressed="true"] { background: #1e293b !important; border-color: #1e293b !important; color: #fff !important; }
.cit-dlazdice { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 0.75rem; margin-bottom: 1.25rem; }
.cit-dlazdica { padding: 0.9rem 1rem; border: 1px solid var(--border, #e5e7eb); border-radius: var(--radius, 12px); background: var(--surface, #fff); }
.cit-hlavna { border-color: #bbf7d0; background: #f0fdf4; }
.cit-stitok { font-size: 0.8rem; color: var(--ink-3, #576273); text-transform: uppercase; letter-spacing: 0.04em; }
.cit-hodnota { font-size: 1.9rem; font-weight: 700; line-height: 1.2; margin-top: 0.2rem; font-variant-numeric: tabular-nums; color: var(--ink, #0f172a); }
.cit-pod, .cit-zmena { font-size: 0.85rem; color: var(--ink-3, #576273); margin-top: 0.25rem; }
.cit-zmena.cit-hore { color: #047857; }
.cit-zmena.cit-dole { color: #b91c1c; }
.cit-graf { margin: 0 0 1.5rem; }
.cit-graf svg { display: block; width: 100%; height: 120px; }
.cit-graf rect { fill: #15803d; }
.cit-graf rect:hover { fill: #0f5c2c; }
.cit-graf figcaption { display: flex; justify-content: space-between; gap: 0.5rem; font-size: 0.8rem; color: var(--ink-3, #576273); margin-top: 0.4rem; border-top: 1px solid var(--border, #e5e7eb); padding-top: 0.35rem; }
.cit-stlpce { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); gap: 1.5rem; }
.cit-stlpce h4 { font-size: 0.95rem; margin: 0 0 0.6rem; color: var(--ink, #0f172a); }
.cit-stlpce section > h4:not(:first-child) { margin-top: 1.25rem; }
.cit-pruhy { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 0.55rem; }
.cit-pruh-riadok { display: flex; justify-content: space-between; gap: 0.75rem; font-size: 0.9rem; }
.cit-pruh-meno { min-width: 0; overflow-wrap: anywhere; }
.cit-pruh-meno a { color: var(--ink, #0f172a); text-decoration: underline; text-decoration-color: #cbd5e1; text-underline-offset: 2px; }
.cit-pruh-cislo { font-variant-numeric: tabular-nums; font-weight: 600; white-space: nowrap; }
.cit-pruh-cislo small { font-weight: 400; color: var(--ink-3, #576273); margin-left: 0.25rem; }
.cit-pruh { height: 6px; background: #eef2f6; border-radius: 3px; margin-top: 0.25rem; overflow: hidden; }
.cit-pruh span { display: block; height: 100%; background: #15803d; border-radius: 3px; }
.cit-vsetky { margin-top: 1.5rem; border-top: 1px solid var(--border, #e5e7eb); padding-top: 0.75rem; }
.cit-vsetky summary { cursor: pointer; font-weight: 600; min-height: 44px; display: flex; align-items: center; }
.cit-tabulka { overflow-x: auto; margin-top: 0.5rem; }
.cit-tabulka .cit-c { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.cit-tabulka .cit-sekcia th, .cit-tabulka .cit-sekcia td { background: #f1f5f9; font-weight: 700; text-align: left; }
.cit-tabulka .cit-sekcia td { text-align: right; }
.cit-tabulka .cit-odsadene { padding-left: 1.25rem; }
.cit-tabulka a { color: var(--primary, #15803d); }
.cit-dni { margin-top: 0; margin-bottom: 1.5rem; }
/* Dva krátke stĺpce sa zmestia aj na telefóne. Do 900 px dáva admin-cinematic.css
   každej tabuľke v karte min-width 640 px a poslednému stĺpcu 180 px (tlačidlá)
   — tu by číslo návštev vytlačili za okraj karty. */
.card-body .cit-dni table.table { min-width: 0; }
.card-body .cit-dni table.table td:last-child { min-width: 0; }
.cit-tabulka .cit-najviac td { font-weight: 700; }
.cit-dni small { font-weight: 400; color: var(--ink-3, #576273); }
.cit-prazdne { color: var(--ink-3, #576273); margin: 0; }
.cit-chyba { color: #b91c1c; margin: 0 0 0.5rem; }
.cit-poznamka { font-size: 0.82rem; color: var(--ink-3, #576273); margin: 1rem 0 0; }
@media (max-width: 760px) { .cit-stlpce { grid-template-columns: 1fr; } .cit-hodnota { font-size: 1.6rem; } }

/* Hľadanie, triedenie a stránkovanie každej tabuľky (USER-374, zoznam-tabulky.js).
   Riadky sa skrývajú triedou, nie štýlom — štýl patrí modulu (vlastný filter). */
tr.zoznam-nezhoda,tr.zoznam-mimo-strany,table.tab-karty tr.zoznam-nezhoda,table.tab-karty tr.zoznam-mimo-strany{display:none!important}
.zoznam-hladat{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;margin-bottom:.5rem}
.zoznam-hladat[hidden]{display:none}
.zoznam-hladat input[type="search"]{flex:1 1 16rem;max-width:26rem;min-height:44px}
.zoznam-hladat-vysledok{font-size:.85rem;color:var(--ink-2)}
.zoznam-ziadna-zhoda{color:var(--ink-2);font-size:.9rem}
.zoznam-zoradit-obal{display:none;align-items:center;gap:.4rem;font-size:.85rem;color:var(--ink-2)}
.zoznam-zoradit-obal select{min-height:44px;width:auto}
@media (max-width:640px){.zoznam-zoradit-obal{display:inline-flex}}
.zoznam-len-zoradit{display:none}
/* Hľadanie v dlhom výberovom poli (USER-489, public/admin/vyber-hladanie.js). */
.vyber-hladanie{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin-bottom:.35rem}
.vyber-hladanie[hidden],.vyber-hladanie:has(+ select[hidden]),.vyber-hladanie:has(+ select[style*="display: none"]),.vyber-hladanie:has(+ select[style*="display:none"]){display:none}
.vyber-hladanie input[type="search"]{flex:1 1 12rem;min-height:44px}
.vyber-hladanie-pocet{font-size:.85rem;color:var(--ink-2)}
@media (max-width:640px){.zoznam-len-zoradit{display:flex}}

/* Prepínač zobrazenia hesla na prihlásení — hover bol inline (onmouseover),
   od USER-475 (bod 3, delegované akcie) je v štýle. Inline farba v atribúte
   style sa prebíja iba s !important. */
#loginPasswordToggle:hover,
#loginPasswordToggle:focus-visible { color: #0f172a !important; }
