/* Gain design system — aligned with Snapshot (index.html) */
:root {
	--bg: #7378701a;
	--surface: #ffffff;
	--surface2: #f0efe9;
	--surface3: #e8e8e4;
	--border: #e2e1db;
	--border2: #cccbc4;
	--text: #1c1c1a;
	--text2: #6b6a64;
	--text3: #aaa89f;
	--accent: #809e4d;
	--accent-light: #eef6d0;
	--accent-btn: #a4c954;
	--red: #e8194b;
	--red-bg: #fde8ee;
	--green: #809e4d;
	--green-bg: #eef4e3;
	--blue: #4b7be5;
	--blue-bg: #eaeffe;
	--amber: #b45309;
	--amber-bg: #fef9ee;
	--radius: 8px;
	--radius-sm: 5px;
	--radius-lg: 12px;
	--sidebar-w: 232px;
	--topbar-h: 56px;
	--text-xs: 12px;
	--text-sm: 13px;
	--text-base: 14px;
	--text-md: 15px;
	--text-lg: 16px;
	--font: Arial, Helvetica, sans-serif;
	--font-mono: Arial, Helvetica, sans-serif;
}

* {
	box-sizing: border-box;
}

html,
body,
button,
input,
textarea,
select {
	font-family: Arial, Helvetica, sans-serif;
}

body {
	margin: 0;
	padding: 0;
	background: var(--bg);
	color: var(--text);
	font-family: var(--font);
	font-size: 14px;
	min-height: 100vh;
	-webkit-font-smoothing: antialiased;
}

#root {
	min-height: 100vh;
}

/* App shell */
.scheduler-shell {
	background: var(--bg);
	min-height: 100vh;
	display: flex;
	flex-direction: column;
}

.scheduler-topbar {
	background: var(--surface);
	border-bottom: 1px solid var(--border);
	padding: 0 20px;
	height: var(--topbar-h);
	display: flex;
	align-items: center;
	justify-content: space-between;
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	z-index: 100;
	flex-shrink: 0;
}

.scheduler-layout {
	display: flex;
	flex: 1;
	margin-top: var(--topbar-h);
	min-height: calc(100vh - var(--topbar-h));
}

.scheduler-sidebar {
	width: var(--sidebar-w);
	flex-shrink: 0;
	background: var(--surface);
	border-right: 1px solid var(--border);
	position: fixed;
	top: var(--topbar-h);
	left: 0;
	bottom: 0;
	overflow-y: auto;
	display: flex;
	flex-direction: column;
	z-index: 90;
	transition: transform 0.2s ease;
}

/* Hamburger toggle (mobile only) */
.scheduler-nav-toggle {
	display: none;
	align-items: center;
	justify-content: center;
	width: 34px;
	height: 34px;
	padding: 0;
	margin-right: 12px;
	font-size: 18px;
	line-height: 1;
	background: var(--surface);
	color: var(--text2);
	border: 1px solid var(--border2);
	border-radius: var(--radius-sm);
	cursor: pointer;
	flex-shrink: 0;
}

.scheduler-nav-toggle:hover {
	border-color: var(--accent);
	color: var(--accent);
}

/* Backdrop shown behind the open drawer */
.scheduler-sidebar-overlay {
	position: fixed;
	inset: 0;
	background: rgba(0, 0, 0, 0.45);
	z-index: 105;
}

@media (max-width: 1250px) {
	.scheduler-nav-toggle {
		display: inline-flex;
	}
	.scheduler-sidebar {
		transform: translateX(-100%);
		z-index: 110;
	}
	.scheduler-sidebar.open {
		transform: translateX(0);
		box-shadow: 0 0 24px rgba(0, 0, 0, 0.25);
	}
	.scheduler-layout .scheduler-main-with-sidebar {
		margin-left: 0;
	}
}

.scheduler-sidebar .sidebar-nav {
	flex: 1;
	padding: 12px 0;
}

.scheduler-sidebar .sidebar-section-label {
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--text3);
	padding: 12px 16px 5px;
}

.scheduler-sidebar .nav-item {
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 8px 14px;
	cursor: pointer;
	color: var(--text2);
	font-size: 14px;
	font-weight: 450;
	border-left: 2px solid transparent;
	transition: color 0.1s, background 0.1s, border-color 0.1s;
	user-select: none;
	text-decoration: none;
}

.scheduler-sidebar button.nav-item {
	width: 100%;
	border: none;
	background: transparent;
	font-family: inherit;
	text-align: left;
}

.scheduler-sidebar button.nav-item:hover {
	background: var(--surface2);
	color: var(--text);
}

.scheduler-sidebar a.nav-item:hover {
	background: var(--surface2);
	color: var(--text);
}

.scheduler-sidebar .nav-item.active {
	background: var(--accent-light);
	color: var(--accent);
	border-left-color: var(--accent);
	font-weight: 600;
}

.scheduler-sidebar .nav-item .nav-icon {
	font-size: 15px;
	width: 18px;
	text-align: center;
	flex-shrink: 0;
}

.scheduler-sidebar .nav-item .nav-label {
	flex: 1;
}

.scheduler-sidebar .sidebar-divider {
	height: 1px;
	background: var(--border);
	margin: 8px 14px;
}

.scheduler-sidebar .sidebar-bottom {
	padding: 8px 0 12px;
	border-top: 1px solid var(--border);
	margin-top: auto;
}

.sidebar-calendar {
	padding: 10px 12px 8px;
	user-select: none;
}
.sidebar-calendar-title {
	font-size: 12px;
	font-weight: 600;
	color: var(--text);
	text-align: center;
	margin-bottom: 8px;
	letter-spacing: .01em;
}
.sidebar-calendar-grid {
	display: grid;
	grid-template-columns: repeat(7, 1fr);
	gap: 1px;
	text-align: center;
}
.sidebar-calendar-dow {
	font-size: 12px;
	font-weight: 600;
	color: var(--text3);
	padding: 2px 0 4px;
	letter-spacing: .02em;
}
.sidebar-calendar-day {
	font-size: 12px;
	color: var(--text2);
	line-height: 1;
	padding: 4px 0;
	border-radius: 4px;
	font-variant-numeric: tabular-nums;
}
.sidebar-calendar-day.is-empty {
	visibility: hidden;
}
.sidebar-calendar-day.is-today {
	background: var(--accent);
	color: #fff;
	font-weight: 700;
}

.scheduler-main-with-sidebar {
	flex: 1;
	min-width: 0;
	margin-left: var(--sidebar-w);
}

.scheduler-topbar-left {
	display: flex;
	align-items: center;
}

.scheduler-topbar-logo {
	font-family: var(--font-mono);
	font-size: 14px;
	font-weight: 600;
	letter-spacing: 0.06em;
	color: var(--accent);
}

.scheduler-topbar-logo span {
	color: var(--text3);
	font-weight: 400;
}

.scheduler-topbar-meta {
	font-size: 12px;
	color: var(--text3);
}

.scheduler-main {
	flex: 1;
	padding: 28px 24px 40px;
}

.scheduler-main-bare {
	padding-top: 36px;
}

.scheduler-main-bare.scheduler-main-compact {
	padding-top: 12px;
}

.scheduler-main-bare.scheduler-main-split {
	padding: 0;
	overflow: hidden;
	height: calc(100vh - var(--topbar-h));
	min-height: 0;
	display: flex;
	flex-direction: column;
}

.scheduler-content-split {
	flex: 1;
	min-height: 0;
	max-width: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	width: 100%;
}

.scheduler-content-home {
	padding: 0 4px;
}

/* Buttons — matches index.html */
.btn {
	font-family: var(--font);
	font-size: 12px;
	font-weight: 500;
	padding: 8px 16px;
	border-radius: var(--radius-sm);
	border: 1px solid var(--border2);
	background: var(--surface);
	color: var(--text2);
	cursor: pointer;
	letter-spacing: 0.02em;
	transition: border-color 0.12s, color 0.12s, background 0.12s, opacity 0.12s;
	white-space: nowrap;
	line-height: 1.3;
}

.btn:hover {
	border-color: var(--accent);
	color: var(--accent);
}

.btn-primary {
	background: var(--accent-btn);
	color: #ffffff;
	border-color: var(--accent-btn);
}

