:root {
	--php-erp-primary: #2563eb;
	--php-erp-primary-dark: #1d4ed8;
	--php-erp-accent: #14b8a6;
	--php-erp-surface: #eff6ff;
}

body {
	--primary: var(--php-erp-primary);
	--primary-color: var(--php-erp-primary);
	--btn-primary: var(--php-erp-primary);
	--blue-500: var(--php-erp-primary);
	--blue-600: var(--php-erp-primary-dark);
	--blue-50: #eff6ff;
	--blue-100: #dbeafe;
	--blue-200: #bfdbfe;
	--blue-300: #93c5fd;
	--blue-400: #60a5fa;
	--blue-700: #1d4ed8;
	--blue-800: #1e40af;
	--blue-900: #1e3a8a;
	--navbar-bg: #ffffff;
}

.layout-main-section,
.widget,
.frappe-card {
	border-radius: 12px;
}

.standard-sidebar-item.selected,
.standard-sidebar-item:hover,
.desk-sidebar-item.selected,
.workspace-dock-item.active {
	background-color: var(--php-erp-surface) !important;
	color: var(--php-erp-primary-dark) !important;
}

.indicator-pill.blue,
.indicator-pill[data-filter*="blue"] {
	background: #dbeafe;
	color: #1e40af;
}

.btn-primary,
.es-button[data-variant="solid"] {
	background-color: var(--php-erp-primary) !important;
	border-color: var(--php-erp-primary) !important;
}

.btn-primary:hover,
.es-button[data-variant="solid"]:hover {
	background-color: var(--php-erp-primary-dark) !important;
	border-color: var(--php-erp-primary-dark) !important;
}

.navbar-home img,
.app-logo {
	object-fit: contain;
}

.navbar-home img {
	max-width: 132px;
}

.workspace-dock-logo img,
.sidebar-header img {
	object-fit: contain;
}

.workspace-dock-logo a {
	cursor: pointer;
}

/*
 * ERPNext injects Frappe CRM and Helpdesk product promotions at the bottom of
 * the CRM and Support sidebars. Keep those product links out of the
 * white-labelled Desk without modifying the upstream Frappe sidebar code.
 */
.body-sidebar .promotional-banners {
	display: none !important;
}

/*
 * Espresso deliberately makes the dark desktop sidebar transparent. On a
 * phone the same sidebar becomes an overlay, so that transparency lets the
 * active list/form show through and makes both layers unreadable.
 */
