/* Chow Intelligence Dashboard — Dark Command-Center UI */
/* No external dependencies. All system fonts, no CDN. */

:root {
	--bg-primary: #0b0d0e;
	--bg-card: #131618;
	--bg-card-hover: #1a1d20;
	--bg-drawer: #0f1113;
	--border: #23272b;
	--border-accent: #3a3f45;
	--text-primary: #e8eaed;
	--text-secondary: #9aa0a6;
	--text-muted: #5f6368;
	--accent-green: #34d399;
	--accent-yellow: #facc15;
	--accent-red: #f87171;
	--accent-blue: #60a5fa;
	--accent-cyan: #22d3ee;
	--accent-purple: #a78bfa;
	--accent-orange: #fb923c;
	--font-mono: "SF Mono", "Cascadia Code", "Consolas", "Monaco", monospace;
	--font-sans:
		-apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Helvetica Neue",
		Arial, sans-serif;
	--radius: 8px;
}

* {
	box-sizing: border-box;
	margin: 0;
	padding: 0;
}

html {
	font-size: 14px;
}

body {
	font-family: var(--font-sans);
	background: var(--bg-primary);
	color: var(--text-primary);
	min-height: 100vh;
	display: flex;
	flex-direction: column;
}

/* ── Top Bar ── */
.topbar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 0.75rem 1.5rem;
	background: var(--bg-card);
	border-bottom: 1px solid var(--border);
	position: sticky;
	top: 0;
	z-index: 100;
}

.topbar-left {
	display: flex;
	align-items: center;
	gap: 0.75rem;
}

.logo {
	font-family: var(--font-mono);
	font-weight: 700;
	font-size: 1.15rem;
	letter-spacing: 0.08em;
	color: var(--accent-cyan);
}

.version {
	font-family: var(--font-mono);
	font-size: 0.7rem;
	color: var(--text-muted);
	background: var(--bg-primary);
	padding: 0.1rem 0.4rem;
	border-radius: 4px;
	border: 1px solid var(--border);
}

.topbar-right {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	font-size: 0.85rem;
	color: var(--text-secondary);
}

.status-indicator {
	font-size: 1.2rem;
	line-height: 1;
}
.status-indicator.ok {
	color: var(--accent-green);
}
.status-indicator.degraded {
	color: var(--accent-yellow);
}
.status-indicator.error {
	color: var(--accent-red);
}

.sep {
	color: var(--border-accent);
}

/* ── Dashboard Grid ── */
.dashboard {
	flex: 1;
	padding: 1.5rem;
	max-width: 1400px;
	width: 100%;
	margin: 0 auto;
}

/* ── Status Cards ── */
.status-cards {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
	gap: 0.75rem;
	margin-bottom: 1.5rem;
}

.card {
	background: var(--bg-card);
	border: 1px solid var(--border);
	border-radius: var(--radius);
	padding: 1rem 1.2rem;
	text-align: center;
}

.card-label {
	font-size: 0.75rem;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: var(--text-muted);
	margin-bottom: 0.35rem;
}

.card-value {
	font-family: var(--font-mono);
	font-size: 1.6rem;
	font-weight: 600;
	color: var(--text-primary);
}

.card-health .card-value {
	color: var(--accent-green);
}
.card-events .card-value {
	color: var(--accent-blue);
}
.card-evidence .card-value {
	color: var(--accent-purple);
}
.card-narratives .card-value {
	color: var(--accent-orange);
}
.card-artifacts .card-value {
	color: var(--accent-cyan);
}
.card-signals .card-value {
	color: var(--accent-yellow);
}
.card-compliance .card-value {
	color: var(--accent-green);
}
/* ── Sections ── */
.section {
	background: var(--bg-card);
	border: 1px solid var(--border);
	border-radius: var(--radius);
	padding: 1.25rem;
	margin-bottom: 1rem;
}

.section-title {
	font-family: var(--font-mono);
	font-size: 0.85rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--text-secondary);
	margin-bottom: 0.75rem;
	display: flex;
	align-items: center;
	justify-content: space-between;
}

/* ── Brief ── */
.brief-header {
	margin-bottom: 0.75rem;
}
.brief-title {
	font-size: 1.1rem;
	font-weight: 600;
	color: var(--text-primary);
	margin-bottom: 0.15rem;
}
.brief-meta {
	font-size: 0.8rem;
	color: var(--text-muted);
}

.brief-summary {
	font-size: 0.95rem;
	line-height: 1.5;
	color: var(--text-secondary);
	margin-bottom: 0.75rem;
}

.brief-disclaimer {
	font-size: 0.75rem;
	color: var(--text-muted);
	font-style: italic;
	margin-top: 0.75rem;
	padding-top: 0.75rem;
	border-top: 1px solid var(--border);
}

/* Top signals */
.top-signals {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}

.signal-card {
	background: var(--bg-primary);
	border: 1px solid var(--border);
	border-radius: 6px;
	padding: 0.75rem 1rem;
}

.signal-header {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	margin-bottom: 0.25rem;
}

.signal-rank {
	font-family: var(--font-mono);
	font-size: 0.7rem;
	color: var(--text-muted);
	background: var(--bg-card);
	border: 1px solid var(--border);
	border-radius: 4px;
	padding: 0.05rem 0.35rem;
	white-space: nowrap;
}

.signal-title {
	font-size: 0.9rem;
	font-weight: 500;
	color: var(--text-primary);
	flex: 1;
}

.signal-score {
	font-family: var(--font-mono);
	font-size: 0.85rem;
	font-weight: 600;
	color: var(--accent-yellow);
	white-space: nowrap;
}

.signal-label {
	font-size: 0.65rem;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	padding: 0.1rem 0.35rem;
	border-radius: 3px;
	font-weight: 600;
}

.signal-label.high_alpha {
	background: #065f4633;
	color: var(--accent-green);
}
.signal-label.notable {
	background: #92400f33;
	color: var(--accent-orange);
}
.signal-label.warning {
	background: #7f1d1d33;
	color: var(--accent-red);
}

.signal-summary {
	font-size: 0.8rem;
	color: var(--text-muted);
	line-height: 1.4;
}

.signal-tickers {
	display: flex;
	gap: 0.35rem;
	flex-wrap: wrap;
	margin-top: 0.35rem;
}

.signal-ticker {
	font-family: var(--font-mono);
	font-size: 0.7rem;
	background: var(--bg-card);
	border: 1px solid var(--border);
	border-radius: 3px;
	padding: 0.05rem 0.35rem;
	color: var(--accent-blue);
}