.btn-primary:hover {
	opacity: 0.88;
	color: #ffffff;
	border-color: var(--accent-btn);
}

.btn-lg {
	font-size: 14px;
	font-weight: 600;
	padding: 11px 22px;
	border-radius: var(--radius-sm);
}

.scheduler-content {
	width: 100%;
}

.scheduler-panel {
	background: var(--surface);
	border: 1px solid var(--border);
	border-radius: var(--radius);
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
}

.scheduler-page-title {
	font-size: 22px;
	font-weight: 700;
	color: var(--text);
	letter-spacing: -0.01em;
}

.scheduler-page-subtitle {
	font-size: 14px;
	color: var(--text2);
	margin-top: 4px;
	line-height: 1.5;
}

.scheduler-section {
	background: var(--surface);
	border: 1px solid var(--border);
	border-radius: var(--radius);
	padding: 14px 16px;
}

.scheduler-notice {
	background: var(--accent-light);
	border: 1px solid var(--border);
	border-left: 3px solid var(--accent);
	border-radius: var(--radius-sm);
	padding: 9px 12px;
	font-size: 14px;
	color: var(--text2);
}

/* View tabs (portfolio filters) */
.gain-view-tabs {
	display: flex;
	gap: 2px;
	flex-wrap: wrap;
	background: var(--surface);
	border: 1px solid var(--border);
	border-radius: var(--radius-sm);
	padding: 3px;
	width: fit-content;
	max-width: 100%;
}

.gain-view-tabs .gain-view-tab {
	font-family: inherit;
	font-size: 12px;
	padding: 5px 14px;
	border-radius: 4px;
	border: none;
	background: transparent;
	color: var(--text2);
	cursor: pointer;
	transition: all 0.12s;
	font-weight: 600;
}

.gain-view-tabs .gain-view-tab.is-active {
	background: var(--bg);
	color: var(--text);
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
}

.gain-view-tabs .gain-view-tab:not(.is-active):hover {
	background: var(--surface2);
	color: var(--text);
}

/* Home hub */
.scheduler-home {
	display: flex;
	flex-direction: column;
	gap: 20px;
}

.scheduler-home-hero {
	background: var(--surface);
	border: 1px solid var(--border);
	border-radius: var(--radius-lg);
	padding: 32px 28px 28px;
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
}

.scheduler-home-title {
	font-size: 28px;
	font-weight: 700;
	color: var(--text);
	letter-spacing: -0.02em;
	line-height: 1.2;
	margin-bottom: 8px;
}

.scheduler-home-subtitle {
	font-size: 14px;
	color: var(--text2);
	line-height: 1.55;
	margin-bottom: 28px;
}

.scheduler-home-hero-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
}

.scheduler-home-card {
	background: var(--surface);
	border: 1px solid var(--border);
	border-radius: var(--radius);
	padding: 22px 24px 24px;
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.03);
}

.scheduler-home-section-title {
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--text3);
	margin-bottom: 16px;
}

.scheduler-home-flow {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
	margin-bottom: 16px;
}

.scheduler-home-flow-step {
	display: inline-flex;
	align-items: center;
	padding: 6px 12px;
	background: var(--accent-light);
	border: 1px solid var(--border);
	border-radius: var(--radius-sm);
	font-size: 14px;
	font-weight: 600;
	color: var(--accent);
}

.scheduler-home-flow-arrow {
	font-size: 14px;
	color: var(--text3);
	font-weight: 500;
	padding: 0 2px;
}

.scheduler-home-text {
	font-size: 14px;
	color: var(--text2);
	line-height: 1.6;
	margin-bottom: 18px;
}

.scheduler-home-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}

/* Deliverables page */
.scheduler-content-deliverables {
	padding: 0 4px;
}

.scheduler-deliverables.scheduler-home {
	gap: 12px;
}

.scheduler-deliverables-hero {
	padding: 16px 20px 14px;
}

.scheduler-deliverables-hero .scheduler-home-subtitle {
	margin-bottom: 0;
}

.scheduler-deliverables .scheduler-home-card {
	padding: 14px 16px 16px;
}

.scheduler-deliverables .scheduler-home-section-title {
	margin-bottom: 10px;
}

.scheduler-deliverables .scheduler-home-text {
	margin-bottom: 10px;
}

.scheduler-deliverables .scheduler-home-subtitle {
	margin-bottom: 0;
}

.scheduler-deliverables-empty-callout {
	background: linear-gradient(135deg, #fff7ed 0%, #ffedd5 100%);
	border: 2px solid #fb923c;
	border-radius: var(--radius-lg);
	padding: 20px 24px;
	box-shadow: 0 2px 8px rgba(251, 146, 60, 0.15);
}

.scheduler-deliverables-empty-callout-title {
	font-size: 22px;
	font-weight: 700;
	color: #c2410c;
	line-height: 1.35;
	margin: 0 0 10px;
	letter-spacing: -0.01em;
}

.scheduler-deliverables-empty-callout-text {
	font-size: 15px;
	color: #9a3412;
	line-height: 1.55;
	margin: 0;
}

.scheduler-deliverables-add-highlight {
	border: 2px solid var(--accent) !important;
	background: var(--accent-light) !important;
	box-shadow: 0 0 0 4px rgba(22, 74, 127, 0.1), 0 4px 12px rgba(22, 74, 127, 0.08) !important;
}

.scheduler-deliverables-add-highlight .scheduler-home-section-title {
	color: var(--accent);
	font-size: 12px;
}

.scheduler-form-label {
	display: block;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.07em;
	text-transform: uppercase;
	color: var(--text3);
	margin-bottom: 5px;
}

.scheduler-form-hint {
	font-size: 14px;
	color: var(--text2);
	line-height: 1.55;
	margin-top: 12px;
}

.scheduler-deliverable-stream-title {
	font-size: 12px;
	font-weight: 600;
	color: #164a7f;
	margin: 0 0 4px;
	padding-bottom: 8px;
	border-bottom: 2px solid #c5daf0;
}

.scheduler-deliverable-stream-block {
	margin-bottom: 12px;
}

.scheduler-deliverable-stream-block:last-child {
	margin-bottom: 0;
}

.scheduler-form-hint-warn {
	padding: 9px 12px;
	background: var(--amber-bg);
	border: 1px solid var(--border);
	border-left: 3px solid var(--amber);
	border-radius: var(--radius-sm);
	color: var(--amber);
	margin-top: 0;
}

.form-input,
.form-select {
	width: 100%;
	background: var(--surface2);
	border: 1px solid var(--border2);
	border-radius: var(--radius-sm);
	color: var(--text);
	font-family: var(--font);
	font-size: 14px;
	padding: 8px 11px;
	outline: none;
	transition: border-color 0.12s;
}

.form-input:focus,
.form-select:focus {
	border-color: var(--accent);
}

.form-select option {
	background: var(--surface2);
}

.scheduler-form-select-narrow {
	max-width: 20rem;
}

.scheduler-form-row {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	align-items: flex-end;
}

.scheduler-form-field-grow {
	flex: 1;
	min-width: 200px;
}

.scheduler-radio-row {
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
}

.scheduler-radio-label {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: 14px;
	color: var(--text2);
	cursor: pointer;
}

.scheduler-message {
	padding: 9px 12px;
	border-radius: var(--radius-sm);
	font-size: 14px;
	border: 1px solid var(--border);
}

.scheduler-message.is-success {
	background: var(--green-bg);
	color: var(--green);
	border-color: var(--border);
}

.scheduler-message.is-error {
	background: var(--red-bg);
	color: var(--red);
	border-color: var(--border);
}

.scheduler-deliverable-list {
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.scheduler-deliverable-item {
	background: var(--surface);
	border: 1px solid var(--border);
	border-radius: var(--radius);
	overflow: hidden;
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.03);
}

.scheduler-deliverable-header {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 12px 16px;
	cursor: pointer;
	background: var(--surface);
	transition: background 0.12s;
}

.scheduler-component-schedule-actions {
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-end;
	align-items: center;
	gap: 8px;
	margin-left: auto;
}

.scheduler-deliverable-header:hover {
	background: var(--surface2);
}

.scheduler-deliverable-item.is-expanded .scheduler-deliverable-header {
	border-bottom: 1px solid var(--border);
}

.scheduler-deliverable-header-main {
	display: flex;
	align-items: center;
	gap: 10px;
	min-width: 0;
	flex: 1;
}

.scheduler-deliverable-chevron {
	font-size: 12px;
	color: var(--text3);
	flex-shrink: 0;
}

.scheduler-deliverable-title {
	font-size: 15px;
	font-weight: 600;
	color: var(--text);
	margin: 0;
}

.scheduler-deliverable-meta {
	margin-left: 8px;
	font-size: 12px;
	font-weight: 500;
	color: var(--text3);
}

.scheduler-deliverable-actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
}

