/* Global dark theme overrides for the proforma app */
:root {
	color-scheme: dark;
	--surface-body: #0d1018;
	--surface-panel: #141826;
	--surface-elevated: #1a1f30;
	--surface-header: #1f2538;
	--surface-border: #293046;
	--accent: #4d6bfe;
	--accent-hover: #6b83ff;
	--accent-soft: rgba(77, 107, 254, 0.25);
	--danger: #ff6b81;
	--danger-hover: #ff879b;
	--success: #4caf85;
	--success-hover: #65c79f;
	--warning: #f5a524;
	--text-primary: #edf1ff;
	--text-secondary: #c3c8de;
	--text-muted: #8d92af;
}

* {
	box-sizing: border-box;
}

body {
	margin: 0;
	font-family: system-ui, "Segoe UI", Roboto, Arial, sans-serif;
	background: var(--surface-body);
	color: var(--text-primary);
	min-height: 100vh;
}


.app-page-header {
	background: var(--surface-header);
	border: 1px solid var(--surface-border);
	border-radius: 14px;
	padding: 0.8rem 1.25rem;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	flex-wrap: wrap;
}

.app-header-left {
	display: flex;
	align-items: center;
	gap: 1rem;
	flex-wrap: wrap;
	min-width: 0;
}

.app-header-text {
	display: flex;
	flex-direction: column;
	gap: 0.15rem;
	min-width: 0;
}

.app-header-title {
	color: var(--text-primary);
	margin: 0;
	font-size: 1.35rem;
	letter-spacing: 0.03em;
}

.app-header-description {
	color: var(--text-secondary);
	font-size: 0.92rem;
	margin: 0;
}

.app-header-actions {
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-end;
	align-items: center;
	gap: 0.5rem;
	flex: 1 1 auto;
}

.app-header-actions .btn {
	margin: 0;
	white-space: nowrap;
}


.app-header-logo-img {
	height: 46px;
	width: auto;
	object-fit: contain;
	filter: drop-shadow(0 4px 8px rgba(0, 0, 0, 0.35));
}

.app-header-logo-placeholder {
	color: var(--text-secondary);
	font-size: 1.1rem;
	letter-spacing: 0.05em;
}

a {
	color: #8ab4ff;
	text-decoration: none;
}

a:hover {
	color: #c2d4ff;
}

.container {
	background: var(--surface-panel);
	border: 1px solid var(--surface-border);
	border-radius: 18px;
	padding: 2.5rem;
	box-shadow: 0 25px 45px rgba(6, 8, 14, 0.55);
}


@media (max-width: 1024px) {
	.app-header-actions {
		justify-content: flex-start;
	}
}

@media (max-width: 912px) {
	.app-header-actions .btn {
		min-width: 180px;
	}
}

@media (max-width: 992px) {
	.container {
		padding: 2rem;
	}
}

@media (max-width: 576px) {
	.container {
		padding: 1.25rem;
		border-radius: 14px;
	}

	.app-page-header {
		flex-direction: column;
		align-items: flex-start;
	}

	.app-header-actions {
		width: 100%;
		justify-content: flex-start;
	}

	.app-header-actions .btn {
		width: 100%;
		text-align: center;
	}
}

h1, h2, h3, h4, h5, h6 {
	color: var(--text-primary);
}

label,
.form-label {
	color: var(--text-secondary);
}

.text-muted,
.form-text,
small {
	color: var(--text-muted) !important;
}

.text-dark {
	color: var(--text-primary) !important;
}

.border {
	border-color: var(--surface-border) !important;
}

.bg-light {
	background-color: #1e2334 !important;
	color: var(--text-secondary) !important;
}

.card {
	background: var(--surface-elevated);
	border: 1px solid var(--surface-border);
	border-radius: 16px;
	color: var(--text-secondary);
}

.card-header {
	background: var(--surface-header);
	border-bottom: 1px solid var(--surface-border);
	color: var(--text-primary);
}

.card-body {
	color: var(--text-secondary);
}

.list-group-item {
	background: transparent;
	color: var(--text-secondary);
	border-color: var(--surface-border);
}

.list-group-item-action:hover {
	background: rgba(255, 255, 255, 0.08);
	color: var(--text-primary);
}

.list-group-item.active {
	background: var(--accent);
	border-color: var(--accent);
	color: #fff;
}

.badge {
	background: rgba(255, 255, 255, 0.12);
	color: var(--text-primary);
}

.badge-count {
	background: rgba(255, 255, 255, 0.16);
	color: var(--text-primary);
	min-width: 32px;
	text-align: center;
}

.badge-count-active {
	background: rgba(0, 0, 0, 0.35);
	color: #fff;
}

.client-entry {
	cursor: pointer;
}

.client-entry .form-check,
.client-entry .form-check-input {
	cursor: pointer;
}

.client-entry.active .form-check-input {
	border-color: #fff;
	box-shadow: 0 0 0 0.1rem rgba(255, 255, 255, 0.2);
}

#clientLetterFilter {
	display: flex;
	flex-wrap: wrap;
	gap: 0.35rem;
}

table {
	color: var(--text-secondary);
}

.table {
	border-color: var(--surface-border);
}

.table thead th {
	background: var(--surface-header);
	color: var(--text-secondary);
	border-color: var(--surface-border);
}

.table tbody tr {
	border-color: var(--surface-border);
}

.table-striped tbody tr:nth-of-type(odd) {
	background-color: rgba(255, 255, 255, 0.04);
}

.table-striped tbody tr:hover {
	background-color: rgba(255, 255, 255, 0.08);
}

.btn {
	border-radius: 10px;
	font-weight: 500;
}

.btn-primary {
	background: var(--accent);
	border-color: var(--accent);
}

