/* Replace Frappe light-theme black accents (#171717 / gray-900) with brand blue. */
:root,
[data-theme="light"],
[data-theme="dark"] {
	--lv-accent: #556ba8;
	--lv-accent-hover: #4a5d94;
	--lv-accent-soft: #eef1f7;

	--primary: var(--lv-accent);
	--brand-color: var(--lv-accent);
	--btn-primary: var(--lv-accent);
	--primary-color: var(--lv-accent);
	--border-primary: var(--lv-accent);
	--checkbox-color: var(--lv-accent);
	--date-active-bg: var(--lv-accent);
	--progress-bar-bg: var(--lv-accent);
	--checkbox-gradient: linear-gradient(
		180deg,
		var(--lv-accent) -124.51%,
		var(--lv-accent) 100%
	);
}

.btn.btn-primary,
.btn-primary,
div#driver-popover-item .driver-popover-footer button.driver-next-btn {
	background-color: var(--lv-accent);
	border-color: var(--lv-accent);
	color: #fff;
	--icon-stroke: currentColor;
	--icon-fill-bg: var(--lv-accent);
}

.btn.btn-primary:hover,
.btn-primary:hover,
.btn.btn-primary:focus,
.btn-primary:focus,
div#driver-popover-item .driver-popover-footer button.driver-next-btn:hover,
div#driver-popover-item .driver-popover-footer button.driver-next-btn:focus {
	background-color: var(--lv-accent-hover);
	border-color: var(--lv-accent-hover);
	color: #fff;
}

.btn.btn-primary:active,
.btn-primary:not(:disabled):not(.disabled):active,
.btn-primary:not(:disabled):not(.disabled).active,
.show > .btn-primary.dropdown-toggle {
	background-color: var(--lv-accent-hover) !important;
	border-color: var(--lv-accent-hover) !important;
	color: #fff !important;
}

.btn-outline-primary {
	color: var(--lv-accent);
	border-color: var(--lv-accent);
}

.btn-outline-primary:hover,
.btn-outline-primary:focus,
.btn-outline-primary:not(:disabled):not(.disabled):active,
.btn-outline-primary:not(:disabled):not(.disabled).active,
.show > .btn-outline-primary.dropdown-toggle {
	color: #fff;
	background-color: var(--lv-accent);
	border-color: var(--lv-accent);
}

.badge-primary {
	background-color: var(--lv-accent);
	color: #fff;
}

input[type="checkbox"]:checked {
	background-color: var(--lv-accent);
	border-color: var(--lv-accent);
}

.custom-control.custom-switch .custom-control-input:checked ~ .custom-control-label:before,
.custom-control-input:checked ~ .custom-control-label::before {
	background-color: var(--lv-accent);
	border-color: var(--lv-accent);
}

input:checked + .slider {
	background-color: var(--lv-accent);
}

/* Prototype look. Active only with body.lv-desk-skin (site_config lv_desk_skin).
   Colors and type only: list/form action groups stay in Frappe's own layout. */
body.lv-desk-skin {
	--lv-accent: #0d7a5f;
	--lv-accent-hover: #065f4a;
	--lv-accent-soft: #d8f0e8;
	--primary: #0d7a5f;
	--brand-color: #0d7a5f;
	--btn-primary: #0d7a5f;
	--primary-color: #0d7a5f;
	--border-primary: #0d7a5f;
	--checkbox-color: #0d7a5f;
	--date-active-bg: #0d7a5f;
	--progress-bar-bg: #0d7a5f;
	font-family: Manrope, system-ui, sans-serif;
}

/* Light canvas across the whole desk, not only the page card.
   The canvas is the html box: body is only the viewport tall, so a long
   page would otherwise show white underneath. */
