/* Минимален стил; можеш да допълваш свободно */
body {
	background: #f8fafc;
}
.table td, .table th {
	vertical-align: middle;
}

a.balance {
	text-decoration: none; /* премахва underline */
	font-weight: bold;     /* държи го акцентиран */
}

a.balance:hover {
	text-decoration: underline; /* по избор - underline при hover */
	opacity: 0.85;             /* лек визуален ефект */
}

/* Уеднаквява височината на Select2 и Bootstrap input полетата */
.select2-container .select2-selection--single {
	height: calc(2.25rem + 2px) !important; /* стандартната височина на .form-control */
	padding: 0.375rem 0.75rem;
	border: 1px solid #ced4da;
	border-radius: 0.375rem;
	display: flex;
	align-items: center;
}

/* Уеднаквява шрифта и линията */
.select2-container--default .select2-selection--single .select2-selection__rendered {
	line-height: 1.5 !important;
	font-size: 1rem;
}

/* Иконата за стрелка на Select2 да е по център */
.select2-container--default .select2-selection--single .select2-selection__arrow {
	height: 100%;
	right: 8px;
}

/* Подравняване на стрелката по средата за Select2 */
.select2-container--default .select2-selection--single .select2-selection__arrow {
	top: 50% !important;
	transform: translateY(-50%);
	height: auto !important;
	right: 8px; /* запазваме стандартното отстояние */
}

