/**
 * Octa Console Design System
 *
 * The protected Console uses one typography, color, spacing, surface, and
 * control contract. Feature plugins may own workflow layout, but should use
 * these tokens instead of creating another visual scale.
 */

body.octa-console-page {
	--octa-console-font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, Helvetica, sans-serif;
	--octa-console-font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
	--octa-console-color-ink: #102725;
	--octa-console-color-green: #144f48;
	--octa-console-color-green-hover: #0d3935;
	--octa-console-color-lime: #d9f77e;
	--octa-console-color-mint: #b8ead5;
	--octa-console-color-paper: #ffffff;
	--octa-console-color-canvas: #f7f8f4;
	--octa-console-color-cream: #f5f3ea;
	--octa-console-color-line: #d8ded7;
	--octa-console-color-muted: #5f706c;
	--octa-console-color-danger: #8b3029;
	--octa-console-text-micro: 12px;
	--octa-console-text-meta: 14px;
	--octa-console-text-label: 15px;
	--octa-console-text-control: 16px;
	--octa-console-text-body: 17px;
	--octa-console-text-body-large: 19px;
	--octa-console-heading-4: 20px;
	--octa-console-heading-3: clamp(23px, 2vw, 30px);
	--octa-console-heading-2: clamp(31px, 3vw, 42px);
	--octa-console-heading-1: clamp(43px, 4.5vw, 62px);
	--octa-console-leading-tight: 1.12;
	--octa-console-leading-body: 1.62;
	--octa-console-space-1: 6px;
	--octa-console-space-2: 10px;
	--octa-console-space-3: 14px;
	--octa-console-space-4: 18px;
	--octa-console-space-5: 24px;
	--octa-console-space-6: 32px;
	--octa-console-space-7: 42px;
	--octa-console-gutter: clamp(16px, 2.4vw, 40px);
	--octa-console-section-gap: clamp(24px, 3.5vw, 40px);
	--octa-console-panel-padding: clamp(24px, 3vw, 42px);
	--octa-console-radius-control: 10px;
	--octa-console-radius-card: 18px;
	--octa-console-radius-panel: 24px;
	--octa-console-shadow-card: 0 12px 34px rgba(16, 39, 37, .07);
	--octa-console-shadow-raised: 0 22px 56px rgba(16, 39, 37, .14);
	--octa-console-focus: 0 0 0 3px rgba(20, 79, 72, .2);
	--octa-console-control-height: 48px;
	--octa-console-rail-width: clamp(220px, 15vw, 278px);
	--octa-console-content-max: none;
	background: var(--octa-console-color-canvas);
	color: var(--octa-console-color-ink);
	font-family: var(--octa-console-font-sans);
	font-size: var(--octa-console-text-body);
	line-height: var(--octa-console-leading-body);
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}

/* Full-width Console framing. Public pages never receive this body class. */
body.octa-console-page .site-main,
body.octa-console-page .entry-single,
body.octa-console-page .entry-single > .entry-header,
body.octa-console-page .entry-single > .entry-content {
	width: 100%;
	max-width: var(--octa-console-content-max);
	box-sizing: border-box;
	margin-inline: 0;
}

body.octa-console-page .site-main { padding-top: 0; }
body.octa-console-page .entry-single > .entry-header,
body.octa-console-page .entry-single > .entry-content { padding-inline: var(--octa-console-gutter); }

body.octa-console-page .entry-content {
	color: var(--octa-console-color-ink);
	font-family: var(--octa-console-font-sans);
	font-size: var(--octa-console-text-body);
	line-height: var(--octa-console-leading-body);
}

body.octa-console-page .entry-content *,
body.octa-console-page .entry-content *::before,
body.octa-console-page .entry-content *::after { box-sizing: border-box; }

/* Map existing feature variables to the shared source of truth. */
body.octa-console-page .octa-admin,
body.octa-console-page .octa-admin-account-card {
	--admin-ink: var(--octa-console-color-ink);
	--admin-green: var(--octa-console-color-green);
	--admin-lime: var(--octa-console-color-lime);
	--admin-cream: var(--octa-console-color-cream);
	--admin-line: var(--octa-console-color-line);
	--admin-muted: var(--octa-console-color-muted);
	--admin-panel-padding: var(--octa-console-panel-padding);
	--admin-panel-radius: var(--octa-console-radius-panel);
	--admin-control-radius: var(--octa-console-radius-control);
	--admin-view-gap: var(--octa-console-section-gap);
	--admin-panel-shadow: var(--octa-console-shadow-card);
}

body.octa-console-page .octa-org,
body.octa-console-page .octa-engagement-workspace {
	--org-ink: var(--octa-console-color-ink);
	--org-green: var(--octa-console-color-green);
	--org-lime: var(--octa-console-color-lime);
	--org-cream: var(--octa-console-color-cream);
	--org-line: var(--octa-console-color-line);
	--org-muted: var(--octa-console-color-muted);
	--org-type-micro: var(--octa-console-text-micro);
	--org-type-meta: var(--octa-console-text-meta);
	--org-type-small: var(--octa-console-text-meta);
	--org-type-label: var(--octa-console-text-label);
	--org-type-body: var(--octa-console-text-body);
	--org-type-body-large: var(--octa-console-text-body-large);
	--org-type-subheading: var(--octa-console-heading-4);
	--org-type-card-title: var(--octa-console-heading-3);
}