.scheduler-deliverable-badge {
	font-size: 12px;
	font-weight: 600;
	padding: 3px 8px;
	background: var(--surface2);
	border: 1px solid var(--border);
	border-radius: var(--radius-sm);
	color: var(--text2);
}

.scheduler-deliverable-rename {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
	flex: 1;
}

.scheduler-deliverable-rename .form-input {
	max-width: 18rem;
}

.scheduler-deliverable-body {
	padding: 16px;
}

.scheduler-deliverable-subsection {
	background: var(--surface2);
	border: 1px solid var(--border);
	border-radius: var(--radius-sm);
	padding: 12px 14px;
	margin-bottom: 14px;
}

.scheduler-empty-state {
	text-align: center;
	padding: 32px 16px;
	color: var(--text3);
	font-size: 14px;
}

.btn-sm {
	font-size: 12px;
	padding: 5px 10px;
}

.btn-danger {
	color: var(--red);
	border-color: var(--border2);
}

.btn-danger:hover:not(:disabled) {
	border-color: var(--red);
	color: var(--red);
}

.btn:disabled,
.btn-primary:disabled {
	opacity: 0.45;
	cursor: not-allowed;
}

/* Legacy blocks inside deliverables — align with design system */
.scheduler-deliverables .bg-indigo-50,
.scheduler-deliverables .bg-gray-50 {
	background: var(--surface2) !important;
	border: 1px solid var(--border);
	border-radius: var(--radius-sm);
}

.scheduler-deliverables .bg-indigo-200 {
	background: var(--accent-light) !important;
	color: var(--accent) !important;
	border: 1px solid var(--border);
}

.scheduler-deliverables h4.font-semibold {
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.07em;
	text-transform: uppercase;
	color: var(--text3);
}

.scheduler-deliverables .draggable-task {
	background: var(--surface);
	border-color: var(--border);
}

.scheduler-deliverables button.bg-green-600,
.scheduler-deliverables button.bg-blue-600,
.scheduler-deliverables button.bg-indigo-600 {
	background: var(--accent-btn) !important;
	color: #fff !important;
	border: 1px solid var(--accent-btn) !important;
	border-radius: var(--radius-sm) !important;
	font-size: 12px !important;
	font-weight: 500 !important;
	padding: 5px 12px !important;
}

.scheduler-deliverables button.bg-red-600 {
	background: transparent !important;
	color: var(--red) !important;
	border: 1px solid var(--border2) !important;
	border-radius: var(--radius-sm) !important;
	font-size: 12px !important;
	padding: 5px 10px !important;
}

.scheduler-deliverables button.bg-red-600:hover:not(:disabled) {
	border-color: var(--red) !important;
}

/* Administration (field values) page */
.scheduler-admin.scheduler-home {
	gap: 12px;
}

.scheduler-admin-hero {
	padding: 16px 20px 14px;
}

.scheduler-admin-hero .scheduler-home-subtitle {
	margin-bottom: 0;
}

.scheduler-admin .scheduler-home-subtitle {
	margin-bottom: 0;
}

.scheduler-admin-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 12px;
}

