/* =====================================================================
   Objednávání pacientů – základní styl
   Klidný interní nástroj: systémové fonty, tyrkysový akcent, vzdušné karty.
   ===================================================================== */

:root {
	--bg:          #f4f6f8;
	--surface:     #ffffff;
	--ink:         #1f2933;
	--ink-soft:    #52606d;
	--muted:       #7b8794;
	--line:        #e4e9ee;
	--primary:     #0f766e;
	--primary-dk:  #115e59;
	--primary-bg:  #e6f3f1;
	--danger:      #b42318;
	--danger-bg:   #fdecea;
	--ok:          #1d7a3e;
	--ok-bg:       #e7f4ec;
	--info-bg:     #e8f0fb;
	--info:        #1d4ed8;
	--radius:      10px;
	--shadow:      0 1px 2px rgba(16, 24, 40, .06), 0 1px 3px rgba(16, 24, 40, .04);
	--font:        system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}

* { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; }

body {
	margin: 0;
	font-family: var(--font);
	font-size: 15px;
	line-height: 1.5;
	color: var(--ink);
	background: var(--bg);
}

h1, h2, h3 { line-height: 1.25; margin: 0; }

a { color: var(--primary); text-decoration: none; }
a:hover { text-decoration: underline; }

:focus-visible {
	outline: 2px solid var(--primary);
	outline-offset: 2px;
	border-radius: 4px;
}

.muted { color: var(--muted); }
.note  { margin-top: 1.5rem; }

/* --- Topbar --------------------------------------------------------- */
.topbar {
	background: var(--surface);
	border-bottom: 1px solid var(--line);
}
.topbar__inner {
	max-width: 1100px;
	margin: 0 auto;
	padding: 0 1.25rem;
	height: 56px;
	display: flex;
	align-items: center;
	gap: 1.5rem;
}
.brand {
	display: flex;
	align-items: center;
	gap: .65rem;
	font-weight: 650;
	color: var(--ink);
	letter-spacing: -.01em;
}
.brand:hover { text-decoration: none; }
.brand__logo { height: 32px; width: auto; display: block; }
.brand__name { padding-left: .65rem; border-left: 1px solid var(--line); line-height: 1; }

.topnav {
	display: flex;
	gap: .25rem;
	margin-right: auto;
}
.topnav a {
	color: var(--ink-soft);
	padding: .4rem .7rem;
	border-radius: 7px;
	font-weight: 500;
}
.topnav a:hover { background: var(--bg); text-decoration: none; }
.topnav a.is-active { color: var(--primary-dk); background: var(--primary-bg); }

.topbar__user {
	display: flex;
	align-items: center;
	gap: .9rem;
}
.who { color: var(--ink-soft); font-weight: 500; }

/* --- Layout --------------------------------------------------------- */
.container {
	max-width: 1100px;
	margin: 0 auto;
	padding: 1.75rem 1.25rem 3rem;
}
.page-head { margin-bottom: 1.25rem; }
.page-head h1 { font-size: 1.5rem; }

/* --- Cards ---------------------------------------------------------- */
.card {
	background: var(--surface);
	border: 1px solid var(--line);
	border-radius: var(--radius);
	box-shadow: var(--shadow);
	padding: 1.25rem 1.4rem;
	margin-bottom: 1.25rem;
}
.card__title {
	font-size: .8rem;
	text-transform: uppercase;
	letter-spacing: .05em;
	color: var(--muted);
	margin-bottom: .9rem;
	font-weight: 600;
}

/* Definiční seznam klíč → hodnota */
.kv {
	display: grid;
	grid-template-columns: 180px 1fr;
	gap: .55rem 1rem;
	margin: 0;
}
.kv dt { color: var(--ink-soft); }
.kv dd { margin: 0; font-weight: 500; }

/* Štítky (oddělení) */
.pill-list { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .5rem; }
.pill {
	background: var(--primary-bg);
	color: var(--primary-dk);
	padding: .3rem .7rem;
	border-radius: 999px;
	font-size: .85rem;
	font-weight: 600;
}