/* ── Narrative Cards ── */
.narrative-card {
	background: var(--bg-primary);
	border: 1px solid var(--border);
	border-radius: 6px;
	padding: 0.75rem 1rem;
	margin-bottom: 0.5rem;
	cursor: pointer;
	transition: border-color 0.15s;
}
.narrative-card:hover {
	border-color: var(--border-accent);
}

.narrative-header {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	margin-bottom: 0.3rem;
}

.narrative-id {
	font-family: var(--font-mono);
	font-size: 0.65rem;
	color: var(--text-muted);
	background: var(--bg-card);
	border: 1px solid var(--border);
	border-radius: 3px;
	padding: 0.05rem 0.3rem;
}

.narrative-title {
	font-size: 0.9rem;
	font-weight: 500;
	color: var(--text-primary);
	flex: 1;
}

.narrative-meta {
	display: flex;
	gap: 0.75rem;
	align-items: center;
	font-size: 0.78rem;
	color: var(--text-secondary);
	margin-top: 0.3rem;
}

.narrative-confidence {
	font-family: var(--font-mono);
	font-weight: 600;
}
.narrative-confidence.high {
	color: var(--accent-green);
}
.narrative-confidence.medium {
	color: var(--accent-yellow);
}
.narrative-confidence.low {
	color: var(--accent-orange);
}

.narrative-strength {
	font-family: var(--font-mono);
	font-size: 0.7rem;
	color: var(--text-muted);
}

.narrative-tickers {
	display: flex;
	gap: 0.3rem;
	flex-wrap: wrap;
}
.narrative-tickers .signal-ticker {
	font-size: 0.65rem;
}

.narrative-evidence-refs {
	font-size: 0.75rem;
	color: var(--accent-purple);
	cursor: pointer;
}

.narrative-detail {
	margin-top: 0.5rem;
	padding-top: 0.5rem;
	border-top: 1px solid var(--border);
	display: none;
}

.narrative-card.expanded .narrative-detail {
	display: block;
}

.narrative-summary {
	font-size: 0.82rem;
	color: var(--text-secondary);
	line-height: 1.45;
	margin-bottom: 0.5rem;
}

.narrative-evidence-list {
	list-style: none;
	padding: 0;
}

.narrative-evidence-list li {
	font-size: 0.75rem;
	color: var(--text-muted);
	padding: 0.2rem 0;
	border-bottom: 1px solid var(--border);
	font-family: var(--font-mono);
}

/* ── Events / Evidence Drawer ── */
.drawer {
	background: var(--bg-drawer);
	border: 1px solid var(--border);
	border-radius: 6px;
	padding: 1rem;
	margin-top: 0.5rem;
}

.drawer-columns {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1rem;
}
@media (max-width: 768px) {
	.drawer-columns {
		grid-template-columns: 1fr;
	}
}

.drawer-col h3 {
	font-family: var(--font-mono);
	font-size: 0.75rem;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: var(--text-muted);
	margin-bottom: 0.5rem;
	border-bottom: 1px solid var(--border);
	padding-bottom: 0.35rem;
}

.event-item,
.evidence-item {
	font-size: 0.78rem;
	padding: 0.4rem 0;
	border-bottom: 1px solid var(--border);
	line-height: 1.4;
}

.event-item .event-type {
	font-family: var(--font-mono);
	font-size: 0.65rem;
	color: var(--accent-blue);
	text-transform: uppercase;
}

.event-item .event-score {
	font-family: var(--font-mono);
	font-size: 0.7rem;
	color: var(--accent-yellow);
}

.evidence-item .ev-tier {
	font-family: var(--font-mono);
	font-size: 0.65rem;
	color: var(--accent-purple);
}

/* ── Artifacts Table ── */
.artifact-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 0.82rem;
}

.artifact-table th {
	font-family: var(--font-mono);
	font-size: 0.7rem;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: var(--text-muted);
	text-align: left;
	padding: 0.4rem 0.5rem;
	border-bottom: 1px solid var(--border);
}

.artifact-table td {
	padding: 0.35rem 0.5rem;
	border-bottom: 1px solid var(--border);
	color: var(--text-secondary);
	font-family: var(--font-mono);
	font-size: 0.75rem;
}

.artifact-table .exists-yes {
	color: var(--accent-green);
}
.artifact-table .exists-no {
	color: var(--accent-red);
}

/* ── Toggle ── */
.toggle-btn {
	font-family: var(--font-mono);
	font-size: 0.7rem;
	background: var(--bg-primary);
	border: 1px solid var(--border);
	border-radius: 4px;
	color: var(--text-secondary);
	padding: 0.2rem 0.6rem;
	cursor: pointer;
	transition: background 0.15s;
}

.toggle-btn:hover {
	background: var(--border);
}

.hidden {
	display: none;
}

/* ── Footer ── */
.footer {
	padding: 0.75rem 1.5rem;
	border-top: 1px solid var(--border);
	display: flex;
	align-items: center;
	gap: 0.5rem;
	font-size: 0.75rem;
	color: var(--text-muted);
	margin-top: auto;
}

/* ── Loading ── */
.loading {
	color: var(--text-muted);
	font-style: italic;
	font-size: 0.85rem;
}

/* ── Error ── */
.error-msg {
	color: var(--accent-red);
	font-size: 0.82rem;
	padding: 0.5rem;
	background: #7f1d1d22;
	border: 1px solid #7f1d1d44;
	border-radius: 4px;
}

/* ── Filter Bar ── */
.filter-bar {
	margin-bottom: 0.75rem;
}
.filter-row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.5rem;
}
.filter-group {
	display: flex;
	align-items: center;
}
.search-group {
	flex: 1;
	min-width: 180px;
}
.search-input {
	width: 100%;
	font-family: var(--font-mono);
	font-size: 0.8rem;
	padding: 0.4rem 0.6rem;
	background: var(--bg-primary);
	border: 1px solid var(--border);
	border-radius: 4px;
	color: var(--text-primary);
	outline: none;
	transition: border-color 0.15s;
}
.search-input:focus {
	border-color: var(--accent-blue);
}
.search-input::placeholder {
	color: var(--text-muted);
}
.filter-select {
	font-family: var(--font-mono);
	font-size: 0.75rem;
	padding: 0.35rem 0.5rem;
	background: var(--bg-primary);
	border: 1px solid var(--border);
	border-radius: 4px;
	color: var(--text-secondary);
	cursor: pointer;
	outline: none;
	transition: border-color 0.15s;
	min-width: 110px;
}
.filter-select:focus {
	border-color: var(--accent-blue);
}
.filter-select:hover {
	border-color: var(--border-accent);
}
.clear-btn {
	font-family: var(--font-mono);
	font-size: 0.7rem;
	padding: 0.35rem 0.7rem;
	background: var(--bg-primary);
	border: 1px solid var(--border);
	border-radius: 4px;
	color: var(--text-muted);
	cursor: pointer;
	transition: all 0.15s;
	white-space: nowrap;
}
.clear-btn:hover {
	border-color: var(--accent-red);
	color: var(--accent-red);
	background: #7f1d1d22;
}
.count-group {
	margin-left: auto;
}
.count-badge {
	font-family: var(--font-mono);
	font-size: 0.7rem;
	color: var(--text-muted);
	background: var(--bg-primary);
	border: 1px solid var(--border);
	border-radius: 4px;
	padding: 0.2rem 0.5rem;
	white-space: nowrap;
}
.count-badge span {
	color: var(--text-secondary);
	font-weight: 600;
}
.section-title-right {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	font-size: 0.7rem;
}

