@charset "UTF-8";
@import url("general.css");
@import url("https://fonts.googleapis.com/css2?family=Manrope:wght@300;400;500;600;700&family=Playfair+Display:wght@500;600;700&display=swap");

:root {

	--legacy-629db4-border: #e08a7d;
	--legacy-629db4-background: #e08a7d;
	--legacy-76b0c4-background: #e08a7d;
	--ink-900: #1f2328;
	--ink-700: #303741;
	--ink-500: #4f5966;
	--muted-600: #6c7a89;
	--muted-400: #8b98a7;
	--surface: #ffffff;
	--surface-2: #f7f3f0;
	--surface-3: #f3f7f8;
	--accent-600: #c96b6b;
	--accent-500: #e08a7d;
	--accent-300: #f2c8b5;
	--sage-500: #7b9a8b;
	--gold-400: #d3b27b;
	--shadow-strong: 0 24px 60px rgba(23, 27, 33, 0.18);
	--shadow-soft: 0 10px 24px rgba(23, 27, 33, 0.12);
	--radius-lg: 22px;
	--radius-md: 14px;
	--radius-sm: 10px;
	/* Appointments calendar theming */
	--calendar-bg: #ffffff;
	--calendar-border: rgba(79, 89, 102, 0.18);
	--calendar-grid-line: rgba(79, 89, 102, 0.12);
	--calendar-time-bg: rgba(247, 243, 240, 0.7);
	--calendar-day-bg: rgba(255, 255, 255, 0.95);
	--calendar-today-bg: rgba(242, 200, 181, 0.25);
	--calendar-today-accent: rgba(201, 107, 107, 0.6);
	--calendar-toolbar-bg: rgba(243, 247, 248, 0.9);
	--calendar-header-bg: rgba(247, 243, 240, 0.9);
	--calendar-even-bg: rgba(242, 240, 228, 0.8);
	/* Table / jtable */
	--table-border: rgba(79, 89, 102, 0.25);
	--table-surface: #ffffff;
	--table-surface-2: rgba(247, 243, 240, 0.9);
	--table-shadow: 0 10px 24px rgba(23, 27, 33, 0.12);
	/* Jtable theme */
	--jtable-accent: rgba(201, 107, 107, 0.9);
	--jtable-accent-strong: rgba(201, 107, 107, 1);
	--jtable-row-hover: rgba(242, 200, 181, 0.25);
	--jtable-row-selected: rgba(201, 107, 107, 0.45);
	/* Reminders */
	--panel-border: rgba(79, 89, 102, 0.25);
	--panel-surface: rgba(255, 255, 255, 0.9);
	--panel-surface-strong: #f3f7f8;
	--panel-accent: rgba(201, 107, 107, 0.2);
	--panel-accent-strong: rgba(201, 107, 107, 0.6);
	/* Cashup report table border (legacy #1C6EA4) */
	--cashup-blue-table-border: rgba(201, 107, 107, 0.9);
	--cashup-blue-table-row-alt: rgba(242, 200, 181, 0.22);
	--cashup-blue-table-head-bg: linear-gradient(to bottom, rgba(242, 200, 181, 0.95) 0%, rgba(224, 138, 125, 0.9) 66%, rgba(201, 107, 107, 0.95) 100%);
	--cashup-blue-table-head-bottom-border: rgba(79, 89, 102, 0.45);
	--cashup-blue-table-head-left-border: rgba(255, 255, 255, 0.55);
	/* SMS batch legacy-blue mapping */
	--sms-header-text: #ffffff;
	--sms-accent-text: var(--accent-600);
	--sms-accent-border-soft: var(--panel-border);
	--sms-accent-border-strong: var(--panel-accent-strong);
	--sms-accent-surface: var(--panel-surface-strong);
	--sms-accent-hover: var(--panel-accent);
	--sms-accent-hover-row: rgba(201, 107, 107, 0.14);
	--sms-accent-spinner: var(--jtable-accent);
}

* {
	box-sizing: border-box;
}

html, body {
	min-height: 100%;
}

body {
	margin: 0;
	color: var(--ink-900);
	font-family: "Manrope", "Avenir Next", "Trebuchet MS", sans-serif;
	background:
		radial-gradient(circle at 15% 10%, rgba(242, 200, 181, 0.35), transparent 45%),
		radial-gradient(circle at 85% 15%, rgba(123, 154, 139, 0.28), transparent 50%),
		linear-gradient(180deg, #f8f4f1 0%, #f5f7f7 48%, #f0f2f3 100%);
	overflow-x: hidden;
}

.app {
	min-height: 100vh;
}

h1, h2, h3, h4, h5 {
	font-family: "Playfair Display", "Times New Roman", serif;
	color: var(--ink-900);
	margin: 0 0 0.6rem 0;
}

p {
	margin: 0 0 0.8rem 0;
	color: var(--ink-700);
}

a {
	color: var(--accent-600);
	text-decoration: none;
}

a:hover {
	color: var(--accent-500);
}

/* Menu theming */
#topofmenu {
	background: linear-gradient(90deg, rgba(248, 244, 241, 0.9), rgba(243, 247, 248, 0.95)) !important;
	border: 1px solid rgba(79, 89, 102, 0.25) !important;
	box-shadow: var(--shadow-soft) !important;
}

