/* Farby a typografia MURPLE nad šablónou Velzon. Jediné miesto pre vizuálnu identitu. */
:root, [data-bs-theme=light] {
  --m-blue: #26A4DD;
  --m-blue-rgb: 38, 164, 221;
  --m-navy: #243E83;
  --m-navy-rgb: 36, 62, 131;
  --m-ink: #231B10;
  --m-light: #E8F6FF;
  --m-dot: var(--m-blue);
  --ms-hover: #F2F8FD;
  --vz-primary: var(--m-blue);
  --vz-primary-rgb: var(--m-blue-rgb);
  --vz-primary-text-emphasis: #1a7aa6;
  --vz-primary-bg-subtle: #e2f3fb;
  --vz-primary-border-subtle: #a8dbf1;
  --vz-link-color: #1b86b8;
  --vz-link-color-rgb: 27, 134, 184;
  --vz-link-hover-color: var(--m-navy);
  --vz-font-sans-serif: Arial, Helvetica, sans-serif;
  --vz-body-font-family: Arial, Helvetica, sans-serif;
  --vz-body-color: var(--m-ink);
  --vz-heading-color: var(--m-navy);
}
:root[data-sidebar=dark] {
  --vz-vertical-menu-bg: var(--m-navy);
  --vz-vertical-menu-border: var(--m-navy);
  --vz-vertical-menu-item-color: #c9d6f2;
  --vz-vertical-menu-item-hover-color: #fff;
  --vz-vertical-menu-item-active-color: #fff;
  --vz-vertical-menu-item-active-bg: rgba(255, 255, 255, 0.14);
  --vz-vertical-menu-title-color: #8fa5d8;
}
body { font-family: Arial, Helvetica, sans-serif; }
.btn-primary {
  --vz-btn-bg: var(--m-blue); --vz-btn-border-color: var(--m-blue);
  --vz-btn-hover-bg: #1f8cbd; --vz-btn-hover-border-color: #1f8cbd;
  --vz-btn-active-bg: #1b7ca8; --vz-btn-active-border-color: #1b7ca8;
  --vz-btn-disabled-bg: var(--m-blue); --vz-btn-disabled-border-color: var(--m-blue);
}
.btn-soft-primary { --vz-btn-color: #1b7ca8; --vz-btn-bg: rgba(var(--m-blue-rgb), .12); --vz-btn-hover-bg: var(--m-blue); --vz-btn-hover-color: #fff; --vz-btn-border-color: transparent; }
.text-primary { color: var(--m-blue) !important; }
.bg-primary { background-color: var(--m-blue) !important; }
.form-control:focus, .form-select:focus { border-color: var(--m-blue); box-shadow: 0 0 0 .15rem rgba(var(--m-blue-rgb), .2); }
.form-check-input:checked { background-color: var(--m-blue); border-color: var(--m-blue); }
.page-item.active .page-link { background-color: var(--m-blue); border-color: var(--m-blue); }

/* Logo ako text, kým nie je nahraté SVG logo. */
.wordmark { font-family: Arial, Helvetica, sans-serif; font-weight: 700; font-size: 22px; letter-spacing: .5px; color: #fff; }
.wordmark-sk { color: var(--m-blue); }
.wordmark-dark { color: var(--m-navy); font-size: 30px; }
.wordmark-sm { font-size: 24px; }
.navbar-brand-box { display: flex; align-items: center; min-height: 70px; }
.navbar-brand-box .logo { line-height: 70px; }

.page-heading { font-size: 17px; font-weight: 600; color: var(--m-navy); }
.avatar-initials { width: 34px; height: 34px; border-radius: 50%; background: var(--m-light); color: var(--m-navy); display: inline-flex; align-items: center; justify-content: center; font-weight: 700; }
#scrollbar { overflow-y: auto; }
.empty-state { text-align: center; color: var(--vz-secondary-color); padding: 32px 16px; }
.empty-state i { font-size: 40px; color: var(--m-blue); display: block; margin-bottom: 8px; }

/* Prihlasovacie stránky */
.code-input { letter-spacing: .3em; font-family: monospace; }

/* 2FA */
.totp-qr { display: inline-block; padding: 12px; background: #fff; border: 1px solid var(--vz-border-color); border-radius: 8px; }
.totp-qr svg { display: block; width: 200px; height: 200px; }
.setup-steps li { margin-bottom: 8px; }
.recovery-codes { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; max-width: 360px; }
.recovery-codes code { font-size: 16px; padding: 8px; background: var(--vz-light); border-radius: 4px; text-align: center; color: var(--m-ink); }

.audit-detail { max-width: 420px; font-size: 12px; word-break: break-word; }
.help-body p { line-height: 1.6; }

@media print {
  #page-topbar, .app-menu, .footer, .btn, .alert { display: none !important; }
  .main-content { margin: 0 !important; }
}
code { color: var(--m-navy); }

/* Projekty a stratégia */
.project-card { display: block; color: inherit; transition: box-shadow .15s; }
.project-card:hover { box-shadow: 0 4px 16px rgba(var(--m-navy-rgb), .12); color: inherit; }
.project-card h5 { color: var(--m-navy); }
.badge.status-active { background: #e2f3fb; color: #1b7ca8; }
.badge.status-paused { background: #fff4de; color: #9a6a00; }
.badge.status-closed { background: #eceef2; color: #5f6672; }
.project-search { min-width: 260px; }
.section-tile { display: flex; flex-direction: column; gap: 2px; padding: 16px; border: 1px solid var(--vz-border-color); border-radius: 8px; color: inherit; height: 100%; }
.section-tile:hover { border-color: var(--m-blue); background: var(--m-light); color: inherit; }
.section-code { font-weight: 700; color: var(--m-blue); font-size: 13px; letter-spacing: .5px; }
.section-title { font-weight: 600; color: var(--m-navy); font-size: 15px; }
.section-meta { font-size: 12px; color: var(--vz-secondary-color); }
.section-nav { display: flex; flex-wrap: wrap; gap: 6px; }
.graph-scroll { overflow-x: auto; background: #f5f5f5; }
.graph-scroll img { display: block; height: auto; max-width: none; width: auto; max-height: 75vh; }
.toc { columns: 2 280px; margin: 0; padding-left: 18px; }
.toc li { margin-bottom: 4px; break-inside: avoid; }
.strategy-card { scroll-margin-top: 90px; }
.strategy-table { font-size: 13.5px; line-height: 1.55; }
.strategy-table th { background: var(--m-light); color: var(--m-navy); font-weight: 700; vertical-align: top; min-width: 160px; }
.strategy-table td { vertical-align: top; min-width: 200px; }
.strategy-table.cols-1 td, .strategy-table.cols-2 td.first-col { min-width: 0; }
.strategy-table.cols-2 td.first-col { width: 220px; }
.strategy-table td.first-col { font-weight: 600; color: var(--m-navy); background: #fafbfd; position: sticky; left: 0; z-index: 1; min-width: 170px; }
.strategy-table tr { scroll-margin-top: 90px; }
.strategy-table tr:target td { background: #fff8d6; }
.strategy-table strong { color: var(--m-navy); }
.strategy-table a { word-break: break-word; }
.code-link { font-weight: 600; text-decoration: none; border-bottom: 1px dotted currentColor; }
.badge-verify { display: inline-block; background: #007AD2; color: #fff; font-weight: 700; font-size: 11px; padding: 1px 6px; border-radius: 3px; letter-spacing: .3px; }
.cards-details summary { cursor: pointer; list-style: none; }
.cards-details summary::-webkit-details-marker { display: none; }
.cards-details summary::before { content: "▸ "; color: var(--m-blue); }
.cards-details[open] summary::before { content: "▾ "; }
.node-card { border: 1px solid var(--vz-border-color); border-radius: 8px; overflow: hidden; height: 100%; }
.node-card-title { background: var(--m-navy); color: #fff; font-weight: 700; padding: 6px 12px; }
.node-card-row { padding: 6px 12px; border-top: 1px solid var(--vz-border-color); font-size: 13px; }
.node-card-row:nth-child(2) { background: var(--m-light); }
.search-hit a { color: inherit; }
.search-hit mark { background: #fff1a8; padding: 0 2px; }
[id^="k-"] { scroll-margin-top: 90px; }
.consent-box { background: var(--m-light); border-radius: 8px; padding: 12px 16px; }
.change-detail { max-width: 420px; font-size: 12.5px; word-break: break-word; }

/* Vizuálny prehľad stratégie */
.viz-heading { font-size: 1.05rem; font-weight: 700; color: var(--m-navy); margin: 0 0 .9rem; text-transform: uppercase; letter-spacing: .04em; }
.viz-kpi { border-left: 4px solid var(--m-blue); }
.viz-kpi-title { font-size: .72rem; text-transform: uppercase; letter-spacing: .05em; color: #6b7894; margin-bottom: .35rem; font-weight: 700; }
.viz-kpi-value { font-size: 1.6rem; line-height: 1.15; font-weight: 700; color: var(--m-navy); word-break: break-word; }
.viz-kpi-icon { width: 42px; height: 42px; border-radius: 8px; background: var(--m-light); color: var(--m-blue); display: inline-flex; align-items: center; justify-content: center; font-size: 1.35rem; flex-shrink: 0; margin-left: .75rem; }
.viz-kpi-note { font-size: .8rem; color: #6b7894; margin: .5rem 0 .35rem; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.viz-src { font-size: .75rem; color: #8a94a8; white-space: nowrap; text-decoration: none; }
.viz-src:hover { color: var(--m-blue); }
.viz-card .card-header { gap: .75rem; }
.viz-note { font-size: .8rem; color: #6b7894; margin: .5rem 0 0; }
.viz-legend-box { background: #f6f8fb; border-radius: 6px; padding: .5rem .75rem; font-size: .82rem; display: flex; flex-wrap: wrap; gap: .25rem .75rem; }
.viz-legend-box strong { color: var(--m-navy); width: 100%; }
.viz-fact { padding: .65rem 0; border-bottom: 1px solid #eef1f6; }
.viz-fact:last-child { border-bottom: 0; padding-bottom: 0; }
.viz-fact:first-child { padding-top: 0; }
.viz-fact-label { font-size: .72rem; text-transform: uppercase; letter-spacing: .05em; color: #6b7894; font-weight: 700; margin-bottom: .2rem; }
.viz-fact-label .viz-src { text-transform: none; letter-spacing: 0; font-weight: 400; margin-left: .35rem; }
.viz-fact-text { font-size: .92rem; }
.viz-campaign + .viz-campaign { border-top: 1px solid #eef1f6; margin-top: .9rem; padding-top: .9rem; }
.viz-campaign-code { background: var(--m-navy); color: #fff; font-weight: 700; font-size: .75rem; border-radius: 4px; padding: .15rem .45rem; }
.viz-dl { display: grid; grid-template-columns: max-content 1fr; gap: .3rem 1rem; margin-bottom: .5rem; font-size: .9rem; }
.viz-dl dt { color: #6b7894; font-weight: 400; }
.viz-dl dd { margin: 0; }
.viz-tabs .nav-link { font-weight: 600; }
.min-w-0 { min-width: 0; }

/* Prehľady častí: karty, kroky, porovnania */
.viz-section-title { font-size: .95rem; font-weight: 700; color: var(--m-navy); text-transform: uppercase; letter-spacing: .05em; margin: .75rem 0 .9rem; padding-bottom: .4rem; border-bottom: 2px solid var(--m-light); }
.vcard { background: #fff; border: 1px solid #e6eaf1; border-top: 3px solid #c9d3e4; border-radius: 8px; padding: .9rem 1rem; font-size: .88rem; }
.vcard-head { display: flex; align-items: baseline; gap: .45rem; margin-bottom: .45rem; }
.vcard-title { font-weight: 700; color: var(--m-navy); font-size: .95rem; line-height: 1.3; }
.vcode { font-size: .7rem; font-weight: 700; color: #6b7894; background: #f1f4f9; border-radius: 4px; padding: .05rem .35rem; text-decoration: none; white-space: nowrap; }
a.vcode:hover { color: var(--m-blue); }
.vcard-badges { display: flex; flex-wrap: wrap; gap: .3rem; margin-bottom: .5rem; }
.vb { display: inline-block; font-size: .7rem; font-weight: 700; border-radius: 20px; padding: .12rem .55rem; background: #eef1f6; color: #4c5975; }
.vb-see { background: #e3f4fb; color: #1b7ca8; } .vb-think { background: #d6effa; color: #1a6f99; } .vb-do { background: #dfe5f4; color: var(--m-navy); } .vb-care { background: #dcf3ea; color: #1d7c58; }
.vb-accent { background: var(--m-light); color: #1b7ca8; } .vb-who { background: #f6f1e6; color: #7a5a1c; }
.vt-see { border-top-color: #8FD1EE; } .vt-think { border-top-color: var(--m-blue); } .vt-do { border-top-color: var(--m-navy); } .vt-care { border-top-color: #2BA87A; }
.vt-good { border-top-color: #2BA87A; background: #f7fcfa; } .vt-bad { border-top-color: #E5533D; background: #fdf7f6; } .vt-warn { border-top-color: #F2A93B; background: #fffbf3; } .vt-accent { border-top-color: var(--m-blue); background: #f5fbfe; }
.vf { margin-top: .45rem; } .vf:first-of-type { margin-top: 0; }
.vf-label { font-size: .68rem; text-transform: uppercase; letter-spacing: .05em; color: #8a94a8; font-weight: 700; margin-bottom: .15rem; }
.vf-emph .vl { font-size: 1.02rem; font-weight: 700; color: var(--m-navy); }
.vf-muted .vl { color: #8a94a8; }
.vl { margin-bottom: .2rem; line-height: 1.45; }
.vl-label { font-weight: 700; color: #33415e; }
.vl-good { border-left: 3px solid #2BA87A; padding-left: .45rem; } .vl-bad { border-left: 3px solid #E5533D; padding-left: .45rem; } .vl-muted { border-left: 3px solid #c9d3e4; padding-left: .45rem; }
.vmore { margin-top: .55rem; } .vmore summary { font-size: .78rem; color: var(--vz-link-color); cursor: pointer; font-weight: 600; }
.vmore[open] summary { margin-bottom: .4rem; }
.viz-filter { max-width: 220px; }
.viz-phase-filter .btn.active { background: var(--m-navy); color: #fff; border-color: var(--m-navy); }
.viz-funnel { display: flex; flex-direction: column; align-items: center; gap: .5rem; }
.viz-funnel-step { width: var(--w); min-width: 280px; border-radius: 8px; padding: .8rem 1rem; background: #f5f8fc; border-left: 5px solid #c9d3e4; font-size: .9rem; }
.viz-funnel-step.vt-see { border-left-color: #8FD1EE; } .viz-funnel-step.vt-think { border-left-color: var(--m-blue); } .viz-funnel-step.vt-do { border-left-color: var(--m-navy); background: #eef2fa; }
.viz-funnel-head { margin-bottom: .3rem; color: var(--m-navy); }
.viz-steps { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 1rem; counter-reset: s; }
.viz-step { position: relative; background: #f7f9fc; border-radius: 8px; padding: 1rem; font-size: .88rem; }
.viz-step-num { width: 30px; height: 30px; border-radius: 50%; background: var(--m-navy); color: #fff; font-weight: 700; display: flex; align-items: center; justify-content: center; margin-bottom: .5rem; }
.viz-step-title { font-weight: 700; color: var(--m-navy); margin-bottom: .35rem; }
.viz-hero { background: linear-gradient(120deg, var(--m-navy), #2f5aa8); color: #fff; border: 0; }
.viz-hero .viz-src { color: #c9d6f2; }
.viz-hero-label { font-size: .72rem; text-transform: uppercase; letter-spacing: .06em; color: #b9c9ec; font-weight: 700; }
.viz-hero-value { font-size: 1.9rem; font-weight: 700; margin: .2rem 0 .4rem; }
.viz-hero-text { font-size: .98rem; max-width: 980px; } .viz-hero-text .vl-label { color: #fff; } .viz-hero-text a { color: #bfe6f8; }
.viz-pills .nav-link { font-size: .82rem; padding: .35rem .8rem; }
.viz-pills .nav-link.active { background: var(--m-navy); }
.vprice { border: 1px solid #e6eaf1; border-radius: 10px; padding: 1.1rem; font-size: .86rem; background: #fff; }
.vprice-featured { border: 2px solid var(--m-blue); box-shadow: 0 6px 22px rgba(38, 164, 221, .18); }
.vprice-role { font-size: .7rem; text-transform: uppercase; letter-spacing: .05em; color: #1b7ca8; font-weight: 700; margin-bottom: .35rem; }
.vprice-title { font-weight: 700; color: var(--m-navy); font-size: 1rem; }
.vprice-value { font-size: 1.7rem; font-weight: 700; color: var(--m-navy); margin: .35rem 0 .5rem; } .vprice-value small { font-size: .75rem; color: #8a94a8; font-weight: 400; }
.viz-dl-wide { grid-template-columns: minmax(130px, max-content) 1fr; } .viz-dl-wide dt { font-weight: 700; color: #4c5975; }
.viz-timeline { position: relative; padding-left: 1.2rem; border-left: 2px solid #e1e7f0; }
.viz-tl-item { position: relative; display: grid; grid-template-columns: 170px 1fr; gap: 1rem; padding: 0 0 1.1rem; }
.viz-tl-item::before { content: ''; position: absolute; left: -1.62rem; top: .25rem; width: 12px; height: 12px; border-radius: 50%; background: var(--m-blue); border: 2px solid #fff; box-shadow: 0 0 0 2px var(--m-blue); }
.viz-tl-when { font-weight: 700; color: var(--m-navy); font-size: .86rem; }
.viz-tl-body { font-size: .88rem; } .viz-tl-head { margin-bottom: .3rem; }
@media (max-width: 767px) { .viz-tl-item { grid-template-columns: 1fr; gap: .2rem; } }
.viz-rules { background: #fffbf3; border-radius: 8px; padding: .8rem 1rem; font-size: .88rem; margin-top: .5rem; }
.viz-check { display: flex; gap: .7rem; padding: .7rem 0; border-bottom: 1px solid #eef1f6; font-size: .88rem; }
.viz-check:last-child { border-bottom: 0; }
.viz-check > i { font-size: 1.25rem; line-height: 1.2; }
.viz-check-done > i { color: #2BA87A; } .viz-check-open > i { color: #F2A93B; } .viz-check-other > i { color: #A9B4CC; }
.viz-check-text { color: #4c5975; margin-top: .2rem; }
.viz-levels { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 1rem; }
.viz-level-title { font-size: .72rem; text-transform: uppercase; letter-spacing: .05em; color: #6b7894; font-weight: 700; margin-bottom: .5rem; }
.viz-node { background: #fff; border: 1px solid #e6eaf1; border-left: 4px solid #c9d3e4; border-radius: 6px; padding: .6rem .7rem; margin-bottom: .6rem; font-size: .84rem; }
.viz-node.vt-see { border-left-color: #8FD1EE; } .viz-node.vt-think { border-left-color: var(--m-blue); } .viz-node.vt-do { border-left-color: var(--m-navy); } .viz-node.vt-care { border-left-color: #2BA87A; }
.viz-node-head { margin-bottom: .35rem; color: var(--m-navy); }
.viz-node-rel { font-size: .74rem; color: #8a94a8; margin-top: .35rem; }
.viz-chips { display: flex; flex-wrap: wrap; gap: .25rem; } .viz-chips span { font-size: .72rem; background: #f1f4f9; border-radius: 4px; padding: .1rem .4rem; }
.viz-flow { display: flex; flex-direction: column; }
.viz-flow-node { display: flex; gap: .8rem; padding: .55rem 0; position: relative; }
.viz-flow-node:not(:last-child)::after { content: ''; position: absolute; left: 17px; top: 46px; bottom: -6px; width: 2px; background: #e1e7f0; }
.viz-flow-icon { width: 36px; height: 36px; flex-shrink: 0; border-radius: 50%; display: flex; align-items: center; justify-content: center; background: var(--m-light); color: var(--m-blue); font-size: 1.1rem; }
.viz-flow-decision .viz-flow-icon { background: #fff4e0; color: #c47f12; border-radius: 6px; transform: rotate(45deg); } .viz-flow-decision .viz-flow-icon i { transform: rotate(-45deg); }
.viz-flow-start .viz-flow-icon { background: #dcf3ea; color: #1d7c58; } .viz-flow-end .viz-flow-icon { background: #eef1f6; color: #6b7894; }
.viz-flow-body { flex-grow: 1; font-size: .88rem; }
.viz-flow-head { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem; color: var(--m-navy); }
.viz-flow-meta { display: flex; flex-wrap: wrap; gap: .3rem 1rem; font-size: .8rem; color: #6b7894; margin-top: .2rem; }
.viz-yes a { color: #1d7c58; font-weight: 700; } .viz-no a { color: #c63c28; font-weight: 700; }
.viz-flow-io { font-size: .78rem; color: #6b7894; margin-top: .15rem; } .viz-flow-io span { font-weight: 700; color: #8a94a8; text-transform: uppercase; font-size: .68rem; }
.viz-legend2 { display: flex; flex-wrap: wrap; gap: .4rem 1rem; font-size: .8rem; margin-top: .4rem; } .viz-legend2 i { display: inline-block; width: 10px; height: 10px; border-radius: 2px; margin-right: .35rem; }

/* Logo */
.brand-logo { height: 22px; width: auto; display: inline-block; vertical-align: middle; }
.brand-icon { height: 18px; width: auto; display: inline-block; vertical-align: middle; }
.brand-logo-auth { height: 34px; width: auto; }
.navbar-brand-box .logo { line-height: 70px; }
/* Zúžený panel bez ikony: menu začína hore. */
:root[data-sidebar-size=sm] .navbar-brand-box { display: none; }
:root[data-sidebar-size=sm] .app-menu { padding-top: 0 !important; }
:root[data-sidebar-size=sm] .navbar-menu .navbar-nav { padding-top: 8px; }

/* KPI a reporty */
.project-tabs .nav-link { font-weight: 600; }
.kpi-period-label { min-width: 220px; text-align: center; color: var(--m-navy); }
.kpi-table .kpi-name a { font-weight: 700; color: var(--m-navy); }
.kpi-target { font-size: .75rem; color: #8a94a8; max-width: 420px; }
.kpi-col-plan { width: 110px; text-align: right; white-space: nowrap; }
.kpi-col-input { width: 130px; } .kpi-col-input input { text-align: right; font-weight: 700; }
.kpi-col-note { width: 220px; }
.kpi-col-status { width: 110px; }
.kpi-col-trend { width: 170px; }
.kpi-spark { width: 150px; height: 46px; }
.kpi-badge { display: inline-block; font-size: .7rem; font-weight: 700; border-radius: 20px; padding: .15rem .55rem; white-space: nowrap; }
.kpi-ok { background: #dcf3ea; color: #1d7c58; } .kpi-warn { background: #fff1d6; color: #9a6410; } .kpi-bad { background: #fbe1dc; color: #b23a26; }
.kpi-save-bar { position: sticky; bottom: 0; z-index: 5; display: flex; align-items: center; justify-content: space-between; gap: 1rem; background: #fff; border: 1px solid #e6eaf1; border-radius: 8px; padding: .7rem 1rem; box-shadow: 0 -4px 16px rgba(36, 62, 131, .08); }
.report-schedule { padding: .7rem 0; border-bottom: 1px solid #eef1f6; } .report-schedule.is-off { opacity: .65; }
.report-log-row { padding: .5rem 0; border-bottom: 1px solid #eef1f6; } .report-log-row:last-child { border-bottom: 0; }
.report-preview { overflow-x: auto; }

/* Správy a úlohy */
.thread-row { display: flex; align-items: center; gap: .9rem; padding: .85rem 1.1rem; border-bottom: 1px solid #eef1f6; color: inherit; text-decoration: none; }
.thread-row:hover { background: #f7f9fc; color: inherit; }
.thread-row.is-unread .thread-title { color: var(--m-navy); }
.thread-row.is-unread { background: #f5fbfe; }
.thread-row.is-closed { opacity: .7; }
.thread-icon { width: 38px; height: 38px; border-radius: 50%; background: var(--m-light); color: var(--m-blue); display: flex; align-items: center; justify-content: center; flex-shrink: 0; font-size: 1.1rem; }
.thread-last { font-size: .82rem; color: #6b7894; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.thread-heading { color: var(--m-navy); font-size: 1.15rem; }
.chat-body { display: flex; flex-direction: column; gap: .9rem; }
.chat-msg { display: flex; gap: .7rem; max-width: 88%; }
.chat-msg.is-mine { align-self: flex-end; flex-direction: row-reverse; }
.chat-msg .chat-avatar { width: 34px; height: 34px; border-radius: 50%; background: var(--m-navy); color: #fff; font-weight: 700; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.chat-msg.is-client .chat-avatar { background: var(--m-blue); }
.chat-bubble { background: #f3f6fb; border-radius: 10px; padding: .6rem .85rem; min-width: 0; }
.chat-msg.is-mine .chat-bubble { background: #e3f4fb; }
.chat-meta { font-size: .76rem; margin-bottom: .2rem; }
.chat-text { font-size: .92rem; line-height: 1.5; overflow-wrap: anywhere; }
.chat-files { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: .5rem; }
.chat-file { display: inline-flex; align-items: center; gap: .3rem; font-size: .8rem; background: #fff; border: 1px solid #e1e7f0; border-radius: 6px; padding: .2rem .5rem; text-decoration: none; }
.chat-new-divider { text-align: center; border-top: 1px solid #f2b8ad; margin: .4rem 0 0; }
.chat-new-divider span { position: relative; top: -.7rem; background: #fff; color: #c63c28; font-size: .72rem; font-weight: 700; padding: 0 .6rem; }
.reply-files { max-width: 320px; }
.task-card { background: #fff; border: 1px solid #e6eaf1; border-left: 4px solid #c9d3e4; border-radius: 6px; padding: .6rem .75rem; margin-bottom: .55rem; font-size: .88rem; }
.task-card.is-high { border-left-color: #E5533D; }
.task-card.is-over { background: #fdf7f6; }
.task-card.is-done { opacity: .65; } .task-card.is-done .task-title { text-decoration: line-through; }
.task-title { font-weight: 700; color: var(--m-navy); text-decoration: none; }
.task-meta { display: flex; flex-wrap: wrap; gap: .3rem .8rem; align-items: center; font-size: .78rem; color: #6b7894; margin-top: .3rem; }
.task-move { padding: .1rem .4rem; }
.task-group-title { font-size: .72rem; text-transform: uppercase; letter-spacing: .05em; color: #6b7894; font-weight: 700; margin: .6rem 0 .4rem; }
.task-group-title:first-child { margin-top: 0; }
.task-board { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
@media (max-width: 991px) { .task-board { grid-template-columns: 1fr; } }
.task-col { background: #eef2f8; border-radius: 8px; padding: .7rem; min-height: 120px; }
.task-col-head { font-weight: 700; color: var(--m-navy); margin-bottom: .6rem; }
.task-col-doing { background: #fff6e6; } .task-col-done { background: #e9f6f0; }
.dash-row { display: flex; align-items: center; gap: .7rem; padding: .55rem 0; border-bottom: 1px solid #eef1f6; color: inherit; text-decoration: none; }
.dash-row:last-child { border-bottom: 0; }
.dash-row:hover { color: inherit; background: #f7f9fc; }
.dash-row > i { font-size: 1.15rem; }

/* Profil človeka a firmy */
.murple-cover { background: linear-gradient(135deg, #1b2f66 0%, var(--m-navy) 55%, #2d58a8 100%); overflow: hidden; }
.murple-cover::before { display: none; }
.murple-cover::after { content: ""; position: absolute; inset: 0; background:
  radial-gradient(circle at 85% 20%, rgba(38, 164, 221, .35) 0, rgba(38, 164, 221, 0) 42%),
  radial-gradient(circle at 10% 110%, rgba(255, 255, 255, .08) 0, rgba(255, 255, 255, 0) 45%); }
.profile-setting-img.murple-cover { height: 220px; }
.profile-head-img { width: 96px; height: 96px; border-radius: 50%; border: 4px solid rgba(255, 255, 255, .9); background: #fff; display: flex; align-items: center; justify-content: center; overflow: hidden; box-shadow: 0 6px 20px rgba(0, 0, 0, .18); }
.profile-head-img img { width: 100%; height: 100%; object-fit: cover; }
.profile-head-img span { font-size: 32px; font-weight: 700; color: var(--m-navy); }
.profile-head-img.is-logo { padding: 0; }
.profile-head-img.is-logo img { object-fit: cover; }
.profile-edit-img { width: 110px; height: 110px; border-color: var(--vz-card-bg, #fff); }
.profile-edit-img.is-logo { padding: 0; }
.profile-photo-form .profile-photo-edit { position: absolute; right: -2px; bottom: -2px; }
.profile-img-file-input { display: none; }
.profile-nav .nav-link { font-weight: 500; }
.profile-about { white-space: normal; line-height: 1.7; color: var(--vz-body-color); }
.person-av { width: 32px; height: 32px; object-fit: cover; display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; }
.person-av.av-xs { width: 32px; height: 32px; font-size: 12px; }
.person-av.av-sm { width: 40px; height: 40px; font-size: 14px; }
.person-av-initials { background: var(--m-light); color: var(--m-navy); font-weight: 700; }
.person-av-more { background: var(--m-navy); color: #fff; font-weight: 600; font-size: 11px; }
.avatar-group .avatar-group-item { margin-left: -8px; border: 2px solid var(--vz-card-bg, #fff); border-radius: 50%; display: inline-flex; }
.avatar-group .avatar-group-item:first-child { margin-left: 0; }
.header-profile-user { width: 34px; height: 34px; object-fit: cover; }
.person-row + .person-row { border-top: 1px dashed var(--vz-border-color); }
.social-chip { width: 34px; height: 34px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; font-size: 17px; color: #fff; background: var(--m-navy); transition: transform .15s; }
a.social-chip:hover { transform: translateY(-2px); color: #fff; }
.social-linkedin { background: #0a66c2; }
.social-facebook { background: #1877f2; }
.social-instagram { background: #d6249f; }
.social-youtube { background: #e62117; }
.social-x { background: #111; }
.social-tiktok { background: #25292e; }
.social-web { background: var(--m-blue, #26A4DD); }
.profile-timeline .acitivity-item { position: relative; }
.profile-timeline .acitivity-item:not(:last-child)::before { content: ""; position: absolute; left: 15px; top: 36px; bottom: 4px; border-left: 1px dashed var(--vz-border-color); }
.activity-kind { background: var(--m-light); color: var(--m-navy); font-weight: 500; font-size: 11px; }
.activity-kind.kind-task_done { background: #e3f5ef; color: #0f7a5c; }
.activity-kind.kind-change, .activity-kind.kind-import { background: #fff3dc; color: #a86b00; }
.activity-quote { font-style: italic; color: var(--vz-secondary-color); border-left: 2px solid var(--vz-border-color); padding-left: 10px; }
.profile-project-card { transition: box-shadow .15s; }
.profile-project-card:hover { box-shadow: 0 4px 16px rgba(var(--m-navy-rgb), .12) !important; }
.min-w-0 { min-width: 0; }
@media (max-width: 991.98px) { .profile-wid-bg.murple-cover { height: 420px; } }
.admin-box { border: 1px dashed var(--vz-border-color); border-radius: 6px; padding: 16px; background: var(--vz-light-bg-subtle, #f8f9fb); }
/* Projekty ako karty a zoznam */
.section-title { color: var(--m-navy); font-weight: 600; }
.project-tile { border: 0; box-shadow: 0 1px 2px rgba(56, 65, 74, .15); transition: box-shadow .15s, transform .15s; }
.project-tile:hover { box-shadow: 0 6px 18px rgba(var(--m-navy-rgb), .14); transform: translateY(-2px); }
.project-tile-icon { width: 44px; height: 44px; border-radius: 50%; overflow: hidden; background: var(--m-light); color: var(--m-navy); display: flex; align-items: center; justify-content: center; font-weight: 700; flex-shrink: 0; }
.projects-search { max-width: 420px; }
.projects-search .form-control { padding-left: 34px; }
.projects-search .search-icon { position: absolute; left: 12px; top: 50%; transform: translateY(-50%); color: var(--vz-secondary-color); }
.search-box { position: relative; }
.pb-view.active { background: var(--m-navy); color: #fff; border-color: var(--m-navy); }
.list-progress { min-width: 160px; }
.border-top-dashed { border-top-style: dashed !important; }
.project-tile-name { line-height: 1.35; overflow-wrap: anywhere; }

/* Chat (0.12.0) */
.user-chat { background: #f7fafd; }
.chat-wrapper .chat-leftsidebar { background: #fff; border-right: 1px solid var(--vz-border-color); }
.chat-section-title { text-transform: uppercase; letter-spacing: .05em; font-weight: 600; }
.chat-item a { display: flex; align-items: center; padding: 7px 12px; border-radius: 6px; color: var(--vz-body-color); }
.chat-item a:hover { background: var(--m-light); }
.chat-item.active a { background: var(--m-light); color: var(--m-navy); font-weight: 600; }
.chat-item .badge { margin-left: auto; }
.chat-item.is-unread .chat-item-name { font-weight: 700; color: var(--m-navy); }
.chat-item-sub { font-size: 12px; color: var(--vz-secondary-color); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.channel-hash { width: 32px; height: 32px; border-radius: 50%; background: rgba(var(--m-blue-rgb), .12); color: #1b7ca8; display: inline-flex; align-items: center; justify-content: center; font-weight: 700; }
.contact-list-title { padding: 6px 12px; font-size: 12px; font-weight: 700; color: var(--m-blue); display: flex; align-items: center; gap: 10px; }
/* Čiara za názvom skupiny, nie cez text. Velzon ju má pre jedno písmeno. */
.contact-list-title::after { position: static; transform: none; -webkit-transform: none; flex: 1 1 auto; min-width: 12px; }
.chat-empty { height: 100%; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; color: var(--vz-secondary-color); padding: 40px 20px; }
.chat-empty i { font-size: 48px; color: var(--m-blue); }
.chat-new-line { display: flex; align-items: center; gap: 10px; margin: 12px 0; color: #E5533D; font-size: 12px; font-weight: 600; }
.chat-new-line::before, .chat-new-line::after { content: ""; flex: 1; border-top: 1px solid rgba(229, 83, 61, .4); }
.chat-author { font-size: 12px; font-weight: 600; color: var(--m-navy); margin-bottom: 2px; }
.chat-list.right .chat-author { text-align: right; }
.chat-conversation .chat-list .ctext-wrap-content { background: #fff; box-shadow: 0 1px 2px rgba(var(--m-navy-rgb), .08); }
.chat-conversation .chat-list.right .ctext-wrap-content { background: var(--m-light); }
.chat-conversation .ctext-content { white-space: pre-line; word-break: break-word; }
.chat-file { display: inline-flex; align-items: center; gap: 4px; font-size: 12px; background: rgba(var(--m-navy-rgb), .06); border-radius: 4px; padding: 2px 8px; margin: 4px 4px 0 0; color: var(--m-navy); }
.chat-files-names { font-size: 12px; color: var(--vz-secondary-color); }

/* Úlohy (0.12.0) */
.tasks-toolbar-card .search-box .form-control { padding-left: 40px; }
.tasks-board { gap: 0; padding-bottom: 8px; }
.tasks-board .tasks-list { min-width: 290px; flex: 1 0 290px; margin-right: 16px; background: #eef3f9; border-radius: 8px; padding: 12px; }
.tasks-board .tasks-list:last-child { margin-right: 0; }
.tasks-wrapper { max-height: none; min-height: 80px; border-radius: 6px; transition: background .15s; }
.tasks-wrapper.is-drop { background: rgba(var(--m-blue-rgb), .14); outline: 2px dashed var(--m-blue); outline-offset: 2px; }
.tasks-box { margin-bottom: 12px; border: 1px solid transparent; }
.tasks-box { cursor: pointer; transition: box-shadow .15s, transform .15s; }
.tasks-box:hover { box-shadow: 0 6px 18px rgba(var(--m-navy-rgb), .14); transform: translateY(-1px); }
.tasks-box:hover .task-title-line a { color: var(--m-blue) !important; }
.tk-handle { cursor: grab; color: var(--vz-secondary-color); font-size: 18px; line-height: 1; padding: 2px 3px; border-radius: 4px; }
.tk-handle:hover { background: var(--m-light); color: var(--m-navy); }
.tk-handle:active { cursor: grabbing; }
.tasks-box.is-dragging { opacity: .5; }
.tasks-box.is-high { border-left: 3px solid #E5533D; }
.tasks-box .card-footer { padding: .6rem 1rem; background: transparent; }
.tasks-box .task-title-line a { line-height: 1.35; }
.tk-desc { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.tk-new-dot { display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: var(--m-blue); margin-right: 6px; vertical-align: middle; float: left; margin-top: 6px; }
.tk-table .tk-new-dot { float: none; margin-top: 0; }
.tk-details th { width: 42%; }
.tk-detail-title { font-size: 1.2rem; color: var(--m-navy); }
.tk-description { white-space: pre-line; }
.tk-comment-body { white-space: pre-line; word-break: break-word; }
.tk-reply { margin-left: 48px; }
.tk-subtasks li { border-bottom: 1px dashed var(--vz-border-color); }
.tk-subtasks li:last-child { border-bottom: 0; }
.tk-subtasks form { margin: 0; }
.tk-timer { color: var(--m-navy); }
.navbar-menu .nav-link .badge { font-size: 10px; }

/* Chat vložený v projekte a vo firme (0.13.0) */
.chat-embedded { background: transparent; }
.chat-embedded .chat-leftsidebar { height: calc(100vh - 290px); min-height: 520px; border-radius: 6px; }
.chat-embedded .user-chat { border-radius: 6px; }
.chat-embedded .chat-conversation { height: calc(100vh - 455px); min-height: 330px; }
.channel-group + .channel-group { margin-top: 6px; }

/* Logo firmy aj fotka človeka sú kruh. Pod komponentmi je medzera (0.13.1) */
.project-tile-icon img { width: 100%; height: 100%; object-fit: cover; background: #fff; }
.projects-browser, .tasks-area { margin-bottom: 1.5rem; }
.project-tile .avatar-group { flex-wrap: nowrap; }
/* Bez knižnice simplebar musia zoznam aj konverzácia rolovať samy. */
.chat-conversation { overflow-y: auto; }
.chat-leftsidebar { display: flex; flex-direction: column; }
.chat-leftsidebar .tab-content { flex: 1 1 auto; min-height: 0; overflow-y: auto; }
/* Widgety na prehľade (0.13.2) */
.dash-widgets .card { margin-bottom: 1.5rem; }
.dash-widgets .card-body { flex: 1 1 auto; }
.dash-widgets .table td, .dash-widgets .table th { padding-top: .7rem; padding-bottom: .7rem; }



.dash-footer { display: flex; align-items: center; justify-content: space-between; background: transparent; border-top: 1px solid var(--vz-border-color); }
.dash-widgets .table { table-layout: fixed; }
.dash-widgets .card-header { padding-bottom: 1rem; }

/* Výber ľudí v projekte (0.13.3) */
.mp-list { max-height: 460px; overflow-y: auto; }
.mp-item { cursor: pointer; gap: 0; }
.mp-item:hover { background: var(--m-light); }
.mp-selected .mp-add, .mp-available .mp-remove { display: none; }
.mp-group-title { background: #f7f9fc; font-size: 12px; font-weight: 700; color: var(--m-blue); text-transform: uppercase; letter-spacing: .04em; padding-top: .45rem; padding-bottom: .45rem; }
.mp-selected:empty { display: none; }
.tk-row { cursor: pointer; }
.tk-row:hover td { background: var(--m-light); }

/* Záložky v profile pod O firme a O mne (0.13.3) */
.profile-tabs-bar { margin-bottom: 1.5rem; }
.profile-tabs-bar .nav-tabs-custom .nav-item { margin-bottom: 0; }
.profile-tabs-bar .nav-tabs-custom .nav-link { padding: 1rem 1.1rem; border: 0; background: transparent; }
.profile-tabs-bar .nav-tabs-custom .nav-link.active { background: transparent; color: var(--m-navy); }
.profile-tabs-bar .nav-tabs-custom .nav-link .badge { font-size: 11px; }
.profile-body .tab-content > .tab-pane > .card:last-child { margin-bottom: 1.5rem; }

/* Vložený chat má rovnaký spodný okraj ako karty (0.13.4) */
.chat-wrapper.chat-embedded { margin-bottom: 1.5rem; }
.profile-tabs-bar .nav-tabs-custom .nav-link::after { background: var(--m-blue); height: 2px; }
/* Tabuľa úloh v užšom stĺpci profilu ukáže všetky štyri stĺpce */
.profile-body .tasks-board .tasks-list { min-width: 200px; flex: 1 1 0; margin-right: 12px; }
.profile-body .tasks-board .tasks-list:last-child { margin-right: 0; }

/* Vyhľadávanie v hornej lište (0.14.0) */
.gsearch { position: relative; width: 340px; }
.gsearch .form-control { background: var(--vz-light, #f3f6f9); border: 0; padding-left: 40px; height: 38px; }
.gsearch .gs-icon { position: absolute; left: 13px; top: 50%; transform: translateY(-50%); font-size: 18px; color: var(--vz-secondary-color); line-height: 1; }
.gs-panel { position: absolute; top: calc(100% + 8px); left: 0; width: 460px; max-width: calc(100vw - 40px); box-shadow: 0 8px 28px rgba(var(--m-navy-rgb), .18); border: 0; }
.gs-panel.show { display: block; }
.gs-results { max-height: 60vh; overflow-y: auto; }
.gs-group-title { padding: 8px 14px 4px; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: var(--m-blue); }
.gs-item { display: block; padding: 6px 14px; color: var(--vz-body-color); }
.gs-item:hover, .gs-item:focus { background: var(--m-light); outline: 0; }
.gs-item-title { display: block; font-weight: 500; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.gs-item-sub { display: block; font-size: 12px; color: var(--vz-secondary-color); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.gs-types .btn-icon { width: 32px; height: 32px; }
@media (min-width: 992px) { .profile-cover-right { min-height: 150px; } }

/* ---------------------------------------------------------------------------
   Widgety Ekonomiky z dátovej vrstvy (EK-DATA). Všetko je pod .w-eka. */
.w-eka { --ek-navy: #243E83; --ek-blue: #26A4DD; --ek-muted: #878a99; --ek-soft: #f3f6f9; --ek-line: #e9ebec; }
.w-eka .code { font-size: 11px; font-weight: 600; color: #1b7ca8; background: rgba(38,164,221,.12); border-radius: 4px; padding: 2px 6px; white-space: nowrap; }
.w-eka .text-navy { color: var(--ek-navy); }
.w-eka .text-blue { color: var(--ek-blue) !important; }
.w-eka .ek-h { font-size: 13px; color: var(--ek-muted); text-transform: uppercase; font-weight: 600; margin-bottom: .5rem; }
.w-eka .ek-lbl { font-size: 12px; text-transform: uppercase; letter-spacing: .03em; color: var(--ek-muted); font-weight: 600; }
.w-eka .ek-legend span { white-space: nowrap; }
.w-eka .ek-legend i { display: inline-block; width: 12px; height: 12px; border-radius: 3px; vertical-align: -2px; margin-right: 5px; }
.w-eka .ek-legend i.line { height: 4px; background: var(--ek-blue); vertical-align: 2px; }
.w-eka .ek-legend i.unv, .w-eka .cov-part.unv, .w-eka .sbar.unv { background-image: repeating-linear-gradient(45deg, rgba(255,255,255,.45) 0 6px, transparent 6px 12px); opacity: .75; }
.w-eka .ek-det { margin-top: 8px; font-size: 12.5px; }
.w-eka .ek-det summary { color: var(--ek-blue); cursor: pointer; font-weight: 600; font-size: 12px; list-style: none; }
.w-eka .ek-det summary::after { content: ' \25BE'; }
.w-eka .ek-det-body { background: #f8fafc; border-radius: 8px; padding: 10px 12px; margin-top: 6px; }
.w-eka .ek-det-code { margin: 6px 0 2px; }
.w-eka .ek-warn { background: #fff8ec; border: 1px solid #fde5c0; border-radius: 10px; padding: 14px 16px; color: #5c4a2e; font-size: 13px; }
.w-eka .ek-ok { background: #edf9f2; border: 1px solid #c3ebd5; border-radius: 10px; padding: 14px 16px; color: #23573c; font-size: 13px; }
.w-eka .box { border: 1px solid var(--ek-line); border-radius: 10px; padding: 16px; height: 100%; }
.w-eka .big { font-size: 28px; font-weight: 600; color: var(--ek-navy); white-space: nowrap; line-height: 1.15; }
.w-eka .big small { font-size: 14px; color: var(--ek-muted); font-weight: 500; }
.w-eka .chip { display: inline-block; background: var(--ek-soft); border-radius: 20px; padding: 3px 10px; font-size: 12px; margin: 2px 4px 2px 0; }
.w-eka .chip b { color: var(--ek-navy); }
.w-eka .badge-navrh { background: #fff4e5; color: #b76e00; font-weight: 600; }
/* EK-A */
.w-eka .ue-bar { display: flex; height: 44px; border-radius: 8px; overflow: hidden; background: var(--ek-soft); }
.w-eka .ue-bar > div { display: flex; align-items: center; justify-content: center; color: #fff; font-weight: 600; font-size: 13px; white-space: nowrap; overflow: hidden; }
.w-eka .ue-legend .dot { width: 10px; height: 10px; border-radius: 3px; display: inline-block; margin-right: 6px; }
.w-eka .ue-legend .val { font-weight: 600; color: var(--ek-navy); }
.w-eka .tile { border: 1px solid var(--ek-line); border-radius: 10px; padding: 16px; height: 100%; display: flex; flex-direction: column; background: #fff; }
.w-eka .tile .t-val { font-size: 28px; font-weight: 600; color: var(--ek-navy); line-height: 1.1; }
.w-eka .tile .t-unit { font-size: 14px; color: var(--ek-muted); font-weight: 500; }
.w-eka .tile .t-sub { font-size: 13px; color: #495057; }
.w-eka .tile .t-foot { margin-top: auto; padding-top: 12px; display: flex; justify-content: space-between; align-items: center; font-size: 12px; }
.w-eka .ring { --p: 0; width: 64px; height: 64px; border-radius: 50%; background: conic-gradient(var(--ek-navy) calc(var(--p) * 1%), #e8f6ff 0); display: grid; place-items: center; flex-shrink: 0; }
.w-eka .ring span { width: 48px; height: 48px; border-radius: 50%; background: #fff; display: grid; place-items: center; font-size: 12px; font-weight: 700; color: var(--ek-navy); }
.w-eka .cmp { display: flex; align-items: center; gap: 8px; font-size: 12px; margin-top: 6px; }
.w-eka .cmp .cmp-l { flex: 0 0 46%; min-width: 0; }
.w-eka .cmp b { white-space: nowrap; color: var(--ek-navy); }
.w-eka .cmp .bar { flex: 1; height: 6px; background: #eef1f6; border-radius: 3px; overflow: hidden; }
.w-eka .cmp .bar i { display: block; height: 100%; background: var(--ek-blue); }
.w-eka .steps { display: flex; align-items: flex-end; gap: 8px; height: 64px; }
.w-eka .steps div { flex: 1; background: #9fd3ef; border-radius: 4px 4px 0 0; position: relative; }
.w-eka .steps div.on { background: var(--ek-blue); }
.w-eka .steps div span { position: absolute; top: -18px; left: 0; right: 0; text-align: center; font-size: 11px; font-weight: 600; color: var(--ek-navy); }
.w-eka .steps-l { display: flex; gap: 8px; font-size: 11px; color: var(--ek-muted); }
.w-eka .steps-l span { flex: 1; text-align: center; }
/* EK-B */
.w-eka .cac-row { display: grid; grid-template-columns: 190px 1fr 150px; align-items: center; gap: 12px; margin-bottom: 14px; }
.w-eka .cac-name { font-size: 13px; font-weight: 600; color: var(--ek-navy); }
.w-eka .cac-name small { display: block; font-weight: 400; color: var(--ek-muted); font-size: 11.5px; }
.w-eka .cac-track { position: relative; height: 28px; background: var(--ek-soft); border-radius: 6px; }
.w-eka .cac-fill { position: absolute; left: 0; top: 0; bottom: 0; display: flex; border-radius: 6px; overflow: hidden; }
.w-eka .cac-fill i { display: block; height: 100%; }
.w-eka .c-media { background: #9fd3ef; } .w-eka .c-work { background: var(--ek-blue); } .w-eka .c-partner { background: #45cb85; }
.w-eka .c-over .c-work { background: #f06548; } .w-eka .c-over .c-media { background: #f9b7a9; }
.w-eka .cac-limit { position: absolute; top: -6px; bottom: -6px; border-left: 2px dashed var(--ek-navy); }
.w-eka .limit-lbl { position: absolute; top: -24px; transform: translateX(-50%); font-size: 11px; font-weight: 600; color: var(--ek-navy); white-space: nowrap; }
.w-eka .cac-val { white-space: nowrap; text-align: right; font-weight: 700; color: var(--ek-navy); font-size: 15px; }
.w-eka .cac-val.over { color: #f06548; }
.w-eka .ch { border: 1px solid var(--ek-line); border-radius: 10px; padding: 16px; height: 100%; display: flex; flex-direction: column; }
.w-eka .ch h6 { font-size: 14px; color: var(--ek-navy); margin: 0; }
.w-eka .ch .kv { display: flex; justify-content: space-between; gap: 8px; font-size: 13px; padding: 6px 0; border-bottom: 1px dashed #eef1f6; }
.w-eka .ch .kv:last-of-type { border-bottom: 0; }
.w-eka .ch .kv b { color: var(--ek-navy); white-space: nowrap; }
.w-eka .dec { font-size: 11px; font-weight: 600; border-radius: 4px; padding: 2px 8px; white-space: nowrap; }
.w-eka .dec-main { background: #e8f6ff; color: #1b7ca8; } .w-eka .dec-up { background: #daf4e7; color: #2a8c5c; } .w-eka .dec-lim { background: #fff4e5; color: #b76e00; }
.w-eka .dec-test { background: #f0e9ff; color: #6b46c1; } .w-eka .dec-stop { background: #fde8e4; color: #c0392b; }
/* EK-C */
.w-eka .ltv { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.w-eka .ltv .blk { background: var(--ek-soft); border-radius: 10px; padding: 10px 16px; text-align: center; min-width: 120px; }
.w-eka .ltv .blk b { display: block; font-size: 22px; color: var(--ek-navy); white-space: nowrap; }
.w-eka .ltv .blk span { font-size: 12px; color: var(--ek-muted); }
.w-eka .ltv .op { font-size: 22px; color: var(--ek-muted); font-weight: 300; }
.w-eka .ltv .res { background: var(--ek-navy); } .w-eka .ltv .res b { color: #fff; font-size: 26px; } .w-eka .ltv .res span { color: #cfe6f7; }
.w-eka .hb { display: grid; grid-template-columns: 150px 1fr 54px; align-items: center; gap: 10px; margin-bottom: 12px; font-size: 13px; }
.w-eka .hb .tr { position: relative; height: 22px; background: var(--ek-soft); border-radius: 5px; }
.w-eka .hb .fl { position: absolute; left: 0; top: 0; bottom: 0; border-radius: 5px; background: var(--ek-blue); }
.w-eka .hb .fl.bad { background: #f06548; } .w-eka .hb .fl.top { background: #45cb85; }
.w-eka .hb .fl.over::after { content: '\203A'; position: absolute; right: 6px; top: 0; color: #fff; font-weight: 700; }
.w-eka .hb .ln { position: absolute; top: -5px; bottom: -5px; border-left: 2px dashed var(--ek-navy); }
.w-eka .hb .v { text-align: right; font-weight: 700; color: var(--ek-navy); white-space: nowrap; } .w-eka .hb .v.bad { color: #f06548; }
.w-eka .axis { display: grid; grid-template-columns: 150px 1fr 54px; gap: 10px; font-size: 11px; color: var(--ek-muted); }
.w-eka .axis div { position: relative; height: 14px; }
.w-eka .axis div span { white-space: nowrap; position: absolute; transform: translateX(-50%); }
.w-eka .axis div span:first-child { transform: none; } .w-eka .axis div span:last-child { transform: translateX(-100%); }
.w-eka .dc { border-radius: 10px; padding: 14px; height: 100%; border: 1px solid var(--ek-line); border-top: 4px solid; }
.w-eka .dc h6 { font-size: 12px; text-transform: uppercase; letter-spacing: .03em; margin-bottom: 6px; }
.w-eka .dc .chn { font-weight: 700; color: var(--ek-navy); font-size: 15px; }
.w-eka .dc p { font-size: 12.5px; margin: 6px 0 0; color: #495057; }
.w-eka .d-up { border-top-color: #45cb85; } .w-eka .d-up h6 { color: #2a8c5c; }
.w-eka .d-main { border-top-color: var(--ek-blue); } .w-eka .d-main h6 { color: #1b7ca8; }
.w-eka .d-lim { border-top-color: #f7b84b; } .w-eka .d-lim h6 { color: #b76e00; }
.w-eka .d-test { border-top-color: #8c68cd; } .w-eka .d-test h6 { color: #6b46c1; }
.w-eka .d-stop { border-top-color: #f06548; } .w-eka .d-stop h6 { color: #c0392b; }
/* EK-D */
.w-eka .scale { position: relative; height: 70px; margin: 40px 6px 8px; }
.w-eka .scale .base { position: absolute; left: 0; right: 0; top: 28px; height: 14px; border-radius: 7px; background: linear-gradient(90deg, #f9b7a9 0, #f9b7a9 var(--a), #9fd3ef var(--a), #9fd3ef var(--b), #45cb85 var(--b)); }
.w-eka .scale .mk { position: absolute; top: 0; transform: translateX(-50%); text-align: center; }
.w-eka .scale .mk .pin { width: 2px; height: 58px; background: var(--ek-navy); margin: 0 auto; }
.w-eka .scale .mk .pin.goal { background: #2a8c5c; }
.w-eka .scale .mk .lb { position: absolute; top: -30px; left: 50%; transform: translateX(-50%); white-space: nowrap; font-size: 12px; font-weight: 600; color: var(--ek-navy); background: #fff; padding: 0 4px; }
.w-eka .scale .mk .lb.goal { color: #2a8c5c; }
.w-eka .scale .mk .lb small { display: block; font-weight: 400; color: var(--ek-muted); font-size: 11px; }
.w-eka .scale .ticks { position: absolute; left: 0; right: 0; top: 50px; display: flex; justify-content: space-between; font-size: 11px; color: var(--ek-muted); }
.w-eka .funnel { display: flex; align-items: center; gap: 10px; }
.w-eka .funnel .st { flex: 1; min-width: 0; background: var(--ek-soft); border-radius: 10px; padding: 12px; text-align: center; }
.w-eka .funnel .st b { display: block; font-size: 24px; color: var(--ek-navy); }
.w-eka .funnel .st span { font-size: 12px; color: var(--ek-muted); }
.w-eka .funnel .ar { color: var(--ek-muted); font-size: 12px; text-align: center; white-space: nowrap; }
.w-eka .funnel .ar i { display: block; font-size: 20px; }
.w-eka .cap { display: flex; align-items: center; gap: 14px; }
.w-eka .ring2 { --p: 0; width: 76px; height: 76px; border-radius: 50%; background: conic-gradient(#f7b84b calc(var(--p) * 1%), #eef1f6 0); display: grid; place-items: center; flex-shrink: 0; }
.w-eka .ring2 span { width: 58px; height: 58px; border-radius: 50%; background: #fff; display: grid; place-items: center; font-weight: 700; color: var(--ek-navy); font-size: 14px; }
.w-eka .people { display: flex; gap: 4px; flex-wrap: wrap; } .w-eka .people i { font-size: 22px; color: var(--ek-blue); }
/* EK-E */
.w-eka .cov { position: relative; height: 16px; border-radius: 8px; background: #eef1f6; margin: 28px 0 6px; overflow: visible; }
.w-eka .cov-part { position: absolute; top: 0; bottom: 0; background-color: var(--c); }
.w-eka .cov-part:first-child { border-radius: 8px 0 0 8px; }
.w-eka .cov .tick { position: absolute; top: -24px; transform: translateX(-50%); font-size: 11px; white-space: nowrap; color: var(--ek-navy); font-weight: 600; }
.w-eka .cov .tick::after { content: ''; position: absolute; left: 50%; top: 18px; width: 2px; height: 22px; background: var(--ek-navy); }
.w-eka .layers { display: flex; flex-direction: column; align-items: center; gap: 4px; }
.w-eka .layers .ly { border-radius: 8px; text-align: center; padding: 8px 6px; color: #fff; font-size: 13px; }
.w-eka .layers .ly b { display: block; font-size: 20px; }
.w-eka .layers .ly1 { width: 100%; background: #9fb3d6; color: var(--ek-navy); } .w-eka .layers .ly2 { width: 72%; background: var(--ek-blue); } .w-eka .layers .ly3 { width: 48%; background: var(--ek-navy); }
.w-eka .seg { display: grid; grid-template-columns: 240px 1fr 150px; align-items: center; gap: 12px; padding: 9px 0; border-bottom: 1px dashed var(--ek-line); }
.w-eka .seg:last-of-type { border-bottom: 0; }
.w-eka .seg .nm { font-size: 13px; } .w-eka .seg .nm small { display: block; color: var(--ek-muted); font-size: 12px; }
.w-eka .seg .sbar { height: 22px; border-radius: 5px; background-color: var(--ek-blue); color: #fff; font-size: 12px; font-weight: 600; display: flex; align-items: center; padding-left: 8px; }
.w-eka .seg .sbar.unv { background-color: #9fb3d6; color: var(--ek-navy); }
.w-eka .seg .val { text-align: right; font-size: 13px; font-weight: 600; color: var(--ek-navy); white-space: nowrap; }
.w-eka .seg .val small { display: block; font-weight: 400; color: var(--ek-muted); font-size: 11px; }
/* EK-F */
.w-eka .sc { border: 1px solid var(--ek-line); border-top: 4px solid var(--c); border-radius: 10px; padding: 16px; height: 100%; background: #fff; }
.w-eka .sc.base { box-shadow: 0 0 0 2px rgba(38,164,221,.2); }
.w-eka .sc h6 { margin: 0; font-size: 14px; color: var(--c); font-weight: 700; }
.w-eka .sc .conv { font-size: 30px; font-weight: 600; color: var(--ek-navy); line-height: 1.1; }
.w-eka .sc .conv small { font-size: 13px; color: var(--ek-muted); font-weight: 500; }
.w-eka .kvb { display: grid; grid-template-columns: 70px 1fr 84px; align-items: center; gap: 8px; font-size: 12px; margin: 6px 0; }
.w-eka .kvb .k { color: var(--ek-muted); } .w-eka .kvb .b { height: 10px; border-radius: 5px; background: #eef1f6; overflow: hidden; } .w-eka .kvb .b i { display: block; height: 100%; border-radius: 5px; }
.w-eka .kvb .v { text-align: right; font-weight: 600; color: var(--ek-navy); white-space: nowrap; }
.w-eka .sc .res { display: flex; justify-content: space-between; align-items: baseline; border-top: 1px solid var(--ek-line); margin-top: 10px; padding-top: 10px; }
.w-eka .sc .res b { font-size: 24px; color: #2a8c5c; white-space: nowrap; }
.w-eka .sc .need { background: var(--ek-soft); border-radius: 8px; padding: 10px; margin-top: 10px; font-size: 12px; }
.w-eka .sc .need b { color: var(--ek-navy); font-size: 15px; }
.w-eka .tor .row1 { display: grid; grid-template-columns: 170px 1fr; align-items: center; gap: 10px; margin: 10px 0; font-size: 12px; }
.w-eka .tor .tr { position: relative; height: 24px; background: var(--ek-soft); border-radius: 4px; }
.w-eka .tor .seg { position: absolute; top: 3px; bottom: 3px; border-radius: 3px; font-size: 11px; font-weight: 600; display: flex; align-items: center; white-space: nowrap; overflow: hidden; padding: 0; border: 0; grid-template-columns: none; }
.w-eka .tor .neg { background: #f9b7a9; color: #8a2a17; justify-content: flex-start; padding-left: 4px; }
.w-eka .tor .pos { background: #a8e3c4; color: #1d6b43; justify-content: flex-end; padding-right: 4px; }
.w-eka .tor .mid { position: absolute; top: -6px; bottom: -6px; width: 2px; background: var(--ek-navy); }
.w-eka .flip { display: flex; gap: 12px; align-items: flex-start; padding: 10px 0; border-bottom: 1px dashed var(--ek-line); }
.w-eka .flip:last-child { border-bottom: 0; }
.w-eka .flip .n { font-size: 20px; font-weight: 600; color: var(--ek-navy); min-width: 100px; white-space: nowrap; }
/* EK-G */
.w-eka .kp { border: 1px solid var(--ek-line); border-radius: 10px; padding: 14px; height: 100%; }
.w-eka .kp .v { font-size: 24px; font-weight: 600; color: var(--ek-navy); white-space: nowrap; } .w-eka .kp .v small { font-size: 13px; color: var(--ek-muted); font-weight: 500; }
.w-eka .kp .s { font-size: 12px; color: var(--ek-muted); }
.w-eka .kp-warn { border-color: #ffd8a8; background: #fff8ef; } .w-eka .kp-warn .v { color: #c2410c; }
.w-eka .ekg-svg { width: 100%; height: auto; display: block; }
.w-eka .hs { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.w-eka .grow { display: grid; gap: 2px; flex: 1; }
.w-eka .grow div { height: 26px; border-radius: 3px; font-size: 11px; display: flex; align-items: center; justify-content: center; font-weight: 600; }
.w-eka .grow .mlbl { height: auto; color: var(--ek-muted); font-weight: 400; font-size: 10px; }
.w-eka .grow-l { width: 86px; flex-shrink: 0; font-size: 12px; color: var(--ek-muted); }
.w-eka .cash { display: flex; gap: 8px; align-items: flex-end; }
.w-eka .cb { flex: 1; text-align: center; min-width: 0; }
.w-eka .cv { font-size: 11px; font-weight: 600; color: #8a2a17; white-space: nowrap; } .w-eka .cv.pos { color: #2a8c5c; }
.w-eka .cbar { height: 80px; display: flex; align-items: flex-start; justify-content: center; border-top: 2px solid var(--ek-navy); margin-top: 4px; }
.w-eka .cbar i { display: block; width: 70%; background: #f9b7a9; border-radius: 0 0 4px 4px; }
.w-eka .cbar i.min { background: #f06548; } .w-eka .cbar i.pos { background: #a8e3c4; }
.w-eka .cm { font-size: 11px; color: var(--ek-muted); margin-top: 4px; }
.w-eka .ek-tbl td, .w-eka .ek-tbl th { text-align: right; white-space: nowrap; font-size: 12px; padding: 6px 8px; }
.w-eka .ek-tbl th { color: var(--ek-muted); font-weight: 600; }
@media (max-width: 575.98px) {
    .w-eka .tile .t-val, .w-eka .big { font-size: 24px; }
    .w-eka .ue-bar { height: 36px; } .w-eka .ue-bar > div { font-size: 11px; }
    .w-eka .limit-lbl { display: none; }
    .w-eka .cac-row { grid-template-columns: 1fr auto; gap: 6px 10px; } .w-eka .cac-track { grid-column: 1 / 3; grid-row: 2; }
    .w-eka .hb, .w-eka .axis { grid-template-columns: 110px 1fr 46px; gap: 6px; font-size: 12px; }
    .w-eka .axis div span:last-child { display: none; }
    .w-eka .ltv .op { display: none; } .w-eka .ltv .blk { flex: 1 1 28%; min-width: 0; padding: 10px 6px; } .w-eka .ltv .blk b { font-size: 18px; } .w-eka .ltv .res { flex-basis: 100%; }
    .w-eka .scale { margin-top: 76px; } .w-eka .scale .mk.m1 .lb { top: -66px; }
    .w-eka .funnel { gap: 6px; } .w-eka .funnel .st { padding: 10px 6px; } .w-eka .funnel .st b { font-size: 20px; } .w-eka .funnel .ar { font-size: 11px; }
    .w-eka .seg { grid-template-columns: 1fr auto; gap: 4px 10px; } .w-eka .seg .nm { grid-column: 1 / 3; }
    .w-eka .tor .row1 { grid-template-columns: 1fr; } .w-eka .tor .row1 > span { margin-bottom: -4px; }
    .w-eka .hs .ekg-svg { min-width: 760px; } .w-eka .hs .hsi { min-width: 600px; }
}

/* 0.17.1 Karty častí stratégie a prepínač častí. Farby značky, bez farebného kódovania. */
.sec-head-row h5 { color: var(--m-navy); font-weight: 600; }
.sec-tile { display: flex; flex-direction: row; align-items: flex-start; gap: 14px; height: 100%; padding: 18px; border: 0; border-radius: 6px; background: #fff; color: inherit; box-shadow: 0 1px 2px rgba(56, 65, 74, .15); transition: box-shadow .15s, transform .15s; }
.sec-tile:hover { color: inherit; box-shadow: 0 6px 18px rgba(var(--m-navy-rgb), .14); transform: translateY(-2px); }
.sec-tile-icon { width: 44px; height: 44px; flex-shrink: 0; border-radius: 12px; display: inline-flex; align-items: center; justify-content: center; font-size: 22px; color: var(--m-navy); background: var(--m-light); }
.sec-tile:hover .sec-tile-icon { background: var(--m-navy); color: #fff; }
.sec-tile-body { display: flex; flex-direction: column; gap: 2px; min-width: 0; flex-grow: 1; }
.sec-tile-title { font-size: 15px; font-weight: 700; color: var(--m-navy); line-height: 1.3; }
.sec-tile-desc { font-size: 12.5px; color: var(--vz-secondary-color); line-height: 1.45; }
.sec-tile-meta { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.sec-chip { display: inline-flex; align-items: center; gap: 4px; font-size: 11.5px; color: #5b6b86; background: #f1f4f9; border-radius: 20px; padding: 2px 9px; }
.sec-tile-go { font-size: 20px; color: #c3cbd8; align-self: center; transition: color .15s, transform .15s; }
.sec-tile:hover .sec-tile-go { color: var(--m-blue); transform: translateX(3px); }

.sec-nav { display: inline-flex; flex-wrap: wrap; gap: 2px; padding: 3px; background: #fff; border: 1px solid #e3e8f0; border-radius: 9px; max-width: 100%; }
.sec-pill { display: inline-flex; align-items: center; gap: 6px; padding: 5px 10px; border-radius: 6px; color: #5b6b86; font-size: 12.5px; font-weight: 500; white-space: nowrap; transition: background .15s, color .15s; }
.sec-pill i { font-size: 15px; color: #8a97ad; }
.sec-pill:hover { color: var(--m-navy); background: #f3f6fa; }
.sec-pill.active { background: var(--m-light); color: var(--m-navy); font-weight: 600; }
.sec-pill.active i { color: var(--m-blue); }
.sec-head { display: flex; align-items: center; gap: 12px; }
.sec-head .sec-tile-icon { width: 40px; height: 40px; font-size: 20px; }
.sec-head-title { color: var(--m-navy); font-weight: 700; font-size: 1.15rem; }
@media (max-width: 1599.98px) { .sec-pill:not(.active) span { display: none; } .sec-pill:not(.active) { padding: 5px 9px; } }
@media (max-width: 767.98px) {
  .sec-nav { display: flex; flex-wrap: nowrap; overflow-x: auto; scrollbar-width: thin; }
}

.ai-card { border-top: 3px solid var(--m-blue); }
.ai-card-icon { width: 46px; height: 46px; flex-shrink: 0; border-radius: 12px; display: inline-flex; align-items: center; justify-content: center; font-size: 24px; color: #fff; background: linear-gradient(135deg, var(--m-blue), var(--m-navy)); }
.ai-people li + li { border-top: 1px dashed #e6eaf1; padding-top: 8px; }
.ai-intro { display: flex; gap: 16px; align-items: flex-start; padding: 16px; border-radius: 10px; background: var(--m-light); }
.ai-steps { padding-left: 18px; }
.ai-steps li { margin-bottom: 2px; }
.ai-proj { padding: 14px 16px; border: 1px solid #e6eaf1; border-radius: 10px; scroll-margin-top: 90px; }
.ai-proj.is-on { border-left: 4px solid #30a46c; }
.ai-proj-global { border-left: 4px solid var(--m-blue); background: #fbfcfe; }
.ai-proj:target { box-shadow: 0 0 0 3px color-mix(in srgb, var(--m-blue) 25%, transparent); }
.ai-conn { display: flex; align-items: center; gap: 8px; padding: 6px 0; font-size: 13px; border-top: 1px dashed #e6eaf1; }
.ai-link-box summary { cursor: pointer; color: var(--m-blue); }

/* 0.17.1 Widgety častí MS, KO, SC, KA, AS a DZ (blok dw). Štýl nadväzuje na .w-eka. */
.dw-part + .dw-part { margin-top: 22px; }
.dw-kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 12px; position: relative; }
.dw-kpi .t-val { font-size: 24px; }
.dw-state { position: absolute; top: -2px; right: 0; }
.w-eka .dw-badge { display: inline-block; font-size: 11px; font-weight: 600; border-radius: 4px; padding: 2px 7px; white-space: nowrap; vertical-align: 1px; }
.dw-muted { background: #f1f4f9; color: #5b6b86; } .dw-blue { background: #e8f6ff; color: #1b7ca8; } .dw-navy { background: #e6ebf6; color: #243E83; }
.dw-red { background: #fde8e4; color: #c0392b; } .dw-violet { background: #f0e9ff; color: #6b46c1; } .dw-green { background: #daf4e7; color: #2a8c5c; } .dw-orange { background: #fff4e5; color: #b76e00; }
.dw-hbars { display: flex; flex-direction: column; gap: 10px; }
.dw-hb { display: grid; grid-template-columns: minmax(150px, 34%) 1fr auto; align-items: center; gap: 12px; font-size: 13px; }
.dw-hb-name { font-weight: 600; color: var(--ek-navy); min-width: 0; }
.dw-hb-name small { display: block; font-weight: 400; color: var(--ek-muted); font-size: 11.5px; }
.dw-hb-tr { position: relative; height: 16px; background: var(--ek-soft); border-radius: 5px; overflow: hidden; }
.dw-hb-fl { position: absolute; left: 0; top: 0; bottom: 0; border-radius: 5px; background: var(--ek-blue); }
.dw-hb-fl.dw-navy { background: var(--ek-navy); } .dw-hb-fl.dw-blue { background: var(--ek-blue); } .dw-hb-fl.dw-green { background: #45cb85; } .dw-hb-fl.dw-red { background: #f06548; } .dw-hb-fl.dw-violet { background: #8c68cd; } .dw-hb-fl.dw-orange { background: #f7b84b; }
.is-range .dw-hb-fl { background: #9fd3ef; }
.dw-hb-lo { position: absolute; left: 0; top: 0; bottom: 0; background: var(--ek-blue); border-radius: 5px 0 0 5px; z-index: 1; }
.dw-hb-v { font-weight: 700; color: var(--ek-navy); white-space: nowrap; text-align: right; min-width: 64px; }
.dw-ph { display: inline-block; font-size: 9.5px; font-weight: 700; letter-spacing: .03em; color: var(--pc); border: 1px solid var(--pc); border-radius: 3px; padding: 0 4px; margin-right: 3px; vertical-align: 1px; }
.dw-stack-row { display: grid; grid-template-columns: 110px 1fr; align-items: center; gap: 12px; margin-bottom: 8px; font-size: 13px; }
.dw-stack-name { font-weight: 600; color: var(--ek-navy); }
.w-eka .dw-stack { height: 30px; font-size: 12px; }
.dw-phases { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.dw-phase { border: 1px solid var(--ek-line); border-top: 3px solid var(--pc); border-radius: 10px; padding: 12px; background: #fff; }
.dw-phase-h { display: flex; justify-content: space-between; align-items: center; font-weight: 700; color: var(--pc); letter-spacing: .04em; margin-bottom: 8px; }
.dw-phase-h b { background: #f1f4f9; color: var(--ek-navy); border-radius: 20px; padding: 0 9px; font-size: 12px; }
.dw-phase ul { list-style: none; padding: 0; margin: 0; }
.dw-phase li { display: flex; align-items: center; gap: 6px; font-size: 12.5px; padding: 5px 0; border-top: 1px dashed #eef1f6; }
.dw-phase li:first-child { border-top: 0; }
.dw-phase li b { color: var(--ek-navy); white-space: nowrap; font-size: 12px; }
.dw-dir { font-size: 14px; } .dw-dir.up { color: #2a8c5c; } .dw-dir.dn { color: #c0392b; }
.dw-tag { display: inline-flex; align-items: center; gap: 6px; background: var(--ek-soft); border-radius: 20px; padding: 3px 4px 3px 11px; font-size: 12.5px; margin: 0 6px 6px 0; }
.dw-arche { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.dw-axis { border: 1px solid var(--ek-line); border-radius: 10px; padding: 12px; background: #fff; }
.dw-axis.on { border-color: var(--ek-navy); box-shadow: inset 0 0 0 1px var(--ek-navy); }
.dw-axis-h { font-size: 11.5px; text-transform: uppercase; letter-spacing: .03em; color: var(--ek-muted); font-weight: 600; margin-bottom: 8px; }
.dw-axis.on .dw-axis-h { color: var(--ek-navy); }
.dw-arch { display: inline-flex; flex-direction: column; align-items: center; justify-content: center; min-width: 30%; padding: 6px 8px; margin: 0 4px 4px 0; border-radius: 8px; font-size: 12.5px; color: #8a97ad; background: #f6f8fb; }
.dw-arch small { font-size: 10px; text-transform: uppercase; letter-spacing: .04em; }
.dw-arch.primary { background: var(--ek-navy); color: #fff; font-weight: 700; }
.dw-arch.secondary { background: #e8f6ff; color: #1b7ca8; font-weight: 600; box-shadow: inset 0 0 0 1px #9fd3ef; }
.dw-arch.shadow { background: #fff; color: #c0392b; box-shadow: inset 0 0 0 1px #f4b8ad; text-decoration: line-through; }
.dw-arch.shadow small { text-decoration: none; }
.dw-steps { height: 90px; }
.dw-gantt { font-size: 12.5px; }
.dw-g-axis, .dw-g-row { display: grid; grid-template-columns: minmax(150px, 30%) 1fr; gap: 12px; align-items: center; }
.dw-g-ticks { position: relative; height: 18px; border-bottom: 1px solid var(--ek-line); }
.dw-g-ticks span { position: absolute; transform: translateX(-2px); font-size: 11px; color: var(--ek-muted); white-space: nowrap; }
.dw-g-row { padding: 6px 0; border-bottom: 1px dashed #eef1f6; }
.dw-g-name { font-weight: 600; color: var(--ek-navy); min-width: 0; }
.dw-g-name small { display: block; font-weight: 400; color: var(--ek-muted); font-size: 11.5px; }
.dw-g-tr { position: relative; height: 26px; }
.dw-g-grid { position: absolute; top: -6px; bottom: -6px; border-left: 1px dashed #eef1f6; }
.dw-g-bar { position: absolute; top: 3px; bottom: 3px; border-radius: 6px; background: var(--ek-blue); color: #fff; font-size: 11px; font-weight: 600; display: flex; align-items: center; padding: 0 8px; overflow: hidden; white-space: nowrap; min-width: 8px; }
.dw-g-bar.dw-blue { background: var(--ek-blue); color: #fff; } .dw-g-bar.dw-violet { background: #8c68cd; color: #fff; } .dw-g-bar.dw-orange { background: #f7b84b; color: #4a3500; } .dw-g-bar.dw-navy { background: var(--ek-navy); color: #fff; }
.dw-g-goal { text-align: right; font-size: 12px; font-weight: 600; color: #2a8c5c; margin-top: 6px; }
.dw-group h6 { font-size: 13.5px; color: var(--ek-navy); margin-bottom: 8px; }
.dw-gi { display: flex; align-items: center; gap: 8px; font-size: 12.5px; padding: 5px 0; border-top: 1px dashed #eef1f6; }
.dw-gi small { display: block; color: var(--ek-muted); font-size: 11px; }
.dw-dot { width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0; }
.dw-card { position: relative; border-top: 3px solid var(--cc); }
.dw-card.emph { box-shadow: 0 0 0 2px #45cb85; }
.dw-role { display: block; margin-bottom: 4px; font-size: 10.5px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: var(--cc); }
.dw-card-t { font-weight: 600; color: var(--ek-navy); font-size: 13.5px; }
.dw-kv { display: flex; justify-content: space-between; gap: 8px; font-size: 12.5px; padding: 5px 0; border-top: 1px dashed #eef1f6; }
.dw-kv:first-of-type { margin-top: 10px; }
.dw-kv b { color: var(--ek-navy); white-space: nowrap; }
.dw-statement { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 12px; }
.dw-st { border: 1px solid var(--ek-line); border-radius: 10px; padding: 14px; }
.dw-st.first { background: var(--ek-navy); border-color: var(--ek-navy); }
.dw-st.first .ek-lbl { color: #9fd3ef; } .dw-st.first .dw-st-t { color: #fff; font-size: 15px; font-weight: 600; }
.dw-st-t { font-size: 13.5px; margin-top: 4px; }
.dw-kpit th { font-size: 11.5px; text-transform: uppercase; color: var(--ek-muted); font-weight: 600; }
.dw-kpit td { font-size: 13px; }
.dw-wk { text-align: center; width: 80px; }
.dw-wk-bar { height: 22px; width: 28px; margin: 0 auto 2px; background: var(--ek-soft); border-radius: 4px; position: relative; overflow: hidden; }
.dw-wk-bar i { position: absolute; left: 0; right: 0; bottom: 0; background: var(--ek-blue); }
.dw-wk span { font-size: 11.5px; font-weight: 600; color: var(--ek-navy); }
.dw-dayline { position: relative; height: 130px; margin: 0 40px; }
.dw-dl-track { position: absolute; left: 0; right: 0; top: 54px; height: 4px; background: #e8f6ff; border-radius: 2px; }
.dw-dl-pt { position: absolute; top: 40px; transform: translateX(-50%); display: flex; flex-direction: column; align-items: center; }
.dw-dl-ic { width: 32px; height: 32px; border-radius: 50%; background: var(--ek-navy); color: #fff; display: grid; place-items: center; font-size: 15px; box-shadow: 0 0 0 4px #fff; }
.dw-dl-l { position: absolute; top: 38px; font-size: 11.5px; text-align: center; white-space: nowrap; color: #495057; }
.dw-dl-l b { display: block; color: var(--ek-navy); font-size: 11px; }
.dw-dl-pt.low .dw-dl-l { top: -36px; }
.dw-sexier { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 10px; }
.dw-sx { border: 1px solid var(--ek-line); border-radius: 10px; padding: 12px; background: #fff; }
.dw-sx-l { width: 34px; height: 34px; border-radius: 8px; background: var(--ek-navy); color: #fff; font-weight: 700; display: grid; place-items: center; font-size: 17px; }
.dw-sx-n { font-weight: 700; color: var(--ek-navy); font-size: 12.5px; margin: 8px 0 4px; }
.dw-sx-t { font-size: 12.5px; color: #495057; }
.dw-process { list-style: none; padding: 0; margin: 0; counter-reset: none; display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 12px; }
.dw-process li { display: flex; gap: 10px; border: 1px solid var(--ek-line); border-radius: 10px; padding: 12px; }
.dw-pn { width: 28px; height: 28px; border-radius: 50%; background: var(--m-light); color: var(--ek-navy); font-weight: 700; display: grid; place-items: center; flex-shrink: 0; }
.dw-process b { color: var(--ek-navy); font-size: 13px; }
.dw-pc-good { border-left: 3px solid #45cb85; } .dw-pc-warn { border-left: 3px solid #f7b84b; }
.w-eka .dw-pc { padding: 12px 14px; height: auto; }
.dw-pci summary { font-size: 13px; cursor: pointer; padding: 3px 0; color: #343a40; }
.dw-pci[open] summary { font-weight: 600; color: var(--ek-navy); }
.dw-yn h6 { font-size: 14px; } .dw-yn-yes h6 { color: #2a8c5c; } .dw-yn-no h6 { color: #c0392b; }
.dw-yn-yes { border-left: 3px solid #45cb85; } .dw-yn-no { border-left: 3px solid #f06548; }
.dw-yn-i { padding: 6px 0; border-top: 1px dashed #eef1f6; }
.dw-yn-i b { color: var(--ek-navy); font-size: 13px; }
.w-eka .dw-qa { padding: 10px 14px; height: auto; }
.dw-qa summary { cursor: pointer; font-weight: 600; color: var(--ek-navy); font-size: 13px; }
@media (max-width: 1199.98px) { .dw-sexier { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 991.98px) { .dw-phases { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 575.98px) {
  .dw-phases, .dw-arche { grid-template-columns: 1fr; }
  .dw-sexier { grid-template-columns: 1fr 1fr; }
  .dw-hb { grid-template-columns: 1fr auto; } .dw-hb-tr { grid-column: 1 / -1; grid-row: 2; }
  .dw-g-axis, .dw-g-row { grid-template-columns: 1fr; } .dw-g-axis > div:first-child { display: none; }
  .dw-dayline { margin: 0 18px; }
  .dw-state { position: static; }
  .dw-g-ticks span:nth-child(even) { display: none; }
}

.dw-st.first .vcode, .dw-st.first a { color: #9fd3ef; background: rgba(255,255,255,.12); }

/* 0.18.0 Interaktívne grafy G a P */
.graph-wrap { position: relative; }
.graph-canvas { position: relative; height: 420px; border: 1px solid var(--ek-line); border-radius: 10px; background: #fbfcfe; background-image: radial-gradient(#e3e8f0 1px, transparent 1px); background-size: 18px 18px; overflow: hidden; }
.graph-loading { position: absolute; inset: 0; display: grid; place-items: center; color: var(--ek-muted); font-size: 13px; }
.graph-detail { position: absolute; top: 12px; right: 12px; width: 290px; z-index: 5; border: 1px solid var(--ek-line); border-radius: 10px; padding: 14px; background: #fff; box-shadow: 0 10px 28px rgba(36, 62, 131, .16); overflow: auto; max-height: min(560px, calc(100% - 24px)); }
.graph-detail[hidden] { display: none; }
.graph-close { position: absolute; top: 10px; right: 10px; font-size: 11px; }
.graph-d-code { font-size: 11px; font-weight: 600; color: #1b7ca8; }
.graph-d-title { color: var(--ek-navy); font-size: 15px; margin: 2px 0 10px; }
.graph-d-kv { display: flex; flex-direction: column; font-size: 12.5px; padding: 6px 0; border-top: 1px dashed #eef1f6; }
.graph-d-kv span { color: var(--ek-muted); font-size: 11px; text-transform: uppercase; letter-spacing: .03em; }
.graph-d-kv b { color: #1e2a44; font-weight: 600; }
.graph-d-lbl { font-size: 11px; text-transform: uppercase; letter-spacing: .03em; color: var(--ek-muted); margin-top: 8px; }
.graph-d-chips { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 4px; }
.graph-chip { font-size: 12px; background: var(--m-navy); color: #fff; border-radius: 4px; padding: 2px 8px; }
.graph-filter .btn { font-size: 12px; }
.graph-filter .btn.active { background: var(--m-light); color: var(--m-navy); font-weight: 600; }
.graph-ph { display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: var(--pc); margin-right: 5px; }
.graph-legend span { margin-right: 12px; white-space: nowrap; color: #5b6b86; }
.graph-legend i { display: inline-block; width: 10px; height: 10px; border-radius: 3px; margin-right: 5px; vertical-align: -1px; }
.graph-legend i.dash { width: 18px; height: 0; border-top: 2px dashed #f06548; border-radius: 0; vertical-align: 3px; }
.graph-card:not(#graph-p-card) .graph-legend i.dash { border-color: #9aa7bd; }
.graph-card.graph-full { position: fixed; inset: 0; z-index: 2000; margin: 0; border-radius: 0; overflow: auto; }
.graph-card.graph-full .graph-canvas { height: calc(100vh - 170px) !important; }
body.graph-lock { overflow: hidden; }
@media (max-width: 991.98px) {
  .graph-wrap { grid-template-columns: 1fr; }
  .graph-detail { position: fixed; top: auto; bottom: 12px; left: 12px; right: 12px; width: auto; max-height: 55vh; z-index: 1050; }
}

/* 0.19.0 Grafy G a P presne ako vo FigJam (SVG) */
@font-face { font-family: Inter; font-style: normal; font-weight: 400; font-display: swap; src: url(../fonts/inter-latin-ext-400-normal.woff2) format('woff2'); unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: Inter; font-style: normal; font-weight: 400; font-display: swap; src: url(../fonts/inter-latin-400-normal.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: Inter; font-style: normal; font-weight: 500; font-display: swap; src: url(../fonts/inter-latin-ext-500-normal.woff2) format('woff2'); unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: Inter; font-style: normal; font-weight: 500; font-display: swap; src: url(../fonts/inter-latin-500-normal.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: Inter; font-style: normal; font-weight: 700; font-display: swap; src: url(../fonts/inter-latin-ext-700-normal.woff2) format('woff2'); unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: Inter; font-style: normal; font-weight: 700; font-display: swap; src: url(../fonts/inter-latin-700-normal.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
.graph-svgbox { height: min(72vh, 760px); touch-action: none; cursor: grab; user-select: none; -webkit-user-select: none; }
.graph-svgbox.dragging { cursor: grabbing; }
.graph-svgbox > svg { display: block; width: 100%; height: 100%; }
.graph-svgbox g.gn { cursor: pointer; }
.graph-svgbox g.gn, .graph-svgbox g.ge, .graph-svgbox g.gt { transition: opacity .15s; }
.graph-svgbox .faded { opacity: .14; }
.graph-svgbox g.ge.hl path[stroke] { stroke: #26A4DD; }
.graph-svgbox g.ge.hl path:not([stroke]) { fill: #26A4DD; }
.graph-svgbox g.gn.hl[data-kind=node] > svg > :first-child { stroke: #26A4DD; stroke-width: 4; }
@media (max-width: 767.98px) { .graph-svgbox { height: 62vh; } }

.p-days th { font-size: 11px; text-transform: uppercase; letter-spacing: .03em; color: var(--ek-muted); font-weight: 600; background: #f8fafc; padding: 10px 12px; }
.p-days td { font-size: 13px; padding: 9px 12px; border-color: #eef1f6; }
.p-days tr.p-side td { background: #fbfcfe; color: #5b6b86; }
.p-dot { display: inline-block; width: 8px; height: 8px; border-radius: 50%; margin-right: 6px; vertical-align: 1px; }

/* 0.19.0 Archetyp značky ako popis, filter fáz vo widgetoch */
.dw-brand { border: 1px solid var(--ek-line); border-radius: 10px; padding: 14px 16px; background: #fff; border-left: 4px solid var(--ek-navy); }
.dw-brand-secondary { border-left-color: #26A4DD; }
.dw-brand-shadow { border-left-color: #e5533d; background: #fffafa; }
.dw-brand-n { font-size: 20px; font-weight: 700; color: var(--ek-navy); line-height: 1.2; margin-top: 2px; }
.dw-brand-shadow .dw-brand-n { color: #c0392b; }
.dw-brand-t { font-size: 13px; color: #3b4a63; margin-top: 8px; padding-top: 8px; border-top: 1px dashed #eef1f6; }
.dw-brand-dl { margin-top: 12px; border-top: 1px solid var(--ek-line); }
.dw-brand-row { display: grid; grid-template-columns: minmax(180px, 24%) 1fr; gap: 16px; padding: 12px 0; border-bottom: 1px solid #eef1f6; }
.dw-brand-row:last-child { border-bottom: 0; }
.dw-brand-row dt { font-size: 12px; text-transform: uppercase; letter-spacing: .03em; color: var(--ek-muted); font-weight: 600; }
.dw-brand-row dt .code { display: inline-block; margin-top: 4px; text-transform: none; letter-spacing: 0; }
.dw-brand-row dd { margin: 0; font-size: 13.5px; color: #1e2a44; }
@media (max-width: 767.98px) { .dw-brand-row { grid-template-columns: 1fr; gap: 4px; } }
.dw-phf { margin-bottom: 4px; }
.dw-phf .btn { font-size: 12px; }
.dw-phf .btn.active { background: var(--m-light); color: var(--m-navy); font-weight: 600; }
.dw-stack-f > button { border: 0; padding: 0; color: #fff; font: inherit; font-weight: 600; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: opacity .15s; }
.dw-stack-f > button.off { opacity: .28; }
.dw-stack-f > button.active { box-shadow: inset 0 0 0 2px rgba(255,255,255,.85); }
.dw-legend-f button { border: 1px solid transparent; background: none; padding: 2px 8px; margin-right: 6px; border-radius: 6px; color: #5b6b86; cursor: pointer; }
.dw-legend-f button.active { border-color: var(--ek-line); background: #fff; color: var(--ek-navy); font-weight: 600; }
.dw-legend-f button.off { opacity: .5; }
.dw-legend-f i.dw-all { background: linear-gradient(90deg, #7c93bf 0 25%, #26A4DD 25% 50%, #243E83 50% 75%, #45cb85 75%); }
.dw-hb[hidden] { display: none; }

/* Označenia v texte */
.mention { font-weight: 500; color: #1b86b8; background: rgba(38, 164, 221, .1); border-radius: 4px; padding: 0 3px; text-decoration: none; white-space: nowrap; }
a.mention:hover { background: rgba(38, 164, 221, .2); }
.mention-me { color: #fff; background: #26a4dd; }
a.mention-me:hover { background: #1b86b8; color: #fff; }
.mention-gone { color: #878a99; background: #f3f6f9; font-weight: 400; }
.chat-list.right .ctext-content .mention:not(.mention-me) { background: rgba(255, 255, 255, .6); }
.mention-wrap { position: relative; }
.mention-pop { position: absolute; left: 0; bottom: 100%; top: auto; min-width: 260px; max-width: 360px; max-height: 300px; overflow-y: auto; margin-bottom: 4px; }
#tk-comment-form .mention-pop, #editMsg .mention-pop { bottom: auto; top: 100%; margin-top: 4px; }
.mention-pop .dropdown-item { white-space: normal; }
.mention-av { width: 26px; height: 26px; font-size: 11px; flex-shrink: 0; }
.min-w-0 { min-width: 0; }

/* Zvonček */
.notif-panel { width: 380px; max-width: calc(100vw - 24px); }
.notif-list { max-height: 420px; overflow-y: auto; }
.notif-item { border-bottom: 1px solid #f3f6f9; text-decoration: none; }
.notif-item:hover { background: #f3f6f9; }
.notif-item.unread { background: rgba(38, 164, 221, .07); }
.notif-item.unread .notif-title { font-weight: 600; }
.notif-ico { position: relative; width: 34px; height: 34px; }
.notif-ico img, .notif-ico .avatar-initials { width: 34px; height: 34px; }
.notif-cat { position: absolute; right: -4px; bottom: -4px; background: #fff; border-radius: 50%; font-size: 12px; width: 18px; height: 18px; line-height: 18px; text-align: center; color: #26a4dd; box-shadow: 0 0 0 1px #e9ebec; }
.notif-tabs .btn { font-size: 12px; padding: 2px 8px; }

/* Prihlásený práve teraz */
.av-presence { position: relative; display: inline-flex; flex-shrink: 0; }
.presence-dot { position: absolute; right: 0; bottom: 0; width: 28%; height: 28%; min-width: 9px; min-height: 9px; max-width: 14px; max-height: 14px; border-radius: 50%; background: #0ab39c; box-shadow: 0 0 0 2px #fff; }
.cover-presence { position: relative; display: inline-block; }
.cover-presence .presence-dot { right: 6px; bottom: 6px; width: 20px; height: 20px; max-width: 20px; max-height: 20px; box-shadow: 0 0 0 3px #fff; }
.presence-inline { display: inline-block; width: 9px; height: 9px; border-radius: 50%; background: #0ab39c; vertical-align: middle; margin-left: 4px; }
.presence-ico { color: #0ab39c; }

/* Požiadavky: päť stĺpcov sa zmestí na širokú obrazovku, na menšej sa tabuľa posúva. */
.rq-board .tasks-list { min-width: 230px; flex: 1 1 0; margin-right: 12px; }
.rq-log { border-left: 2px solid #e9ebec; padding-left: 10px; }
.rq-confirm { border-width: 2px; }

/* Záložky zvončeka rovnako ako druhy vo vyhľadávaní: ikonky s číslom v rohu. */
.notif-tabs .notif-tbadge { position: absolute; top: -6px; right: -6px; font-size: 9px; padding: 2px 4px; min-width: 16px; }

/* Pokyny pre AI */
.ai-prompt-body { white-space: normal; background: #f6f8fb; border-radius: 6px; padding: 12px 14px; font-size: 13px; color: #344054; max-height: 420px; overflow: auto; }
.ai-ph { background: #eef3f9; color: #1b4f8a; border-radius: 4px; padding: 1px 5px; font-size: 11px; }
.ai-ph-auto { background: #e6f7f4; color: #0a7f6f; }
.ai-ph-list { background: #fff4e5; color: #9a5b00; }
.ai-pr-help { background: #f6f8fb; border-radius: 8px; padding: 14px; height: 100%; }

/* Úzke bočné menu: názov položky pri prejdení myšou (od 0.27.0). */
.ms-menu-tip { position: fixed; z-index: 1100; background: var(--m-navy); color: #fff; font-size: 13px; font-weight: 500; padding: 6px 12px; border-radius: 6px; box-shadow: 0 6px 18px rgba(0, 0, 0, .25); pointer-events: none; white-space: nowrap; transform: translateY(-50%); }
.ms-menu-tip::before { content: ""; position: absolute; left: -5px; top: 50%; margin-top: -5px; border: 5px solid transparent; border-left: 0; border-right-color: var(--m-navy); }

/* ---------------------------------------------------------------------------
   0.28.0 Prihlasovacie stránky: dvojdielna karta na tmavomodrom pozadí MURPLE */
.auth-page { min-height: 100vh; margin: 0; position: relative; overflow-x: hidden;
  background: radial-gradient(1100px 650px at 0% 0%, rgba(38, 164, 221, .22) 0%, transparent 60%), linear-gradient(135deg, #16285a 0%, #1b2f66 50%, var(--m-navy) 100%); }
.auth-ring { position: fixed; border-radius: 50%; border: 1px solid rgba(38, 164, 221, .2); pointer-events: none; }
.auth-ring-1 { width: 520px; height: 520px; right: -160px; top: -180px; }
.auth-ring-2 { width: 300px; height: 300px; left: -90px; bottom: -110px; }
.auth-wrap { min-height: 100vh; display: flex; align-items: center; justify-content: center; padding: 32px 16px 56px; position: relative; z-index: 1; }
.auth-card { width: 100%; max-width: 960px; display: grid; grid-template-columns: 1fr 1fr; border-radius: 14px; overflow: hidden; box-shadow: 0 24px 60px rgba(0, 0, 0, .32); }
.auth-cover { color: #fff; padding: 44px 44px 36px; display: flex; flex-direction: column; justify-content: space-between; min-height: 540px;
  background: linear-gradient(160deg, rgba(36, 62, 131, .95), rgba(22, 40, 90, .98)); }
.auth-logo img { height: 40px; width: auto; display: block; }
.auth-tagline { margin: 14px 0 0; color: rgba(255, 255, 255, .7); font-size: 14px; }
.auth-slides { position: relative; margin-top: 34px; }
.auth-slide { display: none; padding: 20px 22px; border-radius: 12px; background: rgba(255, 255, 255, .06); border: 1px solid rgba(255, 255, 255, .12); }
.auth-slide.is-on { display: block; animation: auth-fade .5s ease; }
@keyframes auth-fade { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .auth-slide.is-on { animation: none; } }
.auth-slide-ico { width: 40px; height: 40px; border-radius: 10px; display: inline-flex; align-items: center; justify-content: center; font-size: 21px; background: rgba(38, 164, 221, .2); color: var(--m-blue); margin-bottom: 12px; }
.auth-slide-title { color: #fff; font-size: 15px; font-weight: 700; margin-bottom: 4px; }
.auth-slide-text { color: rgba(255, 255, 255, .72); font-size: 13.5px; line-height: 1.5; }
.auth-dots { display: flex; gap: 6px; margin-top: 18px; }
.auth-dots button { width: 22px; height: 4px; padding: 0; border: 0; border-radius: 2px; background: rgba(255, 255, 255, .28); transition: width .3s, background .3s; }
.auth-dots button.is-on { background: var(--m-blue); width: 34px; }
.auth-form { background: var(--vz-secondary-bg); padding: 48px 48px 36px; display: flex; flex-direction: column; justify-content: center; }
.auth-form h5 { color: var(--vz-heading-color); font-size: 20px; font-weight: 700; }
.auth-form .form-control:not(.form-control-lg) { padding: .65rem .9rem; }
.auth-form .btn-primary { padding: .7rem; font-weight: 600; }
.auth-note { margin-top: 28px; padding-top: 18px; border-top: 1px dashed var(--vz-border-color); font-size: 13px; color: var(--vz-secondary-color); text-align: center; }
.auth-theme { position: fixed; top: 14px; right: 14px; z-index: 2; }
.auth-theme .theme-toggle { color: rgba(255, 255, 255, .85) !important; background: rgba(255, 255, 255, .08); }
.auth-foot { position: absolute; bottom: 16px; left: 0; right: 0; margin: 0; text-align: center; color: rgba(255, 255, 255, .55); font-size: 12px; z-index: 1; }
.auth-form .totp-qr svg { width: 180px; height: 180px; }
.auth-form .totp-qr { background: #fff; padding: 10px; border-radius: 8px; display: inline-block; }
.code-input { letter-spacing: .3em; }
@media (max-width: 820px) {
  .auth-card { grid-template-columns: 1fr; max-width: 440px; }
  .auth-cover { min-height: 0; padding: 26px 26px 22px; }
  .auth-slides { display: none; }
  .auth-form { padding: 30px 26px 26px; }
}
@media print {
  .auth-page { background: #fff; }
  .auth-ring, .auth-theme, .auth-cover, .auth-foot { display: none !important; }
  .auth-card { display: block; box-shadow: none; }
  .auth-form { padding: 0; }
}
/* Zobrazenie hesla */
.pw-wrap { position: relative; }
.pw-wrap .form-control { padding-right: 2.6rem !important; }
.pw-toggle { position: absolute; right: 6px; top: 50%; transform: translateY(-50%); border: 0; background: none; padding: 4px 6px; color: var(--vz-secondary-color); font-size: 18px; line-height: 1; }
.pw-toggle:hover { color: var(--vz-body-color); }
.pw-toggle .pw-hide, .pw-toggle.is-shown .pw-show { display: none; }
.pw-toggle.is-shown .pw-hide { display: inline; }

/* Prepínač režimu: mesiac v svetlom, slnko v tmavom režime. */
.theme-toggle .ico-sun { display: none; }
[data-bs-theme=dark] .theme-toggle .ico-sun { display: inline-block; }
[data-bs-theme=dark] .theme-toggle .ico-moon { display: none; }

/* Plávajúce hlásenia vpravo hore */
.ms-toasts { position: fixed; top: calc(64px + 16px); right: 24px; z-index: 1010; display: flex; flex-direction: column; gap: 10px; width: min(420px, calc(100vw - 32px)); pointer-events: none; }
.ms-toast { position: relative; overflow: hidden; display: flex; align-items: flex-start; gap: 10px; padding: 12px 12px 14px 14px; border-radius: 10px; background: var(--vz-secondary-bg, #fff); color: var(--vz-body-color); box-shadow: 0 10px 30px rgba(var(--m-navy-rgb), .18); border-left: 4px solid var(--m-blue); pointer-events: auto; opacity: 0; transform: translateX(16px); transition: opacity .25s, transform .25s; }
.ms-toast.is-shown { opacity: 1; transform: none; }
.ms-toast.is-hiding { opacity: 0; transform: translateX(16px); }
.ms-toast-ico { font-size: 20px; line-height: 1.2; flex-shrink: 0; }
.ms-toast-msg { flex: 1 1 auto; font-size: 14px; line-height: 1.45; padding-top: 1px; }
.ms-toast-x { border: 0; background: none; color: var(--vz-secondary-color); font-size: 18px; line-height: 1; padding: 2px; flex-shrink: 0; }
.ms-toast-x:hover { color: var(--vz-body-color); }
.ms-toast-bar { position: absolute; left: 0; bottom: 0; height: 3px; width: 100%; background: currentColor; opacity: .25; }
.ms-toast-success { border-left-color: #2BA87A; } .ms-toast-success .ms-toast-ico, .ms-toast-success .ms-toast-bar { color: #2BA87A; }
.ms-toast-danger { border-left-color: #E5533D; } .ms-toast-danger .ms-toast-ico, .ms-toast-danger .ms-toast-bar { color: #E5533D; }
.ms-toast-warning { border-left-color: #f7b84b; } .ms-toast-warning .ms-toast-ico, .ms-toast-warning .ms-toast-bar { color: #d99a1e; }
.ms-toast-info { border-left-color: var(--m-blue); } .ms-toast-info .ms-toast-ico, .ms-toast-info .ms-toast-bar { color: var(--m-blue); }
@media (max-width: 575.98px) { .ms-toasts { right: 16px; top: calc(64px + 8px); } }

/* Pomocník: tlačidlo Napísať požiadavku na spodku panela */
.help-ask { margin-top: 24px; padding-top: 16px; border-top: 1px dashed var(--vz-border-color); }

/* 0.29.0 Výber obce zo zoznamu (combo.js) */
.ms-combo { position: relative; }
.ms-combo-list { position: absolute; left: 0; right: 0; top: calc(100% + 4px); z-index: 1060; max-height: 280px; overflow-y: auto; background: var(--vz-secondary-bg, #fff); border: 1px solid var(--vz-border-color, #e9ebec); border-radius: 8px; box-shadow: 0 8px 24px rgba(36, 62, 131, .12); padding: 4px 0; }
.ms-combo-opt { display: block; width: calc(100% - 8px); margin: 1px 4px; border-radius: 6px; text-align: left; border: 0; background: none; padding: 7px 12px; color: var(--vz-body-color); font-size: .875rem; }
.ms-combo-opt small { color: var(--vz-secondary-color, #878a99); margin-left: 4px; float: right; }
.ms-combo-opt:hover, .ms-combo-opt.active { background: var(--ms-hover); color: var(--vz-body-color); }
.ms-combo-opt.is-zero { color: var(--vz-secondary-color, #adb5bd); }
.ms-combo-empty { padding: 8px 12px; color: var(--vz-secondary-color, #878a99); font-size: .8125rem; }
.ms-combo-warn .ms-combo-input { border-color: var(--vz-warning, #f7b84b); }
.ms-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.ms-chips:not(:empty) { margin-bottom: 6px; }
.ms-chip { display: inline-flex; align-items: center; gap: 6px; background: var(--m-light); color: var(--m-navy); border-radius: 4px; padding: 4px 4px 4px 10px; font-size: .8125rem; max-width: 100%; }
.ms-chip-x { border: 0; background: none; color: inherit; font-size: 1.1rem; line-height: 1; padding: 0 4px; opacity: .7; }
.ms-chip-x:hover { opacity: 1; }

/* 0.29.0 Editor formátovaného textu (editor.js) a jeho zobrazenie */
.rte-wrap { border: 1px solid var(--vz-input-border-custom, var(--vz-border-color)); border-radius: var(--vz-border-radius, .25rem); background: var(--vz-secondary-bg, #fff); }
.rte-wrap.is-focus { border-color: var(--m-blue); box-shadow: 0 0 0 .15rem rgba(var(--m-blue-rgb), .2); }
.rte-bar { display: flex; flex-wrap: wrap; align-items: center; gap: 4px; padding: 6px 8px; border-bottom: 1px solid var(--vz-border-color); background: var(--vz-tertiary-bg); border-radius: var(--vz-border-radius, .25rem) var(--vz-border-radius, .25rem) 0 0; }
.rte-btn { padding: 2px 8px; line-height: 1.4; }
.rte-btn.active { background: rgba(var(--m-blue-rgb), .18); color: var(--m-navy); border-color: transparent; }
.rte-sep { width: 1px; align-self: stretch; margin: 2px 4px; background: var(--vz-border-color); }
.rte-link { display: flex; gap: 6px; padding: 6px 8px; border-bottom: 1px solid var(--vz-border-color); }
.rte-link.d-none { display: none; }
.rte-area { min-height: 140px; max-height: 480px; overflow-y: auto; padding: 10px 14px; outline: 0; }
.rich-text p, .rte-area p { margin: 0 0 .6rem; }
.rich-text h3, .rte-area h3 { font-size: 1.02rem; font-weight: 600; margin: .9rem 0 .4rem; color: var(--vz-heading-color, inherit); }
.rich-text ul, .rich-text ol, .rte-area ul, .rte-area ol { margin: 0 0 .6rem; padding-left: 1.4rem; }
.rich-text > :last-child { margin-bottom: 0; }
.rich-text table { border-collapse: collapse; margin: 0 0 .6rem; max-width: 100%; }
.rich-text td { border: 1px solid var(--vz-border-color); padding: 4px 8px; vertical-align: top; }
.rich-text a { word-break: break-word; }
@media (max-width: 767.98px) { .rte-area { min-height: 120px; } .rte-btn { padding: 4px 9px; } }

/* 0.29.0 Sekcie v nastaveniach profilu a firmy */
.ms-sec { border: 1px solid var(--vz-border-color); border-radius: 10px; background: var(--vz-secondary-bg, #fff); margin-bottom: 1rem; }
.ms-sec-head { display: flex; align-items: center; gap: 12px; padding: 14px 18px; border-bottom: 1px solid var(--vz-border-color); }
.ms-sec-ico { width: 38px; height: 38px; border-radius: 50%; background: var(--m-light); color: var(--m-navy); display: flex; align-items: center; justify-content: center; font-size: 18px; flex-shrink: 0; }
.ms-sec-title { font-size: 15px; font-weight: 600; margin: 0; }
.ms-sec-sub { font-size: 12.5px; color: var(--vz-secondary-color, #878a99); margin: 2px 0 0; }
.ms-sec-body { padding: 18px; }
.ms-sec-danger { border-color: var(--vz-danger-border-subtle, #f9c9cc); }
@media (max-width: 575.98px) { .ms-sec-head { padding: 12px 14px; } .ms-sec-body { padding: 14px; } }

/* 0.29.0 Okno so všetkými filtrami (filters.js) */
.pf-hide { display: none !important; }
.pf-head { background: var(--m-light); }
.pf-head .modal-title { color: var(--m-navy); font-weight: 600; }
.pf-wrap { display: flex; min-height: 420px; }
.pf-nav { flex: 0 0 220px; border-right: 1px solid var(--vz-border-color); display: flex; flex-direction: column; }
.pf-nav-btn { display: flex; align-items: center; justify-content: space-between; gap: 8px; text-align: left; border: 0; border-bottom: 1px solid var(--vz-border-color); background: var(--vz-tertiary-bg, #f8f9fb); padding: 14px 18px; font-size: 14px; color: var(--vz-body-color); }
.pf-nav-btn.active { background: var(--vz-secondary-bg, #fff); color: var(--m-navy); font-weight: 600; box-shadow: inset 3px 0 0 var(--m-blue); }
.pf-panes { flex: 1 1 auto; padding: 20px 24px; min-width: 0; }
.pf-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 8px; }
.pf-opt { display: flex; align-items: center; gap: 10px; border: 1px solid var(--vz-border-color); border-radius: 8px; padding: 9px 12px; cursor: pointer; margin: 0; background: var(--vz-secondary-bg, #fff); transition: border-color .12s, background .12s; }
.pf-opt:hover { border-color: var(--m-dot); }
.pf-opt .form-check-input { margin: 0; flex-shrink: 0; }
.pf-opt .pf-name { flex: 1 1 auto; min-width: 0; line-height: 1.3; }
.pf-opt .pf-cnt { color: var(--vz-secondary-color, #878a99); font-size: 12.5px; white-space: nowrap; }
.pf-opt.is-on { border-color: var(--m-blue); background: var(--m-light); }
.pf-opt.is-zero { opacity: .5; }
.pf-foot { gap: 8px; }
.pf-modal .modal-dialog { max-width: min(1080px, calc(100vw - 2rem)); }
.pf-modal .modal-content { height: min(680px, calc(100vh - 3.5rem)); }
.pf-modal .modal-body { overflow: hidden; display: flex; min-height: 0; }
.pf-modal .pf-wrap { flex: 1 1 auto; min-height: 0; width: 100%; }
.pf-modal .pf-nav, .pf-modal .pf-panes { overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; }
.pd-chip { display: inline-flex; align-items: center; gap: 4px; background: var(--m-light); color: var(--m-navy); border-radius: 20px; padding: 3px 4px 3px 12px; font-size: 12.5px; font-weight: 500; }
.pd-chip button { border: 0; background: none; color: inherit; font-size: 1rem; line-height: 1; padding: 0 6px; opacity: .7; }
.pd-chip button:hover { opacity: 1; }
.pf-pick { cursor: pointer; }
.pf-pick:hover { text-decoration: underline; }
@media (max-width: 767.98px) {
  .pf-wrap { flex-direction: column; min-height: 0; }
  .pf-modal .modal-dialog { margin: 0 !important; width: 100% !important; max-width: none !important; height: 100%; min-height: 100%; }
  .pf-modal .modal-content { height: 100% !important; border: 0; border-radius: 0; }
  .pf-modal .modal-body { flex-direction: column; }
  .pf-modal .pf-nav { flex: none; flex-direction: row; flex-wrap: nowrap; overflow-x: auto; overflow-y: hidden; border-right: 0; border-bottom: 1px solid var(--vz-border-color); scrollbar-width: none; background: var(--vz-secondary-bg); }
  .pf-modal .pf-nav::-webkit-scrollbar { display: none; }
  .pf-modal .pf-nav-btn { flex: 0 0 auto; border: 0; background: transparent; padding: 12px 14px; color: var(--vz-secondary-color); white-space: nowrap; }
  .pf-modal .pf-nav-btn.active { background: transparent; color: var(--m-navy); box-shadow: inset 0 -2px 0 var(--m-blue); }
  .pf-panes { padding: 16px; }
  .pf-grid { grid-template-columns: 1fr; }
  .pf-modal .pf-foot { flex-wrap: nowrap; padding: 10px 12px calc(10px + env(safe-area-inset-bottom)); }
  .pf-modal .pf-foot > * { margin: 0; }
  .pf-modal .pf-foot [data-bs-dismiss="modal"].btn-light { display: none; }
  .pf-modal .pf-foot .pf-clear { padding-left: 4px; padding-right: 4px; font-size: 14px; }
  .pf-modal .pf-foot .pf-apply { flex: 1 1 auto; margin-left: 8px !important; }
}

/* 0.29.0 Používatelia: karty, výber, mapa ľudí a firiem */
.ul-org { display: none !important; }
.ul-tile { position: relative; transition: border-color .15s, box-shadow .15s; }
.ul-tile:hover { box-shadow: 0 4px 16px rgba(36, 62, 131, .08); }
.ul-tile.is-off { opacity: .72; }
.ul-tile .ul-select { position: absolute; top: 16px; right: 16px; margin: 0; z-index: 2; }
.ul-card.is-sel .ul-tile { border-color: var(--m-blue); box-shadow: 0 0 0 1px var(--m-blue); }
.ul-row.is-sel > td { --vz-table-bg-state: var(--m-light); }
.ms-check-col { width: 36px; }
.ul-selbar { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding: 8px 14px; margin-bottom: 1rem; border-radius: 10px; background: var(--m-light); border: 1px solid rgba(var(--m-blue-rgb), .25); }
.ul-selbar.d-none { display: none; }
.ul-selbar form { margin: 0; }
.sk-map-tools { display: flex; flex-wrap: wrap; gap: 4px 16px; margin-bottom: 8px; font-size: 13px; }
.sk-key { display: inline-block; width: 10px; height: 10px; border-radius: 50%; margin-right: 6px; vertical-align: 0; }
.sk-key-people { background: var(--m-navy); }
.sk-key-orgs { background: var(--m-blue); }
.sk-map-wrap { width: 100%; position: relative; }
.sk-map { width: 100%; height: auto; display: block; }
.sk-region { fill: var(--m-light); stroke: #fff; stroke-width: 2; cursor: pointer; transition: fill .15s; }
.sk-region:hover { fill: #d3ecfa; }
.sk-region.is-active { fill: #a8dbf3; }
.sk-region.is-dim { opacity: .45; }
.sk-pin { cursor: pointer; }
.sk-pin circle { fill: var(--m-navy); stroke: #fff; stroke-width: 2.5; transition: r .15s; }
.sk-pin.is-org circle { fill: var(--m-blue); }
.sk-pin.is-mix circle { fill: var(--m-navy); stroke: var(--m-blue); stroke-width: 3.5; }
.sk-pin text { fill: #fff; font-size: 12px; font-weight: 700; text-anchor: middle; pointer-events: none; }
.sk-pin:hover circle, .sk-pin:focus circle, .sk-pin.is-open circle { fill: #f06548; }
.sk-pin:focus { outline: none; }
.sk-map-side { border-left: 1px solid var(--vz-border-color); padding-left: 16px; height: 100%; }
@media (max-width: 1199.98px) { .sk-map-side { border-left: 0; padding-left: 0; border-top: 1px solid var(--vz-border-color); padding-top: 12px; } }
.sk-side-row { display: flex; align-items: center; gap: 8px; border-bottom: 1px dashed var(--vz-border-color); }
.sk-side-row .form-check-input { margin: 0; flex-shrink: 0; }
.sk-side-gap { width: 1em; flex-shrink: 0; }
.sk-side-person { display: block; flex: 1; min-width: 0; padding: 7px 0; }
.sk-side-person small { font-size: 11.5px; padding-left: 1.3em; }
@media (max-width: 767.98px) { .ul-selbar { position: sticky; top: 70px; z-index: 5; } .sk-pin text { font-size: 14px; } }
.pf-meta:not(:has(.pd-chip)) { display: none; }

/* 0.29.0 Audit: filter Čo a Kto */
.audit-filter { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 10px 14px; }
.audit-filter .audit-f { flex: 0 1 300px; min-width: 0; }
.audit-filter .audit-f .form-select { width: 100%; }
.audit-filter .audit-meta { display: flex; align-items: center; gap: 14px; margin-left: auto; padding-bottom: 8px; }
@media (max-width: 767.98px) { .audit-filter .audit-f { flex: 1 1 100%; } .audit-filter .audit-meta { margin-left: 0; padding-bottom: 0; } }

/* 0.29.0 Systém v záložkách: dlaždice prehľadu */
.ms-tabs-scroll { flex-wrap: nowrap; overflow-x: auto; overflow-y: hidden; scrollbar-width: none; }
.ms-tabs-scroll::-webkit-scrollbar { display: none; }
.ms-tabs-scroll .nav-link { white-space: nowrap; }
.sys-check { display: flex; align-items: center; gap: 12px; padding: 14px 16px; border: 1px solid var(--vz-border-color); border-radius: 10px; background: var(--vz-secondary-bg, #fff); height: 100%; color: inherit; transition: border-color .15s, box-shadow .15s; }
.sys-check:hover { border-color: var(--m-dot); box-shadow: 0 4px 14px rgba(36, 62, 131, .07); }
.sys-check.is-warn { border-color: #fde1a8; background: #fef8eb; }
.sys-check-ico { width: 40px; height: 40px; border-radius: 50%; background: var(--m-light); color: var(--m-navy); display: flex; align-items: center; justify-content: center; font-size: 19px; flex-shrink: 0; }
.sys-check.is-warn .sys-check-ico { background: #fdecc8; color: #b7791f; }
.sys-info th { width: 40%; font-weight: 500; color: var(--vz-secondary-color); }
.sys-block + .sys-block { margin-top: 2rem; padding-top: 1.5rem; border-top: 1px solid var(--vz-border-color); }
.gd-info { display: grid; grid-template-columns: max-content 1fr; gap: 6px 16px; }
.gd-info dt { font-weight: 500; color: var(--vz-secondary-color); margin: 0; }
.gd-info dd { margin: 0; }
@media (max-width: 575.98px) { .sys-card > .card-body { padding: 1rem !important; } .gd-info { grid-template-columns: 1fr; gap: 2px; } .gd-info dd { margin-bottom: 8px; } }

/* 0.29.0 Hlavička profilu: modré pozadie končí v polovici prvých kariet, štatistiky v rámčekoch */
.ms-phead { position: relative; }
.ms-phead-bg { position: absolute; left: -1.5rem; right: -1.5rem; top: -1.5rem; bottom: -56px; z-index: 0; }
.ms-phead + .profile-body, .ms-phead ~ .profile-body { position: relative; z-index: 1; }
.ms-pstats { display: flex; flex-wrap: wrap; gap: 10px; }
.ms-pstat { display: flex; align-items: center; gap: 12px; min-width: 150px; padding: 12px 16px; border-radius: 10px; background: rgba(255, 255, 255, .08); border: 1px solid rgba(255, 255, 255, .16); color: #fff; }
.ms-pstat-ico { width: 40px; height: 40px; border-radius: 50%; background: rgba(38, 164, 221, .22); color: #bfe6f8; display: flex; align-items: center; justify-content: center; font-size: 19px; flex-shrink: 0; }
.ms-pstat-txt { display: flex; flex-direction: column; line-height: 1.15; }
.ms-pstat-num { font-size: 21px; font-weight: 600; }
.ms-pstat-lab { font-size: 12.5px; color: rgba(255, 255, 255, .72); }
@media (max-width: 575.98px) { .ms-pstat { min-width: 0; flex: 1 1 0; flex-direction: column; text-align: center; padding: 10px 6px; gap: 6px; } .ms-pstat-txt { align-items: center; } .ms-pstat-ico { width: 32px; height: 32px; font-size: 16px; } .ms-pstat-lab { font-size: 11.5px; } }

/* 0.29.0 Chat: členovia kanála */
.cm-open { position: relative; width: auto !important; padding: 0 8px; gap: 4px; display: inline-flex; align-items: center; }
.cm-count { font-size: 12px; font-weight: 600; }
.cm-list .cm-row + .cm-row { border-top: 1px dashed var(--vz-border-color); }
.cm-bulk { border-bottom: 1px solid var(--vz-border-color); padding-bottom: 8px; margin-bottom: 4px; }
.chat-admin-note { font-size: 12.5px; color: var(--m-navy); background: var(--m-light); padding: 6px 16px; border-bottom: 1px solid var(--vz-border-color); }
@media (max-width: 575.98px) { .cm-modal .modal-dialog { margin: 0; max-width: none; height: 100%; } .cm-modal .modal-content { height: 100%; border-radius: 0; border: 0; } .cm-modal .modal-footer { flex-wrap: nowrap; } }
@media (max-width: 575.98px) { .audit-filter .audit-f { flex: 1 1 100%; min-width: 0; } .audit-filter .audit-f .form-select { width: 100% !important; max-width: 100%; min-width: 0; } }
.chat-top-actions form { margin: 0; }
@media (max-width: 575.98px) { .chat-top-actions { gap: 0 !important; } .chat-top-actions .btn-icon { width: 34px; height: 34px; } .chat-top-actions .btn-icon i { font-size: 17px !important; } .chat-top-actions .cm-open { padding: 0 4px; } }

/* 0.29.1 Hlavička profilu nadväzuje priamo na hornú lištu, bez svetlého pásika */
@media (min-width: 992px) {
  .ms-phead-bg { top: -30px; }
  .page-content .position-relative.mx-n4.mt-n4:has(> .profile-setting-img) { margin-top: -30px !important; }
}
.sys-ts .form-switch { display: inline-flex; align-items: center; gap: 8px; padding-left: 0; } .sys-ts .form-switch .form-check-input { float: none; margin: 0; } .sys-ts .form-check-label { min-width: 84px; text-align: left; }
.ts-more-wrap { padding: 36px 0 4px; }
@media (max-width: 767.98px) { .sys-ts .form-check-label { display: none; } .sys-ts .form-switch .form-check-input { width: 2.4em; height: 1.3em; } }

/* 0.29.2 Chat: zvýraznená položka má odstup z oboch strán, ľavá a pravá časť končia v rovnakej výške */
.chat-room-list .chat-list li a, .chat-room-list .contact-list li a { margin: 0 12px; padding: 7px 12px !important; border-radius: 8px; }
.chat-room-list .chat-list li a:hover, .chat-room-list .contact-list li a:hover { background: var(--ms-hover); }
.chat-room-list .chat-list li.active a { background: var(--m-light); }
.chat-room-list .chat-list li.active a p:first-child, .chat-room-list .chat-list li.active a .text-truncate.mb-0:first-child { color: var(--m-navy); }
@media (min-width: 992px) {
  .chat-wrapper .user-chat { height: calc(100vh - 70px - 60px - 8px); display: flex; flex-direction: column; }
  .chat-embedded .user-chat { height: max(calc(100vh - 290px), 520px); }
  .user-chat > .chat-content { flex: 1 1 auto; min-height: 0; }
  .user-chat > .chat-content > div { display: flex; flex-direction: column; min-height: 0; }
  .user-chat > .chat-content > div > .position-relative { flex: 1 1 auto; min-height: 0; display: flex; flex-direction: column; }
  .user-chat .chat-conversation, .chat-embedded .chat-conversation { flex: 1 1 auto; height: auto !important; min-height: 0; }
  .user-chat .chat-empty { flex: 1 1 auto; }
}
/* 0.29.3 Logo s vlastným pozadím je výrez, vyplní celý kruh ako fotka */
.logo-solid { padding: 0 !important; }
.logo-solid img { object-fit: cover !important; padding: 0 !important; background: transparent !important; width: 100%; height: 100%; }

/* Údaje v profile človeka a firmy: zvýraznenie riadku s odstupom a zaoblením, text zarovnaný s nadpisom karty. */
.info-table-wrap { margin-inline: -.75rem; }
.info-table { border-collapse: separate; border-spacing: 0; }
.info-table > tbody > tr > * { padding: .7rem .75rem; background-color: transparent; box-shadow: none; transition: background-color .15s ease; }
.info-table > tbody > tr > :first-child { border-radius: 8px 0 0 8px; }
.info-table > tbody > tr > :last-child { border-radius: 0 8px 8px 0; }
.info-table > tbody > tr:hover > * { background-color: rgba(var(--m-blue-rgb), .06); }