/* ── Action Control ── */
.action-buttons {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin-bottom: 0.75rem;
}
.action-btn {
	font-family: var(--font-mono);
	font-size: 0.78rem;
	padding: 0.5rem 1rem;
	background: var(--bg-primary);
	border: 1px solid var(--border);
	border-radius: var(--radius);
	color: var(--text-primary);
	cursor: pointer;
	transition: all 0.15s;
	white-space: nowrap;
}
.action-btn:hover {
	border-color: var(--accent-blue);
	color: var(--accent-blue);
	background: #1a1d20;
}
.action-btn:disabled {
	opacity: 0.4;
	cursor: not-allowed;
	border-color: var(--border);
	color: var(--text-muted);
}
.action-btn:hover:disabled {
	border-color: var(--border);
	color: var(--text-muted);
	background: var(--bg-primary);
}
.action-btn-smoke {
	color: var(--accent-yellow);
}
.action-btn-smoke:hover {
	border-color: var(--accent-yellow);
	color: var(--accent-yellow);
}

.action-subgroup-label {
	font-family: var(--font-mono);
	font-size: 0.72rem;
	color: var(--text-muted);
	text-transform: uppercase;
	letter-spacing: 0.06em;
	padding: 0.5rem 0.25rem;
	white-space: nowrap;
	align-self: center;
}

.action-btn-ingest {
	color: var(--accent-cyan);
}
.action-btn-ingest:hover {
	border-color: var(--accent-cyan);
	color: var(--accent-cyan);
}
.action-btn-ingest:disabled {
	opacity: 0.4;
	cursor: not-allowed;
}
.action-status {
	background: var(--bg-primary);
	border: 1px solid var(--border);
	border-radius: 6px;
	padding: 0.75rem 1rem;
	margin-bottom: 0.75rem;
	min-height: 2.5rem;
	font-size: 0.82rem;
	line-height: 1.4;
}
.action-idle {
	color: var(--text-muted);
	font-style: italic;
	font-size: 0.8rem;
}
.action-running {
	color: var(--accent-cyan);
	font-size: 0.85rem;
}
.action-result {
	font-size: 0.82rem;
	line-height: 1.5;
}
.action-result.success {
	border-left: 3px solid var(--accent-green);
	padding-left: 0.5rem;
}
.action-result.dry-run {
	border-left: 3px solid var(--accent-yellow);
	padding-left: 0.5rem;
}
.action-result.failure {
	border-left: 3px solid var(--accent-red);
	padding-left: 0.5rem;
}
.action-result.error {
	border-left: 3px solid var(--accent-red);
	padding-left: 0.5rem;
}
.action-result-status {
	font-family: var(--font-mono);
	font-size: 0.7rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.06em;
}
.action-result-status.success {
	color: var(--accent-green);
}
.action-result-status.dry-run {
	color: var(--accent-yellow);
}
.action-result-status.failure {
	color: var(--accent-red);
}
.action-result-status.error {
	color: var(--accent-red);
}
.action-cmd {
	font-family: var(--font-mono);
	font-size: 0.72rem;
	color: var(--text-muted);
	background: var(--bg-drawer);
	padding: 0.15rem 0.4rem;
	border-radius: 3px;
	word-break: break-all;
}
.action-output {
	font-family: var(--font-mono);
	font-size: 0.7rem;
	color: var(--text-secondary);
	background: #0a0c0d;
	padding: 0.5rem;
	border-radius: 4px;
	margin-top: 0.4rem;
	max-height: 200px;
	overflow: auto;
	white-space: pre-wrap;
	word-break: break-word;
}
.action-stderr {
	color: var(--accent-red);
}
.action-exit-code {
	font-family: var(--font-mono);
	font-size: 0.7rem;
	color: var(--text-muted);
	background: var(--bg-drawer);
	padding: 0.05rem 0.3rem;
	border-radius: 3px;
}
.action-subtitle {
	font-family: var(--font-mono);
	font-size: 0.75rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: var(--text-muted);
	margin-bottom: 0.5rem;
}
.action-logs-section {
	margin-top: 0.25rem;
}
.action-log-item {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.5rem;
	padding: 0.35rem 0;
	border-bottom: 1px solid var(--border);
	font-size: 0.78rem;
	line-height: 1.4;
}
.action-log-status {
	font-family: var(--font-mono);
	font-size: 0.65rem;
	font-weight: 600;
	text-transform: uppercase;
	padding: 0.05rem 0.3rem;
	border-radius: 3px;
}
.action-log-status.success {
	background: #065f4633;
	color: var(--accent-green);
}
.action-log-status.dry-run {
	background: #92400f33;
	color: var(--accent-yellow);
}
.action-log-status.failure {
	background: #7f1d1d33;
	color: var(--accent-red);
}
.action-log-status.error {
	background: #7f1d1d33;
	color: var(--accent-red);
}
.action-log-id {
	font-family: var(--font-mono);
	font-size: 0.72rem;
	color: var(--accent-cyan);
	font-weight: 500;
}
.action-log-time {
	font-family: var(--font-mono);
	font-size: 0.65rem;
	color: var(--text-muted);
	margin-left: auto;
}

/* ── Signal Score Card Colors ── */

.action-log-cmd {
	font-family: var(--font-mono);
	font-size: 0.65rem;
	color: var(--text-muted);
	width: 100%;
	word-break: break-all;
}

.signal-score.high-alpha {
	color: var(--accent-green);
}
.signal-score.notable {
	color: var(--accent-orange);
}
.signal-score.background {
	color: var(--accent-cyan);
}
.signal-score.low-signal {
	color: var(--text-muted);
}

.signal-rationale {
	font-size: 0.72rem;
	color: var(--text-muted);
	font-family: var(--font-mono);
	margin-top: 0.25rem;
	line-height: 1.3;
}
.signal-provenance {
	font-size: 0.7rem;
	color: var(--text-secondary);
	margin-top: 0.25rem;
}