@media (max-width: 575.98px) {
	.body-sidebar-container.expanded .body-sidebar {
		background: var(--surface-gray-1, #f8f9fa) !important;
		box-shadow: 8px 0 24px rgb(0 0 0 / 24%);
		isolation: isolate;
	}
}

[data-theme="dark"] body {
	--php-erp-surface: rgb(37 99 235 / 18%);
	--navbar-bg: #111827;
}

body[data-path="login"] {
	background: linear-gradient(145deg, #f8fafc 0%, var(--php-erp-surface) 100%);
}

body[data-path="login"] .page-card {
	border: 1px solid #dbeafe;
	box-shadow: 0 20px 50px rgb(15 23 42 / 10%);
}

body[data-path="login"] .app-logo {
	width: auto;
	max-width: 190px;
	height: 52px;
}

body[data-path="login"] .web-footer,
body[data-path="login"] .powered-by {
	display: none !important;
}

/* Hide the shared attribution column on every public and portal page. */
.web-footer .footer-powered,
.footer-powered {
	display: none !important;
}

/* PHP ERP Modern Desk
 * Uses Frappe's public theme tokens and component classes. No upstream template is replaced.
 */
:root,
[data-theme="light"] {
	--php-shell-bg: #f4f7fb;
	--php-shell-surface: #ffffff;
	--php-shell-surface-soft: #f8fafc;
	--php-shell-border: #e2e8f0;
	--php-shell-text: #172033;
	--php-shell-muted: #64748b;
	--php-shell-primary: #2563eb;
	--php-shell-primary-hover: #1d4ed8;
	--php-shell-primary-soft: #eaf2ff;
	--php-shell-accent: #0f9f8f;
	--php-shell-shadow: 0 8px 28px rgb(15 23 42 / 7%);
	--php-shell-shadow-sm: 0 2px 10px rgb(15 23 42 / 6%);
	--php-shell-radius: 12px;
	--php-shell-radius-sm: 9px;
	--navbar-height: 56px;
	--sidebar-width: 248px;
	--page-max-width: none;
}

[data-theme="dark"] {
	--php-shell-bg: #0d1422;
	--php-shell-surface: #141e2e;
	--php-shell-surface-soft: #101a29;
	--php-shell-border: #263348;
	--php-shell-text: #e7edf7;
	--php-shell-muted: #9aa9bd;
	--php-shell-primary: #60a5fa;
	--php-shell-primary-hover: #93c5fd;
	--php-shell-primary-soft: rgb(59 130 246 / 16%);
	--php-shell-accent: #2dd4bf;
	--php-shell-shadow: 0 10px 32px rgb(0 0 0 / 25%);
	--php-shell-shadow-sm: 0 3px 12px rgb(0 0 0 / 18%);
}

html[data-php-erp-modern="1"] body {
	background: var(--php-shell-bg);
	color: var(--php-shell-text);
	font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	-webkit-font-smoothing: antialiased;
}

/* Navigation */
html[data-php-erp-modern="1"] .navbar {
	height: var(--navbar-height);
	background: color-mix(in srgb, var(--php-shell-surface) 92%, transparent);
	border-bottom: 1px solid var(--php-shell-border);
	box-shadow: 0 1px 0 rgb(15 23 42 / 2%);
	backdrop-filter: blur(16px);
}

html[data-php-erp-modern="1"] .navbar .container {
	max-width: none;
	padding-inline: 18px;
}

html[data-php-erp-modern="1"] .navbar .search-bar {
	max-width: 430px;
}

html[data-php-erp-modern="1"] .navbar .search-bar .awesomplete input,
html[data-php-erp-modern="1"] .navbar .search-bar .search-icon {
	background: var(--php-shell-surface-soft);
	border-color: var(--php-shell-border);
}

html[data-php-erp-modern="1"] .navbar .search-bar .awesomplete input {
	height: 36px;
	border-radius: 10px;
}

html[data-php-erp-modern="1"] .navbar .nav-item {
	margin-left: 12px;
}

html[data-php-erp-modern="1"] .navbar .avatar-frame,
html[data-php-erp-modern="1"] .navbar .avatar-empty {
	box-shadow: 0 0 0 2px var(--php-shell-surface), 0 0 0 3px var(--php-shell-border);
}

/* Left navigation */
html[data-php-erp-modern="1"] .body-sidebar {
	background: var(--php-shell-surface);
	border-right: 1px solid var(--php-shell-border);
	padding: 10px 10px 12px;
	gap: 10px;
}

html[data-php-erp-modern="1"] .body-sidebar .standard-sidebar-item {
	margin-bottom: 3px;
}

html[data-php-erp-modern="1"] .body-sidebar .standard-sidebar-item .item-anchor {
	height: 38px;
	padding: 0 8px;
	border-radius: 9px;
	color: var(--php-shell-muted);
	font-weight: 500;
}

html[data-php-erp-modern="1"] .body-sidebar .standard-sidebar-item .sidebar-item-label {
	font-size: 13px;
}

html[data-php-erp-modern="1"] .body-sidebar .standard-sidebar-item:not(.active-sidebar) .item-anchor:hover {
	background: var(--php-shell-surface-soft);
	color: var(--php-shell-text);
}

html[data-php-erp-modern="1"] .body-sidebar .standard-sidebar-item.active-sidebar,
html[data-php-erp-modern="1"] .body-sidebar .standard-sidebar-item.selected {
	background: var(--php-shell-primary-soft) !important;
	border-radius: 10px;
	box-shadow: inset 3px 0 0 var(--php-shell-primary);
}

html[data-php-erp-modern="1"] .body-sidebar .standard-sidebar-item.active-sidebar .item-anchor,
html[data-php-erp-modern="1"] .body-sidebar .standard-sidebar-item.selected .item-anchor {
	color: var(--php-shell-primary) !important;
	font-weight: 650;
}

html[data-php-erp-modern="1"] .body-sidebar .section-break .sidebar-item-label,
html[data-php-erp-modern="1"] .body-sidebar a.section-break .sidebar-item-label {
	color: var(--php-shell-muted);
	font-size: 10px;
	font-weight: 750;
	letter-spacing: .08em;
	text-transform: uppercase;
}

html[data-php-erp-modern="1"] .workspace-dock {
	background: var(--php-shell-surface-soft);
	border-right-color: var(--php-shell-border);
}

html[data-php-erp-modern="1"] .workspace-dock .workspace-dock-item,
html[data-php-erp-modern="1"] .workspace-dock .workspace-dock-logo {
	border-radius: 10px;
}

html[data-php-erp-modern="1"] .workspace-dock .workspace-dock-item.active {
	background: var(--php-shell-primary-soft) !important;
	color: var(--php-shell-primary) !important;
}

/* Page shell and headers */
html[data-php-erp-modern="1"] .page-container,
html[data-php-erp-modern="1"] .main-section {
	background: var(--php-shell-bg);
}

html[data-php-erp-modern="1"] .page-head {
	background: color-mix(in srgb, var(--php-shell-bg) 90%, transparent);
	border-bottom: 1px solid var(--php-shell-border);
	backdrop-filter: blur(14px);
}

html[data-php-erp-modern="1"] .page-head .container,
html[data-php-erp-modern="1"] .layout-main-section-wrapper {
	width: 100%;
	max-width: none;
}

html[data-php-erp-modern="1"] .page-head .container,
html[data-php-erp-modern="1"] .page-body .container {
	padding-right: 16px;
	padding-left: 16px;
}

html[data-php-erp-modern="1"] .page-head .title-text,
html[data-php-erp-modern="1"] .page-head h3 {
	color: var(--php-shell-text);
	font-weight: 680;
	letter-spacing: -.015em;
}

html[data-php-erp-modern="1"] .layout-main-section {
	background: var(--php-shell-surface);
	border: 1px solid var(--php-shell-border);
	border-radius: var(--php-shell-radius);
	box-shadow: var(--php-shell-shadow-sm);
}

html[data-php-erp-modern="1"] .layout-main-section.frappe-card {
	box-shadow: var(--php-shell-shadow-sm);
}

/* Workspaces and cards */
html[data-php-erp-modern="1"] .widget,
html[data-php-erp-modern="1"] .frappe-card,
html[data-php-erp-modern="1"] .card {
	background: var(--php-shell-surface);
	border: 1px solid var(--php-shell-border);
	border-radius: var(--php-shell-radius);
	box-shadow: var(--php-shell-shadow-sm);
}

html[data-php-erp-modern="1"] .widget:hover,
html[data-php-erp-modern="1"] .shortcut-widget-box:hover {
	border-color: color-mix(in srgb, var(--php-shell-primary) 38%, var(--php-shell-border));
	box-shadow: var(--php-shell-shadow);
	transform: translateY(-1px);
}

html[data-php-erp-modern="1"] .widget,
html[data-php-erp-modern="1"] .shortcut-widget-box {
	transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}

html[data-php-erp-modern="1"] .widget .widget-head .widget-title,
html[data-php-erp-modern="1"] .widget .widget-head .widget-label {
	font-weight: 650;
	color: var(--php-shell-text);
}

/* Forms */
html[data-php-erp-modern="1"] .form-layout .form-section {
	padding: 18px 20px;
	border-bottom: 1px solid var(--php-shell-border);
}

html[data-php-erp-modern="1"] .form-layout .section-head {
	color: var(--php-shell-text);
	font-weight: 680;
	font-size: 13px;
	letter-spacing: .01em;
}

html[data-php-erp-modern="1"] .control-label,
html[data-php-erp-modern="1"] .grid-heading-row {
	color: var(--php-shell-muted);
	font-weight: 600;
}

html[data-php-erp-modern="1"] .form-control,
html[data-php-erp-modern="1"] .input-with-feedback,
html[data-php-erp-modern="1"] .ql-editor,
html[data-php-erp-modern="1"] .awesomplete > input {
	min-height: 36px;
	background: var(--php-shell-surface-soft);
	border: 1px solid var(--php-shell-border);
	border-radius: var(--php-shell-radius-sm);
	color: var(--php-shell-text);
	transition: border-color .15s ease, box-shadow .15s ease, background .15s ease;
}

html[data-php-erp-modern="1"] .form-control:focus,
html[data-php-erp-modern="1"] .input-with-feedback:focus,
html[data-php-erp-modern="1"] .awesomplete > input:focus {
	background: var(--php-shell-surface);
	border-color: var(--php-shell-primary);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--php-shell-primary) 16%, transparent);
}