html[data-theme="light"]:has(body.lv-desk-skin),
html[data-theme="light"] body.lv-desk-skin {
	--bg-color: #eef3f0;
	--fg-color: #ffffff;
	--subtle-fg: #e8efeb;
	--navbar-bg: #eef3f0;
	--card-bg: #ffffff;
	background-color: #eef3f0;
	background-image:
		radial-gradient(1200px 600px at 10% -10%, #d9ebe3 0%, transparent 55%),
		radial-gradient(900px 500px at 100% 0%, #e4ebe8 0%, transparent 50%),
		linear-gradient(180deg, #eef3f0 0%, #f3f6f4 40%, #eef2f0 100%);
	background-attachment: fixed;
}

html[data-theme="light"] body.lv-desk-skin .main-section,
html[data-theme="light"] body.lv-desk-skin #body,
html[data-theme="light"] body.lv-desk-skin .page-container,
html[data-theme="light"] body.lv-desk-skin .layout-main {
	background: transparent;
}

/* Dark theme: lifted charcoal, not near-black gray-900. */
html[data-theme="dark"]:has(body.lv-desk-skin) {
	background-color: #24302c;
	min-height: 100%;
}

html[data-theme="dark"] body.lv-desk-skin {
	--gray-900: #24302c;
	--gray-800: #2e3b36;
	--gray-700: #3a4943;
	--bg-color: #24302c;
	--fg-color: #2e3b36;
	--subtle-accent: #3a4943;
	--subtle-fg: #2e3b36;
	--navbar-bg: #2e3b36;
	--fg-hover-color: #3a4943;
	--card-bg: #2e3b36;
	--control-bg: #31403a;
	--control-bg-on-gray: #31403a;
	--modal-bg: #2e3b36;
	--btn-default-bg: #31403a;
	--btn-default-hover-bg: #3a4943;
	background-color: #24302c;
}

body.lv-desk-skin .btn,
body.lv-desk-skin input,
body.lv-desk-skin .navbar,
body.lv-desk-skin .desk-sidebar,
body.lv-desk-skin .layout-main-section {
	font-family: Manrope, system-ui, sans-serif;
}

html[data-theme="light"] body.lv-desk-skin .sticky-top,
html[data-theme="light"] body.lv-desk-skin .sticky-top > header,
html[data-theme="light"] body.lv-desk-skin .navbar {
	background: #eef3f0;
	border-bottom: 1px solid #d5dfd9;
	color: #14201c;
}

html[data-theme="dark"] body.lv-desk-skin .sticky-top,
html[data-theme="dark"] body.lv-desk-skin .sticky-top > header,
html[data-theme="dark"] body.lv-desk-skin .navbar {
	background: #2e3b36;
	border-bottom: 1px solid #3a4943;
	color: #e8f2ee;
}

html[data-theme="light"] body.lv-desk-skin .navbar .navbar-brand,
html[data-theme="light"] body.lv-desk-skin .navbar .nav-link,
html[data-theme="light"] body.lv-desk-skin .navbar .navbar-nav .nav-link {
	color: #14201c;
}

html[data-theme="dark"] body.lv-desk-skin .navbar .navbar-brand,
html[data-theme="dark"] body.lv-desk-skin .navbar .nav-link,
html[data-theme="dark"] body.lv-desk-skin .navbar .navbar-nav .nav-link {
	color: #e8f2ee;
}

body.lv-desk-skin .navbar .navbar-brand::after {
	content: "LVPS";
	margin-left: 10px;
	font-weight: 700;
	letter-spacing: -0.02em;
	color: inherit;
}

html[data-theme="light"] body.lv-desk-skin .navbar input,
html[data-theme="light"] body.lv-desk-skin .navbar .form-control {
	background: #fff;
	color: #14201c;
	border-color: #d5dfd9;
}

body.lv-desk-skin .desk-sidebar {
	background: #16352c;
	color: #e8f2ee;
}

body.lv-desk-skin .desk-sidebar .standard-sidebar-label,
body.lv-desk-skin .desk-sidebar .standard-sidebar-item,
body.lv-desk-skin .desk-sidebar .sidebar-item-label {
	color: #c6d8d0;
}

body.lv-desk-skin .desk-sidebar .standard-sidebar-item.selected,
body.lv-desk-skin .desk-sidebar .standard-sidebar-item:hover {
	background: rgba(31, 168, 127, 0.22);
	color: #fff;
}

/* One surface for a document. The column wrapper stays flat so the card is not doubled. */
body.lv-desk-skin .layout-main-section-wrapper {
	background: transparent;
	border: none;
	box-shadow: none;
	border-radius: 0;
}

body.lv-desk-skin .form-layout {
	background: transparent;
	border: none;
	box-shadow: none;
	border-radius: 0;
}

html[data-theme="light"] body.lv-desk-skin .layout-main-section {
	background: #fff;
	border: 1px solid #d5dfd9;
	border-radius: 14px;
	box-shadow: 0 1px 2px rgba(20, 32, 28, 0.04), 0 8px 24px rgba(20, 32, 28, 0.06);
}

html[data-theme="dark"] body.lv-desk-skin .layout-main-section {
	background: #2e3b36;
	border: 1px solid #3a4943;
	border-radius: 14px;
}

html[data-theme="light"] body.lv-desk-skin #page-command-center .layout-main-section,
html[data-theme="dark"] body.lv-desk-skin #page-command-center .layout-main-section {
	background: transparent;
	border: none;
	box-shadow: none;
	border-radius: 0;
}

body.lv-desk-skin .page-head .title-text,
body.lv-desk-skin .page-head h3 {
	font-size: 28px;
	font-weight: 800;
	letter-spacing: -0.03em;
}

body.lv-desk-skin .list-row-head {
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	color: #8a9a93;
}

html[data-theme="dark"] body.lv-desk-skin .list-row-head {
	color: #9bb5ab;
}

body.lv-desk-skin .list-row {
	padding-top: 10px;
	padding-bottom: 10px;
	border-bottom: 1px solid #e8efeb;
}

html[data-theme="dark"] body.lv-desk-skin .list-row {
	border-bottom-color: #3a4943;
}

html[data-theme="light"] body.lv-desk-skin .list-row:hover {
	background: #f6faf8;
}

html[data-theme="dark"] body.lv-desk-skin .list-row:hover {
	background: #31403a;
}

body.lv-desk-skin .indicator-pill,
body.lv-desk-skin .indicator {
	border-radius: 999px;
	font-weight: 700;
}

/* LV IIKO Nomenclature: section headings and the weekday dropdown */
.lv-nomenclature-form .form-section .section-head {
	color: var(--lv-accent);
	font-weight: 600;
	border-left: 3px solid var(--lv-accent);
	padding-left: 8px;
}

.lv-weekdays .btn {
	width: 100%;
	text-align: left;
}

.lv-weekdays .dropdown-item {
	margin: 0;
	cursor: pointer;
}

.lv-schedule {
	width: 100%;
	font-size: var(--text-sm, 13px);
}

.lv-schedule th {
	padding: 4px 6px;
	font-weight: 500;
	color: var(--text-muted);
}

.lv-schedule td {
	padding: 4px 6px;
	border-top: 1px solid var(--border-color);
	vertical-align: middle;
}

.lv-schedule td input[type="number"] {
	min-width: 56px;
}

@media (max-width: 767px) {
	.lv-schedule thead {
		display: none;
	}

	.lv-schedule tr,
	.lv-schedule td {
		display: block;
		width: 100%;
	}

	.lv-schedule td:first-child {
		font-weight: 600;
	}

	.lv-schedule td:not(:first-child)::before {
		content: attr(data-label);
		display: block;
		color: var(--text-muted);
	}
}

.lv-plan-banner {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 12px 32px;
	padding: 14px 16px;
	border-left: 3px solid var(--lv-accent);
	background: var(--lv-accent-soft);
}

.lv-plan-banner-title {
	font-size: 18px;
	font-weight: 600;
}

.lv-plan-banner-sub {
	color: var(--text-muted);
}

.lv-plan-banner-facts {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 28px;
}

.lv-plan-banner-facts span {
	display: block;
	font-size: 12px;
	color: var(--text-muted);
}