/* ── Compliance Section ── */
.compliance-status {
	font-family: var(--font-mono);
	font-size: 1.1rem;
	font-weight: 700;
	padding: 0.5rem 0.75rem;
	border-radius: 6px;
	margin-bottom: 0.75rem;
	text-align: center;
}
.compliance-status.status-ok {
	background: #065f4633;
	color: var(--accent-green);
	border: 1px solid #065f4666;
}
.compliance-status.status-warn {
	background: #92400f33;
	color: var(--accent-orange);
	border: 1px solid #92400f66;
}
.compliance-status.status-fail {
	background: #7f1d1d33;
	color: var(--accent-red);
	border: 1px solid #7f1d1d66;
}
.compliance-summary {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
	gap: 0.5rem;
	margin-bottom: 0.75rem;
}
.compliance-stat {
	background: var(--bg-primary);
	border: 1px solid var(--border);
	border-radius: 4px;
	padding: 0.4rem 0.6rem;
	text-align: center;
}
.compliance-stat .stat-label {
	display: block;
	font-size: 0.65rem;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: var(--text-muted);
	margin-bottom: 0.15rem;
}
.compliance-stat .stat-value {
	font-family: var(--font-mono);
	font-size: 1rem;
	font-weight: 600;
	color: var(--text-primary);
}
.stat-error {
	color: var(--accent-red);
}
.stat-warn {
	color: var(--accent-orange);
}
.stat-info {
	color: var(--accent-blue);
}

.compliance-findings-section {
	margin-top: 0.5rem;
}
.compliance-finding {
	font-size: 0.78rem;
	padding: 0.35rem 0;
	border-bottom: 1px solid var(--border);
	line-height: 1.4;
}
.compliance-finding-severity {
	font-family: var(--font-mono);
	font-size: 0.65rem;
	font-weight: 700;
	margin-right: 0.35rem;
}
.compliance-finding-severity.sev-error {
	color: var(--accent-red);
}
.compliance-finding-severity.sev-warn {
	color: var(--accent-orange);
}
.compliance-finding-severity.sev-info {
	color: var(--accent-blue);
}
.compliance-finding-cat {
	font-family: var(--font-mono);
	font-size: 0.65rem;
	color: var(--text-muted);
	margin-right: 0.5rem;
}
.compliance-finding-msg {
	color: var(--text-secondary);
}
.compliance-finding-detail {
	font-size: 0.7rem;
	color: var(--text-muted);
	padding-left: 1rem;
	margin-top: 0.15rem;
}
.compliance-disclaimer {
	font-size: 0.7rem;
	color: var(--text-muted);
	font-style: italic;
	margin-top: 0.75rem;
	padding-top: 0.5rem;
	border-top: 1px solid var(--border);
}

.section-subtitle {
	font-family: var(--font-mono);
	font-size: 0.75rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: var(--text-muted);
	margin-bottom: 0.5rem;
}

/* ── System Status (added by smoke-test repair pass) ── */
.system-status-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	gap: 1rem;
	margin-top: 0.5rem;
}
.system-status-block {
	background: var(--bg-primary);
	border: 1px solid var(--border);
	border-radius: 6px;
	padding: 0.75rem 1rem;
}
.system-status-block-title {
	font-family: var(--font-mono);
	font-size: 0.8rem;
	font-weight: 600;
	color: var(--text-primary);
	margin-bottom: 0.5rem;
	text-transform: uppercase;
	letter-spacing: 0.06em;
}
.system-status-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 0.78rem;
}
.system-status-table td {
	padding: 0.3rem 0.5rem;
	border-bottom: 1px solid var(--border);
	color: var(--text-secondary);
	font-family: var(--font-mono);
	font-size: 0.72rem;
}
.system-status-table td:first-child {
	color: var(--text-muted);
	text-transform: uppercase;
	letter-spacing: 0.05em;
	font-size: 0.65rem;
	width: 40%;
}
.system-status-status {
	font-family: var(--font-mono);
	font-size: 0.78rem;
	font-weight: 600;
	padding: 0.2rem 0.5rem;
	border-radius: 4px;
	display: inline-block;
	margin-bottom: 0.5rem;
}
.system-status-status.status-ok {
	background: #065f4633;
	color: var(--accent-green);
	border: 1px solid #065f4666;
}
.system-status-status.status-warn {
	background: #92400f33;
	color: var(--accent-orange);
	border: 1px solid #92400f66;
}
.system-status-status.status-fail {
	background: #7f1d1d33;
	color: var(--accent-red);
	border: 1px solid #7f1d1d66;
}

/* ── Git Status Card ── */
.card-git-status {
	grid-column: span 1;
}
.card-git-status .card-value {
	font-family: var(--font-mono);
	font-size: 1.1rem;
	font-weight: 600;
}
.card-git-status .card-value.status-clean {
	color: var(--accent-green);
}
.card-git-status .card-value.status-dirty {
	color: var(--accent-orange);
}
.card-git-status .card-value.status-error {
	color: var(--accent-red);
}
.card-git-status .card-value.status-checking {
	color: var(--accent-cyan);
}
.card-git-status .card-value .dirty-count {
	font-size: 0.7rem;
	color: var(--text-muted);
	display: block;
}

.card-git-status .card-value .dirty-files {
	font-size: 0.65rem;
	color: var(--text-muted);
	display: block;
	max-height: 4rem;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: pre-wrap;
	font-family: var(--font-mono);
	line-height: 1.3;
	margin-top: 0.15rem;
}
.card-git-status .card-value .dirty-files summary {
	cursor: pointer;
	font-size: 0.65rem;
	color: var(--accent-blue);
	text-transform: uppercase;
	letter-spacing: 0.05em;
}

/* ── Action Category Groups ── */
.action-category {
	margin-bottom: 0.75rem;
	border: 1px solid var(--border);
	border-radius: 6px;
	background: var(--bg-secondary);
	overflow: hidden;
}
.action-category-header {
	font-family: var(--font-mono);
	font-size: 0.75rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: var(--text-primary);
	padding: 0.5rem 0.75rem;
	cursor: pointer;
	user-select: none;
	display: flex;
	align-items: center;
	gap: 0.4rem;
	background: var(--bg-primary);
	border-bottom: 1px solid var(--border);
	transition: background 0.15s;
}
.action-category-header:hover {
	background: #1a1d20;
}
.action-category-icon {
	font-size: 0.65rem;
	color: var(--text-muted);
	transition: transform 0.15s;
}
.action-category-header.collapsed .action-category-icon {
	transform: rotate(-90deg);
}
.action-category-body {
	padding: 0.75rem;
}
.action-category-header.collapsed + .action-category-body {
	display: none;
}
.action-last-run-info {
	font-family: var(--font-mono);
	font-size: 0.65rem;
	color: var(--text-muted);
	margin-bottom: 0.4rem;
	min-height: 1rem;
}

