/* Kudla meister dashboard + client portal extras — layered on widget.css */

.kudla-dashboard { max-width: 760px; }
.kudla-portal { max-width: 560px; }

/* ================================================================= *
 *  SaaS shell (front-end meister dashboard) — sidebar + main area
 * ================================================================= */

.kudla-dashboard:not(.kudla-dashboard--embed) {
	max-width: 1180px;
	margin: 0 auto;
	padding: 0;
	border: 1px solid var(--kudla-border);
	border-radius: var(--kudla-radius-lg, 18px);
	background: var(--kudla-surface);
	box-shadow: var(--kudla-shadow-lg, 0 24px 60px -30px rgba(15, 23, 32, 0.35));
	overflow: hidden;
}

.kudla-app {
	display: grid;
	grid-template-columns: 264px minmax(0, 1fr);
	min-height: min(82vh, 760px);
}

.kudla-app__sidebar {
	display: flex;
	flex-direction: column;
	gap: 22px;
	padding: 24px 18px;
	background: var(--kudla-primary);
	color: var(--kudla-primary-ink, #fff);
	border-right: 1px solid rgba(255, 255, 255, 0.08);
}

.kudla-app__brand {
	display: flex;
	align-items: center;
	gap: 11px;
	padding: 4px 8px 18px;
	border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}
.kudla-app__logo { max-height: 34px; width: auto; display: block; }
.kudla-app__mark {
	display: grid;
	place-items: center;
	width: 36px;
	height: 36px;
	border-radius: 10px;
	background: rgba(255, 255, 255, 0.16);
	font-weight: 700;
	font-size: 0.85rem;
	letter-spacing: 0.02em;
}
.kudla-app__biz {
	font-weight: 650;
	font-size: 1.02rem;
	letter-spacing: -0.01em;
}

.kudla-app__nav {
	display: flex;
	flex-direction: column;
	gap: 3px;
	flex: 1 1 auto;
}

.kudla-navbtn {
	position: relative;
	display: flex;
	align-items: center;
	gap: 12px;
	width: 100%;
	padding: 11px 13px;
	border: 0;
	border-radius: var(--kudla-radius-sm);
	background: transparent;
	color: rgba(255, 255, 255, 0.72);
	font: inherit;
	font-size: 0.92rem;
	font-weight: 550;
	text-align: left;
	cursor: pointer;
	transition: background 0.14s ease, color 0.14s ease;
}
.kudla-navbtn svg { flex: none; opacity: 0.85; transition: opacity 0.14s ease; }
.kudla-navbtn:hover { background: rgba(255, 255, 255, 0.08); color: #fff; }
.kudla-navbtn:hover svg { opacity: 1; }
.kudla-navbtn:focus-visible {
	outline: 2px solid rgba(255, 255, 255, 0.7);
	outline-offset: 2px;
}
.kudla-navbtn.is-active {
	background: rgba(255, 255, 255, 0.14);
	color: #fff;
	font-weight: 650;
}
.kudla-navbtn.is-active svg { opacity: 1; }
.kudla-navbtn.is-active::before {
	content: "";
	position: absolute;
	left: -18px;
	top: 50%;
	transform: translateY(-50%);
	width: 3px;
	height: 22px;
	border-radius: 0 3px 3px 0;
	background: var(--kudla-accent, #b08968);
}

.kudla-app__foot {
	display: flex;
	flex-direction: column;
	gap: 6px;
	padding-top: 16px;
	border-top: 1px solid rgba(255, 255, 255, 0.12);
}
.kudla-app__user {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 4px 13px 8px;
}
.kudla-app__avatar {
	display: grid;
	place-items: center;
	width: 30px;
	height: 30px;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.18);
	font-size: 0.74rem;
	font-weight: 700;
	flex: none;
}
.kudla-app__uname {
	font-size: 0.86rem;
	color: rgba(255, 255, 255, 0.82);
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.kudla-navbtn--signout { color: rgba(255, 255, 255, 0.7); }
.kudla-navbtn--signout:hover { background: rgba(255, 255, 255, 0.09); color: #fff; }

.kudla-app__main {
	display: flex;
	flex-direction: column;
	min-width: 0;
	background: var(--kudla-bg, #fff);
}

.kudla-app__topbar {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 17px 30px;
	border-bottom: 1px solid var(--kudla-border);
	background: color-mix(in srgb, var(--kudla-surface) 88%, transparent);
	backdrop-filter: saturate(1.4) blur(8px);
	-webkit-backdrop-filter: saturate(1.4) blur(8px);
}
.kudla-app__title {
	margin: 0;
	font-size: 1.18rem;
	font-weight: 680;
	letter-spacing: -0.015em;
	color: var(--kudla-text);
}
@supports not (backdrop-filter: blur(1px)) {
	.kudla-app__topbar { background: var(--kudla-surface); }
}
.kudla-app__burger {
	display: none;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	border: 1px solid var(--kudla-border);
	border-radius: var(--kudla-radius-sm);
	background: var(--kudla-surface);
	color: var(--kudla-text);
	cursor: pointer;
}

.kudla-app__content {
	flex: 1 1 auto;
	padding: 26px 30px 40px;
	overflow-y: auto;
}

.kudla-app__scrim { display: none; }

/* ---- mobile / tablet: sidebar becomes an off-canvas drawer ---- */
@media (max-width: 860px) {
	.kudla-dashboard:not(.kudla-dashboard--embed) {
		border-radius: 0;
		border-left: 0;
		border-right: 0;
	}
	.kudla-app { grid-template-columns: minmax(0, 1fr); }
	.kudla-app__burger { display: inline-flex; }

	.kudla-app__sidebar {
		position: fixed;
		z-index: 60;
		inset: 0 auto 0 0;
		width: 82vw;
		max-width: 300px;
		transform: translateX(-104%);
		transition: transform 0.22s ease;
	}
	.kudla-app__sidebar.is-open { transform: translateX(0); }

	.kudla-app__scrim.is-on {
		display: block;
		position: fixed;
		inset: 0;
		z-index: 55;
		background: rgba(15, 23, 32, 0.44);
	}

	.kudla-app__content { padding: 18px 16px 26px; }
	.kudla-app__topbar { padding: 14px 16px; }
}

@media (prefers-reduced-motion: reduce) {
	.kudla-app__sidebar { transition: none; }
}

/* Embedded in wp-admin: the JS skips the shell entirely and renders the
   flat `.kudla-tabs` nav + panes, so no shell overrides are needed here. */

/* ================================================================= *
 *  Standalone full-screen app (StandalonePage.php — no theme chrome)
 * ================================================================= */

body.kudla-standalone {
	margin: 0;
	height: 100vh;
	height: 100dvh;
	overflow: hidden;
	background: var(--kudla-primary);
	color: var(--kudla-text);
	-webkit-font-smoothing: antialiased;
	overscroll-behavior: none;
}
body.kudla-standalone .kudla-dashboard {
	max-width: none;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	box-shadow: none;
	background: var(--kudla-bg, #fff);
}
body.kudla-standalone .kudla-app {
	height: 100vh;
	height: 100dvh;
	min-height: 0;
	grid-template-columns: 276px minmax(0, 1fr);
}
body.kudla-standalone .kudla-app__sidebar {
	position: sticky;
	top: 0;
	align-self: start;
	height: 100vh;
	height: 100dvh;
	overflow-y: auto;
}
body.kudla-standalone .kudla-app__main {
	height: 100vh;
	height: 100dvh;
	overflow: hidden;
}
body.kudla-standalone .kudla-app__topbar {
	position: sticky;
	top: 0;
	z-index: 5;
}
body.kudla-standalone .kudla-app__content {
	flex: 1 1 auto;
	min-height: 0;
	overflow-y: auto;
	scroll-behavior: smooth;
	-webkit-overflow-scrolling: touch;
}

@media (max-width: 860px) {
	body.kudla-standalone .kudla-app,
	body.kudla-standalone .kudla-app__main { height: 100dvh; }
	body.kudla-standalone .kudla-app__sidebar { height: 100dvh; }
}

/* Logged-out / no-access: centre the card in the full viewport. */
@supports selector(:has(*)) {
	body.kudla-standalone .kudla-dashboard__mount:has(> .kudla-auth) {
		display: grid;
		place-items: center;
		min-height: 100dvh;
		padding: 20px;
	}
	body.kudla-standalone .kudla-dashboard__mount:has(> .kudla-auth) .kudla-auth {
		margin: 0;
	}
}

/* ---- content column: keep line lengths readable (pro feel) ---- */
.kudla-app__content > .kudla-tabpane,
.kudla-app__notice { max-width: 940px; }
.kudla-app__notice:empty { display: none; }
.kudla-app__notice { margin-bottom: 14px; }

/* ================================================================= *
 *  AJAX section loading — skeletons + fade-in
 * ================================================================= */

.kudla-app__content.is-loading { pointer-events: none; }

.kudla-skelcard {
	border: 1px solid var(--kudla-border);
	border-radius: var(--kudla-radius-sm);
	padding: 16px 18px;
	margin-bottom: 12px;
	background: var(--kudla-surface);
	max-width: 940px;
}
.kudla-skel {
	background: linear-gradient(
		100deg,
		var(--kudla-border) 30%,
		var(--kudla-tint-strong, #eef0f2) 50%,
		var(--kudla-border) 70%
	);
	background-size: 240% 100%;
	border-radius: 6px;
	animation: kudla-shimmer 1.25s ease-in-out infinite;
}
.kudla-skel--line { height: 12px; margin: 8px 0; }
.kudla-skel--sm { width: 38%; }
.kudla-skel--md { width: 66%; }

@keyframes kudla-shimmer {
	0% { background-position: 100% 0; }
	100% { background-position: -140% 0; }
}

.kudla-fadein { animation: kudla-fadein 0.2s ease both; }
@keyframes kudla-fadein {
	from { opacity: 0; transform: translateY(4px); }
	to { opacity: 1; transform: none; }
}

@media (prefers-reduced-motion: reduce) {
	.kudla-skel { animation: none; }
	.kudla-fadein { animation: none; }
}

/* ================================================================= *
 *  Sign-in / no-access card
 * ================================================================= */

.kudla-auth {
	max-width: 420px;
	margin: 6vh auto;
	padding: 32px 30px 34px;
	border: 1px solid var(--kudla-border);
	border-radius: var(--kudla-radius-lg, 18px);
	background: var(--kudla-surface);
	box-shadow: var(--kudla-shadow-lg, 0 24px 60px -30px rgba(15, 23, 32, 0.35));
}
.kudla-auth__brand {
	display: flex;
	align-items: center;
	gap: 11px;
	margin-bottom: 22px;
}
.kudla-auth__logo { max-height: 38px; width: auto; }
.kudla-auth__mark {
	display: grid;
	place-items: center;
	width: 40px;
	height: 40px;
	border-radius: 11px;
	background: var(--kudla-primary);
	color: var(--kudla-primary-ink, #fff);
	font-weight: 700;
	font-size: 0.9rem;
}
.kudla-auth__biz { font-weight: 650; font-size: 1.05rem; }
.kudla-auth__title {
	margin: 0 0 6px;
	font-size: 1.25rem;
	font-weight: 680;
	letter-spacing: -0.01em;
}
.kudla-auth__sub {
	margin: 0 0 22px;
	font-size: 0.9rem;
	color: var(--kudla-muted);
}
.kudla-auth__form { display: flex; flex-direction: column; gap: 15px; }
.kudla-auth__form .kudla-btn { margin-top: 4px; }

.kudla-pwwrap { position: relative; display: block; }
.kudla-pwwrap .kudla-input { width: 100%; padding-right: 68px; }
.kudla-pwtoggle {
	position: absolute;
	top: 50%;
	right: 8px;
	transform: translateY(-50%);
	border: 0;
	background: transparent;
	color: var(--kudla-primary);
	font: inherit;
	font-size: 0.8rem;
	font-weight: 600;
	padding: 6px 8px;
	cursor: pointer;
	border-radius: var(--kudla-radius-sm);
}
.kudla-pwtoggle:hover { background: var(--kudla-tint); }

/* ================================================================= *
 *  Modal dialog (replaces window.prompt / confirm)
 * ================================================================= */

.kudla-modal {
	position: fixed;
	inset: 0;
	z-index: 1000;
	display: grid;
	place-items: center;
	padding: 20px;
	background: rgba(15, 23, 32, 0.5);
	-webkit-backdrop-filter: blur(2px);
	backdrop-filter: blur(2px);
	animation: kudla-modal-fade 0.14s ease;
}
.kudla-modal__card {
	width: 100%;
	max-width: 430px;
	max-height: calc(100vh - 40px);
	overflow-y: auto;
	background: var(--kudla-surface, #fff);
	color: var(--kudla-text, #1f2933);
	border: 1px solid var(--kudla-border, #e7e5e1);
	border-radius: var(--kudla-radius-lg, 16px);
	box-shadow: 0 24px 60px -18px rgba(15, 23, 32, 0.5);
	animation: kudla-modal-pop 0.18s cubic-bezier(0.22, 1, 0.36, 1);
}
.kudla-modal__head { padding: 20px 22px 0; }
.kudla-modal__title {
	margin: 0;
	font-size: 1.06rem;
	font-weight: 680;
	letter-spacing: -0.01em;
}
.kudla-modal__body {
	padding: 12px 22px 4px;
	display: flex;
	flex-direction: column;
	gap: 12px;
}
.kudla-modal__sub {
	margin: 0;
	font-size: 0.88rem;
	color: var(--kudla-muted, #6b7280);
}
.kudla-modal__err {
	padding: 6px 22px 0;
	color: var(--kudla-danger, #b3261e);
	font-size: 0.85rem;
}
.kudla-modal__err:empty { display: none; }
.kudla-modal__foot {
	display: flex;
	justify-content: flex-end;
	gap: 8px;
	padding: 16px 22px 20px;
}
.kudla-modal .kudla-input { width: 100%; }

.kudla-btn--danger {
	background: var(--kudla-danger, #b3261e);
	border-color: var(--kudla-danger, #b3261e);
	color: #fff;
}
.kudla-btn--danger:hover {
	background: color-mix(in srgb, var(--kudla-danger, #b3261e) 88%, #000);
	color: #fff;
}
@supports not (color: color-mix(in srgb, white, black)) {
	.kudla-btn--danger:hover { background: #8f1e17; }
}

@keyframes kudla-modal-fade { from { opacity: 0; } to { opacity: 1; } }
@keyframes kudla-modal-pop {
	from { transform: translateY(8px) scale(0.98); opacity: 0; }
	to { transform: none; opacity: 1; }
}
@media (prefers-reduced-motion: reduce) {
	.kudla-modal, .kudla-modal__card { animation: none; }
}

/* ---- Tabs ---- */
.kudla-tabs {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin-bottom: var(--kudla-sp-4);
	padding-bottom: 10px;
	border-bottom: 1px solid var(--kudla-border);
}
.kudla-tab {
	padding: 8px 14px;
	border: 1px solid transparent;
	border-radius: var(--kudla-radius-pill);
	background: transparent;
	color: var(--kudla-muted);
	font: inherit;
	font-weight: 550;
	cursor: pointer;
	transition: background 0.14s ease, color 0.14s ease;
}
.kudla-tab:hover { background: var(--kudla-tint); color: var(--kudla-text); }
.kudla-tab.is-active {
	background: var(--kudla-primary);
	border-color: var(--kudla-primary);
	color: var(--kudla-primary-ink);
}

/* ---- Visit cards ---- */
.kudla-vcard {
	border: 1px solid var(--kudla-border);
	border-radius: var(--kudla-radius-sm);
	padding: 16px 18px;
	margin-bottom: 12px;
	max-width: 940px;
	background: var(--kudla-surface);
	transition: box-shadow 0.14s ease, border-color 0.14s ease, transform 0.14s ease;
}
.kudla-vcard:hover {
	box-shadow: var(--kudla-shadow-sm, 0 6px 20px -12px rgba(15, 23, 32, 0.3));
	border-color: var(--kudla-border-strong, #d4d8dc);
}
.kudla-vcard__head {
	display: flex;
	align-items: center;
	gap: 8px;
	flex-wrap: wrap;
	margin-bottom: 7px;
}
.kudla-vcard__time {
	font-weight: 680;
	font-size: 1.02rem;
	letter-spacing: -0.01em;
	color: var(--kudla-primary);
	font-variant-numeric: tabular-nums;
}
.kudla-vcard__svc { font-size: 0.92rem; }
.kudla-vcard__client { font-size: 0.86rem; color: var(--kudla-muted); }
.kudla-vcard__note {
	font-size: 0.85rem;
	font-style: italic;
	margin-top: 6px;
	padding-left: 10px;
	border-left: 2px solid var(--kudla-border-strong);
	color: var(--kudla-text);
}
.kudla-vcard__acts {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin-top: 12px;
}
.kudla-vcard__reschedule {
	margin-top: 10px;
	padding-top: 10px;
	border-top: 1px solid var(--kudla-line, #eee);
}
.kudla-vcard__reschedule .kudla-input { max-width: 200px; margin-bottom: 8px; }
.kudla-slots {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
}

/* ---- Badges ---- */
.kudla-badge {
	font-size: 0.7rem;
	font-weight: 650;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	padding: 3px 9px;
	border-radius: var(--kudla-radius-pill);
	background: #eef0f2;
	color: #47515b;
	white-space: nowrap;
}
.kudla-badge--confirmed { background: #e4f4e8; color: #1f7a3d; }
.kudla-badge--happened { background: #e2eefb; color: #1c5b9c; }
.kudla-badge--no_show { background: #fdeceb; color: #a12b23; }
.kudla-badge--cancelled { background: #f0f0f0; color: #777; }
.kudla-badge--manual { background: var(--kudla-tint-strong); color: #8a5a1c; }

/* ---- Small buttons (don't inherit the 46px form-button height) ---- */
.kudla-btn--sm {
	min-height: 34px;
	padding: 6px 13px;
	font-size: 0.84rem;
	border-width: 1px;
}

/* ---- Lists / rows ---- */
.kudla-clientlist {
	display: flex;
	flex-direction: column;
	gap: 6px;
	margin-top: 12px;
}
.kudla-clientrow {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 10px;
	padding: 10px 12px;
	border: 1px solid var(--kudla-border);
	border-radius: var(--kudla-radius-sm);
	font-size: 0.9rem;
}

.kudla-cardbox {
	margin-top: 12px;
	padding: 14px;
	border: 1px solid var(--kudla-border-strong);
	border-radius: var(--kudla-radius-sm);
	background: var(--kudla-tint);
}

.kudla-dashboard--admin { max-width: 940px; margin: 16px 0; }

/* ---- Masked-call box ---- */
.kudla-callbox {
	margin-top: 12px;
	padding: 14px 16px;
	border: 1px solid var(--kudla-accent);
	border-radius: var(--kudla-radius-sm);
	background: var(--kudla-tint);
	display: grid;
	gap: 4px;
}
.kudla-callbox--err {
	border-color: color-mix(in srgb, var(--kudla-danger) 35%, white);
	background: var(--kudla-danger-bg);
	color: var(--kudla-danger);
}
.kudla-callbox__num {
	font-size: 1.4rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	color: var(--kudla-primary);
	font-variant-numeric: tabular-nums;
}
.kudla-callbox__pin { font-weight: 600; }
.kudla-callbox__hint { font-size: 0.82rem; color: var(--kudla-muted); }
.kudla-callbox .kudla-btn {
	justify-self: start;
	margin-top: 6px;
	text-decoration: none;
}

@supports not (color: color-mix(in srgb, white, black)) {
	.kudla-callbox--err { border-color: #f3b6b2; }
}

/* ================================================================= *
 *  Treatwell-style time-grid calendar (spec §13)
 * ================================================================= */
.kudla-calbar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px 14px;
	margin-bottom: 14px;
}
.kudla-calbar__nav { display: flex; gap: 6px; }
.kudla-calbar__label {
	font-size: 1.02rem;
	color: var(--kudla-text);
	text-transform: capitalize;
	flex: 1 1 auto;
}
.kudla-seg {
	display: inline-flex;
	border: 1px solid var(--kudla-border-strong);
	border-radius: 999px;
	overflow: hidden;
}
.kudla-seg__btn {
	appearance: none;
	border: 0;
	background: var(--kudla-surface);
	color: var(--kudla-muted);
	font: inherit;
	padding: 6px 14px;
	cursor: pointer;
}
.kudla-seg__btn.is-on { background: var(--kudla-primary); color: var(--kudla-primary-ink, #fff); }

.kudla-tgrid {
	position: relative;
	display: grid;
	grid-template-columns: 54px 1fr;
	border: 1px solid var(--kudla-border);
	border-radius: var(--kudla-radius, 14px);
	background: var(--kudla-surface);
	overflow: hidden;
	box-shadow: var(--kudla-shadow-sm, 0 1px 2px rgba(17, 24, 39, .05));
}
.kudla-tgrid__axis {
	position: relative;
	height: var(--tg-h);
	border-right: 1px solid var(--kudla-border);
	background: color-mix(in srgb, var(--kudla-tint) 55%, var(--kudla-surface));
}
.kudla-tgrid__hr {
	position: absolute;
	left: 0;
	right: 0;
	transform: translateY(-50%);
	text-align: right;
	padding-right: 7px;
	font-size: 0.62rem;
	font-weight: 500;
	color: var(--kudla-muted);
	font-variant-numeric: tabular-nums;
}
.kudla-tgrid__hr:first-child { transform: translateY(0); }
.kudla-tgrid__cols {
	display: grid;
	position: relative;
}
.kudla-tgrid__col { border-left: 1px solid var(--kudla-border); min-width: 0; }
.kudla-tgrid__col:first-child { border-left: 0; }
.kudla-tgrid__dayhd {
	position: sticky;
	top: 0;
	z-index: 3;
	text-align: center;
	font-size: 0.74rem;
	font-weight: 600;
	padding: 7px 2px;
	background: var(--kudla-surface);
	border-bottom: 1px solid var(--kudla-border);
	text-transform: capitalize;
}
.kudla-tgrid__dayhd.is-today { color: var(--kudla-accent); }
.kudla-tgrid__lane {
	position: relative;
	height: var(--tg-h);
}
.kudla-tgrid__line {
	position: absolute;
	left: 0;
	right: 0;
	border-top: 1px solid color-mix(in srgb, var(--kudla-border) 70%, transparent);
}
.kudla-tgrid__now {
	position: absolute;
	left: 0;
	right: 0;
	border-top: 1.5px solid #e8654e;
	z-index: 6;
	pointer-events: none;
}
.kudla-tgrid__col:first-child .kudla-tgrid__now::before {
	content: "";
	position: absolute;
	left: -3px;
	top: -4px;
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: #e8654e;
}

.kudla-tev {
	position: absolute;
	left: 3px;
	right: 3px;
	display: flex;
	flex-direction: column;
	gap: 1px;
	border-radius: 9px;
	padding: 5px 9px;
	font-size: 0.72rem;
	line-height: 1.3;
	overflow: hidden;
	cursor: grab;
	background: var(--kudla-surface);
	border: 1px solid var(--kudla-border);
	border-left: 3px solid #c7cbd1;
	box-shadow: 0 1px 2px rgba(17, 24, 39, .05);
	z-index: 2;
	touch-action: none;
	transition: box-shadow 0.12s ease, transform 0.12s ease;
}
.kudla-tev:hover { box-shadow: 0 6px 18px -6px rgba(17, 24, 39, .22); z-index: 8; }
.kudla-tev:focus-visible { outline: 2px solid var(--kudla-accent); outline-offset: 1px; }
.kudla-tev.is-dragging {
	cursor: grabbing;
	z-index: 20;
	box-shadow: 0 14px 30px -10px rgba(15, 23, 32, 0.4);
	opacity: 0.96;
}
.kudla-tev.is-group { box-shadow: inset 3px 0 0 var(--kudla-accent), 0 1px 2px rgba(17, 24, 39, .05); }
.kudla-tev__time { font-size: 0.62rem; font-weight: 600; color: var(--kudla-muted); font-variant-numeric: tabular-nums; }
.kudla-tev__t {
	font-weight: 600;
	color: var(--kudla-text);
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.kudla-tev__c { color: var(--kudla-muted); white-space: nowrap; text-overflow: ellipsis; overflow: hidden; }

/* Confirmation-state colours (spec §14) — left accent, near-white fill.
 * Unconfirmed < 24h is deliberately loud (red fill), per the client note:
 * "likus iki 24h, nepatvirtinus — vizito gairę nuspalvinti raudona". */
.kudla-tev--confirmed  { border-left-color: #3aa76d; background: #fbfefc; }
.kudla-tev--awaiting    { border-left-color: #9aa3b0; background: #fefefe; }
.kudla-tev--unconfirmed { border-left-color: #d13b3b; border-left-width: 4px; background: #fdeeee; }
.kudla-tev--unconfirmed .kudla-tev__t { color: #a81f1f; }
.kudla-tev--noshow      { border-left-color: #c3c4c7; background: #fbfbfb; opacity: 0.65; }
.kudla-tev--noshow .kudla-tev__t { text-decoration: line-through; }
/* Read-only blocks for other meisters in the salon view (no client identity). */
.kudla-tev--ghost { opacity: 0.5; pointer-events: none; }
.kudla-tev--ghost .kudla-tev__c { display: none; }
.kudla-tev--block {
	border-left-color: #c9c6c0;
	background: repeating-linear-gradient(-45deg, #efeeeb 0 6px, #f7f6f4 6px 12px);
	color: #7a7f87;
	cursor: default;
	box-shadow: none;
}
.kudla-tev--block:hover { box-shadow: none; }

@media (max-width: 640px) {
	.kudla-tgrid { grid-template-columns: 40px 1fr; }
	.kudla-tev { font-size: 0.68rem; }
}

.kudla-modal__acts { display: flex; flex-wrap: wrap; gap: 8px; }
.kudla-modal__acts .kudla-btn { flex: 1 1 42%; justify-content: center; }
.kudla-modal__hint { font-size: 0.82rem; color: var(--kudla-muted); margin: 0 0 4px; }

.kudla-tev { min-height: 22px; }
.kudla-tev.is-tiny {
	flex-direction: row;
	align-items: baseline;
	gap: 6px;
	padding-top: 3px;
	padding-bottom: 3px;
}
.kudla-tev.is-tiny .kudla-tev__t { -webkit-line-clamp: 1; }
.kudla-tev.is-tiny .kudla-tev__c { display: none; }
.kudla-tgrid__allday {
	position: absolute;
	left: 4px;
	right: 4px;
	top: 3px;
	z-index: 3;
	padding: 3px 9px;
	border-radius: 7px;
	font-size: 0.66rem;
	font-weight: 600;
	color: #7a7f87;
	background: repeating-linear-gradient(-45deg, #edece9 0 6px, #f6f5f3 6px 12px);
	border: 1px solid #e2e0db;
	text-align: center;
}

/* Inline result message inside a visit card (client portal). */
.kudla-notice {
	padding: 12px 14px;
	border-radius: var(--kudla-radius-sm, 8px);
	font-size: 0.92rem;
	line-height: 1.45;
	margin: 8px 0 12px;
	border: 1px solid;
}
.kudla-notice--ok  { background: #ecf7ef; border-color: #7bbf8e; color: #1d5a31; }
.kudla-notice--err { background: #fdeeee; border-color: #e09090; color: #8a1f1f; }
