/* =====================================================================
   Moje kariéra online — designový systém (dle 08-design-system.md)
   ===================================================================== */

/* Skryté prvky zůstávají skryté i tam, kde má třída vlastní display.
   Bez tohohle pravidla přebije například .sec-note{display:flex} atribut
   hidden a hláška, kterou JavaScript schová, zůstane na obrazovce. */
[hidden]{display:none !important}

/* ---- 1. Tokeny ---- */
:root{
  --navy:#0F2D48; --navy-2:#15395a; --navy-3:#1f4870;
  --blue:#3294D5; --blue-2:#2a7fb8; --blue-soft:#E6F1FA;
  --bg:#F4F6F9; --bg-2:#EEF1F5; --surface:#FFFFFF;
  /* Podklad záhlaví bloků — o tón tmavší než --bg-2, aby se hlavička oddělila
     od bílého těla i bez barevného pruhu */
  --head-soft:#E4E9F0;
  --line:rgba(15,45,72,0.08); --line-2:rgba(15,45,72,0.14);
  --text:#0F2D48; --text-2:#4b6478; --text-3:#82909e;
  --danger:#C8485B; --danger-soft:#FBEAEC;
  --warn:#C98736;  --warn-soft:#FBF1E1;
  --ok:#2F8A6A;    --ok-soft:#E2F1EB;
  --violet:#6B6BD1; --violet-soft:#ECECF8;
  --teal:#2C8C8C;  --teal-soft:#DDF0EF;
  --radius:14px; --radius-sm:10px; --radius-lg:20px;
  --sidebar-w:248px; --sidebar-w-collapsed:72px; --topbar-h:64px;
  --shadow-sm:0 1px 2px rgba(15,45,72,0.06),0 1px 3px rgba(15,45,72,0.05);
  --shadow-md:0 4px 14px rgba(15,45,72,0.12);
  --shadow-lg:0 18px 50px rgba(15,45,72,0.25);
  --font:"Plus Jakarta Sans",system-ui,-apple-system,sans-serif;
  --font-mono:"JetBrains Mono",ui-monospace,SFMono-Regular,monospace;
}
html[data-theme="dark"]{
  --bg:#0c1a28; --bg-2:#122436; --surface:#14283c;
  --head-soft:#193149;
  --line:rgba(255,255,255,0.08); --line-2:rgba(255,255,255,0.16);
  --text:#e8eef4; --text-2:#a8bccb; --text-3:#748999;
  --blue-soft:rgba(50,148,213,0.16);
  --danger-soft:rgba(200,72,91,0.18); --warn-soft:rgba(201,135,54,0.18);
  --ok-soft:rgba(47,138,106,0.18); --violet-soft:rgba(107,107,209,0.2);
  --teal-soft:rgba(44,140,140,0.2);
  --shadow-sm:0 1px 3px rgba(0,0,0,0.4); --shadow-md:0 4px 14px rgba(0,0,0,0.5);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font);
  font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}
a{color:var(--blue-2);text-decoration:none}
a:hover{text-decoration:underline}
.text-mono{font-family:var(--font-mono)}
.text-num{font-variant-numeric:tabular-nums;font-family:var(--font-mono)}
.text-muted{color:var(--text-2)}
.upcase{font-size:11.5px;font-weight:700;letter-spacing:0.08em;text-transform:uppercase;color:var(--text-3)}

/* ---- 2. Rám aplikace ---- */
.app{display:grid;grid-template-columns:var(--sidebar-w) 1fr;min-height:100vh;
  transition:grid-template-columns .25s cubic-bezier(.2,.7,.2,1)}
.app.collapsed{grid-template-columns:var(--sidebar-w-collapsed) 1fr}
.app.impersonating{padding-top:44px}
.main{display:flex;flex-direction:column;min-width:0}
.topbar{position:sticky;top:0;z-index:40;height:var(--topbar-h);background:var(--surface);
  border-bottom:1px solid var(--line);display:flex;align-items:center;gap:14px;padding:0 24px}
.app.impersonating .topbar{top:44px}
.content{padding:28px 32px 64px;max-width:1440px;margin:0 auto;width:100%}
.page-header{margin-bottom:22px}
.page-header-row{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap}
.page-title{font-size:26px;font-weight:700;letter-spacing:-0.02em;margin:0}
.page-subtitle{color:var(--text-2);margin:4px 0 0;font-size:13.5px}

/* Sidebar */
.sidebar{position:sticky;top:0;height:100vh;background:var(--navy);color:#cfdce8;
  display:flex;flex-direction:column;overflow:hidden}
.app.impersonating .sidebar{top:44px;height:calc(100vh - 44px)}
.sidebar-brand{display:flex;align-items:center;gap:11px;padding:18px 16px 16px;position:relative}
.brand-mark{flex:none;width:38px;height:38px;border-radius:11px;display:flex;align-items:center;
  justify-content:center;font-weight:800;font-size:15px;color:#fff;
  background:linear-gradient(135deg,var(--blue),var(--navy-3));overflow:hidden}