/* --- Buttons -------------------------------------------------------- */
.btn {
	display: inline-block;
	font: inherit;
	font-weight: 600;
	cursor: pointer;
	border: 1px solid transparent;
	border-radius: 8px;
	padding: .5rem .95rem;
	line-height: 1.2;
	background: var(--surface);
	color: var(--ink);
}
.btn:hover { text-decoration: none; }
.btn--primary { background: var(--primary); color: #fff; }
.btn--primary:hover { background: var(--primary-dk); }
.btn--ghost { border-color: var(--line); color: var(--ink-soft); }
.btn--ghost:hover { background: var(--bg); }
.btn--add { background: #cfe6d8; border-color: #a9d2b8; color: #155e33; }
.btn--add:hover { background: #c2e0cd; border-color: #98cba9; }
.btn--block { width: 100%; text-align: center; }

/* --- Forms ---------------------------------------------------------- */
.form__row { margin-bottom: 1rem; }
.form__row label { display: block; margin-bottom: .35rem; font-weight: 500; color: var(--ink-soft); }
.form__row--check { display: flex; align-items: center; gap: .5rem; }
.form__row--check label { display: inline; margin: 0; }
.form__row--check input { width: auto; }
.input {
	width: 100%;
	font: inherit;
	padding: .55rem .7rem;
	border: 1px solid var(--line);
	border-radius: 8px;
	background: #fff;
	color: var(--ink);
}
.input:focus-visible { outline: 2px solid var(--primary); outline-offset: 0; border-color: var(--primary); }
.field-error { display: block; margin-top: .35rem; color: var(--danger); font-size: .85rem; }
.form__actions { margin-top: 1.25rem; }
.form__errors {
	list-style: none; margin: 0 0 1rem; padding: .7rem .9rem;
	background: var(--danger-bg); color: var(--danger);
	border-radius: 8px; font-size: .9rem;
}

/* --- Flash messages ------------------------------------------------- */
.flashes { margin-bottom: 1.25rem; }
.flash {
	padding: .7rem 1rem;
	border-radius: 8px;
	margin-bottom: .6rem;
	font-weight: 500;
}
.flash--info    { background: var(--info-bg);   color: var(--info); }
.flash--success { background: var(--ok-bg);     color: var(--ok); }
.flash--error   { background: var(--danger-bg); color: var(--danger); }

/* --- Login ---------------------------------------------------------- */
.login {
	min-height: 70vh;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 1.5rem;
}
.login__card {
	background: var(--surface);
	border: 1px solid var(--line);
	border-radius: 14px;
	box-shadow: var(--shadow);
	padding: 2rem;
	width: 100%;
	max-width: 380px;
}
.login__title { font-size: 1.3rem; letter-spacing: -.01em; }
.login__subtitle { color: var(--muted); margin: .4rem 0 1.5rem; }

/* --- Responsive ----------------------------------------------------- */
@media (max-width: 640px) {
	.topbar__inner { gap: 1rem; padding: 0 1rem; }
	.who { display: none; }
	.brand__name { display: none; }
	.kv { grid-template-columns: 1fr; gap: .15rem .5rem; }
	.kv dt { color: var(--muted); font-size: .85rem; }
	.kv dd { margin-bottom: .5rem; }
	.container { padding: 1.25rem 1rem 2.5rem; }
}

/* =====================================================================
   Kalendář objednávek
   ===================================================================== */

.page-head--row { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; flex-wrap: wrap; }
.page-head__sub { font-size: 1rem; font-weight: 500; color: var(--muted); }

/* Lišta nad kalendářem: přepínač oddělení + navigace dní */
.cal-toolbar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	flex-wrap: wrap;
	margin-bottom: 1.1rem;
}
.dept-switch { display: flex; align-items: center; flex-wrap: wrap; gap: .35rem; }
.dept-switch__label { color: var(--muted); font-size: .85rem; margin-right: .15rem; }
.dept-switch a {
	color: var(--ink-soft);
	padding: .32rem .7rem;
	border: 1px solid var(--line);
	border-radius: 999px;
	font-size: .85rem;
	font-weight: 600;
	background: var(--surface);
}
.dept-switch a:hover { background: var(--bg); text-decoration: none; }
.dept-switch a.is-active { background: var(--primary-bg); color: var(--primary-dk); border-color: transparent; }

.date-nav { display: flex; align-items: center; gap: .4rem; flex-wrap: wrap; }
.date-nav__range { color: var(--ink-soft); font-weight: 500; margin-left: .35rem; }

.cal-toolbar__controls { display: flex; align-items: center; gap: .8rem; flex-wrap: wrap; margin-left: auto; }
.view-switch { display: inline-flex; border: 1px solid var(--line); border-radius: 9px; overflow: hidden; background: var(--surface); }
.view-switch a { padding: .34rem .8rem; font-size: .85rem; font-weight: 500; color: var(--ink-soft); border-left: 1px solid var(--line); }
.view-switch a:first-child { border-left: 0; }
.view-switch a:hover { background: var(--bg); text-decoration: none; }
.view-switch a.is-active { background: var(--primary); color: #fff; }

.btn--sm { padding: .32rem .6rem; font-size: .85rem; border-radius: 7px; }
.btn--danger { background: var(--danger); color: #fff; }
.btn--danger:hover { background: #99231a; }

.pill--link { display: inline-block; }
.pill--link:hover { background: var(--primary); color: #fff; text-decoration: none; }

/* Seznam dní */
.cal { display: flex; flex-direction: column; gap: .7rem; }

.day {
	background: var(--surface);
	border: 1px solid var(--line);
	border-radius: var(--radius);
	box-shadow: var(--shadow);
	overflow: hidden;
}
.day--today { border-color: var(--primary); box-shadow: 0 0 0 1px var(--primary); }
.day--blocked { background: var(--danger-bg); border-color: #f3c9c4; }
.day--blocked .day__head { border-bottom-color: #f3c9c4; }
.day--blocked .day__note,
.day--blocked .day__notebar,
.day--blocked .day__foot { background: transparent; }
.day--blocked .day__notebar,
.day--blocked .day__foot { border-top-color: #f3c9c4; }
.day--blocked .day__col + .day__col { border-left-color: #f3c9c4; }
.day--full .day__head { background: var(--danger-bg); }

.day__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: .6rem .9rem;
	border-bottom: 1px solid var(--line);
}
.day__when { display: flex; align-items: baseline; gap: .5rem; }
.day__dow { font-weight: 700; color: var(--ink); min-width: 1.6em; }
.day__date { color: var(--ink-soft); font-weight: 500; }
.day__today-tag {
	font-size: .7rem; text-transform: uppercase; letter-spacing: .05em;
	background: var(--primary); color: #fff; padding: .08rem .4rem; border-radius: 5px; font-weight: 700;
}

.day__note { margin: 0; padding: .4rem .9rem; font-size: .85rem; color: var(--ink-soft); background: #fbfbfc; }

.day__body { display: grid; grid-template-columns: 1fr 1fr; }
.day__col { padding: .7rem .9rem; }
.day__col + .day__col { border-left: 1px solid var(--line); }
.day__col-title {
	font-size: .72rem; text-transform: uppercase; letter-spacing: .05em;
	color: var(--muted); font-weight: 700; margin-bottom: .45rem;
}
.day__empty { color: var(--line); margin: 0; }

.day__foot { padding: .6rem .9rem; border-top: 1px solid var(--line); background: #fcfcfd; }
.day__locked { color: var(--muted); font-size: .85rem; }

/* Badge kapacity */
.badge {
	display: inline-block; padding: .2rem .55rem; border-radius: 999px;
	font-size: .8rem; font-weight: 700; white-space: nowrap;
}
.badge--ok   { background: var(--ok-bg);     color: var(--ok); }
.badge--full { background: var(--danger-bg); color: var(--danger); }
.badge--off  { background: #eef1f4;          color: var(--muted); }

/* Objednávky v rámci dne */
.bookings { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: .4rem; }
.booking {
	display: flex; align-items: flex-start; justify-content: space-between; gap: .6rem;
	padding: .4rem .5rem; border: 1px solid var(--line); border-radius: 7px; background: #fff;
}
.booking__main { display: flex; flex-direction: column; gap: .05rem; min-width: 0; }
.booking__name { font-weight: 600; }
.booking__proc { color: var(--ink-soft); font-size: .85rem; }
.booking__actions { display: flex; gap: .5rem; flex-shrink: 0; font-size: .82rem; }
.booking__actions a.danger { color: var(--danger); }

/* --- Formulář objednávky ------------------------------------------- */
.card--form { max-width: 720px; }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0 1.1rem; }
.form__row--wide { grid-column: 1 / -1; }
.field-hint { display: block; margin-top: .3rem; color: var(--muted); font-size: .8rem; }
.confirm-text { margin: 0 0 .4rem; font-size: 1.05rem; }

@media (max-width: 640px) {
	.cal-toolbar { gap: .7rem; }
	.day__body { grid-template-columns: 1fr; }
	.day__col + .day__col { border-left: 0; border-top: 1px solid var(--line); }
	.form-grid { grid-template-columns: 1fr; }
	.date-nav__range { width: 100%; margin: .2rem 0 0; }
}

/* Denní poznámka v buňce dne */
.day__notebar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: .75rem;
	flex-wrap: wrap;
	padding: .5rem .9rem;
	border-top: 1px solid var(--line);
	background: #fcfcfd;
}
.day__usernote {
	margin: 0;
	flex: 1 1 60%;
	min-width: 0;
	color: var(--ink);
	font-size: .9rem;
	padding-left: .6rem;
	border-left: 3px solid var(--primary);
}
.day__note-link { font-size: .82rem; color: var(--ink-soft); white-space: nowrap; }
.day__note-link:hover { color: var(--primary); }

/* =====================================================================
   Administrace
   ===================================================================== */

.card-lead { margin: 0 0 1rem; }

/* Rozcestník */
.admin-cards {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
	gap: .9rem;
}
.admin-card {
	display: block;
	position: relative;
	background: var(--surface);
	border: 1px solid var(--line);
	border-radius: var(--radius);
	box-shadow: var(--shadow);
	padding: 1.1rem 1.2rem;
	color: var(--ink);
}
a.admin-card:hover { border-color: var(--primary); text-decoration: none; }
.admin-card__title { font-size: 1.05rem; margin-bottom: .3rem; }
.admin-card__desc { color: var(--ink-soft); font-size: .9rem; margin: 0; }
.admin-card--soon { opacity: .65; }
.admin-card__tag {
	position: absolute; top: .8rem; right: .9rem;
	font-size: .68rem; text-transform: uppercase; letter-spacing: .04em;
	background: #eef1f4; color: var(--muted); padding: .12rem .45rem; border-radius: 5px; font-weight: 700;
}

/* Tabulka */
.table-wrap { overflow-x: auto; }
.table { width: 100%; border-collapse: collapse; font-size: .92rem; }
.table th, .table td { text-align: left; padding: .6rem .7rem; border-bottom: 1px solid var(--line); vertical-align: middle; }
.table th { font-size: .72rem; text-transform: uppercase; letter-spacing: .04em; color: var(--muted); font-weight: 700; }
.table tbody tr:hover { background: #fafbfc; }
.table .cell-actions { text-align: right; white-space: nowrap; }
.row--inactive { opacity: .55; }

.u-name { display: block; font-weight: 600; }
.u-login { display: block; color: var(--muted); font-size: .82rem; }

.role-tag {
	display: inline-block; background: var(--primary-bg); color: var(--primary-dk);
	padding: .08rem .45rem; border-radius: 5px; font-size: .78rem; font-weight: 600;
}

/* Formulářové detaily administrace */
.kv--tight { grid-template-columns: 140px 1fr; margin-bottom: 1.2rem; padding-bottom: 1.2rem; border-bottom: 1px solid var(--line); }
.checkbox-list { display: flex; flex-direction: column; gap: .35rem; }
.checkbox-list label { display: flex; align-items: center; gap: .5rem; font-weight: 500; color: var(--ink); }
.checkbox-list input { width: auto; }
.form__check { display: flex; align-items: center; gap: .5rem; }
.form__check label { margin: 0; }
.form__check input { width: auto; }

/* Administrace – limity, blokace, inline formuláře */
.head-actions { display: flex; gap: .5rem; flex-wrap: wrap; }
.dept-switch--standalone { margin-bottom: 1rem; }
.section-title { font-size: 1rem; margin: 0 0 .9rem; padding-bottom: .5rem; border-bottom: 1px solid var(--line); }

.input--num { max-width: 7rem; }

.limit-default { margin-bottom: 1.1rem; }
.limit-week { display: flex; flex-wrap: wrap; gap: .8rem; margin-bottom: 1.1rem; }
.limit-day { display: flex; flex-direction: column; gap: .3rem; }
.limit-day label { font-size: .82rem; color: var(--ink-soft); font-weight: 600; }
.limit-day .input { max-width: 6rem; }

.table--compact th, .table--compact td { padding: .45rem .6rem; }
.table--tep { font-size: .82rem; }
.table--tep th, .table--tep td { padding: .4rem .55rem; }
.cell-clip { display: inline-block; max-width: 11ch; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; vertical-align: middle; }
.cell-clip--wide { max-width: 14ch; }
.btn--icon { padding: .32rem; line-height: 0; border-color: var(--line); color: var(--ink-soft); }
.btn--icon svg { width: 16px; height: 16px; display: block; }
.btn--icon:hover { background: var(--bg); }
.btn--icon-danger { color: var(--danger); }
.btn--icon-danger:hover { background: var(--danger-bg); border-color: #f3c9c4; }
.btn--icon + .btn--icon { margin-left: .3rem; }

/* Filtr TEP listiny */
.tep-filtr-card { margin-bottom: 1rem; }
.tep-filtr { display: flex; flex-wrap: wrap; gap: .7rem .9rem; align-items: flex-end; }
.tep-filtr .f-group { display: flex; flex-direction: column; gap: .25rem; }
.tep-filtr .f-lbl { font-size: .72rem; text-transform: uppercase; letter-spacing: .04em; color: var(--muted); font-weight: 700; }
.tep-filtr input, .tep-filtr select { font: inherit; padding: .42rem .55rem; border: 1px solid var(--line); border-radius: 7px; background: var(--surface); color: var(--ink); }
.tep-filtr input:focus, .tep-filtr select:focus { outline: 2px solid var(--primary); outline-offset: 0; border-color: var(--primary); }
.tep-filtr .f-group--search { flex: 1 1 17rem; }
.tep-filtr .f-group--search input { width: 100%; }
.tep-filtr .f-dates { display: flex; align-items: center; gap: .35rem; }
.tep-filtr .f-dates input { width: 9.5rem; }
.tep-filtr .f-dash { color: var(--muted); }
.tep-filtr .f-group--actions { display: flex; align-items: center; gap: .7rem; margin-left: auto; }
.tep-pocet { color: var(--muted); font-size: .85rem; white-space: nowrap; }
.table--tep thead th[data-sort] { cursor: pointer; user-select: none; }
.table--tep thead th[data-sort]:hover { color: var(--ink-soft); }
.table--tep thead th.is-sorted-asc, .table--tep thead th.is-sorted-desc { color: var(--primary-dk); }
.table--tep thead th.is-sorted-asc::after { content: "▲"; font-size: .65em; margin-left: .35em; vertical-align: middle; }
.table--tep thead th.is-sorted-desc::after { content: "▼"; font-size: .65em; margin-left: .35em; vertical-align: middle; }
.tep-stav { padding: .55rem .2rem 0; color: var(--muted); font-size: .85rem; min-height: 1.2rem; }
#tepSentinel { height: 1px; }

.form--inline { display: flex; align-items: flex-end; gap: .8rem; flex-wrap: wrap; margin-top: 1rem; }
.form--inline .form__row { margin: 0; }
.form--inline .form__row--grow,
.form--inline .form__row--btn { display: flex; flex-direction: column; }
.form--inline .form__row--grow { flex: 1 1 16rem; }
.form--inline .form__row--btn { justify-content: flex-end; }

.link-danger { color: var(--danger); font-size: .85rem; cursor: pointer; }
.link-danger:hover { text-decoration: underline; }

/* TEP – statistiky nad listinou */
.stat-row { display: flex; gap: .8rem; flex-wrap: wrap; margin-bottom: 1.1rem; }
.stat {
	display: flex; flex-direction: column; align-items: center;
	min-width: 6.5rem; padding: .7rem 1rem;
	background: var(--surface); border: 1px solid var(--line);
	border-radius: var(--radius); box-shadow: var(--shadow);
}
.stat__num { font-size: 1.6rem; font-weight: 700; line-height: 1; color: var(--ink); }
.stat__lbl { font-size: .78rem; text-transform: uppercase; letter-spacing: .04em; color: var(--muted); margin-top: .3rem; }

/* Datum narození u identifikace pacienta */
.booking__dob { color: var(--muted); font-weight: 400; font-size: .85em; }
.u-dob { display: block; color: var(--muted); font-size: .82rem; }

/* Odlišení operací a přijetí v kalendáři */
.booking--operace { background: var(--ok-bg); border-color: #cfe7d8; }
.booking--prijeti { background: #eef1f4; border-color: #e0e5ea; }

/* Vyhledávání v kalendáři */
.cal-search { display: flex; align-items: center; flex-wrap: wrap; gap: .2rem .6rem; margin: 0 0 .9rem; }
.cal-search input { flex: 1 1 22rem; max-width: 30rem; font: inherit; padding: .5rem .7rem; border: 1px solid var(--line); border-radius: 9px; background: var(--surface); color: var(--ink); }
.cal-search input:focus { outline: 2px solid var(--primary); outline-offset: 0; border-color: var(--primary); }
.cal-search__info { color: var(--muted); font-size: .85rem; white-space: nowrap; }
.cal .booking, .cal .day { transition: opacity .12s ease; }
.cal.is-searching .booking.is-dim { opacity: .28; }
.cal.is-searching .day.is-dim { opacity: .45; }
.cal.is-searching .booking.is-match { background: #fff7d6; border-color: #e6c200; box-shadow: 0 0 0 2px #e0a800; }
.cal.is-searching .booking.is-match-active { background: #ffe89e; border-color: #d99800; box-shadow: 0 0 0 3px #d99800; }
.cal-search__nav { display: inline-flex; align-items: center; gap: .3rem; }
.cal-search__nav[hidden] { display: none; }
.cal-search__btn { padding: .3rem .5rem; line-height: 1; }
.cal-search__count { color: var(--ink-soft); font-size: .85rem; font-variant-numeric: tabular-nums; min-width: 3rem; }

/* ---- Našeptávač diagnóz (formulář objednávky) ---- */
.dg-pole { position: relative; }
.dg-input { position: relative; }
.dg-vyber {
	position: absolute;
	z-index: 30;
	left: 0; right: 0; top: 100%;
	margin-top: 2px;
	background: var(--surface);
	border: 1px solid var(--line);
	border-radius: 8px;
	box-shadow: var(--shadow);
	max-height: 16rem;
	overflow-y: auto;
	display: none;
}
.dg-vyber.is-open { display: block; }
.dg-vyber__item {
	display: flex;
	gap: .5rem;
	align-items: baseline;
	padding: .45rem .6rem;
	cursor: pointer;
	border-bottom: 1px solid var(--line);
}
.dg-vyber__item:last-child { border-bottom: 0; }
.dg-vyber__item:hover,
.dg-vyber__item.is-active { background: var(--primary-bg); }
.dg-vyber__kod { font-weight: 700; color: var(--primary-dk); white-space: nowrap; }
.dg-vyber__nazev { color: var(--ink); }
.dg-vyber__prazdno { padding: .45rem .6rem; color: var(--muted); }
.dg-vybrano { margin-top: .35rem; font-size: .88rem; color: var(--ink-soft); }
.dg-vybrano:empty { display: none; }

/* ---- Návod (průvodce importem číselníku) ---- */
.navod { margin: .4rem 0 1.1rem 1.4rem; color: var(--ink-soft); }
.navod li { margin: .3rem 0; line-height: 1.45; }
.u-small { font-size: .82rem; }

/* ---- Audit log (administrace) ---- */
.audit-sum { margin-bottom: .6rem; }
.nowrap { white-space: nowrap; }
.table--audit td { vertical-align: top; }
.pager {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: .8rem;
	margin-top: 1rem;
}
.pager__info { color: var(--ink-soft); font-size: .9rem; }
.btn.is-disabled { opacity: .45; pointer-events: none; cursor: default; }

/* ---- Sekce Uživatelé – synchronizace LDAP ---- */
.users-lead { display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap; margin-bottom: 1rem; }
.users-lead .card-lead { margin: 0; flex: 1 1 20rem; }
.users-lead__action { margin: 0; }

/* ---- Správa oddělení – výpis vazeb při mazání ---- */
.vazby-list { margin: .4rem 0 1rem 1.4rem; }
.vazby-list li { margin: .2rem 0; }

/* ---- Tisk – odznak „vytištěno" a filtr na čekací listině ---- */
.tep-filtr .f-check { display: inline-flex; align-items: center; gap: .35rem; font-size: .85rem; color: var(--ink-soft); white-space: nowrap; }
.badge--print { background: var(--info-bg); color: var(--info); }

/* ---- Tisk denního programu (kalendář) ---- */
.day__print-link { margin-left: auto; font-size: .8rem; color: var(--primary); white-space: nowrap; }
.day__print-link:hover { text-decoration: underline; }

/* ===== Statistiky / dashboard (Přehled) ===== */

/* Přepínač oddělení + období (admin) */
.stat-filter { display: flex; align-items: flex-end; gap: .6rem; flex-wrap: wrap; }
.stat-filter__field { display: flex; flex-direction: column; gap: .2rem; font-size: .8rem; color: var(--ink-soft); }
.stat-filter__field select { font: inherit; padding: .4rem .6rem; border: 1px solid var(--line); border-radius: 9px; background: var(--surface); color: var(--ink); }
.stat-filter__field select:focus { outline: 2px solid var(--primary); outline-offset: 0; border-color: var(--primary); }

/* Mřížka karet se statistikami */
.stat-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem; margin-bottom: 1.1rem; }
.stat-grid > .card { margin: 0; }

.card__hint { margin: -.4rem 0 .7rem; color: var(--muted); font-size: .82rem; }
.stat-note { font-size: .82rem; margin: .2rem 0 1.4rem; }

/* Široký graf (časová řada) */
.chart-wide { width: 100%; overflow: hidden; }
.chart-svg { display: block; width: 100%; height: auto; }

/* Horizontální pruhové grafy */
.bars { display: flex; flex-direction: column; gap: .45rem; }
.bars__row { display: grid; grid-template-columns: 9.5rem 1fr 2.5rem; align-items: center; gap: .5rem; }
.bars__label { font-size: .82rem; color: var(--ink-soft); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.bars__track { background: var(--bg); border-radius: 6px; height: .85rem; overflow: hidden; }
.bars__fill { display: block; height: 100%; background: var(--primary); border-radius: 6px; min-width: 2px; }
.bars__val { font-size: .82rem; font-weight: 600; color: var(--ink); text-align: right; }

/* Prstencový graf + legenda */
.donut { display: flex; align-items: center; gap: 1rem; flex-wrap: wrap; }
.donut__chart { flex: 0 0 auto; }
.donut-svg { display: block; width: 140px; height: 140px; }
.legend { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: .3rem; }
.legend__item { display: flex; align-items: center; gap: .45rem; font-size: .85rem; }
.legend__dot { width: .7rem; height: .7rem; border-radius: 3px; flex: 0 0 auto; }
.legend__label { color: var(--ink-soft); }
.legend__val { margin-left: auto; font-weight: 600; color: var(--ink); padding-left: .8rem; }

@media (max-width: 640px) {
	.stat-grid { grid-template-columns: 1fr; }
	.bars__row { grid-template-columns: 7rem 1fr 2.2rem; }
	.stat-filter { width: 100%; }
	.stat-filter__field { flex: 1 1 8rem; }
}