footer.powered { text-align:center; margin-top:1.25rem; color:#0008; opacity:.45; transition: opacity .2s ease; font-size:.85rem; }
footer.powered:hover { opacity:.9; }
footer.powered a { color: inherit; text-decoration: none; border-bottom: 1px dashed #0003; }
footer.powered a:hover { border-bottom-color: #0008; }

@media print {
	.no-print {
		display: none !important;
	}
}

:root{
	/* палитра */
	--cf-bg:#f7f8fb;
	--cf-card:#ffffff;
	--cf-text:#0f172a;
	--cf-muted:#6b7280;
	--cf-primary:#4f46e5;
	--cf-primary-600:#4338ca;
	--cf-success:#16a34a;
	--cf-danger:#dc2626;
	--cf-border:#e5e7eb;
	--cf-shadow:0 6px 24px rgba(2,6,23,.08), 0 2px 8px rgba(2,6,23,.06);
}

/* Тема LIGHT (по подразбиране) */
:root[data-bs-theme="light"]{
	--cf-bg:#f7f8fb;
	--cf-card:#ffffff;
	--cf-text:#0f172a;
	--cf-muted:#6b7280;
	--cf-primary:#4f46e5;
	--cf-primary-600:#4338ca;
	--cf-success:#16a34a;
	--cf-danger:#dc2626;
	--cf-border:#e5e7eb;
	--cf-shadow:0 6px 24px rgba(2,6,23,.08), 0 2px 8px rgba(2,6,23,.06);

	/* Bootstrap body променливи, за да няма „черен“ фон при light */
	--bs-body-bg: var(--cf-bg);
	--bs-body-color: var(--cf-text);
}

/* Тема DARK */
:root[data-bs-theme="dark"]{
	--cf-bg:#0b1220;
	--cf-card:#0f172a;
	--cf-text:#e5e7eb;
	--cf-muted:#9ca3af;
	--cf-primary:#8b91ff;
	--cf-primary-600:#a4a8ff;
	--cf-success:#22c55e;
	--cf-danger:#ef4444;
	--cf-border:#1f2937;
	--cf-shadow:0 6px 24px rgba(0,0,0,.45), 0 2px 8px rgba(0,0,0,.35);

	--bs-body-bg: var(--cf-bg);
	--bs-body-color: var(--cf-text);
}

/* Базови стилове — ползват нашите променливи */
body{ background:var(--cf-bg); color:var(--cf-text); }
.card{ background:var(--cf-card); border:1px solid var(--cf-border); border-radius:14px; box-shadow:var(--cf-shadow); }
.card-header{ background:transparent; border-bottom:1px solid var(--cf-border); font-weight:600; }
.navbar{ border-bottom:1px solid var(--cf-border); backdrop-filter:saturate(120%) blur(6px); }
.navbar .nav-link.active{color:#fff;font-weight:700;background:rgba(255,255,255,.14);border-radius:.5rem;}

/* базови подобрения */
body{ background:var(--cf-bg); color:var(--cf-text); }
.card{ border:1px solid var(--cf-border); border-radius:14px; box-shadow:var(--cf-shadow); }
.card-header{ background:transparent; border-bottom:1px solid var(--cf-border); font-weight:600; }
.navbar{ border-bottom:1px solid var(--cf-border); backdrop-filter:saturate(120%) blur(6px); }
.table{ --bs-table-bg:transparent; }
.table thead th{ background:rgba(2,6,23,.03); border-bottom:1px solid var(--cf-border); }
.table tbody tr:hover{ background:rgba(2,6,23,.02); }
.badge{ border-radius:10px; }
.form-control, .form-select{ border-radius:10px; border-color:var(--cf-border); }
.form-control:focus, .form-select:focus{ box-shadow:0 0 0 .25rem rgba(79,70,229,.15); border-color:var(--cf-primary); }
.btn-primary{ background:var(--cf-primary); border-color:var(--cf-primary); }
.btn-primary:hover{ background:var(--cf-primary-600); border-color:var(--cf-primary-600); }
.btn-outline-primary{ color:var(--cf-primary); border-color:var(--cf-primary); }
.btn-outline-primary:hover{ background:var(--cf-primary); border-color:var(--cf-primary); color:#fff; }
.text-muted{ color:var(--cf-muted)!important; }

/* „elevated“ и „soft“ стилове за разнообразие */
.card-elevated{ box-shadow:var(--cf-shadow); }
.cf-bgn{ font-size:0.7em; color:#6c757d; margin-left:.2em; }
.badge-soft{ background:rgba(79,70,229,.12); color:var(--cf-primary); }
.btn-soft-success{ background:rgba(22,163,74,.12); color:var(--cf-success); border:1px solid rgba(22,163,74,.25); }
.btn-soft-danger{ background:rgba(220,38,38,.12); color:var(--cf-danger); border:1px solid rgba(220,38,38,.25); }

/* Статуси за такси по събития */
.btn.fee-status-0,
.badge.fee-status-0{
	background: rgba(220,38,38,.12);
	color: var(--cf-danger);
	border: 1px solid rgba(220,38,38,.35);
}
.btn.fee-status-1,
.badge.fee-status-1{
	background: rgba(22,163,74,.18);
	color: var(--cf-success);
	border: 1px solid rgba(22,163,74,.35);
}
.btn.fee-status-2,
.badge.fee-status-2{
	background: rgba(5,150,105,.18);
	color: #047857;
	border: 1px solid rgba(5,150,105,.35);
}
.btn.fee-status-0:hover{ background: rgba(220,38,38,.22); }
.btn.fee-status-1:hover{ background: rgba(22,163,74,.28); }
.btn.fee-status-2:hover{ background: rgba(5,150,105,.28); }

/* секции/заглавки */
.section-title{ font-weight:700; letter-spacing:.2px; }
.section-sub{ color:var(--cf-muted); }

/* по-четими таблици със стойности вдясно */
.td-right{ text-align:right; font-variant-numeric:tabular-nums; }

/* select2 уеднаквяване (и стрелката центрирана) */
.select2-container .select2-selection--single,
.select2-container .select2-selection--multiple{
	height:calc(2.25rem + 2px)!important;
	min-height:calc(2.25rem + 2px)!important;
	padding:.375rem .75rem;
	border:1px solid var(--cf-border);
	border-radius:10px;
	display:flex; align-items:center; font-size:1rem;
}
.select2-container--default .select2-selection--single .select2-selection__rendered{
	line-height:1.5!important; font-size:1rem; padding-left:0!important;
}
.select2-container--default .select2-selection--single .select2-selection__arrow{
	top:50%!important; transform:translateY(-50%); height:auto!important; right:8px;
}

/* mini-статус пипове за таблици/редове */
.dot{ width:10px; height:10px; border-radius:50%; display:inline-block; margin-right:.4rem; }
.dot-primary{ background:var(--cf-primary); }
.dot-success{ background:var(--cf-success); }
.dot-danger{ background:var(--cf-danger); }

.btn{ position:relative; overflow:hidden; }
.btn-ripple{
	position:absolute; border-radius:50%; background:rgba(255,255,255,.35);
	transform:scale(0); animation:cf-ripple .45s ease-out;
}
@keyframes cf-ripple{ to{ transform:scale(2.5); opacity:0; } }

/* Икона за превключване тема (супер лека, без svg файлове) */
.cf-theme-ico{
	display:inline-block;
	width:1rem; height:1rem;
	border-radius:50%;
	position:relative;
	box-shadow: inset 0 0 0 9999px #f59e0b; /* слънце - жълто */
	transition: box-shadow .2s ease, transform .2s ease;
	vertical-align: -2px;
}
.cf-theme-ico[data-mode="dark"]{
	box-shadow: inset 0 0 0 9999px #60a5fa; /* „луна“ - синкаво */
}
.cf-theme-ico[data-mode="dark"]::after{
	content:"";
	position:absolute; inset:-2px -2px auto auto;
	width:1rem; height:1rem; border-radius:50%;
	background: var(--cf-bg);
	transform: translate(2px, -2px);
	opacity:.9;
}

/* Скриване на елементи с no-print при печат */
@media print {
	.no-print { display:none !important; }
}

/* ===========================
   CLASS-FUND • GLOBAL UI PACK
   (работи за всички страници)
   =========================== */

/* Теми (light/dark) — зависи само от data-bs-theme */
:root[data-bs-theme="light"]{
	--cf-bg:#f7f8fb;
	--cf-card:#ffffff;
	--cf-text:#0f172a;
	--cf-muted:#6b7280;
	--cf-primary:#4f46e5;
	--cf-primary-600:#4338ca;
	--cf-success:#16a34a;
	--cf-danger:#dc2626;
	--cf-border:#e5e7eb;
	--cf-shadow:0 6px 24px rgba(2,6,23,.08), 0 2px 8px rgba(2,6,23,.06);
	--bs-body-bg: var(--cf-bg);
	--bs-body-color: var(--cf-text);
}

:root[data-bs-theme="dark"]{
	--cf-bg:#0b1220;
	--cf-card:#0f172a;
	--cf-text:#e5e7eb;
	--cf-muted:#9ca3af;
	--cf-primary:#8b91ff;
	--cf-primary-600:#a4a8ff;
	--cf-success:#22c55e;
	--cf-danger:#ef4444;
	--cf-border:#1f2937;
	--cf-shadow:0 6px 24px rgba(0,0,0,.45), 0 2px 8px rgba(0,0,0,.35);
	--bs-body-bg: var(--cf-bg);
	--bs-body-color: var(--cf-text);
}

/* Базови компоненти */
body{ background:var(--cf-bg); color:var(--cf-text); }
.navbar{ border-bottom:1px solid var(--cf-border); backdrop-filter:saturate(120%) blur(6px); }

/* Cards */
.card{ background:var(--cf-card); border:1px solid var(--cf-border); border-radius:14px; box-shadow:var(--cf-shadow); transition:box-shadow .15s ease, transform .12s ease; }
.card:hover{ transform:translateY(-1px); box-shadow:0 10px 32px rgba(0,0,0,.08); }
.card-header{ background:transparent; border-bottom:1px solid var(--cf-border); font-weight:600; }

/* Градиентни заглавки (ако искаш акцент) */
.cf-grad{ border-bottom:1px solid rgba(255,255,255,.25); color:#fff; font-weight:600; letter-spacing:.2px; }
.cf-grad-income{ background:linear-gradient(135deg,#10b981,#34d399); }
.cf-grad-expense{ background:linear-gradient(135deg,#ef4444,#f97316); }
.cf-grad-balance{ background:linear-gradient(135deg,#4f46e5,#22d3ee); }
.cf-grad-children{ background:linear-gradient(135deg,#06b6d4,#60a5fa); }

/* Таблици */
.table{ --bs-table-bg:transparent; }
.table thead th{ background:rgba(2,6,23,.03); border-bottom:1px solid var(--cf-border); position:sticky; top:0; z-index:2; }
.table tbody tr:hover{ background:rgba(2,6,23,.02); }
.td-right{ text-align:right; font-variant-numeric:tabular-nums; }
.no-sticky thead th{ position:static; background:inherit; } /* opt-out ако някъде пречи */

/* Форм полета */
.form-control, .form-select{ border-radius:10px; border-color:var(--cf-border); }
.form-control:focus, .form-select:focus{ box-shadow:0 0 0 .25rem rgba(79,70,229,.15); border-color:var(--cf-primary); }
.text-muted{ color:var(--cf-muted)!important; }

/* Бутони */
.btn{ transition:box-shadow .15s ease, transform .12s ease; }
.btn:hover{ transform:translateY(-1px); }
.btn-primary{ background:var(--cf-primary); border-color:var(--cf-primary); }
.btn-primary:hover{ background:var(--cf-primary-600); border-color:var(--cf-primary-600); }
.btn-outline-primary{ color:var(--cf-primary); border-color:var(--cf-primary); }
.btn-outline-primary:hover{ background:var(--cf-primary); border-color:var(--cf-primary); color:#fff; }

/* Значки/статуси */
.badge{ border-radius:10px; }
.badge-soft{ background:rgba(79,70,229,.12); color:var(--cf-primary); border:1px solid rgba(79,70,229,.25); }
.dot{ width:10px; height:10px; border-radius:50%; display:inline-block; margin-right:.4rem; }
.dot-primary{ background:var(--cf-primary); }
.dot-success{ background:var(--cf-success); }
.dot-danger{ background:var(--cf-danger); }

/* Линкове на балансите */
.balance{ text-decoration:none; }
.balance:hover{ text-decoration:underline; }

/* Select2 уеднаквяване (single & multiple) */
.select2-container .select2-selection--single,
.select2-container .select2-selection--multiple{
	height:calc(2.25rem + 2px)!important;
	min-height:calc(2.25rem + 2px)!important;
	padding:.375rem .75rem;
	border:1px solid var(--cf-border);
	border-radius:10px;
	display:flex; align-items:center; font-size:1rem;
}
.select2-container--default .select2-selection--single .select2-selection__rendered{
	line-height:1.5!important; font-size:1rem; padding-left:0!important;
}
.select2-container--default .select2-selection--single .select2-selection__arrow{
	top:50%!important; transform:translateY(-50%); height:auto!important; right:8px;
}

/* Превключвател за тема (иконка) */
.cf-theme-ico{
	display:inline-block; width:1rem; height:1rem; border-radius:50%; position:relative;
	box-shadow: inset 0 0 0 9999px #f59e0b; transition: box-shadow .2s ease, transform .2s ease; vertical-align:-2px;
}
.cf-theme-ico[data-mode="dark"]{ box-shadow: inset 0 0 0 9999px #60a5fa; }
.cf-theme-ico[data-mode="dark"]::after{
	content:""; position:absolute; inset:-2px -2px auto auto; width:1rem; height:1rem; border-radius:50%;
	background: var(--cf-bg); transform: translate(2px, -2px); opacity:.9;
}

/* Ripple ефект за бутони (ако JS го добавя) */
.btn{ position:relative; overflow:hidden; }
.btn-ripple{
	position:absolute; border-radius:50%; background:rgba(255,255,255,.35);
	transform:scale(0); animation:cf-ripple .45s ease-out;
}
@keyframes cf-ripple{ to{ transform:scale(2.5); opacity:0; } }

/* Печат */
@media print{
	.no-print{ display:none!important; }
	.table thead th{ position:static; } /* избягваме sticky при PDF/print */
}

.badge-soft a {
	color: inherit;
	text-decoration: none;
	display: inline-block;
	padding: 0 4px;
}
.badge-soft a:hover { text-decoration: underline; }
.badge-soft { cursor: pointer; }

/* DataTables + нашия стил */
.dataTables_wrapper .dataTables_filter input {
	border-radius: 10px;
}
.dataTables_wrapper .dataTables_length select {
	border-radius: 10px;
}

/* визуално отбелязване на неактивно дете в таблицата */
.child-inactive td{
	color: var(--cf-muted) !important;
	opacity: .85;
}
.child-inactive td .badge{
	opacity: 1; /* badge остава отчетлив */
}

/* keep navbar and its dropdowns above page content/cards */
.navbar {
	position: relative;	/* create stacking context */
	z-index: 1100;		/* higher than cards */
}

/* raise all dropdown menus (root + nested) */
.navbar .dropdown-menu {
	z-index: 1101;
}

/* nested submenus (if you use them) */
.navbar .dropdown-submenu > .dropdown-menu {
	z-index: 1102;
	/* positioning if you don't have it already */
	top: 0;
	left: 100%;
	margin-top: -0.25rem;
}

.btn-toggle {
	text-align: left;
	border: none;
	background: transparent;
}
.btn-toggle:focus {
	outline: none;
	box-shadow: none;
}
.btn-toggle .toggle-icon {
	transition: transform 0.25s ease;
}
.btn-toggle[aria-expanded="true"] .toggle-icon {
	transform: rotate(180deg);
}

.table-loader {
	text-align: center;
	padding: 20px;
	color: #666;
	font-size: 14px;
	position: relative;
}

.table-loader::after {
	content: "";
	display: inline-block;
	width: 24px;
	height: 24px;
	border: 3px solid #ccc;
	border-top-color: #007bff;
	border-radius: 50%;
	animation: spin 1s linear infinite;
	margin-left: 8px;
	vertical-align: middle;
}

@keyframes spin {
	to { transform: rotate(360deg); }
}

.btn { position: relative; overflow: hidden; }
.btn-ripple {
  position: absolute;
  border-radius: 50%;
  transform: scale(0);
  animation: cf-ripple 450ms linear;
  background: rgba(255,255,255,.4);
  pointer-events: none;
}
@keyframes cf-ripple {
  to { transform: scale(4); opacity: 0; }
}

/* Едно единствено копче в група – запази пълния радиус */
.btn-group > .btn:only-child,
.btn-group-sm > .btn:only-child,
.btn-group-lg > .btn:only-child {
  border-radius: 10px;
}

/* Средни бутони – без радиуси */
.btn-group > .btn:not(:first-child):not(:last-child),
.btn-group-sm > .btn:not(:first-child):not(:last-child),
.btn-group-lg > .btn:not(:first-child):not(:last-child) {
  border-radius: 0;
}

/* Премахни двойните граници между бутоните */
.btn-group > .btn + .btn,
.btn-group-sm > .btn + .btn,
.btn-group-lg > .btn + .btn {
  margin-left: -1px; /* за outline/secondary граници */
}

:root { --cf-btn-radius: 10px; }

/* Вертикални групи */
.btn-group > .btn:first-child {
	border-top-left-radius: var(--cf-btn-radius);
	border-top-right-radius: var(--cf-btn-radius);
	border-bottom-left-radius: var(--cf-btn-radius);
	border-bottom-right-radius: var(--cf-btn-radius);
}
.btn-group > .btn:last-child {
	border-bottom-left-radius: var(--cf-btn-radius);
	border-bottom-right-radius: var(--cf-btn-radius);
	border-top-left-radius: var(--cf-btn-radius);
	border-top-right-radius: var(--cf-btn-radius);
}
.btn-group > .btn:not(:first-child):not(:last-child) {
	border-radius: 0;
}

/* shared for all datatables */
.table.data-table { table-layout: fixed; width: 100%; }
.table.data-table .no-wrap,
.table.data-table .td-actions { white-space: nowrap; }
.table.data-table .truncate {
	display:inline-block; min-width:0; max-width:28ch;
	overflow:hidden; text-overflow:ellipsis; vertical-align:bottom;
}

/* Icon action groups may contain forms; make their inner buttons behave like direct Bootstrap siblings. */
.btn-group > form {
	display: inline-flex;
	margin: 0;
}
.btn-group.btn-group-sm > .btn,
.btn-group.btn-group-sm > form > .btn {
	width: 2.35rem;
	min-width: 2.35rem;
	height: 2.35rem;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding-left: 0;
	padding-right: 0;
}
.btn-group > .btn:not(:first-child),
.btn-group > form > .btn:not(:first-of-type),
.btn-group > form:not(:first-child) > .btn {
	margin-left: -1px;
	border-top-left-radius: 0;
	border-bottom-left-radius: 0;
}
.btn-group > .btn:not(:last-child),
.btn-group > form > .btn:not(:last-of-type),
.btn-group > form:not(:last-child) > .btn {
	border-top-right-radius: 0;
	border-bottom-right-radius: 0;
}
.btn-group > form:first-child > .btn {
	border-top-left-radius: var(--cf-btn-radius);
	border-bottom-left-radius: var(--cf-btn-radius);
}
.btn-group > form:last-child > .btn {
	border-top-right-radius: var(--cf-btn-radius);
	border-bottom-right-radius: var(--cf-btn-radius);
}

.cf-po-actions {
	display: inline-flex;
	flex-direction: row;
	align-items: center;
	justify-content: flex-end;
	gap: .35rem;
	white-space: nowrap;
}
.cf-po-actions .btn-group {
	white-space: nowrap;
}

.cf-items-table {
	max-width: 100%;
}
.cf-items-table > .table {
	min-width: 980px;
}

@media (max-width: 767.98px) {
	body {
		overflow-x: hidden;
	}
	.navbar .container-fluid {
		padding-left: .75rem;
		padding-right: .75rem;
	}
	.navbar-collapse {
		padding-top: .75rem;
	}
	.navbar-collapse > form {
		width: 100%;
		margin: .5rem 0 0 !important;
	}
	.navbar-collapse > form .form-select {
		width: 100%;
		margin-right: 0 !important;
	}
	.navbar-collapse > .ms-2 {
		margin-left: 0 !important;
		margin-top: .75rem;
	}
	.navbar-collapse > .ms-2 > .ms-auto {
		justify-content: flex-start;
		flex-wrap: wrap;
		gap: .35rem;
	}
	.card-body {
		min-width: 0;
	}
	.btn-group,
	.cf-actions {
		flex-wrap: nowrap;
	}
	.table-responsive {
		max-width: 100%;
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
	}
	.table-responsive > .table {
		width: max-content;
		min-width: 100%;
		table-layout: auto;
	}
	.table-responsive > .dataTables_wrapper {
		min-width: 0;
		width: 100%;
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
	}
	.table-responsive > .dataTables_wrapper > .dataTable {
		width: max-content !important;
		min-width: 100% !important;
		table-layout: auto;
	}
	.table.data-table {
		width: max-content;
		min-width: 100%;
	}
	.cf-items-table > .table {
		min-width: 980px;
	}
}

.w100 { width: 100px !important; }

/* Bootstrap modals must sit above the elevated application navbar. */
.modal-backdrop{ z-index:1190; }
.modal{ z-index:1200; }

/* Public authentication pages share the landing-page visual language. */
.cf-auth-page{ --cf-ink:#171716; --cf-paper:#f5f1e9; --cf-coral:#ff6b56; --cf-lime:#d9f878; --cf-violet:#dfcdfc; background:var(--cf-paper); color:var(--cf-ink); font-family:'DM Sans',sans-serif; -webkit-font-smoothing:antialiased; }
.cf-auth-page .cf-public-nav{ min-height:96px; padding:0; background:transparent; border:0; }
.cf-auth-page .cf-public-content{ max-width:none; padding:0 max(1.25rem, 5vw); }
.cf-brand{ display:inline-flex; align-items:center; gap:.7rem; color:var(--cf-ink)!important; font:800 1.35rem/1 'Manrope',sans-serif; letter-spacing:-.06em; }
.cf-brand-mark{ width:38px; height:38px; display:grid; place-items:center; border-radius:13px; background:var(--cf-ink); color:#fff; transform:rotate(-6deg); font-size:1.35rem; }
.cf-public-links{ display:flex; align-items:center; gap:2rem; }
.cf-public-links a{ color:#77736b; font-weight:700; text-decoration:none; }
.cf-public-links a:hover{ color:var(--cf-ink); }
.cf-public-links .cf-nav-button{ padding:.9rem 1.35rem; border-radius:999px; background:var(--cf-ink); color:#fff; }
.cf-login-layout{ min-height:calc(100vh - 96px); display:grid; grid-template-columns:minmax(0, .88fr) minmax(420px, 1.12fr); align-items:center; gap:6vw; max-width:1320px; margin:0 auto; padding:2rem 0 6rem; position:relative; overflow:hidden; }
.cf-login-layout{ display:block; max-width:560px; padding-top:4rem; }
.cf-auth-heading{ margin:0 0 1.5rem; font:800 clamp(2.8rem,5vw,4.5rem)/.95 'Manrope',sans-serif; letter-spacing:-.08em; }
.cf-login-layout::before{ content:''; width:45vw; height:45vw; position:fixed; left:-22vw; bottom:-28vw; border-radius:50%; background:var(--cf-violet); opacity:.72; pointer-events:none; }
.cf-login-panel{ max-width:560px; position:relative; z-index:1; padding-left:2vw; }
.cf-login-kicker{ display:flex; align-items:center; gap:.6rem; margin-bottom:1.4rem; color:#66635d; font-size:.82rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.cf-login-kicker i{ width:9px; height:9px; display:block; border-radius:50%; background:var(--cf-coral); }
.cf-login-panel h1{ margin:0 0 1.2rem; font:800 clamp(3.5rem,6vw,6.7rem)/.88 'Manrope',sans-serif; letter-spacing:-.09em; }
.cf-login-panel h1 em{ color:var(--cf-coral); font-family:Georgia,serif; font-weight:400; }
.cf-login-intro{ max-width:430px; margin:0 0 2rem; color:#716e67; font-size:1.08rem; line-height:1.5; }
.cf-alert{ border:0; border-radius:16px; box-shadow:0 8px 24px rgba(35,32,25,.06); }
.cf-login-panel .nav-tabs{ display:flex; gap:.35rem; margin-bottom:1.35rem!important; border:0; }
.cf-login-panel .nav-tabs .nav-link{ padding:.7rem 1.1rem; border:0; border-radius:999px; color:#77736b; font-weight:700; }
.cf-login-panel .nav-tabs .nav-link.active{ background:var(--cf-ink); color:#fff; }
.cf-login-panel .tab-content{ max-width:500px; padding:1.65rem; border-radius:26px; background:rgba(255,255,255,.82); box-shadow:0 20px 55px rgba(35,32,25,.10); backdrop-filter:blur(12px); }
.cf-form-title{ margin:0 0 1.15rem; font:800 1.55rem/1 'Manrope',sans-serif; letter-spacing:-.05em; }
.cf-login-panel .form-control{ min-height:54px; margin-bottom:.75rem!important; padding:.9rem 1rem; border:1px solid #e3ded4; border-radius:15px; background:#faf9f5; color:var(--cf-ink); }
.cf-login-panel .form-control:focus{ border-color:var(--cf-coral); box-shadow:0 0 0 .22rem rgba(255,107,86,.16); }
.cf-auth-actions{ display:flex; flex-wrap:wrap; gap:.6rem; margin-top:1rem; }
.cf-primary-button{ padding:.85rem 1.35rem; border:0; border-radius:999px; background:var(--cf-ink); color:#fff; font-weight:700; }
.cf-primary-button:hover{ background:#3a3935; color:#fff; }
.cf-google-button{ padding:.85rem 1.1rem; border:1px solid #ddd8ce; border-radius:999px; background:#fff; color:var(--cf-ink); font-weight:700; }
.cf-google-button:hover{ border-color:var(--cf-ink); color:var(--cf-ink); }
.cf-login-visual{ min-height:560px; display:grid; place-items:center; position:relative; z-index:1; }
.cf-dashboard-card{ width:min(520px,92%); padding:18px; border-radius:28px; background:#fff; box-shadow:0 30px 70px rgba(35,32,25,.18); transform:rotate(4deg); }
.cf-dashboard-top{ display:flex; align-items:center; justify-content:space-between; padding:5px 8px 17px; font:800 1.2rem 'Manrope'; letter-spacing:-.04em; }
.cf-dashboard-top span{ display:flex; gap:5px; }.cf-dashboard-top i{ width:8px; height:8px; border-radius:50%; background:#dedbd2; }.cf-dashboard-top i:first-child{ background:var(--cf-coral); }
.cf-balance-card{ padding:25px; border-radius:20px; background:linear-gradient(135deg,#dff5ff,#a9cfff); }.cf-balance-card small,.cf-mini-cards small{ color:#536b79; font-weight:600; }.cf-balance-card strong{ display:block; margin:.45rem 0 1.15rem; font:800 clamp(2.3rem,4vw,3.5rem)/1 'Manrope'; letter-spacing:-.08em; }.cf-balance-card div{ display:flex; justify-content:space-between; gap:1rem; color:#536b79; font-size:.82rem; }
.cf-mini-cards{ display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:12px; }.cf-mini-cards>div{ padding:18px; border-radius:17px; background:#f4f2ed; }.cf-mini-cards>div:nth-child(2){ background:#efffb3; }.cf-mini-cards strong{ display:block; margin-top:.5rem; font:800 1.6rem 'Manrope'; }
.cf-floating-note{ padding:13px 18px; position:absolute; z-index:2; border-radius:18px; background:#fff; box-shadow:0 15px 35px rgba(30,28,20,.16); font-size:.88rem; }.cf-floating-note i{ margin-right:.45rem; color:var(--cf-coral); font-size:1.2rem; }.cf-note-one{ top:17%; left:0; transform:rotate(-8deg); }.cf-note-two{ right:0; bottom:17%; transform:rotate(7deg); background:var(--cf-lime); }
@media (max-width:900px){ .cf-public-links a:not(.cf-nav-button){display:none}.cf-login-layout{grid-template-columns:1fr;padding-top:3rem}.cf-login-panel{padding-left:0;margin:auto}.cf-login-visual{min-height:430px}.cf-note-one{left:2%}.cf-note-two{right:2%} }
@media (max-width:576px){ .cf-auth-page .cf-public-nav{min-height:76px}.cf-public-links{gap:0}.cf-nav-button{font-size:.82rem}.cf-login-panel h1{font-size:clamp(3.4rem,16vw,5rem)}.cf-login-panel .tab-content{padding:1.2rem}.cf-auth-actions{display:grid}.cf-auth-actions .btn{width:100%}.cf-login-visual{min-height:350px}.cf-dashboard-card{width:100%}.cf-balance-card strong{font-size:2rem}.cf-balance-card div{font-size:.7rem}.cf-floating-note{font-size:.72rem;padding:10px 12px}.cf-note-one{top:10%;left:-2%}.cf-note-two{bottom:10%;right:-2%} }

/* School-year accordion rows used by financial and event lists. */
.school-year-heading td {
	background: var(--bs-tertiary-bg, #f8f9fa) !important;
	border-top: 2px solid var(--bs-border-color, #dee2e6) !important;
}
.school-year-toggle {
	display: flex;
	align-items: center;
	gap: .5rem;
	width: 100%;
	padding: .45rem .25rem;
	border: 0;
	background: transparent;
	font-weight: 600;
	text-align: left;
	color: inherit;
}
.school-year-toggle .bi { transition: transform .15s ease; }
.school-year-toggle[aria-expanded="false"] .bi { transform: rotate(-90deg); }
.school-year-row[hidden] { display: none !important; }