body.octa-console-page .octa-ai-workspace {
	--octa-ai-ink: var(--octa-console-color-ink);
	--octa-ai-green: var(--octa-console-color-green);
	--octa-ai-lime: var(--octa-console-color-lime);
	--octa-ai-cream: var(--octa-console-color-cream);
	--octa-ai-line: var(--octa-console-color-line);
	--octa-ai-muted: var(--octa-console-color-muted);
}

body.octa-console-page .octa-account {
	--octa-account-ink: var(--octa-console-color-ink);
	--octa-account-green: var(--octa-console-color-green);
	--octa-account-lime: var(--octa-console-color-lime);
	--octa-account-cream: var(--octa-console-color-cream);
	--octa-account-line: var(--octa-console-color-line);
	--octa-account-radius: var(--octa-console-radius-panel);
}

/* Typography. Deliberately scoped to Console content, not the site header. */
body.octa-console-page .entry-content :is(.octa-admin, .octa-org, .octa-engagement-workspace, .octa-ai-workspace, .octa-account) {
	font-family: var(--octa-console-font-sans);
	font-size: var(--octa-console-text-body);
	line-height: var(--octa-console-leading-body);
}

/*
 * Feature styles historically used font shorthands in isolated controls.
 * Keep the Console family authoritative for every descendant, while retaining
 * the deliberate monospace treatment used for identifiers and source excerpts.
 */
body.octa-console-page .entry-content :is(.octa-admin, .octa-org, .octa-engagement-workspace, .octa-ai-workspace, .octa-account) :where(*:not(code):not(pre):not(kbd):not(samp)) {
	font-family: var(--octa-console-font-sans);
}

body.octa-console-page .entry-content :is(h1, h2, h3, h4) {
	margin-block-start: 0;
	color: var(--octa-console-color-ink);
	font-family: var(--octa-console-font-sans);
	font-weight: 750;
	line-height: var(--octa-console-leading-tight);
	letter-spacing: -.025em;
	text-wrap: balance;
}

body.octa-console-page .entry-content h1 { font-size: var(--octa-console-heading-1); }
body.octa-console-page .entry-content h2 { font-size: var(--octa-console-heading-2); }
body.octa-console-page .entry-content h3 { font-size: var(--octa-console-heading-3); }
body.octa-console-page .entry-content h4 { font-size: var(--octa-console-heading-4); }

body.octa-console-page .entry-content :is(p, li, dd):not([class*="kicker"]):not([class*="eyebrow"]):not([class*="overline"]) {
	font-size: var(--octa-console-text-body);
	line-height: var(--octa-console-leading-body);
}
body.octa-console-page .entry-content :is(small, figcaption) { font-size: var(--octa-console-text-meta); }
body.octa-console-page .entry-content :is([class*="kicker"], [class*="eyebrow"], [class*="overline"]) {
	font-size: var(--octa-console-text-micro);
	font-weight: 800;
	letter-spacing: .12em;
	line-height: 1.35;
	text-transform: uppercase;
}

body.octa-console-page .entry-content :is(.octa-admin-hero, .octa-org-hero, .octa-workspace-hero, .octa-ai-hero, .octa-account-hero) :is(h1, h2, h3, h4) {
	color: #fff;
}

/* The consultant workbench and independent quality review use one role scale. */
body.octa-console-page .entry-content :is(.octa-solution-workbench, .octa-quality-review) strong {
	font-size: var(--octa-console-text-label);
}
body.octa-console-page .entry-content :is(.octa-solution-workbench, .octa-quality-review) :is(small, em) {
	font-size: var(--octa-console-text-meta);
}
body.octa-console-page .entry-content :is(.octa-solution-workbench, .octa-quality-review) :is(summary, a, button) {
	font-size: var(--octa-console-text-label);
}
body.octa-console-page .entry-content :is(.octa-solution-workbench, .octa-quality-review) :is(.octa-quality-meta span, .octa-quality-decision > div:first-of-type > span, .octa-quality-history-heading > span, .octa-solution-review-form-heading span, .octa-solution-actions span) {
	font-size: var(--octa-console-text-meta);
}
body.octa-console-page .entry-content :is(.octa-solution-workbench, .octa-quality-review) :is(.octa-quality-card > summary strong, .octa-saved-solution > header h3) {
	font-size: var(--octa-console-text-body-large);
}

/* Forms and actions share one readable control contract. */
body.octa-console-page .entry-content :is(label, legend) {
	font-family: var(--octa-console-font-sans);
	font-size: var(--octa-console-text-label);
	font-weight: 700;
	line-height: 1.4;
}