.brand-mark img{width:100%;height:100%;object-fit:contain}
.brand-text{min-width:0}
.brand-text .t{font-size:12.5px;font-weight:800;letter-spacing:0.05em;color:#fff;white-space:nowrap}
.brand-text .t b{color:#7fb6e0}
.brand-text .s{font-size:9.5px;letter-spacing:0.18em;color:#7489a0;text-transform:uppercase}
.collapse-btn{position:absolute;right:-13px;top:26px;width:26px;height:26px;border-radius:50%;
  background:var(--surface);border:1px solid var(--line-2);color:var(--text-2);cursor:pointer;
  display:flex;align-items:center;justify-content:center;z-index:5}
.nav{flex:1;overflow-y:auto;padding:6px 10px}
.nav::-webkit-scrollbar{width:10px}
.nav::-webkit-scrollbar-thumb{background:var(--line-2);border-radius:8px}
.nav-section-title{font-size:10.5px;font-weight:700;letter-spacing:0.12em;text-transform:uppercase;
  color:#5d7590;padding:14px 12px 6px}
.nav-item{position:relative;display:flex;align-items:center;gap:11px;padding:9px 12px;margin:2px 0;
  border-radius:9px;color:#b9c9d8;font-size:13.5px;font-weight:600;cursor:pointer;
  transition:background .15s,color .15s;text-decoration:none}
.nav-item:hover{background:rgba(255,255,255,0.06);color:#fff;text-decoration:none}
.nav-item.active{background:rgba(50,148,213,0.22);color:#fff}
.nav-item.active::before{content:"";position:absolute;left:-10px;top:6px;bottom:6px;width:3px;
  border-radius:3px;background:var(--blue)}
.nav-badge{margin-left:auto;background:rgba(255,255,255,0.12);color:#dce8f2;font-size:11px;
  font-weight:700;padding:1px 7px;border-radius:999px;font-variant-numeric:tabular-nums}
.nav-quick{padding:10px 12px;border-top:1px solid rgba(255,255,255,0.08);margin-top:8px}
.sidebar-user{border-top:1px solid rgba(255,255,255,0.1);padding:14px 16px;display:flex;align-items:center;gap:10px}
.sidebar-user .nm{font-size:13px;font-weight:700;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sidebar-user .rl{font-size:11px;color:#7489a0}
.app.collapsed .brand-text,.app.collapsed .nav-badge,.app.collapsed .nav-section-title,
.app.collapsed .nav-item span.lbl,.app.collapsed .sidebar-user .u-meta,.app.collapsed .nav-quick{display:none}
.app.collapsed .nav-item{justify-content:center}
.app.collapsed .sidebar-user{justify-content:center}

/* Pruhy */
.imp-banner,.advisor-banner,.demo-banner{position:fixed;top:0;left:0;right:0;height:44px;z-index:60;
  display:flex;align-items:center;justify-content:center;gap:14px;color:#fff;font-size:13px;font-weight:600}
.imp-banner{background:linear-gradient(90deg,#C98736,#b06f22)}
.advisor-banner{background:linear-gradient(90deg,var(--blue),var(--blue-2))}
.demo-banner{background:linear-gradient(90deg,#5b21b6,#7c3aed)}
.imp-banner-exit{background:rgba(255,255,255,0.18);border:1px solid rgba(255,255,255,0.35);color:#fff;
  border-radius:7px;padding:4px 11px;font-size:12px;font-weight:700;cursor:pointer}
.imp-banner-exit:hover{background:rgba(255,255,255,0.3)}

/* ---- 3. Komponenty ---- */

/* Tlačítka */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:9px 14px;
  border-radius:9px;font-size:13.5px;font-weight:600;font-family:var(--font);border:1px solid transparent;
  cursor:pointer;transition:background .12s,border-color .12s,color .12s;text-decoration:none;color:var(--text)}
.btn:active{transform:translateY(1px)}
.btn:hover{text-decoration:none}
.btn-primary{background:var(--navy);color:#fff}
.btn-primary:hover{background:var(--navy-3)}
.btn-blue{background:var(--blue);color:#fff}
.btn-blue:hover{background:var(--blue-2)}
.btn-ghost{background:transparent;border-color:var(--line-2)}
.btn-ghost:hover{background:var(--bg-2)}
.btn-soft{background:var(--bg-2)}
.btn-soft:hover{background:var(--line)}
.btn-danger{background:var(--danger);color:#fff}
.btn-danger:hover{filter:brightness(0.94)}
.btn-sm{padding:6px 10px;font-size:12.5px}
.btn-lg{padding:12px 18px;font-size:14.5px}
.btn-block{width:100%}
.btn:disabled{opacity:0.55;cursor:not-allowed;transform:none}
.tbl-mini-btn{width:30px;height:30px;border-radius:7px;border:1px solid var(--line-2);background:var(--surface);
  color:var(--text-2);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:all .12s}
.tbl-mini-btn:hover{background:var(--bg-2);color:var(--text)}
/* Upomínka po splatnosti — odlišená, ať nejde poslat na přeskáčku s ostatními */
.tbl-mini-btn.danger{color:var(--danger);border-color:var(--danger-soft)}
.tbl-mini-btn.danger:hover{background:var(--danger-soft);color:var(--danger)}
.icon-btn{position:relative;width:36px;height:36px;border-radius:9px;border:1px solid var(--line-2);
  background:var(--surface);color:var(--text-2);display:inline-flex;align-items:center;justify-content:center;cursor:pointer}
.icon-btn:hover{background:var(--bg-2)}
.icon-btn .dot{position:absolute;top:7px;right:7px;width:7px;height:7px;border-radius:50%;background:var(--danger)}

/* Karty */
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm)}
.card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;
  padding:16px 20px;border-bottom:1px solid var(--line)}
.card-title{font-size:15px;font-weight:700;margin:0}
.card-sub{font-size:12.5px;color:var(--text-2);margin:2px 0 0}
.card-body{padding:20px}
.card-foot{padding:14px 20px;border-top:1px solid var(--line);display:flex;align-items:center;gap:12px}

/* Kachle */
.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:22px}
.stat-grid.cols-3{grid-template-columns:repeat(3,1fr)}
.stat-grid.cols-2{grid-template-columns:repeat(2,1fr)}
.stat{position:relative;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);
  padding:18px 20px;box-shadow:var(--shadow-sm)}
.stat-label{display:flex;align-items:center;gap:7px;font-size:12.5px;font-weight:600;color:var(--text-2)}
.stat-value{font-size:28px;font-weight:700;letter-spacing:-0.01em;margin-top:6px;font-variant-numeric:tabular-nums}
.stat-value.danger{color:var(--danger)}
.stat-value.warn{color:var(--warn)}
.stat-delta{font-size:12px;font-weight:600;color:var(--ok);margin-top:3px}
.stat-delta.neg{color:var(--danger)}
.stat-delta.plain{color:var(--text-3)}
.stat-icon{position:absolute;top:16px;right:16px;width:36px;height:36px;border-radius:10px;
  background:var(--blue-soft);color:var(--blue-2);display:flex;align-items:center;justify-content:center}
.stat-icon.violet{background:var(--violet-soft);color:var(--violet)}
.stat-icon.ok{background:var(--ok-soft);color:var(--ok)}
.stat-icon.warn{background:var(--warn-soft);color:var(--warn)}
.stat-icon.teal{background:var(--teal-soft);color:var(--teal)}

/* Mřížky */
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.grid-2-1{display:grid;grid-template-columns:2fr 1fr;gap:18px;align-items:start}
.stack{display:flex;flex-direction:column;gap:18px}

/* Seznamy */
.list-item{display:flex;align-items:flex-start;gap:14px;padding:13px 10px;margin:0 -10px;
  border-radius:10px;border-bottom:1px solid var(--line);
  transition:background .12s}
.list-item:last-child{border-bottom:none}
.list-item:hover{background:var(--bg-2)}
.list-item-main{flex:1;min-width:0}
.list-item-title{font-size:13.5px;font-weight:600}
.list-item-title.done{text-decoration:line-through;color:var(--text-3)}
.list-item-meta{font-size:12px;color:var(--text-2);margin-top:2px;display:flex;align-items:center;
  gap:6px;flex-wrap:wrap}
.dot-sep{width:3px;height:3px;border-radius:50%;background:var(--text-3);display:inline-block}
.checkbox{flex:none;width:18px;height:18px;border-radius:6px;border:1.5px solid var(--line-2);
  background:var(--surface);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;
  color:#fff;transition:all .12s;margin-top:1px}
.checkbox:hover{border-color:var(--blue)}
.checkbox.checked{background:var(--blue);border-color:var(--blue)}

/* Avatary */
.avatar{flex:none;width:36px;height:36px;border-radius:50%;background:var(--blue-soft);color:var(--blue-2);
  display:inline-flex;align-items:center;justify-content:center;font-size:13px;font-weight:700}
.avatar.sm{width:28px;height:28px;font-size:11px}
.avatar.lg{width:56px;height:56px;font-size:18px}
.avatar.xl{width:72px;height:72px;font-size:23px}
.avatar.violet{background:var(--violet-soft);color:var(--violet)}
.avatar.teal{background:var(--teal-soft);color:var(--teal)}
.avatar.warn{background:var(--warn-soft);color:var(--warn)}
.avatar.ok{background:var(--ok-soft);color:var(--ok)}

/* Chipy */
.chip{display:inline-flex;align-items:center;gap:6px;padding:3px 9px;border-radius:999px;
  background:var(--bg-2);color:var(--text-2);font-size:11.5px;font-weight:600;white-space:nowrap}
.chip.blue{background:var(--blue-soft);color:var(--blue-2)}
.chip.ok{background:var(--ok-soft);color:var(--ok)}
.chip.warn{background:var(--warn-soft);color:var(--warn)}
.chip.danger{background:var(--danger-soft);color:var(--danger)}
.chip.violet{background:var(--violet-soft);color:var(--violet)}
.chip.teal{background:var(--teal-soft);color:var(--teal)}
.chip.outline{background:transparent;border:1px solid var(--line-2)}
.chip-dot{width:6px;height:6px;border-radius:50%;background:currentColor}
.chip-selected{box-shadow:0 0 0 2px var(--surface),0 0 0 4px var(--blue)}
.tag-chip{padding:2px 8px;font-size:11px}
.linkedin-chip{background:#e8f0fa;color:#0a66c2}
.task-status{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:0.04em}
.task-status.active{color:var(--blue-2)}
.task-status.overdue{color:var(--danger)}
.task-status.done{color:var(--ok)}

/* Tabulky */
.tbl{width:100%;border-collapse:collapse;font-size:13px}
.tbl th{position:sticky;top:0;background:var(--bg);z-index:2;text-align:left;padding:10px 12px;
  font-size:11.5px;font-weight:600;letter-spacing:0.04em;text-transform:uppercase;color:var(--text-3);
  border-bottom:1px solid var(--line-2)}
.tbl td{padding:12px;border-bottom:1px solid var(--line);vertical-align:middle}
.tbl tbody tr{transition:background .12s;cursor:pointer}
.tbl tbody tr:hover{background:var(--bg-2)}
.tbl .num{text-align:right;white-space:nowrap}
/* Sloupec s klientem: instituce mívají názvy na sto třicet znaků a bez
   omezení šířky roztáhnou celou tabulku — částka se pak lámala na dva
   řádky. Název se zkrátí na dva řádky, celý je v bublině nad buňkou. */
.tbl .cell-client{max-width:320px}
.tbl .cell-name{min-width:0;overflow:hidden;overflow-wrap:anywhere;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.tbl .cell-nowrap{white-space:nowrap}
@media (max-width:1100px){.tbl .cell-client{max-width:200px}}
.tbl-actions{display:flex;gap:4px;justify-content:flex-end}
.row-cancelled{opacity:0.72}

/* Formuláře */
.field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.field-row.r-2-1{grid-template-columns:2fr 1fr}
label,.field-label{font-size:12.5px;font-weight:600;color:var(--text-2)}
.field-help{font-size:11.5px;color:var(--text-3)}
input,textarea,select,.input{width:100%;padding:10px 12px;border-radius:9px;border:1px solid var(--line-2);
  background:var(--surface);color:var(--text);font-family:var(--font);font-size:13.5px;transition:border-color .12s,box-shadow .12s}
input:focus,textarea:focus,select:focus{outline:none;border-color:var(--blue);
  box-shadow:0 0 0 3px rgba(50,148,213,0.15)}
textarea{min-height:88px;resize:vertical}
input[type=checkbox]{width:auto}
.field-error{font-size:12px;color:var(--danger);font-weight:600}

/* Přepínač (toggle) */
.toggle{flex:none;position:relative;width:42px;height:24px;border-radius:999px;border:none;cursor:pointer;
  background:var(--bg-2);transition:background .15s;padding:0}
.toggle::after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;
  background:#fff;box-shadow:var(--shadow-sm);transition:left .15s}
.toggle.on{background:var(--blue)}
.toggle.on::after{left:21px}
.toggle.big{width:48px;height:28px}
.toggle.big::after{width:22px;height:22px}
.toggle.big.on::after{left:23px}

/* Záložky */
/* Lišta stojí na vlastní bílé ploše, ne na holém pozadí stránky, a místo
   vodorovného rolování se zalamuje — u karty klienta je záložek tolik, že
   schovat je za roluj-doprava znamená, že je nikdo nenajde.
   Podtržení aktivní položky drží uvnitř rámečku: kdyby přečnívalo, prohlížeč
   by kvůli tomu jednomu pixelu vykreslil svislý posuvník. */
.tabs{display:flex;flex-wrap:wrap;gap:2px;padding:4px 8px;margin-bottom:16px;
  background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}
/* Záložky životopisu drží jednu řadu. Zalomená řada se ztrácí: poslední
   záložka skončí sama pod ostatními a vypadá jako patička, ne jako sekce.
   Když se nevejdou, posouvají se do strany. */
.cv-tabs{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.cv-tabs::-webkit-scrollbar{display:none}
.cv-tabs .tab{flex-shrink:0}
@media (max-width:1280px){.cv-tabs .tab{padding-left:10px;padding-right:10px;font-size:13px}}
@media (max-width:900px){.cv-tabs .tab{padding-left:9px;padding-right:9px;gap:5px}
  .cv-tabs .tab .cnt{padding:1px 5px}}
.tab{display:inline-flex;align-items:center;gap:7px;padding:10px 13px;font-size:13.5px;font-weight:600;
  color:var(--text-2);border:none;background:none;cursor:pointer;white-space:nowrap;position:relative;text-decoration:none}
.tab:hover{color:var(--text);text-decoration:none}
.tab.active{color:var(--navy)}
html[data-theme="dark"] .tab.active{color:var(--text)}
.tab.active::after{content:"";position:absolute;left:10px;right:10px;bottom:0;height:2px;background:var(--blue)}
.tab-count{background:var(--bg-2);color:var(--text-2);font-size:11px;font-weight:700;padding:1px 7px;border-radius:999px}
.tab.active .tab-count{background:var(--blue-soft);color:var(--blue-2)}

/* Segmenty */
.seg{display:inline-flex;background:var(--bg-2);border:1px solid var(--line);border-radius:9px;padding:3px;gap:2px}
.seg button,.seg a{border:none;background:none;padding:6px 12px;font-size:12.5px;font-weight:600;color:var(--text-2);
  border-radius:7px;cursor:pointer;display:inline-flex;align-items:center;gap:6px;text-decoration:none;font-family:var(--font)}
.seg label{border-radius:7px;cursor:pointer;font-size:12.5px;font-weight:600;color:var(--text-2);
  transition:background .12s,color .12s;user-select:none}
.seg label:hover{color:var(--text)}
.seg .active{background:var(--surface);color:var(--text);box-shadow:var(--shadow-sm)}

/* Filtrační lišta */
.filter-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:18px}
.filter-pill{display:inline-flex;align-items:center;gap:7px;padding:7px 13px;border-radius:999px;
  border:1px solid var(--line-2);background:var(--surface);font-size:12.5px;font-weight:600;color:var(--text-2);
  cursor:pointer;text-decoration:none;transition:all .12s}
.filter-pill:hover{background:var(--bg-2);text-decoration:none}
.filter-pill.active{background:var(--navy);border-color:var(--navy);color:#fff}
.filter-pill .count{background:rgba(15,45,72,0.08);padding:0 7px;border-radius:999px;font-size:11px;
  font-variant-numeric:tabular-nums}
.filter-pill.active .count{background:rgba(255,255,255,0.2)}
/* Panel obrazovky na kartě klienta: přepínač je jeho záhlaví, obsah tělem.
   Tělo zůstává v barvě stránky, aby karty uvnitř vypadaly jako karty a ne
   jako bílé plochy na bílé. Rámeček panel ohraničuje, přetékání schválně
   nezakazujeme — uvnitř jsou rozbalovací nabídky a bubliny. */
.screen{border:1px solid var(--line);border-radius:var(--radius);background:var(--bg)}
.screen-nav{display:flex;flex-wrap:wrap;gap:4px;padding:7px 10px;background:var(--surface);
  border-bottom:1px solid var(--line);border-radius:calc(var(--radius) - 1px) calc(var(--radius) - 1px) 0 0}
.screen-tab{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:8px;
  font-size:12.5px;font-weight:600;color:var(--text-2);text-decoration:none;white-space:nowrap;
  transition:background .12s,color .12s}
.screen-tab:hover{background:var(--bg-2);color:var(--text);text-decoration:none}
.screen-tab.active{background:var(--navy);color:#fff}
html[data-theme="dark"] .screen-tab.active{background:var(--blue);color:#fff}
.screen-tab .count{background:rgba(15,45,72,0.08);padding:0 6px;border-radius:999px;font-size:11px;line-height:16px}
.screen-tab.active .count{background:rgba(255,255,255,0.22)}
.screen-body{padding:16px}
.screen-body > :last-child{margin-bottom:0}

/* ---- Karta klienta: svislé menu na širokém displeji ----
   Do 1200 px zůstávají vodorovné záložky, na užší obrazovce by svislý
   seznam ukrojil polovinu místa pro obsah. */
.client-nav{display:none}
.client-main{min-width:0}
@media (min-width:1200px){
  .client-layout{display:flex;gap:16px;align-items:flex-start}
  .client-nav{display:flex;flex-direction:column;gap:2px;width:212px;flex-shrink:0;padding:8px;
    background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);
    position:sticky;top:78px}
  /* Sekce se oddělují linkou a tmavým nadpisem, aby byly na první pohled
     rozpoznatelné i v dlouhém seznamu */
  .client-nav-group{display:flex;align-items:center;gap:8px;font-size:10.5px;font-weight:800;
    letter-spacing:.1em;text-transform:uppercase;color:var(--text);margin:14px 0 4px;
    padding:0 10px 6px;border-bottom:1px solid var(--line)}
  .client-nav-group:first-child{margin-top:2px}
  .client-nav-item{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:9px;
    font-size:13px;font-weight:600;color:var(--text-2);text-decoration:none}
  .client-nav-item:hover{background:var(--bg-2);color:var(--text);text-decoration:none}
  .client-nav-item.active{background:var(--blue-soft);color:var(--navy)}
  html[data-theme="dark"] .client-nav-item.active{background:rgba(50,148,213,.22);color:var(--text)}
  .client-nav-item .count{margin-left:auto;background:var(--bg-2);padding:0 7px;border-radius:999px;
    font-size:11px;line-height:17px;color:var(--text-2)}
  .client-nav-item.active .count{background:var(--surface)}
  .client-main{flex:1}
  /* Vodorovné řady by vedle svislého menu jen opakovaly totéž */
  .client-layout > .client-main > .tabs,
  .client-layout .screen-nav{display:none}
  .client-layout .screen{border:0;background:transparent}
  .client-layout .screen-body{padding:0}
}
@media (max-width:640px){.screen-body{padding:12px}.screen-nav{padding:6px 8px}}
/* Záložky sekcí životopisu jsou záhlaví karty, ne navigace po stránce.
   Na kartě klienta jsou nad nimi ještě dvě řady navigace, takže se musí
   vizuálně odlišit — jinak by tři stejně vypadající řady splynuly. */
.cv-tabs{margin-bottom:0;border-radius:var(--radius) var(--radius) 0 0}
.cv-panel > .card{border-top:0;border-radius:0 0 var(--radius) var(--radius)}
.flex-sp{flex:1}

/* Vyhledávání */
.page-search{position:relative;max-width:360px;width:100%}
.page-search input{padding-left:36px;padding-right:32px}
.page-search .s-icon{position:absolute;left:11px;top:50%;transform:translateY(-50%);color:var(--text-3);pointer-events:none}
.page-search-clear{position:absolute;right:6px;top:50%;transform:translateY(-50%);border:none;background:none;
  color:var(--text-3);cursor:pointer;padding:4px;border-radius:6px}
.page-search-clear:hover{background:var(--bg-2)}
.topbar-search{position:relative;max-width:460px;flex:1}
.topbar-search input{padding-left:36px;background:var(--bg)}
.topbar-kbd{position:absolute;right:9px;top:50%;transform:translateY(-50%);font-family:var(--font-mono);
  font-size:10.5px;color:var(--text-3);border:1px solid var(--line-2);border-radius:5px;padding:1px 6px;background:var(--surface)}

/* Modály */
.modal-backdrop{position:fixed;inset:0;z-index:100;background:rgba(15,45,72,0.4);backdrop-filter:blur(4px);
  display:none;align-items:flex-start;justify-content:center;padding:4vh 16px 6vh;overflow-y:auto;animation:fadeIn .15s}
.modal-backdrop.open{display:flex}
.modal{background:var(--surface);border-radius:var(--radius-lg);max-width:540px;width:100%;max-height:88vh;
  display:flex;flex-direction:column;box-shadow:var(--shadow-lg);animation:slideUp .2s cubic-bezier(.2,.7,.2,1)}
.modal.lg{max-width:720px}
.modal.xl{max-width:980px}
.modal-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 22px;
  border-bottom:1px solid var(--line)}
.modal-title{font-size:16px;font-weight:700;margin:0}
.modal-x{border:none;background:none;color:var(--text-3);cursor:pointer;padding:6px;border-radius:7px}
.modal-x:hover{background:var(--bg-2);color:var(--text)}
.modal-body{padding:22px;overflow-y:auto}
.modal-body::-webkit-scrollbar{width:10px}
.modal-body::-webkit-scrollbar-thumb{background:var(--line-2);border-radius:8px}
.modal-foot{padding:14px 22px;background:var(--bg);border-top:1px solid var(--line);
  border-radius:0 0 var(--radius-lg) var(--radius-lg);display:flex;align-items:center;
  justify-content:flex-end;gap:10px;flex-wrap:wrap}
.modal-foot .left{margin-right:auto}
/* Formulář v patičce nesmí rozbít zarovnání — chová se jako přímá položka flexu */
.modal-foot form{display:contents}
.modal-foot .btn{white-space:nowrap;min-height:38px;flex:none}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@keyframes slideUp{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}

/* Prázdné stavy */
.empty{text-align:center;padding:48px 20px;color:var(--text-2)}
.empty-icon{width:56px;height:56px;border-radius:14px;background:var(--bg-2);color:var(--text-3);
  display:flex;align-items:center;justify-content:center;margin:0 auto 12px}
.empty-title{font-size:14.5px;font-weight:600;color:var(--text)}
.empty p{font-size:12.5px;margin:4px 0 0}

/* Poznámkové bloky */
.sec-note{display:flex;gap:11px;align-items:flex-start;background:var(--blue-soft);color:var(--blue-2);
  border-radius:var(--radius-sm);padding:13px 15px;font-size:12.5px;margin-bottom:16px}
.sec-note.warn{background:var(--warn-soft);color:var(--warn)}
.sec-note.ok{background:var(--ok-soft);color:var(--ok)}
.sec-note.danger{background:var(--danger-soft);color:var(--danger)}
.sec-note b{font-weight:700}

/* Výběr způsobu platby faktury (portál klienta) */
.pay-methods{display:flex;flex-direction:column;gap:8px}
.pay-method{display:flex;align-items:center;gap:13px;width:100%;text-align:left;padding:14px 16px;
  border:1px solid var(--line-2);border-radius:var(--radius-sm);background:var(--surface);cursor:pointer;
  font-family:inherit;transition:border-color .12s,background .12s}
.pay-method:hover{border-color:var(--blue);background:var(--blue-soft)}
.pay-method-icon{flex:none;width:38px;height:38px;border-radius:50%;background:var(--blue-soft);color:var(--blue-2);
  display:flex;align-items:center;justify-content:center}
.pay-method-body{flex:1;min-width:0}
.pay-method-title{display:block;font-weight:700;font-size:13.5px;color:var(--text)}
.pay-method-sub{display:block;font-size:12px;color:var(--text-3);margin-top:2px}
.note{background:#FFFBEC;border:1px solid #F2E6B8;color:#6b5a1e;border-radius:var(--radius-sm);
  padding:14px 16px;font-size:13px}
html[data-theme="dark"] .note{background:#2c2712;border-color:#54481f;color:#e5d9a8}
.note-meta{display:flex;align-items:center;gap:10px;margin-top:10px;font-size:11.5px;color:#9c8a4a;flex-wrap:wrap}
.note-private-badge{display:inline-flex;align-items:center;gap:5px;font-size:10.5px;font-weight:700;
  letter-spacing:0.06em;text-transform:uppercase;color:#9c8a4a}
html[data-theme="dark"] .note-meta,html[data-theme="dark"] .note-private-badge{color:#bfae6d}
/* Poznámky: nadpis a sbalení dlouhého textu (v136) */
.note-title{font-size:14px;font-weight:700;color:#4d4012;margin-bottom:6px;line-height:1.35}
html[data-theme="dark"] .note-title{color:#f0e6bd}
.note.is-long.is-collapsed .note-body{max-height:8.4em;overflow:hidden;position:relative;
  -webkit-mask-image:linear-gradient(#000 55%,transparent);mask-image:linear-gradient(#000 55%,transparent)}
.note-toggle{display:inline-flex;align-items:center;gap:5px;margin-top:6px;padding:0;border:0;background:none;
  font:inherit;font-size:12px;font-weight:700;color:#8a7424;cursor:pointer}
.note-toggle:hover{color:#5f4f14}
html[data-theme="dark"] .note-toggle{color:#d8c77f}
.note-toggle svg{transition:transform .15s}
.note-toggle .when-open{display:none}
.note:not(.is-collapsed) .note-toggle .when-open{display:inline}
.note:not(.is-collapsed) .note-toggle .when-closed{display:none}
.note:not(.is-collapsed) .note-toggle svg{transform:rotate(180deg)}
.task-completion-note{background:var(--ok-soft);border-left:3px solid var(--ok);border-radius:0 var(--radius-sm) var(--radius-sm) 0;
  padding:10px 13px;font-size:12.5px;color:var(--ok);margin-top:8px;display:flex;gap:8px;align-items:flex-start}

/* Menu */
.menu{position:absolute;z-index:80;background:var(--surface);border:1px solid var(--line);border-radius:10px;
  box-shadow:var(--shadow-md);min-width:200px;padding:6px;display:none}
.menu.open{display:block}
.menu-item{display:flex;align-items:center;gap:9px;width:100%;text-align:left;padding:8px 11px;border:none;
  background:none;font-size:13px;font-weight:600;color:var(--text);border-radius:7px;cursor:pointer;text-decoration:none}
.menu-item:hover{background:var(--bg-2);text-decoration:none}
.menu-item.danger{color:var(--danger)}
.menu-sep{height:1px;background:var(--line);margin:5px 0}
.menu-section-title{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:0.08em;
  color:var(--text-3);padding:7px 11px 3px}

.progress{height:6px;background:var(--bg-2);border-radius:999px;overflow:hidden}
.progress>div{height:100%;background:var(--blue);border-radius:999px;transition:width .2s}

/* ---- 4. Specializované bloky ---- */

/* Detail klienta */
.client-hero{display:flex;align-items:flex-start;gap:18px;margin-bottom:22px;flex-wrap:wrap}
.client-hero-meta{flex:1;min-width:260px}
.client-hero-name{font-size:22px;font-weight:700;margin:0;display:inline}
.client-hero-chips{display:inline-flex;gap:7px;margin-left:10px;vertical-align:middle;flex-wrap:wrap}
.client-hero-row{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-top:9px;font-size:12.5px;color:var(--text-2)}
.client-hero-row>span{display:inline-flex;align-items:center;gap:6px}
.client-hero-actions{display:flex;gap:9px;flex-wrap:wrap}

/* Dokumenty */
.doc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}
.doc-tile{background:var(--surface);border:1px solid var(--line-2);border-radius:12px;padding:15px;
  display:flex;gap:12px;align-items:flex-start;cursor:pointer;transition:border-color .12s}
.doc-tile:hover{border-color:var(--blue)}
.doc-icon{flex:none;width:40px;height:40px;border-radius:10px;display:flex;align-items:center;justify-content:center;
  background:var(--bg-2);color:var(--text-2)}
.doc-icon.pdf{background:var(--danger-soft);color:var(--danger)}
.doc-icon.doc{background:var(--blue-soft);color:var(--blue-2)}
.doc-icon.img{background:var(--violet-soft);color:var(--violet)}
.doc-icon.canva{background:linear-gradient(135deg,#7d5fe0,#28b8a6,#59c96f);color:#fff}
.doc-icon.link{background:linear-gradient(135deg,var(--blue),var(--violet));color:#fff}
.doc-meta{flex:1;min-width:0}
.doc-name{font-size:13.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.doc-sub{font-size:11.5px;color:var(--text-2);margin-top:2px}
.doc-note{font-size:12px;color:var(--text-2);font-style:italic;margin-top:4px}
.doc-actions{display:flex;gap:6px;margin-top:9px}

/* Faktura — vykreslený dokument */
.invoice-pdf-wrap{position:relative}
.invoice-pdf{background:#fff;color:#0F2D48;border:1px solid #e3e7ec;border-radius:10px;padding:40px 44px;font-size:13px}
.inv-pdf-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-bottom:26px}
.inv-pdf-title{font-size:28px;font-weight:700;letter-spacing:-0.02em;margin:0}
.inv-pdf-num{font-family:var(--font-mono);color:#4b6478;margin-top:3px}
.inv-pdf-state{font-size:11px;font-weight:700;letter-spacing:0.1em;text-transform:uppercase;margin-top:7px}
.inv-pdf-brand{text-align:right;font-size:12px;color:#4b6478}
.inv-pdf-brand .b{font-weight:800;color:#0F2D48;font-size:13.5px}
.inv-pdf-parties{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:20px}
.inv-pdf-party-lbl{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:0.1em;color:#82909e;margin-bottom:5px}
.inv-pdf-dates{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;background:#F4F6F9;border-radius:9px;
  padding:12px 16px;margin-bottom:20px;font-size:12px}
.inv-pdf-dates b{display:block;font-size:13px}
.inv-pdf-tbl{width:100%;border-collapse:collapse;margin-bottom:16px}
.inv-pdf-tbl th{text-align:left;font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:0.08em;
  color:#82909e;border-bottom:1.5px solid #0F2D48;padding:7px 8px}
.inv-pdf-tbl td{padding:9px 8px;border-bottom:1px solid #e9edf1;vertical-align:top}
.inv-pdf-tbl .item-name{font-weight:600}
.inv-pdf-tbl .item-desc{font-size:11.5px;color:#82909e}
.inv-pdf-tbl .num{text-align:right;font-family:var(--font-mono);font-variant-numeric:tabular-nums}
.inv-pdf-totals{margin-left:auto;max-width:280px}
.inv-pdf-totals .row{display:flex;justify-content:space-between;padding:5px 0;font-size:12.5px}
.inv-pdf-totals .row .v{font-family:var(--font-mono)}
.inv-pdf-totals .row.paid{color:#2F8A6A}
.inv-pdf-totals .row.grand{border-top:2px solid #0F2D48;margin-top:6px;padding-top:9px;font-size:15px;font-weight:700}
.inv-pdf-pay{background:#F4F6F9;border-radius:9px;padding:13px 16px;margin-top:18px;font-size:12px;
  display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px}
.inv-pdf-pay b{display:block;font-family:var(--font-mono)}
.inv-pdf-foot{margin-top:22px;padding-top:14px;border-top:1px solid #e9edf1;font-size:11px;color:#82909e}
.inv-pdf-stamp{position:absolute;top:36%;left:50%;transform:translate(-50%,-50%) rotate(-12deg);
  font-size:64px;font-weight:800;letter-spacing:0.1em;color:#2F8A6A;opacity:0.15;border:6px solid #2F8A6A;
  border-radius:12px;padding:4px 26px;pointer-events:none}

/* Mini kalendář */
.cal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.cal-title{font-size:13px;font-weight:700}
.cal-days,.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}
.cal-days span{text-align:center;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:0.05em;color:var(--text-3);padding:4px 0}
.cal-cell{aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;
  border-radius:8px;font-size:12px;font-weight:600;color:var(--text-2);position:relative}
.cal-cell.muted{color:var(--text-3);opacity:0.5}
.cal-cell.today{background:var(--blue);color:#fff}
.cal-cell.has-event::after{content:"";width:4px;height:4px;border-radius:50%;background:var(--blue);position:absolute;bottom:5px}
.cal-cell.today.has-event::after{background:#fff}

/* Časová osa schůzek */
.tl-day{display:flex;gap:14px;padding:12px 0;border-bottom:1px solid var(--line)}
.tl-day:last-child{border-bottom:none}
.tl-date{flex:none;width:48px;text-align:center}
.tl-date .d{font-size:22px;font-weight:700;font-variant-numeric:tabular-nums;line-height:1.1}
.tl-date .m{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:0.08em;color:var(--text-3)}
.tl-items{flex:1;display:flex;flex-direction:column;gap:8px;min-width:0}
.tl-item{display:flex;gap:12px;align-items:center;border:1px solid var(--line-2);border-radius:11px;
  padding:11px 14px;cursor:pointer;transition:all .12s;text-decoration:none;color:var(--text)}
.tl-item:hover{border-color:var(--blue);background:var(--blue-soft);text-decoration:none}
.tl-time{flex:none;width:100px;font-variant-numeric:tabular-nums;font-family:var(--font-mono);font-size:12.5px;font-weight:600}
.tl-content{flex:1;min-width:0}
.tl-content .t{font-size:13.5px;font-weight:600}
.tl-content .m{font-size:12px;color:var(--text-2);display:flex;align-items:center;gap:6px;margin-top:1px;flex-wrap:wrap}

/* Řádek schůzky */
/* Řádky schůzek jsou zaoblené karty — dřív to byly hranaté pruhy s ostrým okrajem */
.meeting-row{display:flex;gap:14px;align-items:center;padding:14px 16px;border:1px solid var(--line-2);
  border-radius:14px;margin-bottom:10px;transition:border-color .12s,box-shadow .12s,background .12s}
.meeting-row:last-child{margin-bottom:0}
.meeting-row[data-portal-meeting]{cursor:pointer}
.meeting-row[data-portal-meeting]:hover{border-color:var(--blue);box-shadow:0 2px 10px rgba(50,148,213,0.12)}
/* Proběhlé se odliší tlumeným podkladem, ne prošedlým textem */
.meeting-row.is-past{background:var(--bg);border-color:transparent;opacity:1}
.meeting-row.is-past:hover{border-color:var(--line-2);box-shadow:none}
.meeting-row.is-past .meeting-date{background:var(--surface);color:var(--text-3);border:1px solid var(--line)}
.meeting-row.is-past .meeting-date .d{color:var(--text-2)}
.meeting-row.is-past .meeting-main>div:first-child{color:var(--text-2);font-weight:600}
.meeting-row .meeting-main{flex:1;min-width:0}
.meeting-date{flex:none;width:46px;height:46px;border-radius:13px;background:var(--blue-soft);color:var(--blue-2);
  display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1.05}
.meeting-date .d{font-size:16px;font-weight:700}
.meeting-date .m{font-size:9px;font-weight:700;text-transform:uppercase}
.meeting-date.past{background:var(--bg-2);color:var(--text-3)}
.meeting-date.done{background:var(--ok-soft);color:var(--ok)}
.meeting-main{flex:1;min-width:0}
.meeting-actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap;justify-content:flex-end}

/* Audit log (záložka) */
.audit-day{margin-bottom:20px}
.audit-day-head{display:flex;align-items:baseline;gap:10px;margin-bottom:8px}
.audit-day-date{font-size:13.5px;font-weight:700}
.audit-day-count{font-size:11.5px;color:var(--text-3)}
.audit-items{position:relative}
.audit-items::before{content:"";position:absolute;left:70px;top:6px;bottom:6px;width:1px;background:var(--line-2)}
.audit-item{display:grid;grid-template-columns:56px 30px 1fr;gap:12px;align-items:flex-start;
  padding:8px 10px;margin:0 -10px;border-radius:10px}
.audit-item:hover{background:var(--bg-2)}
.audit-time{text-align:right;font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:12px;color:var(--text-2);padding-top:5px}
.audit-icon{width:30px;height:30px;border-radius:50%;border:2px solid var(--surface);background:var(--bg-2);
  color:var(--text-2);display:flex;align-items:center;justify-content:center;position:relative;z-index:2}
.audit-icon.blue{background:var(--blue-soft);color:var(--blue-2)}
.audit-icon.ok{background:var(--ok-soft);color:var(--ok)}
.audit-icon.warn{background:var(--warn-soft);color:var(--warn)}
.audit-icon.violet{background:var(--violet-soft);color:var(--violet)}
.audit-icon.danger{background:var(--danger-soft);color:var(--danger)}
.audit-body{min-width:0;padding-top:2px}
.audit-title{font-size:13px;font-weight:600}
.audit-detail{font-size:12px;color:var(--text-2)}
.audit-actor{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;color:var(--text-3);margin-top:2px}
.audit-actor-dot{width:6px;height:6px;border-radius:50%}
.audit-actor-dot.advisor{background:var(--violet)}
.audit-actor-dot.client{background:var(--blue)}
.audit-actor-dot.system{background:var(--text-3)}

/* Záložka Přístup */
.access-hero{display:flex;gap:16px;align-items:flex-start;border:1px solid var(--line);border-left:4px solid var(--blue);
  border-radius:var(--radius);background:var(--surface);padding:20px;margin-bottom:18px;flex-wrap:wrap}
.access-hero.ok{border-left-color:var(--ok)}
.access-hero.warn{border-left-color:var(--warn)}
.access-hero.danger{border-left-color:var(--danger)}
.access-hero-left{flex:none;width:56px;height:56px;border-radius:14px;display:flex;align-items:center;justify-content:center}
.access-hero-left.ok{background:var(--ok-soft);color:var(--ok)}
.access-hero-left.warn{background:var(--warn-soft);color:var(--warn)}
.access-hero-left.danger{background:var(--danger-soft);color:var(--danger)}
.access-hero-main{flex:1;min-width:220px}
.access-hero-state{font-size:20px;font-weight:700}
.access-hero-state.ok{color:var(--ok)} .access-hero-state.warn{color:var(--warn)} .access-hero-state.danger{color:var(--danger)}
.access-row{display:flex;gap:13px;align-items:flex-start;padding:13px 0;border-bottom:1px solid var(--line)}
.access-row:last-child{border-bottom:none}
.access-row-icon{flex:none;width:34px;height:34px;border-radius:9px;background:var(--bg-2);color:var(--text-2);
  display:flex;align-items:center;justify-content:center}
.access-row-main{flex:1;min-width:0}
.access-row-label{font-size:13px;font-weight:600}
.access-row-desc{font-size:11.5px;color:var(--text-3);margin-top:1px}
.access-row-val{font-size:13px;font-weight:600;text-align:right}
.access-timeline{display:flex;flex-direction:column}
.access-tl-item{position:relative;display:flex;gap:13px;padding:9px 0 9px 2px}
.access-tl-item::before{content:"";position:absolute;left:15px;top:38px;bottom:-9px;width:1px;background:var(--line-2)}
.access-tl-item:last-child::before{display:none}
.access-tl-icon{flex:none;width:28px;height:28px;border-radius:50%;border:2px solid var(--blue);color:var(--blue-2);
  background:var(--surface);display:flex;align-items:center;justify-content:center;z-index:2}
.access-tl-icon.ok{border-color:var(--ok);color:var(--ok)}
.access-tl-title{font-size:13px;font-weight:600}
.access-tl-detail{font-size:12px;color:var(--text-2)}
.access-tl-date{font-size:11.5px;color:var(--text-3)}

/* Nastavení */
.settings-layout{display:grid;grid-template-columns:260px 1fr;gap:22px;align-items:start}
.settings-nav{position:sticky;top:80px;display:flex;flex-direction:column;gap:5px}
.settings-nav-item{display:flex;gap:11px;align-items:flex-start;padding:11px 13px;border-radius:11px;
  border:1px solid transparent;cursor:pointer;text-decoration:none;color:var(--text);transition:all .12s}
.settings-nav-item:hover{background:var(--bg-2);text-decoration:none}
.settings-nav-item.active{background:var(--surface);border-color:var(--line);box-shadow:var(--shadow-sm)}
.settings-nav-icon{flex:none;width:32px;height:32px;border-radius:9px;background:var(--bg-2);color:var(--text-2);
  display:flex;align-items:center;justify-content:center}
.settings-nav-item.active .settings-nav-icon{background:var(--blue-soft);color:var(--blue-2)}
.settings-nav-label{font-size:13.5px;font-weight:600}
.settings-nav-desc{font-size:11.5px;color:var(--text-3)}
.save-state{display:flex;align-items:center;gap:7px;font-size:12.5px;font-weight:600}
.save-state.dirty{color:var(--warn)}
.save-state.saved{color:var(--ok)}
.save-state .s-dot{width:8px;height:8px;border-radius:50%;background:currentColor}
.logo-uploader{display:flex;gap:16px;align-items:center;border:1.5px dashed var(--line-2);border-radius:12px;
  padding:16px;flex-wrap:wrap}
.logo-preview{flex:none;width:96px;height:96px;border-radius:12px;background:#fff;border:1px solid var(--line);
  display:flex;align-items:center;justify-content:center;overflow:hidden}
.logo-preview img{max-width:100%;max-height:100%;object-fit:contain}
.logo-placeholder{font-size:28px;font-weight:800;color:var(--blue)}
.brand-preview{background:linear-gradient(135deg,var(--navy),var(--navy-3));border-radius:12px;padding:22px;
  color:#fff;display:flex;gap:14px;align-items:center}

/* Vícestupňové modály */
.newcli-steps{display:flex;align-items:center;gap:0;border-bottom:1px solid var(--line);padding:0 22px 16px;margin:0 -22px 20px}
.newcli-step{display:flex;align-items:center;gap:8px;font-size:12.5px;font-weight:600;color:var(--text-3)}
.newcli-step.active{color:var(--blue-2)}
.newcli-step.done{color:var(--ok)}
.newcli-step-num{width:22px;height:22px;border-radius:50%;border:1.5px solid currentColor;display:flex;
  align-items:center;justify-content:center;font-size:11px;font-weight:700}
.newcli-step.done .newcli-step-num{background:var(--ok);border-color:var(--ok);color:#fff}
.newcli-step-sep{flex:1;height:1px;background:var(--line-2);margin:0 12px;min-width:24px}
.newcli-types{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.newcli-type{display:flex;gap:12px;align-items:flex-start;border:1.5px solid var(--line-2);border-radius:12px;
  padding:14px;cursor:pointer;transition:all .12s;background:var(--surface);text-align:left;font-family:var(--font)}
.newcli-type:hover{border-color:var(--blue)}
.newcli-type.active{border-color:var(--blue);background:var(--blue-soft)}
.newcli-type-icon{flex:none;width:40px;height:40px;border-radius:10px;background:var(--blue-soft);color:var(--blue-2);
  display:flex;align-items:center;justify-content:center}
.newcli-type-icon.violet{background:var(--violet-soft);color:var(--violet)}
.newcli-type-icon.teal{background:var(--teal-soft);color:var(--teal)}
.newcli-type-icon.warn{background:var(--warn-soft);color:var(--warn)}
.newcli-type .t{font-size:13.5px;font-weight:700}
.newcli-type .d{font-size:12px;color:var(--text-2);margin-top:2px}

/* Tipy — čistě bílá karta s dominantním logem nahoře */
.tip-logo-band{padding:22px 16px 14px;display:flex;align-items:center;justify-content:center;
  border-bottom:1px solid var(--line);min-height:96px;position:relative;background:var(--surface)}
.tip-logo-band img{max-width:150px;max-height:56px;width:auto;height:auto;object-fit:contain;display:block}
.tip-logo-text{font-size:26px;font-weight:800;letter-spacing:0.02em;color:var(--navy)}
.tip-logo-fallback{width:56px;height:56px;border-radius:14px;background:var(--blue-soft);color:var(--blue-2);
  display:flex;align-items:center;justify-content:center}

.tip-logo-pick{display:flex;align-items:center;gap:14px}
.tip-logo-preview{flex:none;width:52px;height:52px;border-radius:12px;border:1px solid var(--line);
  background:var(--bg-2);display:flex;align-items:center;justify-content:center;overflow:hidden;
  font-weight:800;color:var(--text-3)}
.tip-logo-preview img{width:100%;height:100%;object-fit:contain;padding:7px}

.tips-grid,.client-tips-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:18px}
.client-tips-grid{grid-template-columns:repeat(auto-fill,minmax(290px,1fr))}
.tip-card{background:var(--surface);border:1px solid var(--line);border-radius:12px;overflow:hidden;
  transition:all .15s;position:relative;display:flex;flex-direction:column;text-decoration:none;color:inherit}
.tip-card:hover{transform:translateY(-2px);border-color:var(--blue);box-shadow:var(--shadow-md);text-decoration:none}
a.tip-card:hover .tip-card-title{color:var(--blue-2)}
.tip-card-pinned{position:absolute;top:10px;right:10px;z-index:3;background:var(--warn);color:#fff;
  font-size:10.5px;font-weight:700;padding:3px 9px;border-radius:999px;display:flex;align-items:center;gap:4px}
.tip-pin-btn{position:absolute;top:10px;left:10px;z-index:3;width:28px;height:28px;border-radius:8px;
  background:var(--bg);border:1px solid var(--line);color:var(--navy);cursor:pointer;
  display:flex;align-items:center;justify-content:center}
.tip-card-body{padding:14px;flex:1;display:flex;flex-direction:column;gap:6px}
.tip-card-source{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:0.06em;color:var(--text-3);
  display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.tip-card-title{font-size:14.5px;font-weight:700;line-height:1.4;display:-webkit-box;-webkit-line-clamp:3;
  -webkit-box-orient:vertical;overflow:hidden;transition:color .12s}
.tip-card-desc{font-size:12.5px;color:var(--text-2);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.tip-card-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:11px 14px;
  border-top:1px solid var(--line);font-size:11.5px;color:var(--text-3)}

/* Přetahování karet (admin) */
.tip-card.is-draggable{cursor:grab}
.tip-card.is-draggable:active{cursor:grabbing}
.tip-card.dragging{opacity:0.45;border-style:dashed}
.tip-card.drop-target{border-color:var(--blue);box-shadow:0 0 0 3px rgba(50,148,213,0.18)}
.tip-drag-handle{position:absolute;top:10px;left:10px;z-index:3;width:28px;height:28px;border-radius:8px;
  background:var(--bg);border:1px solid var(--line);color:var(--text-3);display:flex;align-items:center;
  justify-content:center;cursor:grab}
.tip-drag-handle:active{cursor:grabbing}
.tips-reorder-note{font-size:12px;color:var(--text-3);display:flex;align-items:center;gap:7px;margin-bottom:12px}
.tip-card-cta{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:600;color:var(--blue-2)}


.tip-section-row{display:flex;align-items:center;gap:13px;padding:13px 0;border-bottom:1px solid var(--line)}
.tip-section-row:last-child{border-bottom:none}
.tip-section-icon{flex:none;width:38px;height:38px;border-radius:10px;display:flex;align-items:center;justify-content:center;
  background:var(--blue-soft);color:var(--blue-2)}
.tip-section-icon.violet{background:var(--violet-soft);color:var(--violet)}
.tip-section-icon.teal{background:var(--teal-soft);color:var(--teal)}
.tip-section-icon.warn{background:var(--warn-soft);color:var(--warn)}
.tip-section-icon.ok{background:var(--ok-soft);color:var(--ok)}
.tag-toggle{display:inline-flex;align-items:center;gap:5px;padding:5px 11px;border-radius:999px;border:1px solid var(--line-2);
  background:var(--surface);font-size:12px;font-weight:600;color:var(--text-2);cursor:pointer;transition:all .12s;font-family:var(--font)}
.tag-toggle:hover{background:var(--bg-2)}
.tag-toggle.blue.active{background:var(--blue-soft);border-color:var(--blue);color:var(--blue-2)}
.tag-toggle.violet.active{background:var(--violet-soft);border-color:var(--violet);color:var(--violet)}
.tag-toggle.teal.active{background:var(--teal-soft);border-color:var(--teal);color:var(--teal)}
.tag-toggle.warn.active{background:var(--warn-soft);border-color:var(--warn);color:var(--warn)}
.tag-toggle.ok.active{background:var(--ok-soft);border-color:var(--ok);color:var(--ok)}
.tag-toggle.danger.active{background:var(--danger-soft);border-color:var(--danger);color:var(--danger)}
.icon-pick{width:32px;height:32px;border-radius:8px;border:1px solid var(--line-2);background:var(--surface);
  color:var(--text-2);cursor:pointer;display:inline-flex;align-items:center;justify-content:center}
.icon-pick.active{background:var(--blue);border-color:var(--blue);color:#fff}
.placeholder-chip{font-family:var(--font-mono);font-size:11.5px;border:1px dashed var(--line-2);border-radius:7px;
  padding:4px 9px;background:var(--bg);cursor:pointer;color:var(--text-2)}
.placeholder-chip:hover{border-color:var(--blue);color:var(--blue-2)}

/* Náhled e-mailu */
.email-preview{border:1px solid var(--line-2);border-radius:12px;overflow:hidden;background:var(--surface)}
.email-preview-bar{display:flex;align-items:center;gap:10px;padding:9px 13px;background:var(--bg);border-bottom:1px solid var(--line)}
.email-preview-bar-dots{display:flex;gap:4px}
.email-preview-bar-dots span{width:8px;height:8px;border-radius:50%;background:var(--line-2)}
.email-preview-bar-from{font-size:11.5px;color:var(--text-3);font-family:var(--font-mono)}
.email-preview-header{background:var(--navy);color:#fff;padding:16px 18px;display:flex;align-items:center;gap:11px}
.email-preview-logo{width:44px;height:44px;border-radius:11px;background:linear-gradient(135deg,var(--blue),var(--navy-3));
  display:flex;align-items:center;justify-content:center;font-weight:800;color:#fff}
.email-preview-body{padding:18px}
.email-preview-subject{font-size:19px;font-weight:700;margin:0 0 6px}
.email-preview-preview{font-size:12.5px;color:var(--text-2);font-style:italic;margin-bottom:12px}
.email-preview-text{font-size:13px;white-space:pre-line}
.email-preview-cta{background:var(--bg);border-radius:10px;padding:16px;text-align:center;margin:14px 0}
.email-preview-cta-btn{display:inline-block;background:var(--blue);color:#fff;font-weight:700;font-size:13px;
  padding:10px 20px;border-radius:9px}
.email-preview-foot{padding:12px 18px;border-top:1px solid var(--line);font-size:11px;color:var(--text-3)}
.invite-features{display:flex;flex-direction:column;gap:6px;margin-top:12px}
.invite-feat{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--text-2)}

/* Kampaně a šablony */
.campaign-card{display:grid;grid-template-columns:1fr auto;gap:14px;border:1px solid var(--line);border-radius:12px;
  padding:16px 18px;cursor:pointer;transition:border-color .12s;background:var(--surface)}
.campaign-card:hover{border-color:var(--blue)}
.campaign-card-status{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:0.06em;
  padding:3px 9px;border-radius:999px}
.campaign-card-status.sent{background:var(--ok-soft);color:var(--ok)}
.campaign-card-status.scheduled{background:var(--blue-soft);color:var(--blue-2)}
.campaign-card-status.draft{background:var(--bg-2);color:var(--text-3)}
.campaign-stats{display:grid;grid-template-columns:repeat(3,auto);gap:18px;align-items:center}
.campaign-stat{text-align:right}
.campaign-stat .num{font-size:17px;font-weight:700;font-variant-numeric:tabular-nums}
.campaign-stat .lbl{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:0.06em;color:var(--text-3)}
.template-row{display:grid;grid-template-columns:auto 1fr auto auto;gap:14px;align-items:center;
  padding:14px 0;border-bottom:1px solid var(--line);cursor:pointer}
.template-row:last-child{border-bottom:none}
.template-row-icon{width:42px;height:42px;border-radius:11px;background:var(--blue-soft);color:var(--blue-2);
  display:flex;align-items:center;justify-content:center}
.template-row-name{font-size:13.5px;font-weight:700}
.template-row-purpose{font-size:12px;color:var(--text-2)}
.template-row-subject{font-family:var(--font-mono);font-size:11px;color:var(--text-3);margin-top:2px}
.template-row-meta{text-align:right;font-size:11.5px;color:var(--text-3)}
.template-row-meta b{display:block;font-size:13px;color:var(--text)}
.quick-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.quick-tile{display:flex;gap:12px;align-items:flex-start;border:1px solid var(--line-2);border-radius:12px;
  padding:14px;cursor:pointer;transition:all .15s;background:var(--surface);text-align:left;font-family:var(--font)}
.quick-tile:hover{transform:translateY(-2px);border-color:var(--blue);box-shadow:var(--shadow-sm)}

/* Přehled úkolů */
.task-overview-row{display:grid;grid-template-columns:auto minmax(0,1.4fr) 100px 110px 130px auto;gap:14px;
  align-items:center;padding:13px 20px;border-bottom:1px solid var(--line);cursor:pointer}
.task-overview-row:last-child{border-bottom:none}
.task-overview-row:first-child{border-radius:var(--radius-lg) var(--radius-lg) 0 0}
.task-overview-row:last-child{border-radius:0 0 var(--radius-lg) var(--radius-lg)}
.task-overview-row:hover{background:var(--bg-2)}
.task-ov-lbl{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:0.06em;color:var(--text-3)}
.task-ov-val{font-size:12.5px;font-weight:600;margin-top:1px}

/* Tým poradců */
.advisor-row{display:grid;grid-template-columns:auto 1fr auto auto auto;gap:16px;align-items:center;
  padding:15px 0;border-bottom:1px solid var(--line)}
.advisor-row:last-child{border-bottom:none}
.advisor-row-name{font-size:14px;font-weight:700;display:flex;align-items:center;gap:8px}
.advisor-row-meta{display:flex;align-items:center;gap:14px;font-size:11.5px;color:var(--text-3);margin-top:4px;flex-wrap:wrap}
.advisor-row-meta span{display:inline-flex;align-items:center;gap:5px}
.advisor-row-stat{text-align:center}
.advisor-row-stat b{display:block;font-size:17px;font-variant-numeric:tabular-nums}
.advisor-row-stat span{font-size:10.5px;color:var(--text-3);text-transform:uppercase;letter-spacing:0.05em;font-weight:700}

/* Vizitka poradce v portálu klienta */
.advisor-card{background:var(--surface);border:1px solid var(--line);
  border-radius:var(--radius-lg);padding:18px;box-shadow:var(--shadow)}
.advisor-card-top{display:flex;align-items:center;gap:14px}
.advisor-card-photo{flex:none;width:56px;height:56px;border-radius:50%;object-fit:cover;background:var(--bg-2)}
.advisor-card-photo.is-initials{display:flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg,var(--blue),var(--navy-3));color:#fff;font-size:19px;font-weight:800;
  letter-spacing:0.02em}
.advisor-card-id{min-width:0}
.advisor-card-label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:0.12em;
  color:var(--text-3);margin-bottom:3px}
.advisor-card-name{font-size:16px;font-weight:700;line-height:1.25}
.advisor-card-title{font-size:12.5px;color:var(--text-2);margin-top:2px}
.advisor-card-bio{font-size:12.5px;color:var(--text-2);line-height:1.55;margin:12px 0 0}
.advisor-card-contacts{border-top:1px solid var(--line);margin-top:14px;padding-top:12px;
  display:flex;flex-direction:column;gap:8px}
.advisor-card-contact.is-link{color:var(--blue-2)}
.advisor-card-contact{display:flex;align-items:center;gap:10px;font-size:12.5px;font-weight:600;
  color:var(--text);text-decoration:none;min-width:0}
.advisor-card-contact:hover{color:var(--blue-2);text-decoration:none}
.advisor-card-contact .ico{flex:none;width:28px;height:28px;border-radius:8px;background:var(--blue-soft);
  color:var(--blue-2);display:flex;align-items:center;justify-content:center}
.advisor-card-contact .val{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.advisor-card-note{display:flex;align-items:flex-start;gap:8px;margin-top:16px;padding:11px 13px;
  border-radius:10px;background:var(--bg);font-size:12px;color:var(--text-2);line-height:1.5}
.advisor-card-note svg{flex:none;margin-top:1px;color:var(--blue-2)}

/* Náhled fotografie v nastavení profilu */
.photo-pick{display:flex;align-items:center;gap:16px}
.photo-pick-preview{flex:none;width:76px;height:76px;border-radius:50%;object-fit:cover;
  border:1px solid var(--line);background:var(--bg-2);display:flex;align-items:center;justify-content:center;
  color:var(--text-3);font-size:22px;font-weight:800}

/* Detail úkolu */
.task-detail-status{display:flex;align-items:center;gap:12px;border-radius:11px;padding:14px 16px;margin-bottom:16px}
.task-detail-status.done{background:var(--ok-soft);color:var(--ok)}
.task-detail-status.overdue{background:var(--danger-soft);color:var(--danger)}
.task-detail-status.active{background:var(--blue-soft);color:var(--blue-2)}
.task-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:14px}
.task-detail-cell{background:var(--bg);border-radius:9px;padding:11px 13px}
.task-detail-cell-lbl{display:flex;align-items:center;gap:6px;font-size:10.5px;font-weight:700;
  text-transform:uppercase;letter-spacing:0.06em;color:var(--text-3)}
.task-detail-cell-val{font-size:14px;font-weight:600;margin-top:3px}
.task-detail-cell .k{display:block;font-size:10.5px;font-weight:700;text-transform:uppercase;
  letter-spacing:0.06em;color:var(--text-3);margin-bottom:3px}
.task-detail-cell .v{display:block;font-size:14px;font-weight:600;line-height:1.4;
  overflow-wrap:anywhere}
.task-detail-cell .v:empty::after{content:'—';color:var(--text-3);font-weight:500}

/* Hero bloky */
.navy-card{background:linear-gradient(135deg,var(--navy),var(--navy-2));color:#fff;border-radius:var(--radius);
  padding:20px;position:relative;overflow:hidden}
.navy-card::before{content:"";position:absolute;top:-40px;right:-30px;width:180px;height:180px;border-radius:50%;
  background:radial-gradient(circle,rgba(50,148,213,0.4),transparent 70%)}
.navy-card .upcase{color:#7fb6e0}
.navy-card .mono-box{font-family:var(--font-mono);font-size:12px;background:rgba(255,255,255,0.08);
  border:1px solid rgba(255,255,255,0.14);border-radius:8px;padding:9px 12px;margin-top:10px;word-break:break-all}

/* Přihlášení */
.login-wrap{min-height:100vh;display:grid;grid-template-columns:1fr 1fr}
.login-left{display:flex;flex-direction:column;justify-content:center;padding:48px;max-width:560px;margin:0 auto;width:100%}
.login-right{background:linear-gradient(160deg,var(--navy),var(--navy-3));color:#fff;display:flex;
  flex-direction:column;justify-content:center;padding:64px;position:relative;overflow:hidden}
.login-right::before{content:"";position:absolute;top:-80px;right:-60px;width:340px;height:340px;border-radius:50%;
  background:radial-gradient(circle,rgba(50,148,213,0.35),transparent 70%)}
.login-title{font-size:32px;font-weight:700;letter-spacing:-0.02em;margin:22px 0 6px}
.login-quote{font-size:28px;font-weight:700;line-height:1.35;letter-spacing:-0.01em;position:relative;z-index:2}
.login-quote em{color:#7fb6e0;font-style:italic}
.login-divider{display:flex;align-items:center;gap:12px;color:var(--text-3);font-size:12px;margin:16px 0}
.login-divider::before,.login-divider::after{content:"";flex:1;height:1px;background:var(--line-2)}
.google-btn{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:11px;
  border:1px solid var(--line-2);border-radius:10px;background:#fff;font-size:13.5px;font-weight:600;cursor:pointer;font-family:var(--font)}
.google-btn:hover{background:var(--bg)}
.pw-wrap{position:relative}
.pw-wrap input{padding-right:40px}
.pw-eye{position:absolute;right:8px;top:50%;transform:translateY(-50%);border:none;background:none;
  color:var(--text-3);cursor:pointer;padding:5px;border-radius:6px}
.strength{display:flex;gap:5px;margin-top:7px}
.strength span{flex:1;height:4px;border-radius:999px;background:var(--bg-2)}
.strength.s1 span:nth-child(-n+1){background:var(--danger)}
.strength.s2 span:nth-child(-n+2){background:var(--warn)}
.strength.s3 span:nth-child(-n+3){background:var(--warn)}
.strength.s4 span:nth-child(-n+4){background:var(--ok)}
.code-input{font-family:var(--font-mono);font-size:24px;letter-spacing:0.35em;text-align:center;font-weight:700}
.backup-codes{display:grid;grid-template-columns:1fr 1fr;gap:8px;font-family:var(--font-mono);font-size:13.5px}
.backup-codes span{background:var(--bg);border:1px dashed var(--line-2);border-radius:8px;padding:8px 12px;text-align:center}

/* Detailové řádky štítek→hodnota */
.def-row{display:flex;justify-content:space-between;gap:16px;padding:11px 0;border-bottom:1px solid var(--line);font-size:13px}
.def-row:last-child{border-bottom:none}
.def-row .k{color:var(--text-2);font-weight:600}
.def-row .v{text-align:right;font-weight:600;min-width:0;overflow-wrap:anywhere}

/* Souhlasy (karta) */
.consent-card{display:flex;gap:13px;align-items:flex-start;border:1px solid var(--line);border-radius:12px;padding:15px;margin-bottom:12px}
.consent-icon{flex:none;width:40px;height:40px;border-radius:50%;background:var(--surface);border:1px solid var(--line-2);
  display:flex;align-items:center;justify-content:center;color:var(--text-2)}
.consent-state{font-size:16px;font-weight:700}
.consent-state.ok{color:var(--ok)} .consent-state.danger{color:var(--danger)}
.consent-state.blue{color:var(--blue-2)} .consent-state.muted{color:var(--text-3)}
.consent-help{font-size:11.5px;color:var(--text-3);font-style:italic;margin-top:4px}

/* Graf fakturace */
.bars{display:flex;align-items:flex-end;gap:14px;height:160px;padding-top:18px}
.bar-col{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;height:100%;justify-content:flex-end}
.bar-val{font-size:11px;font-weight:700;color:var(--text-2);font-variant-numeric:tabular-nums}
.bar{width:100%;max-width:44px;border-radius:7px 7px 3px 3px;background:var(--bg-2);min-height:4px;position:relative}
.bar.current{background:var(--blue)}
.bar.current::before{content:"";position:absolute;top:-6px;left:0;right:0;height:3px;border-radius:3px;background:var(--blue)}
.bar-lbl{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:0.05em;color:var(--text-3)}

/* Karty klientů */
.client-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}
.client-card{position:relative;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);
  padding:18px;cursor:pointer;transition:all .15s}
.client-card:hover{border-color:var(--blue);box-shadow:var(--shadow-sm)}
.client-card.cancelled{opacity:0.78}
.client-card-pin{position:absolute;top:12px;right:12px}
.client-card-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;border-top:1px solid var(--line);
  margin-top:14px;padding-top:12px;text-align:center}
.client-card-stats b{display:block;font-size:15px;font-variant-numeric:tabular-nums}
.client-card-stats span{font-size:10.5px;color:var(--text-3);text-transform:uppercase;letter-spacing:0.04em;font-weight:700}
.pin-btn{border:none;background:none;color:var(--text-3);cursor:pointer;padding:5px;border-radius:7px;display:inline-flex}
.pin-btn:hover{background:var(--bg-2)}
.pin-btn.pinned{color:var(--warn)}
.shield-mini{color:var(--ok);display:inline-flex;vertical-align:middle}

/* Placeholder image */
.placeholder-image{background:repeating-linear-gradient(45deg,var(--bg-2) 0 10px,var(--bg) 10px 20px);
  border:1.5px dashed var(--line-2);border-radius:10px;display:flex;align-items:center;justify-content:center;
  color:var(--text-3);font-family:var(--font-mono);font-size:11px;min-height:80px}

/* Flash zprávy */
.flash{position:fixed;top:76px;right:22px;z-index:200;display:flex;flex-direction:column;gap:8px}
.flash-item{background:var(--surface);border:1px solid var(--line-2);border-left:4px solid var(--blue);
  border-radius:10px;padding:12px 16px;font-size:13px;font-weight:600;box-shadow:var(--shadow-md);
  animation:slideUp .2s;max-width:380px}
.flash-item.ok{border-left-color:var(--ok)}
.flash-item.error{border-left-color:var(--danger)}
.flash-item.warn{border-left-color:var(--warn)}

.pulse{animation:pulse 1.5s infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:0.45}}
.spinner{width:36px;height:36px;border-radius:50%;border:3px solid var(--line-2);border-top-color:var(--blue);
  animation:spin 0.8s linear infinite;margin:0 auto}
@keyframes spin{to{transform:rotate(360deg)}}

/* ---- 6. Responzivita ---- */
@media(max-width:1100px){
  .stat-grid{grid-template-columns:1fr 1fr}
  .grid-2,.grid-3,.grid-2-1{grid-template-columns:1fr}
  .task-overview-row{grid-template-columns:auto 1fr auto}
  .hide-when-narrow{display:none!important}
  .settings-layout{grid-template-columns:1fr}
}
@media(max-width:880px){
  .login-wrap{grid-template-columns:1fr}
  .login-right{display:none}
  .settings-nav{position:static;flex-direction:row;overflow-x:auto}
  .app{grid-template-columns:var(--sidebar-w-collapsed) 1fr}
  .brand-text,.nav-badge,.nav-section-title,.nav-item span.lbl,.sidebar-user .u-meta,.nav-quick{display:none}
  .nav-item{justify-content:center}
}
@media(max-width:720px){
  .hide-sm{display:none!important}
  .content{padding:20px 16px 48px}
  .newcli-types,.quick-grid,.field-row,.task-detail-grid{grid-template-columns:1fr}
}

/* Náhled dokumentu v modálu */
.modal-backdrop.preview{z-index:120}
.modal-backdrop.preview .modal{max-width:1000px}
.preview-body{padding:0;background:var(--bg-2);min-height:60vh;display:flex;flex-direction:column;
  align-items:center;justify-content:center;border-radius:0}
.preview-frame{width:100%;height:72vh;border:0;background:#fff;display:block}
.preview-img{max-width:100%;max-height:72vh;object-fit:contain;display:block;margin:auto;padding:14px}
.preview-loading{display:flex;align-items:center;gap:10px;padding:60px 20px;font-size:13px;color:var(--text-3)}
.preview-spinner{width:16px;height:16px;border:2px solid var(--line-2);border-top-color:var(--blue);
  border-radius:50%;display:inline-block;animation:mkspin .7s linear infinite}
@keyframes mkspin{to{transform:rotate(360deg)}}
.preview-fallback{text-align:center;padding:64px 24px;color:var(--text-2)}
.preview-fallback p{margin:12px 0 0;font-size:13.5px;max-width:380px}
.preview-fallback-icon{display:inline-flex;align-items:center;justify-content:center;width:56px;height:56px;
  border-radius:14px;background:var(--surface);border:1px solid var(--line);color:var(--text-3)}
.doc-tile{position:relative}
@media (max-width:720px){.preview-frame{height:60vh}}

/* Nejbližší schůzka na dashboardu klienta */
.next-meeting{display:flex;align-items:center;gap:18px;flex-wrap:wrap;background:var(--surface);
  border:1px solid var(--line);border-left:4px solid var(--blue);border-radius:var(--radius-lg);
  padding:18px 20px;margin-bottom:20px;box-shadow:var(--shadow-sm)}
.next-meeting-cal{flex:none;width:64px;display:flex;flex-direction:column;align-items:center;
  background:var(--blue-soft);border-radius:12px;padding:8px 0;color:var(--blue-2)}
.next-meeting-cal .mon{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:0.08em}
.next-meeting-cal .day{font-size:26px;font-weight:800;line-height:1.1;color:var(--navy)}
.next-meeting-cal .dow{font-size:10.5px;font-weight:600;text-transform:uppercase}
.next-meeting-main{flex:1;min-width:200px}
.next-meeting-label{display:flex;align-items:center;gap:7px;font-size:10.5px;font-weight:700;
  text-transform:uppercase;letter-spacing:0.09em;color:var(--text-3)}
.next-meeting-soon,.next-meeting-in{padding:2px 8px;border-radius:999px;font-size:10px;letter-spacing:0.04em}
.next-meeting-soon{background:var(--warn-soft);color:var(--warn)}
.next-meeting-in{background:var(--bg-2);color:var(--text-2)}
.next-meeting-title{font-size:18px;font-weight:700;margin:6px 0 0}
.next-meeting-meta{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:7px;
  font-size:12.5px;color:var(--text-2)}
.next-meeting-meta span{display:inline-flex;align-items:center;gap:6px}
.next-meeting-actions{display:flex;gap:9px;flex-wrap:wrap}
@media (max-width:640px){
  .next-meeting{gap:14px}
  .next-meeting-actions{width:100%}
  .next-meeting-actions .btn{flex:1}
}

/* Tipy v blocích podle sekcí (portál klienta) */
.tips-jump{display:flex;flex-wrap:wrap;gap:9px;margin-bottom:22px}
.tips-jump-link{display:inline-flex;align-items:center;gap:7px;padding:7px 13px;border-radius:999px;
  border:1px solid var(--line-2);background:var(--surface);font-size:12.5px;font-weight:600;
  color:var(--text-2);text-decoration:none;transition:all .12s}
.tips-jump-link:hover{border-color:var(--blue);color:var(--blue-2);text-decoration:none}
.tips-jump-link .count{background:var(--bg-2);border-radius:999px;padding:1px 7px;font-size:11px;color:var(--text-3)}
.tips-section{margin-bottom:34px;scroll-margin-top:80px}
.tips-section-head{display:flex;align-items:center;gap:13px;margin-bottom:14px;
  padding-bottom:12px;border-bottom:1px solid var(--line)}
.tips-section-icon{flex:none;width:38px;height:38px;border-radius:11px;display:flex;align-items:center;
  justify-content:center;background:var(--blue-soft);color:var(--blue-2)}
.tips-section-icon.violet{background:var(--violet-soft);color:var(--violet)}
.tips-section-icon.teal{background:var(--teal-soft);color:var(--teal)}
.tips-section-icon.warn{background:var(--warn-soft);color:var(--warn)}
.tips-section-icon.ok{background:var(--ok-soft);color:var(--ok)}
.tips-section-title{font-size:17px;font-weight:700;margin:0;line-height:1.3}
.tips-section-sub{font-size:12.5px;color:var(--text-2);margin:2px 0 0}
.tips-section-count{margin-left:auto;font-size:11.5px;font-weight:600;color:var(--text-3);white-space:nowrap}
@media (max-width:640px){.tips-section-count{display:none}}

/* Zprávy: seznam vláken a konverzace */
.msg-list-head{display:flex;align-items:center;gap:9px;padding:16px 18px;
  border-bottom:1px solid var(--line);color:var(--blue-2);font-weight:700;font-size:13.5px}
.msg-list-head svg{flex:none}
/* Vracečka jako malé tlačítko (v147): odkaz i <button>, větší plocha na mobilu */
.back-link{display:inline-flex;align-items:center;gap:6px;min-height:32px;padding:0 12px 0 9px;
  font:inherit;font-size:13px;font-weight:600;line-height:1;color:var(--text);text-decoration:none;
  background:var(--surface);border:1px solid var(--line-2);border-radius:8px;cursor:pointer;
  transition:border-color .12s,color .12s,background .12s}
.back-link:hover{color:var(--blue-2);border-color:var(--blue);text-decoration:none}
.back-link:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
.back-link svg{flex:none}
@media (max-width:900px){.back-link{min-height:38px;padding:0 14px 0 10px}}

.msg-row{display:flex;align-items:center;gap:14px;padding:16px 18px;text-decoration:none;color:inherit;
  border-bottom:1px solid var(--line);position:relative;transition:background .12s}
.msg-row:last-child{border-bottom:none}
.msg-row:hover{background:var(--bg);text-decoration:none}
.msg-row:first-child:hover{border-radius:var(--radius) var(--radius) 0 0}
.msg-row:last-child:hover{border-radius:0 0 var(--radius) var(--radius)}
.msg-row:first-child:last-child:hover{border-radius:var(--radius)}
.msg-row::before{content:"";position:absolute;left:0;top:8px;bottom:8px;width:3px;border-radius:0 3px 3px 0;
  background:transparent;transition:background .12s}
.msg-row.is-waiting::before{background:var(--warn)}
.msg-row.is-unread .msg-row-subject{font-weight:800;color:var(--text)}
.msg-row.is-closed{opacity:.72}
.msg-row-avatar-wrap{flex:none;position:relative}
.msg-row.is-waiting .msg-row-avatar-wrap::after{content:"";position:absolute;right:-1px;bottom:-1px;
  width:11px;height:11px;border-radius:50%;background:var(--warn);border:2px solid var(--surface)}
.msg-row-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}
.msg-row-top{display:flex;align-items:baseline;gap:8px;min-width:0}
.msg-row-subject{font-size:14px;font-weight:700;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.msg-row-client{font-size:11.5px;font-weight:600;color:var(--blue-2);flex:none}
.msg-row-preview{font-size:12.5px;color:var(--text-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.4}
.msg-row-preview b{color:var(--text);font-weight:600}
.msg-row-meta{flex:none;display:flex;flex-direction:column;align-items:flex-end;gap:6px}
.msg-row-time{font-size:11.5px;color:var(--text-3);font-weight:600;white-space:nowrap}
.msg-row-badges{display:flex;align-items:center;gap:6px}
.msg-row-count{display:inline-flex;align-items:center;gap:4px;font-size:10.5px;font-weight:700;color:var(--text-3);
  background:var(--bg-2);padding:2px 7px;border-radius:999px}
.chat{display:flex;flex-direction:column;gap:16px;margin-bottom:22px}
.chat-msg{display:flex;gap:11px;align-items:flex-start}
.chat-msg.is-mine{flex-direction:row-reverse}
.chat-bubble-wrap{max-width:78%;min-width:0}
.chat-who{font-size:11.5px;font-weight:700;color:var(--text-2);margin-bottom:4px}
.chat-msg.is-mine .chat-who{text-align:right}
.chat-time{font-weight:500;color:var(--text-3);margin-left:7px}
.chat-msg.is-mine .chat-time{margin:0 7px 0 0}
.chat-bubble{background:var(--bg);border:1px solid var(--line);border-radius:14px 14px 14px 4px;
  padding:11px 14px;font-size:13.5px;line-height:1.6;overflow-wrap:anywhere}
.chat-msg.is-mine .chat-bubble{background:var(--blue-soft);border-color:transparent;
  border-radius:14px 14px 4px 14px}
.chat-empty{padding:30px 0;text-align:center;color:var(--text-3);font-size:13px}
@media (max-width:640px){.chat-bubble-wrap{max-width:88%}}

/* Odkaz „Zapomenuté heslo?" — v HTML za polem (kvůli pořadí tabulátoru),
   opticky ale na řádku s popiskem */
.field.has-forgot{position:relative}
.field.has-forgot .field-forgot{position:absolute;top:0;right:0;font-size:12px;font-weight:600;line-height:1.4}

/* Needitovatelná pole — na první pohled poznat, že nejdou měnit */
input.is-locked,input:disabled,select:disabled,textarea:disabled,
input[readonly],textarea[readonly]{
  background:var(--bg-2);color:var(--text-2);cursor:not-allowed;border-color:var(--line)}
input.is-locked:focus,input[readonly]:focus{outline:none;box-shadow:none;border-color:var(--line)}
.field-help svg{vertical-align:-2px;margin-right:3px;opacity:0.7}

/* Roční souhrn příjem / výdej / rozdíl */
.money-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:20px;align-items:stretch}
.money-cell{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);
  padding:16px 18px;position:relative;overflow:hidden}
.money-cell::before{content:'';position:absolute;left:0;top:0;bottom:0;width:3px}
.money-cell.income::before{background:var(--ok)}
.money-cell.expense::before{background:var(--warn)}
.money-cell.diff::before{background:var(--blue)}
.money-cell.diff.is-negative::before{background:var(--danger)}
.money-label{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:700;text-transform:uppercase;
  letter-spacing:0.07em;color:var(--text-3)}
.money-value{font-size:23px;font-weight:800;margin-top:6px;font-variant-numeric:tabular-nums}
.money-cell.income .money-value{color:var(--ok)}
.money-cell.expense .money-value{color:var(--warn)}
.money-cell.diff.is-negative .money-value{color:var(--danger)}
.money-note{font-size:11.5px;color:var(--text-3);margin-top:4px}
.money-years{grid-column:1/-1;display:flex;gap:8px;flex-wrap:wrap}
@media (max-width:820px){.money-summary{grid-template-columns:1fr}}

@media print{
  .sidebar,.topbar,.modal-foot,.btn,.imp-banner,.advisor-banner,.demo-banner{display:none!important}
  .app{display:block}
  body{background:#fff}
}

/* Oprava tipů: stav připnutí na tlačítku pinu */
.tip-pin-btn.pinned{color:var(--warn);background:rgba(255,255,255,0.92)}

/* =====================================================================
   Dashboardy v10 — kachle, graf, kalendář s agendou, řádky konzultací
   ===================================================================== */

/* Kachle: hodnota a štítek vedle sebe (dle návrhu) */
.stat-row{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-top:6px}
.stat-row .stat-value{margin-top:0}
.stat-tag{font-size:12px;font-weight:600;color:var(--text-2);background:var(--bg-2);
  border-radius:999px;padding:3px 9px;white-space:nowrap}
.stat-tag.ok{color:var(--ok);background:var(--ok-soft)}
.stat-tag.danger{color:var(--danger);background:var(--danger-soft)}
.stat-tag.plain{background:transparent;padding:0;color:var(--text-3)}
.stat-value.is-money{font-size:23px}
a.stat{display:block;color:inherit}
a.stat:hover{text-decoration:none;border-color:var(--line-2)}

/* Graf financí: sloupce příjmů/výdajů + linka kumulativního zisku */
.chart-legend{display:flex;gap:18px;justify-content:flex-end;flex-wrap:wrap;margin-bottom:2px}
.chart-legend-item{display:inline-flex;align-items:center;gap:7px;font-size:12px;font-weight:600;color:var(--text-2)}
.chart-legend-bar{width:11px;height:11px;border-radius:3px;background:var(--ok)}
.chart-legend-bar.danger{background:var(--danger)}
.chart-legend-line{width:16px;height:0;border-top:2.5px solid var(--blue);position:relative}
.chart-legend-line::after{content:"";position:absolute;left:5px;top:-3.5px;width:7px;height:7px;
  border-radius:50%;border:2px solid var(--blue);background:var(--surface)}
.chart-wrap{width:100%;overflow:hidden}
.line-chart{width:100%;height:auto;display:block}
.chart-grid{stroke:var(--line);stroke-width:1}
.chart-grid.zero{stroke:var(--line-2);stroke-width:1.5;stroke-dasharray:4 3}
.chart-axis-label{fill:var(--text-3);font-size:11px;font-family:var(--font);font-variant-numeric:tabular-nums}
.chart-axis-label.is-profit{fill:var(--blue-2);font-weight:600}
.chart-month{font-weight:700;letter-spacing:0.05em}
.chart-month.is-future{opacity:0.4}
.chart-bar{transition:opacity .12s}
.chart-bar.income{fill:var(--ok)}
.chart-bar.expense{fill:var(--danger)}
.chart-bar:hover{opacity:0.75}
.chart-profit-line{fill:none;stroke:var(--blue);stroke-width:2.5;stroke-linejoin:round;stroke-linecap:round}
.chart-profit-dot{fill:var(--surface);stroke:var(--blue);stroke-width:2.5}

/* Karta schůzky na dashboardu poradce */
.meet-card{display:flex;align-items:center;gap:16px;padding:14px;border:1px solid var(--line-2);
  border-radius:12px;margin-bottom:10px;cursor:pointer;transition:border-color .12s,background .12s}
.meet-card:hover{border-color:var(--blue);background:var(--blue-soft)}
.meet-card-date{flex:none;width:56px;text-align:center;line-height:1.1}
.meet-card-date .m{display:block;font-size:10.5px;font-weight:800;letter-spacing:0.08em;color:var(--blue-2)}
.meet-card-date .d{display:block;font-size:24px;font-weight:700;font-variant-numeric:tabular-nums}
.meet-card-main{flex:1;min-width:0}
.meet-card-title{font-size:14px;font-weight:700}
.meet-card-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:12.5px;
  color:var(--text-2);margin-top:4px}
.meet-card-sep{width:1px;height:12px;background:var(--line-2)}
.meet-card-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.meet-card-empty{border:1px dashed var(--line-2);border-radius:12px;padding:20px;text-align:center;
  font-size:12.5px;color:var(--text-3)}

/* Kalendář: navigace měsíců + agenda vybraného dne */
.cal-nav{display:inline-flex;gap:4px}
.cal-nav-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;
  border-radius:8px;color:var(--text-2);border:1px solid transparent}
.cal-nav-btn:hover{background:var(--bg-2);color:var(--text);text-decoration:none}
a.cal-cell{color:inherit;text-decoration:none}
a.cal-cell:hover{background:var(--bg-2);text-decoration:none}
.cal-cell.selected{color:var(--blue-2);font-weight:800;text-decoration:underline}
.cal-cell.today.selected{color:#fff}
.cal-agenda{border-top:1px solid var(--line);margin-top:14px;padding-top:12px}
.cal-agenda-empty{font-size:12.5px;color:var(--text-3);margin:10px 0 2px}
.agenda-item{display:flex;gap:12px;align-items:flex-start;border-left:3px solid var(--blue);
  background:var(--bg);border-radius:0 10px 10px 0;padding:10px 12px;margin-top:8px;cursor:pointer}
.agenda-item:hover{background:var(--blue-soft)}
.agenda-time{flex:none;font-family:var(--font-mono);font-size:12.5px;font-weight:700;font-variant-numeric:tabular-nums}
.agenda-main{min-width:0}
.agenda-main .t{display:block;font-size:13px;font-weight:700}
.agenda-main .s{display:block;font-size:12px;color:var(--text-2);margin-top:1px}

/* Řádky konzultací v portálu klienta */
.consult-row{display:flex;align-items:center;gap:16px;padding:14px;border-radius:12px;
  border:1px solid var(--line-2);margin-bottom:10px;cursor:pointer;
  transition:border-color .12s,box-shadow .12s}
.consult-row:hover{border-color:var(--blue)}
/* Zvýraznění vlevo řešíme vnitřním stínem, ne silnějším okrajem — jinak by
   nejbližší schůzka byla o 3 px širší a řádky by se nezarovnaly */
.consult-row.is-next{background:var(--bg);box-shadow:inset 3px 0 0 var(--blue)}
.consult-row.is-past{background:var(--bg);border-color:var(--line)}
.consult-row.is-past .consult-title{color:var(--text-2);font-weight:600}
.consult-date{flex:none;width:62px;text-align:center;background:var(--surface);border:1px solid var(--line);
  border-radius:10px;padding:6px 0;line-height:1.15}
.consult-row.is-past .consult-date{background:var(--surface);border-color:var(--line)}
.consult-row.is-past .consult-date .m{color:var(--text-3)}
.consult-date .m{display:block;font-size:10px;font-weight:800;letter-spacing:0.08em;color:var(--blue-2)}
.consult-date .d{display:block;font-size:22px;font-weight:700;font-variant-numeric:tabular-nums}
.consult-date .w{display:block;font-size:9.5px;font-weight:700;color:var(--text-3)}
.consult-main{flex:1;min-width:0}
.consult-title{font-size:14.5px;font-weight:700;display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.consult-badge{font-size:10px;font-weight:800;letter-spacing:0.06em;color:var(--blue-2);
  background:var(--blue-soft);border-radius:6px;padding:3px 7px}
.consult-meta{display:flex;align-items:center;gap:9px;flex-wrap:wrap;font-size:12.5px;
  color:var(--text-2);margin-top:5px}
.consult-sep{width:1px;height:12px;background:var(--line-2)}

/* Kompaktní řádky (úkoly v přehledu portálu) */
.title-count{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;
  padding:0 6px;border-radius:999px;background:var(--blue-soft);color:var(--blue-2);
  font-size:11.5px;font-weight:700;margin-left:6px;vertical-align:middle}
.mini-head{display:flex;justify-content:space-between;font-size:10.5px;font-weight:700;
  letter-spacing:0.08em;text-transform:uppercase;color:var(--text-3);
  padding:8px 0 6px;border-bottom:1px solid var(--line)}
.mini-row{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}
.mini-row:last-child{border-bottom:none}
.mini-row.is-done{opacity:0.65}
.mini-row-title{flex:1;min-width:0;font-size:13.5px;font-weight:600}
.mini-row-title.done{text-decoration:line-through;color:var(--text-3);font-weight:500}
.mini-row-due{font-size:12.5px;color:var(--text-2);white-space:nowrap}
.mini-row-due.over{color:var(--danger);font-weight:700}

/* Řádky souborů a faktur v portálu */
.file-row{display:flex;align-items:center;gap:12px;padding:11px 12px;border-radius:10px;
  background:var(--bg);margin-top:8px;color:inherit}
.file-row:hover{background:var(--bg-2);text-decoration:none}
.file-row-ext{flex:none;width:38px;height:38px;border-radius:9px;display:flex;align-items:center;
  justify-content:center;font-size:9.5px;font-weight:800;letter-spacing:0.03em;
  background:var(--blue-soft);color:var(--blue-2)}
.file-row-ext.pdf{background:var(--danger-soft);color:var(--danger)}
.file-row-main{flex:1;min-width:0}
.file-row-main .n{display:block;font-size:13px;font-weight:700;overflow:hidden;
  text-overflow:ellipsis;white-space:nowrap}
.file-row-main .s{display:block;font-size:11.5px;color:var(--text-3);margin-top:2px}
.file-row-main .s.status-ok{color:var(--ok);font-weight:700}
.file-row-main .s.status-warn{color:var(--warn);font-weight:700}
.file-row-main .s.status-danger{color:var(--danger);font-weight:700}
.file-row-acts{flex:none;display:inline-flex;gap:2px}
.file-row-act{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;
  border-radius:8px;color:var(--text-3)}
.file-row-act:hover{background:var(--surface);color:var(--blue-2);text-decoration:none}


/* Úkoly v portálu — stejný formát jako schůzky */
.task-row{display:flex;gap:14px;align-items:center;padding:14px 0;border-bottom:1px solid var(--line)}
.task-row:last-child{border-bottom:none}
.task-row.is-done{background:var(--bg);opacity:0.85}
.task-row-date{flex:none;width:44px;height:44px;border-radius:10px;background:var(--blue-soft);
  color:var(--blue-2);display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1.05}
.task-row-date .d{font-size:16px;font-weight:700}
.task-row-date .m{font-size:9px;font-weight:700;text-transform:uppercase}
.task-row-date.over{background:var(--danger-soft);color:var(--danger)}
.task-row-date.done{background:var(--bg-2);color:var(--text-3)}
.task-row-main{flex:1;min-width:0}
.task-row-title{font-size:13.5px;font-weight:600}
.task-row-title.done{text-decoration:line-through;color:var(--text-3)}

/* Klienti čekající na přijetí */
tr.row-pending{background:var(--warn-soft)}
tr.row-pending td{border-bottom-color:rgba(201,135,54,0.25)}
tr.row-pending:hover{background:var(--warn-soft);filter:brightness(0.98)}
.client-card.is-pending{border-color:var(--warn);box-shadow:0 0 0 3px var(--warn-soft)}

/* Detail výdaje — částky */
.exp-detail-amount{display:flex;gap:22px;flex-wrap:wrap;background:var(--bg);border-radius:12px;
  padding:14px 16px;margin:12px 0 4px}
.exp-detail-amount .k{display:block;font-size:10.5px;font-weight:700;letter-spacing:0.07em;
  text-transform:uppercase;color:var(--text-3)}
.exp-detail-amount .v{display:block;font-size:19px;font-weight:700;margin-top:3px}
.empty-icon.ok{background:var(--ok-soft);color:var(--ok)}

@media (max-width:720px){
  .meet-card,.consult-row{flex-wrap:wrap}
  .meet-card-actions,.consult-row>.btn{width:100%;justify-content:center}
  .chart-legend{justify-content:flex-start}
}

/* =====================================================================
   Diagnostické testy (karta klienta i portál)
   ===================================================================== */
.test-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);
  padding:18px 20px;margin-bottom:12px;box-shadow:var(--shadow)}
.test-card.is-todo{border-style:dashed;border-color:var(--blue);background:var(--blue-soft)}
.test-card-head{display:flex;align-items:flex-start;gap:13px}
.test-badge{flex:none;width:36px;height:36px;border-radius:10px;display:flex;align-items:center;
  justify-content:center;background:var(--ok-soft);color:var(--ok)}
.test-badge.todo{background:var(--surface);color:var(--blue-2);border:1px solid var(--blue)}
.test-card-id{flex:1;min-width:0}
.test-card-name{font-size:14.5px;font-weight:700}
.test-card-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:11.5px;
  color:var(--text-3);margin-top:3px}
.test-code{flex:none;font-family:var(--font-mono);font-size:15px;font-weight:700;letter-spacing:0.08em;
  color:var(--blue-2);background:var(--blue-soft);border-radius:9px;padding:6px 11px}
.test-card-cta-text{font-size:13px;color:var(--text-2);margin:12px 0 0}
.test-card-note{font-size:12.5px;color:var(--text-2);background:var(--bg);border-radius:9px;
  padding:9px 12px;margin-top:12px}
.test-card-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:14px}

.test-scales{display:flex;flex-direction:column;gap:11px;margin-top:15px}
.test-scale-top{display:flex;justify-content:space-between;align-items:baseline;gap:10px;
  font-size:12.5px;margin-bottom:5px}
.test-scale-top .l{font-weight:600}
.test-scale-top .l .s{display:block;font-weight:500;font-size:11px;color:var(--text-3);margin-top:1px}
.test-scale-top .v{font-variant-numeric:tabular-nums;font-weight:700;white-space:nowrap}
.test-scale-top .u{font-weight:500;color:var(--text-3);font-size:11px}
.test-scale-track{height:8px;border-radius:999px;background:var(--bg-2);overflow:hidden}
.test-scale-fill{display:block;height:100%;border-radius:999px;background:var(--blue);
  transition:width .3s cubic-bezier(.2,.7,.2,1)}

/* Nový klient: kroky mají různou výšku — pevné minimum brání poskakování okna */
#modal-new-client .modal-body{min-height:330px}
#modal-new-client .newcli-types{display:grid;grid-template-columns:1fr 1fr;gap:10px}
@media (max-width:640px){
  #modal-new-client .newcli-types{grid-template-columns:1fr}
}

/* Kontrola nasazení (Nastavení → Systém) */
.syscheck{display:flex;align-items:flex-start;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}
.syscheck:last-child{border-bottom:none}
.syscheck-ico{flex:none;width:26px;height:26px;border-radius:8px;display:flex;align-items:center;
  justify-content:center;background:var(--ok-soft);color:var(--ok)}
.syscheck.is-bad .syscheck-ico{background:var(--danger-soft);color:var(--danger)}
.syscheck-main{flex:1;min-width:0}
.syscheck-main .l{display:block;font-size:13.5px;font-weight:600}
.syscheck-main .h{display:block;font-size:12px;color:var(--danger);margin-top:3px}
.syscheck-val{flex:none;font-size:12.5px;color:var(--text-2);padding-top:2px}
.syscheck.is-bad .syscheck-val{color:var(--danger);font-weight:700}

/* Přehled schůzek — oddělovač mezi nadcházejícími a proběhlými */
.meet-divider{display:flex;align-items:center;gap:12px;margin:18px 0 12px;
  font-size:10.5px;font-weight:700;letter-spacing:0.08em;text-transform:uppercase;color:var(--text-3)}
.meet-divider::before,.meet-divider::after{content:"";flex:1;height:1px;background:var(--line)}
.meet-card.is-past{background:var(--bg);opacity:0.92}
.meet-card.is-past .meet-card-title{color:var(--text-2);font-weight:600}
.meet-card.is-past .meet-card-date .d{color:var(--text-2)}
.meet-card-date .w{display:block;font-size:9.5px;font-weight:700;color:var(--text-3)}

/* Nový klient: řádek s titulem, jménem a titulem za.
   U firmy a školy tituly odpadají a název musí zabrat celou šířku. */
.field-row.name-row{grid-template-columns:110px 1fr 110px}
.field-row.name-row.is-org{grid-template-columns:1fr}
@media (max-width:640px){
  .field-row.name-row{grid-template-columns:1fr}
}

/* Zápis ze schůzky */
.summary-flag{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;font-weight:600;
  border-radius:8px;padding:5px 9px;margin-top:8px}
.summary-flag.published{background:var(--ok-soft);color:var(--ok)}
.summary-flag.draft{background:var(--bg-2);color:var(--text-3)}
.note-tag{display:inline-block;font-size:10px;font-weight:700;letter-spacing:0.05em;
  text-transform:uppercase;color:var(--text-3);background:var(--bg-2);border-radius:5px;
  padding:2px 5px;margin-left:6px;vertical-align:middle}

/* Schůzka i se zápisem tvoří jeden celek — bez toho zápis vizuálně „vypadával" z řádku.
   Mezera ale musí být mezi celky, ne uvnitř: dřív ji nesl .meeting-row, jenže ten je
   ve svém .meeting-block vždycky :last-child, takže se pravidlo vynulovalo a řádky
   se slepily do jednoho bloku. Odsazení proto drží obal. */
.meeting-block{margin-bottom:10px}
.meeting-block:last-child{margin-bottom:0}
.meeting-block>.meeting-row{margin-bottom:0}
.meeting-block:has(>.mtg-summary)>.meeting-row{border-bottom-left-radius:0;
  border-bottom-right-radius:0;border-bottom-color:transparent}
.meeting-block>.mtg-summary{border:1px solid var(--line-2);border-top:1px solid var(--line);
  border-radius:0 0 14px 14px;background:var(--surface)}

.mtg-summary{border-top:1px solid var(--line);padding:14px 16px 16px}
.mtg-summary-head{display:flex;align-items:center;gap:7px;flex-wrap:wrap;font-size:10.5px;
  font-weight:700;letter-spacing:0.07em;text-transform:uppercase;color:var(--blue-2);
  padding-bottom:10px}
.mtg-summary-head .d{font-weight:500;letter-spacing:0;text-transform:none;color:var(--text-3);font-size:11.5px}
.mtg-summary-block{margin-top:13px}
.mtg-summary-block:first-of-type{margin-top:0}
.mtg-summary-block .k{font-size:11px;font-weight:700;letter-spacing:0.05em;text-transform:uppercase;
  color:var(--text-3);margin-bottom:5px}
.mtg-summary-block p{margin:0;font-size:13.5px;color:var(--text);line-height:1.6}
.mtg-summary-list{margin:0;padding:0;list-style:none}
.mtg-summary-list li{position:relative;padding-left:24px;margin-bottom:7px;font-size:13.5px;
  color:var(--text);line-height:1.5}
.mtg-summary-list li:last-child{margin-bottom:0}
.mtg-summary-list li::before{content:"";position:absolute;left:6px;top:7px;width:6px;height:6px;
  border-radius:50%;background:var(--blue)}

/* Nebezpečná zóna — nevratné operace */
.danger-zone{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-top:22px;
  border:1px solid var(--danger);border-radius:var(--radius-lg);background:var(--danger-soft);padding:18px 20px}
.danger-zone-main{flex:1;min-width:240px}
.danger-zone-title{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:700;color:var(--danger)}
.danger-zone p{margin:6px 0 0;font-size:12.5px;line-height:1.6;color:var(--text-2)}
.btn-danger{background:var(--danger);color:#fff;border-color:var(--danger)}
.btn-danger:hover{filter:brightness(0.93);color:#fff}
.sec-note.danger{background:var(--danger-soft);color:var(--danger)}

/* Lišta hromadných operací */
.bulk-bar{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:12px;
  background:var(--blue-soft);border:1px solid var(--blue);border-radius:var(--radius-lg);padding:10px 14px}
.bulk-count{font-size:13px;color:var(--blue-2)}
.bulk-count b{font-size:14px}
.bulk-actions{display:flex;gap:8px;flex-wrap:wrap;flex:1}
.bulk-actions .btn.danger{color:var(--danger)}
.bulk-actions .btn.danger:hover{background:var(--danger-soft)}
.tbl thead th input[type=checkbox],.tbl td input[type=checkbox]{width:16px;height:16px;cursor:pointer}

/* Kariérní plán */
.plan-progress{height:6px;border-radius:999px;background:var(--bg-2);overflow:hidden;margin-top:14px}
.plan-progress span{display:block;height:100%;background:var(--blue);border-radius:999px;transition:width .3s}
.plan-intro{margin-top:14px;padding:13px 15px;background:var(--bg);border-left:3px solid var(--blue);
  border-radius:0 10px 10px 0;font-size:13.5px;line-height:1.6;color:var(--text-2)}
.plan-section-head{font-size:11px;font-weight:700;letter-spacing:0.08em;text-transform:uppercase;
  color:var(--text-3);margin:20px 0 8px}
.plan-block{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);
  padding:15px 17px;margin-bottom:10px;box-shadow:var(--shadow)}
.plan-block.is-empty{border-style:dashed;background:var(--bg)}
.plan-block-head{display:flex;align-items:flex-start;gap:12px}
.plan-block-title{flex:1;min-width:0;font-size:14.5px;font-weight:700;display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.plan-empty-tag{font-size:10px;font-weight:700;letter-spacing:0.05em;text-transform:uppercase;
  color:var(--text-3);background:var(--bg-2);border-radius:5px;padding:2px 6px}
.plan-block-actions{display:flex;gap:2px;flex-wrap:wrap}
.plan-block-actions form{display:inline}
.plan-block-body{margin-top:9px;font-size:13.5px;line-height:1.65;color:var(--text-2)}
.plan-links{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.plan-link{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;
  background:var(--blue-soft);color:var(--blue-2);border-radius:8px;padding:6px 10px}
.plan-link:hover{text-decoration:none;filter:brightness(0.96)}
.plan-link-picker{display:flex;flex-direction:column;gap:8px}
.plan-link-option{display:flex;align-items:flex-start;gap:9px;background:var(--bg);border-radius:9px;padding:9px 11px}
.plan-link-option .n{display:block;font-size:11.5px;color:var(--text-3);font-weight:400;margin-top:2px}

/* Plán pro čtení (portál i tisk) */
.plan-read-section{margin-bottom:26px}
.plan-read-head{font-size:17px;font-weight:800;color:var(--navy,#0F2D48);margin:0 0 12px;
  padding-bottom:7px;border-bottom:1px solid var(--line)}
.plan-read-block{margin-bottom:18px}
.plan-read-title{font-size:14.5px;font-weight:700;margin:0 0 5px}
.plan-read-body{font-size:14px;line-height:1.7;color:var(--text-2)}

/* Katalog kariérního plánu v nastavení */
.plan-cat-section{border:1px solid var(--line);border-radius:var(--radius-lg);padding:14px 16px;margin-bottom:14px}
.plan-cat-head{display:flex;align-items:center;gap:10px;justify-content:space-between;
  padding-bottom:10px;border-bottom:1px solid var(--line)}
.plan-cat-rename{display:flex;gap:6px;align-items:center;flex:1}
.plan-cat-rename input{font-weight:700;font-size:14px}
.plan-cat-actions{display:flex;gap:2px;flex-wrap:wrap}
.plan-cat-module{border-bottom:1px solid var(--line)}
.plan-cat-module:last-of-type{border-bottom:none}
.plan-cat-module.is-off{opacity:0.6}
.plan-cat-module-head{display:flex;align-items:center;gap:10px;justify-content:space-between;padding:10px 0}
.plan-cat-module-head .l{font-size:13.5px;font-weight:600;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.plan-cat-links-count{font-size:10.5px;font-weight:700;color:var(--blue-2);background:var(--blue-soft);
  border-radius:5px;padding:2px 6px;display:inline-flex;align-items:center;gap:3px}
.plan-cat-detail{background:var(--bg);border-radius:11px;padding:15px 16px;margin:0 0 12px}
.plan-cat-link{display:flex;align-items:center;justify-content:space-between;gap:10px;
  background:var(--surface);border-radius:9px;padding:9px 12px;margin-bottom:7px;font-size:13px}
.plan-cat-link .n{display:block;font-size:11.5px;color:var(--text-3);margin-top:2px}
.plan-cat-add{display:flex;gap:8px;align-items:center;margin-top:12px}
.plan-cat-add input{flex:1}

/* Výpis chyb v Nastavení → Systém */
.log-view{margin:0;padding:14px 16px;background:var(--bg);border-radius:11px;font-family:var(--font-mono);
  font-size:11.5px;line-height:1.7;color:var(--text-2);white-space:pre-wrap;word-break:break-word;
  max-height:320px;overflow:auto}

/* Zápis ze schůzky v modálu — čitelná struktura */
.sm-block{margin-bottom:22px}
.sm-block:last-child{margin-bottom:0}
.sm-head{display:flex;align-items:center;gap:9px;font-size:13px;font-weight:700;color:var(--navy,#0F2D48);
  padding-bottom:9px;margin-bottom:11px;border-bottom:1px solid var(--line)}
.sm-num{flex:none;width:22px;height:22px;border-radius:50%;background:var(--blue-soft);color:var(--blue-2);
  display:flex;align-items:center;justify-content:center;font-size:11.5px;font-weight:800}
.sm-text{font-size:14px;line-height:1.7;color:var(--text-2);white-space:pre-line}
.sm-steps{margin:0;padding:0;list-style:none;counter-reset:krok}
.sm-steps li{counter-increment:krok;position:relative;padding:11px 14px 11px 44px;background:var(--bg);
  border-radius:10px;margin-bottom:8px;font-size:14px;line-height:1.55;color:var(--text)}
.sm-steps li:last-child{margin-bottom:0}
.sm-steps li::before{content:counter(krok);position:absolute;left:13px;top:11px;width:20px;height:20px;
  border-radius:50%;background:var(--blue);color:#fff;font-size:11px;font-weight:700;
  display:flex;align-items:center;justify-content:center}
@media print{
  body>*:not(.modal-backdrop){display:none!important}
  .modal-backdrop.open{position:static;background:none;padding:0;display:block!important}
  .modal-backdrop.open .modal{box-shadow:none;max-height:none}
  .modal-x,.modal-foot{display:none!important}
}

/* Automatické úkoly z neúplného profilu */
.auto-tasks{display:flex;flex-direction:column;gap:10px;margin-bottom:18px}
.auto-task{display:flex;align-items:center;gap:14px;padding:14px 16px;border-radius:14px;
  background:var(--blue-soft);border:1px solid var(--blue)}
.auto-task-ico{flex:none;width:38px;height:38px;border-radius:12px;background:var(--surface);
  color:var(--blue-2);display:flex;align-items:center;justify-content:center}
.auto-task-main{flex:1;min-width:0}
.auto-task-main .t{display:block;font-size:14px;font-weight:700;color:var(--navy,#0F2D48)}
.auto-task-main .d{display:block;font-size:12.5px;color:var(--text-2);margin-top:2px}
@media (max-width:640px){
  .auto-task{flex-wrap:wrap}
  .auto-task .btn{width:100%;justify-content:center}
}
.auto-task-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.auto-task-actions form{display:inline}
@media (max-width:640px){
  .auto-task-actions{width:100%}
  .auto-task-actions form,.auto-task-actions .btn{width:100%;justify-content:center}
}

/* --- v16: úpravy vzhledu --- */
/* Kulaté logo bez hranatého podkladu */
.brand-mark.has-logo{background:transparent;border-radius:50%}
.brand-mark.has-logo img{object-fit:cover;border-radius:50%}

/* Mezera mezi kartami schůzek v portálu */
.card-body .meeting-row{margin-bottom:12px}
.card-body .meeting-row:last-child{margin-bottom:0}

/* Splněné úkoly — zaoblené, ne hranaté pruhy */
.task-row{border-bottom:none;border:1px solid transparent;border-radius:14px;padding:14px 16px;margin-bottom:10px}
.task-row:last-child{margin-bottom:0}
.task-row.is-done{background:var(--bg);border-color:transparent;opacity:1}
.task-row.is-done .task-row-title{color:var(--text-3)}
.mini-row{border-bottom:none;border-radius:12px;padding:11px 13px;margin-bottom:6px}
.mini-row:last-child{margin-bottom:0}
.mini-row.is-done{background:var(--bg)}

/* Přepínač režimu v nastavení */
.theme-seg button{display:inline-flex;align-items:center;gap:7px;background:transparent;border:none;
  font:inherit;cursor:pointer;padding:8px 14px;color:var(--text-2);border-radius:9px}
.theme-seg button.active{background:var(--surface);color:var(--text);font-weight:600;box-shadow:var(--shadow)}

/* Rozcestník kariérních plánů v portálu */
.plan-picker{display:flex;flex-direction:column;gap:10px}
.plan-pick-card{display:flex;align-items:center;gap:15px;padding:17px 19px;border-radius:14px;
  background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);color:inherit;
  transition:border-color .12s,box-shadow .12s}
.plan-pick-card:hover{border-color:var(--blue);box-shadow:0 3px 14px rgba(50,148,213,0.14);text-decoration:none}
.plan-pick-ico{flex:none;width:44px;height:44px;border-radius:13px;background:var(--blue-soft);
  color:var(--blue-2);display:flex;align-items:center;justify-content:center}
.plan-pick-main{flex:1;min-width:0}
.plan-pick-main .t{display:block;font-size:15px;font-weight:700}
.plan-pick-main .s{display:block;font-size:12.5px;color:var(--text-3);margin-top:2px}
.plan-pick-go{flex:none;color:var(--text-3)}
.plan-pick-card:hover .plan-pick-go{color:var(--blue-2)}

/* Řazení v seznamu klientů */
.sort-form{display:flex;align-items:center;gap:8px;margin-left:auto}
.sort-label{display:inline-flex;align-items:center;gap:5px;font-size:12.5px;color:var(--text-3);white-space:nowrap}
.sort-form select{min-width:180px}

/* Výsledky testů — čitelná šířka a barevné škály */
.tests-wrap{max-width:760px}
.test-scale-track{position:relative}
.test-scale-fill.c-blue{background:#3294D5}
.test-scale-fill.c-indigo{background:#5B6BE1}
.test-scale-fill.c-orange{background:#E8862B}
.test-scale-fill.c-teal{background:#1FA97F}
.test-scale-fill.c-violet{background:#8B5CF6}
.test-scale-fill.c-green{background:#2A9D62}

/* Nejbližší schůzka na kartě klienta */
.next-meeting-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}
.next-meeting-actions .nm-ghost{background:rgba(255,255,255,0.12);color:#fff;
  border:1px solid rgba(255,255,255,0.22)}
.next-meeting-actions .nm-ghost:hover{background:rgba(255,255,255,0.2);color:#fff}

/* Přehled testů — hlavička na jednom řádku */
.filter-bar-row{flex-wrap:nowrap;align-items:center;gap:12px}
.filter-bar-row .page-search{flex:1;min-width:180px;max-width:340px;margin:0}
.filter-bar-row .seg{flex:none}
.filter-bar-note{font-size:12px;color:var(--text-3);white-space:nowrap}
@media (max-width:820px){ .filter-bar-row{flex-wrap:wrap} .filter-bar-note{display:none} }

/* Karty nahraných souborů */
.doc-card{display:flex;align-items:center;gap:15px;padding:15px 17px;border-radius:14px;
  background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);margin-bottom:10px}
.doc-card:last-child{margin-bottom:0}
.doc-card-ico{flex:none;width:56px;height:56px;border-radius:14px;display:flex;align-items:center;
  justify-content:center;font-size:11px;font-weight:800;letter-spacing:0.04em;
  background:var(--blue-soft);color:var(--blue-2)}
.doc-card-ico.pdf{background:var(--danger-soft);color:var(--danger)}
.doc-card-main{flex:1;min-width:0}
.doc-card-title{font-size:16px;font-weight:800;line-height:1.25}
.doc-card-file{font-size:13.5px;color:var(--text-2);margin-top:2px;overflow:hidden;
  text-overflow:ellipsis;white-space:nowrap}
.doc-card-meta{font-size:12px;color:var(--text-3);margin-top:5px}
.doc-card-actions{flex:none;display:flex;flex-direction:column;gap:8px;min-width:150px}
.doc-card-actions .btn{justify-content:center}
@media (max-width:640px){
  .doc-card{flex-wrap:wrap}
  .doc-card-actions{flex-direction:row;width:100%;min-width:0}
  .doc-card-actions .btn{flex:1}
}
.doc-list{display:flex;flex-direction:column}

/* =====================================================================
   v17 — aplikace na plochu (PWA)
   ===================================================================== */

/* Bezpečné zóny iPhonu (výřez a spodní lišta) */
body{padding-top:env(safe-area-inset-top,0)}
.sidebar{padding-bottom:env(safe-area-inset-bottom,0)}

/* Spodní lišta — jen na mobilu */
.tabbar{display:none}
.more-grid{display:flex;flex-direction:column;gap:4px}
.more-item{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:11px;
  color:var(--text);font-size:14px;font-weight:600}
.more-item:hover{background:var(--bg);text-decoration:none}
.more-item.active{background:var(--blue-soft);color:var(--blue-2)}
.more-item .nav-badge{margin-left:auto}

@media (max-width:820px){
  /* Postranní panel na mobilu nahradí spodní lišta.
     Samotné skrytí nestačí — mřížka .app by dál držela první sloupec o šířce
     panelu a obsah by se vmáčkl do zbytku. Proto přepínáme na jeden sloupec. */
  .app,.app.collapsed{grid-template-columns:1fr}
  .sidebar{display:none}
  .main{margin-left:0}
  .content{padding-bottom:calc(76px + env(safe-area-inset-bottom,0))}

  .tabbar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:80;
    background:var(--surface);border-top:1px solid var(--line);
    padding:6px 4px calc(6px + env(safe-area-inset-bottom,0));
    box-shadow:0 -2px 14px rgba(15,45,72,0.06)}
  .tabbar-item{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;
    padding:6px 2px;background:transparent;border:none;font:inherit;cursor:pointer;
    color:var(--text-3);text-decoration:none;min-width:0}
  .tabbar-item.active{color:var(--blue-2)}
  .tabbar-item:hover{text-decoration:none}
  .tabbar-ico{position:relative;display:inline-flex}
  .tabbar-dot{position:absolute;top:-2px;right:-3px;width:8px;height:8px;border-radius:50%;
    background:var(--danger);border:2px solid var(--surface)}
  .tabbar-lbl{font-size:10.5px;font-weight:600;max-width:100%;overflow:hidden;
    text-overflow:ellipsis;white-space:nowrap}

  /* Na mobilu se čte na celou šířku */
  .grid-2-1,.grid-2{grid-template-columns:1fr}
  .content{padding-left:14px;padding-right:14px}
  .modal{max-height:92vh}
  .tests-wrap{max-width:none}
}



/* =====================================================================
   v18 — mobilní zobrazení
   ===================================================================== */

/* Obal tabulky se používal v šablonách, ale nikdy neměl styl — široké tabulky
   proto na mobilu roztahovaly celou stránku místo aby se posouvaly samy. */
.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}

@media (max-width:820px){
  /* Nic nesmí přetéct přes šířku okna */
  /* clip místo hidden: hidden dělá z body vlastní posuvnou oblast a iOS pak
     při posunu zpět nahoru stránku vracel dolů (v130) */
  html,body{max-width:100%;overflow-x:hidden;overflow-x:clip}
  .card,.stat,.page-header{min-width:0}
  .tbl{font-size:12.5px}
  .tbl th,.tbl td{padding:9px 10px}

  .stat-grid,.stat-grid.cols-3,.stat-grid.cols-2{grid-template-columns:repeat(2,1fr);gap:10px}
  .stat{padding:13px 14px}
  .stat-value{font-size:22px}

  /* Pruh filtrů se na úzkém displeji posouvá do strany místo lámání */
  .filter-bar{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;
    padding-bottom:4px;margin-bottom:14px}
  .filter-bar>*{flex:none}
  .seg{max-width:100%}

  .page-title{font-size:22px}
  .client-hero-actions{width:100%}
  .client-hero-actions .btn{flex:1;justify-content:center}
  .modal-foot{flex-wrap:wrap;gap:8px}
}

@media (max-width:560px){
  .stat-grid,.stat-grid.cols-3,.stat-grid.cols-2{grid-template-columns:1fr}
  .content{padding-top:18px}
  /* Sloupce, které se na malém displeji nevejdou, raději schováme */
  .hide-when-narrow{display:none}
}

/* =====================================================================
   v18 — výběrová řízení (dřív „Moje přihlášky")
   ===================================================================== */

/* Podbarvení řádku podle stavu — jemné, ať tabulka zůstane čitelná */
.app-row td{transition:background .12s}
.app-row-blue td{background:rgba(50,148,213,0.05)}
.app-row-warn td{background:rgba(217,145,32,0.07)}
.app-row-ok td{background:rgba(31,155,102,0.07)}
.app-row-danger td{background:rgba(200,63,63,0.05)}
.app-row:hover td{filter:brightness(0.985)}

.app-round{display:inline-flex;align-items:center;gap:5px;font-size:12.5px;font-weight:700;
  color:var(--blue-2);background:var(--blue-soft);border-radius:8px;padding:4px 8px;white-space:nowrap}
.app-round.is-past{color:var(--text-3);background:var(--bg-2);font-weight:600}
.app-round-when{font-size:11px;font-weight:700;color:var(--warn);margin-top:3px}
.app-round-note{font-size:11.5px;color:var(--text-2);margin-top:3px}

/* Název pozice je zároveň tlačítko na náhled */
.app-name{display:flex;flex-direction:column;align-items:flex-start;gap:1px;border:0;background:none;
  padding:0;font:inherit;text-align:left;cursor:pointer;color:inherit}
.app-name-pos{font-weight:600;color:var(--text)}
.app-name-firm{font-size:12px;color:var(--text-2)}
.app-name:hover .app-name-pos{color:var(--blue-2);text-decoration:underline}
.app-tasks-chip{margin-top:6px;font-size:11px}
.app-link{white-space:nowrap}
/* Kolik dní uplynulo od odeslání; po dvou týdnech bez odpovědi zvýrazněné */
.app-dni{font-size:11.5px;color:var(--text-3);margin-top:3px}
.app-dni.is-long{color:var(--warn);font-weight:700}
.app-toolbar{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:0 0 14px}
.app-search{flex:1 1 280px;max-width:420px}
.app-sort{display:flex;align-items:center;gap:8px;font-size:12.5px;font-weight:600;color:var(--text-2)}
.app-sort select{width:auto}
.app-nic{padding:28px 16px}

/* Náhled výběrového řízení */
.app-detail{display:flex;flex-direction:column;gap:14px}
.app-detail-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
.app-detail-pos{font-size:17px;font-weight:700}
.app-detail-firm{font-size:13px;color:var(--text-2);margin-top:2px}
.app-detail-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin:0}
.app-detail-grid dt{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-3)}
.app-detail-grid dd{margin:2px 0 0;font-size:13.5px}
.app-detail-link{align-self:flex-start}
.app-detail-note{font-size:13px;line-height:1.55;color:var(--text-2);background:var(--bg-2);
  border-radius:var(--radius-sm);padding:12px 14px}
.app-tasks{border-top:1px solid var(--line);padding-top:14px}
.app-tasks h4{margin:0 0 10px;font-size:13.5px}
.app-task{display:flex;gap:10px;align-items:flex-start;padding:9px 0;border-bottom:1px solid var(--line)}
.app-task-check{width:20px;height:20px;border-radius:6px;border:1.5px solid var(--line-2);background:var(--surface);
  display:inline-flex;align-items:center;justify-content:center;cursor:pointer;color:#fff;padding:0;margin-top:1px}
.app-task.is-done .app-task-check{background:var(--ok);border-color:var(--ok)}
.app-task-body{flex:1;min-width:0}
.app-task-text{font-size:13.5px}
.app-task.is-done .app-task-text{text-decoration:line-through;color:var(--text-3)}
.app-task-meta{display:flex;flex-wrap:wrap;align-items:center;gap:4px;font-size:11.5px;color:var(--text-3);margin-top:3px}
.app-task-form{margin-top:12px;display:flex;flex-direction:column;gap:10px;align-items:flex-start}
.app-task-form .field{margin:0;width:100%}
.app-task-form-row{display:grid;grid-template-columns:1fr 110px 1fr;gap:10px;width:100%}
@media (max-width:640px){
  .app-task-form-row{grid-template-columns:1fr 1fr}
  .app-task-form-row .field:last-child{grid-column:1 / -1}
  .app-sort{width:100%}
  .app-sort select{flex:1}
}

/* =====================================================================
   v18 — kariérní plán
   ===================================================================== */

/* Přepínač plánů nad obsahem — nahradil tlačítko „Všechny plány" */
.plan-switch{display:flex;align-items:center;gap:10px;margin-top:14px;flex-wrap:wrap}
.plan-switch label{font-size:11px;font-weight:700;letter-spacing:0.07em;text-transform:uppercase;
  color:var(--text-3)}
.plan-switch select{min-width:260px;max-width:100%}

/* Modul s výstupy z diagnostiky */
.plan-auto-tag{display:inline-block;font-size:10px;font-weight:700;letter-spacing:0.05em;
  text-transform:uppercase;color:var(--blue-2);background:var(--blue-soft);border-radius:5px;
  padding:2px 6px;margin-left:7px;vertical-align:middle}
.plan-tests{display:flex;flex-direction:column;gap:14px}
.plan-test{border:1px solid var(--line);border-radius:12px;padding:14px 16px;background:var(--surface)}
.plan-test-head{margin-bottom:10px}
.plan-test-name{font-size:14px;font-weight:700}
.plan-test-meta{font-size:11.5px;color:var(--text-3);margin-top:2px}
.plan-test-note{font-size:12.5px;color:var(--text-2);background:var(--bg);border-radius:9px;
  padding:9px 12px;margin-top:12px}
.plan-tests-empty{font-size:13px;color:var(--text-3);background:var(--bg);border-radius:10px;
  padding:12px 14px}

@media print{
  .plan-test{break-inside:avoid;border:1px solid #d9e3ec}
  .plan-tests{gap:12px}
}

/* =====================================================================
   v19 — kariérní plán ve strukturovaných okruzích
   ===================================================================== */

/* Každý hlavní okruh je samostatná karta se záhlavím — plán se pak čte
   po částech místo jako jeden dlouhý sloupec textu. */
.plan-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);
  box-shadow:var(--shadow-sm);margin-bottom:16px;overflow:hidden}
.plan-card:last-child{margin-bottom:0}
.plan-card-head{display:flex;align-items:center;gap:11px;padding:14px 20px;
  background:var(--bg);border-bottom:1px solid var(--line)}
.plan-card-num{flex:none;width:26px;height:26px;border-radius:8px;background:var(--blue);color:#fff;
  display:flex;align-items:center;justify-content:center;font-size:12.5px;font-weight:800}
.plan-card-title{flex:1;min-width:0;font-size:15.5px;font-weight:800;margin:0;letter-spacing:-0.01em}
.plan-card-count{flex:none;font-size:11px;font-weight:700;letter-spacing:0.05em;text-transform:uppercase;
  color:var(--text-3);background:var(--surface);border:1px solid var(--line);
  border-radius:999px;padding:3px 9px}
.plan-card-body{padding:18px 20px}
.plan-card-intro .plan-card-body{padding:16px 20px}

/* Uvnitř karty už okruh nadpis neopakujeme */
.plan-card .plan-read-block{margin-bottom:20px}
.plan-card .plan-read-block:last-child{margin-bottom:0}
.plan-card .plan-block{margin-bottom:12px}
.plan-card .plan-block:last-child{margin-bottom:0}

@media (max-width:640px){
  .plan-card-head{padding:12px 14px}
  .plan-card-body{padding:14px}
  .plan-card-count{display:none}
}

@media print{
  .plan-card{break-inside:avoid;box-shadow:none;border:1px solid #d9e3ec;margin-bottom:14px}
  .plan-card-head{background:#f3f6f9}
  .plan-card-num{background:#0F2D48;color:#fff;-webkit-print-color-adjust:exact;print-color-adjust:exact}
}

/* =====================================================================
   v19 — slevové kupóny
   ===================================================================== */
.vch-row.vch-expired td,.vch-row.vch-inactive td{background:var(--bg);color:var(--text-2)}
.vch-row.vch-exhausted td{background:rgba(217,145,32,0.06)}
.vch-discount{font-family:var(--font-mono);font-weight:700;font-size:14px}
.vch-note{font-size:11.5px;color:var(--text-3);margin-top:3px;max-width:280px}
.vch-kind{font-size:10.5px;color:var(--text-3);margin-top:2px;font-weight:600}
.vch-code-row{display:flex;gap:8px;align-items:stretch}
.vch-code-row input{flex:1;min-width:0}
.vch-code-row .btn{flex:none;white-space:nowrap}

/* Vyhledávací pole v pruhu filtrů */
.filter-search{margin-left:auto}
.filter-search input{min-width:250px}
@media (max-width:820px){ .filter-search{margin-left:0} .filter-search input{min-width:180px} }

/* =====================================================================
   v20 — články blogu
   ===================================================================== */
.blog-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px}
.blog-card{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);
  border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden}
.blog-card-img{height:150px;background-size:cover;background-position:center;background-color:var(--bg-2)}
.blog-card-body{padding:14px 16px;flex:1}
.blog-card-tags{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:8px}
.blog-card-title{font-size:15.5px;font-weight:800;margin:0;line-height:1.35}
.blog-card-sub{font-size:12.5px;color:var(--text-2);margin:5px 0 0}
.blog-card-meta{display:flex;align-items:center;gap:7px;font-size:11.5px;color:var(--text-3);margin-top:9px}
.blog-card-foot{display:flex;gap:6px;flex-wrap:wrap;padding:11px 14px;background:var(--bg);
  border-top:1px solid var(--line)}
.blog-pager{display:flex;align-items:center;justify-content:center;gap:14px;margin-top:18px}

/* Editor */
.field-label-standalone{display:block;font-size:12.5px;font-weight:600;margin-bottom:7px}
.blog-toolbar{display:flex;flex-wrap:wrap;gap:5px;padding:8px;background:var(--bg);
  border:1px solid var(--line);border-radius:10px 10px 0 0;border-bottom:none}
.blog-tb{display:inline-flex;align-items:center;gap:4px;background:var(--surface);
  border:1px solid var(--line);border-radius:7px;padding:5px 9px;font-size:12.5px;font-weight:600;
  color:var(--text-2);cursor:pointer;font-family:inherit}
.blog-tb:hover{background:var(--blue-soft);color:var(--blue-2);border-color:var(--blue)}
.blog-editor{min-height:340px;max-height:60vh;overflow-y:auto;padding:16px 18px;background:var(--surface);
  border:1px solid var(--line);border-radius:0 0 10px 10px;font-size:14.5px;line-height:1.65}
.blog-editor:focus{outline:none;border-color:var(--blue)}
.blog-editor h2{font-size:20px;margin:18px 0 8px}
.blog-editor h3{font-size:17px;margin:16px 0 6px}
.blog-editor p{margin:0 0 12px}
.blog-editor img{max-width:100%;height:auto;border-radius:8px}
.blog-editor blockquote{margin:12px 0;padding:8px 14px;border-left:3px solid var(--blue);
  background:var(--bg);color:var(--text-2)}
.blog-toolbar-2{border-radius:0;border-top:none;padding:7px 8px;align-items:center}
.blog-tb-label{font-size:10.5px;font-weight:700;letter-spacing:0.06em;text-transform:uppercase;
  color:var(--text-3);margin-right:4px}
.blog-tb-color{padding:5px 7px}
.blog-tb-color span{display:block;width:15px;height:15px;border-radius:5px;
  border:1px solid rgba(15,45,72,0.18)}
.blog-tb-hl{background:#FFF3BF;border-radius:3px;padding:0 3px}
.blog-tb-emoji{font-size:15px;padding:3px 7px;line-height:1.3}
.blog-editor{border-radius:0 0 10px 10px}
.blog-html{width:100%;font-family:var(--font-mono);font-size:12.5px;line-height:1.6}
.blog-cover-preview{display:block;max-width:280px;width:100%;border-radius:10px;margin-bottom:10px;
  border:1px solid var(--line)}
.blog-tag-hints{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px}
.blog-tag-hint{background:var(--bg-2);border:1px solid var(--line);border-radius:999px;
  padding:3px 10px;font-size:11.5px;font-weight:600;color:var(--text-2);cursor:pointer;font-family:inherit}
.blog-tag-hint:hover{background:var(--blue-soft);color:var(--blue-2)}

/* =====================================================================
   v22 — firemní portál
   ===================================================================== */
.cmp-cols{display:grid;grid-template-columns:1fr 320px;gap:16px;align-items:start}
.cmp-side{display:flex;flex-direction:column;gap:16px}
@media (max-width:900px){ .cmp-cols{grid-template-columns:1fr} }

.cmp-sub{font-size:11.5px;color:var(--text-3);margin-top:2px}
.cmp-code{display:inline-block;font-family:var(--font-mono);font-size:11px;font-weight:700;
  background:var(--bg-2);border-radius:5px;padding:1px 6px;margin-right:5px}
.cmp-row.is-done td{background:rgba(31,155,102,0.045)}

.cmp-progress-head{display:flex;justify-content:space-between;font-size:13px;margin-bottom:8px}
.cmp-mini{display:flex;justify-content:space-between;padding:8px 0;font-size:13px;
  border-bottom:1px solid var(--line)}
.cmp-mini:last-child{border-bottom:none}

.cmp-tests{display:flex;flex-direction:column;gap:6px}
.cmp-test-chip{display:flex;align-items:center;gap:6px;font-size:12.5px;font-weight:600;
  color:var(--blue-2);background:var(--blue-soft);border-radius:8px;padding:6px 10px}

.cmp-teams{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}
.cmp-team{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);
  box-shadow:var(--shadow-sm);padding:16px 18px;display:flex;flex-direction:column;gap:10px}
.cmp-team-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.cmp-team-head h3{margin:0;font-size:15px;font-weight:800}
.cmp-team-note{margin:0;font-size:12.5px;color:var(--text-2)}
.cmp-team-foot{display:flex;gap:6px;flex-wrap:wrap;margin-top:auto}

.cmp-picker{max-height:340px;overflow-y:auto;border:1px solid var(--line);border-radius:10px;
  padding:10px 12px;background:var(--bg)}
.cmp-pick-group{margin-bottom:12px}
.cmp-pick-group:last-child{margin-bottom:0}
.cmp-pick-title{font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;
  color:var(--text-3);margin-bottom:6px}
.cmp-picker .check{padding:3px 0}

.cmp-meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px 18px}
.cmp-meta>div{display:flex;flex-direction:column;gap:2px}
.cmp-meta .k{font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-3)}
.cmp-meta .v{font-size:13.5px;font-weight:600;overflow-wrap:anywhere}

/* Povolení testů pro firmu (karta klienta) */
.cmp-allow{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:8px}
.cmp-allow-row{display:flex;align-items:flex-start;gap:10px;padding:11px 13px;background:var(--bg);
  border:1px solid var(--line);border-radius:10px;cursor:pointer}
.cmp-allow-row:hover{border-color:var(--blue)}
.cmp-allow-row input{margin-top:2px;flex:none}
.cmp-allow-main{display:flex;flex-direction:column;gap:2px;min-width:0}
.cmp-allow-main .t{font-size:13.5px;font-weight:600}
.cmp-allow-main .s{font-size:11px;color:var(--text-3);font-family:var(--font-mono)}

/* =====================================================================
   v24 — využití testů u firmy
   ===================================================================== */
.usage-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px}
.usage-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);
  box-shadow:var(--shadow-sm);padding:16px 18px}
.usage-head{display:flex;flex-direction:column;gap:2px;margin-bottom:10px}
.usage-title{font-size:13.5px;font-weight:800}
.usage-note{font-size:11px;color:var(--text-3)}
.usage-num{font-size:30px;font-weight:800;line-height:1}
.usage-sub{font-size:11.5px;color:var(--text-3);margin-top:2px}
.usage-split{display:flex;gap:14px;font-size:12px;color:var(--text-2);margin-top:9px}
.usage-split b{font-weight:700}
.usage-split b.ok{color:var(--ok)}

/* Přehled zakoupených služeb (v59) — čerpání konzultací a testů */
.usage-box{background:var(--bg);border:1px solid var(--line);border-radius:var(--radius-sm);padding:14px 16px}
.usage-label{font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;
  color:var(--text-3);margin-bottom:6px}
.usage-value{font-size:24px;font-weight:800;line-height:1;color:var(--text)}
.usage-value span{font-size:13px;font-weight:600;color:var(--text-3)}

/* Dlaždice „Moje služby" v portálu klienta — segmentový pruh */
.svc-row{padding:13px 0;border-bottom:1px solid var(--line)}
.svc-row:last-of-type{border-bottom:none}
.svc-top{display:flex;align-items:center;gap:9px;margin-bottom:9px}
.svc-ico{flex:none;width:28px;height:28px;border-radius:8px;background:var(--blue-soft);color:var(--blue-2);
  display:flex;align-items:center;justify-content:center}
.svc-name{flex:1;min-width:0;font-size:13px;font-weight:700;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.svc-badge{flex:none;font-size:11px;font-weight:700;padding:2px 9px;border-radius:99px;
  background:var(--blue-soft);color:var(--blue-2);white-space:nowrap}
.svc-badge.done{background:var(--ok-soft);color:var(--ok)}
.svc-segs{display:flex;gap:4px}
.svc-seg{flex:1;height:9px;border-radius:4px;background:var(--blue);min-width:6px}
.svc-seg.spent{background:var(--bg-2)}
/* v137: objednávka, oddělovač a poslední faktury v kartě Moje služby */
.svc-order{margin-top:16px;padding:11px 14px;font-size:13.5px;font-weight:700;
  box-shadow:0 2px 8px rgba(50,148,213,0.28)}
.svc-order:hover{text-decoration:none;color:#fff}
.svc-invoices{border-top:1px solid var(--line);margin-top:18px;padding-top:14px}
.svc-invoices-label{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:0.08em;color:var(--text-3)}
.svc-invoices .file-row:first-of-type{margin-top:8px}
.svc-withdraw{text-align:center;margin-top:14px;font-size:12px}
.svc-withdraw .link-btn{color:var(--text-3);font-weight:600}
.svc-empty{text-align:center;padding:8px 6px 0}
.svc-empty-ico{width:44px;height:44px;border-radius:12px;background:var(--blue-soft);color:var(--blue-2);
  display:flex;align-items:center;justify-content:center;margin:0 auto 10px}
.svc-empty-title{font-size:13.5px;font-weight:700}
.svc-empty p{font-size:12.5px;color:var(--text-2);line-height:1.5;margin:4px 0 0}
/* v138: stránka Zakoupené služby (portál klienta) */
.svc-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;margin-bottom:22px}
.svc-uses{border-top:1px solid var(--line);margin-top:12px;padding-top:6px}
.svc-use{display:flex;align-items:center;gap:9px;padding:6px 0;font-size:13px}
.svc-use svg{flex:none;color:var(--ok)}
.svc-use .t{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.svc-use .d{flex:none;font-size:12px;color:var(--text-3)}
.svc-use.is-open{color:var(--text-3)}
.svc-use.is-open svg{color:var(--text-3)}
.svc-section-label{margin:0 0 10px}
.svc-withdraw-note{align-items:center}
.svc-withdraw-note > div{flex:1}
.buy-row{display:flex;align-items:center;gap:14px;padding:13px 0;border-bottom:1px solid var(--line);flex-wrap:wrap}
.buy-row:last-child{border-bottom:none}
.buy-main{flex:1;min-width:220px}
.buy-title{font-size:13.5px;font-weight:700;line-height:1.35}
.buy-sub{font-size:11.5px;color:var(--text-3);margin-top:2px}
.buy-deadline{color:inherit;font-weight:inherit}
.buy-state{display:flex;flex-direction:column;align-items:flex-end;gap:3px;min-width:110px}
.buy-amount{font-size:13px;font-weight:700}
.buy-amount span{font-size:11px;font-weight:600;color:var(--warn);margin-left:3px}
.buy-acts{display:flex;gap:6px;align-items:center;justify-content:flex-end;min-width:312px}
@media (max-width:640px){
  .buy-state{flex-direction:row;align-items:center;min-width:0}
  .buy-acts{width:100%;min-width:0;justify-content:flex-start}
  .buy-acts .btn-blue{order:3;margin-left:auto}
  .buy-act-l{display:none}
  .svc-withdraw-note{flex-wrap:wrap}
  .svc-withdraw-note > div{flex-basis:calc(100% - 30px)}
  .svc-withdraw-note .btn{margin-left:25px}
}
/* Výběr položek ceníku ve formuláři faktury */
.svc-pick-head{display:grid;grid-template-columns:1fr 84px 110px;gap:10px;margin-bottom:6px;
  font-size:10.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--text-3)}
.svc-pick-head span:nth-child(2),.svc-pick-head span:nth-child(3){text-align:center}
.svc-pick{display:grid;grid-template-columns:1fr 84px 110px;gap:10px;margin-bottom:8px;align-items:center}
.svc-pick-name{display:flex;align-items:center;gap:8px;margin:0;font-size:13px;min-width:0;cursor:pointer}
.svc-pick-name span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

.svc-sub{font-size:11.5px;color:var(--text-3);margin-top:8px;line-height:1.4}
.usage-pick{display:flex;align-items:center;gap:8px}.usage-pick label{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-3)}
.tbl tr.is-current td{background:var(--blue-soft)}

.prefix-row{display:flex;gap:8px;align-items:stretch}
.prefix-row input{flex:1;min-width:0;font-family:var(--font-mono);font-weight:700}
.prefix-row .btn{flex:none;white-space:nowrap}

/* Nabídka zřízení přístupu kontaktní osobě firmy */
.contact-offer{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;
  background:var(--blue-soft);border:1px solid var(--blue);border-radius:var(--radius-lg);
  padding:16px 18px;margin-bottom:16px}
.contact-offer-role{display:flex;align-items:center;gap:6px;font-size:10.5px;font-weight:800;
  letter-spacing:.08em;text-transform:uppercase;color:var(--blue-2);margin-bottom:5px}
.contact-offer-name{font-size:16px;font-weight:800}
.contact-offer-sub{font-size:12.5px;color:var(--text-2);margin-top:2px}
.contact-offer-note{font-size:12.5px;color:var(--text-2);margin:8px 0 0;max-width:60ch}
.contact-offer form{flex:none}
@media (max-width:640px){ .contact-offer form,.contact-offer .btn{width:100%} }

/* =====================================================================
   v29 — karty lidí a bloky týmů ve firemním portálu
   ===================================================================== */
/* Blok týmu musí být na první pohled poznat jako celek: výrazněji tónované
   záhlaví, pod ním bílé tělo s kartami. Barevný pruh na začátku záhlaví se
   neosvědčil — v jinak plochém designu portálu působil cize. */
.team-block{background:var(--surface);border:1px solid var(--line-2);
  border-radius:var(--radius);box-shadow:var(--shadow-sm);
  margin-bottom:18px;overflow:hidden}
.team-block.is-plain{box-shadow:none;border-style:dashed}

.team-block-head{display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:13px 18px;background:var(--head-soft);
  border-bottom:1px solid var(--line-2);flex-wrap:wrap}
.team-block.is-plain .team-block-head{background:var(--bg-2)}

.team-block-name{display:flex;align-items:center;gap:9px;min-width:0}
.team-block-ico{flex:none;width:28px;height:28px;border-radius:8px;background:var(--blue);
  color:#fff;display:flex;align-items:center;justify-content:center}
.team-block.is-plain .team-block-ico{background:var(--text-3)}
.team-block-title{font-size:16px;font-weight:800;margin:0;letter-spacing:-0.01em}
.team-block-note{font-size:12px;color:var(--text-2);margin:2px 0 0}
.team-block-actions{display:flex;align-items:center;gap:6px}
.team-block-body{padding:16px 18px}
.team-block-empty{font-size:12.5px;color:var(--text-3);margin:0}

.person-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(268px,1fr));gap:12px}

/* Karta je odkaz, takže je potřeba vypnout podtržení — jinak se při najetí
   podtrhnou všechny texty uvnitř a karta vypadá rozbitě. */
.person-card{display:flex;align-items:center;gap:12px;padding:14px 16px;background:var(--surface);
  border:1px solid var(--line-2);border-radius:12px;box-shadow:var(--shadow-sm);
  text-decoration:none;color:inherit;
  transition:border-color .12s,box-shadow .12s,transform .12s,background .12s}
.person-card,.person-card:hover,.person-card:focus{text-decoration:none}
.person-card *{text-decoration:none}
.person-card:hover{border-color:var(--blue);background:var(--surface);
  box-shadow:0 4px 14px rgba(15,45,72,0.12);transform:translateY(-2px)}
.person-card:focus-visible{outline:2px solid var(--blue);outline-offset:2px}

.person-avatar{flex:none;width:40px;height:40px;border-radius:50%;background:var(--blue-soft);
  color:var(--blue-2);display:flex;align-items:center;justify-content:center;
  font-size:13px;font-weight:800}
.person-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}
.person-name{font-size:14px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.person-role{font-size:12px;font-weight:600;color:var(--blue-2);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.person-sub{font-size:11.5px;color:var(--text-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.person-state{flex:none}

.person-admin{display:flex;flex-direction:column;gap:8px;margin-top:10px}
.person-admin .btn{width:100%;justify-content:center}
.cmp-note-box{font-size:12.5px;color:var(--text-2);background:var(--bg);border-radius:9px;
  padding:10px 12px;margin:10px 0 0}
.tbl tr.is-muted td{opacity:.62}

.prefs-cols{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.prefs-cols fieldset{border:1px solid var(--line);border-radius:11px;padding:12px 14px;margin:0}
.prefs-cols legend{font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;
  color:var(--text-3);padding:0 6px}
.prefs-cols .check{padding:4px 0}
@media (max-width:640px){ .prefs-cols{grid-template-columns:1fr} }

/* Přehled klientů — bloky podle typu */
.client-group{margin-bottom:22px}
.client-group:last-of-type{margin-bottom:0}
.client-group-head{display:flex;align-items:center;gap:9px;margin:0 0 9px 2px}
.client-group-icon{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;
  border-radius:9px;background:var(--bg-2);color:var(--text-2)}
.client-group-icon.blue{background:var(--blue-soft);color:var(--blue-2)}
.client-group-icon.teal{background:rgba(28,150,131,0.12);color:#12776a}
.client-group-icon.violet{background:rgba(124,92,214,0.12);color:#6448bd}
.client-group-title{font-size:14px;font-weight:700;margin:0;color:var(--text)}
.client-group-count{font-size:11.5px;font-weight:700;color:var(--text-3);background:var(--bg-2);
  border-radius:999px;padding:2px 9px}

/* Lišta hromadných operací se skrývá atributem hidden */
.bulk-bar[hidden]{display:none}
.btn.danger-link{color:var(--danger)}
.btn.danger-link:hover{background:var(--danger-soft);color:var(--danger)}

/* =====================================================================
   Spokojenost klientů (NPS)
   ===================================================================== */
/* Řádek seznamu, který je zároveň odkaz — používá se u čekajících dotazů */
.list-row{display:flex;align-items:center;gap:12px;padding:10px 13px;background:var(--bg);
  border:1px solid var(--line-2);border-radius:10px;text-decoration:none;color:inherit;
  transition:border-color .12s,background .12s}
.list-row:hover{border-color:var(--blue);background:var(--surface);text-decoration:none}

/* Odznak se známkou 0–10 */
.nps-score{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;
  border-radius:10px;font-weight:800;font-size:14px;background:var(--bg-2);color:var(--text-2)}
.nps-score.ok{background:var(--ok-soft);color:var(--ok)}
.nps-score.warn{background:var(--warn-soft);color:var(--warn)}
.nps-score.danger{background:var(--danger-soft);color:var(--danger)}

/* Vodorovné sloupce s rozdělením známek */
.nps-bars{display:flex;flex-direction:column;gap:5px}
.nps-bar-row{display:flex;align-items:center;gap:10px}
.nps-bar-num{flex:none;width:22px;text-align:center;font-size:12px;font-weight:700;color:var(--text-3)}
.nps-bar-num.ok{color:var(--ok)} .nps-bar-num.warn{color:var(--warn)} .nps-bar-num.danger{color:var(--danger)}
.nps-bar-track{flex:1;height:9px;border-radius:999px;background:var(--bg-2);overflow:hidden}
.nps-bar-fill{display:block;height:100%;border-radius:999px;background:var(--text-3);
  transition:width .3s}
.nps-bar-fill.ok{background:var(--ok)} .nps-bar-fill.warn{background:var(--warn)}
.nps-bar-fill.danger{background:var(--danger)}
.nps-bar-val{flex:none;width:26px;text-align:right;font-size:12px;font-weight:600;color:var(--text-2)}

.nps-legend{display:flex;flex-wrap:wrap;gap:14px;margin-top:14px;padding-top:13px;
  border-top:1px solid var(--line-2);font-size:12px;color:var(--text-2)}
.nps-legend b{font-weight:800;margin-right:3px}
.nps-legend b.ok{color:var(--ok)} .nps-legend b.warn{color:var(--warn)}
.nps-legend b.danger{color:var(--danger)}

/* Vývoj NPS po měsících — sloupce rostou ode dna, záporné hodnoty červeně */
.nps-trend{display:flex;align-items:flex-end;gap:6px;height:190px}
.nps-trend-col{flex:1;display:flex;flex-direction:column;align-items:center;
  justify-content:flex-end;height:100%;gap:5px;min-width:0}
.nps-trend-val{font-size:11px;font-weight:700;color:var(--text-2)}
.nps-trend-bar{width:100%;max-width:34px;border-radius:6px 6px 0 0;background:var(--blue);min-height:4px}
.nps-trend-bar.neg{background:var(--danger)}
.nps-trend-lbl{font-size:10.5px;color:var(--text-3);white-space:nowrap}

/* Výběr známky v modálu odesílání / na kartě klienta */
.nps-mini{display:flex;gap:4px;flex-wrap:wrap}
.nps-mini span{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;
  border-radius:7px;font-size:11.5px;font-weight:700;background:var(--bg-2);color:var(--text-3)}
.stat-tag.warn{color:var(--warn);background:var(--warn-soft)}

/* Výstražná lišta na dashboardu — čekající klienti */
.alert-bar{display:flex;align-items:center;gap:14px;flex-wrap:wrap;
  background:var(--warn-soft);border:1px solid rgba(179,84,30,0.22);
  border-radius:var(--radius);padding:14px 18px;margin-bottom:18px}
.alert-bar-icon{flex:none;width:36px;height:36px;border-radius:11px;background:var(--warn);
  color:#fff;display:flex;align-items:center;justify-content:center}
.alert-bar-main{flex:1;min-width:220px}
.alert-bar-title{font-size:14px;font-weight:700;color:var(--warn);margin:0}
.alert-bar-sub{font-size:12.5px;color:var(--text-2);margin:3px 0 0;line-height:1.55}
.alert-bar .btn{flex:none}

/* Logo poradce/firmy v nastavení portálu */
.partner-logo-row{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.partner-logo-box{flex:none;display:flex;align-items:center;justify-content:center;
  width:120px;height:72px;border:1px solid var(--line-2);border-radius:10px;
  background:var(--bg);overflow:hidden}
.partner-logo-box img{max-width:100%;max-height:100%;object-fit:contain}
.partner-logo-box.is-empty{color:var(--text-3);border-style:dashed}

/* =====================================================================
   v41 — kompaktní dashboard poradce
   =====================================================================
   Pět kachlí se lámalo i na velkém monitoru. Zisk a skóre NPS se proto
   přesunuly ke grafům a zbyly tři kachle v užším provedení. */

.stat-grid.tight{grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:14px}
.stat.stat-sm{padding:13px 15px}
.stat.stat-sm .stat-label{font-size:12px}
.stat.stat-sm .stat-value{font-size:24px;margin-top:4px}
.stat.stat-sm .stat-row{margin-top:4px;gap:8px}
.stat.stat-sm .stat-icon{top:12px;right:12px;width:30px;height:30px;border-radius:9px}
/* Kachle je odkaz — text uvnitř nesmí zmodrat ani podtrhnout */
a.stat.stat-sm:hover{text-decoration:none;border-color:var(--line-2);box-shadow:var(--shadow-md)}

/* Řádky dashboardu drží menší mezery než zbytek aplikace */
.dash{display:flex;flex-direction:column;gap:14px}
.dash .grid-2,.dash .grid-2-1{gap:14px}
.dash .card-header{padding:14px 18px}
.dash .card-body{padding:16px 18px}
/* Seznamy uvnitř karet nepotřebují plný horní odsazení */
.dash .card-body.dash-list{padding-top:6px;padding-bottom:6px}

/* ---- KPI proužek nad finančním grafem (nahrazuje kachli „Zisk“ + legendu) ---- */
.kpi-row{display:flex;flex-wrap:wrap;gap:8px 22px;align-items:baseline;
  padding-bottom:12px;margin-bottom:4px;border-bottom:1px solid var(--line)}
.kpi{display:flex;flex-direction:column;gap:2px;min-width:0}
.kpi.is-main{margin-left:auto;text-align:right;align-items:flex-end}
.kpi-lbl{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;font-weight:600;
  color:var(--text-2);white-space:nowrap}
.kpi-val{font-size:16px;font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}
.kpi.is-main .kpi-val{font-size:19px}
.kpi-val.ok{color:var(--ok)} .kpi-val.danger{color:var(--danger)}
.kpi-dot{flex:none;width:9px;height:9px;border-radius:3px;background:var(--text-3)}
.kpi-dot.ok{background:var(--ok)} .kpi-dot.danger{background:var(--danger)}
.kpi-dot.line{width:14px;height:0;border-radius:0;border-top:2.5px solid var(--blue);background:none}

/* ---- Karta spokojenosti ---- */
.nps-summary{display:flex;align-items:center;gap:14px;padding-bottom:12px;
  border-bottom:1px solid var(--line)}
.nps-summary-val{font-size:36px;font-weight:800;letter-spacing:-0.02em;line-height:1;
  font-variant-numeric:tabular-nums}
.nps-summary-side{display:flex;flex-direction:column;align-items:flex-start;gap:5px;min-width:0}
.nps-summary-sub{font-size:12px;color:var(--text-2);line-height:1.4}
.nps-chart-note{margin:16px 0 4px}

.nps-chart{display:block;width:100%;height:auto}
.nps-chart-wrap{margin:10px 0 4px}
.nps-chart-bar{fill:var(--blue)}
.nps-chart-bar.neg{fill:var(--danger)}
.nps-chart-val{fill:var(--text-2);font-size:9.5px;font-weight:700;font-family:var(--font);
  font-variant-numeric:tabular-nums}
/* Popisek, který se nevešel za sloupec, leží uvnitř barevné plochy */
.nps-chart-val.is-inside{fill:#fff}

/* Rozpad na tábory — drží smysl i při jediné odpovědi */
.nps-split{display:flex;gap:2px;height:8px;border-radius:999px;overflow:hidden;
  background:var(--bg-2);margin-top:12px}
.nps-split-seg{display:block;height:100%}
.nps-split-seg.ok{background:var(--ok)}
.nps-split-seg.warn{background:var(--warn)}
.nps-split-seg.danger{background:var(--danger)}
.nps-split-legend{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:9px;
  font-size:11.5px;color:var(--text-2)}
.nps-split-legend b{font-weight:800;margin-right:3px}
.nps-split-legend b.ok{color:var(--ok)} .nps-split-legend b.warn{color:var(--warn)}
.nps-split-legend b.danger{color:var(--danger)}

/* ---- Schůzka v užším sloupci ---- */
/* Klik na kartu otevírá modál (modals.js), tlačítko „Přejít k detailu“
   tu proto nechybí — jen by ukradlo šířku, které je v půlce řádku málo. */
.meet-card.is-compact{gap:12px;padding:11px 12px}
.meet-card.is-compact .meet-card-date{width:40px}
.meet-card.is-compact .meet-card-date .d{font-size:20px}
.meet-card.is-compact .meet-card-title{font-size:13.5px;line-height:1.35}
.meet-card.is-compact .meet-card-meta{gap:5px 10px;margin-top:3px;font-size:12px}
.meet-card-who{display:inline-flex;align-items:center;gap:6px;min-width:0}
.meet-card-who>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.meet-card.is-compact .avatar.sm{width:22px;height:22px;font-size:10px}
.meet-card.is-compact .chip{font-size:11px}

/* ---- Tmavá karta po splatnosti (dřív inline styly) ---- */
.navy-card-sum{font-size:26px;font-weight:700;margin-top:6px}
.navy-card-note{font-size:12.5px;color:#9fb4c6;margin-bottom:12px}
.navy-card-row{display:flex;justify-content:space-between;gap:10px;font-size:12.5px;
  padding:7px 0;border-top:1px solid rgba(255,255,255,0.1)}
.navy-card-row a{color:#cfe3f3}
.navy-card-num{color:#7489a0}
.navy-card-days{display:block;color:#e8a1ad;font-size:11px}

/* ---- Grafy na úzkém displeji ---- */
/* SVG se škáluje i s popisky, takže na mobilu by osy spadly pod 5 px.
   Místo zmenšování necháme graf posouvat do strany jako široké tabulky. */
@media (max-width:820px){
  .chart-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
  .line-chart{min-width:600px}
  .nps-chart{min-width:320px}
}

@media (max-width:560px){
  /* Tři kachle vedle sebe zůstávají i na telefonu — jsou to jen tři čísla
     a pod sebou by zabraly půl obrazovky. */
  .stat-grid.tight{grid-template-columns:repeat(3,1fr);gap:8px}
  .stat.stat-sm{padding:10px 11px}
  .stat.stat-sm .stat-icon{display:none}
  .stat.stat-sm .stat-label{font-size:11px;line-height:1.3}
  .stat.stat-sm .stat-value{font-size:20px;margin-top:3px}
  .stat.stat-sm .stat-row{flex-direction:column;align-items:flex-start;gap:2px;margin-top:3px}
  .stat.stat-sm .stat-tag{font-size:10.5px;padding:1px 5px;line-height:1.35}

  .dash .card-header{padding:13px 15px}
  .dash .card-body{padding:14px 15px}
  .kpi.is-main{margin-left:0;text-align:left;align-items:flex-start;width:100%;
    padding-top:8px;border-top:1px solid var(--line)}
  .nps-summary-val{font-size:30px}
}

/* =====================================================================
   v41 — indikátor načítání stránky
   =====================================================================
   Mezi kliknutím a vykreslením nové stránky server chvíli přemýšlí.
   Bez zpětné vazby to vypadá, že se nic neděje — zejména v aplikaci
   na ploše telefonu, kde chybí i indikátor prohlížeče. */

.mk-progress{position:fixed;top:0;left:0;right:0;height:3px;z-index:400;
  pointer-events:none;opacity:0;transition:opacity .2s}
.mk-progress.is-on{opacity:1}
.mk-progress-fill{display:block;height:100%;width:0;border-radius:0 3px 3px 0;
  background:linear-gradient(90deg,var(--blue),var(--teal),var(--blue-2));
  box-shadow:0 0 8px rgba(50,148,213,0.6);transition:width .18s ease-out}

/* Položka menu, na kterou se právě kliklo — na dotykovém displeji je
   potvrzení kliku důležitější než jinde */
.nav-item.is-loading,.tabbar-item.is-loading,.more-item.is-loading{opacity:0.55}

/* Karta obsahu při prvním vykreslení lehce naběhne, ať přechod nešvihne */
.content{animation:mkFadeIn .18s ease-out}
@keyframes mkFadeIn{from{opacity:0.4}to{opacity:1}}

@media (prefers-reduced-motion:reduce){
  .content{animation:none}
  .mk-progress-fill{transition:none}
}

/* Zpětná vazba 360 — červený pruh u podprůměrných otázek */
.test-scale-fill.c-red{background:#D9534F}

/* Zaškrtávací řádek s popiskem — používá ho i nastavení a ZV360 */
.check{display:flex;align-items:flex-start;gap:9px;font-size:13.5px;color:var(--text-1);cursor:pointer}
.check input{flex:none;margin-top:2px}
.check i{font-style:normal;color:var(--text-3)}

/* Archivace a mazání v editaci zaměstnance — každá akce s vysvětlením,
   ať je jasné, co se stane, než se na ni klikne */
.person-danger{margin-top:20px;padding-top:16px;border-top:1px solid var(--line)}
.person-danger h4{margin:0 0 10px;font-size:12px;font-weight:700;letter-spacing:.06em;
  text-transform:uppercase;color:var(--text-3)}
.person-danger-row{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;
  padding:11px 0;border-bottom:1px solid var(--line)}
.person-danger-row:last-child{border-bottom:0;padding-bottom:0}
.person-danger-row b{display:block;font-size:13.5px;font-weight:600}
.person-danger-row p{margin:3px 0 0;font-size:12.5px;color:var(--text-2);line-height:1.5}
.person-danger-row .btn{flex:none;white-space:nowrap}
@media (max-width:560px){ .person-danger-row{flex-direction:column;align-items:stretch} }

/* Zpětná vazba 360 — větev se seznamem adres a jazykem u každé z nich */
.fb-branch{padding:14px 0;border-top:1px solid var(--line)}
.fb-branch:first-of-type{border-top:0;padding-top:4px}
.fb-branch-head{font-size:13.5px;margin-bottom:9px}
.fb-branch-head b{font-weight:700}
.fb-branch-head i{font-style:normal;color:var(--text-3);font-weight:400}
.fb-rows{display:flex;flex-direction:column;gap:7px;margin-bottom:9px}
.fb-row{display:flex;align-items:center;gap:8px}
.fb-row input[type=email]{flex:1;min-width:0}
.fb-row select{flex:none;width:132px}
.fb-row input[readonly]{background:var(--bg);color:var(--text-2)}
.fb-row-x{flex:none;width:32px;height:32px;display:flex;align-items:center;justify-content:center;
  border:1px solid var(--line-2);border-radius:9px;background:var(--surface);color:var(--text-3);
  cursor:pointer;transition:all .12s}
.fb-row-x:hover{border-color:var(--danger);color:var(--danger)}
.fb-row-x[hidden]{display:none}
.fb-row-sp{flex:none;width:32px}
@media (max-width:560px){
  .fb-row{flex-wrap:wrap}
  .fb-row input[type=email]{flex:1 1 100%}
  .fb-row select{flex:1}
}

/* ---- Analýza testu z diagnostiky ------------------------------------
   Dokument z diagnostiky je sázený na papír (mm, pt). Do portálu z něj
   bereme jen obsah a stylujeme si ho sami — proto vlastní sada pravidel
   pro třídy, které generátor používá. Vše je pod .tanal, ať se to nikde
   jinde neprojeví. */
.tanal{font-size:14.5px;line-height:1.7;color:var(--text)}
.tanal p{margin:0 0 11px;text-align:left}
.tanal p:last-child{margin-bottom:0}
.tanal strong,.tanal b{font-weight:700}
.tanal .st{display:none}                       /* nadpis nese hlavička karty */
.tanal .ss,.tanal h3,.tanal h4{font-size:16px;font-weight:700;color:var(--text);
  margin:20px 0 10px}
.tanal img{max-width:100%;height:auto}
/* Grafy z generátoru počítají se světlým papírem */
.tanal svg{max-width:100%;height:auto;background:#fff;border-radius:12px;padding:6px}
.tanal .radar-container,.tanal .cc{text-align:center;margin:16px 0;max-width:100%}
.tanal ul{margin:0 0 11px;padding-left:20px}
.tanal li{margin-bottom:6px}

.tanal-toc{display:flex;flex-wrap:wrap;gap:8px}
.tanal-toc a{font-size:12.5px;font-weight:600;text-decoration:none;color:var(--blue-2);
  background:var(--blue-soft);border-radius:999px;padding:6px 12px}
.tanal-toc a:hover{background:var(--blue);color:#fff}

/* Bloky s obsahem */
.tanal .methodology-intro,.tanal .aspect-block,.tanal .profile-section,.tanal .ocean-dim,
.tanal .db,.tanal .info-box,.tanal .pl,.tanal .riasec-block,.tanal .ocean-cards-box,
.tanal .domain-note,.tanal .tc,.tanal .tp{background:var(--bg-2);border:1px solid var(--line);
  border-radius:var(--radius-sm);padding:14px 16px;margin:14px 0}
.tanal .methodology-intro,.tanal .aspect-block,.tanal .ocean-dim,.tanal .db,
.tanal .info-box{border-left:3px solid var(--blue)}
.tanal .domain-intro{background:var(--warn-soft);color:var(--warn);border-radius:var(--radius-sm);
  border-left:3px solid var(--warn);padding:14px 16px;margin:14px 0}
.tanal .domain-note{color:var(--text-2);font-size:13.5px}
.tanal .risk-section{background:var(--danger-soft);border-radius:var(--radius-sm);
  border-left:3px solid var(--danger);padding:14px 16px;margin:14px 0}
.tanal .risk-title{color:var(--danger)}
.tanal .risk-dimension{font-size:12.5px;color:var(--text-2);margin-bottom:8px}
.tanal .sb,.tanal .wb{border-radius:var(--radius-sm);padding:14px 16px;margin:14px 0}
.tanal .sb{background:var(--ok-soft);border-left:3px solid var(--ok)}
.tanal .wb{background:var(--danger-soft);border-left:3px solid var(--danger)}
.tanal .sb h3{color:var(--ok)}
.tanal .wb h3{color:var(--danger)}
.tanal .aspect-title,.tanal .profile-title,.tanal .risk-title,.tanal .ocean-cards-title,
.tanal .tc-header,.tanal .info-box h3,.tanal .pl h3{font-size:15px;font-weight:700;
  margin:0 0 8px;color:var(--text)}
.tanal .aspect-title{color:var(--blue-2)}

/* Výsledkový pruh (Holland) */
.tanal .rc{background:var(--navy);color:#fff;border-radius:var(--radius);
  padding:20px 18px;text-align:center;margin:16px 0}
.tanal .rt{font-size:24px;font-weight:800;margin-bottom:6px;line-height:1.25}
.tanal .rs{font-size:14px;opacity:.9}

/* Pruhová skóre */
.tanal .score-bar,.tanal .bar-chart{margin:12px 0}
.tanal .score-bar:has(>.score-bar-fill),.tanal .score-bar-track,
.tanal .bar-chart-container{height:24px;background:var(--bg-2);border-radius:12px;
  overflow:hidden;position:relative}
.tanal .score-bar-fill,.tanal .bar-chart-fill{height:100%;border-radius:12px;color:#fff;
  font-size:11.5px;font-weight:700;line-height:24px;text-align:right;padding:0 10px 0 0;
  background:linear-gradient(90deg,var(--blue),var(--navy))}
.tanal .score-bar-label,.tanal .bar-chart-scale{display:flex;justify-content:space-between;
  font-size:11.5px;color:var(--text-3);margin-bottom:4px}
.tanal .bar-chart-marker{position:absolute;left:50%;top:0;bottom:0;width:1px;
  background:var(--warn);z-index:1}
.tanal .ocean-dim-header{display:flex;justify-content:space-between;align-items:center;
  gap:10px;margin-bottom:6px}
.tanal .ocean-dim-name{font-size:14.5px;font-weight:700}
.tanal .ocean-dim-score{font-size:14.5px;font-weight:700;color:var(--blue-2)}

/* Přehled dimenzí OCEAN */
.tanal .ocean-dimension{display:flex;align-items:center;gap:14px;margin-bottom:14px}
.tanal .ocean-dimension:last-child{margin-bottom:0}
.tanal .ocean-dimension-icon{width:44px;height:44px;border-radius:50%;flex:none;
  display:flex;align-items:center;justify-content:center}
.tanal .ocean-dimension-icon-text{font-size:19px;font-weight:800;color:#fff}
.tanal .ocean-dimension-name{font-size:15px;font-weight:700}
.tanal .ocean-dimension-desc{font-size:13px;color:var(--text-2);line-height:1.5}
.tanal .ocean-o .ocean-dimension-icon{background:#e2566f}
.tanal .ocean-c .ocean-dimension-icon{background:#3294D5}
.tanal .ocean-e .ocean-dimension-icon{background:#e0a828}
.tanal .ocean-a .ocean-dimension-icon{background:#2C8C8C}
.tanal .ocean-n .ocean-dimension-icon{background:#6B6BD1}

/* Typy RIASEC */
.tanal .riasec-header{display:flex;align-items:center;gap:12px;margin-bottom:10px}
.tanal .riasec-icon,.tanal .ti,.tanal .tc-type{border-radius:50%;color:#fff;flex:none;
  display:flex;align-items:center;justify-content:center;font-weight:800}
.tanal .riasec-icon{width:40px;height:40px;font-size:19px}
.tanal .ti{width:46px;height:46px;font-size:22px;margin:0 auto 8px}
.tanal .tc-type{width:30px;height:30px;font-size:15px;display:inline-flex;
  vertical-align:middle;margin-right:10px}
.tanal .riasec-title h4{margin:0 0 2px;font-size:15px}
.tanal .riasec-title .subtitle{font-size:12px;color:var(--text-3);font-style:italic}
.tanal .riasec-content{font-size:13.5px}
.tanal .type-R{background:#e2566f}
.tanal .type-I{background:#3294D5}
.tanal .type-A{background:#e0a828}
.tanal .type-S{background:#2C8C8C}
.tanal .type-E{background:#6B6BD1}
.tanal .type-C{background:#d8853a}

/* Mřížky — v PDF plavané sloupce, tady prostý grid */
.tanal .tg,.tanal .tt{display:grid;gap:12px;margin:14px 0}
.tanal .tg{grid-template-columns:1fr 1fr}
.tanal .tt{grid-template-columns:repeat(3,1fr)}
.tanal .tc,.tanal .tp{width:auto;float:none;margin:0}
.tanal .tp{text-align:center}
.tanal .tr{font-size:11.5px;color:var(--text-3);font-weight:600;margin-bottom:6px}
.tanal .tla{font-size:14px;font-weight:700;margin-bottom:4px}
.tanal .ts{font-size:18px;font-weight:800;color:var(--blue-2)}
.tanal .ts span{font-size:11.5px;font-weight:500;color:var(--text-3)}
.tanal .tc-desc{font-size:13px;color:var(--text-2)}
.tanal .pl ul{list-style:none;padding:0;margin:0;display:grid;
  grid-template-columns:1fr 1fr;gap:6px 18px}
.tanal .pl li{width:auto;float:none;margin:0;padding-left:16px;position:relative;font-size:13.5px}
.tanal .pl li:before{content:"•";position:absolute;left:0;color:var(--blue);font-weight:700}
@media (max-width:640px){
  .tanal .tg,.tanal .tt,.tanal .pl ul{grid-template-columns:1fr}
}

/* ---- Databáze profesí ---- */
/* Volba praxe u mzdového rozpětí */
.prof-praxe{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:14px}
.prof-praxe-btn{font-size:12.5px;font-weight:600;text-decoration:none;color:var(--text-2);
  background:var(--bg-2);border:1px solid var(--line);border-radius:999px;padding:5px 12px}
.prof-praxe-btn:hover{border-color:var(--blue);color:var(--blue-2)}
.prof-praxe-btn.active{background:var(--navy);border-color:var(--navy);color:#fff}
.prof-jobs{margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}
.prof-jobs label{display:block;font-size:12.5px;font-weight:600;margin-bottom:6px}
.prof-jobs-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.prof-jobs-row select{min-width:220px;flex:0 1 260px}
.prof-band{background:var(--blue-soft);border-radius:var(--radius-sm);padding:14px 16px;margin-bottom:16px}
.prof-band-label{font-size:12.5px;color:var(--blue-2);font-weight:600}
.prof-band-value{font-size:22px;font-weight:800;color:var(--navy);margin:2px 0 4px}
.prof-band-note{font-size:12.5px;color:var(--text-2)}
.prof-bar{position:relative;height:14px;border-radius:7px;background:var(--bg-2);
  border:1px solid var(--line);overflow:hidden}
.prof-bar-band{position:absolute;top:0;bottom:0;background:var(--blue);opacity:.75;border-radius:7px}
.prof-bar-median{position:absolute;top:-3px;bottom:-3px;width:2px;background:var(--navy)}
.prof-scale{display:flex;justify-content:space-between;gap:6px;flex-wrap:wrap;
  font-size:11.5px;color:var(--text-3);margin-top:6px}

/* ---- Životopis: formulář ---- */
.cv-form .card-title{font-size:16px}
.cv-row{border:1px solid var(--line);border-radius:var(--radius-sm);padding:14px 16px;
  margin-bottom:14px;background:var(--bg-2)}
.cv-row:last-of-type{margin-bottom:14px}
.cv-row-head{display:flex;align-items:center;gap:8px;margin-bottom:12px}
.cv-row-drag{color:var(--text-3);display:flex}
.cv-row-title{font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-3);
  margin-right:auto}
.cv-row-tools{display:flex;gap:6px}
.cv-mini{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;
  border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--text-2);
  cursor:pointer;padding:0}
.cv-mini:hover{border-color:var(--blue);color:var(--blue-2)}
.cv-mini-danger:hover{border-color:var(--danger);color:var(--danger)}
.cv-row-moved{animation:cvMoved .4s ease}
@keyframes cvMoved{from{background:var(--blue-soft)}to{background:var(--bg-2)}}
.cv-check{display:flex;align-items:center;gap:8px;font-size:13px;margin:6px 0 10px}
.cv-check input{width:16px;height:16px}
.cv-line{display:flex;gap:8px;align-items:center;margin-bottom:8px}
.cv-line input{flex:1}
.cv-line-lang select{flex:0 0 220px}
.cv-photo-row{display:flex;gap:18px;align-items:flex-start;margin-bottom:18px;flex-wrap:wrap}
.cv-photo{width:96px;height:96px;border-radius:50%;overflow:hidden;flex:none;background:var(--bg-2);
  border:1px solid var(--line);display:flex;align-items:center;justify-content:center;color:var(--text-3)}
.cv-photo img{width:100%;height:100%;object-fit:cover}
.cv-palety{display:flex;gap:10px;flex-wrap:wrap}
.cv-paleta{display:flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:999px;
  padding:6px 12px 6px 8px;background:var(--surface);cursor:pointer;font-size:12.5px;color:var(--text-2)}
.cv-paleta span{width:14px;height:14px;border-radius:50%;display:inline-block}
.cv-paleta:hover,.cv-paleta.active{border-color:var(--blue);color:var(--text)}
.cv-save{position:sticky;bottom:0;display:flex;gap:12px;align-items:center;flex-wrap:wrap;
  background:var(--navy);border-radius:var(--radius);padding:13px 16px;
  box-shadow:0 -2px 14px rgba(15,45,72,.22)}
.cv-save .field-help{color:#B9C9D8;margin-left:auto}
.cv-save .btn{background:#fff;border-color:#fff;color:var(--navy)}
.cv-save .btn:hover{background:#EAF2F9;border-color:#EAF2F9;color:var(--navy)}
/* Náhled a stažení jsou vedlejší akce — na tmavé liště je odlišíme obrysem */
.cv-save .btn-ghost{background:transparent;border-color:rgba(255,255,255,.38);color:#fff}
.cv-save .btn-ghost:hover{background:rgba(255,255,255,.12);border-color:#fff;color:#fff}
/* Sekce se přepínají záložkami, skryté panely nesmí zabírat místo */
.cv-panel[hidden]{display:none}

/* Náhled v modálu: stránka se zmenšuje skriptem, tady jen prostor okolo */
.cv-nahled-body{padding:18px;background:var(--bg-2);min-height:40vh}
.cv-nahled-body .cv-preview{padding-bottom:0}
@media (max-width:640px){
  .cv-line-lang select{flex:1 1 100%}
  .cv-save{gap:8px}
  .cv-save .field-help{margin-left:0;flex:1 1 100%}
  .cv-nahled-body{padding:10px}
}

/* ---- Životopis: náhled ---- */
@font-face{font-family:'MK Sans';src:url('/assets/fonts/mk-sans.ttf') format('truetype');
  font-weight:400;font-display:swap}
@font-face{font-family:'MK Sans';src:url('/assets/fonts/mk-sans-bold.ttf') format('truetype');
  font-weight:700;font-display:swap}
.cv-preview{overflow:hidden;padding-bottom:8px}
.cv-preview-inner{transform-origin:top left}
.cv-page{position:relative;background:#fff;margin:0 0 18px;overflow:hidden;border-radius:6px;
  box-shadow:0 1px 3px rgba(15,45,72,.12),0 10px 26px rgba(15,45,72,.10);
  font-family:'MK Sans','DejaVu Sans',Verdana,sans-serif;color:#1F2933}
.cv-page:last-child{margin-bottom:0}
.cv-el{position:absolute;display:block}
.cv-svg{position:absolute;left:0;top:0;pointer-events:none}
.cv-text{white-space:nowrap;letter-spacing:0}
.cv-photo-el{border-radius:50%;object-fit:cover}
.cv-page-num{position:absolute;right:10pt;bottom:8pt;font-size:7pt;color:#98A4B0}
@media print{
  .cv-preview{overflow:visible}
  .cv-preview-inner{transform:none!important}
  .cv-page{box-shadow:none;border-radius:0;margin:0;page-break-after:always}
}
.sidebar-photo{width:34px;height:34px;border-radius:50%;object-fit:cover;flex:none;
  border:1px solid rgba(255,255,255,.25)}
.avatar.is-photo{padding:0;object-fit:cover;background:var(--bg-2)}
.cv-nabidka{border-left:3px solid var(--blue)}
.cv-nabidka-row{display:flex;gap:16px;align-items:center;justify-content:space-between;flex-wrap:wrap}

/* ---- Nová faktura: řádky položek ---- */
.inv-item-head{display:grid;grid-template-columns:1fr 90px 120px 34px;gap:10px;margin-bottom:8px;
  font-size:11.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--text-3)}
.inv-item-row{display:grid;grid-template-columns:1fr 90px 120px 34px;gap:10px;margin-bottom:10px;
  align-items:start}
.inv-item-row .tbl-mini-btn{margin-top:4px}
.cv-save .btn-ghost{background:transparent;border-color:rgba(255,255,255,.4);color:#fff}
.cv-save .btn-ghost:hover{background:rgba(255,255,255,.12);border-color:#fff;color:#fff}
@media (max-width:720px){
  .inv-item-head{display:none}
  .inv-item-row{grid-template-columns:1fr 1fr 34px}
  .inv-item-row>div:first-child{grid-column:1 / -1}
}

/* =====================================================================
   Kariérní karty — pás karet a pole pro výběr (portál klienta),
   přehled u poradce a správa sad v nastavení.
   ===================================================================== */

/* ---- Klapka pro malé obrazovky ---- */
.cards-small-screen{display:none}
@media (max-width:899px){
  .cards-small-screen{display:block}
  .cards-board{display:none!important}
}

/* ---- Deska ---- */
.cards-board{display:flex;flex-direction:column;gap:26px}
.cards-deck{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);
  box-shadow:var(--shadow-sm);padding:20px}
.cards-deck-head{margin-bottom:16px}
.cards-deck-tag{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:700;
  letter-spacing:.08em;text-transform:uppercase;color:var(--blue-2);background:var(--blue-soft);
  padding:4px 10px;border-radius:999px}
.cards-deck-q{font-size:18px;font-weight:700;letter-spacing:-.01em;margin:10px 0 0;line-height:1.35}

/* ---- Pás karet ---- */
.cards-rail-wrap{position:relative;margin-bottom:22px;padding:0 46px}
/* Horní vycpávka je prostor, do kterého karta při najetí povyroste —
   pás roluje vodorovně, takže co přeteče nahoru, to se ořízne. */
.cards-rail{display:flex;gap:16px;overflow-x:auto;overflow-y:hidden;padding:52px 6px 10px;
  scroll-behavior:smooth;scrollbar-width:none;-ms-overflow-style:none}
.cards-rail::-webkit-scrollbar{display:none}
.cards-rail-empty{margin:auto;padding:34px 10px;color:var(--text-3);font-size:13px}

/* Švih kruhu — jediné místo, kde sada začíná a končí. Záměrně nenápadný:
   má dát orientaci, ne přerušit řadu karet. */
.cards-rail-sep{flex:none;align-self:stretch;width:30px;position:relative;
  display:flex;align-items:center;justify-content:center}
.cards-rail-sep::before{content:'';position:absolute;top:6%;bottom:6%;left:50%;
  border-left:1px dashed var(--line-2)}
.cards-rail-sep span{position:relative;writing-mode:vertical-rl;transform:rotate(180deg);
  font-size:9.5px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;
  color:var(--text-3);background:var(--surface);padding:10px 1px;white-space:nowrap}
/* Mimo kruh nemá oddělovník co oddělovat */
.cards-rail:not(.is-ring) .cards-rail-sep{display:none}

.cards-rail-nav{position:absolute;top:calc(50% + 14px);transform:translateY(-50%);z-index:4;
  width:44px;height:44px;border-radius:50%;border:1px solid var(--line-2);background:var(--surface);
  color:var(--text-2);cursor:pointer;display:none;align-items:center;justify-content:center;
  box-shadow:var(--shadow-md);transition:background .15s,color .15s,transform .15s}
.cards-rail-wrap.is-scrollable .cards-rail-nav{display:flex}
.cards-rail-nav.prev{left:0}
.cards-rail-nav.next{right:0}
.cards-rail-nav:hover:not(:disabled){background:var(--blue);border-color:var(--blue);color:#fff;
  transform:translateY(-50%) scale(1.08)}
.cards-rail-nav:disabled{opacity:.25;cursor:default}

/* Vlastní posuvník — systémový je pro tažení myší i prstem moc tenký */
.cards-rail-bar{position:relative;height:14px;border-radius:999px;background:var(--bg-2);
  border:1px solid var(--line);display:none;cursor:pointer;touch-action:none}
.cards-rail-wrap.is-scrollable .cards-rail-bar{display:block}
.cards-rail-thumb{position:absolute;top:1px;bottom:1px;border-radius:999px;
  background:var(--line-2);transition:background .15s;pointer-events:none}
.cards-rail-bar:hover .cards-rail-thumb{background:var(--blue)}
.cards-rail-wrap.is-ring .cards-rail-bar{cursor:default}
.cards-rail-wrap.is-ring .cards-rail-bar:hover .cards-rail-thumb{background:var(--line-2)}
.cards-rail-hint{margin:10px 0 0;text-align:center;font-size:12px;color:var(--text-3);line-height:1.45}

/* ---- Karta ---- */
.ccard{position:relative;flex:none;width:132px;transform-origin:bottom center;
  transition:transform .2s cubic-bezier(.2,.8,.3,1)}
.cards-rail .ccard:nth-child(odd){transform:rotate(-1.1deg)}
.cards-rail .ccard:nth-child(even){transform:rotate(.9deg)}
.ccard.is-grab{cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none}
.cards-rail .ccard.is-grab{cursor:grab}
.ccard-face{position:relative;width:100%;aspect-ratio:3/5;border-radius:12px;overflow:hidden;
  background:linear-gradient(155deg,var(--navy-3),var(--navy));border:1px solid rgba(15,45,72,.18);
  box-shadow:0 2px 5px rgba(15,45,72,.18),0 8px 18px rgba(15,45,72,.10);
  display:flex;align-items:flex-end;justify-content:center}
.ccard-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  -webkit-user-drag:none;user-select:none}
.ccard-blank{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  color:rgba(255,255,255,.4)}
/* Popisek nese jen karta bez obrázku — hotová grafika má název v sobě */
.ccard-name{position:relative;z-index:2;width:100%;padding:16px 8px 9px;text-align:center;
  font-size:11.5px;font-weight:700;line-height:1.25;color:#fff;
  background:linear-gradient(to top,rgba(9,26,42,.92),rgba(9,26,42,0))}
.ccard-zoom{position:absolute;top:7px;right:7px;z-index:3;width:26px;height:26px;border-radius:50%;
  border:none;background:rgba(9,26,42,.55);color:#fff;cursor:pointer;display:flex;
  align-items:center;justify-content:center;opacity:0;transition:opacity .15s}
.ccard:hover .ccard-zoom,.ccard-zoom:focus-visible{opacity:1}
.ccard-zoom:hover{background:var(--blue)}
.ccard.is-source{opacity:.28;filter:grayscale(.5)}

/* Zvětšení pod kurzorem — jen karta, na které kurzor leží. Sousedi zůstávají
   v klidu, jinak se celý pás vlní a přebíjí to samotný výběr. */
.cards-rail .ccard.is-grab:hover{transform:translateY(-6px) rotate(-2deg) scale(1.18);z-index:5}

/* Plovoucí kopie karty při tažení — sleduje kurzor nad celou stránkou */
.ccard-ghost{position:fixed;z-index:200;pointer-events:none;margin:0;
  transition:none;will-change:transform;transform-origin:center}
.ccard-ghost .ccard-face{box-shadow:0 18px 44px rgba(15,45,72,.42);border-color:var(--blue)}
.ccard-ghost .ccard-zoom{display:none}
body.cards-grabbing{cursor:grabbing}
body.cards-grabbing *{cursor:grabbing!important}

/* ---- Pole pro vybrané karty ---- */
.cards-picked{border-top:1px solid var(--line);padding-top:18px}
.cards-picked-head{text-align:center;font-size:11px;font-weight:700;letter-spacing:.09em;
  text-transform:uppercase;color:var(--text-3);margin-bottom:16px}
.cards-slots{display:flex;gap:22px;flex-wrap:wrap;justify-content:center}
.cards-slot{position:relative;width:158px;aspect-ratio:3/5;border-radius:14px;
  border:2px dashed var(--line-2);background:var(--bg-2);display:flex;align-items:center;
  justify-content:center;transition:border-color .15s,background .15s,transform .15s}
.cards-slot.is-filled{border-style:solid;border-color:transparent;background:none;padding:0}
.cards-slot .ccard{width:100%;transform:none}
.cards-slot .ccard.is-grab{cursor:grab}
.cards-slot .ccard.is-grab:hover{transform:translateY(-4px) scale(1.03)}
.cards-slot.is-over{border-color:var(--blue);background:var(--blue-soft);transform:scale(1.03)}
.cards-rail.is-over{outline:2px dashed var(--blue);outline-offset:-4px;border-radius:12px}
.cards-slot-num{position:absolute;top:-9px;left:-9px;z-index:4;width:24px;height:24px;border-radius:50%;
  background:var(--navy);color:#fff;font-size:11.5px;font-weight:700;display:flex;
  align-items:center;justify-content:center;box-shadow:var(--shadow-sm)}
.cards-slot-hint{display:flex;flex-direction:column;align-items:center;gap:8px;padding:10px;
  color:var(--text-3);font-size:11.5px;text-align:center;line-height:1.3}
.cards-slots.is-static .cards-slot{border-style:solid;border-color:var(--line)}
.cards-slots.is-full-shake{animation:cardsShake .38s}
@keyframes cardsShake{
  0%,100%{transform:translateX(0)} 20%{transform:translateX(-7px)}
  45%{transform:translateX(6px)}  70%{transform:translateX(-3px)}
}
.ccard.is-landing{animation:cardsLand .28s cubic-bezier(.2,.8,.3,1)}
@keyframes cardsLand{
  0%{transform:scale(1.1) rotate(-3deg)} 60%{transform:scale(.97) rotate(1deg)}
  100%{transform:scale(1) rotate(0)}
}

/* ---- Zámek v hlavičce a stavový řádek ---- */
.cards-head-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.cards-desktop-only{display:block}
@media (max-width:899px){.cards-desktop-only{display:none}}
.cards-actions{background:var(--surface);border:1px solid var(--line);
  border-radius:var(--radius);padding:12px 18px}
.cards-status{display:flex;align-items:center;gap:9px;font-size:13px;color:var(--text-2)}
.cards-status.err{color:var(--danger)}
.cards-status-dot{flex:none;width:9px;height:9px;border-radius:50%;background:var(--text-3)}
.cards-status-dot.ok{background:var(--ok)}
.cards-status-dot.err{background:var(--danger)}
.cards-status-dot.wait{background:var(--warn);animation:cardsPulse 1s infinite}
@keyframes cardsPulse{0%,100%{opacity:1}50%{opacity:.25}}

/* ---- Přehled u poradce ---- */
.cards-adv-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
@media (max-width:820px){.cards-adv-grid{grid-template-columns:1fr}}
.cards-adv-deck{background:var(--bg-2);border:1px solid var(--line);border-radius:var(--radius-sm);padding:16px}
.cards-adv-q{font-size:14px;font-weight:600;line-height:1.4;margin:10px 0 12px}
.cards-adv-list{margin:0;padding-left:20px;font-size:13.5px}
.cards-adv-list li{padding:3px 0}
.cards-adv-list li.is-empty{color:var(--text-3);font-style:italic}

/* ---- Správa sad v nastavení ---- */
.karty-q-list{display:flex;flex-direction:column;gap:10px;margin-bottom:18px}
.karty-q-row{display:flex;gap:12px;align-items:flex-start;background:var(--bg-2);
  border:1px solid var(--line);border-radius:var(--radius-sm);padding:10px 12px}
.karty-q-row.is-off{opacity:.55}
.karty-q-row textarea{flex:1;min-width:0;margin:0}
.karty-q-tools{display:flex;flex-direction:column;gap:8px;align-items:flex-end;flex:none}
.karty-q-move{display:flex;gap:4px;justify-content:flex-end;margin:-6px 2px 4px}
.karty-q-add{display:flex;gap:12px;align-items:flex-start}
.karty-q-add textarea{flex:1;min-width:0;margin:0}
.karty-add{display:flex;gap:14px;align-items:flex-end;flex-wrap:wrap;padding-bottom:18px;
  border-bottom:1px solid var(--line);margin-bottom:18px}
.karty-add .field{margin:0;flex:1;min-width:190px}
.karty-list{display:flex;flex-direction:column;gap:8px}
.karty-row{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface)}
.karty-row.is-off{opacity:.6}
.karty-row-head{display:flex;align-items:center;gap:10px;padding:9px 12px}
.karty-row-thumb{flex:none;width:26px;height:26px;border-radius:7px;background:var(--bg-2);
  color:var(--text-3);display:flex;align-items:center;justify-content:center}
.karty-row-label{flex:1;min-width:0;font-size:13.5px;font-weight:600;display:flex;
  align-items:center;gap:8px;flex-wrap:wrap}
.karty-row-tools{display:flex;gap:3px;flex:none}
.karty-row-edit{border-top:1px solid var(--line);padding:14px 12px;background:var(--bg-2)}
.karty-use{font-size:11px;font-weight:600;color:var(--text-3);display:inline-flex;align-items:center;gap:4px}

/* ---- Životopis: verze, zámky a záložka Design ---- */
.cv-verze{margin-bottom:14px;padding:10px 12px}
.cv-verze-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.cv-verze-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;
  color:var(--text-3)}
.cv-verze-pick{position:relative}
.cv-verze-btn{min-width:260px;justify-content:space-between;gap:8px}
.cv-verze-menu{top:calc(100% + 6px);left:0;min-width:340px;max-height:60vh;overflow:auto}
.cv-verze-item{align-items:center;gap:10px;justify-content:space-between}
.cv-verze-item.active{background:var(--blue-soft)}
.cv-verze-item-main{display:flex;flex-direction:column;gap:2px;min-width:0}
.cv-verze-meta{font-size:12px;font-weight:400;color:var(--text-2)}
.cv-verze-check{color:var(--blue-2);display:flex}
.cv-verze-spacer{flex:1 1 auto}
.cv-verze-form{display:inline-flex}
.cv-verze-del{color:var(--danger)}
.cv-verze-del:hover{border-color:var(--danger)}
.cv-note{margin-bottom:14px;align-items:flex-start}
.cv-note-lock{background:var(--violet-soft);color:var(--violet)}
.cv-note-tools{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.cv-fields{border:0;padding:0;margin:0;min-width:0}
.cv-fields[disabled]{opacity:.72}
.cv-prefix{display:flex;align-items:stretch}
.cv-prefix > span{display:flex;align-items:center;padding:0 10px;border:1px solid var(--line-2);
  border-right:0;border-radius:9px 0 0 9px;background:var(--bg-2);color:var(--text-2);
  font-size:13px;white-space:nowrap}
.cv-prefix input{border-radius:0 9px 9px 0;flex:1;min-width:0}
.cv-sub-title{font-size:13.5px;font-weight:700;margin:22px 0 10px}
.cv-lang{display:flex;gap:8px;flex-wrap:wrap}
.cv-lang-opt{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line);
  border-radius:999px;padding:7px 14px;font-size:13px;font-weight:600;color:var(--text-2);cursor:pointer}
.cv-lang-opt.active{border-color:var(--blue);color:var(--text)}
.cv-lang-opt input{width:15px;height:15px}
@media (max-width:640px){
  .cv-verze-btn{min-width:0;flex:1 1 100%}
  .cv-verze-menu{min-width:0;width:calc(100vw - 48px)}
}

/* ---- Životopis na malých obrazovkách ----
   Formulář se používá i v telefonu, kde vzniká většina životopisů psaných
   narychlo. Dvousloupcová pole se skládají pod sebe, ovládání zůstává
   dost velké na prst. */
@media (max-width:640px){
  .cv-form .field-row,
  .cv-form .field-row.r-2-1{grid-template-columns:1fr}
  .cv-row{padding:12px 12px 14px}
  .cv-row-head{flex-wrap:wrap}
  .cv-row-title{width:100%;order:-1;margin-bottom:4px}
  .cv-row-tools{margin-left:auto}
  .cv-mini{width:34px;height:34px}
  .cv-line{flex-wrap:wrap}
  .cv-line-lang select{flex:1 1 100%}
  .cv-line .btn,.cv-line .cv-mini{flex-shrink:0}
  .cv-photo-row{gap:12px}
  .cv-photo{width:76px;height:76px}
  .cv-palety{gap:6px}
  .cv-paleta{padding:6px 10px;font-size:12px}
  .cv-paleta b{max-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .cv-limit{flex-direction:column;align-items:flex-start}
  .cv-limit-mini{margin-left:0;margin-top:6px}
  /* Záložky sekcí sahají k okrajům, ať je vidět, že se posouvají */
  .cv-tabs{margin-left:-14px;margin-right:-14px;border-radius:0;border-left:0;border-right:0}
}

/* Prémiový obsah: hvězdička u položek, které patří k plné verzi služby */
.cv-premium{display:inline-flex;align-items:center;color:var(--warn);flex-shrink:0}
.cv-paleta .cv-premium{margin-left:2px}

/* Výzva k zapnutí upozornění v portálu klienta */
.push-vyzva{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin:0 0 18px;padding:14px 16px;
  border-radius:var(--radius);background:var(--blue-soft);border:1px solid rgba(50,148,213,.25)}
.push-vyzva-ikona{display:flex;color:var(--blue-2);flex-shrink:0}
.push-vyzva-text{flex:1 1 260px;display:flex;flex-direction:column;gap:2px;font-size:13px;color:var(--text-2)}
.push-vyzva-text b{color:var(--text);font-size:13.5px}
.push-vyzva-akce{display:flex;gap:8px;flex-wrap:wrap}
.remind-forma-volby{display:flex;gap:18px;flex-wrap:wrap}
.remind-forma-volby .cv-check{margin:4px 0}
@media (max-width:640px){.push-vyzva-akce{width:100%}.push-vyzva-akce .btn{flex:1;justify-content:center}}

/* =====================================================================
   v126 · Přehled (dashboard): tři hlavní karty + druhá řada
   ===================================================================== */
.alert-bar.is-danger{background:var(--danger-soft);border-color:rgba(200,72,91,0.22)}
.alert-bar.is-danger .alert-bar-icon{background:var(--danger)}
.alert-bar.is-danger .alert-bar-title{color:var(--danger)}

.dw-main{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:16px}
.dw-second{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:16px}
.dw-card{display:flex;flex-direction:column;height:560px;overflow:hidden}
.dw-head{display:flex;align-items:center;gap:10px;padding:16px 18px 12px;flex-wrap:wrap}
.dw-icon{flex:none;width:34px;height:34px;border-radius:10px;display:flex;align-items:center;justify-content:center;
  background:var(--blue-soft);color:var(--blue-2)}
.dw-icon.warn{background:var(--warn-soft);color:var(--warn)}
.dw-icon.ok{background:var(--ok-soft);color:var(--ok)}
.dw-title{font-size:17px;font-weight:700;margin:0;letter-spacing:-0.01em}
.dw-title.sm{font-size:15px}
.dw-sub{font-size:12px;color:var(--text-3)}
.dw-sub.block{display:block;margin-top:2px}
.dw-head-btn{margin-left:auto}
.dw-count{font-size:11.5px;font-weight:700;padding:1px 8px;border-radius:999px;background:var(--blue-soft);color:var(--blue-2)}
.dw-card[data-dw="tasks"] .dw-count{background:var(--warn-soft);color:var(--warn)}
.dw-over{font-size:11px;font-weight:700;padding:2px 8px;border-radius:999px;background:var(--danger-soft);color:var(--danger)}
.dw-new{font-size:11px;font-weight:700;padding:2px 9px;border-radius:999px;background:var(--ok);color:#fff}
.dw-who{margin-left:auto}
.seg.seg-sm{padding:2px}
.seg.seg-sm button{padding:4px 10px;font-size:12px}

.dw-pills{display:flex;gap:2px;padding:0 14px 12px;border-bottom:1px solid var(--line);flex-wrap:wrap}
.dw-pills button{display:inline-flex;align-items:center;gap:7px;border:none;background:none;cursor:pointer;
  font:600 12px var(--font);color:var(--text-2);padding:5px 9px;border-radius:8px;white-space:nowrap}
.dw-pills button:hover{background:var(--bg-2);color:var(--text)}
.dw-pills button span{font-size:10.5px;font-weight:700;padding:0 6px;border-radius:999px;background:var(--bg-2);color:var(--text-2)}
.dw-pills button.active{background:var(--navy);color:#fff}
.dw-pills button.active span{background:rgba(255,255,255,0.18);color:#fff}
html[data-theme="dark"] .dw-pills button.active{background:var(--blue-2)}

.dw-body{flex:1;min-height:0;overflow-y:auto;padding:8px 10px}
.dw-foot{border-top:1px solid var(--line);padding:13px 18px;font-size:13px;font-weight:600}
.dw-foot a{display:inline-flex;align-items:center;gap:6px}
.dw-empty{display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;color:var(--text-3);
  padding:36px 16px}
.dw-empty p{margin:0;font-size:13px;color:var(--text-2)}

/* Schůzka */
.dw-meet{display:flex;align-items:flex-start;gap:14px;padding:12px;border-radius:12px;cursor:pointer;
  border:1px solid transparent;margin-bottom:4px}
.dw-meet:hover{background:var(--bg-2)}
.dw-meet.is-next{background:var(--blue-soft);border-color:rgba(50,148,213,0.25)}
.dw-date{flex:none;width:46px;padding:6px 0;border-radius:10px;background:var(--surface);border:1px solid var(--line);
  text-align:center;line-height:1.1}
.dw-date .w{display:block;font-size:10px;font-weight:800;color:var(--blue-2);letter-spacing:0.04em}
.dw-date .d{display:block;font-size:20px;font-weight:700;font-variant-numeric:tabular-nums}
.dw-date .m{display:block;font-size:10px;color:var(--text-3)}
.dw-meet-main{flex:1;min-width:0}
.dw-badge{display:inline-block;font-size:10.5px;font-weight:700;padding:1px 8px;border-radius:999px;
  background:var(--blue-2);color:#fff;margin-bottom:4px}
.dw-meet-title{font-size:14px;font-weight:700;line-height:1.35}
.dw-meet-who{font-size:12.5px;color:var(--text-2);margin-top:1px}
.dw-meet-meta{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:12px;color:var(--text-2);margin-top:3px}
.dw-meet-meta span{display:inline-flex;align-items:center;gap:5px}
.dw-join{flex:none;align-self:center;background:var(--blue-soft);color:var(--blue-2);border:1px solid rgba(50,148,213,0.3)}
.dw-join:hover{background:var(--blue);color:#fff;text-decoration:none}

/* Úkol */
.dw-task{display:flex;align-items:flex-start;gap:12px;padding:12px 8px;border-bottom:1px solid var(--line);
  cursor:pointer;border-radius:8px}
.dw-task:hover{background:var(--bg-2)}
.dw-task .checkbox{margin-top:2px;pointer-events:none}
.dw-task-main{flex:1;min-width:0}
.dw-task-title{font-size:13.5px;font-weight:600;line-height:1.4}
.dw-task-meta{display:flex;flex-wrap:wrap;gap:4px 10px;font-size:12px;color:var(--text-2);margin-top:2px}
.dw-task-meta .is-over{color:var(--danger);font-weight:600}
.dw-task .chip{flex:none;font-size:11px}
.chip.plain{background:var(--bg-2);color:var(--text-2)}

/* Zpráva */
.dw-msg{display:flex;align-items:flex-start;gap:12px;padding:12px 8px;border-radius:10px;color:var(--text)}
.dw-msg:hover{background:var(--bg-2);text-decoration:none}
.dw-msg-main{flex:1;min-width:0}
.dw-msg-top{display:flex;align-items:center;gap:8px}
.dw-msg-name{font-size:13.5px;font-weight:700;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dw-msg-time{flex:none;font-size:11.5px;color:var(--text-3)}
.dw-msg-dot{flex:none;width:8px;height:8px;border-radius:50%;background:var(--ok)}
.dw-msg-subj{font-size:12px;font-weight:600;color:var(--text-2);margin-top:1px;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dw-msg-body{font-size:12.5px;color:var(--text-2);margin-top:1px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dw-msg-you{color:var(--text-3)}
.dw-msg:not(.is-unread) .dw-msg-name{font-weight:600}

/* Finance */
.dw-fin{display:grid;grid-template-columns:190px minmax(0,1fr);gap:18px;padding:4px 18px 18px;align-items:center}
.dw-fin-sum{display:flex;flex-direction:column;gap:14px}
.dw-fin-sum b{display:block;font-size:19px;font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}
.dw-fin-lbl{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--text-2)}
.dw-fin-lbl i{width:9px;height:9px;border-radius:3px;background:var(--text-3)}
.dw-fin-lbl i.ok{background:var(--ok)} .dw-fin-lbl i.warn{background:var(--warn)}
.dw-fin-net{padding-top:12px;border-top:1px solid var(--line)}
.dw-fin-net b{font-size:25px}
.dw-fin-net b.ok{color:var(--ok)} .dw-fin-net b.danger{color:var(--danger)}
.dw-bars{display:block;width:100%;height:auto}
.dw-bar.income{fill:var(--ok)} .dw-bar.expense{fill:var(--warn)}
.dw-month.is-future{opacity:0.5}
.dw-month.is-current{fill:var(--blue-2);font-weight:800}

/* Spokojenost */
.dw-nps{padding:4px 18px 18px}
.dw-nps-top{display:flex;align-items:center;gap:16px;margin:10px 0 16px}
.dw-nps-val{font-size:52px;font-weight:800;line-height:1;letter-spacing:-0.03em;font-variant-numeric:tabular-nums}
.dw-nps-sub{font-size:12px;color:var(--text-2);margin-top:6px}

@media (max-width:1200px){
  .dw-main{grid-template-columns:1fr 1fr}
  .dw-main .dw-card[data-dw="messages"]{grid-column:1 / -1;height:auto;max-height:560px}
}
@media (max-width:900px){
  .dw-main,.dw-second{grid-template-columns:1fr}
  .dw-card{height:auto;max-height:560px}
  .dw-fin{grid-template-columns:1fr}
  .dw-fin-sum{flex-direction:row;flex-wrap:wrap;gap:12px 22px}
  .dw-fin-net{padding-top:0;border-top:none}
}

/* ---- v126 · Klienti: připnutý klient je vidět na první pohled ---- */
/* Modrý pruh vlevo + jemné modré pozadí; čekající (oranžová) zůstávají odlišitelní */
tr.row-pinned{background:var(--blue-soft)}
tr.row-pinned:hover{background:var(--blue-soft);filter:brightness(0.98)}
tr.row-pinned td:first-child{box-shadow:inset 4px 0 0 var(--blue)}
tr.row-pinned .cell-name:first-child{color:var(--navy)}
html[data-theme="dark"] tr.row-pinned .cell-name:first-child{color:var(--text)}
tr.row-pinned .pin-btn.pinned{color:var(--blue-2)}
tr.row-pinned.row-pending{background:var(--warn-soft)}
.client-card.is-pinned{border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-soft)}
.client-card.is-pinned .pin-btn.pinned{color:var(--blue-2)}
.consent-yes{display:inline-flex;align-items:center;gap:5px;font-size:12.5px;color:var(--ok);font-weight:600;white-space:nowrap}
.consent-no{font-size:14px;color:var(--text-3)}

/* ---- v126 · E-mailing: šablony s odsazením od okraje karty, archiv odeslaných ---- */
.card > .template-row{padding:14px 20px;cursor:default}
.template-row-subject{font-family:var(--font);font-size:12px}
.mail-archive-subj{font-size:13px;font-weight:600;max-width:420px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mail-archive tbody tr:hover{background:var(--bg-2)}

/* ---- v126 · Tipy: řazení sekcí tažením ---- */
.tip-sections-card{padding:0 18px}
.tip-sections-card .tip-section-row{cursor:grab;background:var(--surface)}
.tip-sections-card .tip-section-row:active{cursor:grabbing}
.tip-sections-card .tip-section-row.dragging{opacity:0.45}
.tip-section-handle{flex:none;display:flex;align-items:center;justify-content:center;width:26px;height:26px;
  border-radius:7px;color:var(--text-3);border:1px solid var(--line)}
.tip-section-main{flex:1;min-width:0}

/* ---- v127 · Stažení zálohy s potvrzením heslem ---- */
.backup-form{display:flex;align-items:flex-end;gap:10px;flex-wrap:wrap}
.backup-form .field{flex:1;min-width:220px;max-width:320px}

/* =====================================================================
   v129 · Mobilní verze (PWA): tabulky jako karty, kompaktní dlaždice,
   úkoly, přehled. Platí do 640 px, desktop se nemění.
   ===================================================================== */
.grid-2 > *, .grid-2-1 > *, .grid-3 > *{min-width:0}

@media (max-width:640px){
  /* ---- Tabulky → karty. Popisky sloupců doplní app.js do data-label. ---- */
  .table-wrap{overflow-x:visible}
  .tbl:not(.tbl-keep){min-width:0!important;width:100%}
  .tbl:not(.tbl-keep) thead{display:none}
  .tbl:not(.tbl-keep) tbody,.tbl:not(.tbl-keep) tfoot{display:block}
  .tbl:not(.tbl-keep) tr{display:block;position:relative;padding:12px 14px;border-bottom:1px solid var(--line)}
  .tbl:not(.tbl-keep) tbody tr:last-child{border-bottom:none}
  .tbl:not(.tbl-keep) td{display:flex;align-items:center;justify-content:space-between;gap:14px;
    border:none;padding:3px 0;text-align:right;white-space:normal;min-width:0}
  .tbl:not(.tbl-keep) td::before{content:attr(data-label);flex:none;max-width:45%;font-size:11.5px;
    font-weight:600;color:var(--text-3);text-align:left;text-transform:none;letter-spacing:0}
  .tbl:not(.tbl-keep) td:not([data-label])::before,
  .tbl:not(.tbl-keep) td[data-label=""]::before{display:none}
  .tbl:not(.tbl-keep) td:empty{display:none}
  .tbl:not(.tbl-keep) td > *{min-width:0}
  .tbl:not(.tbl-keep) td.num{text-align:right}
  /* Hlavní buňka (jméno, číslo dokladu…) je nadpis karty */
  .tbl:not(.tbl-keep) td.m-main{display:block;text-align:left;padding:0 34px 6px 0;font-size:14px}
  .tbl:not(.tbl-keep) td.m-main::before{display:none}
  .tbl:not(.tbl-keep) td.m-main .cell-name{white-space:normal;overflow:visible;text-overflow:clip}
  /* Připínáček a podobné drobnosti do pravého horního rohu */
  .tbl:not(.tbl-keep) td.m-corner{position:absolute;top:8px;right:8px;padding:0}
  .tbl:not(.tbl-keep) td.m-corner::before{display:none}
  .tbl:not(.tbl-keep) td.m-hide{display:none!important}
  .tbl:not(.tbl-keep) td.hide-when-narrow.m-show{display:flex!important}
  .tbl:not(.tbl-keep) td .tbl-actions{margin-left:auto}
  .tbl .row-pinned td:first-child,tr.row-pinned td:first-child{box-shadow:none}
  tr.row-pinned{box-shadow:inset 4px 0 0 var(--blue)}
  .tbl tbody tr:hover{background:inherit}

  /* ---- Dlaždice se statistikou: dvě vedle sebe, menší ---- */
  .stat-grid,.stat-grid.cols-3,.stat-grid.cols-2{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .stat{padding:11px 12px;min-height:0}
  .stat-label{font-size:11.5px}
  .stat-value{font-size:18px}
  .stat-value.is-money{font-size:16px}
  .stat-icon{display:none}
  .stat .stat-sub,.stat .stat-note{font-size:11px}

  /* ---- Hlavička stránky ---- */
  .page-header{margin-bottom:14px}
  .page-title{font-size:21px}
  .page-sub{font-size:13px}
  .page-header-row{flex-wrap:wrap;gap:10px}
  .page-header-row > .client-hero-actions,.page-header-row > div:last-child{width:100%}
  .page-header .btn{min-height:40px}

  /* ---- Přehled úkolů ---- */
  .task-overview-row{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;padding:12px 14px}
  .task-overview-row > div{flex:1 1 calc(100% - 40px);min-width:0}
  .task-overview-row > span:nth-of-type(2){margin-left:30px}
  .task-overview-row .task-overview-arrow{display:none}

  /* ---- Přehled (dashboard) ---- */
  .dw-card{max-height:none;height:auto}
  .dw-body{max-height:420px}
  .dw-head{padding:14px 14px 10px}
  .dw-pills{padding:0 10px 10px}
  .dw-who{margin-left:0;width:100%}
  .dw-who button{flex:1}
  .dw-fin{padding:4px 14px 14px}

  /* ---- Karty a formuláře ---- */
  .card-header{flex-wrap:wrap;gap:8px}
  .card-body{padding-left:14px;padding-right:14px}
  .modal{width:100%;max-width:none;margin:0;border-radius:16px 16px 0 0;align-self:flex-end;max-height:94vh}
  .modal-backdrop{align-items:flex-end;padding:0}
  .modal-foot .btn{flex:1;justify-content:center}
  .field input,.field select,.field textarea{font-size:16px} /* iOS jinak při psaní zvětšuje stránku */
  .tabs{overflow-x:auto;flex-wrap:nowrap;-webkit-overflow-scrolling:touch}
  .tabs .tab{flex:none}
  .sec-note{font-size:12.5px}
}
@media (max-width:640px){
  .tbl:not(.tbl-keep) td{overflow-wrap:anywhere}
  .tbl:not(.tbl-keep) td.m-main .cell-name,.tbl:not(.tbl-keep) td.m-main [title]{max-width:none!important}
  /* Buňka se dvěma řádky (e-mail + telefon): popisek vlevo, hodnoty pod sebou vpravo */
  .tbl:not(.tbl-keep) td.m-show{display:grid!important;grid-template-columns:auto minmax(0,1fr);column-gap:14px}
  .tbl:not(.tbl-keep) td.m-show::before{grid-row:1 / span 2}
  .tbl:not(.tbl-keep) td.m-show > *{grid-column:2;text-align:right}
}
@media (max-width:640px){
  /* Řádek schůzky (portál i karta klienta): tlačítka a stav pod názvem */
  .meeting-row{flex-wrap:wrap;gap:8px 12px;padding:12px}
  .meeting-row .meeting-main{flex:1 1 calc(100% - 70px)}
  .meeting-row > .btn,.meeting-row > .chip{margin-left:58px}
  .meeting-row > .btn ~ .btn,.meeting-row > .btn ~ .chip{margin-left:0}
}
@media (max-width:640px){
  /* Navigace nastavení jako vodorovné záložky */
  .settings-nav{flex-direction:row;overflow-x:auto;gap:4px;padding-bottom:4px;margin-bottom:4px;
    -webkit-overflow-scrolling:touch;scrollbar-width:none}
  .settings-nav-item{flex:none;align-items:center;padding:8px 12px;gap:8px;border:1px solid transparent}
  .settings-nav-item .settings-nav-desc{display:none}
  .settings-nav-item .settings-nav-icon{width:26px;height:26px}
  .settings-nav-label{white-space:nowrap;font-size:13px}

  /* Šablony e-mailů: stav a tlačítko pod textem */
  .card > .template-row{grid-template-columns:auto minmax(0,1fr);padding:14px}
  .card > .template-row > :nth-child(n+3){grid-column:2;justify-self:start}

  /* Archiv e-mailů a jiné dlouhé texty v kartách tabulek */
  .mail-archive-subj{white-space:normal;max-width:none}
  .tbl:not(.tbl-keep) td > div,.tbl:not(.tbl-keep) td > a{max-width:100%}
}
/* Vyhledávání chráněné proti nabídce hesel vypadá jako běžné pole */
.page-search input[data-no-autofill][readonly]{background:var(--surface);color:var(--text);cursor:text}
.page-search input[data-no-autofill][readonly]:focus{border-color:var(--blue)}
/* Jméno klienta se nesmí na užší obrazovce smrsknout na iniciály */
@media (min-width:641px){
  .tbl td.cell-client{min-width:210px}
  .tbl td.cell-client .cell-name{white-space:normal}
}
@media (max-width:1400px){ .tbl .hide-lt-wide{display:none} }

/* ---- v130 · Klienti na mobilu: jednoduchý seznam s odkazem na kartu ---- */
.client-mlist{display:none}
@media (max-width:640px){
  .client-desktop{display:none}
  .view-toggle{display:none}
  .client-mlist{display:block;padding:4px 0;overflow:hidden}
  .client-mlist-row{display:flex;align-items:center;gap:12px;padding:11px 14px;color:var(--text);
    border-bottom:1px solid var(--line);min-height:56px}
  .client-mlist-row:last-child{border-bottom:none}
  .client-mlist-row:active{background:var(--bg-2)}
  .client-mlist-row:hover{text-decoration:none}
  .client-mlist-row > svg{flex:none;color:var(--text-3)}
  .client-mlist-main{flex:1;min-width:0;display:flex;flex-direction:column}
  .client-mlist-name{font-size:14.5px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .client-mlist-sub{font-size:12px;color:var(--text-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .client-mlist-row.is-pending .client-mlist-sub{color:var(--warn);font-weight:600}
  .client-mlist-row.is-cancelled{opacity:0.6}
  .client-mlist-row.is-pinned{background:var(--blue-soft);box-shadow:inset 4px 0 0 var(--blue)}
  .client-mlist-pin{flex:none;display:inline-flex;color:var(--blue-2)}
}

/* ---- v131 · Přílohy a odkazy ve zprávách ---- */
.chat-bubble a{color:inherit;text-decoration:underline;overflow-wrap:anywhere}
.msg-form-foot{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-top:12px;flex-wrap:wrap}
.msg-form-foot > .btn{margin-left:auto}
.msg-attach{display:flex;flex-direction:column;gap:6px;min-width:0}
.modal-body .msg-attach{margin-top:4px}
.msg-attach-btn{position:relative;overflow:hidden;align-self:flex-start;cursor:pointer}
.msg-attach-btn input[type=file]{position:absolute;inset:0;opacity:0;cursor:pointer;font-size:0}
.msg-attach-hint{font-size:11.5px;color:var(--text-3)}
.msg-attach-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}
.msg-attach-list li{display:flex;align-items:center;gap:8px;font-size:12.5px;padding:5px 9px;border-radius:8px;
  background:var(--bg-2);min-width:0}
.msg-attach-list li span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.msg-attach-list li small{flex:none;color:var(--text-3)}
.msg-attach-list li.is-bad{background:var(--danger-soft);color:var(--danger)}
.msg-files{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}
.chat-msg.is-mine .msg-files{justify-content:flex-end}
.msg-file-img{display:block;border-radius:12px;overflow:hidden;border:1px solid var(--line);background:var(--bg-2)}
.msg-file-img img{display:block;max-width:220px;max-height:220px;width:auto;height:auto;object-fit:cover}
.msg-file{display:flex;align-items:center;gap:4px;border:1px solid var(--line);border-radius:12px;
  background:var(--surface);max-width:280px;min-width:0}
.msg-file-open{display:flex;align-items:center;gap:10px;padding:8px 4px 8px 10px;color:var(--text);flex:1;min-width:0}
.msg-file-open:hover{text-decoration:none}
.msg-file-icon{flex:none;width:30px;height:30px;border-radius:8px;display:flex;align-items:center;justify-content:center;
  background:var(--danger-soft);color:var(--danger)}
.msg-file-main{display:flex;flex-direction:column;min-width:0}
.msg-file-name{font-size:12.5px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.msg-file-size{font-size:11px;color:var(--text-3)}
.msg-file-dl{flex:none;display:flex;padding:8px 10px;color:var(--text-2)}
@media (max-width:640px){
  .msg-file-img img{max-width:160px;max-height:160px}
  .msg-form-foot > .btn{width:100%;justify-content:center}
}

/* ---- v132 · Sestavení balíčku klientem ---- */
.modal.modal-lg{max-width:680px}
.link-btn{background:none;border:none;padding:0;font:inherit;color:var(--blue-2);font-weight:600;cursor:pointer;text-align:left}
.link-btn:hover{text-decoration:underline}
.pkg-intro{margin:0 0 14px;font-size:13.5px;color:var(--text-2)}
.pkg-rows{border:1px solid var(--line);border-radius:12px;overflow:hidden}
.pkg-row{display:grid;grid-template-columns:minmax(0,1fr) auto 90px;align-items:center;gap:12px;
  padding:11px 14px;border-bottom:1px solid var(--line)}
.pkg-row:last-child{border-bottom:none}
.pkg-name{font-size:14px;font-weight:600}
.pkg-ctrl{display:flex;justify-content:flex-end}
.pkg-fixed{font-size:12.5px;font-weight:700;color:var(--ok);background:var(--ok-soft);padding:3px 10px;border-radius:999px}
.pkg-delta{text-align:right;font-size:13px;font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}
.pkg-delta.is-zero{color:var(--text-3);font-weight:500}
.pkg-delta.is-up{color:var(--warn)}
.pkg-delta.is-down{color:var(--ok)}
.pkg-stepper{display:inline-flex;align-items:center;border:1px solid var(--line-2);border-radius:10px;overflow:hidden}
.pkg-stepper button{width:36px;height:34px;border:none;background:var(--bg-2);font-size:18px;font-weight:700;
  color:var(--text);cursor:pointer}
.pkg-stepper button:disabled{opacity:0.35;cursor:default}
.pkg-stepper span{min-width:38px;text-align:center;font-weight:700;font-size:15px;font-variant-numeric:tabular-nums}
.pkg-seg button{padding:6px 12px}
.pkg-total{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;
  margin:14px 0 8px;padding:14px 16px;border-radius:12px;background:var(--blue-soft)}
.pkg-total-label{font-size:12px;color:var(--text-2)}
.pkg-total-val{font-size:24px;font-weight:800;letter-spacing:-0.01em;font-variant-numeric:tabular-nums}
.pkg-save{font-size:12.5px;font-weight:700;color:var(--ok);background:var(--surface);padding:5px 12px;border-radius:999px}
.pkg-note{margin:0 0 14px;font-size:12px;color:var(--text-3);line-height:1.55}
@media (max-width:640px){
  .pkg-row{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"name delta" "ctrl ctrl";row-gap:8px}
  .pkg-name{grid-area:name}
  .pkg-delta{grid-area:delta}
  .pkg-ctrl{grid-area:ctrl;justify-content:flex-start}
  .pkg-total-val{font-size:21px}
}

/* ---- v133 · Nastavení balíčku: součást, položka ceníku, cena v balíčku ---- */
.pkg-cfg{display:flex;flex-direction:column;gap:8px}
.pkg-cfg-head,.pkg-cfg-row{display:grid;grid-template-columns:minmax(150px,1fr) minmax(0,1.6fr) 140px;gap:12px;align-items:center}
.pkg-cfg-head{font-size:11.5px;font-weight:700;color:var(--text-3);text-transform:uppercase;letter-spacing:0.04em}
.pkg-cfg-name{font-size:13.5px;font-weight:600}
@media (max-width:640px){
  .pkg-cfg-head{display:none}
  .pkg-cfg-row{grid-template-columns:minmax(0,1fr) 110px;padding:10px 0;border-bottom:1px solid var(--line)}
  .pkg-cfg-name{grid-column:1 / -1}
}

/* ---- v133 · Stránka Sestavte si balíček ---- */
.pkg-page{max-width:720px}
.pkg-page .pkg-rows{margin:0}
.pkg-row{grid-template-columns:minmax(0,1fr) auto 120px}
.pkg-price{display:flex;flex-direction:column;align-items:flex-end;font-variant-numeric:tabular-nums;white-space:nowrap}
.pkg-price b{font-size:14.5px}
.pkg-price s{font-size:12px;color:var(--text-3)}
.pkg-price.is-zero b{color:var(--text-3);font-weight:500}
.pkg-total-list{font-size:12.5px;color:var(--text-2);margin-top:2px}
.pkg-actions{display:flex;justify-content:space-between;gap:10px;margin-top:14px;flex-wrap:wrap}
.pkg-rows.is-readonly button:disabled{opacity:1;cursor:default}
.pkg-rows.is-readonly .pkg-stepper button{visibility:hidden}
.pkg-page .card + .card,.pkg-page .pkg-total + .card{margin-top:0}
@media (max-width:640px){
  .pkg-row{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"name price" "ctrl ctrl";row-gap:10px}
  .pkg-price{grid-area:price}
  .pkg-seg{display:flex;width:100%}
  .pkg-seg button{flex:1}
  .pkg-actions .btn{flex:1;justify-content:center}
  .pkg-actions .btn-blue{order:-1;flex-basis:100%}
}

/* ==========================================================================
   Kompetence (v140): knihovna dovedností, profily rolí, matice
   ========================================================================== */
.skl-toolbar{margin-bottom:14px;align-items:center}
.skl-search{position:relative;flex:1;min-width:200px;max-width:340px;color:var(--text-3)}
.skl-search svg{position:absolute;left:11px;top:50%;transform:translateY(-50%)}
.skl-search input{width:100%;padding-left:34px}
.skl-split{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:16px;align-items:start}
.skl-cat{font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-3);
  padding:14px 18px 6px}
.skl-row{display:grid;grid-template-columns:minmax(0,1fr) auto 64px;gap:10px;align-items:center;
  padding:10px 18px;border-top:1px solid var(--line);color:var(--text);text-decoration:none;transition:background .12s}
.skl-row:hover{background:var(--bg-2);text-decoration:none}
.skl-row.active{background:var(--blue-soft)}
.skl-row.active .skl-name{color:var(--blue-2)}
.skl-row[hidden],.skl-group[hidden]{display:none}
.skl-name{font-size:13.5px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.skl-uses{font-size:12px;color:var(--text-2);text-align:right;white-space:nowrap}
.skl-row:not(:has(.skl-uses)){grid-template-columns:minmax(0,1fr) auto}
.skl-nothing{padding:18px;margin:0;font-size:13px}
.skl-panel-wrap{position:sticky;top:calc(var(--topbar-h) + 16px)}
.skl-panel-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
.skl-panel-cat{font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-3)}
.skl-desc{font-size:13px;color:var(--text-2);margin:12px 0 0;line-height:1.55}
.skl-levels{margin-top:14px;display:flex;flex-direction:column;gap:2px}
.skl-level{display:grid;grid-template-columns:26px minmax(0,1fr);gap:10px;padding:9px 0;border-top:1px solid var(--line)}
.skl-level-n{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:7px;
  background:var(--blue-soft);color:var(--blue-2);font-size:12px;font-weight:700}
.skl-level-n.sm{width:20px;height:20px;font-size:11px;border-radius:6px;margin-right:4px}
.skl-level-name{font-size:12.5px;font-weight:700}
.skl-level-text{font-size:12.5px;color:var(--text-2);line-height:1.5;margin-top:1px}
.skl-panel-sec{font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-3);
  margin:14px 0 8px}
.skl-panel-roles{display:flex;flex-wrap:wrap;gap:6px}
.skl-panel-roles a{text-decoration:none;color:var(--text)}
.skl-panel-foot{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px;padding-top:12px;border-top:1px solid var(--line)}
.skl-danger{color:var(--danger)}
.skl-danger:hover{background:var(--danger-soft);color:var(--danger)}
.skl-form-levels{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}
.skl-form-levels label{display:flex;align-items:center}
.skl-radios{display:flex;flex-direction:column;gap:7px;font-size:13px}
.skl-radios label{display:flex;gap:8px;align-items:center;font-weight:500;cursor:pointer}
.skl-import-wrap{max-height:360px;overflow:auto;border:1px solid var(--line);border-radius:var(--radius-sm)}
.tbl.skl-static tbody tr{cursor:default}
.skl-pick{max-height:52vh;overflow:auto;border:1px solid var(--line);border-radius:var(--radius-sm);padding:4px 0}
.skl-pick-cat{display:flex;gap:8px;align-items:center;padding:10px 14px 4px;font-size:10.5px;font-weight:700;
  letter-spacing:.06em;text-transform:uppercase;color:var(--text-3);cursor:pointer}
.skl-pick-cat.plain{cursor:default}
.skl-pick-item{display:flex;gap:9px;align-items:center;padding:7px 14px 7px 36px;font-size:13px;cursor:pointer}
.skl-pick-item:hover{background:var(--bg-2)}
.skl-pick-item.done{color:var(--text-3);cursor:default}
.skl-pick-item span:first-of-type{flex:1;min-width:0}
.skl-link{font-weight:600;color:var(--text)}

/* Profil role */
.skl-role-desc{font-size:13px;color:var(--text-2);margin:10px 0 0;max-width:760px;line-height:1.55}
.skl-detail{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);gap:16px;align-items:start}
.skl-req-head,.skl-req{display:grid;grid-template-columns:minmax(0,1fr) auto 30px;gap:12px;align-items:center}
.skl-req-head{font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-3);
  padding:10px 0 6px}
.skl-req{padding:10px 0;border-top:1px solid var(--line)}
.skl-req-name{display:flex;flex-direction:column;min-width:0;font-size:13.5px;font-weight:600}
.skl-req-cat{font-size:11.5px;font-weight:500;color:var(--text-3)}
.skl-req-form{display:flex;align-items:center;gap:14px}
.skl-dots{display:flex;align-items:center;gap:5px}
.skl-dot{width:18px;height:18px;border-radius:50%;border:1.5px solid var(--line-2);background:var(--surface);
  padding:0;cursor:pointer;transition:background .12s,border-color .12s}
.skl-dot:hover{border-color:var(--blue)}
.skl-dot.on{background:var(--blue);border-color:var(--blue)}
.skl-dots-label{font-size:12px;color:var(--text-2);width:86px;margin-left:4px}
.skl-weight{height:30px;padding:0 26px 0 10px;font-size:12px;font-weight:600;border-radius:999px;width:112px}
.skl-weight.danger{background-color:var(--danger-soft);color:var(--danger);border-color:transparent}
.skl-weight.warn{background-color:var(--warn-soft);color:var(--warn);border-color:transparent}
.skl-people{display:flex;flex-direction:column}
.skl-person{display:flex;gap:10px;align-items:center;padding:8px 0;border-top:1px solid var(--line)}
.person-avatar.sm{width:32px;height:32px;font-size:11.5px}
.skl-person-main{flex:1;min-width:0;display:flex;flex-direction:column;color:var(--text);text-decoration:none}
.skl-person-main:hover{text-decoration:none}
.skl-person-name{font-size:13px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.skl-person-sub{font-size:11.5px;color:var(--text-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.skl-danger-zone{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}

/* Matice */
.skl-legend{display:flex;gap:16px;flex-wrap:wrap;font-size:12px;color:var(--text-2);align-items:center}
.skl-legend span{display:inline-flex;gap:6px;align-items:center}
.skl-matrix-wrap{overflow-x:auto}
.skl-matrix{border-collapse:separate;border-spacing:0;width:100%;font-size:13px}
.skl-matrix th,.skl-matrix td{padding:6px 8px;border-bottom:1px solid var(--line);text-align:center}
.skl-matrix thead th{font-size:12px;font-weight:700;color:var(--text-2);background:var(--bg);vertical-align:bottom;
  min-width:96px;max-width:140px;padding:12px 8px}
.skl-matrix thead th a{color:inherit}
.skl-matrix .skl-mx-skill{text-align:left;position:sticky;left:0;background:var(--surface);z-index:1;
  min-width:190px;max-width:260px;font-weight:600;padding-left:18px}
.skl-matrix thead .skl-mx-skill{background:var(--bg);z-index:2}
.skl-mx-cat td{text-align:left;font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;
  color:var(--text-3);padding:14px 18px 5px;background:var(--surface);position:sticky;left:0}
.skl-mx-btn{width:36px;height:32px;border:none;background:none;border-radius:8px;cursor:pointer;
  display:inline-flex;align-items:center;justify-content:center}
.skl-mx-btn:hover{background:var(--bg-2)}
.skl-cell{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:7px;
  font-style:normal;font-size:12px;font-weight:700}
.skl-cell.key{background:var(--blue);color:#fff}
.skl-cell.important{background:var(--blue-soft);color:var(--blue-2)}
.skl-cell.optional{background:var(--bg-2);color:var(--text-2)}
.skl-cell-empty{color:var(--text-3)}
.skl-level-pick{flex-direction:row;flex-wrap:wrap;gap:6px}
.field .skl-level-pick label{display:inline-flex;gap:6px;align-items:center;white-space:nowrap;margin:0;
  border:1px solid var(--line-2);border-radius:999px;padding:5px 12px;font-size:12.5px;font-weight:600;color:var(--text)}

@media (max-width:900px){
  .skl-split,.skl-detail{grid-template-columns:1fr}
  .skl-panel-wrap{position:static}
  .skl-form-levels{grid-template-columns:1fr}
  .skl-req{grid-template-columns:minmax(0,1fr) 30px}
  .skl-req-form{grid-column:1 / -1;grid-row:2;flex-wrap:wrap;gap:10px}
  .skl-req-head{display:none}
  .skl-dots-label{width:auto}
}

/* Vzorové role (v141) */
.skl-empty-actions{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin-top:14px}
.skl-pick-role{align-items:flex-start}
.skl-pick-role input{margin-top:3px}
.skl-pick-main{display:flex;flex-direction:column;gap:1px;min-width:0;flex:1}
.skl-pick-name{font-weight:600}
.skl-pick-sub{font-size:11.5px;font-weight:500;color:var(--text-3);line-height:1.45}
.skl-pick-item.done .skl-pick-name{color:var(--text-3)}
.tbl .skl-tbl-cat td{font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;
  color:var(--text-3);padding:14px 12px 5px;background:var(--surface);cursor:default}
.tbl tbody tr.skl-tbl-cat:hover{background:var(--surface)}

/* Faktura: součet i pod zakoupenými službami (v142) */
.inv-svc-total{display:flex;justify-content:flex-end;align-items:baseline;gap:8px;margin-top:14px;padding-top:12px;
  border-top:1px solid var(--line);font-size:14px;font-weight:600}
.inv-svc-total .text-num{font-size:18px;font-weight:700}

/* ==========================================================================
   Kompetence (v142): zaměstnanci, hodnocení, gap
   ========================================================================== */
.skl-stats .stat-value{font-size:24px}
.skl-stat-of{font-size:15px;color:var(--text-3);font-weight:600}
.skl-chk{width:34px}
.skl-people-tbl tbody tr{cursor:default}
.skl-role-select{height:32px;font-size:12.5px;padding:0 26px 0 10px;max-width:200px}
.skl-match{display:flex;align-items:center;gap:8px}
.skl-match-bar{display:inline-block;width:90px;height:6px;border-radius:99px;background:var(--bg-2);overflow:hidden}
.skl-match-bar i{display:block;height:100%;background:var(--ok);border-radius:99px}
.skl-match.unval .skl-match-bar i{background:var(--line-2)}
.skl-match-bar.gap i{background:var(--warn)}
.skl-match-num{font-size:12.5px;font-weight:700;font-variant-numeric:tabular-nums}
.skl-bulk{position:sticky;bottom:12px;z-index:5;margin-top:12px;display:flex;gap:16px;align-items:center;flex-wrap:wrap;
  background:var(--navy);color:#fff;border-radius:var(--radius);padding:10px 16px;box-shadow:var(--shadow-md);font-size:13px}
.skl-bulk[hidden]{display:none}
.skl-bulk label{display:flex;gap:6px;align-items:center;cursor:pointer}
.skl-bulk .btn{margin-left:auto}
.skl-g{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:7px;
  font-style:normal;font-size:12px;font-weight:700}
.skl-legend .skl-g{width:14px;height:14px;border-radius:4px}
.skl-g.g2{background:var(--danger-soft);color:var(--danger)}
.skl-g.g1{background:var(--warn-soft);color:var(--warn)}
.skl-g.ok{background:var(--ok-soft);color:var(--ok)}
.skl-g.over{background:var(--blue-soft);color:var(--blue-2)}
.skl-g.plain{background:var(--bg-2);color:var(--text-2)}
.skl-g.unval{font-style:italic;outline:1.5px dashed currentColor;outline-offset:-3px}
.skl-gap-req td{background:var(--bg);font-size:12px;color:var(--text-2);font-weight:600}
.skl-gapmap thead th{writing-mode:horizontal-tb;font-size:11.5px;line-height:1.3}
.skl-top-gaps{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px 18px}
.skl-top-gap{display:flex;flex-direction:column;gap:4px;padding:8px 0;border-top:1px solid var(--line)}
.skl-top-gap-name{font-size:13px;font-weight:600;display:flex;gap:6px;align-items:center;flex-wrap:wrap}

/* Detail zaměstnance */
.skl-person-role{display:flex;align-items:center;gap:8px}
.skl-person-role label{font-size:12.5px;font-weight:600;color:var(--text-2)}
.skl-person-role select{min-width:200px}
.skl-flow-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;flex-wrap:wrap}
.skl-flow-head p{margin:6px 0 0;font-size:13px}
.skl-flow-actions{display:flex;gap:8px;flex-wrap:wrap}
.skl-kpis{display:flex;gap:18px}
.skl-kpis div{display:flex;flex-direction:column;align-items:flex-end;font-size:11.5px;color:var(--text-3)}
.skl-kpis span{font-size:20px;font-weight:700;color:var(--text);font-variant-numeric:tabular-nums}
.skl-kpis .bad span{color:var(--danger)}
.skl-res-head,.skl-res{display:grid;grid-template-columns:minmax(0,1fr) 80px 100px 80px 60px;gap:10px;align-items:center}
.skl-res-head.val,.skl-res.val{grid-template-columns:minmax(0,1fr) 80px 100px minmax(0,1.2fr)}
.skl-res-head{font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-3);padding:10px 0 6px}
.skl-res{padding:10px 0;border-top:1px solid var(--line)}
.skl-res > div:not(.skl-req-name){text-align:left}
.skl-res-note{font-size:12px;font-weight:400;color:var(--text-2);margin-top:4px;line-height:1.45}
.skl-gap-badge{display:inline-flex;align-items:center;justify-content:center;min-width:34px;height:24px;padding:0 8px;
  border-radius:99px;font-size:12px;font-weight:700}
.skl-gap-badge.g2{background:var(--danger-soft);color:var(--danger)}
.skl-gap-badge.g1{background:var(--warn-soft);color:var(--warn)}
.skl-gap-badge.ok{background:var(--ok-soft);color:var(--ok)}
.skl-gap-badge.over{background:var(--blue-soft);color:var(--blue-2)}
.skl-val-pick{display:flex;flex-direction:column;gap:6px}
.skl-val-opts{display:flex;gap:6px}
.skl-val-opts label{cursor:pointer}
.skl-val-opts input{position:absolute;opacity:0;pointer-events:none}
.skl-val-opts span{display:inline-flex;align-items:center;justify-content:center;width:34px;height:32px;border-radius:8px;
  border:1.5px solid var(--line-2);font-weight:700;font-size:13px;transition:all .12s}
.skl-val-opts label:hover span{border-color:var(--blue)}
.skl-val-opts input:checked + span{background:var(--blue);border-color:var(--blue);color:#fff}
.skl-val-opts input:focus-visible + span{outline:2px solid var(--blue);outline-offset:2px}
.skl-val-pick input[type=text]{height:32px;font-size:12.5px}
.skl-hist{display:grid;grid-template-columns:110px minmax(0,1fr) auto;gap:10px;padding:8px 10px;border-radius:8px;
  color:var(--text);font-size:13px;text-decoration:none}
.skl-hist:hover{background:var(--bg-2);text-decoration:none}
.skl-hist.active{background:var(--blue-soft)}

/* Veřejný formulář hodnocení */
.skf-page{display:flex;justify-content:center;min-height:100vh;background:var(--bg);padding:20px}
.skf-card{max-width:720px;width:100%}
.skf-skill{border:0;border-top:1px solid var(--line);margin:0;padding:18px 0 4px}
.skf-skill legend{font-size:15px;font-weight:700;padding:0;float:left;width:100%;margin-bottom:4px}
.skf-skill.missing legend{color:var(--danger)}
.skf-desc{clear:both;font-size:13px;color:var(--text-2);margin:0 0 10px}
.skf-opts{clear:both;display:grid;grid-template-columns:1fr 1fr;gap:8px}
.skf-opt{cursor:pointer}
.skf-opt input{position:absolute;opacity:0;pointer-events:none}
.skf-opt-box{display:flex;flex-direction:column;gap:3px;height:100%;border:1.5px solid var(--line-2);border-radius:10px;
  padding:10px 12px;transition:border-color .12s,background .12s}
.skf-opt:hover .skf-opt-box{border-color:var(--blue)}
.skf-opt input:checked + .skf-opt-box{border-color:var(--blue);background:var(--blue-soft)}
.skf-opt input:focus-visible + .skf-opt-box{outline:2px solid var(--blue);outline-offset:2px}
.skf-opt-head{font-size:13px;font-weight:600;display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.skf-opt-head b{display:inline-flex;width:22px;height:22px;border-radius:6px;background:var(--blue-soft);color:var(--blue-2);
  align-items:center;justify-content:center;font-size:12px}
.skf-opt-text{font-size:12.5px;color:var(--text-2);line-height:1.45}
.skf-note{margin-top:8px;height:34px;font-size:12.5px}
.skf-done{width:56px;height:56px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 14px;
  background:var(--ok-soft);color:var(--ok)}
.skf-foot{text-align:center;font-size:12px;color:var(--text-3);margin-top:14px}

@media (max-width:900px){
  .skl-res-head{display:none}
  .skl-res{grid-template-columns:minmax(0,1fr) auto auto auto auto;gap:8px}
  .skl-res.val{grid-template-columns:1fr 1fr}
  .skl-res.val .skl-req-name,.skl-res.val .skl-val-pick{grid-column:1 / -1}
  .skl-person-role{width:100%}
  .skl-person-role select{flex:1;min-width:0}
  .skf-opts{grid-template-columns:1fr}
  .skl-match-bar{width:60px}
}
.skl-radios input[type=radio],.skl-bulk input[type=radio]{width:auto;flex:none;margin:0}
.skl-radios label{white-space:nowrap}
.skl-bulk label{color:#fff;white-space:nowrap;font-weight:500;margin:0;font-size:13px}
.skf-opt-text{font-weight:400}
.skl-res-head,.skl-res{grid-template-columns:minmax(0,1fr) 84px 120px 84px 60px}
.skl-res-head.val,.skl-res.val{grid-template-columns:minmax(0,1fr) 84px 120px minmax(0,1.2fr)}
@media (max-width:900px){
  .skl-res{grid-template-columns:minmax(0,1fr) auto auto auto auto}
  .skl-res.val{grid-template-columns:1fr 1fr}
}
.skl-toolbar select{max-width:280px}
.svc-invoices .file-row:has(.svc-pay){flex-wrap:wrap}
.svc-invoices .svc-pay{flex-basis:100%;justify-content:center;margin-top:8px;height:32px}

/* Benefity: výběr poskytovatele (v144) */
.pay-benefit-opts{display:flex;gap:8px;flex-wrap:wrap}
.pay-benefit-opts label{display:inline-flex;align-items:center;gap:8px;margin:0;padding:8px 14px;border:1px solid var(--line-2);
  border-radius:10px;font-size:13px;font-weight:600;color:var(--text);cursor:pointer}
.pay-benefit-opts input{width:auto;margin:0}
.pay-benefit-opts label:has(input:checked){border-color:var(--blue);background:var(--blue-soft)}

/* Objednávka služeb: jedna služba za plnou cenu, potvrzení (v144) */
.pkg-total.is-single{background:var(--surface);border:1px solid var(--line)}
.pkg-total.is-empty{background:var(--surface);border:1px dashed var(--line-2)}
.pkg-hint{font-size:13px;color:var(--text-2);margin-top:4px;line-height:1.5}
.pkg-total [data-pkg-add]{flex:none}
.pkg-sum{display:flex;flex-direction:column}
.pkg-sum-row{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid var(--line);font-size:14px}
.pkg-sum-row s{color:var(--text-3);font-size:12px;margin-right:6px}
.pkg-sum-total{display:flex;justify-content:space-between;align-items:baseline;padding-top:10px;font-weight:600}
.pkg-sum-total b{font-size:20px}

/* Testy jako dlaždice (v145) */
.pkg-tests{margin-top:16px}
.pkg-tests-label{font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-3);margin:0 0 8px 2px}
.pkg-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px}
.pkg-tile{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:6px;text-align:left;height:auto;
  padding:14px 14px 12px;border:1.5px solid var(--line-2);border-radius:12px;background:var(--surface);color:var(--text);
  cursor:pointer;font:inherit;transition:border-color .12s,background .12s}
.pkg-tile:hover:not(:disabled){border-color:var(--blue)}
.pkg-tile:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
.pkg-tile.on{border-color:var(--blue);background:var(--blue-soft)}
.pkg-tile-check{position:absolute;top:12px;right:12px;width:22px;height:22px;border-radius:50%;border:1.5px solid var(--line-2);
  display:flex;align-items:center;justify-content:center;color:transparent;background:var(--surface)}
.pkg-tile.on .pkg-tile-check{background:var(--blue);border-color:var(--blue);color:#fff}
.pkg-tile-name{font-size:14.5px;font-weight:700;padding-right:28px}
.pkg-tile-desc{font-size:12.5px;color:var(--text-2);line-height:1.45;flex:1}
.pkg-tile-prices{display:flex;flex-direction:column;gap:2px;width:100%;margin-top:4px;padding-top:8px;border-top:1px solid var(--line);
  font-size:12px;color:var(--text-3)}
.pkg-tile-prices span{display:flex;justify-content:space-between;gap:8px}
.pkg-tile-prices b{font-weight:600;color:var(--text-2)}
.pkg-tile-prices .is-current{color:var(--text)}
.pkg-tile-prices .is-current b{color:var(--text);font-weight:700}
.pkg-tests.is-readonly .pkg-tile{cursor:default}
.pkg-tests.is-readonly .pkg-tile:not(.on){display:none}
.pkg-add{display:flex;gap:8px;flex-wrap:wrap;width:100%}
.pkg-add .btn{white-space:nowrap}
.pkg-tile-prices b{font-variant-numeric:tabular-nums}
.page-header > .back-link,.page-header > div > .back-link{margin-bottom:10px}

/* Nastavení → Aktivita uživatelů (v148) */
.akt-filters{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.akt-filters select,.akt-filters input{width:auto;height:34px;font-size:12.5px;padding-top:0;padding-bottom:0}
.akt-filters input[type=search]{min-width:200px}
.akt-tbl tbody tr{cursor:default}
.akt-detail{font-size:11.5px;color:var(--text-2);max-width:280px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.akt-pager{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:12px 18px;border-top:1px solid var(--line);font-size:12.5px}
@media (max-width:900px){.akt-filters select,.akt-filters input{flex:1 1 140px}}

/* ==========================================================================
   Kariérní portfolio (v151)
   ========================================================================== */
.pf-share{margin-bottom:16px}
.pf-share-main{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap}
.pf-share-title{display:flex;align-items:center;gap:7px;font-size:14px;font-weight:700}
.pf-share-link{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:12px}
.pf-share-link input{flex:1 1 260px;height:34px;font-size:13px}
.pf-list{display:flex;flex-direction:column;gap:10px}
.pf-item .card-body{display:grid;grid-template-columns:72px minmax(0,1fr) auto;gap:14px;align-items:start}
.pf-thumb{width:72px;height:54px;border-radius:8px;background:var(--blue-soft);color:var(--blue-2);
  display:flex;align-items:center;justify-content:center;overflow:hidden}
.pf-thumb img{width:100%;height:100%;object-fit:cover}
.pf-name{font-size:15px;font-weight:700}
.pf-desc{font-size:13px;color:var(--text-2);line-height:1.5;margin-top:3px}
.pf-tags{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px}
.pf-src{display:flex;flex-wrap:wrap;gap:4px 14px;margin-top:8px;font-size:12px;color:var(--text-3)}
.pf-src span,.pf-src a{display:inline-flex;align-items:center;gap:5px}
.pf-acts{display:flex;gap:2px;align-items:center}
.pf-add{display:flex;align-items:center;justify-content:center;gap:7px;padding:14px;border:1.5px dashed var(--line-2);
  border-radius:var(--radius);background:transparent;color:var(--text-2);font:inherit;font-size:13px;font-weight:600;cursor:pointer}
.pf-add:hover{border-color:var(--blue);color:var(--blue-2)}
.pf-pick{display:flex;flex-direction:column;gap:5px;max-height:220px;overflow:auto}
.pf-pick label{display:flex;align-items:center;gap:8px;margin:0;padding:8px 10px;border:1px solid var(--line-2);border-radius:9px;
  font-size:13px;font-weight:500;color:var(--text);cursor:pointer}
.pf-pick label:has(input:checked){border-color:var(--blue);background:var(--blue-soft)}
.pf-pick input{width:auto;margin:0;flex:none}
.pf-pick span:first-of-type{flex:1;min-width:0}
.pf-photo-del{display:flex;align-items:center;gap:6px;margin-top:6px;font-size:12.5px;font-weight:500}
.pf-photo-del input{width:auto}
.pf-tagbox{display:flex;flex-wrap:wrap;gap:5px;align-items:center;min-height:40px;padding:5px 7px;border:1px solid var(--line-2);
  border-radius:10px;background:var(--surface);cursor:text}
.pf-tagbox input{flex:1;min-width:150px;border:0;height:28px;padding:0 4px;background:transparent;box-shadow:none}
.pf-tagbox input:focus{outline:none}
.pf-tag{display:inline-flex;align-items:center;gap:4px;padding:3px 4px 3px 10px;border-radius:99px;background:var(--blue-soft);
  color:var(--blue-2);font-size:12.5px;font-weight:600}
.pf-tag button{border:0;background:none;color:inherit;width:20px;height:20px;padding:0;cursor:pointer;font-size:15px;line-height:1;border-radius:50%}
.pf-tag button:hover{background:rgba(0,0,0,.06)}
@media (max-width:700px){
  .pf-item .card-body{grid-template-columns:56px minmax(0,1fr)}
  .pf-thumb{width:56px;height:42px}
  .pf-acts{grid-column:1 / -1;justify-content:flex-end}
}

/* Dokument portfolia (veřejná stránka a karta klienta), rozvržení jako PDF */
.pfd-page{background:var(--bg);margin:0;padding:24px 14px}
.pfd-paper{max-width:820px;margin:0 auto;background:#fff;color:#1D2A36;border-radius:14px;box-shadow:var(--shadow-md);padding:44px 48px}
.pfd-paper.inset{box-shadow:none;border:1px solid var(--line);padding:32px 36px;max-width:none}
.pfd-foot{text-align:center;font-size:12px;color:var(--text-3);margin:16px 0 0}
.pfd{--pf-dark:#0F2D48;--pf-accent:#3294D5;font-size:14px;line-height:1.55}
.pfd-head{display:flex;gap:18px;align-items:center;padding-bottom:16px;border-bottom:2px solid var(--pf-dark);margin-bottom:22px}
.pfd-avatar{width:76px;height:76px;border-radius:50%;object-fit:cover;flex:none}
.pfd-name{font-size:28px;font-weight:800;color:var(--pf-dark);margin:0;line-height:1.15;letter-spacing:-0.01em}
.pfd-sub{font-size:14px;font-weight:700;color:var(--pf-accent);margin-top:3px}
.pfd-contacts{font-size:12.5px;color:#6B7C8C;margin-top:5px}
.pfd-sec{font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--pf-accent);margin:0 0 10px}
.pfd section{margin-bottom:22px}
.pfd-tags{display:flex;flex-wrap:wrap;gap:6px}
.pfd-tags span{font-size:12.5px;padding:3px 10px;border-radius:99px;background:#E7F1FA;color:var(--pf-dark);font-weight:600}
.pfd-tags.sm{margin-top:8px}
.pfd-tags.sm span{font-size:11.5px;padding:2px 9px;color:#1F6FA8}
.pfd-item{display:grid;grid-template-columns:170px minmax(0,1fr);gap:20px;padding:16px 0;border-top:1px solid #E2E9F0}
.pfd.has-photos .pfd-item{grid-template-columns:170px minmax(0,1fr) 128px}
.pfd-title{font-size:15px;font-weight:800;color:var(--pf-dark);margin:0}
.pfd-body p{margin:0;font-size:13.5px}
.pfd-src{display:flex;flex-wrap:wrap;gap:3px 14px;margin-top:8px;font-size:12px;color:#6B7C8C}
.pfd-src a{color:var(--pf-accent)}
.pfd-photo img{width:128px;aspect-ratio:4/3;object-fit:cover;border-radius:8px;display:block}
.pfd-empty{color:#6B7C8C}
@media (max-width:700px){
  .pfd-paper{padding:26px 20px;border-radius:12px}
  .pfd-head{align-items:flex-start}
  .pfd-avatar{width:58px;height:58px}
  .pfd-name{font-size:23px}
  .pfd-item,.pfd.has-photos .pfd-item{grid-template-columns:1fr;gap:8px}
  .pfd-photo img{width:100%;max-width:340px}
  .pfd-photo:empty{display:none}
}

/* Nastavení → Dostupnost pro rezervace (v152) */
.av-h{font-size:13.5px;font-weight:700;margin:0 0 6px}
.av-switch{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600;white-space:nowrap}
.av-switch input{width:auto;margin:0}
.field-row.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.av-week{display:flex;flex-direction:column}
.av-day{display:grid;grid-template-columns:130px 210px minmax(0,1fr);gap:12px;align-items:center;padding:9px 0;border-top:1px solid var(--line)}
.av-day-name{display:flex;align-items:center;gap:8px;margin:0;font-size:13.5px;font-weight:700}
.av-day-name input{width:auto;margin:0}
.av-day-time{display:flex;align-items:center;gap:6px;font-size:12.5px;color:var(--text-2)}
.av-day input[type=time]{width:92px;height:32px;font-size:12.5px;padding:0 6px}
.av-day.off .av-day-time,.av-day.off .av-breaks{opacity:.35;pointer-events:none}
.av-breaks{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.av-break{display:inline-flex;align-items:center;gap:4px;padding:3px 4px 3px 6px;border-radius:9px;background:var(--warn-soft);font-size:12px;color:var(--warn)}
.av-break input[type=time]{width:84px;height:28px;background:var(--surface)}
.av-x{border:0;background:none;color:inherit;font-size:16px;width:22px;height:22px;padding:0;cursor:pointer;border-radius:50%}
.av-add{display:inline-flex;align-items:center;gap:4px;border:1px dashed var(--line-2);background:none;border-radius:8px;height:28px;
  padding:0 9px;font:inherit;font-size:12px;font-weight:600;color:var(--blue-2);cursor:pointer}
@media (max-width:900px){.av-day{grid-template-columns:1fr}.field-row.three{grid-template-columns:1fr}}

/* Objednat konzultaci (v152) */
.bk-meta{display:flex;align-items:center;gap:6px;font-size:12.5px;color:var(--ok);font-weight:600;margin-bottom:10px}
.bk-strip{display:flex;gap:8px;overflow-x:auto;padding:2px 2px 8px;scrollbar-width:thin}
.bk-day{flex:none;display:flex;flex-direction:column;align-items:center;width:58px;padding:7px 0;border:1.5px solid var(--line-2);
  border-radius:12px;color:var(--text);text-decoration:none;line-height:1.2}
.bk-day span{font-size:11.5px;color:var(--text-2);font-weight:600}
.bk-day b{font-size:19px;font-weight:800}
.bk-day small{font-size:10.5px;color:var(--text-3)}
.bk-day:hover{border-color:var(--blue);text-decoration:none}
.bk-day.on{border-color:var(--blue);background:var(--blue-soft)}
.bk-day.on b{color:var(--blue-2)}
.bk-dayname{font-size:15px;font-weight:700;margin:12px 0 10px}
.bk-slots{display:grid;grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:8px}
.bk-slot{height:40px;border:1.5px solid var(--line-2);border-radius:10px;background:var(--surface);font:inherit;font-size:14px;
  font-weight:700;color:var(--text);cursor:pointer}
.bk-slot:hover{border-color:var(--blue);color:var(--blue-2)}
.bk-slot.on{border-color:var(--blue);background:var(--blue);color:#fff}
.bk-confirm{margin-top:18px;padding-top:16px;border-top:1px solid var(--line);animation:bkIn .18s ease-out}
.bk-confirm[hidden]{display:none}
.bk-actions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap}
@media (max-width:560px){.bk-actions{flex-direction:column-reverse}.bk-actions .btn{width:100%;justify-content:center}}
@keyframes bkIn{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.bk-confirm{animation:none}}
.bk-when{display:flex;align-items:center;gap:8px;padding:12px 14px;border-radius:10px;background:var(--blue-soft);
  color:var(--blue-2);font-weight:700}
.bk-pending{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:8px 0;border-top:1px solid var(--line);font-size:13.5px}
.bk-pending:first-of-type{border-top:0}
.bk-pending span{display:inline-flex;align-items:center;gap:7px;font-weight:600}
.bk-proposal{background:var(--warn-soft);border-radius:10px;padding-left:8px;padding-right:8px;margin:6px 0}
.bk-dash{display:flex;align-items:center;gap:8px;padding:10px 12px;margin:6px 0 4px;border-radius:10px;background:var(--warn-soft);color:var(--warn);font-size:13px}
.bk-dash b{color:var(--text)}

/* ---- Webináře a akce (v156) ---- */
.ev-list-item{display:flex;gap:12px;align-items:flex-start}
.ev-list-thumb{flex:none;width:72px;height:44px;border-radius:8px;overflow:hidden;background:var(--bg-2);display:flex;
  align-items:center;justify-content:center;color:var(--text-3)}
.ev-list-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.ev-img-pick{position:relative;display:block;aspect-ratio:16/9;border-radius:12px;overflow:hidden;cursor:pointer;
  border:1.5px dashed var(--line-2);background:var(--bg);transition:border-color .15s}
.ev-img-pick:hover{border-color:var(--blue)}
.ev-img-pick img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ev-img-pick input{position:absolute;inset:0;opacity:0;cursor:pointer}
.ev-img-empty{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;
  color:var(--text-2);text-align:center;padding:10px;font-size:13px}
.ev-img-empty small{color:var(--text-3);font-size:11.5px}
.ev-img-pick.has-img .ev-img-empty{opacity:0;background:rgba(15,23,42,.55);color:#fff;transition:opacity .15s}
.ev-img-pick.has-img .ev-img-empty small{color:rgba(255,255,255,.8)}
.ev-img-pick.has-img:hover .ev-img-empty{opacity:1}
.ev-team{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.ev-team-item{display:flex;flex-direction:column;gap:8px;min-width:0}
.ev-team-head{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:14.5px}
.ev-team-desc{margin:0;font-size:12.5px;line-height:1.55}
.ev-team-access{display:flex;flex-direction:column;gap:6px;padding:10px 12px;border-radius:10px;background:var(--bg-2)}
.ev-team-field{display:flex;align-items:center;gap:10px;min-width:0}
.ev-team-field .upcase{width:44px;flex:none}
.ev-team-url{flex:1;min-width:0;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ev-team-pin{flex:1;font-size:17px;font-weight:700;letter-spacing:.18em}
.ev-team-acts{display:flex;gap:8px;flex-wrap:wrap}
.ev-team-acts form{margin:0}
@media (max-width:760px){.ev-team{grid-template-columns:1fr}}
.ev-tile-row{display:flex;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line)}
.ev-tile-row:last-child{border-bottom:0}
.ev-tile-date{flex:none;width:46px;text-align:center;border-radius:10px;background:var(--bg-2);padding:6px 0;line-height:1.1}
.ev-tile-date .m{display:block;font-size:10.5px;font-weight:700;color:var(--text-3);text-transform:uppercase;letter-spacing:.05em}
.ev-tile-date .d{display:block;font-size:18px;font-weight:800;color:var(--text)}
.ev-tile-main{flex:1;min-width:0}
.ev-tile-title{font-weight:700;font-size:13.5px;line-height:1.35}
.ev-tile-meta{font-size:12px;color:var(--text-2);margin-top:2px}
.ev-tpl{border:1px solid var(--line);border-radius:12px;padding:0 14px;background:var(--bg)}
.ev-tpl summary{cursor:pointer;padding:12px 0;font-size:13px;font-weight:600;color:var(--text-2)}
.ev-tpl[open]{padding-bottom:6px}
.ev-tpl-item{padding:12px 0;border-top:1px solid var(--line)}
.ev-tpl-item textarea{font-size:13px;min-height:150px}
/* Slovo ŽIVĚ v CRM: jen červený text (v168) */
.zive-word{color:#E63946 !important;font-weight:800;white-space:nowrap}


/* Webináře a akce v163: smazání, e-mail účastníkům */
.ev-sep{border:0;border-top:1px solid var(--line);margin:18px 0}
.ev-delete-row{display:flex;gap:16px;align-items:center;justify-content:space-between;flex-wrap:wrap}
.ev-delete-row p{flex:1 1 320px}
.btn-danger-text{color:var(--danger)}
.btn-danger-text:hover{color:var(--danger);border-color:var(--danger)}
.field-hint{font-size:12.5px;color:var(--text-3,#7a8699);margin:6px 0 0;line-height:1.5}

/* Obrázek úvodu webu ŽIVĚ v okně (v165) */
.modal .ev-img-pick{max-width:360px;aspect-ratio:16/10}

/* Nová kampaň (v170): newsletter z víc seznamů × servisní sdělení klientům */
.camp-typ{display:inline-flex;align-items:center;gap:6px;padding:6px 12px}
.camp-typ input{position:absolute;opacity:0;pointer-events:none}
.camp-typ:has(input:checked){background:var(--surface);color:var(--text);box-shadow:var(--shadow-sm)}
.camp-typ:has(input:focus-visible){outline:2px solid var(--blue);outline-offset:1px}
.camp-servis{display:none}
.camp-aud:has(input[name="typ"][value="servis"]:checked) .camp-servis{display:block}
.camp-aud:has(input[name="typ"][value="servis"]:checked) .camp-nl{display:none}

/* Návrhy termínu od klientů (v174): oranžově, dokud je nepotvrdíte */
.nav-badge.warn{background:#E8792A;color:#fff}
.tabbar-dot.warn{background:#E8792A}
.dw-pending{margin-left:6px;padding:2px 9px;border-radius:999px;background:var(--warn-soft);color:var(--warn);font-size:11.5px;font-weight:800}
.dw-meet.is-proposal{background:var(--warn-soft);border-color:rgba(201,135,54,.35);color:var(--text);text-decoration:none}
.dw-meet.is-proposal:hover{background:var(--warn-soft);border-color:var(--warn)}
.dw-meet.is-proposal .dw-date .w{color:var(--warn)}
.dw-badge.is-warn{background:var(--warn)}
.meet-proposals{margin-bottom:16px;border-color:rgba(201,135,54,.35)}
.meet-proposals .card-header{background:var(--warn-soft)}
.meet-card.is-proposal{border-color:rgba(201,135,54,.45);background:var(--warn-soft)}
.meet-card.is-proposal .meet-card-date{border-color:rgba(201,135,54,.45)}
.meet-card-note{margin-top:6px;font-size:13px;color:var(--text-2);white-space:pre-wrap}

/* ---- v175: import životopisu z XML ---- */
.cv-xml-opt{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;border:1px solid var(--line,#E3E8EF);border-radius:10px;margin-top:8px;cursor:pointer;font-weight:400}
.cv-xml-opt input[type=radio]{width:auto;min-width:0;flex:none;margin:3px 0 0;padding:0;height:auto}
.cv-xml-opt b{display:block;font-size:14px}
.cv-xml-opt small{display:block;color:var(--text-2,#5B6B80);font-size:12.5px;margin-top:2px}
.cv-xml-opt:has(input:checked){border-color:var(--blue,#2E8FD8);background:var(--blue-soft,#EEF6FD)}
.cv-xml-sub{margin:8px 0 2px 34px}
.cv-xml-sub[hidden]{display:none}
.cv-xml-sub input,.cv-xml-sub select{width:100%}
