@charset "utf-8";

/* Shared Product Flagship primitives. */
.button, .button-primary, .button-secondary, .btn { display: inline-flex; align-items: center; justify-content: center; min-height: 46px; padding: 10px 18px; border: 1px solid transparent; border-radius: 8px; font-size: 14px; font-weight: 700; line-height: 1.2; }
.button, .button-primary, .btn-primary { color: var(--page); background: var(--blue); border-color: var(--blue); }
.button:hover, .button-primary:hover, .btn-primary:hover { color: var(--page); background: var(--blue-dark); border-color: var(--blue-dark); }
.button-secondary, .btn-secondary { color: var(--ink); background: var(--soft-blue); border-color: var(--line); }
.button-secondary:hover, .btn-secondary:hover { color: var(--blue-dark); border-color: var(--blue); }
.eyebrow { display: flex; align-items: center; gap: 9px; margin: 0 0 18px; color: var(--blue-dark); font-size: 13px; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; }
.eyebrow::before { content: ""; width: 24px; height: 3px; flex: 0 0 auto; background: var(--orange); }
.section { padding-block: 88px; }
.page-hero { padding-block: 80px 64px; background: var(--page); border-bottom: 1px solid var(--line); }
.page-hero h1, h1 { max-width: 820px; font-size: clamp(42px, 5vw, var(--h1-max)); line-height: 1.04; letter-spacing: -.045em; text-wrap: balance; }
h2 { max-width: 820px; font-size: clamp(28px, 3.5vw, 42px); line-height: 1.1; letter-spacing: -.035em; text-wrap: balance; }
h3 { font-size: 22px; line-height: 1.25; letter-spacing: -.02em; text-wrap: balance; }
.prose { max-width: 820px; }
.prose > * + * { margin-top: 18px; }
.prose p, .lead, .muted { color: var(--muted); }
.status { display: inline-flex; align-items: center; gap: 8px; color: var(--success); font-size: 13px; font-weight: 750; }
.status::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: currentColor; }
.diagram-flow { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 16px; align-items: stretch; }
.diagram-node { min-width: 0; padding: 18px; background: var(--page); border: 1px solid var(--line); border-radius: 10px; }
.diagram-node strong, .diagram-node span { display: block; }
.diagram-node span { margin-top: 6px; color: var(--muted); font-size: 14px; }
.diagram-canvas { width: 100%; height: auto; }
.diagram-canvas .diagram-node { padding: 0; background: transparent; border: 0; border-radius: 0; }
.diagram-canvas .diagram-flow { display: initial; fill: none; stroke: var(--muted); stroke-width: 1.5; vector-effect: non-scaling-stroke; }
.diagram-canvas rect { fill: var(--page); stroke: var(--line); stroke-width: 1.25; vector-effect: non-scaling-stroke; }
.diagram-canvas text { fill: var(--ink); font: 650 13px/1.2 Inter, "Segoe UI", Arial, system-ui, sans-serif; }
.diagram-canvas .diagram-tech, .diagram-canvas .diagram-label { fill: var(--muted); font: 650 12px/1.2 Consolas, monospace; }
.diagram-canvas .diagram-flow--binding { stroke: var(--blue); }
.diagram-canvas .diagram-flow--success { stroke: var(--success); }
.diagram-canvas .diagram-flow--failure { stroke: var(--orange); }
.diagram-canvas marker path { fill: var(--muted); stroke: none; }
.diagram-layout--mobile { display: none; }
.code-window { overflow: hidden; color: #E8ECF6; background: var(--ink); border-radius: 12px; box-shadow: 10px 10px 0 var(--soft-orange); }
.code-window pre { margin: 0; padding: 22px; overflow: auto; font: 500 13px/1.8 Consolas, monospace; }
.data-table-wrap { width: 100%; overflow-x: auto; border-top: 1px solid var(--line); }
.data-table-wrap table { width: 100%; min-width: 700px; border-collapse: collapse; }
.data-table-wrap th, .data-table-wrap td { padding: 14px 16px 14px 0; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
.data-table-wrap th { color: var(--muted); font-size: 12px; text-transform: uppercase; }
.notice { padding: 18px 20px; color: var(--muted); background: var(--soft-orange); border-left: 4px solid var(--orange); }
.page-index { display: grid; gap: 4px; align-content: start; }
.page-index a { padding: 9px 12px; color: var(--muted); border-left: 3px solid transparent; font-size: 14px; }
.page-index a:hover, .page-index a[aria-current] { color: var(--ink); border-color: var(--blue); }
.document-layout { display: grid; grid-template-columns: minmax(190px, 260px) minmax(0, 1fr); gap: 56px; align-items: start; }
.document-layout > :first-child { position: sticky; top: 100px; }

/* Temporary v1.1 body compatibility until route-specific rewrites land. */
.container { width: min(calc(100% - 48px), var(--shell)); margin-inline: auto; }
.layout-12 { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 24px; }
.hero { padding-block: 88px; border-bottom: 1px solid var(--line); }
.hero-grid, .split-section, .stats-identity-layout, .contacts-layout { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 56px; align-items: center; }
.hero-copy { max-width: 680px; }
.lead { max-width: 820px; margin-top: 22px; font-size: 20px; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 30px; }
.section-border { border-bottom: 1px solid var(--line); }
.section-tight { padding-block: 64px; }
.text-link, .technical-inline { color: var(--blue-dark); }
.problem-strip, .process-grid, .area-grid, .grid-2, .grid-3, .grid-4, .security-list, .metric-grid, .metrics-rail, .stats-summary-rail { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); margin-top: 40px; border-top: 1px solid var(--line); }
.problem-item, .process-card, .area-card, .card, .capability, .metric, .security-item, .metrics-rail > div, .stats-summary-rail > div { padding: 24px; border-bottom: 1px solid var(--line); }
.info-list, .definition-list, .decision-table, .release-timeline, .legal-index { border-top: 1px solid var(--line); }
.info-row, .definition-list > div, .decision-table > div, .release-entry, .legal-index a { padding-block: 16px; border-bottom: 1px solid var(--line); }
.diagram-shell, .table-scroll, .control-matrix { width: 100%; overflow-x: auto; }
.chapter-layout, .legal-layout { display: grid; grid-template-columns: minmax(190px, 260px) minmax(0, 1fr); gap: 56px; align-items: start; }
.chapter-index, .legal-index { position: sticky; top: 100px; display: grid; }
.technical-chapter, .developer-section, .legal-document section { padding-bottom: 56px; margin-bottom: 56px; border-bottom: 1px solid var(--line); }
.code-block, .developer-contract, .tech-panel, .code-panel { overflow: hidden; padding: 22px; color: #E8ECF6; background: var(--ink); }
.table-scroll table, .control-matrix table, .endpoint-table, .comparison-table { width: 100%; min-width: 700px; border-collapse: collapse; }
.table-scroll th, .table-scroll td, .control-matrix th, .control-matrix td, .endpoint-table th, .endpoint-table td, .comparison-table th, .comparison-table td { padding: 14px; border-bottom: 1px solid var(--line); text-align: left; }

@media (max-width: 760px) {
  .section { padding-block: 58px; }
  .page-hero { padding-block: 54px 44px; }
  .page-hero h1, h1 { font-size: clamp(32px, 9vw, 36px); }
  .document-layout, .chapter-layout, .legal-layout, .hero-grid, .split-section, .stats-identity-layout, .contacts-layout { grid-template-columns: 1fr; gap: 34px; }
  .document-layout > :first-child, .chapter-index, .legal-index { position: static; }
  .container { width: min(calc(100% - 28px), var(--shell)); }
  .layout-12 { grid-template-columns: 1fr; }
  .lead { font-size: 18px; }
  .diagram-layout--desktop { display: none; }
  .diagram-layout--mobile { display: block; }
}

.analytics-consent{position:fixed;z-index:120;right:clamp(12px,2vw,24px);bottom:clamp(12px,2vw,24px);display:grid;grid-template-columns:1fr;gap:14px;width:min(560px,calc(100vw - 24px));padding:16px 18px;border:1px solid var(--line,#c8d2dc);border-radius:14px;background:#fff;box-shadow:0 14px 40px rgba(18,49,81,.16)}
.analytics-consent__copy{display:grid;gap:5px}.analytics-consent__copy strong{font-size:.95rem;color:var(--ink,#123151)}.analytics-consent__copy p{margin:0;font-size:.875rem;line-height:1.45}.analytics-consent__copy a{width:max-content;color:var(--accent,#0b66c3);font-size:.8125rem}
.analytics-consent__actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.analytics-consent__actions button{min-height:38px;padding:8px 13px;border:1px solid #aab7c4;border-radius:8px;background:#fff;color:var(--ink,#123151);font:inherit;font-size:.8125rem;font-weight:700;cursor:pointer}.analytics-consent__actions button:focus-visible{outline:none;border-color:var(--accent,#0b66c3);box-shadow:0 0 0 3px rgba(11,102,195,.2)}.analytics-consent__actions .button-primary{border-color:var(--accent,#0b66c3);background:var(--accent,#0b66c3);color:#fff}
.analytics-preferences{position:fixed;z-index:80;left:12px;bottom:12px;min-height:32px;padding:5px 9px;border:1px solid var(--line,#c8d2dc);border-radius:999px;background:rgba(255,255,255,.92);color:var(--ink,#123151);opacity:.58;font:inherit;font-size:.6875rem;cursor:pointer;box-shadow:0 4px 14px rgba(18,49,81,.09);transition:opacity .16s ease,box-shadow .16s ease}.analytics-preferences:hover,.analytics-preferences:focus-visible{opacity:1}.analytics-preferences:focus-visible{outline:2px solid var(--accent,#0b66c3);outline-offset:2px;box-shadow:0 5px 18px rgba(18,49,81,.14)}
@media (max-width:680px){.analytics-consent{right:8px;bottom:8px;width:calc(100vw - 16px);padding:15px}.analytics-consent__actions{flex-direction:column;justify-content:stretch}.analytics-consent__actions button{width:100%}.analytics-preferences{left:8px;bottom:8px}}
