/* 乐见智显 ERP 全局主题。
   目标:贴近已确认的“老板总控台”视觉稿,同时不修改 Frappe/ERPNext 核心。 */

:root {
	--lj-sidebar-900: #061815;
	--lj-sidebar-800: #08221d;
	--lj-green: #07964f;
	--lj-green-600: #087f45;
	--lj-green-50: #eaf7f0;
	--lj-red: #e03131;
	--lj-red-50: #fff1f1;
	--lj-amber: #f59f00;
	--lj-amber-50: #fff7e6;
	--lj-blue: #228be6;
	--lj-blue-50: #e9f4ff;
	--lj-teal: #0ca678;
	--lj-teal-50: #e6fcf5;
	--lj-gold: #d99a00;
	--lj-purple: #7950f2;
	--lj-ink: #111827;
	--lj-muted: #667085;
	--lj-line: #e5e7eb;
	--lj-soft: #f5f7f9;
	--lj-card: #ffffff;
	--lj-radius: 8px;
	--lj-shadow: 0 8px 24px rgba(15, 23, 42, 0.06);
}

.lj-hide-profit .lj-profit-column {
	display: none !important;
}

body.lj-login-polished {
	min-height: 100vh;
	background: #f4f6f1 !important;
	color: var(--lj-ink);
}

body.lj-login-polished .navbar,
body.lj-login-polished .web-footer {
	display: none !important;
}

body.lj-login-polished .for-login {
	display: grid;
	place-items: center;
	min-height: 100vh;
	padding: 42px 18px;
}

body.lj-login-polished .page-card-head {
	width: min(420px, 100%);
	margin: 0 auto 18px;
	text-align: center;
}

body.lj-login-polished .page-card-head .app-logo {
	width: min(220px, 72vw);
	height: auto;
	margin: 0 auto 18px;
	object-fit: contain;
}

body.lj-login-polished .page-card-head h4 {
	margin: 0;
	color: var(--lj-ink);
	font-size: 24px;
	font-weight: 750;
	letter-spacing: 0;
	line-height: 1.25;
}

body.lj-login-polished .lj-login-copy {
	margin-top: 8px;
	color: var(--lj-muted);
	font-size: 14px;
	line-height: 1.5;
}

body.lj-login-polished .login-content.page-card {
	width: min(420px, calc(100vw - 36px));
	margin: 0 auto;
	border: 1px solid rgba(17, 24, 39, 0.08);
	border-radius: 8px;
	background: #fff;
	box-shadow: 0 18px 46px rgba(15, 23, 42, 0.1);
}

body.lj-login-polished .page-card-body {
	padding: 28px 32px 8px;
}

body.lj-login-polished .page-card-actions {
	padding: 0 32px 30px;
}

body.lj-login-polished .form-group {
	margin-bottom: 16px;
}

body.lj-login-polished .form-control {
	height: 44px;
	border: 1px solid #d7dde4;
	border-radius: 8px;
	background: #f8faf9;
	color: var(--lj-ink);
	font-size: 14px;
	box-shadow: none;
}

body.lj-login-polished .form-control:focus {
	border-color: var(--lj-green);
	background: #fff;
	box-shadow: 0 0 0 3px rgba(7, 150, 79, 0.12);
}

body.lj-login-polished .field-icon {
	color: #7b8491;
}

body.lj-login-polished .toggle-password {
	font-size: 13px;
}

body.lj-login-polished .btn-login {
	min-height: 44px;
	border: 0;
	border-radius: 8px;
	background: var(--lj-ink) !important;
	color: #fff !important;
	font-size: 15px;
	font-weight: 700;
	letter-spacing: 0;
}

body.lj-login-polished .btn-login:hover,
body.lj-login-polished .btn-login:focus {
	background: #0b1220 !important;
	color: #fff !important;
	box-shadow: 0 10px 20px rgba(15, 23, 42, 0.16);
}

body.lj-login-polished .for-login-with-email-link,
body.lj-login-polished .for-email-login,
body.lj-login-polished .for-forgot,
body.lj-login-polished .for-signup,
body.lj-login-polished .login-with-email-link,
body.lj-login-polished .social-logins,
body.lj-login-polished .social-login-buttons,
body.lj-login-polished .login-divider,
body.lj-login-polished .forgot-password-message,
body.lj-login-polished .sign-up-message {
	display: none !important;
}

@media (max-width: 520px) {
	body.lj-login-polished .for-login {
		padding: 28px 14px;
	}

	body.lj-login-polished .page-card-body {
		padding: 24px 20px 8px;
	}

	body.lj-login-polished .page-card-actions {
		padding: 0 20px 24px;
	}
}

.lj-app-user-menu-wrap {
	position: relative;
	display: flex;
	align-items: center;
}

.lj-app-user-menu {
	border: 0;
	background: transparent;
	padding: 0;
	cursor: pointer;
}

