*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

:root {
  --c-bg: #f1f5f9;
  --c-surface: #ffffff;
  --c-border: #e2e8f0;
  --c-border-strong: #cbd5e1;

  --c-navy: #0b1526;
  --c-navy-mid: #111f35;

  --c-primary: #2563eb;
  --c-primary-hover: #1d4ed8;
  --c-primary-light: #dbeafe;

  --c-text: #0f172a;
  --c-text-secondary: #475569;
  --c-muted: #94a3b8;

  --c-danger: #dc2626;
  --c-danger-bg: #fef2f2;
  --c-danger-border: #fca5a5;

  --c-success: #16a34a;
  --c-success-bg: #f0fdf4;
  --c-success-border: #86efac;

  --c-warn: #b45309;
  --c-warn-bg: #fffbeb;
  --c-warn-border: #fcd34d;

  --c-info: #0369a1;
  --c-info-bg: #f0f9ff;
  --c-info-border: #7dd3fc;

  --radius-sm: 6px;
  --radius: 10px;
  --radius-lg: 16px;
  --shadow-sm: 0 1px 2px rgba(15,23,42,.06), 0 1px 3px rgba(15,23,42,.08);
  --shadow: 0 4px 6px -1px rgba(15,23,42,.07), 0 2px 4px -2px rgba(15,23,42,.05);
  --shadow-md: 0 10px 15px -3px rgba(15,23,42,.08), 0 4px 6px -4px rgba(15,23,42,.05);
  --shadow-lg: 0 20px 40px -8px rgba(15,23,42,.16), 0 8px 16px -4px rgba(15,23,42,.08);
}

body {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;
  background: var(--c-bg);
  color: var(--c-text);
  min-height: 100vh;
  font-size: 16px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}

/* ── Header ─────────────────────────────────────────────────────────────────── */
/* Pouze top-level page header (přímý potomek body), ne všechny <header> elementy
   uvnitř karet (news-karta-hlavicka, sankce-db-hlavicka apod.) */
body > header {
  background: var(--c-navy);
  position: sticky;
  top: 0;
  z-index: 100;
  border-bottom: 1px solid rgba(255,255,255,.05);
}
.header-inner {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 36px;
  height: 64px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}
.logo { display: flex; align-items: center; gap: 14px; }
.logo-wordmark {
  display: flex; align-items: baseline; gap: 10px;
}
.logo-wordmark h1 {
  font-size: 20px; font-weight: 800; color: #fff;
  letter-spacing: .08em;
}
.logo-divider {
  width: 1px; height: 18px;
  background: rgba(255,255,255,.18);
  flex-shrink: 0; align-self: center;
}
.logo-sub {
  font-size: 13.5px; color: rgba(255,255,255,.5);
  font-weight: 500; letter-spacing: .01em;
}

