/* CRM HASPO – rozloženie s bočným panelom (ako Raynet) a prvky stránok CRM.
   Farby značky: tmavomodrá #212E63 / #1C2B5A, červená #EC2D33. V aplikácii (UX 10/2026): hlavné akcie pokojnou modrou (--accent),
   červená len pre logo, upozornenia a termíny po termíne – menej ťahá oči. */
:root {
	--navy: #1C2B5A; --navy2: #212E63; --navy3: #26386F; --red: #E52D33; --red2: #BD1F27;
	--side-bg: #1B2646; --side-bg2: #222F55;
	--accent: #2D5BBF; --accent2: #234A9E; --accentbg: #EAF0FB; --focus: #2D5BBF;
	--bg: #F3F5F9; --line: #E2E6EF; --line2: #EEF1F6; --in: #CDD3E0; --text: #1A2033; --muted: #555E72; --muted2: #626B80;
	--ok: #1A7F4B; --okbg: #E6F4EC; --soon: #9A5A00; --soonbg: #FFF3DC; --late: #C2312F; --latebg: #FDEDEC; --blue: #2D5BBF; --bluebg: #EAF0FB;
	--side: 240px; --side-mini: 64px; --top: 60px; --r: 10px;
}

/* ===================== rozloženie ===================== */
body.shell { display: block; background: var(--bg); }
body.shell .side { position: fixed; z-index: 60; left: 0; top: 0; bottom: 0; width: var(--side); background: var(--side-bg); color: #C9D2EA; display: flex; flex-direction: column; overflow: hidden; transition: width .15s ease, transform .2s ease; }
body.shell .page { margin-left: var(--side); min-height: 100vh; display: flex; flex-direction: column; transition: margin-left .15s ease; }
.side-logo { display: flex; align-items: center; gap: 10px; height: var(--top); padding: 0 18px; color: #fff; text-decoration: none; flex: none; border-bottom: 1px solid rgba(255,255,255,.08); }
.side-logo img { height: 30px; width: auto; display: block; }
.side-logo span { font-weight: 700; font-size: 12px; letter-spacing: .16em; color: #C9D2EA; padding-left: 10px; border-left: 1px solid rgba(255,255,255,.28); }
.side-nav { flex: 1; overflow-y: auto; padding: 8px 10px 12px; scrollbar-width: thin; scrollbar-color: rgba(255,255,255,.2) transparent; }
.side-nav a { display: flex; align-items: center; gap: 10px; margin: 0; padding: 5px 12px; border-radius: 7px; color: #C9D2EA; text-decoration: none; font-size: 13.5px; line-height: 1.35; font-weight: 600; white-space: nowrap; position: relative; }
.side-nav a .ic { flex: none; opacity: .85; width: 16px; height: 16px; }   /* kompaktné menu (Miško 24. 10. 2026: na laptope menej scrollovania) */
.side-nav a:hover { background: rgba(255,255,255,.08); color: #fff; text-decoration: none; }
.side-nav a.on { background: rgba(255,255,255,.15); color: #fff; }
.side-nav a.on::before { content: ""; position: absolute; left: -10px; top: 5px; bottom: 5px; width: 3px; border-radius: 0 3px 3px 0; background: var(--red); }
.side-nav a span { overflow: hidden; text-overflow: ellipsis; }
.side-h { margin: 11px 12px 3px; font-size: 10.5px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: #8C98BE; white-space: nowrap; }
details.side-grp > summary { list-style: none; cursor: pointer; display: flex; align-items: center; gap: 6px; }
details.side-grp > summary::-webkit-details-marker { display: none; }
details.side-grp > summary b { font-size: 10px; background: rgba(255,255,255,.12); color: #C9D2EA; border-radius: 999px; padding: 0 6px; letter-spacing: 0; }
details.side-grp > summary .ic { margin-left: auto; transition: transform .15s; }
details.side-grp[open] > summary .ic { transform: rotate(180deg); }
details.side-grp > summary:hover { color: #fff; }
.side-col { display: flex; align-items: center; gap: 12px; border: 0; border-top: 1px solid rgba(255,255,255,.08); background: transparent; color: #8C98BE; padding: 12px 22px; margin: 0; min-width: 0; border-radius: 0; font: inherit; font-size: 13px; cursor: pointer; text-align: left; white-space: nowrap; }
.side-col:hover { color: #fff; background: rgba(255,255,255,.05); }
html.side-mini body.shell .side { width: var(--side-mini); }
html.side-mini body.shell .page { margin-left: var(--side-mini); }
html.side-mini .side-nav a span, html.side-mini .side-col span, html.side-mini .side-logo span { display: none; }
html.side-mini .side-h { font-size: 0; margin: 10px 8px; border-top: 1px solid rgba(255,255,255,.1); }
html.side-mini .side-nav a { justify-content: center; padding: 8px 0; }
html.side-mini .side-logo { padding: 0 12px; justify-content: center; }
html.side-mini .side-logo img { height: 22px; }
html.side-mini .side-col { justify-content: center; padding: 12px 0; }
html.side-mini .side-col .ic { transform: rotate(180deg); }
.side-dim { display: none; }

/* horná lišta */
body.shell header.top { position: sticky; top: 0; z-index: 50; background: #fff; color: var(--text); border-bottom: 1px solid var(--line); box-shadow: none; }
body.shell .topin { max-width: none; padding: 0 24px; min-height: var(--top); flex-wrap: nowrap; gap: 14px; }
body.shell .top-search { flex: 1 1 auto; max-width: 620px; background: var(--bg); border: 1px solid transparent; color: var(--muted); position: relative; }
body.shell .top-search:focus-within { background: #fff; border-color: var(--in); box-shadow: 0 0 0 3px rgba(47,95,208,.12); }
body.shell .top-search input[type=search] { color: var(--text); }
body.shell .top-search input::placeholder { color: var(--muted2); }
body.shell details.gear > summary { color: var(--muted); }
body.shell details.gear > summary:hover, body.shell details.gear[open] > summary { background: var(--bg); color: var(--text); }
.top-burger { display: none; width: 40px; height: 40px; min-width: 0; margin: 0; padding: 0; border: 0; border-radius: 10px; background: transparent; color: var(--text); align-items: center; justify-content: center; }
.top-burger:hover { background: var(--bg); color: var(--text); }
details.top-new > summary.btn-new { list-style: none; width: auto; display: inline-flex; gap: 6px; padding: 0 14px 0 12px; color: #fff !important; background: var(--accent); }
details.top-new > summary.btn-new::-webkit-details-marker { display: none; }
details.top-new > summary.btn-new:hover, details.top-new[open] > summary.btn-new { background: var(--accent2); color: #fff; }
.gear-menu a { display: flex !important; align-items: center; gap: 10px; }
.gear-menu a .ic { color: var(--muted); flex: none; }
.gear-menu hr { border: 0; border-top: 1px solid var(--line2); margin: 6px 4px; }
.top-new .gear-menu { min-width: 240px; }
body.shell .container.app { max-width: 1320px; padding: 24px 28px 48px; }
body.shell .container.app.crmw { max-width: 1560px; }
body.shell .container:not(.app) { margin-top: 28px; }
body.shell footer { margin-top: auto; }
body.shell footer .copyright, body.shell footer .copyright a { font-family: inherit; color: var(--muted2); font-size: 12px; }
.crm-tcell { display: flex; gap: 9px; align-items: flex-start; min-width: 0; }
.crm-tcell .crm-act-ic { width: 26px; height: 26px; }
.crm-tcell > div { min-width: 0; }

/* globálne hľadanie – našepkávanie */
.gs-list { position: absolute; left: -1px; right: -1px; top: calc(100% + 6px); background: #fff; border: 1px solid var(--line); border-radius: 12px; box-shadow: 0 16px 40px rgba(16,24,48,.18); max-height: 70vh; overflow-y: auto; z-index: 70; padding: 6px; }
.gs-list h6 { margin: 8px 10px 4px; font-size: 11.5px; letter-spacing: .1em; text-transform: uppercase; color: var(--muted2); }
.gs-list a { display: block; padding: 7px 10px; border-radius: 8px; text-decoration: none; color: var(--text); }
.gs-list a:hover, .gs-list a.on { background: var(--bluebg); }
.gs-list a b { display: block; font-weight: 600; font-size: 14px; }
.gs-list a small { color: var(--muted); font-size: 12.5px; }
.gs-list .gs-all { border-top: 1px solid var(--line2); margin-top: 4px; font-size: 13px; color: var(--blue); }
.gs-empty { padding: 12px; color: var(--muted); font-size: 14px; }
.gs-list .gs-more { padding: 6px 10px; font-size: 12.5px; color: var(--muted2); }

@media (max-width: 960px) {
	body.shell .side { transform: translateX(-100%); width: 270px !important; box-shadow: 0 0 40px rgba(0,0,0,.3); }
	html.side-mini body.shell .side .side-nav a span, html.side-mini .side-logo span { display: inline; }
	.side-nav a, html.side-mini .side-nav a { justify-content: flex-start; padding: 9px 12px; font-size: 14.5px; gap: 12px; }   /* mobil: väčšie dotykové plochy */
	.side-nav a .ic { width: 18px; height: 18px; }
	.side-h { margin: 14px 12px 5px; font-size: 11px; }
	body.shell .page, html.side-mini body.shell .page { margin-left: 0; }
	body.side-open .side { transform: none; }
	body.side-open .side-dim { display: block; position: fixed; inset: 0; background: rgba(10,16,35,.45); z-index: 55; }
	.side-col { display: none; }
	.top-burger { display: inline-flex; }
	body.shell .topin { padding: 0 12px; gap: 8px; }
	body.shell .top-search { min-width: 0; order: 0; flex: 1 1 auto; }
	details.top-new > summary.btn-new span { display: none; }
	details.top-new > summary.btn-new { padding: 0 11px; }
	body.shell .container.app { padding: 16px 14px 40px; }
}

/* ===================== základ stránok CRM ===================== */
.crm { color: var(--text); font-size: 15px; display: flex; flex-direction: column; gap: 16px; }
.crm *, .crm *::before, .crm *::after { box-sizing: border-box; }
.crm form { display: block; max-width: none; margin: 0; gap: 0; grid-template-columns: none; }
.crm form label { text-align: left; padding: 0; }
/* formuláre s vlastným rozložením (inak ich prebije .crm form) */
.crm form.crm-toolbar, .crm form.crm-row, .crm form.crm-bulk { display: flex; gap: 8px; }
.crm form.crm-quick { display: grid; gap: 4px; }
.crm li { padding: 0; list-style: none; }
.crm ul, .crm ol { margin: 0; padding: 0; }
.crm h1 { margin: 0; font-size: 26px; font-weight: 800; color: var(--navy); line-height: 1.2; letter-spacing: -.005em; }
.crm h2 { margin: 0; font-size: 16px; font-weight: 700; color: var(--navy); }
.crm h3 { margin: 0 0 8px; font-size: 14px; font-weight: 700; color: var(--navy); }
.crm a { color: var(--navy2); }
.crm a:hover { color: var(--accent); }
.crm-muted { color: var(--muted); }
.crm-s { font-size: 13px; }
.crm small { font-size: 12.5px; }
.mono { font-variant-numeric: tabular-nums; }
.crm-nowrap { white-space: nowrap; }
.crm-right { margin-left: auto; }
.crm-empty-v { color: var(--muted2); }
.crm-ro { padding: 8px 0; font-weight: 600; display: flex; align-items: center; gap: 6px; }
.ic { display: inline-block; vertical-align: -3px; flex: none; }

/* hlavička stránky */
.crm-ph { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: 12px 20px; }
.crm-ph-t { min-width: 0; flex: 1 1 420px; }
.crm-ph-s { margin-top: 6px; display: flex; flex-wrap: wrap; align-items: center; gap: 6px 14px; color: var(--muted); font-size: 14px; }
.crm-ph-a { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }

/* tlačidlá */
.crm button, .crm .crm-btn { min-width: 0; margin: 0; line-height: normal; transition: background .12s, border-color .12s, color .12s; font: inherit; }
.crm-btn, .crm button.crm-btn { display: inline-flex; align-items: center; justify-content: center; gap: 7px; height: 38px; padding: 0 14px; border-radius: 9px; border: 1px solid var(--in); background: #fff; color: var(--navy2) !important; font-size: 14px; font-weight: 700; text-decoration: none; cursor: pointer; white-space: nowrap; }
.crm-btn:hover, .crm button.crm-btn:hover { border-color: var(--navy2); background: #fff; color: var(--navy2) !important; text-decoration: none; }
.crm-btn-p, .crm button.crm-btn-p { background: var(--navy2); border-color: var(--navy2); color: #fff !important; }
.crm-btn-p:hover, .crm button.crm-btn-p:hover { background: var(--navy3); border-color: var(--navy3); color: #fff !important; }
.crm-btn-r, .crm button.crm-btn-r { background: var(--accent); border-color: var(--accent); color: #fff !important; }   /* hlavná akcia stránky (Nový klient, Úloha…) */
.crm-btn-r:hover, .crm button.crm-btn-r:hover { background: var(--accent2); border-color: var(--accent2); color: #fff !important; }
.crm-btn-ok, .crm button.crm-btn-ok { background: var(--ok); border-color: var(--ok); color: #fff !important; }
.crm-btn-ok:hover, .crm button.crm-btn-ok:hover { background: #136a3d; border-color: #136a3d; color: #fff !important; }
.crm-btn-g, .crm button.crm-btn-g { border-color: transparent; background: transparent; }
.crm-btn-g:hover, .crm button.crm-btn-g:hover { background: var(--line2); border-color: transparent; }
.crm-btn-s, .crm button.crm-btn-s { height: 32px; padding: 0 11px; font-size: 13px; border-radius: 8px; }
.crm-btn-d, .crm button.crm-btn-d { color: var(--late) !important; }
.crm-btn-d:hover, .crm button.crm-btn-d:hover { border-color: var(--late); color: var(--late) !important; }
.crm button[disabled] { opacity: .5; cursor: not-allowed; }
.crm-ibtn, .crm button.crm-ibtn { display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px; padding: 0; border-radius: 8px; border: 1px solid transparent; background: transparent; color: var(--muted) !important; cursor: pointer; text-decoration: none; }
.crm-ibtn:hover, .crm button.crm-ibtn:hover { background: var(--line2); color: var(--text) !important; }
.crm-ibtn-ok:hover, .crm button.crm-ibtn-ok:hover { background: var(--okbg); color: var(--ok) !important; border-color: #b7dfc8; }
.crm-link, .crm button.crm-link { border: 0; background: none; padding: 0; color: var(--blue) !important; cursor: pointer; font-size: inherit; font-weight: 600; text-decoration: none; }
.crm-link:hover, .crm button.crm-link:hover { text-decoration: underline; background: none; }

/* rozbaľovacie menu (⋯) */
details.crm-dd { position: relative; display: inline-block; }
details.crm-dd > summary { list-style: none; cursor: pointer; }
details.crm-dd > summary::-webkit-details-marker { display: none; }
.crm-dd-m { position: absolute; right: 0; top: calc(100% + 6px); min-width: 230px; background: #fff; border: 1px solid var(--line); border-radius: 12px; box-shadow: 0 12px 32px rgba(16,24,48,.18); padding: 6px; z-index: 45; }
.crm-dd-m.crm-dd-l { left: 0; right: auto; }
.crm-dd-m a, .crm-dd-m button { display: flex !important; align-items: center; gap: 10px; width: 100%; padding: 8px 11px !important; border-radius: 8px; border: 0 !important; background: none; color: var(--text) !important; text-decoration: none; font-size: 14px; font-weight: 600; text-align: left; cursor: pointer; height: auto !important; justify-content: flex-start !important; }
.crm-dd-m a:hover, .crm-dd-m button:hover { background: var(--bg) !important; color: var(--text) !important; }
.crm-dd-m .ic { color: var(--muted); }
.crm-dd-m hr { border: 0; border-top: 1px solid var(--line2); margin: 5px 4px; }
.crm-dd-m form { display: block; }
.crm-dd-m .crm-dd-d { color: var(--late) !important; }
.crm-dd-m.crm-dd-nw a { white-space: nowrap; }

/* panely */
.crm-card { background: #fff; border: 1px solid var(--line); border-radius: 12px; padding: 16px 18px; min-width: 0; }
.crm-card-h { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 10px; margin: -2px 0 12px; min-height: 30px; }
.crm-hero-c { display: flex; flex-wrap: wrap; gap: 4px 16px; margin-top: 8px; font-size: 14px; }
.crm-hero-c a { color: var(--text); text-decoration: none; display: inline-flex; align-items: center; gap: 5px; }
.crm-hero-c a:hover { color: var(--blue); }
.crm-hero-c .ic { color: var(--muted); }
.crm-card-h h2 { display: flex; align-items: center; gap: 8px; }
.crm-card-h h2 .crm-cnt { font-size: 12px; font-weight: 700; color: var(--muted); background: var(--line2); border-radius: 999px; padding: 1px 8px; }
.crm-card-h .crm-card-a { display: flex; gap: 4px; align-items: center; }
.crm-card-f { margin-top: 10px; padding-top: 10px; border-top: 1px solid var(--line2); font-size: 13.5px; }
.crm-card.crm-p0 { padding: 0; overflow: hidden; }
.crm-alert { background: var(--latebg); border: 1px solid #f3c4c5; color: #8a1c1f; border-radius: 10px; padding: 12px 14px; display: flex; gap: 10px; align-items: flex-start; }
.crm-note { background: var(--bluebg); border: 1px solid #cbd8f7; color: #1e3a8a; border-radius: 10px; padding: 12px 14px; font-size: 14px; }
.crm-warn { background: var(--soonbg); border: 1px solid #f1d39a; color: #6b4300; border-radius: 10px; padding: 10px 14px; font-size: 14px; }
.crm-empty { color: var(--muted); font-size: 14px; padding: 6px 0; }
.crm-grid2 { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.crm-grid3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.crm-cols { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 16px; align-items: start; }
.crm-cols > div { display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.crm-row { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }

/* hlásenia */
.crm-flash { display: flex; align-items: flex-start; gap: 10px; padding: 11px 14px; border-radius: 10px; font-size: 14.5px; font-weight: 600; background: var(--okbg); color: #14532d; border: 1px solid #b7dfc8; }
.crm-flash .ic { margin-top: 2px; }
.crm-flash span { flex: 1; }
.crm-flash-err { background: var(--latebg); color: #7f1d1d; border-color: #f3c4c5; }
.crm-flash-info { background: var(--bluebg); color: #1e3a8a; border-color: #cbd8f7; }
.crm .crm-flash-x { border: 0; background: none; font-size: 20px; line-height: 1; color: inherit; opacity: .6; cursor: pointer; padding: 0 2px; }

/* štítky */
.crm-badge { display: inline-flex; align-items: center; gap: 4px; font-size: 12px; font-weight: 700; border-radius: 999px; padding: 2px 9px; background: #EEF1F6; color: #374151; white-space: nowrap; line-height: 1.5; }
.crm-state-B_ACTUAL, .crm-case-E_WIN, .crm-st-done, .crm-st-completed { background: var(--okbg); color: #166A3E; }
.crm-state-A_POTENTIAL, .crm-st-pending, .crm-st-scheduled, .crm-case-B_ACTIVE { background: var(--bluebg); color: var(--blue); }
.crm-st-in_progress { background: var(--soonbg); color: var(--soon); }
.crm-state-C_DEFERRED { background: var(--soonbg); color: var(--soon); }
.crm-state-D_UNATTRACTIVE, .crm-st-cancelled, .crm-case-G_STORNO { background: #EEF0F3; color: #6b7280; }
.crm-case-F_LOST, .crm-st-error, .crm-st-late { background: var(--latebg); color: var(--late); }
.crm-chip { display: inline-flex; align-items: center; gap: 4px; font-size: 12.5px; border: 1px solid var(--line); border-radius: 999px; padding: 1px 9px; color: #4b5563; background: #fff; white-space: nowrap; }
.crm-cat { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; font-weight: 600; color: #374151; white-space: nowrap; max-width: 100%; }
.crm-cat i { width: 10px; height: 10px; border-radius: 3px; flex: none; }
.crm-cat-s { font-size: 12.5px; font-weight: 500; }
.crm-tag { display: inline-block; font-size: 12px; font-weight: 600; padding: 1px 8px; border-radius: 6px; background: #EEF1F6; color: #374151; margin: 0 4px 4px 0; }
.crm-yes { color: var(--ok); font-weight: 600; }
.crm-av { display: inline-flex; align-items: center; justify-content: center; border-radius: 50%; color: #fff; font-weight: 700; flex: none; vertical-align: middle; letter-spacing: .02em; }
.crm-who { display: inline-flex; align-items: center; gap: 6px; }
.crm-svc { display: inline-block; background: var(--navy2); color: #fff; border-radius: 6px; padding: 2px 8px; font-size: 12px; font-weight: 700; margin: 0 4px 4px 0; }

/* termíny */
.crm-due { font-weight: 700; white-space: nowrap; }
.crm-due-ok { color: var(--ok); }
.crm-due-soon { color: var(--soon); }
.crm-due-late { color: var(--late); }
.crm-when { white-space: nowrap; font-variant-numeric: tabular-nums; }
.crm-when small { font-weight: 500; opacity: .85; }
.crm-dot { display: inline-block; width: 9px; height: 9px; border-radius: 50%; margin-right: 6px; background: #cbd2dc; vertical-align: 0; flex: none; }
.crm-dot-ok { background: var(--ok); }
.crm-dot-soon { background: #e69a1c; }
.crm-dot-late { background: var(--late); }

/* tabuľky */
.crm-table { width: 100%; border-collapse: collapse; font-size: 14px; background: #fff; margin: 0; }
.crm-table th, .crm-table td { border: 0; border-bottom: 1px solid var(--line2); text-align: left; }
.crm-table th { text-align: left; font-weight: 700; color: var(--muted); font-size: 12px; text-transform: uppercase; letter-spacing: .04em; border-bottom: 1px solid var(--line); padding: 10px 10px; white-space: nowrap; background: #FAFBFD; }
.crm-table th a { color: inherit; text-decoration: none; }
.crm-table th a:hover { color: var(--text); }
.crm-table td { border-bottom: 1px solid var(--line2); padding: 9px 10px; vertical-align: middle; }
.crm-table tbody tr:last-child td { border-bottom: 0; }
.crm-table .num { text-align: right; white-space: nowrap; }
.crm-table tr[data-href] { cursor: pointer; }
.crm-table tbody tr:hover td { background: #F7F9FD; }
.crm-table td.crm-chk, .crm-table th.crm-chk { width: 34px; padding-right: 0; }
.crm-table a.crm-strong { font-weight: 700; text-decoration: none; color: var(--navy2); }
.crm-table a.crm-strong:hover { text-decoration: underline; }
.crm-tablewrap { background: #fff; border: 1px solid var(--line); border-radius: 12px; overflow: hidden; }
.crm-tablewrap .crm-scroll { overflow-x: auto; }
.crm-sub { display: block; font-size: 12.5px; color: var(--muted); margin-top: 1px; }

/* panel nástrojov zoznamu */
.crm-toolbar { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.crm-toolbar input[type=search], .crm-toolbar input[type=text], .crm-toolbar select, .crm-toolbar input[type=date] { height: 38px; padding: 0 11px; border: 1px solid var(--in); border-radius: 9px; font: inherit; font-size: 14px; background: #fff; color: var(--text); }
.crm-toolbar input[type=search] { flex: 1 1 260px; max-width: 420px; }
.crm-toolbar select { max-width: 240px; text-overflow: ellipsis; }
.crm-toolbar .crm-count { color: var(--muted); font-size: 14px; }
.crm-tabs { display: flex; gap: 4px; flex-wrap: wrap; border-bottom: 1px solid var(--line); }
.crm-tabs a { padding: 9px 14px; font-size: 14px; font-weight: 700; color: var(--muted); text-decoration: none; border-bottom: 2px solid transparent; margin-bottom: -1px; display: inline-flex; gap: 6px; align-items: center; white-space: nowrap; }
.crm-tabs a:hover { color: var(--text); }
.crm-tabs a.on { color: var(--navy2); border-bottom-color: var(--accent); }
.crm-tabs a b { font-size: 11.5px; background: var(--line2); color: var(--muted); border-radius: 999px; padding: 0 7px; }
.crm-tabs a.on b { background: var(--navy2); color: #fff; }
.crm-tabs a.crm-tab-late b { background: var(--latebg); color: var(--late); }
.crm-pills { display: flex; gap: 6px; flex-wrap: wrap; }
.crm-pills a, .crm-pills button { display: inline-flex; align-items: center; gap: 6px; padding: 5px 12px !important; height: auto !important; border-radius: 999px; border: 1px solid var(--line) !important; background: #fff; font-size: 13px; font-weight: 600; color: var(--muted) !important; text-decoration: none; cursor: pointer; }
.crm-pills a:hover, .crm-pills button:hover { border-color: var(--in) !important; color: var(--text) !important; background: #fff; }
.crm-pills a.on, .crm-pills button.on { background: var(--navy2); border-color: var(--navy2) !important; color: #fff !important; }
.crm-pager { display: flex; gap: 4px; align-items: center; justify-content: center; padding: 12px; }
.crm-pager a, .crm-pager b, .crm-pager span { min-width: 34px; height: 34px; display: inline-flex; align-items: center; justify-content: center; border-radius: 8px; font-size: 14px; text-decoration: none; color: var(--text); }
.crm-pager a:hover { background: var(--line2); }
.crm-pager b { background: var(--navy2); color: #fff; }
/* lišta pod zoznamom: rozsah, stránky, „Zobraziť naraz“ */
.crm-pgbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 16px; padding: 10px 16px; border-top: 1px solid var(--line); font-size: 14px; }
.crm-pgbar .crm-pager { padding: 0; flex-wrap: wrap; }
.crm-pgbar-n { color: var(--muted); font-variant-numeric: tabular-nums; white-space: nowrap; }
.crm-pgbar-per { display: inline-flex; align-items: center; gap: 8px; margin: 0; color: var(--muted); white-space: nowrap; }
.crm-pgbar-per select { height: 34px; min-width: 72px; border: 1px solid var(--in); border-radius: 8px; padding: 0 8px; font: inherit; font-size: 14px; background: #fff; color: var(--text); }
@media (max-width: 640px) {
	.crm-pgbar { justify-content: center; }
	.crm-pgbar-n { width: 100%; text-align: center; }
	.crm-pgbar-per select { font-size: 16px; }   /* iOS nepribližuje stránku pri výbere */
}
.crm-bulk { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; padding: 10px 12px; background: var(--bluebg); border-bottom: 1px solid #cbd8f7; font-size: 14px; }
.crm-bulk[hidden] { display: none; }
.crm-bulk select { height: 34px; border: 1px solid var(--in); border-radius: 8px; padding: 0 8px; font: inherit; font-size: 14px; background: #fff; }

/* formuláre */
.crm-fg { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 16px; }
.crm-fg3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.crm-f { display: flex; flex-direction: column; gap: 5px; min-width: 0; }
.crm-f-wide { grid-column: 1 / -1; }
.crm-f > label:not(.crm-switch), .crm-flabel { font-size: 12.5px; font-weight: 700; color: var(--muted); letter-spacing: .01em; }
.crm-flabel-h { font-weight: 400; color: var(--muted2); margin-left: 4px; }   /* vysvetlivka pri názve poľa (Deadline – dokedy má byť hotové) */
.crm-af[data-type="task"] .crm-f-start .crm-qd { display: none; }   /* úloha: rýchle dátumy len pri deadline (nie dvakrát) */
.crm-af:not([data-type="task"]) .crm-only-task { display: none; }
.crm-f input[type=text], .crm-f input[type=email], .crm-f input[type=tel], .crm-f input[type=url], .crm-f input[type=number], .crm-f input[type=date], .crm-f input[type=time],
.crm-f input[type=datetime-local], .crm-f input[type=month], .crm-f input[type=search], .crm-f input[type=password], .crm-f select, .crm-f textarea, .crm-in {
	width: 100%; max-width: 100%; height: 38px; padding: 0 10px; border: 1px solid var(--in); border-radius: 8px; font: inherit; font-size: 14.5px; color: var(--text); background: #fff; margin: 0;
}
.crm-f textarea { height: auto; min-height: 80px; padding: 8px 10px; resize: vertical; line-height: 1.45; }
.crm-f input:focus, .crm-f select:focus, .crm-f textarea:focus, .crm-in:focus, .crm-rte-area:focus, .crm-toolbar input:focus, .crm-toolbar select:focus { outline: 0; border-color: var(--blue); box-shadow: 0 0 0 3px rgba(47,95,208,.15); }
.crm-f small { color: var(--muted); font-size: 12.5px; }
.crm-dt { display: flex; gap: 6px; }
.crm-dt input[type=date] { flex: 1 1 60%; }
.crm-dt input[type=time] { flex: 1 1 40%; }
.crm-dt select { flex: 1 1 auto; }
.crm-dt .crm-btn { flex: none; white-space: nowrap; }
.crm-lookup-dup { color: var(--late); font-weight: 700; }
.crm-lookup-dup a { color: inherit; }
.crm .crm-num-s { width: 70px !important; flex: none; }
.crm-chk:not(td):not(th) { display: inline-flex; align-items: center; gap: 8px; font-size: 14px !important; font-weight: 600 !important; color: var(--text) !important; cursor: pointer; }
.crm-chk input { width: 16px; height: 16px; margin: 0; }
.crm-actions { display: flex; gap: 8px; justify-content: flex-end; align-items: center; flex-wrap: wrap; margin-top: 16px; }
.crm-actions .crm-left { margin-right: auto; }
.crm-seg { display: inline-flex; flex-wrap: wrap; gap: 4px; padding: 4px; background: var(--bg); border-radius: 10px; margin-bottom: 14px; }
.crm-seg label { margin: 0; cursor: pointer; }
.crm-seg input { position: absolute; opacity: 0; pointer-events: none; }
.crm-seg span { display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px; border-radius: 8px; font-size: 13.5px; font-weight: 700; color: var(--muted); }
.crm-seg input:checked + span { background: #fff; color: var(--navy2); box-shadow: 0 1px 3px rgba(16,24,48,.12); }
.crm-seg input:focus-visible + span { outline: 2px solid var(--blue); }
.crm-af [data-for] { display: none; }
.crm-switch { position: relative; display: inline-block; width: 40px; height: 22px; margin: 6px 0; }
.crm-switch input { opacity: 0; width: 0; height: 0; position: absolute; }
.crm-switch span { position: absolute; inset: 0; background: #cfd5e1; border-radius: 999px; cursor: pointer; transition: background .15s; }
.crm-switch span::before { content: ""; position: absolute; left: 3px; top: 3px; width: 16px; height: 16px; border-radius: 50%; background: #fff; transition: transform .15s; box-shadow: 0 1px 2px rgba(0,0,0,.2); }
.crm-switch input:checked + span { background: var(--ok); }
.crm-switch input:checked + span::before { transform: translateX(18px); }
.crm-switch input:focus-visible + span { outline: 2px solid var(--blue); outline-offset: 2px; }

/* editor textu */
.crm-rte { border: 1px solid var(--in); border-radius: 8px; background: #fff; }
.crm-rte:focus-within { border-color: var(--blue); box-shadow: 0 0 0 3px rgba(47,95,208,.15); }
.crm-rte-bar { display: flex; gap: 2px; padding: 4px; border-bottom: 1px solid var(--line2); }
.crm .crm-rte-bar button { width: 30px; height: 28px; padding: 0; border: 0; border-radius: 6px; background: none; color: var(--muted); cursor: pointer; font-size: 14px; display: inline-flex; align-items: center; justify-content: center; }
.crm .crm-rte-bar button:hover { background: var(--line2); color: var(--text); }
.crm-rte-area { min-height: 90px; max-height: 420px; overflow-y: auto; padding: 9px 11px; font-size: 14.5px; line-height: 1.5; border-radius: 0 0 8px 8px; }
.crm-rte-area:empty::before { content: attr(data-placeholder); color: var(--muted2); }
.crm-rte-area ul, .crm-html ul { padding-left: 20px !important; list-style: disc; }
.crm-rte-area ol, .crm-html ol { padding-left: 20px !important; list-style: decimal; }
.crm-rte-area li, .crm-html li { list-style: inherit; padding: 0 0 2px; }
.crm-rte-area p, .crm-html p { margin: 0 0 6px; }
.crm-html { font-size: 14.5px; line-height: 1.55; overflow-wrap: anywhere; }
.crm-html table { border-collapse: collapse; }
.crm-html td, .crm-html th { border: 1px solid var(--line); padding: 3px 6px; }

/* našepkávanie */
.crm-ac { position: relative; }
.crm-ac-list { position: absolute; left: 0; right: 0; top: calc(100% + 4px); background: #fff; border: 1px solid var(--line); border-radius: 10px; box-shadow: 0 12px 32px rgba(16,24,48,.18); z-index: 80; max-height: 280px; overflow-y: auto; padding: 4px; }
.crm-ac-list a { display: block; padding: 7px 10px; border-radius: 7px; text-decoration: none; color: var(--text) !important; font-size: 14px; cursor: pointer; }
.crm-ac-list a small { display: block; color: var(--muted); font-size: 12px; }
.crm-ac-list a:hover, .crm-ac-list a.on { background: var(--bluebg); }
.crm-ac-list .crm-ac-none { padding: 8px 10px; color: var(--muted); font-size: 13.5px; }

/* dialógy */
dialog.crm-dlg { border: 0; border-radius: 14px; padding: 0; width: min(640px, calc(100vw - 24px)); max-height: calc(100vh - 40px); box-shadow: 0 24px 64px rgba(10,16,35,.35); color: var(--text); font-size: 15px; }
dialog.crm-dlg-l { width: min(880px, calc(100vw - 24px)); }
dialog.crm-dlg-s { width: min(460px, calc(100vw - 24px)); }
dialog.crm-dlg::backdrop { background: rgba(10,16,35,.45); }
.crm-dlg-h { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 16px 20px 12px; border-bottom: 1px solid var(--line2); position: sticky; top: 0; background: #fff; z-index: 2; }
.crm-dlg-h h2 { margin: 0; font-size: 18px; font-weight: 800; color: var(--navy); }
.crm-dlg-b { padding: 16px 20px 18px; }
.crm-dlg form { display: block; max-width: none; margin: 0; gap: 0; grid-template-columns: none; }
.crm-dlg .crm-actions { position: sticky; bottom: 0; background: #fff; padding: 12px 0; margin-top: 14px; border-top: 1px solid var(--line2); z-index: 2; }
.crm-x, .crm button.crm-x, .crm-dlg button.crm-x { width: 34px; height: 34px; min-width: 0; padding: 0; margin: 0; border: 0; border-radius: 8px; background: none; color: var(--muted); display: inline-flex; align-items: center; justify-content: center; cursor: pointer; }
.crm-x:hover, .crm-dlg button.crm-x:hover { background: var(--line2); color: var(--text); }
.crm-dlg button { min-width: 0; margin: 0; line-height: normal; }

/* karta klienta */
.crm-hero { background: #fff; border: 1px solid var(--line); border-radius: 12px; padding: 18px 20px; display: flex; flex-direction: column; gap: 12px; }
.crm-hero-top { display: flex; gap: 16px; align-items: flex-start; justify-content: space-between; flex-wrap: wrap; }
.crm-hero-t { min-width: 0; flex: 1 1 420px; display: flex; gap: 14px; align-items: flex-start; }
.crm-logo { width: 52px; height: 52px; border-radius: 12px; background: var(--navy2); color: #fff; display: flex; align-items: center; justify-content: center; font-weight: 800; font-size: 20px; flex: none; }
.crm-hero h1 { font-size: 24px; overflow-wrap: anywhere; }
.crm-hero-m { display: flex; flex-wrap: wrap; gap: 6px 14px; align-items: center; margin-top: 6px; font-size: 14px; color: var(--muted); }
.crm-hero-m b { color: var(--text); font-weight: 600; }
.crm-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 0; border-top: 1px solid var(--line2); margin: 0 -20px -18px; }
.crm-stat { padding: 11px 20px; border-right: 1px solid var(--line2); min-width: 0; }
.crm-stat:last-child { border-right: 0; }
.crm-stat > span { display: block; font-size: 11.5px; text-transform: uppercase; letter-spacing: .06em; color: var(--muted2); font-weight: 700; }
.crm-stat > b { display: block; font-size: 15px; color: var(--text); margin-top: 2px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.crm-stat a { text-decoration: none; }
.crm-kv { display: grid; grid-template-columns: minmax(110px, 40%) minmax(0, 1fr); gap: 7px 12px; margin: 0; font-size: 14px; }
.crm-kv dt { color: var(--muted); }
.crm-kv dd { margin: 0; min-width: 0; overflow-wrap: anywhere; }
.crm-kv dd .crm-copy { opacity: 0; }
.crm-kv dd:hover .crm-copy { opacity: 1; }
.crm-copy { border: 0 !important; background: none !important; padding: 0 2px !important; color: var(--muted2) !important; cursor: pointer; vertical-align: -1px; }
.crm-copy:hover { color: var(--blue) !important; }
.crm-cf { columns: 2 360px; column-gap: 14px; }
.crm-cf > .crm-cfg { break-inside: avoid; margin: 0 0 14px; display: block; }
.crm-cfg { border: 1px solid var(--line); border-radius: 10px; padding: 12px 14px; background: #fff; min-width: 0; }
.crm-cfg-h { display: flex; justify-content: space-between; align-items: center; gap: 6px; margin-bottom: 8px; }
.crm-cfg-h h3 { margin: 0; font-size: 12.5px; text-transform: uppercase; letter-spacing: .05em; color: var(--navy2); }
.crm-cfg .crm-kv { font-size: 13.5px; grid-template-columns: minmax(110px, 52%) minmax(0, 1fr); }
.crm-cfg .crm-edit { display: none; }
.crm-cfg.is-editing .crm-view { display: none; }
.crm-cfg.is-editing .crm-edit { display: block; }
.crm-cfg.is-editing { border-color: var(--blue); box-shadow: 0 0 0 3px rgba(47,95,208,.1); }
.crm-cfg .crm-fg { grid-template-columns: 1fr; gap: 8px; }
.crm-cfg .crm-f { flex-direction: row; align-items: center; gap: 10px; }
.crm-cfg .crm-f > label:not(.crm-switch) { flex: 0 0 48%; font-size: 13px; font-weight: 600; }
.crm-cfg .crm-f > input, .crm-cfg .crm-f > select, .crm-cfg .crm-f > textarea { flex: 1; height: 34px; font-size: 14px; }
.crm-cfg .crm-f > textarea { height: auto; }
.crm-cfg-empty { color: var(--muted2); font-size: 13px; }
.crm-filter-cf { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.crm-person { display: flex; gap: 10px; padding: 10px 0; border-top: 1px solid var(--line2); }
.crm-person:first-child { border-top: 0; padding-top: 0; }
.crm-person-b { min-width: 0; flex: 1; font-size: 14px; }
.crm-person-b a.crm-strong { font-weight: 700; text-decoration: none; }
.crm-person-b div { color: var(--muted); font-size: 13px; overflow-wrap: anywhere; }
.crm-person-b div a { color: var(--muted); text-decoration: none; }
.crm-person-b div a:hover { color: var(--blue); text-decoration: underline; }
.crm-addr { padding: 10px 0; border-top: 1px solid var(--line2); font-size: 14px; display: flex; gap: 8px; }
.crm-addr:first-child { border-top: 0; padding-top: 0; }
.crm-addr-b { flex: 1; min-width: 0; }
.crm-addr-b b { display: block; font-size: 12px; text-transform: uppercase; letter-spacing: .05em; color: var(--muted); }
.crm-addr-b small { display: block; color: var(--muted); }
.crm-addr-a { display: flex; gap: 2px; align-items: flex-start; }

/* termíny kontrol na karte */
.crm-terms { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 10px; }
.crm-term { border: 1px solid var(--line); border-left: 4px solid #cbd2dc; border-radius: 10px; padding: 10px 12px; background: #fff; min-width: 0; }
.crm-term.is-late { border-left-color: var(--late); background: #FFFAFA; }
.crm-term.is-soon { border-left-color: #e69a1c; }
.crm-term.is-ok { border-left-color: var(--ok); }
.crm-term h4 { margin: 0 0 4px; font-size: 13px; font-weight: 700; color: var(--navy2); display: flex; justify-content: space-between; gap: 6px; }
.crm-term .crm-term-d { font-size: 15px; }
.crm-term .crm-term-l { font-size: 12.5px; color: var(--muted); margin-top: 3px; }
.crm-term .crm-term-t { font-size: 12.5px; margin-top: 6px; padding-top: 6px; border-top: 1px dashed var(--line); display: flex; gap: 6px; align-items: center; flex-wrap: wrap; }
.crm-term .crm-term-t a { text-decoration: none; font-weight: 600; }
.crm-term .crm-term-x { color: var(--soon); font-weight: 600; }

/* aktivity (časová os a zoznamy) */
.crm-acts { display: flex; flex-direction: column; }
.crm-act { display: flex; align-items: flex-start; gap: 10px; padding: 9px 4px 9px 0; border-top: 1px solid var(--line2); position: relative; }
.crm-act:first-child { border-top: 0; }
.crm-act-ic { width: 30px; height: 30px; border-radius: 8px; display: inline-flex; align-items: center; justify-content: center; flex: none; background: color-mix(in srgb, var(--cat) 16%, #fff); color: color-mix(in srgb, var(--cat) 75%, #1a2033); border: 1px solid color-mix(in srgb, var(--cat) 30%, #fff); }
.crm-act.is-done .crm-act-ic { background: #F3F4F6; color: #9CA3AF; border-color: #E5E7EB; }
.crm-act-b { flex: 1; min-width: 0; }
.crm-act-t { font-weight: 700; text-decoration: none; color: var(--text) !important; font-size: 14.5px; overflow-wrap: anywhere; }
.crm-act-t:hover { color: var(--blue) !important; text-decoration: underline; }
.crm-act.is-done .crm-act-t { font-weight: 600; color: #4B5563 !important; }
.crm-act-m { display: flex; flex-wrap: wrap; gap: 3px 12px; align-items: center; font-size: 13px; color: var(--muted); margin-top: 2px; }
.crm-act-m > span { display: inline-flex; align-items: center; gap: 4px; min-width: 0; }
.crm-act-c { color: var(--muted) !important; text-decoration: none; }
.crm-act-c:hover { color: var(--blue) !important; text-decoration: underline; }
.crm-act-p { font-size: 13px; color: #4B5563; margin-top: 4px; overflow-wrap: anywhere; }
.crm-act-q { flex: none; }
.crm-acts-h { font-size: 11.5px; font-weight: 800; text-transform: uppercase; letter-spacing: .08em; color: var(--muted2); padding: 12px 0 4px; border-top: 0 !important; }
.crm-acts-h.is-late { color: var(--late); }
.crm-filters { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 8px; }

/* detail aktivity */
.crm-det-h { display: flex; gap: 14px; align-items: flex-start; }
.crm-det-ic { width: 46px; height: 46px; border-radius: 12px; display: flex; align-items: center; justify-content: center; flex: none; background: color-mix(in srgb, var(--cat) 16%, #fff); color: color-mix(in srgb, var(--cat) 75%, #1a2033); border: 1px solid color-mix(in srgb, var(--cat) 30%, #fff); }
.crm-det-ic .ic { width: 22px; height: 22px; }
.crm-facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 12px; }
.crm-fact > span { display: block; font-size: 11.5px; text-transform: uppercase; letter-spacing: .06em; color: var(--muted2); font-weight: 700; margin-bottom: 2px; }
.crm-fact b { font-size: 15px; font-weight: 600; }
.crm-log { font-size: 13px; }
.crm-log li { padding: 7px 0; border-top: 1px solid var(--line2); }
.crm-log li:first-child { border-top: 0; }
.crm-log li small { color: var(--muted); display: block; }
.crm-log li pre { margin: 3px 0 0; font: inherit; white-space: pre-wrap; color: #374151; }
.crm-feed { font-size: 13.5px; }
.crm-feed li { display: flex; gap: 10px; padding: 6px 0; align-items: baseline; }
.crm-feed li.crm-feed-d { display: block; padding: 10px 0 2px; font-size: 11.5px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--muted2); border-bottom: 1px solid var(--line2); margin-bottom: 2px; }
.crm-feed li.crm-feed-d:first-child { padding-top: 0; }
.crm-feed-t { flex: none; width: 38px; color: var(--muted2); font-variant-numeric: tabular-nums; font-size: 12.5px; }
.crm-feed-b { min-width: 0; line-height: 1.45; }
.crm-feed-b .crm-av { vertical-align: -4px; }
.crm-feed-b a { color: var(--blue); text-decoration: none; }
.crm-feed-b a:hover { text-decoration: underline; }
.crm-feed-b a .ic { vertical-align: -1px; }
.crm-feed-b a.crm-feed-c { color: var(--text); font-weight: 600; }

/* nástenka */
.crm-tiles { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 12px; }
.crm-tile { background: #fff; border: 1px solid var(--line); border-radius: 12px; padding: 14px 16px; text-decoration: none; color: var(--text) !important; display: block; position: relative; }
a.crm-tile:hover { border-color: var(--in); box-shadow: 0 4px 14px rgba(16,24,48,.06); }
.crm-tile b { display: block; font-size: 28px; font-weight: 800; color: var(--navy); line-height: 1.1; }
.crm-tile span { color: var(--muted); font-size: 13.5px; font-weight: 600; }
.crm-tile.is-late b { color: var(--late); }
.crm-tile.is-soon b { color: var(--soon); }
.crm-tile .ic { position: absolute; right: 14px; top: 14px; color: var(--muted2); }

/* kalendár */
.crm-cal-h { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.crm-cal-h h2 { font-size: 18px; min-width: 220px; }
.crm-week { display: grid; grid-template-columns: 56px repeat(7, minmax(0, 1fr)); background: #fff; border: 1px solid var(--line); border-radius: 12px; overflow: hidden; }
.crm-week-dh { padding: 8px 6px; text-align: center; border-bottom: 1px solid var(--line); border-left: 1px solid var(--line2); font-size: 13px; font-weight: 700; color: var(--muted); background: #FAFBFD; }
.crm-week-dh b { display: block; font-size: 18px; color: var(--text); }
.crm-week-dh.is-today b { color: #fff; background: var(--accent); border-radius: 999px; width: 30px; height: 30px; line-height: 30px; margin: 0 auto; }
.crm-week-all { border-left: 1px solid var(--line2); border-bottom: 1px solid var(--line); padding: 3px; min-height: 30px; display: flex; flex-direction: column; gap: 2px; background: #FCFCFE; }
.crm-week-lab { font-size: 12px; color: var(--muted2); text-align: right; padding: 4px 6px; border-bottom: 1px solid var(--line); }
.crm-week-hours { font-size: 12px; color: var(--muted2); text-align: right; }
.crm-week-hours div { height: 44px; padding: 0 6px; border-top: 1px solid transparent; transform: translateY(-7px); }
.crm-week-col { position: relative; border-left: 1px solid var(--line2); background-image: repeating-linear-gradient(to bottom, var(--line2) 0, var(--line2) 1px, transparent 1px, transparent 44px); }
.crm-week-col.is-today { background-color: #FFFBF5; }
.crm-ev { position: absolute; left: 2px; right: 2px; border-radius: 6px; padding: 2px 5px; font-size: 12px; line-height: 1.25; overflow: hidden; text-decoration: none; color: #1a2033 !important; background: color-mix(in srgb, var(--cat) 20%, #fff); border-left: 3px solid var(--cat); box-shadow: 0 1px 2px rgba(16,24,48,.08); }
.crm-ev:hover { z-index: 5; box-shadow: 0 4px 12px rgba(16,24,48,.2); }
.crm-ev b { display: block; font-weight: 700; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.crm-ev small { color: #4B5563; font-size: 11.5px; }
.crm-ev.is-done { opacity: .55; }
.crm-ev-all { position: static; display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; padding: 2px 6px; }
.crm-now { position: absolute; left: 0; right: 0; height: 2px; background: var(--red); z-index: 4; }
.crm-now::before { content: ""; position: absolute; left: -4px; top: -3px; width: 8px; height: 8px; border-radius: 50%; background: var(--red); }
.crm-month { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); background: #fff; border: 1px solid var(--line); border-radius: 12px; overflow: hidden; }
.crm-month-dh { padding: 8px; font-size: 12px; font-weight: 700; color: var(--muted); text-transform: uppercase; text-align: center; border-bottom: 1px solid var(--line); background: #FAFBFD; }
.crm-month-d { min-height: 112px; border-left: 1px solid var(--line2); border-top: 1px solid var(--line2); padding: 4px; display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.crm-month-d:nth-child(7n+1) { border-left: 0; }
.crm-month-d.is-out { background: #FAFBFD; }
.crm-month-d.is-out .crm-month-n { color: var(--muted2); }
.crm-month-n { font-size: 13px; font-weight: 700; padding: 2px 4px; color: var(--text); text-decoration: none; }
.crm-month-d.is-today .crm-month-n { color: #fff; background: var(--accent); border-radius: 999px; align-self: flex-start; padding: 2px 8px; }
.crm-month-more { font-size: 12px; color: var(--muted); padding: 0 4px; }

/* import a nastavenia */
.crm-logl { margin: 0; padding-left: 18px !important; font-size: 14px; }
.crm-logl li { list-style: disc; padding: 2px 0; }
.crm-settabs { display: flex; flex-wrap: wrap; gap: 4px; }
.crm-colorin { width: 38px !important; height: 34px !important; padding: 2px !important; border-radius: 8px; border: 1px solid var(--in); background: #fff; cursor: pointer; flex: none; }
.crm-sortable td.crm-handle { cursor: grab; color: var(--muted2); width: 24px; }

/* tlač a mobil */
@media (max-width: 1180px) {
	.crm-cols { grid-template-columns: minmax(0, 1fr) 320px; }
}
@media (max-width: 980px) {
	.crm-cols, .crm-grid2, .crm-grid3 { grid-template-columns: 1fr; }
	.crm-week { grid-template-columns: 40px repeat(7, minmax(110px, 1fr)); overflow-x: auto; }
}
@media (max-width: 700px) {
	.crm h1 { font-size: 22px; }
	.crm-tabs { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; }
	.crm-tabs::-webkit-scrollbar { display: none; }
	.crm-ph-a .crm-btn { height: 36px; padding: 0 11px; }
	.crm-fg, .crm-fg3 { grid-template-columns: 1fr; }
	.crm-kv { grid-template-columns: minmax(100px, 42%) minmax(0, 1fr); }
	.crm-cf { grid-template-columns: 1fr; }
	.crm-cfg .crm-f { flex-direction: column; align-items: stretch; gap: 4px; }
	.crm-table.crm-resp thead { display: none; }
	.crm-table.crm-resp tr { display: block; border-bottom: 1px solid var(--line); padding: 8px 4px; }
	.crm-table.crm-resp td { display: inline-block; border: 0; padding: 2px 6px; }
	.crm-table.crm-resp td.crm-hide-m { display: none; }
	/* riadok ako karta: hlavný údaj hore, výber skrytý, „Mám hotovo“ vpravo hore */
	.crm-table.crm-resp tr { position: relative; padding: 10px 12px; }
	.crm-table.crm-resp td { padding: 2px 10px 2px 0; vertical-align: middle; }
	.crm-table.crm-resp td.crm-chk, .crm-table.crm-resp th.crm-chk { display: none; }
	.crm-table.crm-resp td:has(> a.crm-strong), .crm-table.crm-resp td:has(> .crm-tcell) { display: block; padding: 0 0 4px; font-size: 15.5px; }
	.crm-table.crm-resp tr:has(.crm-ibtn-ok) td:has(> .crm-tcell) { padding-right: 46px; }
	.crm-table.crm-resp td:has(> .crm-ibtn-ok) { position: absolute; top: 8px; right: 8px; padding: 0; }
	.crm-table.crm-resp td:has(> .crm-st-scheduled), .crm-table.crm-resp td:has(> .crm-st-late), .crm-table.crm-resp td:empty { display: none; }
	.crm-table.crm-resp .crm-tag { font-size: 11.5px; }
	.crm-stats { grid-template-columns: 1fr 1fr; }
	.crm-stat { border-bottom: 1px solid var(--line2); }
	.crm-month-d { min-height: 70px; font-size: 11px; }
	.crm-month .crm-ev-all { font-size: 10.5px; padding: 1px 3px; }
	.crm-hero { padding: 14px; }
	.crm-stats { margin: 0 -14px -14px; }
	dialog.crm-dlg { width: 100vw; max-width: 100vw; max-height: 100vh; height: 100%; border-radius: 0; margin: 0; }
}
@media print {
	body.shell .side, body.shell header.top, .crm-ph-a, .crm-act-q, footer, .wtabs { display: none !important; }
	body.shell .page { margin: 0 !important; }
}
html.side-mini details.side-grp > summary b, html.side-mini details.side-grp > summary .ic { display: none; }

/* poznámky a diskusia */
.crm-notes { margin-top: 12px !important; display: flex; flex-direction: column; }
.crm-notes > .crm-note { display: flex; gap: 10px; padding: 10px 0; background: none; border: 0; border-top: 1px solid var(--line2); border-radius: 0; color: inherit; font-size: inherit; }
.crm-notes > .crm-note:first-child { border-top: 0; }
.crm-notes > .crm-note.is-pinned { background: #FFFBEB; margin: 0 -10px; padding: 10px; border-radius: 8px; }
.crm-note-b { flex: 1; min-width: 0; }
.crm-note-h { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; font-size: 13.5px; margin-bottom: 2px; }
.crm-note-h small { color: var(--muted); }
.crm-note-a { margin-left: auto; }
.crm-note-a form { display: inline-flex !important; gap: 2px; }
.crm-notes .crm-note .crm-ibtn { width: 26px; height: 26px; font-size: 13px; }
.crm-note-f .crm-rte-area { min-height: 60px; }

/* ---------- Dropbox ---------- */
.crm-dbx[aria-busy] { opacity: .6; }
.crm-dbx-crumbs { font-size: 13px; margin: 0 0 6px; color: var(--muted); display: flex; flex-wrap: wrap; gap: 4px; align-items: center; }
.crm-dbx-crumbs a { color: var(--blue); }
.crm-dbx-crumbs span { color: var(--muted2); }
.crm-dbx-list, .crm-dbx-hits { list-style: none; margin: 0; padding: 0; max-height: 360px; overflow-y: auto; }
.crm-dbx-list li a, .crm-dbx-hits li a { display: flex; align-items: center; gap: 8px; padding: 6px 6px; border-radius: 6px; color: var(--text); text-decoration: none; min-width: 0; }
.crm-dbx-list li a:hover, .crm-dbx-hits li a:hover, .crm-dbx-hits li.on a { background: var(--bluebg); }
.crm-dbx-list li a span, .crm-dbx-hits li a span { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 13.5px; }
.crm-dbx-list li a small { color: var(--muted); font-size: 12px; white-space: nowrap; }
.crm-dbx-list svg, .crm-dbx-hits svg { flex: none; color: var(--muted); }
.crm-dbx-folder svg, .crm-dbx-hits svg { color: #3d84f5; }
.crm-dbx-pdf svg { color: #d93f3f; }
.crm-dbx-doc svg { color: #2b6cd4; }
.crm-dbx-xls svg { color: #1f8a4c; }
.crm-dbx-img svg { color: #b0569c; }
.crm-dbx-find { margin: 4px 0 8px; }
.crm-dbx-hits { margin-top: 6px; max-height: 220px; }
.crm-dbx-hits li.crm-muted, .crm-dbx-hits li.crm-alert { padding: 6px; font-size: 13px; }
/* Dokumenty: zdroj priečinka, prázdny stav a okno „Priečinok klienta v Dropboxe“ */
.crm-dbx-src { display: flex; align-items: center; flex-wrap: wrap; gap: 4px 6px; margin: -4px 0 10px; font-size: 13px; color: var(--muted); min-width: 0; }
.crm-dbx-src svg { color: #3d84f5; flex: none; }
.crm-dbx-src b { color: var(--text); min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 100%; }
.crm-dbx-empty { display: flex; align-items: center; gap: 12px 14px; flex-wrap: wrap; padding: 14px; border: 1px dashed #c9d6ee; border-radius: 12px; background: #F7FAFF; margin-bottom: 10px; }
.crm-dbx-empty-ic { width: 40px; height: 40px; border-radius: 10px; background: #fff; color: #3d84f5; display: grid; place-items: center; flex: none; box-shadow: 0 1px 2px rgba(16,24,48,.08); }
.crm-dbx-empty > div { flex: 1 1 220px; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.crm-dbx-empty > div span { color: var(--muted); font-size: 13.5px; }
.dbx-pick .crm-seg { margin-bottom: 10px; }
.dbx-now { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; font-size: 13.5px; margin: 0 0 10px; min-width: 0; }
.dbx-now svg { color: #3d84f5; flex: none; }
.dbx-now b { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 60%; }
.dbx-connect { padding: 14px; border-radius: 12px; background: #F7FAFF; border: 1px solid #dbe6fb; margin-bottom: 10px; }
.dbx-connect p { margin: 0 0 10px; font-size: 14px; }
.dbx-mine-note { display: flex; gap: 8px; align-items: flex-start; font-size: 13px; color: #6b4e00; background: #FFF8E6; border: 1px solid #F5E3A8; border-radius: 10px; padding: 8px 10px; margin: 0 0 10px; }
.dbx-mine-note svg { flex: none; margin-top: 1px; }
.dbx-q { position: relative; margin-bottom: 8px; }
.dbx-q svg { position: absolute; left: 11px; top: 50%; transform: translateY(-50%); color: var(--muted); pointer-events: none; }
.dbx-q input { width: 100%; padding-left: 34px; font-family: inherit; }
.dbx-crumbs { display: flex; flex-wrap: wrap; gap: 2px 4px; align-items: center; font-size: 13px; color: var(--muted); margin: 0 0 4px; min-height: 0; }
.dbx-crumbs:empty { display: none; }
.dbx-crumbs button { border: 0; background: none; padding: 2px 4px; border-radius: 6px; color: var(--blue); font: inherit; cursor: pointer; }
.dbx-crumbs b { color: var(--text); padding: 2px 4px; }
.dbx-list { list-style: none; margin: 0; padding: 0; max-height: min(46vh, 380px); overflow-y: auto; overscroll-behavior: contain; border: 1px solid var(--line); border-radius: 10px; }
.dbx-list li { display: flex; align-items: center; gap: 6px; padding: 2px 6px 2px 2px; border-bottom: 1px solid var(--line); min-width: 0; }
.dbx-list li:last-child { border-bottom: 0; }
.dbx-open { flex: 1; min-width: 0; display: flex; align-items: center; justify-content: flex-start; gap: 10px; border: 0; background: none; padding: 8px 8px; border-radius: 8px; text-align: left; font: inherit; color: var(--text); cursor: pointer; touch-action: manipulation; }
.dbx-open svg { color: #3d84f5; flex: none; }
.dbx-open span { min-width: 0; display: flex; flex-direction: column; }
.dbx-open b { font-weight: 600; font-size: 14px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dbx-open small { color: var(--muted); font-size: 12px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dbx-use { flex: none; }
.dbx-list li.dbx-msg { display: block; padding: 10px 12px; font-size: 13.5px; }
.dbx-link { border: 0; background: none; padding: 0; color: var(--blue); font: inherit; cursor: pointer; text-decoration: underline; }
.dbx-here { display: flex; align-items: center; justify-content: space-between; gap: 8px 12px; flex-wrap: wrap; margin-top: 10px; padding: 10px 12px; border-radius: 10px; background: var(--bluebg); font-size: 13.5px; }
.dbx-here[hidden] { display: none; }
.dbx-manual { margin-top: 12px; font-size: 13.5px; }
.dbx-manual summary { cursor: pointer; color: var(--muted); }
.dbx-manual-b { display: flex; gap: 6px; margin: 8px 0 4px; }
.dbx-manual-b input { flex: 1; min-width: 0; }
@media (hover: hover) and (pointer: fine) {
	.dbx-open:hover, .dbx-crumbs button:hover { background: var(--bluebg); }
}
@media (pointer: coarse) { .dbx-q input, .dbx-manual-b input { font-size: 16px; } }
.crm-steps { margin: 0 0 12px; padding-left: 20px; font-size: 13.5px; line-height: 1.55; }
.crm-steps li { margin-bottom: 6px; }
.crm-codecopy { display: inline-block; margin-top: 4px; padding: 3px 6px; background: var(--bg); border: 1px solid var(--line); border-radius: 4px; font-size: 12px; cursor: copy; word-break: break-all; }

/* ---------- detail aktivity: zaradenie, nadväzujúce ---------- */
.crm-quick { display: grid; gap: 4px; }
.crm-quick .crm-flabel { margin-top: 6px; }
.crm-quick .crm-flabel:first-of-type { margin-top: 0; }
.crm-quick select { width: 100%; }
.crm-dd-r .crm-dd-m { right: 0; left: auto; }
.crm-card-h .crm-dd summary.crm-btn { height: 30px; }

/* ---------- kalendár: presun potiahnutím ---------- */
.crm-ev[draggable="true"] { cursor: grab; }
/* natiahnutie času: spodný okraj aktivity v mriežke týždňa */
.crm-ev .crm-ev-rs { position: absolute; left: 0; right: 0; bottom: 0; height: 8px; cursor: ns-resize; touch-action: none; }
.crm-ev .crm-ev-rs::after { content: ""; position: absolute; left: 50%; bottom: 2px; width: 20px; height: 3px; margin-left: -10px; border-radius: 2px; background: var(--cat); opacity: 0; transition: opacity .12s; }
.crm-ev:hover .crm-ev-rs::after, .crm-ev.is-resizing .crm-ev-rs::after { opacity: .7; }
.crm-ev.is-resizing { z-index: 6; overflow: visible; box-shadow: 0 6px 18px rgba(16,24,48,.25); }
.crm-ev.is-resizing::after { content: attr(data-till-label); position: absolute; right: 4px; bottom: -22px; font-size: 11.5px; font-weight: 700; white-space: nowrap; background: var(--navy, #1d2733); color: #fff; padding: 2px 7px; border-radius: 5px; pointer-events: none; }
@media (pointer: coarse) {
	.crm-ev .crm-ev-rs { height: 16px; }
	.crm-ev .crm-ev-rs::after { opacity: .7; width: 26px; margin-left: -13px; }
}
.crm-ev.is-dragging { opacity: .45; }
.crm-week-col.is-drop, .crm-week-all.is-drop, .crm-month-d.is-drop { background: var(--bluebg) !important; outline: 2px dashed var(--blue); outline-offset: -2px; }

/* ---------- obchodné prípady podľa fáz ---------- */
.crm-kanban { display: flex; gap: 12px; overflow-x: auto; padding-bottom: 10px; align-items: flex-start; }
.crm-kcol { flex: 0 0 260px; background: #EEF1F6; border-radius: var(--r); border-top: 3px solid var(--cat); display: flex; flex-direction: column; max-height: calc(100vh - 230px); }
.crm-kcol-h { padding: 10px 12px 8px; display: flex; flex-direction: column; gap: 2px; }
.crm-kcol-h b { font-size: 14px; color: var(--navy); }
.crm-kcol-h span { font-size: 12px; color: var(--muted); }
.crm-kcol-b { padding: 0 8px 10px; overflow-y: auto; display: flex; flex-direction: column; gap: 8px; min-height: 60px; }
.crm-kcard { display: flex; flex-direction: column; gap: 3px; background: #fff; border: 1px solid var(--line); border-radius: 8px; padding: 9px 10px; color: var(--text); text-decoration: none; box-shadow: 0 1px 2px rgba(16,24,48,.05); }
.crm-kcard:hover { border-color: var(--in); }
.crm-kcard[draggable="true"] { cursor: grab; }
.crm-kcard.is-dragging { opacity: .45; }
.crm-kcard small { color: var(--muted2); font-size: 12px; }
.crm-kcard b { font-size: 13.5px; line-height: 1.3; }
.crm-kcard span { font-size: 12.5px; color: var(--muted); }
.crm-kcard em { font-style: normal; font-size: 13px; font-weight: 700; display: flex; align-items: center; justify-content: space-between; gap: 6px; min-height: 20px; }
.crm-kempty { color: var(--muted2); font-size: 12.5px; text-align: center; margin: 12px 0; }
.crm-kcol.is-drop { background: var(--bluebg); outline: 2px dashed var(--blue); outline-offset: -2px; }
.crm-kend { flex: 0 0 150px; display: flex; flex-direction: column; gap: 10px; position: sticky; right: 0; }
.crm-kdrop { border: 2px dashed var(--line); border-radius: var(--r); padding: 26px 10px; text-align: center; font-weight: 700; display: flex; align-items: center; justify-content: center; gap: 6px; background: #fff; }
.crm-kdrop.is-win { color: var(--ok); border-color: #b9dcc7; }
.crm-kdrop.is-lost { color: var(--late); border-color: #f0c2c2; }
.crm-kdrop.is-drop.is-win { background: var(--okbg); border-color: var(--ok); }
.crm-kdrop.is-drop.is-lost { background: var(--latebg); border-color: var(--late); }
.crm-ph-a .crm-pills { margin-right: 6px; }

/* ---------- upozornenia (zvonček) ---------- */
details.top-bell > summary { position: relative; }
.bell-n { position: absolute; top: 3px; right: 2px; min-width: 17px; height: 17px; padding: 0 4px; border-radius: 9px; background: var(--red); color: #fff; font-size: 10.5px; font-weight: 800; line-height: 17px; text-align: center; box-shadow: 0 0 0 2px #fff; }
.bell-menu { width: 360px; max-width: calc(100vw - 24px); padding: 6px; }
.bell-h { display: flex; align-items: center; justify-content: space-between; padding: 6px 10px 8px; border-bottom: 1px solid var(--line2); margin-bottom: 4px; }
.bell-h b { font-size: 14px; color: var(--navy); }
.bell-h form { margin: 0; padding: 0; display: inline; width: auto; max-width: none; box-shadow: none; border: 0; background: none; }
.bell-h button { border: 0 !important; background: none !important; color: var(--blue) !important; font-size: 12.5px; font-weight: 600; cursor: pointer; padding: 0 !important; height: auto !important; white-space: nowrap; width: auto; min-width: 0; box-shadow: none !important; }
.bell-h button:hover { text-decoration: underline; }
.bell-menu a { align-items: flex-start !important; font-size: 13.5px !important; font-weight: 500 !important; line-height: 1.35; white-space: normal; }
.bell-menu a span { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.bell-menu a small { color: var(--muted); font-size: 12px; }
.bell-menu a.is-new { background: var(--bluebg); }
.bell-menu a.is-new span::before { content: ''; }
.bell-menu .bell-all { justify-content: center; color: var(--blue) !important; font-weight: 600 !important; border-top: 1px solid var(--line2); border-radius: 0 0 8px 8px; margin-top: 4px; }
.bell-empty { margin: 10px; color: var(--muted); font-size: 13px; }
.crm-notify { list-style: none; margin: 0; padding: 0; }
.crm-notify li a { display: flex; gap: 12px; align-items: flex-start; padding: 10px 8px; border-bottom: 1px solid var(--line2); color: var(--text); text-decoration: none; border-radius: 8px; }
.crm-notify li a:hover { background: var(--bg); }
.crm-notify li.is-new a { background: var(--bluebg); }
.crm-notify li a span { display: flex; flex-direction: column; gap: 3px; }
.crm-notify li a b { font-weight: 600; font-size: 14px; }
.crm-notify li.is-new a b { font-weight: 700; }
.crm-notify li a small { color: var(--muted); font-size: 12.5px; }

/* ---------- účastníci z tímu (výber kolegov) ---------- */
.crm-chips { display: flex; flex-wrap: wrap; gap: 6px; margin: 4px 0 2px; }
.crm-chipchk { display: inline-flex; cursor: pointer; }
.crm-chipchk input { position: absolute; opacity: 0; pointer-events: none; }
.crm-chipchk span { display: inline-flex; align-items: center; padding: 5px 11px; border: 1px solid var(--line); border-radius: 999px; font-size: 13px; font-weight: 600; color: var(--muted); background: #fff; }
.crm-chipchk input:checked + span { background: var(--bluebg); border-color: var(--blue); color: var(--blue); }
.crm-chipchk input:checked + span::before { content: '✓'; margin-right: 5px; }
.crm-chipchk input:focus-visible + span { outline: 2px solid var(--blue); outline-offset: 2px; }
@media (max-width: 600px) {
	details.top-bell .bell-menu { position: fixed; left: 10px; right: 10px; top: 58px; width: auto; max-width: none; max-height: calc(100vh - 80px); overflow-y: auto; }
}
.crm-bulk [data-op][hidden] { display: none !important; }
.crm-ev-more { position: absolute; height: 22px; display: flex; align-items: center; justify-content: center; border-radius: 6px; background: var(--navy); color: #fff !important; font-size: 12px; font-weight: 800; text-decoration: none; z-index: 2; }
.crm-ev-more:hover { background: var(--navy3); }
.crm-table td.crm-svccol { min-width: 240px; max-width: 320px; }
.crm-table td.crm-svccol .crm-tag { margin: 1px 2px 1px 0; }
@media (max-width: 900px) { .crm-table td.crm-svccol { min-width: 0; } }

/* skupina firiem (materská / dcérske) */
.crm-grp { display: flex; flex-direction: column; gap: 3px; padding: 6px 0; }
.crm-grp + .crm-grp { border-top: 1px solid var(--line2); }
.crm-grp-l { font-size: 12px; color: var(--muted); text-transform: uppercase; letter-spacing: .03em; }
.crm-grp small { color: var(--muted); }
.crm-grp-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 4px; }
.crm-grp-list li { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.crm-grp-list li > a { font-weight: 600; }
.crm-grp-list .crm-inline { margin-left: auto; display: inline; }
.crm-hr { border: 0; border-top: 1px solid var(--line2); margin: 14px 0; }
.crm-grp a, .crm-grp-list a { text-decoration: none; }

/* ===================== notifikácie v zariadení ===================== */
.bell-menu .bell-push { margin-top: 0; border-top: 0; font-weight: 500 !important; font-size: 13px; gap: 6px; }
.crm-push-st { margin: 0 0 12px; color: var(--muted); }
.crm-push-st.ok { color: var(--ok); font-weight: 600; }
.crm-push-st.warn { color: #9a5b00; }
.crm-push [data-push-ios] { margin-top: 12px; }
.crm-push-prefs { margin-top: 16px; padding-top: 14px; border-top: 1px solid var(--line2); }
.crm-push-prefs .crm-chk { display: flex; margin: 6px 0; }
.crm-devs { list-style: none; margin: 0; padding: 0; }
.crm-devs li { display: flex; align-items: center; gap: 10px; padding: 8px 0; border-top: 1px solid var(--line2); }
.crm-devs li:first-child { border-top: 0; }
.crm-devs li > span { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.crm-devs small { color: var(--muted); font-size: 12.5px; }
.crm-devs .crm-inline { display: inline; }

/* ===================== mobil a tablet (dotyk, aplikácia na ploche) ===================== */
.top-back, .tabbar, .crm .crm-btn.crm-ftog { display: none; }
.crm-ptr { position: fixed; top: 64px; left: 50%; z-index: 80; width: 38px; height: 38px; border-radius: 50%; background: #fff; box-shadow: 0 3px 12px rgba(16,24,48,.18);
	display: flex; align-items: center; justify-content: center; color: var(--muted); opacity: 0; transform: translate(-50%, 0); pointer-events: none; }
.crm-ptr.go { color: var(--navy); }
.crm-ptr.spin svg { animation: crm-spin .7s linear infinite; }
@keyframes crm-spin { to { transform: rotate(360deg); } }

@media (pointer: coarse) {
	.crm-ibtn, .crm button.crm-ibtn { width: 40px; height: 40px; }
	.crm-act-q button { min-width: 40px; min-height: 40px; }
	.crm-chk input[type=checkbox], .crm-table input[type=checkbox] { width: 20px; height: 20px; }
	.crm-dd-m a, .crm-dd-m button, .gear-menu a { min-height: 44px; }
}

@media (max-width: 760px) {
	/* spodná lišta ako v aplikácii */
	.tabbar { display: flex; position: fixed; left: 0; right: 0; bottom: 0; z-index: 45; background: rgba(255,255,255,.96); -webkit-backdrop-filter: saturate(1.6) blur(12px); backdrop-filter: saturate(1.6) blur(12px);
		border-top: 1px solid var(--line); padding: 4px 6px calc(4px + env(safe-area-inset-bottom)); }
	.tabbar a, .tabbar button { flex: 1 1 0; min-width: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px; min-height: 52px; padding: 0;
		border: 0; background: none; color: var(--muted); font: inherit; font-size: 11px; font-weight: 600; text-decoration: none; border-radius: 12px; cursor: pointer; -webkit-tap-highlight-color: transparent; }
	.tabbar a svg, .tabbar button svg { width: 23px; height: 23px; }
	.tabbar a.on { color: var(--navy); }
	.tabbar a.on svg { stroke-width: 2.3; }
	.tabbar a:active, .tabbar button:active { background: var(--line2); }
	body.shell .page { padding-bottom: calc(62px + env(safe-area-inset-bottom)); }
	body.shell .top-burger { display: none; }   /* menu je v spodnej lište (Viac) */
	body.side-open .tabbar { z-index: 40; }
	/* iPhone priblíži stránku pri písaní do poľa s písmom menším ako 16 px */
	body.shell input:not([type=checkbox]):not([type=radio]):not([type=color]), body.shell select, body.shell textarea, body.shell .crm-rte-area { font-size: 16px !important; }
	/* filtre zoznamov pod tlačidlom */
	form.crm-toolbar.crm-fcoll > .crm-ftog { display: inline-flex; }
	form.crm-toolbar.crm-fcoll:not(.is-open) > select, form.crm-toolbar.crm-fcoll:not(.is-open) > .crm-chk, form.crm-toolbar.crm-fcoll:not(.is-open) > input[type=date],
	form.crm-toolbar.crm-fcoll:not(.is-open) > .crm-link, form.crm-toolbar.crm-fcoll:not(.is-open) > a.crm-btn, form.crm-toolbar.crm-fcoll:not(.is-open) > label { display: none; }
	form.crm-toolbar.crm-fcoll input[type=search] { flex: 1 1 140px; max-width: none; }
	form.crm-toolbar.crm-fcoll.is-open > select { flex: 1 1 calc(50% - 4px); min-width: 0; max-width: none; }
	.crm-ftog.has { border-color: var(--blue); color: var(--blue); }
	.crm-ftog b { background: var(--blue); color: #fff; border-radius: 999px; font-size: 11px; padding: 1px 6px; margin-left: 2px; }
	.crm-hide-m { display: none !important; }
	form.crm-toolbar.crm-fcoll > button[type=submit] { font-size: 0; gap: 0; padding: 0 12px; }
	/* rýchle akcie v hlavičke klienta */
	.crm-hero-quick { display: grid !important; }
	.crm-hero .crm-logo { width: 40px; height: 40px; font-size: 18px; border-radius: 10px; }
	/* súhrn klienta v jednom riadku (posun do strany), aby záložky boli hneď pod hlavičkou */
	.crm-hero .crm-stats { display: flex; overflow-x: auto; scrollbar-width: none; -webkit-overflow-scrolling: touch; scroll-snap-type: x proximity; }
	.crm-hero .crm-stats::-webkit-scrollbar { display: none; }
	.crm-hero .crm-stat { flex: 0 0 auto; min-width: 128px; max-width: 190px; padding: 9px 14px; scroll-snap-align: start; border-bottom: 0; }
	.crm-hero .crm-stat > b { font-size: 14px; }
	.crm-hero h1 { font-size: 20px; }
	.crm-hero-c { display: none; }
	details.top-bell .bell-menu { top: calc(58px + env(safe-area-inset-top)); max-height: calc(100vh - 140px); }
	dialog.crm-dlg { max-height: calc(100dvh - 24px); }
}
.crm-hero-quick { display: none; grid-template-columns: repeat(auto-fit, minmax(64px, 1fr)); gap: 8px; }
.crm-hero-quick a { display: flex; flex-direction: column; align-items: center; gap: 4px; padding: 10px 4px; border-radius: 12px; background: var(--line2); color: var(--text); text-decoration: none; font-size: 12.5px; font-weight: 600; }
.crm-hero-quick a svg { color: var(--navy); }
.crm-hero-quick a:active { background: var(--line); }

/* v aplikácii na ploche */
html.pwa .top-back:not([hidden]) { display: inline-flex; align-items: center; justify-content: center; width: 38px; height: 38px; border: 0; background: none; color: var(--text); padding: 0; margin-left: -6px; border-radius: 10px; }
html.pwa body.shell header.top { padding-top: env(safe-area-inset-top); }
html.pwa body.shell footer { display: none; }

/* ===================== prílohy ===================== */
.crm-files { position: relative; }
.crm-files.is-drag { outline: 2px dashed var(--blue); outline-offset: -6px; background: var(--bluebg); }
.crm-files.is-drag::after { content: 'Pustite súbory – priložia sa sem'; position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; font-weight: 700; color: var(--blue); pointer-events: none; }
.crm .crm-up { display: flex; gap: 6px; flex: none; justify-content: flex-end; }
.crm-up label, .crm-up-inline label { white-space: nowrap; flex: none; }
.crm .crm-up label.crm-btn, .crm .crm-up-inline label.crm-btn { cursor: pointer; padding: 0 12px; text-align: center; }
.crm-up-cam { display: none !important; }
@media (pointer: coarse) { .crm-up-cam { display: inline-flex !important; } .crm-up-hint { display: none; } }
.crm-up-inline { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.crm-up-names { flex: 1 1 100%; overflow-wrap: anywhere; }
.crm-up-prog { display: flex; align-items: center; gap: 10px; margin: 4px 0 10px; font-size: 13px; color: var(--muted); }
.crm-up-prog[hidden] { display: none; }
.crm-up-bar { flex: 1; height: 6px; border-radius: 99px; background: var(--line2); overflow: hidden; }
.crm-up-bar i { display: block; height: 100%; width: 2%; background: var(--blue); transition: width .2s; }
.crm-thumbs { display: grid; grid-template-columns: repeat(auto-fill, minmax(96px, 1fr)); gap: 8px; margin-bottom: 10px; }
.crm-thumbs figure { margin: 0; position: relative; }
.crm-thumbs img { display: block; width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: 10px; border: 1px solid var(--line); background: var(--line2); }
.crm-thumbs figcaption { display: flex; align-items: center; gap: 4px; font-size: 11.5px; color: var(--muted); margin-top: 3px; min-height: 24px; }
.crm-thumbs figcaption .crm-inline { margin-left: auto; }
.crm-thumbs figcaption .crm-ibtn { width: 26px; height: 26px; }
.crm-flist { list-style: none; margin: 0; padding: 0; }
.crm-flist li { display: flex; align-items: center; gap: 10px; padding: 7px 0; border-top: 1px solid var(--line2); }
.crm-flist li:first-child { border-top: 0; }
.crm-fb { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.crm-fb a { font-weight: 600; overflow-wrap: anywhere; text-decoration: none; color: var(--text); }
.crm-fb a:hover { color: var(--blue); }
.crm-fb small { color: var(--muted); font-size: 12px; }
.crm-fic { flex: none; width: 38px; height: 38px; border-radius: 8px; display: flex; align-items: center; justify-content: center; font-size: 10px; font-weight: 800; letter-spacing: .02em; background: var(--line2); color: var(--muted); }
.crm-fic-pdf { background: #fde8e8; color: #c62828; }
.crm-fic-doc { background: #e6efff; color: #1f5fd6; }
.crm-fic-sheet { background: #e3f5ea; color: #1b7f45; }
.crm-fic-image { background: #f3e9ff; color: #7b3fc4; }
.crm-file-src { margin-left: 6px; font-size: 11.5px; font-weight: 700; color: var(--muted); background: var(--line2); border-radius: 99px; padding: 1px 7px; text-decoration: none; }
.crm-flist .crm-inline { display: inline; }

/* ===================== záložky karty (klient, osoba, prípad) ===================== */
.crm-ctabs { display: flex; gap: 2px; position: sticky; top: var(--top); z-index: 20; background: var(--bg); margin: -6px 0 -4px; padding-top: 6px;
	border-bottom: 1px solid var(--line); overflow-x: auto; scrollbar-width: none; }
.crm-ctabs::-webkit-scrollbar { display: none; }
.crm-ctabs button { flex: none; display: inline-flex; align-items: center; gap: 6px; padding: 10px 14px 11px; border: 0; border-bottom: 2px solid transparent; margin-bottom: -1px;
	background: none; font: inherit; font-size: 14.5px; font-weight: 700; color: var(--muted); cursor: pointer; white-space: nowrap; border-radius: 8px 8px 0 0; }
.crm-ctabs button:hover { color: var(--text); background: rgba(255,255,255,.6); }
.crm-ctabs button.on { color: var(--navy); border-bottom-color: var(--accent); }
.crm-ctabs button:focus-visible { outline: 2px solid var(--blue); outline-offset: -2px; }
.crm-ctabs b { font-size: 11.5px; font-weight: 700; background: #E4E8F0; color: var(--muted); padding: 1px 7px; border-radius: 99px; line-height: 1.5; }
.crm-ctabs button.on b { background: var(--navy); color: #fff; }
.crm-ctab-m { display: none !important; }
.crm-ctabs-who { display: none; align-self: center; max-width: 280px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 800; color: var(--navy); font-size: 15px; padding: 0 14px 4px 2px; margin-right: 6px; border-right: 1px solid var(--line); cursor: pointer; }
.crm-ctabs.is-stuck { box-shadow: 0 6px 10px -8px rgba(16,24,48,.25); }
@media (min-width: 981px) { .crm-ctabs.is-stuck .crm-ctabs-who { display: block; } }
.crm-tabpanel { display: flex; flex-direction: column; gap: 16px; }
.crm-tabs-js .crm-tabpanel:not(.on) { display: none; }
.crm-tabbed .crm-card { scroll-margin-top: calc(var(--top) + 60px); }
html.pwa .crm-ctabs { top: calc(var(--top) + env(safe-area-inset-top)); }
@media (max-width: 980px) {
	.crm-ctab-m { display: inline-flex !important; }
	.crm-tabs-js:not(.is-side) > .crm-side { display: none; }
	.crm-tabs-js.is-side .crm-tabpanel { display: none !important; }
	.crm-ctabs button { padding: 10px 12px 11px; font-size: 14px; }
}
.crm-stat-late { display: inline-flex; align-items: center; gap: 4px; margin-top: 3px; font-size: 12.5px; font-weight: 700; color: var(--late) !important; text-decoration: none; }
.crm-cleanup { display: flex; align-items: center; gap: 10px 14px; flex-wrap: wrap; justify-content: space-between; }
.crm-cleanup > span { flex: 1 1 280px; }
.crm-cleanup > span svg { vertical-align: -2px; margin-right: 4px; }
/* zbaliteľná karta (história zmien) */
details.crm-coll > summary { cursor: pointer; list-style: none; margin: 0; }
details.crm-coll > summary::-webkit-details-marker { display: none; }
details.crm-coll > summary .crm-coll-i { margin-left: auto; color: var(--muted); display: inline-flex; transition: transform .15s; }
details.crm-coll[open] > summary .crm-coll-i { transform: rotate(180deg); }
details.crm-coll[open] > summary { margin-bottom: 12px; }
/* poznámky: zbalený editor, kým do neho nepíšete (ako komentáre v HubSpote) */
.crm-note-f:not(:focus-within):not(.has-text) .crm-rte-bar, .crm-note-f:not(:focus-within):not(.has-text) .crm-actions { display: none; }
.crm-note-f:not(:focus-within):not(.has-text) .crm-rte-area { min-height: 42px; cursor: text; }
/* šablóny úloh */
.crm-tpl td { padding: 4px 4px; vertical-align: middle; }
.crm-tpl input[type=text] { min-width: 220px; width: 100%; }
.crm-tpl input, .crm-tpl select { height: 34px; border: 1px solid var(--in); border-radius: 8px; padding: 0 8px; font: inherit; font-size: 13.5px; background: #fff; }
.crm-tpl input[type=number] { width: 70px; }
.crm-tpl-prev { list-style: none; margin: 10px 0 0; padding: 10px 12px; background: var(--line2); border-radius: 10px; display: flex; flex-direction: column; gap: 6px; font-size: 14px; }
.crm-tpl-prev li { display: flex; gap: 6px; align-items: baseline; flex-wrap: wrap; }
.crm-tpl-prev small { color: var(--muted); }
.crm .crm-tpl-prev { margin-top: 14px; }
.crm-hero-quick a, .crm-hero-quick a:visited, .crm-hero-quick a:hover { color: var(--text) !important; text-decoration: none; }
.crm-desc-h { font-size: 15px; margin: 16px 0 8px; padding-top: 14px; border-top: 1px solid var(--line2); color: var(--navy); }
/* položky obchodného prípadu */
.crm-items td { vertical-align: top; }
.crm-items .crm-inline { display: inline; }
.crm-isum { display: grid; grid-template-columns: auto auto; justify-content: end; gap: 4px 18px; margin: 12px 0 0; padding-top: 10px; border-top: 1px solid var(--line2); font-size: 14px; }
.crm-isum dt { color: var(--muted); text-align: right; }
.crm-isum dd { margin: 0; text-align: right; font-variant-numeric: tabular-nums; }

/* ===================== uložené pohľady zoznamov ===================== */
.crm-svs { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; margin-bottom: -4px; }
.crm-svs-l { display: inline-flex; align-items: center; gap: 5px; font-size: 12px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--muted); margin-right: 2px; }
.crm-sv { display: inline-flex; align-items: center; height: 30px; border: 1px solid var(--line); background: #fff; border-radius: 999px; font-size: 13.5px; font-weight: 600; overflow: hidden; }
.crm-sv a { display: inline-flex; align-items: center; gap: 5px; padding: 0 12px; height: 100%; color: var(--text); text-decoration: none; white-space: nowrap; }
.crm-sv a:hover { background: var(--line2); }
.crm-sv.on { border-color: var(--navy); background: var(--navy); }
.crm-sv.on a { color: #fff; }
.crm-sv.on a:hover { background: transparent; }
.crm-sv .crm-inline { display: inline-flex; height: 100%; }
.crm .crm-sv-x { border: 0; background: none; color: inherit; opacity: .45; cursor: pointer; padding: 0 10px 0 2px; font-size: 16px; line-height: 1; height: 100%; }
.crm-sv.on .crm-sv-x { color: #fff; opacity: .7; }
.crm .crm-sv-x:hover { opacity: 1; }
.crm .crm-sv-add { display: inline-flex; align-items: center; gap: 4px; height: 30px; padding: 0 12px; border: 1px dashed var(--in); border-radius: 999px; background: none; color: var(--blue); font: inherit; font-size: 13.5px; font-weight: 600; cursor: pointer; }
.crm .crm-sv-add:hover { border-color: var(--blue); background: var(--bluebg); }
@media (max-width: 760px) {
	.crm-svs { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; margin: 0 -14px -4px; padding: 0 14px; }
	.crm-svs::-webkit-scrollbar { display: none; }
	.crm-svs-l { display: none; }
	.crm-sv, .crm .crm-sv-add { height: 34px; flex: none; }
}

/* ===================== klávesové skratky ===================== */
table.crm-keys-t { width: 100%; border-collapse: collapse; font-size: 14px; margin: 0; border: 0; }
table.crm-keys-t td { padding: 7px 0; border: 0; border-top: 1px solid var(--line2); background: none; text-align: left; }
table.crm-keys-t tr:first-child td { border-top: 0; }
table.crm-keys-t td:first-child { white-space: nowrap; padding-right: 16px; width: 1%; }
.crm-keys-t td span { color: var(--muted2); font-size: 12px; }
kbd { display: inline-block; min-width: 24px; padding: 2px 7px; border: 1px solid var(--in); border-bottom-width: 2px; border-radius: 6px; background: #fff; font: 600 12.5px/1.4 ui-monospace, SFMono-Regular, Menlo, monospace; color: var(--text); text-align: center; }
.gear-menu a.gear-keys { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.gear-menu a.gear-keys kbd { min-width: 0; padding: 0 6px; font-size: 11.5px; }
@media (pointer: coarse) { .gear-menu a.gear-keys { display: none; } }

/* ===================== lišta fáz obchodného prípadu ===================== */
.crm .crm-stages { display: flex; gap: 3px; margin-top: 14px; align-items: stretch; }
.crm-stages button { flex: 1 1 0; min-width: 0; height: 34px; border: 0; background: var(--line2); color: var(--muted); font: inherit; font-size: 13px; font-weight: 700; cursor: pointer; position: relative;
	clip-path: polygon(0 0, calc(100% - 10px) 0, 100% 50%, calc(100% - 10px) 100%, 0 100%, 10px 50%); padding: 0 14px 0 18px; }
.crm-stages button:first-of-type { clip-path: polygon(0 0, calc(100% - 10px) 0, 100% 50%, calc(100% - 10px) 100%, 0 100%); border-radius: 8px 0 0 8px; padding-left: 12px; }
.crm-stages button span { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.crm-stages button.done { background: #cfe9da; color: #14532d; }
.crm-stages button.on { background: var(--ok); color: #fff; cursor: default; }
.crm-stages button:not(:disabled):hover { background: #b9dfc9; color: #14532d; }
.crm-stages button:disabled { cursor: default; opacity: 1; }
.crm-stages.is-closed button { opacity: .55; }
.crm-stages-end { display: inline-flex; align-items: center; padding: 0 14px; border-radius: 0 8px 8px 0; font-size: 13px; font-weight: 800; flex: none; }
@media (max-width: 700px) { .crm-stages button { font-size: 12px; height: 32px; } }
.crm .crm-stage-sel { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--line2); }
.crm-stage-sel label { display: inline-flex; align-items: center; gap: 4px; font-size: 12.5px; font-weight: 700; color: var(--muted); text-transform: uppercase; letter-spacing: .04em; }
.crm-stage-sel select { height: 36px; padding: 0 10px; border: 1px solid var(--in); border-radius: 9px; font: inherit; font-size: 14px; font-weight: 600; background: #fff; color: var(--text); max-width: 100%; }
.crm-nextstep { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; padding: 11px 14px; border-radius: 10px; background: var(--soonbg); border: 1px solid #f1d39a; color: #6b4300; font-size: 14px; }
.crm-nextstep > span { flex: 1 1 240px; }
.crm-nextstep > .ic { flex: none; }
.crm-nonext { display: inline-flex; align-items: center; gap: 4px; font-size: 12.5px; font-weight: 700; color: var(--soon); }
@media (max-width: 700px) {
	/* dialóg na celú obrazovku – tlačidlá vždy viditeľné dole */
	dialog.crm-dlg { max-height: 100dvh; height: 100dvh; }
	.crm-dlg .crm-actions { padding-bottom: calc(12px + env(safe-area-inset-bottom)); }
}
/* rýchle dátumy vo formulári aktivity */
.crm-qd { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 6px; }
.crm .crm-qd button { height: 26px; padding: 0 10px; border: 1px solid var(--line); border-radius: 999px; background: #fff; color: var(--muted); font: inherit; font-size: 12.5px; font-weight: 600; cursor: pointer; }
.crm .crm-qd button:hover { border-color: var(--blue); color: var(--blue); }
.crm .crm-qd button.on { background: var(--navy); border-color: var(--navy); color: #fff; }
@media (pointer: coarse) { .crm .crm-qd button { height: 32px; padding: 0 12px; } }
@media (max-width: 760px) {
	/* nástenka: dlaždice v jednom riadku (posun do strany), dnešný program hneď hore, kratšie posledné zmeny */
	.crm-tiles { display: flex; overflow-x: auto; scrollbar-width: none; scroll-snap-type: x proximity; scroll-padding: 0 14px; margin: 0 -14px; padding: 0 14px 2px; gap: 10px; }
	.crm-tiles::-webkit-scrollbar { display: none; }
	.crm-tile { flex: 0 0 auto; width: 150px; scroll-snap-align: start; padding: 12px 14px; }
	.crm-tile b { font-size: 24px; }
	.crm-tile span { font-size: 12.5px; }
	.crm-tile b small { display: block; font-size: 12px !important; line-height: 1.3; margin-top: 2px; }
	.crm-side > .crm-board-agenda:not(.is-empty) { order: -1; }
	.crm-board-feed .crm-feed li:nth-child(n+9) { display: none; }
}
.crm-table tr.crm-tgrp td { background: var(--bg); padding: 7px 12px; font-size: 11.5px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); border-bottom: 1px solid var(--line); }
.crm-table tr.crm-tgrp.is-late td { color: var(--late); }
.crm-table tr.crm-tgrp:hover td { background: var(--bg); }
@media (max-width: 700px) { .crm-table.crm-resp tr.crm-tgrp { padding: 0; } .crm-table.crm-resp tr.crm-tgrp td { display: block; padding: 7px 12px; } }
/* plávajúce hlásenia (toast) */
.crm-toasts { position: fixed; left: 50%; bottom: 24px; transform: translateX(-50%); z-index: 95; width: min(560px, calc(100vw - 24px)); display: flex; flex-direction: column; gap: 8px; pointer-events: none; }
.crm-toasts .crm-flash { pointer-events: auto; box-shadow: 0 12px 32px rgba(16,24,48,.2); animation: crm-toast-in .25s ease-out; }
@keyframes crm-toast-in { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
@media (max-width: 760px) { .crm-toasts { bottom: calc(70px + env(safe-area-inset-bottom)); } }
@media (prefers-reduced-motion: reduce) { .crm-toasts .crm-flash { animation: none; } }
@media print { .crm-toasts { display: none; } }
.crm-dupbox { margin-top: 12px; padding: 10px 12px; border-radius: 9px; background: var(--soonbg); border: 1px solid #f1d39a; color: #6b4300; font-size: 13.5px; font-weight: 600; }
.crm-dupbox a { color: inherit; }

/* ===================== prihlásenie a heslo (bez prihlásenia) ===================== */
body.auth-body { background: linear-gradient(160deg, #1C2B5A 0%, #26386F 55%, #2f4a8f 100%); min-height: 100vh; min-height: 100dvh; }
body.auth-body header.top, body.auth-body footer { display: none; }
body.auth-body .container { max-width: none; margin: 0; padding: 0; background: none; box-shadow: none; }
.auth { min-height: 100vh; min-height: 100dvh; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: calc(24px + env(safe-area-inset-top)) 16px calc(24px + env(safe-area-inset-bottom)); box-sizing: border-box; font-family: inherit; }
.auth-logo { display: flex; align-items: center; gap: 12px; margin-bottom: 22px; }
.auth-logo img { display: block; height: 39px; width: auto; }
.auth-logo span { color: #C9D2EA; font-weight: 600; font-size: 14px; letter-spacing: .18em; padding-left: 12px; border-left: 1px solid rgba(255,255,255,.3); }
.auth-card { width: 100%; max-width: 400px; background: #fff; border-radius: 18px; padding: 28px 26px 22px; box-shadow: 0 24px 60px rgba(5,10,30,.35); box-sizing: border-box; color: #1A2033; }
.auth-card h1 { margin: 0 0 16px; font-size: 24px; font-weight: 800; color: #1C2B5A; letter-spacing: -.01em; }
.auth-card form.auth-form { display: flex; flex-direction: column; gap: 8px; max-width: none; margin: 0; grid-template-columns: none; }
.auth-form label { text-align: left; padding: 0; font-size: 13px; font-weight: 700; color: #5B6478; margin-top: 4px; }
.auth-form input[type=email], .auth-form input[type=password], .auth-form input[type=text] { width: 100%; box-sizing: border-box; height: 48px; padding: 0 14px; border: 1px solid #CDD3E0; border-radius: 11px; font: inherit; font-size: 16px; color: #1A2033; background: #fff; }
.auth-form input:focus { outline: 0; border-color: #2F5FD0; box-shadow: 0 0 0 3px rgba(47,95,208,.18); }
.auth-form input.auth-code { font-size: 24px; letter-spacing: .3em; text-align: center; font-variant-numeric: tabular-nums; height: 56px; }
.auth-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; width: 100%; height: 48px; margin-top: 8px; border: 1px solid #CDD3E0; border-radius: 11px; background: #fff; color: #1C2B5A; font: inherit; font-size: 16px; font-weight: 700; cursor: pointer; text-decoration: none; box-sizing: border-box; }
.auth-btn:hover { border-color: #1C2B5A; }
.auth-btn-p { background: #1C2B5A; border-color: #1C2B5A; color: #fff; }
.auth-btn-p:hover { background: #26386F; }
.auth-btn:disabled { opacity: .6; cursor: progress; }
.auth-or { display: flex; align-items: center; gap: 10px; margin: 10px 0 2px; color: #6B7489; font-size: 13px; }
.auth-or::before, .auth-or::after { content: ''; flex: 1; height: 1px; background: #E2E6EF; }
.auth-or[hidden] { display: none; }
.auth-chk { display: flex !important; align-items: center; gap: 8px; font-weight: 600 !important; color: #1A2033 !important; margin-top: 10px !important; cursor: pointer; }
.auth-chk input { width: 18px; height: 18px; margin: 0; }
.auth-chk-s { font-weight: 500; color: var(--muted); }
.auth-lead { margin: 0 0 6px; color: #5B6478; font-size: 15px; line-height: 1.5; }
.auth-hint { margin: 12px 0 0; font-size: 13.5px; color: #5B6478; line-height: 1.5; text-align: center; }
.auth-hint a { color: #2F5FD0; }
.auth-alert { margin: 0 0 12px; padding: 10px 12px; border-radius: 10px; background: #FDECEC; border: 1px solid #f3c4c5; color: #7f1d1d; font-size: 14px; font-weight: 600; }
.auth-alert.is-ok { background: #E6F4EC; border-color: #b7dfc8; color: #14532d; }
.auth-msg { margin: 6px 0 0; padding: 9px 12px; border-radius: 10px; background: #FDECEC; color: #7f1d1d; font-size: 14px; font-weight: 600; }
.auth-msg.is-ok { background: #E6F4EC; color: #14532d; }
.auth-msg[hidden] { display: none; }

/* ===================== Zabezpečenie účtu ===================== */
.sec-status { display: flex; gap: 14px; align-items: center; padding: 16px 18px; border-radius: 14px; border: 1px solid var(--line); background: #fff; }
.sec-status > div { display: flex; flex-direction: column; gap: 3px; }
.sec-status b { font-size: 16px; color: var(--navy); }
.sec-status span { color: var(--muted); font-size: 14px; }
.sec-status-i { width: 44px; height: 44px; border-radius: 12px; display: flex; align-items: center; justify-content: center; flex: none; }
.sec-status.is-on .sec-status-i { background: var(--okbg); color: var(--ok); }
.sec-status.is-off { border-color: #f1d39a; background: #fffaf0; }
.sec-status.is-off .sec-status-i { background: var(--soonbg); color: var(--soon); }
.sec-status .sec-status-i { color: inherit; }
.sec-status.is-on .sec-status-i svg { color: var(--ok); }
.sec-status.is-off .sec-status-i svg { color: var(--soon); }
.sec-keys { margin: 0 0 12px !important; }
.sec-keys li { display: flex; align-items: center; gap: 12px; padding: 10px 0; border-top: 1px solid var(--line2); }
.sec-keys li:first-child { border-top: 0; }
.sec-key-i { width: 34px; height: 34px; border-radius: 10px; background: var(--bluebg); color: var(--blue); display: flex; align-items: center; justify-content: center; flex: none; }
.sec-key-b { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.sec-key-b small { color: var(--muted); font-size: 12.5px; }
.crm form.sec-rename { display: flex; gap: 6px; padding: 8px; }
.sec-rename input { height: 34px; padding: 0 10px; border: 1px solid var(--in); border-radius: 8px; font: inherit; font-size: 14px; min-width: 0; flex: 1; }
.crm form.sec-add { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 10px; align-items: end; padding-top: 12px; border-top: 1px solid var(--line2); }
.crm form.sec-add[hidden] { display: none; }
.sec-add .crm-btn { height: 40px; }
.sec-add .sec-msg { grid-column: 1 / -1; margin: 0; }
.sec-add .sec-msg.is-ok { background: var(--okbg); color: #14532d; border-color: #b7dfc8; }
.sec-steps { margin: 0 0 6px; padding-left: 20px !important; }
.sec-steps li { list-style: decimal !important; padding: 2px 0 !important; }
.tf-qr { display: flex; gap: 20px; align-items: flex-start; flex-wrap: wrap; margin: 12px 0; }
.tf-qr #tfqr { background: #fff; padding: 8px; border: 1px solid var(--line); border-radius: 10px; line-height: 0; }
.tf-key { font-family: ui-monospace, Menlo, Consolas, monospace; font-size: 15px; letter-spacing: 1px; word-break: break-all; background: var(--bg); padding: 8px 10px; border-radius: 8px; }
.tf-codes { display: grid; grid-template-columns: repeat(2, max-content); gap: 6px 28px; font-family: ui-monospace, Menlo, Consolas, monospace; font-size: 18px; background: #fffbe6; border: 1px solid #f0e2a0; border-radius: 10px; padding: 14px 20px; width: max-content; max-width: 100%; }
.tf-codes br { display: none; }
.crm input.tf-code { max-width: 180px; font-size: 20px; letter-spacing: .25em; text-align: center; }
.crm form.sec-confirm, .crm form.sec-manage { display: flex; flex-direction: column; gap: 8px; }
.sec-list { margin: 0 0 12px !important; padding-left: 18px !important; font-size: 14px; }
.sec-list li { list-style: disc !important; padding: 3px 0 !important; }

/* ---------- opakovanie aktivity (dialóg v detaile) ---------- */
.crm-fact-a { display: inline-block; margin: 2px 0 0; padding: 0 !important; height: auto !important; border: 0 !important; background: none !important; color: var(--blue) !important; font-size: 13px; font-weight: 600; cursor: pointer; }
.crm-fact-a:hover { text-decoration: underline; }
.crm-fact b + .crm-fact-a { display: block; }
.crm-rec-opts { display: grid; grid-template-columns: repeat(auto-fill, minmax(128px, 1fr)); gap: 8px; }
.crm-rec-opts label { margin: 0; cursor: pointer; position: relative; }
.crm-rec-opts input { position: absolute; opacity: 0; pointer-events: none; }
.crm-rec-opts span { display: flex; flex-direction: column; gap: 2px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 10px; background: #fff; transition: border-color .15s, box-shadow .15s, background .15s; }
.crm-rec-opts b { font-size: 14px; font-weight: 700; color: var(--text); }
.crm-rec-opts small { font-size: 12.5px; color: var(--muted); font-variant-numeric: tabular-nums; }
.crm-rec-opts label:hover span { border-color: var(--in); }
.crm-rec-opts input:checked + span { border-color: var(--navy2); box-shadow: inset 0 0 0 1px var(--navy2); background: var(--bluebg); }
.crm-rec-opts input:focus-visible + span { outline: 2px solid var(--blue); outline-offset: 2px; }
.crm-rec-off span { border-style: dashed; }
.crm-rec-off input:checked + span { background: var(--bg); box-shadow: none; border-color: var(--muted2); border-style: solid; }
.crm-rec-every { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin-top: 12px; font-size: 14px; }
.crm-rec-every label { margin: 0; font-weight: 600; }
.crm-rec-every input { width: 70px; height: 34px; }
.crm-rec-every small { flex-basis: 100%; }
.crm-rec-every [data-rec-unit] { margin-left: -5px; }

/* ---------- kontrola e-mailovej adresy (inc/mailcheck.js) ---------- */
.mc-hint { margin: 6px 0 0; padding: 7px 10px; border-radius: 8px; font-size: 13px; line-height: 1.45; }
.mc-hint.mc-warn { background: var(--soonbg); color: #6B3E00; border: 1px solid #F1D59A; }
.mc-hint.mc-error { background: var(--latebg); color: #8a1c1f; border: 1px solid #f3c4c5; }
.mc-hint .mc-fix { display: inline; padding: 0 !important; margin: 0; height: auto !important; min-height: 0 !important; border: 0 !important; background: none !important; color: var(--blue) !important; font: inherit; font-weight: 700; text-decoration: underline; cursor: pointer; box-shadow: none !important; }
input[data-mc="error"] { border-color: var(--late) !important; }
input[data-mc="warn"] { border-color: #E0A63A !important; }
.mc-force { display: flex; align-items: center; gap: 8px; margin-top: 8px; font-size: 13.5px; }
.mt-bounce { display: flex; gap: 10px; align-items: flex-start; margin: 0 0 14px; padding: 12px 14px; border-radius: 10px; background: var(--latebg); border: 1px solid #f3c4c5; color: #8a1c1f; font-size: 14px; }
.mt-bounce b { color: #7a1416; }
.mt-st { display: inline-flex; align-items: center; gap: 5px; font-size: 12.5px; font-weight: 700; padding: 2px 8px; border-radius: 999px; }
.mt-st-sent { background: var(--okbg); color: var(--ok); }
.mt-st-bounced { background: var(--latebg); color: var(--late); }
.mt-st-delayed { background: var(--soonbg); color: var(--soon); }

/* ---------- Návrhy a chyby: oranžový majáčik a editor snímky (inc/feedback.js) ---------- */
#fb-root { --fb: #F07F1A; --fb2: #D96A08; }
.fb-beacon { position: fixed; right: 18px; bottom: 18px; z-index: 90; display: inline-flex; align-items: center; gap: 10px; height: 48px; padding: 0 18px 0 7px; border: 0; border-radius: 999px; cursor: pointer;
	background: linear-gradient(180deg, #F68A2A, var(--fb2)); color: #fff; font: inherit; font-size: 14px; font-weight: 700; letter-spacing: .01em; white-space: nowrap;
	box-shadow: 0 6px 18px rgba(217,106,8,.42), 0 0 0 3px rgba(255,255,255,.92); transition: transform .15s ease, box-shadow .15s ease; }
.fb-beacon:hover { transform: translateY(-2px); box-shadow: 0 10px 24px rgba(217,106,8,.5), 0 0 0 3px #fff; }
.fb-beacon:active { transform: scale(.97); }
.fb-beacon:focus-visible { outline: 3px solid var(--blue); outline-offset: 3px; }
.fb-bi { position: relative; width: 34px; height: 34px; flex: 0 0 34px; border-radius: 50%; display: grid; place-items: center; background: radial-gradient(circle at 35% 30%, #FFC27A, #F07F1A 60%, #C95F05); box-shadow: inset 0 0 0 2px rgba(255,255,255,.35); }
.fb-bi svg { position: relative; z-index: 1; width: 20px; height: 20px; }
.fb-pulse { position: absolute; inset: 0; border-radius: 50%; background: #FFB25C; opacity: .6; animation: fb-pulse 2.4s ease-out infinite; }
.fb-bt-s { display: none; }
@keyframes fb-pulse { 0% { transform: scale(1); opacity: .55; } 70% { transform: scale(1.9); opacity: 0; } 100% { transform: scale(1.9); opacity: 0; } }
@media (prefers-reduced-motion: reduce) { .fb-pulse { animation: none; opacity: 0; } }
@media (max-width: 760px) {
	.fb-beacon { right: 10px; bottom: calc(64px + env(safe-area-inset-bottom)); height: 42px; padding: 0 14px 0 5px; gap: 7px; font-size: 13px; }
	.fb-bi { width: 32px; height: 32px; flex-basis: 32px; }
	.fb-bt-l { display: none; }
	.fb-bt-s { display: inline; }
}
@media print { #fb-root { display: none; } }
body:has(.fb-beacon) footer { padding-bottom: 64px; }   /* koniec stránky nezakryje majáčik */
.fb-capturing .fb-beacon { visibility: hidden; }
.fb-wait { position: fixed; right: 18px; bottom: 80px; z-index: 96; display: flex; align-items: center; gap: 10px; padding: 10px 14px; border-radius: 10px; background: #1A2033; color: #fff; font-size: 14px; box-shadow: 0 8px 24px rgba(16,24,48,.3); }
.fb-spin { width: 16px; height: 16px; border-radius: 50%; border: 2px solid rgba(255,255,255,.35); border-top-color: #fff; animation: fb-spin .8s linear infinite; }
@keyframes fb-spin { to { transform: rotate(360deg); } }
html.fb-open, html.fb-open body { overflow: hidden; }
.fb-dlg { position: fixed; inset: 0; z-index: 1000; background: rgba(16,24,48,.62); display: flex; align-items: center; justify-content: center; padding: 20px; font-family: inherit; color: #1A2033; }
.fb-panel { position: relative; width: min(1320px, 100%); height: min(860px, 100%); display: grid; grid-template-columns: minmax(0, 1fr) 360px; background: #fff; border-radius: 14px; overflow: hidden; box-shadow: 0 24px 64px rgba(16,24,48,.4); }
.fb-stage-wrap { display: flex; flex-direction: column; min-width: 0; min-height: 0; background: #E9ECF2; }
.fb-tools { display: flex; align-items: center; gap: 4px; padding: 8px 10px; background: #fff; border-bottom: 1px solid #E2E6EF; flex-wrap: wrap; }
.fb-tools button { display: inline-flex; align-items: center; gap: 6px; height: 36px; padding: 0 11px; border: 1px solid transparent; border-radius: 8px; background: none; color: #3B4458; font: inherit; font-size: 13.5px; font-weight: 600; cursor: pointer; }
.fb-tools button:hover:not(:disabled) { background: #F3F5F9; }
.fb-tools button.on { background: #FFF1E4; border-color: #F6C391; color: #9A4A00; }
.fb-tools button:disabled { opacity: .4; cursor: default; }
.fb-sep { width: 1px; height: 22px; background: #E2E6EF; margin: 0 4px; }
.fb-stage { flex: 1; min-height: 0; overflow: auto; display: flex; align-items: flex-start; justify-content: center; padding: 14px; }
.fb-stage canvas { max-width: 100%; height: auto; max-height: 100%; object-fit: contain; border-radius: 6px; box-shadow: 0 2px 10px rgba(16,24,48,.18); background: #fff; touch-action: none; cursor: crosshair; }
.fb-stage canvas[data-tool="pen"] { cursor: crosshair; }
.fb-noshot { margin: auto; max-width: 420px; padding: 24px; text-align: center; color: #5B6478; font-size: 15px; }
.fb-form { display: flex; flex-direction: column; gap: 10px; padding: 18px 20px; overflow: auto; border-left: 1px solid #E2E6EF; }
.fb-form-h { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.fb-form-h h2 { margin: 0; font-size: 18px; color: #1C2B5A; }
.fb-x { width: 36px; height: 36px; display: grid; place-items: center; border: 0; border-radius: 8px; background: none; color: #5B6478; cursor: pointer; }
.fb-x:hover { background: #F3F5F9; }
.fb-kinds { display: grid; grid-template-columns: repeat(3, 1fr); gap: 4px; padding: 4px; background: #F3F5F9; border-radius: 10px; }
.fb-kinds label { margin: 0; cursor: pointer; }
.fb-kinds input { position: absolute; opacity: 0; pointer-events: none; }
.fb-kinds span { display: flex; justify-content: center; padding: 8px 6px; border-radius: 8px; font-size: 14px; font-weight: 700; color: #5B6478; }
.fb-kinds input:checked + span { background: #fff; color: #1C2B5A; box-shadow: 0 1px 3px rgba(16,24,48,.14); }
.fb-kinds input:focus-visible + span { outline: 2px solid var(--blue); outline-offset: 2px; }
.fb-l { display: block; text-align: left; font-size: 13px; font-weight: 700; color: #3B4458; margin: 4px 0 -4px; }
.fb-form textarea { width: 100%; min-height: 130px; resize: vertical; padding: 10px 12px; border: 1px solid #CDD3E0; border-radius: 10px; font: inherit; font-size: 15px; line-height: 1.5; color: #1A2033; box-sizing: border-box; }
.fb-form textarea:focus { outline: none; border-color: var(--blue); box-shadow: 0 0 0 3px rgba(47,95,208,.15); }
.fb-hint, .fb-ctx { margin: 0; font-size: 13px; line-height: 1.5; color: #5B6478; }
.fb-ctx { color: #6B7489; }
.fb-chk { display: flex; align-items: center; gap: 8px; font-size: 14px; margin: 0; }
.fb-err { margin: 0; padding: 8px 10px; border-radius: 8px; background: #FDECEC; color: #8a1c1f; font-size: 13.5px; }
.fb-acts { display: flex; gap: 8px; justify-content: flex-end; margin-top: auto; padding-top: 6px; }
.fb-btn { display: inline-flex; align-items: center; justify-content: center; height: 42px; padding: 0 18px; border-radius: 10px; border: 1px solid #CDD3E0; background: #fff; color: #1A2033; font: inherit; font-size: 15px; font-weight: 700; cursor: pointer; text-decoration: none; }
.fb-btn:hover { background: #F3F5F9; }
.fb-btn-p { background: var(--fb, #F07F1A); border-color: var(--fb, #F07F1A); color: #fff; }
.fb-btn-p:hover { background: var(--fb2, #D96A08); }
.fb-btn:disabled { opacity: .6; cursor: default; }
.fb-done { position: absolute; inset: 0; background: rgba(255,255,255,.97); display: grid; place-items: center; text-align: center; padding: 24px; }
.fb-done-in { max-width: 420px; }
.fb-done-in svg { color: var(--ok); }
.fb-done-in h2 { margin: 8px 0 6px; color: #1C2B5A; }
.fb-done-in p { margin: 0 0 16px; color: #3B4458; font-size: 15px; line-height: 1.5; }
.fb-done-in .fb-acts { justify-content: center; }
@media (max-width: 860px) {
	.fb-dlg { padding: 0; align-items: stretch; }
	.fb-panel { grid-template-columns: 1fr; grid-template-rows: auto 1fr; height: 100%; height: 100dvh; border-radius: 0; overflow: auto; }
	.fb-stage-wrap { max-height: 52vh; }
	.fb-tools { flex-wrap: nowrap; overflow-x: auto; justify-content: space-between; }
	.fb-tools span { display: none; }
	.fb-tools .fb-sep { display: block; flex: 0 0 1px; }
	.fb-tools button { flex: 0 0 44px; width: 44px; min-width: 0; padding: 0 !important; height: 42px; justify-content: center; gap: 0; }
	.fb-form { border-left: 0; border-top: 1px solid #E2E6EF; padding-bottom: calc(16px + env(safe-area-inset-bottom)); }
	.fb-acts { position: sticky; bottom: 0; background: #fff; padding: 8px 0; }
}
/* stránka Návrhy a chyby */
.fb-list { display: flex; flex-direction: column; gap: 10px; }
.crm .fb-item { display: flex; gap: 14px; align-items: flex-start; padding: 12px; text-decoration: none; color: inherit; transition: border-color .15s, box-shadow .15s; }
.crm .fb-item:hover { border-color: var(--in); box-shadow: 0 4px 14px rgba(16,24,48,.08); }
.fb-thumb { flex: 0 0 128px; width: 128px; height: 80px; object-fit: cover; object-position: top left; border-radius: 8px; border: 1px solid var(--line); background: var(--bg); }
.fb-thumb-none { display: grid; place-items: center; color: var(--muted2); }
.fb-body { display: flex; flex-direction: column; gap: 4px; min-width: 0; flex: 1; }
.fb-top { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; }
.fb-top b { font-size: 15px; color: var(--text); }
.fb-text { font-size: 14px; color: var(--muted); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.fb-meta { font-size: 12.5px; color: var(--muted2); display: flex; align-items: center; gap: 4px; flex-wrap: wrap; }
.fb-quote { margin: 0 0 12px; padding: 10px 14px; border-left: 3px solid var(--fb, #F07F1A); background: #FFF8F1; border-radius: 0 8px 8px 0; font-size: 15px; line-height: 1.55; }
.fb-shot { display: flex; justify-content: center; border-radius: 10px; overflow: hidden; border: 1px solid var(--line); background: var(--bg); }
.fb-shot img { display: block; max-width: 100%; max-height: 72vh; width: auto; height: auto; }
.fb-sum { margin: 0 0 8px; font-size: 15px; }
.fb-steps { margin: 0 0 10px 20px; padding: 0; display: flex; flex-direction: column; gap: 5px; font-size: 14.5px; line-height: 1.5; }
.fb-dec-btns { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.fb-export summary { cursor: pointer; font-weight: 700; display: flex; align-items: center; gap: 8px; }
.fb-export textarea { width: 100%; margin-top: 10px; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 12.5px; }
/* stav a diskusia pri hlásení (Miško 24. 10. 2026) */
.fb-from { display: inline-flex; align-items: center; gap: 6px; }
.fb-from .crm-av { flex: none; }
.fb-flowcard { padding-top: 14px; padding-bottom: 14px; }
.fb-flow { list-style: none; margin: 0; padding: 0; display: flex; gap: 0; counter-reset: fbf; }
.fb-flow li { flex: 1 1 0; display: flex; align-items: flex-start; gap: 8px; position: relative; padding-right: 12px; color: var(--muted2); }
.fb-flow li:not(:last-child)::after { content: ''; position: absolute; left: 40px; right: 8px; top: 12px; height: 2px; background: var(--line); }
.fb-flow li.on:not(:last-child)::after { background: #2E9E5B; }
.fb-flow li > span:last-child { display: flex; flex-direction: column; position: relative; z-index: 1; background: #fff; padding-right: 6px; margin-top: 2px; }
.fb-flow b { font-size: 14px; color: inherit; }
.fb-flow small { font-size: 12px; color: var(--muted2); }
.fb-flow-dot { flex: none; width: 24px; height: 24px; border-radius: 50%; border: 2px solid var(--line); background: #fff; display: grid; place-items: center; position: relative; z-index: 1; }
.fb-flow li.on { color: var(--text); }
.fb-flow li.on .fb-flow-dot { background: #2E9E5B; border-color: #2E9E5B; color: #fff; }
.fb-flow li.cur b { color: var(--navy, #1C2A4A); }
.fb-flow.is-rej li.cur .fb-flow-dot { background: #6b7280; border-color: #6b7280; }
.fb-reason { margin: 12px 0 0; padding: 8px 12px; background: var(--bg); border-radius: 8px; font-size: 14px; }
.fb-ask { margin: 12px 0 0; padding: 8px 12px; border-radius: 8px; font-size: 14px; background: var(--latebg); color: var(--late); display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.fb-ask-new { background: var(--bluebg); color: var(--blue); }
.fb-thread { list-style: none; margin: 0 0 14px; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.fb-msg { display: flex; gap: 8px; align-items: flex-start; }
.fb-msg.is-author { flex-direction: row-reverse; }
.fb-bubble { max-width: min(560px, 85%); padding: 8px 12px; border-radius: 12px; background: var(--bg); border: 1px solid var(--line); }
.fb-msg.is-author .fb-bubble { background: #FFF8F1; border-color: #F6D6B5; }
.fb-msg-h { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; font-size: 13px; margin-bottom: 2px; }
.fb-msg-b { font-size: 14.5px; line-height: 1.5; overflow-wrap: anywhere; }
.fb-ev { display: flex; align-items: flex-start; gap: 6px; font-size: 13px; color: var(--muted); padding: 4px 8px; border-left: 2px solid var(--line); }
.fb-ev-approved, .fb-ev-done { border-left-color: #2E9E5B; }
.fb-ev-rejected { border-left-color: #6b7280; }
.fb-ev-note { color: var(--text); }
.fb-disk-empty { margin: 0 0 12px; }
.fb-reply textarea { width: 100%; }
.fb-reply .crm-actions { justify-content: space-between; align-items: center; gap: 10px; flex-wrap: wrap; }
.fb-cnt { display: inline-flex; align-items: center; gap: 3px; }
.fb-chip-new { background: var(--bluebg); color: var(--blue); border-color: transparent; font-weight: 700; }
@media (max-width: 760px) {
	.fb-thumb { flex-basis: 84px; width: 84px; height: 60px; }
	.fb-flow { flex-direction: column; gap: 10px; }
	.fb-flow li:not(:last-child)::after { left: 11px; right: auto; top: 26px; width: 2px; height: 14px; }
	.fb-bubble { max-width: 88%; }
	.fb-reply textarea { font-size: 16px; }
}

/* ---------- Môj e-mail ---------- */
.mm-cols { grid-template-columns: minmax(0, 1fr) 380px; }
.mm-adv summary { cursor: pointer; font-size: 13.5px; font-weight: 600; color: var(--muted); margin-top: 4px; }
.mm-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 12px; }
.mm-list li { display: flex; gap: 10px; align-items: flex-start; font-size: 14px; line-height: 1.5; }
.mm-list li > svg { flex: 0 0 auto; margin-top: 3px; color: var(--blue); }
.mm-status { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }
.mm-status.is-err { border-color: #f3c4c5; background: #FFFAFA; }
.mm-st-ic { width: 44px; height: 44px; border-radius: 12px; display: grid; place-items: center; background: var(--bluebg); color: var(--blue); flex: 0 0 auto; }
.mm-status.is-err .mm-st-ic { background: var(--latebg); color: var(--late); }
.mm-st-b { display: flex; flex-direction: column; gap: 2px; min-width: 0; flex: 1 1 220px; }
.mm-st-b b { font-size: 16px; }
.mm-status.is-err .mm-st-b .crm-s { color: var(--late); }
.mm-st-n { display: flex; flex-direction: column; align-items: center; min-width: 90px; }
.mm-st-n b { font-size: 22px; line-height: 1.1; color: var(--navy); font-variant-numeric: tabular-nums; }
.mm-st-n span { font-size: 12px; color: var(--muted); }
.mm-st-a { display: flex; gap: 6px; align-items: center; }
.mm-unm { list-style: none; margin: 0; padding: 0; }
.mm-unm > li { display: flex; gap: 12px; padding: 12px 0; border-top: 1px solid var(--line2); }
.mm-unm > li:first-child { border-top: 0; }
.mm-dir { flex: 0 0 30px; height: 30px; border-radius: 50%; display: grid; place-items: center; background: var(--bg); color: var(--muted); margin-top: 2px; }
.mm-unm-b { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 4px; }
.mm-unm-h { display: flex; justify-content: space-between; gap: 10px; flex-wrap: wrap; font-size: 14px; }
.mm-who { min-width: 0; overflow-wrap: anywhere; }
.mm-subj { font-weight: 600; font-size: 14.5px; }
.mm-snip { font-size: 13.5px; color: var(--muted); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.mm-acts { display: flex; flex-wrap: wrap; gap: 6px; align-items: flex-start; margin-top: 4px; }
.mm-acts > .crm-inline { display: inline-flex; gap: 6px; }
[data-mm-toggle][aria-expanded="true"] { background: var(--bg); }
.crm .mm-assign-f { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin: 8px 0 4px; padding: 10px; border-radius: 10px; background: var(--bg); }
.mm-assign-f .crm-ac { flex: 1 1 260px; min-width: 0; }
.mm-assign-f .crm-ac-in { width: 100%; }
.mm-assign-f[hidden] { display: none; }
.mm-unm-b { position: relative; }
@media (max-width: 900px) { .mm-cols { grid-template-columns: 1fr; } }

/* ---------- stĺpce zoznamu: šírka, poradie, výber ---------- */
.crm-coltable thead th[data-col] { position: relative; }
.crm-coltable thead th[draggable="true"] { cursor: grab; }
.crm-coltable thead th.is-drag { opacity: .45; }
.crm-coltable thead th.drop-l { box-shadow: inset 3px 0 0 var(--blue); }
.crm-coltable thead th.drop-r { box-shadow: inset -3px 0 0 var(--blue); }
.crm-colrs { position: absolute; top: 0; right: -4px; bottom: 0; width: 9px; cursor: col-resize; z-index: 2; touch-action: none; }
.crm-colrs::after { content: ""; position: absolute; top: 25%; bottom: 25%; left: 4px; width: 1px; background: var(--line); transition: background .12s; }
.crm-coltable thead th:hover .crm-colrs::after, .crm-coltable.is-resizing .crm-colrs::after { background: var(--in); }
.crm-colrs:hover::after, .crm-coltable.is-resizing .crm-colrs:active::after { background: var(--blue); width: 2px; top: 0; bottom: 0; }
.crm-coltable.is-resizing { cursor: col-resize; user-select: none; }
.crm-coltable.is-fixed { table-layout: fixed; max-width: none; }
.crm-coltable.is-fixed td, .crm-coltable.is-fixed th { overflow: hidden; text-overflow: ellipsis; }
.crm-coltable.is-fixed td.crm-nowrap { white-space: nowrap; }
.crm-coltable col.crm-col-chk { width: 44px; }
@media (max-width: 760px) {
	.crm-coltable.is-fixed { width: auto !important; table-layout: auto; }
	.crm-colrs { display: none; }
}
.crm-cols-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.3fr); gap: 20px; }
.crm-cols-grid h3 { margin: 0 0 8px; font-size: 14px; }
.crm-cols-grid h3 small { font-weight: 500; }
.crm-cols-on { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 4px; max-height: 52vh; overflow: auto; }
.crm-cols-on li { display: flex; align-items: center; gap: 8px; padding: 6px 8px; border: 1px solid var(--line); border-radius: 8px; background: #fff; font-size: 14px; }
.crm-cols-on li[draggable="true"] { cursor: grab; }
.crm-cols-on li.is-drag { opacity: .5; border-style: dashed; }
.crm-cols-on li.is-fixed { background: var(--bg); color: var(--muted); }
.crm-cols-on li .crm-cols-l { flex: 1; min-width: 0; }
.crm-cols-on li .crm-ibtn { width: 28px; height: 28px; }
.crm-cols-h { color: var(--muted2); display: inline-flex; }
.crm-cols-q { width: 100%; margin-bottom: 8px; }
.crm-cols-off { max-height: 48vh; overflow: auto; padding-right: 4px; }
.crm-cols-g h4 { margin: 10px 0 6px; font-size: 11.5px; text-transform: uppercase; letter-spacing: .06em; color: var(--muted2); }
.crm-cols-g { display: flex; flex-wrap: wrap; gap: 6px; }
.crm-cols-g h4 { flex-basis: 100%; }
.crm-cols-g button { display: inline-flex; align-items: center; gap: 4px; padding: 5px 10px; border: 1px solid var(--line); border-radius: 999px; background: #fff; font: inherit; font-size: 13px; font-weight: 600; color: var(--text); cursor: pointer; }
.crm-cols-g button:hover { border-color: var(--blue); color: var(--blue); }
.crm-cols-g button.is-out { display: none; }
@media (max-width: 760px) { .crm-cols-grid { grid-template-columns: 1fr; } }
.crm-cols-g[hidden], .crm-cols-g button[hidden] { display: none; }

/* ---------- voliteľné polia (karta klienta, osoby, prípadu) ---------- */
.crm-cfs-h { flex-wrap: wrap; gap: 10px; }
.crm-cfs-tools { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.crm .crm-cfs-q { width: 240px; height: 34px; padding: 0 10px; border: 1px solid var(--in); border-radius: 8px; font: inherit; font-size: 14px; background: #fff; }
.crm .crm-cfs-q:focus { outline: none; border-color: var(--blue); box-shadow: 0 0 0 3px rgba(47,95,208,.15); }
.crm-tgl { white-space: nowrap; }
.crm-linkbtn { border: 0; background: none; padding: 0; font: inherit; color: var(--blue); font-weight: 600; cursor: pointer; text-decoration: underline; }
.crm-cfs-hint { margin: -4px 0 12px; font-size: 13px; color: var(--muted2); }
.crm-tgl { display: inline-flex; align-items: center; gap: 8px; margin: 0; font-size: 13.5px; font-weight: 600; color: var(--muted); cursor: pointer; user-select: none; }
.crm-tgl input { position: absolute; opacity: 0; pointer-events: none; }
.crm-tgl span { width: 34px; height: 20px; border-radius: 999px; background: var(--in); position: relative; transition: background .15s; flex: 0 0 auto; }
.crm-tgl span::after { content: ""; position: absolute; top: 2px; left: 2px; width: 16px; height: 16px; border-radius: 50%; background: #fff; box-shadow: 0 1px 2px rgba(16,24,48,.25); transition: transform .15s; }
.crm-tgl input:checked + span { background: var(--blue); }
.crm-tgl input:checked + span::after { transform: translateX(14px); }
.crm-tgl input:focus-visible + span { outline: 2px solid var(--blue); outline-offset: 2px; }
.crm-cfg-h h3 { text-transform: none; letter-spacing: 0; font-size: 14.5px; color: var(--navy); }
.crm-cfg-h { gap: 8px; }
.crm-cfg-h h3 { flex: 1; min-width: 0; }
.crm-cfg-n { font-size: 12px; font-weight: 700; color: var(--muted2); background: var(--bg); border-radius: 999px; padding: 1px 8px; font-variant-numeric: tabular-nums; }
.crm-cfl { margin: 0; display: flex; flex-direction: column; }
.crm-cfr { display: grid; grid-template-columns: minmax(110px, 44%) minmax(0, 1fr); gap: 4px 12px; padding: 6px 0; border-top: 1px solid var(--line2); align-items: baseline; }
.crm-cfr:first-child { border-top: 0; }
.crm-cfr[hidden] { display: none; }
.crm-cfr dt { margin: 0; font-size: 13px; color: var(--muted); line-height: 1.4; }
.crm-cfr dd { margin: 0; font-size: 14.5px; line-height: 1.45; color: var(--text); min-width: 0; overflow-wrap: anywhere; border-radius: 6px; }
.crm-cfr dd[data-cf-edit] { cursor: text; padding: 2px 6px; margin: -2px -6px; }
.crm-cfr dd[data-cf-edit]:hover { background: var(--bg); box-shadow: inset 0 0 0 1px var(--line); }
.crm-cfr dd[data-cf-edit]:focus-visible { outline: 2px solid var(--blue); outline-offset: 1px; }
.crm-cf-none { color: var(--muted2); }
.crm-cfr.is-inline { grid-template-columns: 1fr; }
.crm-cfr.is-inline dd { padding: 0; margin: 0; cursor: default; background: none; box-shadow: none; }
.crm-cf-inl .crm-f { margin: 0; }
.crm-cf-inl input:not([type=checkbox]):not([type=radio]), .crm-cf-inl select, .crm-cf-inl textarea { width: 100%; }
.crm-cf-inl-a { display: flex; gap: 6px; margin-top: 6px; }
.crm-cf-inl.is-saving { opacity: .6; pointer-events: none; }
.crm-cf-inl-tip { margin-top: 4px; font-size: 11.5px; font-weight: 600; color: var(--muted); }
.crm-cfg-a { display: flex; align-items: center; justify-content: flex-end; gap: 10px; margin-top: 10px; }
.crm-cfg[data-cf-auto] .crm-edit .crm-f[data-as-st="ok"] label::after { content: " · uložené"; color: var(--ok); font-weight: 700; }
.crm-cfg[data-cf-auto] .crm-edit .crm-f[data-as-st="saving"] label::after { content: " · ukladám…"; color: var(--accent); font-weight: 700; }
.crm-cfg[data-cf-auto] .crm-edit .crm-f[data-as-st="err"] label::after { content: " · neuložené"; color: var(--late); font-weight: 700; }
.crm-cfs-none { margin-top: 8px; }
@media (max-width: 760px) {
	.crm .crm-cfs-q { width: 100%; flex: 1; }
	.crm-cfs-tools { width: 100%; }
	.crm-cfr { grid-template-columns: 1fr; gap: 0; }
}

/* ---------- farby služieb (rovnaké v celom CRM aj v ponukách) ----------
   BOZP zelená · PZS modrá · ochrana pred požiarmi (aj HP) červená · GDPR oranžová · civilná ochrana žltá ·
   e-learning fialová · školenia tyrkysová · revízie indigová */
:root {
	--t-green: #17663E; --t-green-bg: #E2F3E9; --t-green-c: #1F9254;
	--t-blue: #1E40AF; --t-blue-bg: #E3ECFD; --t-blue-c: #2563EB;
	--t-red: #A61B1B; --t-red-bg: #FDE6E6; --t-red-c: #DC2626;
	--t-orange: #9A4A00; --t-orange-bg: #FFEBD6; --t-orange-c: #EA7A0C;
	--t-yellow: #765400; --t-yellow-bg: #FFF4C2; --t-yellow-c: #E2B000;
	--t-purple: #5B21B6; --t-purple-bg: #EFE7FF; --t-purple-c: #7C3AED;
	--t-teal: #0B6770; --t-teal-bg: #DDF3F5; --t-teal-c: #0E9AA8;
	--t-indigo: #3730A3; --t-indigo-bg: #E7E8FC; --t-indigo-c: #4F46E5;
}
.crm-tag[class*="tone-"], .crm-svc[class*="tone-"], .ov-svc[class*="tone-"], .crm-svcchip[class*="tone-"] { border: 0; }
.tone-green:is(.crm-tag, .crm-svc, .ov-svc) { background: var(--t-green-bg) !important; color: var(--t-green) !important; }
.tone-blue:is(.crm-tag, .crm-svc, .ov-svc) { background: var(--t-blue-bg) !important; color: var(--t-blue) !important; }
.tone-red:is(.crm-tag, .crm-svc, .ov-svc) { background: var(--t-red-bg) !important; color: var(--t-red) !important; }
.tone-orange:is(.crm-tag, .crm-svc, .ov-svc) { background: var(--t-orange-bg) !important; color: var(--t-orange) !important; }
.tone-yellow:is(.crm-tag, .crm-svc, .ov-svc) { background: var(--t-yellow-bg) !important; color: var(--t-yellow) !important; }
.tone-purple:is(.crm-tag, .crm-svc, .ov-svc) { background: var(--t-purple-bg) !important; color: var(--t-purple) !important; }
.tone-teal:is(.crm-tag, .crm-svc, .ov-svc) { background: var(--t-teal-bg) !important; color: var(--t-teal) !important; }
.tone-indigo:is(.crm-tag, .crm-svc, .ov-svc) { background: var(--t-indigo-bg) !important; color: var(--t-indigo) !important; }
.crm-svc[class*="tone-"] { font-size: 12.5px; padding: 2px 9px; }
.tone-dot { display: inline-block; width: 9px; height: 9px; border-radius: 50%; background: var(--muted2); margin-right: 6px; vertical-align: 1px; flex: 0 0 auto; }
.tone-dot.tone-green { background: var(--t-green-c); } .tone-dot.tone-blue { background: var(--t-blue-c); } .tone-dot.tone-red { background: var(--t-red-c); }
.tone-dot.tone-orange { background: var(--t-orange-c); } .tone-dot.tone-yellow { background: var(--t-yellow-c); } .tone-dot.tone-purple { background: var(--t-purple-c); }
.tone-dot.tone-teal { background: var(--t-teal-c); } .tone-dot.tone-indigo { background: var(--t-indigo-c); }
/* rýchly filter podľa služby v zozname klientov */
.crm-svcnav { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin: -4px 0 14px; }
.crm .crm-svcchip { display: inline-flex; align-items: center; padding: 5px 12px; border-radius: 999px; border: 1px solid var(--line) !important; background: #fff; font-size: 13px; font-weight: 600; color: var(--text); text-decoration: none; transition: background .12s, border-color .12s; }
.crm .crm-svcchip:hover { border-color: var(--in) !important; background: var(--bg); }
.crm .crm-svcchip.on { color: #fff; }
.crm .crm-svcchip.on .tone-dot { background: #fff; }
.crm .crm-svcchip.on.tone-green { background: var(--t-green-c); border-color: var(--t-green-c) !important; }
.crm .crm-svcchip.on.tone-blue { background: var(--t-blue-c); border-color: var(--t-blue-c) !important; }
.crm .crm-svcchip.on.tone-red { background: var(--t-red-c); border-color: var(--t-red-c) !important; }
.crm .crm-svcchip.on.tone-orange { background: var(--t-orange-c); border-color: var(--t-orange-c) !important; }
.crm .crm-svcchip.on.tone-yellow { background: #C99A00; border-color: #C99A00 !important; }
.crm .crm-svcchip.on.tone-purple { background: var(--t-purple-c); border-color: var(--t-purple-c) !important; }
.crm .crm-svcchip.on.tone-teal { background: var(--t-teal-c); border-color: var(--t-teal-c) !important; }
.crm .crm-svcchip.on.tone-indigo { background: var(--t-indigo-c); border-color: var(--t-indigo-c) !important; }
.crm .crm-svcchip.on:not([class*="tone-"]) { background: var(--navy2); border-color: var(--navy2) !important; }

/* ===================== Nástenka (odkazovník, online, súkromné poznámky, diskusie) ===================== */
.side-badge { margin-left: auto; min-width: 20px; height: 20px; padding: 0 6px; border-radius: 999px; background: var(--red); color: #fff; font-size: 11.5px; font-weight: 800; display: inline-flex; align-items: center; justify-content: center; line-height: 1; }
html.side-mini .side-badge { position: absolute; top: 3px; left: 30px; min-width: 16px; height: 16px; font-size: 10px; padding: 0 4px; }
.crm-bd-hero { position: relative; overflow: hidden; display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 16px 24px; margin-bottom: 14px;
	padding: 22px 24px; border-radius: 16px; color: #fff; background: linear-gradient(120deg, var(--navy) 0%, var(--navy3) 62%, #34488A 100%); }
.crm-bd-hero::after { content: ""; position: absolute; right: -60px; top: -80px; width: 260px; height: 260px; border-radius: 50%; background: radial-gradient(circle, rgba(229,45,51,.38) 0%, rgba(229,45,51,0) 70%); pointer-events: none; }
.crm-bd-hello { position: relative; z-index: 1; min-width: 0; }
.crm-bd-date { font-size: 12.5px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: #AEB9DA; }
.crm-bd-hero h1 { margin: 4px 0 6px; font-size: clamp(24px, 3vw, 30px); line-height: 1.15; font-weight: 800; color: #fff; letter-spacing: -.01em; }
.crm-bd-hero p { margin: 0; font-size: 15px; color: #D7DEF1; line-height: 1.5; }
.crm-bd-hero p b { color: #fff; font-weight: 700; }
.crm-bd-hero p b.is-late { color: #FFB4B4; }
.crm-bd-quick { position: relative; z-index: 1; display: flex; flex-wrap: wrap; gap: 8px; }
.crm .crm-bd-quick .crm-bd-ghost { background: rgba(255,255,255,.1); border-color: rgba(255,255,255,.22); color: #fff !important; }
.crm .crm-bd-quick .crm-bd-ghost:hover { background: rgba(255,255,255,.18); }
.crm-bd-tiles { margin-bottom: 16px; }
.crm-bd { margin-top: 0; }
/* odkazovník */
.crm-bd-f { border: 1px solid var(--line); border-radius: 12px; padding: 12px; background: #FBFCFE; margin-bottom: 6px; }
.crm-bd-f-row { display: flex; gap: 10px; align-items: flex-start; }
.crm-bd-f-main { flex: 1; min-width: 0; }
.crm-bd-f .crm-rte-area { min-height: 54px; background: #fff; }
.crm-bd-f-bar { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 10px; padding-left: 44px; }
.crm-bd-f-bar .crm-btn-p { margin-left: auto; }
.crm-bd-tool { display: inline-flex; align-items: center; gap: 6px; height: 32px; padding: 0 12px; border-radius: 8px; border: 1px solid var(--line); background: #fff; color: var(--text); font-size: 13.5px; font-weight: 600; cursor: pointer; }
.crm-bd-tool:hover, .crm-bd-tool[aria-pressed="true"] { border-color: var(--in); background: var(--bg); }
.crm-bd-tool:focus-within { outline: 2px solid var(--blue); outline-offset: 1px; }
.crm-bd-tool input[type=file] { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.crm-bd-gifmark { font-size: 10.5px; font-weight: 900; letter-spacing: .04em; padding: 1px 5px; border-radius: 4px; color: #fff; background: linear-gradient(135deg, #7C3AED, #E52D33); }
.crm-bd-pin { font-size: 13.5px; }
.crm-bd-media { margin: 10px 0 0 44px; }
.crm-bd-url label { display: block; font-size: 13px; font-weight: 700; margin-bottom: 4px; }
.crm-bd-url small { display: block; color: var(--muted); font-size: 12.5px; margin-top: 4px; line-height: 1.4; }
.crm-bd-prev { position: relative; display: inline-block; margin-top: 8px; }
.crm-bd-prev img { display: block; max-width: 240px; max-height: 180px; border-radius: 10px; border: 1px solid var(--line); }
.crm-bd-prev .crm-ibtn { position: absolute; top: 6px; right: 6px; background: rgba(0,0,0,.6); color: #fff; border-radius: 50%; width: 26px; height: 26px; }
.crm-bd-msgs { list-style: none; margin: 8px 0 0; padding: 0; display: flex; flex-direction: column; gap: 14px; }
.crm-bd-msg { display: flex; gap: 10px; align-items: flex-start; }
.crm-bd-bubble { flex: 1; min-width: 0; background: var(--bg); border: 1px solid var(--line2); border-radius: 4px 14px 14px 14px; padding: 9px 13px 11px; }
.crm-bd-msg.is-mine .crm-bd-bubble { background: #EEF3FE; border-color: #DCE6FB; }
.crm-bd-msg.is-pinned .crm-bd-bubble { background: #FFFBEB; border-color: #F5E3A8; }
.crm-bd-msg.is-new .crm-bd-bubble { box-shadow: inset 3px 0 0 var(--red); }
.crm-bd-bubble .crm-html { font-size: 14.5px; line-height: 1.5; overflow-wrap: anywhere; }
.crm-bd-bubble .crm-html > :first-child { margin-top: 0; } .crm-bd-bubble .crm-html > :last-child { margin-bottom: 0; }
.crm-bd-img { display: inline-block; margin-top: 8px; border-radius: 10px; overflow: hidden; line-height: 0; background: #e9edf5; }
.crm-bd-img img { display: block; max-width: min(100%, 360px); max-height: 280px; width: auto; height: auto; }
.crm-chip-new { background: var(--red); border-color: var(--red); color: #fff; font-weight: 700; font-size: 11px; padding: 0 7px; }
.crm-chip-pin { background: #FEF3C7; border-color: #F5E3A8; color: #8A5A00; font-size: 11.5px; }
.crm-bd-msg .crm-note-a { opacity: .55; transition: opacity .12s; }
.crm-bd-msg:hover .crm-note-a, .crm-bd-msg:focus-within .crm-note-a { opacity: 1; }
/* diskusie */
.crm-bd-disc { list-style: none; margin: 0; padding: 0; }
.crm-bd-disc > li { display: flex; gap: 10px; padding: 12px 0; border-top: 1px solid var(--line2); }
.crm-bd-disc > li:first-child { border-top: 0; padding-top: 2px; }
.crm-bd-disc-b { flex: 1; min-width: 0; }
.crm-bd-disc-t { font-size: 13.5px; margin-top: 1px; overflow-wrap: anywhere; }
.crm-bd-disc-x { margin: 4px 0 0; font-size: 14px; color: #2E3548; line-height: 1.5; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.crm-bd-reply { margin-top: 6px; }
.crm-bd-reply summary { display: inline-flex; align-items: center; gap: 5px; font-size: 13px; font-weight: 600; color: var(--blue); cursor: pointer; list-style: none; }
.crm-bd-reply summary::-webkit-details-marker { display: none; }
.crm-bd-reply form { margin-top: 8px; }
.crm-bd-reply textarea { width: 100%; min-height: 60px; }
.crm-bd-reply .crm-actions { justify-content: space-between; align-items: center; margin-top: 6px; }
/* kto je online */
.crm-bd-live { width: 10px; height: 10px; border-radius: 50%; background: #22C55E; box-shadow: 0 0 0 0 rgba(34,197,94,.5); animation: crm-live 2.4s ease-out infinite; flex: none; }
@keyframes crm-live { 0% { box-shadow: 0 0 0 0 rgba(34,197,94,.45); } 70% { box-shadow: 0 0 0 8px rgba(34,197,94,0); } 100% { box-shadow: 0 0 0 0 rgba(34,197,94,0); } }
@media (prefers-reduced-motion: reduce) { .crm-bd-live { animation: none; } }
.crm-online { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.crm-online li { display: flex; align-items: center; gap: 10px; min-width: 0; }
.crm-online li.crm-empty { display: block; }
.crm-online-av { position: relative; flex: none; line-height: 0; }
.crm-online-av i { position: absolute; right: -1px; bottom: -1px; width: 10px; height: 10px; border-radius: 50%; border: 2px solid #fff; background: #B4BCCC; }
.crm-online li.is-on .crm-online-av i { background: #22C55E; }
.crm-online li.is-off { opacity: .72; }
.crm-online-t { display: flex; flex-direction: column; min-width: 0; line-height: 1.25; }
.crm-online-t b { font-size: 14px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.crm-online-t b small { font-weight: 500; color: var(--muted); }
.crm-online-t > small { font-size: 12.5px; color: var(--muted); }
.crm-online li.is-on .crm-online-t > small { color: var(--ok); font-weight: 600; }
/* súkromné poznámky */
.crm-bd-priv { background: linear-gradient(180deg, #FFFDF5 0%, #fff 60%); }
.crm form.crm-bd-priv-f { display: flex; gap: 8px; align-items: flex-start; margin-bottom: 10px; }
.crm-bd-priv-f textarea { flex: 1 1 auto; width: auto !important; min-width: 0; min-height: 38px; height: 38px; resize: none; overflow: hidden; line-height: 1.45; padding-top: 8px; padding-bottom: 8px; }
.crm-bd-priv-f .crm-btn { flex: none; height: 38px; width: 40px; padding: 0; justify-content: center; }
.crm-bd-plist { list-style: none; margin: 0; padding: 0; }
.crm-bd-plist > li { display: flex; gap: 8px; align-items: flex-start; padding: 7px 0; border-top: 1px dashed var(--line); }
.crm-bd-plist > li:first-child { border-top: 0; }
.crm-bd-pchk { flex: none; margin: 0; }
.crm-bd-check { width: 20px; height: 20px; margin-top: 1px; border-radius: 6px; border: 2px solid var(--in); background: #fff; display: inline-flex; align-items: center; justify-content: center; cursor: pointer; padding: 0; color: #fff; }
.crm-bd-check:hover { border-color: var(--ok); }
.crm-bd-check.is-on { background: var(--ok); border-color: var(--ok); }
.crm-bd-ptext { flex: 1; min-width: 0; }
.crm-bd-ptext summary { list-style: none; cursor: pointer; display: flex; flex-direction: column; gap: 1px; }
.crm-bd-ptext summary::-webkit-details-marker { display: none; }
.crm-bd-ptext summary span { font-size: 14px; line-height: 1.45; overflow-wrap: anywhere; }
.crm-bd-ptext summary small { font-size: 11.5px; color: var(--muted2); }
.crm-bd-ptext[open] summary { display: none; }
.crm-bd-ptext textarea { width: 100%; }
.crm-bd-ptext .crm-actions { margin-top: 6px; flex-wrap: wrap; }
.crm-bd-plist > li.is-done summary span { text-decoration: line-through; color: var(--muted2); }
.crm-bd-plist > li.is-pinned:not(.is-done) summary span { font-weight: 600; }
@media (max-width: 700px) {
	.crm-bd-hero { padding: 18px 16px; border-radius: 14px; margin: 0 0 12px; }
	.crm-bd-hero::after { width: 180px; height: 180px; }
	.crm-bd-f-bar, .crm-bd-media { padding-left: 0; margin-left: 0; }
	.crm-bd-f-row > .crm-av { display: none; }
	.crm-bd-img img { max-height: 220px; }
}
/* história zmien v karte klienta: po dňoch, filter */
.crm-hist-f { display: flex; flex-wrap: wrap; gap: 4px; }
.crm .crm-hist-chip { border: 1px solid var(--line); background: #fff; color: var(--muted); border-radius: 999px; padding: 3px 11px; font: inherit; font-size: 12.5px; font-weight: 600; cursor: pointer; }
.crm .crm-hist-chip:hover { border-color: var(--in); color: var(--text); }
.crm .crm-hist-chip.on { background: var(--navy2); border-color: var(--navy2); color: #fff; }
.crm-hist { list-style: none; margin: 0; padding: 0; }
.crm-hist-d { font-size: 11.5px; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; color: var(--muted2); padding: 14px 0 6px; border-bottom: 1px solid var(--line2); }
.crm-hist-d:first-child { padding-top: 0; }
.crm-hist-i { display: grid; grid-template-columns: 40px 26px minmax(0, 1fr); gap: 0 8px; align-items: start; padding: 8px 0; border-bottom: 1px solid var(--line2); position: relative; }
.crm-hist-i:last-child { border-bottom: 0; }
.crm-hist-t { font-size: 12.5px; color: var(--muted2); padding-top: 3px; font-variant-numeric: tabular-nums; }
.crm-hist-ic { width: 24px; height: 24px; border-radius: 50%; background: var(--line2); color: var(--muted); display: inline-flex; align-items: center; justify-content: center; }
.crm-hist-i[data-hist-e="activity"] .crm-hist-ic { background: var(--bluebg); color: var(--blue); }
.crm-hist-i[data-hist-e="case"] .crm-hist-ic { background: var(--t-purple-bg); color: var(--t-purple); }
.crm-hist-i[data-hist-e="person"] .crm-hist-ic { background: var(--t-teal-bg); color: var(--t-teal); }
.crm-hist-i[data-hist-e="file"] .crm-hist-ic { background: var(--soonbg); color: var(--soon); }
.crm-hist-h { font-size: 14px; line-height: 1.45; overflow-wrap: anywhere; padding-top: 2px; }
.crm-hist-h a.crm-hist-ent { color: var(--blue); text-decoration: none; }
.crm-hist-h a.crm-hist-ent:hover { text-decoration: underline; }
.crm-hist-u { color: var(--muted); font-size: 12.5px; white-space: nowrap; margin-left: 4px; }
.crm-hist-u .crm-av { vertical-align: -4px; }
.crm-hist-x { margin-top: 2px; font-size: 13px; color: #3A4256; white-space: pre-line; overflow-wrap: anywhere; line-height: 1.5; }
.crm-hist-more { margin: 12px 0 0; text-align: center; }
.crm-hist .is-hidden { display: none; }
/* odkazy v tabuľkách bez podčiarknutia (riadok je klikateľný), podčiarknutie pri prejdení myšou */
.crm-table td a:not(.crm-btn):not(.crm-ibtn) { text-decoration: none; }
.crm-table td a:not(.crm-btn):not(.crm-ibtn):not(.crm-strong):not([class*="crm-due"]) { color: #24418F; }
.crm-table td a:not(.crm-btn):not(.crm-ibtn):hover, .crm-table td a:not(.crm-btn):not(.crm-ibtn):focus-visible { text-decoration: underline; }
/* termíny: zosúladenie s dokončenými úlohami */
.crm-ts-intro { color: var(--muted); line-height: 1.55; margin: 0 0 12px; max-width: 900px; }
.crm-ts-undo { margin: 0 0 12px; }
.crm-ts-rules { list-style: none; margin: 0 0 10px; padding: 0; border: 1px solid var(--line); border-radius: 10px; }
.crm-ts-rules li { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; padding: 9px 12px; border-top: 1px solid var(--line2); }
.crm-ts-rules li:first-child { border-top: 0; }
.crm-ts-rules .crm-ts-n { margin-left: auto; font-size: 13.5px; font-weight: 600; }
.crm-ts-rules .crm-ts-n small { font-weight: 600; margin-left: 6px; }
.crm-ts-act { justify-content: space-between; align-items: center; margin: 0 0 14px; }
.crm-ts-old { color: var(--muted2); text-decoration: line-through; }
.crm-due-ok { color: var(--ok); }
.crm-term.is-off { opacity: .62; border-style: dashed; border-left-style: solid; background: var(--bg); }
.crm-term-off { color: var(--muted); font-style: italic; }

/* Prenos z ponuka.haspo.sk */
.crm-mig-ok { color: #157347; }
.crm-mig-bad { color: #b42318; }
.crm-mig-status .crm-card h3 { margin: 0 0 6px; font-size: 14px; }
.crm-mig-status .crm-card p { margin: 4px 0; }
.crm-mig-steps { margin: 0; padding-left: 20px; display: grid; gap: 14px; }
.crm-mig-steps li > form, .crm-mig-steps li > button { margin-top: 8px; }
.crm-mig-log { max-height: 320px; overflow: auto; background: #f6f7f9; padding: 10px; border-radius: 8px; font-size: 12px; white-space: pre-wrap; }
.crm-mig-cnt td.num, .crm-mig-cnt th.num, .crm-mig-act .num { text-align: right; }
.crm-mig-prog details { margin-top: 8px; }
.crm-ponuky-bar { background: #fff4d6; color: #6b4e00; border-bottom: 1px solid #f0d58c; padding: 6px 16px; font-size: 13px; text-align: center; }
.crm-ponuky-bar a { color: inherit; font-weight: 600; }

/* Financie (SuperFaktúra) v karte klienta */
.crm-sf-stats { margin-bottom: -18px; }
.crm-sf-bad > b { color: var(--late); }
.crm-sf-ok { color: var(--ok); }
.crm-badge.crm-sf-late { background: var(--latebg); color: var(--late); }
.crm-badge.crm-sf-wait { background: var(--soonbg); color: var(--soon); }
.crm-sf-late-card { border-left: 3px solid var(--late); }
.crm-sf-docs td:first-child { white-space: nowrap; }
@media (max-width: 720px) { .crm-sf-stats { grid-template-columns: repeat(2, 1fr); } .crm-sf-stats .crm-stat { border-bottom: 1px solid var(--line2); } }

/* Pracovné karty (otvorené záznamy v jednom okne, ako v Raynete) */
.wtabs { position: sticky; top: var(--top); z-index: 30; display: flex; align-items: stretch; gap: 0; background: #fff; border-bottom: 1px solid var(--line); height: 40px; padding: 0 8px; }
.wtabs-l { display: flex; flex: 1 1 auto; min-width: 0; overflow-x: auto; scrollbar-width: none; }
.wtabs-l::-webkit-scrollbar { display: none; }
.wt { position: relative; display: flex; align-items: center; gap: 7px; flex: 0 1 210px; min-width: 112px; max-width: 230px; padding: 0 30px 0 12px; color: var(--muted); text-decoration: none; font-size: 13.5px; font-weight: 600; border-right: 1px solid var(--line2); white-space: nowrap; }
.wt > span { overflow: hidden; text-overflow: ellipsis; min-width: 0; }
.wt .ic { flex: 0 0 auto; width: 15px; height: 15px; }
.wt:hover { background: var(--bg); color: var(--text); }
.wt.on { color: var(--navy); background: #fff; box-shadow: inset 0 -2px 0 var(--accent); }
.wt.wt-pin { flex: 0 0 auto; min-width: 0; padding-right: 14px; }
.wt-x { position: absolute; right: 6px; top: 50%; transform: translateY(-50%); width: 20px; height: 20px; border: 0; border-radius: 6px; background: transparent; color: var(--muted2); font-size: 16px; line-height: 1; cursor: pointer; opacity: .55; }
.wt:hover .wt-x, .wt.on .wt-x { opacity: 1; }
.wt-x:hover { background: var(--line); color: var(--text); }
.wtabs-a { flex: 0 0 auto; width: 28px; border: 0; background: transparent; color: var(--muted); font-size: 18px; cursor: pointer; }
.wtabs-a:hover { color: var(--text); background: var(--bg); }
.top-wt { display: none; }
.top-wt[hidden], .wtabs-a[hidden] { display: none !important; }
.top-wt { width: 40px; height: 40px; border: 0; border-radius: 10px; background: transparent; color: var(--text); align-items: center; justify-content: center; padding: 0; min-width: 0; margin: 0; }
.top-wt b { position: absolute; top: 2px; right: 0; min-width: 16px; height: 16px; border-radius: 8px; background: var(--navy); color: #fff; font-size: 10.5px; line-height: 16px; text-align: center; padding: 0 3px; }
.wt-sheet .wt { flex: none; max-width: none; min-height: 44px; border-right: 0; border-bottom: 1px solid var(--line2); font-size: 15px; }
.wt-sheet .wt.on { box-shadow: inset 3px 0 0 var(--accent); background: var(--bg); }
.wt-sheet .wt-x { opacity: 1; width: 32px; height: 32px; font-size: 20px; }
.wt-sheet [data-wt-sheet-list] { display: flex; flex-direction: column; margin: 0 -20px; }
@media (max-width: 899px) {
	.wtabs { display: none; }
	.top-wt { display: inline-flex; position: relative; }
}

/* Okno nového záznamu: formulár + kalendár dňa */
dialog.crm-dlg.crm-mdl { width: min(1080px, calc(100vw - 32px)); max-width: none; padding: 0; }
.crm-mdl-in { gap: 0; }
dialog.crm-dlg.crm-mdl { overflow: auto; }
dialog.crm-mdl button.crm-mdl-cal-t { display: none; }
.crm-sf-streams td:nth-child(2) { white-space: nowrap; }
.crm-mdl .crm-mdl-err { margin: 0 0 12px; }
.wt-x { line-height: 18px; padding: 0; }
dialog.crm-dlg.crm-mdl.crm-mdl-n { width: min(760px, calc(100vw - 32px)); }
.crm-mdl-w { display: grid; grid-template-columns: 300px 1fr; min-height: 520px; }
.crm-mdl-cal { border-right: 1px solid var(--line); background: var(--bg); padding: 12px; overflow: auto; max-height: calc(100vh - 140px); }
.crm-mdl-main { padding: 16px 20px; overflow: auto; max-height: calc(100vh - 140px); }
.crm-mdl-main .crm-actions { position: sticky; bottom: -16px; background: #fff; padding: 12px 0; margin-bottom: -16px; border-top: 1px solid var(--line2); }
.crm-mdl-cal-t { display: none; }
.dc-h { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 4px; }
.dc-h b { font-size: 14px; color: var(--navy); }
.dc-who { font-size: 12px; color: var(--muted2); text-align: center; margin-bottom: 8px; }
.dc-all { list-style: none; margin: 0 0 8px; padding: 0; display: grid; gap: 3px; }
.dc-all li { font-size: 12px; background: #fff; border: 1px solid var(--line); border-radius: 6px; padding: 3px 7px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dc-grid { --hh: 40px; position: relative; display: grid; grid-template-rows: repeat(calc(var(--h) * 2), calc(var(--hh) / 2)); background: #fff; border: 1px solid var(--line); border-radius: 8px; }
.dc-slot { border: 0; border-top: 1px solid var(--line2); background: transparent; text-align: left; padding: 0 0 0 6px; font-size: 11px; color: var(--muted2); cursor: pointer; }
.dc-slot.dc-half { border-top: 1px dashed #F2F4F8; }
.dc-slot:hover { background: var(--bluebg); }
.dc-slot span { pointer-events: none; }
.dc-ev { position: absolute; left: 44px; right: 6px; background: var(--bluebg); border-left: 3px solid var(--blue); border-radius: 5px; font-size: 11.5px; padding: 2px 6px; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; pointer-events: none; color: var(--text); }
.dc-ev.dc-task { background: var(--okbg); border-color: var(--ok); }
.dc-ev.dc-phonecall { background: var(--soonbg); border-color: var(--soon); }
.dc-sel { position: absolute; left: 44px; right: 6px; height: calc(var(--hh) / 2); background: rgba(229, 45, 51, .12); border: 2px dashed var(--red); border-radius: 5px; font-size: 11px; color: var(--red2); padding: 0 6px; pointer-events: none; }
.dc-tip { margin: 8px 0 0; text-align: center; }
@media (max-width: 760px) {
	dialog.crm-dlg.crm-mdl { width: 100vw; height: 100dvh; max-height: none; margin: 0; border-radius: 0; }
	.crm-mdl-w { grid-template-columns: 1fr; min-height: 0; }
	.crm-mdl-cal { display: none; border-right: 0; border-bottom: 1px solid var(--line); max-height: 46vh; }
	.crm-mdl-cal.is-open { display: block; }
	dialog.crm-mdl button.crm-mdl-cal-t { display: inline-flex; margin: 0 0 10px; }
	.crm-mdl-main { max-height: none; }
	.crm-mdl-main .crm-actions { bottom: 0; padding-bottom: calc(12px + env(safe-area-inset-bottom)); }
}

/* ---------- nástenka: bloky, ktoré si každý usporiada sám ---------- */
.crm-bd-lay { position: relative; scroll-margin-top: calc(var(--top, 0px) + 12px); }
.crm-bd-w { position: relative; min-width: 0; }
.crm-bd-wctl, .crm-bd-editbar, .crm-bd-tray { display: none; }
.crm-bd-cnt { display: inline-flex; align-items: center; margin-left: 6px; padding: 1px 8px; border-radius: 999px; font-size: 12px; font-weight: 700; background: var(--bg); color: var(--muted); vertical-align: 2px; }
.crm-bd-cnt.is-late { background: #FDECEC; color: var(--late); }
.crm-bd-fold { margin-left: 2px; width: 28px; height: 28px; flex: none; display: inline-flex; align-items: center; justify-content: center; border: 1px solid transparent; border-radius: 8px; background: transparent; color: #6B7280; cursor: pointer; transition: transform .15s, background .12s; }
.crm-bd-fold svg { width: 18px; height: 18px; }
.crm-bd-fold:hover { background: var(--bg); color: var(--ink, #1a2033); }
.crm-bd-w.is-folded .crm-bd-fold { transform: rotate(-90deg); }
.crm-bd-w.is-folded .crm-card > :not(.crm-card-h) { display: none !important; }
.crm-bd-w.is-folded .crm-card-h { margin-bottom: 0; }
.crm-bd-w .crm-card-h { align-items: center; }
.crm-bd-w .crm-card-h h2 { flex: 1 1 auto; min-width: 0; }
.crm-bd-more { list-style: none; padding: 6px 0 2px; font-size: 13.5px; }
.crm-bd-more a { font-weight: 600; }
/* odkazovník: nový odkaz zbalený do jedného riadku, staršie odkazy na požiadanie */
.crm-bd-compose { margin-bottom: 10px; }
.crm-bd-compose > summary { display: flex; align-items: center; gap: 10px; padding: 8px 8px 8px 10px; border: 1px solid var(--line); border-radius: 12px; background: #FBFCFE; cursor: pointer; list-style: none; color: var(--muted); font-size: 14px; }
.crm-bd-compose > summary::-webkit-details-marker { display: none; }
.crm-bd-compose > summary > span:not(.crm-av) { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.crm-bd-compose > summary > .crm-av { flex: none; }
.crm-bd-compose > summary:hover { border-color: var(--in); background: #fff; }
.crm-bd-compose[open] > summary { display: none; }
.crm-bd-msg.is-older { display: none; }
.crm-bd-wall.show-older .crm-bd-msg.is-older { display: flex; }
.crm-bd-older { display: inline-flex; align-items: center; gap: 6px; margin-top: 12px; border: 0; background: none; color: var(--blue); font-weight: 600; font-size: 13.5px; cursor: pointer; padding: 4px 0; }
.crm-bd-img img { max-height: 220px; }
/* režim úprav */
.crm-bd-lay.is-edit .crm-bd-editbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; position: sticky; top: var(--top, 0px); z-index: 20; margin-bottom: 14px; padding: 10px 14px; border-radius: 12px; background: var(--navy, #1d2a5c); color: #fff; font-size: 13.5px; box-shadow: 0 6px 18px rgba(16,24,48,.2); }
.crm-bd-editbar > span:first-child { display: inline-flex; align-items: center; gap: 8px; }
.crm-bd-editbar-a { display: inline-flex; gap: 8px; }
.crm .crm-bd-editbar .crm-btn-g { background: rgba(255,255,255,.12); border-color: rgba(255,255,255,.25); color: #fff !important; }
.crm-bd-lay.is-edit .crm-bd-w { outline: 2px dashed #B7C3E6; outline-offset: 4px; border-radius: 14px; }
.crm-bd-lay.is-edit .crm-bd-w[draggable="true"] { cursor: move; }
.crm-bd-lay.is-edit .crm-bd-w.is-drag { opacity: .4; }
.crm-bd-lay.is-edit .crm-bd-wctl { display: flex; align-items: center; gap: 8px; margin-bottom: 6px; font-size: 13px; color: var(--muted); }
.crm-bd-wctl b { flex: 1; min-width: 0; color: var(--ink, #1a2033); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.crm-bd-grip { display: inline-flex; color: var(--muted2, #9aa3b8); cursor: grab; }
.crm-bd-wbs { display: inline-flex; flex-wrap: wrap; gap: 4px; }
.crm-bd-wb { display: inline-flex; align-items: center; gap: 4px; height: 30px; min-width: 30px; justify-content: center; padding: 0 8px; border: 1px solid var(--line); border-radius: 8px; background: #fff; color: #2E3548; font-size: 12.5px; font-weight: 600; cursor: pointer; }
.crm-bd-wb:hover { border-color: var(--in); background: var(--bg); }
.crm-bd-wb[data-bd-mv="up"] svg, .crm-bd-wb[data-bd-mv="down"] svg { transform: rotate(90deg); }
.crm-bd-wb[data-bd-mv="show"] { display: none; }
.crm-bd-lay.is-edit .crm-bd-tray { display: flex; flex-direction: column; gap: 10px; margin-top: 18px; padding: 14px; border: 1px dashed var(--line); border-radius: 14px; background: #FAFBFD; }
.crm-bd-lay.is-edit .crm-bd-tray::before { content: "Skryté bloky – vrátite ich tlačidlom Zobraziť"; font-size: 13px; font-weight: 700; color: var(--muted); }
.crm-bd-lay.is-edit .crm-bd-tray:not(:has([data-bd-w]))::after { content: attr(data-bd-empty); font-size: 13px; color: var(--muted2, #9aa3b8); }
.crm-bd-tray .crm-bd-w > .crm-card { display: none; }
.crm-bd-tray .crm-bd-wb { display: none; }
.crm-bd-tray .crm-bd-wb[data-bd-mv="show"] { display: inline-flex; }
.crm-bd-lay.is-edit .crm-bd-tray .crm-bd-w { outline-style: solid; outline-color: var(--line); }
.crm-bd-w.is-moved > .crm-card { animation: crm-bd-moved .9s ease-out; }
@keyframes crm-bd-moved { from { box-shadow: 0 0 0 3px var(--blue); } to { box-shadow: 0 0 0 3px transparent; } }
@media (prefers-reduced-motion: reduce) { .crm-bd-w.is-moved > .crm-card { animation: none; } .crm-bd-fold { transition: none; } }
@media (max-width: 980px) {
	.crm-bd-wb[data-bd-mv="col"] span { display: none; }
}
@media (pointer: coarse) {
	.crm-bd-wb { height: 36px; min-width: 36px; }
	.crm-bd-fold { width: 36px; height: 36px; }
}
[data-bd-col="side"] .crm-bd-wb span { display: none; }   /* úzky stĺpec: len ikony (popis je v title) */
@media (max-width: 980px) { [data-bd-col="side"] .crm-bd-wb span { display: inline; } }
@media (max-width: 760px) { .crm-bd-lay.is-edit .crm-bd-editbar { position: static; } }
/* pri úprave rozloženia len nadpisy blokov – ľahšie sa presúvajú (obsah sa vráti tlačidlom Hotovo) */
.crm-bd-lay.is-edit .crm-bd-w > .crm-card > :not(.crm-card-h) { display: none !important; }
.crm-bd-lay.is-edit .crm-bd-w > .crm-card .crm-card-h { margin-bottom: 0; }
.crm-bd-lay.is-edit .crm-bd-fold { display: none; }

/* ===================== Ponuka: cenové ponuky (systém + Raynet) ===================== */
.crm-dq { list-style: none; margin: 0; padding: 0; }
.crm-dq-i { border-top: 1px solid var(--line2); }
.crm-dq-i:first-child { border-top: 0; }
.crm-dq-i > .crm-dq-m, .crm-dq-i > .crm-dq-sum, .crm-dq-i > .crm-dq-next, .crm-dq-i > .crm-dq-a { padding-top: 12px; padding-bottom: 12px; }
.crm-dq-i:not(.is-rn), .crm-dq-d > summary { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(110px, auto) minmax(0, 1fr) auto; gap: 6px 16px; align-items: center; }
.crm-dq-d > summary { list-style: none; cursor: pointer; padding: 12px 0; }
.crm-dq-d > summary::-webkit-details-marker { display: none; }
.crm-dq-d > summary:hover .crm-dq-t .mono { text-decoration: underline; }
.crm-dq-d[open] > summary .crm-coll-i { transform: rotate(180deg); }
.crm-dq-d .crm-coll-i { display: inline-flex; color: var(--muted); transition: transform .15s; }
.crm-dq-t { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.crm-dq-s { margin-top: 4px; display: flex; flex-wrap: wrap; align-items: center; gap: 2px 6px; }
.crm-dq-s .ov-svc { margin: 0; font-size: 11.5px; padding: 2px 7px; }
.crm-dq-sum { text-align: right; white-space: nowrap; }
.crm-dq-sum b { display: block; font-size: 15px; }
.crm-dq-sum small, .crm-dq-next small { display: block; font-size: 12px; color: var(--muted); }
.crm-dq-next .ov-next { font-size: 13.5px; }
.crm-dq-a { display: flex; align-items: center; justify-content: flex-end; gap: 4px; white-space: nowrap; }
.crm-dq-a .crm-ibtn { font-size: 12px; font-weight: 700; text-decoration: none; }
.crm-dq-i.is-test { opacity: .7; }
.crm-dq-i.is-off .crm-dq-m, .crm-dq-i.is-off .crm-dq-sum { opacity: .6; }
.crm-dq-body { padding: 0 0 14px; }
.crm-dq-body .crm-items { font-size: 13.5px; }
.crm-dq-desc { margin: 12px 0 0; padding: 10px 12px; background: #FAFBFD; border: 1px solid var(--line2); border-radius: 8px; font-size: 14px; }
.crm-dq-desc > b { display: block; font-size: 12px; text-transform: uppercase; letter-spacing: .04em; color: var(--muted); margin-bottom: 4px; }
.crm-dq-cf { margin-top: 10px; }
.crm-dq-links { display: flex; flex-wrap: wrap; gap: 6px 16px; margin-top: 10px; font-size: 13.5px; }
.crm-dq-links a { display: inline-flex; align-items: center; gap: 5px; }
.crm-dq-foot { border-top: 1px solid var(--line2); margin-top: 4px; padding-top: 10px; font-size: 13px; display: flex; flex-direction: column; gap: 6px; }
.crm-dq-warn { color: var(--soon); display: inline-flex; align-items: center; gap: 5px; }
.crm-dq-extra b { display: block; font-size: 12px; text-transform: uppercase; letter-spacing: .04em; color: var(--muted); margin: 4px 0 2px; }
.crm-dq-extra ul { margin: 0 0 4px; padding-left: 18px; }
.crm-file-from { display: inline-block; margin-left: 4px; font-size: 11.5px; color: var(--muted); }
@media (max-width: 760px) {
	.crm-dq-i:not(.is-rn), .crm-dq-d > summary { grid-template-columns: minmax(0, 1fr) auto; }
	.crm-dq-i > .crm-dq-m, .crm-dq-i > .crm-dq-sum, .crm-dq-i > .crm-dq-next, .crm-dq-i > .crm-dq-a { padding-top: 0; padding-bottom: 0; }
	.crm-dq-i:not(.is-rn) { padding: 12px 0; }
	.crm-dq-next { grid-column: 1 / 2; }
	.crm-dq-a { grid-column: 2 / 3; }
}

/* zoznam ponúk: prepínač pohľadov (Aktuálne / Podľa fáz / Všetky) */
.crm-dviews { display: inline-flex; gap: 2px; padding: 3px; background: #EEF1F6; border-radius: 10px; margin: 0 0 14px; flex-wrap: wrap; }
.crm-dviews a { padding: 6px 14px; border-radius: 8px; font-size: 14px; font-weight: 600; color: var(--muted); text-decoration: none; white-space: nowrap; }
.crm-dviews a:hover { color: var(--text); text-decoration: none; }
.crm-dviews a.on { background: #fff; color: var(--navy); box-shadow: 0 1px 2px rgba(16,24,40,.08); }

/* hľadanie: podobný výsledok (preklep) */
.gs-fz { color: var(--soon); font-weight: 700; }

/* =====================================================================
   UX 10/2026 – čitateľnosť, pokojnejšie farby, jednotné ovládanie
   ===================================================================== */
/* viditeľný fokus pri ovládaní klávesnicou (myšou sa nezobrazuje) */
body.shell a:focus-visible, body.shell button:focus-visible, body.shell summary:focus-visible, body.shell [tabindex]:focus-visible,
body.shell input[type=checkbox]:focus-visible, body.shell input[type=radio]:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; border-radius: 6px; }
body.shell ::selection { background: #CFDCF7; color: #0F1A33; }
body.shell { -webkit-tap-highlight-color: rgba(45, 91, 191, .12); }
body.shell .crm input[type=checkbox], body.shell .crm input[type=radio] { accent-color: var(--accent); }
/* čísla v tabuľkách a termínoch pod sebou */
.crm-table td, .crm-when, .crm-due, .crm-stat b, .num { font-variant-numeric: tabular-nums; }

/* majáčik „Návrh / chyba“: kompaktný, popis až pri prejdení myšou – nezakrýva obsah a neťahá oči */
.fb-beacon { min-width: 0; margin: 0; height: 44px; padding: 0 5px; gap: 0; box-shadow: 0 4px 14px rgba(217,106,8,.32), 0 0 0 2px rgba(255,255,255,.9); }
.fb-beacon .fb-bt { max-width: 0; overflow: hidden; opacity: 0; transition: max-width .22s ease, opacity .15s ease, margin .22s ease; }
.fb-beacon:hover .fb-bt, .fb-beacon:focus-visible .fb-bt { max-width: 340px; opacity: 1; margin: 0 12px 0 8px; }
.fb-beacon:hover { transform: none; }
.fb-pulse { animation-iteration-count: 3; }
@media (max-width: 760px) {
	.fb-beacon { height: 42px; width: 42px; padding: 0; justify-content: center; bottom: calc(70px + env(safe-area-inset-bottom)); }
	.fb-beacon .fb-bt { display: none; }
}

/* ---- staršie stránky ponúk (ov-*, cq-*, ed-*) zladené s CRM: rovnaké nadpisy, tlačidlá, čísla a farby ---- */
:root { --ov-navy: var(--navy); --ov-muted: var(--muted); }   /* --ov-red ostáva červená: mazanie, chyby, povinné polia */
.ov { gap: 20px; }
.ov h1 { font-size: 26px; font-weight: 800; letter-spacing: -.005em; line-height: 1.2; }
.ov h2 { font-size: 18px; }
.ov a:hover, .ov-table .ov-client:hover, a.ov-tt:hover, body .up-link:hover, body .up-cname:hover { color: var(--accent) !important; }
body .up-nav a.on { border-bottom-color: var(--accent); }
body .up form.up-run-card { border-top-color: var(--navy2); }
/* čísla ponúk a IČO: písmo aplikácie s číslicami pod sebou, nie písací stroj */
.ov .mono, .ov-table .mono, .ed-num { font-family: inherit; font-size: 14px; font-weight: 600; font-variant-numeric: tabular-nums; letter-spacing: .01em; }
.ov .mono.ov-s, .ov-table .mono.ov-s { font-size: 12.5px; font-weight: 400; }
.ed-num { color: var(--muted); font-size: 15px; }
.ov-table td, .ov-row, .ov-total, .cq-dl dd, table.cq-svc td { font-variant-numeric: tabular-nums; }
.ov-btn { height: 38px; border-radius: 9px; font-size: 14px; padding: 0 14px; transition: background .12s, border-color .12s; }
.ov-btn:hover { background: var(--bg); border-color: var(--navy2); }
.ov-btn-sm { height: 32px; padding: 0 12px; font-size: 13.5px; }
.ov-btn-navy, .ov-btn-red { background: var(--accent); border-color: var(--accent); color: #fff !important; }
.ov-btn-navy:hover, .ov-btn-red:hover { background: var(--accent2); border-color: var(--accent2); color: #fff !important; }
.ov-btn[disabled], .ov-btn:disabled { opacity: .5; cursor: not-allowed; }
.ov-tab { height: 34px; border-color: var(--line); font-size: 13.5px; color: var(--muted) !important; }
.ov-tab:hover { border-color: var(--in); color: var(--text) !important; }
.ov-tab.on { background: var(--navy2); border-color: var(--navy2); color: #fff !important; }
.ov-in { height: 40px; border-radius: 9px; }
.ov-in:focus { outline: 2px solid var(--focus); outline-offset: 0; border-color: var(--focus); }
.ov-seg input:checked + span, .ov-step h2 span { background: var(--navy2); }
.ov-sum { border-top-color: var(--navy2); }
.ov-sumh { font-weight: 800; font-size: 19px; }
/* editor ponuky */
.ed-tabs a { font-size: 15px; color: var(--muted); }
.ed-tabs a:hover { color: var(--text); }
.ed-tabs a.on { color: var(--navy); border-bottom-color: var(--accent); }
.ed-tabs a:focus-visible, .ed-seg button:focus-visible { outline: 2px solid var(--focus); }
.ed-title { font-size: 26px; font-weight: 800; color: var(--navy); }
.ed-meta { color: var(--muted); font-size: 14px; }
.ed-seg button.on, .cq-tabs a.on, button.ed-save.on { background: var(--navy2); border-color: var(--navy2); }
.cq-card { border-color: var(--line); border-radius: 12px; }
.cq-card h2, .ed-pv-head h2 { font-size: 15px; letter-spacing: .04em; color: var(--navy); }
.cq-hint, .ed-pv-foot { color: var(--muted); font-size: 13px; }
.cq input[type=text], .cq input[type=number], .cq input[type=email], .cq input[type=date], .cq select, .cq textarea,
.cq-card input[type=text], .cq-card input[type=number], .cq-card input[type=email], .cq-card input[type=date], .cq-card input[type=password], .cq-card input[type=search], .cq-card select, .cq-card textarea { border-color: var(--in); border-radius: 8px; color: var(--text); }
.cq input:focus, .cq select:focus, .cq textarea:focus, .cq-card input:focus, .cq-card select:focus, .cq-card textarea:focus { outline: 2px solid var(--focus); outline-offset: 0; border-color: var(--focus); }
table.cq-svc th { color: var(--muted); background: #FAFBFD; font-size: 12px; }
.cq-send { background: var(--ok) !important; border-color: var(--ok) !important; }
.cq-send:hover { background: #156B3F !important; border-color: #156B3F !important; }
.cq-actions { border-top-color: var(--line); }

/* kalendár: úlohy v riadku „celý deň“ na dva riadky namiesto useknutia, udalosti v mriežke s jemným obrysom */
.crm-week-all .crm-ev-all { white-space: normal; }
.crm-week-all .crm-ev-all b { white-space: normal; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; line-height: 1.3; }
.crm-ev { border: 1px solid color-mix(in srgb, var(--cat) 30%, #fff); border-left: 3px solid var(--cat); background: color-mix(in srgb, var(--cat) 14%, #fff); }
.crm-ev small { color: #4A5266; }

/* =====================================================================
   UX 10/2026 – dávka 1: opravy naprieč celým CRM (z auditu všetkých stránok)
   ===================================================================== */
:root { --stick: calc(var(--top) + 40px); }   /* hlavička + pracovné karty: lepkavé lišty začínajú pod nimi */
@media (max-width: 899px) { :root { --stick: var(--top); } }
html.pwa { --stick: calc(var(--top) + 40px + env(safe-area-inset-top)); }
@media (max-width: 899px) { html.pwa { --stick: calc(var(--top) + env(safe-area-inset-top)); } }
.crm-ctabs, html.pwa .crm-ctabs { top: var(--stick); }
.crm-tabbed .crm-card { scroll-margin-top: calc(var(--stick) + 60px); }
.crm-bd-lay.is-edit .crm-bd-editbar { top: calc(var(--stick) + 6px); }

/* starý globálny štýl „nav a“ (odsadenie 16 px, podčiarknutie) nepatrí do kariet, záložiek ani stránkovania */
body.shell nav a { margin-left: 0; }
body.shell nav a:hover { text-decoration: none; }
/* zatváracie „x“ na pracovných kartách nesmie dediť veľkosť starých tlačidiel */
.wt-x, body.shell button.wt-x { min-height: 0; min-width: 0; margin: 0; padding: 0; }

/* tlačidlá: odkaz aj <button> s rovnakým písmom */
.crm .crm-btn, .crm button.crm-btn { font-size: 14px; font-weight: 700; line-height: 1.2; }
.crm .crm-btn-s, .crm button.crm-btn-s { font-size: 13px; }

/* riadkovanie: husté zoznamy dýchajú */
.crm { line-height: 1.42; }
.crm-table td { line-height: 1.35; }

/* odkazy: jednotné, decentné podčiarknutie (plné až pri prejdení myšou) */
.crm a { text-underline-offset: 2px; text-decoration-thickness: 1px; text-decoration-color: color-mix(in srgb, currentColor 30%, transparent); }
.crm a:hover { text-decoration-color: currentColor; }
.crm-log a, .crm-bd-disc-t a, .crm-kv dd a { text-decoration: none; font-weight: 600; }
.crm-log a:hover, .crm-bd-disc-t a:hover, .crm-kv dd a:hover { text-decoration: underline; }
.crm a.crm-kcard:hover, .crm a.crm-tile:hover { color: var(--text) !important; text-decoration: none; }
.crm a.crm-kcard:hover { border-color: var(--accent); }

/* fokus viditeľný aj na tmavom podklade */
body.shell .side :focus-visible, .crm-bd-hero :focus-visible { outline-color: #fff; }

/* mobil: zatvorené bočné menu bez tieňa a mimo klávesnice */
@media (max-width: 960px) {
	body.shell .side { box-shadow: none; visibility: hidden; transition: transform .2s ease, visibility 0s linear .2s; }
	body.side-open .side { box-shadow: 0 0 40px rgba(0,0,0,.3); visibility: visible; transition: transform .2s ease, visibility 0s; }
}

/* riadky tabuliek: zvýraznenie len pri myši; na mobile celá karta naraz, nie po bunkách */
.crm-table tbody tr:hover td { background: transparent; }
@media (hover: hover) { .crm-table tbody tr:hover td { background: #F7F9FD; } }
@media (max-width: 700px) {
	.crm-table.crm-resp tbody tr:hover td { background: transparent; }
	.crm-table.crm-resp tbody tr:active { background: #F7F9FD; }
}

/* termíny: farbou len to, čo vyžaduje pozornosť – budúce dátumy neutrálne, pri omeškaní červený len údaj „pred X dňami“ */
.crm-due { font-weight: 600; }
.crm-due-ok, .crm-when.crm-due-ok, .crm-due.crm-due-ok { color: var(--text); }
.crm-dot-ok { background: #B8C0CE; }
.crm-act .crm-when.crm-due-late, .crm-table .crm-when.crm-due-late { color: var(--text); }
.crm-when.crm-due-late small { color: var(--late); font-weight: 700; }
.crm-when.crm-due-soon small { font-weight: 700; }
.crm-acts-h.is-late { color: var(--late); }

/* nástenka: pokojnejšie privítanie (bez červenej žiary), kalendár: dnešok jemne modrý */
.crm-bd-hero::after { background: radial-gradient(circle, rgba(93,135,230,.30) 0%, rgba(93,135,230,0) 70%); }
.crm-week-col.is-today { background-color: #F6F9FF; }
.crm-month-d.is-out { background: var(--bg); }
.crm-month-d.is-out .crm-month-n { color: #A3AABA; }
.crm-month .crm-ev b { font-weight: 600; }

/* nástenka: šípka zbalenia viditeľná, hlavička karty v jednom riadku */
.crm-bd-fold, .crm button.crm-bd-fold, body.shell button.crm-bd-fold { padding: 0; min-height: 0; min-width: 0; margin: 0 0 0 2px; }
.crm-bd-fold svg { flex: none; }
.crm-bd-w .crm-card-h { flex-wrap: nowrap; }
.crm-bd-w .crm-card-h > .crm-s, .crm-bd-w .crm-card-h > small { margin-left: auto; white-space: nowrap; }
.crm-bd-w .crm-card-h h2 { min-width: 0; }

/* drobné písmo: nikde pod 12 px */
.crm-acts-h, .crm-fact > span, .crm-tabs a b, .crm-feed li.crm-feed-d, .crm-file-src, .crm-stat > span { font-size: 12px; }
.crm-acts-h { padding: 16px 0 6px; }
.crm-table.crm-resp .crm-tag { font-size: 12px; }

/* fázy obchodu a prepínače: modrá = aktuálne/zapnuté, zelená len pre výhru */
.crm-stages button.on { background: var(--accent); color: #fff; }
.crm-stages button.done { background: var(--accentbg); color: var(--accent2); }
.crm-stages button:not(:disabled):hover { background: #D5E0F6; color: var(--accent2); }
.crm-switch input:checked + span { background: var(--accent); }

/* štatistiky v hlavičke klienta: hodnota sa zalomí, nie useknie */
.crm-stat > b { white-space: normal; overflow: visible; text-overflow: clip; overflow-wrap: anywhere; }
.crm-stat > b small { display: block; white-space: normal; font-weight: 500; color: var(--muted); font-size: 12.5px; }

/* kanban: iniciály vlastníka čitateľné */
.crm-kcard span { color: inherit; font-size: inherit; }
.crm-kcard > span { font-size: 12.5px; color: var(--muted); }

/* aktivita v zozname: na dotyk funguje celý riadok, „Mám hotovo“ = prázdne koliesko */
.crm-act-t::after { content: ""; position: absolute; inset: 0; }
.crm-act .crm-act-c, .crm-act .crm-act-q, .crm-act a:not(.crm-act-t), .crm-act button, .crm-act form { position: relative; z-index: 1; }
.crm-ibtn-ok, .crm button.crm-ibtn-ok { border: 1.5px solid var(--in); border-radius: 50%; color: transparent !important; }
.crm-ibtn-ok:hover, .crm button.crm-ibtn-ok:hover, .crm-ibtn-ok:focus-visible { color: var(--ok) !important; border-color: var(--ok); background: var(--okbg); }
@media (hover: none) { .crm-ibtn-ok, .crm button.crm-ibtn-ok { color: #B8C0CE !important; } }

/* dotykové plochy na mobile aspoň 36 px */
@media (pointer: coarse) {
	.crm .crm-svcchip, .crm-pills a, .crm-pills button, .crm-dviews a, .crm .crm-hist-chip { min-height: 36px; box-sizing: border-box; }
	.crm-copy { min-width: 32px; min-height: 32px; }
	.crm .crm-file-src { padding: 6px 10px; }
	body.shell summary { min-height: 36px; }
	body.shell input[type=checkbox], body.shell input[type=radio] { width: 20px; height: 20px; }
}

/* vodorovne posúvané záložky na mobile: jemné doznenie ukazuje, že pokračujú */
@media (max-width: 760px) {
	.crm-ctabs, .crm-tabs, .crm-hero .crm-stats, .crm-dviews { -webkit-mask-image: linear-gradient(90deg, #000 88%, transparent); mask-image: linear-gradient(90deg, #000 88%, transparent); }
	.crm-dviews { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; }
}

/* udalosti v kalendári: obrys aj pri neplatnej farbe kategórie */
.crm-ev { outline: 1px solid rgba(28,43,90,.08); outline-offset: -1px; }
.crm-state-plain { color: var(--muted); font-size: 13px; font-weight: 600; white-space: nowrap; }
.crm-tile-late { display: block; margin-top: 3px; font-style: normal; font-size: 12.5px; font-weight: 700; color: var(--late); }
a.crm-bd-cnt { text-decoration: none; }
a.crm-bd-cnt:hover { text-decoration: underline; }
/* nástenka – termíny kontrol: klient hlavný údaj, dátum a druh kontroly pod ním */
.crm-log li.crm-bd-term { display: flex; flex-direction: column; gap: 1px; }
.crm-bd-term > a { font-size: 14px; }
.crm-bd-term > span { color: var(--muted); font-size: 13px; }
.crm-bd-term .crm-due-soon { color: var(--text); }
.crm-bd-term .crm-due-soon + small { color: var(--soon); font-weight: 700; }
.crm-table tr.crm-tgrp td { font-size: 12px; }
/* nástenka na mobile: dnešný program, potom úlohy a termíny – až potom diskusie a odkazy */
@media (max-width: 760px) {
	.crm-bd-lay:not(.is-edit) .crm-cols.crm-bd { display: flex; flex-direction: column; align-items: stretch; gap: 14px; }
	.crm-bd-lay:not(.is-edit) .crm-bd .crm-bd-w { min-width: 0; }
	.crm-bd-lay:not(.is-edit) .crm-bd > .crm-main, .crm-bd-lay:not(.is-edit) .crm-bd > .crm-side { display: contents; }
	.crm-bd-lay:not(.is-edit) [data-bd-w=agenda]:has(.crm-board-agenda:not(.is-empty)) { order: -3; }
	.crm-bd-lay:not(.is-edit) [data-bd-w=tasks] { order: -2; }
	.crm-bd-lay:not(.is-edit) [data-bd-w=terms] { order: -1; }
	.crm-bd-hello > p { display: none; }
	.crm-bd-w .crm-card-h > .crm-s:not(a), .crm-bd-w .crm-card-h > small { display: none; }
}
/* hlavné hľadanie: skratka „/“ ako nenápadný kláves vpravo (len s klávesnicou), na mobile kratší text */
.top-kbd { display: none; }
@media (hover: hover) and (min-width: 900px) {
	body.shell .top-search .top-kbd { display: inline-flex; align-items: center; justify-content: center; flex: none; min-width: 22px; height: 22px; padding: 0 6px; margin-right: 2px; border: 1px solid var(--line); border-bottom-width: 2px; border-radius: 6px; background: #fff; color: var(--muted); font-size: 12px; font-weight: 600; line-height: 1; font-family: inherit; }
	body.shell .top-search:focus-within .top-kbd { display: none; }
}
.crm-bd-cnt { white-space: nowrap; }
.crm-bd-late { display: flex; align-items: center; gap: 8px; margin: -2px 0 10px; padding: 8px 10px; border-radius: 9px; background: var(--latebg); color: var(--late) !important; font-size: 13.5px; text-decoration: none !important; }
.crm-bd-late span { flex: 1 1 auto; color: var(--text); }
.crm-bd-late b { color: var(--late); }
.crm-bd-late:hover { background: #FADCDA; }
.crm-log li.crm-bd-term small { display: inline; }
.crm-bd-term .crm-due { display: inline; }
/* „Mám hotovo“: koliesko 24 px v dotykovej ploche tlačidla */
.crm-ibtn-ok, .crm button.crm-ibtn-ok { border: 0 !important; border-radius: 50%; position: relative; background: transparent; }
.crm-ibtn-ok::before { content: ""; position: absolute; left: 50%; top: 50%; width: 24px; height: 24px; margin: -12px 0 0 -12px; border: 1.5px solid #B8C0CE; border-radius: 50%; box-sizing: border-box; transition: border-color .12s, background .12s; }
.crm-ibtn-ok svg { position: relative; }
.crm-ibtn-ok:hover, .crm button.crm-ibtn-ok:hover, .crm-ibtn-ok:focus-visible { background: transparent !important; border-color: transparent; }
.crm-ibtn-ok:hover::before, .crm-ibtn-ok:focus-visible::before { border-color: var(--ok); background: var(--okbg); }
@media (max-width: 760px) {
	.crm-bd-w .crm-card-h .crm-bd-cnt.is-late { display: none; }
	.crm-act-m > span:has(> .crm-act-c) { max-width: 100%; min-width: 0; }
	.crm-act-c { display: inline-block; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; vertical-align: bottom; }
}
.crm-act .crm-when.crm-due-soon, .crm-table .crm-when.crm-due-soon { color: var(--text); }
.crm-when.crm-due-soon small { color: var(--soon); }
/* zoznam klientov: počet pod nadpisom, rýchle filtre (moji, bez ďalšieho kroku, zmazaní, služby) v jednom riadku */
.crm .crm-svcchip { gap: 6px; }
.crm .crm-svcchip.on:not([class*="tone-"]) { background: var(--navy2); border-color: var(--navy2) !important; }
.crm .crm-svcchip.on:not([class*="tone-"]):hover { background: var(--navy3); }
.crm-fchk { cursor: pointer; margin: 0; }
.crm-fchk input { width: 15px; height: 15px; margin: 0; accent-color: #fff; }
.crm-fchk:not(.on) input { accent-color: var(--accent); }
.crm-svcsep { width: 1px; height: 20px; background: var(--line); margin: 0 6px; }
.crm-ph-s .crm-count { font-size: 14px; color: var(--muted); }
/* dátum + „pred X dňami“: dátum neutrálny, farbu nesie relatívny údaj (alebo bodka pri termínoch) */
.crm-due-late:has(+ small), .crm-due-soon:has(+ small), .crm-dot + .crm-due { color: var(--text); }
.crm-due-late + small, .crm-due-late + small.crm-muted { color: var(--late) !important; font-weight: 700; }
.crm-due-soon + small, .crm-due-soon + small.crm-muted { color: var(--soon) !important; font-weight: 700; }
@media (max-width: 700px) {
	.crm-terms-tbl.crm-resp tbody tr:not(.crm-tgrp) { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0 10px; }
	.crm-terms-tbl.crm-resp td:has(> a.crm-strong) { order: -1; flex-basis: 100%; }
}
/* kalendár: štvorček úlohy (dokončená = fajka), dnešok v zozname modrou */
.crm-ev-box { display: inline-block; width: 10px; height: 10px; margin: 0 5px 0 0; border: 1.5px solid currentColor; border-radius: 3px; vertical-align: -1px; opacity: .75; box-sizing: border-box; }
.crm-ev.is-done .crm-ev-box { background: currentColor url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='4'%3E%3Cpath d='M5 12.5l4 4 10-10'/%3E%3C/svg%3E") center/9px no-repeat; }
.crm-ev.is-done b { text-decoration: line-through; text-decoration-color: rgba(26,32,51,.45); }
.crm-acts-h.is-today { color: var(--accent); }
.crm-week-lab { line-height: 1.2; }
/* mobil – mesiac: udalosti ako farebné bodky, deň je čitateľný */
@media (max-width: 700px) {
	.crm-month .crm-ev-all { font-size: 0 !important; width: 7px; height: 7px; padding: 0 !important; margin: 1px; border: 0; border-radius: 50%; display: inline-block; background: var(--cat, var(--accent)); outline: 0; vertical-align: top; }
	.crm-month .crm-ev-all * { display: none; }
}
@media (max-width: 700px) {
	.crm-month-d { flex-direction: row; flex-wrap: wrap; align-content: flex-start; gap: 0; cursor: pointer; }
	.crm-month-d .crm-month-n { flex-basis: auto; margin-right: 100%; }
	.crm-month-more { font-size: 11px !important; flex-basis: 100%; }
}
/* výsledky hľadania: celý riadok je odkaz, hľadaný výraz zvýraznený */
.crm-sres { list-style: none; margin: 0 -10px; padding: 0; }
.crm-sres li { margin: 0; padding: 0; }
.crm-sres a { display: block; padding: 8px 10px; border-radius: 8px; color: var(--text) !important; text-decoration: none !important; }
.crm-sres a:hover { background: var(--bg); }
.crm-sres b { display: block; font-size: 14.5px; font-weight: 600; color: var(--navy); }
.crm-sres small { display: block; margin-top: 1px; font-size: 13px; color: var(--muted); }
.crm-sres mark, .gs-list mark { background: #FFF1B8; color: inherit; border-radius: 3px; padding: 0 1px; }
/* upozornenia: neprečítané s bodkou a medzerou medzi položkami */
.crm-notify li + li { margin-top: 2px; }
.crm-notify li a { border-bottom: 0; }
.crm-notify li:not(.is-new) + li:not(.is-new) a { box-shadow: 0 -1px 0 var(--line2); border-radius: 0; }
.crm-notify li.is-new a::after { content: ""; flex: none; align-self: center; width: 8px; height: 8px; margin-left: auto; border-radius: 50%; background: var(--accent); }
/* náhľady obrázkov v dokumentoch: zdroj ako štítok na obrázku, popis v jednom riadku */
.crm-thumbs { grid-template-columns: repeat(auto-fill, minmax(128px, 1fr)); }
.crm-thumbs figcaption { font-size: 12px; white-space: nowrap; min-width: 0; }
.crm-thumbs figcaption .crm-file-from, .crm-thumbs figcaption .crm-file-src { position: absolute; top: 6px; left: 6px; margin: 0; background: rgba(255,255,255,.92); box-shadow: 0 1px 2px rgba(16,24,48,.15); }
.crm-thumbs figcaption .crm-file-from + .crm-file-src { top: 32px; }

/* =====================================================================
   UX 10/2026 – dávka 2: staršie stránky ponúk v rovnakom rámci ako CRM
   ===================================================================== */
/* mobil: nič nesmie rozťahovať stránku do strany */
@media (max-width: 1000px) { .cq-grid { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 1100px) { .ed-grid { grid-template-columns: minmax(0, 1fr); } }
.cq-grid > *, .ed-grid > *, .ed-main, .ed-side { min-width: 0; }
code { background: var(--line2); color: var(--text); font-size: 12.5px; border-radius: 5px; padding: 1px 5px; overflow-wrap: anywhere; }
.cq-card:has(table.cq-svc) { overflow-x: auto; }
table.it-tbl { min-width: 680px; }
table.it-tbl .it-name { min-width: 220px; }
table.it-tbl th { font-size: 12px; color: var(--muted); background: #FAFBFD; }
table.it-tbl .it-in { border-color: var(--in); }

/* editor ponuky: lišta pod hlavičkou a kartami, na sivom pozadí stránky */
.ed-bar { top: var(--stick); z-index: 25; margin: -24px -28px 16px; padding: 12px 28px; background: rgba(243,245,249,.96); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); border-bottom-color: var(--line); }
@media (max-width: 960px) { .ed-bar { margin: -16px -14px 12px; padding: 10px 14px; } }
@media (min-width: 1101px) { .ed-side { top: calc(var(--stick) + 90px); max-height: calc(100vh - var(--stick) - 100px); } }
.ed-grid [id], .ed-grid .cq-card { scroll-margin-top: calc(var(--stick) + 100px); }
.cq-sum, .ov-sum, .pr-prev { top: calc(var(--stick) + 16px); }
.ed-meta select { height: 30px; padding: 0 6px !important; border: 1px solid var(--in); border-radius: 7px; font: inherit; font-size: 13.5px; color: var(--text); background: #fff; max-width: 100%; }
.ed-state { background: none; padding: 0; color: var(--muted); font-weight: 600; }
.ed-state.warn { background: var(--soonbg); color: var(--soon); padding: 2px 10px; }
.ed-state.err { background: var(--latebg); color: var(--late); padding: 2px 10px; }
.ed-state.busy { background: none; color: var(--muted); }
.ed-back { color: var(--muted); }
.ed-back:hover { color: var(--accent); }

/* spodná lišta s tlačidlami: na počítači ako panel, na mobile nad spodnou navigáciou */
.cq-actions { padding: 10px 14px; margin: 12px 0 0; border: 1px solid var(--line); border-radius: 12px; background: #fff; box-shadow: 0 -8px 20px -16px rgba(16,24,48,.35); }
.cq-actions.ed-act-side { box-shadow: none; }
@media (max-width: 760px) {
	.cq-actions, .pr-save { bottom: calc(62px + env(safe-area-inset-bottom)); }
}

/* nadpisy kariet: vetou, nie verzálkami */
.cq-card h2, .ov .cq-card h2, .ed-pv-head h2 { text-transform: none; letter-spacing: 0; font-size: 16px; font-weight: 700; color: var(--navy); }
.cq-card h2 small { font-size: 13px; color: var(--muted); }
/* starý globálny vzhľad tabuliek (mriežka na každej bunke) nepatrí do kariet */
.cq-card table, .ov-card table:not(.ov-table) { margin: 0; }
.cq-card th, .cq-card td { border: 0; border-bottom: 1px solid var(--line2); }
.cq-card th { color: var(--muted); }
table.cq-svc th { text-align: left; }
table.cq-svc td.ctr, table.cq-svc th.ctr { text-align: center; }

/* kontrast a drobnosti */
.cq-hero .old .pct { background: var(--red2); }
.ov-in-big::placeholder { font-weight: 400; letter-spacing: 0; color: var(--muted2); }
.ov-chip, .cq-hero .lab { font-size: 12px; }
input[type=file]::file-selector-button { font: inherit; font-size: 14px; font-weight: 700; color: var(--navy2); background: #fff; border: 1px solid var(--in); border-radius: 9px; padding: 7px 14px; margin-right: 10px; cursor: pointer; }
input[type=file]::file-selector-button:hover { background: var(--bg); border-color: var(--navy2); }

/* prihlásenie */
.auth-btn { margin: 8px 0 0 !important; }
body.auth-body .container { width: 100%; }
/* editor: menu „Viac“ pre menej časté akcie */
.ed-more { position: relative; display: inline-block; }
.ed-more > summary { list-style: none; margin: 0; }
.ed-more > summary::-webkit-details-marker { display: none; }
.ed-more > summary span { font-size: 11px; margin-left: 2px; color: var(--muted); }
.ed-more-m { position: absolute; right: 0; top: calc(100% + 6px); z-index: 40; min-width: 230px; padding: 6px; background: #fff; border: 1px solid var(--line); border-radius: 12px; box-shadow: 0 14px 34px rgba(16,24,48,.16); display: flex; flex-direction: column; }
.ed-more-m .ed-more-i, .ed-more-m button.ed-more-i { display: block; width: 100%; margin: 0; padding: 9px 12px; border: 0; border-radius: 8px; background: none; text-align: left; font: inherit; font-size: 14px; font-weight: 600; color: var(--text) !important; text-decoration: none; cursor: pointer; min-height: 0; justify-content: flex-start; }
.ed-more-m .ed-more-i:hover { background: var(--bg); }
.ed-more-m .ed-more-i[hidden] { display: none; }
.ed-bar-r .btn, .ed-bar-r button, .ed-bar-r summary.btn { height: 38px; padding: 0 14px; font-size: 14px; }

/* zoznam ponúk: stavy a vlastník v jednom riadku, pokojnejšie riadky */
.ov .crm-dviews { align-self: flex-start; }
.ov-filterbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 16px; }
.ov-filterbar .ov-tabs { margin: 0; }
.ov-filterbar .ov-ownerf { display: flex; align-items: center; gap: 8px; margin: 0; }
.ov-filterbar .ov-ownerf label { margin: 0; padding: 0; font-weight: 600; }
.ov-filterbar .ov-ownerf select { width: auto; min-width: 180px; height: 34px; margin: 0; padding: 0 10px; border: 1px solid var(--in); border-radius: 8px; font: inherit; font-size: 13.5px; background: #fff; }
.ov-table td { padding: 12px 12px; font-size: 14px; }
.ov-table th { padding: 10px 12px; }
.ov-next { color: var(--text); }
.ov-next.t-warn, .ov-next.t-ok { color: var(--text); }
.ov-next.t-warn::before, .ov-next.t-ok::before { content: ""; display: inline-block; width: 7px; height: 7px; margin: 0 7px 1px 0; border-radius: 50%; background: var(--soon); }
.ov-next.t-ok::before { background: var(--ok); }
.ov-rnlink { color: var(--muted); font-size: 12.5px; text-decoration: none; }
.ov-rnlink:hover { color: var(--accent); text-decoration: underline; }
.ov-chip-rn { background: var(--line2); color: var(--muted); }
.ov-table .ov-btn-sm.ov-btn-navy { background: var(--accentbg); border-color: transparent; color: var(--accent2) !important; }
.ov-table .ov-btn-sm.ov-btn-navy:hover { background: #D5E0F6; border-color: transparent; color: var(--accent2) !important; }
/* mobil: riadky ponúk ako karty namiesto tabuľky posúvanej do strany */
@media (max-width: 760px) {
	.ov-scroll:has(> .ov-qtable) { overflow: visible; }
	.ov-qtable thead { display: none; }
	.ov-qtable, .ov-qtable tbody { display: block; }
	.ov-qtable tr { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 4px 12px; padding: 12px 14px; border-bottom: 1px solid var(--line); }
	.ov-qtable td { display: block; padding: 0; border: 0; font-size: 14px; }
	.ov-qtable td:nth-child(1) { grid-column: 1; grid-row: 1; }
	.ov-qtable td:nth-child(2) { grid-column: 1 / -1; }
	.ov-qtable td:nth-child(3) { grid-column: 1 / -1; }
	.ov-qtable td.r { grid-column: 2; grid-row: 1; display: flex; gap: 6px; align-items: flex-start; }
	.ov-qtable td.ov-empty { grid-column: 1 / -1; }
	.ov-filterbar .ov-ownerf { width: 100%; }
	.ov-filterbar .ov-ownerf select { flex: 1 1 auto; }
}
@media (max-width: 760px) { .ov-qtable td:nth-child(6) { grid-column: 1 / -1; } }
/* prehľad ponúk: karty „Na dnes“ len také vysoké, ako treba; farbu nesie štítok, nie hrubý pruh */
.ov-grid { align-items: start; }
.ov-today { border-top: 1px solid var(--line); border-radius: 12px; padding: 18px 20px; position: relative; overflow: hidden; }
.ov-today::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 3px; background: var(--c); opacity: .55; }
.ov-tpill { color: color-mix(in srgb, var(--c) 62%, #000); }
.ov-tt { font-size: 15px; }
a.ov-tt:hover { color: var(--accent) !important; }
.ov-today .ov-btn-sm.ov-btn-navy, .ov-ev .ov-btn-sm.ov-btn-navy { background: var(--accentbg); border-color: transparent; color: var(--accent2) !important; }
.ov-today .ov-btn-sm.ov-btn-navy:hover, .ov-ev .ov-btn-sm.ov-btn-navy:hover { background: #D5E0F6; color: var(--accent2) !important; }
.ov-tile b { font-size: 28px; font-weight: 800; color: var(--navy); }
.ov-tile { box-shadow: inset 0 -3px 0 var(--c); }
.ov-seg-mode button.on.m-trial { background: var(--soon); }
/* dlhé stránky nastavení: skoky na jednotlivé časti */
.crm-anchors { position: sticky; top: var(--stick); z-index: 15; display: flex; gap: 4px; overflow-x: auto; scrollbar-width: none; margin: 4px -28px 16px; padding: 8px 28px; background: rgba(243,245,249,.95); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); border-bottom: 1px solid var(--line); }
.crm-anchors::-webkit-scrollbar { display: none; }
.crm-anchors a { flex: none; padding: 6px 12px; border-radius: 999px; font-size: 13.5px; font-weight: 600; color: var(--muted); text-decoration: none; white-space: nowrap; }
.crm-anchors a:hover { background: #fff; color: var(--text); }
.cq-card[id], .cq [id].cq-card { scroll-margin-top: calc(var(--stick) + 64px); }
@media (max-width: 960px) { .crm-anchors { margin: 4px -14px 12px; padding: 8px 14px; } }
/* ponuky: fáza ako neutrálny štítok s farebnou bodkou (farba z číselníka fáz) */
.crm-phase { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; font-weight: 600; color: var(--text); white-space: nowrap; }
.crm-phase i { width: 8px; height: 8px; border-radius: 50%; flex: none; }
/* kanban: „Výhra“ a „Prehra“ len počas ťahania, plávajú vpravo dole a nezakrývajú stĺpce */
.crm-kend { display: none; }
.crm-kanban.is-dragging .crm-kend { display: flex; position: fixed; right: 24px; bottom: 24px; z-index: 60; width: 180px; flex-direction: column; gap: 10px; }
.crm-kanban.is-dragging .crm-kend .crm-kdrop { min-height: 72px; box-shadow: 0 10px 28px rgba(16,24,48,.22); }
.crm-kanban.is-dragging .crm-kdrop:not(.is-drop) { background: #fff; }
/* karta ponuky na mobile: fázy sa posúvajú do strany, nie skracujú na „Prij… Zač…“ */
@media (max-width: 700px) {
	.crm-stages { overflow-x: auto; scrollbar-width: none; }
	.crm-stages::-webkit-scrollbar { display: none; }
	.crm-stages button { flex: 0 0 auto; min-width: max-content; padding: 0 16px 0 18px; }
	.crm-stages button span { overflow: visible; text-overflow: clip; }
}
.crm-items td { vertical-align: middle; }
/* produkty: rovnaké šírky stĺpcov vo všetkých kategóriách */
.crm-prod-tbl { table-layout: fixed; width: 100%; }
.crm-prod-tbl col.c-code { width: 90px; } .crm-prod-tbl col.c-price { width: 170px; } .crm-prod-tbl col.c-cost { width: 110px; }
.crm-prod-tbl col.c-dph { width: 70px; } .crm-prod-tbl col.c-line { width: 120px; } .crm-prod-tbl col.c-act { width: 48px; }
.crm-prod-tbl td { overflow-wrap: anywhere; }
@media (max-width: 700px) { .crm-prod-tbl { table-layout: auto; } }
.crm-tile > small { display: block; margin-top: 2px; font-size: 12.5px; }
/* nastavenia – číselníky: názov dostane miesto aj na mobile */
.crm-cl th.crm-cl-sort { width: 76px; } .crm-cl th.crm-cl-color { width: 84px; } .crm-cl th.crm-cl-act { width: 80px; }
.crm-cl td input[type=number] { width: 64px; }
@media (max-width: 700px) {
	.crm-cl th.crm-cl-sort { width: 48px; } .crm-cl th.crm-cl-color { width: 44px; } .crm-cl th.crm-cl-act { width: 54px; }
	.crm-cl td input[type=number] { width: 44px; padding: 0 4px; }
	.crm-cl td, .crm-cl th { padding-left: 4px; padding-right: 4px; }
}
.crm a.crm-plain { color: var(--text); font-weight: 400; text-decoration: none; }
.crm a.crm-plain:hover { color: var(--accent); text-decoration: underline; }
/* formulár nového klienta: skupiny polí */
.crm-fgh { grid-column: 1 / -1; margin: 14px 0 -2px; padding-top: 14px; border-top: 1px solid var(--line2); font-size: 15px; font-weight: 700; color: var(--navy); }
.crm-fgh:first-child { margin-top: 0; padding-top: 0; border-top: 0; }
/* aktivita: počet opakovaní len keď sa opakuje */
.crm-dt:has(select[name=recur] option[value=""]:checked) input[name=recur_every] { display: none; }
/* detail aktivity na mobile: fakty v dvoch stĺpcoch */
@media (max-width: 700px) { .crm-facts { grid-template-columns: 1fr 1fr; } }
.crm-dviews { max-width: 100%; box-sizing: border-box; }
@media (max-width: 760px) {
	.ed-bar { position: static; margin-bottom: 10px; }
	.ed-title { font-size: 21px; }
	.ed-tabs { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; -webkit-mask-image: linear-gradient(90deg, #000 88%, transparent); mask-image: linear-gradient(90deg, #000 88%, transparent); }
	.ed-tabs::-webkit-scrollbar { display: none; }
	.ed-tabs a { flex: none; white-space: nowrap; }
	.cq-actions { padding: 8px 10px; gap: 6px; }
	.cq-actions > button, .cq-actions > .btn, .cq-actions > a.btn { flex: 1 1 auto; margin: 0; padding: 8px 10px; font-size: 13.5px; }
}
.crm-ph h1, body.shell .container > h1, body.shell .container > form > h1 { margin: 0; font-size: 26px; font-weight: 800; color: var(--navy); line-height: 1.2; letter-spacing: -.005em; }
body.shell .container > h1 { margin-bottom: 16px; }
.crm-ph + .crm-anchors { margin-top: 12px; }
@media (max-width: 760px) { .crm-ph h1, body.shell .container > h1 { font-size: 22px; } }
/* jedna farba pre hlavnú akciu: aj „Uložiť“, „Založiť…“ (crm-btn-p) sú modré ako „Nový…“ */
.crm-btn-p, .crm button.crm-btn-p { background: var(--accent); border-color: var(--accent); }
.crm-btn-p:hover, .crm button.crm-btn-p:hover { background: var(--accent2); border-color: var(--accent2); }
/* v riadkoch zoznamov jemné modré tlačidlo – plné modré len raz na stránke */
.crm-dq-a .crm-btn-s.crm-btn-p, .crm-table .crm-btn-s.crm-btn-p { background: var(--accentbg); border-color: transparent; color: var(--accent2) !important; }
.crm-dq-a .crm-btn-s.crm-btn-p:hover, .crm-table .crm-btn-s.crm-btn-p:hover { background: #D5E0F6; color: var(--accent2) !important; }
.crm-dq-a .crm-ibtn, .crm-dq-a a.crm-ibtn { font-size: 13px; }
/* tabuľky: vedľajšie odkazy (klient v zozname aktivít, ponúk…) tmavomodré, nie výrazne modré */
.crm-table td > a:not(.crm-strong):not(.crm-btn):not(.crm-ibtn):not(.crm-plain), .crm-table td > .crm-tcell a:not(.crm-strong) { color: var(--navy2); font-weight: 500; }
.crm-table td > a:not(.crm-strong):not(.crm-btn):not(.crm-ibtn):not(.crm-plain):hover { color: var(--accent); }
.crm-acts-tbl th:nth-child(2) { width: 28%; }
/* zoznam aktivít na počítači: klient a kategória začínajú pod sebou */
@media (min-width: 761px) { .crm-act-m > span:first-child { min-width: 196px; } }
@media (max-width: 760px) { .crm-act-m > span:first-child { flex-basis: 100%; } }
/* odkazovník na mobile: pripnúť/zmazať v rohu, hlavička ostane v jednom riadku */
@media (max-width: 760px) {
	.crm-bd-msg .crm-note-b, .crm-bd-msg { position: relative; }
	.crm-bd-msg .crm-note-h { padding-right: 84px; }
	.crm-bd-msg .crm-note-a { position: absolute; top: 4px; right: 4px; margin: 0; }
}
/* kanban na mobile: stĺpce pod sebou (ťahanie prstom nefunguje, karty sa dajú otvoriť) */
@media (max-width: 760px) {
	.crm-kanban { flex-direction: column; overflow: visible; }
	.crm-kcol { flex: none; width: 100%; max-height: none; }
}
.crm-dt .crm-btn, .crm-dt button.crm-btn { height: 38px; }
.crm-cnt.is-zero { display: none; }
.crm-tabs a b.is-zero, .crm-ctabs button b.is-zero { opacity: .55; }
.crm-card .crm-empty { font-size: 13.5px; color: var(--muted); }
/* používatelia: povinné 2FA ako samostatný panel */
.us-2fa { gap: 10px 14px !important; padding: 12px 16px; background: #fff; border: 1px solid var(--line); border-radius: 12px; margin: 0; }
.us-2fa > button { margin: 0 !important; }
.us-2fa > span { flex-basis: 100%; font-size: 13px; }
/* účet: tlačidlo prístupového kľúča podľa obsahu, nie na celú šírku */
.sec-add > button.crm-btn { width: auto; justify-self: start; align-self: flex-start; }
/* štatistiky: filtre v jednom riadku, hodnoty dlaždíc bez zalomenia */
.st-filter { flex-wrap: nowrap; }
.st-filter select { height: 36px; font-size: 14px; border-color: var(--in); border-radius: 8px; }
.st-tiles .ov-tile b { font-size: 24px; white-space: nowrap; }
@media (max-width: 760px) { .st-filter { flex-wrap: wrap; justify-content: flex-start; } }
/* bez farebných pruhov po ľavom okraji kariet – stav nesie bodka a jemný podklad */
.crm-term { border-left: 1px solid var(--line); }
.crm-term.is-late { border-color: #F3C9C7; background: #FFF8F8; }
.crm-term.is-soon { border-color: #F2DDB3; background: #FFFCF5; }
.crm-term.is-ok { border-color: var(--line); }
.crm-term h4::before { content: ""; flex: none; width: 8px; height: 8px; border-radius: 50%; background: #B8C0CE; margin: 5px 0 0; order: -1; }
.crm-term h4 { justify-content: flex-start; }
.crm-term h4 > :last-child:not(:first-child) { margin-left: auto; }
.crm-term.is-late h4::before { background: var(--late); }
.crm-term.is-soon h4::before { background: #E69A1C; }
.crm-term.is-ok h4::before { background: var(--ok); }
.crm-term.is-off { border-left-style: dashed; }
.pr-web { border-left: 1px solid #BFE3CF; background: #F4FBF7; }
.pr-web.is-bad { border-color: #F0D9A8; background: #FFFBF2; }
.us-invite { border-left: 1px solid #F0D9A8; background: #FFFBF2; }
.us-live { border-left-color: #C9D3E6; background: #F6F8FC; }
.us-live.is-on { border-left-color: #A9D8BC; background: #F1FAF4; }
.us-inv1 { display: block; margin: 3px 0 0; }
.us-inv1 .us-link { padding: 0; font-weight: 600; }
.us-vis textarea { display: block; width: 100%; max-width: 420px; margin-top: 6px; min-height: 0; }
.crm-sf-late-card { border-left: 1px solid #F3C9C7; background: #FFF8F8; }
body .up-sendcard { border-left: 1px solid var(--line); }
/* majáčik nad spodnou lištou s tlačidlami */
body:has(.pr-save) .fb-beacon, body:has(.cq-actions:not(.ed-act-side)) .fb-beacon { bottom: 96px; }
@media (max-width: 760px) { body:has(.pr-save) .fb-beacon, body:has(.cq-actions:not(.ed-act-side)) .fb-beacon { bottom: calc(134px + env(safe-area-inset-bottom)); } }
table.cq-svc b.svc-same { font-weight: 400; color: var(--muted); font-size: 13px; }
/* prázdne vedľajšie karty: len nadpis s tlačidlom „+“, bez riadku „Bez …“ */
.crm-side > .crm-card.is-empty { padding-top: 12px; padding-bottom: 12px; }
.crm-side > .crm-card.is-empty .crm-card-h { margin-bottom: 0; }
.crm-side > .crm-card.is-empty .crm-empty { display: none; }
.crm-side > .crm-card.is-empty h2 { color: var(--muted); }
.crm-kcard .crm-av { color: #fff; font-size: 10px; }
.crm-month-d.is-out .crm-month-n { color: #646C80; }
.crm-dviews { align-self: flex-start; width: fit-content; }
/* zoznam ponúk na mobile: stavy v jednom posúvanom riadku */
@media (max-width: 760px) {
	.ov-filterbar .ov-tabs { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; margin: 0 -14px; padding: 0 14px 2px; -webkit-mask-image: linear-gradient(90deg, #000 88%, transparent); mask-image: linear-gradient(90deg, #000 88%, transparent); }
	.ov-filterbar .ov-tabs::-webkit-scrollbar { display: none; }
	.ov-filterbar .ov-tab { flex: none; }
}
/* nový klient: formulár primeranej šírky (polia na celých 1 200 px sa zle čítajú) */
form.crm-card[data-autolookup] { max-width: 980px; }
/* dotykové zariadenia: žiadne „zaseknuté“ podčiarknutie po ťuknutí */
@media (hover: none) {
	.crm-act-t:hover, .crm-table a.crm-strong:hover { text-decoration: none; }
	.crm-act-t:hover { color: var(--text) !important; }
}
/* klienti na mobile: rýchle filtre v jednom posúvanom riadku; v karte bez IČO a bez bežného stavu „Aktuálny“ */
@media (max-width: 760px) {
	.crm-svcnav { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; margin-left: -14px; margin-right: -14px; padding: 0 14px 2px; -webkit-mask-image: linear-gradient(90deg, #000 88%, transparent); mask-image: linear-gradient(90deg, #000 88%, transparent); }
	.crm-svcnav::-webkit-scrollbar { display: none; }
	.crm-svcnav > * { flex: none; white-space: nowrap; }
	.crm-coltable.crm-resp td[data-col="reg_number"] { display: none; }
	.crm-coltable.crm-resp td[data-col="state"]:has(> .crm-state-plain:only-child) { display: none; }
}
/* formuláre na mobile: voľba v samostatnom riadku, „Zrušiť“ a „Uložiť“ vedľa seba cez celú šírku */
@media (max-width: 760px) {
	.crm-actions:has(> .crm-left) > .crm-left { flex-basis: 100%; margin: 0 0 4px; }
	.crm-actions > .crm-btn { flex: 1 1 0; height: 44px; }
	.crm-actions > .crm-btn-p, .crm-actions > button.crm-btn-p { flex: 2 1 0; }
}
.cq-add .cap { color: var(--muted); }
/* pracovné karty: „Zavrieť všetky“ na konci pásu (zobrazí sa pri 2 a viac kartách) */
.wtabs-all, body.shell button.wtabs-all { flex: 0 0 auto; display: inline-flex; align-items: center; gap: 5px; margin: 6px 0 6px 6px; padding: 0 10px; min-height: 0; height: 28px; border: 0; border-left: 1px solid var(--line); border-radius: 0; background: transparent; color: var(--muted); font: inherit; font-size: 12.5px; font-weight: 600; white-space: nowrap; cursor: pointer; }
.wtabs-all svg { width: 13px; height: 13px; }
.wtabs-all:hover, body.shell button.wtabs-all:hover { color: var(--late); background: transparent; }
.wtabs-all[hidden] { display: none !important; }
@media (max-width: 1100px) { .wtabs-all span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); } .wtabs-all { padding: 0 8px; } }
.wt-sheet-all { width: 100%; margin-top: 12px; justify-content: center; color: var(--late) !important; }
.wt-sheet-all[hidden] { display: none !important; }

/* =====================================================================
   MOBIL AKO APLIKÁCIA (html.mn) – po porovnaní pred/po zapnuté pre všetkých (trieda mn je na <html> vždy)
   ===================================================================== */

/* bez modrého záblesku pri ťuknutí – reakciu dáva stlačenie (:active) */
html.mn, html.mn body.shell { -webkit-tap-highlight-color: transparent; -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
/* výška podľa viditeľnej časti displeja (lišta prehliadača sa skrýva a ukazuje) */
html.mn body.shell .page { min-height: 100dvh; }
html.mn .crm-mdl-cal, html.mn .crm-mdl-main { max-height: calc(100dvh - 140px); }
@media (max-width: 760px) { html.mn details.top-bell .bell-menu { max-height: calc(100dvh - 140px); } }
/* iPhone/iPad nezväčší stránku pri písaní do poľa (zväčšuje pod 16 px) – na mobile už platí, toto pridáva tablety */
@media (pointer: coarse) {
	html.mn input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]):not([type=file]),
	html.mn select, html.mn textarea, html.mn .crm-rte [contenteditable] { font-size: 16px !important; }
}
/* okamžitá reakcia na ťuknutie (bez čakania na dvojité ťuknutie) */
html.mn a, html.mn button, html.mn summary, html.mn label, html.mn [role=button], html.mn [data-href], html.mn select { touch-action: manipulation; }
/* ovládacie prvky: dlhé podržanie neoznačí text tlačidla ani neotvorí ponuku odkazu */
html.mn button, html.mn .crm-btn, html.mn .ov-btn, html.mn .btn, html.mn summary, html.mn .tabbar a, html.mn .crm-pills a, html.mn .crm-svcchip, html.mn .crm-tabs a,
html.mn .crm-ctabs button, html.mn .wt, html.mn .ov-tab, html.mn .crm-dviews a, html.mn .crm-hero-quick a, html.mn .crm-ibtn { -webkit-user-select: none; user-select: none; -webkit-touch-callout: none; }
/* stlačenie viditeľné hneď pri dotyku */
html.mn .crm-btn, html.mn .ov-btn, html.mn .btn, html.mn .crm-ibtn, html.mn .crm-hero-quick a, html.mn .tabbar a, html.mn .crm-pills a, html.mn .crm-svcchip, html.mn .ov-tab { transition: transform .1s cubic-bezier(.2, .8, .2, 1), background-color .1s, border-color .1s, color .1s; }
html.mn .crm-btn:active, html.mn .ov-btn:active, html.mn .btn:active, html.mn .crm-hero-quick a:active, html.mn .crm-pills a:active, html.mn .crm-svcchip:active, html.mn .ov-tab:active { transform: scale(.97); }
html.mn .crm-ibtn:active { background: var(--line2); }
html.mn .tabbar a:active { background: var(--line2); }
html.mn .crm-table.crm-resp tbody tr:active, html.mn .crm-acts > .crm-act:active, html.mn .crm-sres a:active, html.mn .crm-notify li a:active, html.mn .crm-kcard:active, html.mn .ov-qtable tr:active { background: #EEF2F8; }
/* na dotyku sa „prejdenie myšou“ nezasekne po ťuknutí – vrátiť pokojový vzhľad */
@media (hover: none) {
	html.mn .crm-btn:not(:active):hover, html.mn .crm button.crm-btn:not(:active):hover { background: #fff; border-color: var(--in); }
	html.mn .crm-btn-g:not(:active):hover, html.mn .crm button.crm-btn-g:not(:active):hover { background: transparent; border-color: transparent; }
	html.mn .crm-btn-r:not(:active):hover, html.mn .crm-btn-p:not(:active):hover, html.mn .crm button.crm-btn-r:not(:active):hover, html.mn .crm button.crm-btn-p:not(:active):hover { background: var(--accent); border-color: var(--accent); }
	html.mn .crm-btn-ok:not(:active):hover, html.mn .crm button.crm-btn-ok:not(:active):hover { background: var(--ok); border-color: var(--ok); }
	html.mn .crm-ibtn:not(:active):hover, html.mn .crm button.crm-ibtn:not(:active):hover { background: transparent; color: var(--muted) !important; }
	html.mn .crm-pills a:not(.on):hover, html.mn .crm-pills button:not(.on):hover { border-color: var(--line) !important; color: var(--muted) !important; }
	html.mn .crm .crm-svcchip:not(.on):hover { background: #fff; border-color: var(--line) !important; }
	html.mn .crm-kcard:hover, html.mn .crm a.crm-kcard:hover { border-color: var(--line); }
	html.mn a.crm-tile:hover { border-color: var(--line); box-shadow: none; }
	html.mn .ov-btn:not(.ov-btn-navy):not(.ov-btn-red):not(:active):hover { background: #fff; border-color: var(--in); }
	html.mn .ov-btn-navy:not(:active):hover, html.mn .ov-btn-red:not(:active):hover { background: var(--accent); border-color: var(--accent); }
	html.mn .ov-table .ov-btn-sm.ov-btn-navy:not(:active):hover { background: var(--accentbg); }
	html.mn .crm-sres a:hover, html.mn .crm-notify li:not(.is-new) a:hover { background: transparent; }
	html.mn .crm a:hover { text-decoration-color: color-mix(in srgb, currentColor 30%, transparent); }
	html.mn .tabbar a:hover { background: transparent; }
}
/* posúvanie vo vnútri okien, zoznamov a menu neťahá celú stránku */
html.mn dialog.crm-dlg, html.mn .crm-dlg-b, html.mn .gs-list, html.mn .bell-menu, html.mn .crm-kcol-b,
html.mn .ed-side, html.mn body.shell .side, html.mn .crm-mdl-cal, html.mn .crm-mdl-main, html.mn .crm-dd-m, html.mn .ed-more-m, html.mn .it-prod-list, html.mn .cac-list { overscroll-behavior: contain; }
/* obaly, ktoré sa posúvajú len do strany (tabuľky, záložky): zvislé posúvanie myšou / touchpadom nad nimi posúva stránku
   (Miško 24. 10. 2026: „na Macu skroluje len, keď mám kurzor na posuvníku“ – contain na oboch osiach zastavil posun stránky nad tabuľkou) */
html.mn .wtabs-l, html.mn .crm-scroll, html.mn .ov-scroll { overscroll-behavior-x: contain; overscroll-behavior-y: auto; }
/* vodorovné pásy (dlaždice, záložky, filtre): posun prstom do strany s prichytením */
html.mn .crm-tiles, html.mn .crm-ctabs, html.mn .crm-tabs, html.mn .crm-svcnav, html.mn .ov-filterbar .ov-tabs, html.mn .crm-dviews { overscroll-behavior-x: contain; scroll-snap-type: x proximity; }
html.mn .crm-ctabs > *, html.mn .crm-tabs > a, html.mn .crm-svcnav > *, html.mn .ov-filterbar .ov-tab { scroll-snap-align: start; }
/* na ležato: obsah mimo výrezu displeja */
@media (max-width: 960px) { html.mn body.shell .page { padding-left: env(safe-area-inset-left, 0px); padding-right: env(safe-area-inset-right, 0px); } }

/* =====================================================================
   NAJHORŠIE DÁTA 10/2026 – dlhé kategórie, fázy, mená, e-maily a kódy nerozbijú rozloženie
   ===================================================================== */
/* kategória a fáza: v tabuľkách a na kartách sa zalomí (bodka pri prvom riadku), v riadkoch aktivít sa skráti – celý názov v title */
.crm-cat, .crm-phase { white-space: normal; align-items: flex-start; min-width: 0; max-width: 100%; }
.crm-cat > span, .crm-phase > span { min-width: 0; overflow-wrap: break-word; }   /* break-word: stĺpec tabuľky sa kvôli tomu nezúži */
.crm-table td:has(> .crm-phase) { min-width: 170px; }
.crm-cat i { margin-top: calc((1.42em - 10px) / 2); }
.crm-phase i { margin-top: calc((1.42em - 8px) / 2); }
.crm-act-m .crm-cat, .crm-kcard .crm-cat { align-items: center; }
.crm-act-m .crm-cat i, .crm-kcard .crm-cat i { margin-top: 0; }
.crm-act-m .crm-cat > span, .crm-kcard .crm-cat > span { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
/* klient v riadku aktivity: jeden riadok so skrátením (celý názov v title), nie 4 riadky v úzkom stĺpci */
.crm-act-m .crm-act-c { display: inline-flex; align-items: center; gap: 4px; min-width: 0; max-width: 100%; }
.crm-act-m .crm-act-c > svg { flex: none; }
.crm-act-m .crm-act-c > span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.crm-act-m > span { max-width: 100%; }
/* nástenka: dnešný program najviac 8 udalostí, zvyšok po rozbalení */
.crm-bd-more { margin-top: 2px; }
.crm-bd-more > summary { list-style: none; cursor: pointer; padding: 8px 0 2px; font-size: 13px; font-weight: 700; color: var(--accent); }
.crm-bd-more > summary::-webkit-details-marker { display: none; }
.crm-bd-more > summary::after { content: " ↓"; }
.crm-bd-more[open] > summary::after { content: " ↑"; }
@media (hover: hover) and (pointer: fine) { .crm-bd-more > summary:hover { text-decoration: underline; } }
/* vlastník a technik v zozname klientov: dlhé meno sa zalomí a neodtlačí stĺpce doprava */
.crm-table td.crm-ownercol { min-width: 150px; }
.crm-ownercol .crm-who { align-items: flex-start; }
/* e-mail bez medzier (ponuky) a dlhé zložené slovo v nadpise (karta klienta ponúk) sa zalomia */
.ov-brk { overflow-wrap: anywhere; }
.ov-kv > span:first-child { flex: none; white-space: nowrap; }   /* popis „E-mail“ sa pri dlhej adrese nezalomí na „E-/mail“ */
.ov-head > div:first-child { min-width: 0; max-width: 100%; }
.ov-head h1 { overflow-wrap: anywhere; -webkit-hyphens: auto; hyphens: auto; }
/* ponuky: stĺpec „Ďalší krok“ nesmie byť stlačený na tri slová na riadok */
@media (min-width: 761px) { .ov-table td.ov-nextcol { min-width: 180px; } }
/* produkty: dlhý kód najviac na dva riadky (celý v title) */
.crm-prod-tbl col.c-code { width: 130px; }
.crm-prod-code { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; line-clamp: 2; overflow: hidden; overflow-wrap: anywhere; }
/* kalendár: viacdňová udalosť v každom dni, pokračovanie s prerušovaným okrajom */
.crm-ev.is-multi small { display: block; font-weight: 500; opacity: .85; }
.crm-ev.is-cont { border-left-style: dashed; }
.crm-ev.is-cont b::before { content: "↳ "; font-weight: 600; opacity: .7; }
/* „s. r. o.“, „a. s.“ sa nerozdelia na dva riadky (obaľuje crm.js) */
.crm-nb { white-space: nowrap; }
/* avatar bez mena: ikonka namiesto zlých iniciál */
.crm-av svg { display: block; }

/* =====================================================================
   VYLEPŠENIA POCITU Z POUŽÍVANIA (html.ee-*) – po vyskúšaní v deme zapnuté pre všetkých (triedy sú na <html> vždy)
   ===================================================================== */
:root { --ease-out: cubic-bezier(.23, 1, .32, 1); --ease-drawer: cubic-bezier(.32, .72, 0, 1); }

/* 1) okná: otvoria sa plynulo z mierneho zmenšenia, zatvoria rýchlejšie; na mobile sa vysunú zdola ako na iPhone */
html.ee-dlg dialog.crm-dlg { opacity: 0; transform: scale(.97); transition: opacity .14s ease-out, transform .14s ease-out, overlay .14s allow-discrete, display .14s allow-discrete; }
html.ee-dlg dialog.crm-dlg[open] { opacity: 1; transform: none; transition: opacity .2s var(--ease-out), transform .2s var(--ease-out), overlay .2s allow-discrete, display .2s allow-discrete; }
@starting-style { html.ee-dlg dialog.crm-dlg[open] { opacity: 0; transform: scale(.96); } }
html.ee-dlg dialog.crm-dlg::backdrop { background-color: rgba(10,16,35,0); transition: background-color .14s ease-out, overlay .14s allow-discrete, display .14s allow-discrete; }
html.ee-dlg dialog.crm-dlg[open]::backdrop { background-color: rgba(10,16,35,.45); transition: background-color .2s ease-out, overlay .2s allow-discrete, display .2s allow-discrete; }
@starting-style { html.ee-dlg dialog.crm-dlg[open]::backdrop { background-color: rgba(10,16,35,0); } }
@media (max-width: 760px) {
	html.ee-dlg dialog.crm-dlg { opacity: 1; transform: translateY(100%); transition: transform .24s var(--ease-drawer), overlay .24s allow-discrete, display .24s allow-discrete; }
	html.ee-dlg dialog.crm-dlg[open] { transform: none; transition: transform .34s var(--ease-drawer), overlay .34s allow-discrete, display .34s allow-discrete; }
	@starting-style { html.ee-dlg dialog.crm-dlg[open] { opacity: 1; transform: translateY(100%); } }
}

/* 2) rozbaľovacie menu (+ Nový, ⋯, Viac, zvonček, akcie): rozbalí sa z miesta tlačidla */
html.ee-menu details[open] > .crm-dd-m, html.ee-menu details[open] > .gear-menu, html.ee-menu details[open] > .ov-menu, html.ee-menu details[open] > .ed-more-m {
	transform-origin: top right; transition: opacity .15s var(--ease-out), transform .15s var(--ease-out); }
html.ee-menu details[open] > .crm-dd-m.crm-dd-l { transform-origin: top left; }
@starting-style {
	html.ee-menu details[open] > .crm-dd-m, html.ee-menu details[open] > .gear-menu, html.ee-menu details[open] > .ov-menu, html.ee-menu details[open] > .ed-more-m { opacity: 0; transform: scale(.96) translateY(-4px); }
}

/* 3) „Mám hotovo“: krúžok sa hneď vyplní zelenou s fajkou a názov sa prečiarkne – ešte kým sa stránka obnoví */
html.ee-done .crm-act:has(.crm-act-q button[data-locked]) .crm-ibtn-ok { opacity: 1 !important; color: #fff !important; }
html.ee-done .crm-act:has(.crm-act-q button[data-locked]) .crm-ibtn-ok::before { background: var(--ok); border-color: var(--ok); transform: scale(1.08); transition: background .12s var(--ease-out), border-color .12s, transform .16s var(--ease-out); }
html.ee-done .crm-act:has(.crm-act-q button[data-locked]) .crm-act-t { text-decoration: line-through; text-decoration-color: color-mix(in srgb, currentColor 55%, transparent); color: var(--muted) !important; }
html.ee-done .crm-act:has(.crm-act-q button[data-locked]) .crm-act-b { opacity: .6; transition: opacity .16s ease-out; }
html.ee-done .crm-ibtn-ok:active::before { transform: scale(.9); }

/* 4) ukladanie: tlačidlo po kliknutí ukáže koliesko (dvakrát sa kliknúť nedá ani doteraz) */
html.ee-busy :is(.crm-btn, .ov-btn, .btn, button:not([class]))[data-locked] { opacity: 1 !important; cursor: progress; }
html.ee-busy :is(.crm-btn, .ov-btn, .btn, button:not([class]))[data-locked]::before { content: ""; flex: none; display: inline-block; width: 13px; height: 13px; margin-right: 7px; vertical-align: -2px; border: 2px solid currentColor; border-right-color: transparent; border-radius: 50%; animation: crm-spin .6s linear infinite; }
html.ee-busy :is(.crm-btn, .ov-btn, .btn)[data-locked] > svg { display: none; }
html.ee-busy :is(.crm-btn, .ov-btn)[data-locked]::before { margin-right: 0; }   /* tieto tlačidlá majú medzeru (gap) */

/* 5) hlásenia: prídu zdola pružnejšie, odídu rýchlejšie, pod myšou ostanú (časovač v crm.js) */
html.ee-toast .crm-toasts .crm-flash { animation: crm-toast-in2 .32s var(--ease-out); }
@keyframes crm-toast-in2 { from { opacity: 0; transform: translateY(14px) scale(.98); } }

/* 6) bočné menu na mobile: vysunutie s krivkou ako na iPhone, pozadie stmavne plynulo, zavrie sa potiahnutím doľava */
@media (max-width: 960px) {
	html.ee-side body.shell .side { transition: transform .26s var(--ease-drawer), visibility 0s linear .26s; }
	html.ee-side body.side-open .side { transition: transform .34s var(--ease-drawer), visibility 0s; }
	html.ee-side body.shell .side.is-swiping { transition: none; }
	html.ee-side body.shell .side-dim { display: block; position: fixed; inset: 0; background: rgba(10,16,35,.45); z-index: 55; opacity: 0; visibility: hidden; transition: opacity .26s ease-out, visibility 0s linear .26s; }
	html.ee-side body.side-open .side-dim { opacity: 1; visibility: visible; transition: opacity .34s ease-out, visibility 0s; }
	html.ee-side body.side-open .side, html.ee-side body.side-open .side * { touch-action: pan-y; }   /* vodorovný švih patrí zatváraniu menu */
}

/* 7) pokojnejšie pulzovanie: oranžové tlačidlo spätnej väzby zapulzuje len 3× po načítaní, zelená bodka „naživo“ pomalšie */
html.ee-calm .fb-pulse { animation-iteration-count: 3; }
html.ee-calm .crm-bd-live { animation-duration: 4s; }

/* 8) zalamovanie textu: nadpisy vyvážene (nie jedno slovo na druhom riadku), odseky bez osamelého slova na konci */
html.ee-type :is(h1, h2, h3, .crm-act-t, .crm-hero h1) { text-wrap: balance; }
html.ee-type :is(p, .crm-act-p, .crm-sub, .ov-lead, .crm-empty) { text-wrap: pretty; }
html.ee-type .ov-table td { font-variant-numeric: tabular-nums; }

@media (prefers-reduced-motion: reduce) {
	html.ee-dlg dialog.crm-dlg, html.ee-dlg dialog.crm-dlg[open] { transform: none !important; }
	html.ee-menu details[open] > * { transform: none !important; }
	html.ee-side body.shell .side, html.ee-side body.side-open .side { transition-duration: 0s; }
	html.ee-toast .crm-toasts .crm-flash { animation: none; }
}

/* diskusia z Raynetu: komentáre pod svojím príspevkom */
.crm-notes > .crm-note.is-reply { margin-left: 40px; padding-top: 8px; border-top: 0; }
.crm-notes > .crm-note.is-reply .crm-note-b { border-left: 2px solid var(--line2); padding-left: 10px; margin-left: -6px; }
@media (max-width: 760px) { .crm-notes > .crm-note.is-reply { margin-left: 20px; } }

/* zlúčenie klientov (?page=crm_merge) */
.crm-merge-c { display: flex; flex-direction: column; gap: 4px; }
.crm-merge-c .crm-sub, .crm-merge-gi .crm-sub, .crm-merge-cands .crm-sub { display: block; }
.crm-merge-dup { border-color: #F3C7C9; }
.crm-merge-list { margin: 0 0 12px; padding-left: 20px; line-height: 1.6; }
.crm-merge-pick { flex-wrap: wrap; }
.crm-merge-pick .crm-ac { flex: 1 1 280px; min-width: 0; }
.crm-merge-h3 { margin: 18px 0 8px; font-size: 14px; }
.crm-merge-cands, .crm-merge-groups { list-style: none; margin: 0; padding: 0; }
.crm-merge-cands li, .crm-merge-gi { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 0; border-top: 1px solid var(--line2); }
.crm-merge-cands li > div, .crm-merge-gi > div { min-width: 0; overflow-wrap: anywhere; }
.crm-merge-cands .crm-btn, .crm-merge-gi .crm-btn { flex: none; }
.crm-merge-groups > li { padding: 10px 0 4px; border-top: 2px solid var(--line); }
.crm-merge-why { margin-bottom: 4px; }
.crm-merge-undo { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; margin-bottom: 12px; }


/* ===================== Pošta (inc/crm_posta.php) ===================== */
.pm { display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: 18px; align-items: start; }
.pm-side { position: sticky; top: calc(var(--top) + 52px); display: flex; flex-direction: column; gap: 12px; }
.pm-new { justify-content: center; width: 100%; }
.pm-folders { display: flex; flex-direction: column; gap: 1px; background: #fff; border: 1px solid var(--line); border-radius: var(--r); padding: 6px; }
.pm-folders a { display: flex; align-items: center; gap: 10px; padding: 7px 10px 7px calc(10px + var(--d, 0) * 14px); border-radius: 7px; color: var(--text); text-decoration: none; font-size: 14px; font-weight: 600; min-width: 0; }
.pm-folders a span { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pm-folders a .ic { flex: none; color: var(--muted); }
.pm-folders a:hover { background: var(--line2); text-decoration: none; }
.pm-folders a.on { background: var(--accentbg); color: var(--accent2); }
.pm-folders a.on .ic { color: var(--accent); }
.pm-cnt { flex: none; min-width: 20px; padding: 0 6px; border-radius: 999px; background: var(--accent); color: #fff; font-size: 11.5px; line-height: 19px; text-align: center; font-variant-numeric: tabular-nums; }
.pm-side-f { display: flex; flex-direction: column; gap: 4px; padding: 0 4px; font-size: 13px; }
.pm-side-f a, .pm-side-f button { display: inline-flex; align-items: center; gap: 6px; padding: 4px 6px; border: 0; background: none; color: var(--muted); text-decoration: none; font: inherit; cursor: pointer; border-radius: 6px; text-align: left; }
.pm-side-f a:hover, .pm-side-f button:hover { color: var(--text); background: var(--line2); text-decoration: none; }
.pm-side-f > span { padding: 4px 6px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pm-main { min-width: 0; }
.pm-bar { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; margin-bottom: 12px; }
.pm-h1 { margin: 0; font-size: 22px; line-height: 1.25; font-weight: 700; color: var(--text); }
.pm-h1-n { font-size: 15px; font-weight: 600; font-variant-numeric: tabular-nums; }
.pm-search { flex: 1 1 260px; display: flex; align-items: center; gap: 10px; max-width: 460px; background: #fff; border: 1px solid var(--in); border-radius: 999px; padding: 0 12px; }
.pm-search:focus-within { border-color: var(--blue); box-shadow: 0 0 0 3px rgba(47,95,208,.15); }
.pm-search .ic { color: var(--muted); flex: none; }
.crm .pm-search input { flex: 1; min-width: 0; border: 0 !important; box-shadow: none !important; background: transparent !important; padding: 8px 0 !important; margin: 0; font-size: 16px; outline: 0; height: auto; }
.pm-chips { display: flex; gap: 6px; margin-left: auto; }
.pm-chip { display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px; border-radius: 999px; border: 1px solid var(--line); background: #fff; color: var(--text); font-size: 13.5px; font-weight: 600; text-decoration: none; }
.pm-chip:hover { border-color: var(--in); text-decoration: none; }
.pm-chip.on { background: var(--accentbg); border-color: #c9d6f2; color: var(--accent2); }
.pm-list { background: #fff; border: 1px solid var(--line); border-radius: var(--r); overflow: hidden; }
.pm-row { display: grid; grid-template-columns: 10px minmax(120px, 210px) minmax(0, 1fr) auto 38px 76px; align-items: center; gap: 12px; padding: 10px 14px; border-top: 1px solid var(--line2); color: var(--text); text-decoration: none; font-size: 14px; min-height: 46px; }
.pm-row:first-child { border-top: 0; }
.pm-row:hover { background: #F7F9FD; text-decoration: none; }
.pm-row > * { min-width: 0; }
.pm-dot { width: 8px; height: 8px; border-radius: 50%; }
.pm-row.is-new .pm-dot { background: var(--accent); }
.pm-who { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--muted); }
.pm-row.is-new .pm-who { color: var(--text); font-weight: 700; }
.pm-subj { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pm-subj b { font-weight: 500; }
.pm-row.is-new .pm-subj b { font-weight: 700; }
.pm-snip { color: var(--muted2); }
.pm-cl { justify-self: end; }
.pm-client { display: inline-flex; align-items: center; gap: 4px; max-width: 220px; padding: 2px 8px; border-radius: 999px; background: var(--line2); color: var(--muted); font-size: 12px; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; text-decoration: none; }
.pm-client.is-stored { background: var(--okbg); color: var(--ok); }
a.pm-client:hover { text-decoration: none; filter: brightness(.97); }
.pm-att { display: inline-flex; align-items: center; gap: 2px; color: var(--muted); justify-content: flex-end; }
.pm-att small { font-size: 11px; }
.pm-date { text-align: right; color: var(--muted); font-size: 13px; white-space: nowrap; font-variant-numeric: tabular-nums; }
.pm-row.is-new .pm-date { color: var(--text); font-weight: 700; }
.pm-none { background: #fff; border: 1px solid var(--line); border-radius: var(--r); padding: 40px 16px; text-align: center; }
.pm-rbar { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-bottom: 12px; }
.pm-rbar .grow { flex: 1; }
.pm-msg { background: #fff; border: 1px solid var(--line); border-radius: var(--r); padding: 20px 22px 22px; }
.pm-msg-s { margin: 0 0 14px; font-size: 21px; line-height: 1.3; font-weight: 700; overflow-wrap: anywhere; }
.pm-msg-h { display: flex; gap: 12px; align-items: flex-start; }
.pm-msg-h .crm-av { flex: none; }
.pm-msg-hb { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; overflow-wrap: anywhere; }
.pm-msg-d { flex: none; white-space: nowrap; }
.pm-msg-cl { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 10px; margin: 14px 0 0; padding: 10px 12px; background: var(--bg); border-radius: 8px; }
.pm-atts { list-style: none; margin: 14px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.pm-atts li { display: inline-flex; align-items: center; gap: 8px; max-width: 100%; padding: 6px 6px 6px 10px; border: 1px solid var(--line); border-radius: 8px; background: #fff; }
.pm-att-n { display: inline-flex; align-items: center; gap: 6px; min-width: 0; color: var(--text); font-weight: 600; font-size: 13.5px; text-decoration: none; }
.pm-att-n span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 280px; }
.pm-att-d { display: inline-flex; padding: 5px; border-radius: 6px; color: var(--muted); }
.pm-att-d:hover { background: var(--line2); color: var(--text); }
.pm-imgs, .pm-test { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin: 14px 0 0; padding: 9px 12px; border-radius: 8px; background: var(--soonbg); color: #6b3f00; border: 1px solid #f1d9a8; font-size: 13.5px; }
.pm-test { margin: 0 0 12px; }
.pm-frame { display: block; width: 100%; height: 240px; margin-top: 16px; border: 0; background: #fff; }
.pm-text { margin-top: 16px; white-space: pre-wrap; overflow-wrap: anywhere; font-size: 14.5px; line-height: 1.55; }
.pm-text .pm-q { color: var(--muted2); }
.pm-compose { display: flex; flex-direction: column; gap: 0; padding: 6px 18px 16px; }
.pm-cf { display: grid; grid-template-columns: 100px minmax(0, 1fr); align-items: center; gap: 10px; border-bottom: 1px solid var(--line2); min-height: 46px; }
.pm-cf > label { color: var(--muted); font-size: 13.5px; font-weight: 600; margin: 0; }
.pm-cin { display: flex; align-items: center; gap: 8px; min-width: 0; }
.crm .pm-cin input { flex: 1; min-width: 0; border: 0 !important; box-shadow: none !important; padding: 10px 0; background: transparent; font-size: 16px; outline: 0; }
.pm-ccb { flex: none; border: 0; background: none; color: var(--accent); font: inherit; font-size: 13px; font-weight: 600; cursor: pointer; padding: 4px 6px; border-radius: 6px; }
.pm-ccb:hover { background: var(--accentbg); }
.pm-from { padding: 10px 0; font-size: 14.5px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pm-cbody { margin-top: 14px; }
.pm-cbody .crm-rte-area { min-height: 240px; max-height: 60vh; font-size: 15px; }
.pm-sig, .crm-rte-area .pm-sig { color: #3c4459; }
.pm-quote { margin-top: 12px; padding: 10px 12px; border-radius: 8px; background: var(--bg); display: flex; flex-direction: column; gap: 6px; }
.pm-sigbox { margin: 10px 0 0; padding: 10px 12px; border: 1px dashed var(--line); border-radius: 10px; }
.pm-sigbox:has(input:not(:checked)) .pm-sigframe { opacity: .35; }
/* náhľad podpisu: v izolovanom ráme (bez štýlov CRM, nič neprekryje stránku), zmenšený na polovicu (Miško 21. 10. 2026) */
.pm-sigframe { display: block; border: 0; width: 100%; min-width: 0; flex: 1 1 260px; height: 220px; zoom: .5; background: transparent; }
.pm-sigbox { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 6px 16px; }
.pm-sigbox .crm-chk { margin: 2px 0 0; flex: none; }
.pm-quote summary { cursor: pointer; }
.pm-quote-t { margin-top: 6px; padding-left: 10px; border-left: 3px solid var(--in); color: var(--muted); font-size: 13.5px; }
.pm-fwdatt { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 14px; }
.pm-cfoot { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; margin-top: 14px; }
.pm-cfoot .grow { flex: 1; }
.pm-file { position: relative; overflow: hidden; cursor: pointer; }
.pm-file input { position: absolute; inset: 0; opacity: 0; cursor: pointer; font-size: 0; }
.pm-files.is-err { color: var(--late); font-weight: 600; }
.pm-ccl { display: flex; align-items: center; gap: 8px; }
.pm-ccl .crm-ac { width: 240px; }
.pm-ac { z-index: 40; }
.pm-empty { max-width: 560px; margin: 40px auto; text-align: center; padding: 32px 24px; display: flex; flex-direction: column; align-items: center; gap: 10px; }
.pm-empty h2 { margin: 0; font-size: 20px; }
.pm-empty-ic { width: 56px; height: 56px; border-radius: 50%; display: grid; place-items: center; background: var(--accentbg); color: var(--accent); }
@media (max-width: 1100px) {
	.pm-row { grid-template-columns: 10px minmax(110px, 170px) minmax(0, 1fr) 34px 70px; }
	.pm-cl { display: none; }
}
@media (max-width: 860px) {
	.pm { grid-template-columns: minmax(0, 1fr); gap: 10px; }
	.pm-side { position: static; flex-direction: row; flex-wrap: wrap; align-items: center; gap: 8px; }
	.pm[data-view="read"] .pm-side, .pm[data-view="compose"] .pm-side { display: none; }   /* pri čítaní a písaní stačí „Späť“ */
	.pm-new { width: auto; }
	.pm-folders { flex-direction: row; overflow-x: auto; flex: 1 1 100%; order: 3; padding: 4px; scrollbar-width: none; }
	.pm-folders a { flex: none; padding: 7px 12px; }
	.pm-side-f { flex-direction: row; flex-wrap: nowrap; margin-left: auto; gap: 2px; }
	.pm-side-f > span, .pm-side-f a span, .pm-side-f button span { display: none; }
	.pm-side-f a, .pm-side-f button { padding: 10px; }
	.pm-side-f .ic { width: 18px; height: 18px; }
}
@media (max-width: 640px) {
	.pm-row { grid-template-columns: 8px minmax(0, 1fr) auto; grid-template-areas: "dot who date" ". subj att"; gap: 2px 10px; padding: 10px 12px; }
	.pm-dot { grid-area: dot; align-self: center; }
	.pm-who { grid-area: who; }
	.pm-date { grid-area: date; }
	.pm-subj { grid-area: subj; white-space: normal; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; font-size: 13.5px; }
	.pm-att { grid-area: att; align-self: start; }
	.pm-chips { margin-left: 0; }
	.pm-search { max-width: none; }
	.pm-msg { padding: 14px; }
	.pm-msg-h { flex-wrap: wrap; }
	.pm-msg-d { width: 100%; padding-left: 48px; }
	.pm-cf { grid-template-columns: 72px minmax(0, 1fr); }
	.pm-ccl { width: 100%; }
	.pm-ccl .crm-ac { flex: 1; width: auto; }
	.pm-cfoot [data-pm-send] { width: 100%; justify-content: center; }
	.pm-rbar { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)) auto; }
	.pm-rbar > :first-child { grid-column: 1 / -1; justify-self: start; }
	.pm-rbar > .pm-h1 { grid-column: 1 / -1; }
	.pm-rbar .grow { display: none; }
	.pm-rbar .crm-btn { justify-content: center; padding-left: 6px; padding-right: 6px; }
}
@media (hover: hover) and (pointer: fine) { .pm-row:hover .pm-subj b { color: var(--accent2); } }

/* Dochádzka: rýchly príchod / odchod na Nástenke (ostatné štýly v inc/att_lib.php → att_css) */
form.att-bd { display: inline; }
.crm .crm-btn.att-b-in { background: #1A7F4B; border-color: #1A7F4B; color: #fff !important; }
.crm .crm-btn.att-b-out { background: #C2312F; border-color: #C2312F; color: #fff !important; }
.crm .crm-btn.att-b-in small, .crm .crm-btn.att-b-out small { font-weight: 600; opacity: .85; }

/* automatické ukladanie polí ([data-as]) a „Vrátiť späť“ v hlásení */
.crm .crm-flash-undo { border: 0; background: rgba(255,255,255,.7); color: inherit; font: inherit; font-size: 13.5px; font-weight: 800; padding: 3px 10px; border-radius: 7px; cursor: pointer; text-decoration: underline; white-space: nowrap; }
.as-tip { display: block; min-height: 0; font-size: 12px; font-weight: 700; color: var(--muted); }
.as-tip:empty { display: none; }
[data-as-st="ok"] > .as-tip { color: var(--ok); }
[data-as-st="err"] > .as-tip { color: var(--late); }
[data-as-st="err"] input, [data-as-st="err"] select, [data-as-st="err"] textarea { border-color: var(--late) !important; }
[data-as-st="saving"] input, [data-as-st="saving"] select, [data-as-st="saving"] textarea { border-color: var(--accent) !important; }

/* ===================== Autá a tankovanie (inc/fleet.php) ===================== */
.fl-plate { display: inline-flex; align-items: stretch; height: 24px; border: 1.5px solid #20242c; border-radius: 5px; background: #fff; color: #111; font-weight: 800; font-size: 13.5px; letter-spacing: .05em; line-height: 21px; padding-right: 7px; overflow: hidden; white-space: nowrap; font-variant-numeric: tabular-nums; vertical-align: middle; }
.fl-plate i { display: flex; align-items: flex-end; justify-content: center; width: 15px; margin-right: 6px; padding-bottom: 2px; background: #1F4AA8; color: #fff; font-style: normal; font-size: 8px; font-weight: 700; letter-spacing: 0; }
.fl-plate.is-s { height: 20px; font-size: 12px; line-height: 17px; }
.fl-plate.is-none { padding: 0 7px; color: var(--muted); border-style: dashed; font-weight: 600; letter-spacing: 0; }
.crm-tile.is-soon b { color: var(--soon); }
.fl-tiles { margin-bottom: 14px; }
.fl-alerts ul { list-style: none; margin: 0; padding: 0; }
.fl-alerts li a { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; padding: 9px 4px; border-bottom: 1px solid var(--line2); color: var(--text); text-decoration: none; font-size: 14.5px; }
.fl-alerts li:last-child a { border-bottom: 0; }
.fl-alerts em { font-style: normal; color: var(--muted); }
.fl-alerts .fl-acar { margin-left: auto; color: var(--muted); display: inline-flex; align-items: center; gap: 6px; }
.fl-adot { width: 10px; height: 10px; border-radius: 50%; background: var(--soon); flex: none; }
.fl-alerts li.is-late .fl-adot { background: var(--late); }
.fl-alerts li.is-late b { color: var(--late); }
.fl-bar { margin: 4px 0 12px; }
.fl-q.crm-in { width: min(420px, 100%); padding-left: 36px; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%237a8194' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.5-3.5'/%3E%3C/svg%3E") no-repeat 12px 50%; }
.fl-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(290px, 1fr)); gap: 14px; }
.fl-card { display: flex; flex-direction: column; gap: 8px; padding: 14px 16px 12px; background: #fff; border: 1px solid var(--line); border-left: 4px solid var(--line); border-radius: 14px; color: var(--text); text-decoration: none; min-width: 0; transition: border-color .12s, box-shadow .12s; }
.fl-card.is-late { border-left-color: var(--late); }
.fl-card.is-soon { border-left-color: #E3A23B; }
.fl-card.is-ok { border-left-color: #8FD3AE; }
.fl-card[hidden] { display: none; }
.fl-card-h { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.fl-card-h .fl-cpic { flex: none; margin-right: auto; }
.fl-carsvg { display: inline-flex; line-height: 0; }
.fl-carimg { display: block; overflow: visible; }
.fl-carph { display: block; object-fit: cover; border-radius: 8px; background: var(--bg); }
.fl-card-h .fl-carph { width: 64px; height: 40px; }
.fl-hpic { display: flex; align-items: flex-end; flex-wrap: wrap; gap: 10px 14px; margin: 4px 0 8px; }
.fl-hpic .fl-carph { width: 168px; height: 104px; border-radius: 12px; border: 1px solid var(--line); }
.fl-phb { display: inline-flex; gap: 6px; flex-wrap: wrap; }
.fl-reqm { color: var(--late, #C62828); font-weight: 700; }
.fl-req input { border-color: var(--late, #C62828) !important; background: #FFF7F7; }
.fl-yr { color: var(--muted); font-size: 13px; font-variant-numeric: tabular-nums; }
.fl-name { font-size: 17px; color: var(--navy2); line-height: 1.25; overflow-wrap: anywhere; }
.fl-drv { display: flex; align-items: center; gap: 6px; font-size: 14px; color: var(--muted); min-width: 0; }
.fl-drv i { font-style: normal; }
.fl-priv { font-style: normal; font-size: 11.5px; font-weight: 700; color: #5B3BA8; background: #F1ECFB; border-radius: 6px; padding: 1px 6px; }
.fl-dlrow-s { display: flex; flex-wrap: wrap; gap: 5px; }
.fl-dl { display: inline-flex; align-items: center; gap: 4px; padding: 2px 8px; border-radius: 999px; font-size: 12.5px; font-weight: 600; white-space: nowrap; background: var(--okbg); color: #14532d; font-variant-numeric: tabular-nums; }
.fl-dl b { font-weight: 800; }
.fl-dl.is-soon { background: var(--soonbg); color: #7a4b00; }
.fl-dl.is-late { background: var(--latebg); color: var(--late); }
.fl-dl.is-na { background: #EEF0F4; color: #454d60; }
.fl-dl.is-none { background: transparent; border: 1px dashed var(--in); color: var(--muted); }
.fl-next { margin-top: auto; padding-top: 6px; border-top: 1px solid var(--line2); font-size: 13px; color: var(--muted); }
.fl-next b { color: var(--text); }
@media (hover: hover) and (pointer: fine) { .fl-card:hover { border-color: var(--in); box-shadow: 0 6px 18px -10px rgba(16,24,48,.35); text-decoration: none; } .fl-alerts li a:hover { background: var(--bg); text-decoration: none; } }
.fl-head { margin: 0 0 14px; }
.fl-back { display: inline-flex; align-items: center; gap: 4px; font-size: 14px; font-weight: 700; margin-bottom: 6px; }
.fl-title { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; margin: 0; font-size: 26px; color: var(--navy2); }
.fl-title .fl-plate { height: 32px; font-size: 18px; line-height: 29px; }
.fl-title .fl-plate i { width: 19px; font-size: 10px; }
.fl-sub { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; margin-top: 8px; color: var(--muted); font-size: 14.5px; }
.fl-cols { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.fl-cols > div { display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.fl-dls { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 16px; }
.fl-dlrow { display: flex; align-items: center; gap: 8px; }
.fl-dlrow input { flex: 1 1 auto; min-width: 0; }
.fl-dlrow > span { flex: none; max-width: 55%; overflow: hidden; }
.fl-chk { margin: 12px 0; }
.fl-add > summary { list-style: none; display: inline-flex; margin-bottom: 10px; }
.fl-add > summary::-webkit-details-marker { display: none; }
.fl-add[open] > summary { display: none; }
.fl-svcf { border: 1px solid var(--line2); background: var(--bg); border-radius: 12px; padding: 12px 14px; margin-bottom: 12px; }
.fl-tl { list-style: none; margin: 0; padding: 0; }
.fl-tl li { display: grid; grid-template-columns: 92px minmax(0, 1fr) auto; gap: 10px; align-items: start; padding: 9px 0; border-bottom: 1px solid var(--line2); }
.fl-tl li[hidden] { display: none; }
.fl-tl time { color: var(--muted); font-size: 13.5px; font-variant-numeric: tabular-nums; padding-top: 1px; }
.fl-tl b { display: block; font-size: 14.5px; }
.fl-tl small { display: block; color: var(--muted); font-size: 13px; }
.crm .fl-x { display: inline-grid; place-items: center; width: 30px; height: 30px; border: 0; border-radius: 8px; background: none; color: var(--muted); cursor: pointer; touch-action: manipulation; }
@media (hover: hover) and (pointer: fine) { .crm .fl-x:hover { background: var(--latebg); color: var(--late); } }
.fl-delcar { text-align: right; }
.fl-log summary { cursor: pointer; font-weight: 700; display: flex; align-items: center; gap: 8px; }
.fl-ff .fl-ffg, .fl-svcf .fl-ffg { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 12px 14px; }
.fl-ffg .fl-wide { grid-column: span 2; }
.fl-ffb { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 12px 16px; margin-top: 12px; }
.fl-ffb .fl-note { flex: 1 1 260px; }
.fl-ffb .crm-chk { padding-bottom: 10px; }
.fl-allow { font-size: 14px; color: var(--muted); }
.fl-allow b { color: var(--ok); }
.fl-allow.is-over b { color: var(--soon); }
.fl-mnav { display: inline-flex; align-items: center; gap: 8px; font-size: 13.5px; font-weight: 700; color: var(--muted); }
.fl-mxw, .fl-tw { overflow-x: auto; }
.fl-mx { border-collapse: separate; border-spacing: 0; width: 100%; font-size: 13.5px; margin: 0; font-variant-numeric: tabular-nums; }
.fl-mx th, .fl-mx td { border: 0; border-bottom: 1px solid var(--line2); padding: 7px 8px; text-align: right; white-space: nowrap; }
.fl-mx thead th { background: #F6F7FA; font-size: 12px; color: #454d60; text-transform: capitalize; }
.fl-mx thead th small { display: block; font-size: 10.5px; color: var(--muted); font-weight: 600; }
.fl-mx thead th.is-now { background: var(--accentbg); color: var(--accent); }
.fl-mx th[scope=row], .fl-mx thead th:first-child, .fl-mx tfoot th { position: sticky; left: 0; background: #fff; text-align: left; z-index: 1; }
.fl-mx thead th:first-child { background: #F6F7FA; }
.fl-mx th[scope=row] small { color: var(--muted); font-weight: 600; }
.fl-mx tr.is-off th[scope=row] a { color: var(--muted); }
.fl-mx td.is-none { color: #B3B9C6; }
.fl-mx td.is-zero { color: var(--muted); }
.fl-mx td.is-over { background: var(--soonbg); color: #7a4b00; font-weight: 700; }
.fl-mx td.fl-al { color: var(--muted); }
.fl-mx .fl-sum { font-weight: 800; color: var(--navy2); }
.fl-mx tfoot td, .fl-mx tfoot th { font-weight: 800; border-bottom: 0; background: #F6F7FA; }
.fl-ft td.num, .fl-st td.num, .fl-ft th.num, .fl-st th.num { text-align: right; font-variant-numeric: tabular-nums; }
.fl-ft tr[hidden], .fl-st tr[hidden] { display: none; }
.fl-pt .crm-in { height: 34px; min-width: 0; }
.fl-pt td { vertical-align: middle; }
.fl-pt td:nth-child(2) { width: 130px; }
.fl-pt td:nth-child(3) { width: 70px; text-align: center; }
.fl-pt input[type=checkbox] { width: 18px; height: 18px; accent-color: var(--blue); }
.fl-num, .crm-f input.fl-num, .crm-in.fl-num { max-width: 120px; text-align: right; font-variant-numeric: tabular-nums; }
.fl-padd { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.fl-padd .crm-in { width: auto; }
.fl-padd input[name=name] { flex: 1 1 200px; }
.fl-padd .fl-num { flex: 0 0 120px; }
.crm-card > .fl-svcf { border: 0; background: transparent; padding: 0; margin: 0; }
.fl-svcf > .crm-fg + .crm-f, .fl-svcf > .crm-f + .crm-fg { margin-top: 10px; }
.fl-svcf .fl-svcg { grid-template-columns: minmax(170px, 1.3fr) 160px 120px minmax(220px, 2.4fr) minmax(150px, 1.2fr) 120px; }
.fl-svcg .fl-wide { grid-column: auto; }
@media (max-width: 1400px) { .fl-svcf .fl-svcg { grid-template-columns: repeat(4, minmax(0, 1fr)); } .fl-svcg > :first-child, .fl-svcg .fl-wide { grid-column: span 2; } }
@media (max-width: 700px) { .fl-svcf .fl-svcg { grid-template-columns: minmax(0, 1fr); } .fl-svcg > :first-child, .fl-svcg .fl-wide { grid-column: auto; } }
.crm-inline .fl-filter { width: auto; max-width: 240px; }
.sr-only { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.fl-imp .crm-f { margin-bottom: 10px; }
@media (max-width: 980px) { .fl-cols { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 700px) { .fl-dls { grid-template-columns: minmax(0, 1fr); } .fl-grid { grid-template-columns: minmax(0, 1fr); } .fl-title { font-size: 21px; } .fl-ffg .fl-wide { grid-column: auto; } .fl-alerts .fl-acar { margin-left: 18px; width: 100%; } .fl-tl li { grid-template-columns: 78px minmax(0, 1fr) auto; } }
.crm-bd-fleet { display: flex; align-items: center; gap: 8px; margin: 0 0 12px; color: #6b4300 !important; text-decoration: none; }
.crm-bd-fleet:hover { text-decoration: underline; }

/* ===== Import z Raynetu: koľko je prenesené (Miško 22. 10. 2026) ===== */
.rnp { margin-bottom: 14px; }
.rnp-sum { display: flex; align-items: center; gap: 18px; margin: 4px 0 16px; }
.rnp-sum > b { font-size: 40px; font-weight: 800; line-height: 1; color: var(--navy2); font-variant-numeric: tabular-nums; white-space: nowrap; }
.rnp-sum > div { flex: 1 1 auto; display: flex; flex-direction: column; gap: 6px; min-width: 0; font-size: 13.5px; }
.rnp-bar { display: block; height: 8px; border-radius: 99px; background: #E9ECF2; overflow: hidden; }
.rnp-bar.is-big { height: 14px; }
.rnp-bar i { display: block; height: 100%; border-radius: inherit; background: var(--blue); transition: width .4s ease-out; }
.is-done .rnp-bar i { background: #2E9E62; }
.rnp-rows { display: grid; grid-template-columns: minmax(150px, 220px) minmax(80px, 1fr) auto 64px; align-items: center; gap: 9px 14px; }
.rnp-row { display: contents; }
.rnp-l { font-size: 14px; font-weight: 600; color: var(--text); display: inline-flex; align-items: center; gap: 5px; }
.rnp-err { color: var(--soon); display: inline-flex; cursor: help; }
.rnp-n { font-size: 13px; color: var(--muted); font-variant-numeric: tabular-nums; text-align: right; white-space: nowrap; }
.rnp-p { font-size: 14px; text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; color: var(--navy2); }
.rnp-row.is-done .rnp-p { color: #1d7a49; }
.rnp-sub { grid-column: 1 / -1; margin: 8px 0 0; padding-top: 10px; border-top: 1px solid var(--line2); font-size: 11.5px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: var(--muted); }
.rnp-note { margin: 14px 0 0; }
@media (max-width: 700px) {
	.rnp-sum { flex-direction: column; align-items: stretch; gap: 8px; }
	.rnp-sum > b { font-size: 34px; }
	.rnp-rows { grid-template-columns: minmax(0, 1fr) auto; gap: 4px 10px; }
	.rnp-row { display: grid; grid-column: 1 / -1; grid-template-columns: minmax(0, 1fr) auto; gap: 4px 10px; padding: 6px 0; }
	.rnp-row .rnp-bar { grid-column: 1 / -1; grid-row: 2; }
	.rnp-row .rnp-n { grid-column: 1; grid-row: 3; text-align: left; font-size: 12.5px; }
	.rnp-row .rnp-p { grid-column: 2; grid-row: 1; }
}

/* ===== Prílohy e-mailu s cenovou ponukou (quote_files.php) a okno „Priložiť z Dropboxu“ (Miško 22. 10. 2026) ===== */
.qf h2 small { display: block; margin-top: 2px; font-weight: 400; }
.qf-send { margin-top: 12px; }
.qf-list { list-style: none; margin: 6px 0 10px; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.qf-list li { display: flex; align-items: center; gap: 10px; padding: 6px 8px 6px 6px; border: 1px solid var(--line2); border-radius: 10px; background: #fff; min-width: 0; }
.qf-list li.qf-pdf { background: #F6F7FA; }
.qf-list .crm-fic { width: 34px; height: 34px; font-size: 9.5px; }
.qf-n { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; font-size: 14px; font-weight: 600; color: var(--text); overflow-wrap: anywhere; }
.qf-n a { color: var(--text); text-decoration: none; }
.qf-n a:hover { text-decoration: underline; }
.qf-n small { font-size: 12px; font-weight: 500; color: var(--muted); }
.qf-a { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.cq .qf label.crm-btn, .cq-card .qf label.crm-btn { display: inline-flex; align-items: center; gap: 6px; margin: 0; font-size: 13.5px; font-weight: 700; color: var(--navy); cursor: pointer; }
.cq .qf .crm-ibtn, .cq-card .qf .crm-ibtn { flex: none; width: 30px; height: 30px; padding: 0; margin: 0; display: inline-flex; align-items: center; justify-content: center; background: transparent; border: 0; border-radius: 8px; color: var(--muted); cursor: pointer; }
.cq .qf .crm-ibtn:hover, .cq-card .qf .crm-ibtn:hover { background: var(--latebg); color: var(--late); }
.qf .crm-up-prog { margin-top: 8px; }

@media (min-width: 701px) { dialog.crm-dlg.dfp { width: min(620px, calc(100vw - 24px)); } }
.dfp .crm-dlg-b { display: flex; flex-direction: column; gap: 10px; padding-bottom: 0; }
.dfp-src { display: inline-flex; gap: 4px; padding: 3px; background: #EEF0F4; border-radius: 10px; align-self: flex-start; }
.dfp-src button { border: 0; background: transparent; padding: 6px 12px; border-radius: 8px; font: inherit; font-size: 13.5px; font-weight: 700; color: var(--muted); cursor: pointer; }
.dfp-src button.on { background: #fff; color: var(--navy); box-shadow: 0 1px 2px rgba(10,16,35,.12); }
.dfp-crumbs { display: flex; flex-wrap: wrap; align-items: center; gap: 4px; font-size: 13.5px; color: var(--muted); }
.dfp-crumbs button { border: 0; background: none; padding: 2px 4px; font: inherit; color: var(--accent); cursor: pointer; border-radius: 6px; }
.dfp-crumbs button:hover { background: var(--accentbg); }
.dfp-crumbs b { color: var(--text); padding: 2px 4px; }
.dfp-list { list-style: none; margin: 0; padding: 0; max-height: min(52vh, 460px); overflow-y: auto; overscroll-behavior: contain; border: 1px solid var(--line2); border-radius: 12px; }
.dfp-list li + li { border-top: 1px solid var(--line2); }
.dfp-dir, .dfp-file { display: flex; align-items: center; gap: 10px; width: 100%; padding: 10px 12px; margin: 0; border: 0; background: #fff; font: inherit; font-size: 14.5px; color: var(--text); text-align: left; cursor: pointer; }
.dfp-dir svg { color: #5B87D9; flex: none; }
.dfp-file svg { color: var(--muted); flex: none; }
.dfp-dir span, .dfp-file span { flex: 1 1 auto; min-width: 0; overflow-wrap: anywhere; }
.dfp-file small { display: block; font-size: 12px; color: var(--muted); }
.dfp-file input { width: 18px; height: 18px; flex: none; accent-color: var(--blue); margin: 0; }
.dfp-file:has(input:checked) { background: var(--accentbg); }
.dfp-file.is-big { opacity: .55; cursor: not-allowed; }
.dfp-msg { padding: 14px 12px; font-size: 14px; }
.dfp-note { margin: 0; }
.dfp .dfp-a { display: flex; align-items: center; gap: 8px; justify-content: flex-end; }
.dfp-sel { margin-right: auto; font-size: 13.5px; }
@media (hover: hover) and (pointer: fine) { .dfp-dir:hover, .dfp-file:hover { background: #F6F7FA; } }

/* ===== Ručná zmena stavu ponuky (quote_status.php, Miško 22. 10. 2026) ===== */
.qs-btn { display: inline-flex; align-items: center; gap: 2px; padding: 0; margin: 0; border: 0; background: none; cursor: pointer; border-radius: 999px; color: var(--muted); font: inherit; vertical-align: middle; }
.qs-btn .badge { pointer-events: none; }
@media (hover: hover) and (pointer: fine) { .qs-btn:hover .badge { box-shadow: 0 0 0 2px var(--accentbg); } .qs-btn:hover { color: var(--accent); } }
.qs-btn:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
.qs-form label { display: block; text-align: left; padding: 0; font-size: 13px; font-weight: 700; color: var(--muted); margin: 12px 0 4px; }
.qs-form label small { font-weight: 400; }
.qs-opts { border: 0; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.qs-form .qs-opt { text-align: left; display: flex; align-items: flex-start; gap: 10px; margin: 0; padding: 11px 12px; border: 1px solid var(--line); border-radius: 12px; cursor: pointer; color: var(--text); font-size: 14.5px; font-weight: 400; }
.qs-opt input { margin: 3px 0 0; width: 17px; height: 17px; flex: none; accent-color: var(--blue); }
.qs-opt b { display: block; font-size: 15px; color: var(--navy); }
.qs-opt small { display: block; font-size: 13px; color: var(--muted); line-height: 1.4; }
.qs-opt:has(input:checked) { border-color: var(--blue); background: var(--accentbg); }
.qs-opt.qs-won:has(input:checked) { border-color: var(--ok); background: var(--okbg); }
.qs-opt.qs-lost:has(input:checked) { border-color: var(--late); background: var(--latebg); }
.qs-more { margin-top: 4px; }
.qs-more[hidden] { display: none; }
.qs-row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 0 12px; }
.qs-form select, .qs-form input[type=text], .qs-form textarea { width: 100%; height: 38px; padding: 0 10px; border: 1px solid var(--in); border-radius: 8px; font: inherit; font-size: 14.5px; background: #fff; color: var(--text); }
.qs-form textarea { height: auto; padding: 8px 10px; resize: vertical; }
.qs-form .qs-chk { display: flex; align-items: center; gap: 8px; font-weight: 600; color: var(--text); font-size: 14px; margin-top: 10px; }
.qs-chk input { width: 17px; height: 17px; accent-color: var(--blue); }
.qs-a { display: flex; justify-content: flex-end; gap: 8px; }
@media (max-width: 700px) { .qs-row { grid-template-columns: minmax(0, 1fr); } }

/* ---------- Dokumenty (inc/crm_docs.php) ---------- */
.docs-bar { display: flex; flex-direction: column; gap: 10px; margin: 0 0 14px; }
.docs-q { display: flex; align-items: center; gap: 8px; padding: 0 12px; height: 46px; border: 1px solid var(--in); border-radius: 10px; background: #fff; color: var(--muted); }
.docs-q:focus-within { outline: 2px solid var(--focus); border-color: var(--focus); }
.docs-q input { flex: 1; min-width: 0; height: 44px; border: 0 !important; outline: 0; background: transparent; font: inherit; font-size: 16px; box-shadow: none !important; padding: 0 !important; }
.docs-f { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.docs-f select { height: 38px; }
.docs-c { flex: 1 1 220px; min-width: 0; max-width: 340px; }
.docs-dest { display: flex; flex-wrap: wrap; gap: 6px 18px; margin: 0 0 8px; }
.docs-drop { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; padding: 16px; border: 1.5px dashed var(--in); border-radius: 12px; background: var(--bg); color: var(--muted); }
.docs-drop small { flex-basis: 100%; }
.docs-tree .crm-card-h { flex-wrap: wrap; gap: 10px; }
.docs-crumbs { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; min-width: 0; font-size: 15px; }
.docs-crumbs a { display: inline-flex; align-items: center; gap: 6px; color: var(--blue); font-weight: 600; text-decoration: none; }
.docs-crumbs a:hover { text-decoration: underline; }
.docs-crumbs span { color: var(--muted2, #98a1b3); }
.docs-crumbs b { color: var(--navy2, #1C2B5A); overflow-wrap: anywhere; }
.docs-crumbs h2 { margin: 0; }
.docs-acts { display: flex; gap: 6px; margin-left: auto; position: relative; }
.docs-newf { padding: 10px !important; min-width: 260px; }
.docs-newf form { display: flex !important; flex-direction: column; gap: 6px; }
.docs-newf form + form, .docs-newf form + p { margin-top: 10px; padding-top: 10px; border-top: 1px solid var(--line2); }
.docs-newf label { font-size: 13px; font-weight: 700; color: var(--muted); }
.docs-newf .crm-btn { width: auto !important; justify-content: center !important; }
.docs-fold .docs-fic { display: inline-grid; place-items: center; flex: none; width: 36px; height: 36px; border-radius: 9px; background: #FFF4D6; color: #B07A00; }
.docs-fold .crm-fb a b { font-weight: 700; }
.docs-dd { position: relative; }
.docs-dd summary { list-style: none; }
.docs-dd summary::-webkit-details-marker { display: none; }
.docs-mv { padding: 6px 8px 8px !important; }
.docs-mv label { display: flex; flex-direction: column; gap: 4px; font-size: 12.5px; font-weight: 700; color: var(--muted); }
.docs-mv select { width: 100%; height: 36px; }
.docs-shared { color: var(--blue); }
.docs-rn { margin: 14px 0 0; padding: 12px 14px; border: 1px solid var(--line); border-radius: 12px; background: var(--bg); }
.docs-rn > summary { cursor: pointer; font-weight: 700; display: flex; align-items: center; gap: 8px; }
.docs-rn[open] > summary { margin-bottom: 10px; }
.docs-rn-st { margin: 0 0 8px; font-size: 14px; }
.docs-rn-run { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; font-weight: 600; }
.crm-spin { display: inline-block; width: 16px; height: 16px; border: 2px solid var(--line); border-top-color: var(--blue); border-radius: 50%; animation: crm-spin .8s linear infinite; }
@media (prefers-reduced-motion: reduce) { .crm-spin { animation-duration: 2.4s; } }
@media (max-width: 700px) { .docs-acts { margin-left: 0; } .docs-c { max-width: none; } }

/* Kalendár: ďalšie výskyty opakovaných aktivít (len zobrazenie) a stav synchronizácie s Raynetom */
.crm-ev.is-virt { background: repeating-linear-gradient(135deg, color-mix(in srgb, var(--cat) 12%, #fff) 0 6px, color-mix(in srgb, var(--cat) 6%, #fff) 6px 12px); border-style: dashed; border-left-style: solid; }
.crm-act.is-virt .crm-act-t::after { content: " · opakovanie"; color: #6b7590; font-weight: 400; }
.crm-cal-sync { display: flex; align-items: center; gap: 6px; margin: -4px 0 10px; color: #5b6680; }
.crm-cal-sync.is-warn { color: #a15c00; }

/* Výber zamestnanca s fotkami (crm.js: select[data-avsel]) a fotky používateľov */
.crm-av-img { object-fit: cover; background: #EEF0F5; padding: 0; }
.crm-avs { position: relative; display: inline-block; min-width: 200px; max-width: 100%; vertical-align: middle; }
.crm-f .crm-avs, .crm-dt .crm-avs { display: block; width: 100%; }
.crm-dt .crm-avs { flex: 1; min-width: 0; }
.crm-avs-native { position: absolute !important; left: 0; bottom: 0; width: 1px !important; height: 1px !important; opacity: 0; pointer-events: none; overflow: hidden; }
.crm-avs-btn { display: flex; align-items: center; gap: 8px; width: 100%; min-height: 38px; padding: 4px 32px 4px 7px; border: 1px solid var(--in); border-radius: 9px; background: #fff; color: var(--text); font: inherit; font-size: 14px; text-align: left; cursor: pointer; position: relative; touch-action: manipulation; }
.crm-avs-btn:focus-visible, .crm-avs.is-open .crm-avs-btn { outline: 0; border-color: var(--blue); box-shadow: 0 0 0 3px rgba(47,95,208,.15); }
.crm-avs-t { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.crm-avs-chev { position: absolute; right: 12px; top: 50%; width: 7px; height: 7px; border-right: 2px solid var(--muted2); border-bottom: 2px solid var(--muted2); transform: translateY(-70%) rotate(45deg); }
.crm-avs-list { position: absolute; z-index: 65; left: 0; top: calc(100% + 4px); min-width: max(100%, 230px); max-height: min(340px, 60vh); overflow-y: auto; overscroll-behavior: contain; margin: 0; padding: 4px; list-style: none; background: #fff; border: 1px solid var(--line); border-radius: 12px; box-shadow: 0 12px 32px rgba(16,24,48,.18); }
.crm-avs-list:focus { outline: 0; }
.crm-avs-list li { display: flex; align-items: center; gap: 10px; padding: 6px 8px; border-radius: 8px; cursor: pointer; font-size: 14px; user-select: none; -webkit-user-select: none; }
.crm-avs-list li.is-act { background: var(--line2); }
.crm-avs-list li[aria-selected="true"] { font-weight: 700; }
@media (hover: hover) and (pointer: fine) { .crm-avs-list li:hover { background: var(--line2); } }
.crm-avs-none { background: var(--line2) !important; }
.crm-chipchk .crm-av { margin: -2px 2px -2px -4px; }
.us-name { display: inline-flex; align-items: center; gap: 8px; }
.us-av { width: 28px; height: 28px; border-radius: 50%; object-fit: cover; flex: none; }
.us-media-f { display: flex; flex-wrap: wrap; gap: 10px 14px; align-items: center; }
.us-media-f form { display: flex; align-items: center; gap: 10px; margin: 0; }
.us-chk { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; color: var(--muted); }
.us-file { position: relative; overflow: hidden; cursor: pointer; }
.us-file input[type=file] { position: absolute; inset: 0; opacity: 0; cursor: pointer; }

/* Prihlásenie: obrázok dňa vedľa formulára (inc/login_fun.php) – na počítači vedľa karty, rovnako vysoký; na mobile pod ňou */
.auth-row { display: flex; flex-direction: column; align-items: center; gap: 22px; width: 100%; }
.auth-fun { margin: 0; width: 100%; max-width: 400px; display: flex; flex-direction: column; gap: 8px; }
.auth-fun-box { position: relative; display: flex; align-items: center; justify-content: center; border-radius: 18px; overflow: hidden; background: rgba(255,255,255,.06); box-shadow: 0 24px 60px rgba(5,10,30,.35); }
.auth-fun-box picture { display: contents; }
.auth-fun-m { display: block; width: 100%; height: auto; max-height: 38vh; object-fit: contain; }
.auth-fun figcaption { display: flex; justify-content: space-between; gap: 12px; font-size: 12.5px; color: #C9D2EA; padding: 0 4px; }
.auth-fun figcaption a { color: #C9D2EA; text-decoration: none; opacity: .85; }
@media (hover: hover) and (pointer: fine) { .auth-fun figcaption a:hover { text-decoration: underline; opacity: 1; } }
@media (min-width: 900px) {
	.auth.has-fun .auth-row { flex-direction: row; align-items: stretch; justify-content: center; gap: 48px; width: auto; }
	.auth.has-fun .auth-card { flex: none; width: 400px; }
	.auth.has-fun .auth-fun { width: 480px; max-width: 480px; }
	.auth.has-fun .auth-fun-box { flex: 1 1 auto; min-height: 280px; }
	.auth.has-fun .auth-fun-m { position: absolute; inset: 0; width: 100%; height: 100%; max-height: none; }
}
.lf-prev { max-width: 420px; background: #1C2B5A; padding: 16px; border-radius: 14px; }
.lf-prev .auth-fun { margin: 0; }

/* ===================== Doplnkové dokumentácie (inc/dd.php) ===================== */
.dd-tabs { margin-bottom: 16px; }
.dd { display: flex; flex-direction: column; gap: 14px; }
.dd-tools { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; }
.dd-tools .dd-seg { margin: 0; }
.dd-seg span { font-size: 14px; padding: 7px 14px; }
.dd-search { position: relative; flex: 1 1 260px; max-width: 440px; margin: 0; display: flex; align-items: center; }
.dd-search .ic { position: absolute; left: 12px; color: var(--muted2); pointer-events: none; }
.dd-search input { width: 100%; height: 40px; padding: 0 12px 0 38px; border: 1px solid var(--in); border-radius: 10px; font: inherit; font-size: 16px; background: #fff; color: var(--text); box-sizing: border-box; }
.dd-search input:focus { outline: 0; border-color: var(--blue); box-shadow: 0 0 0 3px rgba(47,95,208,.15); }
.dd-client { display: inline-flex; align-items: center; gap: 6px; padding: 6px 10px; border-radius: 999px; background: var(--accentbg); color: var(--navy2); font-size: 13.5px; }
.dd-client a { display: inline-flex; color: var(--muted); }
.dd-jump { display: flex; flex-wrap: wrap; gap: 6px; }
.dd-jump a { display: inline-flex; align-items: center; gap: 6px; padding: 6px 11px; border: 1px solid var(--line); border-radius: 999px; background: #fff; color: var(--text); text-decoration: none; font-size: 13px; font-weight: 600; white-space: nowrap; }
.dd-jump a b { font-size: 11.5px; color: var(--muted); background: var(--line2); border-radius: 999px; padding: 0 7px; }
.dd-jump a[hidden] { display: none; }
@media (hover: hover) and (pointer: fine) { .dd-jump a:hover { border-color: var(--blue); color: var(--blue); } }
.dd [data-dd-sec][hidden], .dd [data-dd-row][hidden] { display: none; }
.dd-sec, .dd-base { scroll-margin-top: calc(var(--top) + 12px); }
.dd-ic { display: inline-flex; align-items: center; justify-content: center; width: 30px; height: 30px; border-radius: 9px; flex: none; color: #fff; background: var(--navy2); }
.dd-ic .ic { width: 17px; height: 17px; }
.dd-ic-opp, .dd-ic-po { background: #D9342B; } .dd-ic-pzs { background: #1A8F5A; } .dd-ic-pokyny { background: #C77700; } .dd-ic-bpp { background: #2D5BBF; }
.dd-ic-pp { background: #6A47B8; } .dd-ic-smernice { background: #4A5875; } .dd-ic-skolenia { background: #0F8291; }
.dd-base-g { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 12px; }
.dd-base-c { background: var(--bg); border-radius: 12px; padding: 14px 14px 10px; min-width: 0; }
.dd-base-c[hidden] { display: none; }
.dd-base-h { display: flex; align-items: center; gap: 10px; margin-bottom: 8px; }
.dd-base-h img { border-radius: 8px; flex: none; }
.dd-base-h b { display: block; font-size: 15px; color: var(--navy2); }
.dd-base-h span { font-size: 12.5px; color: var(--muted); }
.dd-base-c ul { list-style: none; margin: 0; padding: 0; font-size: 13.5px; }
.dd-base-c li { position: relative; padding: 3px 0 3px 20px; line-height: 1.35; }
.dd-base-c li::before { content: ""; position: absolute; left: 3px; top: 8px; width: 9px; height: 5px; border-left: 2px solid var(--ok); border-bottom: 2px solid var(--ok); transform: rotate(-45deg); }
.dd-more summary { cursor: pointer; font-size: 13px; font-weight: 600; color: var(--blue); margin: 6px 0 2px; list-style: none; }
.dd-more summary::-webkit-details-marker { display: none; }
.dd-more[open] summary { display: none; }
.dd-note { display: inline-block; margin-left: 4px; font-size: 12px; color: var(--soon); background: var(--soonbg); border-radius: 6px; padding: 0 6px; }
.dd-t td { vertical-align: middle; }
.dd-t .dd-nm { cursor: pointer; }
.dd-t .dd-nm b { font-weight: 600; color: var(--text); }
.dd-t .dd-u { display: block; font-size: 12.5px; color: var(--muted); margin-top: 1px; }
.dd-t .dd-nm .dd-note { margin: 3px 0 0; }
.dd-t .dd-p { font-weight: 700; color: var(--navy2); font-variant-numeric: tabular-nums; width: 120px; }
.dd-t .dd-vat { color: var(--muted); font-variant-numeric: tabular-nums; width: 110px; }
.dd-t .dd-na { font-weight: 600; color: var(--muted); font-size: 13px; }
.dd-t .dd-qc { width: 132px; }
.dd-q { display: inline-flex; align-items: center; gap: 6px; margin: 0; }
.dd-q input { width: 64px; height: 34px; padding: 0 8px; border: 1px solid var(--in); border-radius: 8px; font: inherit; font-size: 16px; text-align: right; font-variant-numeric: tabular-nums; background: #fff; }
.dd-q input:disabled { opacity: .35; background: var(--bg); }
.dd-q span { font-size: 12px; color: var(--muted); max-width: 56px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dd-t tr.is-sel td { background: var(--accentbg); }
.dd-t input[type=checkbox] { width: 18px; height: 18px; accent-color: var(--navy2); }
.dd-none { text-align: center; padding: 30px 0; }
.dd-bar { position: sticky; bottom: calc(14px + env(safe-area-inset-bottom, 0px)); z-index: 30; margin-top: 4px; }
.dd-bar[hidden] { display: none; }
.dd-bar-in { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 18px; padding: 12px 14px 12px 18px; background: var(--navy2); color: #fff; border-radius: 14px; box-shadow: 0 14px 40px rgba(16,24,48,.28); }
.dd-bar-t { flex: 1 1 auto; font-size: 14px; }
.dd-bar-t .crm-muted { color: #C9D2EA; }
.dd-bar-s { display: flex; gap: 18px; }
.dd-bar-s span { display: flex; flex-direction: column; line-height: 1.15; }
.dd-bar-s small { font-size: 11px; color: #C9D2EA; text-transform: uppercase; letter-spacing: .05em; }
.dd-bar-s b { font-size: 17px; font-variant-numeric: tabular-nums; }
.dd-bar-a { display: flex; flex-wrap: wrap; gap: 8px; }
.dd-bar .crm-btn-g, .dd-bar button.crm-btn-g { color: #fff !important; }
.dd-bar .crm-btn-p, .dd-bar a.crm-btn-p { background: #fff; border-color: #fff; color: var(--navy2) !important; }
.dd-bar { margin-right: 60px; }   /* vpravo dole je majáčik Návrhy a chyby */
@media (hover: hover) and (pointer: fine) { .dd-bar button.crm-btn-g:hover { background: rgba(255,255,255,.12); } .dd-bar a.crm-btn-p:hover { background: #EAF0FB; } }
.dd-t tr:not(.is-sel) .dd-q { visibility: hidden; }
.dd-t td.crm-chk input:disabled { visibility: hidden; }
.dd-tw { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.dd-ct th.num, .dd-ct td.num { width: 120px; font-variant-numeric: tabular-nums; }
.dd-ct td.num { font-weight: 600; color: var(--navy2); }
.dd-ct td.dd-na { color: var(--muted); font-weight: 500; }
.dd-ct td.dd-incl { color: var(--ok); font-weight: 600; font-size: 13px; }
.dd-ct tr.dd-ch th { background: #fff; color: var(--navy2); font-size: 14px; text-transform: none; letter-spacing: 0; padding-top: 18px; }
.dd-ct tr.dd-ch .dd-ic { width: 24px; height: 24px; border-radius: 7px; vertical-align: middle; margin-right: 4px; }
.dd-ct tr.dd-ch .dd-ic .ic { width: 14px; height: 14px; }
.dd-cd summary { cursor: pointer; font-weight: 600; color: var(--navy2); }
.dd-cd ul { margin: 6px 0 0; padding-left: 18px; columns: 2; column-gap: 24px; font-size: 13px; }
.dd-ecols { grid-template-columns: minmax(0, 1fr) 330px; }
.dd-eh { display: flex; align-items: center; gap: 8px; margin: 18px 0 8px; font-size: 15px; color: var(--navy2); }
.dd-eh:first-of-type { margin-top: 4px; }
.dd-eh .dd-ic { width: 24px; height: 24px; border-radius: 7px; }
.dd-eh .dd-ic .ic { width: 14px; height: 14px; }
.dd-et td { padding: 4px 4px; }
.dd-et .crm-in { height: 34px; font-size: 14px; padding: 0 8px; width: 100%; box-sizing: border-box; }
.dd-et .dd-en { min-width: 240px; }
.dd-et .dd-eu { width: 86px; } .dd-et .dd-ep { width: 78px; text-align: right; } .dd-et .dd-es { width: 170px; } .dd-et .dd-eo { width: 150px; }
.dd-et .dd-ea { text-align: center; } .dd-et .dd-ea input { width: 18px; height: 18px; }
.dd-et tr.dd-off td { opacity: .55; }
.dd-mv { display: flex; gap: 2px; margin: 0; }
.dd-mv .crm-btn { width: 28px; height: 28px; padding: 0; }
.dd-new { display: flex; flex-direction: column; gap: 4px; }
.dd-new3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.dd-new3 .crm-f label { font-size: 12px; }
.dd-imp { display: flex; flex-direction: column; gap: 6px; }
.dd-txt summary { cursor: pointer; font-size: 13px; color: var(--blue); margin: 4px 0; }
.dd-log { list-style: none; margin: 0; padding: 0; font-size: 13px; max-height: 420px; overflow: auto; }
.dd-log li { padding: 6px 0; border-bottom: 1px solid var(--line2); }
.dd-log time { color: var(--muted); font-variant-numeric: tabular-nums; margin-right: 4px; }
.dd-log span { display: block; color: var(--text); }
.dd-empty h2 { display: flex; align-items: center; gap: 8px; margin: 0 0 8px; }
@media (max-width: 1560px) { .dd-ecols { grid-template-columns: minmax(0, 1fr); } .dd-ecols > div:last-child { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); align-items: start; } }
@media (max-width: 760px) {
	.dd-tools .dd-seg { width: 100%; display: grid; grid-template-columns: repeat(3, 1fr); }
	.dd-seg span { justify-content: center; padding: 8px 6px; font-size: 13px; }
	.dd-search { max-width: none; }
	.dd-jump { flex-wrap: nowrap; overflow-x: auto; margin: 0 -16px; padding: 0 16px 4px; scrollbar-width: none; }
	.dd-jump::-webkit-scrollbar { display: none; }
	.dd-t thead { display: none; }
	.dd-t, .dd-t tbody { display: block; }
	.dd-t tr { display: grid; grid-template-columns: 30px minmax(0, 1fr) auto; grid-template-areas: "c n p" "c n q"; align-items: center; column-gap: 8px; padding: 10px 2px; border-bottom: 1px solid var(--line2); }
	.dd-t tr:last-child { border-bottom: 0; }
	.dd-t td { border: 0; padding: 0; }
	.dd-t td.crm-chk { grid-area: c; width: auto; }
	.dd-t .dd-nm { grid-area: n; }
	.dd-t .dd-p { grid-area: p; width: auto; text-align: right; }
	.dd-t .dd-vat { display: none; }
	.dd-t .dd-qc { grid-area: q; width: auto; text-align: right; }
	.dd-t tr:not(.is-sel) .dd-qc { display: none; }
	.dd-t tr.is-sel { background: var(--accentbg); border-radius: 10px; }
	.dd-t tr.is-sel td { background: transparent; }
	.dd-bar { bottom: calc(72px + env(safe-area-inset-bottom, 0px)); margin-right: 0; }
	body.dd-has-bar .fb-beacon { bottom: calc(214px + env(safe-area-inset-bottom, 0px)); }
	.dd-t tbody tr:hover td { background: transparent; }
	.dd-bar-in { padding: 12px; gap: 10px; }
	.dd-bar-a { width: 100%; display: grid; grid-template-columns: auto 1fr 1fr; }
	.dd-bar-a .crm-btn { padding: 0 10px; font-size: 13.5px; }
	.dd-cd ul { columns: 1; }
	.dd-new3 { grid-template-columns: 1fr; }
}

/* Nástenka: narodeniny (crm_birthdays) */
.crm-bd-bh { margin: 4px 0 6px; font-size: 11.5px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--muted2); }
.crm-bd-blist + .crm-bd-bh { margin-top: 14px; }
.crm-bd-blist { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 2px; }
.crm-bd-bday { display: flex; align-items: center; gap: 10px; padding: 6px 8px; margin: 0 -8px; border-radius: 10px; }
.crm-bd-bday.is-today { background: #FFF5E6; }
.crm-bd-bday .crm-av { flex: none; }
.crm-bd-bn { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.crm-bd-bn > a { font-weight: 700; color: var(--text); text-decoration: none; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.crm-bd-bn small { font-size: 12.5px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.crm-bd-bn small a { color: var(--muted); text-decoration: none; }
@media (hover: hover) and (pointer: fine) { .crm-bd-bn a:hover { text-decoration: underline; } }
.crm-bd-bw { flex: none; display: flex; flex-direction: column; align-items: flex-end; font-size: 13px; font-weight: 600; color: var(--navy2); white-space: nowrap; }
.crm-bd-bw small { font-size: 12px; font-weight: 500; color: var(--muted); }
.crm-bd-bday.is-today .crm-bd-bw { color: #B25E00; flex-direction: column; }
.crm-bd-bday.is-today .crm-bd-bw .ic { vertical-align: -2px; }

/* Ikony pri názvoch polí (crm_iconize) */
.crm-fi { display: inline-flex; vertical-align: -2px; margin-right: 6px; color: var(--muted2); opacity: .9; }
.crm-fi .ic { width: 13px; height: 13px; }
dt .crm-fi { margin-right: 5px; }
.crm-kv dt { white-space: nowrap; }


/* ----- Haspo Pulz (inc/pulz.php): týždenný prehľad v izolovanom rámci ----- */
.pulz-ver { display: inline-flex; }
.pulz-ver select { width: auto; max-width: 360px; min-height: 38px; }
.pulz-note { display: flex; align-items: center; flex-wrap: wrap; gap: 6px 8px; margin: 0 0 12px; }
.pulz-note.pulz-warn { background: #FFF7E6; border-color: #F5D9A3; color: #7a4b00; }
.pulz-wrap { margin: 0 0 18px; }
.pulz-frame { display: block; width: 100%; height: calc(100vh - 190px); height: calc(100dvh - 190px); min-height: 520px; border: 1px solid var(--line); border-radius: 14px; background: #fff; }
.pulz-frame.is-fit { min-height: 0; }
.pulz-empty h2 { display: flex; align-items: center; gap: 8px; }
.pulz-set-g { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 18px 28px; margin: 4px 0 14px; }
.pulz-set h3 { margin: 0 0 4px; font-size: 15px; }
.pulz-set p { margin: 0 0 10px; }
.pulz-dl { display: grid; grid-template-columns: max-content minmax(0, 1fr); gap: 6px 14px; margin: 0 0 12px; font-size: 14px; }
.pulz-dl dt { color: var(--muted); }
.pulz-dl dd { margin: 0; overflow-wrap: anywhere; }
.pulz-btns { display: flex; flex-wrap: wrap; gap: 8px; }
.pulz-token { background: #F0F7F2; border: 1px solid #BFE0CB; border-radius: 10px; padding: 10px 12px; margin: 0 0 12px; font-size: 14px; }
.pulz-token-r { display: flex; gap: 8px; margin-top: 8px; }
.pulz-token-r input { flex: 1; min-width: 0; font-family: ui-monospace, Menlo, Consolas, monospace; font-size: 13px; }
.pulz-up { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.pulz-up input[type=file] { flex: 1; min-width: 0; }
.pulz-vers .num { text-align: right; white-space: nowrap; }
.pulz-vers tr.is-cur td { background: var(--bluebg); }
.pulz-act { white-space: nowrap; text-align: right; }
.pulz-act form { display: inline; }
@media (max-width: 760px) {
	.pulz-set-g { grid-template-columns: 1fr; }
	.pulz-frame { border-radius: 10px; }
	.pulz-ver, .pulz-ver select { max-width: 100%; width: 100%; }
	.pulz-token-r input { font-size: 16px; }
}
.crm-cfg-lock { display: inline-flex; align-items: center; justify-content: center; width: 32px; color: var(--muted2); }
/* Zálohy (inc/backup.php) */
.bk { display: grid; gap: 16px; }
.bk-status { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 14px 18px; align-items: start; border-left: 4px solid var(--ok); }
.bk-status.is-warn { border-left-color: var(--soon); }
.bk-status.is-bad { border-left-color: var(--late); }
.bk-status h2 { margin: 2px 0 8px; }
.bk-badge { width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center; background: var(--okbg); color: var(--ok); }
.is-warn .bk-badge { background: var(--soonbg); color: var(--soon); }
.is-bad .bk-badge { background: var(--latebg); color: var(--late); }
.bk-probs { margin: 0 0 12px; padding-left: 18px; }
.bk-probs li { margin: 2px 0; }
.bk-dl { display: grid; grid-template-columns: max-content minmax(0, 1fr); gap: 6px 14px; margin: 0 0 12px; font-size: 14px; }
.bk-dl dt { color: var(--muted); }
.bk-dl dd { margin: 0; overflow-wrap: anywhere; }
.bk-run { display: flex; align-items: center; gap: 10px; margin: 6px 0 10px; }
.bk-run progress { width: 120px; }
.bk-full { display: inline-flex; gap: 8px; align-items: center; }
.bk-btns { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin-top: 10px; }
.bk-newkey { border: 2px solid var(--late); background: #fffaf9; }
.bk-newkey ol { margin: 0 0 10px; padding-left: 20px; }
.bk-keytxt, .bk-check textarea { width: 100%; font: 15px/1.5 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; word-break: break-all; }
.bk-check { margin: 8px 0 4px; }
.bk-check summary { cursor: pointer; font-weight: 600; min-height: 44px; display: flex; align-items: center; }
.bk-check form { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.bk-s3f { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 16px; }
.bk-s3f label { display: grid; gap: 4px; font-size: 14px; color: var(--muted); }
.bk-s3f .bk-btns { grid-column: 1 / -1; }
.bk-inl { margin-left: auto; }
.bk-parts summary { cursor: pointer; white-space: nowrap; }
.bk-parts a, .bk-parts span { display: block; font-size: 13px; padding: 2px 0; }
.bk-steps { margin: 0; padding-left: 20px; }
.bk-steps li { margin: 4px 0; }
@media (max-width: 700px) {
	.bk-status { grid-template-columns: 1fr; }
	.bk-s3f { grid-template-columns: 1fr; }
	.bk-s3f input, .bk-s3f select, .bk-check textarea { font-size: 16px; }
	.bk-dl { grid-template-columns: 1fr; gap: 2px; }
	.bk-dl dd { margin-bottom: 8px; }
}

/* Claude ↔ CRM (MCP): súhlas s pripojením a nastavenia (inc/mcp_auth.php, inc/mcp_lib.php) */
.mcp-auth { display: flex; justify-content: center; padding: 6vh 0 40px; }
.mcp-auth-card { max-width: 560px; width: 100%; padding: 26px 24px; }
.mcp-auth-card h1 { font-size: 21px; line-height: 1.3; margin: 10px 0 8px; }
.mcp-auth-logo { width: 52px; height: 52px; border-radius: 14px; background: var(--line2); display: grid; place-items: center; color: var(--ink, #1f2937); }
.mcp-auth-who { margin: 0 0 14px; }
.mcp-auth-list { list-style: none; padding: 0; margin: 0 0 14px; display: grid; gap: 10px; }
.mcp-auth-list li { display: flex; gap: 10px; align-items: flex-start; line-height: 1.45; }
.mcp-auth-list li > svg { flex-shrink: 0; margin-top: 3px; }
.mcp-auth-w { display: flex; gap: 8px; align-items: flex-start; cursor: pointer; }
.mcp-auth-w input { margin-top: 4px; width: 18px; height: 18px; flex-shrink: 0; }
.mcp-auth-dest { font-size: 13.5px; }
.mcp-auth-btns { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 16px; }
.mcp-auth-btns .crm-btn { min-height: 44px; }
.mcp-url { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin: 10px 0; }
.mcp-url code { padding: 6px 10px; border-radius: 8px; background: var(--line2); font-size: 14px; overflow-wrap: anywhere; }
.mcp-steps { margin: 6px 0 14px; padding-left: 20px; line-height: 1.55; }
.mcp-set { display: grid; gap: 8px; }
.mcp-tw { overflow-x: auto; }

/* ===================== prevádzky klienta (Miško 23. 10. 2026) ===================== */
.crm-sites { display: flex; align-items: center; gap: 10px; background: #fff; border: 1px solid var(--line); border-radius: 12px; padding: 8px 10px; margin: 0 0 12px; min-width: 0; }
.crm-sites-l { flex: none; display: inline-flex; align-items: center; gap: 6px; font-size: 11.5px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: var(--muted); padding-left: 4px; }
.crm-sites-r { display: flex; gap: 6px; overflow-x: auto; scroll-snap-type: x proximity; scrollbar-width: thin; min-width: 0; padding: 2px; -webkit-overflow-scrolling: touch; overscroll-behavior-x: contain; }
.crm-site-p, .crm button.crm-site-p { flex: none; scroll-snap-align: start; display: inline-flex; align-items: center; gap: 6px; min-height: 36px; padding: 6px 12px; border-radius: 999px; border: 1px solid var(--line); background: #fff; color: var(--text); font-size: 13.5px; text-decoration: none; white-space: nowrap; cursor: pointer; touch-action: manipulation; }
.crm-site-p b { font-weight: 600; }
.crm-site-p small { font-size: 11.5px; font-weight: 700; color: var(--muted); background: var(--line2); border-radius: 999px; padding: 0 7px; line-height: 18px; }
.crm-site-p svg { color: var(--muted); }
.crm-site-p.on { background: var(--navy2); border-color: var(--navy2); color: #fff; }
.crm-site-p.on svg, .crm-site-p.on small { color: #fff; }
.crm-site-p.on small { background: rgba(255,255,255,.18); }
.crm-site-add, .crm button.crm-site-add { border-style: dashed; color: var(--muted); background: transparent; }
@media (hover: hover) and (pointer: fine) {
	.crm-site-p:not(.on):hover { border-color: var(--in); background: #FAFBFD; }
	.crm-site-add:hover { color: var(--text); }
}
.crm-site-p:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
.crm-site-head { display: flex; gap: 14px; align-items: flex-start; background: #fff; border: 1px solid var(--line); border-left: 4px solid var(--navy2); border-radius: 12px; padding: 14px 16px; margin: 0 0 14px; }
.crm-site-ic { flex: none; width: 40px; height: 40px; border-radius: 12px; display: grid; place-items: center; background: var(--accentbg); color: var(--navy2); }
.crm-site-b { flex: 1; min-width: 0; }
.crm-site-b h2 { margin: 0 0 2px; font-size: 17px; line-height: 1.3; display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.crm-site-b p { margin: 2px 0 0; font-size: 14px; color: var(--muted); overflow-wrap: anywhere; }
.crm-site-b p a { color: inherit; }
.crm-site-who { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 6px; }
.crm-site-who a { color: var(--text) !important; font-weight: 600; text-decoration: none; }
.crm-site-note { margin-top: 6px !important; }
.crm-site-a { display: flex; gap: 2px; }
.crm-site-chip { display: inline-flex; align-items: center; gap: 3px; max-width: 100%; font-size: 11.5px; font-weight: 600; line-height: 18px; padding: 0 8px; border-radius: 999px; background: var(--accentbg); color: var(--navy2) !important; text-decoration: none; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; vertical-align: middle; }
a.crm-site-chip:hover { text-decoration: underline; }
.crm-person.is-muted { opacity: .8; }
.crm-person-sites { display: flex; flex-wrap: wrap; gap: 4px; margin: 2px 0; }
.crm-persons-other { margin-top: 8px; border-top: 1px solid var(--line2); padding-top: 8px; }
.crm-persons-other summary { cursor: pointer; font-size: 13px; font-weight: 600; color: var(--muted); padding: 4px 0; }
.crm-persons-other[open] summary { margin-bottom: 6px; }
.crm-sites-card .crm-addr.is-on { background: var(--accentbg); border-radius: 10px; padding: 8px 10px; margin: 0 -10px; border-top-color: transparent; }
.crm-sites-card .crm-addr-b b a { color: var(--navy2); text-decoration: none; }
.crm-sites-card .crm-addr-b b a:hover { text-decoration: underline; }
.crm-addr-more { margin-top: 10px; padding-top: 8px; border-top: 1px dashed var(--line); }
.crm-addr-more .crm-addr { border-top: 0; padding: 6px 0 0; }
.crm-sites-hint { margin: 10px 0 0; }
.crm-chips-col { flex-direction: column; align-items: stretch; }
.crm-site-q select { max-width: 100%; }
.crm-site-cfnote { margin: 0 0 12px; }
/* tím prevádzky a termíny prevádzok (Miško 23. 10. 2026) */
.crm-site-team { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; margin-top: 8px; padding-top: 8px; border-top: 1px dashed var(--line); font-size: 13.5px; }
.crm-site-team-l { display: inline-flex; align-items: center; gap: 5px; font-size: 11.5px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: var(--muted); }
.crm-site-tm { display: inline-flex; align-items: center; gap: 5px; min-width: 0; max-width: 100%; }
.crm-site-tm-k { color: var(--muted); }
.crm-site-tm b { font-weight: 600; color: var(--text); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.crm-site-tm.is-inh b { font-weight: 500; color: var(--muted); }
.crm-site-tm small { flex: none; font-size: 11px; color: var(--muted); background: var(--line2); border-radius: 999px; padding: 0 7px; line-height: 17px; }
.crm-site-teamchip { display: flex; align-items: center; gap: 4px; margin-top: 4px; font-size: 12px; font-weight: 600; color: var(--navy2); overflow-wrap: anywhere; }
.crm-site-teamchip svg { flex: none; }
.crm-term-sites { list-style: none; margin: 6px 0 0; padding: 6px 0 0; border-top: 1px dashed var(--line); display: grid; gap: 5px; font-size: 12.5px; }
.crm-term-sites li { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; min-width: 0; }
.crm-term-sites .crm-term-st { text-decoration: none; font-weight: 600; }
.crm-bd-term > .crm-site-chip { align-self: flex-start; }
@media (max-width: 720px) {
	.crm-site-team { gap: 4px 10px; }
	.crm-sites { flex-direction: column; align-items: stretch; gap: 6px; padding: 8px; }
	.crm-sites-l { padding-left: 2px; }
	.crm-site-head { padding: 12px; gap: 10px; }
	.crm-site-ic { width: 34px; height: 34px; border-radius: 10px; }
}

/* diskusie: skrátený text a vlákna (Miško 23. 10. 2026) */
.crm-clamp { --clamp: 3; max-height: calc(var(--clamp) * 1.5em); overflow: hidden; line-height: 1.5; }
.crm-clamp.is-over:not(.is-open) { -webkit-mask-image: linear-gradient(to bottom, #000 calc(100% - 1.6em), transparent); mask-image: linear-gradient(to bottom, #000 calc(100% - 1.6em), transparent); }
.crm-clamp.is-open { max-height: none; }
.crm-clamp .crm-html > :first-child { margin-top: 0; }
.crm-clamp .crm-html > :last-child { margin-bottom: 0; }
.crm-bd-disc .crm-clamp { margin-top: 4px; font-size: 14px; color: #2E3548; }
button.crm-clamp-t, button.crm-thr-rep, button.crm-thr-more { display: inline-flex !important; align-items: center; gap: 5px; margin: 4px 12px 0 0 !important; padding: 2px 0 !important; min-height: 0; background: none !important; border: 0 !important; box-shadow: none !important; font: inherit; font-size: 13px !important; font-weight: 600 !important; line-height: 1.4; color: var(--blue) !important; cursor: pointer; }
button.crm-clamp-t[hidden] { display: none !important; }
button.crm-thr-rep { color: var(--muted) !important; }
@media (hover: hover) and (pointer: fine) { button.crm-clamp-t:hover, button.crm-thr-rep:hover, button.crm-thr-more:hover { text-decoration: underline; color: var(--blue) !important; } }
.crm-thr-list { list-style: none; margin: 8px 0 0; padding: 0 0 0 12px; border-left: 2px solid var(--line2); }
.crm-thr-r { display: flex; gap: 8px; padding: 6px 0; }
.crm-thr-r.is-older { display: none; }
.crm-thr.is-all .crm-thr-r.is-older { display: flex; }
.crm-thr-rb { flex: 1; min-width: 0; font-size: 13.5px; }
.crm-thr-rb .crm-clamp { margin-top: 2px; font-size: 13.5px; }
.crm-notes > .crm-note-rf { list-style: none; margin: 0 0 4px 40px; padding: 0 0 8px 10px; border-left: 2px solid var(--line2); }
.crm-notes > .crm-note-rf .crm-bd-reply { margin-top: 0; }
.crm-notes > .crm-note-rf .crm-bd-reply summary { color: var(--muted); }
.crm-notes > .crm-note-rf .crm-bd-reply[open] summary { color: var(--blue); }
@media (pointer: coarse) { button.crm-clamp-t, button.crm-thr-rep, button.crm-thr-more { min-height: 36px; } }
.crm-clamp + button.crm-clamp-t { display: flex !important; }
.crm-clamp + button.crm-clamp-t[hidden] { display: none !important; }

/* Import z Raynetu: denník plánovača */
.crm-cron-j { margin-bottom: 14px; }
.crm-cron-j > summary { display: flex; align-items: center; gap: 10px; cursor: pointer; list-style: none; }
.crm-cron-j > summary::-webkit-details-marker { display: none; }
.crm-cron-j > summary h3 { margin: 0; display: inline-flex; align-items: center; gap: 6px; }
.crm-cron-j tr.is-late td { background: var(--latebg); }
.crm-chip-warn { background: var(--latebg); color: var(--late); border-color: transparent; }

/* finančné zdravie z Finstatu */
.fh-badge { display: inline-flex; align-items: center; gap: 6px; padding: 2px 9px; border-radius: 999px; font-size: 12.5px; font-weight: 700; white-space: nowrap; background: var(--line2); color: var(--muted); }
.fh-badge i { width: 8px; height: 8px; border-radius: 50%; background: currentColor; flex: 0 0 auto; }
.fh-badge.fh-risk { background: var(--t-orange-bg); color: var(--t-orange); }
.fh-badge.fh-warn { background: var(--t-yellow-bg); color: var(--t-yellow); }
.fh-badge.fh-ok { background: var(--t-green-bg); color: var(--t-green); }
a.fh-hero { text-decoration: none; }
.fh-rs { list-style: none; margin: 4px 0 10px; padding: 0; display: grid; gap: 4px; }
.fh-rs li { position: relative; padding-left: 16px; font-size: 14px; }
.fh-rs li::before { content: ""; position: absolute; left: 2px; top: .55em; width: 7px; height: 7px; border-radius: 50%; background: var(--t-green-c); }
.fh-rs li.fh-risk::before { background: var(--t-orange-c); }
.fh-rs li.fh-warn::before { background: var(--t-yellow-c); }
.fh-rs li.fh-risk { font-weight: 600; }
.fh-debts { margin: 6px 0 10px; }
.fh-kv { margin: 6px 0; }
.fh-foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; margin-top: 8px; }

/* výzva na úhradu faktúr po splatnosti (inc/vyzva.php) */
.vy-sum { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 12px; margin-bottom: 14px; }
.vy-form { display: grid; gap: 12px; }
.vy-inv { border: 1px solid var(--line2); border-radius: 10px; padding: 8px 12px 10px; margin: 0; }
.vy-inv legend { font-weight: 700; font-size: 13.5px; padding: 0 4px; }
.vy-row { display: flex !important; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; padding: 6px 0; border-bottom: 1px solid var(--line2); }
.vy-row:last-child { border-bottom: 0; }
.vy-row .vy-left { margin-left: auto; white-space: nowrap; }
.vy-form textarea { font-family: inherit; line-height: 1.5; min-height: 320px; }
.vy-sug { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin-top: 6px; }
.vy-sug .crm-chip { cursor: pointer; }
.vy-badge { display: inline-flex; align-items: center; padding: 1px 8px; border-radius: 999px; font-size: 12px; font-weight: 600; white-space: nowrap; background: var(--t-yellow-bg); color: var(--t-yellow); }
.vy-badge.vy-paid { background: var(--t-green-bg); color: var(--t-green); }
.vy-badge.vy-unpaid, .vy-badge.vy-partial { background: var(--t-red-bg); color: var(--t-red); }
.vy-li { flex: 1 1 100%; display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-top: 2px; }
.zd-bd-c li .vy-li a.vy-btn { font-weight: 600; }
.vy-cell { white-space: nowrap; }
/* stav vymáhania: platobný rozkaz (fialová), exekúcia (tmavočervená) */
.vy-badge.vy-legal { margin-left: 4px; }
.vy-badge.vy-pr { background: #EFE9FB; color: #5B3BA8; }
.vy-badge.vy-ex { background: #F9E3E3; color: #8E1F1F; }
.vy-legal-f { display: block; margin-top: 6px; white-space: normal; }
.vy-legal-f > summary { display: inline-flex; align-items: center; gap: 4px; cursor: pointer; color: var(--accent); font-size: 12.5px; font-weight: 600; list-style: none; }
.vy-legal-f > summary::-webkit-details-marker { display: none; }
.vy-legal-f form { display: grid; gap: 8px; margin-top: 8px; padding: 10px 12px; min-width: 280px; max-width: 420px; border: 1px solid var(--line); border-radius: 10px; background: var(--card, #fff); box-shadow: 0 6px 18px rgba(16,24,48,.08); }
.vy-legal-f fieldset { display: grid; grid-template-columns: 1fr 1fr; gap: 6px 10px; margin: 0; padding: 0; border: 0; }
.vy-legal-f legend { grid-column: 1 / -1; padding: 0; margin-bottom: 2px; font-weight: 700; font-size: 12.5px; color: var(--text); }
.vy-legal-f label { display: grid; gap: 2px; font-size: 12px; color: var(--muted); }
.vy-legal-f .vy-lf-note, .vy-legal-f .crm-chk { grid-column: 1 / -1; }
.vy-legal-f input[type=date], .vy-legal-f input[type=text] { width: 100%; min-width: 0; font-size: 13.5px; padding: 5px 8px; border: 1px solid var(--in); border-radius: 7px; }
.vy-legal-f .crm-btn { justify-self: start; }
.vy-hist li { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; }
.vy-bulkbar { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; margin: 0 0 10px; }
.vy-late th.vy-sel, .vy-late td.vy-sel { width: 34px; text-align: center; }
.vy-late td.vy-sel input, .vy-late th.vy-sel input { width: 18px; height: 18px; }
.vy-invs { margin-top: 2px; }
.vy-invs > summary { cursor: pointer; font-size: 12.5px; color: var(--muted); list-style: none; display: inline-flex; flex-wrap: wrap; gap: 4px 8px; align-items: baseline; }
.vy-invs > summary::-webkit-details-marker { display: none; }
.vy-invs > summary .vy-invs-t { color: var(--brand, #1d4ed8); font-weight: 600; white-space: nowrap; }
.vy-invs > summary .vy-invs-t::after { content: " ▾"; }
.vy-invs[open] > summary .vy-invs-t::after { content: " ▴"; }
.vy-invs-l { max-height: 280px; overflow: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; margin-top: 6px; border: 1px solid var(--line2); border-radius: 8px; background: var(--card, #fff); }
.vy-invs-l table { margin: 0; }
.vy-invs-l thead th { position: sticky; top: 0; background: var(--card, #fff); z-index: 1; }
.vy-blist td.vy-st { min-width: 160px; }
.vy-st.is-ok { color: var(--t-green); font-weight: 600; }
.vy-st.is-err { color: var(--t-red); font-weight: 600; }
.vy-st.is-skip { color: var(--muted); }
/* Nastavenia CRM → Ostrý režim */
.live-row { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 16px; padding: 12px 0; border-top: 1px solid var(--line2); }
.live-t { flex: 1 1 320px; min-width: 0; }
.live-t small { display: block; color: var(--muted); margin-top: 2px; }
.live-st { display: inline-block; padding: 1px 8px; border-radius: 999px; font-size: 11.5px; font-weight: 700; letter-spacing: .03em; background: var(--soonbg); color: var(--soon); text-transform: uppercase; }
.live-row.is-on .live-st { background: var(--okbg); color: var(--ok); }
.live-a { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.live-a input[type="password"] { width: 180px; }
/* Ostrý režim → Celé CRM: plný chod CRM (inc/golive_lib.php) */
.gl-box { margin: 4px 0 12px; padding: 12px 14px; border: 1px solid var(--line2); border-radius: 10px; background: var(--card, #fff); }
.gl-box.is-bad { border-color: var(--late); background: var(--latebg); }
.gl-box h3 { margin: 0 0 8px; font-size: 14px; }
.gl-box > summary { cursor: pointer; padding: 2px 0; }
.gl-box[open] > summary { margin-bottom: 10px; }
.gl-list { list-style: none; margin: 0 0 10px; padding: 0; display: grid; gap: 8px; }
.gl-list li { display: flex; gap: 10px; align-items: flex-start; }
.gl-list li > div { min-width: 0; }
.gl-list small { display: block; color: var(--muted); margin-top: 1px; overflow-wrap: anywhere; }
.gl-b { flex: 0 0 22px; width: 22px; height: 22px; border-radius: 999px; display: inline-flex; align-items: center; justify-content: center; margin-top: 1px; }
.gl-ok { background: var(--okbg); color: var(--ok); }
.gl-warn { background: var(--soonbg); color: var(--soon); }
.gl-block { background: var(--latebg); color: var(--late); }
.gl-info { background: #EEF1F6; color: #4B5563; }
.gl-stop { color: var(--late); font-weight: 600; }
.gl-go, .gl-off, .gl-retry { padding-top: 10px; border-top: 1px solid var(--line2); }
.gl-mk { margin: 0 0 10px; }
.gl-mk td { vertical-align: top; }
.gl-cfg textarea { width: 100%; font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: 12.5px; }
@media (max-width: 640px) { .live-a input[type="password"] { width: 100%; } .gl-mk th:nth-child(3), .gl-mk td:nth-child(3) { display: none; } }

/* Kontrola formulárov na ponuky (inc/wl_selftest_lib.php): ikonka vpravo hore len pre administrátorov – farba podľa výsledku a čas poslednej kontroly */
.top-forms { display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px; border-radius: 50%; text-decoration: none; transition: background .15s; }   /* kontrola formulárov: len bodka (čas v popise) */
.top-forms:hover { background: var(--bg); text-decoration: none; }
.top-forms .tf-dot { width: 12px; height: 12px; border-radius: 50%; background: var(--muted2, #9AA3B5); box-shadow: 0 0 0 3px rgba(154,163,181,.18); }
.top-forms.tf-ok .tf-dot { background: #1A9E5C; box-shadow: 0 0 0 3px rgba(26,158,92,.18); }
.top-forms.tf-warn .tf-dot { background: #E8890C; box-shadow: 0 0 0 3px rgba(232,137,12,.2); }
.top-forms.tf-fail .tf-dot { background: #D93A3A; box-shadow: 0 0 0 3px rgba(217,58,58,.2); }
.top-forms.tf-stale .tf-dot, .top-forms.tf-none .tf-dot { background: transparent; box-shadow: inset 0 0 0 2px var(--muted2, #9AA3B5); }
.top-forms.tf-run .tf-dot { animation: tf-pulse 1.4s ease-in-out infinite; }
@keyframes tf-pulse { 50% { opacity: .35; } }
@media (prefers-reduced-motion: reduce) { .top-forms.tf-run .tf-dot { animation: none; } }
.wlst .crm-card-h { gap: 12px; flex-wrap: wrap; }
.wlst .crm-card-h form { margin-left: auto; }
.wlst-sum { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 10px; margin: 4px 0 10px; }
.wlst-sum b { font-size: 15px; }
.wlst-g { display: flex; gap: 6px; align-items: flex-start; margin: 6px 0; padding: 8px 10px; border-radius: 8px; font-size: 13.5px; }
.wlst-g svg { flex: none; margin-top: 2px; }
.wlst-g.warn { background: var(--t-orange-bg); color: var(--t-orange); }
.wlst-g.fail { background: var(--t-red-bg); color: var(--t-red); }
.wlst-run { display: flex; align-items: center; gap: 8px; font-weight: 600; }
.wlst-t td { vertical-align: top; }
.wlst-t td .crm-s { overflow-wrap: anywhere; }
.wlst-t tr.lv-fail td:first-child { box-shadow: inset 3px 0 0 var(--t-red-c); }
.wlst-t tr.lv-warn td:first-child { box-shadow: inset 3px 0 0 var(--t-orange-c); }
.wlst-h { margin-top: 10px; }
.wlst-h summary { cursor: pointer; font-weight: 600; font-size: 13.5px; }
.wlst-h ul { list-style: none; margin: 8px 0 0; padding: 0; display: grid; gap: 5px; font-size: 13px; }
.wlst-t th.num, .wlst-t td.num { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }

/* Osvedčenia zamestnancov (?page=crm_osv, inc/osv.php): karty osvedčení (mobil – fotka priamo z telefónu), stav výzvy, prehľad pre správcu, pás výzvy navrchu stránok */
.osv-banner { display: flex; align-items: center; gap: 10px; margin: 0 0 14px; padding: 11px 14px; border-radius: 12px; background: var(--t-orange-bg); color: var(--t-orange); text-decoration: none; font-size: 14px; line-height: 1.35; }
.osv-banner:hover { text-decoration: none; filter: brightness(.98); }
.osv-banner svg { flex: none; }
.osv-banner span { flex: 1 1 auto; min-width: 0; }
.osv-banner em { flex: none; font-style: normal; font-weight: 700; padding: 6px 12px; border-radius: 8px; background: #fff; color: var(--t-orange); }
.osv-banner.late { background: var(--t-red-bg); color: var(--t-red); }
.osv-banner.late em { color: var(--t-red); }
.osv-state { display: flex; gap: 10px; align-items: flex-start; padding: 12px 14px; border-radius: 12px; margin: 0 0 14px; font-size: 14px; line-height: 1.45; }
.osv-state svg { flex: none; margin-top: 1px; }
.osv-state.ok { background: var(--t-green-bg); color: var(--t-green); }
.osv-state.due { background: var(--t-blue-bg); color: var(--t-blue); }
.osv-state.late { background: var(--t-red-bg); color: var(--t-red); }
.osv-note { display: flex; gap: 8px; align-items: center; padding: 9px 12px; border-radius: 10px; background: var(--bg); font-size: 13.5px; }
.osv-how ol { margin: 0; padding: 0; list-style: none; counter-reset: osv; display: grid; gap: 8px; font-size: 14px; line-height: 1.45; }
.osv-how li { counter-increment: osv; position: relative; padding-left: 32px; min-height: 22px; }
.osv-how li::before { content: counter(osv); position: absolute; left: 0; top: 0; width: 22px; height: 22px; border-radius: 50%; background: var(--bluebg); color: var(--blue); font-weight: 800; font-size: 12.5px; display: grid; place-items: center; }
.osv-list { display: grid; gap: 14px; margin-bottom: 14px; }
.osv-card { margin: 0 !important; scroll-margin-top: calc(var(--top, 60px) + 50px); }
.osv-card.is-verify { box-shadow: inset 3px 0 0 var(--t-orange-c); }
.osv-card.is-new { border-style: dashed; }
.osv-card-h { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; margin-bottom: 12px; }
.osv-card-h h2 { display: flex; align-items: center; gap: 6px; font-size: 15.5px; overflow-wrap: anywhere; }
.osv-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.osv-dates { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.osv-dates > div { display: flex; flex-direction: column; gap: 5px; min-width: 0; }
.osv-dates label { font-size: 12.5px; font-weight: 700; color: var(--muted); }
.osv-file { gap: 8px; }
.osv-cur { display: flex; align-items: center; gap: 10px; padding: 8px; border: 1px solid var(--line); border-radius: 10px; text-decoration: none; color: var(--text); max-width: 100%; }
.osv-cur img { width: 56px; height: 56px; object-fit: cover; border-radius: 6px; flex: none; background: var(--bg); }
.osv-cur span { min-width: 0; overflow-wrap: anywhere; font-size: 13.5px; font-weight: 600; }
.osv-cur small { display: block; color: var(--blue); font-weight: 600; }
.osv-pdf { flex: none; width: 56px; height: 56px; border-radius: 6px; display: grid; place-items: center; background: var(--t-red-bg); color: var(--t-red); font-weight: 800; font-size: 13px; }
.osv-up { position: relative; display: flex; align-items: center; justify-content: center; gap: 8px; min-height: 48px; padding: 10px 14px; border: 1.5px dashed var(--in); border-radius: 10px; color: var(--blue); font-weight: 700; font-size: 14px; cursor: pointer; text-align: center; touch-action: manipulation; }
.osv-up:hover { background: var(--bluebg); }
.osv-up.has { border-style: solid; border-color: var(--t-green-c); color: var(--t-green); background: var(--t-green-bg); }
.osv-up input { position: absolute; inset: 0; opacity: 0; cursor: pointer; width: 100%; }
.osv-up:focus-within { box-shadow: 0 0 0 3px rgba(47,95,208,.18); }
.osv-left { justify-content: flex-start; }
.osv-todo { margin: 0 0 4px; padding-left: 20px; display: grid; gap: 4px; font-size: 14px; color: var(--t-orange); }
.osv-go[aria-disabled="true"] { opacity: .6; }
.osv-camp p { font-size: 14px; line-height: 1.5; }
.osv-bar { height: 8px; border-radius: 4px; background: var(--bg); overflow: hidden; margin: 6px 0 4px; }
.osv-bar i { display: block; height: 100%; background: var(--t-green-c); border-radius: 4px; }
.osv-late { color: var(--t-red); font-weight: 700; }
.osv-start { margin-top: 10px; }
.osv-start summary { cursor: pointer; font-weight: 700; color: var(--blue); }
.osv-need { padding: 10px 14px; }
.osv-need summary { cursor: pointer; display: flex; gap: 8px; align-items: center; }
.osv-pick { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 8px 16px; margin: 10px 0; }
.osv-pick .crm-chk { align-items: flex-start; }
.osv-pick .crm-chk input { margin-top: 2px; flex: none; }
.osv-pick small { display: block; font-weight: 400; overflow-wrap: anywhere; }
.osv-mode { display: flex; gap: 6px; align-items: flex-start; font-size: 13.5px; padding: 8px 10px; border-radius: 8px; }
.osv-mode.test { background: var(--t-orange-bg); color: var(--t-orange); }
.osv-mode.live { background: var(--t-green-bg); color: var(--t-green); }
.osv-mode svg { flex: none; margin-top: 2px; }
.osv-t td { vertical-align: top; }
.osv-t tr.is-late td:first-child { box-shadow: inset 3px 0 0 var(--t-red-c); }
.osv-mini { list-style: none; margin: 0; padding: 0; display: grid; gap: 3px; font-size: 13px; }
.osv-miss { color: var(--t-orange); font-size: 12px; font-weight: 600; }
.osv-v { font-size: 12.5px; font-weight: 600; }
.osv-v.expired { color: var(--t-red); }
.osv-v.soon { color: var(--t-orange); }
.osv-acts { white-space: nowrap; }
.osv-acts form { display: inline-block; margin: 0 4px 4px 0; }
.osv-log summary { cursor: pointer; font-weight: 700; display: flex; gap: 6px; align-items: center; }
.osv-log ul { list-style: none; margin: 10px 0 0; padding: 0; display: grid; gap: 5px; font-size: 13.5px; }
@media (max-width: 700px) {
	.osv-banner { margin: 0 0 10px; font-size: 13.5px; }
	.osv-banner em { padding: 5px 10px; }
	.osv-card .crm-actions .crm-btn { flex: 1 1 auto; justify-content: center; }
	.osv-send .crm-actions form, .osv-send .crm-actions .crm-btn { width: 100%; justify-content: center; }
	.osv-acts { white-space: normal; }
}

/* Stav klienta v hlavičke karty – výber priamo v karte (Miško 24. 10. 2026) */
.crm-statef { display: inline-flex; margin: 0; }
.crm-statef .crm-state-sel { appearance: none; -webkit-appearance: none; border: 1px solid transparent; border-radius: 999px; padding: 3px 26px 3px 11px; min-height: 28px; font: 600 13px/1.3 inherit; font-family: inherit; cursor: pointer;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%23555E72' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 9px center; }
.crm-statef .crm-state-sel.crm-state-B_ACTUAL { background-color: var(--okbg); color: #166A3E; }
.crm-statef .crm-state-sel.crm-state-A_POTENTIAL { background-color: var(--bluebg); color: var(--blue); }
.crm-statef .crm-state-sel.crm-state-C_DEFERRED { background-color: var(--soonbg); color: var(--soon); }
.crm-statef .crm-state-sel.crm-state-D_UNATTRACTIVE { background-color: #EEF0F3; color: #6b7280; }
.crm-statef .crm-state-sel:focus-visible { outline: 2px solid var(--blue); outline-offset: 2px; }
@media (hover: hover) and (pointer: fine) { .crm-statef .crm-state-sel:hover { border-color: currentColor; } }
@media (pointer: coarse) { .crm-statef .crm-state-sel { min-height: 36px; font-size: 16px; } }