#topofmenu p.topofmenup {
	color: var(--ink-900) !important;
	text-shadow: none !important;
	letter-spacing: 0.08em;
}

ul.dropdown {
	background: linear-gradient(90deg, rgba(248, 244, 241, 0.9), rgba(243, 247, 248, 0.95)) !important;
	border: 1px solid rgba(79, 89, 102, 0.25) !important;
	box-shadow: var(--shadow-soft) !important;
}

ul.dropdown li {
	background-color: transparent !important;
}

ul.dropdown a:link,
ul.dropdown a:visited {
	color: var(--ink-700) !important;
	letter-spacing: 0.04em;
}

ul.dropdown a:hover {
	color: var(--ink-900) !important;
}

ul.dropdown ul {
	background: linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(247, 243, 240, 0.95)) !important;
	border: 1px solid rgba(79, 89, 102, 0.2) !important;
	box-shadow: var(--shadow-soft) !important;
}

ul.dropdown ul a:link,
ul.dropdown ul a:visited {
	color: var(--ink-700) !important;
}

ul.dropdown ul a:hover {
	background: rgba(201, 107, 107, 0.12) !important;
	color: var(--ink-900) !important;
}

ul.dropdown li:hover > a.dir {
	background-color: rgba(201, 107, 107, 0.14) !important;
	color: var(--accent-600) !important;
}

ul.dropdown ul li:hover > a.dir {
	background-color: rgba(201, 107, 107, 0.14) !important;
	color: var(--ink-900) !important;
}

button,
input[type="button"],
input[type="submit"],
input[type="text"],
input[type="search"],
input[type="email"],
input[type="tel"],
input[type="number"],
select,
textarea {
	font-family: inherit;
}

/* Global jQuery UI dialog skin for themed app pages */
.app .ui-widget-overlay {
	background: rgba(31, 35, 40, 0.34) !important;
	opacity: 1 !important;
}

.app .ui-dialog {
	border: 1px solid rgba(79, 89, 102, 0.24) !important;
	border-radius: 14px !important;
	box-shadow: 0 24px 60px rgba(23, 27, 33, 0.22) !important;
	background: linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(247, 243, 240, 0.94)) !important;
	overflow: hidden !important;
}

.app .ui-dialog .ui-dialog-titlebar {
	border: 0 !important;
	border-bottom: 1px solid rgba(79, 89, 102, 0.18) !important;
	background: linear-gradient(120deg, rgba(248, 244, 241, 0.96), rgba(243, 247, 248, 0.96)) !important;
	padding: 11px 14px !important;
}

.app .ui-dialog .ui-dialog-title {
	color: var(--ink-900) !important;
	font-weight: 700 !important;
	letter-spacing: 0.03em;
}

.app .ui-dialog .ui-dialog-titlebar-close {
	border-radius: 8px !important;
	border: 1px solid rgba(79, 89, 102, 0.26) !important;
	background: rgba(255, 255, 255, 0.9) !important;
}

.app .ui-dialog .ui-dialog-content {
	background: transparent !important;
	color: var(--ink-900);
}

.app .ui-dialog .ui-dialog-buttonpane {
	border: 0 !important;
	border-top: 1px solid rgba(79, 89, 102, 0.16) !important;
	background: rgba(243, 247, 248, 0.55) !important;
	padding: 10px 12px !important;
}

.app .ui-dialog .ui-dialog-buttonpane button {
	height: 38px;
	border-radius: 10px !important;
	border: 1px solid rgba(79, 89, 102, 0.24) !important;
	background: linear-gradient(120deg, rgba(248, 244, 241, 0.96), rgba(243, 247, 248, 0.96)) !important;
	color: var(--ink-700) !important;
	font-weight: 700 !important;
	padding: 0 14px !important;
}

.app .ui-dialog .ui-dialog-buttonpane button:hover {
	border-color: rgba(201, 107, 107, 0.54) !important;
	background: rgba(242, 200, 181, 0.38) !important;
}

/* Audit-style report shell */
body.app--report-shell #title {
	width: calc(100% - 24px);
	float: left;
	margin: 10px 12px 14px;
	padding: 14px 18px;
	text-align: left;
	font-family: "Playfair Display", "Times New Roman", serif;
	font-size: 32px;
	font-weight: 600;
	letter-spacing: 0.02em;
	color: var(--ink-900);
	background: linear-gradient(120deg, rgba(248, 244, 241, 0.92), rgba(243, 247, 248, 0.92));
	border: 1px solid rgba(79, 89, 102, 0.2);
	border-radius: var(--radius-md);
	box-shadow: var(--shadow-soft);
	text-decoration: none;
	height: auto;
}