.header-nav {
  display: flex; align-items: center; gap: 8px;
}
.header-nav-link {
  color: rgba(255,255,255,.7); text-decoration: none;
  font-size: 14px; font-weight: 500; padding: 6px 14px;
  border-radius: var(--radius-sm);
  transition: color .15s, background .15s;
}
.header-nav-link:hover { color: #fff; background: rgba(255,255,255,.08); }
.header-nav-divider { width: 1px; height: 20px; background: rgba(255,255,255,.15); flex-shrink: 0; }
.header-btn-secondary {
  background: transparent;
  border: 1.5px solid rgba(255,255,255,.25);
  color: rgba(255,255,255,.8);
  border-radius: var(--radius-sm);
  padding: 7px 16px; font-size: 14px; font-weight: 600;
  cursor: pointer; font-family: inherit;
  transition: border-color .15s, color .15s, background .15s;
}
.header-btn-secondary:hover { border-color: rgba(255,255,255,.6); color: #fff; background: rgba(255,255,255,.06); }
.header-btn-primary {
  background: var(--c-primary);
  border: none; color: #fff;
  border-radius: var(--radius-sm);
  padding: 7px 18px; font-size: 14px; font-weight: 700;
  cursor: pointer; font-family: inherit;
  transition: background .15s, box-shadow .15s;
  box-shadow: 0 1px 3px rgba(37,99,235,.5);
}
.header-btn-primary:hover { background: var(--c-primary-hover); box-shadow: 0 2px 8px rgba(37,99,235,.5); }

.db-stav { display: none; }
.stav-dot {
  display: inline-block; width: 6px; height: 6px;
  border-radius: 50%; margin-right: 5px; vertical-align: middle;
}
.stav-dot.ok    { background: #34d399; box-shadow: 0 0 0 2px rgba(52,211,153,.18); }
.stav-dot.missing { background: #f87171; }
.db-btn-link {
  background: transparent;
  border: 1px solid rgba(255,255,255,.12);
  color: rgba(255,255,255,.45);
  cursor: pointer; font-size: 11px; font-family: inherit;
  padding: 3px 11px; border-radius: 20px;
  transition: border-color .15s, color .15s;
}
.db-btn-link:hover { border-color: rgba(255,255,255,.3); color: rgba(255,255,255,.85); }

/* ── Hero ────────────────────────────────────────────────────────────────────── */
.page-hero {
  background: var(--c-navy);
  background-image:
    linear-gradient(180deg, var(--c-navy) 0%, var(--c-navy-mid) 100%);
  padding: 32px 32px 56px;
  text-align: center;
}
.page-hero-inner { max-width: 560px; margin: 0 auto; }

.hero-eyebrow {
  display: inline-flex; align-items: center; gap: 14px;
  font-size: 10.5px; font-weight: 700;
  letter-spacing: .14em; text-transform: uppercase;
  color: rgba(255,255,255,.32);
  margin-bottom: 24px;
}
.hero-eyebrow::before,
.hero-eyebrow::after {
  content: '';
  display: block; width: 32px; height: 1px;
  background: rgba(255,255,255,.14);
  flex-shrink: 0;
}

.hero-heading {
  font-size: 42px; font-weight: 800; color: #fff;
  line-height: 1.13; letter-spacing: -.04em;
  margin-bottom: 20px;
}
.hero-heading em {
  font-style: normal;
  background: linear-gradient(110deg, #60a5fa 0%, #a78bfa 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.hero-logo {
  max-width: 300px;
  width: 100%;
  display: block;
  margin: 0 auto 6px;
  filter: drop-shadow(0 0 40px rgba(255,255,255,0.15));
}
.hero-tagline {
  font-size: 13px; font-weight: 500;
  color: rgba(255,255,255,.45);
  letter-spacing: .06em; text-transform: uppercase;
}

.hero-stats {
  display: flex; align-items: center; justify-content: center;
  flex-wrap: wrap; gap: 8px 0;
  font-size: 12px;
  color: rgba(255,255,255,.32);
  letter-spacing: .01em;
}
.hero-stats span { padding: 0 6px; }
.hero-dot { color: rgba(255,255,255,.12) !important; padding: 0 !important; }

/* ── Main layout ─────────────────────────────────────────────────────────────── */
main {
  max-width: 1280px;
  margin: -44px auto 0;
  padding: 0 32px 96px;
  position: relative;
  z-index: 10;
}

/* ── Tabs ────────────────────────────────────────────────────────────────────── */
.tabs-row {
  display: flex; align-items: center;
  justify-content: space-between;
  margin-bottom: 20px; gap: 12px;
}
.tabs {
  display: inline-flex; gap: 2px;
  background: var(--c-bg);
  padding: 3px; border-radius: 9px;
}
.tab-btn {
  background: transparent; border: 1px solid transparent;
  border-radius: 7px; padding: 8px 18px;
  font-size: 14px; font-weight: 600;
  color: var(--c-text-secondary); cursor: pointer;
  transition: background .15s, color .15s, border-color .15s;
  white-space: nowrap; font-family: inherit;
  display: inline-flex; align-items: center; gap: 8px;
}
.tab-ikona {
  flex-shrink: 0;
  color: currentColor;
  opacity: .75;
}
.tab-btn.active .tab-ikona { opacity: 1; }
.dash-podsekce-tab .tab-ikona { opacity: .65; }
.dash-podsekce-tab.active .tab-ikona { opacity: 1; }
.tab-btn:hover { color: var(--c-text); }
.tab-btn.active {
  background: var(--c-surface);
  color: var(--c-text);
  border-color: var(--c-border);
  box-shadow: none;
}
.tab-panel.hidden { display: none !important; }

/* ── Form ────────────────────────────────────────────────────────────────────── */
.form-section {
  background: var(--c-surface);
  border: 1px solid var(--c-border);
  border-radius: var(--radius-lg);
  padding: 28px 32px 32px;
  box-shadow: var(--shadow);
  margin-bottom: 28px;
}
.form-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
}
@media (max-width: 600px) { .form-grid { grid-template-columns: 1fr; } }

.field { display: flex; flex-direction: column; gap: 6px; }
label {
  font-size: 12.5px; font-weight: 500;
  color: var(--c-text-secondary);
  letter-spacing: 0;
  text-transform: none;
}
.required { color: var(--c-danger); }
.optional { font-weight: 400; color: var(--c-muted); text-transform: none; letter-spacing: 0; font-size: 11px; }

input, select {
  border: 1.5px solid var(--c-border);
  border-radius: var(--radius-sm);
  padding: 10px 14px;
  font-size: 15px; color: var(--c-text);
  background: var(--c-surface);
  transition: border-color .15s, box-shadow .15s;
  width: 100%; font-family: inherit;
}
input:focus, select:focus {
  outline: none;
  border-color: var(--c-primary);
  box-shadow: 0 0 0 3px rgba(37,99,235,.1);
}
input::placeholder { color: var(--c-muted); }

.form-actions { margin-top: 24px; display: flex; justify-content: flex-end; gap: 10px; }

button[type="submit"], .btn-primary {
  background: var(--c-primary);
  color: #fff; border: none;
  border-radius: var(--radius-sm);
  padding: 11px 30px;
  font-size: 15px; font-weight: 700;
  cursor: pointer;
  display: inline-flex; align-items: center; gap: 7px;
  transition: background .15s, box-shadow .15s, transform .1s;
  letter-spacing: .025em;
  box-shadow: 0 1px 3px rgba(37,99,235,.4), 0 4px 12px rgba(37,99,235,.2);
  font-family: inherit;
}
button[type="submit"]:hover, .btn-primary:hover {
  background: var(--c-primary-hover);
  box-shadow: 0 2px 4px rgba(37,99,235,.4), 0 8px 20px rgba(37,99,235,.3);
  transform: translateY(-1px);
}
button[type="submit"]:active, .btn-primary:active {
  transform: translateY(0) scale(.99);
  box-shadow: 0 1px 3px rgba(37,99,235,.35);
}
button[type="submit"]:disabled { background: #93c5fd; box-shadow: none; cursor: not-allowed; transform: none; }

.btn-secondary {
  background: transparent;
  color: var(--c-text-secondary);
  border: 1.5px solid var(--c-border);
  border-radius: var(--radius-sm);
  padding: 10px 20px; font-size: 15px; font-weight: 600;
  cursor: pointer; font-family: inherit;
  transition: background .15s, border-color .15s, color .15s;
}
.btn-secondary:hover {
  background: var(--c-bg);
  border-color: var(--c-border-strong);
  color: var(--c-text);
}

/* ── Results ─────────────────────────────────────────────────────────────────── */
.vysledky { display: flex; flex-direction: column; gap: 14px; }
.vysledky.hidden { display: none; }

.result-section {
  background: var(--c-surface);
  border: 1px solid var(--c-border);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow);
  overflow: hidden;
}

/* Osoba + instituce výsledky: sekce jsou jen průhledné kontejnery,
   viditelné boxy tvoří samotný obsah (verdikt, zelený stav, seznam publikací).
   Tím zmizí "box v boxu". */
#vysledky > .result-section,
#vysledky-inst > .result-section {
  background: transparent;
  border: none;
  border-radius: 0;
  box-shadow: none;
  overflow: visible;
  margin-bottom: 16px;
}
#vysledky > .result-section > .section-header,
#vysledky-inst > .result-section > .section-header {
  padding: 0 2px 10px;
  border-bottom: none;
}
/* Samostatný box pro seznam publikací (třetí sekce) */
.vysledky-karta {
  background: var(--c-surface);
  border: 1px solid var(--c-border);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow);
  overflow: hidden;
}
/* Varianta s vnitřním paddingem pro boxy se seznamem článků */
.vysledky-karta-pad { padding: 18px 22px; }
.result-section.status-ok     { border-left: 3px solid var(--c-success); }
.result-section.status-riziko  { border-left: 3px solid var(--c-danger); }
.result-section.status-warn    { border-left: 3px solid var(--c-warn); }
.result-section.status-info    { border-left: 3px solid var(--c-info); }

.section-header {
  display: flex; align-items: center;
  justify-content: space-between;
  padding: 14px 20px;
  border-bottom: 1px solid var(--c-border);
  background: transparent;
}
.section-header h2 {
  font-size: 13px; font-weight: 600;
  color: var(--c-text-secondary);
  letter-spacing: .01em;
  display: flex; align-items: center; gap: 10px;
}
.section-num {
  display: inline-flex; align-items: center; justify-content: center;
  width: 20px; height: 20px;
  background: rgba(37,99,235,.1); border-radius: 50%;
  font-size: 10px; font-weight: 700; color: var(--c-primary);
  flex-shrink: 0; letter-spacing: 0;
}
.section-num-alt {
  background: rgba(100,116,139,.1); color: var(--c-muted);
  font-size: 13px; font-weight: 400;
}

.section-badge { display: none; }
/* OpenAlex sekce začínají rovnou obsahem (verdiktem) — hlavička je nadbytečná */
#sekce-inst-prace > .section-header { display: none; }

/* ═══ PROFIL OSOBY (akademický profil) ═══ */
.profil-hlavicka {
  display: flex; align-items: flex-start; gap: 20px;
  padding: 22px 26px;
  background: var(--c-surface);
  border: 1px solid var(--c-border);
  border-radius: var(--radius-lg);
  margin-bottom: 14px;
  flex-wrap: wrap;
}
.profil-hlavicka-pravy {
  display: flex; flex-direction: column; gap: 14px;
  align-items: flex-end;
  align-self: center;
}
.profil-hlavicka-akce {
  display: flex; gap: 8px; align-items: center;
  flex-wrap: wrap;
}
.profil-hlavicka-ai-btn {
  display: inline-flex; align-items: center; gap: 7px;
  background: var(--c-text); color: #fff;
  border: none;
  border-radius: var(--radius);
  padding: 9px 18px;
  font-size: 13px; font-weight: 700;
  cursor: pointer; font-family: inherit;
  transition: background .15s;
  letter-spacing: -.005em;
  white-space: nowrap;
}
.profil-hlavicka-ai-btn:hover { background: #0f172a; }

/* Export PDF — secondary tlačítko s menu volby rozsahu */
.profil-export-wrap { position: relative; }
.profil-export-btn {
  display: inline-flex; align-items: center; gap: 7px;
  background: var(--c-surface); color: var(--c-text);
  border: 1px solid var(--c-border);
  border-radius: var(--radius);
  padding: 8px 14px;
  font-size: 13px; font-weight: 600;
  cursor: pointer; font-family: inherit;
  transition: background .15s, border-color .15s;
  white-space: nowrap;
}
.profil-export-btn:hover { background: var(--c-bg); border-color: var(--c-border-strong); }
.profil-export-menu {
  position: absolute; top: calc(100% + 6px); right: 0; z-index: 30;
  min-width: 240px;
  background: var(--c-surface);
  border: 1px solid var(--c-border);
  border-radius: 8px;
  box-shadow: var(--shadow-lg);
  padding: 5px;
  display: flex; flex-direction: column; gap: 2px;
}
.profil-export-menu.hidden { display: none; }
.profil-export-menu button {
  background: none; border: none;
  text-align: left;
  padding: 9px 12px;
  border-radius: 5px;
  font-size: 13px; font-weight: 500;
  color: var(--c-text);
  cursor: pointer; font-family: inherit;
  transition: background .1s;
}
.profil-export-menu button:hover { background: var(--c-bg); }
@media (max-width: 900px) {
  .profil-hlavicka-pravy { align-items: flex-start; width: 100%; }
}
.profil-avatar {
  display: inline-flex; align-items: center; justify-content: center;
  width: 56px; height: 56px;
  border-radius: 50%;
  background: var(--c-navy, #0b1526);
  color: #fff;
  font-size: 19px; font-weight: 700;
  letter-spacing: .02em;
  flex-shrink: 0;
}
.profil-identita { flex: 1; min-width: 260px; }
.profil-jmeno {
  font-size: 26px; font-weight: 700;
  letter-spacing: -.02em;
  margin: 2px 0 4px;
  color: var(--c-text);
}
.profil-orcid-radek { margin-bottom: 10px; }
.profil-orcid {
  font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace;
  font-size: 12px;
  color: var(--c-text-secondary);
  text-decoration: none;
  border-bottom: 1px solid var(--c-border-strong);
  padding-bottom: 1px;
}
.profil-orcid:hover { color: var(--c-text); border-bottom-color: var(--c-text); }
.profil-orcid-chybi { border-bottom: none; color: var(--c-muted); }
.profil-afilace-radek {
  font-size: 14.5px; font-weight: 600;
  color: var(--c-text);
  margin-bottom: 4px;
}
.profil-afilace-minule {
  font-size: 12.5px;
  color: var(--c-text-secondary);
  line-height: 1.55;
}
.profil-afilace-roky {
  font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace;
  font-size: 11px;
  color: var(--c-muted);
}
.profil-afilace-role {
  font-weight: 400;
  color: var(--c-text-secondary);
}
.profil-afilace-zdroj {
  font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace;
  font-size: 10px;
  letter-spacing: .04em;
  color: var(--c-muted);
  margin-top: 6px;
  text-transform: uppercase;
}
.profil-afilace-zdroj--orcid {
  color: #047857;
}
.profil-staty {
  display: flex; gap: 0;
  margin: 0; padding: 0;
  align-self: center;
}
.profil-stat {
  display: flex; flex-direction: column; gap: 2px;
  padding: 0 22px;
  border-left: 1px solid var(--c-border);
}
.profil-stat:first-child { border-left: none; }
.profil-stat dt {
  font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace;
  font-size: 10.5px; font-weight: 500;
  text-transform: uppercase; letter-spacing: .08em;
  color: var(--c-muted);
  order: 2;
}
.profil-stat dd {
  font-size: 22px; font-weight: 700;
  color: var(--c-text);
  letter-spacing: -.02em;
  font-feature-settings: "tnum" 1;
  font-variant-numeric: tabular-nums;
  margin: 0;
  order: 1;
}
@media (max-width: 900px) {
  .profil-staty { width: 100%; margin-top: 8px; }
  .profil-stat { padding: 0 16px; }
  .profil-stat:first-child { padding-left: 0; }
}

/* Sankční banner */
.sankce-banner {
  display: flex; flex-direction: column;
  border: 1px solid var(--c-border);
  border-radius: var(--radius-lg);
  margin-bottom: 16px;
  overflow: hidden;
}
.sankce-banner-hlava {
  display: flex; align-items: center; gap: 12px;
  width: 100%;
  padding: 14px 18px;
  background: transparent;
  border: none;
  cursor: pointer;
  font-family: inherit;
  text-align: left;
}
.sankce-banner--ok, .sankce-banner--warn {
  flex-direction: row;
  align-items: center;
  gap: 12px;
  padding: 12px 18px;
}
.sankce-banner-ikona {
  display: inline-flex; align-items: center;
  flex-shrink: 0;
}
.sankce-banner-text {
  font-size: 13.5px;
  color: var(--c-text-secondary);
  line-height: 1.5;
  flex: 1;
}
.sankce-banner-text strong { color: var(--c-text); }
.sankce-banner-sipka {
  color: var(--c-muted);
  font-size: 12px;
  transition: transform .15s;
}
.sankce-banner--otevreny .sankce-banner-sipka { transform: rotate(180deg); }
.sankce-banner-detail {
  padding: 0 18px 18px;
  border-top: 1px solid var(--c-border);
  padding-top: 14px;
}
.sankce-banner-detail.hidden { display: none; }

.sankce-banner--riziko {
  border-color: #fecaca;
  background: #fff8f8;
}
.sankce-banner--riziko .sankce-banner-ikona { color: #b91c1c; }
.sankce-banner--riziko .sankce-banner-text strong { color: #b91c1c; }

.sankce-banner--ok {
  border-color: #a7f3d0;
  background: #f7fdfb;
}
.sankce-banner--ok .sankce-banner-ikona { color: #047857; }

.sankce-banner--warn {
  border-color: var(--c-warn-border, #fcd34d);
  background: #fffdf5;
}
.sankce-banner--warn .sankce-banner-ikona { color: #b45309; }

.sankce-banner--info { border-color: var(--c-border); }
.sankce-banner--info .sankce-banner-ikona {
  color: var(--c-muted);
  font-style: italic; font-weight: 700; font-size: 13px;
}

/* Risk strip */
.risk-strip {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
  border: 1px solid var(--c-border);
  border-radius: var(--radius-lg);
  background: var(--c-surface);
  margin-bottom: 20px;
  overflow: hidden;
}
@media (max-width: 800px) { .risk-strip { grid-template-columns: repeat(2, 1fr); } }
.risk-strip-item {
  display: flex; flex-direction: column; gap: 2px;
  padding: 13px 18px;
  background: transparent;
  border: none;
  border-left: 1px solid var(--c-border);
  font-family: inherit;
  text-align: left;
  cursor: default;
}
.risk-strip-item:first-child { border-left: none; }
.risk-strip-item--aktivni { cursor: pointer; }
.risk-strip-item--aktivni:hover { background: var(--c-bg); }
.risk-strip-cislo {
  font-size: 24px; font-weight: 700;
  letter-spacing: -.02em;
  color: var(--c-muted);
  font-feature-settings: "tnum" 1;
  font-variant-numeric: tabular-nums;
}
.risk-strip-item--aktivni .risk-strip-cislo { color: #b91c1c; }
.risk-strip-label {
  font-size: 12.5px; font-weight: 600;
  color: var(--c-text);
  letter-spacing: -.005em;
}
.risk-strip-sub {
  font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace;
  font-size: 10.5px;
  color: var(--c-muted);
  letter-spacing: .02em;
}

/* Disambiguace kandidátů */
.kandidat-hlavicka { margin: 4px 0 18px; }
.kandidat-hlavicka h3 {
  font-size: 20px; font-weight: 700; letter-spacing: -.015em;
  margin: 0 0 6px; color: var(--c-text);
}
.kandidat-hlavicka p {
  font-size: 13.5px; color: var(--c-text-secondary);
  margin: 0; line-height: 1.55;
}
.kandidat-seznam {
  display: flex; flex-direction: column; gap: 10px;
  margin-bottom: 24px;
}
.kandidat-karta {
  display: flex; align-items: center; gap: 16px;
  padding: 16px 20px;
  background: var(--c-surface);
  border: 1px solid var(--c-border);
  border-radius: var(--radius-lg);
  cursor: pointer;
  font-family: inherit;
  text-align: left;
  transition: border-color .12s, background .12s;
  width: 100%;
}
.kandidat-karta:hover { border-color: var(--c-border-strong); background: var(--c-bg); }
.kandidat-avatar {
  display: inline-flex; align-items: center; justify-content: center;
  width: 40px; height: 40px;
  border-radius: 50%;
  background: var(--c-bg);
  border: 1px solid var(--c-border);
  color: var(--c-text-secondary);
  font-size: 14px; font-weight: 700;
  flex-shrink: 0;
}
.kandidat-obsah { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.kandidat-jmeno {
  font-size: 15.5px; font-weight: 700;
  color: var(--c-text);
  letter-spacing: -.01em;
  display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
}
.kandidat-orcid-badge {
  font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace;
  font-size: 10px; font-weight: 500;
  color: #047857;
  border: 1px solid #a7f3d0;
  background: #ecfdf5;
  padding: 1px 7px;
  border-radius: 3px;
  letter-spacing: .03em;
}
.kandidat-meta { font-size: 13px; color: var(--c-text-secondary); }
.kandidat-bez-inst { color: var(--c-muted); font-style: italic; }
.kandidat-meta-radek2 {
  display: flex; gap: 14px; flex-wrap: wrap;
  align-items: baseline;
}
.kandidat-pocty {
  font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace;
  font-size: 11px; color: var(--c-muted);
  font-feature-settings: "tnum" 1;
}
.kandidat-temata {
  font-size: 11.5px; color: var(--c-muted);
}
.kandidat-sipka {
  color: var(--c-muted);
  font-size: 16px;
  flex-shrink: 0;
  transition: transform .12s, color .12s;
}
.kandidat-karta:hover .kandidat-sipka { transform: translateX(3px); color: var(--c-text); }

/* Inline AI sekce v profilu — kompaktní horizontální card pod risk stripem */
.profil-ai-sekce {
  margin: 0 0 20px;
  padding: 18px 22px;
  background: var(--c-surface);
  border: 1px solid var(--c-border);
  border-left: 3px solid var(--c-navy, #0b1526);
  border-radius: var(--radius-lg);
}
.profil-ai-rada {
  display: flex; gap: 28px;
  align-items: stretch;
  flex-wrap: wrap;
}
.profil-ai-uvod {
  flex: 1; min-width: 260px;
}
.profil-ai-uvod h3 {
  font-size: 15.5px; font-weight: 700; letter-spacing: -.012em;
  margin: 0 0 5px; color: var(--c-text);
}
.profil-ai-uvod p {
  font-size: 12.5px; color: var(--c-text-secondary);
  line-height: 1.5;
  margin: 0;
  max-width: 52ch;
}
.profil-ai-vstup {
  display: flex; gap: 10px;
  align-items: flex-end;
  flex: 1.2; min-width: 320px;
}
.profil-ai-vstup textarea {
  flex: 1;
  padding: 8px 11px;
  border: 1px solid var(--c-border);
  border-radius: 6px;
  font-family: inherit;
  font-size: 12.5px;
  line-height: 1.45;
  resize: vertical;
  min-height: 44px;
  background: var(--c-bg);
  transition: border-color .12s, box-shadow .12s, background .12s;
}
.profil-ai-vstup textarea:focus {
  outline: none;
  border-color: var(--c-text);
  background: var(--c-surface);
  box-shadow: 0 0 0 3px rgba(15,23,42,.08);
}
.profil-ai-btn {
  display: inline-flex; align-items: center; gap: 8px;
  background: var(--c-text); color: #fff;
  border: none;
  border-radius: var(--radius);
  padding: 11px 20px;
  font-size: 13px; font-weight: 700;
  cursor: pointer; font-family: inherit;
  transition: background .15s;
  letter-spacing: -.005em;
  white-space: nowrap;
  flex-shrink: 0;
}
.profil-ai-btn:hover:not([disabled]) { background: #0f172a; }
.profil-ai-btn[disabled] { opacity: .55; cursor: default; }
.profil-ai-progress {
  margin-top: 20px;
  max-width: 560px;
}
.profil-ai-vysledek { margin-top: 20px; }
.profil-ai-vysledek-meta {
  display: flex; align-items: center; justify-content: space-between;
  gap: 12px; flex-wrap: wrap;
  padding-bottom: 12px;
  margin-bottom: 16px;
  border-bottom: 1px solid var(--c-border);
  font-size: 12.5px;
  color: var(--c-muted);
  font-feature-settings: "tnum" 1;
}
.profil-ai-akce { display: inline-flex; gap: 8px; }

/* Prázdný box po mega-filtru — vysvětlení + rychlá akce */
.mega-prazdna-note {
  display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
  padding: 13px 18px;
  font-size: 13px;
  color: var(--c-text-secondary);
}
.mega-prazdna-zobrazit {
  background: none; border: none;
  color: var(--c-text);
  font-size: 13px; font-weight: 600;
  cursor: pointer; font-family: inherit;
  padding: 0;
  border-bottom: 1.5px solid var(--c-text);
  transition: color .12s, border-color .12s;
}
.mega-prazdna-zobrazit:hover {
  color: var(--c-text-secondary);
  border-bottom-color: var(--c-text-secondary);
}

/* Ostatní spolupráce — sbalený details blok */
.ostatni-spoluprace-details {
  margin-top: 22px;
}
.ostatni-spoluprace-summary {
  display: flex; align-items: baseline; gap: 8px;
  cursor: pointer;
  list-style: none;
  font-size: 15px; font-weight: 700;
  letter-spacing: -.01em;
  color: var(--c-text);
  padding: 10px 0;
  user-select: none;
}
.ostatni-spoluprace-summary::-webkit-details-marker { display: none; }
.ostatni-spoluprace-summary:hover { color: var(--c-text-secondary); }
.ostatni-spoluprace-pocet {
  font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace;
  font-size: 12px; font-weight: 500;
  color: var(--c-muted);
  font-feature-settings: "tnum" 1;
}
.ostatni-spoluprace-sipka {
  font-size: 11px;
  color: var(--c-muted);
  transition: transform .15s;
}
.ostatni-spoluprace-details[open] .ostatni-spoluprace-sipka { transform: rotate(180deg); }
.ostatni-spoluprace-details > .vysledky-karta { margin-top: 4px; }
.badge-ok     { background: rgba(22,163,74,.1);   color: #15803d; }
.badge-riziko { background: rgba(220,38,38,.1);   color: #b91c1c; }
.badge-warn   { background: rgba(217,119,6,.1);   color: #b45309; }
.badge-info   { background: rgba(3,105,161,.1);   color: #0369a1; }

/* ── Spinner ─────────────────────────────────────────────────────────────────── */
.spinner-wrap {
  display: flex; align-items: center; gap: 12px;
  padding: 32px 20px; color: var(--c-muted); font-size: 13.5px;
}
.spinner {
  width: 16px; height: 16px;
  border: 2px solid var(--c-border);
  border-top-color: var(--c-primary);
  border-radius: 50%;
  animation: spin .7s linear infinite; flex-shrink: 0;
}
@keyframes spin { to { transform: rotate(360deg); } }

/* ── Alerts ──────────────────────────────────────────────────────────────────── */
.alert {
  display: flex; align-items: flex-start;
  gap: 12px; padding: 15px 18px; font-size: 13.5px;
  border-radius: 12px;
  border: 1px solid transparent;
  box-shadow: 0 1px 2px rgba(15,23,42,.04);
  margin: 12px 0;
}
.alert-icon {
  flex-shrink: 0; width: 28px; height: 28px;
  border-radius: 8px;
  display: flex; align-items: center; justify-content: center;
  line-height: 1;
}
.alert-icon svg { width: 15px; height: 15px; }
.alert-body { flex: 1; min-width: 0; padding-top: 2px; }
.alert-body strong { display: block; margin-bottom: 2px; font-size: 14px; font-weight: 650; }
.alert-body-row {
  margin-top: 7px;
  display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px;
}
.alert-body-item {
  display: inline-flex; align-items: center; gap: 5px; flex-wrap: nowrap;
}
.alert-body-dot { color: #cbd5e1; flex-shrink: 0; }

.alert-riziko {
  background: #fef2f2; color: #991b1b;
  border-color: #fecdd3;
}
.alert-riziko .alert-icon { background: #fee2e2; color: #dc2626; }
.alert-ok {
  background: #f0fdf4; color: #166534;
  border-color: #bbf7d0;
}
.alert-ok .alert-icon { background: #dcfce7; color: #16a34a; }
.alert-warn {
  background: #fffbeb; color: #92400e;
  border-color: #fde68a;
}
.alert-warn .alert-icon { background: #fef3c7; color: #d97706; }
.alert-info {
  background: #f0f9ff; color: #075985;
  border-color: #bae6fd;
}
.alert-info .alert-icon { background: #e0f2fe; color: #0284c7; }

/* ── Verdiktová karta — čistý jednotný styl ───────────────────────────────── */
/* Bílé pozadí, jeden tenký barevný akcent vlevo, jinak vše neutrální.
   Jednotná typografie: tělo 13px / var(--c-text), štítky 11px uppercase / muted. */
.verdikt {
  margin: 0 0 16px;
  background: var(--c-surface);
  border: 1px solid var(--c-border);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow);
  padding: 16px 18px;
}

.verdikt-hlavni { display: flex; align-items: center; gap: 10px; }
.verdikt-ikona {
  flex-shrink: 0; width: 26px; height: 26px;
  border-radius: 7px;
  display: flex; align-items: center; justify-content: center;
}
.verdikt-ikona svg { width: 14px; height: 14px; }
.verdikt-riziko .verdikt-ikona { background: #fee2e2; color: #dc2626; }
.verdikt-ok     .verdikt-ikona { background: #dcfce7; color: #16a34a; }
.verdikt-nadpis {
  font-size: 13.5px; font-weight: 600;
  color: var(--c-text);
}

/* Sekce uvnitř karty — štítek vlevo, obsah vpravo, jednotná typografie */
.vsekce {
  display: grid;
  grid-template-columns: 190px 1fr;
  gap: 16px;
  padding: 14px 0;
  border-top: 1px solid var(--c-border);
  margin-top: 14px;
}
.vsekce:first-of-type { margin-top: 14px; }
.vsekce + .vsekce { margin-top: 0; }
@media (max-width: 640px) {
  .vsekce { grid-template-columns: 1fr; gap: 6px; }
}
.vsekce-label {
  font-size: 11px; font-weight: 700;
  letter-spacing: .04em; text-transform: uppercase;
  color: var(--c-muted);
  padding-top: 2px;
}
.vsekce-obsah {
  font-size: 12.5px; color: var(--c-text);
  min-width: 0; line-height: 1.5;
}

/* Článkové řádky — jednotné napříč Sedm synů i sankcemi */
.dukaz-seznam { list-style: none; margin: 0; padding: 0; }
.dukaz-clanek {
  position: relative;
  padding-left: 18px;
  margin-bottom: 9px;
  font-size: 14px; line-height: 1.5;
  color: var(--c-text);
}
.dukaz-clanek:last-child { margin-bottom: 0; }
.dukaz-clanek::before {
  content: "→"; position: absolute; left: 0;
  color: var(--c-muted); font-weight: 600;
}
.dukaz-clanek a { color: var(--c-primary); text-decoration: none; font-weight: 600; }
.dukaz-clanek a:hover { text-decoration: underline; }
.dukaz-rok {
  display: inline-block;
  font-size: 12px; font-weight: 600;
  background: #eef2f7;
  color: var(--c-text-secondary);
  padding: 1px 7px; border-radius: 999px;
  margin: 0 3px;
}
/* Chip kritické technologie EU — jemně zvýrazněný (jantarový), s custom tooltipem */
.obor-chip {
  position: relative;
  display: inline-block;
  font-size: 11.5px; font-weight: 600;
  background: #fef3c7; color: #92400e;
  border: 1px solid #fde68a;
  padding: 1px 8px; border-radius: 999px;
  margin: 0 3px;
  cursor: help;
  white-space: nowrap;
}
/* Custom tooltip bublina (tmavá, zaoblená, okamžitá) */
.obor-chip::after {
  content: attr(data-tip-nadpis) "\A" attr(data-tip);
  position: absolute;
  bottom: calc(100% + 9px);
  left: 50%;
  transform: translateX(-50%) translateY(4px);
  width: 280px; max-width: 280px;
  background: #1e293b; color: #f1f5f9;
  padding: 11px 13px;
  border-radius: 10px;
  font-size: 12px; font-weight: 400; font-style: normal;
  line-height: 1.5; white-space: pre-line; text-align: left;
  letter-spacing: 0;
  box-shadow: 0 8px 24px rgba(15,23,42,.25);
  opacity: 0; visibility: hidden;
  transition: opacity .12s ease, transform .12s ease;
  z-index: 200; pointer-events: none;
}
/* první řádek (nadpis) tučně přes ::after není možné — zvýrazníme barvou jantaru */
.obor-chip::before {
  content: "";
  position: absolute;
  bottom: calc(100% + 3px);
  left: 50%;
  transform: translateX(-50%) translateY(4px);
  border: 6px solid transparent;
  border-top-color: #1e293b;
  opacity: 0; visibility: hidden;
  transition: opacity .12s ease, transform .12s ease;
  z-index: 201; pointer-events: none;
}
.obor-chip:hover::after, .obor-chip:hover::before {
  opacity: 1; visibility: visible;
  transform: translateX(-50%) translateY(0);
}
/* Boxy se seznamem článků nesmí ořezávat tooltip */
.vysledky-karta-pad { overflow: visible; }
.dukaz-meta { color: var(--c-muted); font-size: 13px; }
.dukaz-zdroj { color: var(--c-muted); font-size: 12.5px; font-style: italic; }
.dukaz-zdroj .vlajka-img { display: inline-block; vertical-align: middle; margin-right: 1px; }
.dukaz-sankce-link {
  background: none; border: none; padding: 0; font-family: inherit;
  color: #b91c1c; font-size: 12.5px; font-style: italic;
  cursor: pointer; border-bottom: 1px dashed rgba(185,28,28,.4);
  transition: color .12s, border-color .12s;
}
.dukaz-sankce-link:hover { color: #7f1d1d; border-bottom-color: #7f1d1d; }
.dukaz-sankce-ikona { font-style: normal; font-size: 11px; opacity: .8; margin-left: 1px; }
.dukaz-vice { font-size: 13px; padding-left: 18px; margin-top: 6px; list-style: none; }
.dukaz-skryty { display: none; }
.dukaz-vice-btn {
  background: none; border: none; padding: 0; cursor: pointer;
  font: inherit; font-style: italic;
  color: var(--c-primary);
}
.dukaz-vice-btn:hover { text-decoration: underline; }

/* Skupina (instituce Sedm synů) uvnitř sekce */
.dukaz-skupina { margin-bottom: 16px; }
.dukaz-skupina:last-child { margin-bottom: 0; }
.dukaz-skupina-nazev { font-size: 14px; font-weight: 700; color: var(--c-text); margin-bottom: 7px; }
.dukaz-skupina-en { font-size: 12.5px; font-weight: 400; color: var(--c-muted); }
.dukaz-vlastni {
  display: inline-flex; align-items: center; gap: 6px;
  margin-top: 6px;
  font-size: 12px; color: var(--c-text-secondary);
}
.dukaz-vlastni svg { width: 13px; height: 13px; color: #dc2626; flex-shrink: 0; }

/* Odkazové tlačítko (O Sedmi synech) — decentní, ne křiklavé */
.dukaz-odkaz-btn {
  display: inline-block;
  margin-top: 10px;
  background: var(--c-surface, #f8fafc); color: var(--c-text-secondary);
  border: 1px solid var(--c-border); border-radius: 8px;
  padding: 6px 12px;
  font-size: 12px; font-weight: 600;
  cursor: pointer;
  transition: background .12s, border-color .12s;
}
.dukaz-odkaz-btn:hover { background: #fff; border-color: var(--c-border-strong, #cbd5e1); }

/* Nadpis sekce nad samostatným boxem */
.seznam-sekce-nadpis {
  margin: 18px 4px 10px;
  font-size: 15px; font-weight: 700;
  letter-spacing: -.01em;
  color: var(--c-text);
}
.seznam-sekce-nadpis:first-of-type { margin-top: 4px; }

/* Neutrální chip pro rizikové země — žádná křiklavá červená */
.chip-radek { display: flex; flex-wrap: wrap; gap: 6px; }
.chip-zeme-n {
  display: inline-block;
  font-size: 12px; font-weight: 500;
  background: var(--c-surface, #f1f5f9);
  color: var(--c-text);
  border: 1px solid var(--c-border);
  padding: 2px 10px; border-radius: 999px;
}

/* ── Tables ──────────────────────────────────────────────────────────────────── */
.tbl-wrap { overflow-x: auto; padding: 0 20px 20px; }
table { width: 100%; border-collapse: collapse; font-size: 13px; }
th {
  text-align: left; padding: 8px 10px;
  font-size: 11px; font-weight: 600; color: var(--c-muted);
  letter-spacing: .02em;
  border-bottom: 1px solid var(--c-border);
  background: transparent; white-space: nowrap;
}
td { padding: 10px 10px; border-bottom: 1px solid var(--c-border); vertical-align: top; }
tr:last-child td { border-bottom: none; }
tr.row-riziko td:first-child { box-shadow: inset 3px 0 0 #ef4444; }
tr.row-riziko { background: rgba(254,242,242,.6); }
tr.row-riziko:hover { background: rgba(254,226,226,.7); }
tr.row-warn td:first-child { box-shadow: inset 3px 0 0 #f59e0b; }
tr.row-warn { background: rgba(255,251,235,.6); }
tr.row-warn:hover { background: rgba(254,243,199,.7); }
tr.row-pep { opacity: .65; }
tr.row-pep:hover { opacity: 1; background: var(--c-bg); }
tr.row-normal:hover { background: #fafbfc; }
tbody tr:hover { transition: background .1s; }

/* ── Chips ───────────────────────────────────────────────────────────────────── */
.chip {
  display: inline-block; font-size: 11.5px;
  padding: 3px 9px; border-radius: 999px;
  margin: 1px 2px 1px 0; white-space: nowrap; font-weight: 500;
  letter-spacing: 0.01em;
}
.chip-riziko     { background: rgba(220,38,38,.1);  color: #b91c1c; display: inline-flex; align-items: center; gap: 4px; }
.chip-mega       { background: rgba(100,116,139,.08); color: #64748b; font-style: italic; }
.chip-pep        { background: rgba(71,85,105,.08);  color: #475569; }
.chip-ds         { background: rgba(71,85,105,.08);   color: #475569; font-size: 11px; }
.chip-zeme       { background: #f1f5f9; color: #374151; font-size: 11px; font-weight: 500; border: 1px solid #e2e8f0; display: inline-flex; align-items: center; gap: 5px; }
.chip-zeme .vlajka-img { border-radius: 2px; }
.chip-zeme-riziko { background: rgba(220,38,38,.07); color: #9b1c1c; border-color: rgba(220,38,38,.15); }
.chip-zeme-sm    { font-size: 10px; padding: 1px 6px; }
.chip-skore-high { background: rgba(220,38,38,.12);  color: #b91c1c; font-weight: 700; font-size: 12px; }
.chip-skore-med  { background: rgba(217,119,6,.12);  color: #b45309; font-weight: 700; font-size: 12px; }
.chip-skore-low  { background: rgba(100,116,139,.1); color: #64748b; font-size: 12px; }
.chip-program    { background: rgba(180,83,9,.09);   color: #92400e; font-size: 11px; }
.chip-sankce-btn { border: none; cursor: pointer; font-family: inherit; transition: background .12s; }
.chip-sankce-btn:hover { background: rgba(220,38,38,.2); }

.sankce-props-cell {
  background: #fafafa;
  padding: 8px 16px 10px 32px;
  border-top: 1px dashed #e2e8f0;
}
.sankce-props-poznamka {
  margin-top: 5px;
  font-size: 11px;
  color: #718096;
  font-style: italic;
  max-width: 700px;
}
.sankce-radek-otevreny td { background: #fff8f0; }
.sankce-toggle-td {
  width: 28px;
  text-align: center;
}
.sankce-toggle-ikona {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 20px; height: 20px;
  border-radius: 50%;
  background: #edf2f7;
  font-size: 8px;
  color: #718096;
  transition: background 0.15s, color 0.15s, transform 0.2s;
  cursor: pointer;
}
.sankce-radek-klikaci:hover .sankce-toggle-ikona {
  background: #e2e8f0;
  color: #2d3748;
}
.sankce-radek-otevreny .sankce-toggle-ikona {
  background: #fed7aa;
  color: #c05621;
}

.link-ext { color: var(--c-primary); text-decoration: none; font-weight: 600; }
.link-ext:hover { text-decoration: underline; }

/* ── Riziko items ────────────────────────────────────────────────────────────── */
.riziko-lista { padding: 0 20px 20px; }
.riziko-item {
  display: flex; align-items: center; gap: 10px;
  padding: 7px 12px 7px 14px;
  border-radius: var(--radius-sm);
  margin-bottom: 5px; font-size: 13px;
  background: rgba(254,242,242,.6); color: #7f1d1d;
  border-left: 2px solid #ef4444;
}
.riziko-item .ri-name { font-weight: 600; flex: 1; }

/* ── Spoluautoři ─────────────────────────────────────────────────────────────── */
.td-autori { min-width: 200px; }
/* Sjednocení velikosti titulu publikace v tabulce (osoba box 4) na 14px */
#osoba-prace-lista td .link-ext { font-size: 14px; }
.coauthor-block {
  display: inline-flex; flex-direction: column; vertical-align: top;
  margin: 3px 5px 5px 0; padding: 7px 11px;
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 1px 3px rgba(15,23,42,.08), 0 0 0 1px rgba(15,23,42,.06);
  max-width: 230px;
  transition: box-shadow .15s;
  overflow: visible;
}
.coauthor-block:hover {
  box-shadow: 0 3px 8px rgba(15,23,42,.11), 0 0 0 1px rgba(15,23,42,.08);
}
.coauthor-riziko-block {
  background: #fff;
  border-left: 3px solid #ef4444;
  padding-left: 9px;
  box-shadow: 0 1px 3px rgba(220,38,38,.1), 0 0 0 1px rgba(220,38,38,.1);
}
.coauthor-riziko-block:hover {
  box-shadow: 0 3px 8px rgba(220,38,38,.14), 0 0 0 1px rgba(220,38,38,.14);
}
.coauthor-jmeno { font-size: 12.5px; font-weight: 600; color: var(--c-text); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.coauthor-riziko-block .coauthor-jmeno { color: #b91c1c; }
.coauthor-inst { display: flex; flex-wrap: wrap; gap: 3px; margin-top: 4px; }
.inst-name { font-size: 11px; color: var(--c-muted); display: flex; align-items: center; gap: 4px; flex-wrap: wrap; }
.inst-sankce-btn {
  position: relative;
  display: inline-flex; align-items: center; justify-content: center;
  width: 20px; height: 20px; border-radius: 50%;
  color: #dc2626;
  background: rgba(220,38,38,.09);
  border: 1px solid rgba(220,38,38,.2);
  text-decoration: none; flex-shrink: 0;
  transition: background .12s, border-color .12s;
}
.inst-sankce-btn:hover { background: rgba(220,38,38,.18); border-color: rgba(220,38,38,.4); }
.ikona-varovani { flex-shrink: 0; }
.coauthor-more { font-size: 11px; color: var(--c-muted); margin: 4px 0 0 2px; display: inline-block; }

/* ── Sankce popover ──────────────────────────────────────────────────────────── */
.sankce-popover {
  position: fixed;
  z-index: 600;
  background: #fff;
  border-radius: 12px;
  box-shadow: 0 8px 32px rgba(15,23,42,.18), 0 0 0 1px rgba(15,23,42,.07);
  padding: 16px 18px 14px;
  min-width: 280px; max-width: 380px;
  font-size: 13px;
  animation: popoverIn .15s ease;
}
@keyframes popoverIn {
  from { opacity: 0; transform: translateY(6px) scale(.97); }
  to   { opacity: 1; transform: translateY(0) scale(1); }
}
.sankce-popover-close {
  position: absolute; top: 10px; right: 12px;
  background: none; border: none; cursor: pointer;
  font-size: 18px; line-height: 1; color: var(--c-muted);
  padding: 0 4px;
}
.sankce-popover-close:hover { color: var(--c-text); }
.sankce-popover-nazev {
  font-size: 13.5px; font-weight: 700; color: var(--c-text);
  margin-bottom: 10px; padding-right: 20px; line-height: 1.4;
}
.sankce-popover-radky { display: flex; flex-direction: column; gap: 6px; }
.sankce-popover-radek { display: flex; flex-direction: column; gap: 2px; }
.sankce-popover-label {
  font-size: 10px; font-weight: 600; letter-spacing: .06em;
  text-transform: uppercase; color: var(--c-muted);
}
.sankce-popover-hodnota { font-size: 12.5px; color: var(--c-text); line-height: 1.45; }
.sankce-popover-footer {
  margin-top: 12px; padding-top: 10px;
  border-top: 1px solid var(--c-border);
  display: flex; gap: 8px; align-items: center; flex-wrap: wrap;
}
.sankce-popover-link {
  font-size: 11.5px; color: var(--c-primary); text-decoration: none; font-weight: 500;
}
.sankce-popover-link:hover { text-decoration: underline; }
.sankce-popover-skore {
  margin-left: auto; font-size: 11px; color: var(--c-muted);
}

/* ── PEP toggle ──────────────────────────────────────────────────────────────── */
.pep-toggle-wrap { padding: 8px 20px 16px; }
.pep-toggle-btn {
  background: none; border: none; outline: none;
  padding: 2px 6px;
  font-size: 12px; font-weight: 500; color: var(--c-text-secondary);
  cursor: pointer; font-family: inherit;
  transition: color .15s, background .15s;
  display: inline-flex; align-items: center; gap: 4px;
  border-radius: var(--radius-sm);
}
.pep-toggle-btn:hover { color: var(--c-text); background: rgba(0,0,0,.05); }
.pep-detail { margin-top: 10px; }

/* ── Autocomplete ────────────────────────────────────────────────────────────── */
.autocomplete-wrap { position: relative; }
.autocomplete-list {
  position: absolute; top: calc(100% + 4px); left: 0; right: 0;
  background: var(--c-surface);
  border: 1.5px solid var(--c-border);
  border-radius: var(--radius); box-shadow: var(--shadow-md);
  list-style: none; z-index: 50;
  max-height: 280px; overflow-y: auto;
}
.autocomplete-list li {
  padding: 10px 14px; cursor: pointer; font-size: 14px;
  border-bottom: 1px solid var(--c-border);
  display: flex; align-items: baseline; gap: 8px;
}
.autocomplete-list li:last-child { border-bottom: none; }
.autocomplete-list li:hover, .autocomplete-list li.active { background: var(--c-primary-light); }
.autocomplete-list .ac-name { flex: 1; font-weight: 600; }
.autocomplete-list .ac-meta { font-size: 11px; color: var(--c-muted); white-space: nowrap; }

/* ── Instituce info bar ──────────────────────────────────────────────────────── */
.inst-info-bar {
  display: flex; align-items: center; gap: 10px;
  padding: 14px 20px;
  border-bottom: 1px solid var(--c-border);
  font-size: 14px; font-weight: 600; flex-wrap: wrap;
}

/* ── Filter bar ──────────────────────────────────────────────────────────────── */
.filter-bar {
  display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
  padding: 10px 20px 11px;
  border-bottom: 1px solid var(--c-border);
  font-size: 13px; color: var(--c-muted);
}
.filter-bar label { font-weight: 500; color: var(--c-text-secondary); }
.filter-bar select {
  width: auto;
  font-size: 13px; padding: 5px 10px;
  border: 1px solid var(--c-border); border-radius: var(--radius-sm);
  background: var(--c-surface); color: var(--c-text);
  cursor: pointer; font-family: inherit;
  transition: border-color .15s;
}
.filter-bar select:focus { outline: none; border-color: var(--c-primary); box-shadow: 0 0 0 3px rgba(37,99,235,.08); }
.filter-info { font-size: 12px; color: var(--c-muted); }

/* ── Publikace instituce (flex-list) ─────────────────────────────────────────── */
.prace-lista { padding: 0 20px 16px; }
.prace-radek {
  padding: 14px 0;
  border-bottom: 1px solid var(--c-border);
}
.prace-radek:last-child { border-bottom: none; }
.prace-radek-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 20px;
  font-size: 14px; /* sjednocení velikosti titulu publikace (jinak by dědil 16px z body) */
}
.prace-radek-meta {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-shrink: 0;
  flex-wrap: wrap;
  justify-content: flex-end;
  padding-top: 2px;
}
.prace-rok {
  font-size: 12px;
  color: var(--c-muted);
  white-space: nowrap;
  min-width: 36px;
  text-align: right;
}
.prace-autori-detail {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px dashed var(--c-border);
}
.prace-autori-detail.hidden { display: none !important; }

/* ── Modal ───────────────────────────────────────────────────────────────────── */
.modal {
  position: fixed; inset: 0;
  background: rgba(11,21,38,.6);
  backdrop-filter: blur(6px);
  display: flex; align-items: center; justify-content: center; z-index: 200;
}
.modal.hidden { display: none; }
.modal-box {
  background: var(--c-surface); border-radius: var(--radius-lg);
  padding: 32px; max-width: 440px; width: 90%;
  box-shadow: var(--shadow-lg); border: 1px solid var(--c-border);
  max-height: calc(100vh - 48px); overflow-y: auto;
}
.modal-box h3 { font-size: 17px; font-weight: 700; margin-bottom: 10px; letter-spacing: -.02em; }
.modal-box p  { font-size: 14px; color: var(--c-muted); margin-bottom: 20px; line-height: 1.65; }
.modal-actions { display: flex; gap: 10px; justify-content: flex-end; margin-top: 20px; }
.progress-wrap { margin-bottom: 8px; }
.progress-bar  { background: var(--c-border); border-radius: 4px; height: 5px; overflow: hidden; margin-bottom: 8px; }
.progress-fill { height: 100%; background: var(--c-primary); border-radius: 4px; width: 0%; transition: width .3s; }
#progress-text { font-size: 12.5px; color: var(--c-muted); }

/* ── Vytvořit report (Deep Research CTA v tabs row) ────────────────────────── */
.btn-vytvorit-report {
  background: linear-gradient(135deg, #7c3aed, #2563eb);
  border: none; color: #fff;
  cursor: pointer; height: 34px; border-radius: var(--radius-sm);
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 13px; font-weight: 600; font-family: inherit;
  padding: 0 16px; gap: 7px; flex-shrink: 0; white-space: nowrap;
  box-shadow: 0 1px 3px rgba(124,58,237,.3), 0 2px 8px rgba(37,99,235,.18);
  transition: transform .12s, box-shadow .15s, filter .15s;
}
.btn-vytvorit-report:hover {
  filter: brightness(1.08);
  box-shadow: 0 2px 6px rgba(124,58,237,.4), 0 4px 14px rgba(37,99,235,.25);
  transform: translateY(-1px);
}
.btn-vytvorit-report-ikona { flex-shrink: 0; }

/* ── Header ikona Nastavení ────────────────────────────────────────────────── */
.btn-header-icon {
  background: transparent; border: none;
  color: rgba(255,255,255,.65);
  cursor: pointer; padding: 0;
  width: 32px; height: 32px; border-radius: var(--radius-sm);
  display: inline-flex; align-items: center; justify-content: center;
  flex-shrink: 0;
  transition: color .15s, background .15s;
}
.btn-header-icon:hover { color: #fff; background: rgba(255,255,255,.08); }

/* ── Nastavení ────────────────────────────────────────────────────────────────── */

.nastaveni-sekce { margin-bottom: 24px; }
.nastaveni-sekce:last-child { margin-bottom: 0; }
.nastaveni-label {
  display: block; font-size: 12px; font-weight: 600;
  color: var(--c-text-secondary); letter-spacing: 0;
  margin-bottom: 8px;
}
.nastaveni-popis { font-size: 12px; color: var(--c-muted); margin-bottom: 10px; line-height: 1.5; }

/* ── Editor rizikových zemí ───────────────────────────────────────────────────── */
.zeme-details {
  border: 1px solid var(--c-border);
  border-radius: var(--radius);
  overflow: visible;
  background: var(--c-surface);
}
.zeme-summary {
  padding: 10px 14px; cursor: pointer;
  font-size: 13px; font-weight: 500; color: var(--c-text-secondary);
  display: flex; align-items: center; gap: 8px; list-style: none;
  user-select: none;
}
.zeme-summary::-webkit-details-marker { display: none; }
.zeme-summary::before {
  content: '›'; font-size: 15px; font-weight: 400; color: var(--c-muted);
  transition: transform .2s; flex-shrink: 0; line-height: 1;
}
details[open] > .zeme-summary::before { transform: rotate(90deg); display: inline-block; }
.zeme-summary-preview { display: flex; flex-wrap: wrap; gap: 4px; }

.zeme-editor-wrap { padding: 14px; border-top: 1px solid var(--c-border); }
.zeme-chips { display: flex; flex-wrap: wrap; gap: 5px; margin-bottom: 10px; min-height: 28px; }
.chip-removable { display: inline-flex; align-items: center; gap: 3px; padding-right: 5px; }
.chip-remove-btn {
  background: none; border: none; cursor: pointer;
  color: inherit; font-size: 14px; line-height: 1;
  padding: 0 1px; opacity: .65; font-family: inherit;
}
.chip-remove-btn:hover { opacity: 1; }
.chip-zeme-kod { font-size: 10px; opacity: .6; }
.zeme-add-row { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; }
.zeme-add-input {
  width: 180px !important; padding: 6px 10px !important; font-size: 13px !important;
}
.btn-sm { padding: 6px 12px !important; font-size: 12px !important; }

/* ── Moje instituce – autor karty ────────────────────────────────────────────── */
.autori-lista { padding: 0 20px 16px; }
.autor-radek {
  border-bottom: 1px solid var(--c-border);
  margin-bottom: 0;
}
.autor-radek:last-child { border-bottom: none; }
.autor-radek-header {
  display: flex; align-items: center; justify-content: space-between;
  gap: 10px; flex-wrap: wrap;
  padding: 12px 0;
}
.autor-jmeno { font-weight: 600; font-size: 14px; flex: 1; min-width: 0; }
.autor-radek-prace { padding: 0 0 12px 0; border-top: none; }
.autor-prace-item { padding: 7px 0; border-bottom: 1px solid var(--c-border); }
.autor-prace-item:last-child { border-bottom: none; }

.moje-inst-ulozena-info {
  margin-top: 6px;
  display: inline-flex; align-items: center; gap: 5px;
  font-size: 12px; font-weight: 500;
  color: var(--c-success);
}

/* ── Footer (Julius-style 4-column grid) ─────────────────────────────────── */
.nf-section {
  margin-top: 64px;
  padding: 56px 48px 32px;
  border-top: 1px solid var(--c-border);
}
@media (max-width: 768px) { .nf-section { padding: 40px 24px 24px; } }

.nf-grid {
  max-width: 1280px;
  margin: 0 auto 32px;
  display: grid;
  grid-template-columns: 1.6fr 1fr 1fr;
  gap: 64px;
}
@media (max-width: 900px) {
  .nf-grid { grid-template-columns: 1fr 1fr; gap: 32px; }
  .nf-brand { grid-column: 1 / -1; max-width: 560px; }
}
@media (max-width: 540px) {
  .nf-grid { grid-template-columns: 1fr; }
}

.nf-brand {
  display: flex; flex-direction: column;
  gap: 16px;
  max-width: 380px;
}
.nf-brand-name {
  font-size: 24px; font-weight: 800;
  color: var(--c-primary);
  letter-spacing: -.03em;
  line-height: 1;
}
.nf-brand-popis {
  font-size: 13.5px; color: var(--c-text-secondary);
  line-height: 1.7; margin: 0;
}
.nf-badge {
  display: inline-flex; align-items: center;
  gap: 7px;
  background: var(--c-surface);
  border: 1px solid var(--c-border);
  color: var(--c-text-secondary);
  padding: 6px 12px;
  border-radius: 20px;
  font-size: 12.5px; font-weight: 500;
  width: fit-content;
}
.nf-badge svg { color: var(--c-muted); }
.nf-kontakt {
  font-size: 13px; color: var(--c-text);
  text-decoration: underline;
  text-underline-offset: 3px;
  text-decoration-color: var(--c-border-strong);
  width: fit-content;
  transition: color .12s, text-decoration-color .12s;
}
.nf-kontakt:hover {
  color: var(--c-primary);
  text-decoration-color: currentColor;
}

.nf-col {
  display: flex; flex-direction: column;
  gap: 13px;
}
.nf-titulek {
  font-size: 14px; font-weight: 700;
  color: var(--c-text);
  margin: 0 0 10px;
  letter-spacing: -.01em;
}
.nf-link {
  font-size: 13.5px;
  color: var(--c-text-secondary);
  text-decoration: none;
  transition: color .12s;
  display: inline-flex; align-items: center;
  gap: 8px;
  width: fit-content;
}
.nf-link:hover { color: var(--c-text); }
.nf-mini-badge {
  background: linear-gradient(135deg, #7c3aed, #2563eb);
  color: #fff;
  font-size: 9.5px; font-weight: 700;
  padding: 2px 7px;
  border-radius: 10px;
  letter-spacing: .05em;
  text-transform: uppercase;
  line-height: 1.4;
}

.nf-spodek {
  max-width: 1280px; margin: 0 auto;
  padding-top: 24px;
  border-top: 1px solid var(--c-border);
}
.nf-copy {
  font-size: 12px; color: var(--c-muted);
}

/* ── Sankční DB karty ────────────────────────────────────────────────────────── */
.db-karty { display: flex; flex-direction: column; gap: 8px; }
.db-karta {
  border: 1px solid var(--c-border);
  border-radius: var(--radius);
  padding: 14px 16px;
  cursor: pointer;
  transition: border-color .15s, box-shadow .15s;
}
.db-karta:hover { border-color: var(--c-border-strong); box-shadow: var(--shadow-sm); }
.db-karta-aktivni { border-color: var(--c-primary); box-shadow: 0 0 0 3px rgba(37,99,235,.08); }
.db-karta-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; margin-bottom: 6px; }
.db-karta-nazev { font-size: 14px; font-weight: 600; color: var(--c-text); }
.db-karta-popis { font-size: 12px; color: var(--c-muted); margin-top: 2px; line-height: 1.5; }
.db-karta-stav { font-size: 12px; color: var(--c-text-secondary); margin-bottom: 6px; display: flex; align-items: center; gap: 6px; }
.db-radio-wrap { flex-shrink: 0; margin-top: 2px; }
.db-radio-wrap input { width: 16px; height: 16px; cursor: pointer; accent-color: var(--c-primary); }
.db-karta-btn { margin-top: 8px; }
.db-free-zdroje { display: flex; flex-wrap: wrap; gap: 5px; margin-bottom: 8px; }
.db-zdroj-chip {
  display: inline-flex; align-items: center; gap: 4px;
  background: rgba(71,85,105,.07);
  border-radius: 999px; padding: 3px 9px;
  font-size: 11px; font-weight: 500; color: var(--c-text-secondary);
}
.db-zdroj-nazev { font-weight: 400; color: var(--c-muted); }

/* ── Bulk prověření ──────────────────────────────────────────────────────────── */

/* Přepínač typu dávky (Osoby / Instituce) */
.bulk-typ-prepinac {
  display: inline-flex; gap: 2px;
  background: var(--c-bg);
  padding: 3px; border-radius: 9px;
  margin-bottom: 18px;
}
.bulk-typ-btn {
  background: transparent; border: 1px solid transparent;
  border-radius: 7px; padding: 7px 20px;
  font-size: 13.5px; font-weight: 600;
  color: var(--c-text-secondary); cursor: pointer;
  transition: background .15s, color .15s, border-color .15s;
  font-family: inherit;
}
.bulk-typ-btn:hover { color: var(--c-text); }
.bulk-typ-btn.active {
  background: var(--c-surface);
  color: var(--c-text);
  border-color: var(--c-border);
}

/* Řádek souhrn + export */
.bulk-triage-listy {
  display: flex; gap: 14px;
  align-items: flex-start;
  margin-bottom: 22px;
  flex-wrap: wrap;
}
.bulk-triage-listy .bulk-triage-souhrn { margin-bottom: 0; flex: 1; min-width: 380px; }
.bulk-export-wrap { margin-top: 6px; }

/* Triage souhrn — 4 počty */
.bulk-triage-souhrn {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
  border: 1px solid var(--c-border);
  border-radius: var(--radius-lg);
  background: var(--c-surface);
  margin-bottom: 22px;
  overflow: hidden;
}
@media (max-width: 640px) { .bulk-triage-souhrn { grid-template-columns: repeat(2, 1fr); } }
.bulk-triage-stat {
  padding: 14px 18px;
  display: flex; flex-direction: column; gap: 2px;
}
.bulk-triage-stat + .bulk-triage-stat { border-left: 1px solid var(--c-border); }
@media (max-width: 640px) {
  .bulk-triage-stat:nth-child(2n+1) { border-left: none; }
  .bulk-triage-stat:nth-child(n+3) { border-top: 1px solid var(--c-border); }
}
.bulk-triage-stat b {
  font-size: 24px; font-weight: 700;
  letter-spacing: -.02em;
  font-feature-settings: "tnum" 1;
  color: var(--c-text-secondary);
}
.bulk-triage-stat span {
  font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace;
  font-size: 10.5px; text-transform: uppercase; letter-spacing: .08em;
  color: var(--c-muted);
}
.bulk-triage-stat--riziko b { color: #b91c1c; }
.bulk-triage-stat--overit b { color: #b45309; }
.bulk-triage-stat--ciste b { color: #047857; }

/* Triage skupiny */
.bulk-triage-skupina { margin-bottom: 24px; }
.bulk-triage-nadpis {
  display: flex; align-items: baseline; gap: 10px;
  font-size: 15px; font-weight: 700; letter-spacing: -.01em;
  color: var(--c-text);
  margin: 0 0 10px;
  cursor: default;
}
details.bulk-triage-skupina > summary.bulk-triage-nadpis {
  cursor: pointer;
  list-style: none;
  user-select: none;
}
details.bulk-triage-skupina > summary.bulk-triage-nadpis::-webkit-details-marker { display: none; }
details.bulk-triage-skupina > summary.bulk-triage-nadpis::after {
  content: "▸";
  font-size: 12px; color: var(--c-muted);
  transition: transform .15s;
}
details.bulk-triage-skupina[open] > summary.bulk-triage-nadpis::after {
  transform: rotate(90deg);
}
.bulk-triage-pocet {
  font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace;
  font-size: 12px; font-weight: 500;
  color: var(--c-muted);
  font-feature-settings: "tnum" 1;
}
.bulk-triage-seznam {
  display: flex; flex-direction: column; gap: 8px;
}

/* Triage řádek */
.bulk-triage-radek {
  background: var(--c-surface);
  border: 1px solid var(--c-border);
  border-radius: var(--radius);
  padding: 12px 16px;
}
.bulk-triage-radek--riziko { border-left: 3px solid #dc2626; }
.bulk-triage-radek--overit { border-left: 3px solid #f59e0b; }
.bulk-triage-hlavni {
  display: flex; align-items: center; gap: 14px;
  flex-wrap: wrap;
}
.bulk-triage-info { min-width: 180px; flex: 1; }
.bulk-triage-jmeno {
  font-size: 14.5px; font-weight: 600; letter-spacing: -.005em;
  color: var(--c-text);
}
.bulk-triage-podtitulek {
  font-size: 12px; color: var(--c-muted);
  margin-top: 1px;
}
.bulk-triage-chips {
  display: flex; gap: 5px; flex-wrap: wrap;
  align-items: center;
}
.bulk-chip {
  display: inline-flex; align-items: center; gap: 5px;
  font-size: 11.5px; font-weight: 600;
  padding: 3px 9px;
  border-radius: 3px;
  border: 1px solid transparent;
  white-space: nowrap;
}
.bulk-chip--riziko { background: #fef2f2; color: #b91c1c; border-color: #fecaca; }
.bulk-chip--warn { background: #fffbeb; color: #b45309; border-color: #fde68a; }
.bulk-chip--zeme { background: transparent; color: var(--c-text-secondary); border-color: var(--c-border); }
.bulk-chip--ok { background: transparent; color: #047857; border-color: transparent; }
.bulk-chip--muted { background: transparent; color: var(--c-muted); border-color: transparent; font-weight: 500; }

.bulk-triage-profil-btn {
  display: inline-flex; align-items: center; gap: 6px;
  background: transparent; color: var(--c-text);
  border: 1px solid var(--c-border);
  border-radius: var(--radius);
  padding: 6px 13px;
  font-size: 12.5px; font-weight: 600;
  cursor: pointer; font-family: inherit;
  transition: background .12s, border-color .12s;
  white-space: nowrap;
  margin-left: auto;
}
.bulk-triage-profil-btn:hover { background: var(--c-bg); border-color: var(--c-border-strong); }

/* Rozbalovací detail signálů v řádku */
.bulk-radek-detail { margin-top: 10px; }
.bulk-radek-detail summary {
  font-size: 12px; font-weight: 600;
  color: var(--c-text-secondary);
  cursor: pointer;
  user-select: none;
}
.bulk-radek-detail summary:hover { color: var(--c-text); }
.bulk-detail-blok {
  margin-top: 8px;
  padding: 10px 12px;
  background: var(--c-bg);
  border-radius: 5px;
  font-size: 12.5px;
}
.bulk-detail-blok strong {
  display: block;
  font-size: 11px; text-transform: uppercase; letter-spacing: .06em;
  color: var(--c-muted);
  margin-bottom: 6px;
}
.bulk-detail-radek-item {
  padding: 3px 0;
  line-height: 1.5;
  color: var(--c-text-secondary);
}

.bulk-drop-area {
  border: 2px dashed var(--c-border-strong);
  border-radius: var(--radius);
  background: var(--c-bg);
  padding: 28px 20px;
  text-align: center;
  cursor: pointer;
  transition: border-color .15s, background .15s;
  margin-bottom: 16px;
}
.bulk-drop-area:hover, .bulk-drop-active {
  border-color: var(--c-primary);
  background: var(--c-primary-light);
}
.bulk-drop-icon { font-size: 28px; margin-bottom: 8px; color: var(--c-muted); display: flex; justify-content: center; }
.bulk-drop-text { font-size: 14px; color: var(--c-text-secondary); margin-bottom: 4px; }
.bulk-drop-link {
  color: var(--c-primary); font-weight: 600; cursor: pointer; text-decoration: underline;
}
.bulk-drop-hint { font-size: 12px; color: var(--c-muted); }
.bulk-drop-hint code { background: var(--c-border); padding: 1px 5px; border-radius: 3px; font-size: 11px; }

.bulk-or {
  text-align: center; color: var(--c-muted); font-size: 12px; font-weight: 400;
  margin: 12px 0; display: flex; align-items: center; gap: 10px;
}
.bulk-or::before, .bulk-or::after {
  content: ''; flex: 1; height: 1px; background: var(--c-border);
}
.bulk-textarea {
  width: 100%; border: 1.5px solid var(--c-border); border-radius: var(--radius-sm);
  padding: 10px 13px; font-size: 14px; color: var(--c-text);
  background: var(--c-surface); font-family: inherit; resize: vertical;
  transition: border-color .15s, box-shadow .15s; line-height: 1.6;
}
.bulk-textarea:focus {
  outline: none; border-color: var(--c-primary);
  box-shadow: 0 0 0 3px rgba(37,99,235,.1);
}
.bulk-progress-wrap { padding: 20px 20px 16px; }
.bulk-progress-info {
  display: flex; justify-content: space-between; align-items: center;
  font-size: 13px; color: var(--c-text-secondary); margin-bottom: 8px;
}
.bulk-radek-klikaci { cursor: pointer; }
.bulk-radek-klikaci:hover td { filter: brightness(.97); }
.bulk-toggle-cell { width: 28px; text-align: center; }
.bulk-toggle { font-size: 10px; color: var(--c-muted); transition: transform .15s; }
.bulk-detail { padding: 16px 20px; background: #fafbfc; border-top: 1px solid var(--c-border); display: flex; flex-wrap: wrap; gap: 20px; }
.bulk-detail-sekce { flex: 1; min-width: 260px; }
.bulk-detail-sekce > strong { font-size: 12px; font-weight: 600; color: var(--c-text-secondary); }

.bulk-souhrn {
  display: flex; gap: 20px; padding: 14px 20px;
  border-bottom: 1px solid var(--c-border); flex-wrap: wrap;
}
.bulk-souhrn-item { font-size: 14px; display: inline-flex; align-items: center; gap: 5px; }

.bulk-sankce-bunka {
  display: flex; flex-direction: column; gap: 4px;
  align-items: flex-start;
}
.bulk-sankce-jmeno {
  font-size: 12.5px; color: var(--c-text);
  display: inline-flex; align-items: center; gap: 6px; flex-wrap: wrap;
  line-height: 1.35;
}
.bulk-sankce-jmeno strong { font-weight: 600; }
.bulk-sankce-skore {
  font-size: 10.5px; font-weight: 600; color: var(--c-danger);
  background: rgba(220,38,38,.08); padding: 1px 6px; border-radius: 999px;
  margin-left: 2px;
}
.bulk-sankce-dalsi {
  font-size: 11.5px; color: var(--c-muted); font-style: italic;
}

.bulk-spol-bunka {
  display: flex; flex-direction: column; gap: 4px;
  align-items: flex-start;
}
.bulk-spol-jmeno {
  font-size: 12.5px; color: var(--c-text); line-height: 1.35;
}
.bulk-spol-jmeno strong { font-weight: 600; }
.bulk-spol-dalsi {
  font-size: 11.5px; color: var(--c-muted); font-style: italic;
}

.chip-neutralni {
  background: rgba(100,116,139,.1); color: #475569;
}

/* Bulk – dvě podsekce výsledků */
.bulk-sub-section + .bulk-sub-section {
  margin-top: 28px;
  padding-top: 28px;
  border-top: 2px dashed var(--c-border);
}
.bulk-sub-header {
  display: flex; align-items: center; justify-content: space-between;
  flex-wrap: wrap; gap: 12px;
  padding: 14px 20px 12px;
}
.bulk-sub-nadpis {
  font-size: 15px; font-weight: 700; color: var(--c-text);
  margin: 0; display: flex; align-items: center; gap: 10px;
  letter-spacing: -.01em;
}
.bulk-sub-cislo {
  display: inline-flex; align-items: center; justify-content: center;
  width: 24px; height: 24px; border-radius: 50%;
  background: var(--c-primary); color: #fff;
  font-size: 12px; font-weight: 700;
}
.bulk-sub-souhrn {
  display: flex; gap: 18px; flex-wrap: wrap;
}

/* Info ikona vedle nadpisu sekce — tooltip s definicí */
.bulk-info-ikona {
  display: inline-flex; align-items: center; justify-content: center;
  width: 18px; height: 18px;
  margin-left: 8px;
  border-radius: 50%;
  background: var(--c-bg);
  color: var(--c-muted);
  font-size: 12px; font-weight: 600;
  cursor: help;
  border: 1px solid var(--c-border);
  vertical-align: middle;
  transition: background .12s, color .12s;
}
.bulk-info-ikona:hover, .bulk-info-ikona:focus {
  background: var(--c-primary-light);
  color: var(--c-primary);
  outline: none;
}

/* Popis pod hlavičkou bulk podsekce */
.bulk-sub-popis {
  font-size: 12.5px; color: var(--c-text-secondary);
  margin: 8px 0 12px;
  font-style: italic;
}
.bulk-toggle-mini {
  display: inline-block;
  font-size: 11px;
  color: var(--c-primary);
  background: var(--c-primary-light);
  padding: 1px 6px;
  border-radius: 4px;
  font-style: normal;
  margin: 0 2px;
}

/* Sankce vs riziková země — vizuální rozlišení v bulk */
.bulk-souhrn-sankce {
  color: #b91c1c;
  font-weight: 600;
}
.bulk-souhrn-zeme {
  color: #b45309;
  font-weight: 500;
}
.chip-sankce-bulk {
  background: #fef2f2;
  color: #991b1b;
  border: 1px solid #fecaca;
  display: inline-flex; align-items: center; gap: 3px;
  padding: 2px 8px;
  border-radius: 999px;
  font-weight: 700;
  letter-spacing: .02em;
}
.chip-sankce-bulk svg { width: 10px; height: 10px; }
.bulk-spol-sankce-mini {
  font-size: 10px; font-weight: 600; color: #991b1b;
  background: #fef2f2; padding: 1px 6px; border-radius: 4px;
  margin-left: 4px;
}
.bulk-detail-sankce {
  background: rgba(254,242,242,.5);
  border-left: 3px solid #dc2626;
  padding: 10px 14px;
  border-radius: 6px;
  margin-bottom: 12px;
}
.bulk-detail-popis {
  font-size: 12px; color: var(--c-text-secondary);
  margin: 4px 0 0;
  line-height: 1.5;
}

/* Checkbox styl pro formuláře */
.checkbox-radek {
  display: inline-flex; align-items: flex-start; gap: 9px;
  cursor: pointer; user-select: none;
  padding: 6px 0;
}
.checkbox-radek input[type="checkbox"] {
  width: 16px; height: 16px; flex-shrink: 0; margin-top: 1px;
  cursor: pointer; accent-color: var(--c-primary);
}
.checkbox-radek > span {
  font-size: 13.5px; color: var(--c-text); line-height: 1.45;
}
.checkbox-popis {
  display: block; font-size: 12px; color: var(--c-muted); font-weight: 400; margin-top: 2px;
}

/* Prověřit instituci – řádek bez rizika */
.prace-radek-norm {
  background: var(--c-surface) !important;
  opacity: .8;
}
.prace-radek-norm:hover { opacity: 1; }

/* Riziková publikace, která je zároveň mega spolupráce – nezakrýt filtrem */
.mega-rizikove {
  position: relative;
}
.mega-rizikove::before {
  content: '⚑ Zachováno přes filtr (mega spolupráce s rizikem)';
  display: block;
  font-size: 10.5px; font-weight: 600; letter-spacing: .03em;
  color: var(--c-warn);
  background: var(--c-warn-bg);
  padding: 2px 8px;
  border-bottom: 1px solid var(--c-warn-border);
}
tr.mega-rizikove::before {
  content: none;
}
tr.mega-rizikove td:first-child {
  border-left: 3px solid var(--c-warn);
}
tr.mega-rizikove td:first-child::before {
  content: '⚑ Mega spolupráce zachována přes filtr';
  display: block;
  font-size: 10px; font-weight: 600; letter-spacing: .03em;
  color: var(--c-warn);
  margin-bottom: 4px;
}

/* Moje instituce – ostatní výzkumníci */
.moje-inst-ostatni-blok {
  margin: 16px 20px 20px;
  padding: 18px 20px;
  background: var(--c-bg);
  border: 1px solid var(--c-border);
  border-radius: var(--radius);
}
.moje-inst-ostatni-nadpis {
  font-size: 13px; font-weight: 700; color: var(--c-text);
  margin: 0 0 14px;
  display: flex; align-items: center; gap: 8px;
  letter-spacing: -.01em;
}
.moje-inst-ostatni-nadpis svg { color: #16a34a; flex-shrink: 0; }
.moje-inst-ostatni-pocet {
  font-size: 11px; font-weight: 600; color: var(--c-muted);
  background: var(--c-surface); padding: 2px 9px; border-radius: 999px;
  border: 1px solid var(--c-border);
  margin-left: auto;
}
.moje-inst-ostatni-grid {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: 8px;
}
.moje-inst-ostatni-item {
  display: flex; align-items: center; justify-content: space-between; gap: 10px;
  padding: 8px 12px; background: var(--c-surface); border-radius: 6px;
  border: 1px solid var(--c-border);
}
.moje-inst-ostatni-jmeno {
  font-size: 12.5px; color: var(--c-text); text-decoration: none;
  font-weight: 500;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.moje-inst-ostatni-jmeno:hover { color: var(--c-primary); text-decoration: underline; }
.moje-inst-ostatni-prace {
  font-size: 11px; color: var(--c-muted); flex-shrink: 0;
}
.bulk-souhrn-riziko { color: var(--c-danger); }
.bulk-souhrn-warn   { color: var(--c-warn); }
.bulk-souhrn-ok     { color: var(--c-success); }

/* ── Auth – uživatelské menu v hlavičce ──────────────────────────────────────── */
.auth-anon { display: inline-flex; gap: 8px; }
.auth-user { position: relative; }
.auth-user.hidden, .auth-anon.hidden { display: none; }

.auth-user-btn {
  display: inline-flex; align-items: center; gap: 10px;
  background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.12);
  color: #fff; padding: 6px 12px 6px 6px; border-radius: 999px;
  cursor: pointer; font-family: inherit; font-size: 13px; font-weight: 500;
  transition: background .12s, border-color .12s;
}
.auth-user-btn:hover { background: rgba(255,255,255,.14); border-color: rgba(255,255,255,.2); }
.auth-user-avatar {
  width: 28px; height: 28px; border-radius: 50%;
  background: linear-gradient(135deg, #3b82f6, #8b5cf6);
  color: #fff; font-size: 11px; font-weight: 700;
  display: flex; align-items: center; justify-content: center;
  letter-spacing: -.01em;
}
.auth-user-jmeno { max-width: 140px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.auth-menu {
  position: absolute; top: calc(100% + 8px); right: 0;
  background: var(--c-surface); border: 1px solid var(--c-border);
  border-radius: 10px; box-shadow: 0 10px 30px rgba(0,0,0,.18);
  min-width: 240px; padding: 6px; z-index: 100;
}
.auth-menu-head {
  padding: 12px 14px 10px; border-bottom: 1px solid var(--c-border); margin-bottom: 6px;
}
.auth-menu-jmeno { display: block; font-size: 13px; font-weight: 600; color: var(--c-text); }
.auth-menu-email { display: block; font-size: 11.5px; color: var(--c-muted); margin-top: 2px; }
.auth-menu-item {
  width: 100%; text-align: left;
  background: none; border: none; padding: 9px 14px;
  font-size: 13px; color: var(--c-text); cursor: pointer; border-radius: 6px;
  font-family: inherit;
  display: inline-flex; align-items: center; gap: 10px;
}
.auth-menu-item:hover { background: var(--c-bg); }
.auth-menu-item svg { color: var(--c-text-secondary); flex-shrink: 0; }

/* Logout tlačítko vedle avataru (viditelné po přihlášení) */
.header-btn-logout {
  background: transparent;
  border: 1px solid rgba(255,255,255,.18);
  color: rgba(255,255,255,.85);
  border-radius: var(--radius-sm);
  padding: 6px 14px;
  font-size: 13px; font-weight: 500;
  font-family: inherit; cursor: pointer;
  flex-shrink: 0; white-space: nowrap;
  transition: background .15s, border-color .15s, color .15s;
}
.header-btn-logout:hover {
  background: rgba(255,255,255,.08);
  border-color: rgba(255,255,255,.35);
  color: #fff;
}
.header-btn-logout.hidden { display: none; }

/* Gear icon v headeru – schovat pro přihlášené (Nastavení je v dropdown) */
body.je-prihlasen .btn-header-icon-anon { display: none; }

/* ── Auth modál ──────────────────────────────────────────────────────────────── */
.auth-modal-box { max-width: 420px; padding: 32px 32px 26px !important; position: relative; }
.modal-close {
  position: absolute; top: 14px; right: 14px;
  background: rgba(15,23,42,.06);
  border: none;
  font-size: 22px; line-height: 1; font-weight: 400;
  color: var(--c-text-secondary);
  cursor: pointer;
  width: 36px; height: 36px;
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  transition: background .12s, color .12s, transform .12s;
  z-index: 10;
}
.modal-close:hover {
  background: var(--c-bg-strong, #e2e8f0);
  color: var(--c-text);
  transform: scale(1.05);
}

.auth-hlavicka { text-align: center; margin-bottom: 22px; }
.auth-logo {
  font-size: 18px; font-weight: 800; color: var(--c-navy);
  letter-spacing: -.03em; margin-bottom: 18px;
}
.auth-hlavicka h3 { font-size: 22px; font-weight: 700; color: var(--c-text); margin-bottom: 6px; letter-spacing: -.02em; }
.auth-podtitulek { font-size: 13px; color: var(--c-muted); }

.auth-form { display: flex; flex-direction: column; gap: 14px; }
.auth-field { display: flex; flex-direction: column; gap: 6px; }
.auth-field.hidden { display: none; }
.auth-field label {
  font-size: 12px; font-weight: 600; color: var(--c-text-secondary);
}
.auth-optional { font-weight: 400; color: var(--c-muted); }
.auth-field-hint { display: block; font-size: 11.5px; color: var(--c-muted); margin-top: 5px; line-height: 1.4; }

/* ── Deep Research – AI hloubková due diligence ──────────────────────────────── */
.btn-deep-research {
  display: inline-flex; align-items: center; gap: 6px;
  background: linear-gradient(135deg, #7c3aed 0%, #2563eb 100%);
  color: #fff;
  border: 1px solid rgba(255,255,255,.2);
  padding: 8px 14px; border-radius: 8px;
  font-size: 12.5px; font-weight: 600; cursor: pointer;
  font-family: inherit;
  transition: filter .12s, transform .12s;
  box-shadow: 0 2px 8px rgba(124,58,237,.3);
}
.btn-deep-research:hover {
  filter: brightness(1.1);
  transform: translateY(-1px);
}

/* Wrapper Deep Research jako tab sekce (předtím modal). */
.dr-section {
  max-width: 900px;
  margin: 0 auto;
  padding: 24px 28px 40px;
}
/* Segmentovaný přepínač typu analýzy (Instituci / Osobu) na začátku DR sekce. */
.dr-typ-prepinac {
  display: inline-flex; gap: 3px;
  padding: 4px;
  background: var(--c-bg);
  border: 1px solid var(--c-border);
  border-radius: 10px;
  margin-bottom: 22px;
}
.dr-typ-btn {
  background: none; border: none;
  padding: 8px 18px; border-radius: 7px;
  font-size: 13px; font-weight: 600;
  color: var(--c-muted); cursor: pointer; font-family: inherit;
  transition: background .12s, color .12s;
}
.dr-typ-btn:hover { color: var(--c-text); }
.dr-typ-btn.active {
  background: var(--c-surface); color: var(--c-text);
  box-shadow: 0 1px 2px rgba(0,0,0,.1);
}
.dr-modal-box {
  max-width: 760px !important;
  max-height: 92vh;
  padding: 28px 32px !important;
  position: relative;
  overflow-y: auto;
}
.dr-hlavicka {
  margin-bottom: 22px;
  padding-bottom: 16px;
  border-bottom: 1px solid var(--c-border);
}
.dr-hlavicka-badge {
  display: inline-block;
  background: linear-gradient(135deg, #7c3aed, #2563eb);
  color: #fff;
  font-size: 10.5px; font-weight: 700; letter-spacing: .12em;
  padding: 4px 10px; border-radius: 999px;
  margin-bottom: 12px;
}
.dr-hlavicka h3 {
  font-size: 22px; font-weight: 700; color: var(--c-text);
  letter-spacing: -.02em; margin-bottom: 6px;
}
.dr-hlavicka p {
  font-size: 13.5px; color: var(--c-muted); line-height: 1.6;
}

.dr-field {
  display: flex; flex-direction: column; gap: 6px;
  margin-bottom: 14px;
}
.dr-field label {
  font-size: 12.5px; font-weight: 600; color: var(--c-text-secondary);
}
.dr-field input,
.dr-field textarea {
  padding: 10px 12px;
  border: 1px solid var(--c-border);
  border-radius: 8px;
  font-family: inherit; font-size: 13.5px;
  color: var(--c-text);
  background: var(--c-surface);
  resize: vertical;
}
.dr-field input:focus,
.dr-field textarea:focus {
  outline: none;
  border-color: var(--c-primary);
  box-shadow: 0 0 0 3px rgba(37,99,235,.1);
}

.dr-info-box {
  background: linear-gradient(135deg, rgba(124,58,237,.06) 0%, rgba(37,99,235,.04) 100%);
  border: 1px solid rgba(124,58,237,.2);
  border-radius: 10px;
  padding: 14px 16px;
  margin-bottom: 16px;
  font-size: 13px;
  color: var(--c-text-secondary);
  line-height: 1.6;
}
.dr-info-box strong { color: var(--c-text); display: block; margin-bottom: 6px; font-weight: 600; }
.dr-info-box ul { margin: 0 0 8px 18px; padding: 0; }
.dr-info-box li { margin-bottom: 3px; }
.dr-info-cas {
  font-size: 11.5px; color: var(--c-muted);
  margin-top: 6px; padding-top: 6px;
  border-top: 1px dashed rgba(124,58,237,.2);
}
.dr-metodiky-info {
  background: rgba(255,255,255,.6);
  border: 1px solid var(--c-border);
  border-radius: 6px;
  padding: 8px 10px;
  margin: 8px 0 0;
  font-size: 12px; color: var(--c-text-secondary);
  line-height: 1.5;
}
.dr-metodiky-info.hidden { display: none; }
.dr-metodiky-info code {
  font-family: 'SFMono-Regular', Monaco, monospace;
  font-size: 11px;
  background: rgba(0,0,0,.05);
  padding: 1px 5px;
  border-radius: 3px;
  color: var(--c-text);
}

.dr-btn-spustit {
  width: 100%;
  background: linear-gradient(135deg, #7c3aed 0%, #2563eb 100%);
  color: #fff;
  border: none;
  padding: 12px;
  border-radius: 8px;
  font-size: 14px; font-weight: 600;
  cursor: pointer; font-family: inherit;
  transition: filter .12s;
  box-shadow: 0 4px 14px rgba(124,58,237,.3);
}
.dr-btn-spustit:hover { filter: brightness(1.1); }

/* Progress – seznam kroků */
.dr-progress-kroky {
  display: flex; flex-direction: column; gap: 10px;
  margin-bottom: 16px;
}
.dr-krok {
  display: flex; align-items: center; gap: 12px;
  padding: 12px 14px;
  background: var(--c-bg);
  border-radius: 8px;
  font-size: 13.5px;
  color: var(--c-muted);
  transition: all .15s;
}
.dr-krok-status {
  width: 18px; height: 18px; border-radius: 50%;
  background: var(--c-border);
  flex-shrink: 0;
  position: relative;
}
.dr-krok.aktivni {
  background: rgba(37,99,235,.06);
  color: var(--c-text);
  font-weight: 500;
}
.dr-krok.aktivni .dr-krok-status {
  background: var(--c-primary);
  animation: dr-spin 1s linear infinite;
}
.dr-krok.aktivni .dr-krok-status::after {
  content: '';
  position: absolute;
  top: 3px; left: 3px;
  width: 12px; height: 12px;
  border: 2px solid #fff;
  border-top-color: transparent;
  border-radius: 50%;
  animation: dr-spin-inner .8s linear infinite reverse;
}
@keyframes dr-spin { to { transform: rotate(360deg); } }
@keyframes dr-spin-inner { to { transform: rotate(360deg); } }
.dr-krok.hotovo {
  color: var(--c-text);
}
.dr-krok.hotovo .dr-krok-status {
  background: #22c55e;
}
.dr-krok.hotovo .dr-krok-status::after {
  content: '✓';
  position: absolute;
  inset: 0;
  display: flex; align-items: center; justify-content: center;
  color: #fff; font-size: 12px; font-weight: 700;
}
.dr-progress-popis {
  font-size: 12.5px; color: var(--c-muted);
  text-align: center;
  font-style: italic;
}

/* Výsledek */
.dr-vysledek-akce {
  display: flex; gap: 10px; margin-bottom: 18px;
  padding-bottom: 16px;
  border-bottom: 1px solid var(--c-border);
}
.dr-btn-tisk {
  background: var(--c-primary); color: #fff;
  border: none; padding: 10px 18px;
  border-radius: 8px;
  font-size: 13px; font-weight: 600; cursor: pointer;
  font-family: inherit;
}
.dr-btn-tisk:hover { background: var(--c-primary-hover); }
.dr-btn-word {
  background: #2b579a; color: #fff;
  border: none; padding: 10px 18px;
  border-radius: 8px;
  font-size: 13px; font-weight: 600; cursor: pointer;
  font-family: inherit;
}
.dr-btn-word:hover { background: #1f4480; }
.dr-btn-novy {
  background: var(--c-surface); color: var(--c-text);
  border: 1px solid var(--c-border);
  padding: 10px 18px;
  border-radius: 8px;
  font-size: 13px; font-weight: 600; cursor: pointer;
  font-family: inherit;
}
.dr-btn-novy:hover { background: var(--c-bg); }

.dr-report-obsah {
  flex: 1;
  overflow-y: auto;
  padding-right: 8px;
  font-size: 13.5px; line-height: 1.7;
  color: var(--c-text);
  max-height: 60vh;
}
.dr-report-obsah h2 {
  font-size: 18px; margin: 22px 0 10px;
  color: var(--c-text); font-weight: 700;
  letter-spacing: -.02em;
  padding-bottom: 4px;
  border-bottom: 1px solid var(--c-border);
}
.dr-report-obsah h3 {
  font-size: 15px; margin: 18px 0 8px;
  color: var(--c-text); font-weight: 600;
}
.dr-report-obsah h4 {
  font-size: 14px; margin: 14px 0 6px;
  color: var(--c-text-secondary); font-weight: 600;
}
.dr-report-obsah ul, .dr-report-obsah ol {
  margin: 0 0 12px 20px;
}
.dr-report-obsah li { margin-bottom: 3px; }
.dr-report-obsah a { color: var(--c-primary); }
.dr-report-obsah a.dr-citace-link {
  text-decoration: none;
  font-weight: 600;
  font-size: .92em;
  vertical-align: super;
  padding: 0 2px;
  border-radius: 3px;
  background: rgba(37, 99, 235, .08);
  color: var(--c-primary);
}
.dr-report-obsah a.dr-citace-link:hover {
  background: rgba(37, 99, 235, .18);
  text-decoration: underline;
}
.dr-report-obsah .dr-tabulka {
  width: 100%; border-collapse: collapse; margin: 12px 0;
  font-size: 12.5px;
}
.dr-report-obsah .dr-tabulka th {
  background: var(--c-text); color: #fff;
  text-align: left; padding: 8px 10px;
  font-size: 11px; font-weight: 600;
  text-transform: uppercase; letter-spacing: .04em;
}
.dr-report-obsah .dr-tabulka td {
  border: 1px solid var(--c-border);
  padding: 8px 10px; vertical-align: top;
}
.dr-report-obsah p { margin: 0 0 10px; }

/* ── Welcome modál po registraci ─────────────────────────────────────────────── */
.welcome-modal-box {
  max-width: 520px !important;
  padding: 36px 36px 28px !important;
}
.welcome-modal-hlavicka {
  text-align: center;
  margin-bottom: 22px;
}
.welcome-modal-ikona {
  width: 64px; height: 64px; border-radius: 50%;
  background: linear-gradient(135deg, #fbbf24 0%, #f59e0b 100%);
  color: #fff;
  display: flex; align-items: center; justify-content: center;
  margin: 0 auto 16px;
  box-shadow: 0 6px 20px rgba(245,158,11,.35);
  animation: welcome-pulz 2s ease-in-out infinite;
}
@keyframes welcome-pulz {
  0%, 100% { transform: scale(1); box-shadow: 0 6px 20px rgba(245,158,11,.35); }
  50% { transform: scale(1.05); box-shadow: 0 8px 28px rgba(245,158,11,.5); }
}
.welcome-modal-hlavicka h3 {
  font-size: 20px; font-weight: 700; color: var(--c-text);
  margin-bottom: 4px; letter-spacing: -.02em;
}
.welcome-modal-podtitulek {
  font-size: 13px; color: var(--c-muted);
}

.welcome-modal-instituce {
  background: var(--c-bg);
  border: 1px solid var(--c-border);
  border-radius: 8px;
  padding: 12px 16px;
  margin-bottom: 22px;
  display: flex; align-items: center; gap: 12px;
}
.welcome-modal-label {
  font-size: 9.5px; font-weight: 700; letter-spacing: .14em;
  color: var(--c-muted);
}
.welcome-modal-instituce > span:last-child {
  font-size: 14px; font-weight: 600; color: var(--c-text);
  flex: 1;
}

.welcome-modal-info {
  display: flex; flex-direction: column; gap: 12px;
  margin-bottom: 24px;
}
.welcome-info-item {
  display: flex; align-items: flex-start; gap: 12px;
  padding: 12px 14px;
  background: var(--c-bg);
  border-radius: 8px;
}
.welcome-info-ikona {
  width: 28px; height: 28px; border-radius: 7px;
  background: rgba(37,99,235,.1); color: var(--c-primary);
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
}
.welcome-info-item > div { display: flex; flex-direction: column; gap: 2px; flex: 1; }
.welcome-info-item strong { font-size: 13px; font-weight: 600; color: var(--c-text); }
.welcome-info-item span { font-size: 12px; color: var(--c-muted); line-height: 1.4; }

.welcome-modal-progress {
  margin-bottom: 18px;
}
.welcome-progress-text {
  font-size: 12.5px; color: var(--c-text-secondary);
  margin-bottom: 8px;
  font-weight: 500;
}

.welcome-modal-akce {
  text-align: center;
  padding-top: 18px;
  border-top: 1px solid var(--c-border);
}
.welcome-modal-akce.hidden { display: none; }
.welcome-vysledek-souhrn {
  margin-bottom: 16px;
}
.welcome-vysledek-cislo {
  font-size: 36px; font-weight: 800; color: var(--c-text);
  letter-spacing: -.04em; line-height: 1;
  display: inline-block;
}
.welcome-vysledek-popis {
  display: block; font-size: 13px; color: var(--c-muted);
  margin-top: 4px;
}
.welcome-btn-pokracovat {
  background: var(--c-primary); color: #fff; border: none;
  padding: 12px 28px; border-radius: 7px;
  font-size: 14px; font-weight: 600; cursor: pointer;
  font-family: inherit;
  transition: background .15s;
}
.welcome-btn-pokracovat:hover { background: var(--c-primary-hover); }
.auth-field input {
  padding: 10px 12px; border: 1px solid var(--c-border); border-radius: 7px;
  font-size: 14px; color: var(--c-text); background: var(--c-surface);
  font-family: inherit;
  transition: border-color .12s, box-shadow .12s;
}
.auth-field input:focus {
  outline: none; border-color: var(--c-primary);
  box-shadow: 0 0 0 3px rgba(37,99,235,.1);
}

.auth-chyba {
  background: var(--c-danger-bg); border: 1px solid var(--c-danger-border);
  color: var(--c-danger); font-size: 13px; padding: 10px 12px; border-radius: 7px;
}

.auth-submit {
  background: var(--c-primary); color: #fff; border: none;
  padding: 12px; border-radius: 7px;
  font-size: 14px; font-weight: 600; cursor: pointer;
  font-family: inherit; margin-top: 4px;
  transition: background .12s;
}
.auth-submit:hover { background: var(--c-primary-hover); }

.auth-prepnout {
  text-align: center; font-size: 13px; color: var(--c-muted);
  margin-top: 4px;
}
.auth-prepnout-btn {
  background: none; border: none; color: var(--c-primary);
  font-weight: 600; cursor: pointer; font-family: inherit; font-size: 13px;
  margin-left: 4px;
}
.auth-prepnout-btn:hover { text-decoration: underline; }

/* ── Premium welcome banner (po přihlášení) ──────────────────────────────────── */
.premium-welcome {
  background: linear-gradient(135deg, #0b1526 0%, #1e3a5f 100%);
  border-radius: var(--radius-lg);
  padding: 24px 28px;
  margin-bottom: 24px;
  position: relative;
  overflow: hidden;
  color: #fff;
}
.premium-welcome.hidden { display: none; }
.premium-welcome::before {
  content: '';
  position: absolute; inset: 0;
  background: radial-gradient(ellipse 80% 100% at 100% 0%, rgba(124,58,237,.25) 0%, transparent 60%);
  pointer-events: none;
}
.premium-welcome-stav {
  display: flex; align-items: center; gap: 14px;
  margin-bottom: 16px;
  position: relative;
}
.premium-welcome-znak {
  width: 42px; height: 42px; border-radius: 12px;
  background: linear-gradient(135deg, #fbbf24, #f59e0b);
  color: #fff;
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
  box-shadow: 0 4px 14px rgba(251,191,36,.3);
}
.premium-welcome-label {
  font-size: 10px; font-weight: 700; letter-spacing: .14em;
  color: #fbbf24;
}
.premium-welcome-titulek {
  font-size: 16px; font-weight: 700; color: #fff; margin-top: 2px;
  letter-spacing: -.01em;
}
.premium-welcome-funkce {
  display: flex; flex-wrap: wrap; gap: 18px;
  padding: 12px 0;
  border-top: 1px solid rgba(255,255,255,.1);
  border-bottom: 1px solid rgba(255,255,255,.1);
  margin-bottom: 14px;
  position: relative;
}
.welcome-funkce {
  display: inline-flex; align-items: center; gap: 7px;
  font-size: 12.5px; color: rgba(255,255,255,.7); font-weight: 500;
}
.welcome-dot {
  width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0;
}
.welcome-dot.dot-zelena { background: #22c55e; box-shadow: 0 0 8px rgba(34,197,94,.6); }
.welcome-dot.dot-modra { background: #60a5fa; box-shadow: 0 0 8px rgba(96,165,250,.6); }
.welcome-dot.dot-oranz { background: #fb923c; box-shadow: 0 0 8px rgba(251,146,60,.6); }
.welcome-dot.dot-fialova { background: #c084fc; box-shadow: 0 0 8px rgba(192,132,252,.7); }
.welcome-funkce-cta {
  background: rgba(192,132,252,.12);
  border: 1px solid rgba(192,132,252,.4);
  color: #fff !important; font-weight: 600;
  padding: 5px 12px; border-radius: 999px;
  cursor: pointer; font-family: inherit;
  transition: background .15s, border-color .15s;
}
.welcome-funkce-cta:hover {
  background: rgba(192,132,252,.22);
  border-color: rgba(192,132,252,.7);
}
.premium-welcome-napoveda {
  font-size: 13px; color: rgba(255,255,255,.75); line-height: 1.6;
  position: relative;
}
.premium-welcome-napoveda strong { color: #fff; font-weight: 600; }

/* ── Premium teaser ──────────────────────────────────────────────────────────── */
.premium-teaser {
  padding: 48px 40px;
  text-align: center;
  background: linear-gradient(180deg, #f8fafc 0%, var(--c-surface) 100%);
  border-radius: var(--radius-lg);
}
.premium-teaser.hidden { display: none; }
.premium-teaser-badge {
  display: inline-block;
  background: linear-gradient(135deg, #2563eb, #7c3aed);
  color: #fff; font-size: 11px; font-weight: 700;
  letter-spacing: .1em; padding: 5px 14px;
  border-radius: 999px; margin-bottom: 18px;
}
.premium-teaser-nadpis {
  font-size: 24px; font-weight: 800; color: var(--c-text);
  letter-spacing: -.02em; margin-bottom: 10px;
}
.premium-teaser-popis {
  font-size: 14px; color: var(--c-text-secondary); line-height: 1.7;
  max-width: 560px; margin: 0 auto 32px;
}
.premium-teaser-funkce {
  display: grid; grid-template-columns: 1fr 1fr; gap: 16px;
  max-width: 680px; margin: 0 auto 32px;
  text-align: left;
}
@media (max-width: 600px) { .premium-teaser-funkce { grid-template-columns: 1fr; } }

.premium-funkce-item {
  display: flex; gap: 14px; align-items: flex-start;
  background: var(--c-surface); border: 1px solid var(--c-border);
  border-radius: 10px; padding: 16px 18px;
}
.premium-funkce-ikona {
  flex-shrink: 0;
  width: 36px; height: 36px; border-radius: 9px;
  background: linear-gradient(135deg, rgba(37,99,235,.1), rgba(124,58,237,.1));
  color: var(--c-primary);
  display: flex; align-items: center; justify-content: center;
}
.premium-funkce-item > div { display: flex; flex-direction: column; gap: 3px; }
.premium-funkce-item strong { font-size: 13px; font-weight: 600; color: var(--c-text); }
.premium-funkce-item span { font-size: 12px; color: var(--c-muted); line-height: 1.5; }

.premium-teaser-bonus {
  display: flex; gap: 16px; align-items: center;
  max-width: 680px; margin: 0 auto 32px;
  padding: 18px 22px;
  background: linear-gradient(135deg, rgba(124,58,237,.08), rgba(37,99,235,.08));
  border: 1px solid rgba(124,58,237,.2);
  border-radius: 12px;
  text-align: left;
}
.premium-teaser-bonus-badge {
  flex-shrink: 0;
  background: linear-gradient(135deg, #7c3aed, #2563eb);
  color: #fff; font-size: 11px; font-weight: 700;
  letter-spacing: .06em; padding: 6px 12px;
  border-radius: 999px;
}
.premium-teaser-bonus-text { display: flex; flex-direction: column; gap: 4px; }
.premium-teaser-bonus-text strong { font-size: 13.5px; font-weight: 700; color: var(--c-text); }
.premium-teaser-bonus-text span { font-size: 12.5px; color: var(--c-text-secondary); line-height: 1.55; }

.premium-teaser-akce {
  display: flex; gap: 10px; justify-content: center; flex-wrap: wrap;
}
.premium-btn-primary {
  background: var(--c-primary); color: #fff; border: none;
  padding: 11px 24px; border-radius: 7px;
  font-size: 14px; font-weight: 600; cursor: pointer;
  font-family: inherit;
  transition: background .12s;
}
.premium-btn-primary:hover { background: var(--c-primary-hover); }
.premium-btn-secondary {
  background: var(--c-surface); color: var(--c-text);
  border: 1px solid var(--c-border);
  padding: 11px 24px; border-radius: 7px;
  font-size: 14px; font-weight: 600; cursor: pointer;
  font-family: inherit;
  transition: background .12s, border-color .12s;
}
.premium-btn-secondary:hover { background: var(--c-bg); border-color: var(--c-border-strong); }

/* ── Dashboard – Moje instituce (Anthropic-style refined) ────────────────────── */
#vysledky-moje-inst .section-header { display: none; }
#vysledky-moje-inst .result-section {
  border-left: none;
  background: #fafbfc;
  border-radius: 16px;
  border: 1px solid var(--c-border);
  box-shadow: none;
  overflow: visible;
}

/* Slim toolbar nad dashboardem – jen akce, žádný hero */
.dash-toolbar {
  display: flex; justify-content: flex-end;
  padding: 16px 24px 4px;
}
.dash-toolbar-akce {
  display: inline-flex; gap: 8px; flex-wrap: wrap;
}
.dash-toolbar-btn {
  display: inline-flex; align-items: center; gap: 6px;
  background: var(--c-surface); color: var(--c-text);
  border: 1px solid var(--c-border);
  padding: 7px 14px;
  border-radius: var(--radius);
  font-size: 13px; font-weight: 600;
  cursor: pointer; font-family: inherit;
  transition: background .15s, border-color .15s;
}
.dash-toolbar-btn:hover {
  background: var(--c-bg);
  border-color: var(--c-border-strong);
}
.dash-toolbar-btn-akcent {
  background: var(--c-text); color: #fff;
  border-color: var(--c-text);
}
.dash-toolbar-btn-akcent:hover {
  background: #0f172a; border-color: #0f172a;
}

/* Hero – elegantní tmavý header s lepší typografií */
.dash-hero {
  display: flex; justify-content: space-between; align-items: flex-start;
  gap: 20px; flex-wrap: wrap;
  padding: 32px 36px 30px;
  background: linear-gradient(135deg, #0a1424 0%, #15263d 100%);
  color: #fff;
  position: relative; overflow: hidden;
  border-radius: 16px 16px 0 0;
}
.dash-hero::before {
  content: '';
  position: absolute; inset: 0;
  background-image:
    radial-gradient(ellipse 70% 100% at 100% 100%, rgba(124,58,237,.18) 0%, transparent 70%),
    radial-gradient(circle at 1px 1px, rgba(255,255,255,.04) 1px, transparent 0);
  background-size: auto, 20px 20px;
  pointer-events: none;
}
.dash-hero-info { position: relative; flex: 1; min-width: 300px; }
.dash-hero-meta {
  display: flex; align-items: center; gap: 12px;
  margin-bottom: 14px;
}
.dash-hero-label {
  font-size: 10px; font-weight: 700; letter-spacing: .15em;
  color: rgba(255,255,255,.45);
}
.dash-hero-titulek {
  font-size: 28px; font-weight: 700; letter-spacing: -.025em;
  color: #fff; margin: 0 0 14px; line-height: 1.15;
}
.dash-hero-podtitulek {
  font-size: 13px; color: rgba(255,255,255,.55);
  display: flex; align-items: center; gap: 9px;
}
.dash-hero-podtitulek strong { color: rgba(255,255,255,.85); font-weight: 500; }
.dash-hero-monitor-dot {
  width: 7px; height: 7px; border-radius: 50%; background: #4ade80;
  box-shadow: 0 0 0 3px rgba(74,222,128,.18);
  animation: pulse-dot 2.4s infinite;
  flex-shrink: 0;
}
.dash-hero-akce {
  display: flex; gap: 6px; align-items: center; flex-shrink: 0;
  position: relative;
}
.dash-hero-akce .btn-prekontrolovat,
.dash-hero-akce .btn-export-pdf {
  background: rgba(255,255,255,.08); color: rgba(255,255,255,.92);
  border: 1px solid rgba(255,255,255,.12);
  backdrop-filter: blur(8px);
  padding: 8px 14px;
  font-size: 12.5px;
  border-radius: 8px;
}
.dash-hero-akce .btn-prekontrolovat:hover,
.dash-hero-akce .btn-export-pdf:hover {
  background: rgba(255,255,255,.14);
  border-color: rgba(255,255,255,.2);
  color: #fff;
}

/* KPI dlaždice – samostatné karty */
.dash-kpi-rada {
  display: grid; grid-template-columns: repeat(5, 1fr); gap: 12px;
  padding: 24px;
  background: #fafbfc;
}
.dash-kpi-rada-3 { grid-template-columns: repeat(3, 1fr); gap: 14px; }
@media (max-width: 1100px) { .dash-kpi-rada { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 700px) { .dash-kpi-rada,
                            .dash-kpi-rada-3 { grid-template-columns: 1fr; } }

.dash-kpi {
  background: var(--c-surface);
  border: 1px solid var(--c-border);
  border-radius: 12px;
  padding: 22px 24px;
  display: flex; flex-direction: column; gap: 14px;
  position: relative;
  transition: border-color .15s, box-shadow .15s, transform .15s;
  min-height: 130px;
}
.dash-kpi:hover {
  border-color: var(--c-border-strong);
  box-shadow: 0 1px 3px rgba(0,0,0,.04), 0 4px 12px rgba(0,0,0,.04);
  transform: translateY(-1px);
}
.dash-kpi-ikona {
  position: absolute; top: 18px; right: 18px;
  width: 38px; height: 38px; border-radius: 10px;
  background: #fff;
  color: #0f172a;
  border: 1px solid var(--c-border);
  display: flex; align-items: center; justify-content: center;
}
.dash-kpi-riziko { --accent: #dc2626; --accent-bg: rgba(220,38,38,.08); }
.dash-kpi-nove { --accent: #f59e0b; --accent-bg: rgba(245,158,11,.1); }
.dash-kpi-sankce { --accent: #b91c1c; --accent-bg: rgba(185,28,28,.08); }
.dash-kpi-neutral { --accent: #94a3b8; --accent-bg: rgba(148,163,184,.08); }

.dash-kpi-nove {
  background: linear-gradient(135deg, rgba(251,191,36,.05) 0%, var(--c-surface) 60%);
  border-color: rgba(245,158,11,.25);
}
.dash-kpi-sankce {
  background: linear-gradient(135deg, rgba(220,38,38,.04) 0%, var(--c-surface) 60%);
  border-color: rgba(185,28,28,.2);
}

.dash-kpi-hlavni {
  display: flex; flex-direction: column; gap: 6px;
  flex: 1;
}
.dash-kpi-cislo {
  font-size: 40px; font-weight: 700; letter-spacing: -.04em;
  color: var(--c-text); line-height: .95;
  font-feature-settings: "tnum" 1;
}
.dash-kpi-nove .dash-kpi-cislo { color: #b45309; }
.dash-kpi-sankce .dash-kpi-cislo { color: #991b1b; }
.dash-kpi-popis {
  font-size: 13.5px; color: var(--c-text-secondary);
  line-height: 1.4; font-weight: 500;
  max-width: calc(100% - 50px); /* nepřekrývat s ikonou v rohu */
}
.dash-kpi-subtilni {
  font-size: 12.5px; color: var(--c-muted);
  letter-spacing: .01em;
  padding-top: 12px;
  border-top: 1px solid var(--c-border);
}
.dash-kpi-nove .dash-kpi-subtilni { color: #b45309; font-weight: 500; }
.dash-kpi-sankce .dash-kpi-subtilni { color: #b91c1c; font-weight: 500; }

/* Prázdný stav */
.dash-prazdne {
  text-align: center; padding: 80px 32px;
  background: var(--c-surface);
  margin: 24px;
  border-radius: 12px;
  border: 1px solid var(--c-border);
}
.dash-prazdne-ikona {
  width: 72px; height: 72px; border-radius: 50%;
  background: rgba(22,163,74,.08); color: #16a34a;
  display: flex; align-items: center; justify-content: center;
  margin: 0 auto 24px;
}
.dash-prazdne h3 {
  font-size: 18px; font-weight: 700; color: var(--c-text);
  letter-spacing: -.02em;
  margin-bottom: 8px;
}
.dash-prazdne p {
  font-size: 14px; color: var(--c-muted); max-width: 480px; margin: 0 auto; line-height: 1.65;
}

/* Breakdown sekce – země + roky (samostatné karty) */
.dash-breakdown {
  display: grid; grid-template-columns: 1fr 1fr; gap: 12px;
  padding: 0 24px 24px;
  background: #fafbfc;
}
@media (max-width: 768px) { .dash-breakdown { grid-template-columns: 1fr; } }

.dash-card {
  background: var(--c-surface); border: 1px solid var(--c-border);
  border-radius: 12px; padding: 22px 24px;
  transition: border-color .15s, box-shadow .15s;
}
.dash-card:hover {
  border-color: var(--c-border-strong);
  box-shadow: 0 1px 3px rgba(0,0,0,.04), 0 4px 12px rgba(0,0,0,.04);
}
.dash-card-nadpis {
  display: flex; align-items: center; gap: 12px;
  font-size: 16px; font-weight: 700; color: var(--c-text);
  margin-bottom: 22px;
  letter-spacing: -.02em;
}
.dash-card-nadpis-ikona {
  width: 36px; height: 36px; border-radius: 10px;
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
}
.dash-card-pocet {
  margin-left: auto;
  font-size: 12px; font-weight: 600; color: var(--c-muted);
  background: var(--c-bg); padding: 4px 11px; border-radius: 999px;
  letter-spacing: 0;
  text-transform: none;
}

.dash-bar-list {
  list-style: none; padding: 0; margin: 0;
  display: flex; flex-direction: column; gap: 12px;
}
.dash-bar-item {
  display: grid;
  grid-template-columns: minmax(90px, 130px) 1fr 36px;
  gap: 14px; align-items: center;
  font-size: 13px;
}
.dash-bar-label { color: var(--c-text); font-weight: 500; }
.dash-bar-val {
  font-size: 13px; font-weight: 600; color: var(--c-text);
  text-align: right;
  font-feature-settings: "tnum" 1;
}
.dash-bar-track {
  display: block;
  height: 8px; background: var(--c-bg);
  border-radius: 999px; overflow: hidden; position: relative;
  width: 100%;
}
.dash-bar-fill {
  display: block;
  height: 100%; border-radius: 999px;
  min-width: 4px;
  transition: width .5s cubic-bezier(.4,0,.2,1);
}
.dash-bar-fill-cervena {
  background: linear-gradient(90deg, #fca5a5, #dc2626);
}
.dash-bar-fill-modra {
  background: linear-gradient(90deg, #93c5fd, #2563eb);
}

/* Top rizikové země – řádky s vlaječkou */
.dash-bar-list-zeme {
  gap: 10px;
}
.dash-bar-item-zeme {
  display: grid;
  grid-template-columns: 24px minmax(95px, 130px) 1fr 36px 44px;
  gap: 12px; align-items: center;
  font-size: 13px;
}
.dash-bar-vlajka {
  display: inline-flex; align-items: center; justify-content: center;
}
.vlajka-img {
  display: block;
  border-radius: 3px;
  box-shadow: 0 0 0 1px rgba(0,0,0,.05);
  object-fit: cover;
}
.dash-bar-pct {
  font-size: 12px; color: var(--c-muted);
  text-align: right;
  font-feature-settings: "tnum" 1;
}
@media (max-width: 480px) {
  .dash-bar-item-zeme {
    grid-template-columns: 22px 1fr 36px 40px;
  }
  .dash-bar-item-zeme .dash-bar-track { display: none; }
}

/* Pod-sekce alternativní obsah (Na prověření, Historie) */
.dash-sekce-content {
  /* wrapper – sám o sobě nic nemá, jen pro show/hide */
}
.dash-sekce-content.hidden { display: none; }

.dash-sub-banner {
  display: flex; align-items: flex-start; gap: 16px;
  padding: 22px 28px;
  margin: 24px;
  border-radius: 12px;
  border: 1px solid var(--c-border);
  background: var(--c-surface);
}
.dash-sub-banner-flag {
  background: linear-gradient(135deg, #fef3c7 0%, #fffbeb 100%);
  border-color: #fde68a;
}
.dash-sub-banner-historie {
  background: linear-gradient(135deg, #dcfce7 0%, #f0fdf4 100%);
  border-color: #bbf7d0;
}
.dash-sub-banner-ikona {
  width: 44px; height: 44px; border-radius: 11px;
  background: rgba(255,255,255,.85);
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
}
.dash-sub-banner-flag .dash-sub-banner-ikona { color: #b45309; }
.dash-sub-banner-historie .dash-sub-banner-ikona { color: #15803d; }
.dash-sub-banner-ikona svg { width: 22px; height: 22px; }
.dash-sub-banner-text { flex: 1; }
.dash-sub-banner-nadpis {
  font-size: 16px; font-weight: 700;
  letter-spacing: -.02em; margin-bottom: 4px;
}
.dash-sub-banner-flag .dash-sub-banner-nadpis { color: #78350f; }
.dash-sub-banner-historie .dash-sub-banner-nadpis { color: #14532d; }
.dash-sub-banner-popis {
  font-size: 13.5px; line-height: 1.6;
}
.dash-sub-banner-flag .dash-sub-banner-popis { color: #78350f; }
.dash-sub-banner-historie .dash-sub-banner-popis { color: #166534; }

.dash-sub-stats {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px;
  padding: 0 24px 24px;
}
@media (max-width: 700px) { .dash-sub-stats { grid-template-columns: 1fr; } }
.dash-sub-stat {
  background: var(--c-surface);
  border: 1px solid var(--c-border);
  border-radius: 10px;
  padding: 14px 18px;
  display: flex; flex-direction: column; gap: 4px;
}
.dash-sub-stat-label {
  font-size: 11.5px; font-weight: 600; letter-spacing: .08em;
  text-transform: uppercase; color: var(--c-muted);
}
.dash-sub-stat-cislo {
  font-size: 26px; font-weight: 700; letter-spacing: -.03em;
  color: var(--c-text); line-height: 1.1;
  font-feature-settings: "tnum" 1;
}
.dash-sub-stat-text {
  font-size: 15px; font-weight: 600;
}
.dash-sub-stat-zelena .dash-sub-stat-cislo { color: #15803d; }
.dash-sub-stat-seda .dash-sub-stat-cislo { color: #475569; }

/* Eskalace – pracovní karty s poznámkami (Na prověření) */
.dash-eskalace-wrapper {
  padding: 24px;
  display: flex; flex-direction: column; gap: 16px;
}
.dash-eskalace-prazdne {
  text-align: center; padding: 60px 32px;
  background: var(--c-surface);
  border: 1px solid var(--c-border);
  border-radius: 12px;
}
.dash-eskalace-prazdne-ikona {
  width: 64px; height: 64px; border-radius: 50%;
  background: rgba(245,158,11,.1); color: #b45309;
  display: flex; align-items: center; justify-content: center;
  margin: 0 auto 18px;
}
.dash-eskalace-prazdne-ikona svg { width: 28px; height: 28px; }
.dash-eskalace-prazdne h3 {
  font-size: 17px; font-weight: 700; color: var(--c-text);
  letter-spacing: -.02em; margin-bottom: 8px;
}
.dash-eskalace-prazdne p {
  font-size: 13.5px; color: var(--c-muted); max-width: 480px; margin: 0 auto; line-height: 1.65;
}

.dash-eskalace-karta {
  background: var(--c-surface);
  border: 1px solid var(--c-border);
  border-left: 3px solid #f59e0b;
  border-radius: 12px;
  padding: 20px 22px;
  display: flex; flex-direction: column; gap: 14px;
  box-shadow: 0 1px 3px rgba(0,0,0,.04);
}

.dash-eskalace-hlava { display: flex; flex-direction: column; gap: 8px; }
.dash-eskalace-titulek-rada { display: flex; align-items: center; gap: 8px; }
.dash-eskalace-titulek {
  font-size: 15.5px; font-weight: 600; color: var(--c-text);
  letter-spacing: -.01em; line-height: 1.4;
  text-decoration: none;
}
.dash-eskalace-titulek:hover { color: var(--c-primary); text-decoration: underline; text-underline-offset: 3px; }
.dash-eskalace-meta {
  display: flex; align-items: center; gap: 8px;
  font-size: 12.5px; color: var(--c-muted);
  flex-wrap: wrap;
}
.dash-eskalace-autor { color: var(--c-text-secondary); font-weight: 500; }
.dash-eskalace-dni { color: #b45309; font-weight: 500; }
.dash-eskalace-chips {
  display: flex; gap: 6px; flex-wrap: wrap; margin-top: 4px;
}

.dash-eskalace-spolauti {
  background: var(--c-bg);
  border-radius: 8px;
  padding: 12px 14px;
}
.dash-eskalace-spolauti-label {
  font-size: 10.5px; font-weight: 700; letter-spacing: .12em;
  text-transform: uppercase; color: var(--c-muted);
  margin-bottom: 10px;
}
.dash-eskalace-spolauti-list {
  display: flex; flex-direction: column; gap: 6px;
}

.dash-eskalace-poznamka {
  display: flex; flex-direction: column; gap: 6px;
}
.dash-eskalace-poznamka-hlavicka {
  display: flex; align-items: center; justify-content: space-between;
}
.dash-eskalace-poznamka label {
  font-size: 11.5px; font-weight: 700; letter-spacing: .1em;
  text-transform: uppercase; color: var(--c-text-secondary);
}
.dash-eskalace-uloz-info {
  font-size: 11px; font-weight: 500;
  color: #15803d;
  transition: opacity .25s;
  opacity: .4;
}
.dash-eskalace-textarea {
  width: 100%;
  min-height: 92px;
  padding: 12px 14px;
  border: 1px solid var(--c-border);
  border-radius: 8px;
  background: var(--c-surface);
  color: var(--c-text);
  font-family: inherit; font-size: 13.5px; line-height: 1.6;
  resize: vertical;
  transition: border-color .12s, box-shadow .12s;
}
.dash-eskalace-textarea:focus {
  outline: none;
  border-color: var(--c-primary);
  box-shadow: 0 0 0 3px rgba(37,99,235,.12);
}
.dash-eskalace-textarea::placeholder { color: var(--c-muted); }

.dash-eskalace-akce {
  display: flex; gap: 8px; flex-wrap: wrap;
  padding-top: 14px;
  border-top: 1px solid var(--c-border);
}

/* Historie – toolbar s filtrem a exportem */
.dash-historie-toolbar {
  display: flex; align-items: center; justify-content: space-between;
  gap: 16px; flex-wrap: wrap;
  padding: 18px 24px;
  background: var(--c-surface);
  border-bottom: 1px solid var(--c-border);
}
.dash-historie-filtry {
  display: inline-flex; align-items: center; gap: 12px; flex-wrap: wrap;
}
.dash-historie-datum-pole {
  display: inline-flex; align-items: center; gap: 8px;
  font-size: 12.5px; color: var(--c-text-secondary);
}
.dash-historie-datum-pole input {
  padding: 6px 10px;
  border: 1px solid var(--c-border);
  border-radius: 7px;
  background: var(--c-surface);
  font-family: inherit; font-size: 13px;
  color: var(--c-text);
  cursor: pointer;
}
.dash-historie-datum-pole input:focus {
  outline: none; border-color: var(--c-primary);
  box-shadow: 0 0 0 3px rgba(37,99,235,.1);
}
.dash-historie-reset {
  width: 26px; height: 26px;
  background: var(--c-bg);
  border: 1px solid var(--c-border);
  border-radius: 50%;
  color: var(--c-muted);
  cursor: pointer; font-size: 16px; line-height: 1;
  font-family: inherit;
  transition: background .12s, color .12s;
}
.dash-historie-reset:hover { background: var(--c-danger-bg); color: var(--c-danger); }

.dash-historie-wrapper {
  padding: 24px;
  display: flex; flex-direction: column; gap: 12px;
}
.dash-historie-souhrn {
  font-size: 13px; color: var(--c-muted);
  margin-bottom: 4px;
}
.dash-historie-souhrn strong { color: var(--c-text); font-weight: 700; }

.dash-historie-karta {
  background: var(--c-surface);
  border: 1px solid var(--c-border);
  border-left: 3px solid #22c55e;
  border-radius: 10px;
  padding: 16px 20px;
  display: flex; flex-direction: column; gap: 10px;
}
.dash-historie-karta-rizikove { border-left-color: #dc2626; }
.dash-historie-karta-neni-rizikove { border-left-color: #94a3b8; }
.dash-historie-hlava { display: flex; flex-direction: column; gap: 6px; }
.dash-historie-titulek-rada { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.dash-historie-datum {
  color: var(--c-text-secondary); font-weight: 500;
}
.dash-historie-poznamka {
  background: var(--c-bg);
  padding: 9px 12px;
  border-radius: 6px;
  font-size: 12.5px; color: var(--c-text-secondary);
  line-height: 1.55;
}
.dash-historie-poznamka strong { color: var(--c-text); font-weight: 600; }
.dash-historie-akce {
  padding-top: 8px;
}

.dash-historie-prazdne-ikona {
  width: 64px; height: 64px; border-radius: 50%;
  background: rgba(34,197,94,.1); color: #16a34a;
  display: flex; align-items: center; justify-content: center;
  margin: 0 auto 18px;
}
.dash-historie-prazdne-ikona svg { width: 28px; height: 28px; }

/* Sub-sekce navigace – prominentní tabs nad listem */
.dash-podsekce-nav {
  display: flex; gap: 2px;
  padding: 0 24px;
  background: var(--c-surface);
  border-top: 1px solid var(--c-border);
  border-bottom: 1px solid var(--c-border);
  flex-wrap: wrap;
}

/* Top-level sub-navigace – sekundární řádek pod hlavními taby, uvnitř form-section */
.dash-podsekce-nav-top {
  margin: 12px -32px -32px;  /* roztáhne přes celou šířku form-section a sahá k dolnímu okraji */
  padding: 0 28px;
  background: transparent;
  border-top: 1px solid var(--c-border);
  border-bottom: none;
  border-radius: 0 0 var(--radius-lg) var(--radius-lg);
}
.dash-podsekce-nav-top.hidden { display: none; }
.dash-podsekce-nav-top .dash-podsekce-tab {
  padding: 12px 16px 11px;
  font-size: 14px;
}
.dash-podsekce-tab {
  background: none; border: none;
  padding: 16px 20px 14px;
  margin-bottom: -1px;
  font-size: 14px; font-weight: 600; color: var(--c-muted);
  letter-spacing: -.01em;
  cursor: pointer; font-family: inherit;
  display: inline-flex; align-items: center; gap: 8px;
  border-bottom: 2px solid transparent;
  transition: color .15s, border-color .15s;
  white-space: nowrap;
}
.dash-podsekce-tab:hover { color: var(--c-text); }
.dash-podsekce-tab.active {
  color: var(--c-text);
  border-bottom-color: var(--c-text);
}
.dash-podsekce-pocet {
  font-size: 11.5px; font-weight: 700;
  background: var(--c-bg); color: var(--c-muted);
  padding: 2px 8px; border-radius: 999px;
  min-width: 22px; text-align: center;
  line-height: 1.4;
  border: 1px solid var(--c-border);
}
.dash-podsekce-tab.active .dash-podsekce-pocet {
  background: var(--c-text); color: #fff; border-color: var(--c-text);
}
.dash-podsekce-tab svg { color: #94a3b8; flex-shrink: 0; }
.dash-podsekce-tab-flag svg { color: #f59e0b; }
.dash-podsekce-tab-flag.active {
  color: #b45309; border-bottom-color: #f59e0b;
}
.dash-podsekce-tab-flag.active .dash-podsekce-pocet {
  background: #f59e0b; border-color: #f59e0b; color: #fff;
}

/* Filtry – jemná oddělená lišta */
.dash-filtry {
  display: flex; align-items: center; flex-wrap: wrap;
  gap: 18px 28px;
  padding: 14px 24px;
  background: #fafbfc;
  border-bottom: 1px solid var(--c-border);
}
.dash-filtry-skupina {
  display: inline-flex; align-items: center; gap: 10px;
}
.dash-filtry-label {
  font-size: 11.5px; font-weight: 700; letter-spacing: .1em;
  text-transform: uppercase; color: var(--c-muted);
}
.dash-rok-chips {
  display: inline-flex; gap: 5px; flex-wrap: wrap;
}
.dash-mega-select {
  padding: 7px 14px;
  font-size: 13px;
  border: 1px solid var(--c-border);
  border-radius: 8px;
  background: var(--c-surface);
  color: var(--c-text);
  cursor: pointer;
  font-family: inherit;
  transition: border-color .12s;
}
.dash-mega-select:hover { border-color: var(--c-border-strong); }

/* Number input pro mega-spolupráce filtr (osoba/instituce/moje-instituce) */
.mega-input {
  width: 80px;
  padding: 6px 10px;
  font-size: 13px; font-family: inherit;
  border: 1px solid var(--c-border);
  border-radius: 6px;
  background: var(--c-surface);
  color: var(--c-text);
  text-align: center;
  transition: border-color .12s, box-shadow .12s;
}
.mega-input:hover { border-color: var(--c-border-strong); }
.mega-input:focus {
  outline: none;
  border-color: var(--c-primary);
  box-shadow: 0 0 0 3px rgba(37,99,235,.12);
}

/* Globální mega-filtr lišta nad výsledky */
.mega-filter-bar {
  display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
  margin: 0 0 16px;
  padding: 10px 16px;
  background: var(--c-surface);
  border: 1px solid var(--c-border);
  border-radius: 10px;
  font-size: 13px; color: var(--c-text-secondary);
}
.mega-filter-ikona { color: var(--c-muted); display: inline-flex; align-items: center; }
.mega-filter-label { color: var(--c-text-secondary); }
.mega-filter-bar .mega-input { width: 70px; padding: 5px 8px; }

/* Toggle mega spoluprací (checkbox místo číselného prahu) */
.mega-toggle {
  display: inline-flex; align-items: center; gap: 9px;
  cursor: pointer; user-select: none;
}
.mega-toggle input.mega-input,
.mega-filter-bar .mega-toggle input.mega-input {
  width: 16px; height: 16px; min-width: 16px;
  flex: 0 0 16px;
  padding: 0; margin: 0;
  accent-color: var(--c-text);
  cursor: pointer;
  border-radius: 4px;
  box-shadow: none;
}
.mega-toggle-text {
  font-size: 13px; color: var(--c-text-secondary);
}
.mega-toggle:hover .mega-toggle-text { color: var(--c-text); }
.mega-toggle-hint {
  font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace;
  font-size: 11px; color: var(--c-muted);
  letter-spacing: .02em;
  margin-left: 4px;
}
.mega-filter-info { color: var(--c-muted); font-size: 12.5px; margin-left: auto; text-align: right; }
.mega-skryto { display: none !important; }
.mega-input::-webkit-outer-spin-button,
.mega-input::-webkit-inner-spin-button { opacity: 1; }
.filter-suffix {
  font-size: 13px; color: var(--c-text-secondary);
  user-select: none;
}

/* ── Dashboard publikační řádky (Evernote-style) ─────────────────────────────── */
.dash-pub-lista {
  background: var(--c-surface);
}

.dash-pub-row {
  border-bottom: 1px solid var(--c-border);
  background: var(--c-surface);
  transition: background .15s;
  position: relative;
}
.dash-pub-row:last-child { border-bottom: none; }
.dash-pub-row:hover { background: #fafbfc; }
.dash-pub-row.dash-pub-otevreny { background: #f7fafc; }
.dash-pub-row.dash-pub-nove {
  background: linear-gradient(90deg, rgba(251,191,36,.06) 0%, rgba(251,191,36,.02) 50%, transparent 100%);
}
.dash-pub-row.dash-pub-resolved {
  opacity: .7;
}
.dash-pub-row.dash-pub-resolved .dash-pub-titulek { color: var(--c-muted); }

.dash-pub-hlavni {
  display: grid;
  grid-template-columns: 18px 1fr auto auto;
  gap: 16px;
  align-items: center;
  padding: 14px 24px;
  cursor: pointer;
}
@media (max-width: 768px) {
  .dash-pub-hlavni { grid-template-columns: 18px 1fr auto; gap: 10px; }
}

.dash-pub-chevron {
  color: var(--c-muted);
  display: flex; align-items: center; justify-content: center;
  transition: transform .2s ease;
  flex-shrink: 0;
}

.dash-pub-info {
  min-width: 0; /* allow text truncation */
}
.dash-pub-obor-inline {
  display: inline-flex; gap: 4px; flex-wrap: wrap;
  align-items: center;
}
.dash-pub-obor-inline .obor-chip {
  vertical-align: middle;
}
.dash-pub-titulek-rada {
  display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
  margin-bottom: 4px;
}
.dash-pub-titulek {
  font-size: 14px; font-weight: 600; color: var(--c-text);
  letter-spacing: -.01em; line-height: 1.4;
  text-decoration: none;
  transition: color .12s;
  display: inline;
}
.dash-pub-titulek:hover {
  color: var(--c-primary);
  text-decoration: underline;
  text-decoration-color: rgba(37,99,235,.4);
  text-underline-offset: 3px;
}
.dash-pub-link-ikona {
  color: var(--c-muted);
  font-size: 12px; margin-left: 4px;
  transition: color .12s;
}
.dash-pub-titulek:hover .dash-pub-link-ikona { color: var(--c-primary); }

.dash-pub-meta {
  display: flex; align-items: center; gap: 8px;
  font-size: 12.5px; color: var(--c-muted);
  flex-wrap: wrap;
}
.dash-pub-autor {
  color: var(--c-text-secondary); font-weight: 500;
}
.dash-pub-meta-divider { color: var(--c-border-strong); }
.dash-pub-rok { color: var(--c-muted); }
.dash-pub-mega {
  font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace;
  color: var(--c-muted);
  font-weight: 500;
  font-size: 11.5px;
  letter-spacing: .01em;
}

.dash-pub-chips {
  display: flex; gap: 5px; flex-wrap: wrap; flex-shrink: 0;
  align-items: center;
}
.dash-pub-zeme-chip {
  display: inline-flex; align-items: center; gap: 6px;
  font-size: 12px; font-weight: 500;
  background: transparent;
  color: var(--c-text-secondary);
  padding: 2px 4px;
  border-radius: 0;
  white-space: nowrap;
}
.dash-pub-zeme-chip .vlajka-img { border-radius: 1px; box-shadow: 0 0 0 1px rgba(15,23,42,.10); }
.dash-pub-sankce-chip {
  display: inline-flex; align-items: center; gap: 5px;
  font-size: 11px; font-weight: 600;
  background: transparent; color: #b91c1c;
  border: 1px solid #fecaca;
  padding: 2px 8px;
  border-radius: 3px;
  cursor: pointer; font-family: inherit;
  transition: background .12s, border-color .12s;
  letter-spacing: .01em;
  text-transform: uppercase;
}
.dash-pub-sankce-chip:hover { background: #fef2f2; border-color: #dc2626; }

.dash-pub-akce {
  display: flex; gap: 4px; align-items: center;
  flex-shrink: 0;
  opacity: 0;
  transition: opacity .15s ease;
}
.dash-pub-row:hover .dash-pub-akce,
.dash-pub-row:focus-within .dash-pub-akce {
  opacity: 1;
}
@media (max-width: 768px) {
  .dash-pub-akce { display: none; opacity: 1; }
  .dash-pub-row.dash-pub-otevreny .dash-pub-akce {
    display: flex; padding: 12px 24px 14px 58px; border-top: 1px solid var(--c-border);
  }
}

.dash-pub-akce-btn {
  display: inline-flex; align-items: center; gap: 6px;
  background: transparent;
  border: 1px solid transparent;
  color: var(--c-muted);
  padding: 5px 8px;
  border-radius: 3px;
  font-size: 12px; font-weight: 500;
  cursor: pointer; font-family: inherit;
  transition: background .12s, color .12s, border-color .12s;
  white-space: nowrap;
}
.dash-pub-akce-btn .akce-text {
  display: none;
}
.dash-pub-akce-btn:hover {
  background: var(--c-bg);
  border-color: var(--c-border-strong);
  color: var(--c-text);
}
.dash-pub-akce-vyresit:hover {
  background: rgba(34,197,94,.08); border-color: #22c55e; color: #15803d;
}
.dash-pub-akce-rizikove:hover {
  background: rgba(220,38,38,.08); border-color: #dc2626; color: #991b1b;
}
.dash-pub-akce-flag:hover {
  background: rgba(245,158,11,.08); border-color: #f59e0b; color: #b45309;
}
.dash-pub-akce-zamitnout:hover {
  background: rgba(100,116,139,.08); border-color: #94a3b8; color: #475569;
}
.dash-pub-akce-undo {
  padding: 5px 8px;
}

.dash-pub-stav {
  display: inline-flex; align-items: center; gap: 6px;
  font-size: 12.5px; font-weight: 600;
  padding: 4px 11px;
  border-radius: 999px;
}
.dash-pub-stav.stav-vyreseno {
  background: rgba(34,197,94,.12); color: #15803d;
}
.dash-pub-stav.stav-rizikove {
  background: rgba(220,38,38,.1); color: #991b1b;
}
.dash-pub-stav.stav-k-provereni {
  background: rgba(245,158,11,.14); color: #b45309;
}
.dash-pub-stav.stav-neni-rizikove {
  background: rgba(100,116,139,.15); color: #475569;
}

/* Outcome badges (nový workflow: bezpecne / akceptovatelne / zablokovane) */
.dash-pub-stav.stav-outcome {
  font-size: 11.5px; font-weight: 600;
  padding: 3px 9px;
  border-radius: 999px;
  border: 1px solid transparent;
  white-space: nowrap;
}
.stav-outcome-bezpecne {
  background: #ecfdf5; color: #047857; border-color: #a7f3d0;
}
.stav-outcome-akceptovatelne {
  background: #fffbeb; color: #b45309; border-color: #fde68a;
}
.stav-outcome-zablokovane {
  background: #fef2f2; color: #b91c1c; border-color: #fecaca;
}

/* Modal: Uzavřít s rizikem */
.uzavrit-modal-box {
  max-width: 500px;
  width: 100%;
  padding: 28px 32px 24px;
}
.uzavrit-modal-titulek {
  font-size: 20px; font-weight: 700; letter-spacing: -.015em;
  margin: 0 0 6px;
  color: var(--c-text);
}
.uzavrit-modal-popis {
  font-size: 13.5px; line-height: 1.55;
  color: var(--c-text-secondary);
  margin: 0 0 22px;
}
.uzavrit-outcome {
  border: none;
  padding: 0;
  margin: 0 0 22px;
  display: flex; flex-direction: column;
  gap: 10px;
}
.uzavrit-outcome legend {
  font-size: 12px; font-weight: 600;
  text-transform: uppercase; letter-spacing: .06em;
  color: var(--c-muted);
  margin-bottom: 10px;
  padding: 0;
}
.uzavrit-outcome-volba {
  display: flex; align-items: flex-start; gap: 12px;
  padding: 12px 14px;
  border: 1px solid var(--c-border);
  border-radius: 6px;
  cursor: pointer;
  transition: border-color .12s, background .12s;
}
.uzavrit-outcome-volba:hover { border-color: var(--c-border-strong); }
.uzavrit-outcome-volba input[type="radio"] {
  margin-top: 3px;
  accent-color: var(--c-text);
}
.uzavrit-outcome-volba:has(input:checked) {
  border-color: var(--c-text);
  background: var(--c-bg);
}
.uzavrit-outcome-text {
  display: flex; flex-direction: column; gap: 2px;
  flex: 1;
}
.uzavrit-outcome-text strong {
  font-size: 14px; font-weight: 600; color: var(--c-text);
}
.uzavrit-outcome-popis {
  font-size: 12.5px; color: var(--c-text-secondary);
  line-height: 1.45;
}
.uzavrit-pole {
  display: flex; flex-direction: column; gap: 6px;
  margin-bottom: 20px;
}
.uzavrit-pole label {
  font-size: 12px; font-weight: 600;
  text-transform: uppercase; letter-spacing: .06em;
  color: var(--c-muted);
}
.uzavrit-pole textarea {
  width: 100%;
  padding: 10px 12px;
  border: 1px solid var(--c-border);
  border-radius: 6px;
  font-family: inherit;
  font-size: 13.5px;
  line-height: 1.5;
  resize: vertical;
  min-height: 90px;
  background: var(--c-surface);
  transition: border-color .12s, box-shadow .12s;
}
.uzavrit-pole textarea:focus {
  outline: none;
  border-color: var(--c-text);
  box-shadow: 0 0 0 3px rgba(15,23,42,.08);
}
.uzavrit-chyba {
  min-height: 18px;
  font-size: 12.5px; color: #b91c1c;
  margin-top: 4px;
}
.uzavrit-akce {
  display: flex; justify-content: flex-end; gap: 10px;
}

/* Detail – rizikoví spoluautoři expand */
.dash-pub-detail {
  padding: 14px 24px 18px 58px;
  background: #f7fafc;
  border-top: 1px solid var(--c-border);
}
.dash-pub-detail.hidden { display: none; }
/* Stavový detail blok v rozkliknutém řádku (aktuální stav + poznámka + historie) */
.stav-detail-blok {
  display: flex; flex-direction: column;
  gap: 14px;
  padding: 14px 16px;
  margin-bottom: 18px;
  background: var(--c-surface);
  border: 1px solid var(--c-border);
  border-radius: 6px;
}
.stav-detail-aktualni {
  display: flex; align-items: baseline; gap: 12px;
  flex-wrap: wrap;
}
.stav-detail-label {
  font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace;
  font-size: 10.5px; font-weight: 500;
  text-transform: uppercase; letter-spacing: .1em;
  color: var(--c-muted);
}
.stav-detail-hodnota { font-size: 14px; color: var(--c-text); font-weight: 600; }
.stav-detail-datum {
  font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace;
  font-size: 11px; color: var(--c-muted);
  margin-left: auto;
}
.stav-detail-poznamka p {
  margin: 6px 0 0;
  padding: 10px 12px;
  background: var(--c-bg);
  border-left: 2px solid var(--c-border-strong);
  font-size: 13px; line-height: 1.55;
  color: var(--c-text);
  white-space: pre-wrap;
}
.stav-detail-historie ol {
  list-style: none; padding: 0; margin: 6px 0 0;
  display: flex; flex-direction: column;
  gap: 6px;
}
.stav-detail-historie li {
  display: grid;
  grid-template-columns: 150px auto 1fr;
  gap: 12px;
  padding: 6px 0;
  border-top: 1px solid var(--c-border);
  font-size: 12.5px;
}
.stav-detail-historie li:first-child { border-top: none; }
.stav-detail-historie .hist-datum {
  font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace;
  font-size: 11px; color: var(--c-muted);
}
.stav-detail-historie .hist-stav { color: var(--c-text); font-weight: 500; }
.stav-detail-historie .hist-poznamka { color: var(--c-text-secondary); line-height: 1.5; }
@media (max-width: 640px) {
  .stav-detail-historie li { grid-template-columns: 1fr; gap: 2px; }
}

.dash-pub-detail-hlavicka {
  font-size: 10.5px; font-weight: 700; letter-spacing: .12em;
  text-transform: uppercase; color: var(--c-muted);
  margin-bottom: 12px;
  display: flex; align-items: center; gap: 8px;
}
.dash-pub-detail-pocet {
  font-size: 10px; font-weight: 700;
  background: var(--c-surface); color: var(--c-text);
  padding: 1px 8px; border-radius: 999px;
  border: 1px solid var(--c-border);
  letter-spacing: 0;
}
.dash-pub-internisti {
  padding: 10px 14px;
  background: var(--c-primary-light, #eef2ff);
  border-left: 3px solid var(--c-primary);
  border-radius: 6px;
  margin-bottom: 12px;
  font-size: 12.5px;
  display: flex; flex-wrap: wrap; align-items: center; gap: 6px;
}
.dash-pub-internisti strong {
  color: var(--c-primary);
  font-weight: 600;
  margin-right: 4px;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: .06em;
}
.dash-pub-internista {
  display: inline-block;
  background: #fff;
  color: var(--c-text);
  padding: 3px 10px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 500;
  border: 1px solid var(--c-border);
}
.dash-pub-detail-list {
  display: flex; flex-direction: column; gap: 8px;
}
.dash-coauth-radek {
  display: grid;
  grid-template-columns: minmax(140px, 220px) 1fr;
  gap: 14px; align-items: flex-start;
  padding: 8px 10px;
  background: var(--c-surface);
  border-radius: 6px;
  border: 1px solid var(--c-border);
}
@media (max-width: 600px) {
  .dash-coauth-radek { grid-template-columns: 1fr; gap: 4px; }
}
.dash-coauth-jmeno {
  font-size: 13px; font-weight: 600; color: var(--c-text);
}
.dash-coauth-instituce {
  display: flex; flex-direction: column; gap: 4px;
  font-size: 12.5px; color: var(--c-text-secondary);
}
.dash-coauth-inst {
  display: inline-flex; align-items: center; gap: 6px;
  flex-wrap: wrap;
}
.dash-coauth-zeme {
  display: inline-flex; align-items: center; gap: 4px;
  font-size: 10.5px; font-weight: 600;
  background: rgba(220,38,38,.08); color: #b91c1c;
  padding: 1px 7px 1px 4px; border-radius: 999px;
}
.dash-coauth-zeme .vlajka-img { border-radius: 2px; }

/* ── Moje instituce – monitor, taby, akce, status ────────────────────────────── */
.moje-inst-monitor {
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  padding: 12px 20px; background: linear-gradient(90deg, rgba(37,99,235,.06), rgba(124,58,237,.04));
  border-bottom: 1px solid var(--c-border); flex-wrap: wrap;
}
.moje-inst-monitor-info {
  display: flex; align-items: center; gap: 10px;
  font-size: 12.5px; color: var(--c-text-secondary);
}
.moje-inst-monitor-info strong { color: var(--c-text); font-weight: 600; }
.moje-inst-monitor-dot {
  width: 8px; height: 8px; border-radius: 50%; background: #22c55e;
  box-shadow: 0 0 0 3px rgba(34,197,94,.2);
  animation: pulse-dot 2.4s infinite;
  flex-shrink: 0;
}
@keyframes pulse-dot {
  0%, 100% { box-shadow: 0 0 0 3px rgba(34,197,94,.2); }
  50% { box-shadow: 0 0 0 6px rgba(34,197,94,0); }
}
.btn-export-pdf {
  display: inline-flex; align-items: center; gap: 6px;
  background: var(--c-text); color: #fff;
  border: none; padding: 7px 14px; border-radius: 6px;
  font-size: 12.5px; font-weight: 600; cursor: pointer;
  transition: background .15s;
  font-family: inherit;
}
.btn-export-pdf:hover { background: #1e293b; }

.moje-inst-stav-taby {
  display: inline-flex; gap: 2px;
  background: var(--c-bg);
  padding: 3px;
  border-radius: 9px;
  border: 1px solid var(--c-border);
}
.moje-inst-stav-tab {
  background: none; border: none;
  padding: 6px 12px;
  font-size: 12.5px; font-weight: 500; color: var(--c-muted);
  cursor: pointer; position: relative; font-family: inherit;
  border-radius: 6px;
  display: inline-flex; align-items: center; gap: 6px;
  transition: all .15s;
}
.moje-inst-stav-tab:hover { color: var(--c-text); }
.moje-inst-stav-tab.active {
  background: var(--c-surface);
  color: var(--c-text);
  font-weight: 600;
  box-shadow: 0 1px 2px rgba(0,0,0,.05);
}
.moje-inst-stav-tab .tab-pocet {
  font-size: 10.5px; font-weight: 700;
  background: var(--c-surface); color: var(--c-muted);
  padding: 1px 7px; border-radius: 999px;
  min-width: 18px; text-align: center;
  border: 1px solid var(--c-border);
}
.moje-inst-stav-tab.active .tab-pocet {
  background: var(--c-text); color: #fff; border-color: var(--c-text);
}
.moje-inst-stav-tab[data-stav="k_provereni"] {
  color: #b45309;
}
.moje-inst-stav-tab[data-stav="k_provereni"].active {
  color: #b45309;
  background: rgba(245,158,11,.1);
}
.moje-inst-stav-tab[data-stav="k_provereni"].active .tab-pocet {
  background: #f59e0b; border-color: #f59e0b;
}
.moje-inst-stav-tab[data-stav="k_provereni"] svg {
  color: #f59e0b;
}

/* Filtr po letech */
.moje-inst-rok-filtr {
  display: flex; gap: 6px; align-items: center; flex-wrap: wrap;
  padding: 12px 20px 4px;
  background: var(--c-surface);
}
.rok-filtr-label {
  font-size: 11px; font-weight: 700; letter-spacing: .1em;
  text-transform: uppercase; color: var(--c-muted);
  margin-right: 4px;
}
.rok-chip {
  background: var(--c-surface); border: 1px solid var(--c-border);
  color: var(--c-text-secondary);
  padding: 6px 12px; border-radius: 8px;
  font-size: 13px; font-weight: 500; cursor: pointer;
  display: inline-flex; align-items: center; gap: 7px;
  font-family: inherit;
  transition: all .12s;
}
.rok-chip:hover {
  border-color: var(--c-border-strong); background: var(--c-bg);
  color: var(--c-text);
}
.rok-chip.active {
  background: var(--c-text); color: #fff; border-color: var(--c-text);
  box-shadow: 0 1px 2px rgba(0,0,0,.1);
}
.rok-chip-pocet {
  font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace;
  font-size: 11px; font-weight: 500;
  background: transparent; padding: 0;
  border-radius: 0;
  color: var(--c-muted);
  margin-left: 6px;
  font-feature-settings: "tnum" 1;
}
.rok-chip.active .rok-chip-pocet {
  background: transparent; color: var(--c-muted);
}

/* Pořadí tabů – pro přihlášené je Moje instituce první */
body.je-prihlasen .tab-btn[data-tab="moje-instituce"] { order: -1; }

/* Tlačítko Aktualizovat */
.btn-prekontrolovat {
  display: inline-flex; align-items: center; gap: 6px;
  background: var(--c-surface); color: var(--c-text);
  border: 1px solid var(--c-border);
  padding: 7px 14px; border-radius: 6px;
  font-size: 12.5px; font-weight: 600; cursor: pointer;
  transition: background .15s, border-color .15s;
  font-family: inherit;
}
.btn-prekontrolovat:hover { background: var(--c-bg); border-color: var(--c-border-strong); }

/* Banner s novými publikacemi */
.moje-inst-nove-banner {
  margin: 0 20px 0;
  padding: 14px 18px;
  background: linear-gradient(135deg, #fef3c7 0%, #fde68a 100%);
  border: 1px solid #fbbf24;
  border-radius: var(--radius);
  display: flex; gap: 14px; align-items: center;
  animation: nove-banner-pulz 2.4s ease-out 1;
}
@keyframes nove-banner-pulz {
  0%   { box-shadow: 0 0 0 0 rgba(251,191,36,.6); }
  100% { box-shadow: 0 0 0 12px rgba(251,191,36,0); }
}
.nove-banner-ikona {
  width: 36px; height: 36px; border-radius: 50%; flex-shrink: 0;
  background: #f59e0b; color: #fff;
  display: flex; align-items: center; justify-content: center;
}
.nove-banner-titulek {
  font-size: 14px; font-weight: 700; color: #78350f;
  letter-spacing: -.01em;
}
.nove-banner-popis {
  font-size: 12.5px; color: #92400e; margin-top: 3px; line-height: 1.5;
}
.nove-banner-popis strong {
  background: #f59e0b; color: #fff; padding: 1px 6px; border-radius: 3px;
  font-size: 10px; font-weight: 700; letter-spacing: .05em;
}

/* NEW badge na publikaci */
.prace-nove-badge {
  display: inline-block;
  background: #f59e0b; color: #fff;
  font-size: 10px; font-weight: 800; letter-spacing: .08em;
  padding: 2px 7px; border-radius: 4px;
  flex-shrink: 0;
  box-shadow: 0 1px 2px rgba(245,158,11,.3);
}
.prace-zvyrazneno-nove {
  background: linear-gradient(90deg, rgba(251,191,36,.08), transparent 60%) !important;
  border-left: 3px solid #f59e0b !important;
}

/* Status na publikaci */
.autor-prace-item[data-stav="vyreseno"] {
  background: rgba(34,197,94,.04);
  border-left: 3px solid #22c55e;
}
.autor-prace-item[data-stav="neni-rizikove"] {
  background: rgba(100,116,139,.04);
  border-left: 3px solid #94a3b8;
  opacity: .75;
}
.prace-status {
  margin-top: 8px; padding-top: 8px;
  border-top: 1px dashed var(--c-border);
  display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
}
.prace-status-badge {
  display: inline-flex; align-items: center; gap: 4px;
  font-size: 11px; font-weight: 600;
  padding: 3px 9px; border-radius: 999px;
}
.prace-status-badge.status-vyreseno {
  background: rgba(34,197,94,.12); color: #15803d;
}
.prace-status-badge.status-rizikove {
  background: rgba(220,38,38,.1); color: #991b1b;
}
.prace-status-badge.status-neni-rizikove {
  background: rgba(100,116,139,.12); color: #475569;
}
.prace-akce-btn {
  display: inline-flex; align-items: center; gap: 4px;
  font-size: 11.5px; font-weight: 500;
  padding: 4px 10px; border-radius: 5px;
  border: 1px solid var(--c-border); background: var(--c-surface);
  color: var(--c-text-secondary); cursor: pointer; font-family: inherit;
  transition: all .12s;
}
.prace-akce-btn:hover {
  border-color: var(--c-border-strong); background: var(--c-bg);
  color: var(--c-text);
}
.prace-akce-vyresit:hover {
  border-color: #22c55e; background: rgba(34,197,94,.08); color: #15803d;
}
.prace-akce-rizikove:hover {
  border-color: #dc2626; background: rgba(220,38,38,.08); color: #991b1b;
}
.prace-akce-zamitnout:hover {
  border-color: #94a3b8; background: rgba(100,116,139,.08); color: #475569;
}

/* ── Misc ────────────────────────────────────────────────────────────────────── */
.hidden { display: none !important; }
.no-data { padding: 28px 20px; text-align: center; color: var(--c-muted); font-size: 14px; }
.section-inner { padding: 0 20px 20px; }
.separator { height: 1px; background: var(--c-border); margin: 0 20px 16px; }
.label-pep-note { font-size: 12px; color: var(--c-muted); padding: 8px 20px 12px; font-style: italic; }

/* ── Moje instituce – nové podsekce ──────────────────────────────────────── */
.moje-inst-podsekce {
  background: var(--c-surface);
  border: 1px solid var(--c-border);
  border-radius: var(--radius-lg);
  overflow: hidden;
}
.moje-inst-podsekce.hidden { display: none; }

/* Empty state */
.moje-inst-empty {
  padding: 56px 32px;
  text-align: center;
  color: var(--c-text-secondary);
}
.moje-inst-empty h3 {
  font-size: 18px; font-weight: 700; color: var(--c-text);
  margin-bottom: 8px;
}
.moje-inst-empty p {
  font-size: 14px; line-height: 1.6;
  max-width: 480px; margin: 0 auto 20px;
}
.moje-inst-empty-akce {
  display: inline-flex; gap: 10px; flex-wrap: wrap; justify-content: center;
}

/* ═══ EDITORIÁLNÍ DASHBOARD — typografií-vedený, žádné karty ═══ */
.ed-dashboard {
  padding: 36px 40px 64px;
  max-width: 1080px;
  margin: 0 auto;
  font-feature-settings: "tnum" 1, "ss01" 1, "kern" 1;
}

/* Otevírací statement — jedna věta včetně čísla */
.ed-statement {
  font-size: 30px; line-height: 1.3; font-weight: 600;
  letter-spacing: -.018em;
  color: var(--c-text);
  margin: 0;
  max-width: 38ch;
}
.ed-statement em {
  font-style: normal;
  font-weight: 600;
  color: var(--c-text-secondary);
}
.ed-cislo {
  font-weight: 700;
  color: var(--c-text);
  font-feature-settings: "tnum" 1;
  font-variant-numeric: tabular-nums;
  letter-spacing: -.025em;
  padding: 0 2px;
}
.ed-cislo-zive {
  color: #b91c1c;
}

/* Horizontální čára jako strukturní prvek */
.ed-cara {
  border: none;
  border-top: 1px solid var(--c-border);
  margin: 36px 0;
  height: 0;
}

.ed-akce { margin-top: 18px; }
@media (max-width: 720px) {
  .ed-statement { font-size: 24px; }
}

/* Akce — text-link, žádné tlačítko */
.ed-akce {
  margin-top: 36px;
}
.ed-link {
  display: inline-block;
  font-size: 14px; font-weight: 600;
  color: var(--c-text);
  text-decoration: none;
  border-bottom: 1.5px solid var(--c-text);
  padding-bottom: 2px;
  transition: color .15s, border-color .15s;
}
.ed-link:hover {
  color: var(--c-text-secondary);
  border-bottom-color: var(--c-text-secondary);
}

/* Novinky — editoriální seznam, žádné karty */
.ed-novinky-hlavicka {
  margin-bottom: 28px;
}
.ed-novinky-hlavicka h3 {
  font-size: 24px; font-weight: 700;
  letter-spacing: -.025em;
  margin: 0;
  color: var(--c-text);
}
.ed-novinky-seznam {
  list-style: none; padding: 0; margin: 0;
  display: flex; flex-direction: column;
}
.ed-novinka {
  display: grid;
  grid-template-columns: 140px 1fr auto;
  gap: 36px;
  padding: 24px 0 26px;
  border-top: 1px solid var(--c-border);
  position: relative;
}
.ed-novinka:first-child { border-top: none; padding-top: 4px; }
.ed-novinka-stripe {
  display: flex; flex-direction: column;
  gap: 4px;
  padding-top: 5px;
}
.ed-novinka-datum {
  font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace;
  font-size: 12px;
  color: var(--c-text);
  letter-spacing: .01em;
  white-space: nowrap;
  font-feature-settings: "tnum" 1;
  font-weight: 500;
}
.ed-novinka-zdroj {
  font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace;
  font-size: 11px;
  color: var(--c-muted);
  letter-spacing: .01em;
  font-weight: 400;
}
.ed-novinka-obsah { min-width: 0; padding-top: 2px; }
.ed-novinka-obsah h4 {
  font-size: 17px;
  font-weight: 700;
  letter-spacing: -.018em;
  line-height: 1.28;
  margin: 0 0 8px;
  max-width: 56ch;
}
.ed-novinka-obsah h4 a {
  color: var(--c-text);
  text-decoration: none;
  border-bottom: 1px solid transparent;
  transition: border-color .15s;
}
.ed-novinka-obsah h4 a:hover {
  border-bottom-color: var(--c-text);
}
.ed-novinka-obsah p {
  font-size: 14.5px; line-height: 1.65;
  color: var(--c-text-secondary);
  margin: 0;
  max-width: 64ch;
}
.ed-novinka-smazat {
  background: none; border: none;
  color: var(--c-border-strong);
  font-size: 18px; line-height: 1; cursor: pointer;
  padding: 0; width: 24px; height: 24px;
  border-radius: 2px;
  opacity: 0;
  transition: opacity .12s, color .12s;
  align-self: start;
}
.ed-novinka:hover .ed-novinka-smazat { opacity: 1; }
.ed-novinka-smazat:hover { color: #b91c1c; }
.ed-prazdne {
  font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace;
  font-size: 12.5px;
  color: var(--c-muted);
  padding: 20px 0;
  border-top: 1px solid var(--c-border);
  border-bottom: 1px solid var(--c-border);
}

@media (max-width: 640px) {
  .ed-novinka { grid-template-columns: 1fr; gap: 8px; }
  .ed-figura-cislo { font-size: 96px; }
  .ed-figura-vedle .ed-figura-cislo { font-size: 64px; }
  .ed-statement { font-size: 28px; }
}

/* ═══════════════════════════════════════════════════════════ */

/* Dashboard – 60:40 dlaždicová mřížka (alert + novinky) */
.dash-mrizka {
  display: grid;
  grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr);
  gap: 20px;
  padding: 20px 24px 24px;
  align-items: stretch;
}
@media (max-width: 980px) {
  .dash-mrizka { grid-template-columns: 1fr; }
}

/* Dashboard – velká alert dlaždice "Nové od aktualizace" (bento-style) */
.dash-alert {
  background: var(--c-surface);
  border: 1px solid var(--c-border);
  border-radius: var(--radius-lg);
  padding: 24px 28px;
  display: flex;
  flex-direction: column;
  position: relative;
  min-height: 280px;
  overflow: hidden;
  isolation: isolate;
}
.dash-alert::after {
  /* Jemný subtle gradient v pozadí pro hloubku, ne moc okatý */
  content: "";
  position: absolute; inset: 0;
  background: radial-gradient(circle at 100% 0%, rgba(15,23,42,.025) 0%, transparent 50%);
  pointer-events: none;
  z-index: -1;
}

.dash-alert-hlavicka {
  display: flex; align-items: center; justify-content: space-between;
  margin-bottom: 26px;
  gap: 12px;
}
.dash-alert-badge {
  display: inline-flex; align-items: center; gap: 8px;
  font-size: 11.5px; font-weight: 700;
  text-transform: uppercase; letter-spacing: .08em;
  padding: 6px 12px 6px 10px;
  border-radius: 999px;
  border: 1px solid;
}
.dash-alert-badge-klid {
  color: #047857;
  background: #ecfdf5;
  border-color: #a7f3d0;
}
.dash-alert-badge-zive {
  color: #b91c1c;
  background: #fef2f2;
  border-color: #fecaca;
}
.dash-alert-pulse {
  width: 8px; height: 8px;
  border-radius: 50%;
  display: inline-block;
  position: relative;
  background: #ef4444;
  box-shadow: 0 0 0 0 rgba(239,68,68,.6);
  animation: dash-pulse-zive 1.8s ease-out infinite;
}
.dash-alert-pulse-klid {
  background: #10b981;
  box-shadow: 0 0 0 0 rgba(16,185,129,.5);
  animation: dash-pulse-klid 2.2s ease-out infinite;
}
@keyframes dash-pulse-zive {
  0%   { box-shadow: 0 0 0 0   rgba(239,68,68,.6); }
  70%  { box-shadow: 0 0 0 8px rgba(239,68,68,0); }
  100% { box-shadow: 0 0 0 0   rgba(239,68,68,0); }
}
@keyframes dash-pulse-klid {
  0%   { box-shadow: 0 0 0 0   rgba(16,185,129,.5); }
  70%  { box-shadow: 0 0 0 7px rgba(16,185,129,0); }
  100% { box-shadow: 0 0 0 0   rgba(16,185,129,0); }
}
.dash-alert-cas {
  font-size: 12px;
  color: var(--c-muted);
  font-feature-settings: "tnum" 1;
  font-variant-numeric: tabular-nums;
  text-align: right;
}

.dash-alert-hodnota {
  display: flex; align-items: flex-start; gap: 18px;
  margin-bottom: 22px;
  flex-wrap: wrap;
}
.dash-alert-cislo {
  font-size: 110px;
  font-weight: 800;
  line-height: .8;
  letter-spacing: -.05em;
  font-feature-settings: "tnum" 1;
  font-variant-numeric: tabular-nums;
  color: var(--c-text);
  margin: -6px 0 0;
}
.dash-alert-jednotka {
  padding-top: 8px;
}
.dash-alert-jednotka-radek1 {
  font-size: 16.5px; font-weight: 700;
  color: var(--c-text);
  letter-spacing: -.015em;
  line-height: 1.25;
}
.dash-alert-jednotka-radek2 {
  font-size: 13px; font-weight: 500;
  color: var(--c-muted);
  margin-top: 4px;
  letter-spacing: -.005em;
}

.dash-alert-pozdrav {
  font-size: 14.5px; line-height: 1.6;
  color: var(--c-text-secondary);
  margin: 0 0 22px;
  max-width: 56ch;
}
.dash-alert-pozdrav strong { color: var(--c-text); font-weight: 700; }

.dash-alert-pata {
  margin-top: auto;
  display: flex; align-items: center; gap: 14px;
  flex-wrap: wrap;
}

.dash-alert-cta {
  display: inline-flex; align-items: center; gap: 8px;
  background: var(--c-text); color: #fff;
  border: none; border-radius: var(--radius);
  padding: 11px 20px;
  font-size: 13.5px; font-weight: 700;
  cursor: pointer; font-family: inherit;
  transition: background .15s, transform .12s;
  letter-spacing: -.005em;
}
.dash-alert-cta:hover { background: #0f172a; }
.dash-alert-cta-sek {
  background: transparent; color: var(--c-text);
  border: 1px solid var(--c-border);
}
.dash-alert-cta-sek:hover {
  background: var(--c-bg);
  border-color: var(--c-border-strong);
}

/* Klidový stav (žádné nové) */
.dash-alert-klid .dash-alert-cislo {
  color: var(--c-text-secondary);
  opacity: .55;
}

/* Aktivní stav (nové signály) – tile vystoupí, číslo červeně */
.dash-alert-zive {
  border-color: #fecaca;
}
.dash-alert-zive::after {
  background: radial-gradient(circle at 0% 0%, rgba(220,38,38,.06) 0%, transparent 55%);
}
.dash-alert-zive .dash-alert-cislo {
  color: #dc2626;
}

/* Novinky dlaždice musí sedět ve sloupci stejně jako alert */
.dash-mrizka > .dash-novinky {
  margin: 0;
  background: var(--c-surface);
  border: 1px solid var(--c-border);
  border-radius: var(--radius-lg);
  padding: 0;
  display: flex;
  flex-direction: column;
  min-height: 280px;
  overflow: hidden;
  position: relative;
  isolation: isolate;
  box-shadow: none;
}
.dash-mrizka > .dash-novinky::after {
  content: "";
  position: absolute; inset: 0;
  background: radial-gradient(circle at 100% 0%, rgba(15,23,42,.022) 0%, transparent 50%);
  pointer-events: none;
  z-index: -1;
}
.dash-mrizka > .dash-novinky .dash-novinky-hlavicka {
  padding: 22px 26px 16px;
  border-bottom: 1px solid var(--c-border);
}
.dash-mrizka > .dash-novinky .dash-novinky-hlavicka h3 {
  font-size: 14.5px; font-weight: 700;
  letter-spacing: -.01em;
  margin: 0 0 4px;
}
.dash-mrizka > .dash-novinky .dash-novinky-popis {
  font-size: 12px; color: var(--c-muted);
  line-height: 1.5; margin: 0;
}
.dash-mrizka > .dash-novinky .novinka-seznam {
  flex: 1;
  overflow-y: auto;
  max-height: 380px;
}
.dash-mrizka > .dash-novinky .novinka-karta {
  padding: 16px 26px 18px 26px;
}
.dash-mrizka > .dash-novinky .novinka-meta { gap: 10px; }
.dash-mrizka > .dash-novinky .novinka-datum {
  font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace;
  font-size: 11px;
  color: var(--c-muted);
  letter-spacing: .01em;
}
.dash-mrizka > .dash-novinky .novinka-zdroj {
  color: var(--c-text-secondary);
  background: var(--c-bg);
  border: 1px solid var(--c-border);
  border-radius: 3px;
  font-size: 10.5px;
  padding: 2px 7px;
  font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace;
  letter-spacing: 0;
  font-weight: 500;
}
.dash-mrizka > .dash-novinky .novinka-titulek {
  font-size: 14px;
  margin: 4px 0 6px;
  line-height: 1.35;
}
.dash-mrizka > .dash-novinky .novinka-titulek a:hover { color: var(--c-text); }
.dash-mrizka > .dash-novinky .novinka-text {
  font-size: 13px;
  line-height: 1.55;
  color: var(--c-text-secondary);
}
.dash-mrizka > .dash-novinky .novinka-cist {
  font-size: 12px;
  color: var(--c-text);
  font-weight: 600;
  border-bottom: 1px solid var(--c-text);
  padding-bottom: 1px;
}
.dash-mrizka > .dash-novinky .novinka-cist:hover {
  text-decoration: none;
  color: var(--c-text-secondary);
  border-bottom-color: var(--c-text-secondary);
}

/* Dashboard – welcome banner (větší, výraznější) */
.dash-welcome {
  display: flex; align-items: center; justify-content: space-between;
  gap: 20px; flex-wrap: wrap;
  padding: 28px 32px;
  background: linear-gradient(135deg, rgba(37,99,235,.06), rgba(124,58,237,.04));
  border-bottom: 1px solid var(--c-border);
  border-left: 4px solid var(--c-primary);
}
.dash-welcome-text {
  font-size: 16px; color: var(--c-text); line-height: 1.55;
  flex: 1; min-width: 240px;
}
.dash-welcome-text strong:first-child {
  display: block;
  font-size: 24px; font-weight: 800;
  color: var(--c-text);
  letter-spacing: -.02em;
  margin-bottom: 6px;
}
.dash-welcome-text strong { font-weight: 700; color: var(--c-text); }

/* Dashboard – KPI dlaždice (akční) */
.dash-kpi2-rada {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 14px;
  padding: 24px 24px 4px;
}
@media (max-width: 900px) { .dash-kpi2-rada { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 520px) { .dash-kpi2-rada { grid-template-columns: 1fr; } }

.dash-kpi2 {
  display: flex; flex-direction: column; align-items: flex-start; gap: 0;
  padding: 18px 20px;
  background: var(--c-surface);
  border: 1px solid var(--c-border);
  border-radius: var(--radius-lg);
  cursor: pointer; font-family: inherit; text-align: left;
  transition: border-color .15s, box-shadow .15s, transform .1s;
}
.dash-kpi2:hover {
  border-color: var(--c-border-strong);
  box-shadow: 0 4px 16px rgba(0,0,0,.07);
  transform: translateY(-2px);
}
.dash-kpi2-cislo {
  font-size: 34px; font-weight: 800; line-height: 1.05;
  color: var(--c-text); letter-spacing: -.03em;
  font-feature-settings: "tnum" 1;
}
.dash-kpi2-label { font-size: 13.5px; font-weight: 700; color: var(--c-text); margin-top: 9px; }
.dash-kpi2-pod { font-size: 12px; color: var(--c-muted); margin-top: 2px; }

.dash-kpi2-krit.je-aktivni {
  background: linear-gradient(180deg, #fef2f2, var(--c-surface));
  border-color: #fecaca;
}
.dash-kpi2-krit.je-aktivni .dash-kpi2-cislo { color: #dc2626; }
.dash-kpi2-esk.je-aktivni {
  background: linear-gradient(180deg, #fffbeb, var(--c-surface));
  border-color: #fde68a;
}
.dash-kpi2-esk.je-aktivni .dash-kpi2-cislo { color: #d97706; }

/* Kroužek pokroku */
.dash-ring {
  position: relative;
  width: 52px; height: 52px; border-radius: 50%;
  background: conic-gradient(var(--c-primary) calc(var(--pct) * 1%), var(--c-border) 0);
  display: grid; place-items: center;
}
.dash-ring::before {
  content: ''; position: absolute;
  width: 40px; height: 40px; border-radius: 50%;
  background: var(--c-surface);
}
.dash-ring-text { position: relative; z-index: 1; font-size: 12.5px; font-weight: 800; color: var(--c-text); }

/* Dashboard – akční fronta "Vyžaduje vaši pozornost" */
.dash-fronta {
  margin: 20px 24px 0;
  background: var(--c-surface);
  border: 1px solid var(--c-border);
  border-radius: var(--radius-lg);
  overflow: hidden;
  box-shadow: 0 1px 3px rgba(0,0,0,.03);
}
.dash-fronta-hlavicka {
  display: flex; align-items: center; justify-content: space-between;
  padding: 18px 22px 14px;
  border-bottom: 1px solid var(--c-border);
}
.dash-fronta-hlavicka h3 {
  margin: 0; font-size: 16px; font-weight: 700; color: var(--c-text);
  display: inline-flex; align-items: center; gap: 8px;
}
.dash-fronta-warn { color: #d97706; font-size: 18px; }
.dash-fronta-pocet { font-size: 12.5px; color: var(--c-muted); font-weight: 600; }

.dash-fronta-list { display: flex; flex-direction: column; }
.dash-fronta-radek {
  display: flex; align-items: center; gap: 14px;
  width: 100%; text-align: left;
  padding: 14px 22px;
  background: none; border: none; border-bottom: 1px solid var(--c-border);
  cursor: pointer; font-family: inherit;
  transition: background .12s;
}
.dash-fronta-radek:last-child { border-bottom: none; }
.dash-fronta-radek:hover { background: var(--c-bg); }

.dash-fronta-sev {
  flex-shrink: 0; width: 104px;
  font-size: 10.5px; font-weight: 800; letter-spacing: .04em;
  padding: 6px 0; border-radius: 6px; text-align: center;
}
.dash-fronta-sev-crit { background: #fee2e2; color: #b91c1c; }
.dash-fronta-sev-high { background: #ffedd5; color: #c2410c; }
.dash-fronta-sev-med  { background: #fef3c7; color: #92400e; }
.dash-fronta-sev-low  { background: #f1f5f9; color: #475569; }

.dash-fronta-stred { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.dash-fronta-titul {
  font-size: 14px; font-weight: 600; color: var(--c-text);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.dash-fronta-meta {
  font-size: 12.5px; color: var(--c-muted);
  display: flex; align-items: center; gap: 6px; flex-wrap: wrap;
}
.dash-fronta-vlajky { display: inline-flex; gap: 3px; }
.dash-fronta-vlajky img.vlajka-img { display: inline-block; vertical-align: -2px; border-radius: 2px; }
.dash-fronta-tech {
  background: #fef3c7; color: #92400e; border: 1px solid #fde68a;
  font-size: 11px; font-weight: 600; padding: 1px 8px; border-radius: 999px;
}
.dash-fronta-sip { flex-shrink: 0; color: var(--c-muted); font-size: 18px; }
.dash-fronta-radek:hover .dash-fronta-sip { color: var(--c-primary); }

.dash-fronta-vsechny {
  display: block; width: 100%;
  padding: 13px; text-align: center;
  background: none; border: none; border-top: 1px solid var(--c-border);
  color: var(--c-primary); font-size: 13px; font-weight: 600;
  cursor: pointer; font-family: inherit;
  transition: background .12s;
}
.dash-fronta-vsechny:hover { background: var(--c-bg); }

.dash-fronta-prazdne { text-align: center; padding: 48px 32px; }
.dash-fronta-prazdne-ikona {
  display: inline-flex; align-items: center; justify-content: center;
  width: 52px; height: 52px; border-radius: 50%;
  background: #dcfce7; color: #16a34a; margin-bottom: 14px;
}
.dash-fronta-prazdne-ikona svg { width: 28px; height: 28px; }
.dash-fronta-prazdne h3 { margin: 0 0 6px; font-size: 17px; font-weight: 700; color: var(--c-text); }
.dash-fronta-prazdne p { margin: 0; font-size: 13.5px; color: var(--c-muted); }

/* Zvýraznění řádku po prokliku z fronty */
.dash-pub-zvyrazneno { animation: dashZvyrazni 2.4s ease; }
@keyframes dashZvyrazni {
  0%, 28% { background: rgba(37,99,235,.12); box-shadow: inset 3px 0 0 var(--c-primary); }
  100% { background: transparent; box-shadow: inset 3px 0 0 transparent; }
}

/* Dashboard – Novinky ze světa akademické bezpečnosti */
.dash-novinky {
  margin: 20px 24px 24px;
  background: var(--c-surface);
  border: 1px solid var(--c-border);
  border-radius: var(--radius-lg);
  overflow: hidden;
  box-shadow: 0 1px 3px rgba(0,0,0,.03);
}
.dash-novinky-hlavicka {
  padding: 18px 24px 14px;
  border-bottom: 1px solid var(--c-border);
}
.dash-novinky-hlavicka h3 {
  font-size: 16px; font-weight: 700; color: var(--c-text);
  margin: 0 0 4px; letter-spacing: -.01em;
}
.dash-novinky-popis { font-size: 12.5px; color: var(--c-muted); margin: 0; line-height: 1.5; }

/* Formulář pro přidání novinky */
.novinka-form {
  display: grid;
  grid-template-columns: 1fr 1fr auto;
  grid-template-areas: "titulek odkaz submit" "text text submit";
  gap: 10px;
  padding: 16px 24px;
  border-bottom: 1px solid var(--c-border);
  background: var(--c-bg);
}
.novinka-form #news-form-titulek { grid-area: titulek; }
.novinka-form #news-form-odkaz { grid-area: odkaz; }
.novinka-form textarea { grid-area: text; resize: vertical; min-height: 44px; }
.novinka-form button { grid-area: submit; align-self: stretch; white-space: nowrap; }
.novinka-form input, .novinka-form textarea {
  padding: 10px 13px; border: 1px solid var(--c-border); border-radius: 7px;
  font-size: 13.5px; font-family: inherit; background: var(--c-surface);
  transition: border-color .12s, box-shadow .12s; width: 100%;
}
.novinka-form input::placeholder, .novinka-form textarea::placeholder { color: var(--c-muted); }
.novinka-form input:focus, .novinka-form textarea:focus {
  outline: none; border-color: var(--c-primary); box-shadow: 0 0 0 3px rgba(37,99,235,.12);
}
@media (max-width: 640px) {
  .novinka-form { grid-template-columns: 1fr; grid-template-areas: "titulek" "odkaz" "text" "submit"; }
}

/* Seznam novinek */
.novinka-seznam { display: flex; flex-direction: column; }
.novinka-prazdne { padding: 36px 24px; text-align: center; color: var(--c-muted); font-size: 13px; }

.novinka-karta {
  position: relative;
  padding: 18px 48px 18px 24px;
  border-bottom: 1px solid var(--c-border);
  transition: background .12s;
}
.novinka-karta:last-child { border-bottom: none; }
.novinka-karta:hover { background: var(--c-bg); }

.novinka-meta { display: flex; align-items: center; gap: 10px; margin-bottom: 6px; }
.novinka-datum { font-size: 11.5px; color: var(--c-muted); font-weight: 500; }
.novinka-zdroj {
  font-size: 11px; font-weight: 600; color: var(--c-primary);
  background: rgba(37,99,235,.08); border: 1px solid rgba(37,99,235,.15);
  padding: 1px 8px; border-radius: 999px;
}
.novinka-titulek { margin: 0 0 5px; font-size: 15px; font-weight: 700; line-height: 1.35; letter-spacing: -.01em; color: var(--c-text); }
.novinka-titulek a { color: var(--c-text); text-decoration: none; }
.novinka-titulek a:hover { color: var(--c-primary); }
.novinka-ext { font-size: 12px; color: var(--c-muted); }
.novinka-titulek a:hover .novinka-ext { color: var(--c-primary); }
.novinka-text { margin: 0 0 8px; font-size: 13.5px; color: var(--c-text-secondary); line-height: 1.6; white-space: pre-wrap; }
.novinka-cist { font-size: 12.5px; font-weight: 600; color: var(--c-primary); text-decoration: none; }
.novinka-cist:hover { text-decoration: underline; }

.novinka-smazat {
  position: absolute; top: 14px; right: 16px;
  background: none; border: none; color: var(--c-muted);
  font-size: 18px; line-height: 1; cursor: pointer; padding: 0;
  width: 24px; height: 24px; border-radius: 5px;
  display: flex; align-items: center; justify-content: center;
  opacity: 0; transition: opacity .12s, background .12s, color .12s;
}
.novinka-karta:hover .novinka-smazat { opacity: 1; }
.novinka-smazat:hover { background: #fef2f2; color: var(--c-danger, #b91c1c); }

/* Spolupráce – pod-taby + filtry */
.dash-spoluprace-wrap {
  /* obal pro celou Spolupráci podsekci */
}
/* KPI karty (Nevyřešené / Vyřešené / K prověření) – primární filter spolupráce */
.kpi-karty {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
  padding: 20px 20px 8px;
}
@media (max-width: 900px) { .kpi-karty { grid-template-columns: 1fr; } }
.kpi-karta {
  display: flex; align-items: center; gap: 16px;
  padding: 18px 20px;
  background: var(--c-surface);
  border: 1px solid var(--c-border);
  border-radius: var(--radius-lg);
  cursor: pointer; font-family: inherit; text-align: left;
  transition: border-color .15s, background .15s, transform .15s;
  position: relative;
}
.kpi-karta:hover { border-color: var(--c-border-strong); }
.kpi-karta.active {
  border-color: currentColor;
}
.kpi-karta-ikona {
  display: inline-flex; align-items: center; justify-content: center;
  width: 44px; height: 44px;
  border-radius: 999px;
  flex-shrink: 0;
}
.kpi-karta-text {
  display: flex; flex-direction: column; gap: 2px;
  flex: 1; min-width: 0;
}
.kpi-karta-popis {
  font-size: 13px; font-weight: 600;
  color: var(--c-text);
  letter-spacing: -.005em;
}
.kpi-karta-cislo {
  font-size: 26px; font-weight: 700;
  line-height: 1.05;
  letter-spacing: -.02em;
  font-feature-settings: "tnum" 1;
  font-variant-numeric: tabular-nums;
}
.kpi-karta-sipka {
  color: var(--c-muted);
  font-size: 18px;
  transition: transform .15s, color .15s;
  flex-shrink: 0;
}
.kpi-karta:hover .kpi-karta-sipka { transform: translateX(2px); color: var(--c-text); }

/* Barevné varianty */
.kpi-karta-nevyresene { color: #b91c1c; }
.kpi-karta-nevyresene .kpi-karta-ikona { background: #fef2f2; color: #b91c1c; }
.kpi-karta-nevyresene .kpi-karta-cislo { color: #b91c1c; }
.kpi-karta-nevyresene.active { background: #fff9f9; }

.kpi-karta-vyresene { color: #047857; }
.kpi-karta-vyresene .kpi-karta-ikona { background: #ecfdf5; color: #047857; }
.kpi-karta-vyresene .kpi-karta-cislo { color: #047857; }
.kpi-karta-vyresene.active { background: #f5fefa; }

.kpi-karta-kprovereni { color: #1d4ed8; }
.kpi-karta-kprovereni .kpi-karta-ikona { background: #eff6ff; color: #1d4ed8; }
.kpi-karta-kprovereni .kpi-karta-cislo { color: #1d4ed8; }
.kpi-karta-kprovereni.active { background: #f7faff; }

.dash-spoluprace-podtaby {
  display: flex; gap: 0;
  padding: 0 20px;
  border-bottom: 1px solid var(--c-border);
  background: transparent;
}
.dash-spoluprace-podtab {
  background: none; border: none;
  padding: 14px 20px 13px;
  margin-bottom: -1px;
  font-size: 13px; font-weight: 500;
  color: var(--c-text-secondary);
  cursor: pointer; font-family: inherit;
  display: inline-flex; align-items: baseline; gap: 8px;
  border-bottom: 1.5px solid transparent;
  transition: color .15s, border-color .15s;
}
.dash-spoluprace-podtab:hover { color: var(--c-text); }
.dash-spoluprace-podtab.active {
  color: var(--c-text);
  font-weight: 600;
  border-bottom-color: var(--c-text);
}
.dash-podtab-pocet {
  font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace;
  font-size: 11px; font-weight: 500;
  background: transparent; color: var(--c-muted);
  padding: 0;
  border-radius: 0;
  border: none;
  min-width: 0;
  font-feature-settings: "tnum" 1;
}
.dash-spoluprace-podtab.active .dash-podtab-pocet {
  background: transparent; color: var(--c-text-secondary); border-color: transparent;
}

.dash-spoluprace-filtry {
  display: flex; flex-wrap: wrap;
  gap: 14px 28px;
  padding: 18px 20px;
  border-bottom: 1px solid var(--c-border);
  background: transparent;
  align-items: center;
}
.dash-filtr-skupina {
  display: flex; align-items: center; gap: 4px;
  flex-wrap: wrap;
}
.dash-filtr-label {
  font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace;
  font-size: 11px; font-weight: 500;
  color: var(--c-muted);
  letter-spacing: .08em;
  text-transform: uppercase;
  margin-right: 8px;
  white-space: nowrap;
}
.riziko-chip, .typ-chip, .rok-chip {
  background: transparent;
  border: none;
  color: var(--c-text-secondary);
  padding: 4px 8px 6px;
  border-radius: 0;
  font-size: 13px; font-weight: 500;
  cursor: pointer; font-family: inherit;
  transition: color .12s, border-color .12s;
  letter-spacing: -.005em;
  white-space: nowrap;
  border-bottom: 1.5px solid transparent;
}
.riziko-chip:hover, .typ-chip:hover, .rok-chip:hover {
  color: var(--c-text);
}
.riziko-chip.active, .typ-chip.active, .rok-chip.active {
  color: var(--c-text);
  font-weight: 600;
  background: transparent;
  border-bottom-color: var(--c-text);
}

/* Pod-přepínač výsledku pod tabem Vyřešené */
.dash-vyresene-segment {
  display: inline-flex; gap: 2px;
  margin: 12px 20px 0;
  padding: 3px;
  background: var(--c-bg);
  border: 1px solid var(--c-border);
  border-radius: 9px;
}
.vyresene-seg {
  background: none; border: none;
  padding: 5px 12px; border-radius: 6px;
  font-size: 12px; font-weight: 600;
  color: var(--c-muted); cursor: pointer; font-family: inherit;
  transition: background .12s, color .12s;
}
.vyresene-seg:hover { color: var(--c-text); }
.vyresene-seg.active {
  background: var(--c-surface); color: var(--c-text);
  box-shadow: 0 1px 2px rgba(0,0,0,.08);
}

/* Filtr dropdown (Země / Technologie) */
.dash-filtr-dropdown { position: relative; display: inline-flex; }
.dash-filtr-dd-btn {
  display: inline-flex; align-items: center; gap: 7px;
  background: transparent; border: none;
  color: var(--c-text-secondary);
  padding: 4px 8px 6px;
  border-radius: 0;
  font-size: 13px; font-weight: 500; cursor: pointer;
  font-family: inherit; transition: color .12s, border-color .12s;
  letter-spacing: -.005em;
  border-bottom: 1.5px solid transparent;
}
.dash-filtr-dd-btn:hover:not([disabled]) { color: var(--c-text); }
.dash-filtr-dd-btn[disabled] { opacity: .45; cursor: default; }
.dash-filtr-dd-btn.dd-otevreno {
  color: var(--c-text);
  font-weight: 600;
  border-bottom-color: var(--c-text);
}
.dash-filtr-dd-btn .dd-sip { font-size: 10px; color: var(--c-muted); }
.dd-badge {
  font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace;
  font-size: 11px; font-weight: 500; line-height: 1;
  background: transparent; color: var(--c-muted);
  padding: 0;
  border-radius: 0;
  margin-left: 2px;
  font-feature-settings: "tnum" 1;
}
.dash-filtr-dd-panel {
  position: absolute; top: calc(100% + 6px); left: 0; z-index: 40;
  width: 290px; max-height: 320px; overflow-y: auto;
  background: var(--c-surface); border: 1px solid var(--c-border);
  border-radius: 10px; box-shadow: 0 8px 28px rgba(0,0,0,.14);
  padding: 6px;
}
.dd-polozka {
  display: flex; align-items: center; gap: 10px;
  padding: 8px 10px; border-radius: 7px;
  font-size: 13px; color: var(--c-text); cursor: pointer;
  transition: background .1s;
}
.dd-polozka:hover { background: var(--c-bg); }
.dd-polozka input[type="checkbox"] {
  width: 16px; height: 16px; min-width: 16px;
  flex: 0 0 16px;
  margin: 0; padding: 0; border-radius: 4px;
  cursor: pointer; accent-color: var(--c-primary);
}
.dd-polozka-text { flex: 1; min-width: 0; text-align: left; line-height: 1.3; }
.dd-polozka-text img.vlajka-img { display: inline-block; vertical-align: -2px; margin-right: 7px; }
.dd-pocet {
  flex-shrink: 0;
  font-size: 11.5px; font-weight: 600; color: var(--c-muted);
  background: var(--c-bg); padding: 2px 9px; border-radius: 999px;
}

/* Přepínač "Skrýt mega kolaborace" */
.dash-filtr-toggle {
  display: inline-flex; align-items: center; gap: 8px;
  font-size: 13px; color: var(--c-text-secondary);
  cursor: pointer; user-select: none; white-space: nowrap;
}
.dash-filtr-toggle input[type="checkbox"] {
  width: 16px; height: 16px; min-width: 16px;
  flex: 0 0 16px;
  margin: 0; padding: 0; border-radius: 4px;
  cursor: pointer; accent-color: var(--c-primary);
}
.dash-filtr-toggle:hover { color: var(--c-text); }
.dash-filtr-toggle-hint {
  font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace;
  font-size: 11px; color: var(--c-muted);
  background: transparent; border: none;
  padding: 0; border-radius: 0;
  letter-spacing: .02em;
}

/* Reset + aktivní filtry */
.dash-filtr-reset {
  background: none; border: none;
  color: var(--c-muted); font-size: 13px; font-weight: 500;
  cursor: pointer; font-family: inherit; align-self: center;
  margin-left: auto; padding: 5px 8px; border-radius: 6px;
}
.dash-filtr-reset:hover { color: var(--c-danger, #b91c1c); background: var(--c-bg); }
.dash-filtr-aktivni {
  display: flex; flex-wrap: wrap; gap: 7px;
  padding: 12px 20px 0;
}
.filtr-stitek {
  display: inline-flex; align-items: center; gap: 5px;
  background: var(--c-bg); border: 1px solid var(--c-border);
  color: var(--c-text-secondary);
  padding: 4px 10px; border-radius: 999px;
  font-size: 12px; font-weight: 500; cursor: pointer;
  transition: background .12s, color .12s, border-color .12s;
}
.filtr-stitek:hover {
  background: #fef2f2; border-color: #fecaca; color: #b91c1c;
}

.moje-inst-filter-info {
  padding: 12px 20px;
  font-size: 12px; color: var(--c-muted);
  margin: 0;
}

/* Tabulky pro Historii prověřování + Reporty */
.dash-tabulka-wrap {
  padding: 0;
}
.dash-tabulka-hlavicka {
  padding: 20px 24px 14px;
  border-bottom: 1px solid var(--c-border);
  display: flex; align-items: center; flex-wrap: wrap; gap: 12px;
}
.dash-tabulka-hlavicka h3 {
  margin: 0;
  font-size: 16px; font-weight: 700; color: var(--c-text);
}
.dash-tabulka-popis {
  margin: 0;
  font-size: 12.5px; color: var(--c-muted);
  flex: 1; min-width: 0;
}
.dash-tabulka-akce { margin-left: auto; flex-shrink: 0; }

.dash-tabulka {
  width: 100%;
  border-collapse: collapse;
  font-size: 13px;
}
.dash-tabulka thead {
  background: var(--c-bg);
}
.dash-tabulka th {
  text-align: left;
  padding: 10px 16px;
  font-size: 11px; font-weight: 700;
  color: var(--c-muted);
  letter-spacing: .06em;
  text-transform: uppercase;
  border-bottom: 1px solid var(--c-border);
}
.dash-tabulka td {
  padding: 12px 16px;
  border-bottom: 1px solid var(--c-border);
  color: var(--c-text);
  vertical-align: top;
}
.dash-tabulka tbody tr:hover { background: var(--c-bg); }
.dash-tabulka tbody tr:last-child td { border-bottom: none; }

.hist-prov-meta {
  font-size: 11.5px; color: var(--c-muted);
}
.hist-typ-osoba, .hist-typ-instituce {
  display: inline-block;
  font-size: 12px;
  padding: 2px 8px;
  border-radius: 999px;
  background: var(--c-bg);
  color: var(--c-text-secondary);
  border: 1px solid var(--c-border);
}
.hist-prov-akce, .dr-rep-akce {
  white-space: nowrap;
  text-align: right;
}
.hist-prov-akce-hlavicka { text-align: right; }

.historie-badge {
  display: inline-block;
  font-size: 11px; font-weight: 600;
  padding: 3px 9px;
  border-radius: 999px;
  letter-spacing: .02em;
}
.historie-badge-ok { background: #ecfdf5; color: #047857; border: 1px solid #a7f3d0; }
.historie-badge-warn { background: #fffbeb; color: #b45309; border: 1px solid #fde68a; }
.historie-badge-riziko { background: #fef2f2; color: #b91c1c; border: 1px solid #fecaca; }
.historie-badge-info { background: #eff6ff; color: #1d4ed8; border: 1px solid #bfdbfe; }
.historie-badge-neutral { background: var(--c-bg); color: var(--c-muted); border: 1px solid var(--c-border); }

/* Btn link – text-only buttons v tabulkách */
.btn-link {
  background: none; border: none;
  color: var(--c-primary);
  font-size: 12.5px; font-weight: 600;
  cursor: pointer; font-family: inherit;
  padding: 4px 8px;
  border-radius: 4px;
  transition: background .12s, color .12s;
}
.btn-link:hover { background: var(--c-primary-light); }
.btn-link-danger { color: var(--c-muted); font-size: 16px; line-height: 1; }
.btn-link-danger:hover { background: var(--c-bg); color: var(--c-danger); }

.btn-sm {
  padding: 6px 12px !important;
  font-size: 12.5px !important;
}

/* ── Sankční databáze – browse modal ─────────────────────────────────────── */
.sankce-db-modal-box {
  max-width: 980px !important;
  max-height: 90vh;
  width: 96%;
  padding: 0 !important;
  position: relative;
  overflow: hidden;
  background: var(--c-surface);
  display: flex; flex-direction: column;
}
/* Sankce DB modal — výraznější close button (default rgba(.06) je málo vidět na bílé hlavičce) */
.sankce-db-modal-box > .modal-close {
  z-index: 100;
  background: var(--c-bg);
  border: 1px solid var(--c-border);
  color: var(--c-text);
  font-size: 20px; font-weight: 600;
}
.sankce-db-modal-box > .modal-close:hover {
  background: var(--c-border);
  border-color: var(--c-border-strong);
}
.sankce-db-hlavicka {
  padding: 22px 56px 16px 28px;
  border-bottom: 1px solid var(--c-border);
  background: var(--c-surface);
  flex-shrink: 0;
}
.sankce-db-hlavicka h3 {
  font-size: 17px; font-weight: 700;
  color: var(--c-text);
  margin: 0 0 4px;
  letter-spacing: -.01em;
}
.sankce-db-hlavicka p {
  font-size: 12.5px; color: var(--c-text-secondary);
  margin: 0; line-height: 1.55;
}

.sankce-db-toolbar {
  display: flex; gap: 10px; align-items: center; flex-wrap: wrap;
  padding: 14px 28px;
  border-bottom: 1px solid var(--c-border);
  background: var(--c-bg);
  flex-shrink: 0;
}
.sankce-db-toolbar input[type="search"] {
  flex: 1; min-width: 200px;
  padding: 8px 12px;
  border: 1px solid var(--c-border);
  border-radius: 6px;
  font-size: 13px; font-family: inherit;
}
.sankce-db-toolbar input[type="search"]:focus {
  outline: none;
  border-color: var(--c-primary);
  box-shadow: 0 0 0 3px rgba(37,99,235,.12);
}
.sankce-db-toolbar select {
  padding: 8px 10px;
  border: 1px solid var(--c-border);
  border-radius: 6px;
  font-size: 13px; font-family: inherit;
  background: var(--c-surface);
  cursor: pointer;
}
.sankce-db-pocet {
  font-size: 12px; color: var(--c-muted);
  margin-left: auto;
  white-space: nowrap;
}

.sankce-db-tabulka-wrap {
  flex: 1;
  overflow-y: auto;
  padding: 0 28px;
  background: var(--c-surface);
}
.sankce-db-tabulka {
  width: 100%;
  border-collapse: collapse;
  font-size: 13px;
}
.sankce-db-tabulka thead {
  position: sticky; top: 0;
  background: var(--c-surface);
  z-index: 1;
}
.sankce-db-tabulka th {
  text-align: left;
  padding: 10px 12px;
  font-size: 11px; font-weight: 700;
  color: var(--c-muted);
  letter-spacing: .06em;
  text-transform: uppercase;
  border-bottom: 1px solid var(--c-border);
}
.sankce-db-tabulka td {
  padding: 10px 12px;
  border-bottom: 1px solid var(--c-border);
  vertical-align: top;
}
.sankce-db-tabulka tbody tr {
  cursor: pointer;
  transition: background .1s;
}
.sankce-db-tabulka tbody tr:hover { background: var(--c-bg); }
.sankce-db-tabulka tbody tr:last-child td { border-bottom: none; }
.sankce-db-alias {
  font-size: 11px; color: var(--c-muted); font-style: italic;
}
.sankce-db-typ {
  display: inline-block;
  background: var(--c-bg);
  color: var(--c-text-secondary);
  padding: 2px 8px;
  border-radius: 999px;
  font-size: 11px; font-weight: 500;
  border: 1px solid var(--c-border);
}
.sankce-db-dataset-chip {
  display: inline-block;
  background: #fef2f2;
  color: #b91c1c;
  border: 1px solid #fecaca;
  padding: 1px 6px;
  border-radius: 4px;
  font-size: 10px; font-weight: 700;
  letter-spacing: .04em;
  margin-right: 3px;
  margin-bottom: 3px;
}
.sankce-db-akce { white-space: nowrap; text-align: right; }

.sankce-db-paging {
  display: flex; align-items: center; gap: 12px;
  padding: 14px 28px;
  border-top: 1px solid var(--c-border);
  background: var(--c-surface);
  flex-shrink: 0;
}
.sankce-db-paging-info {
  flex: 1; text-align: center;
  font-size: 12px; color: var(--c-muted);
}

/* ── Sankční záznam – detail modal ───────────────────────────────────────── */
.sankce-detail-modal-box {
  max-width: 720px !important;
  max-height: 90vh;
  width: 96%;
  padding: 32px !important;
  position: relative;
  overflow-y: auto;
}
.sankce-detail-hlavicka {
  margin-bottom: 22px;
  padding-bottom: 18px;
  border-bottom: 1px solid var(--c-border);
}
.sankce-detail-badge {
  display: inline-block;
  background: linear-gradient(135deg, #b91c1c, #dc2626);
  color: #fff;
  font-size: 10px; font-weight: 700;
  letter-spacing: .12em;
  padding: 3px 10px;
  border-radius: 999px;
  margin-bottom: 10px;
}
.sankce-detail-hlavicka h2 {
  font-size: 22px; font-weight: 800;
  color: var(--c-text);
  letter-spacing: -.02em;
  margin: 0 0 10px;
  line-height: 1.25;
}
.sankce-detail-meta {
  display: flex; gap: 10px; align-items: center; flex-wrap: wrap;
}
.sankce-detail-typ {
  font-size: 12px;
  background: var(--c-bg);
  color: var(--c-text);
  padding: 3px 10px;
  border-radius: 999px;
  border: 1px solid var(--c-border);
  font-weight: 500;
}
.sankce-detail-zeme {
  display: inline-flex; align-items: center; gap: 5px;
  font-size: 12px; color: var(--c-text-secondary);
}

.sankce-detail-grid {
  display: flex; flex-direction: column;
  gap: 18px;
}
.sankce-detail-sekce h4 {
  font-size: 11px; font-weight: 700;
  color: var(--c-muted);
  letter-spacing: .08em;
  text-transform: uppercase;
  margin: 0 0 8px;
}
.sankce-detail-sekce p {
  font-size: 13.5px; color: var(--c-text);
  line-height: 1.6;
  margin: 0;
}
.sankce-detail-poznamka {
  background: var(--c-bg);
  padding: 10px 12px;
  border-radius: 6px;
  font-size: 13px !important;
  color: var(--c-text-secondary) !important;
  white-space: pre-wrap;
}
.sankce-detail-chipset {
  display: flex; flex-wrap: wrap; gap: 6px;
}
.sankce-detail-chip {
  display: inline-flex; align-items: center;
  background: var(--c-bg);
  color: var(--c-text);
  font-size: 12px;
  padding: 4px 10px;
  border-radius: 999px;
  border: 1px solid var(--c-border);
}
.sankce-detail-chip-program {
  background: #fef2f2;
  color: #991b1b;
  border-color: #fecaca;
}
.sankce-detail-aliasy {
  margin: 0; padding: 0 0 0 18px;
  font-size: 13px; color: var(--c-text-secondary);
  line-height: 1.55;
  columns: 2; column-gap: 24px;
}
@media (max-width: 600px) { .sankce-detail-aliasy { columns: 1; } }
.sankce-detail-aliasy li { margin-bottom: 3px; break-inside: avoid; }
.sankce-detail-vice {
  font-size: 12px; color: var(--c-muted);
  margin: 6px 0 0 !important;
  font-style: italic;
}
.sankce-detail-id code {
  display: inline-block;
  background: var(--c-bg);
  padding: 4px 10px;
  border-radius: 4px;
  font-size: 12px;
  color: var(--c-text-secondary);
  font-family: ui-monospace, monospace;
  word-break: break-all;
}
.sankce-detail-zdroj-link {
  font-size: 13px;
  color: var(--c-primary);
  text-decoration: none;
  font-weight: 600;
}
.sankce-detail-zdroj-link:hover { text-decoration: underline; }

/* ── Popover detail button ─────────────────────────────────────────────── */
.sankce-popover-akce {
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px solid var(--c-border);
}
.sankce-popover-detail-btn {
  display: block;
  width: 100%;
  background: var(--c-primary);
  color: #fff;
  border: none;
  padding: 8px 12px;
  border-radius: 6px;
  font-size: 12.5px; font-weight: 600;
  cursor: pointer; font-family: inherit;
  text-align: center;
  transition: background .15s;
}
.sankce-popover-detail-btn:hover { background: var(--c-primary-hover); }

/* ── Nastavení – inline link ─────────────────────────────────────────────── */
.nastaveni-inline-link {
  color: var(--c-primary);
  text-decoration: none;
  font-weight: 600;
}
.nastaveni-inline-link:hover { text-decoration: underline; }

/* ── Sedm synů čínské národní obrany ─────────────────────────────────────── */
/* Badge / chip používaný na dashboardu Moje instituce u publikací */
.dash-pub-sedmsynu-chip {
  display: inline-flex; align-items: center; gap: 4px;
  padding: 3px 9px;
  background: linear-gradient(135deg, #b91c1c, #dc2626);
  color: #fff;
  font-size: 11px; font-weight: 700;
  letter-spacing: .03em;
  border: none;
  border-radius: 999px;
  cursor: pointer;
  box-shadow: 0 1px 3px rgba(220, 38, 38, .35);
  transition: transform .08s, box-shadow .12s;
}
.dash-pub-sedmsynu-chip:hover {
  transform: translateY(-1px);
  box-shadow: 0 3px 8px rgba(220, 38, 38, .45);
}
.dash-pub-sedmsynu { /* highlight publikace s vazbou na 7 synů */
  border-left: 3px solid #dc2626;
}

/* Mini ikona vedle afiliace v rozkliknutém detailu publikace */
.dash-coauth-sedmsynu {
  display: inline-flex; align-items: center; justify-content: center;
  width: 18px; height: 18px;
  background: #dc2626; color: #fff;
  border: none; border-radius: 50%;
  font-size: 11px; font-weight: 700;
  cursor: pointer;
  margin-left: 4px;
  transition: transform .08s;
}
.dash-coauth-sedmsynu:hover { transform: scale(1.15); }

/* Banner – varovný blok v prověření instituce / osoby */
.sedm-synu-banner {
  display: flex; align-items: flex-start; gap: 12px;
  padding: 15px 18px;
  margin: 12px 0 18px;
  border-radius: 12px;
  border: 1px solid #fecdd3;
  background: #fef2f2;
  box-shadow: 0 1px 2px rgba(15,23,42,.04);
}
.sedm-synu-banner-prim { /* sám partner je 7 synů — vyšší úroveň */
  border-color: #fca5a5;
  background: #fff1f2;
}
.sedm-synu-banner-sec { /* spolupráce s 7 syny */
  border-color: #fecdd3;
  background: #fef2f2;
}
.sedm-synu-banner-ikona {
  flex-shrink: 0;
  width: 28px; height: 28px;
  border-radius: 8px;
  background: #fee2e2;
  color: #dc2626;
  display: flex; align-items: center; justify-content: center;
  margin-top: 1px;
}
.sedm-synu-banner-ikona svg { width: 16px; height: 16px; }
.sedm-synu-banner-text {
  flex: 1; min-width: 0;
  color: #9f1239;
  font-size: 13px;
}
.sedm-synu-banner-text strong {
  display: block;
  font-size: 14px; font-weight: 650;
  color: #881337;
  margin-bottom: 4px;
}
.sedm-synu-banner-text p {
  margin: 0; line-height: 1.5;
}
.sedm-synu-banner-list {
  margin: 8px 0 0; padding-left: 20px;
  font-size: 12.5px;
}
.sedm-synu-banner-list li { margin-bottom: 6px; }

/* Vnořený seznam konkrétních publikací s odkazy */
.sedm-synu-pub-list {
  margin: 5px 0 8px; padding-left: 16px;
  list-style: none;
}
.sedm-synu-pub {
  margin-bottom: 4px;
  font-size: 12px;
  line-height: 1.4;
  position: relative;
  padding-left: 14px;
}
.sedm-synu-pub::before {
  content: "→";
  position: absolute;
  left: 0;
  color: var(--c-muted);
  font-weight: 700;
}
.sedm-synu-pub a {
  color: var(--c-primary);
  font-weight: 600;
  text-decoration: underline;
  text-decoration-color: rgba(37, 99, 235, .25);
}
.sedm-synu-pub a:hover { text-decoration-color: var(--c-primary); }
.sedm-synu-pub-rok {
  display: inline-block;
  font-size: 10.5px; font-weight: 700;
  background: var(--c-surface, #f1f5f9);
  color: var(--c-text-secondary);
  padding: 0 6px; border-radius: 999px;
  margin: 0 2px;
}
.sedm-synu-pub-autor {
  color: var(--c-muted);
  font-size: 11.5px;
}
.sedm-synu-pub-vice {
  font-size: 11.5px; font-style: italic;
  color: var(--c-muted);
  padding-left: 14px;
  list-style: none;
}
.sedm-synu-vlastni {
  margin-top: 6px;
  font-size: 12px; font-weight: 600;
  color: #9f1239;
  background: #ffe4e6;
  padding: 5px 11px;
  border-radius: 8px;
  display: inline-flex; align-items: center; gap: 6px;
}
.sedm-synu-vlastni svg { width: 13px; height: 13px; flex-shrink: 0; }
.sedm-synu-banner-akce {
  flex-shrink: 0;
  background: #fff; color: #be123c;
  border: 1px solid #fecdd3; border-radius: 8px;
  padding: 8px 14px;
  font-size: 12.5px; font-weight: 600;
  cursor: pointer;
  align-self: center;
  white-space: nowrap;
  transition: background .12s, border-color .12s;
}
.sedm-synu-banner-akce:hover { background: #fff1f2; border-color: #fca5a5; }

/* Modal s detailem 7 synů */
.sedm-synu-modal-box {
  max-width: 760px !important;
  max-height: 90vh;
  width: 96%;
  padding: 32px !important;
  position: relative;
  overflow-y: auto;
}
.sedm-synu-hlavicka {
  display: flex; align-items: center; gap: 16px;
  margin-bottom: 18px;
  padding-bottom: 16px;
  border-bottom: 2px solid #fecaca;
}
.sedm-synu-ikona {
  font-size: 36px;
  color: #b91c1c;
  flex-shrink: 0;
}
.sedm-synu-hlavicka h3 {
  margin: 0; font-size: 22px; font-weight: 800;
  color: var(--c-text); letter-spacing: -.02em;
}
.sedm-synu-podtitulek {
  margin: 4px 0 0;
  font-size: 13px; color: var(--c-muted);
  font-style: italic;
}
.sedm-synu-context {
  background: #fff7ed;
  border-left: 3px solid #f59e0b;
  padding: 12px 16px;
  border-radius: 6px;
  margin-bottom: 16px;
  font-size: 13.5px;
}
.sedm-synu-context.hidden { display: none; }
.sedm-synu-context p { margin: 0 0 4px; }
.sedm-synu-context p:last-child { margin-bottom: 0; }
.sedm-synu-popis {
  font-size: 13.5px;
  line-height: 1.6;
  color: var(--c-text);
  margin: 0 0 18px;
}
.sedm-synu-seznam-nadpis {
  font-size: 14px; font-weight: 700;
  color: var(--c-text);
  margin: 18px 0 8px;
  text-transform: uppercase;
  letter-spacing: .04em;
}
.sedm-synu-tabulka {
  width: 100%;
  border-collapse: collapse;
  font-size: 12.5px;
  margin-bottom: 18px;
}
.sedm-synu-tabulka th {
  background: var(--c-text); color: #fff;
  text-align: left;
  padding: 8px 12px;
  font-size: 11px; font-weight: 600;
  text-transform: uppercase; letter-spacing: .04em;
}
.sedm-synu-tabulka td {
  padding: 8px 12px;
  border-bottom: 1px solid var(--c-border);
  vertical-align: top;
}
.sedm-synu-tabulka tbody tr:hover {
  background: #fef2f2;
}
.sedm-synu-doporuceni {
  background: #f0fdf4;
  border-left: 3px solid #10b981;
  padding: 14px 18px;
  border-radius: 6px;
  margin-bottom: 16px;
}
.sedm-synu-doporuceni h4 {
  margin: 0 0 8px;
  font-size: 13px; font-weight: 700;
  color: #065f46;
}
.sedm-synu-doporuceni ul {
  margin: 0; padding-left: 20px;
  font-size: 12.5px; line-height: 1.6;
}
.sedm-synu-doporuceni li { margin-bottom: 3px; }
.sedm-synu-zdroje {
  font-size: 12.5px;
  color: var(--c-muted);
  border-top: 1px solid var(--c-border);
  padding-top: 14px;
}
.sedm-synu-zdroje strong { color: var(--c-text); }
.sedm-synu-zdroje ul {
  margin: 6px 0 0; padding-left: 20px;
}
.sedm-synu-zdroje li { margin-bottom: 3px; }
.sedm-synu-zdroje a {
  color: var(--c-primary); text-decoration: none;
}
.sedm-synu-zdroje a:hover { text-decoration: underline; }


/* ════════════════════════════════════════════════════════════════════════════
   Landing page (pro nepřihlášené uživatele)
   Filozofie: typografie nad ilustracemi, jeden akcent, asymetrie, "akademický
   newsletter" pocit místo SaaS templateu.
   ════════════════════════════════════════════════════════════════════════════ */

/* Přepínání landing ↔ app podle stavu přihlášení (body.je-prihlasen řídí JS). */
body:not(.je-prihlasen) > header,
body:not(.je-prihlasen) > .page-hero,
body:not(.je-prihlasen) > main {
  display: none;
}
body.je-prihlasen #landing-page {
  display: none;
}

#landing-page {
  background: #fdfcfa;
  color: var(--c-text);
  min-height: 100vh;
}

/* ─── DARK TOP: navy gradient (stejný jako .page-hero v appce) ─── */
.lp-top {
  background: var(--c-navy);
  background-image: linear-gradient(180deg, var(--c-navy) 0%, var(--c-navy-mid) 100%);
  color: #fff;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}

/* NAV — na dark, full-width edge-to-edge (logo úplně vlevo, akce úplně vpravo) */
.lp-nav {
  display: flex; align-items: center; justify-content: space-between;
  padding: 30px 48px;
}
.lp-logo { text-decoration: none; display: block; }
.lp-logo-wordmark {
  display: flex; align-items: baseline; gap: 14px;
}
.lp-logo-wordmark h1 {
  font-size: clamp(22px, 1.6vw, 28px);
  font-weight: 800; color: #fff;
  letter-spacing: .08em;
  margin: 0; line-height: 1;
}
.lp-logo-divider {
  width: 1px; height: 24px;
  background: rgba(255,255,255,.22);
  align-self: center;
}
.lp-logo-sub {
  font-size: clamp(13.5px, 1.05vw, 16px);
  color: rgba(255,255,255,.55);
  font-weight: 500;
}
.lp-nav-akce { display: flex; align-items: center; gap: 10px; }
.lp-nav-prihlasit {
  background: none; border: none;
  color: rgba(255,255,255,.78);
  font-size: 15px; font-weight: 500; line-height: 1;
  padding: 12px 18px; border-radius: 7px;
  cursor: pointer; font-family: inherit;
  transition: color .12s, background .12s;
}
.lp-nav-prihlasit:hover { color: #fff; background: rgba(255,255,255,.06); }
.lp-nav-cta {
  background: #fff; color: var(--c-navy); border: none;
  padding: 13px 24px; border-radius: 8px;
  font-size: 15px; font-weight: 600; line-height: 1;
  cursor: pointer; font-family: inherit;
  transition: background .12s, transform .08s, box-shadow .15s;
  box-shadow: 0 2px 14px rgba(255,255,255,.08);
}
.lp-nav-cta:hover {
  background: rgba(255,255,255,.94);
  box-shadow: 0 4px 22px rgba(255,255,255,.16);
}
.lp-nav-cta:active { transform: translateY(1px); }

.lp-main {
  max-width: 1180px; margin: 0 auto;
  padding: 0 40px;
}

/* Eyebrow — outside dark uses muted; uvnitř .lp-top je světlejší */
.lp-eyebrow {
  display: inline-block;
  font-size: 11.5px; font-weight: 600;
  text-transform: uppercase; letter-spacing: .14em;
  color: var(--c-muted);
}
.lp-top .lp-eyebrow { color: rgba(255,255,255,.45); }

/* ─── HERO (asymetrický 1.1:1, text vlevo + velké logo vpravo) ─── */
/* flex:1 vyplní zbytek viewportu pod nav. align-content:start + asymetrický
   vertikální padding posadí obsah blíž k nav, ne až na střed viewportu. */
.lp-hero {
  flex: 1;
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
  gap: clamp(48px, 6vw, 96px);
  padding: clamp(48px, 6vh, 88px) 48px clamp(56px, 8vh, 120px);
  max-width: 1500px;
  width: 100%;
  margin: 0 auto;
  align-items: center;
  align-content: start;
}
@media (max-width: 940px) {
  .lp-hero { grid-template-columns: 1fr; gap: 40px; padding: 56px 24px 80px; }
}
.lp-hero-text { padding-top: 0; }
.lp-titulek {
  /* fluid: 40 px na mobilu → 80 px na 4K, plynule */
  font-size: clamp(40px, 5.2vw, 80px);
  line-height: 1.02;
  font-weight: 700;
  letter-spacing: -.028em;
  margin: 24px 0 28px;
  color: #fff;
  max-width: 16ch;
}
@media (max-width: 940px) { .lp-titulek { max-width: 100%; } }
.lp-podtitulek {
  font-size: clamp(17px, 1.25vw, 21px);
  line-height: 1.6;
  color: rgba(255,255,255,.72);
  margin: 0 0 38px; max-width: 40em;
}
.lp-cta-rada {
  display: flex; align-items: center; gap: 20px; flex-wrap: wrap;
}
.lp-cta {
  background: var(--c-primary); color: #fff; border: none;
  padding: 17px 34px; border-radius: 8px;
  font-size: 16px; font-weight: 600; line-height: 1;
  cursor: pointer; font-family: inherit;
  display: inline-flex; align-items: center; gap: 10px;
  transition: background .15s, transform .08s, box-shadow .15s;
  box-shadow: 0 4px 14px rgba(37,99,235,.4);
}
.lp-cta:hover { background: #1d4ed8; box-shadow: 0 6px 22px rgba(37,99,235,.5); }
.lp-cta:active { transform: translateY(1px); }
.lp-cta-veliky { padding: 19px 42px; font-size: 17px; }
.lp-cta-poznamka { font-size: 13.5px; color: var(--c-muted); }
.lp-top .lp-cta-poznamka { color: rgba(255,255,255,.5); }

/* HERO — velké logo vpravo (fluid scale na 4K) */
.lp-hero-logo {
  display: flex; align-items: center; justify-content: center;
}
.lp-hero-logo img {
  max-width: 100%;
  width: clamp(320px, 38vw, 720px);
  filter: drop-shadow(0 0 100px rgba(255,255,255,.13));
  display: block;
}
@media (max-width: 940px) {
  .lp-hero-logo img { width: 280px; }
}

/* ─── FUNKCE — číslovaný seznam (anti-AI: outlined numerals, žádný icon grid) ─── */
.lp-funkce { padding: 48px 0 56px; }
.lp-funkce-uvod { margin-bottom: 32px; max-width: 720px; }
.lp-funkce-uvod h2 {
  font-size: 28px; line-height: 1.2; font-weight: 700;
  letter-spacing: -.02em;
  margin: 8px 0 0;
}
.lp-funkce-seznam {
  list-style: none; padding: 0; margin: 0;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  border-top: 1px solid rgba(15,23,42,.12);
  border-bottom: 1px solid rgba(15,23,42,.12);
}
.lp-funkce-polozka {
  padding: 22px 22px;
  display: block;
}
.lp-funkce-polozka:nth-child(3n+1) { padding-left: 0; }
.lp-funkce-polozka:nth-child(3n)   { padding-right: 0; }
.lp-funkce-polozka:not(:nth-child(3n+1)) {
  border-left: 1px solid rgba(15,23,42,.12);
}
.lp-funkce-polozka:nth-child(n+4) {
  border-top: 1px solid rgba(15,23,42,.12);
}
.lp-funkce-cislo {
  display: block;
  font-size: 40px;
  font-weight: 800;
  line-height: .9;
  letter-spacing: -.04em;
  font-feature-settings: "tnum" 1;
  color: transparent;
  -webkit-text-stroke: 1.25px rgba(15,23,42,.30);
  text-stroke: 1.25px rgba(15,23,42,.30);
  user-select: none;
  margin-bottom: 8px;
}
.lp-funkce-text h3 {
  font-size: 17px; font-weight: 700; letter-spacing: -.015em;
  margin: 0 0 6px;
}
.lp-funkce-text p {
  font-size: 13.5px; line-height: 1.55; color: var(--c-text-secondary);
  margin: 0 0 10px;
}
.lp-funkce-text code {
  font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace;
  font-size: 12.5px;
  background: rgba(15,23,42,.06); padding: 1px 6px; border-radius: 4px;
  color: var(--c-text);
}
.lp-funkce-tagy {
  list-style: none; padding: 0; margin: 0;
  display: flex; flex-wrap: wrap; gap: 5px 6px;
}
.lp-funkce-tagy li {
  font-size: 10.5px;
  font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace;
  letter-spacing: .01em;
  color: var(--c-text-secondary);
  padding: 2px 7px;
  border: 1px solid rgba(15,23,42,.18);
  border-radius: 2px;
  background: transparent;
  line-height: 1.4;
  white-space: nowrap;
}
@media (max-width: 1000px) {
  .lp-funkce-seznam { grid-template-columns: repeat(2, 1fr); }
  .lp-funkce-polozka:not(:nth-child(3n+1)) { border-left: none; }
  .lp-funkce-polozka:nth-child(n+4) { border-top: none; }
  .lp-funkce-polozka:not(:nth-child(2n+1)) { border-left: 1px solid rgba(15,23,42,.12); }
  .lp-funkce-polozka:nth-child(n+3) { border-top: 1px solid rgba(15,23,42,.12); }
}
@media (max-width: 640px) {
  .lp-funkce-seznam { grid-template-columns: 1fr; }
  .lp-funkce-polozka { padding: 28px 0; }
  .lp-funkce-polozka:not(:nth-child(2n+1)) { border-left: none; }
  .lp-funkce-polozka:nth-child(n+2) { border-top: 1px solid rgba(15,23,42,.12); }
  .lp-funkce-polozka:first-child { border-top: none; }
  .lp-funkce-cislo { font-size: 48px; margin-bottom: 10px; }
}

/* ─── POD POKLIČKOU (jiný subtilní background — single shift, ne gradient) ─── */
.lp-pod-poklickou {
  padding: 80px 40px;
  background: #f5f3ee;
  margin: 0 -40px;
}
.lp-pod-poklickou header { max-width: 720px; margin-bottom: 40px; }
.lp-pod-poklickou h2 {
  font-size: 32px; line-height: 1.2; font-weight: 700; letter-spacing: -.02em;
  margin: 12px 0 0;
}
.lp-zdroje {
  display: grid; grid-template-columns: repeat(2, 1fr);
  gap: 24px 56px;
  margin: 0; padding: 0;
  max-width: 980px;
}
@media (max-width: 700px) { .lp-zdroje { grid-template-columns: 1fr; } }
.lp-zdroje > div {
  border-top: 1px solid rgba(15,23,42,.14);
  padding-top: 14px;
}
.lp-zdroje dt {
  font-size: 14px; font-weight: 700; letter-spacing: -.005em;
  margin-bottom: 6px;
}
.lp-zdroje dd {
  font-size: 14.5px; line-height: 1.55; color: var(--c-text-secondary);
  margin: 0;
}
.lp-zdroje em { font-style: italic; font-weight: 600; color: var(--c-text); }
.lp-zdroje strong { font-weight: 700; color: var(--c-text); }
.lp-zdroje-callout {
  grid-column: 1 / -1;
  border-top: 2px solid rgba(15,23,42,.28) !important;
  padding-top: 18px !important;
  margin-top: 6px;
}
.lp-zdroje-callout dt { font-size: 16px; margin-bottom: 8px; }
.lp-zdroje-callout dd { font-size: 15.5px; line-height: 1.65; max-width: 64em; }

/* ─── AUTOR (founder voice — pull quote, ne testimonial card) ─── */
.lp-autor { padding: 96px 0; }
.lp-autor-citace {
  margin: 0; padding: 4px 0 0 32px;
  border-left: 3px solid var(--c-text);
  max-width: 960px;
}
.lp-autor-citace p {
  font-size: 20px; line-height: 1.6; color: var(--c-text);
  margin: 0 0 18px;
  font-weight: 400;
}
.lp-autor-citace p:last-of-type { margin-bottom: 26px; }
.lp-autor-citace em { font-style: italic; font-weight: 500; }
.lp-autor-podpis {
  font-size: 14px; font-weight: 600; color: var(--c-muted);
  letter-spacing: .02em;
}

/* ─── O AUTOROVI (bio: levý sloupec identita, pravý text) ─── */
.lp-autor-bio {
  padding: 72px 0;
  border-top: 1px solid rgba(15,23,42,.08);
  display: grid;
  grid-template-columns: minmax(260px, 1fr) 2fr;
  gap: 56px;
  max-width: 1080px;
  align-items: center;
}
.lp-autor-foto {
  display: block;
  width: 132px; height: 132px;
  border-radius: 50%;
  object-fit: cover;
  object-position: center top;
  margin: 0 0 22px;
  border: 1px solid rgba(15,23,42,.10);
  box-shadow: 0 2px 8px rgba(15,23,42,.06);
}
.lp-autor-bio-hlavicka h2 {
  font-size: 26px; font-weight: 700; letter-spacing: -.018em;
  margin: 10px 0 8px;
  color: var(--c-text);
}
.lp-autor-role {
  font-size: 14.5px; line-height: 1.5; color: var(--c-text-secondary);
  margin: 0;
}
.lp-autor-bio-text p {
  font-size: 16px; line-height: 1.65; color: var(--c-text);
  margin: 0 0 16px;
  font-weight: 400;
}
.lp-autor-bio-text p:last-of-type { margin-bottom: 0; }
.lp-autor-kredit {
  margin-top: 20px !important;
  padding-top: 16px;
  border-top: 1px solid rgba(15,23,42,.12);
  font-size: 13px !important;
  color: var(--c-text-secondary) !important;
  letter-spacing: .01em;
  font-feature-settings: "tnum" 1;
}
@media (max-width: 780px) {
  .lp-autor-bio { grid-template-columns: 1fr; gap: 28px; padding: 48px 0; }
  .lp-autor-bio-text p { font-size: 15px; }
}

/* ─── ZÁVĚREČNÉ CTA ─── */
/* ─── CENA A NASAZENÍ (sales-led closing block) ─── */
.lp-cena { padding: 80px 0 120px; max-width: 1080px; }
.lp-cena-hlavicka { margin-bottom: 40px; max-width: 760px; }
.lp-cena-hlavicka h2 {
  font-size: 36px; line-height: 1.18; font-weight: 700; letter-spacing: -.02em;
  margin: 10px 0 0;
}
.lp-cena-mrizka {
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  gap: 56px;
  align-items: start;
}
.lp-cena-popisek {
  display: block;
  font-size: 12px; font-weight: 700;
  text-transform: uppercase; letter-spacing: .08em;
  color: var(--c-muted);
  margin-bottom: 14px;
}
.lp-cena-zahrnuto ul {
  list-style: none; padding: 0; margin: 0;
}
.lp-cena-zahrnuto li {
  font-size: 15.5px; line-height: 1.55;
  color: var(--c-text);
  padding: 10px 0 10px 22px;
  border-top: 1px solid rgba(15,23,42,.10);
  position: relative;
}
.lp-cena-zahrnuto li:last-child { border-bottom: 1px solid rgba(15,23,42,.10); }
.lp-cena-zahrnuto li::before {
  content: "+";
  position: absolute; left: 0; top: 10px;
  font-weight: 700; color: var(--c-text-secondary);
  font-feature-settings: "tnum" 1;
}
.lp-cena-pozn p {
  font-size: 14.5px; line-height: 1.6; color: var(--c-text-secondary);
  margin: 0 0 24px;
  padding: 14px 16px;
  background: rgba(15,23,42,.04);
  border-left: 2px solid rgba(15,23,42,.18);
}
.lp-cena-pozn .lp-cta-veliky { display: inline-flex; align-items: center; gap: 8px; }
.lp-cena-kontakt {
  display: block;
  margin-top: 14px;
  font-size: 13px; color: var(--c-muted);
}
.lp-cena-kontakt a { color: var(--c-text-secondary); text-decoration: underline; }
@media (max-width: 780px) {
  .lp-cena-mrizka { grid-template-columns: 1fr; gap: 32px; }
  .lp-cena-hlavicka h2 { font-size: 28px; }
}

/* ─── FOOTER ─── */
.lp-footer { background: #0b1526; color: rgba(255,255,255,.65); padding: 30px 0; }
.lp-footer-inner {
  max-width: 1180px; margin: 0 auto;
  padding: 0 40px;
  display: flex; align-items: center; justify-content: space-between;
  gap: 24px; flex-wrap: wrap;
}
.lp-footer-brand {
  display: flex; align-items: baseline; gap: 12px;
  font-size: 13.5px;
}
.lp-footer-brand strong {
  font-size: 15px; color: #fff;
  letter-spacing: -.01em;
}
.lp-footer-odkazy {
  display: flex; align-items: center; gap: 10px;
  font-size: 13.5px;
}
.lp-footer-odkazy a {
  color: rgba(255,255,255,.7); text-decoration: none;
  transition: color .12s;
}
.lp-footer-odkazy a:hover { color: #fff; }
.lp-footer-odkazy span { color: rgba(255,255,255,.3); }


/* ════════════════════════════════════════════════════════════════════════════
   DARK přes celý landing (uživatelská preference: "dej tu barvu úplně dolů")
   Hero už dark z .lp-top — tady přepneme i sekce pod ním na navy podklad.
   ════════════════════════════════════════════════════════════════════════════ */

#landing-page {
  background: var(--c-navy-mid);
  color: #fff;
}

/* FUNKCE — číslovaný seznam */
#landing-page .lp-funkce-uvod h2 { color: #fff; }
#landing-page .lp-funkce-polozka { border-top-color: rgba(255,255,255,.10); }
#landing-page .lp-funkce-polozka:last-child { border-bottom-color: rgba(255,255,255,.10); }
#landing-page .lp-funkce-cislo {
  color: transparent;
  -webkit-text-stroke: 1.5px rgba(255,255,255,.30);
  text-stroke: 1.5px rgba(255,255,255,.30);
}
#landing-page .lp-funkce-text h3 { color: #fff; }
#landing-page .lp-funkce-text p { color: rgba(255,255,255,.72); }
#landing-page .lp-funkce-text code {
  background: rgba(255,255,255,.08);
  color: #fff;
}
#landing-page .lp-funkce-tagy li {
  border-color: rgba(255,255,255,.20);
  color: rgba(255,255,255,.78);
}

/* POD POKLIČKOU — subtilní světlejší pruh (rytmus), místo cream je teď bělavý overlay */
#landing-page .lp-pod-poklickou {
  background: rgba(255,255,255,.03);
}
#landing-page .lp-pod-poklickou h2 { color: #fff; }
#landing-page .lp-zdroje > div { border-top-color: rgba(255,255,255,.14); }
#landing-page .lp-zdroje dt { color: #fff; }
#landing-page .lp-zdroje dd { color: rgba(255,255,255,.72); }
#landing-page .lp-zdroje em,
#landing-page .lp-zdroje strong { color: #fff; }
#landing-page .lp-zdroje-callout {
  border-top-color: rgba(255,255,255,.40) !important;
}

/* AUTOR — pull quote */
#landing-page .lp-autor-citace { border-left-color: rgba(255,255,255,.6); }
#landing-page .lp-autor-citace p { color: #fff; }
#landing-page .lp-autor-podpis { color: rgba(255,255,255,.55); }

/* DŮVĚRA */
#landing-page .lp-autor-bio { border-top-color: rgba(255,255,255,.10); }
#landing-page .lp-autor-foto {
  border-color: rgba(255,255,255,.20);
  box-shadow: 0 2px 12px rgba(0,0,0,.35);
}
#landing-page .lp-autor-bio-hlavicka h2 { color: #fff; }
#landing-page .lp-autor-role { color: rgba(255,255,255,.65); }
#landing-page .lp-autor-bio-text p { color: rgba(255,255,255,.82); }
#landing-page .lp-autor-kredit {
  border-top-color: rgba(255,255,255,.14);
  color: rgba(255,255,255,.55) !important;
}

/* ZÁVĚR */
#landing-page .lp-cena-hlavicka h2 { color: #fff; }
#landing-page .lp-cena-popisek { color: rgba(255,255,255,.55); }
#landing-page .lp-cena-zahrnuto li {
  color: #fff;
  border-top-color: rgba(255,255,255,.10);
}
#landing-page .lp-cena-zahrnuto li:last-child { border-bottom-color: rgba(255,255,255,.10); }
#landing-page .lp-cena-zahrnuto li::before { color: rgba(255,255,255,.55); }
#landing-page .lp-cena-pozn p {
  color: rgba(255,255,255,.70);
  background: rgba(255,255,255,.04);
  border-left-color: rgba(255,255,255,.25);
}
#landing-page .lp-cena-kontakt { color: rgba(255,255,255,.55); }
#landing-page .lp-cena-kontakt a { color: rgba(255,255,255,.85); }

/* ═══ ONBOARDING — prvotní nastavení (instituce, země, sken) ═══ */
.onb-box {
  max-width: 560px;
  width: 100%;
  padding: 28px 32px 26px;
}

/* Indikátor kroků */
.onb-hlavicka { margin-bottom: 26px; }
.onb-kroky {
  display: flex; align-items: center; justify-content: center;
  gap: 0;
}
.onb-krok {
  display: inline-flex; align-items: center; justify-content: center;
  width: 28px; height: 28px;
  border-radius: 50%;
  border: 1.5px solid var(--c-border);
  background: var(--c-surface);
  color: var(--c-muted);
  font-size: 12.5px; font-weight: 700;
  flex-shrink: 0;
  transition: background .2s, border-color .2s, color .2s;
}
.onb-krok.aktivni {
  background: var(--c-text); border-color: var(--c-text); color: #fff;
}
.onb-krok.hotovo {
  background: #ecfdf5; border-color: #a7f3d0; color: #047857;
}
.onb-krok.hotovo::after { content: "✓"; }
.onb-krok.hotovo { font-size: 13px; }
.onb-cara {
  width: 48px; height: 1.5px;
  background: var(--c-border);
}

/* Sekce kroku */
.onb-sekce.hidden { display: none; }
.onb-sekce h3 {
  font-size: 20px; font-weight: 700; letter-spacing: -.018em;
  margin: 0 0 6px; color: var(--c-text);
}
.onb-popis {
  font-size: 13.5px; line-height: 1.55;
  color: var(--c-text-secondary);
  margin: 0 0 22px;
}

.onb-pole {
  display: flex; flex-direction: column; gap: 6px;
  margin-bottom: 18px;
}
.onb-pole label {
  font-size: 12px; font-weight: 600;
  text-transform: uppercase; letter-spacing: .06em;
  color: var(--c-muted);
}
.onb-pole input[type="text"],
.onb-pole select {
  width: 100%;
  padding: 10px 12px;
  border: 1px solid var(--c-border);
  border-radius: 6px;
  font-family: inherit; font-size: 14px;
  background: var(--c-surface);
  color: var(--c-text);
  transition: border-color .12s, box-shadow .12s;
}
.onb-pole input[type="text"]:focus,
.onb-pole select:focus {
  outline: none;
  border-color: var(--c-text);
  box-shadow: 0 0 0 3px rgba(15,23,42,.08);
}
.onb-hint {
  font-size: 12px; color: var(--c-muted);
  line-height: 1.45;
}
.onb-ok { color: #047857; font-weight: 600; }
.onb-warn { color: #b45309; font-weight: 600; }

.onb-zeme-wrap {
  border: 1px solid var(--c-border);
  border-radius: 6px;
  padding: 14px;
  margin-bottom: 20px;
  background: var(--c-bg);
  max-height: 320px;
  overflow-y: auto;
}

/* Shrnutí */
.onb-shrnuti {
  margin: 0 0 22px;
  border-top: 1px solid var(--c-border);
}
.onb-shrnuti > div {
  display: flex; justify-content: space-between; gap: 16px;
  padding: 10px 0;
  border-bottom: 1px solid var(--c-border);
}
.onb-shrnuti dt {
  font-size: 12px; font-weight: 600;
  text-transform: uppercase; letter-spacing: .05em;
  color: var(--c-muted);
  flex-shrink: 0;
}
.onb-shrnuti dd {
  margin: 0;
  font-size: 13.5px; color: var(--c-text);
  text-align: right;
}

.onb-akce {
  display: flex; justify-content: flex-end; gap: 10px;
  margin-top: 4px;
}
.onb-chyba {
  font-size: 13px; color: #b91c1c;
  background: #fef2f2;
  border: 1px solid #fecaca;
  border-radius: 6px;
  padding: 9px 12px;
  margin-bottom: 16px;
}
.onb-chyba.hidden { display: none; }

/* Průběh */
.onb-beh-kroky {
  display: flex; flex-direction: column; gap: 12px;
  margin: 22px 0 18px;
}
.onb-beh-krok {
  display: flex; align-items: center; gap: 12px;
  font-size: 13.5px;
  color: var(--c-muted);
  transition: color .2s;
}
.onb-beh-ikona {
  width: 18px; height: 18px;
  border-radius: 50%;
  border: 1.5px solid var(--c-border);
  flex-shrink: 0;
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 11px; font-weight: 700;
  transition: background .2s, border-color .2s;
}
.onb-beh-krok.beh { color: var(--c-text); font-weight: 600; }
.onb-beh-krok.beh .onb-beh-ikona {
  border-color: var(--c-text);
  border-right-color: transparent;
  animation: onb-spin .8s linear infinite;
}
@keyframes onb-spin { to { transform: rotate(360deg); } }
.onb-beh-krok.hotovo { color: var(--c-text); }
.onb-beh-krok.hotovo .onb-beh-ikona {
  background: #ecfdf5; border-color: #a7f3d0; color: #047857;
}
.onb-beh-krok.hotovo .onb-beh-ikona::after { content: "✓"; }
.onb-beh-krok.chyba { color: #b91c1c; }
.onb-beh-krok.chyba .onb-beh-ikona {
  background: #fef2f2; border-color: #fecaca; color: #b91c1c;
}
.onb-beh-krok.chyba .onb-beh-ikona::after { content: "×"; }
.onb-beh-popis {
  font-size: 13px; color: var(--c-text-secondary);
  margin: 0;
  min-height: 20px;
}


/* ═══ REGISTRACE DO ZKUŠEBNÍ VERZE ═══ */
.reg-box { max-width: 520px; width: 100%; }
.reg-hint {
  font-size: 12px; color: var(--c-muted); line-height: 1.45;
  display: block; margin-top: 4px;
}
.reg-ok { color: #047857; font-weight: 600; }
.reg-zeme-wrap {
  border: 1px solid var(--c-border);
  border-radius: 6px;
  padding: 12px;
  margin-top: 8px;
  background: var(--c-bg);
  max-height: 260px;
  overflow-y: auto;
}
.reg-checkbox { margin: 4px 0 16px; }

.reg-hotovo { text-align: center; padding: 12px 8px 8px; }
.reg-hotovo-ikona {
  width: 56px; height: 56px; margin: 0 auto 16px;
  border-radius: 50%;
  background: #ecfdf5; color: #047857;
  display: flex; align-items: center; justify-content: center;
  font-size: 26px;
}
.reg-hotovo h3 { margin: 0 0 8px; font-size: 19px; font-weight: 700; }
.reg-hotovo p {
  margin: 0 0 10px; font-size: 14px; color: var(--c-text-secondary); line-height: 1.6;
}
.reg-hotovo-pozn { font-size: 12.5px !important; color: var(--c-muted) !important; }
.reg-dev {
  margin-top: 16px; padding: 12px;
  background: #fffbeb; border: 1px solid #fde68a; border-radius: 6px;
  font-size: 12.5px; color: #b45309; line-height: 1.6;
}
.reg-dev a { color: #b45309; font-weight: 700; }

/* ═══ TRIAL ═══ */
.trial-pruh {
  position: sticky; top: 0; z-index: 50;
  display: flex; align-items: center; justify-content: center; gap: 16px;
  flex-wrap: wrap;
  padding: 9px 20px;
  background: #eff6ff;
  border-bottom: 1px solid #bfdbfe;
  font-size: 13px; color: #1e40af;
}
.trial-pruh strong { font-weight: 700; }
.trial-pruh a {
  color: #1d4ed8; font-weight: 600; text-decoration: none;
  border-bottom: 1px solid currentColor; padding-bottom: 1px;
}
.trial-pruh--konci {
  background: #fffbeb; border-bottom-color: #fde68a; color: #92400e;
}
.trial-pruh--konci a { color: #b45309; }

/* Vypršelý trial – blokující obrazovka. Data zůstávají, jen není přístup. */
body.trial-vyprsel > header,
body.trial-vyprsel > .page-hero,
body.trial-vyprsel > main,
body.trial-vyprsel > .trial-pruh { display: none !important; }

.trial-blok {
  position: fixed; inset: 0; z-index: 9999;
  background: linear-gradient(180deg, var(--c-navy, #0b1526) 0%, #15263d 100%);
  display: flex; align-items: center; justify-content: center;
  padding: 24px;
}
.trial-blok-box {
  max-width: 480px; text-align: center; color: #fff;
}
.trial-blok-logo {
  font-size: 20px; font-weight: 800; letter-spacing: -.02em;
  margin-bottom: 28px; color: rgba(255,255,255,.9);
}
.trial-blok-box h2 {
  font-size: 28px; font-weight: 700; letter-spacing: -.025em;
  margin: 0 0 14px;
}
.trial-blok-box p {
  font-size: 15px; line-height: 1.65;
  color: rgba(255,255,255,.72);
  margin: 0 0 28px;
}
.trial-blok-cta {
  display: inline-block;
  background: #fff; color: #0b1526;
  text-decoration: none;
  padding: 13px 28px; border-radius: 6px;
  font-size: 14.5px; font-weight: 700;
  transition: transform .12s;
}
.trial-blok-cta:hover { transform: translateY(-1px); }
.trial-blok-odhlasit {
  display: block; margin: 20px auto 0;
  background: none; border: none;
  color: rgba(255,255,255,.5);
  font-size: 13px; cursor: pointer; font-family: inherit;
  text-decoration: underline;
}
.trial-blok-odhlasit:hover { color: rgba(255,255,255,.8); }

/* .lp-cta / .lp-nav-cta jsou nově <button> (otevírají registraci) – srovnat s <a> */
button.lp-cta,
button.lp-nav-cta {
  font: inherit;
  border: none;
  cursor: pointer;
  font-family: inherit;
}
button.lp-cta { width: auto; }
