/* harmonia_dotacje - main stylesheet */

/* Allow long status messages on login/signup buttons to wrap
   instead of stretching the button outside the card width. */
.page-card .btn {
	white-space: normal !important;
	word-wrap: break-word;
}

/* Modern styled checkbox for signup form */
.page-card .checkbox label {
	display: flex;
	align-items: flex-start;
	gap: 6px;
	padding-left: 0;
	cursor: pointer;
	font-size: 12px;
	line-height: 1.4;
}

.page-card .checkbox input[type="checkbox"] {
	position: relative;
	appearance: none;
	-webkit-appearance: none;
	width: 14px;
	min-width: 14px;
	height: 14px;
	margin: 1px 0 0;
	border: 1.5px solid var(--gray-400, #b5b5b5);
	border-radius: 3px;
	background: #fff;
	cursor: pointer;
	transition: all 0.15s ease;
}

.page-card .checkbox input[type="checkbox"]:checked {
	background: var(--primary, #171717);
	border-color: var(--primary, #171717);
}

.page-card .checkbox input[type="checkbox"]:checked::after {
	content: "";
	position: absolute;
	left: 3.5px;
	top: 0.5px;
	width: 4px;
	height: 8px;
	border: solid #fff;
	border-width: 0 2px 2px 0;
	transform: rotate(45deg);
}

.page-card .checkbox input[type="checkbox"]:focus {
	outline: none;
	border-color: var(--primary, #171717);
	box-shadow: 0 0 0 2px rgba(23, 23, 23, 0.15);
}

/* ── Dashboard ─────────────────────────────────────────── */

.harmonia-dashboard {
	max-width: 1720px;
	margin: 0 auto;
	padding-bottom: var(--padding-2xl, 40px);
}

.harmonia-dashboard-header {
	margin-bottom: var(--padding-xl, 30px);
}

.harmonia-dashboard-header h1 {
	font-size: var(--text-3xl, 24px);
	font-weight: var(--weight-semibold, 600);
	color: var(--heading-color, var(--gray-900));
	margin-bottom: 0.35rem;
}

.harmonia-dashboard-header p {
	font-size: var(--text-base, 14px);
	margin-bottom: 0;
}

.harmonia-card {
	background: var(--card-bg, #fff);
	border: 1px solid var(--border-color, var(--gray-200));
	border-radius: var(--card-border-radius, 0.75rem);
	box-shadow: var(--card-shadow, var(--shadow-sm));
	display: flex;
	flex-direction: column;
	padding: 1.25rem;
}

.harmonia-card-header,
.harmonia-card-header-editable {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	margin-bottom: 1rem;
}

.harmonia-card-header h2,
.harmonia-card-header-editable h2 {
	font-size: var(--text-lg, 16px);
	font-weight: var(--weight-semibold, 600);
	color: var(--heading-color, var(--gray-900));
	margin: 0;
}

.harmonia-card-header-editable > :last-child {
	margin-left: auto;
}

.harmonia-card-icon {
	color: var(--text-muted, var(--gray-700));
	flex-shrink: 0;
}

.harmonia-card-content {
	flex: 1;
	display: flex;
	flex-direction: column;
}

.harmonia-card-content p:last-child {
	margin-bottom: 0;
}

.harmonia-card-content .btn {
	align-self: start;
}

/* Data table inside "Your data" card */
.harmonia-data-table {
	width: 100%;
	margin: 0;
}

.harmonia-data-table th,
.harmonia-data-table td {
	padding: 0.5rem 0;
	font-size: var(--text-base, 14px);
	vertical-align: middle;
	border-bottom: 1px solid var(--border-color, var(--gray-200));
}

.harmonia-data-table tr:last-child th,
.harmonia-data-table tr:last-child td {
	border-bottom: none;
}

.harmonia-data-table th {
	font-weight: var(--weight-medium, 500);
	color: var(--text-muted, var(--gray-700));
	white-space: nowrap;
	width: 1%;
	padding-right: 1.25rem;
}

.harmonia-data-table td {
	color: var(--text-color, var(--gray-800));
}

/* Status badges */
.badge-status {
	display: inline-block;
	font-size: var(--text-xs, 12px);
	font-weight: var(--weight-medium, 500);
	padding: 2px 8px;
	border-radius: var(--border-radius, 0.375rem);
	line-height: 1.5;
}

.badge-warning {
	background-color: var(--bg-yellow, var(--yellow-100));
	color: var(--text-on-yellow, var(--yellow-700));
}

.badge-info {
	background-color: var(--bg-blue, var(--blue-100));
	color: var(--text-on-blue, var(--blue-700));
}

.badge-success {
	background-color: var(--bg-green, var(--green-100));
	color: var(--text-on-green, var(--green-800));
}

.badge-danger {
	background-color: var(--bg-red, var(--red-100));
	color: var(--text-on-red, var(--red-700));
}

/* Back link above page header */
.harmonia-back-link {
	display: inline-flex;
	align-items: center;
	gap: 0.25rem;
	font-size: var(--text-sm, 13px);
	color: var(--text-muted, var(--gray-700));
	text-decoration: none;
	margin-bottom: 0.75rem;
}

.harmonia-back-link:hover {
	color: var(--text-color, var(--gray-800));
}

/* Notice boxes */
.harmonia-notice {
	border-radius: var(--border-radius, 0.375rem);
	padding: var(--padding-sm, 7px) var(--padding-md, 15px);
	margin-bottom: var(--margin-md, 15px);
	font-size: var(--text-sm, 13px);
}

.harmonia-notice p {
	margin-bottom: 0;
}

.harmonia-notice-warning {
	background-color: var(--alert-bg-warning, var(--yellow-50));
	color: var(--alert-text-warning, var(--yellow-700));
	border: 1px solid var(--yellow-200, #fde68a);
}

.harmonia-notice-success {
	background-color: var(--alert-bg-success, var(--green-100));
	color: var(--alert-text-success, var(--green-700));
	border: 1px solid var(--green-200, #bbf7d0);
}

.harmonia-notice-info {
	background-color: var(--alert-bg-info, var(--blue-50));
	color: var(--alert-text-info, var(--blue-700));
	border: 1px solid var(--blue-200, #bfdbfe);
}

/* Forms inside harmonia cards */
.harmonia-card .form-label {
	font-size: var(--text-sm, 13px);
	font-weight: var(--weight-medium, 500);
	color: var(--text-color, var(--gray-800));
	margin-bottom: 0.25rem;
}

.harmonia-card .form-select {
	display: block;
	width: 100%;
	font-size: var(--text-base, 14px);
	color: var(--text-color, var(--gray-800));
	background-color: var(--control-bg, var(--gray-100));
	border-radius: var(--border-radius, 0.375rem);
	border: 1px solid var(--input-border-color, var(--gray-100));
	padding: 0.45rem 0.75rem;
	box-shadow: none;
}

.harmonia-card .form-select:focus {
	outline: none;
	background-color: var(--input-focus-bg, var(--gray-200));
	border-color: var(--input-focus-border-color, var(--gray-200));
	box-shadow: 0 0 0 1px var(--input-focus-border-color, var(--gray-200));
}

/* All currency fields: keep numeric value right-aligned */
.frappe-control[data-fieldtype="Currency"] .form-control,
input.form-control[data-fieldtype="Currency"] {
	text-align: right !important;
}

/* All grid currency inputs: keep typed value away from multi-letter symbols (e.g. PLN) */
.grid-currency-input .form-control {
	text-align: right !important;
	padding-left: calc(8px + 4.5ch) !important;
	padding-right: 8px !important;
}

.grid-currency-input.grid-currency-symbol-right .form-control {
	padding-left: 8px !important;
	padding-right: calc(8px + 4.5ch) !important;
}

/* Table styling for KE requests */
.harmonia-table thead th {
	font-size: var(--text-xs, 12px);
	font-weight: var(--weight-medium, 500);
	color: var(--text-muted, var(--gray-700));
	border-bottom: 1px solid var(--border-color, var(--gray-200));
	text-transform: uppercase;
	letter-spacing: 0.04em;
	white-space: nowrap;
}

.harmonia-table tbody td {
	font-size: var(--text-sm, 13px);
	border-bottom: 1px solid var(--border-color, var(--gray-200));
}

.harmonia-table tbody tr:last-child td {
	border-bottom: none;
}

/* Small icon-only action button (e.g. "view" in table rows) */
.harmonia-icon-btn {
	display: inline-flex;
	align-items: center;
	vertical-align: top;
	justify-content: center;
	padding: 0.25rem 0.5rem;
	height: 31px;
	border-radius: var(--border-radius, 6px);
	border: 1px solid var(--border-color, var(--gray-200, #e0e0e0));
	color: var(--text-muted, var(--gray-600));
	background: transparent;
	transition: background 0.15s, color 0.15s, border-color 0.15s;
	flex-shrink: 0;
}

.harmonia-icon-btn:hover {
	background: var(--gray-100, #f0f0f0);
	color: var(--text-base, #333);
	border-color: var(--gray-300, #ccc);
	text-decoration: none;
}

.harmonia-icon-btn-borderless {
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0.25rem 0.5rem;
	height: 31px;
	border-radius: var(--border-radius, 6px);
	border: 0px solid var(--border-color, var(--gray-200, #e0e0e0));
	color: var(--text-muted, var(--gray-600));
	background: transparent;
	transition: background 0.15s, color 0.15s;
	flex-shrink: 0;
}

.harmonia-icon-btn-borderless:hover {
	background: var(--gray-100, #f0f0f0);
	color: var(--text-base, #333);
	text-decoration: none;
}

.harmonia-btn-divider {
	display: inline-block;
	width: 1px;
	height: 20px;
	background: var(--border-color, var(--gray-200, #e0e0e0));
	margin: 0 2px;
	flex-shrink: 0;
}

/* Justification text box (request detail view) */
.harmonia-justification-box {
	background: var(--control-bg, var(--gray-50, #f8f9fa));
	border: 1px solid var(--border-color, var(--gray-200, #e0e0e0));
	border-radius: var(--border-radius, 6px);
	padding: 0.75rem 1rem;
	font-size: var(--text-sm, 13px);
	line-height: 1.6;
	white-space: pre-wrap;
	word-break: break-word;
}

/* Required field marker (signup, OU student forms) */
.form-label .reqd {
	color: var(--red-500, #dc3545);
	font-weight: 600;
}