body.octa-console-page .entry-content :is(input:not([type="checkbox"]):not([type="radio"]), select, textarea) {
	min-height: var(--octa-console-control-height);
	border-color: #9fb2ad;
	border-radius: var(--octa-console-radius-control);
	background-color: var(--octa-console-color-paper);
	color: var(--octa-console-color-ink);
	font-family: var(--octa-console-font-sans);
	font-size: var(--octa-console-text-control);
	line-height: 1.45;
}

body.octa-console-page .entry-content :is(button, [type="button"], [type="submit"], .button, [role="button"]) {
	border-radius: var(--octa-console-radius-control);
	font-family: var(--octa-console-font-sans);
	font-size: var(--octa-console-text-label);
	font-weight: 750;
	line-height: 1.2;
}

body.octa-console-page .entry-content :is(a, button, input, select, textarea, summary):focus-visible {
	outline: 2px solid var(--octa-console-color-green);
	outline-offset: 3px;
	box-shadow: var(--octa-console-focus);
}

/* Shared data and navigation primitives. */
body.octa-console-page .entry-content table { font-size: var(--octa-console-text-control); line-height: 1.5; }
body.octa-console-page .entry-content th {
	color: var(--octa-console-color-muted);
	font-size: var(--octa-console-text-micro);
	font-weight: 800;
	letter-spacing: .06em;
	text-transform: uppercase;
}
body.octa-console-page .entry-content td { font-size: var(--octa-console-text-control); }
body.octa-console-page .entry-content code { font-family: var(--octa-console-font-mono); font-size: .88em; }

body.octa-console-page .entry-content :is(.octa-admin-panel, .octa-org-panel, .octa-ai-panel, .octa-account-section, .octa-quality-card, .octa-release-card) {
	border-color: var(--octa-console-color-line);
	border-radius: var(--octa-console-radius-panel);
	box-shadow: var(--octa-console-shadow-card);
}

body.octa-console-page .octa-console-tab-list {
	border-color: var(--octa-console-color-line);
	border-radius: var(--octa-console-radius-card);
	background: #f2f6f2;
}
body.octa-console-page .octa-console-tab {
	min-height: 44px;
	border-radius: var(--octa-console-radius-control);
	color: var(--octa-console-color-muted);
	font-family: var(--octa-console-font-sans);
	font-size: var(--octa-console-text-label);
}

/* Left-rail typography: readable and consistent in every Console workspace. */
body.octa-console-page .octa-admin-rail-brand strong,
body.octa-console-page .octa-ai-rail-brand strong,
body.octa-console-page .octa-engagement-section-rail > header strong {
	font-size: 16px;
	line-height: 1.3;
}

body.octa-console-page :is(.octa-admin-rail-brand small, .octa-admin-rail-user small, .octa-ai-rail-brand small, .octa-ai-rail-footer small, .octa-engagement-section-rail > header small) {
	font-size: 12px;
	line-height: 1.4;
}

body.octa-console-page .octa-admin-rail nav > p,
body.octa-console-page .octa-ai-nav-group > p {
	font-size: 10px;
	line-height: 1.35;
}

body.octa-console-page .octa-admin-rail nav > a > strong,
body.octa-console-page .octa-ai-nav-link,
body.octa-console-page .octa-engagement-section-rail nav span {
	font-size: 14px;
	font-weight: 750;
	line-height: 1.35;
}

body.octa-console-page .octa-admin-rail nav > a > span,
body.octa-console-page .octa-engagement-section-rail nav :is(i, b) {
	font-size: 10px;
}

body.octa-console-page .octa-admin-rail-user strong {
	font-size: 13px;
	line-height: 1.35;
}

@media (max-width: 860px) {
	body.octa-console-page {
		--octa-console-gutter: clamp(12px, 3vw, 22px);
		--octa-console-panel-padding: clamp(20px, 4vw, 30px);
		--octa-console-heading-1: clamp(34px, 8vw, 46px);
	}
}

@media (max-width: 560px) {
	body.octa-console-page {
		--octa-console-text-micro: 11px;
		--octa-console-text-meta: 13px;
		--octa-console-text-label: 14px;
		--octa-console-text-control: 15px;
		--octa-console-text-body: 16px;
		--octa-console-text-body-large: 18px;
		--octa-console-heading-2: clamp(25px, 7vw, 32px);
		--octa-console-heading-3: clamp(20px, 5vw, 24px);
		--octa-console-radius-panel: 18px;
	}
	body.octa-console-page .entry-single > .entry-header,
	body.octa-console-page .entry-single > .entry-content { padding-inline: var(--octa-console-gutter); }
}

@media (prefers-reduced-motion: reduce) {
	body.octa-console-page .entry-content *,
	body.octa-console-page .entry-content *::before,
	body.octa-console-page .entry-content *::after {
		scroll-behavior: auto !important;
		transition-duration: .01ms !important;
		animation-duration: .01ms !important;
		animation-iteration-count: 1 !important;
	}
}