/* Keep boolean controls unmistakable in both themes. The general form-input
 * styling must not turn native checkboxes into identical empty pills. */
html[data-php-erp-modern="1"] body input[type="checkbox"]:not([role="switch"]) {
	-webkit-appearance: none !important;
	appearance: none !important;
	width: 17px !important;
	height: 17px !important;
	min-height: 17px !important;
	border: 2px solid var(--php-shell-muted) !important;
	border-radius: 4px !important;
	background: var(--php-shell-surface) !important;
	background-image: none !important;
	background-repeat: no-repeat !important;
	background-position: center !important;
	box-shadow: none !important;
	cursor: pointer;
	position: relative;
}

html[data-php-erp-modern="1"] body input[type="checkbox"]:not([role="switch"]):checked {
	background: var(--php-shell-primary) !important;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 10'%3E%3Cpath d='M1.5 5.2 4.5 8 10.5 1.8' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") !important;
	background-repeat: no-repeat !important;
	background-position: center !important;
	background-size: 11px 9px !important;
	border-color: var(--php-shell-primary) !important;
}

html[data-php-erp-modern="1"] .like-disabled-input,
html[data-php-erp-modern="1"] .control-value {
	border-radius: 7px;
}

html[data-php-erp-modern="1"] .form-tabs-list {
	border-bottom-color: var(--php-shell-border);
	gap: 6px;
}