.action-btn-label {
	display: inline;
}

.source-indicator {
	display: inline-block;
	width: 8px;
	height: 8px;
	border-radius: 50%;
	margin-left: 0.35rem;
	vertical-align: middle;
	background: var(--text-muted);
}
.source-indicator.indicator-ok {
	background: var(--accent-green);
}
.source-indicator.indicator-warn {
	background: var(--accent-orange);
}
.source-indicator.indicator-err {
	background: var(--accent-red);
}
.source-indicator.indicator-na {
	background: var(--border);
}

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

.action-btn-ingest {
	display: inline-flex;
	align-items: center;
}

/* ── Failure-State UI Elements (Pass 6) ── */
.error-banner {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.6rem 0.8rem;
	background: #7f1d1d33;
	border: 1px solid #7f1d1d66;
	border-radius: 6px;
	color: var(--accent-red);
	font-size: 0.82rem;
	margin-bottom: 0.5rem;
	line-height: 1.4;
}
.error-banner-icon {
	font-size: 1rem;
	flex-shrink: 0;
}
.error-banner-msg {
	flex: 1;
}
.retry-btn {
	background: transparent;
	border: 1px solid var(--accent-blue);
	color: var(--accent-blue);
	border-radius: 4px;
	padding: 0.25rem 0.6rem;
	font-size: 0.72rem;
	cursor: pointer;
	font-family: var(--font-mono);
	flex-shrink: 0;
	transition:
		background 0.15s,
		color 0.15s;
}
.retry-btn:hover {
	background: #60a5fa22;
	color: var(--accent-blue);
}
.retry-btn-sm {
	padding: 0.15rem 0.4rem;
	font-size: 0.65rem;
}

.global-error-banner {
	background: #7f1d1d44;
	border-bottom: 1px solid #7f1d1d88;
	padding: 0.4rem 1.5rem;
	font-size: 0.78rem;
}
.global-error-banner.hidden {
	display: none;
}
.global-error-item {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.2rem 0;
	color: var(--accent-red);
}
.dismiss-global-error {
	background: transparent;
	border: none;
	color: var(--text-muted);
	cursor: pointer;
	padding: 0 0.2rem;
	font-size: 0.85rem;
	flex-shrink: 0;
}
.dismiss-global-error:hover {
	color: var(--text-primary);
}

/* ── Policy UI (Pass 8 Phase 3) ── */
.action-policy-banner {
	font-family: var(--font-mono);
	font-size: 0.72rem;
	padding: 0.4rem 0.6rem;
	background: var(--bg-primary);
	border: 1px solid var(--border);
	border-radius: 4px;
	margin-bottom: 0.5rem;
	color: var(--text-secondary);
	line-height: 1.4;
	min-height: 1.2rem;
}
.action-policy-detail {
	font-family: var(--font-mono);
	font-size: 0.72rem;
	padding: 0.4rem 0.6rem;
	background: var(--bg-drawer);
	border: 1px solid var(--border);
	border-radius: 4px;
	margin-bottom: 0.5rem;
	color: var(--text-secondary);
	line-height: 1.5;
	display: none;
}
.action-policy-detail.visible {
	display: block;
}
.action-policy-detail .pd-row {
	display: flex;
	gap: 0.5rem;
	padding: 0.15rem 0;
}
.action-policy-detail .pd-label {
	color: var(--text-muted);
	min-width: 8rem;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	font-size: 0.65rem;
}
.action-policy-detail .pd-value {
	color: var(--text-primary);
}
.action-approval-row {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	margin-bottom: 0.5rem;
}
.approval-input {
	flex: 1;
	font-family: var(--font-mono);
	font-size: 0.78rem;
	padding: 0.35rem 0.6rem;
	background: var(--bg-primary);
	border: 1px solid var(--border);
	border-radius: 4px;
	color: var(--text-primary);
	outline: none;
	transition: border-color 0.15s;
}
.approval-input:focus {
	border-color: var(--accent-blue);
}
.approval-hint {
	font-size: 0.7rem;
	color: var(--text-muted);
	font-family: var(--font-mono);
	white-space: nowrap;
}
.action-dryrun-row {
	margin-bottom: 0.5rem;
}
.dryrun-toggle-label {
	display: flex;
	align-items: center;
	gap: 0.4rem;
	font-size: 0.8rem;
	color: var(--text-secondary);
	cursor: pointer;
}
.dryrun-toggle-label input[type="checkbox"] {
	cursor: pointer;
}
.action-risk-badge {
	display: inline-block;
	font-family: var(--font-mono);
	font-size: 0.6rem;
	padding: 0.05rem 0.3rem;
	border-radius: 3px;
	margin-left: 0.35rem;
	vertical-align: middle;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	line-height: 1.2;
}
.action-risk-badge.risk-read {
	background: #065f4633;
	color: var(--accent-green);
	border: 1px solid #065f4666;
}
.action-risk-badge.risk-artifact_write {
	background: #92400f33;
	color: var(--accent-orange);
	border: 1px solid #92400f66;
}
.action-risk-badge.risk-child_ingest {
	background: #1e3a5f33;
	color: var(--accent-blue);
	border: 1px solid #1e3a5f66;
}
.action-risk-badge.risk-long_running {
	background: #7f1d1d33;
	color: var(--accent-red);
	border: 1px solid #7f1d1d66;
}
.approval-status-badge {
	display: inline-block;
	font-family: var(--font-mono);
	font-size: 0.6rem;
	padding: 0.05rem 0.3rem;
	border-radius: 3px;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	margin-left: 0.3rem;
}
.approval-status-badge.approved {
	background: #065f4633;
	color: var(--accent-green);
	border: 1px solid #065f4666;
}
.approval-status-badge.denied {
	background: #7f1d1d33;
	color: var(--accent-red);
	border: 1px solid #7f1d1d66;
}
.approval-status-badge.not_required {
	background: #1e3a5f33;
	color: var(--accent-blue);
	border: 1px solid #1e3a5f66;
}
.dry-run-badge {
	display: inline-block;
	font-family: var(--font-mono);
	font-size: 0.6rem;
	padding: 0.05rem 0.3rem;
	border-radius: 3px;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	background: #92400f33;
	color: var(--accent-yellow);
	border: 1px solid #92400f66;
	margin-left: 0.3rem;
}
.action-result.denied {
	border-left: 3px solid var(--accent-red);
	padding-left: 0.5rem;
}
.action-result.timeout {
	border-left: 3px solid var(--accent-yellow);
	padding-left: 0.5rem;
}
.action-result-status.denied {
	color: var(--accent-red);
}
.action-result-status.timeout {
	color: var(--accent-yellow);
}