.lj-app-user-popover {
	position: absolute;
	left: 0;
	bottom: calc(100% + 10px);
	z-index: 30;
	min-width: 132px;
	padding: 6px;
	border: 1px solid var(--lj-line, #e5e7eb);
	border-radius: 8px;
	background: #fff;
	color: var(--lj-ink, #111827);
	box-shadow: 0 16px 42px rgba(15, 23, 42, .14);
}

.lj-user-action {
	display: block;
	width: 100%;
	border: 0;
	border-radius: 6px;
	background: transparent;
	padding: 8px 10px;
	color: var(--lj-ink, #111827);
	font-size: 13px;
	text-align: left;
	cursor: pointer;
}

.lj-user-action:hover {
	background: var(--lj-soft, #f5f7f9);
	color: var(--lj-ink, #111827);
}

.lj-count-badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 20px;
	height: 20px;
	margin-left: 6px;
	padding: 0 6px;
	border-radius: 999px;
	font-size: 12px;
	font-weight: 700;
	line-height: 1;
}

.lj-count-badge.red {
	background: #fee2e2;
	color: #b91c1c;
}

.lj-design-source-card,
.lj-quote-readonly-card,
.lj-engineering-list-card,
.lj-engineering-packet,
.lj-doc-section,
.lj-contractor-directory-main {
	min-width: 0;
	overflow: hidden;
}

.lj-doc-link span,
.lj-quote-readonly-card span,
.lj-engineering-list-card span,
.lj-engineering-packet span,
.lj-engineering-packet strong,
.lj-contractor-directory-main td,
.lj-contractor-directory-main span {
	min-width: 0;
	overflow-wrap: anywhere;
	word-break: break-word;
}

.lj-contractor-directory-shell .lj-side-stack {
	min-width: 280px;
}

.desk-page {
	font-size: 13px;
	color: var(--lj-ink);
}

.layout-main-section,
.layout-main-section-wrapper,
.page-content {
	background: #f6f8fa;
}

.page-head {
	border-bottom: 1px solid var(--lj-line);
	background: rgba(255, 255, 255, 0.96);
	backdrop-filter: blur(10px);
}

.page-title .title-text,
.page-head .page-title {
	font-size: 21px;
	font-weight: 750;
	letter-spacing: 0;
	color: var(--lj-ink);
}

.standard-sidebar,
.desk-sidebar,
.layout-side-section {
	font-size: 13px;
}

.standard-sidebar .standard-sidebar-item,
.desk-sidebar .sidebar-item-container .desk-sidebar-item {
	border-radius: 8px;
	min-height: 34px;
}

.standard-sidebar .standard-sidebar-item.selected,
.desk-sidebar .desk-sidebar-item.selected {
	background: var(--lj-green-50);
	color: var(--lj-green-600);
	font-weight: 650;
}

/* 视觉稿外壳:深色品牌侧栏。仅作用于 Desk 主导航,不改表单右侧栏。 */
.desk-sidebar {
	background:
		radial-gradient(circle at 30% 0%, rgba(12, 166, 120, 0.22), transparent 32%),
		linear-gradient(180deg, #07241f 0%, #061815 100%) !important;
	color: rgba(255, 255, 255, 0.86);
	border-right: 0 !important;
	padding: 14px 9px 18px !important;
	box-shadow: inset -1px 0 0 rgba(255, 255, 255, 0.05);
}

.lj-desk-brand {
	display: flex;
	align-items: center;
	justify-content: flex-start;
	padding: 10px 9px 18px;
	margin-bottom: 8px;
	border-bottom: 1px solid rgba(255, 255, 255, 0.08);
	color: #fff;
}

.lj-brand-logo-img {
	display: block;
	flex: 0 0 auto;
	height: auto;
	object-fit: contain;
}

.lj-desk-logo-img {
	width: 154px;
	max-height: 44px;
	filter: invert(1) brightness(1.8);
}

.lj-desk-brand strong {
	display: block;
	font-size: 19px;
	line-height: 1.1;
	font-weight: 900;
	letter-spacing: 0;
}

.lj-desk-brand span {
	display: block;
	margin-top: 3px;
	font-size: 12px;
	color: rgba(255, 255, 255, 0.66);
}

.desk-sidebar .standard-sidebar-label,
.desk-sidebar .sidebar-label,
.desk-sidebar .sidebar-item-label,
.desk-sidebar .standard-sidebar-item .item-anchor,
.desk-sidebar .standard-sidebar-item a {
	color: rgba(255, 255, 255, 0.78) !important;
}

.desk-sidebar .standard-sidebar-section {
	margin-bottom: 10px;
}

.desk-sidebar .standard-sidebar-item,
.desk-sidebar .sidebar-item-container .desk-sidebar-item {
	min-height: 36px;
	margin: 4px 0;
	padding: 0 11px;
	border-radius: 8px;
	background: transparent;
	color: rgba(255, 255, 255, 0.78) !important;
}

.desk-sidebar .standard-sidebar-item:hover,
.desk-sidebar .sidebar-item-container .desk-sidebar-item:hover {
	background: rgba(255, 255, 255, 0.08) !important;
}

.desk-sidebar .standard-sidebar-item.selected,
.desk-sidebar .desk-sidebar-item.selected,
.desk-sidebar .standard-sidebar-item.active {
	background: linear-gradient(135deg, #0aa35d, #087f45) !important;
	color: #fff !important;
	box-shadow: 0 12px 28px rgba(7, 150, 79, 0.28);
}

.desk-sidebar .standard-sidebar-item.selected *,
.desk-sidebar .desk-sidebar-item.selected *,
.desk-sidebar .standard-sidebar-item.active * {
	color: #fff !important;
}

.desk-sidebar svg,
.desk-sidebar .sidebar-item-icon {
	color: rgba(255, 255, 255, 0.82) !important;
	stroke: currentColor;
}

/* Frappe v16 的主侧栏类名从 desk-sidebar 变为 body-sidebar。 */
body:not(.lj-console-active) .body-sidebar-container,
body:not(.lj-console-active) .body-sidebar {
	width: 196px !important;
	flex: 0 0 196px !important;
}

body:not(.lj-console-active) .body-sidebar {
	background:
		radial-gradient(circle at 18% 0%, rgba(16, 185, 129, 0.26), transparent 30%),
		linear-gradient(180deg, #06231f 0%, #031713 100%) !important;
	color: rgba(255, 255, 255, 0.86) !important;
	border-right: 0 !important;
	padding: 14px 9px 18px !important;
	box-shadow: inset -1px 0 0 rgba(255, 255, 255, 0.08);
}

body:not(.lj-console-active) .body-sidebar-top,
body:not(.lj-console-active) .body-sidebar-bottom,
body:not(.lj-console-active) .sidebar-items,
body:not(.lj-console-active) .body-sidebar-cards {
	width: 100% !important;
}

body:not(.lj-console-active) .body-sidebar .standard-sidebar-item,
body:not(.lj-console-active) .body-sidebar .sidebar-item-container,
body:not(.lj-console-active) .body-sidebar .onboarding-sidebar,
body:not(.lj-console-active) .body-sidebar .sidebar-user-button {
	width: 100% !important;
	min-height: 35px;
	border-radius: 8px;
	color: rgba(255, 255, 255, 0.78) !important;
}

body:not(.lj-console-active) .body-sidebar .sidebar-item-label,
body:not(.lj-console-active) .body-sidebar .standard-sidebar-label,
body:not(.lj-console-active) .body-sidebar .item-anchor,
body:not(.lj-console-active) .body-sidebar a,
body:not(.lj-console-active) .body-sidebar span,
body:not(.lj-console-active) .body-sidebar .sidebar-item-icon,
body:not(.lj-console-active) .body-sidebar svg {
	color: rgba(255, 255, 255, 0.78) !important;
	stroke: currentColor;
}

body:not(.lj-console-active) .body-sidebar .standard-sidebar-item:hover,
body:not(.lj-console-active) .body-sidebar .sidebar-item-container:hover,
body:not(.lj-console-active) .body-sidebar .onboarding-sidebar:hover {
	background: rgba(255, 255, 255, 0.08) !important;
}

body:not(.lj-console-active) .body-sidebar .standard-sidebar-item.selected,
body:not(.lj-console-active) .body-sidebar .standard-sidebar-item.active,
body:not(.lj-console-active) .body-sidebar .sidebar-item-container.selected {
	background: linear-gradient(135deg, #0aa35d, #087f45) !important;
	color: #fff !important;
	box-shadow: 0 12px 28px rgba(7, 150, 79, 0.28);
}

body:not(.lj-console-active) .body-sidebar .standard-sidebar-item.selected *,
body:not(.lj-console-active) .body-sidebar .standard-sidebar-item.active *,
body:not(.lj-console-active) .body-sidebar .sidebar-item-container.selected * {
	color: #fff !important;
}

.workspace-container .workspace-section .h4,
.workspace .h4 {
	font-size: 19px;
	font-weight: 800;
	color: var(--lj-ink);
}

.shortcut-widget-box,
.widget.shortcut-widget-box {
	border: 1px solid var(--lj-line);
	border-radius: 8px;
	box-shadow: var(--lj-shadow);
	background: #fff;
	min-height: 88px;
}

.shortcut-widget-box:hover,
.widget.shortcut-widget-box:hover {
	border-color: rgba(7, 150, 79, 0.45);
	transform: translateY(-1px);
}

.shortcut-widget-box .widget-title,
.shortcut-widget-box .widget-label,
.widget.shortcut-widget-box .widget-title {
	font-size: 16px;
	font-weight: 750;
	color: var(--lj-ink);
}

.list-sidebar,
.filter-section,
.form-sidebar,
.form-dashboard-section,
.dashboard-section {
	font-size: 13px;
}

.list-row,
.list-row-head {
	font-size: 13px;
	border-bottom-color: var(--lj-line);
}

.list-row:hover {
	background: #fbfcfd;
}

.form-layout,
.frappe-control,
.control-label,
.grid-heading-row,
.grid-row {
	font-size: 13px;
}

.form-section,
.form-dashboard,
.form-tabs-list,
.form-layout .form-page {
	border-radius: 8px;
}

.form-section .section-head,
.form-dashboard .section-head {
	font-size: 15px;
	font-weight: 800;
	color: var(--lj-ink);
}

.form-control,
.like-disabled-input,
.awesomplete > input {
	border-radius: 8px;
	min-height: 34px;
	font-size: 13px;
}

.btn {
	border-radius: 8px;
	font-weight: 650;
}

.btn-primary,
.btn.btn-primary {
	background: var(--lj-green);
	border-color: var(--lj-green);
}

.btn-primary:hover,
.btn.btn-primary:hover {
	background: var(--lj-green-600);
	border-color: var(--lj-green-600);
}

.lj-page-shell {
	min-height: calc(100vh - 88px);
	margin: -12px -15px 0;
	background: #f5f7f9;
	color: var(--lj-ink);
}

.lj-page-grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 320px;
	gap: 14px;
	padding: 16px 18px 28px;
}

.lj-page-main {
	min-width: 0;
}

.lj-boss-main-only {
	grid-template-columns: minmax(0, 1fr);
}

.lj-topbar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding: 14px 18px 8px;
	background: #fff;
	border-bottom: 1px solid var(--lj-line);
}

.lj-title-block h1 {
	margin: 0;
	font-size: 24px;
	line-height: 1.2;
	font-weight: 800;
	letter-spacing: 0;
	color: var(--lj-ink);
}

.lj-title-block p {
	margin: 4px 0 0;
	color: var(--lj-muted);
	font-size: 13px;
}

.lj-top-actions {
	display: flex;
	align-items: center;
	gap: 10px;
	color: var(--lj-muted);
	font-size: 14px;
}

.lj-surface {
	background: var(--lj-card);
	border: 1px solid var(--lj-line);
	border-radius: var(--lj-radius);
	box-shadow: var(--lj-shadow);
}

.lj-kpi-grid {
	display: grid;
	grid-template-columns: repeat(8, minmax(112px, 1fr));
	gap: 10px;
	margin-bottom: 14px;
}

.lj-kpi {
	background: #fff;
	border: 1px solid var(--lj-line);
	border-radius: var(--lj-radius);
	padding: 12px 13px;
	min-height: 86px;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	text-align: left;
	cursor: pointer;
	width: 100%;
	appearance: none;
}

.lj-kpi:hover {
	border-color: rgba(7, 150, 79, 0.42);
	box-shadow: 0 12px 24px rgba(15, 23, 42, 0.08);
	transform: translateY(-1px);
}

.lj-kpi:focus-visible {
	outline: 3px solid rgba(7, 150, 79, 0.22);
	outline-offset: 2px;
}

/* 静态 KPI 卡:纯展示,不做可点击的视觉暗示 */
.lj-kpi.is-static {
	cursor: default;
}

.lj-kpi.is-static:hover {
	border-color: var(--lj-line);
	box-shadow: none;
	transform: none;
}

.lj-boss-page .lj-kpi-grid {
	grid-template-columns: repeat(5, minmax(140px, 1fr));
	gap: 8px;
}

.lj-boss-page .lj-kpi {
	min-height: 74px;
	padding: 9px 10px;
	border-radius: 8px;
}

.lj-boss-page .lj-kpi .lj-iconbox {
	width: 28px;
	height: 28px;
	border-radius: 8px;
}

.lj-boss-page .lj-kpi .lj-iconbox svg {
	width: 16px;
	height: 16px;
}

.lj-boss-page .lj-kpi-value {
	font-size: 21px;
	line-height: 1.08;
}

.lj-boss-page .lj-kpi-top,
.lj-boss-page .lj-kpi-sub {
	font-size: 12px;
}

.lj-kpi-top {
	display: flex;
	align-items: center;
	gap: 9px;
	color: #344054;
	font-size: 13px;
	font-weight: 650;
}

.lj-iconbox {
	width: 32px;
	height: 32px;
	border-radius: 9px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: var(--lj-green-50);
	color: var(--lj-green);
	flex: 0 0 auto;
}

.lj-iconbox svg {
	width: 18px;
	height: 18px;
}

.lj-iconbox.red { background: var(--lj-red-50); color: var(--lj-red); }
.lj-iconbox.amber { background: var(--lj-amber-50); color: var(--lj-amber); }
.lj-iconbox.blue { background: var(--lj-blue-50); color: var(--lj-blue); }
.lj-iconbox.teal { background: var(--lj-teal-50); color: var(--lj-teal); }
.lj-iconbox.gold { background: #fff8db; color: var(--lj-gold); }
.lj-iconbox.purple { background: #f0ebff; color: var(--lj-purple); }

.lj-kpi-value {
	font-size: 25px;
	line-height: 1;
	font-weight: 800;
	color: var(--lj-ink);
	font-variant-numeric: tabular-nums;
}

.lj-kpi-sub {
	font-size: 13px;
	color: var(--lj-muted);
}

.lj-kpi-sub .up { color: var(--lj-red); font-weight: 700; }
.lj-kpi-sub .down { color: var(--lj-green); font-weight: 700; }

.lj-boss-kpi-detail {
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.lj-boss-kpi-detail-head {
	display: grid;
	grid-template-columns: 36px minmax(0, 1fr) auto;
	align-items: center;
	gap: 12px;
	padding: 12px;
	border: 1px solid var(--lj-line);
	border-radius: 8px;
	background: #fbfcfd;
}

.lj-boss-kpi-detail-head strong {
	font-size: 22px;
	font-weight: 850;
	font-variant-numeric: tabular-nums;
	color: var(--lj-ink);
}

.lj-boss-kpi-detail-list {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.lj-boss-kpi-detail-row {
	display: grid;
	grid-template-columns: minmax(180px, 1.3fr) minmax(130px, 0.9fr) minmax(160px, 1fr) minmax(88px, 0.65fr) auto;
	align-items: center;
	gap: 12px;
	padding: 10px 12px;
	border: 1px solid var(--lj-line);
	border-radius: 8px;
	background: #fff;
}

.lj-boss-kpi-progress .lj-progress {
	min-width: 150px;
}

.lj-boss-kpi-actions {
	display: flex;
	align-items: center;
	gap: 8px;
	white-space: nowrap;
}

.lj-toolbar-card {
	display: flex;
	align-items: end;
	justify-content: space-between;
	gap: 14px;
	padding: 12px;
	border-bottom-left-radius: 0;
	border-bottom-right-radius: 0;
	box-shadow: none;
}

.lj-filters {
	display: flex;
	align-items: end;
	flex-wrap: wrap;
	gap: 12px;
}

.lj-filter {
	min-width: 150px;
}

.lj-filter label {
	display: block;
	margin-bottom: 6px;
	color: #344054;
	font-size: 13px;
	font-weight: 650;
}

.lj-input,
.lj-select {
	height: 38px;
	border: 1px solid #d0d5dd;
	border-radius: 8px;
	background: #fff;
	color: var(--lj-ink);
	padding: 0 12px;
	font-size: 14px;
}

.lj-input {
	min-width: 230px;
}

.lj-checkbox {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	height: 38px;
	color: #344054;
	font-size: 14px;
	font-weight: 600;
}

.lj-table-wrap {
	overflow: auto;
	border-top-left-radius: 0;
	border-top-right-radius: 0;
}

.lj-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 13px;
	background: #fff;
}

.lj-table th {
	position: sticky;
	top: 0;
	z-index: 1;
	background: #fbfcfd;
	color: #344054;
	font-size: 13px;
	font-weight: 750;
	text-align: left;
	white-space: nowrap;
	padding: 8px 10px;
	border-bottom: 1px solid var(--lj-line);
}

.lj-table td {
	padding: 8px 10px;
	border-bottom: 1px solid var(--lj-line);
	vertical-align: middle;
	color: var(--lj-ink);
}

.lj-table tbody tr:hover {
	background: #fbfcfd;
}

.lj-table tbody tr.is-risk {
	background: linear-gradient(90deg, rgba(224, 49, 49, 0.08), transparent 32%);
}

.lj-primary-text {
	font-weight: 750;
	color: var(--lj-ink);
}

.lj-secondary-text {
	margin-top: 2px;
	color: var(--lj-muted);
	font-size: 12px;
	line-height: 1.28;
}

.lj-progress {
	display: flex;
	align-items: center;
	gap: 9px;
	min-width: 150px;
}

.lj-progress-track {
	flex: 1;
	height: 9px;
	border-radius: 99px;
	background: #dce3eb;
	box-shadow: inset 0 0 0 1px #cbd5e1;
	overflow: hidden;
}

.lj-progress-fill {
	display: block;
	height: 100%;
	border-radius: inherit;
	background: var(--lj-green, #07964f);
	width: 0;
	transition: width 0.45s ease;
}

.lj-progress-fill.red { background: var(--lj-red, #e03131); }
.lj-progress-fill.amber { background: var(--lj-amber, #f59f00); }
.lj-progress-fill.blue { background: var(--lj-blue, #228be6); }
.lj-progress-fill.green { background: var(--lj-green, #07964f); }

.lj-progress-pct {
	width: 42px;
	text-align: right;
	color: #101828;
	font-size: 13px;
	font-weight: 750;
	font-variant-numeric: tabular-nums;
}

.lj-progress-button {
	display: block;
	width: 100%;
	min-width: 168px;
	border: 0;
	background: transparent;
	padding: 0;
	text-align: left;
	cursor: pointer;
}

.lj-progress-button .lj-progress {
	width: 100%;
}

.lj-progress-button:hover .lj-progress-track {
	background: #d4dde7;
}

.lj-progress-button:focus-visible {
	outline: 2px solid rgba(7, 150, 79, 0.32);
	outline-offset: 3px;
	border-radius: 7px;
}

.lj-chip {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	min-height: 22px;
	padding: 2px 8px;
	border-radius: 999px;
	font-size: 12px;
	font-weight: 700;
	white-space: nowrap;
	border: 1px solid transparent;
}

.lj-chip.green { color: #087f45; background: #eaf7f0; border-color: #c8ead8; }
.lj-chip.red { color: #c92a2a; background: #fff1f1; border-color: #ffd6d6; }
.lj-chip.amber { color: #b46900; background: #fff7e6; border-color: #ffe1a8; }
.lj-chip.blue { color: #1864ab; background: #e9f4ff; border-color: #c8e4ff; }
.lj-chip.teal { color: #087f5b; background: #e6fcf5; border-color: #c3fae8; }
.lj-chip.gray { color: #667085; background: #f2f4f7; border-color: #e5e7eb; }
.lj-chip.purple { color: #6741d9; background: #f0ebff; border-color: #ddd2ff; }

.lj-dot {
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: currentColor;
	display: inline-block;
}

.lj-action-btn {
	height: 30px;
	border: 1px solid #d0d5dd;
	background: #fff;
	color: #344054;
	border-radius: 7px;
	padding: 0 10px;
	font-size: 12px;
	font-weight: 700;
	cursor: pointer;
	white-space: nowrap;
}

.lj-action-btn.primary {
	border-color: var(--lj-green);
	background: var(--lj-green);
	color: #fff;
}

.lj-action-btn:hover {
	border-color: var(--lj-green);
	color: var(--lj-green);
}

.lj-action-btn.primary:hover {
	background: var(--lj-green-600);
	color: #fff;
}

.lj-action-btn.active {
	border-color: var(--lj-green);
	background: #e9f8ef;
	color: var(--lj-green);
	box-shadow: inset 0 0 0 1px rgba(7, 150, 79, 0.12);
}

.lj-action-btn:disabled,
.lj-icon-button:disabled {
	opacity: 0.58;
	cursor: not-allowed;
}

.lj-action-btn.is-permission-hidden {
	display: none !important;
}

.lj-action-btn.is-action-loading {
	position: relative;
	color: transparent !important;
}

.lj-action-btn.is-action-loading::after {
	content: "";
	position: absolute;
	left: 50%;
	top: 50%;
	width: 13px;
	height: 13px;
	margin: -6.5px 0 0 -6.5px;
	border: 2px solid rgba(52, 64, 84, 0.42);
	border-right-color: transparent;
	border-radius: 50%;
	animation: lj-spin 0.7s linear infinite;
}

.lj-action-btn.primary.is-action-loading::after,
.lj-action-btn.amber.is-action-loading::after {
	border-color: rgba(255, 255, 255, 0.72);
	border-right-color: transparent;
}

.lj-approval-toggle {
	display: inline-flex;
	align-items: center;
	gap: 6px;
}

.lj-approval-count {
	min-width: 20px;
	height: 20px;
	padding: 0 6px;
	border-radius: 999px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: #f2f4f7;
	color: #667085;
	font-size: 11px;
	font-weight: 850;
	line-height: 1;
}

.lj-approval-toggle.has-pending {
	border-color: #f04438;
	background: #fff5f5;
	color: #b42318;
	box-shadow: 0 6px 16px rgba(240, 68, 56, 0.12);
}

.lj-approval-toggle.has-pending:hover {
	border-color: #d92d20;
	color: #912018;
}

.lj-approval-toggle.has-pending .lj-approval-count {
	background: #f04438;
	color: #fff;
}

@keyframes lj-spin {
	to { transform: rotate(360deg); }
}

.lj-side-panel {
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.lj-panel-section {
	background: #fff;
	border: 1px solid var(--lj-line);
	border-radius: var(--lj-radius);
	padding: 14px;
}

.lj-panel-title {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	font-size: 15px;
	font-weight: 800;
	color: var(--lj-ink);
	margin-bottom: 10px;
}

.lj-insight {
	border: 1px solid var(--lj-line);
	border-radius: 8px;
	padding: 12px;
	margin-top: 10px;
	background: #fff;
}

/* 老板看板经营洞察区:KPI 与筛选条之间的横向提示条 */
.lj-boss-page .lj-insights {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	gap: 8px;
	margin-bottom: 14px;
}

.lj-boss-page .lj-insights .lj-insight {
	margin-top: 0;
}

.lj-boss-page .lj-insights:empty {
	display: none;
}

.lj-boss-page .lj-approval-panel {
	padding: 16px;
	margin-bottom: 14px;
	border-color: var(--lj-line);
	box-shadow: 0 10px 28px rgba(16, 24, 40, 0.06);
}

.lj-approval-panel-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin-bottom: 12px;
}

.lj-approval-panel-head > div {
	min-width: 0;
	display: grid;
	gap: 3px;
}

.lj-approval-panel-head span {
	color: var(--lj-ink);
	font-size: 16px;
	font-weight: 900;
	line-height: 1.2;
}

.lj-approval-panel-head small {
	color: var(--lj-muted);
	font-size: 12px;
	font-weight: 650;
}

.lj-approval-amount {
	color: var(--lj-ink);
	font-weight: 850;
	white-space: nowrap;
}

.lj-approval-meta {
	margin-top: 4px;
	color: var(--lj-muted);
	font-size: 12px;
	line-height: 1.45;
}

.lj-approval-table-wrap {
	overflow-x: auto;
	border: 1px solid var(--lj-line);
	border-radius: 8px;
	background: #fff;
}

.lj-approval-table-wrap .lj-table {
	box-shadow: none;
	border: 0;
}

.lj-approval-flow {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 8px;
	margin: 10px 0 12px;
}

.lj-approval-flow > div {
	min-width: 0;
	border: 1px solid var(--lj-line);
	border-radius: 8px;
	padding: 10px 12px;
	background: #fbfcfd;
}

.lj-approval-flow strong {
	display: block;
	margin-bottom: 4px;
	font-size: 13px;
	color: var(--lj-ink);
}

.lj-approval-flow span {
	display: block;
	color: var(--lj-muted);
	font-size: 12px;
	line-height: 1.45;
}

.lj-approval-flow.compact {
	margin-top: 0;
}

.lj-approval-empty {
	padding: 22px 18px;
	text-align: center;
	border: 1px dashed var(--lj-line);
	border-radius: 8px;
	background: #fbfcfd;
}

.lj-approval-empty .lj-empty-title {
	color: var(--lj-ink);
	font-size: 16px;
	font-weight: 850;
	margin-bottom: 6px;
}

.lj-approval-empty .lj-empty-copy {
	color: var(--lj-muted);
	font-size: 13px;
	line-height: 1.55;
	margin: 0 auto 12px;
	max-width: 520px;
}

.lj-insight.red { border-color: #ffd6d6; background: #fff7f7; }
.lj-insight.amber { border-color: #ffe1a8; background: #fffaf0; }
.lj-insight.blue { border-color: #c8e4ff; background: #f3f9ff; }
.lj-insight.green { border-color: #c8ead8; background: #f4fbf7; }

.lj-stage-strip {
	display: grid;
	grid-template-columns: repeat(12, minmax(108px, 1fr));
	gap: 8px;
	margin-bottom: 14px;
	overflow-x: auto;
	padding-bottom: 4px;
}

.lj-stage {
	position: relative;
	min-height: 74px;
	padding: 10px 11px;
	border: 1px solid var(--lj-line);
	background: #fff;
	border-radius: 8px;
}

.lj-stage::after {
	content: "";
	position: absolute;
	right: -8px;
	top: 50%;
	width: 8px;
	height: 2px;
	background: var(--lj-line);
}

.lj-stage:last-child::after {
	display: none;
}

.lj-stage-name {
	font-size: 13px;
	font-weight: 800;
	color: var(--lj-ink);
}

.lj-stage-count {
	margin-top: 6px;
	font-size: 22px;
	font-weight: 850;
	font-variant-numeric: tabular-nums;
}

.lj-stage-risk {
	margin-top: 4px;
	font-size: 12px;
	font-weight: 750;
	color: var(--lj-red);
}

.lj-empty-state {
	padding: 28px;
	text-align: center;
	color: var(--lj-muted);
}

.lj-timeline {
	list-style: none;
	margin: 0;
	padding: 0;
}

.lj-timeline li {
	position: relative;
	padding: 0 0 14px 18px;
	border-left: 2px solid var(--lj-line);
}

.lj-timeline li::before {
	content: "";
	position: absolute;
	left: -6px;
	top: 2px;
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background: var(--lj-green);
	border: 2px solid #fff;
}

.lj-timeline.compact li {
	padding-bottom: 10px;
}

.lj-timeline.compact .lj-primary-text {
	font-size: 14px;
}

.lj-doc-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 8px;
}

.lj-side-panel .lj-doc-grid {
	grid-template-columns: 1fr;
}

.lj-doc-link {
	border: 1px solid var(--lj-line);
	border-radius: 8px;
	padding: 8px;
	background: #fbfcfd;
	font-size: 13px;
	cursor: pointer;
}

.lj-doc-link:hover {
	border-color: var(--lj-green);
	color: var(--lj-green);
}

.lj-boss-detail {
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.lj-boss-detail-grid {
	display: grid;
	grid-template-columns: minmax(0, 1.2fr) minmax(280px, 0.8fr);
	gap: 12px;
}

.lj-boss-detail-grid.lower {
	grid-template-columns: minmax(0, 1fr) minmax(320px, 0.9fr);
}

.lj-boss-stat-grid,
.lj-boss-profit-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 8px;
	margin-top: 12px;
}

.lj-boss-profit-grid {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.lj-boss-stat {
	min-height: 54px;
	border: 1px solid #e5e7eb;
	border-radius: 8px;
	background: #fbfcfd;
	padding: 8px 9px;
}

.lj-boss-stat span {
	display: block;
	font-size: 11px;
	line-height: 1.2;
	color: #667085;
}

.lj-boss-stat strong {
	display: block;
	margin-top: 5px;
	font-size: 13px;
	line-height: 1.25;
	font-weight: 850;
	color: #101828;
	word-break: break-word;
}

.lj-cost-breakdown {
	display: grid;
	gap: 8px;
	margin-top: 10px;
}

.lj-cost-row {
	border: 1px solid #edf0f3;
	border-radius: 8px;
	padding: 8px;
	background: #fbfcfd;
}

.lj-cost-label {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
	font-size: 12px;
	color: #344054;
}

.lj-cost-label strong {
	font-size: 12px;
	color: #101828;
	font-variant-numeric: tabular-nums;
}

.lj-cost-track,
.lj-stage-progress {
	height: 6px;
	border-radius: 999px;
	background: #e9edf2;
	overflow: hidden;
	margin-top: 6px;
}

.lj-cost-track span,
.lj-stage-progress span {
	display: block;
	height: 100%;
	border-radius: inherit;
	background: linear-gradient(90deg, #0ca678, #228be6);
}

.lj-stage-drill-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 8px;
}

.lj-stage-card {
	border: 1px solid #e5e7eb;
	border-radius: 8px;
	background: #fff;
	padding: 10px;
	min-width: 0;
}

.lj-stage-card.is-current {
	border-color: rgba(7, 150, 79, 0.42);
	box-shadow: inset 3px 0 0 var(--lj-green);
}

.lj-stage-card.is-done {
	background: #fbfcfd;
}

.lj-stage-card-head {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 8px;
}

.lj-stage-card-head strong {
	display: block;
	font-size: 13px;
	line-height: 1.2;
	color: #101828;
}

.lj-stage-card-head span:not(.lj-chip) {
	display: block;
	margin-top: 3px;
	font-size: 11px;
	line-height: 1.2;
	color: #667085;
}

.lj-stage-meta {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 4px;
	margin-top: 8px;
	font-size: 11px;
	color: #667085;
}

.lj-stage-meta span {
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.lj-stage-action-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
	margin-top: 8px;
	padding: 7px 8px;
	border-radius: 8px;
	background: #eef8f2;
	font-size: 12px;
	font-weight: 750;
	color: #087f45;
}

.lj-stage-docs {
	display: flex;
	flex-wrap: wrap;
	gap: 5px;
	margin-top: 8px;
}

.lj-stage-doc {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	min-height: 22px;
	border: 1px solid #e5e7eb;
	border-radius: 999px;
	background: #f8fafc;
	padding: 2px 7px;
	font-size: 11px;
	line-height: 1.1;
	color: #344054;
}

button.lj-stage-doc {
	cursor: pointer;
}

.lj-stage-doc.ready {
	border-color: #c8ead8;
	background: #eaf7f0;
	color: #087f45;
}

.lj-stage-doc.missing {
	border-color: #ffe1a8;
	background: #fff7e6;
	color: #b46900;
}

.lj-stage-doc strong {
	font-weight: 850;
}

.lj-stage-notes {
	display: grid;
	gap: 3px;
	margin-top: 8px;
	font-size: 11px;
	line-height: 1.3;
	color: #667085;
}

.lj-timeline li.is-current::before {
	background: var(--lj-blue);
}

.lj-doc-groups.boss {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 8px;
	max-height: 520px;
	overflow: auto;
	padding-right: 2px;
}

.lj-doc-groups.boss .lj-doc-group {
	margin: 0;
}

.lj-doc-group.is-empty {
	opacity: 0.72;
}

.lj-doc-group .lj-doc-link small {
	display: block;
	margin-top: 2px;
	font-size: 11px;
	line-height: 1.25;
	color: #667085;
}

.lj-doc-inline {
	display: inline-flex !important;
	width: auto !important;
	margin-left: 6px;
	padding: 0 !important;
	color: var(--lj-green) !important;
	font-weight: 750;
}

@media (max-width: 1280px) {
	.lj-page-grid {
		grid-template-columns: 1fr;
	}

	.lj-kpi-grid {
		grid-template-columns: repeat(4, minmax(112px, 1fr));
	}

	.lj-boss-detail-grid,
	.lj-boss-detail-grid.lower {
		grid-template-columns: 1fr;
	}

	.lj-doc-groups.boss {
		grid-template-columns: 1fr;
		max-height: none;
	}

	.lj-stage-drill-grid {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 1540px) {
	.lj-boss-page .lj-kpi-grid {
		grid-template-columns: repeat(5, minmax(120px, 1fr));
	}

	.lj-boss-page .lj-table th:last-child,
	.lj-boss-page .lj-table td:last-child {
		min-width: 118px;
	}
}

@media (max-width: 1100px) {
	.lj-boss-page .lj-kpi-grid {
		grid-template-columns: repeat(4, minmax(120px, 1fr));
	}

	.lj-boss-kpi-detail-row {
		grid-template-columns: 1fr;
		align-items: stretch;
	}
}

@media (max-width: 720px) {
	.lj-topbar {
		align-items: flex-start;
		flex-direction: column;
	}

	.lj-top-actions {
		flex-wrap: wrap;
	}

	.lj-page-grid {
		padding: 12px;
	}

	.lj-kpi-grid {
		grid-template-columns: repeat(2, minmax(112px, 1fr));
	}

	.lj-boss-page .lj-kpi-grid {
		grid-template-columns: repeat(2, minmax(120px, 1fr));
	}

	.lj-toolbar-card {
		align-items: stretch;
		flex-direction: column;
	}

	.lj-approval-flow {
		grid-template-columns: 1fr;
	}
}

/* 部门二级工作台:贴近已确认视觉稿的三栏业务台。 */
body.lj-console-active .body-sidebar-container,
body.lj-app-shell-active .body-sidebar-container {
	display: none !important;
}

body.lj-console-active .main-section,
body.lj-console-active .layout-main,
body.lj-console-active .page-container,
body.lj-console-active .page-content,
body.lj-app-shell-active .main-section,
body.lj-app-shell-active .layout-main,
body.lj-app-shell-active .page-container,
body.lj-app-shell-active .page-content {
	width: 100vw !important;
	max-width: none !important;
}

.lj-console-wrapper .page-head,
.lj-custom-wrapper .page-head {
	display: none;
}

.lj-console-wrapper .page-body,
.lj-console-wrapper .page-content,
.lj-custom-wrapper .page-body,
.lj-custom-wrapper .page-content {
	background: #f5f7f8;
}

.lj-app-page {
	min-height: 100vh;
	margin: 0;
	padding: 0;
	background: #f5f7f8;
	color: #121826;
	font-size: 13px;
	display: grid;
	grid-template-columns: 196px minmax(0, 1fr);
}

.lj-app-main {
	min-width: 0;
	background: #f5f7f8;
}

.lj-app-page .lj-page-shell {
	min-height: 100vh;
	margin: 0;
}

.lj-app-page .lj-topbar {
	padding: 14px 24px 8px;
}

.lj-app-page .lj-page-grid {
	padding: 14px 24px 24px;
}

.lj-project-page .lj-page-grid {
	grid-template-columns: minmax(0, 1fr) 300px;
	gap: 12px;
}

.lj-project-page .lj-table {
	font-size: 13px;
}

.lj-project-page .lj-table th,
.lj-project-page .lj-table td {
	padding-left: 9px;
	padding-right: 9px;
}

.lj-project-page .lj-table th:first-child,
.lj-project-page .lj-table td:first-child {
	white-space: nowrap;
}

.lj-row-action {
	display: grid;
	gap: 3px;
	min-width: 112px;
}

.lj-row-action .lj-action-btn {
	justify-content: center;
	width: 100%;
}

.lj-action-plan-card,
.lj-missing-doc-card,
.lj-project-flow-card {
	margin-top: 12px;
	padding: 10px;
	border: 1px solid #d7e8df;
	border-radius: 8px;
	background: #fbfefd;
}

.lj-project-flow-card {
	border-color: #e5e7eb;
	background: #fff;
}

.lj-action-plan-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	margin-bottom: 8px;
}

.lj-action-plan-head span {
	display: block;
	font-size: 11px;
	line-height: 1.2;
	color: #667085;
}

.lj-action-plan-head strong {
	display: block;
	margin-top: 3px;
	font-size: 14px;
	line-height: 1.25;
	color: #121826;
}

.lj-side-facts.compact {
	grid-template-columns: repeat(2, minmax(0, 1fr));
	margin-bottom: 8px;
}

.lj-missing-doc-card.compact {
	margin: 0 0 10px;
}

.lj-missing-doc-card .lj-risk-item {
	margin-top: 7px;
}

.lj-missing-doc-card .lj-risk-item em {
	display: block;
	margin-top: 3px;
	font-size: 11px;
	font-style: normal;
	color: #667085;
}

.lj-project-stage-list {
	display: grid;
	gap: 6px;
	max-height: 300px;
	overflow: auto;
	padding-right: 2px;
}

.lj-project-stage-item {
	display: grid;
	grid-template-columns: 8px minmax(0, 1fr) auto;
	align-items: center;
	gap: 8px;
	min-height: 38px;
	padding: 7px 8px;
	border: 1px solid #edf0f3;
	border-radius: 8px;
	background: #fbfcfd;
}

.lj-project-stage-item.is-current {
	border-color: rgba(7, 150, 79, 0.42);
	background: #f2fbf6;
}

.lj-project-stage-item strong {
	display: block;
	font-size: 12px;
	line-height: 1.2;
	color: #101828;
}

.lj-project-stage-item small {
	display: block;
	margin-top: 2px;
	font-size: 11px;
	line-height: 1.2;
	color: #667085;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.lj-project-stage-item em {
	font-size: 11px;
	font-style: normal;
	font-weight: 800;
	color: #667085;
}

.lj-dot.green { color: var(--lj-green); }
.lj-dot.red { color: var(--lj-red); }
.lj-dot.amber { color: var(--lj-amber); }
.lj-dot.blue { color: var(--lj-blue); }
.lj-dot.gray { color: #98a2b3; }

.lj-project-cost-mini {
	display: grid;
	gap: 5px;
	margin-top: 8px;
}

.lj-project-cost-mini > div {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
	font-size: 11px;
	color: #667085;
}

.lj-project-cost-mini strong {
	font-size: 12px;
	color: #101828;
	font-variant-numeric: tabular-nums;
}

.lj-side-facts strong.red { color: var(--lj-red); }
.lj-side-facts strong.amber { color: #b46900; }
.lj-side-facts strong.green { color: var(--lj-green); }

.lj-console-page {
	min-height: 100vh;
	margin: 0;
	padding: 0;
	background: #f5f7f8;
	color: #121826;
	font-size: 13px;
	display: grid;
	grid-template-columns: 196px minmax(0, 1fr);
}

.lj-app-sidebar {
	position: sticky;
	top: 0;
	height: 100vh;
	display: flex;
	flex-direction: column;
	padding: 14px 10px 14px;
	background:
		radial-gradient(circle at 18% 0%, rgba(16, 185, 129, 0.26), transparent 30%),
		linear-gradient(180deg, #06231f 0%, #031713 100%);
	color: #fff;
	box-shadow: inset -1px 0 0 rgba(255, 255, 255, 0.08);
	z-index: 10;
}

.lj-app-brand {
	display: flex;
	align-items: center;
	justify-content: flex-start;
	padding: 4px 8px 16px;
	margin-bottom: 6px;
	border-bottom: 1px solid rgba(255, 255, 255, 0.08);
	min-width: 0;
}

.lj-app-brand > div:not(.lj-app-logo-img) {
	min-width: 0;
}

.lj-app-logo-img {
	width: 152px;
	max-height: 44px;
	filter: invert(1) brightness(1.8);
}

.lj-loading-logo,
.splash img.lj-loading-logo,
.page-card-head img.lj-loading-logo {
	width: auto !important;
	max-width: min(240px, 64vw) !important;
	max-height: 82px !important;
	object-fit: contain !important;
}

.lj-app-brand strong {
	display: block;
	font-size: 21px;
	line-height: 1.05;
	font-weight: 950;
	letter-spacing: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.lj-app-brand span,
.lj-app-sidebar-footer span {
	display: block;
	margin-top: 4px;
	color: rgba(255, 255, 255, 0.62);
	font-size: 12px;
	line-height: 1.25;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.lj-app-nav {
	display: flex;
	flex-direction: column;
	gap: 3px;
	flex: 1;
	overflow: auto;
	padding-right: 2px;
}

.lj-app-nav-item {
	width: 100%;
	min-height: 36px;
	border: 0;
	border-radius: 8px;
	padding: 8px 11px;
	background: transparent;
	color: rgba(255, 255, 255, 0.82);
	display: grid;
	grid-template-columns: 16px minmax(0, 1fr);
	align-items: start;
	column-gap: 9px;
	text-align: left;
	font-size: 14px;
	font-weight: 720;
	line-height: 1.25;
	cursor: pointer;
	min-width: 0;
}

.lj-app-nav-item span,
.lj-app-nav-group-title span {
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.lj-app-nav-item svg {
	width: 16px;
	height: 16px;
	margin-top: 1px;
	color: currentColor;
	stroke: currentColor;
	flex: 0 0 16px;
}

.lj-app-nav-item:hover {
	background: rgba(255, 255, 255, 0.09);
	color: #fff;
}

.lj-app-nav-item.readonly {
	opacity: 0.72;
}

.lj-app-nav-item.readonly:hover {
	opacity: 1;
}

.lj-app-nav-item.active {
	background: linear-gradient(135deg, #0ca45d, #087f45);
	color: #fff;
	box-shadow: 0 12px 28px rgba(7, 150, 79, 0.32);
}

.lj-app-nav-group {
	display: flex;
	flex-direction: column;
	gap: 3px;
	margin: 2px 0;
}

.lj-app-nav-group-title {
	width: 100%;
	min-height: 36px;
	border: 0;
	border-radius: 8px;
	padding: 8px 11px;
	background: transparent;
	display: grid;
	grid-template-columns: 16px minmax(0, 1fr) 16px;
	align-items: start;
	column-gap: 9px;
	color: rgba(255, 255, 255, 0.82);
	text-align: left;
	font-size: 14px;
	font-weight: 760;
	line-height: 1.25;
	min-width: 0;
	cursor: pointer;
}

.lj-app-nav-group-title > svg {
	width: 16px;
	height: 16px;
	margin-top: 1px;
	flex: 0 0 16px;
}

.lj-app-nav-group-title:hover {
	background: rgba(255, 255, 255, 0.09);
	color: #fff;
}

.lj-app-nav-group.active .lj-app-nav-group-title {
	color: rgba(255, 255, 255, 0.9);
}

.lj-app-nav-group-caret {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: currentColor;
	flex: 0 0 16px;
	transition: transform 0.16s ease;
}

.lj-app-nav-group-caret svg {
	margin-top: 0;
}

.lj-app-nav-group:not(.expanded) .lj-app-nav-group-caret {
	transform: rotate(-90deg);
}

.lj-app-nav-children {
	display: none;
	flex-direction: column;
	gap: 3px;
}

.lj-app-nav-group.expanded .lj-app-nav-children {
	display: flex;
}

.lj-app-nav-item.child {
	min-height: 34px;
	padding-left: 11px;
	font-size: 13px;
	font-weight: 680;
}

.lj-app-sidebar-footer {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-top: 12px;
	padding: 10px 9px;
	border: 1px solid rgba(255, 255, 255, 0.12);
	border-radius: 8px;
	background: rgba(255, 255, 255, 0.06);
	min-width: 0;
}

.lj-app-sidebar-footer > div:not(.lj-app-user-badge) {
	min-width: 0;
}

.lj-app-sidebar-footer strong {
	display: block;
	max-width: 108px;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	font-size: 13px;
}

.lj-app-user-badge {
	width: 30px;
	height: 30px;
	border-radius: 50%;
	background: #d1fae5;
	color: #087f45;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-weight: 900;
	overflow: hidden;
	flex: 0 0 auto;
}

.lj-app-user-badge.has-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.lj-profile-panel {
	display: grid;
	gap: 16px;
}

.lj-profile-avatar-row {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 12px;
	border: 1px solid var(--lj-border);
	border-radius: 8px;
	background: #f8fafc;
}

.lj-profile-avatar {
	width: 68px;
	height: 68px;
	border-radius: 50%;
	background: #d1fae5;
	color: #087f45;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 24px;
	font-weight: 900;
	overflow: hidden;
	flex: 0 0 auto;
}

.lj-profile-avatar img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.lj-profile-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px;
}

.lj-profile-grid.two {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.lj-profile-grid label {
	display: grid;
	gap: 6px;
	font-weight: 800;
	color: var(--lj-ink);
}

.lj-profile-grid label > span {
	font-size: 12px;
	color: var(--lj-muted);
}

.lj-profile-password {
	display: grid;
	gap: 10px;
	padding: 12px;
	border: 1px solid var(--lj-border);
	border-radius: 8px;
	background: #fff;
}

.lj-console-main {
	min-width: 0;
	padding: 0 20px 20px;
	background: #f5f7f8;
}

.lj-console-header {
	position: sticky;
	top: 0;
	z-index: 5;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 14px;
	padding: 14px 0 12px;
	background: rgba(245, 247, 248, 0.96);
	backdrop-filter: blur(10px);
	border-bottom: 1px solid rgba(229, 231, 235, 0.86);
}

.lj-console-heading {
	display: flex;
	align-items: center;
	gap: 13px;
	min-width: 0;
}

.lj-console-heading h1 {
	margin: 0;
	font-size: 25px;
	line-height: 1.15;
	font-weight: 900;
	letter-spacing: 0;
	color: #101828;
}

.lj-console-heading p {
	margin: 3px 0 0;
	color: #667085;
	font-size: 13px;
}

.lj-console-actions,
.lj-console-mini-actions {
	display: flex;
	align-items: center;
	gap: 10px;
}

.lj-global-ai-status {
	min-height: 34px;
	display: inline-flex;
	align-items: center;
	gap: 7px;
	max-width: 230px;
	padding: 0 10px;
	border: 1px solid #d0d5dd;
	border-radius: 999px;
	background: #ffffff;
	color: #344054;
	font-size: 12px;
	white-space: nowrap;
}

.lj-global-ai-status strong,
.lj-global-ai-status small {
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.lj-global-ai-status small {
	color: #667085;
	font-weight: 650;
}

.lj-status-dot {
	width: 7px;
	height: 7px;
	flex: 0 0 7px;
	border-radius: 50%;
	background: #f59f00;
}

.lj-global-ai-status.green {
	border-color: rgba(7, 150, 79, 0.28);
	background: #f0faf5;
	color: #087f45;
}

.lj-global-ai-status.green .lj-status-dot {
	background: #07964f;
	box-shadow: 0 0 0 4px rgba(7, 150, 79, 0.10);
}

.lj-global-ai-status.red {
	border-color: #ffd6d6;
	background: #fff5f5;
	color: #c92a2a;
}

.lj-global-ai-status.red .lj-status-dot {
	background: #e03131;
}

.lj-global-ai-status.amber .lj-status-dot {
	background: #f59f00;
}

.lj-icon-button {
	width: 34px;
	height: 34px;
	border: 1px solid #d0d5dd;
	border-radius: 8px;
	background: #fff;
	color: #344054;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
}

.lj-icon-button:hover {
	color: var(--lj-green);
	border-color: rgba(7, 150, 79, 0.45);
	background: #f8fbfa;
}

.lj-searchbox {
	height: 36px;
	min-width: 310px;
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 0 11px;
	border: 1px solid #d0d5dd;
	border-radius: 8px;
	background: #fff;
	color: #98a2b3;
}

.lj-searchbox input {
	border: 0;
	outline: 0;
	width: 100%;
	color: #101828;
	background: transparent;
	font-size: 13px;
}

.lj-console-kpis {
	display: grid;
	grid-template-columns: repeat(6, minmax(0, 1fr));
	gap: 0;
	margin: 12px 0;
	padding: 0;
	background: #fff;
	border: 1px solid #e5e7eb;
	border-radius: 8px;
	box-shadow: 0 10px 28px rgba(15, 23, 42, 0.05);
	overflow: hidden;
}

.lj-console-kpi {
	min-height: 84px;
	background: transparent;
	border: 0;
	border-right: 1px solid #e5e7eb;
	border-radius: 0;
	padding: 12px 15px 11px;
	box-shadow: none;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
}

.lj-console-kpi:last-child {
	border-right: 0;
}

.lj-console-workspace {
	display: grid;
	grid-template-columns: 208px minmax(0, 1fr) 248px;
	gap: 10px;
	align-items: start;
}

.lj-panel-card {
	background: #fff;
	border: 1px solid #e5e7eb;
	border-radius: 8px;
	box-shadow: 0 10px 28px rgba(15, 23, 42, 0.05);
	min-width: 0;
}

.lj-console-queue,
.lj-console-detail {
	position: sticky;
	top: 72px;
	max-height: calc(100vh - 86px);
	overflow: auto;
	padding: 12px;
}

.lj-console-table-card {
	overflow: hidden;
}

.lj-console-tabs {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 8px;
	margin-bottom: 12px;
}

.lj-console-tab {
	min-height: 56px;
	height: auto;
	padding: 7px 6px 6px;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 3px;
	border: 1px solid #e5e7eb;
	border-radius: 8px;
	background: #fbfcfd;
	color: #475467;
	font-size: 13px;
	line-height: 1.15;
	font-weight: 800;
	cursor: pointer;
}

.lj-console-tab span {
	display: block;
	color: #98a2b3;
	margin-left: 0;
	font-size: 13px;
	line-height: 1;
	font-weight: 850;
	font-variant-numeric: tabular-nums;
}

.lj-console-tab.active {
	background: #eaf7f0;
	border-color: #bfe8d2;
	color: #087f45;
}

.lj-queue-list {
	display: flex;
	flex-direction: column;
	gap: 7px;
}

.lj-queue-item {
	display: grid;
	grid-template-columns: 10px minmax(0, 1fr) auto;
	align-items: start;
	gap: 9px;
	width: 100%;
	text-align: left;
	padding: 9px 8px;
	border: 1px solid #e5e7eb;
	border-radius: 8px;
	background: #fff;
	cursor: pointer;
	min-width: 0;
}

.lj-queue-item:hover,
.lj-queue-item.selected {
	border-color: rgba(7, 150, 79, 0.55);
	background: #f3fbf7;
}

.lj-queue-main {
	min-width: 0;
}

.lj-queue-item .lj-chip {
	align-self: start;
	max-width: 68px;
	overflow: hidden;
	text-overflow: ellipsis;
}

.lj-queue-main strong {
	display: block;
	color: #101828;
	font-size: 13px;
	line-height: 1.25;
	font-weight: 850;
	white-space: normal;
	overflow-wrap: anywhere;
	word-break: break-word;
}

.lj-queue-main small {
	display: block;
	margin-top: 3px;
	color: #667085;
	font-size: 12px;
	line-height: 1.35;
	overflow-wrap: anywhere;
	word-break: break-word;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.lj-queue-dot {
	width: 8px;
	height: 8px;
	margin-top: 5px;
	border-radius: 999px;
	background: var(--lj-green);
}

.lj-console-queue .lj-panel-title span {
	white-space: normal;
	overflow-wrap: anywhere;
	word-break: break-word;
}

.lj-queue-dot.red { background: var(--lj-red); }
.lj-queue-dot.amber { background: var(--lj-amber); }
.lj-queue-dot.blue { background: var(--lj-blue); }
.lj-queue-dot.gray { background: #98a2b3; }

.lj-console-table-toolbar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 11px 13px;
	border-bottom: 1px solid #e5e7eb;
}

.lj-card-title {
	font-size: 14px;
	font-weight: 900;
	color: #101828;
}

.lj-panel-title span {
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.lj-card-subtitle {
	margin-top: 2px;
	font-size: 12px;
	color: #667085;
}

.lj-console-table .selected td {
	background: #f0fbf5;
}

.lj-console-table .selected td:first-child {
	box-shadow: inset 3px 0 0 var(--lj-green);
}

.lj-console-table td {
	height: 44px;
	padding: 6px 8px;
}

.lj-console-table th {
	padding: 8px;
}

.lj-console-table .lj-primary-text {
	font-size: 13px;
	line-height: 1.28;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.lj-console-table .lj-secondary-text {
	line-height: 1.25;
	display: -webkit-box;
	-webkit-line-clamp: 1;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.lj-table-actions {
	white-space: nowrap;
	min-width: 136px;
}

.lj-detail-head {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 10px;
	padding-bottom: 9px;
	border-bottom: 1px solid #e5e7eb;
}

.lj-detail-project {
	font-size: 16px;
	font-weight: 900;
	color: #101828;
}

.lj-detail-progress {
	padding: 10px 0 8px;
}

.lj-flow-status {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 7px;
	margin: 8px 0 10px;
}

.lj-flow-status > div {
	min-height: 48px;
	border: 1px solid #e5e7eb;
	border-radius: 8px;
	padding: 8px;
	background: #fbfcfd;
}

.lj-flow-status > div.is-success {
	grid-column: 1 / -1;
	border-color: #c8ead8;
	background: #f4fbf7;
}

.lj-flow-status span {
	display: block;
	font-size: 11px;
	color: #667085;
	line-height: 1.2;
}

.lj-flow-status strong {
	display: block;
	margin-top: 5px;
	font-size: 12px;
	color: #101828;
	font-weight: 850;
	line-height: 1.25;
	word-break: break-word;
}

.lj-action-dialog .modal-dialog {
	max-width: 560px;
}

.lj-engineering-delivery-dialog .modal-dialog {
	max-width: min(1120px, calc(100vw - 36px));
}

.lj-engineering-rule-dialog .modal-dialog {
	max-width: min(1060px, calc(100vw - 36px));
}

.lj-engineering-rule-apply-dialog .modal-dialog {
	max-width: min(720px, calc(100vw - 36px));
}

.lj-replenish-dialog .modal-dialog {
	max-width: min(960px, calc(100vw - 36px));
}

.lj-handoff-alert-dialog .modal-dialog {
	max-width: min(720px, calc(100vw - 32px));
}

.lj-contractor-review-detail-dialog .modal-dialog {
	max-width: min(760px, calc(100vw - 32px));
}

.lj-action-dialog .modal-content {
	border-radius: 8px;
	border: 1px solid #d0d5dd;
	box-shadow: 0 18px 48px rgba(16, 24, 40, 0.22);
}

.lj-action-dialog .modal-title {
	font-size: 15px;
	font-weight: 850;
	color: #101828;
}

.lj-action-dialog .form-section,
.lj-action-dialog .frappe-control {
	margin-bottom: 10px;
}

.lj-action-dialog .control-label {
	font-size: 12px;
	font-weight: 750;
	color: #344054;
	margin-bottom: 4px;
}

.lj-action-dialog input,
.lj-action-dialog textarea,
.lj-action-dialog select {
	font-size: 12px;
	border-radius: 7px;
}

.lj-dialog-section {
	margin: 0 0 12px;
	padding: 10px 0 0;
	border-top: 1px solid #edf0f3;
}

.lj-dialog-section:first-child {
	padding-top: 0;
	border-top: 0;
}

.lj-dialog-section h4 {
	margin: 0 0 8px;
	color: #101828;
	font-size: 13px;
	font-weight: 850;
	letter-spacing: 0;
}

.lj-review-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 8px;
	margin-bottom: 8px;
}

.lj-review-field,
.lj-review-attachment {
	min-width: 0;
	border: 1px solid #e5e7eb;
	border-radius: 8px;
	background: #fbfcfd;
	padding: 8px 10px;
}

.lj-review-field span,
.lj-review-attachment span {
	display: block;
	margin-bottom: 3px;
	color: #667085;
	font-size: 11px;
	font-weight: 650;
	line-height: 1.3;
}

.lj-review-field strong,
.lj-review-attachment strong {
	display: block;
	color: #101828;
	font-size: 12px;
	font-weight: 800;
	line-height: 1.35;
	word-break: break-word;
}

.lj-review-attachment {
	margin-bottom: 8px;
}

.lj-review-attachment .lj-doc-groups.compact {
	margin-top: 6px;
	gap: 4px;
}

@media (max-width: 640px) {
	.lj-review-grid {
		grid-template-columns: 1fr;
	}
}

.lj-voice-field-wrap {
	position: relative;
	width: 100%;
}

.lj-voice-field-wrap > textarea {
	padding-right: 46px !important;
}

.lj-voice-dictation-btn {
	position: absolute;
	top: 8px;
	right: 8px;
	z-index: 3;
	width: 32px;
	min-width: 32px;
	height: 32px;
	border: 1px solid #b7e4c7;
	border-radius: 8px;
	background: #f1fbf5;
	color: #087f45;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0;
	box-shadow: 0 1px 2px rgba(16, 24, 40, 0.06);
}

.lj-voice-dictation-btn svg {
	width: 16px;
	height: 16px;
	stroke: currentColor;
	stroke-width: 2;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.lj-voice-dictation-btn:hover {
	background: #e8f8ee;
}

.lj-voice-dictation-btn.is-recording {
	border-color: #fda29b;
	background: #fff1f0;
	color: #b42318;
}

.lj-voice-dictation-btn.is-processing {
	border-color: #bfdbfe;
	background: #eff6ff;
	color: #175cd3;
	cursor: wait;
}

.lj-sr-only {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.lj-mic-permission-help {
	display: grid;
	gap: 10px;
	color: #344054;
	font-size: 13px;
	line-height: 1.55;
}

.lj-mic-permission-help p {
	margin: 0;
}

.lj-mic-permission-help code {
	display: block;
	padding: 8px 10px;
	border: 1px solid #eaecf0;
	border-radius: 8px;
	background: #f8fafc;
	color: #475467;
	font-size: 12px;
	white-space: normal;
	word-break: break-all;
}

.lj-mic-permission-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.lj-action-dialog .help-box,
.lj-action-dialog .tooltip-content {
	display: none !important;
}

.lj-replenish-panel {
	display: grid;
	gap: 12px;
}

.lj-replenish-hero {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 16px;
	align-items: center;
	padding: 12px;
	border: 1px solid #bfdbfe;
	border-radius: 8px;
	background: #eff6ff;
	color: #1849a9;
}

.lj-replenish-hero strong {
	display: block;
	margin-bottom: 4px;
	font-size: 14px;
	font-weight: 850;
	color: #101828;
}

.lj-replenish-hero span {
	font-size: 12px;
	line-height: 1.45;
}

.lj-replenish-stats {
	display: grid;
	grid-template-columns: repeat(3, minmax(74px, 1fr));
	gap: 8px;
	min-width: 250px;
}

.lj-replenish-stats div {
	padding: 8px 10px;
	border: 1px solid #d0d5dd;
	border-radius: 8px;
	background: #fff;
}

.lj-replenish-stats span {
	display: block;
	font-size: 11px;
	color: #667085;
}

.lj-replenish-stats strong {
	margin: 2px 0 0;
	font-size: 16px;
	color: #101828;
}

.lj-replenish-controls {
	display: grid;
	grid-template-columns: minmax(220px, 280px) minmax(0, 1fr);
	gap: 12px;
	align-items: end;
}

.lj-replenish-controls label {
	display: grid;
	gap: 5px;
	margin: 0;
	font-size: 12px;
	font-weight: 760;
	color: #344054;
}

.lj-replenish-controls select,
.lj-replenish-controls input {
	width: 100%;
	height: 34px;
}

.lj-replenish-table-wrap {
	max-height: min(52vh, 520px);
	overflow: auto;
	border: 1px solid #eaecf0;
	border-radius: 8px;
}

.lj-replenish-table {
	min-width: 760px;
	margin: 0;
}

.lj-replenish-table thead th {
	position: sticky;
	top: 0;
	z-index: 1;
	background: #f8fafc;
}

.lj-replenish-table tbody tr.is-selected {
	background: #f6fef9;
}

.lj-replenish-material-cell {
	width: 38%;
}

.lj-replenish-material {
	display: grid;
	grid-template-columns: 18px minmax(0, 1fr);
	gap: 10px;
	align-items: center;
	margin: 0;
}

.lj-replenish-material input {
	width: 16px;
	height: 16px;
	margin: 0;
}

.lj-replenish-material strong {
	display: block;
	color: #101828;
	font-size: 13px;
	font-weight: 820;
	line-height: 1.25;
	word-break: break-word;
}

.lj-replenish-material small {
	display: block;
	margin-top: 2px;
	color: #667085;
	font-size: 11px;
	line-height: 1.25;
	word-break: break-word;
}

.lj-replenish-stock-cell strong {
	display: block;
	margin-bottom: 5px;
	color: #101828;
	font-size: 13px;
}

.lj-replenish-qty-wrap {
	display: flex;
	align-items: center;
	gap: 6px;
	margin: 0;
}

.lj-replenish-qty-wrap input {
	width: 86px;
	height: 32px;
	text-align: right;
}

.lj-replenish-qty-wrap span {
	min-width: 28px;
	color: #667085;
	font-size: 12px;
}

.lj-replenish-notes {
	width: 100%;
	min-width: 160px;
	height: 32px;
}

.lj-replenish-footnote {
	color: #667085;
	font-size: 12px;
	line-height: 1.45;
}

@media (max-width: 780px) {
	.lj-replenish-hero,
	.lj-replenish-controls {
		grid-template-columns: 1fr;
	}

	.lj-replenish-stats {
		min-width: 0;
	}
}

.frappe-control > .tooltip-content {
	display: none !important;
}

.lj-quote-draft-dialog .modal-dialog {
	max-width: min(1120px, calc(100vw - 36px));
}

.lj-upload-box {
	border: 1px solid #d0d5dd;
	border-radius: 8px;
	background: #f9fafb;
	cursor: pointer;
	padding: 12px;
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 10px 12px;
	align-items: center;
	transition: border-color 0.16s ease, background 0.16s ease, box-shadow 0.16s ease;
}

.lj-upload-box:hover,
.lj-upload-box.drag-over {
	border-color: #12b76a;
	background: #f1fbf5;
	box-shadow: inset 0 0 0 1px rgba(18, 183, 106, 0.12);
}

.lj-upload-main {
	display: grid;
	grid-template-columns: 38px minmax(0, 1fr);
	gap: 10px;
	align-items: center;
	min-width: 0;
}

.lj-upload-icon {
	width: 38px;
	height: 38px;
	border-radius: 8px;
	background: #eaf7f0;
	color: #087f45;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

.lj-upload-copy {
	min-width: 0;
}

.lj-upload-copy strong {
	display: block;
	color: #101828;
	font-size: 13px;
	font-weight: 850;
	line-height: 1.25;
}

.lj-upload-copy span {
	display: block;
	margin-top: 3px;
	color: #667085;
	font-size: 12px;
	line-height: 1.4;
}

.lj-upload-file-name {
	font-size: 12px;
	color: #667085;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.lj-upload-file-name.active {
	color: #101828;
	font-weight: 750;
}

.lj-upload-file-list {
	grid-column: 1 / -1;
	display: flex;
	flex-wrap: wrap;
	gap: 7px;
	min-height: 24px;
	align-items: center;
}

.lj-upload-file-pill {
	max-width: 100%;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	border: 1px solid #c8ead8;
	border-radius: 999px;
	background: #f6fbf8;
	color: #101828;
	padding: 3px 6px 3px 9px;
	font-size: 12px;
	line-height: 1.35;
}

.lj-upload-file-pill span {
	max-width: 260px;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.lj-upload-remove-file {
	width: 18px;
	height: 18px;
	border: 0;
	border-radius: 50%;
	background: #d3f9d8;
	color: #087f45;
	font-size: 14px;
	font-weight: 900;
	line-height: 18px;
	padding: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

.lj-upload-remove-file:hover {
	background: #b2f2bb;
}

.lj-field-hint {
	grid-column: 1 / -1;
	color: #667085;
	font-size: 12px;
	line-height: 1.45;
}

.lj-quote-template-panel {
	display: grid;
	gap: 10px;
	border: 1px solid #d0d5dd;
	border-radius: 8px;
	background: #fff;
	padding: 12px;
}

.lj-quote-template-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
}

.lj-quote-template-head strong {
	display: block;
	color: #101828;
	font-size: 14px;
	font-weight: 850;
	line-height: 1.25;
}

.lj-quote-template-head span {
	display: block;
	margin-top: 2px;
	color: #667085;
	font-size: 12px;
	line-height: 1.35;
}

.lj-quote-tax-toggle {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	margin: 0;
	color: #344054;
	font-size: 12px;
	font-weight: 800;
	white-space: nowrap;
}

.lj-quote-tax-toggle input {
	width: 16px;
	height: 16px;
	margin: 0;
}

.lj-quote-meta-grid {
	display: grid;
	gap: 8px;
}

.lj-quote-meta-grid.primary {
	grid-template-columns: repeat(6, minmax(0, 1fr));
}

.lj-quote-meta-grid.specs {
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

.lj-quote-meta-grid.service {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.lj-quote-service-panel {
	display: grid;
	gap: 8px;
	border-top: 1px solid #eaecf0;
	padding-top: 10px;
}

.lj-quote-service-title {
	color: #101828;
	font-size: 13px;
	font-weight: 850;
	line-height: 1.3;
}

.lj-quote-meta-field {
	display: grid;
	gap: 4px;
	min-width: 0;
	margin: 0;
}

.lj-quote-meta-field.wide {
	grid-column: span 2;
}

.lj-quote-meta-field span {
	color: #475467;
	font-size: 11px;
	font-weight: 750;
	line-height: 1.25;
}

.lj-quote-meta-field input,
.lj-quote-meta-field select,
.lj-quote-meta-field textarea {
	width: 100%;
	border: 1px solid #d0d5dd;
	border-radius: 7px;
	background: #fff;
	color: #101828;
	font-size: 12px;
	padding: 5px 8px;
}

.lj-quote-meta-field input,
.lj-quote-meta-field select {
	height: 32px;
}

.lj-quote-meta-field textarea {
	min-height: 58px;
	resize: vertical;
	line-height: 1.45;
}

.lj-quote-metric-strip {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 8px;
}

.lj-quote-metric-strip > div {
	border: 1px solid #d8efe2;
	border-radius: 7px;
	background: #f6fbf8;
	padding: 8px 10px;
	min-width: 0;
}

.lj-quote-metric-strip span {
	display: block;
	color: #667085;
	font-size: 11px;
	line-height: 1.2;
}

.lj-quote-metric-strip strong {
	display: block;
	margin-top: 3px;
	color: #101828;
	font-size: 15px;
	font-weight: 900;
	line-height: 1.15;
	font-variant-numeric: tabular-nums;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.lj-quote-draft-sheet {
	border: 1px solid #d0d5dd;
	border-radius: 8px;
	background: #fff;
	overflow: hidden;
}

.lj-quote-sheet-head {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 14px;
	padding: 12px 14px;
	background: #f8fafc;
	border-bottom: 1px solid #e4e7ec;
}

.lj-quote-sheet-total {
	min-width: 130px;
	text-align: right;
}

.lj-quote-sheet-total span {
	display: block;
	color: #667085;
	font-size: 11px;
	line-height: 1.2;
}

.lj-quote-sheet-total strong {
	display: block;
	margin-top: 2px;
	color: #101828;
	font-size: 16px;
	font-weight: 850;
	line-height: 1.2;
}

.lj-quote-table-wrap {
	overflow-x: auto;
}

.lj-quote-draft-table {
	width: 100%;
	min-width: 1180px;
	border-collapse: collapse;
	table-layout: fixed;
	font-size: 12px;
}

.lj-quote-draft-table th {
	background: #f2f4f7;
	color: #475467;
	font-weight: 800;
	text-align: left;
	padding: 9px 8px;
	border-bottom: 1px solid #e4e7ec;
	white-space: nowrap;
}

.lj-quote-draft-table td {
	padding: 7px 6px;
	border-bottom: 1px solid #edf0f4;
	vertical-align: middle;
}

.lj-quote-draft-table th.check,
.lj-quote-draft-table td.check {
	width: 34px;
	text-align: center;
}

.lj-quote-draft-table th:nth-child(2) {
	width: 92px;
}

.lj-quote-draft-table th:nth-child(3) {
	width: 172px;
}

.lj-quote-draft-table th:nth-child(4) {
	width: 112px;
}

.lj-quote-draft-table th:nth-child(5) {
	width: 128px;
}

.lj-quote-draft-table th:nth-child(6) {
	width: 70px;
}

.lj-quote-draft-table th:nth-child(7),
.lj-quote-draft-table th:nth-child(8),
.lj-quote-draft-table th:nth-child(9) {
	width: 92px;
}

.lj-quote-draft-table th:nth-child(10) {
	width: 88px;
}

.lj-quote-draft-table th:nth-child(11) {
	width: 190px;
}

.lj-quote-draft-table input,
.lj-quote-draft-table select {
	width: 100%;
	height: 30px;
	border: 1px solid #d0d5dd;
	background: #fff;
	border-radius: 6px;
	padding: 4px 7px;
	font-size: 12px;
	color: #101828;
}

.lj-quote-model-cell {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 56px;
	gap: 6px;
	align-items: center;
}

.lj-quote-model-cell .lj-quote-draft-input {
	min-width: 0;
}

.lj-quote-stock-pick {
	height: 30px;
	border: 1px solid #b7e4c7;
	border-radius: 6px;
	background: #f1fbf5;
	color: #087f45;
	font-size: 12px;
	font-weight: 850;
	white-space: nowrap;
	cursor: pointer;
}

.lj-engineering-model-cell {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 56px;
	gap: 6px;
	align-items: center;
}

.lj-engineering-model-cell input {
	min-width: 0;
}

.lj-engineering-stock-pick {
	height: 30px;
	border: 1px solid #b7e4c7;
	border-radius: 6px;
	background: #f1fbf5;
	color: #087f45;
	font-size: 12px;
	font-weight: 850;
	white-space: nowrap;
	cursor: pointer;
}

.lj-quote-stock-pick:hover {
	background: #e6f7ed;
	border-color: #12b76a;
}

.lj-quote-draft-table input.lj-quote-row-check {
	appearance: none;
	-webkit-appearance: none;
	width: 18px !important;
	height: 18px !important;
	min-width: 18px;
	min-height: 18px;
	margin: 0;
	padding: 0 !important;
	border: 1px solid #b8c2d0;
	border-radius: 5px;
	background-color: #fff;
	background-position: center;
	background-repeat: no-repeat;
	background-size: 12px 12px;
	box-shadow: 0 1px 2px rgba(16, 24, 40, 0.08);
	cursor: pointer;
	vertical-align: middle;
}

.lj-quote-row-check::before,
.lj-quote-row-check::after {
	display: none !important;
	content: "" !important;
}

.lj-quote-row-check:checked {
	border-color: #12b76a;
	background-color: #12b76a;
	background-image: url("data:image/svg+xml,%3Csvg%20viewBox%3D%270%200%2012%2010%27%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%3E%3Cpath%20d%3D%27M1%205.2l3%203L11%201%27%20fill%3D%27none%27%20stroke%3D%27white%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27/%3E%3C/svg%3E");
}

.lj-quote-row-check:focus-visible {
	outline: 2px solid rgba(18, 183, 106, 0.35);
	outline-offset: 2px;
}

.lj-quote-draft-table input.lj-quote-row-check[hidden] {
	display: none !important;
}

.lj-engineering-material-box {
	border: 1px solid #e4e7ec;
	border-radius: 8px;
	background: #fff;
	overflow: hidden;
}

.lj-engineering-dialog-context {
	display: grid;
	grid-template-columns: minmax(0, 1.2fr) minmax(0, 1.8fr);
	gap: 12px;
	align-items: stretch;
	padding: 12px;
	border: 1px solid #d6eadf;
	border-radius: 8px;
	background: #f7fdf9;
}

.lj-engineering-dialog-context span,
.lj-engineering-dialog-context em,
.lj-engineering-dialog-facts b {
	display: block;
	color: #667085;
	font-size: 12px;
	font-style: normal;
	line-height: 1.35;
}

.lj-engineering-dialog-context strong {
	display: block;
	margin: 3px 0;
	color: #101828;
	font-size: 14px;
	font-weight: 850;
	line-height: 1.35;
}

.lj-engineering-dialog-facts {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 8px;
}

.lj-engineering-dialog-facts span {
	min-width: 0;
	padding: 8px;
	border: 1px solid #e4e7ec;
	border-radius: 7px;
	background: #fff;
	color: #101828;
	font-weight: 800;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.lj-engineering-material-toolbar,
.lj-engineering-material-actions {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	padding: 10px 12px;
}

.lj-engineering-material-toolbar {
	background: #f8fafc;
	border-bottom: 1px solid #e4e7ec;
}

.lj-engineering-material-heading {
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 3px;
}

.lj-engineering-material-toolbar strong {
	color: #101828;
	font-size: 14px;
}

.lj-engineering-material-toolbar span {
	color: #667085;
	font-size: 12px;
}

.lj-engineering-material-toolbar .lj-action-btn {
	flex: 0 0 auto;
}

.lj-engineering-material-wrap {
	max-width: 100%;
	overflow-x: auto;
}

.lj-engineering-material-table {
	width: 100%;
	min-width: 920px;
	border-collapse: collapse;
	table-layout: fixed;
	font-size: 12px;
}

.lj-engineering-material-table th,
.lj-engineering-material-table td {
	border-bottom: 1px solid #edf0f4;
	padding: 7px 6px;
	vertical-align: middle;
}

.lj-engineering-material-table th {
	background: #f2f4f7;
	color: #475467;
	font-weight: 800;
	text-align: left;
	white-space: nowrap;
}

.lj-engineering-material-table .lj-row-select-col {
	width: 54px;
	text-align: center;
}

.lj-engineering-material-table th:nth-child(2) {
	width: 104px;
}

.lj-engineering-material-table th:nth-child(3),
.lj-engineering-material-table th:nth-child(4) {
	width: 150px;
}

.lj-engineering-material-table th:nth-child(5) {
	width: 78px;
}

.lj-engineering-material-table th:nth-child(6),
.lj-engineering-material-table th:nth-child(7),
.lj-engineering-material-table th:nth-child(8) {
	width: 94px;
}

.lj-engineering-material-table th:nth-child(9) {
	width: 160px;
}

.lj-engineering-material-table input,
.lj-engineering-material-table select {
	width: 100%;
	height: 30px;
	border: 1px solid #d0d5dd;
	background: #fff;
	border-radius: 6px;
	padding: 4px 7px;
	font-size: 12px;
	color: #101828;
}

.lj-row-select-btn {
	width: 18px;
	height: 18px;
	border: 1px solid #b8c2d0;
	border-radius: 999px;
	background: #fff;
	box-shadow: 0 1px 2px rgba(16, 24, 40, 0.08);
	cursor: pointer;
}

.lj-engineering-material-table tr.is-selected .lj-row-select-btn {
	border-color: #12b76a;
	box-shadow: inset 0 0 0 5px #12b76a;
}

.lj-engineering-material-table tr.is-selected td {
	background: #f0fdf4;
}

.lj-engineering-material-actions {
	justify-content: flex-start;
	background: #fff;
}

.lj-quote-detail-dialog .modal-dialog {
	max-width: 740px;
}

.lj-quote-detail-dialog.is-price-hidden .modal-dialog {
	max-width: 680px;
}

.lj-quote-detail-body {
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.lj-quote-detail-body .lj-card-title {
	margin: 0;
}

.lj-quote-detail-facts {
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 8px;
	margin: 0;
}

.lj-quote-detail-subfacts {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 8px;
}

.lj-quote-detail-subfacts > div {
	min-width: 0;
	border: 1px solid #e5e7eb;
	border-radius: 8px;
	background: #fbfcfd;
	padding: 8px;
}

.lj-quote-detail-subfacts span,
.lj-quote-detail-subfacts strong {
	display: block;
	line-height: 1.35;
	overflow-wrap: anywhere;
}

.lj-quote-detail-subfacts span {
	color: #667085;
	font-size: 12px;
}

.lj-quote-detail-subfacts strong {
	margin-top: 4px;
	color: #101828;
	font-size: 13px;
	font-weight: 850;
}

.lj-quote-detail-note {
	border: 1px solid #dbeafe;
	border-radius: 8px;
	background: #eff6ff;
	color: #175cd3;
	font-size: 12px;
	line-height: 1.45;
	padding: 8px 10px;
}

.lj-quote-detail-wrap {
	max-height: 420px;
	border: 1px solid #edf0f2;
	border-radius: 8px;
	overflow: auto;
}

.lj-quote-detail-table {
	min-width: 720px;
	table-layout: fixed;
}

.lj-quote-detail-table.is-price-hidden {
	min-width: 620px;
}

.lj-quote-detail-table th,
.lj-quote-detail-table td {
	white-space: normal;
	overflow-wrap: anywhere;
	word-break: break-word;
	line-height: 1.4;
	vertical-align: top;
}

.lj-quote-detail-table.is-price-hidden th:nth-child(1) { width: 90px; }
.lj-quote-detail-table.is-price-hidden th:nth-child(2) { width: 122px; }
.lj-quote-detail-table.is-price-hidden th:nth-child(3) { width: 150px; }
.lj-quote-detail-table.is-price-hidden th:nth-child(4) { width: 64px; }
.lj-quote-detail-table.is-price-hidden th:nth-child(5) { width: 64px; }
.lj-quote-detail-table.is-price-hidden th:nth-child(6) { width: 160px; }

/* ---- 工程主配件规则编辑器(主件列表 + 配件规则 + 本地试算) ---- */
.lj-rule-editor {
	display: grid;
	grid-template-columns: 250px minmax(0, 1fr);
	gap: 12px;
	align-items: start;
}

.lj-rule-editor-side {
	border: 1px solid #e4e7ec;
	border-radius: 8px;
	background: #fff;
	overflow: hidden;
}

.lj-rule-editor-side-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
	padding: 10px 12px;
	background: #f8fafc;
	border-bottom: 1px solid #e4e7ec;
}

.lj-rule-editor-side-head strong {
	color: #101828;
	font-size: 13px;
	font-weight: 850;
}

.lj-rule-main-list {
	max-height: 430px;
	overflow-y: auto;
	padding: 8px;
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.lj-rule-main-item {
	display: block;
	width: 100%;
	text-align: left;
	border: 1px solid #e4e7ec;
	border-radius: 8px;
	background: #fff;
	padding: 8px 10px;
	cursor: pointer;
	transition: border-color 0.15s ease, background 0.15s ease;
}

.lj-rule-main-item:hover {
	border-color: #b8c2d0;
	background: #fbfcfd;
}

.lj-rule-main-item.is-active {
	border-color: #12b76a;
	background: #f0fdf4;
	box-shadow: 0 0 0 1px #12b76a inset;
}

.lj-rule-main-item strong {
	display: block;
	color: #101828;
	font-size: 13px;
	font-weight: 800;
	line-height: 1.3;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.lj-rule-main-item span {
	display: block;
	margin-top: 2px;
	color: #667085;
	font-size: 12px;
	line-height: 1.3;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.lj-rule-main-item em {
	display: block;
	margin-top: 2px;
	color: #12b76a;
	font-size: 11px;
	font-style: normal;
	font-weight: 700;
}

.lj-rule-editor-body {
	display: flex;
	flex-direction: column;
	gap: 12px;
	min-width: 0;
}

.lj-rule-main-form {
	border: 1px solid #e4e7ec;
	border-radius: 8px;
	background: #fff;
	overflow: hidden;
}

.lj-rule-main-form-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
	padding: 10px 12px;
	background: #f8fafc;
	border-bottom: 1px solid #e4e7ec;
}

.lj-rule-main-form-head strong {
	color: #101828;
	font-size: 13px;
	font-weight: 850;
}

.lj-rule-main-fields {
	display: grid;
	grid-template-columns: 130px minmax(0, 1.4fr) minmax(0, 1.4fr) 110px;
	gap: 10px;
	padding: 12px;
}

.lj-rule-main-fields label {
	display: flex;
	flex-direction: column;
	gap: 4px;
	margin: 0;
	color: #475467;
	font-size: 12px;
	font-weight: 700;
}

	.lj-rule-main-fields input,
	.lj-rule-main-fields select {
		width: 100%;
		height: 32px;
	border: 1px solid #d0d5dd;
	border-radius: 6px;
	background: #fff;
	padding: 4px 8px;
	font-size: 12px;
		color: #101828;
	}

	.lj-rule-stock-cell {
		display: grid;
		grid-template-columns: auto minmax(0, 1fr);
		gap: 6px;
		align-items: center;
		min-width: 0;
	}

	.lj-rule-stock-cell .lj-action-btn {
		white-space: nowrap;
		height: 30px;
		padding-inline: 10px;
	}

	.lj-rule-stock-cell input[readonly] {
		background: #f9fafb;
		color: #101828;
		overflow: hidden;
		text-overflow: ellipsis;
	}

.lj-rule-acc-box {
	border: 1px solid #e4e7ec;
	border-radius: 8px;
	background: #fff;
	overflow: hidden;
}

.lj-rule-acc-head {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 10px 12px;
	background: #f8fafc;
	border-bottom: 1px solid #e4e7ec;
}

.lj-rule-acc-head strong {
	color: #101828;
	font-size: 13px;
	font-weight: 850;
}

.lj-rule-acc-head span {
	flex: 1;
	color: #667085;
	font-size: 12px;
}

.lj-rule-acc-table,
.lj-rule-preview-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 12px;
}

.lj-rule-acc-table th,
.lj-rule-acc-table td,
.lj-rule-preview-table th,
.lj-rule-preview-table td {
	border-bottom: 1px solid #edf0f4;
	padding: 7px 6px;
	vertical-align: middle;
}

.lj-rule-acc-table th,
.lj-rule-preview-table th {
	background: #f2f4f7;
	color: #475467;
	font-weight: 800;
	text-align: left;
	white-space: nowrap;
}

	.lj-rule-acc-table input,
	.lj-rule-acc-table select {
		width: 100%;
		height: 30px;
	border: 1px solid #d0d5dd;
	border-radius: 6px;
	background: #fff;
	padding: 4px 7px;
	font-size: 12px;
		color: #101828;
	}

.lj-rule-acc-table th:nth-child(1) {
	width: 108px;
}

.lj-rule-acc-table th:nth-child(4) {
	width: 78px;
}

.lj-rule-acc-table th:nth-child(5),
.lj-rule-acc-table th:nth-child(6) {
	width: 96px;
}

.lj-rule-acc-table th:nth-child(7) {
	width: 96px;
}

.lj-rule-acc-remove-col {
	width: 40px;
	text-align: center;
}

.lj-rule-acc-remove {
	width: 24px;
	height: 24px;
	border: 1px solid #fecdd3;
	border-radius: 6px;
	background: #fff1f2;
	color: #e11d48;
	font-size: 14px;
	line-height: 1;
	cursor: pointer;
}

.lj-rule-acc-remove:hover {
	background: #ffe4e6;
	border-color: #fda4af;
}

.lj-rule-trial {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px;
	padding: 10px 12px;
	background: #f7fdf9;
	border-top: 1px solid #d6eadf;
}

.lj-rule-trial label {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	margin: 0;
	color: #067647;
	font-size: 12px;
	font-weight: 800;
	white-space: nowrap;
}

.lj-rule-trial-qty {
	width: 96px;
	height: 30px;
	border: 1px solid #abe2c4;
	border-radius: 6px;
	background: #fff;
	padding: 4px 8px;
	font-size: 12px;
	color: #101828;
}

.lj-rule-trial-result {
	flex: 1;
	min-width: 200px;
	display: flex;
	flex-wrap: wrap;
	gap: 6px 12px;
}

.lj-rule-trial-item {
	color: #344054;
	font-size: 12px;
	line-height: 1.4;
}

.lj-rule-trial-item strong {
	color: #067647;
	font-weight: 850;
	margin: 0 2px;
}

.lj-rule-apply-preview {
	margin-top: 10px;
	border: 1px solid #e4e7ec;
	border-radius: 8px;
	background: #fff;
	overflow: hidden;
}

.lj-rule-apply-preview .lj-mini-section-title {
	padding: 8px 12px;
	background: #f8fafc;
	border-bottom: 1px solid #e4e7ec;
}

@media (max-width: 900px) {
	.lj-rule-editor {
		grid-template-columns: 1fr;
	}

	.lj-rule-main-list {
		max-height: 180px;
	}

	.lj-rule-main-fields {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

.lj-warehouse-quantity-table {
	min-width: 880px;
}

.lj-warehouse-quantity-table th:nth-child(1) {
	width: 104px;
}

.lj-warehouse-quantity-table th:nth-child(2),
.lj-warehouse-quantity-table th:nth-child(3) {
	width: 150px;
}

.lj-warehouse-quantity-table th:nth-child(4) {
	width: 78px;
}

.lj-warehouse-quantity-table th:nth-child(5),
.lj-warehouse-quantity-table th:nth-child(6),
.lj-warehouse-quantity-table th:nth-child(7) {
	width: 94px;
}

.lj-warehouse-quantity-table th:nth-child(8) {
	width: 170px;
}

.lj-quote-select-toggle {
	position: relative;
	width: 22px;
	height: 22px;
	border: 1px solid #cbd5e1;
	border-radius: 7px;
	background: #fff;
	box-shadow: 0 1px 2px rgba(16, 24, 40, 0.08);
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	vertical-align: middle;
}

.lj-quote-select-toggle::after {
	content: "";
	width: 10px;
	height: 6px;
	border-left: 2px solid #fff;
	border-bottom: 2px solid #fff;
	transform: rotate(-45deg) translateY(-1px);
	opacity: 0;
}

.lj-quote-select-toggle:hover {
	border-color: #12b76a;
	background: #f1fbf5;
}

.lj-quote-select-toggle.is-selected {
	border-color: #12b76a;
	background: #12b76a;
}

.lj-quote-select-toggle.is-selected::after {
	opacity: 1;
}

.lj-quote-select-toggle:focus-visible {
	outline: 2px solid rgba(18, 183, 106, 0.35);
	outline-offset: 2px;
}

.lj-stock-picker-dialog .modal-dialog {
	max-width: min(860px, calc(100vw - 40px));
}

.lj-stock-picker {
	display: grid;
	gap: 12px;
}

.lj-stock-picker-toolbar {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 92px;
	gap: 8px;
	align-items: center;
}

.lj-stock-picker-toolbar input {
	width: 100%;
	height: 36px;
	border: 1px solid #d0d5dd;
	border-radius: 7px;
	background: #fff;
	padding: 0 10px;
	font-size: 13px;
	color: #101828;
}

.lj-stock-picker-list {
	display: grid;
	gap: 8px;
	max-height: min(460px, 55vh);
	overflow: auto;
}

.lj-stock-picker-row {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(120px, 0.35fr) 92px 76px;
	gap: 10px;
	align-items: center;
	width: 100%;
	min-height: 58px;
	border: 1px solid #e5e7eb;
	border-radius: 8px;
	background: #fff;
	padding: 10px 12px;
	text-align: left;
	cursor: pointer;
}

.lj-stock-picker-row:hover {
	border-color: #12b76a;
	background: #f6fbf8;
}

.lj-stock-picker-row strong,
.lj-stock-picker-row small,
.lj-stock-picker-row span,
.lj-stock-picker-row b,
.lj-stock-picker-row em {
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.lj-stock-picker-row strong {
	display: block;
	font-size: 13px;
	font-weight: 900;
	color: #101828;
}

.lj-stock-picker-row small {
	display: block;
	margin-top: 3px;
	font-size: 12px;
	color: #667085;
}

.lj-stock-picker-row span {
	font-size: 12px;
	color: #475467;
}

.lj-stock-picker-row b {
	font-size: 13px;
	font-weight: 900;
	color: #101828;
	text-align: right;
}

.lj-stock-picker-row em {
	justify-self: end;
	border-radius: 999px;
	background: #eaf7f0;
	padding: 3px 8px;
	color: #087f45;
	font-size: 12px;
	font-style: normal;
	font-weight: 800;
}

.lj-quote-draft-table input.number,
.lj-quote-draft-table .amount {
	text-align: right;
	font-variant-numeric: tabular-nums;
}

.lj-quote-draft-table .amount {
	color: #101828;
	font-weight: 800;
	white-space: nowrap;
}

.lj-quote-table-actions {
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 10px 14px;
	background: #f8fafc;
	border-top: 1px solid #e4e7ec;
	color: #667085;
	font-size: 12px;
}

.lj-quote-table-actions span {
	margin-left: auto;
	line-height: 1.4;
}

.lj-quote-ai-tools {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 8px 12px;
	align-items: center;
	padding: 10px 12px;
	border: 1px solid #c8e4ff;
	border-radius: 8px;
	background: #f3f9ff;
}

.lj-quote-ai-tools strong {
	display: block;
	font-size: 13px;
	font-weight: 850;
	color: #101828;
}

.lj-quote-ai-tools span,
.lj-quote-export-result {
	font-size: 12px;
	line-height: 1.45;
	color: #667085;
}

.lj-quote-export-result {
	grid-column: 1 / -1;
	display: flex;
	align-items: center;
	gap: 8px;
	flex-wrap: wrap;
}

.lj-requirement-ai-chat-dialog .modal-dialog {
	max-width: min(820px, calc(100vw - 36px));
}

.lj-requirement-ai-chat-result {
	display: grid;
	gap: 10px;
}

.lj-ai-chat-grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(240px, 0.8fr);
	gap: 10px;
}

.lj-ai-chat-grid > div {
	border: 1px solid #edf0f3;
	border-radius: 8px;
	background: #fbfcfd;
	padding: 10px 12px;
}

.lj-ai-chat-grid h4 {
	margin: 0 0 8px;
	font-size: 13px;
	font-weight: 850;
	color: #101828;
}

.lj-ai-chat-grid ol {
	margin: 0;
	padding-left: 18px;
	font-size: 12px;
	line-height: 1.65;
	color: #344054;
}

.lj-ai-chat-grid p {
	margin: 0;
	font-size: 12px;
	line-height: 1.55;
	color: #667085;
}

.lj-ai-source-hit {
	margin-top: 7px;
	padding-top: 7px;
	border-top: 1px solid #edf0f3;
}

.lj-ai-source-hit strong,
.lj-ai-source-hit span {
	display: block;
	font-size: 12px;
	line-height: 1.45;
}

.lj-ai-source-hit strong {
	color: #101828;
}

.lj-ai-source-hit span {
	margin-top: 2px;
	color: #667085;
	word-break: break-word;
}

.lj-inventory-operation-dialog .grid-row-check input[type="checkbox"]::before,
.lj-inventory-operation-dialog .grid-row-check input[type="checkbox"]::after,
.lj-balance-switch input::before,
.lj-balance-switch input::after {
	display: none !important;
	content: "" !important;
}

.lj-inventory-operation-dialog .tooltip-content {
	display: none !important;
}

.lj-inventory-operation-dialog .modal-dialog {
	max-width: min(1180px, calc(100vw - 28px));
}

.lj-inventory-operation-dialog .modal-body {
	overflow-x: auto;
}

.lj-inventory-operation-dialog .grid-field {
	min-width: 0;
	overflow-x: auto;
	padding-bottom: 6px;
}

.lj-inventory-operation-dialog .grid-heading-row,
.lj-inventory-operation-dialog .grid-body,
.lj-inventory-operation-dialog .grid-row,
.lj-inventory-operation-dialog .data-row,
.lj-inventory-operation-dialog .grid-field .grid-heading-row,
.lj-inventory-operation-dialog .grid-field .grid-body,
.lj-inventory-operation-dialog .grid-field .grid-row,
.lj-inventory-operation-dialog .grid-field .data-row {
	min-width: 1100px;
}

.lj-inventory-material-grid,
.lj-inventory-material-grid .grid-field {
	overflow-x: auto;
	padding-bottom: 8px;
}

.lj-inventory-material-grid .form-grid,
.lj-inventory-material-grid .grid-heading-row,
.lj-inventory-material-grid .grid-body,
.lj-inventory-material-grid .grid-row,
.lj-inventory-material-grid .data-row {
	min-width: 1100px;
}

.lj-inventory-operation-dialog .grid-static-col {
	min-height: 42px;
	overflow: hidden;
}

.lj-inventory-operation-dialog .grid-static-col .form-control,
.lj-inventory-operation-dialog .grid-static-col textarea,
.lj-inventory-operation-dialog .grid-static-col select {
	width: 100%;
	min-width: 0;
}

.lj-inventory-operation-dialog .grid-static-col a,
.lj-inventory-operation-dialog .static-area,
.lj-inventory-operation-dialog .ellipsis {
	font-size: 12px;
}

.lj-reconciliation-dialog .grid-row-check,
.lj-reconciliation-dialog .grid-heading-row .grid-row-check,
.lj-reconciliation-dialog .grid-heading-row .row-check,
.lj-reconciliation-dialog .grid-body .grid-row-check {
	display: none !important;
	width: 0 !important;
	min-width: 0 !important;
	padding: 0 !important;
	border: 0 !important;
}

.lj-reconciliation-dialog .modal-body,
.lj-reconciliation-dialog .form-layout,
.lj-reconciliation-dialog .form-page,
.lj-reconciliation-dialog .form-section,
.lj-reconciliation-dialog .section-body,
.lj-reconciliation-dialog .form-column,
.lj-reconciliation-dialog .frappe-control,
.lj-reconciliation-dialog .control-input-wrapper,
.lj-reconciliation-dialog .grid-field,
.lj-reconciliation-dialog .form-grid,
.lj-reconciliation-dialog .grid-heading-row {
	overflow: visible !important;
}

.lj-reconciliation-dialog .grid-field {
	padding-bottom: 132px;
}

.lj-reconciliation-header-filterbar {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	align-items: center;
	padding: 10px 0 12px;
	border-bottom: 1px solid #edf0f2;
	background: #fff;
}

.lj-reconciliation-header-filter {
	position: relative;
	display: inline-flex;
	align-items: center;
	margin-left: 0;
	vertical-align: middle;
}

.grid-static-col.has-lj-filter {
	overflow: visible !important;
}

.lj-reconciliation-filter-trigger {
	display: inline-flex;
	align-items: center;
	gap: 3px;
	min-height: 24px;
	border: 1px solid #d0d5dd;
	border-radius: 6px;
	background: #fff;
	color: #101828;
	font-size: 11px;
	line-height: 1;
	padding: 4px 7px;
	cursor: pointer;
}

.lj-reconciliation-filter-menu {
	position: absolute;
	top: calc(100% + 6px);
	left: 0;
	z-index: 1065;
	min-width: 180px;
	max-width: 260px;
	max-height: 260px;
	overflow: auto;
	padding: 8px;
	border: 1px solid #d0d5dd;
	border-radius: 8px;
	background: #fff;
	box-shadow: 0 16px 42px rgba(15, 23, 42, .16);
}

.lj-reconciliation-filter-menu label {
	display: flex;
	align-items: center;
	gap: 7px;
	min-height: 28px;
	margin: 0;
	color: #101828;
	font-size: 12px;
	cursor: pointer;
}

.lj-reconciliation-filter-menu input {
	flex: 0 0 auto;
	margin: 0;
}

.lj-reconciliation-filter-menu span {
	min-width: 0;
	overflow-wrap: anywhere;
}

.lj-reconciliation-filter-empty {
	color: #667085;
	font-size: 12px;
}

.lj-inventory-balance-modal .modal-dialog {
	max-width: min(1180px, calc(100vw - 40px));
}

.lj-inventory-ledger-modal .modal-dialog {
	max-width: min(860px, calc(100vw - 40px));
}

.lj-inventory-panel-modal .modal-dialog {
	max-width: min(1120px, calc(100vw - 40px));
}

.lj-inventory-balance-modal .modal-body {
	padding: 16px 18px 18px;
}

.lj-inventory-ledger-modal .modal-body {
	overflow-x: hidden;
	padding: 14px 18px 18px;
}

.lj-inventory-panel-modal .modal-body {
	padding: 0;
}

.lj-inventory-dialog-panel .lj-inventory-view-panel {
	padding: 14px;
}

.lj-inventory-balance-dialog {
	display: grid;
	gap: 12px;
	min-width: 0;
}

.lj-inventory-ledger-dialog {
	display: grid;
	gap: 12px;
	min-width: 0;
	overflow: hidden;
}

.lj-balance-filter-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(130px, 1fr)) minmax(220px, 1.35fr) auto;
	gap: 10px;
	align-items: end;
	padding: 12px;
	border: 1px solid #e5e7eb;
	border-radius: 8px;
	background: #f9fafb;
}

.lj-balance-filter-grid label {
	display: grid;
	gap: 5px;
	margin: 0;
	min-width: 0;
}

.lj-balance-filter-grid label span {
	font-size: 11px;
	font-weight: 800;
	line-height: 1.2;
	color: #344054;
}

.lj-balance-filter-grid select,
.lj-balance-filter-grid input {
	width: 100%;
	height: 34px;
	padding: 6px 9px;
	border: 1px solid #d0d5dd;
	border-radius: 7px;
	background: #fff;
	color: #101828;
	font-size: 12px;
	line-height: 1.2;
}

.lj-ledger-filter-grid {
	display: grid;
	grid-template-columns: minmax(130px, 1fr) minmax(130px, 1fr) minmax(190px, 1.35fr) auto;
	gap: 10px;
	align-items: end;
	min-width: 0;
	padding: 12px;
	border: 1px solid #e5e7eb;
	border-radius: 8px;
	background: #f9fafb;
}

.lj-ledger-filter-grid label {
	display: grid;
	gap: 5px;
	min-width: 0;
	margin: 0;
}

.lj-ledger-filter-grid label span {
	font-size: 11px;
	font-weight: 800;
	line-height: 1.2;
	color: #344054;
}

.lj-ledger-filter-grid select,
.lj-ledger-filter-grid input {
	width: 100%;
	min-width: 0;
	height: 34px;
	padding: 6px 9px;
	border: 1px solid #d0d5dd;
	border-radius: 7px;
	background: #fff;
	color: #101828;
	font-size: 12px;
	line-height: 1.2;
}

.lj-ledger-actions {
	display: flex;
	align-items: end;
	justify-content: flex-end;
	gap: 8px;
	min-width: 0;
}

.lj-ledger-actions .lj-action-btn {
	min-width: 64px;
}

.lj-balance-switch {
	display: flex !important;
	grid-template-columns: none !important;
	align-items: center;
	justify-content: center;
	gap: 8px;
	height: 34px;
	padding: 0 10px;
	border: 1px solid #bbf7d0;
	border-radius: 7px;
	background: #f0fdf4;
	color: #166534;
	font-size: 12px;
	font-weight: 850;
	white-space: nowrap;
	cursor: pointer;
}

.lj-balance-switch input {
	appearance: none;
	-webkit-appearance: none;
	position: absolute;
	opacity: 0;
	width: 1px;
	height: 1px;
	margin: 0;
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	overflow: hidden;
	pointer-events: none;
}

.lj-switch-mark {
	position: relative;
	display: inline-flex;
	align-items: center;
	width: 34px;
	height: 18px;
	border: 1px solid #98a2b3;
	border-radius: 999px;
	background: #fff;
	box-shadow: inset 0 0 0 1px rgba(16, 24, 40, 0.03);
	transition: background 0.16s ease, border-color 0.16s ease;
}

.lj-switch-mark::after {
	content: "";
	position: absolute;
	left: 3px;
	top: 3px;
	display: grid;
	place-items: center;
	width: 12px;
	height: 12px;
	border-radius: 999px;
	background: #98a2b3;
	color: #fff;
	font-size: 9px;
	font-weight: 950;
	line-height: 1;
	transition: transform 0.16s ease, background 0.16s ease;
}

.lj-balance-switch input:checked + .lj-switch-mark {
	border-color: #039855;
	background: #039855;
}

.lj-balance-switch input:checked + .lj-switch-mark::after {
	content: "";
	transform: translateX(16px);
	background: #fff;
	color: #039855;
}

.lj-balance-switch input:focus-visible + .lj-switch-mark {
	outline: 2px solid rgba(3, 152, 85, 0.24);
	outline-offset: 2px;
}

.lj-balance-toolbar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
}

.lj-balance-toolbar strong {
	display: inline-block;
	margin-right: 8px;
	font-size: 13px;
	font-weight: 900;
	color: #101828;
}

.lj-balance-count {
	color: #667085;
	font-size: 12px;
}

.lj-balance-table-wrap {
	max-height: min(56vh, 560px);
	overflow: auto;
	border: 1px solid #e5e7eb;
	border-radius: 8px;
	background: #fff;
}

.lj-balance-table {
	width: 100%;
	min-width: 980px;
}

.lj-ledger-table {
	table-layout: fixed;
	width: 100%;
	min-width: 720px;
}

.lj-ledger-table th,
.lj-ledger-table td {
	white-space: normal;
	word-break: break-word;
}

.lj-ledger-table th:nth-child(1),
.lj-ledger-table td:nth-child(1) {
	width: 116px;
}

.lj-ledger-table th:nth-child(2),
.lj-ledger-table td:nth-child(2),
.lj-ledger-table th:nth-child(5),
.lj-ledger-table td:nth-child(5),
.lj-ledger-table th:nth-child(6),
.lj-ledger-table td:nth-child(6) {
	width: 66px;
}

.lj-balance-table thead th {
	position: sticky;
	top: 0;
	z-index: 1;
	background: #f2f4f7;
}

.lj-balance-source {
	padding: 8px 10px;
	border: 1px solid #d0d5dd;
	border-radius: 7px;
	background: #fff;
	color: #475467;
	font-size: 12px;
	line-height: 1.45;
}

.lj-mobile-link-hint {
	margin-top: 2px;
	padding: 9px 10px;
	border: 1px solid #c8ead8;
	border-radius: 8px;
	background: #f4fbf7;
	color: #256345;
	font-size: 12px;
	line-height: 1.55;
}

.lj-mobile-link-hint.lj-reissue-warning {
	border-color: #f5c88a;
	background: #fff8ee;
	color: #8a5416;
}

.lj-contractor-report-review {
	display: flex;
	flex-direction: column;
	gap: 8px;
	margin-bottom: 6px;
}

.lj-contractor-report-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 12px;
}

.lj-contractor-report-table td {
	padding: 5px 8px;
	border-bottom: 1px solid #eef1ee;
	color: #334155;
}

.lj-contractor-report-table td:first-child {
	width: 44%;
	color: #64748b;
}

.lj-contractor-report-table a {
	color: #1d6f4c;
	font-weight: 700;
}

.lj-fact-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 7px;
	margin-bottom: 10px;
}

.lj-fact {
	min-height: 50px;
	border: 1px solid #e5e7eb;
	border-radius: 8px;
	padding: 8px 9px;
	background: #fbfcfd;
}

.lj-fact span {
	display: block;
	font-size: 12px;
	color: #667085;
}

.lj-fact strong {
	display: block;
	margin-top: 4px;
	font-size: 13px;
	color: #101828;
	font-weight: 850;
	word-break: break-word;
}

.lj-action-strip {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 7px;
	margin: 10px 0;
}

.lj-action-strip.vertical {
	grid-template-columns: 1fr;
}

.lj-action-strip .lj-action-btn {
	height: 34px;
}

.lj-engineering-workbench {
	display: grid;
	grid-template-columns: minmax(240px, 0.52fr) minmax(0, 1.48fr);
	gap: 12px;
	align-items: start;
	margin-top: 10px;
}

.lj-engineering-project-list,
.lj-engineering-project-work {
	min-width: 0;
	border: 1px solid #e5e7eb;
	border-radius: 8px;
	background: #fff;
	padding: 10px;
	box-shadow: 0 6px 18px rgba(15, 23, 42, 0.035);
}

.lj-engineering-project-list .lj-panel-title,
.lj-engineering-project-work .lj-panel-title {
	align-items: flex-start;
	flex-wrap: wrap;
	margin-bottom: 10px;
}

.lj-engineering-project-list .lj-panel-title > span:first-child,
.lj-engineering-project-work .lj-panel-title > span:first-child {
	font-size: 15px;
	line-height: 1.2;
	min-width: 0;
	overflow-wrap: anywhere;
}

.lj-engineering-project-work .lj-panel-title .lj-chip {
	max-width: 100%;
	overflow: hidden;
	text-overflow: ellipsis;
}

.lj-engineering-project-list .lj-secondary-text {
	max-width: 330px;
	text-align: right;
	font-weight: 600;
}

.lj-engineering-project-list .lj-plain-table-card {
	border: 0;
	padding: 0;
	box-shadow: none;
}

.lj-engineering-project-list .lj-console-table-toolbar {
	display: none;
}

.lj-engineering-project-list .lj-table-wrap {
	max-height: calc(100vh - 430px);
	border: 1px solid #eef0f3;
	border-radius: 8px;
}

.lj-engineering-project-cards {
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.lj-engineering-project-cards-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	padding: 4px 2px 0;
}

.lj-engineering-project-cards-head strong,
.lj-engineering-project-cards-head span {
	display: block;
}

.lj-engineering-project-cards-head strong {
	color: #101828;
	font-size: 13px;
}

.lj-engineering-project-cards-head span {
	margin-top: 2px;
	color: #667085;
	font-size: 12px;
}

.lj-engineering-project-card-list {
	display: grid;
	gap: 8px;
	min-height: 420px;
	max-height: calc(100vh - 310px);
	overflow-y: auto;
	overflow-x: hidden;
	padding-right: 4px;
}

.lj-engineering-project-card {
	width: 100%;
	min-width: 0;
	border: 1px solid #e5e7eb;
	border-radius: 8px;
	background: #fff;
	padding: 11px 12px;
	text-align: left;
	cursor: pointer;
	transition: border-color 0.15s ease, background 0.15s ease, box-shadow 0.15s ease;
}

.lj-engineering-project-card:hover {
	border-color: #b7e4c7;
	background: #fbfffc;
}

.lj-engineering-project-card.selected {
	border-color: var(--lj-green);
	background: #f0fdf4;
	box-shadow: 0 8px 22px rgba(2, 122, 72, 0.08);
}

.lj-engineering-project-card-head,
.lj-engineering-project-card-foot {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
	min-width: 0;
}

.lj-engineering-project-card-head strong,
.lj-engineering-project-card-title,
.lj-engineering-project-card-meta em,
.lj-engineering-project-card-foot em {
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.lj-engineering-project-card-head strong {
	color: #101828;
	font-size: 13px;
}

.lj-engineering-project-card-title {
	display: block;
	margin-top: 8px;
	color: #344054;
	font-size: 14px;
	font-weight: 800;
}

.lj-engineering-project-card-meta {
	display: grid;
	grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
	gap: 8px;
	margin-top: 8px;
}

.lj-engineering-project-card-meta em,
.lj-engineering-project-card-foot em {
	color: #667085;
	font-size: 12px;
	font-style: normal;
}

.lj-engineering-project-card-foot {
	margin-top: 9px;
	padding-top: 9px;
	border-top: 1px dashed #e5e7eb;
}

.lj-engineering-project-list .lj-mini-table {
	min-width: 520px;
}

.lj-engineering-project-list .lj-mini-table th,
.lj-engineering-project-list .lj-mini-table td {
	padding: 10px 8px;
}

.lj-engineering-project-list .lj-mini-table td:last-child {
	min-width: 160px;
}

.lj-engineering-project-list .lj-mini-table td:last-child .lj-action-btn {
	margin: 2px 3px 2px 0;
}

.lj-engineering-project-cell {
	display: grid;
	grid-template-columns: 48px minmax(0, 1fr);
	gap: 8px;
	align-items: center;
	min-width: 0;
}

.lj-engineering-project-cell strong,
.lj-engineering-project-cell span {
	display: block;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.lj-project-select-btn {
	height: 28px;
	border: 1px solid #d0d5dd;
	border-radius: 6px;
	background: #fff;
	color: #344054;
	font-size: 12px;
	font-weight: 800;
	line-height: 1;
	cursor: pointer;
}

.lj-project-select-btn:hover,
.lj-project-select-btn.selected {
	border-color: var(--lj-green);
	background: #ecfdf3;
	color: var(--lj-green-dark);
}

.lj-engineering-project-work .lj-engineering-packet {
	margin-top: 0;
}

.lj-engineering-project-work .lj-engineering-packet .lj-doc-sections {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.lj-engineering-project-work .lj-engineering-actions {
	margin-bottom: 0;
}

.lj-engineering-packet {
	border: 1px solid #e5e7eb;
	border-radius: 8px;
	margin: 10px 0 12px;
	background: #fff;
	overflow: hidden;
}

.lj-engineering-current {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 8px;
	padding: 11px 12px;
	border-bottom: 1px solid #e5e7eb;
	background: linear-gradient(180deg, #f8fafc 0%, #fff 100%);
}

.lj-engineering-current span,
.lj-engineering-current strong,
.lj-engineering-current em {
	display: block;
}

.lj-engineering-current span {
	color: #667085;
	font-size: 12px;
	font-weight: 700;
}

.lj-engineering-current strong {
	margin-top: 4px;
	color: #101828;
	font-size: 16px;
	line-height: 1.25;
	overflow-wrap: anywhere;
}

.lj-engineering-current em {
	margin-top: 4px;
	color: #667085;
	font-size: 12px;
	font-style: normal;
	overflow-wrap: anywhere;
}

.lj-engineering-current-tags {
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-start;
	gap: 6px;
	min-width: 0;
}

.lj-engineering-packet .lj-panel-title {
	flex-wrap: wrap;
	padding: 10px 12px 7px;
}

.lj-engineering-packet .lj-doc-sections {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 8px;
	padding: 0 12px 12px;
}

.lj-engineering-packet .lj-doc-section {
	display: flex;
	flex-direction: column;
	gap: 7px;
	min-width: 0;
	border: 1px solid #edf0f2;
	border-radius: 8px;
	background: #fff;
	padding: 9px 10px;
	overflow: hidden;
}

.lj-doc-section-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
	margin-bottom: 8px;
}

.lj-doc-section-head strong {
	font-size: 13px;
	color: #101828;
}

.lj-doc-section-head span {
	min-width: 22px;
	height: 22px;
	border-radius: 999px;
	background: #ecfdf3;
	color: #027a48;
	font-size: 12px;
	font-weight: 800;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

.lj-fact-grid.compact {
	grid-template-columns: repeat(auto-fit, minmax(118px, 1fr));
	gap: 6px;
}

.lj-fact-grid.compact .lj-fact {
	min-height: 44px;
	padding: 7px 8px;
}

.lj-engineering-packet .lj-fact strong {
	overflow-wrap: anywhere;
	word-break: break-word;
}

.lj-engineering-packet .lj-fact-grid.compact {
	display: grid;
	grid-template-columns: 1fr;
	gap: 0;
	overflow: visible;
	padding-bottom: 0;
	margin-bottom: 4px;
}

.lj-engineering-packet .lj-fact-grid.compact .lj-fact {
	display: grid;
	grid-template-columns: 58px minmax(0, 1fr);
	align-items: start;
	gap: 8px;
	min-width: 0;
	min-height: 0;
	border: 0;
	border-bottom: 1px dashed #edf0f2;
	border-radius: 0;
	background: transparent;
	padding: 4px 0;
}

.lj-engineering-packet .lj-fact-grid.compact .lj-fact:last-child {
	border-bottom: 0;
}

.lj-engineering-packet .lj-fact-grid.compact .lj-fact span,
.lj-engineering-packet .lj-fact-grid.compact .lj-fact strong {
	margin: 0;
	line-height: 1.35;
}

.lj-engineering-packet .lj-fact-grid.compact .lj-fact span {
	font-size: 11px;
}

.lj-engineering-packet .lj-fact-grid.compact .lj-fact strong {
	font-size: 12px;
	font-weight: 850;
}

.lj-engineering-packet .lj-action-strip.compact {
	grid-template-columns: minmax(0, 1fr);
	align-items: stretch;
	gap: 6px;
	margin: 0;
}

.lj-engineering-packet .lj-action-strip.compact .lj-action-btn {
	width: 100%;
	min-width: 0;
	height: auto;
	min-height: 34px;
	white-space: normal;
	line-height: 1.25;
	overflow-wrap: anywhere;
	word-break: break-word;
}

.lj-packet-file-list {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	min-width: 0;
}

.lj-packet-file-link {
	display: block;
	flex: 1 1 132px;
	max-width: 100%;
	min-width: 0;
	border: 1px solid #d0d5dd;
	border-radius: 7px;
	background: #fff;
	padding: 6px 8px;
	color: #344054;
	font-size: 12px;
	font-weight: 750;
	line-height: 1.25;
	text-decoration: none;
	overflow-wrap: anywhere;
	word-break: break-word;
	white-space: normal;
}

.lj-packet-file-link:hover {
	border-color: var(--lj-green);
	color: var(--lj-green);
}

.lj-packet-file-link span {
	display: block;
	min-width: 0;
	overflow-wrap: anywhere;
	word-break: break-word;
}

.lj-packet-file-link.is-static {
	color: #667085;
	background: #f8fafc;
}

.lj-packet-empty {
	margin-top: auto;
	overflow-wrap: anywhere;
}

.lj-engineering-actions {
	display: block;
	border: 1px solid #d1fae5;
	border-radius: 8px;
	background: #f6fef9;
	padding: 9px 10px;
	margin: 0 0 12px;
}

.lj-engineering-actions-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	flex-wrap: wrap;
	min-width: 0;
}

.lj-engineering-actions strong,
.lj-engineering-actions span {
	display: block;
}

.lj-engineering-actions strong {
	color: #101828;
	font-size: 14px;
}

.lj-engineering-actions span {
	color: #667085;
	font-size: 12px;
}

.lj-engineering-package-meta {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(112px, 1fr));
	gap: 8px;
	margin-top: 10px;
}

.lj-engineering-package-meta > div {
	min-width: 0;
	border: 1px solid #d1fae5;
	border-radius: 8px;
	background: rgba(255, 255, 255, 0.75);
	padding: 8px 9px;
}

.lj-engineering-package-meta span,
.lj-engineering-package-meta strong {
	display: block;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.lj-engineering-package-meta span {
	color: #667085;
	font-size: 11px;
}

.lj-engineering-package-meta strong {
	margin-top: 2px;
	color: #101828;
	font-size: 13px;
}

.lj-engineering-package-preview {
	margin-top: 10px;
	border-radius: 8px;
	overflow: hidden;
	background: #fff;
}

.lj-engineering-package-preview .lj-table-wrap {
	max-height: 240px;
}

.lj-engineering-actions .lj-action-strip {
	margin: 0;
	min-width: 220px;
}

@media (max-width: 1360px) {
	.lj-dept-shell.lj-two-col.lj-engineering-shell {
		grid-template-columns: minmax(0, 1fr) 220px;
	}

	.lj-engineering-workbench {
		grid-template-columns: minmax(232px, 0.52fr) minmax(0, 1.48fr);
	}

	.lj-engineering-project-list,
	.lj-engineering-project-work {
		padding: 9px;
	}
}

.lj-detail-section {
	padding-top: 10px;
	margin-top: 10px;
	border-top: 1px solid #e5e7eb;
}

.lj-doc-groups {
	display: flex;
	flex-direction: column;
	gap: 8px;
	margin-top: 8px;
}

.lj-doc-group {
	border: 1px solid #e5e7eb;
	border-radius: 8px;
	background: #fbfcfd;
	padding: 8px;
}

.lj-doc-group-title {
	display: flex;
	justify-content: space-between;
	gap: 8px;
	margin-bottom: 7px;
	font-size: 13px;
	font-weight: 850;
	color: #344054;
}

.lj-doc-group-title span {
	color: #087f45;
}

.lj-doc-group .lj-doc-link {
	display: block;
	width: 100%;
	text-align: left;
	border: 0;
	background: transparent;
	padding: 5px 0;
	color: #475467;
	font-size: 12px;
	cursor: pointer;
}

.lj-doc-group .lj-doc-link:hover {
	color: var(--lj-green);
}

.lj-ai-prompt {
	display: flex;
	align-items: center;
	gap: 8px;
	margin-top: 12px;
	padding: 8px;
	border: 1px solid #e5e7eb;
	border-radius: 8px;
	background: #fff;
}

.lj-ai-prompt input {
	min-width: 0;
	flex: 1;
	border: 0;
	outline: 0;
	font-size: 13px;
}

.lj-ai-prompt .lj-icon-button {
	width: 34px;
	height: 34px;
	border-color: transparent;
	background: #f2f4f7;
}

.lj-console-page.is-loading {
	opacity: 0.82;
}

.lj-console-workspace.lj-dept-workspace {
	display: block;
}

.lj-dept-shell {
	display: grid;
	gap: 10px;
	align-items: start;
}

.lj-dept-shell.lj-three-col {
	grid-template-columns: 208px minmax(0, 1fr) 248px;
}

.lj-dept-shell.lj-inventory-shell {
	grid-template-columns: 252px minmax(0, 1fr);
}

.lj-dept-shell.lj-two-col {
	grid-template-columns: minmax(0, 1fr) 292px;
}

.lj-dept-shell.lj-two-col.lj-procurement-shell {
	grid-template-columns: minmax(0, 1fr) 260px;
}

/* 采购工作台三栏:左侧项目栏收窄(190px),给中间栏让空间 */
.lj-dept-shell.lj-three-col.lj-procurement-shell {
	grid-template-columns: 190px minmax(0, 1fr) 260px;
}

.lj-procurement-queue .lj-console-tabs {
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 6px;
}

.lj-procurement-queue-item {
	grid-template-columns: minmax(0, 1fr);
	gap: 6px;
	padding: 8px 7px;
}

.lj-procurement-queue-stats {
	display: flex;
	gap: 4px;
	min-width: 0;
}

.lj-pq-stat {
	flex: 1 1 0;
	min-width: 0;
	padding: 2px 4px;
	border-radius: 6px;
	background: #f2f4f7;
	color: #667085;
	font-size: 11px;
	line-height: 1.35;
	font-weight: 800;
	font-variant-numeric: tabular-nums;
	text-align: center;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.lj-pq-stat.red {
	background: var(--lj-red-50);
	color: var(--lj-red);
}

.lj-pq-stat.blue {
	background: var(--lj-blue-50);
	color: var(--lj-blue);
}

.lj-pq-stat.green {
	background: var(--lj-green-50);
	color: var(--lj-green-600);
}

/* 右侧采购物流跟踪卡 */
.lj-procurement-logistics-card .lj-procurement-logistics-item {
	margin-top: 8px;
	padding: 8px 9px;
	border: 1px solid #e5e7eb;
	border-radius: 8px;
	background: #fbfcfd;
	min-width: 0;
}

.lj-procurement-logistics-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 6px;
	min-width: 0;
}

.lj-procurement-logistics-head strong {
	font-size: 12px;
	line-height: 1.3;
	color: #101828;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.lj-procurement-logistics-item > small {
	display: block;
	margin-top: 3px;
	color: #667085;
	font-size: 11px;
	line-height: 1.4;
	overflow-wrap: anywhere;
	word-break: break-word;
}

.lj-procurement-logistics-item .lj-procurement-track-shipment {
	margin-top: 6px;
	width: 100%;
	justify-content: center;
}

.lj-procurement-logistics-result:not(:empty) {
	margin-top: 6px;
}

.lj-procurement-logistics-event {
	margin-top: 5px;
	padding-left: 8px;
	border-left: 2px solid #d0d5dd;
	font-size: 11px;
	line-height: 1.4;
	color: #475467;
}

.lj-procurement-logistics-event strong {
	color: #101828;
	font-size: 11px;
}

.lj-procurement-logistics-event small {
	display: block;
	color: #98a2b3;
	font-size: 10px;
	line-height: 1.35;
	overflow-wrap: anywhere;
	word-break: break-word;
}

.lj-dept-shell.lj-two-col.lj-engineering-shell {
	grid-template-columns: minmax(0, 1fr) 220px;
}

.lj-dept-shell.lj-sales-shell-no-queue {
	grid-template-columns: minmax(0, 1fr) 320px;
}

.lj-dept-main {
	min-width: 0;
	overflow: hidden;
}

.lj-side-stack {
	position: sticky;
	top: 72px;
	display: flex;
	flex-direction: column;
	gap: 10px;
	max-height: calc(100vh - 86px);
	overflow: auto;
	min-width: 0;
}

.lj-side-card {
	padding: 12px;
}

.lj-ai-one-line-card {
	padding: 9px 10px;
	border-left: 3px solid var(--lj-blue);
}

.lj-ai-one-line-card.amber,
.lj-ai-one-line-card.yellow {
	border-left-color: var(--lj-amber);
}

.lj-ai-one-line-card.red {
	border-left-color: var(--lj-red);
}

.lj-ai-one-line-card.green {
	border-left-color: var(--lj-green);
}

.lj-ai-one-line-project {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
	margin-bottom: 4px;
	font-size: 11px;
	line-height: 1.2;
	color: #667085;
}

.lj-ai-one-line-project strong {
	color: #101828;
	font-size: 12px;
	font-weight: 800;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.lj-ai-one-line-text {
	color: #344054;
	font-size: 12px;
	font-weight: 700;
	line-height: 1.35;
	overflow: hidden;
	text-overflow: ellipsis;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
}

.lj-panel-title {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	margin-bottom: 10px;
	font-size: 14px;
	font-weight: 900;
	color: #101828;
}

.lj-filter-bar {
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 11px 12px;
	border-bottom: 1px solid #e5e7eb;
	background: #fff;
	flex-wrap: wrap;
}

.lj-filter-pill,
.lj-filter-search {
	height: 34px;
	border: 1px solid #d0d5dd;
	border-radius: 8px;
	background: #fff;
	color: #475467;
	font-size: 12px;
	display: inline-flex;
	align-items: center;
	gap: 7px;
	padding: 0 10px;
	white-space: nowrap;
}

.lj-filter-pill {
	cursor: pointer;
	font-weight: 750;
}

.lj-filter-control {
	min-width: 112px;
	max-width: 180px;
	appearance: auto;
	outline: none;
}

.lj-filter-control.active {
	border-color: var(--lj-green);
	background: #ecfdf3;
	color: #067647;
}

.lj-filter-search {
	min-width: 230px;
	flex: 1;
	color: #98a2b3;
	justify-content: flex-start;
}

.lj-filter-search-input {
	min-width: 160px;
	width: 100%;
	border: 0;
	outline: 0;
	background: transparent;
	color: #101828;
	font-size: 12px;
	font-weight: 650;
}

.lj-filter-search-input::placeholder {
	color: #98a2b3;
	font-weight: 650;
}

.lj-filter-search.full {
	width: 100%;
	min-width: 0;
	margin-bottom: 9px;
}

.lj-toolbar-strip {
	display: flex;
	align-items: center;
	gap: 9px;
	padding: 10px 12px;
	border-bottom: 1px solid #e5e7eb;
	background: #fbfcfd;
}

.lj-toolbar-strip span {
	margin-left: auto;
	color: #667085;
	font-size: 12px;
}

.lj-doc-head {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: start;
	gap: 12px;
	padding: 12px 14px;
	border-bottom: 1px solid #e5e7eb;
	background: #fff;
}

.lj-doc-head > div:first-child {
	min-width: 0;
}

.lj-doc-head .lj-card-title,
.lj-doc-head .lj-card-subtitle {
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.lj-doc-head .lj-console-mini-actions {
	justify-content: flex-end;
	flex-wrap: wrap;
	max-width: 430px;
}

.lj-design-document,
.lj-review-card,
.lj-qc-card,
.lj-warehouse-main {
	background: #fff;
}

.lj-warehouse-package {
	margin-top: 10px;
	border: 1px solid #e5e7eb;
	border-radius: 8px;
	background: #fff;
	overflow: hidden;
}

.lj-warehouse-package-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 12px 14px;
	border-bottom: 1px solid #edf0f2;
	background: #fbfcfd;
}

.lj-warehouse-package-meta {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 8px;
	padding: 12px 14px 0;
}

.lj-warehouse-package-meta > div {
	min-width: 0;
	padding: 9px 10px;
	border: 1px solid #e5e7eb;
	border-radius: 8px;
	background: #fff;
}

.lj-warehouse-package-meta span {
	display: block;
	color: #667085;
	font-size: 11px;
	line-height: 1.2;
}

.lj-warehouse-package-meta strong {
	display: block;
	margin-top: 5px;
	color: #101828;
	font-size: 13px;
	font-weight: 850;
	line-height: 1.2;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.lj-warehouse-package .lj-material-sync-strip {
	padding: 0 14px;
}

.lj-warehouse-package .lj-plain-table-card {
	border-top: 1px solid #edf0f2;
}

.lj-warehouse-package .lj-mini-table {
	min-width: 980px;
}

.lj-warehouse-package .lj-warehouse-actions {
	padding: 0 14px 14px;
}

.lj-doc-sections {
	padding: 0 14px 12px;
}

.lj-doc-section {
	padding: 10px 0;
	border-bottom: 1px solid #edf0f2;
}

.lj-doc-section:last-child {
	border-bottom: 0;
}

.lj-doc-section-title {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
	margin-bottom: 8px;
	font-size: 13px;
	font-weight: 900;
	color: #101828;
}

.lj-doc-section-title > span {
	min-width: 0;
}

.lj-doc-section-title small {
	min-width: 0;
	color: #667085;
	font-size: 12px;
	font-weight: 650;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.lj-doc-section-title .lj-action-btn {
	min-height: 30px;
	padding: 0 10px;
	font-size: 12px;
	white-space: nowrap;
}

.lj-doc-section-title button:not(.lj-action-btn) {
	width: 24px;
	height: 24px;
	border: 0;
	border-radius: 7px;
	background: #f2f4f7;
	color: #667085;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

.lj-doc-section.is-collapsed .lj-doc-field-grid,
.lj-doc-section.is-collapsed .lj-compact-list,
.lj-doc-section.is-collapsed .lj-attachment-grid {
	display: none;
}

.lj-doc-section.is-collapsed .lj-doc-section-title button:not(.lj-action-btn) {
	transform: rotate(-90deg);
}

.lj-doc-field-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 0;
	border: 1px solid #edf0f2;
	border-radius: 8px;
	overflow: hidden;
	background: #fff;
}

.lj-doc-field-grid > div {
	min-height: 49px;
	padding: 8px 10px;
	border-right: 1px solid #edf0f2;
	border-bottom: 1px solid #edf0f2;
	background: #fff;
}

.lj-doc-field-grid > div:nth-child(4n) {
	border-right: 0;
}

.lj-doc-field-grid > div:nth-last-child(-n + 4) {
	border-bottom: 0;
}

.lj-doc-field-grid span,
.lj-side-facts span,
.lj-stat-grid span {
	display: block;
	font-size: 12px;
	color: #667085;
	line-height: 1.25;
}

.lj-doc-field-grid strong,
.lj-side-facts strong,
.lj-stat-grid strong {
	display: block;
	margin-top: 5px;
	font-size: 13px;
	font-weight: 850;
	color: #101828;
	line-height: 1.3;
	word-break: break-word;
}

.lj-design-source-packet {
	padding: 14px;
}

.lj-design-source-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px;
}

.lj-design-source-card {
	display: flex;
	min-height: 104px;
	flex-direction: column;
	gap: 8px;
	padding: 12px;
	border-color: #e6ebee;
	background: linear-gradient(180deg, #ffffff 0%, #f9fbfa 100%);
	min-width: 0;
}

.lj-design-source-card.is-ready {
	box-shadow: inset 3px 0 0 rgba(7, 150, 79, 0.72);
}

.lj-design-source-card.is-empty {
	background: #fbfcfd;
	color: #667085;
}

.lj-design-source-card .lj-doc-group-title {
	margin-bottom: 0;
	align-items: center;
}

.lj-design-source-card .lj-doc-group-title span {
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	color: #101828;
}

.lj-design-source-card .lj-doc-group-title em {
	flex: 0 0 auto;
	min-width: 22px;
	height: 22px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: 999px;
	background: #eaf7f0;
	color: #087f45;
	font-size: 12px;
	font-style: normal;
	font-weight: 900;
}

.lj-design-source-card .lj-doc-link {
	display: flex;
	align-items: center;
	gap: 6px;
	min-width: 0;
	padding: 8px 9px;
	border: 1px solid #e5e7eb;
	border-radius: 8px;
	background: #fff;
	color: #101828;
	font-weight: 800;
}

.lj-design-source-card .lj-doc-link span {
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.lj-design-source-card .lj-secondary-text {
	margin: 0;
	line-height: 1.45;
}

.lj-design-upload-panel {
	padding: 12px 14px;
}

.lj-design-upload-dropzone {
	grid-column: 1 / -1;
	min-height: 172px;
	border: 1.5px dashed #a7c7ff;
	border-radius: 8px;
	background: linear-gradient(180deg, #f8fbff 0%, #f4f8ff 100%);
	color: #175cd3;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 12px;
	padding: 22px;
	text-align: center;
	cursor: pointer;
	transition: border-color 0.16s ease, background 0.16s ease, box-shadow 0.16s ease, transform 0.16s ease;
}

.lj-design-upload-dropzone:hover,
.lj-design-upload-dropzone:focus-visible,
.lj-design-upload-dropzone.drag-over {
	border-color: #0f9f5f;
	background: #f1fbf5;
	box-shadow: inset 0 0 0 1px rgba(18, 183, 106, 0.14), 0 14px 26px rgba(16, 24, 40, 0.06);
	outline: none;
}

.lj-design-upload-dropzone.drag-over {
	transform: translateY(-1px);
}

.lj-design-upload-dropzone.is-uploading {
	pointer-events: none;
	opacity: 0.78;
}

.lj-logistics-ai-upload {
	display: grid;
	gap: 8px;
	margin: 8px 0 12px;
}

.lj-logistics-ai-dropzone {
	min-height: 112px;
	border: 1.5px dashed #a7c7ff;
	border-radius: 8px;
	background: #f8fbff;
	color: #175cd3;
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 16px;
	cursor: pointer;
	transition: border-color 0.16s ease, background 0.16s ease, box-shadow 0.16s ease;
}

.lj-logistics-ai-dropzone:hover,
.lj-logistics-ai-dropzone:focus-visible,
.lj-logistics-ai-dropzone.drag-over {
	border-color: #0f9f5f;
	background: #f1fbf5;
	box-shadow: inset 0 0 0 1px rgba(18, 183, 106, 0.14);
	outline: none;
}

.lj-logistics-ai-dropzone.is-uploading {
	pointer-events: none;
	opacity: 0.76;
}

.lj-logistics-ai-icon {
	width: 40px;
	height: 40px;
	border-radius: 8px;
	background: #eaf7f0;
	color: #087f45;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
}

.lj-logistics-ai-copy {
	min-width: 0;
	display: grid;
	gap: 4px;
}

.lj-logistics-ai-copy strong {
	color: #101828;
	font-size: 13px;
}

.lj-logistics-ai-copy span {
	color: #667085;
	font-size: 12px;
	line-height: 1.45;
}

.lj-design-upload-icon {
	width: 44px;
	height: 44px;
	border-radius: 8px;
	background: #eaf7f0;
	color: #087f45;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

.lj-design-upload-copy strong {
	display: block;
	font-size: 15px;
	font-weight: 900;
	color: #101828;
}

.lj-design-upload-copy span {
	display: block;
	max-width: 520px;
	margin-top: 5px;
	color: #667085;
	font-size: 12px;
	line-height: 1.55;
}

.lj-compact-list {
	margin: 8px 0 0;
	padding-left: 17px;
	color: #344054;
	font-size: 13px;
	line-height: 1.6;
}

.lj-attachment-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 8px;
}

.lj-attachment {
	min-height: 58px;
	border: 1px solid #e5e7eb;
	border-radius: 8px;
	padding: 8px;
	display: grid;
	grid-template-columns: 28px minmax(0, 1fr);
	gap: 7px;
	align-items: center;
	background: #fbfcfd;
}

.lj-attachment svg {
	color: var(--lj-red);
}

.lj-attachment strong,
.lj-attachment span {
	grid-column: 2;
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.lj-attachment strong {
	font-size: 12px;
	color: #101828;
}

.lj-attachment span {
	font-size: 11px;
	color: #667085;
}

.lj-version-section {
	padding: 12px 14px 14px;
	border-top: 1px solid #edf0f2;
}

.lj-review-tabs,
.lj-ai-tabs,
.lj-subtabs {
	display: flex;
	align-items: center;
	gap: 4px;
	padding: 0 0 10px;
}

.lj-review-tabs button,
.lj-ai-tabs button,
.lj-subtabs button {
	height: 30px;
	border: 0;
	border-bottom: 2px solid transparent;
	background: transparent;
	color: #475467;
	font-size: 13px;
	font-weight: 850;
	padding: 0 10px;
	cursor: pointer;
}

.lj-review-tabs button.active,
.lj-ai-tabs button.active,
.lj-subtabs button.active {
	color: #087f45;
	border-bottom-color: #0ca678;
}

.lj-review-list {
	padding: 12px;
}

.lj-review-table-list {
	display: flex;
	flex-direction: column;
	border: 1px solid #e5e7eb;
	border-radius: 8px;
	overflow: hidden;
}

.lj-review-row {
	width: 100%;
	border: 0;
	border-bottom: 1px solid #e5e7eb;
	background: #fff;
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 4px 8px;
	text-align: left;
	padding: 9px;
	cursor: pointer;
}

.lj-review-row:last-child {
	border-bottom: 0;
}

.lj-review-row.selected {
	background: #f0fbf5;
	box-shadow: inset 3px 0 0 var(--lj-green);
}

.lj-review-row strong {
	min-width: 0;
	font-size: 12px;
	line-height: 1.25;
	color: #101828;
	white-space: normal;
	overflow-wrap: anywhere;
	word-break: break-word;
}

.lj-review-row span {
	grid-column: 1;
	color: #667085;
	font-size: 12px;
	line-height: 1.35;
	overflow: hidden;
	white-space: normal;
	overflow-wrap: anywhere;
	word-break: break-word;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
}

.lj-review-row em {
	grid-row: 1 / span 2;
	grid-column: 2;
	align-self: start;
	font-style: normal;
	color: #b46900;
	background: #fff7e6;
	border-radius: 999px;
	padding: 3px 7px;
	font-size: 11px;
	font-weight: 850;
}

.lj-review-summary,
.lj-risk-table-block,
.lj-technical-section,
.lj-review-opinion {
	padding: 12px 14px;
	border-bottom: 1px solid #edf0f2;
}

.lj-panel-title em {
	color: #667085;
	font-size: 12px;
	font-style: normal;
	font-weight: 650;
}

.lj-tech-file-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 10px;
}

.lj-tech-file-card {
	border: 1px solid #e5e7eb;
	border-radius: 8px;
	background: #fbfcfd;
	padding: 10px;
	min-width: 0;
}

.lj-tech-file-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
	margin-bottom: 8px;
}

.lj-tech-file-head strong {
	font-size: 13px;
	color: #101828;
}

.lj-tech-file-head span {
	min-width: 22px;
	height: 22px;
	border-radius: 999px;
	background: #eaf8ef;
	color: #087f45;
	font-size: 12px;
	font-weight: 900;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

.lj-tech-file-list {
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.lj-tech-file-list a {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
	border: 1px solid #edf0f2;
	border-radius: 7px;
	background: #fff;
	padding: 7px 8px;
	color: #344054;
	text-decoration: none;
}

.lj-tech-file-list a span {
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	font-size: 12px;
}

.lj-tech-file-list a em {
	color: #087f45;
	font-size: 12px;
	font-style: normal;
	font-weight: 850;
	white-space: nowrap;
}

.lj-doc-field-grid-compact {
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

.lj-review-opinion textarea {
	width: 100%;
	min-height: 72px;
	border: 1px solid #d0d5dd;
	border-radius: 8px;
	padding: 10px;
	resize: vertical;
	outline: 0;
	font-size: 13px;
	background: #fff;
}

.lj-review-actions,
.lj-qc-actions,
.lj-warehouse-actions {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 8px;
	margin-top: 10px;
}

.lj-review-actions.three {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.lj-review-actions.two {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.lj-qc-card {
	margin-top: 10px;
	padding: 12px 14px;
}

.lj-mini-table {
	min-width: 760px;
}

.lj-mini-table th,
.lj-mini-table td {
	padding: 8px 9px;
	font-size: 12px;
	vertical-align: middle;
}

.lj-mini-table td span:not(.lj-chip) {
	color: #667085;
	font-size: 12px;
}

.lj-mini-table .lj-console-row {
	cursor: pointer;
}

.lj-mini-table .lj-console-row:hover td {
	background: #f8fafc;
}

.lj-mini-table .lj-console-row.selected td {
	background: #edfdf4;
	border-color: #c8ead8;
}

.lj-mini-table .lj-console-row.selected td:first-child {
	box-shadow: inset 3px 0 0 var(--lj-green);
	font-weight: 800;
}

.lj-plain-table-card .lj-table-wrap {
	max-height: calc(100vh - 318px);
}

.lj-procurement-main .lj-mini-table,
.lj-logistics-main .lj-mini-table,
.lj-engineering-main .lj-mini-table,
.lj-finance-main .lj-mini-table,
.lj-ai-main .lj-mini-table {
	min-width: 920px;
}

.lj-procurement-main {
	overflow: visible;
}

.lj-procurement-main .lj-filter-bar {
	padding: 10px 12px;
}

.lj-procurement-package {
	min-width: 0;
}

.lj-procurement-package .lj-warehouse-package-head,
.lj-procurement-package .lj-warehouse-package-meta,
.lj-procurement-package .lj-material-sync-strip,
.lj-procurement-package .lj-toolbar-strip {
	margin-left: 12px;
	margin-right: 12px;
}

.lj-procurement-package .lj-plain-table-card {
	margin: 10px 12px 0;
	min-width: 0;
	overflow: hidden;
}

.lj-procurement-package .lj-plain-table-card .lj-table-wrap {
	max-height: 270px;
	overflow-x: auto;
	overflow-y: auto;
	overscroll-behavior: contain;
	scrollbar-gutter: stable;
}

.lj-procurement-package .lj-mini-table {
	width: 100%;
	min-width: 940px;
	table-layout: fixed;
}

.lj-procurement-package .lj-mini-table th,
.lj-procurement-package .lj-mini-table td {
	padding: 6px 6px;
	font-size: 10.5px;
	line-height: 1.28;
	white-space: normal;
	word-break: break-word;
}

.lj-procurement-package .lj-mini-table th {
	font-size: 10.5px;
	white-space: nowrap;
}

.lj-procurement-package .lj-mini-table td span:not(.lj-chip) {
	font-size: 10.5px;
	line-height: 1.25;
}

.lj-procurement-package .lj-mini-table .lj-chip {
	font-size: 10.5px;
	padding: 3px 6px;
	white-space: nowrap;
}

.lj-procurement-package .lj-mini-table .lj-action-btn {
	min-height: 24px;
	padding: 0 7px;
	font-size: 10.5px;
	white-space: nowrap;
}

.lj-procurement-package .lj-mini-table th:nth-child(1),
.lj-procurement-package .lj-mini-table td:nth-child(1) {
	width: 34px;
	text-align: center;
}

.lj-procurement-package .lj-mini-table th:nth-child(2),
.lj-procurement-package .lj-mini-table td:nth-child(2) {
	width: 78px;
}

.lj-procurement-package .lj-mini-table th:nth-child(3),
.lj-procurement-package .lj-mini-table td:nth-child(3) {
	width: 54px;
}

.lj-procurement-package .lj-mini-table th:nth-child(4),
.lj-procurement-package .lj-mini-table td:nth-child(4) {
	width: 72px;
}

.lj-procurement-package .lj-mini-table th:nth-child(5),
.lj-procurement-package .lj-mini-table td:nth-child(5),
.lj-procurement-package .lj-mini-table th:nth-child(6),
.lj-procurement-package .lj-mini-table td:nth-child(6) {
	width: 42px;
}

.lj-procurement-package .lj-mini-table th:nth-child(7),
.lj-procurement-package .lj-mini-table td:nth-child(7),
.lj-procurement-package .lj-mini-table th:nth-child(8),
.lj-procurement-package .lj-mini-table td:nth-child(8),
.lj-procurement-package .lj-mini-table th:nth-child(9),
.lj-procurement-package .lj-mini-table td:nth-child(9),
.lj-procurement-package .lj-mini-table th:nth-child(11),
.lj-procurement-package .lj-mini-table td:nth-child(11),
.lj-procurement-package .lj-mini-table th:nth-child(12),
.lj-procurement-package .lj-mini-table td:nth-child(12) {
	width: 46px;
}

.lj-procurement-package .lj-mini-table th:nth-child(10),
.lj-procurement-package .lj-mini-table td:nth-child(10) {
	width: 54px;
}

.lj-procurement-package .lj-mini-table th:nth-child(13),
.lj-procurement-package .lj-mini-table td:nth-child(13) {
	width: 64px;
}

.lj-procurement-package .lj-mini-table th:nth-child(14),
.lj-procurement-package .lj-mini-table td:nth-child(14),
.lj-procurement-package .lj-mini-table th:nth-child(15),
.lj-procurement-package .lj-mini-table td:nth-child(15),
.lj-procurement-package .lj-mini-table th:nth-child(16),
.lj-procurement-package .lj-mini-table td:nth-child(16) {
	width: 58px;
}

.lj-procurement-package .lj-mini-table th:nth-child(17),
.lj-procurement-package .lj-mini-table td:nth-child(17) {
	width: 62px;
}

.lj-procurement-stages {
	display: grid;
	gap: 10px;
}

.lj-engineering-main .lj-engineering-project-list .lj-mini-table {
	min-width: 560px;
}

.lj-material-sync-strip {
	display: grid;
	grid-template-columns: minmax(170px, 1.3fr) repeat(6, minmax(72px, 1fr));
	gap: 8px;
	margin: 10px 0;
}

.lj-material-sync-strip > div {
	min-height: 50px;
	padding: 8px 9px;
	border: 1px solid #e5e7eb;
	border-radius: 8px;
	background: #fbfcfd;
	min-width: 0;
}

.lj-material-sync-strip span {
	display: block;
	font-size: 11px;
	line-height: 1.2;
	color: #667085;
}

.lj-material-sync-strip strong {
	display: block;
	margin-top: 5px;
	font-size: 13px;
	line-height: 1.2;
	font-weight: 850;
	color: #101828;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.lj-inventory-summary-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 8px;
	padding: 12px 14px 8px;
}

.lj-inventory-summary-card {
	min-height: 68px;
	padding: 10px;
	border: 1px solid #e5e7eb;
	border-radius: 8px;
	background: #fbfcfd;
	min-width: 0;
}

.lj-inventory-summary-card.warn {
	border-color: #ffd8a8;
	background: #fff8ed;
}

.lj-inventory-summary-card span,
.lj-inventory-summary-card em {
	display: block;
	color: #667085;
	font-size: 11px;
	line-height: 1.25;
	font-style: normal;
}

.lj-inventory-summary-card strong {
	display: block;
	margin: 5px 0 4px;
	color: #101828;
	font-size: 17px;
	line-height: 1.15;
	font-weight: 900;
	overflow-wrap: anywhere;
}

.lj-inventory-shortcuts {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	padding: 0 14px 10px;
	border-bottom: 1px solid #edf0f2;
}

.lj-inventory-view-panel {
	padding: 12px 14px 14px;
}

.lj-inventory-main .lj-inventory-summary-grid {
	padding-bottom: 12px;
	border-bottom: 1px solid #edf0f2;
}

.lj-inventory-command-board {
	padding: 0;
	background: #f8fafc;
	border-top: 1px solid #edf0f2;
}

.lj-inventory-command-board .lj-inventory-view-panel {
	padding: 12px 14px 14px;
}

.lj-inventory-shell .lj-inventory-main {
	min-height: 430px;
}

.lj-inventory-shell .lj-inventory-command-board .lj-inventory-view-panel {
	padding: 14px;
}

.lj-inventory-shell .lj-product-list-card {
	min-height: 260px;
}

.lj-inventory-actions .lj-action-btn:not(.primary) {
	background: #fff;
	color: #344054;
	border-color: #d0d5dd;
}

.lj-product-list-card {
	border: 1px solid #dbeafe;
	border-radius: 8px;
	background: #fff;
	overflow: hidden;
}

.lj-product-list-card .lj-inventory-inner-toolbar {
	padding: 12px 14px;
	border-bottom: 1px solid #e5e7eb;
	background: #f8fbff;
}

.lj-inventory-toolbar-actions {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 8px;
	flex-wrap: wrap;
}

.lj-inventory-search-box {
	display: flex;
	align-items: center;
	gap: 6px;
	min-width: min(420px, 100%);
}

.lj-inventory-search-box .lj-filter-search-input {
	min-width: 220px;
	border-color: #b8c4d4;
	background: #fff;
	color: #101828;
}

.lj-inventory-search-box .lj-filter-search-input::placeholder {
	color: #667085;
}

.lj-product-list-card .lj-table-wrap {
	border: 0;
	border-radius: 0;
}

.lj-product-list-card .lj-plain-table-card {
	border-color: #dbeafe;
}

.lj-link-button {
	display: inline-flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 2px;
	max-width: 100%;
	padding: 0;
	border: 0;
	background: transparent;
	color: #101828;
	text-align: left;
	cursor: pointer;
}

.lj-link-button strong {
	font-size: 13px;
	line-height: 1.25;
	font-weight: 900;
	overflow-wrap: anywhere;
}

.lj-link-button span {
	font-size: 11px;
	line-height: 1.2;
	color: #667085;
	overflow-wrap: anywhere;
}

.lj-link-button:hover strong {
	color: var(--lj-green);
}

.lj-product-detail-dialog .modal-dialog {
	max-width: 980px;
}

.lj-product-detail {
	display: grid;
	gap: 12px;
}

.lj-product-detail-head {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 12px;
	padding: 12px;
	border: 1px solid #e5e7eb;
	border-radius: 8px;
	background: #fbfcfd;
}

.lj-product-detail-head h3 {
	margin: 4px 0 2px;
	font-size: 20px;
	line-height: 1.2;
	font-weight: 900;
	color: #101828;
	letter-spacing: 0;
}

.lj-product-detail-head p {
	margin: 0;
	color: #667085;
	font-size: 12px;
	overflow-wrap: anywhere;
}

.lj-product-facts {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 8px;
}

.lj-product-facts div {
	min-height: 64px;
	padding: 10px;
	border: 1px solid #e5e7eb;
	border-radius: 8px;
	background: #fff;
}

.lj-product-facts span {
	display: block;
	font-size: 11px;
	line-height: 1.2;
	color: #667085;
}

.lj-product-facts strong {
	display: block;
	margin-top: 5px;
	font-size: 14px;
	line-height: 1.25;
	font-weight: 900;
	color: #101828;
	overflow-wrap: anywhere;
}

.lj-product-detail-grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 12px;
}

.lj-warehouse-project-block {
	padding: 12px 14px 14px;
	border-top: 1px solid #edf0f2;
}

.lj-checklist {
	margin-top: 10px;
	border-top: 1px solid #e5e7eb;
	padding-top: 10px;
}

.lj-check-row,
.lj-confirm-row,
.lj-policy-row,
.lj-voucher-row {
	display: flex;
	align-items: center;
	gap: 8px;
	min-height: 30px;
	font-size: 12px;
	color: #344054;
}

.lj-check-row span,
.lj-confirm-row span {
	width: 16px;
	height: 16px;
	border-radius: 50%;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: #e6fcf5;
	color: #087f5b;
	font-size: 11px;
	font-weight: 900;
}

.lj-check-row.warn span {
	background: #fff7e6;
	color: #b46900;
}

.lj-confirm-row strong {
	flex: 1;
}

.lj-confirm-row em {
	font-style: normal;
	color: #087f45;
	background: #eaf7f0;
	border-radius: 999px;
	padding: 2px 7px;
}

.lj-confirm-row em.warn {
	color: #c92a2a;
	background: #fff1f1;
}

.lj-engineering-readiness .lj-side-facts.compact {
	margin-bottom: 10px;
}

.lj-engineering-check-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 7px;
	margin-top: 8px;
}

.lj-engineering-check-grid .lj-confirm-row {
	min-width: 0;
	min-height: 34px;
	border: 1px solid #e5e7eb;
	border-radius: 8px;
	background: #fbfcfd;
	padding: 7px 8px;
}

.lj-engineering-check-grid .lj-confirm-row.warn {
	background: #fffdf7;
	border-color: #ffe7b8;
}

.lj-engineering-check-grid .lj-confirm-row strong {
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.lj-engineering-check-grid .lj-confirm-row em {
	white-space: nowrap;
}

.lj-engineering-doc-summary {
	margin-top: 11px;
	padding-top: 10px;
	border-top: 1px solid #edf0f2;
}

.lj-engineering-doc-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
}

.lj-engineering-doc-chip {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	border: 1px solid #d1fae5;
	border-radius: 999px;
	background: #f6fef9;
	padding: 4px 8px;
	color: #475467;
	font-size: 12px;
}

.lj-engineering-doc-chip strong {
	color: #087f45;
	font-size: 12px;
}

.lj-requirement-card {
	margin: 10px 0;
	padding: 10px;
	border: 1px solid #e5e7eb;
	border-radius: 8px;
	background: #fbfcfd;
}

.lj-requirement-card ul {
	margin: 8px 0 0;
	padding-left: 17px;
	font-size: 12px;
	line-height: 1.55;
	color: #344054;
}

.lj-action-btn.blue {
	background: #e9f4ff;
	border-color: #c8e4ff;
	color: #1864ab;
}

.lj-action-btn.danger {
	background: #fff5f5;
	border-color: #ffc9c9;
	color: #c92a2a;
}

.lj-action-btn.amber {
	background: #d99a00;
	border-color: #d99a00;
	color: #fff;
}

.lj-action-strip-wide {
	grid-template-columns: 1fr;
}

.lj-side-facts {
	display: grid;
	grid-template-columns: 1fr;
	gap: 7px;
	margin: 9px 0;
}

.lj-side-facts.two,
.lj-stat-grid.compact {
	grid-template-columns: 1fr 1fr;
}

.lj-side-facts > div,
.lj-stat-grid > div {
	border: 1px solid #e5e7eb;
	border-radius: 8px;
	padding: 8px;
	background: #fbfcfd;
}

.lj-stat-grid.compact {
	display: grid;
	gap: 7px;
	margin: 10px 0;
}

.lj-stat-grid.compact > div:last-child {
	grid-column: 1 / -1;
}

.lj-risk-list {
	display: flex;
	flex-direction: column;
	gap: 8px;
	margin-top: 9px;
}

.lj-risk-item {
	display: grid;
	grid-template-columns: 9px minmax(0, 1fr) auto;
	gap: 8px;
	align-items: center;
	min-height: 28px;
	font-size: 12px;
	color: #344054;
}

.lj-risk-item span {
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: var(--lj-amber);
}

.lj-risk-item.red span { background: var(--lj-red); }
.lj-risk-item.green span { background: var(--lj-green); }
.lj-risk-item.blue span { background: var(--lj-blue); }

.lj-risk-item strong {
	font-weight: 700;
	line-height: 1.35;
}

.lj-risk-item em {
	font-style: normal;
	border-radius: 999px;
	padding: 2px 7px;
	background: #f2f4f7;
	color: #667085;
}

.lj-doc-group.compact {
	padding: 7px;
}

.lj-step-list {
	display: flex;
	flex-direction: column;
	gap: 0;
	margin-top: 8px;
}

.lj-step-list > div {
	position: relative;
	display: grid;
	grid-template-columns: 22px minmax(0, 1fr) auto;
	gap: 8px;
	min-height: 32px;
	align-items: start;
	color: #667085;
}

.lj-step-list > div::after {
	content: "";
	position: absolute;
	left: 10px;
	top: 22px;
	bottom: 0;
	width: 1px;
	background: #e5e7eb;
}

.lj-step-list > div:last-child::after {
	display: none;
}

.lj-step-list span {
	width: 20px;
	height: 20px;
	border-radius: 50%;
	background: #f2f4f7;
	color: #667085;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 11px;
	font-weight: 900;
	z-index: 1;
}

.lj-step-list strong {
	font-size: 12px;
	color: #344054;
}

.lj-step-list em {
	font-style: normal;
	font-size: 11px;
	color: #98a2b3;
}

.lj-step-list .done span,
.lj-step-list .active span {
	background: #eaf7f0;
	color: #087f45;
}

.lj-step-list .active strong {
	color: #087f45;
}

.lj-shortage-bar {
	display: grid;
	grid-template-columns: 82px minmax(0, 1fr) 54px;
	align-items: center;
	gap: 8px;
	min-height: 26px;
	font-size: 12px;
}

.lj-shortage-bar i {
	height: 4px;
	border-radius: 999px;
	background: var(--lj-red);
	display: block;
}

.lj-shortage-bar strong {
	text-align: right;
	font-size: 12px;
}

.lj-feed-list,
.lj-track-list {
	display: flex;
	flex-direction: column;
	gap: 9px;
	margin-top: 9px;
}

.lj-feed-item,
.lj-track-item {
	display: grid;
	grid-template-columns: 10px minmax(0, 1fr);
	gap: 8px;
	font-size: 12px;
}

.lj-feed-item > span,
.lj-track-item > span {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--lj-amber);
	margin-top: 5px;
}

.lj-feed-item.red > span,
.lj-track-item.red > span { background: var(--lj-red); }
.lj-feed-item.green > span,
.lj-track-item.green > span { background: var(--lj-green); }
.lj-feed-item.blue > span,
.lj-track-item.blue > span { background: var(--lj-blue); }

.lj-feed-item strong,
.lj-track-item strong {
	display: block;
	color: #101828;
	font-size: 12px;
}

.lj-feed-item p,
.lj-track-item p {
	margin: 3px 0 0;
	color: #667085;
	line-height: 1.45;
}

.lj-track-item em {
	display: block;
	font-style: normal;
	color: #98a2b3;
	margin-top: 2px;
}

.lj-inline-alert {
	border-radius: 6px;
	font-size: 12px;
	line-height: 1.45;
	margin-top: 10px;
	padding: 8px 10px;
}

.lj-inline-alert.red {
	background: #fff1f0;
	border: 1px solid #ffd6d1;
	color: var(--lj-red);
}

.lj-inline-alert.green {
	background: #effaf3;
	border: 1px solid #b7e4c7;
	color: var(--lj-green);
}

.lj-inline-alert.blue {
	background: #eff6ff;
	border: 1px solid #bfdbfe;
	color: var(--lj-blue);
}

.lj-inline-alert.amber {
	background: #fff8e6;
	border: 1px solid #ffe0a3;
	color: #b46900;
}

.lj-inline-alert strong,
.lj-inline-alert span,
.lj-inline-alert small {
	display: block;
}

.lj-inline-alert span,
.lj-inline-alert small {
	margin-top: 4px;
	color: inherit;
}

.lj-inline-alert small {
	opacity: 0.86;
	word-break: break-word;
}

.lj-handoff-alerts {
	display: grid;
	gap: 10px;
}

.lj-handoff-alert-card {
	border: 1px solid #d0d5dd;
	border-radius: 8px;
	background: #ffffff;
	padding: 12px;
}

.lj-handoff-alert-card .lj-card-title {
	margin-bottom: 4px;
	font-size: 14px;
}

.lj-handoff-alert-card .lj-info-grid {
	margin-top: 10px;
}

.lj-handoff-alert-card .lj-inline-alert {
	margin-top: 10px;
}

.lj-ai-connect-card,
.lj-ai-test-card,
.lj-ai-kb-card {
	padding: 16px;
	border-bottom: 1px solid #edf0f2;
	background: #fff;
}

.lj-ai-test-card {
	border-bottom: 0;
}

.lj-ai-kb-card {
	border-bottom: 1px solid #edf0f2;
}

.lj-ai-kb-toolbar {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 14px 0;
	flex-wrap: wrap;
}

.lj-ai-kb-toolbar .lj-searchbox.compact {
	min-width: 280px;
	flex: 1 1 320px;
}

.lj-ai-kb-toolbar .lj-icon-button {
	flex: 0 0 auto;
}

.lj-ai-kb-stats {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 8px;
	margin: 10px 0 12px;
}

.lj-ai-kb-stats > div {
	padding: 10px 12px;
	border: 1px solid #edf0f2;
	border-radius: 8px;
	background: #f8fafb;
}

.lj-ai-kb-stats span {
	display: block;
	font-size: 12px;
	font-weight: 750;
	color: #667085;
}

.lj-ai-kb-stats strong {
	display: block;
	margin-top: 3px;
	font-size: 18px;
	font-weight: 950;
	color: #101828;
}

.lj-ai-kb-results {
	display: grid;
	gap: 8px;
	margin: 10px 0 12px;
}

.lj-ai-kb-hit {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 12px;
	align-items: flex-start;
	padding: 10px 12px;
	border: 1px solid #edf0f2;
	border-radius: 8px;
	background: #fff;
}

.lj-ai-kb-hit strong {
	display: block;
	font-size: 13px;
	font-weight: 850;
	color: #101828;
}

.lj-ai-kb-hit span {
	display: block;
	margin-top: 4px;
	font-size: 12px;
	line-height: 1.55;
	color: #667085;
	word-break: break-word;
}

.lj-ai-kb-meta {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 6px;
	flex-wrap: wrap;
	font-size: 12px;
	color: #667085;
}

.lj-ai-connect-head {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 16px;
	margin-bottom: 14px;
}

.lj-eyebrow {
	display: block;
	margin-bottom: 5px;
	font-size: 12px;
	font-weight: 900;
	color: #087f45;
}

.lj-ai-connect-head h2 {
	margin: 0;
	font-size: 20px;
	font-weight: 950;
	color: #101828;
	letter-spacing: 0;
}

.lj-ai-connect-head p {
	max-width: 720px;
	margin: 6px 0 0;
	color: #667085;
	font-size: 13px;
	line-height: 1.55;
}

.lj-ai-connect-grid {
	display: grid;
	grid-template-columns: minmax(260px, 1fr) minmax(300px, 1.15fr);
	gap: 12px;
}

.lj-ai-connect-grid label {
	display: grid;
	gap: 7px;
}

.lj-ai-connect-grid label span {
	font-size: 13px;
	font-weight: 850;
	color: #344054;
}

.lj-ai-connect-grid select,
.lj-ai-connect-grid input,
.lj-ai-test-prompt {
	width: 100%;
	border: 1px solid #d0d5dd;
	border-radius: 8px;
	background: #fff;
	color: #101828;
	font-size: 13px;
	outline: 0;
}

.lj-ai-connect-grid select,
.lj-ai-connect-grid input {
	height: 38px;
	padding: 0 11px;
}

.lj-ai-test-prompt {
	min-height: 112px;
	padding: 11px;
	line-height: 1.55;
	resize: vertical;
}

.lj-ai-connect-grid select:focus,
.lj-ai-connect-grid input:focus,
.lj-ai-test-prompt:focus {
	border-color: #12b76a;
	box-shadow: 0 0 0 3px rgba(18, 183, 106, 0.12);
}

.lj-ai-preset-summary {
	display: grid;
	gap: 4px;
	margin-top: 12px;
	padding: 10px 12px;
	border: 1px solid #d6f3df;
	border-radius: 8px;
	background: #f5fbf7;
}

.lj-ai-connect-status {
	display: grid;
	gap: 4px;
	margin-top: 12px;
	padding: 10px 12px;
	border: 1px solid #e5e7eb;
	border-radius: 8px;
	background: #fbfcfd;
	font-size: 12px;
	line-height: 1.45;
}

.lj-ai-connect-status strong {
	font-size: 13px;
	color: #344054;
}

.lj-ai-connect-status span {
	color: #667085;
	word-break: break-word;
}

.lj-ai-connect-status.green {
	border-color: #b7e4c7;
	background: #effaf3;
}

.lj-ai-connect-status.green strong,
.lj-ai-connect-status.green span {
	color: var(--lj-green);
}

.lj-ai-connect-status.red {
	border-color: #ffd6d1;
	background: #fff1f0;
}

.lj-ai-connect-status.red strong,
.lj-ai-connect-status.red span {
	color: var(--lj-red);
}

.lj-ai-connect-status.blue {
	border-color: #bfdbfe;
	background: #eff6ff;
}

.lj-ai-connect-status.blue strong,
.lj-ai-connect-status.blue span {
	color: var(--lj-blue);
}

.lj-ai-connect-status.amber {
	border-color: #ffe0a3;
	background: #fff8e6;
}

.lj-ai-connect-status.amber strong,
.lj-ai-connect-status.amber span {
	color: #b46900;
}

.lj-ai-preset-summary strong {
	font-size: 13px;
	color: #087f45;
}

.lj-ai-preset-summary span,
.lj-ai-preset-summary small,
.lj-ai-test-result {
	font-size: 12px;
	color: #667085;
	line-height: 1.45;
}

.lj-ai-test-result {
	margin-top: 10px;
	min-height: 42px;
	padding: 10px 12px;
	border: 1px dashed #d0d5dd;
	border-radius: 8px;
	background: #fbfcfd;
}

.lj-action-strip.compact {
	margin-top: 12px;
}

.lj-settings-hero {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	border: 1px solid var(--lj-border);
	border-radius: 8px;
	padding: 16px;
	margin-bottom: 14px;
	background: #f8fafc;
}

.lj-settings-hero h2 {
	margin: 8px 0 4px;
	font-size: 20px;
	font-weight: 800;
	letter-spacing: 0;
	color: var(--lj-ink);
}

.lj-settings-hero p {
	margin: 0;
	color: var(--lj-muted);
	font-size: 13px;
}

.lj-settings-hero.green {
	background: #f1fbf5;
	border-color: #b7e4c7;
}

.lj-settings-hero.red {
	background: #fff5f5;
	border-color: #ffc9c9;
}

.lj-settings-hero.blue {
	background: #f0f7ff;
	border-color: #bfdbfe;
}

.lj-settings-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 10px;
}

.lj-settings-row {
	min-height: 82px;
	border: 1px solid var(--lj-border);
	border-radius: 8px;
	background: #fff;
	padding: 12px;
	display: flex;
	flex-direction: column;
	gap: 5px;
}

.lj-settings-row span {
	font-size: 12px;
	color: var(--lj-muted);
}

.lj-settings-row strong {
	font-size: 14px;
	color: var(--lj-ink);
	line-height: 1.3;
	word-break: break-all;
}

.lj-settings-row em {
	font-style: normal;
	font-size: 12px;
	color: var(--lj-soft);
}

.lj-settings-preset-board {
	margin-bottom: 14px;
}

.lj-settings-preset-grid,
.lj-settings-preset-strip {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 10px;
}

.lj-settings-form-layout {
	display: grid;
	grid-template-columns: 0.9fr 1.1fr;
	gap: 12px;
	margin-top: 12px;
}

.lj-settings-provider-list,
.lj-settings-credential-map {
	border: 1px solid var(--lj-border);
	border-radius: 8px;
	background: #fff;
	padding: 12px;
}

.lj-settings-provider-list h4,
.lj-settings-credential-map h4 {
	margin: 0 0 10px;
	font-size: 14px;
	font-weight: 800;
	color: var(--lj-ink);
}

.lj-settings-provider-list {
	display: grid;
	gap: 8px;
}

.lj-settings-preset-card {
	border: 1px solid var(--lj-border);
	border-radius: 8px;
	background: #fff;
	padding: 12px;
	min-height: 74px;
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.lj-settings-preset-card.active {
	border-color: #2f9e44;
	box-shadow: inset 0 0 0 1px rgba(47, 158, 68, 0.18);
	background: #fbfffc;
}

.lj-settings-preset-card > span {
	align-self: flex-start;
	font-size: 11px;
	color: #087f45;
}

.lj-settings-preset-card strong {
	font-size: 14px;
	color: var(--lj-ink);
}

.lj-settings-preset-card small {
	color: var(--lj-muted);
	font-size: 12px;
	line-height: 1.35;
}

.lj-settings-preset-card p {
	margin: 0;
	color: var(--lj-muted);
	font-size: 12px;
	line-height: 1.45;
}

.lj-settings-preset-card em {
	margin-top: auto;
	font-style: normal;
	font-size: 12px;
	color: var(--lj-soft);
}

.lj-settings-map-row {
	display: grid;
	grid-template-columns: 150px minmax(0, 1fr);
	gap: 10px;
	padding: 9px 0;
	border-top: 1px solid #edf0f3;
}

.lj-settings-map-row:first-of-type {
	border-top: 0;
	padding-top: 0;
}

.lj-settings-map-row strong {
	font-size: 13px;
	color: var(--lj-ink);
}

.lj-settings-map-row span {
	color: var(--lj-muted);
	font-size: 12px;
	line-height: 1.45;
}

.lj-settings-map-row b {
	color: var(--lj-ink);
	font-weight: 800;
}

.lj-settings-required-board,
.lj-settings-form-columns {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 10px;
	margin-top: 12px;
}

.lj-settings-field-group {
	border: 1px solid var(--lj-border);
	border-radius: 8px;
	background: #fff;
	padding: 12px;
}

.lj-settings-field-group h4 {
	margin: 0;
	font-size: 14px;
	font-weight: 800;
	color: var(--lj-ink);
}

.lj-settings-field-group p {
	margin: 4px 0 10px;
	font-size: 12px;
	color: var(--lj-muted);
}

.lj-settings-field-row {
	display: grid;
	grid-template-columns: 22px minmax(0, 1fr) auto;
	align-items: center;
	gap: 8px;
	padding: 8px 0;
	border-top: 1px solid #edf0f3;
}

.lj-settings-field-row:first-of-type {
	border-top: 0;
}

.lj-settings-field-row > span {
	width: 18px;
	height: 18px;
	border-radius: 50%;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: #fff1f0;
	color: var(--lj-red);
	font-size: 11px;
	font-weight: 800;
}

.lj-settings-field-row.filled > span {
	background: #eaf7f0;
	color: var(--lj-green);
}

.lj-settings-field-row strong {
	display: block;
	font-size: 12px;
	color: var(--lj-ink);
}

.lj-settings-field-row small {
	display: block;
	margin-top: 2px;
	color: var(--lj-muted);
	line-height: 1.35;
}

.lj-settings-field-row em {
	font-style: normal;
	font-size: 12px;
	color: var(--lj-soft);
	white-space: nowrap;
}

.lj-settings-steps {
	display: grid;
	gap: 6px;
	margin-top: 10px;
}

.lj-settings-steps div {
	display: grid;
	grid-template-columns: 20px minmax(0, 1fr);
	align-items: start;
	gap: 8px;
	color: var(--lj-muted);
	font-size: 12px;
}

.lj-settings-steps span {
	width: 20px;
	height: 20px;
	border-radius: 50%;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: #eef2f6;
	color: #475467;
	font-size: 11px;
	font-weight: 800;
}

.lj-settings-steps strong {
	font-weight: 500;
	color: #344054;
	line-height: 1.45;
}

.lj-settings-form-guide {
	border: 1px solid var(--lj-border);
	border-radius: 8px;
	background: #f8fafc;
	padding: 16px;
	margin: 2px 0 14px;
}

.lj-settings-form-guide.green {
	background: #f6fbf8;
	border-color: #c8ead8;
}

.lj-settings-form-guide.red {
	background: #fff7f6;
	border-color: #ffd6d1;
}

.lj-settings-form-guide.blue {
	background: #f5f9ff;
	border-color: #c8e4ff;
}

.lj-settings-form-head {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 12px;
	margin-bottom: 0;
}

.lj-settings-form-head h3 {
	margin: 8px 0 4px;
	font-size: 18px;
	font-weight: 800;
	letter-spacing: 0;
	color: var(--lj-ink);
}

.lj-settings-form-head p {
	margin: 0;
	color: var(--lj-muted);
	font-size: 12px;
	line-height: 1.45;
}

.lj-condition-list {
	display: grid;
	gap: 3px;
}

.lj-condition-list span {
	font-size: 11px;
	color: #667085;
}

.lj-condition-list .ok {
	color: #087f45;
}

.lj-condition-list .bad {
	color: #c92a2a;
}

.lj-round-actions {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 7px;
	margin-top: 10px;
}

.lj-round-actions button {
	height: 30px;
	border: 1px solid #e5e7eb;
	border-radius: 999px;
	background: #fff;
	color: #344054;
	font-size: 12px;
	font-weight: 750;
}

.lj-card-title-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
}

.lj-link-btn {
	border: 0;
	background: transparent;
	color: #087f45;
	font-size: 12px;
	font-weight: 800;
	padding: 2px 0;
}

.lj-contractor-directory {
	border: 1px solid #e5f4eb;
	border-radius: 8px;
	background: #fbfffd;
	margin-top: 10px;
	padding: 9px;
}

.lj-mini-section-title {
	color: #475467;
	font-size: 12px;
	font-weight: 850;
	margin-bottom: 7px;
}

.lj-contractor-candidate {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 8px;
	align-items: center;
	padding: 8px 0;
	border-top: 1px solid #eef2f6;
}

.lj-contractor-candidate:first-of-type {
	border-top: 0;
	padding-top: 0;
}

.lj-contractor-candidate strong,
.lj-contractor-candidate span {
	display: block;
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.lj-contractor-candidate strong {
	color: #101828;
	font-size: 13px;
}

.lj-contractor-candidate span {
	color: #667085;
	font-size: 12px;
	margin-top: 2px;
}

.lj-action-btn.tiny {
	min-height: 28px;
	padding: 0 10px;
}

.lj-contact-dialog,
.lj-audit-detail {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 8px;
	padding: 4px 0;
}

.lj-contact-dialog > div,
.lj-audit-detail > div {
	min-height: 58px;
	border: 1px solid #eaecf0;
	border-radius: 8px;
	background: #fbfcfd;
	padding: 9px 10px;
}

.lj-contact-dialog span,
.lj-audit-detail span {
	display: block;
	margin-bottom: 5px;
	color: #667085;
	font-size: 12px;
	font-weight: 750;
}

.lj-contact-dialog strong,
.lj-audit-detail strong {
	color: #101828;
	font-size: 13px;
	line-height: 1.35;
}

.lj-cost-bar {
	height: 18px;
	display: flex;
	overflow: hidden;
	border-radius: 999px;
	background: #f2f4f7;
	margin: 10px 0 8px;
}

.lj-cost-bar i:nth-child(1) { background: #12b76a; }
.lj-cost-bar i:nth-child(2) { background: #2e90fa; }
.lj-cost-bar i:nth-child(3) { background: #f79009; }
.lj-cost-bar i:nth-child(4) { background: #9e77ed; }

.lj-cost-legend {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 6px;
	font-size: 12px;
	color: #475467;
}

.lj-voucher-row {
	display: grid;
	grid-template-columns: 22px minmax(0, 1fr) auto;
	gap: 7px;
	padding: 7px 0;
	border-bottom: 1px solid #edf0f2;
}

.lj-voucher-row:last-child {
	border-bottom: 0;
}

.lj-voucher-row em {
	font-style: normal;
	font-weight: 850;
	color: #101828;
}

.lj-voucher-row b {
	grid-column: 3;
	font-size: 11px;
	color: #087f45;
	background: #eaf7f0;
	border-radius: 999px;
	padding: 2px 7px;
}

.lj-voucher-row b.warn {
	color: #b46900;
	background: #fff7e6;
}

.lj-policy-row {
	justify-content: space-between;
	border-bottom: 1px solid #edf0f2;
}

.lj-policy-row:last-child {
	border-bottom: 0;
}

.lj-policy-row strong {
	border-radius: 999px;
	padding: 2px 8px;
	font-size: 11px;
}

.lj-policy-row strong.green {
	color: #087f45;
	background: #eaf7f0;
}

.lj-policy-row strong.red {
	color: #c92a2a;
	background: #fff1f1;
}

.lj-policy-row strong.amber {
	color: #b46900;
	background: #fff7e6;
}

.lj-bars {
	height: 72px;
	display: flex;
	align-items: end;
	gap: 3px;
	margin-top: 10px;
}

.lj-bars i {
	flex: 1;
	min-width: 3px;
	border-radius: 3px 3px 0 0;
	background: linear-gradient(180deg, #12b76a, #a6f4c5);
}

.lj-danger-text {
	color: #e03131 !important;
	font-weight: 850;
}

.lj-success-text {
	color: #087f45 !important;
	font-weight: 850;
}

.lj-warning-text {
	color: #b46900 !important;
	font-weight: 850;
}

@media (max-width: 1440px) {
	.lj-console-workspace {
		grid-template-columns: 200px minmax(0, 1fr) 236px;
	}

	.lj-dept-shell.lj-three-col {
		grid-template-columns: 200px minmax(0, 1fr) 236px;
	}

	.lj-dept-shell.lj-three-col.lj-procurement-shell {
		grid-template-columns: 182px minmax(0, 1fr) 236px;
	}
}

@media (max-width: 1180px) {
	.lj-console-workspace {
		grid-template-columns: 252px minmax(0, 1fr);
	}

	.lj-dept-shell.lj-three-col,
	.lj-dept-shell.lj-two-col,
	.lj-dept-shell.lj-inventory-shell,
	.lj-dept-shell.lj-three-col.lj-procurement-shell {
		grid-template-columns: 252px minmax(0, 1fr);
	}

	.lj-dept-shell.lj-sales-shell-no-queue {
		grid-template-columns: 1fr;
	}

	.lj-console-kpis {
		grid-template-columns: repeat(3, minmax(156px, 1fr));
	}

	.lj-console-kpi:nth-child(3n) {
		border-right: 0;
	}

	.lj-console-kpi:nth-child(-n + 3) {
		border-bottom: 1px solid #e5e7eb;
	}

	.lj-inventory-summary-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.lj-balance-filter-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.lj-balance-switch {
		justify-content: flex-start;
	}

	.lj-console-detail {
		position: static;
		grid-column: 1 / -1;
		max-height: none;
	}

	.lj-side-stack {
		position: static;
		grid-column: 1 / -1;
		max-height: none;
	}

	.lj-sales-shell-no-queue .lj-console-detail {
		position: static;
		grid-column: 1 / -1;
		max-height: none;
	}
}

@media (max-width: 1100px) {
	.lj-quote-meta-grid.primary,
	.lj-quote-meta-grid.specs,
	.lj-quote-meta-grid.service,
	.lj-quote-metric-strip {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.lj-quote-meta-field.wide {
		grid-column: span 2;
	}

	.lj-console-page,
	.lj-app-page {
		grid-template-columns: 74px minmax(0, 1fr);
	}

	.lj-app-sidebar {
		padding: 14px 8px;
	}

	.lj-app-brand {
		justify-content: center;
		padding: 4px 0 16px;
	}

	.lj-app-brand div:not(.lj-app-logo-img),
	.lj-app-nav-item span,
	.lj-app-nav-group-title span,
	.lj-app-sidebar-footer div:not(.lj-app-user-badge) {
		display: none;
	}

	.lj-app-logo-img {
		width: 46px;
		max-height: 28px;
	}

	.lj-app-nav-item,
	.lj-app-nav-group-title {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		padding: 0;
	}

	.lj-app-nav-item.child {
		padding-left: 0;
	}

	.lj-app-sidebar-footer {
		justify-content: center;
		padding: 10px 0;
	}

	.lj-console-workspace {
		grid-template-columns: 1fr;
	}

	.lj-dept-shell.lj-three-col,
	.lj-dept-shell.lj-two-col,
	.lj-dept-shell.lj-three-col.lj-procurement-shell {
		grid-template-columns: 1fr;
	}

	.lj-dept-shell.lj-inventory-shell {
		grid-template-columns: 252px minmax(0, 1fr);
	}

	.lj-console-queue,
	.lj-console-detail {
		position: static;
		max-height: none;
	}

	.lj-engineering-workbench {
		grid-template-columns: 1fr;
	}

	.lj-engineering-project-list .lj-secondary-text {
		max-width: none;
		text-align: left;
	}

	.lj-engineering-project-list .lj-table-wrap {
		max-height: none;
	}

	.lj-engineering-project-card-list {
		max-height: none;
	}

	.lj-engineering-project-card-meta,
	.lj-engineering-package-meta {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.lj-engineering-dialog-context,
	.lj-engineering-dialog-facts {
		grid-template-columns: 1fr;
	}

	.lj-engineering-current,
	.lj-engineering-actions-head {
		align-items: flex-start;
		flex-direction: column;
	}

	.lj-engineering-current-tags {
		justify-content: flex-start;
	}

	.lj-engineering-check-grid {
		grid-template-columns: 1fr;
	}

	.lj-engineering-packet .lj-doc-sections {
		grid-template-columns: 1fr;
	}

	.lj-engineering-actions {
		margin-bottom: 12px;
	}

	.lj-engineering-actions .lj-action-strip {
		min-width: 0;
		width: 100%;
	}
}

@media (max-width: 760px) {
	body.lj-console-active .main-section,
	body.lj-app-shell-active .main-section {
		overflow-x: hidden;
	}

	.lj-dept-shell.lj-inventory-shell {
		grid-template-columns: 1fr;
	}

	.lj-inventory-summary-grid {
		grid-template-columns: 1fr;
	}

	.lj-inventory-shortcuts {
		align-items: stretch;
		flex-direction: column;
	}

	.lj-inventory-balance-modal .modal-dialog {
		max-width: calc(100vw - 18px);
		margin: 9px;
	}

	.lj-inventory-ledger-modal .modal-dialog {
		max-width: calc(100vw - 18px);
		margin: 9px;
	}

	.lj-inventory-panel-modal .modal-dialog {
		max-width: calc(100vw - 18px);
		margin: 9px;
	}

	.lj-balance-filter-grid {
		grid-template-columns: 1fr;
	}

	.lj-ledger-filter-grid {
		grid-template-columns: 1fr;
	}

	.lj-ledger-actions {
		justify-content: stretch;
	}

	.lj-ledger-actions .lj-action-btn {
		flex: 1 1 0;
	}

	.lj-balance-toolbar {
		align-items: flex-start;
		flex-direction: column;
	}

	.lj-console-page,
	.lj-app-page {
		display: block;
	}

	.lj-app-sidebar {
		position: static;
		height: auto;
		flex-direction: row;
		align-items: center;
		gap: 8px;
		padding: 10px;
		overflow-x: auto;
	}

	.lj-app-brand {
		border-bottom: 0;
		margin: 0;
		padding: 0;
	}

	.lj-app-nav {
		flex-direction: row;
		overflow: visible;
	}

	.lj-app-nav-group,
	.lj-app-nav-children {
		flex-direction: row;
	}

	.lj-app-nav-children {
		display: flex;
	}

	.lj-app-nav-group-title {
		display: none;
	}

	.lj-app-nav-item {
		width: auto;
		min-width: 42px;
	}

	.lj-app-sidebar-footer {
		display: none;
	}

	.lj-console-main {
		padding: 0 12px 18px;
	}

	.lj-console-page {
		min-height: 100vh;
	}

	.lj-console-header,
	.lj-console-actions {
		align-items: stretch;
		flex-direction: column;
	}

	.lj-console-actions,
	.lj-searchbox {
		width: 100%;
		min-width: 0;
	}

	.lj-console-kpis {
		grid-template-columns: 1fr 1fr;
	}

	.lj-fact-grid,
	.lj-action-strip {
		grid-template-columns: 1fr;
	}

	.lj-doc-field-grid,
	.lj-attachment-grid,
	.lj-review-actions,
	.lj-qc-actions,
	.lj-warehouse-actions {
		grid-template-columns: 1fr;
	}

	.lj-warehouse-package-head {
		align-items: flex-start;
		flex-direction: column;
	}

	.lj-warehouse-package-meta {
		grid-template-columns: 1fr;
	}

	.lj-material-sync-strip {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.lj-side-facts.two,
	.lj-stat-grid.compact,
	.lj-cost-legend,
	.lj-settings-grid,
	.lj-settings-preset-grid,
	.lj-settings-preset-strip,
	.lj-settings-form-layout,
	.lj-settings-required-board,
	.lj-settings-form-columns {
		grid-template-columns: 1fr;
	}

	.lj-settings-hero,
	.lj-settings-form-head {
		align-items: stretch;
		flex-direction: column;
	}
}

/* AI 表单预填栏:业务动作弹窗顶部的智能默认值提示。 */
.lj-ai-fill-bar {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 10px;
	padding: 10px 12px;
	margin-bottom: 12px;
	border: 1px solid #b2ddff;
	border-radius: 10px;
	background: #f0f7ff;
}

.lj-ai-fill-text strong {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	font-size: 13px;
	color: #175cd3;
	margin-right: 6px;
}

.lj-ai-fill-preview {
	display: flex;
	flex-wrap: wrap;
	gap: 4px 10px;
	margin-top: 4px;
}

.lj-ai-fill-item {
	font-size: 12px;
	color: #475467;
	background: #fff;
	border: 1px solid #e4e7ec;
	border-radius: 6px;
	padding: 1px 6px;
}

.lj-ai-fill-actions {
	display: flex;
	flex-direction: column;
	gap: 6px;
	flex-shrink: 0;
}

.lj-ai-fill-actions .btn {
	white-space: nowrap;
}

/* AI 建议待处理卡:pending 建议的采纳/驳回闭环 */
.lj-ai-decision-card {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.lj-ai-decision-item {
	padding: 8px 10px;
	border: 1px solid #e4e7ec;
	border-radius: 8px;
	background: #fcfcfd;
}

.lj-ai-decision-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
	margin-bottom: 4px;
}

.lj-ai-decision-type {
	font-size: 12px;
	font-weight: 600;
	color: #175cd3;
	background: #eff8ff;
	border: 1px solid #b2ddff;
	border-radius: 6px;
	padding: 1px 6px;
}

.lj-ai-decision-summary {
	font-size: 12px;
	color: #475467;
	line-height: 1.5;
	margin-bottom: 6px;
	word-break: break-all;
}

.lj-ai-decision-actions {
	display: flex;
	gap: 6px;
	align-items: center;
}

.lj-ai-decision-note {
	font-size: 11px;
}

/* ---- 前台仪表盘图表区(老板看板 + 销售/财务工作台共用) ---- */
.lj-dash-charts { background: #fff; border: 1px solid #e2e6ea; border-radius: 10px; padding: 12px 16px; margin: 12px 0; }
.lj-dash-charts-head { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.lj-dash-charts-title { font-weight: 600; font-size: 14px; }
.lj-charts-range { display: flex; align-items: center; gap: 6px; margin-left: auto; }
.lj-range-btn { border: 1px solid #d4dae0; background: #fff; border-radius: 6px; padding: 2px 10px; font-size: 12px; cursor: pointer; }
.lj-range-btn.active { background: #5b8def; border-color: #5b8def; color: #fff; }
.lj-range-from, .lj-range-to { border: 1px solid #d4dae0; border-radius: 6px; font-size: 12px; padding: 2px 6px; }
.lj-range-sep { color: #98a1ab; font-size: 12px; }
.lj-charts-toggle { border: none; background: none; color: #5b8def; font-size: 12px; cursor: pointer; }
.lj-dash-charts-body { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 12px; margin-top: 10px; }
.lj-chart-cell { min-width: 0; }
.lj-chart-title { font-size: 12px; color: #6b7680; margin-bottom: 4px; }
.lj-dash-charts[data-collapsed="1"] .lj-dash-charts-body { display: none; }