.btn-primary:hover,
.btn-primary:focus {
	background: var(--accent-hover);
	border-color: var(--accent-hover);
}

.btn-secondary {
	background: #242b3d;
	border-color: #242b3d;
	color: var(--text-secondary);
}

.btn-secondary:hover,
.btn-secondary:focus {
	background: #2f374e;
	border-color: #2f374e;
	color: var(--text-primary);
}

.btn-outline-secondary,
.btn-outline-dark {
	color: var(--text-secondary);
	border-color: var(--surface-border);
	background: transparent;
}

.btn-outline-secondary:hover,
.btn-outline-secondary:focus,
.btn-outline-dark:hover,
.btn-outline-dark:focus {
	background: rgba(255, 255, 255, 0.08);
	border-color: var(--accent);
	color: var(--text-primary);
}

.btn-outline-primary {
	color: var(--accent);
	border-color: var(--accent);
	background: transparent;
}

.btn-outline-primary:hover,
.btn-outline-primary:focus {
	background: rgba(77, 107, 254, 0.16);
	border-color: var(--accent-hover);
	color: var(--accent-hover);
}

.btn-outline-success {
	color: var(--success);
	border-color: rgba(76, 175, 133, 0.65);
}

.btn-outline-success:hover,
.btn-outline-success:focus {
	background: rgba(76, 175, 133, 0.18);
	color: var(--success-hover);
	border-color: rgba(76, 175, 133, 0.85);
}

.btn-outline-danger {
	color: var(--danger);
	border-color: rgba(255, 107, 129, 0.7);
}

.btn-outline-danger:hover,
.btn-outline-danger:focus {
	background: rgba(255, 107, 129, 0.18);
	color: var(--danger-hover);
	border-color: rgba(255, 107, 129, 0.9);
}

.btn-success {
	background: var(--success);
	border-color: var(--success);
}

.btn-success:hover,
.btn-success:focus {
	background: var(--success-hover);
	border-color: var(--success-hover);
}

.btn-danger {
	background: var(--danger);
	border-color: var(--danger);
}

.btn-danger:hover,
.btn-danger:focus {
	background: var(--danger-hover);
	border-color: var(--danger-hover);
}

.btn-link {
	color: var(--accent);
}

.btn-link:hover {
	color: var(--accent-hover);
}

.btn-close {
	filter: invert(1) grayscale(100%);
}

.currency-symbol-display {
	display: inline-block;
	margin-left: 0.35rem;
}

.currency-symbol-tight {
	margin-left: 0;
}

.form-control,
.form-select,
textarea,
input[type="date"],
input[type="number"],
input[type="email"],
input[type="text"],
input[type="password"],
input[type="file"] {
	background: var(--surface-elevated);
	border: 1px solid var(--surface-border);
	color: var(--text-primary);
}

.form-control:focus,
.form-select:focus,
textarea:focus {
	background: var(--surface-elevated);
	border-color: var(--accent);
	box-shadow: 0 0 0 0.18rem var(--accent-soft);
	color: var(--text-primary);
}

.form-control::placeholder,
textarea::placeholder {
	color: rgba(236, 240, 255, 0.45);
}

input[type="file"]::file-selector-button {
	background: var(--surface-header);
	color: var(--text-secondary);
	border: none;
	padding: 0.6rem 1rem;
	margin-right: 1rem;
	border-radius: 10px;
	cursor: pointer;
}

input[type="file"]::file-selector-button:hover {
	background: rgba(77, 107, 254, 0.32);
	color: var(--text-primary);
}

.alert {
	border-radius: 12px;
	border: 1px solid transparent;
	color: var(--text-secondary);
	background: rgba(255, 255, 255, 0.06);
}

.alert-success {
	background: rgba(76, 175, 133, 0.15);
	border-color: rgba(76, 175, 133, 0.5);
	color: var(--success-hover);
}

.alert-danger {
	background: rgba(255, 107, 129, 0.15);
	border-color: rgba(255, 107, 129, 0.55);
	color: var(--danger-hover);
}

.alert-warning {
	background: rgba(245, 165, 36, 0.15);
	border-color: rgba(245, 165, 36, 0.55);
	color: var(--warning);
}

.section-card {
	border: 1px solid var(--surface-border);
	border-radius: 16px;
	background: var(--surface-elevated);
	margin-bottom: 20px;
	overflow: hidden;
}

.section-card .section-title {
	background: var(--surface-header);
	padding: 14px 18px;
	font-weight: 600;
	color: var(--text-primary);
	border-bottom: 1px solid var(--surface-border);
}

.section-card .section-body {
	padding: 18px;
}

.bill-block {
	min-height: 150px;
}

.bill-block p {
	margin-bottom: 6px;
}

.totals-box {
	max-width: 320px;
	margin-left: auto;
	background: var(--surface-panel);
	border-radius: 12px;
	border: 1px solid var(--surface-border);
	padding: 16px;
}

.totals-box .row {
	margin-bottom: 8px;
	color: var(--text-secondary);
}

.items-table th,
.items-table td {
	vertical-align: middle;
}

.items-table input {
	min-width: 120px;
}

.items-table .qty,
.items-table .unit,
.items-table .unit-price {
	width: 110px;
}

.items-table .line-total {
	width: 140px;
}

.table thead th {
	text-transform: uppercase;
	letter-spacing: 0.03em;
	font-size: 0.82rem;
}

.table td,
.table th {
	vertical-align: middle;
}

.delete-product-btn,
.delete-proforma-btn {
	transition: transform 0.15s ease;
}

.delete-product-btn:hover,
.delete-proforma-btn:hover {
	transform: translateY(-1px);
}

.shadow-none {
	box-shadow: none !important;
}

hr {
	border-color: var(--surface-border);
}

fieldset {
	border-color: var(--surface-border);
}