.timeline-risk-badge,
.timeline-approval-badge {
	display: inline-block;
	font-family: var(--font-mono);
	font-size: 0.6rem;
	padding: 0.05rem 0.3rem;
	border-radius: 3px;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	margin-left: 0.3rem;
	vertical-align: middle;
}
.timeline-risk-badge.risk-read {
	background: #065f4633;
	color: var(--accent-green);
	border: 1px solid #065f4666;
}
.timeline-risk-badge.risk-artifact_write {
	background: #92400f33;
	color: var(--accent-orange);
	border: 1px solid #92400f66;
}
.timeline-risk-badge.risk-child_ingest {
	background: #1e3a5f33;
	color: var(--accent-blue);
	border: 1px solid #1e3a5f66;
}
.timeline-risk-badge.risk-long_running {
	background: #7f1d1d33;
	color: var(--accent-red);
	border: 1px solid #7f1d1d66;
}
.timeline-approval-badge.approved {
	background: #065f4633;
	color: var(--accent-green);
	border: 1px solid #065f4666;
}
.timeline-approval-badge.denied {
	background: #7f1d1d33;
	color: var(--accent-red);
	border: 1px solid #7f1d1d66;
}
.timeline-approval-badge.not_required {
	background: #1e3a5f33;
	color: var(--accent-blue);
	border: 1px solid #1e3a5f66;
}
.timeline-dry-run-badge,
.timeline-timed-out-badge {
	display: inline-block;
	font-family: var(--font-mono);
	font-size: 0.6rem;
	padding: 0.05rem 0.3rem;
	border-radius: 3px;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	margin-left: 0.3rem;
	vertical-align: middle;
}
.timeline-dry-run-badge {
	background: #92400f33;
	color: var(--accent-yellow);
	border: 1px solid #92400f66;
}
.timeline-timed-out-badge {
	background: #7f1d1d33;
	color: var(--accent-red);
	border: 1px solid #7f1d1d66;
}

/* ── Job Detail Modal (Pass 10) ── */
.modal-overlay {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background: rgba(0, 0, 0, 0.7);
	display: flex;
	align-items: center;
	justify-content: center;
	z-index: 200;
}

.modal-content {
	background: #1a1a2e;
	color: #e0e0e0;
	border: 1px solid #23272b;
	border-radius: 10px;
	max-width: 720px;
	width: 95%;
	max-height: 85vh;
	overflow-y: auto;
	box-shadow: 0 8px 32px rgba(0, 0, 0, 0.5);
}
.modal-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 1rem 1.25rem;
	border-bottom: 1px solid #23272b;
}
.modal-title {
	font-family: var(--font-mono);
	font-size: 0.85rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--text-secondary);
}
.modal-close-btn {
	background: transparent;
	border: none;
	color: var(--text-muted);
	font-size: 1.2rem;
	cursor: pointer;
	padding: 0.2rem;
	line-height: 1;
}
.modal-close-btn:hover {
	color: var(--text-primary);
}
.modal-body {
	padding: 1.25rem;
	font-size: 0.82rem;
	line-height: 1.5;
}
.modal-body .job-detail-section {
	margin-bottom: 1rem;
}
.modal-body .job-detail-section-title {
	font-family: var(--font-mono);
	font-size: 0.72rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: var(--text-muted);
	border-bottom: 1px solid #23272b;
	padding-bottom: 0.3rem;
	margin-bottom: 0.5rem;
}
.modal-body .job-detail-row {
	display: flex;
	padding: 0.25rem 0;
	border-bottom: 1px solid rgba(35, 39, 43, 0.5);
}
.modal-body .job-detail-label {
	color: var(--text-muted);
	min-width: 120px;
	font-family: var(--font-mono);
	font-size: 0.7rem;
	text-transform: uppercase;
	letter-spacing: 0.05em;
}
.modal-body .job-detail-value {
	color: var(--text-primary);
	font-family: var(--font-mono);
	font-size: 0.75rem;
	word-break: break-all;
}
.modal-body .job-detail-value.job-detail-stderr {
	color: var(--accent-red);
}
.modal-body pre.job-detail-pre {
	background: #0a0c0d;
	padding: 0.5rem;
	border-radius: 4px;
	font-size: 0.7rem;
	color: var(--text-secondary);
	max-height: 120px;
	overflow: auto;
	white-space: pre-wrap;
	word-break: break-word;
	margin: 0.25rem 0;
}

.modal-body .job-status-badge {
	display: inline-block;
	font-family: var(--font-mono);
	font-size: 0.65rem;
	font-weight: 600;
	text-transform: uppercase;
	padding: 0.1rem 0.4rem;
	border-radius: 3px;
	letter-spacing: 0.04em;
}

.modal-body .job-status-queued {
	background: #1e3a5f33;
	color: var(--accent-blue);
	border: 1px solid #1e3a5f66;
}
.modal-body .job-status-running {
	background: #92400f33;
	color: var(--accent-yellow);
	border: 1px solid #92400f66;
}
.modal-body .job-status-completed {
	background: #065f4633;
	color: var(--accent-green);
	border: 1px solid #065f4666;
}
.modal-body .job-status-failed {
	background: #7f1d1d33;
	color: var(--accent-red);
	border: 1px solid #7f1d1d66;
}
.modal-body .job-status-timeout {
	background: #7f1d1d33;
	color: var(--accent-red);
	border: 1px solid #7f1d1d66;
}
.modal-body .job-status-denied {
	background: #7f1d1d33;
	color: var(--accent-red);
	border: 1px solid #7f1d1d66;
}
.modal-body .job-status-cancelled {
	background: #5f636833;
	color: var(--text-muted);
	border: 1px solid #5f636866;
}

/* ── Billing Section ── */
.billing-section {
	/* inherits .section styles */
}

.plan-badge {
	display: inline-block;
	font-family: var(--font-mono);
	font-size: 0.7rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	padding: 0.2rem 0.6rem;
	border-radius: 4px;
	border: 1px solid;
}

