/* Vee – moderní šablona (design "Kamarád", říjen 2026). Jen světlá varianta.
   Tokeny níže přebarvují i Bootstrap 5.3, takže systémové stránky (účet, přihlášky, login) sedí k designu. */

:root,
[data-bs-theme="light"] {
    --vee-teal: #027A66;              /* bílý text na něm má kontrast 5,3:1 (původní #038B76 jen 4,2:1) */
    --vee-teal-dark: #02695A;
    --vee-teal-soft: #E6F5F2;
    --vee-coral: #CC3E1C;             /* bílý text 4,9:1 (původní #E04A28 jen 4,05:1) */
    --vee-coral-ink: #B93417;         /* coral jako barva malého TEXTU */
    --vee-coral-dark: #B03316;
    --vee-coral-soft: #FFE3D9;
    --vee-amber-soft: #FFF1D6;
    --vee-amber-ink: #7A4B00;
    --vee-cream: #FBF8F3;
    --vee-sand: #F3EEE3;
    --vee-line: #ECE5D8;
    --vee-ink: #1B2320;
    --vee-muted: #5B6864;
    --vee-faint: #5F6A65;
    --vee-surface: #fff;
    --vee-surface-2: #F0EBDF;
    --vee-teal-border: #B5E2D9;
    --vee-teal-ink: #02695A;          /* teal jako barva TEXTU (v dark světlejší) */
    --vee-full-ink: #9B2C12;
    --vee-amber-ink-text: #7A4B00;
    --vee-header-bg: rgba(251, 248, 243, .94);
    --vee-richtext: #3A423E;
    --vee-dash: #D8D2C4;
    --vee-mint: #DCF3EE;
    --vee-footer-bg: #1B2320;
    --vee-input-border: #858E89;      /* okraj polí min. 3:1 (WCAG 1.4.11) */
    --vee-focus: #02695A;
    --vee-radius: 18px;
    --vee-font-head: 'Sora', system-ui, sans-serif;
    --vee-font-body: 'Karla', system-ui, sans-serif;

    /* Bootstrap tokeny */
    --bs-body-font-family: var(--vee-font-body);
    --bs-body-color: var(--vee-ink);
    --bs-body-color-rgb: 27, 35, 32;
    --bs-body-bg: var(--vee-cream);
    --bs-body-bg-rgb: 251, 248, 243;
    --bs-secondary-color: var(--vee-muted);
    --bs-secondary-color-rgb: 91, 104, 100;
    --bs-border-color: var(--vee-line);
    --bs-primary: #027A66;
    --bs-primary-rgb: 2, 122, 102;
    --bs-primary-text-emphasis: #02695A;
    --bs-primary-bg-subtle: #E6F5F2;
    --bs-primary-border-subtle: #B5E2D9;
    --bs-link-color: #02695A;
    --bs-link-color-rgb: 2, 105, 90;
    --bs-link-hover-color: #02574B;
    --bs-link-hover-color-rgb: 2, 87, 75;
    --bs-focus-ring-color: rgba(3, 139, 118, .25);
    --bs-border-radius: .75rem;
    --bs-border-radius-lg: 1rem;
    --bs-border-radius-xl: 1.25rem;
}

body {
    font-family: var(--vee-font-body);
    background: var(--vee-cream);
    color: var(--vee-ink);
    font-size: 1rem;
    line-height: 1.6;
}