html[data-php-erp-modern="1"] .form-tabs-list .nav-link {
	border-radius: 8px 8px 0 0;
	font-weight: 550;
}

html[data-php-erp-modern="1"] .form-tabs-list .nav-link.active {
	color: var(--php-shell-primary);
	border-bottom-color: var(--php-shell-primary);
}

/* Buttons */
html[data-php-erp-modern="1"] .btn:not(.btn-xs),
html[data-php-erp-modern="1"] .es-button:not([data-size="sm"]) {
	min-height: 34px;
	border-radius: 9px;
	font-weight: 600;
	box-shadow: none;
}

html[data-php-erp-modern="1"] .btn-primary,
html[data-php-erp-modern="1"] .es-button[data-variant="solid"] {
	background: linear-gradient(135deg, var(--php-shell-primary), var(--php-shell-primary-hover)) !important;
	border-color: transparent !important;
	box-shadow: 0 5px 14px color-mix(in srgb, var(--php-shell-primary) 24%, transparent);
}

html[data-php-erp-modern="1"] .btn-default,
html[data-php-erp-modern="1"] .btn-secondary {
	background: var(--php-shell-surface);
	border-color: var(--php-shell-border);
	color: var(--php-shell-text);
}

html[data-php-erp-modern="1"] .btn-default:hover,
html[data-php-erp-modern="1"] .btn-secondary:hover {
	background: var(--php-shell-primary-soft);
	border-color: color-mix(in srgb, var(--php-shell-primary) 35%, var(--php-shell-border));
	color: var(--php-shell-primary);
}

/* Lists and grids */
html[data-php-erp-modern="1"] .list-row-container,
html[data-php-erp-modern="1"] .list-row-head,
html[data-php-erp-modern="1"] .grid-row {
	border-color: var(--php-shell-border);
}