.plan-badge.plan-free {
	background: #5f636833;
	color: var(--text-muted);
	border-color: #5f636866;
}
.plan-badge.plan-pro {
	background: #1e3a5f33;
	color: var(--accent-blue);
	border-color: #1e3a5f66;
}
.plan-badge.plan-enterprise {
	background: #92400f33;
	color: #fbbf24;
	border-color: #92400f66;
}
.plan-badge.plan-free-tier {
	background: #5f636833;
	color: var(--text-muted);
	border-color: #5f636866;
}
.plan-badge.plan-pro-tier {
	background: #1e3a5f33;
	color: var(--accent-blue);
	border-color: #1e3a5f66;
}
.plan-badge.plan-enterprise-tier {
	background: #92400f33;
	color: #fbbf24;
	border-color: #92400f66;
}

.usage-bar-container {
	background: var(--bg-primary);
	border: 1px solid var(--border);
	border-radius: 4px;
	height: 8px;
	overflow: hidden;
	margin: 0.5rem 0;
}
.usage-bar-fill {
	height: 100%;
	border-radius: 3px;
	transition: width 0.3s ease;
	background: var(--accent-green);
}
.usage-bar-fill.fill-warn {
	background: var(--accent-yellow);
}
.usage-bar-fill.fill-danger {
	background: var(--accent-red);
}
.usage-bar-label {
	font-family: var(--font-mono);
	font-size: 0.72rem;
	color: var(--text-secondary);
	display: flex;
	justify-content: space-between;
	margin-bottom: 0.15rem;
}

.plan-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 0.82rem;
	margin-top: 0.75rem;
}
.plan-table th {
	font-family: var(--font-mono);
	font-size: 0.7rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: var(--text-muted);
	text-align: left;
	padding: 0.5rem 0.75rem;
	border-bottom: 1px solid var(--border);
	background: var(--bg-primary);
}
.plan-table td {
	padding: 0.5rem 0.75rem;
	border-bottom: 1px solid var(--border);
	color: var(--text-secondary);
	font-size: 0.78rem;
}
.plan-table tr.plan-current {
	background: #1e3a5f1a;
}
.plan-table tr.plan-current td {
	color: var(--text-primary);
}
.plan-table .plan-feature-check {
	color: var(--accent-green);
}
.plan-table .plan-feature-cross {
	color: var(--text-muted);
}
.plan-table .plan-tier-name {
	font-family: var(--font-mono);
	color: var(--text-primary);
	font-weight: 600;
}
.plan-table .plan-price {
	font-family: var(--font-mono);
	color: var(--accent-cyan);
	font-weight: 600;
}
.plan-table .plan-actions {
	text-align: right;
}
.plan-table .plan-current-label {
	font-size: 0.65rem;
	color: var(--accent-green);
	font-family: var(--font-mono);
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	background: #065f4633;
	border: 1px solid #065f4666;
	padding: 0.1rem 0.4rem;
	border-radius: 3px;
}

.plan-card {
	background: var(--bg-primary);
	border: 1px solid var(--border);
	border-radius: 6px;
	padding: 1rem;
	margin-bottom: 0.75rem;
}
.plan-card.plan-card-current {
	border-color: var(--accent-blue);
	border-width: 2px;
}
.plan-card-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 0.5rem;
}
.plan-card-name {
	font-family: var(--font-mono);
	font-size: 0.9rem;
	font-weight: 700;
	color: var(--text-primary);
	text-transform: uppercase;
	letter-spacing: 0.06em;
}
.plan-card-price {
	font-family: var(--font-mono);
	font-size: 1.1rem;
	font-weight: 700;
	color: var(--accent-cyan);
}
.plan-card-features {
	list-style: none;
	padding: 0;
	margin: 0 0 0.75rem 0;
}
.plan-card-features li {
	font-size: 0.78rem;
	color: var(--text-secondary);
	padding: 0.25rem 0;
	border-bottom: 1px solid var(--border);
	display: flex;
	align-items: center;
	gap: 0.4rem;
}
.plan-card-features li::before {
	content: "✓";
	color: var(--accent-green);
	font-weight: 700;
}

.upgrade-btn {
	font-family: var(--font-mono);
	font-size: 0.78rem;
	padding: 0.5rem 1rem;
	background: var(--accent-blue);
	color: #0b0d0e;
	border: none;
	border-radius: var(--radius);
	cursor: pointer;
	font-weight: 600;
	transition: all 0.15s;
	white-space: nowrap;
}
.upgrade-btn:hover {
	background: #4fc3f7;
	transform: translateY(-1px);
}
.upgrade-btn:disabled {
	opacity: 0.4;
	cursor: not-allowed;
	transform: none;
}
.upgrade-btn.upgrade-btn-smoke {
	background: transparent;
	color: var(--text-muted);
	border: 1px solid var(--border);
}
.upgrade-btn.upgrade-btn-smoke:hover {
	border-color: var(--accent-blue);
	color: var(--accent-blue);
	background: #1a1d20;
	transform: none;
}
.billing-status-details {
	font-size: 0.82rem;
	line-height: 1.5;
	color: var(--text-secondary);
}
.billing-status-details .detail-row {
	display: flex;
	padding: 0.25rem 0;
	border-bottom: 1px solid var(--border);
}
.billing-status-details .detail-label {
	min-width: 140px;
	font-family: var(--font-mono);
	font-size: 0.7rem;
	color: var(--text-muted);
	text-transform: uppercase;
	letter-spacing: 0.05em;
}
.billing-status-details .detail-value {
	color: var(--text-primary);
	font-family: var(--font-mono);
	font-size: 0.75rem;
}
.manage-sub-link {
	font-family: var(--font-mono);
	font-size: 0.7rem;
	color: var(--accent-blue);
	text-decoration: underline;
	cursor: pointer;
	transition: color 0.15s;
}
.manage-sub-link:hover {
	color: #4fc3f7;
}
.billing-plans-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	gap: 0.75rem;
	margin-top: 0.5rem;
}
.billing-section .loading {
	padding: 0.5rem 0;
}