@media (min-width: 768px) {
	.scheduler-admin-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (min-width: 1024px) {
	.scheduler-admin-grid {
		grid-template-columns: repeat(3, 1fr);
	}
}

.scheduler-admin .scheduler-home-card {
	padding: 14px 16px 16px;
}

.scheduler-admin-card-full {
	grid-column: 1 / -1;
}

.scheduler-data-replace-form {
	display: grid;
	grid-template-columns: 1fr;
	gap: 12px;
	margin-bottom: 12px;
}

@media (min-width: 768px) {
	.scheduler-data-replace-form {
		grid-template-columns: 1fr 1fr auto;
		align-items: end;
	}
}

.scheduler-data-replace-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.scheduler-data-replace-results {
	margin-top: 8px;
}

.scheduler-data-replace-table td,
.scheduler-data-replace-table th {
	font-size: 13px;
}

.scheduler-data-replace-examples {
	color: var(--text3, #6b7280);
	max-width: 320px;
}

.scheduler-admin .scheduler-home-card .scheduler-home-text {
	margin-bottom: 10px;
}

.scheduler-admin .scheduler-home-section-title {
	margin-bottom: 10px;
}

.scheduler-admin-add-row {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	align-items: flex-end;
	margin-bottom: 14px;
}

.scheduler-admin-add-row .form-input {
	flex: 1;
	min-width: 140px;
}

.scheduler-admin-list-count {
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.07em;
	text-transform: uppercase;
	color: var(--text3);
	margin-bottom: 8px;
}

.scheduler-admin-list {
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.scheduler-admin-list-item {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
	padding: 8px 10px;
	background: var(--surface2);
	border: 1px solid var(--border);
	border-radius: var(--radius-sm);
}

.scheduler-admin-list-item .form-input {
	flex: 1;
	min-width: 120px;
}

.scheduler-admin-list-item > span {
	font-size: 14px;
	font-weight: 500;
	color: var(--text);
	min-width: 0;
	word-break: break-word;
}

.scheduler-admin-list-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	flex-shrink: 0;
}

.scheduler-admin-list-empty {
	font-size: 14px;
	color: var(--text3);
	font-style: italic;
	margin: 0;
}

/* Existing Schedules — By Job split layout */
.scheduler-job-solo,
.scheduler-job-solo-detail {
	display: contents;
}

.scheduler-byjob-layout {
	display: grid;
	grid-template-columns: minmax(220px, 280px) minmax(0, 1fr);
	flex: 1;
	min-height: 0;
	overflow: hidden;
	background: #f5f4f0;
}

.scheduler-byjob-list-wrap {
	background: #f5f4f0;
	overflow: hidden;
	display: flex;
	flex-direction: column;
	min-height: 0;
}

.scheduler-byjob-list-header {
	flex-shrink: 0;
	padding: 12px 12px 8px;
	border-bottom: 1px solid var(--border);
	background: #f5f4f0;
}

.scheduler-byjob-tabs {
	width: 100%;
	max-width: 100%;
}

.scheduler-byjob-tabs .gain-view-tab {
	padding: 5px 8px;
	font-size: 11px;
}

.scheduler-byjob-list {
	overflow-y: auto;
	padding: 8px 0 12px 8px;
	flex: 1;
	min-height: 0;
	background: #f5f4f0;
}

.scheduler-byjob-group {
	margin-bottom: 10px;
}

.scheduler-byjob-group-label {
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--text3);
	padding: 6px 12px 4px;
}

.scheduler-byjob-item {
	display: block;
	width: 100%;
	text-align: left;
	padding: 6px 12px;
	margin: 0 0 2px;
	border: none;
	border-radius: 0;
	background: transparent;
	cursor: pointer;
	transition: background 0.12s, color 0.12s;
}

.scheduler-byjob-item:hover:not(.is-active) {
	background: var(--surface);
}

.scheduler-byjob-item.is-active {
	background: var(--surface);
}

.scheduler-byjob-item.is-active .scheduler-byjob-item-title {
	color: var(--accent);
}

.scheduler-byjob-item.is-completed {
	opacity: 0.55;
}

.scheduler-byjob-item.is-completed.is-active {
	opacity: 1;
}

.scheduler-byjob-item-title {
	font-size: 13px;
	font-weight: 500;
	color: var(--text2);
	line-height: 1.35;
	transition: color 0.12s;
}

.scheduler-byjob-empty {
	padding: 16px 12px;
	font-size: 13px;
	color: var(--text3);
	line-height: 1.4;
}

.scheduler-byjob-detail {
	overflow: hidden;
	display: flex;
	flex-direction: column;
	min-width: 0;
	min-height: 0;
	background: #f5f4f0;
}

.scheduler-byjob-layout.has-job-selected .scheduler-byjob-detail {
	background: var(--surface);
}

.scheduler-byjob-detail-empty {
	flex: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 48px 24px;
	color: var(--text3);
	text-align: center;
	font-size: 14px;
	background: #f5f4f0;
}

.scheduler-byjob-detail-scroll {
	flex: 1;
	min-height: 0;
	display: grid;
	grid-template-columns: minmax(0, 1fr) 340px;
	overflow-y: auto;
	overflow-x: hidden;
	align-items: start;
	background: var(--surface);
	padding: 0;
}

.scheduler-byjob-main {
	min-width: 0;
	padding: 10px 24px 32px 20px;
}

.scheduler-byjob-page-header {
	padding: 0 0 8px;
	margin-bottom: 0;
	border-bottom: 1px solid var(--border);
	background: transparent;
	border-radius: 0;
	box-shadow: none;
}

.scheduler-byjob-page-header .scheduler-home-title {
	font-size: 22px;
	margin-bottom: 0;
}

.scheduler-view-snapshot-link {
	display: inline-block;
	margin-top: 4px;
	font-size: 12px;
	font-weight: 500;
	color: var(--accent, #4f46e5);
	text-decoration: none;
	line-height: 1.2;
}

.scheduler-view-snapshot-link:hover {
	text-decoration: underline;
	color: #3730a3;
}

.scheduler-byjob-main .scheduler-job-products {
	margin-top: 4px;
}

.scheduler-add-task-panel {
	margin-top: 4px;
	padding: 14px 20px 16px;
	border-top: 1px solid var(--border);
}

.scheduler-add-task-panel.is-open {
	padding-bottom: 18px;
}

.scheduler-add-task-toggle {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 6px 4px 6px 2px;
	border: none;
	border-radius: 6px;
	background: none;
	color: var(--accent, #4f46e5);
	font-size: 13px;
	font-weight: 600;
	cursor: pointer;
	line-height: 1.4;
}

.scheduler-add-task-toggle:hover {
	color: #3730a3;
}

.scheduler-add-task-toggle:hover .scheduler-add-task-toggle-icon {
	background: #e0e7ff;
	border-color: #a5b4fc;
}

.scheduler-add-task-toggle-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 22px;
	height: 22px;
	border-radius: 6px;
	border: 1px solid #c7d2fe;
	background: #eef2ff;
	color: var(--accent, #4f46e5);
	font-size: 16px;
	font-weight: 700;
	line-height: 1;
}

.scheduler-add-task-form {
	margin-top: 12px;
}

.scheduler-byjob-sidebar {
	border-left: 1px solid var(--border);
	background: #f5f4f0;
	padding: 8px;
	min-width: 0;
	min-height: 100%;
	position: sticky;
	top: 0;
	align-self: stretch;
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.scheduler-byjob-sidebar .scheduler-job-summary {
	margin-bottom: 0 !important;
	padding: 0;
	overflow: hidden;
}

.scheduler-byjob-detail-scroll .scheduler-home {
	gap: 6px;
}

.scheduler-byjob-detail-scroll .scheduler-home-hero {
	padding: 16px 18px 14px;
}

@media (max-width: 1100px) {
	.scheduler-byjob-detail-scroll {
		grid-template-columns: 1fr;
	}

	.scheduler-byjob-sidebar {
		border-left: none;
		border-top: 1px solid var(--border);
		position: static;
	}
}

@media (max-width: 900px) {
	.scheduler-byjob-layout {
		grid-template-columns: 1fr;
		grid-template-rows: minmax(180px, 36vh) minmax(0, 1fr);
	}

	.scheduler-byjob-list-wrap {
		border-bottom: 1px solid var(--border);
	}
}

.scheduler-content-wide {
	padding: 0 4px;
}

/* Legacy portfolio list styles (kept for any remaining references) */
.scheduler-portfolio-list {
	display: flex;
	flex-direction: column;
	gap: 0;
}

.scheduler-portfolio-card {
	background: transparent;
	border: none;
	border-bottom: 1px solid var(--border);
	border-radius: 0;
	padding: 8px 0;
	box-shadow: none;
}

.scheduler-portfolio-card:first-child {
	padding-top: 0;
}

.scheduler-portfolio-card:last-child {
	border-bottom: none;
	padding-bottom: 0;
}

.scheduler-portfolio-card.is-completed {
	background: transparent;
}

.scheduler-portfolio-card > .flex {
	align-items: center;
	gap: 12px;
}

.scheduler-portfolio-card h3,
.scheduler-portfolio-job-title {
	font-size: 14px;
	font-weight: 600;
	color: var(--text);
	margin: 0 0 2px;
	line-height: 1.3;
}

.scheduler-portfolio-card p {
	font-size: 12px;
	color: var(--text2);
	line-height: 1.35;
	margin: 0;
}

.scheduler-portfolio-card p + p {
	margin-top: 2px;
}

.scheduler-portfolio-card-actions,
.scheduler-portfolio-row-actions {
	display: flex;
	flex-direction: row;
	flex-wrap: nowrap;
	align-items: stretch;
	gap: 6px;
	flex-shrink: 0;
}

.scheduler-portfolio-card-actions,
.scheduler-portfolio-row-actions {
	min-width: 15rem;
}

.scheduler-portfolio-card-actions .btn,
.scheduler-portfolio-row-actions .btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	text-align: center;
	white-space: nowrap;
}

.scheduler-portfolio-card-actions .btn-portfolio-standard,
.scheduler-portfolio-row-actions .btn-portfolio-standard {
	flex: 0 0 5rem;
	width: 5rem;
	min-width: 5rem;
	padding-left: 10px;
	padding-right: 10px;
}

.scheduler-portfolio-card-actions .btn-portfolio-status,
.scheduler-portfolio-row-actions .btn-portfolio-status {
	flex: 0 0 auto;
	min-width: 7.75rem;
	padding-left: 14px;
	padding-right: 14px;
}

/* On narrow screens, drop the job action buttons below the job details */
@media (max-width: 900px) {
	.scheduler-portfolio-card > .flex {
		flex-direction: column;
	}
	.scheduler-portfolio-card > .flex > .scheduler-portfolio-card-actions {
		margin-top: 8px;
	}
	.scheduler-portfolio-card-actions {
		min-width: 0;
		flex-wrap: wrap;
	}
}

.scheduler-portfolio-groups {
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.scheduler-portfolio-group {
	background: transparent;
	border: 1px solid var(--border);
	border-radius: var(--radius-sm);
	overflow: hidden;
	box-shadow: none;
}

.scheduler-portfolio-group-header {
	padding: 8px 12px;
	background: var(--surface2);
	border-bottom: 1px solid var(--border);
}

.scheduler-portfolio-group-header h2 {
	font-size: 14px;
	font-weight: 600;
	color: var(--text);
	margin: 0;
}

.scheduler-portfolio-group-body {
	padding: 8px 10px;
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.scheduler-portfolio-row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 8px 10px;
	background: var(--surface2);
	border: 1px solid var(--border);
	border-radius: var(--radius-sm);
}

.scheduler-portfolio-row-title {
	font-size: 14px;
	font-weight: 600;
	color: var(--text);
	margin: 0 0 2px;
}

.scheduler-portfolio-row-meta {
	font-size: 12px;
	color: var(--text3);
	margin: 0;
}

.scheduler-calendar-panel {
	background: var(--surface);
	border: 1px solid var(--border);
	border-radius: var(--radius-sm);
	overflow: hidden;
}

.scheduler-portfolio .scheduler-calendar-panel .border-indigo-100,
.scheduler-portfolio .scheduler-calendar-panel .bg-indigo-50 {
	border-color: var(--border) !important;
	background: var(--surface2) !important;
}

.scheduler-portfolio .scheduler-calendar-panel .text-indigo-800 {
	color: var(--text2) !important;
}

.scheduler-data-table-wrap {
	border: 1px solid var(--border);
	border-radius: var(--radius-sm);
	overflow: hidden;
}

.scheduler-data-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 14px;
}

.scheduler-data-table thead tr {
	background: var(--surface2);
}

.scheduler-data-table th {
	padding: 8px 12px;
	text-align: left;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--text3);
	border-bottom: 1px solid var(--border);
}

.scheduler-data-table td {
	padding: 8px 12px;
	color: var(--text2);
	border-bottom: 1px solid var(--border);
}

.scheduler-data-table tbody tr:nth-child(even) {
	background: var(--surface2);
}

.scheduler-data-table tbody tr:hover {
	background: var(--accent-light);
}

/* Add / edit job page */
.scheduler-job .scheduler-home-hero {
	padding: 18px 20px 16px;
}

.scheduler-job .scheduler-home-title {
	font-size: 24px;
	margin-bottom: 0;
}

.scheduler-job .scheduler-home-subtitle {
	margin-bottom: 0;
	margin-top: 4px;
}

.scheduler-job .scheduler-home-section-title {
	margin-bottom: 8px;
}

.scheduler-job-hero-setup {
	display: grid;
	grid-template-columns: 1fr;
	gap: 16px 20px;
	margin-top: 14px;
	padding-top: 14px;
	border-top: 1px solid var(--border);
}

@media (min-width: 900px) {
	.scheduler-job-hero-setup {
		grid-template-columns: 1fr 1fr;
		align-items: start;
	}
}

.scheduler-job-detail-fields {
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.scheduler-job-detail-row {
	display: grid;
	grid-template-columns: minmax(6.5rem, 8.5rem) minmax(0, 1fr);
	gap: 4px 10px;
	align-items: center;
}

.scheduler-job-detail-row .scheduler-form-label {
	margin-bottom: 0;
	line-height: 1.2;
	font-size: 11px;
}

.scheduler-job-detail-row .form-input,
.scheduler-job-detail-row .form-select {
	width: 100%;
	min-width: 0;
	padding-top: 6px;
	padding-bottom: 6px;
}

.scheduler-campaign-options {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.scheduler-campaign-option {
	display: flex;
	align-items: flex-start;
	gap: 8px;
	cursor: pointer;
}

.scheduler-campaign-option input[type="radio"] {
	margin-top: 3px;
	flex-shrink: 0;
}

.scheduler-campaign-option-copy {
	display: flex;
	flex-direction: column;
	gap: 1px;
	min-width: 0;
}

.scheduler-campaign-option-title {
	font-size: 14px;
	font-weight: 700;
	color: var(--text);
	line-height: 1.25;
}

.scheduler-campaign-option-desc {
	font-size: 12px;
	font-weight: 400;
	color: var(--text2);
	line-height: 1.35;
}

.scheduler-batch-options {
	display: flex;
	flex-direction: column;
	gap: 8px;
	margin: 12px 0 4px;
	padding-top: 10px;
	border-top: 1px solid var(--border);
}

.scheduler-batch-options-inline {
	margin: 0 0 12px;
	padding-top: 0;
	border-top: none;
}

.scheduler-batch-count {
	display: flex;
	align-items: center;
	gap: 10px;
	padding-left: 24px;
}

.scheduler-batch-count-label {
	font-size: 13px;
	font-weight: 600;
	color: var(--text);
}

.scheduler-batch-count-input {
	width: 4.5rem;
}

.scheduler-component-details-batch {
	display: flex;
	flex-direction: column;
	gap: 4px;
	min-width: 0;
}

.scheduler-job-components {
	margin-top: 12px;
	padding-top: 12px;
	border-top: 1px solid var(--border);
}

.scheduler-job-components .scheduler-home-text {
	margin-bottom: 8px;
	font-size: 13px;
	line-height: 1.4;
}

.scheduler-component-columns {
	display: grid;
	grid-template-columns: 1fr;
	gap: 10px 14px;
}

@media (min-width: 640px) {
	.scheduler-component-columns {
		grid-template-columns: 1fr 1fr;
		align-items: start;
	}
}

.scheduler-component-column-title {
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.07em;
	text-transform: uppercase;
	color: var(--text3);
	margin: 0 0 6px;
	padding-bottom: 4px;
	border-bottom: 1px solid var(--border);
}

.scheduler-component-column-empty {
	margin: 0;
	font-size: 12px;
	font-style: italic;
	color: var(--text3);
}

.scheduler-component-check-list {
	display: flex;
	flex-direction: column;
	gap: 4px;
}

.scheduler-component-check-block {
	display: flex;
	flex-direction: column;
	gap: 3px;
}

.scheduler-component-check-row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 4px 8px;
}

.scheduler-component-check {
	display: flex;
	align-items: center;
	gap: 6px;
	font-size: 13px;
	line-height: 1.25;
	color: var(--text);
	cursor: pointer;
}

.scheduler-component-check input[type="checkbox"] {
	flex-shrink: 0;
}

.scheduler-component-check.is-locked {
	opacity: 0.75;
	cursor: default;
}

.scheduler-component-check.is-locked input[type="checkbox"] {
	cursor: not-allowed;
}

.scheduler-component-add-another {
	border: none;
	background: transparent;
	padding: 0;
	font-size: 11px;
	font-weight: 600;
	color: var(--accent);
	cursor: pointer;
	text-decoration: underline;
	text-underline-offset: 2px;
}

.scheduler-component-add-another:hover {
	color: var(--text);
}

.scheduler-component-add-another:disabled {
	opacity: 0.5;
	cursor: not-allowed;
}

.scheduler-component-instance-list {
	list-style: none;
	margin: 0;
	padding: 0 0 0 1.25rem;
	display: flex;
	flex-direction: column;
	gap: 2px;
}

.scheduler-component-instance {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 6px;
	padding: 2px 6px;
	background: var(--surface2, #f3f4f6);
	border: 1px solid var(--border);
	border-radius: var(--radius-sm);
	font-size: 12px;
	color: var(--text);
}

.scheduler-component-instance-remove {
	border: none;
	background: transparent;
	padding: 0 2px;
	font-size: 11px;
	line-height: 1;
	color: var(--text3);
	cursor: pointer;
}

.scheduler-component-instance-remove:hover {
	color: var(--c-red, #dc2626);
}

.scheduler-component-instance-remove:disabled {
	opacity: 0.5;
	cursor: not-allowed;
}

@media (max-width: 640px) {
	.scheduler-job-detail-row {
		grid-template-columns: 1fr;
		gap: 2px;
	}
}

.scheduler-job-form-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 14px;
}

.scheduler-job-form-grid .scheduler-form-field-span2 {
	grid-column: 1 / -1;
}

@media (min-width: 768px) {
	.scheduler-job-form-grid {
		grid-template-columns: repeat(3, 1fr);
	}
}

.scheduler-admin-menu {
	position: absolute;
	right: 0;
	top: calc(100% + 6px);
	min-width: 10rem;
	background: var(--surface);
	border: 1px solid var(--border);
	border-radius: var(--radius-sm);
	box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08);
	z-index: 50;
	overflow: hidden;
}

.scheduler-admin-menu button {
	display: block;
	width: 100%;
	text-align: left;
	padding: 8px 12px;
	font-family: var(--font);
	font-size: 12px;
	font-weight: 500;
	color: var(--text2);
	background: transparent;
	border: none;
	cursor: pointer;
}

.scheduler-admin-menu button:hover {
	background: var(--surface2);
	color: var(--text);
}

.scheduler-job-deliverables .scheduler-deliverable-subsection {
	margin-bottom: 10px;
}

.scheduler-job-deliverables .scheduler-deliverable-stream-title {
	font-size: 12px;
	font-weight: 600;
	color: #164a7f;
	border-bottom-color: #c5daf0;
}

.scheduler-job-toolbar .gain-view-tabs {
	margin-right: 4px;
}

.scheduler-job .bg-indigo-50,
.scheduler-job .bg-gray-50,
.scheduler-job .border-indigo-200,
.scheduler-job .border-indigo-300 {
	background: var(--surface2) !important;
	border-color: var(--border) !important;
}

.scheduler-job button.bg-indigo-600,
.scheduler-job button.bg-blue-600,
.scheduler-job button.bg-green-600,
.scheduler-job button.bg-purple-600 {
	background: var(--accent-btn) !important;
	color: #fff !important;
	border: 1px solid var(--accent-btn) !important;
	border-radius: var(--radius-sm) !important;
	font-size: 12px !important;
	font-weight: 500 !important;
	padding: 6px 12px !important;
}

.scheduler-job .bg-indigo-600.text-white.px-3 {
	background: var(--accent-light) !important;
	color: var(--accent) !important;
	border: 1px solid var(--border) !important;
}

.scheduler-job .border-2.border-indigo-200,
.scheduler-job .border-2.border-purple-200 {
	border: 1px solid var(--border) !important;
	border-radius: var(--radius) !important;
	overflow: hidden;
}

.scheduler-job .bg-indigo-600.text-white.px-4.py-2,
.scheduler-job .bg-purple-600.text-white {
	background: var(--surface2) !important;
	color: var(--text) !important;
	border-bottom: 1px solid var(--border) !important;
}

.scheduler-job .bg-indigo-600.text-white.px-4.py-2:hover,
.scheduler-job .bg-purple-600.text-white:hover {
	background: var(--surface3) !important;
}

.scheduler-job .bg-purple-600 {
	background: var(--surface2) !important;
	color: var(--text) !important;
}

.scheduler-job .bg-purple-100 {
	background: var(--surface2) !important;
}

.scheduler-job .text-purple-900,
.scheduler-job .text-indigo-700,
.scheduler-job .text-indigo-900 {
	color: var(--text2) !important;
}

.scheduler-job table thead tr.bg-indigo-900,
.scheduler-job table thead tr.bg-purple-100 {
	background: var(--surface2) !important;
}

.scheduler-job table thead th {
	color: var(--text3) !important;
	font-size: 12px !important;
	font-weight: 600 !important;
	letter-spacing: 0.06em !important;
	text-transform: uppercase !important;
}

.scheduler-job-summary {
	background: var(--surface);
	border: 1px solid var(--border);
	border-radius: var(--radius-lg);
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
	overflow: hidden;
	margin-bottom: 16px;
	padding: 0;
}

.scheduler-job-summary-top {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
	padding: 10px 12px;
	border-bottom: 1px solid var(--border);
}

.scheduler-job-summary-title {
	font-size: 13px;
	font-weight: 700;
	color: var(--text);
}

.scheduler-job-summary-form-actions {
	display: flex;
	align-items: center;
	gap: 8px;
	margin-left: auto;
	flex-shrink: 0;
}

.scheduler-job-summary-edit-btn {
	background: none;
	border: none;
	color: var(--text3);
	cursor: pointer;
	font-size: 15px;
	line-height: 1;
	padding: 4px 6px;
	border-radius: var(--radius-sm);
	flex-shrink: 0;
}

.scheduler-job-summary-edit-btn:hover {
	color: var(--text);
	background: var(--surface2);
}

.scheduler-job-summary-edit-btn svg {
	display: block;
}

.scheduler-job-summary-body {
	padding: 0;
}

.scheduler-job-summary-body > .scheduler-kv-list,
.scheduler-job-summary-body > .scheduler-form-hint {
	padding: 10px 12px;
}

.scheduler-job-summary-section {
	padding: 10px 12px;
	border-top: 1px solid var(--border);
}

.scheduler-job-summary-section-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
	margin-bottom: 4px;
}

.scheduler-job-summary-section-title {
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--text3);
	margin-bottom: 4px;
}

.scheduler-job-summary-section-head .scheduler-job-summary-section-title {
	margin-bottom: 0;
}

.scheduler-job-summary-components-edit {
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.scheduler-job-summary-components-current {
	margin-bottom: 0;
}

.scheduler-job-summary-components-hint {
	margin: 0;
	font-size: 12px;
	line-height: 1.4;
	color: var(--text2);
}

.scheduler-job-summary-components-add-title {
	margin-top: 4px;
	margin-bottom: 2px;
}

.scheduler-job-summary-component-delete {
	border: none;
	background: none;
	padding: 0;
	margin: 0;
	font-size: 12px;
	font-weight: 600;
	color: #b91c1c;
	cursor: pointer;
	text-decoration: underline;
	text-underline-offset: 2px;
}

.scheduler-job-summary-component-delete:hover:not(:disabled) {
	color: #7f1d1d;
}

.scheduler-job-summary-component-delete:disabled {
	color: var(--text3);
	cursor: not-allowed;
	text-decoration: none;
}

.scheduler-job-summary-components-edit .scheduler-component-columns {
	grid-template-columns: 1fr;
	gap: 12px;
}

.scheduler-job-summary-components-edit .scheduler-component-check {
	font-size: 12px;
}

.scheduler-job-summary-empty {
	font-size: 13px;
	color: var(--text3);
	padding: 4px 0;
}

.scheduler-kv-qty {
	font-variant-numeric: tabular-nums;
	color: var(--text);
	font-weight: 600;
	text-align: right;
	flex-shrink: 0;
}

.scheduler-job-summary .scheduler-form-hint {
	margin-top: 0;
	font-size: 12px;
	border-top: 1px solid var(--border);
}

.scheduler-kv-list {
	display: flex;
	flex-direction: column;
	gap: 0;
}

.scheduler-kv-row {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 10px;
	padding: 1px 0;
	font-size: 13px;
	line-height: 1.25;
}

.scheduler-kv-row-edit {
	align-items: center;
}

.scheduler-kv-label {
	color: var(--text3);
	flex-shrink: 0;
}

.scheduler-kv-value {
	color: var(--text);
	font-weight: 500;
	text-align: right;
	min-width: 0;
	word-break: break-word;
}

.scheduler-kv-input {
	font-size: 13px;
	padding: 4px 8px;
	min-width: 0;
	flex: 1;
	max-width: 58%;
	text-align: right;
}

.scheduler-kv-select {
	cursor: pointer;
	appearance: auto;
}

.scheduler-job-summary.is-editing .scheduler-kv-input,
.scheduler-job-summary.is-editing .scheduler-kv-select {
	background: #fff;
}

.scheduler-job-deliverables {
	padding: 12px 14px;
	margin-bottom: 12px !important;
}

.scheduler-job-deliverables .scheduler-deliverable-subsection {
	padding: 8px 10px;
	margin-bottom: 8px;
}

.scheduler-job-deliverables .scheduler-home-section-title {
	margin-bottom: 8px;
}

.scheduler-job-deliverables .scheduler-deliverable-stream-block {
	margin-bottom: 6px;
}

.scheduler-component-details {
	display: flex;
	flex-direction: column;
	gap: 0;
}

.scheduler-component-details-header {
	display: none;
}

@media (min-width: 768px) {
	.scheduler-component-details-header {
		display: grid;
		grid-template-columns: minmax(5.5rem, 8rem) minmax(8.5rem, 10.5rem) minmax(0, 1fr);
		gap: 8px 20px;
		align-items: end;
		margin-bottom: 4px;
		padding: 0 2px 4px;
		font-size: 11px;
		font-weight: 600;
		letter-spacing: 0.04em;
		text-transform: uppercase;
		color: var(--text3);
		border-bottom: 1px solid var(--border);
	}

	.scheduler-component-details-header > span {
		min-width: 0;
		line-height: 1.25;
	}

	.scheduler-component-details-header.is-startup {
		grid-template-columns: 5.75rem minmax(5.5rem, 8rem) minmax(8.5rem, 10.5rem) minmax(0, 1fr);
	}

	.scheduler-component-details-header.is-refresh {
		grid-template-columns: 6.75rem minmax(5.5rem, 8rem) minmax(8.5rem, 10.5rem) minmax(0, 1fr);
	}

	.scheduler-component-details-header.is-batch {
		grid-template-columns: minmax(5.5rem, 8rem) 6.5rem minmax(8.5rem, 10.5rem) minmax(0, 1fr);
	}

	.scheduler-component-details-header.is-startup.is-batch {
		grid-template-columns: 5.75rem minmax(5.5rem, 8rem) 6.5rem minmax(8.5rem, 10.5rem) minmax(0, 1fr);
	}

	.scheduler-component-details-header.is-refresh.is-batch {
		grid-template-columns: 6.75rem minmax(5.5rem, 8rem) 6.5rem minmax(8.5rem, 10.5rem) minmax(0, 1fr);
	}
}

.scheduler-component-details-row {
	padding: 6px 0;
	border-bottom: 1px solid var(--border);
}

.scheduler-component-details-row:last-child {
	border-bottom: none;
	padding-bottom: 0;
}

.scheduler-component-details-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 6px;
	align-items: start;
}

@media (min-width: 768px) {
	.scheduler-component-details-grid {
		grid-template-columns: minmax(5.5rem, 8rem) minmax(8.5rem, 10.5rem) minmax(0, 1fr);
		gap: 6px 20px;
	}

	.scheduler-component-details-grid.is-startup {
		grid-template-columns: 5.75rem minmax(5.5rem, 8rem) minmax(8.5rem, 10.5rem) minmax(0, 1fr);
	}

	.scheduler-component-details-grid.is-refresh {
		grid-template-columns: 6.75rem minmax(5.5rem, 8rem) minmax(8.5rem, 10.5rem) minmax(0, 1fr);
	}

	.scheduler-component-details-grid.is-batch {
		grid-template-columns: minmax(5.5rem, 8rem) 6.5rem minmax(8.5rem, 10.5rem) minmax(0, 1fr);
	}

	.scheduler-component-details-grid.is-startup.is-batch {
		grid-template-columns: 5.75rem minmax(5.5rem, 8rem) 6.5rem minmax(8.5rem, 10.5rem) minmax(0, 1fr);
	}

	.scheduler-component-details-grid.is-refresh.is-batch {
		grid-template-columns: 6.75rem minmax(5.5rem, 8rem) 6.5rem minmax(8.5rem, 10.5rem) minmax(0, 1fr);
	}
}

.scheduler-component-details-startup,
.scheduler-component-details-lead {
	display: flex;
	align-items: center;
	gap: 6px;
}

.scheduler-component-details-lead-link {
	border: none;
	background: none;
	padding: 0;
	margin: 0;
	font-size: 12px;
	font-weight: 600;
	color: var(--accent, #4f46e5);
	cursor: pointer;
	text-decoration: underline;
	text-underline-offset: 2px;
	line-height: 1.2;
}

.scheduler-component-details-lead-link:hover:not(:disabled) {
	color: #3730a3;
}

.scheduler-component-details-lead-link:disabled {
	color: var(--text3);
	cursor: not-allowed;
	text-decoration: none;
}

@media (min-width: 768px) {
	.scheduler-component-details-startup,
	.scheduler-component-details-lead {
		justify-content: center;
		padding-top: 4px;
	}
}

.scheduler-component-details-name {
	display: flex;
	flex-direction: column;
	gap: 1px;
	min-width: 0;
	padding-top: 2px;
}

.scheduler-component-details-name-label {
	font-size: 13px;
	font-weight: 600;
	color: var(--text);
	line-height: 1.25;
}

.scheduler-component-details-data {
	font-size: 11px;
	color: var(--text3);
	line-height: 1.2;
}

.scheduler-component-details-mobile-label {
	display: block;
	font-size: 11px;
	font-weight: 600;
	color: var(--text3);
	margin-bottom: 2px;
}

@media (min-width: 768px) {
	.scheduler-component-details-mobile-label {
		display: none;
	}
}

.scheduler-component-details-input {
	width: 100%;
	min-width: 0;
	padding: 5px 8px;
	border: 1px solid var(--border);
	border-radius: var(--radius-sm);
	background: var(--surface);
	color: var(--text);
	font-size: 13px;
	line-height: 1.25;
}

.scheduler-component-details-input:focus {
	outline: none;
	border-color: var(--accent);
	box-shadow: 0 0 0 2px rgba(22, 74, 127, 0.12);
}

.scheduler-component-details-input:disabled {
	background: var(--surface2);
	opacity: 0.7;
}

.scheduler-component-details-input.is-qty {
	width: 4.25rem;
}

.scheduler-component-details-input.is-qty-solo {
	width: 5.5rem;
}

.scheduler-component-details-type-list {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 4px 10px;
}

.scheduler-component-details-type {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	font-size: 13px;
	color: var(--text);
	cursor: pointer;
}

.scheduler-component-details-empty {
	font-size: 13px;
	color: var(--text3);
}

.scheduler-component-refresh-lead {
	margin-top: 6px;
	padding: 8px 10px;
	background: var(--surface2);
	border: 1px solid var(--border);
	border-radius: var(--radius-sm);
}

.scheduler-component-refresh-lead-line {
	display: grid;
	grid-template-columns: 1fr;
	gap: 6px 8px;
	align-items: end;
}

@media (min-width: 768px) {
	.scheduler-component-refresh-lead-line {
		grid-template-columns: minmax(0, 1.4fr) minmax(8.5rem, 10.5rem) minmax(7rem, 9rem) auto;
	}
}

.scheduler-component-refresh-lead-field .scheduler-form-label {
	margin-bottom: 3px;
	font-size: 11px;
}

.scheduler-component-refresh-lead-field .form-input,
.scheduler-component-refresh-lead-field .form-select {
	padding-top: 5px;
	padding-bottom: 5px;
	font-size: 13px;
	width: 100%;
}

.scheduler-component-refresh-lead-apply {
	display: flex;
	justify-content: flex-end;
	align-items: end;
	padding-bottom: 1px;
}

.scheduler-job-products .scheduler-deliverable-item {
	margin-bottom: 10px;
}

.scheduler-stream-grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: 0;
	min-width: 0;
}

.scheduler-stream-grid > div {
	min-width: 0;
}

.scheduler-stream-panel-header {
	padding: 6px 10px;
}

.scheduler-stream-panel-header h3 {
	font-size: 14px !important;
	font-weight: 600 !important;
	margin: 0;
}

.scheduler-stream-panel-header .text-xs {
	font-size: 12px !important;
}

.scheduler-stream-table {
	width: 100%;
	table-layout: fixed;
	min-width: 0;
	font-size: 12px;
	border-collapse: collapse;
}

.scheduler-stream-table th,
.scheduler-stream-table td {
	padding: 4px 3px;
	vertical-align: middle;
	overflow: hidden;
	text-overflow: ellipsis;
}

.scheduler-stream-table th:first-child,
.scheduler-stream-table td:first-child {
	padding-left: 12px;
}

.scheduler-stream-table th {
	font-size: 12px !important;
	letter-spacing: 0.04em;
}

.scheduler-stream-table .scheduler-stream-task {
	white-space: normal;
	word-break: break-word;
	line-height: 1.25;
}

.scheduler-stream-table .scheduler-stream-date {
	white-space: nowrap;
	font-size: 12px;
	min-width: 0;
}

.scheduler-stream-table input[type='date'] {
	width: 100%;
	max-width: 100%;
	min-width: 0;
	font-size: 12px;
	padding: 2px 1px;
}

.scheduler-stream-table .col-task { width: 28%; }
.scheduler-stream-table .col-days { width: 8%; }
.scheduler-stream-table .col-dept { width: 11%; }
.scheduler-stream-table .col-date { width: 14%; }
.scheduler-stream-table .col-override { width: 15%; }
.scheduler-stream-table .col-action { width: 7%; }
.scheduler-stream-table .col-complete { width: 8%; }

.scheduler-job .scheduler-product-chip {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 4px 10px;
	background: var(--accent-light);
	border: 1px solid var(--border);
	border-radius: var(--radius-sm);
	font-size: 12px;
	color: var(--accent);
}

.scheduler-job-deliverables button.bg-gray-300 {
	background: var(--surface2) !important;
	color: var(--text2) !important;
	border: 1px solid var(--border) !important;
	border-radius: var(--radius-sm) !important;
	font-size: 12px !important;
	font-weight: 500 !important;
	padding: 6px 12px !important;
}

.scheduler-job-deliverables button.bg-gray-300:hover:not(:disabled) {
	border-color: var(--accent) !important;
	color: var(--accent) !important;
	background: var(--accent-light) !important;
	transform: none !important;
}

.scheduler-job {
	overflow-x: hidden;
	max-width: 100%;
}

.scheduler-job-products {
	margin-top: 16px;
}

.scheduler-job-products .scheduler-deliverable-item {
	overflow: hidden;
}

.scheduler-job-task-table {
	width: 100%;
	table-layout: fixed;
	border-collapse: collapse;
}

.scheduler-job-task-table th,
.scheduler-job-task-table td {
	padding: 4px 6px;
	font-size: 12px;
	overflow: hidden;
	text-overflow: ellipsis;
	vertical-align: middle;
}

.scheduler-job-task-table th:first-child,
.scheduler-job-task-table td:first-child {
	padding-left: 14px;
}

.scheduler-job-task-table input[type='date'] {
	width: 100%;
	max-width: 100%;
	min-width: 0;
	font-size: 12px;
	padding: 2px 4px;
}

.scheduler-data-table-wrap {
	overflow-x: hidden;
}

/* Creative / Data side-by-side task tables — see .scheduler-stream-table above */

.scheduler-job .scheduler-deliverable-item .scheduler-deliverable-header h2,
.scheduler-job .scheduler-deliverable-item .scheduler-deliverable-header h3 {
	font-size: 15px;
	font-weight: 600;
	color: var(--text);
	margin: 0;
}

/* Modals */
.scheduler-modal-overlay {
	position: fixed;
	inset: 0;
	background: rgba(0, 0, 0, 0.4);
	z-index: 200;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 16px;
}

.scheduler-modal {
	background: #fff;
	border: 1px solid var(--border2);
	border-radius: var(--radius);
	padding: 22px;
	width: 460px;
	max-width: 95vw;
	box-shadow: 0 8px 32px rgba(0, 0, 0, 0.12);
}

.scheduler-modal-title {
	font-size: 16px;
	font-weight: 700;
	color: var(--text);
	margin-bottom: 16px;
}

/* Status report print preview */
.scheduler-export-preview-overlay {
	position: fixed;
	inset: 0;
	z-index: 250;
	background: rgba(0, 0, 0, 0.45);
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 24px;
}

.scheduler-export-preview-window {
	display: flex;
	flex-direction: column;
	width: 100%;
	max-width: 920px;
	max-height: calc(100vh - 48px);
	height: auto;
	background: #fff;
	border-radius: var(--radius);
	box-shadow: 0 8px 32px rgba(0, 0, 0, 0.15);
	overflow: hidden;
}

.scheduler-export-preview-header {
	flex-shrink: 0;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding: 14px 20px;
	background: #fff;
	color: var(--text);
	border-bottom: 1px solid var(--border);
}

.scheduler-export-preview-header-title {
	font-size: 14px;
	font-weight: 600;
}

.scheduler-export-preview-header-meta {
	font-size: 12px;
	color: var(--text3);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.scheduler-export-preview-body {
	flex: 1;
	min-height: 0;
	overflow: auto;
	padding: 28px 24px 36px;
	background: #fff;
}

.scheduler-export-preview-pages {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 24px;
	width: 100%;
}

.scheduler-export-preview-page {
	width: 100%;
	max-width: 816px;
	min-height: 1056px;
	height: auto;
	background: #fff;
	color: #1c1c1a;
	box-shadow: 0 2px 16px rgba(0, 0, 0, 0.35);
	padding: 72px 72px 80px;
	font-family: Arial, Helvetica, sans-serif;
	font-size: 12px;
	line-height: 1.45;
	box-sizing: border-box;
}

.scheduler-export-preview-page-title {
	display: flex;
	align-items: flex-start;
}

.scheduler-export-preview-doc-title {
	font-size: 24px;
	font-weight: 700;
	margin: 0 0 24px;
	color: #1c1c1a;
}

.scheduler-export-preview-job {
	margin-bottom: 28px;
}

.scheduler-export-preview-job:last-child {
	margin-bottom: 0;
}

.scheduler-export-preview-job-title {
	font-weight: 700;
	margin: 0 0 4px;
}

.scheduler-export-preview-job-line {
	margin: 0 0 2px;
}

.scheduler-export-preview-job-quantities {
	margin: 4px 0 6px;
	padding-left: 20px;
	list-style: disc;
}

.scheduler-export-preview-job-quantities li {
	margin: 0 0 2px;
}

.scheduler-export-preview-table {
	width: 100%;
	border-collapse: collapse;
	margin-top: 10px;
	table-layout: fixed;
}

.scheduler-export-preview-table th,
.scheduler-export-preview-table td {
	border: 1px solid #d9d9d9;
	padding: 6px 8px;
	vertical-align: top;
	text-align: left;
	word-break: break-word;
}

.scheduler-export-preview-table th {
	background: #4b5563;
	color: #fff;
	font-weight: 700;
}

.scheduler-export-preview-table th:nth-child(1),
.scheduler-export-preview-table td:nth-child(1) {
	width: 58%;
	white-space: nowrap;
	word-break: normal;
}

.scheduler-export-preview-table th:nth-child(2),
.scheduler-export-preview-table td:nth-child(2) {
	width: 22%;
	white-space: nowrap;
	word-break: normal;
}

.scheduler-export-preview-table th:nth-child(3),
.scheduler-export-preview-table td:nth-child(3) {
	width: 20%;
}

.scheduler-export-preview-table tr.is-product-header td {
	font-weight: 700;
	color: inherit;
}

.scheduler-export-preview-table tr.is-incomplete-task td {
	background: #ffffff;
}

.scheduler-export-preview-table tr.is-completed-task td {
	background: #eeeeee;
}

.scheduler-export-preview-empty {
	margin: 0;
	padding: 24px 0;
	color: #6b6a64;
	font-size: 14px;
	text-align: center;
}

.scheduler-export-preview-footer {
	flex-shrink: 0;
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 10px;
	padding: 12px 20px;
	background: #fff;
	border-top: 1px solid var(--border);
}

@media print {
	.scheduler-export-preview-overlay {
		background: #fff;
		padding: 0;
	}

	.scheduler-export-preview-window {
		box-shadow: none;
		max-width: none;
		max-height: none;
	}

	.scheduler-export-preview-table tr.is-completed-task td {
		background: #eeeeee !important;
		-webkit-print-color-adjust: exact;
		print-color-adjust: exact;
	}
}

/* Tailwind polish inside app */
#root input:not([type='checkbox']):not([type='radio']),
#root select,
#root textarea {
	border-width: 1px !important;
	border-color: var(--border2) !important;
	border-radius: var(--radius-sm) !important;
	background: var(--surface) !important;
	font-size: 14px !important;
	padding: 7px 9px !important;
	color: var(--text) !important;
}

#root input:focus,
#root select:focus,
#root textarea:focus {
	border-color: var(--accent) !important;
	outline: none !important;
	box-shadow: none !important;
}