html[data-php-erp-modern="1"] .list-row-container {
	background: var(--php-shell-surface);
	transition: background .14s ease, box-shadow .14s ease;
}

html[data-php-erp-modern="1"] .list-row-container:hover {
	background: var(--php-shell-primary-soft);
	box-shadow: inset 3px 0 0 var(--php-shell-primary);
}

html[data-php-erp-modern="1"] .list-row-head {
	background: var(--php-shell-surface-soft);
	color: var(--php-shell-muted);
	font-weight: 650;
}

html[data-php-erp-modern="1"] .datatable,
html[data-php-erp-modern="1"] .form-grid {
	border: 1px solid var(--php-shell-border);
	border-radius: var(--php-shell-radius-sm);
	overflow: hidden;
}

/* Menus, dialogs, alerts */
html[data-php-erp-modern="1"] .dropdown-menu,
html[data-php-erp-modern="1"] .awesomplete > ul,
html[data-php-erp-modern="1"] .popover {
	background: var(--php-shell-surface);
	border: 1px solid var(--php-shell-border);
	border-radius: 11px;
	box-shadow: var(--php-shell-shadow);
	padding: 6px;
}

html[data-php-erp-modern="1"] .dropdown-item,
html[data-php-erp-modern="1"] .awesomplete > ul > li {
	border-radius: 7px;
}

html[data-php-erp-modern="1"] .dropdown-item:hover,
html[data-php-erp-modern="1"] .awesomplete > ul > li:hover,
html[data-php-erp-modern="1"] .awesomplete > ul > li[aria-selected="true"] {
	background: var(--php-shell-primary-soft);
	color: var(--php-shell-primary);
}

html[data-php-erp-modern="1"] .modal-content {
	background: var(--php-shell-surface);
	border: 1px solid var(--php-shell-border);
	border-radius: 15px;
	box-shadow: 0 24px 70px rgb(15 23 42 / 24%);
	overflow: hidden;
}

html[data-php-erp-modern="1"] .modal-header,
html[data-php-erp-modern="1"] .modal-footer {
	background: var(--php-shell-surface-soft);
	border-color: var(--php-shell-border);
}

html[data-php-erp-modern="1"] .indicator-pill {
	border-radius: 999px;
	font-weight: 650;
	padding-inline: 9px;
}

html[data-php-erp-modern="1"] .alert {
	border: 0;
	border-left: 4px solid currentColor;
	border-radius: 10px;
}

/* Persistent PAI shortcut */
.php-erp-pai-launcher {
	position: fixed;
	right: 22px;
	bottom: 22px;
	z-index: 1035;
	display: inline-flex;
	align-items: center;
	gap: 9px;
	height: 46px;
	padding: 0 17px;
	border: 1px solid rgb(255 255 255 / 18%);
	border-radius: 999px;
	background: linear-gradient(135deg, #2563eb, #0f9f8f);
	box-shadow: 0 14px 34px rgb(37 99 235 / 30%);
	color: #fff !important;
	font-size: 13px;
	font-weight: 700;
	text-decoration: none !important;
	transition: transform .18s ease, box-shadow .18s ease;
}

.php-erp-pai-launcher:hover {
	transform: translateY(-2px);
	box-shadow: 0 18px 40px rgb(37 99 235 / 38%);
}

.php-erp-pai-launcher svg { width: 18px; height: 18px; }

@media (max-width: 767.98px) {
	:root { --navbar-height: 52px; }
	html[data-php-erp-modern="1"] .navbar .container { padding-inline: 10px; }
	html[data-php-erp-modern="1"] .layout-main-section { border-radius: 10px; }
	html[data-php-erp-modern="1"] .form-layout .form-section { padding: 14px 12px; }
	.php-erp-pai-launcher { right: 14px; bottom: 16px; width: 46px; padding: 0; justify-content: center; }
	.php-erp-pai-launcher span { display: none; }
}

@media (prefers-reduced-motion: reduce) {
	html[data-php-erp-modern="1"] *, .php-erp-pai-launcher { transition: none !important; }
}