/* ── Scheduled Tasks (Pass 13) ── */
.schedules-section .schedule-form {
	background: var(--bg-card);
	border: 1px solid var(--border);
	border-radius: var(--radius);
	padding: 1rem;
	margin-bottom: 1rem;
}
.schedule-form-row {
	display: flex;
	gap: 1rem;
	margin-bottom: 0.75rem;
}
.schedule-form-row .form-group {
	flex: 1;
}
.schedule-form-row .form-group-wide {
	flex: 2;
}
.schedule-form-actions {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	margin-top: 0.5rem;
}
.schedule-form-actions .form-error {
	margin-left: 0.5rem;
	color: var(--accent-red);
	font-size: 0.75rem;
}
.schedule-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 0.75rem;
}
.schedule-table th {
	text-align: left;
	padding: 0.5rem 0.4rem;
	border-bottom: 1px solid var(--border);
	color: var(--text-muted);
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.05em;
}
.schedule-table td {
	padding: 0.5rem 0.4rem;
	border-bottom: 1px solid var(--border);
	vertical-align: middle;
}
.schedule-table tr:hover {
	background: var(--bg-card-hover);
}
.schedule-name {
	color: var(--text-primary);
	font-weight: 500;
}
.schedule-action {
	color: var(--accent-blue);
	font-family: var(--font-mono);
	font-size: 0.7rem;
}
.schedule-cron {
	font-family: var(--font-mono);
	font-size: 0.7rem;
	color: var(--accent-cyan);
}
.schedule-next-run,
.schedule-last-run {
	font-family: var(--font-mono);
	font-size: 0.7rem;
}
.schedule-status-completed {
	color: var(--accent-green);
}
.schedule-status-failed {
	color: var(--accent-red);
}
.schedule-status-disabled {
	color: var(--text-muted);
}
.schedule-toggle-btn {
	border: 1px solid var(--border);
	border-radius: 4px;
	padding: 0.2rem 0.5rem;
	font-size: 0.7rem;
	font-family: var(--font-mono);
	cursor: pointer;
	background: transparent;
	color: var(--text-secondary);
	transition: all 0.15s;
}
.schedule-toggle-btn:hover {
	background: var(--bg-card-hover);
	border-color: var(--border-accent);
}
.schedule-toggle-btn.on {
	color: var(--accent-green);
	border-color: var(--accent-green);
}
.schedule-toggle-btn.off {
	color: var(--accent-red);
	border-color: var(--accent-red);
}
.schedule-run-now-btn {
	border: 1px solid var(--border);
	border-radius: 4px;
	padding: 0.2rem 0.5rem;
	font-size: 0.7rem;
	font-family: var(--font-mono);
	cursor: pointer;
	background: transparent;
	color: var(--accent-blue);
	transition: all 0.15s;
}
.schedule-run-now-btn:hover {
	background: var(--accent-blue);
	color: var(--bg-primary);
}
.schedule-delete-btn {
	border: none;
	border-radius: 4px;
	padding: 0.2rem 0.4rem;
	font-size: 0.7rem;
	cursor: pointer;
	background: transparent;
	color: var(--accent-red);
	opacity: 0.6;
	transition: all 0.15s;
}
.schedule-delete-btn:hover {
	opacity: 1;
	background: rgba(248, 113, 113, 0.1);
}
.schedule-history {
	background: var(--bg-drawer);
	border: 1px solid var(--border);
	border-radius: var(--radius);
	padding: 0.5rem;
	margin-top: 0.5rem;
}
.schedule-history h4 {
	color: var(--text-muted);
	font-size: 0.7rem;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	margin-bottom: 0.3rem;
}
.schedule-history-item {
	font-size: 0.7rem;
	font-family: var(--font-mono);
	padding: 0.15rem 0;
}
.schedule-empty {
	color: var(--text-muted);
	font-style: italic;
	padding: 0.5rem 0;
}
.form-textarea {
	width: 100%;
	background: var(--bg-primary);
	border: 1px solid var(--border);
	border-radius: var(--radius);
	color: var(--text-primary);
	padding: 0.4rem 0.6rem;
	font-size: 0.75rem;
	font-family: var(--font-sans);
	outline: none;
	resize: vertical;
}
.form-textarea:focus {
	border-color: var(--accent-blue);
}
.form-hint {
	display: block;
	color: var(--text-muted);
	font-size: 0.65rem;
	margin-top: 0.2rem;
}

/* ── Site Audit Leads (Pass 18) ── */
.leads-summary-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(110px, 1fr));
	gap: 0.5rem;
	margin-bottom: 0.75rem;
}
.lead-stat-card {
	background: var(--bg-primary);
	border: 1px solid var(--border);
	border-radius: 6px;
	padding: 0.5rem 0.75rem;
	text-align: center;
}
.lead-stat-label {
	display: block;
	font-size: 0.65rem;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: var(--text-muted);
	margin-bottom: 0.15rem;
}
.lead-stat-value {
	font-family: var(--font-mono);
	font-size: 1.2rem;
	font-weight: 600;
	color: var(--text-primary);
}
.lead-stat-new {
	color: var(--accent-blue);
}
.lead-stat-contacted {
	color: var(--accent-yellow);
}
.lead-stat-qualified {
	color: var(--accent-orange);
}
.lead-stat-won {
	color: var(--accent-green);
}
.lead-stat-lost {
	color: var(--accent-red);
}

.leads-table-wrapper {
	overflow-x: auto;
}
.leads-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 0.78rem;
}
.leads-table th {
	font-family: var(--font-mono);
	font-size: 0.65rem;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: var(--text-muted);
	text-align: left;
	padding: 0.4rem 0.5rem;
	border-bottom: 1px solid var(--border);
	background: var(--bg-primary);
	white-space: nowrap;
}
.leads-table td {
	padding: 0.35rem 0.5rem;
	border-bottom: 1px solid var(--border);
	color: var(--text-secondary);
	font-size: 0.75rem;
}
.leads-table td a {
	color: var(--accent-blue);
	text-decoration: none;
}
.leads-table td a:hover {
	text-decoration: underline;
}
.lead-cell-date {
	font-family: var(--font-mono);
	font-size: 0.65rem;
	color: var(--text-muted);
	white-space: nowrap;
}
.lead-status-badge {
	display: inline-block;
	font-family: var(--font-mono);
	font-size: 0.65rem;
	font-weight: 600;
	text-transform: uppercase;
	padding: 0.1rem 0.35rem;
	border-radius: 3px;
}
.lead-status-new {
	background: #1e3a5f33;
	color: var(--accent-blue);
	border: 1px solid #1e3a5f66;
}
.lead-status-contacted {
	background: #92400f33;
	color: var(--accent-yellow);
	border: 1px solid #92400f66;
}
.lead-status-qualified {
	background: #92400f33;
	color: var(--accent-orange);
	border: 1px solid #92400f66;
}
.lead-status-won {
	background: #065f4633;
	color: var(--accent-green);
	border: 1px solid #065f4666;
}
.lead-status-lost {
	background: #7f1d1d33;
	color: var(--accent-red);
	border: 1px solid #7f1d1d66;
}

.lead-status-select {
	font-family: var(--font-mono);
	font-size: 0.7rem;
	padding: 0.2rem 0.4rem;
	background: var(--bg-primary);
	border: 1px solid var(--border);
	border-radius: 4px;
	color: var(--text-secondary);
	cursor: pointer;
	outline: none;
}
.lead-status-select:focus {
	border-color: var(--accent-blue);
}