#root input:disabled,
#root select:disabled,
#root textarea:disabled {
	background: var(--surface2) !important;
	color: var(--text3) !important;
}

#root label {
	letter-spacing: 0.03em;
}

#root button {
	font-family: inherit;
}

#root button.rounded-lg {
	border-radius: var(--radius-sm);
	font-size: 14px;
}

#root button.bg-indigo-600,
#root button.bg-green-600,
#root button.bg-blue-600,
#root button.bg-purple-600 {
	font-weight: 600;
}

#root button.bg-indigo-600:hover,
#root button.bg-green-600:hover,
#root button.bg-blue-600:hover,
#root button.bg-purple-600:hover {
	opacity: 0.88;
}

#root h2.text-xl.font-bold.text-indigo-900,
#root h3.text-lg.font-bold.text-indigo-900,
#root h4.font-semibold.text-indigo-900 {
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.07em;
	text-transform: uppercase;
	color: var(--text2);
}

#root .shadow-xl {
	box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1) !important;
}

/* Drag and drop */
.draggable-task {
	cursor: move;
	transition: border-color 0.1s, opacity 0.1s;
}

.draggable-task:hover {
	border-color: var(--border2);
}

.draggable-task.dragging {
	opacity: 0.35;
}

.drop-zone {
	transition: all 0.15s ease;
}

.drop-zone.drag-over {
	background-color: var(--accent-light);
	border-color: var(--accent);
}

.drag-handle {
	cursor: grab;
	color: var(--text3);
	font-size: 14px;
	padding: 4px;
	border-radius: var(--radius-sm);
	transition: all 0.12s ease;
}

.drag-handle:hover {
	background-color: var(--surface2);
	color: var(--text2);
}

.drag-handle:active {
	cursor: grabbing;
}

.task-order-indicator {
	background-color: var(--surface2);
	color: var(--text3);
	font-size: 12px;
	font-weight: 600;
	padding: 2px 6px;
	border-radius: 8px;
	min-width: 20px;
	text-align: center;
}

::-webkit-scrollbar {
	width: 4px;
	height: 4px;
}

::-webkit-scrollbar-thumb {
	background: var(--border2);
	border-radius: 2px;
}