::selection { background: var(--vee-coral); color: #fff; }

h1, h2, h3, h4, h5, h6 { font-family: var(--vee-font-head); letter-spacing: -0.01em; }

.btn-primary {
    --bs-btn-bg: var(--vee-teal);
    --bs-btn-border-color: var(--vee-teal);
    --bs-btn-hover-bg: var(--vee-teal-dark);
    --bs-btn-hover-border-color: var(--vee-teal-ink);
    --bs-btn-active-bg: var(--vee-teal-dark);
    --bs-btn-active-border-color: var(--vee-teal-ink);
    --bs-btn-disabled-bg: var(--vee-teal);
    --bs-btn-disabled-border-color: var(--vee-teal);
}
.btn-outline-primary {
    --bs-btn-color: var(--vee-teal);
    --bs-btn-border-color: var(--vee-teal);
    --bs-btn-hover-bg: var(--vee-teal);
    --bs-btn-hover-border-color: var(--vee-teal);
    --bs-btn-active-bg: var(--vee-teal);
    --bs-btn-active-border-color: var(--vee-teal);
}
.btn { font-weight: 700; }
.card { --bs-card-bg: var(--vee-surface); --bs-card-cap-bg: var(--vee-surface-2); --bs-card-border-color: var(--vee-line); --bs-card-border-radius: var(--vee-radius); }
.form-control, .form-select { border-color: var(--vee-input-border); }
.form-check-input:not(:checked) { border-color: var(--vee-input-border); }
.vee-search { border: 1.5px solid var(--vee-input-border); }
.form-control:focus, .form-select:focus { border-color: var(--vee-teal); box-shadow: 0 0 0 .2rem rgba(3, 139, 118, .18); }
.form-check-input:checked { background-color: var(--vee-teal); border-color: var(--vee-teal); }

/* Přeskočit na obsah + sdílený kontejner */
.vee-container { width: 100%; max-width: 1200px; margin: 0 auto; padding-left: clamp(16px, 3vw, 24px); padding-right: clamp(16px, 3vw, 24px); }
.vee-main { min-height: 50vh; }
.vee-page { padding-top: 32px; padding-bottom: 72px; }
.vee-page--narrow { max-width: 960px; }

.vee-h1 { font-size: clamp(26px, 3.4vw, 32px); font-weight: 800; letter-spacing: -0.02em; margin: 0 0 8px; }
.vee-h2 { font-size: clamp(21px, 2.6vw, 25px); font-weight: 800; letter-spacing: -0.01em; margin: 0 0 18px; }
.vee-lead { color: var(--vee-muted); font-size: 15px; margin: 0 0 22px; }

/* ============ Tlačítka ============ */
.vee-btn {
    display: inline-flex; align-items: center; justify-content: center; gap: 8px;
    min-height: 44px; padding: 9px 20px; border-radius: 999px; border: 1.5px solid transparent;
    font-family: var(--vee-font-body); font-weight: 700; font-size: 14px; line-height: 1.2;
    text-decoration: none; white-space: nowrap; cursor: pointer; transition: background-color .15s, color .15s, border-color .15s, box-shadow .15s;
}
.vee-btn--cta { background: var(--vee-coral); color: #fff; box-shadow: 0 6px 16px rgba(224, 74, 40, .3); }
.vee-btn--cta:hover { background: var(--vee-coral-dark); color: #fff; }
.vee-btn--teal { background: var(--vee-teal); color: #fff; }
.vee-btn--teal:hover { background: var(--vee-teal-dark); color: #fff; }
.vee-btn--outline { background: transparent; color: var(--vee-teal-ink); border-color: var(--vee-teal); }
.vee-btn--outline:hover { background: var(--vee-teal); color: #fff; }
.vee-btn--ghost { background: transparent; color: var(--vee-muted); border-color: var(--vee-line); }
.vee-btn--ghost:hover { background: var(--vee-surface); color: var(--vee-ink); }
.vee-btn--white { background: #fff; color: #02695A; font-weight: 800; }
.vee-btn--white:hover { background: #E6F5F2; color: #02695A; }
.vee-btn--sm { min-height: 0; padding: 8px 16px; font-size: 12.5px; }
.vee-btn--block { display: flex; width: 100%; padding: 14px; font-size: 15px; font-weight: 800; }
.vee-btn:focus-visible, .vee-tab:focus-visible, .vee-nav-link:focus-visible, .vee-tile:focus-visible,
.vee-event:focus-visible, .vee-related-item:focus-visible { outline: 3px solid var(--vee-focus); outline-offset: 2px; }

/* ============ Hlavička ============ */
.vee-header { position: sticky; top: 0; z-index: 50; background: var(--vee-header-bg); backdrop-filter: blur(8px); border-bottom: 1px solid var(--vee-line); }
.vee-navbar { padding: 10px 0; }
.vee-brand { display: flex; align-items: center; flex-shrink: 0; text-decoration: none; padding: 2px; }
.vee-brand-logo { height: 42px; width: auto; max-width: 180px; object-fit: contain; }
.vee-toggler { border: 1.5px solid var(--vee-line); background: var(--vee-surface); border-radius: 12px; width: 44px; height: 44px; padding: 0; display: flex; align-items: center; justify-content: center; font-size: 26px; color: var(--vee-ink); }
.vee-toggler:focus-visible { outline: 3px solid var(--vee-focus); outline-offset: 2px; box-shadow: none; }
.vee-nav { gap: 2px; margin-left: clamp(8px, 2vw, 24px); }
.vee-nav-link { padding: 8px 16px !important; border-radius: 999px; font-family: var(--vee-font-head); font-weight: 600; font-size: 14px; color: var(--vee-muted) !important; white-space: nowrap; }
.vee-nav-link:hover { background: var(--vee-sand); color: var(--vee-ink) !important; }
.vee-nav-link.active { background: var(--vee-teal-soft); color: var(--vee-teal-ink) !important; }

.vee-navbar-inner { display: flex; flex-wrap: wrap; align-items: center; }
.vee-navbar .navbar-collapse { flex-basis: 100%; flex-grow: 1; }

@media (min-width: 992px) {
    .vee-navbar-inner { flex-wrap: nowrap; }
    .vee-navbar .navbar-collapse { flex-basis: auto; display: flex !important; align-items: center; }
}

@media (max-width: 991.98px) {
    /* Rozbalené menu: panel pod hlavičkou přes celou šířku, odkazy pod sebou, akce na konci */
    .vee-navbar .navbar-collapse { margin-top: 10px; padding: 8px 0 6px; border-top: 1px solid var(--vee-line); }
    /* Hlavička je sticky, takže dlouhé menu (účet, vzhled, CTA) musí mít vlastní posouvání v rámci obrazovky.
       dvh = výška viewportu bez vysouvací lišty prohlížeče v mobilním Safari/Chrome. */
    .vee-navbar .navbar-collapse.show,
    .vee-navbar .navbar-collapse.collapsing { max-height: calc(100vh - 90px); max-height: calc(100dvh - 90px); overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; }
    .vee-nav { margin: 0 0 10px; gap: 2px; }
    .vee-nav-link { padding: 13px 14px !important; border-radius: 12px; font-size: 16px; }
}

/* ============ Společné komponenty ============ */
.vee-eyebrow { display: inline-block; background: var(--vee-teal-soft); color: var(--vee-teal-ink); font-weight: 700; font-size: 12.5px; padding: 6px 14px; border-radius: 999px; letter-spacing: .02em; }
.vee-pill { display: inline-block; background: var(--vee-teal-soft); color: var(--vee-teal-ink); font-weight: 700; font-size: 11px; padding: 4px 11px; border-radius: 999px; text-transform: uppercase; letter-spacing: .02em; }
.vee-badge { flex-shrink: 0; font-size: 11px; font-weight: 700; padding: 4px 10px; border-radius: 999px; white-space: nowrap; }
.vee-badge--ok { background: var(--vee-teal-soft); color: var(--vee-teal-ink); }
.vee-badge--few { background: var(--vee-amber-soft); color: var(--vee-amber-ink-text); }
.vee-badge--full { background: var(--vee-coral-soft); color: var(--vee-full-ink); }
.vee-dot { width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0; background: var(--vee-cat, var(--vee-teal)); display: inline-block; margin-top: .4em; }
.vee-section { padding-top: 40px; padding-bottom: 24px; }
.vee-section--last { padding-bottom: 72px; }
.vee-section-head { display: flex; align-items: baseline; justify-content: space-between; flex-wrap: wrap; gap: 8px; margin-bottom: 18px; }
.vee-section-head .vee-h2 { margin: 0; }
.vee-link-more { font-weight: 700; font-size: 14px; color: var(--vee-teal-ink); text-decoration: none; }
.vee-link-more:hover { text-decoration: underline; }
.vee-band { background: var(--vee-sand); padding: 40px 0; margin: 24px 0; }
.vee-back { display: inline-block; color: var(--vee-muted); font-size: 13.5px; font-weight: 700; text-decoration: none; margin-bottom: 16px; }
.vee-back:hover { color: var(--vee-ink); }

/* ============ Hero ============ */
.vee-hero { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: 44px; align-items: center; padding-top: 56px; padding-bottom: 32px; }
.vee-hero-title { font-family: var(--vee-font-head); font-size: clamp(30px, 4.6vw, 46px); line-height: 1.1; font-weight: 800; letter-spacing: -0.02em; margin: 18px 0 16px; }
.vee-hero-lead { font-size: 17px; line-height: 1.6; color: var(--vee-muted); max-width: 480px; margin: 0 0 26px; }
.vee-search { background: var(--vee-surface); border-radius: 16px; padding: 8px; display: flex; gap: 8px; flex-wrap: wrap; max-width: 520px; box-shadow: 0 14px 32px rgba(27, 35, 32, .08); margin-bottom: 28px; }
.vee-search input { flex: 1; min-width: 160px; border: 0; outline: 0; padding: 11px 12px; font-size: 15px; color: var(--vee-ink); background: transparent; }
.vee-search input::placeholder { color: #6B736F; }
.vee-stats { display: flex; gap: 28px; flex-wrap: wrap; margin: 0; }
.vee-stats dt { font-family: var(--vee-font-head); font-weight: 800; font-size: 24px; line-height: 1.2; }
.vee-stats dd { font-size: 13px; color: var(--vee-muted); margin: 0; }
.vee-hero-visual { position: relative; }
.vee-blob { position: absolute; border-radius: 50%; z-index: 0; }
.vee-blob--coral { top: -26px; right: -26px; width: 150px; height: 150px; background: var(--vee-coral-soft); opacity: .7; }
.vee-blob--mint { bottom: -18px; left: -18px; width: 120px; height: 120px; background: var(--vee-mint); }
.vee-hero-card { position: relative; z-index: 1; background: linear-gradient(160deg, #027A66, #02695A); border-radius: 26px; padding: 34px 28px; color: #fff; box-shadow: 0 22px 44px rgba(15, 42, 38, .22); }
.vee-hero-card-icon { width: 54px; height: 54px; border-radius: 16px; background: rgba(255, 255, 255, .16); display: flex; align-items: center; justify-content: center; font-size: 26px; margin-bottom: 18px; }
.vee-hero-card-foto { display: block; margin-bottom: 18px; border-radius: 16px; overflow: hidden; background: rgba(255, 255, 255, .1); }
.vee-hero-card-foto img { display: block; width: 100%; height: auto; max-height: 420px; object-fit: contain; } /* původní poměr stran, bez ořezu */
.vee-hero-card-label { display: inline-flex; align-items: center; gap: 8px; background: rgba(0, 0, 0, .22); border-radius: 999px; padding: 6px 14px; font-size: 12.5px; font-weight: 700; letter-spacing: .02em; margin-bottom: 18px; }
.vee-hero-card-title { font-family: var(--vee-font-head); font-weight: 700; font-size: 19px; margin: 0; line-height: 1.3; }
.vee-hero-card-date { font-size: 12.5px; opacity: .92; margin-bottom: 18px; }
.vee-hero-card-label + .vee-hero-card-title { font-size: 22px; }
.vee-hero-card-label ~ .vee-hero-card-text { margin-bottom: 10px; }
.vee-hero-card-text { margin: 8px 0 20px; font-size: 14.5px; opacity: .95; }
@media (max-width: 880px) {
    .vee-hero { grid-template-columns: 1fr; gap: 36px; padding-top: 36px; }
    .vee-blob--coral { right: -8px; }
    .vee-blob--mint { left: -8px; }
}

/* ============ Dlaždice zájmů, události, aktuality ============ */
.vee-tiles { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 14px; }
.vee-tile { display: flex; align-items: center; gap: 14px; background: var(--vee-surface); border: 1px solid var(--vee-line); border-radius: var(--vee-radius); padding: 18px; text-decoration: none; color: var(--vee-ink); transition: transform .15s, box-shadow .15s; }
.vee-tile:hover { transform: translateY(-2px); box-shadow: 0 10px 24px rgba(27, 35, 32, .08); color: var(--vee-ink); }
.vee-tile-letter { width: 42px; height: 42px; border-radius: 12px; display: flex; align-items: center; justify-content: center; color: #fff; font-family: var(--vee-font-head); font-weight: 800; font-size: 16px; flex-shrink: 0; }
.vee-tile-label { display: block; font-weight: 700; font-size: 14px; line-height: 1.3; }
.vee-tile-count { display: block; font-size: 12px; color: var(--vee-faint); margin-top: 2px; }

.vee-events { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 16px; }
.vee-event { display: flex; gap: 12px; align-items: center; background: var(--vee-surface); border: 1px solid var(--vee-line); border-radius: var(--vee-radius); padding: 18px; text-decoration: none; color: var(--vee-ink); transition: transform .15s, box-shadow .15s; }
.vee-event:hover { transform: translateY(-2px); box-shadow: 0 10px 24px rgba(27, 35, 32, .08); color: var(--vee-ink); }
.vee-event-date { width: 50px; height: 50px; border-radius: 13px; background: var(--vee-teal); color: #fff; display: flex; flex-direction: column; align-items: center; justify-content: center; flex-shrink: 0; }
.vee-event-day { font-family: var(--vee-font-head); font-weight: 800; font-size: 17px; line-height: 1; }
.vee-event-month { font-size: 9.5px; text-transform: uppercase; }
.vee-event-tag { display: block; font-size: 11px; color: var(--vee-coral-ink); font-weight: 700; text-transform: uppercase; }
.vee-event-name { display: block; font-weight: 700; font-size: 14.5px; line-height: 1.3; }

.vee-news-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 16px; }
.vee-news-card { background: var(--vee-surface); border: 1px solid var(--vee-line); border-radius: var(--vee-radius); overflow: hidden; display: flex; flex-direction: column; }
.vee-news-img { width: 100%; height: auto; display: block; }
.vee-news-body { padding: 22px; display: flex; flex-direction: column; flex: 1; }
.vee-news-tags { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 10px; }
.vee-news-title { font-family: var(--vee-font-body); font-weight: 700; font-size: 17px; line-height: 1.35; margin: 0 0 6px; }
.vee-news-title a { color: var(--vee-ink); text-decoration: none; }
.vee-news-title a:hover { color: var(--vee-teal-ink); }
.vee-news-excerpt { font-size: 14px; color: var(--vee-muted); line-height: 1.55; margin-bottom: 10px; }
.vee-news-date { font-size: 12px; color: var(--vee-faint); margin-top: auto; }
.vee-news-list { display: flex; flex-direction: column; gap: 14px; margin-top: 22px; }
.vee-news-row { background: var(--vee-surface); border: 1px solid var(--vee-line); border-radius: var(--vee-radius); padding: 22px; display: grid; grid-template-columns: 96px minmax(0, 1fr) auto; gap: 18px; align-items: start; }
.vee-news-row-date { font-size: 12px; color: var(--vee-faint); font-weight: 700; padding-top: 4px; }
.vee-news-row-img img { width: 140px; height: auto; border-radius: 12px; display: block; }
@media (max-width: 640px) {
    .vee-news-row { grid-template-columns: 1fr; gap: 10px; }
    .vee-news-row-img img { width: 100%; }
}
.vee-article { margin-top: 8px; }
.vee-article-img { width: 100%; height: auto; border-radius: var(--vee-radius); margin-bottom: 20px; }

.vee-cta-band { background: linear-gradient(120deg, #027A66, #02695A); border-radius: 26px; padding: clamp(26px, 4vw, 38px); display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 22px; color: #fff; }
.vee-cta-band-title { font-family: var(--vee-font-head); font-weight: 800; font-size: 21px; margin-bottom: 6px; }
.vee-cta-band-text { font-size: 14.5px; opacity: .95; max-width: 440px; margin: 0; }

/* ============ Katalog ============ */
.vee-tabs { display: inline-flex; background: var(--vee-surface-2); padding: 5px; border-radius: 999px; margin: 6px 0 26px; gap: 4px; max-width: 100%; overflow-x: auto; }
.vee-tab { padding: 10px 22px; border-radius: 999px; font-family: var(--vee-font-head); font-weight: 700; font-size: 14px; color: var(--vee-muted); text-decoration: none; white-space: nowrap; }
.vee-tab:hover { color: var(--vee-ink); }
.vee-tab.active { background: var(--vee-teal); color: #fff; }

.vee-catalog { display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: 28px; align-items: start; }
.vee-filters { position: sticky; top: 88px; background: var(--vee-surface); border: 1px solid var(--vee-line); border-radius: var(--vee-radius); padding: 20px; }
.vee-filter-label { display: block; font-weight: 700; font-size: 12px; text-transform: uppercase; letter-spacing: .02em; color: var(--vee-faint); margin-bottom: 8px; }
.vee-input { border-radius: 10px; padding: 10px 12px; font-size: 14px; }
.vee-filter-switch { padding: 12px 0 4px 2.5em; border-top: 1px solid var(--vee-line); margin-top: 6px; font-weight: 700; font-size: 13px; }
.vee-filter-clear { background: none; border: 0; padding: 6px 0; min-height: 32px; color: var(--vee-teal-ink); font-weight: 700; font-size: 13px; cursor: pointer; }
.vee-filter-clear:hover { color: var(--vee-teal-ink); text-decoration: underline; }
.vee-filter-toggle { width: 100%; min-height: 44px; margin-bottom: 14px; display: flex; align-items: center; justify-content: space-between; background: var(--vee-surface); border: 1.5px solid var(--vee-line); border-radius: 12px; padding: 10px 16px; font-weight: 700; font-size: 14px; color: var(--vee-ink); }
.vee-filter-toggle-action { color: var(--vee-teal-ink); }
@media (max-width: 991.98px) {
    .vee-catalog { grid-template-columns: 1fr; gap: 14px; }
    .vee-filters { position: static; }
}

.vee-results { font-size: 13.5px; color: var(--vee-faint); font-weight: 700; margin-bottom: 14px; min-height: 1.4em; }
.vee-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 16px; }
.vee-grid > [data-vee-card] { display: block; min-width: 0; }

.vee-card { position: relative; background: var(--vee-surface); border: 1px solid var(--vee-line); border-radius: var(--vee-radius); overflow: hidden; display: flex; flex-direction: column; height: 100%; transition: transform .15s, box-shadow .15s; }
.vee-card:hover { transform: translateY(-3px); box-shadow: 0 14px 30px rgba(27, 35, 32, .1); }
.vee-card-bar { height: 5px; background: var(--vee-cat, var(--vee-teal)); }
.vee-card-body { padding: 16px; display: flex; flex-direction: column; gap: 8px; flex: 1; }
.vee-card-top { display: flex; justify-content: space-between; align-items: flex-start; gap: 8px; }
.vee-card-cat { display: inline-flex; align-items: flex-start; gap: 6px; min-width: 0; line-height: 1.35; font-weight: 700; font-size: 11px; color: var(--vee-muted); text-transform: uppercase; letter-spacing: .02em; }
.vee-card-title { font-size: 16.5px; font-weight: 700; margin: 0; line-height: 1.3; }
.vee-card-title a { color: var(--vee-ink); text-decoration: none; }
.vee-card-title a:focus-visible { outline: 3px solid var(--vee-focus); outline-offset: -3px; border-radius: var(--vee-radius); }
.vee-card-meta { font-size: 13px; color: var(--vee-muted); line-height: 1.5; display: flex; flex-direction: column; gap: 3px; }
.vee-card-meta i { margin-right: 8px; color: var(--vee-faint); }
.vee-card-note { font-size: 12.5px; font-weight: 700; background: var(--vee-amber-soft); color: var(--vee-amber-ink-text); border-radius: 10px; padding: 6px 10px; }
.vee-card-foot { display: flex; align-items: center; justify-content: space-between; margin-top: auto; padding-top: 10px; border-top: 1px dashed var(--vee-line); }
.vee-card-price { font-family: var(--vee-font-head); font-weight: 700; font-size: 15px; }

.vee-empty { background: var(--vee-surface); border: 1px dashed var(--vee-dash); border-radius: var(--vee-radius); padding: 32px 24px; text-align: center; color: var(--vee-muted); }
.vee-empty-title { font-family: var(--vee-font-head); font-weight: 700; font-size: 16px; color: var(--vee-ink); margin-bottom: 6px; }
.vee-empty[hidden], [data-vee-card][hidden] { display: none !important; }

/* ============ Detail ============ */
.vee-detail-wrap { max-width: 1080px; }
.vee-detail { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 32px; align-items: start; margin-bottom: 32px; }
.vee-detail-cat { margin-bottom: 8px; }
.vee-panel { background: var(--vee-surface); border: 1px solid var(--vee-line); border-radius: var(--vee-radius); padding: 22px; margin-bottom: 18px; }
.vee-panel-title { font-family: var(--vee-font-head); font-weight: 700; font-size: 15px; margin: 0 0 14px; }
.vee-facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 16px; }
.vee-fact-label { display: block; font-size: 12px; color: var(--vee-faint); margin-bottom: 3px; }
.vee-fact-value { display: block; font-weight: 700; font-size: 14px; }
.vee-progress { margin-top: 18px; height: 8px; border-radius: 999px; background: var(--vee-surface-2); overflow: hidden; }
.vee-progress span { display: block; height: 100%; background: var(--vee-teal); }
.vee-progress-label { font-size: 12.5px; color: var(--vee-faint); margin-top: 6px; }
.vee-richtext { font-size: 14.5px; line-height: 1.7; color: var(--vee-richtext); overflow-wrap: anywhere; }
.vee-richtext > :last-child { margin-bottom: 0; }
.vee-richtext img, .vee-richtext iframe, .vee-richtext video { max-width: 100%; height: auto; border-radius: 12px; }
.vee-richtext table { max-width: 100%; }
.vee-related { margin-bottom: 8px; display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 12px; }
.vee-related-item { display: block; background: var(--vee-surface); border: 1px solid var(--vee-line); border-radius: 14px; padding: 14px; text-decoration: none; color: var(--vee-ink); }
.vee-related-item:hover { border-color: var(--vee-teal); color: var(--vee-ink); }
.vee-related-name { display: block; font-weight: 700; font-size: 13.5px; line-height: 1.3; margin-bottom: 3px; }
.vee-related-meta { display: block; font-size: 12px; color: var(--vee-faint); }

.vee-detail-aside { position: sticky; top: 88px; background: var(--vee-surface); border: 1px solid var(--vee-line); border-radius: var(--vee-radius); padding: 22px; }
.vee-price { font-family: var(--vee-font-head); font-weight: 800; font-size: 22px; }
.vee-price-note { font-size: 12px; color: var(--vee-faint); margin-bottom: 16px; }
.vee-status { display: flex; flex-direction: column; gap: 2px; padding: 12px 14px; border-radius: 14px; margin-bottom: 16px; font-size: 12px; color: var(--vee-muted); }
.vee-status strong { font-size: 13px; }
.vee-status--ok { background: var(--vee-teal-soft); } .vee-status--ok strong { color: var(--vee-teal-ink); }
.vee-status--few { background: var(--vee-amber-soft); } .vee-status--few strong { color: var(--vee-amber-ink-text); }
.vee-status--full { background: var(--vee-coral-soft); } .vee-status--full strong { color: var(--vee-full-ink); }
.vee-status--soon { background: var(--vee-amber-soft); color: var(--vee-amber-ink-text); font-weight: 700; flex-direction: row; align-items: center; gap: 8px; font-size: 13px; }
.vee-aside-note { font-size: 12px; color: var(--vee-faint); margin: 12px 0 0; line-height: 1.5; }
@media (max-width: 880px) {
    .vee-detail { grid-template-columns: 1fr; gap: 18px; }
    .vee-detail-aside { position: static; order: -1; }
}

/* Komponenty vkládané sdílenými ThemeBuilder metodami (kapacita, rozvrh) – brand barvy přes proměnné activity-detail.css */
html[data-bs-theme] .ddm-detail {
    --ddm-detail-ink: var(--vee-ink);
    --ddm-detail-muted: var(--vee-muted);
    --ddm-detail-line: var(--vee-line);
    --ddm-detail-surface: var(--vee-surface);
    --ddm-detail-soft: var(--vee-cream);
    --ddm-detail-accent: var(--vee-teal-dark);
    --ddm-detail-accent-soft: var(--vee-teal-soft);
    --ddm-detail-accent-border: var(--vee-teal-border);
}
.vee-detail-aside .ddm-detail-capacity { margin-bottom: 16px; }
.vee-panel .ddm-detail-schedule-list { margin: 0; }

/* ============ Galerie, kontakty ============ */
.vee-gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 16px; margin-top: 22px; }
.vee-gallery-item { display: block; text-decoration: none; color: var(--vee-muted); font-size: 13px; font-weight: 700; }
.vee-gallery-item img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 14px; border: 1px solid var(--vee-line); display: block; margin-bottom: 6px; }
.vee-people { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 16px; }
.vee-person { background: var(--vee-surface); border: 1px solid var(--vee-line); border-radius: var(--vee-radius); padding: 20px; font-size: 14px; display: flex; flex-direction: column; gap: 4px; }
.vee-person i { margin-right: 8px; color: var(--vee-faint); }
.vee-person-name { font-family: var(--vee-font-head); font-weight: 700; font-size: 15px; }
.vee-person-role { color: var(--vee-muted); margin-bottom: 6px; }
.vee-person-other { color: var(--vee-muted); font-size: 13px; margin-top: 6px; }

/* ============ Můj účet (inc/page/account.php + UserAccount) ============
   Systémová stránka nepatří šabloně, ale hover kartiček ("karta_profil") byl dosud definovaný jen v Tiger CSS. */
.karta_profil { cursor: pointer; will-change: transform; transition: transform 450ms, background-color 450ms, box-shadow 450ms; }
.karta_profil:hover { background-color: var(--vee-surface); box-shadow: 0 14px 30px rgba(27, 35, 32, .12); transition: transform 125ms, background-color 125ms, box-shadow 125ms; transform: translateY(-10px); }
.label_katalog { font-size: 0.85rem !important; }
.nadpis_filtrujte { font-size: 0.95rem !important; font-weight: 100; margin-bottom: 0.5rem; }

/* ============ Patička ============ */
.vee-footer { background: var(--vee-footer-bg); color: #D8DCD9; padding: 48px 0 26px; margin-top: 24px; }
.vee-footer-logo { max-height: 48px; max-width: 200px; width: auto; background: #fff; border-radius: 12px; padding: 6px 10px; }
.vee-footer-text { font-size: 13.5px; line-height: 1.7; color: #98A19C; margin-top: 12px; }
.vee-footer-text a { color: #B5E2D9; }
.vee-footer-title { font-family: var(--vee-font-head); font-weight: 700; font-size: 13px; color: #fff; margin: 0 0 12px; }
.vee-footer-links { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 8px; font-size: 13.5px; }
.vee-footer-links a { color: #98A19C; text-decoration: none; overflow-wrap: anywhere; }
.vee-footer-links a:hover { color: #fff; }
.vee-footer-links i { margin-right: 6px; }
.vee-footer-cookie { background: none; border: 1px solid #33403A; color: #98A19C; border-radius: 999px; padding: 6px 14px; font-size: 12.5px; cursor: pointer; }
.vee-footer-cookie:hover { color: #fff; border-color: #98A19C; }
.vee-footer-bottom { margin-top: 32px; border-top: 1px solid #33403A; padding-top: 18px; font-size: 12px; color: #8C9691; display: flex; justify-content: space-between; flex-wrap: wrap; gap: 8px; }
.vee-footer-bottom a { color: #8C9691; text-decoration: none; }
.vee-footer-bottom a:hover { color: #fff; }

/* ============ Tmavý režim ============
   Přepíná se atributem data-bs-theme="dark" na <html> (nastavuje skript v head.php podle volby Světlý/Tmavý/Auto). */
[data-bs-theme="dark"] {
    --vee-cream: #121816;
    --vee-sand: #18201D;
    --vee-surface: #1B2421;
    --vee-surface-2: #26312D;
    --vee-line: #2F3B37;
    --vee-ink: #E9EEEC;
    --vee-muted: #A9B5B0;
    --vee-faint: #8D9994;
    --vee-teal-soft: rgba(47, 191, 166, .16);
    --vee-coral-ink: #FF8A6B;
    --vee-input-border: #6B7873;
    --vee-focus: #5FD3BE;
    --vee-teal-border: rgba(95, 211, 190, .35);
    --vee-teal-ink: #5FD3BE;
    --vee-coral-soft: rgba(224, 74, 40, .2);
    --vee-full-ink: #FFA58C;
    --vee-amber-soft: rgba(245, 158, 11, .18);
    --vee-amber-ink: #FCD34D;
    --vee-amber-ink-text: #FCD34D;
    --vee-header-bg: rgba(18, 24, 22, .92);
    --vee-richtext: #C9D3CF;
    --vee-dash: #3A4742;
    --vee-mint: rgba(47, 191, 166, .18);
    --vee-footer-bg: #0C100F;

    --bs-body-color: #E9EEEC;
    --bs-body-color-rgb: 233, 238, 236;
    --bs-body-bg: #121816;
    --bs-body-bg-rgb: 18, 24, 22;
    --bs-emphasis-color: #fff;
    --bs-emphasis-color-rgb: 255, 255, 255;
    --bs-secondary-color: #A9B5B0;
    --bs-secondary-color-rgb: 169, 181, 176;
    --bs-secondary-bg: #26312D;
    --bs-secondary-bg-rgb: 38, 49, 45;
    --bs-tertiary-bg: #1B2421;
    --bs-tertiary-bg-rgb: 27, 36, 33;
    --bs-border-color: #2F3B37;
    --bs-primary-text-emphasis: #7FDCCB;
    --bs-primary-bg-subtle: rgba(47, 191, 166, .16);
    --bs-primary-border-subtle: rgba(95, 211, 190, .35);
    --bs-link-color: #5FD3BE;
    --bs-link-color-rgb: 95, 211, 190;
    --bs-link-hover-color: #8FE6D6;
    --bs-link-hover-color-rgb: 143, 230, 214;
    --bs-focus-ring-color: rgba(95, 211, 190, .3);
    color-scheme: dark;
}

[data-bs-theme="dark"] ::placeholder, [data-bs-theme="dark"] .vee-search input::placeholder { color: #87938E; }

[data-bs-theme="dark"] .form-control, [data-bs-theme="dark"] .form-select { background-color: var(--vee-cream); color: var(--vee-ink); }
[data-bs-theme="dark"] .vee-input { background-color: var(--vee-cream); }
[data-bs-theme="dark"] .vee-card:hover, [data-bs-theme="dark"] .vee-tile:hover, [data-bs-theme="dark"] .vee-event:hover,
[data-bs-theme="dark"] .karta_profil:hover { box-shadow: 0 14px 30px rgba(0, 0, 0, .45); }
[data-bs-theme="dark"] .karta_profil:hover { background-color: var(--vee-surface-2); }
[data-bs-theme="dark"] .vee-search { box-shadow: 0 14px 32px rgba(0, 0, 0, .4); }
[data-bs-theme="dark"] .vee-hero-card { box-shadow: 0 22px 44px rgba(0, 0, 0, .45); }
[data-bs-theme="dark"] .vee-blob--coral { opacity: .25; }

/* Logo tenanta bývá tmavé na průhledném pozadí -> v dark na světlém "čipu" */
[data-bs-theme="dark"] .vee-brand { background: #fff; border-radius: 12px; padding: 4px 10px; }

/* Utility třídy ze sdílených stránek (účet, ověření, ThemeBuilder), které Bootstrap v dark nepřebarvuje */
[data-bs-theme="dark"] .bg-light { background-color: var(--vee-surface-2) !important; color: var(--vee-ink) !important; }
[data-bs-theme="dark"] .border-dark { border-color: var(--vee-faint) !important; }
[data-bs-theme="dark"] .text-dark:not(.badge):not([class*="bg-"]) { color: var(--vee-ink) !important; }
[data-bs-theme="dark"] .btn-dark { --bs-btn-color: #121816; --bs-btn-bg: #E9EEEC; --bs-btn-border-color: #E9EEEC; --bs-btn-hover-color: #121816; --bs-btn-hover-bg: #fff; --bs-btn-hover-border-color: #fff; --bs-btn-active-color: #121816; --bs-btn-active-bg: #fff; --bs-btn-active-border-color: #fff; --bs-btn-disabled-color: #121816; --bs-btn-disabled-bg: #E9EEEC; --bs-btn-disabled-border-color: #E9EEEC; }
[data-bs-theme="dark"] .btn-outline-dark { --bs-btn-color: #E9EEEC; --bs-btn-border-color: #E9EEEC; --bs-btn-hover-color: #121816; --bs-btn-hover-bg: #E9EEEC; --bs-btn-hover-border-color: #E9EEEC; --bs-btn-active-color: #121816; --bs-btn-active-bg: #E9EEEC; --bs-btn-disabled-color: #E9EEEC; --bs-btn-disabled-border-color: #E9EEEC; }
[data-bs-theme="dark"] [style*="color:#666"], [data-bs-theme="dark"] [style*="color: #666"] { color: var(--vee-muted) !important; }
[data-bs-theme="dark"] [style*="border: 1px solid #d1d1d1"] { border-color: var(--vee-line) !important; }

/* Sdílené styly detailu a formuláře mají vlastní (modrošedou) dark paletu s !important - sladíme ji s paletou Vee */
html[data-bs-theme="dark"] .ddm-detail .ddm-detail-schedule-item,
html[data-bs-theme="dark"] .ddm-detail .ddm-detail-panel,
html[data-bs-theme="dark"] .ddm-detail .ddm-detail-content {
    background: var(--vee-cream) !important;
    border-color: var(--vee-line) !important;
    color: var(--vee-ink) !important;
}
html[data-bs-theme="dark"] body .ddm-registration-prefill,
html[data-bs-theme="dark"] body .ddm-registration-form {
    background: var(--vee-surface) !important;
    border-color: var(--vee-line) !important;
}
html[data-bs-theme="dark"] body .ddm-registration-choice-panel,
html[data-bs-theme="dark"] body .ddm-registration-info,
html[data-bs-theme="dark"] body .ddm-registration-final .alert,
html[data-bs-theme="dark"] body .ddm-registration-form .alert-light,
html[data-bs-theme="dark"] body .ddm-registration-form .form-check-inline {
    background: var(--vee-surface-2) !important;
    border-color: var(--vee-line) !important;
}
[data-bs-theme="dark"] .badge.bg-dark { background-color: var(--vee-surface-2) !important; color: var(--vee-ink) !important; border: 1px solid var(--vee-line); }

/* Obsah psaný editory v administraci (popisy, aktuality, texty stránek) může mít inline barvy/pozadí
   určené pro světlý web - v dark je nahradíme barvami šablony, ať není nic nečitelné. */
[data-bs-theme="dark"] .vee-richtext :is([style*="color"], font[color], span[style]),
[data-bs-theme="dark"] .vee-news-excerpt :is([style*="color"], font[color]),
[data-bs-theme="dark"] .vee-footer-text :is([style*="color"], font[color]) { color: inherit !important; }
[data-bs-theme="dark"] .vee-richtext :is([style*="background"], [bgcolor]),
[data-bs-theme="dark"] .vee-news-excerpt [style*="background"] { background: transparent !important; }
[data-bs-theme="dark"] .vee-richtext :is(td, th, table)[style*="border"] { border-color: var(--vee-line) !important; }
[data-bs-theme="dark"] .vee-richtext table { color: inherit; }

/* ============ Pravá strana hlavičky: vzhled, účet, CTA ============ */
.vee-actions { display: flex; align-items: center; gap: 6px; }
.vee-icon-btn, .vee-account-btn { border: 0; background: transparent; color: var(--vee-muted); display: inline-flex; align-items: center; font-family: var(--vee-font-body); font-weight: 700; font-size: 14px; cursor: pointer; text-decoration: none; transition: background-color .15s, color .15s; }
.vee-icon-btn { width: 40px; height: 40px; justify-content: center; border-radius: 50%; font-size: 17px; }
.vee-account-btn { gap: 8px; height: 40px; padding: 0 14px 0 12px; border-radius: 999px; white-space: nowrap; }
.vee-account-btn .bi-person-circle { font-size: 18px; }
.vee-caret { font-size: 11px; margin-left: -2px; transition: transform .15s; }
.vee-account-btn[aria-expanded="true"] .vee-caret { transform: rotate(180deg); }
.vee-icon-btn:hover, .vee-account-btn:hover, .vee-icon-btn[aria-expanded="true"], .vee-account-btn[aria-expanded="true"] { background: var(--vee-surface-2); color: var(--vee-ink); }
.vee-icon-btn:focus-visible, .vee-account-btn:focus-visible, .vee-theme-btn:focus-visible { outline: 3px solid var(--vee-focus); outline-offset: 2px; }
.vee-actions .vee-btn--cta { margin-left: 4px; }

/* Rozbalovací nabídky (vzhled, účet) */
.vee-menu { --bs-dropdown-bg: var(--vee-surface); --bs-dropdown-color: var(--vee-ink); --bs-dropdown-border-color: var(--vee-line); --bs-dropdown-border-radius: 14px; --bs-dropdown-link-color: var(--vee-ink); --bs-dropdown-link-hover-bg: var(--vee-surface-2); --bs-dropdown-link-hover-color: var(--vee-ink); --bs-dropdown-link-active-bg: var(--vee-teal-soft); --bs-dropdown-link-active-color: var(--vee-teal-ink); --bs-dropdown-divider-bg: var(--vee-line); --bs-dropdown-padding-y: 8px; min-width: 210px; box-shadow: 0 18px 40px rgba(27, 35, 32, .14); margin-top: 10px !important; }
.vee-menu .dropdown-item { display: flex; align-items: center; gap: 10px; padding: 9px 12px; margin: 0 6px; width: auto; border-radius: 10px; font-weight: 600; font-size: 14px; }
.vee-menu .dropdown-item > .bi:first-child { width: 18px; text-align: center; color: var(--vee-faint); }
.vee-menu-check { margin-left: auto; opacity: 0; color: var(--vee-teal-ink); }
.vee-menu .dropdown-item[aria-pressed="true"] { color: var(--vee-teal-ink); }
.vee-menu .dropdown-item[aria-pressed="true"] > .bi:first-child { color: var(--vee-teal-ink); }
.vee-menu .dropdown-item[aria-pressed="true"] .vee-menu-check { opacity: 1; }
[data-bs-theme="dark"] .vee-menu { box-shadow: 0 18px 40px rgba(0, 0, 0, .55); }

.vee-menu--account { min-width: 250px; }
.vee-menu-head { display: flex; align-items: center; gap: 10px; padding: 6px 18px 10px; font-size: 12.5px; color: var(--vee-muted); max-width: 290px; }
.vee-menu-head span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.vee-menu-head--mobile { max-width: none; padding: 10px 14px 8px; }
.vee-avatar { width: 26px; height: 26px; border-radius: 50%; object-fit: cover; flex-shrink: 0; background: var(--vee-surface-2); }
.vee-avatar--lg { width: 36px; height: 36px; }
.vee-avatar-icon { font-size: 36px; line-height: 1; color: var(--vee-faint); flex-shrink: 0; }
.vee-menu-badge { margin-left: auto; font-size: 10.5px; font-weight: 700; text-transform: uppercase; letter-spacing: .02em; padding: 3px 8px; border-radius: 999px; background: var(--vee-amber-soft); color: var(--vee-amber-ink-text); white-space: nowrap; }
.vee-attention-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--vee-coral); margin-left: -2px; flex-shrink: 0; }

/* Přepínač tří režimů - používá se jen v mobilním menu */
.vee-theme-switch { display: inline-flex; align-items: center; gap: 2px; padding: 3px; border-radius: 999px; background: var(--vee-surface-2); border: 1px solid var(--vee-line); }
.vee-theme-btn { width: 44px; height: 36px; border: 0; border-radius: 999px; background: transparent; color: var(--vee-muted); display: inline-flex; align-items: center; justify-content: center; font-size: 16px; cursor: pointer; transition: background-color .15s, color .15s; }
.vee-theme-btn[aria-pressed="true"] { background: var(--vee-teal); color: #fff; }

/* Mobilní menu: blok účtu a vzhledu */
.vee-mobile-panel { border-top: 1px solid var(--vee-line); margin-top: 6px; padding: 8px 0 4px; }
.vee-mobile-link { display: flex; align-items: center; gap: 12px; padding: 12px 14px; border-radius: 12px; color: var(--vee-ink); font-weight: 600; font-size: 15px; text-decoration: none; }
.vee-mobile-link:hover { background: var(--vee-surface-2); color: var(--vee-ink); }
.vee-mobile-link .bi { width: 20px; text-align: center; color: var(--vee-faint); font-size: 17px; }
.vee-mobile-divider { border: 0; border-top: 1px solid var(--vee-line); margin: 6px 14px; opacity: 1; }
.vee-mobile-link .vee-menu-badge { margin-left: auto; }
.vee-mobile-theme { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 14px 6px; font-weight: 600; font-size: 14px; color: var(--vee-muted); }
@media (max-width: 991.98px) {
    .vee-actions { padding: 12px 0 6px; border-top: 1px solid var(--vee-line); margin-top: 6px; }
    .vee-actions .vee-btn--cta { margin-left: 0; width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
    .vee-card, .vee-tile, .vee-event, .vee-btn, .karta_profil { transition: none; }
    .karta_profil:hover { transform: none; }
    .vee-card:hover, .vee-tile:hover, .vee-event:hover { transform: none; }
}