body.app--report-shell div.search {
	clear: left;
	float: left;
	width: 360px;
	margin: 0 0 12px 12px;
	padding: 12px;
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 10px;
	border: 1px solid rgba(79, 89, 102, 0.2);
	border-radius: var(--radius-md);
	background: rgba(255, 255, 255, 0.9);
	box-shadow: var(--shadow-soft);
	min-height: 0;
	height: auto;
	overflow: visible;
}

body.app--report-shell div.search form {
	display: contents;
}

body.app--report-shell div.search label {
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--muted-600);
	margin-top: 4px;
	width: 100%;
	clear: both;
	float: left;
	grid-column: 1 / -1;
}

body.app--report-shell div.search input,
body.app--report-shell div.search select {
	width: 100%;
	height: 40px;
	border: 1px solid rgba(79, 89, 102, 0.24);
	border-radius: 10px;
	padding: 8px 10px;
	background: rgba(255, 255, 255, 0.96);
	color: var(--ink-900);
	clear: both;
	float: left;
	margin: 0;
	grid-column: 1 / -1;
}

body.app--report-shell div.search input:focus,
body.app--report-shell div.search select:focus {
	outline: none;
	border-color: rgba(201, 107, 107, 0.62);
	box-shadow: 0 0 0 3px rgba(201, 107, 107, 0.14);
}

body.app--report-shell div.search button {
	height: 46px;
	width: 100% !important;
	max-width: 100% !important;
	margin: 0 !important;
	border-radius: 10px;
	border: 1px solid rgba(79, 89, 102, 0.24);
	background: linear-gradient(180deg, rgba(248, 244, 241, 0.95), rgba(243, 247, 248, 0.95));
	font-size: 14px;
	font-weight: 700;
	color: var(--ink-800);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	cursor: pointer;
	float: none !important;
	clear: both !important;
	padding: 0 12px;
	box-sizing: border-box;
	grid-column: span 1;
}

body.app--report-shell div.search button:hover {
	border-color: rgba(201, 107, 107, 0.5);
	background: rgba(242, 200, 181, 0.24);
}

body.app--report-shell div.search button img {
	display: none;
}

body.app--report-shell div.search button br {
	display: none;
}

body.app--report-shell div.search button::before {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 22px;
	height: 22px;
	border-radius: 999px;
	border: 1px solid rgba(255, 255, 255, 0.45);
	background: rgba(255, 255, 255, 0.22);
	font-size: 13px;
	line-height: 1;
}

body.app--report-shell #refresh {
	background: linear-gradient(120deg, #87909e, #6f7886);
	border-color: #6f7886;
	color: #fff;
	margin-left: 0 !important;
}

body.app--report-shell #refresh:hover {
	background: linear-gradient(120deg, #747d8b, #606875);
	border-color: #606875;
}

body.app--report-shell #print {
	background: linear-gradient(120deg, var(--accent-600), var(--accent-500));
	border-color: rgba(201, 107, 107, 0.6);
	color: #fff;
}

body.app--report-shell #print:hover {
	background: linear-gradient(120deg, #bb5f5f, #d77d71);
	border-color: #bb5f5f;
}

body.app--report-shell #email,
body.app--report-shell #excel,
body.app--report-shell #export,
body.app--report-shell #export_csv {
	background: linear-gradient(120deg, #7b9a8b, #5d7e70);
	border-color: rgba(93, 126, 112, 0.65);
	color: #fff;
	margin-left: 0 !important;
}

body.app--report-shell #email:hover,
body.app--report-shell #excel:hover,
body.app--report-shell #export:hover,
body.app--report-shell #export_csv:hover {
	background: linear-gradient(120deg, #6d8b7d, #516f63);
	border-color: #516f63;
}

body.app--report-shell #refresh::before {
	content: "\21BB";
}

body.app--report-shell #print::before {
	content: "\2399";
}

body.app--report-shell #email::before {
	content: "\2709";
}

body.app--report-shell #excel::before,
body.app--report-shell #export::before,
body.app--report-shell #export_csv::before {
	content: "\2913";
}

body.app--report-shell #report {
	border: 1px solid rgba(79, 89, 102, 0.2);
	border-radius: 10px;
	display: block;
	float: right;
	clear: none;
	width: calc(100% - 396px);
	height: calc(100dvh - 252px);
	min-height: calc(100dvh - 230px);
	margin: 0 12px 12px 0;
	padding: 0;
	box-sizing: border-box;
	background: #fff;
	box-shadow: var(--shadow-soft);
}

@media (max-width: 1100px) {
	body.app--report-shell #title {
		font-size: 28px;
	}

	body.app--report-shell div.search {
		width: calc(100% - 24px);
		float: left;
		min-height: 0;
	}

	body.app--report-shell #report {
		width: calc(100% - 24px);
		float: left;
		margin: 0 12px 12px;
		height: 560px;
		min-height: 540px;
	}
}

@media (max-width: 520px) {
	body.app--report-shell div.search {
		grid-template-columns: 1fr;
	}

	body.app--report-shell div.search button {
		grid-column: 1 / -1;
	}
}
