/* M16 — the AKOS portal's own shell sheet, loaded ONLY on the client portal's document (the conditional
   `<link>` in App.razor). It exists for the part of the second shell that is genuinely its own, and it is
   deliberately thin: the shell, the rail, the top bar, the theme toggle, the session chip and the page
   root are the SAME machinery both portals render with the same class names, so the skin lane's work on
   `portal.css` lands on both consoles in one edit. A copy of those rules here would be a second palette
   and a second place for the two portals to drift apart.

   Rules only through the aliases — never a literal colour and never a `--bb-` step — for the same reason
   every other sheet in this library is: the alias is the theme's own contract with the page, and the
   literal-colour fact refuses the rest.

   Lane A owns this file after M-R1 (docs/LANES.md), and appends below the marker rather than rewriting
   what is above it. */

/* The client's geometric mark is an inline SVG, and an inline SVG sits on the text baseline: inside the
   flex row of `.brand` and `.signin-brand` that shows up as the mark riding low against the wordmark. */
.akos-mark { display: block; }

/* lanes: append below — lane A's AKOS shell rules go on the line under this marker. */

/* ---------------------------------------------------------------------------------------------------------
   M16 A-R1 — the AKOS pages' own rules, and the seven classes X47 found with no rule anywhere.

   The names are all below the marker (lane A owns this file after M-R1) and every value is an ALIAS: no
   literal colour and no `--bb-` step, per the sheet's contract and the literal-colour fact. Six of the seven
   `docs/LANES.md` X47 classes filed to lane A get a rule here — `plain`, `lanes`, `lane`, `lane-head`,
   `goal-bar`, `admission-reason-cell` — and `pipeline-grid` was instead DELETED from `AkosMetrics` (X47
   allows either). The fact `ThemeTests.Every_class_a_component_renders_is_styled_somewhere` names them.
   --------------------------------------------------------------------------------------------------------- */

/* The turn page's plain lists (observations, interpretations, unknowns, escalations, agent sessions). The
   browser's default marker and indent made a record read as a bulleted handout. */
.plain { list-style: none; margin: 4px 0; padding: 0; }
.plain li { margin: 0 0 2px; }

/* The Plan card's lanes: one step per persona, tied by the record's own `dependsOn` order. */
.lanes { display: flex; flex-direction: column; gap: 8px; }
.lane { border-left: 2px solid var(--line-1); padding-left: 10px; }
.lane-head { display: flex; align-items: center; gap: 8px; margin-bottom: 2px; }

/* The Goal bar keeps the card's body and adds only the label's own line. */
.goal-bar .tile-label { display: block; }

/* The admissions reason column: a clause, folded, and never the widest cell on the table. */
.admission-reason-cell { vertical-align: top; max-width: 38ch; }

/* UMBRAL's four verbs as a pill legend above the table (A-R3). */
.admission-verbs { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin: 0 0 8px; }

/* `pipeline-grid` was deleted from `AkosMetrics` rather than given a rule: the seven-column table already
   sits in `.grid-scroll`, and a `min-width` here would defeat the ≤620px card fallback. X47 allows either. */

/* A page's pager: two bordered acts and the page's own figure, on one line. */
.pager { gap: 8px; align-items: center; }

/* The reply's secondary line: the kind (or a `tag-*`), the language and the instant, separated by space. */
.reply-meta { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }

/* The progress rail's states. `done` is `--ok` (portal.css); the rung the record STANDS ON is the accent
   mark, and a step the record does not hold is faint with the record's own word beside it. Order matters:
   `current` must be declared after `done` so it wins on a rung that carries both. */
.progress-step-absent { color: var(--text-secondary); }
.progress-step-absent .progress-mark { background: var(--idle); }
.progress-absent { color: var(--text-faint); }
.progress-step-current .progress-mark { background: var(--accent-mark); }

/* The Acción card's ladder uses the same dot+word shape as the pipeline rail but is NOT that rail: the
   pipeline progress is the six named acts, the ladder is the five action rungs. One class for the layout,
   because a selector that matched both is exactly what a unit fact tripped on. */
.action-ladder { display: flex; flex-wrap: wrap; gap: 10px; }

/* THE ONE LIVE SIGNAL. A dot that pulses while the page is reading the turn's stream; the word `en vivo`
   rides beside it. Motion is one second and off entirely under `prefers-reduced-motion`, exactly as
   portal.css's own reduced-motion block requires of every animation. */
.live-signal::before { animation: akos-live-pulse 1s ease-in-out infinite; }

@keyframes akos-live-pulse
{
    0%, 100% { opacity: 1; }
    50% { opacity: .35; }
}

@media (prefers-reduced-motion: reduce)
{
    .live-signal::before { animation: none; }
}

/* ---------------------------------------------------------------------------------------------------------
   M16 A-R2 — Inicio's centre: the `Sistema disponible` strip, the contradiction ledger and its evidence row.

   Both read the flags and the folds the page already has (`pipelineSummary`, `contradictions`, `unknowns`),
   and every value is an alias: no literal colour, no `--bb-` step.
   --------------------------------------------------------------------------------------------------------- */

/* The strip's first line: the state's dot+word and the sentence that explains it, on a row that wraps. */
.system-strip .system-headline { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; margin: 0 0 6px; }

/* The ledger is the page's main section. Its epigraph is the corpus's rule, set in the display face at the
   secondary size — not a caption, because it is the sentence the section exists to state. */
.ledger .ledger-epigraph {
    font-family: var(--display);
    font-size: var(--fs-secondary);
    line-height: var(--lh-secondary);
    font-style: italic;
    color: var(--text);
    margin: 0 0 14px;
}

/* Contradictions and unknowns sit BESIDE each other, the contradictions wider because they carry the
   sentence; one column under 720px, where two would be two unreadable slivers. */
.ledger-columns { display: grid; grid-template-columns: 1.35fr 1fr; gap: 20px; }

/* A ledger row is a hairline-separated entry, not a card: the section is already the surface. */
.ledger-rows { list-style: none; margin: 0; padding: 0; }
.ledger-rows li { border-top: .5px solid var(--line-1); padding: 8px 0; }
.ledger-rows li:first-child { border-top: 0; }
.ledger-rows p { margin: 0 0 2px; }

@media (max-width: 720px)
{
    .ledger-columns { grid-template-columns: 1fr; }
}

/* ---------------------------------------------------------------------------------------------------------
   M16 — DENSITY PASS on the client console. The walkthrough read as crowded (persona detail): a card header
   set its subtitle on the SAME baseline row as a two-line title so the two fought for one line; cards and the
   two-column panels sat tight; the `estado` value ran its pill, its sentence and the kernel's reason together
   with no whitespace ("DISPONIBLEhay un proveedor…"); and the capability/limit lists were single-spaced.

   AKOS-ONLY. This sheet is the last `<link>` and loads on the /akos document alone (App.razor), after
   portal.css, so equal-specificity rules here win and the operator console at /portal keeps its own tighter
   rhythm. Every value is an alias or a bare length, per the sheet's contract.
   --------------------------------------------------------------------------------------------------------- */

/* The card header STACKS: the subtitle belongs under the title, not crammed to its right. Applies to the
   `<summary class="card-head">` form headers too. */
.card-head { flex-direction: column; align-items: stretch; gap: 3px; padding: 14px 20px; }

/* More air inside cards, between stacked cards, and in the panel gutters than the operator console carries. */
.card-body { padding: 20px; }
.card { margin: 18px 0; }
.panels { gap: 18px; margin: 18px 0; grid-template-columns: repeat(auto-fit, minmax(340px, 1fr)); }

/* Capability / limit lists read as a list with rhythm rather than a single-spaced wall. */
.card-body ul.small { margin: 0; padding-left: 18px; }
.card-body ul.small li { margin: 0 0 6px; }
.card-body ul.small li:last-child { margin-bottom: 0; }

/* The persona-usage rows breathe, and each value lays its pill + sentence + the kernel's verbatim reason with
   real gaps instead of three inline spans that rendered with no whitespace between them; flex-wrap drops the
   kernel's reason onto its own line when it does not fit the column. */
.kv { row-gap: 8px; }
.kv dd { display: flex; flex-wrap: wrap; gap: 2px 8px; align-items: baseline; }

/* Weight is this console's hierarchy device (portal.css: "one family, three sizes, weight as the only
   device"). A card's section title earns 600 so it reads AS a title above 400/500 body — no second family,
   no tracked label, nothing the owner's generated-page-tells list would catch. */
.card-head h2 { font-weight: 600; }

/* Hold prose to a readable measure: a wide card should not stretch a sentence past ~68 characters
   (skill: line-length 60–75). Applies to paragraphs and list items, not the key/value grid. */
.card-body > p,
.card-body ul.small li { max-width: 68ch; }

/* =========================================================================================================
   AKOS BRAND (2026-09-26) — the client console in the client's own website system (akosmx.com).

   The owner chose the WEBSITE look for /akos: paper/ink ground, lime as the hover/active/focus FILL (never as
   text on paper — 1.0:1), terra for status, Geist + Geist Mono, square corners, mono uppercase eyebrows,
   generous whitespace and 1px rules. This supersedes M16's density pass and its "no tracked label" rule FOR
   THIS DOCUMENT ONLY; /portal never loads this sheet (the conditional link in App.razor), so the operator
   console is untouched. The colours are the akos token blocks in burbuja-tokens.css, read here only through
   aliases (`--bg`, `--text`, `--line`, `--brand-lime`, …): no literal, no `--bb-` step. Everything below is
   declared AFTER the older rules in this file on purpose, so equal-specificity rules here win.
   ========================================================================================================= */

/* ---- type: Geist and Geist Mono, self-hosted beside this sheet (wwwroot/fonts). OFL-licensed; no CDN. ---- */
@font-face {
    font-family: "Geist";
    font-style: normal;
    font-weight: 100 900;
    font-display: swap;
    src: url("../Burbuja.Portal/fonts/geist.woff2") format("woff2");
}

@font-face {
    font-family: "Geist Mono";
    font-style: normal;
    font-weight: 100 900;
    font-display: swap;
    src: url("../Burbuja.Portal/fonts/geist-mono.woff2") format("woff2");
}

body { text-rendering: optimizeLegibility; font-feature-settings: "ss01" 0; }
::selection { background: var(--brand-gold-fill); color: var(--brand-on-gold); }

h1 { font-weight: 550; letter-spacing: -.045em; }
h2 { font-weight: 550; letter-spacing: -.02em; }
h3 { font-weight: 550; letter-spacing: -.01em; }
code, pre, .mono { font-family: var(--mono); }

/* Prose links are ink and underlined, the site's way; controls, chips and cards are not prose. */
.card-body a:not(.btn):not(.persona-chip):not(.persona-card):not(.akos-agent):not(.row-link):not(.tile):not(.service),
.page-sub a,
.ledger a,
.akos-stage-note a,
.akos-text-link {
    color: var(--text);
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-decoration-color: var(--line-3);
    text-underline-offset: 3px;
}
.card-body a:not(.btn):not(.persona-card):hover,
.page-sub a:hover,
.ledger a:hover,
.akos-stage-note a:hover,
.akos-text-link:hover { text-decoration-color: var(--text); }

/* THE LABEL VOICE: the site's eyebrow — Geist Mono, uppercase, tracked. Every "what is this" label in the
   console speaks it, so a reader learns one register for metadata and one (Geist) for content. */
.eyebrow, .akos-eyebrow, .akos-stage-label, .rail-title, .tile-label, .metric-label, .section-title,
.table th, .grid th, .kv dt, .essentials dt, .trace-field dt, .amendment-fields dt, .menu-head, label,
.bubble-who, .msg-who, .turn-label, .recent-when, .review-when, .persona-number, .ladder-number,
.akos-state-list dt, .evidence-row, .crumbs, .footer {
    font-family: var(--mono);
    font-size: var(--eyebrow-size);
    line-height: 1.45;
    letter-spacing: var(--eyebrow-spacing);
    text-transform: uppercase;
    font-weight: 500;
}
.crumbs, .recent-when, .review-when, .evidence-row { letter-spacing: .06em; }
.eyebrow, .akos-eyebrow { font-weight: 600; color: var(--text-secondary); margin: 0 0 14px; }
label { color: var(--text-secondary); }

/* ---- the top bar: the site's header ---- */
.topbar { height: 56px; padding: 0 24px; gap: 16px; border-bottom: 1px solid var(--line); background: var(--bg); }
.brand { gap: 10px; color: var(--text); }
.brand:hover { color: var(--text); }
.brand:hover .brand-name { text-decoration: underline; text-underline-offset: 4px; }
.brand-mark { color: var(--text); }
.brand-name { font: 700 13px/1 var(--mono); letter-spacing: .16em; text-transform: uppercase; }
.crumbs { color: var(--text-muted); margin-left: 12px; padding-left: 16px; border-left: 1px solid var(--line); }
.crumb { color: var(--text-muted); }
.crumb:hover { color: var(--text); }
.crumb-current { color: var(--text); }
.topbar-right { gap: 10px; }
.session-chip { color: var(--text-secondary); gap: 6px; font-family: var(--mono); font-size: 11.5px; letter-spacing: .02em; }
.session-chip strong { color: var(--text); font-weight: 600; }

/* "● PILOTO ACTIVO" — the site's pilot status, bound to the host's real liveness. Only a Healthy host gets
   the filled terra dot with its halo; degraded / unreachable / unknown draw a hollow ring in their own tone
   and say so in words, so the status never reads better than the host is. */
.pilot-status {
    display: inline-flex; align-items: center; gap: 9px; margin-right: 6px; white-space: nowrap;
    font: 600 10.5px/1 var(--mono); letter-spacing: .1em; text-transform: uppercase; color: var(--text);
}
.pilot-dot { width: 8px; height: 8px; border-radius: 50%; flex: none; background: transparent; box-shadow: inset 0 0 0 1.5px var(--idle); }
.pilot-healthy .pilot-dot { background: var(--brand-online); box-shadow: 0 0 0 4px color-mix(in srgb, var(--brand-online) 18%, transparent); }
.pilot-degraded { color: var(--warn); }
.pilot-degraded .pilot-dot { box-shadow: inset 0 0 0 1.5px var(--warn); }
.pilot-unreachable { color: var(--bad); }
.pilot-unreachable .pilot-dot { box-shadow: inset 0 0 0 1.5px var(--bad); }
.pilot-unknown { color: var(--text-muted); }

/* ---- the rail ---- */
.rail-nav {
    background: var(--bg); border-right: 1px solid var(--line); padding: 24px 14px; gap: 20px;
    top: 56px; max-height: calc(100vh - 56px); flex-basis: 236px;
}
.rail-group { gap: 2px; }
.rail-title { color: var(--text); font-weight: 700; letter-spacing: .16em; padding: 0 10px 2px; }
.rail-motto {
    font: 500 13px/1.35 var(--sans); font-style: normal; letter-spacing: -.01em; text-transform: none;
    color: var(--text-secondary); padding: 2px 10px 16px; margin-bottom: 10px; border-bottom: 1px solid var(--line);
}
.rail-nav .nav-link {
    height: 38px; padding: 0 10px; color: var(--text-secondary);
    font: 500 11.5px/1 var(--mono); letter-spacing: .07em; text-transform: uppercase;
    transition: background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease);
}
.rail-nav .nav-link:hover { background: var(--nav-hover); color: var(--text); }
.rail-nav .nav-link.active { background: transparent; color: var(--brand-gold-text); font-weight: 600; box-shadow: inset 2px 0 0 var(--brand-gold); }
.rail-nav .nav-link.active .icon { color: var(--brand-gold-text); }

/* ---- the page ---- */
.content { padding: 40px 48px 72px; }
.page-head { margin: 0 0 36px; padding-bottom: 24px; border-bottom: 1px solid var(--line); align-items: flex-end; gap: 20px; }
.page-head h1 { font-size: var(--fs-h1); line-height: var(--lh-h1); }
.page-sub { font-size: 15px; line-height: 1.55; color: var(--text-secondary); margin-top: 10px; max-width: 64ch; }
.page-actions { gap: 12px; }

/* Cards are square bordered planes; the head's title is Geist, its subtitle the muted line under it. */
.card { border: 1px solid var(--line); margin: 28px 0; }
.card-head { padding: 18px 24px 16px; border-bottom: 1px solid var(--line-1); gap: 4px; }
.card-head h2 { font-size: var(--fs-h2); line-height: var(--lh-h2); font-weight: 550; }
.card-body { padding: 24px; }
.panels { gap: 28px; margin: 28px 0; }
.alert { border: 1px solid var(--line); border-left-width: 3px; padding: 12px 16px; }
.alert-error { border-color: var(--bad); }
.alert-warn { border-color: var(--warn); }
.alert-ok { border-color: var(--ok); }
.alert-info { border-color: var(--line-3); border-left-color: var(--text); }

/* Empty is a sentence in a dashed frame, never a blank. */
.empty { border: 1px dashed var(--line-3); padding: 16px 18px; gap: 10px; color: var(--text-secondary); }
.empty-mark { color: var(--text-faint); font-family: var(--mono); }

/* ---- controls: the site's buttons ---- */
.btn {
    height: 40px; padding: 0 18px; gap: 8px; border: 1px solid transparent;
    font: 600 11px/1 var(--mono); letter-spacing: .08em; text-transform: uppercase;
    transition: background var(--dur) var(--ease), color var(--dur) var(--ease), border-color var(--dur) var(--ease);
}
.btn-small { height: 30px; padding: 0 12px; font: 600 10.5px/1 var(--mono); }
.btn-primary { background: var(--btn-primary-fill); color: var(--on-primary); border-color: var(--btn-primary-fill); }
.btn-primary:hover { background: var(--btn-primary-hover); color: var(--on-primary); border-color: var(--btn-primary-hover); }
.btn-primary:hover .icon { color: var(--on-primary); }
.btn-outline { border: 1px solid var(--line-4); color: var(--text); }
.btn-outline:hover { background: var(--hover); color: var(--brand-gold-text); border-color: var(--brand-gold); }
.btn-ghost:hover { background: var(--hover); }
.btn-ok, .btn-bad, .btn-warn, .btn-danger { border: 1px solid currentColor; }
.btn-ok:hover, .btn-bad:hover, .btn-warn:hover, .btn-danger:hover { background: var(--hover); }
.btn:disabled, .btn-disabled { opacity: .45; border: 1px dashed var(--line-3); }
.btn:disabled:hover, .btn-disabled:hover { background: transparent; color: inherit; }

/* Focus is always visible: a 2px rule in the text colour (ink on paper, paper on ink), and the lime FILL
   under ink text on the controls that take it. Console (2026-09-26): the cue is the gold rule now.
   E2E (2026-09-26): ONE gold for every keyboard ring, and it is `--accent` — the token G43's usability
   contract reads. The rule was split between `--text` (ink on paper: `summary`, plain links) and
   `--brand-gold` (the 3.8:1 MARK gold) on the buttons, so on paper a keyboard user saw two different rings,
   neither the accent. On ink `--accent` and `--brand-gold` are the same #d4a64a; on paper `--accent` is the
   text-safe dark gold (#7a5a12, 5.6:1), which is the stronger ring. */
input:focus-visible, textarea:focus-visible, select:focus-visible, .btn:focus-visible, .ring-tab:focus-visible,
.nav-link:focus-visible, .menu-item:focus-visible, a:focus-visible, button:focus-visible, summary:focus-visible {
    outline: 2px solid var(--accent); outline-offset: 2px; border-radius: 0;
}
.btn:focus-visible, .rail-nav .nav-link:focus-visible, .akos-agent:focus-visible, .persona-chip:focus-visible,
.depth-control a:focus-visible { outline-color: var(--accent); }

input, textarea, select, .traj-search { border: 1px solid var(--line-3); border-radius: 0; min-height: 40px; padding: 0 12px; }
textarea, .terminal-input { padding: 10px 12px; }
input:focus, textarea:focus, select:focus, input:focus-within, .terminal-input:focus {
    border-color: var(--brand-gold); box-shadow: 0 0 0 2px var(--brand-halo); outline: none;
}
input[type="checkbox"] { min-height: 0; padding: 0; border: 0; accent-color: var(--text); }

/* ---- data: tables read as the site's ruled lists ---- */
.table th, .grid th { color: var(--text-secondary); padding: 10px 12px; border-bottom: 1px solid var(--line-4); }
.table td, .grid td { padding: 12px; border-bottom: 1px solid var(--line-1); font-size: 13.5px; }
.grid tbody tr:hover td { background: var(--hover); }

.tiles { gap: 0; border-top: 1px solid var(--line); border-left: 1px solid var(--line); margin: 28px 0; }
.tile { border: 0; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); padding: 20px 22px; gap: 6px; background: var(--bg-raised); }
a.tile:hover { background: var(--hover); }
.tile-label { color: var(--text-secondary); }
.tile-value { font-size: 34px; line-height: 38px; font-weight: 550; letter-spacing: -.04em; }
.metric { border: 1px solid var(--line); padding: 16px 18px; }
.metric-value { font-weight: 550; letter-spacing: -.03em; }

/* Status words are the site's status voice: mono caps beside a dot. The DOM text is unchanged. */
.pill { font: 600 10.5px/1.45 var(--mono); letter-spacing: .08em; text-transform: uppercase; }
.tag { font: 600 10px/1.5 var(--mono); letter-spacing: .07em; text-transform: uppercase; padding: 2px 7px; }
.tag-outline { border: 1px solid var(--line-3); color: var(--text-secondary); }
.chip { font: 500 11px/1 var(--mono); letter-spacing: .04em; height: 26px; padding: 0 9px; }
.chip-persona { border-left: 3px solid var(--persona, var(--persona-umbral)); }
.fact { font-family: var(--mono); letter-spacing: .02em; }

.kv { grid-template-columns: 160px 1fr; row-gap: 10px; column-gap: 20px; }
.kv dt { color: var(--text-muted); padding-top: 2px; }
.trace-field { padding: 8px 0; border-bottom: 1px solid var(--line-1); }
.trace-field dt { color: var(--text-muted); }

.ring, .tabs { border-bottom: 1px solid var(--line); gap: 0; }
.ring-tab, .tabs button { font: 500 11px/1 var(--mono); letter-spacing: .08em; text-transform: uppercase; padding: 12px 14px; }
.ring-tab-on { border-bottom-color: var(--text); font-weight: 600; }
.segmented, .depth-control { background: transparent; border: 1px solid var(--line-3); padding: 0; gap: 0; }
.segmented button, .depth-control a { font: 500 10.5px/1 var(--mono); letter-spacing: .08em; text-transform: uppercase; height: 32px; padding: 0 12px; }
.segmented button[aria-pressed="true"], .depth-control a[aria-pressed="true"] { background: var(--text); color: var(--bg); box-shadow: none; }

.filters .chip { border: 1px solid var(--line-3); }
.filters .chip-selected { background: var(--text); color: var(--bg); box-shadow: none; }

.meter-track, .bar-track { height: 6px; }
.recent li { padding: 12px 0; border-bottom: 1px solid var(--line-1); gap: 16px; }
.decisions li { padding: 14px 0; border-bottom: 1px solid var(--line-1); }
.ledger-rows li { border-top: 1px solid var(--line-1); padding: 12px 0; }
.akos-handle { margin-left: 8px; color: var(--text-muted); }

/* The motto is the brand's line, not an italic aside: the site never sets italics. */
.motto, .signin-motto {
    font-family: var(--mono); font-style: normal; font-size: var(--eyebrow-size); line-height: 1.45;
    letter-spacing: var(--eyebrow-spacing); text-transform: uppercase; font-weight: 600; color: var(--text-secondary);
}
.ledger .ledger-epigraph {
    font: 550 18px/1.3 var(--sans); font-style: normal; letter-spacing: -.02em; color: var(--text); margin: 0 0 20px;
}
.ledger-columns { gap: 32px; }
.ledger h3 { margin: 0 0 8px; }
.evidence-row, .card-body > .evidence-row { max-width: none; gap: 6px 24px; color: var(--text-secondary); margin: 20px 0 0; padding-top: 16px; border-top: 1px solid var(--line); }
.evidence-row b { font: 550 20px/1 var(--sans); letter-spacing: -.03em; color: var(--text); margin-right: 5px; text-transform: none; }
.evidence-row .evidence-sep { display: none; }

/* ---- agents: persona hue is an accent rule, never a fill or text ---- */
.persona-chip {
    border: 1px solid var(--line); border-left: 3px solid var(--persona, var(--persona-umbral));
    padding: 5px 10px 5px 8px; margin: 0; gap: 8px; color: var(--text);
    font: 600 11px/1.2 var(--mono); letter-spacing: .06em; text-transform: uppercase;
}
.persona-chip:hover { border-color: var(--line-4); border-left-color: var(--persona, var(--persona-umbral)); text-decoration: none; }
.persona-grid { gap: 0; border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.persona-card {
    border: 0; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line);
    box-shadow: inset 3px 0 0 var(--persona, var(--persona-umbral)); padding: 22px 22px 24px; gap: 8px; min-height: 180px;
}
a.persona-card:hover { background: var(--hover); border-color: var(--line); }
.persona-name { font: 650 22px/1 var(--mono); letter-spacing: -.03em; text-transform: uppercase; }
.persona-question { font-style: normal; font-weight: 550; font-size: 13.5px; line-height: 1.4; color: var(--text); }

/* ---- the terminal ---- */
.bubble { border: 1px solid var(--line); padding: 14px 16px; }
.bubble-human { border-left: 1px solid var(--line); background: var(--bg-sunken); }
.bubble-akos { border-left: 3px solid var(--text); }
.bubble-text { line-height: 1.6; }
.terminal-composer { border: 1px solid var(--line-4); padding: 16px; }
.terminal-input { border: 1px solid var(--line-3); }
.terminal-progress { border: 1px solid var(--line); font-family: var(--mono); font-size: 11.5px; letter-spacing: .04em; }
.terminal-progress-dot, .terminal-progress-dot::before { background: var(--brand-gold); }
.slash-menu { border: 1px solid var(--line-4); box-shadow: none; }
.terminal-slash code, .slash-menu code { color: var(--text); font-weight: 600; }
.terminal-approval { border-left: 3px solid var(--warn); }

/* ---- the doors: sign-in and not-found ---- */
.signin { padding: 10vh 16px 48px; }
.signin-card { max-width: 440px; padding: 40px 36px; border: 1px solid var(--line-4); }
.signin-brand { color: var(--text); gap: 12px; margin-bottom: 28px; }
.signin-brand .brand-name { font-size: 15px; }
.signin-card h1 { font-size: 40px; line-height: 1; letter-spacing: -.055em; margin-bottom: 12px; }
.signin-card .btn { height: 46px; margin-top: 6px; }
.signin-foot { border-top: 1px solid var(--line); padding-top: 16px; margin-top: 22px; }
.notfound h1 { font-size: 48px; line-height: 1; letter-spacing: -.06em; }

/* ---- the footer ---- */
.akos-footer {
    display: flex; flex-wrap: wrap; align-items: center; gap: 8px 28px; padding: 20px 24px;
    border-top: 1px solid var(--line); color: var(--text-muted); letter-spacing: .05em;
}
.akos-footer-brand { display: inline-flex; align-items: center; gap: 8px; color: var(--text); font-weight: 700; letter-spacing: .16em; }
.akos-footer-motto { margin-left: auto; color: var(--text-secondary); }

/* ---- Inicio: the hero ---- */
.akos-hero {
    display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(280px, .9fr); gap: 48px; align-items: stretch;
    padding: 0 0 48px; margin: 0 0 48px; border-bottom: 1px solid var(--line);
}
.akos-hero-text { display: flex; flex-direction: column; justify-content: flex-end; min-width: 0; }
.akos-hero-title {
    font: 550 clamp(40px, 4.3vw, 68px)/.94 var(--sans); letter-spacing: -.06em; margin: 0 0 28px; color: var(--text); text-wrap: balance;
}
.akos-hero-copy { font-size: 17px; line-height: 1.6; color: var(--text-secondary); max-width: 56ch; margin: 0; }
.akos-hero-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 28px; margin-top: 32px; }
.akos-cta { height: 52px; min-width: 230px; padding: 0 22px; justify-content: center; font-size: 11.5px; }
.akos-text-link { font: 500 11.5px/1 var(--mono); letter-spacing: .08em; text-transform: uppercase; }
.akos-hero-state {
    display: flex; flex-direction: column; gap: 10px; padding: 28px; min-width: 0;
    border: 1px solid var(--line); background: var(--bg-raised);
}
.akos-hero-state .akos-mark { color: var(--text); margin: 0 0 18px; }
/* The client's 3D mark (AkosMark3D): hemispheres of the flat mark in axonometry, a hairline drawing. It
   scales to the panel; the PDF's heavier silhouette lines keep a slightly stronger stroke. */
.akos-mark3d { display: block; width: 100%; max-width: 300px; height: auto; color: var(--text); margin: 0 0 18px; }
.akos-mark3d-edge { stroke-width: 1.6; }
.akos-hero-state .hero-statement { font-size: 24px; line-height: 1.15; font-weight: 550; letter-spacing: -.035em; }
.akos-hero-state .hero-sub { color: var(--text-secondary); margin: 0 0 8px; }
.akos-state-list { margin: auto 0 0; display: flex; flex-direction: column; border-top: 1px solid var(--line); }
.akos-state-list > div { display: grid; grid-template-columns: 110px 1fr; gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--line-1); }
.akos-state-list dt { color: var(--text-muted); padding-top: 3px; }
.akos-state-list dd { margin: 0; display: flex; flex-wrap: wrap; gap: 4px 8px; align-items: baseline; overflow-wrap: anywhere; }

/* ---- Inicio: the map (the infographic, as data) ---- */
.akos-map { margin: 0 0 56px; }
.akos-section-head { margin: 0 0 28px; }
.akos-section-head h2 { font-size: clamp(24px, 2.6vw, 34px); line-height: 1.08; letter-spacing: -.04em; max-width: 26ch; }
.akos-map-stages {
    list-style: none; margin: 0; padding: 0;
    display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 0 28px;
}
.akos-stage { position: relative; min-width: 0; padding: 16px 0 0; border-top: 2px solid var(--text); display: flex; flex-direction: column; }
.akos-stage + .akos-stage::before {
    content: "→"; position: absolute; left: -22px; top: 14px; font: 500 13px/1 var(--mono); color: var(--text-muted);
}
.akos-stage-label { color: var(--text); font-weight: 600; margin: 0 0 12px; display: flex; gap: 10px; align-items: baseline; flex-wrap: wrap; }
.akos-stage-label span { color: var(--text-muted); }
.akos-stage-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
.akos-stage-list > li { display: flex; flex-direction: column; gap: 3px; padding: 10px 0; border-bottom: 1px solid var(--line-1); min-width: 0; }
.akos-stage-list-tight > li { padding: 4px 0; border-bottom: 0; }
.akos-node-name { font-size: 14.5px; line-height: 1.3; font-weight: 550; letter-spacing: -.01em; color: var(--text); overflow-wrap: anywhere; }
a.akos-node-name { text-decoration: underline; text-decoration-color: var(--line-3); text-underline-offset: 3px; }
a.akos-node-name:hover { text-decoration-color: var(--text); }
.akos-node-meta { font: 500 10.5px/1.45 var(--mono); letter-spacing: .05em; text-transform: uppercase; color: var(--text-muted); }
.akos-node-link { font: 600 11px/1.3 var(--mono); letter-spacing: .06em; text-transform: uppercase; color: var(--text); }
.akos-map-arrow { color: var(--text-muted); margin-right: 4px; }
.akos-stage-empty { color: var(--text-secondary); font-size: 13px; line-height: 1.5; margin: 0; padding: 10px 0; border-bottom: 1px dashed var(--line-3); }
.akos-stage-note { margin: auto 0 0; padding-top: 14px; font-size: 12.5px; line-height: 1.45; color: var(--text-muted); }

.akos-agent {
    display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 8px;
    padding: 6px 8px 6px 10px; border-left: 3px solid var(--persona, var(--persona-umbral)); color: var(--text);
}
.akos-agent:hover { background: var(--hover); text-decoration: none; }
.akos-agent-name { font: 600 11.5px/1.2 var(--mono); letter-spacing: .06em; text-transform: uppercase; }
.akos-agent-state { font: 500 10px/1.2 var(--mono); letter-spacing: .05em; text-transform: uppercase; color: var(--text-muted); text-align: right; }
.akos-agent .pill { gap: 0; }

.akos-agents { margin-top: 36px; padding-top: 20px; border-top: 1px solid var(--line); }
.akos-agents .akos-stage-label { justify-content: space-between; }
.akos-agent-chips { display: flex; flex-wrap: wrap; gap: 8px; }

.akos-next .card-body { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; }
.akos-next-title { margin: 0; font-size: 16px; letter-spacing: -.01em; }
.akos-next-detail { margin: 0 0 8px; color: var(--text-secondary); max-width: 72ch; }

/* ---- width: tablet, then phone (375px) ---- */
@media (max-width: 1200px) {
    .akos-map-stages { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px 28px; }
    .akos-stage + .akos-stage::before { content: none; }
}

@media (max-width: 900px) {
    .rail-nav { inset: 56px auto 0 0; }
    .content { padding: 28px 20px 56px; }
    .brand-name { display: inline; }
    .akos-hero { grid-template-columns: 1fr; gap: 32px; }
    .crumbs { display: none; }
}

@media (max-width: 620px) {
    .topbar { padding: 0 10px; gap: 6px; }
    .content { padding: 24px 16px 48px; }
    .page-head { margin-bottom: 28px; padding-bottom: 18px; }
    .page-head h1 { font-size: 28px; line-height: 32px; }
    .card-head { padding: 14px 16px; }
    .card-body { padding: 16px; }
    .panels { grid-template-columns: 1fr; gap: 20px; }
    .akos-hero-title { font-size: clamp(40px, 12vw, 56px); }
    .akos-cta { width: 100%; }
    .akos-hero-state { padding: 20px; }
    .akos-map-stages { grid-template-columns: 1fr; }
    .akos-state-list > div { grid-template-columns: 1fr; gap: 2px; }
    .kv { grid-template-columns: 1fr; row-gap: 2px; }
    .kv dd { margin-bottom: 8px; }
    .kv-inline { grid-template-columns: 1fr; }
    .ledger-columns { gap: 24px; }
    .akos-footer-motto { margin-left: 0; }
    .signin-card { padding: 28px 20px; }
    .grid-scroll .grid tr, .grid-scroll .table tr { border: 1px solid var(--line); }
}

/* Under 480px the pilot keeps its dot and hands its words to assistive technology only. */
@media (max-width: 480px) {
    .pilot-word { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
    .pilot-status { margin-right: 2px; }
}


.action-ladder { margin-bottom: 16px; }
.terminal-composer { margin-top: 10px; }

/* The rail collapse control belongs to the wide layout only (portal.css's rule loses to `.btn` on source order). */
.topbar .rail-toggle { display: none; }
@media (min-width: 901px) { .topbar .rail-toggle { display: inline-flex; } }

/* A kernel error carries a long resource path: it wraps instead of widening the page at 375px. */
.alert, .alert > * { min-width: 0; overflow-wrap: anywhere; }

/* Square corners everywhere the shared sheets hard-code a radius (the dot and the ring keep 50%). */
.slash-menu, .menu-panel, .chip, .chip-persona, .meter-track, .meter-fill, .bar-track, .bar-fill, .spark-bar, .skeleton-cell, .traj-toolbar .traj-button { border-radius: 0; }

/* ---------------------------------------------------------------------------------------------------------
   Console (2026-09-26) — the client's CONSOLE MOCKUPS: ink by default, a gold accent, hairlines, spaced caps,
   the lockup rail, the prompt, the TASK ACTIVA stepper, the INSPECTOR, the GRAFO canvas, CRONOS, CAPACIDADES,
   EVIDENCIA and SISTEMA. Aliases only (the token file holds every literal). Lit states come from classes the
   page puts on a record's state; the one motion (the current step's pulse) is off under reduced motion.
   --------------------------------------------------------------------------------------------------------- */
.visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.akos-caps { font: 500 var(--eyebrow-size)/1.45 var(--mono); letter-spacing: var(--eyebrow-spacing); text-transform: uppercase; color: var(--text-secondary); margin: 0 0 12px; }
.akos-gold { color: var(--brand-gold-text); }
.akos-kind { font: 500 10px/1.4 var(--mono); letter-spacing: .1em; text-transform: uppercase; color: var(--text-muted); margin: 0 4px; }
.akos-time { font-family: var(--mono); font-variant-numeric: tabular-nums; }

/* the dots: green ONLINE, gold RUNNING, terra failure, hollow when there is no data */
.akos-dot { display: inline-block; width: 7px; height: 7px; border-radius: 50%; flex: none; margin-right: 8px; vertical-align: 1px; background: transparent; box-shadow: inset 0 0 0 1.3px var(--idle); }
.akos-dot-ok { background: var(--brand-online); box-shadow: none; }
.akos-dot-run, .akos-dot-gold { background: var(--brand-gold); box-shadow: none; }
.akos-dot-warn { background: var(--warn); box-shadow: none; }
.akos-dot-bad { background: var(--bad); box-shadow: none; }
.akos-dot-idle { background: var(--idle); box-shadow: none; }
.akos-state { display: inline-flex; align-items: center; margin: 0; font: 600 11px/1.4 var(--mono); letter-spacing: .12em; text-transform: uppercase; color: var(--text); }
.akos-state-running, .akos-state-pending { color: var(--brand-gold-text); }
.akos-state-completed { color: var(--ok); }
.akos-state-verified { color: var(--brand-gold-text); }
.akos-state-failed, .akos-state-unavailable, .akos-state-rejected { color: var(--bad); }

/* ---- the shell: top bar "AKOS CONSOLE", status, clock ---- */
.akos-console-word { font: 500 13px/1 var(--mono); letter-spacing: .22em; text-transform: uppercase; color: var(--text); margin-left: 2px; }
.akos-clock { font: 500 12px/1 var(--mono); letter-spacing: .06em; color: var(--text); font-variant-numeric: tabular-nums; padding-left: 14px; border-left: 1px solid var(--line); }
.akos-status { display: inline-flex; align-items: center; white-space: nowrap; font: 500 11px/1 var(--mono); letter-spacing: .14em; text-transform: uppercase; color: var(--text); }

/* ---- the rail: the lockup, the rows, the footer ---- */
.akos-rail { gap: 26px; padding: 22px 16px 18px; flex-basis: 256px; }
.akos-lockup { display: flex; gap: 14px; align-items: center; color: var(--text); padding: 2px 6px 18px; border-bottom: 1px solid var(--line-1); }
.akos-lockup:hover { color: var(--text); text-decoration: none; }
.akos-lockup-mark { color: var(--text); flex: none; }
.akos-lockup-text { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.akos-lockup-name { font: 400 22px/1 var(--sans); letter-spacing: .32em; text-transform: uppercase; }
.akos-lockup-sub { font: 500 8.5px/1.5 var(--mono); letter-spacing: .16em; text-transform: uppercase; color: var(--text-secondary); max-width: 18ch; }
.akos-rail-group .rail-title { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.akos-rail-group { gap: 4px; }
.rail-nav .akos-rail-link { height: auto; min-height: 44px; padding: 8px 12px; font: 500 12px/1.2 var(--mono); letter-spacing: .14em; }
.akos-rail-link .rail-label { display: flex; flex-direction: column; gap: 3px; white-space: normal; }
.akos-rail-link .rail-icon { margin-right: 14px; color: var(--text-muted); }
.akos-rail-sub { font-size: 9px; letter-spacing: .14em; color: var(--text-muted); }
.rail-nav .akos-rail-link.active .akos-rail-sub { color: var(--brand-gold-text); }
.akos-rail-subrows { display: flex; flex-direction: column; margin: 0 0 6px 40px; border-left: 1px solid var(--line-1); }
.rail-nav .akos-rail-subrow { height: 30px; min-height: 30px; padding: 0 12px; font: 500 10.5px/1 var(--mono); letter-spacing: .1em; color: var(--text-muted); }
.akos-rail-foot { margin-top: auto; padding: 16px 8px 0; border-top: 1px solid var(--line-1); display: flex; flex-direction: column; gap: 14px; }
.akos-status-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 12px; font: 500 11px/1.2 var(--mono); letter-spacing: .14em; text-transform: uppercase; color: var(--text); }
.akos-status-list li { display: flex; align-items: center; }
.akos-rail-version { font: 500 11px/1 var(--mono); color: var(--text-muted); letter-spacing: .06em; }
html[data-rail="collapsed"] .akos-lockup-text, html[data-rail="collapsed"] .akos-rail-foot, html[data-rail="collapsed"] .akos-rail-subrows { display: none; }
html[data-rail="collapsed"] .akos-rail { flex-basis: 64px; }

/* ---- the console layout: main + INSPECTOR ---- */
.akos-console > .page-head { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); margin: 0; padding: 0; border: 0; }
.akos-console-grafo > .page-head, .akos-console-cronos > .page-head, .akos-console-caps > .page-head,
.akos-console-evidence > .page-head, .akos-console-system > .page-head, .akos-console-ajustes > .page-head, .akos-console-know > .page-head { position: static; width: auto; height: auto; overflow: visible; clip: auto; margin: 0 0 28px; padding: 0 0 20px; border-bottom: 1px solid var(--line-1); }
.akos-console-inicio .akos-console-grid { margin: -40px -48px 0 0; }
.akos-console-grid { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 0; align-items: start; }
.akos-console-main { min-width: 0; padding: 0 32px 0 0; }
.akos-console-inicio .akos-console-main { padding: 40px 40px 0 0; }
.akos-detail-grid { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 28px; align-items: start; }
.akos-detail-main { min-width: 0; }

/* ---- the INSPECTOR ---- */
.akos-inspector { position: sticky; top: 56px; max-height: calc(100vh - 56px); overflow-y: auto; border-left: 1px solid var(--line); background: var(--bg); padding: 28px 24px 40px; font-size: 13px; }
.akos-console-grafo .akos-inspector, .akos-detail-grid .akos-inspector { top: 72px; border: 1px solid var(--line); background: var(--bg-raised); }
.akos-inspector-head { display: flex; justify-content: space-between; align-items: center; padding-bottom: 16px; border-bottom: 1px solid var(--line-1); margin-bottom: 4px; }
.akos-inspector-head .akos-caps { margin: 0; color: var(--text); }
.akos-icon-link { color: var(--text-muted); display: inline-flex; }
.akos-icon-link:hover { color: var(--brand-gold-text); }
.akos-insp-block { padding: 18px 0; border-bottom: 1px solid var(--line-1); }
.akos-insp-block:last-child { border-bottom: 0; }
.akos-insp-block > .akos-caps { color: var(--text); }
.akos-insp-title { margin: 0 0 12px; font-size: 15px; line-height: 1.35; color: var(--text); }
.akos-insp-kv { margin: 0; display: flex; flex-direction: column; gap: 9px; }
.akos-insp-kv > div { display: flex; justify-content: space-between; gap: 16px; align-items: baseline; }
.akos-insp-kv dt { color: var(--text-muted); font-size: 12.5px; }
.akos-insp-kv dd { margin: 0; text-align: right; color: var(--text); overflow-wrap: anywhere; font-family: var(--mono); font-size: 12px; letter-spacing: .04em; }
.akos-insp-rows { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.akos-insp-rows li { display: grid; grid-template-columns: auto 1fr auto; gap: 12px; align-items: baseline; color: var(--text-secondary); font-size: 12.5px; }
.akos-insp-rows code { color: var(--text-secondary); font-size: 11.5px; }
.akos-insp-more, .akos-insp-note, .akos-insp-empty { margin: 10px 0 0; color: var(--text-muted); font-size: 12px; line-height: 1.5; }
.akos-insp-empty { margin: 0; }
.akos-why { margin-top: 14px; }
.akos-why.btn-outline { color: var(--text); border-color: var(--line-3); }
.akos-provenance { margin-top: 14px; }
.akos-chain { list-style: none; margin: 0; padding: 0 0 0 14px; border-left: 1px solid var(--brand-gold); display: flex; flex-direction: column; gap: 10px; }
.akos-chain-step { display: flex; flex-direction: column; gap: 2px; }
.akos-chain-via { font: 500 10px/1.3 var(--mono); letter-spacing: .1em; text-transform: uppercase; color: var(--brand-gold-text); }
.akos-chain-type { font: 500 10px/1.3 var(--mono); letter-spacing: .1em; text-transform: uppercase; color: var(--text-muted); }
.akos-chain-label { color: var(--text); font-size: 13px; line-height: 1.35; }
.akos-chain-meta { color: var(--text-muted); font-size: 11.5px; }
.akos-epi { font: 500 11px/1.3 var(--mono); letter-spacing: .06em; }
.akos-epi.akos-epi-contradicted { color: var(--bad); background: none; }
.akos-epi.akos-epi-verified { color: var(--brand-gold-text); background: none; box-shadow: none; }
.akos-epi.akos-epi-canonical { color: var(--brand-gold-text); background: none; box-shadow: none; }
.akos-epi.akos-epi-obsolete { color: var(--text-faint); text-decoration: line-through; background: none; opacity: 1; }

/* ---- INICIO: the prompt ---- */
.akos-console-hero { padding: 24px 0 36px; border-bottom: 1px solid var(--line-1); }
.akos-prompt { font: 350 clamp(24px, 2.4vw, 32px)/1.2 var(--sans); letter-spacing: -.015em; margin: 0 0 24px; color: var(--text); }
.akos-intent { position: relative; border: 1px solid var(--line-3); background: var(--bg-raised); }
.akos-intent:focus-within { border-color: var(--brand-gold); }
.akos-intent-box { display: block; width: 100%; min-height: 118px; border: 0; background: transparent; resize: vertical; padding: 20px 76px 20px 20px; font: 400 16px/1.5 var(--sans); color: var(--text); }
.akos-intent .akos-intent-box:focus, .akos-intent .akos-intent-box:focus-visible { box-shadow: none; outline: none; border: 0; }
.akos-intent-send { position: absolute; right: 16px; bottom: 16px; width: 44px; height: 44px; padding: 0; justify-content: center; }
.akos-intent-note { margin: 10px 0 0; font-size: 12.5px; color: var(--text-muted); }
.akos-intent-error { color: var(--bad); }
.akos-intent-alt { margin: 14px 0 0; font-size: 12.5px; color: var(--text-muted); }

/* ---- INICIO: TASK ACTIVA ---- */
.akos-task { padding: 32px 0 0; }
.akos-task-empty { border: 1px dashed var(--line-3); padding: 18px 20px; color: var(--text-secondary); margin-bottom: 28px; }
.akos-task-empty p { margin: 0 0 6px; }
.akos-example { background: none; border: 0; padding: 0; color: var(--brand-gold-text); font: inherit; cursor: pointer; text-decoration: underline; text-underline-offset: 3px; text-decoration-color: var(--brand-gold); }
.akos-task-id { margin: 0 0 6px; font: 500 14px/1 var(--mono); letter-spacing: .06em; }
.akos-task-id a { text-decoration: none; }
.akos-task-request { overflow-wrap: anywhere; margin: 0 0 10px; font: 400 clamp(19px, 1.8vw, 24px)/1.3 var(--sans); color: var(--text); letter-spacing: -.01em; }
.akos-task-request a { color: inherit; text-decoration-color: transparent; text-underline-offset: 4px; }
.akos-task-request a:hover, .akos-task-request a:focus-visible { color: var(--brand-gold-text); text-decoration-color: currentColor; }
.akos-task-doors { display: flex; flex-wrap: wrap; gap: 8px 24px; margin: 0 0 32px; font-size: 12px; }
.akos-insp-desc a { color: inherit; text-decoration-color: var(--brand-gold); text-underline-offset: 3px; }
.akos-insp-desc a:hover, .akos-insp-desc a:focus-visible { color: var(--brand-gold-text); }
.akos-task-sub { margin-top: 8px; }
.akos-stepper { list-style: none; margin: 4px 0 28px; padding: 0; display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); position: relative; }
.akos-stepper::before { content: ""; position: absolute; left: calc(100% / 12); right: calc(100% / 12); top: 7px; border-top: 1px solid var(--line-3); }
.akos-step { position: relative; display: flex; flex-direction: column; align-items: center; gap: 12px; text-align: center; min-width: 0; }
.akos-step-dot { width: 15px; height: 15px; border-radius: 50%; background: var(--bg); box-shadow: inset 0 0 0 1.3px var(--idle); position: relative; z-index: 1; flex: none; }
.akos-step-label { font: 500 10px/1.35 var(--mono); letter-spacing: .12em; text-transform: uppercase; color: var(--text-muted); overflow-wrap: anywhere; padding: 0 4px; }
.akos-step-done .akos-step-dot { background: var(--brand-gold); box-shadow: none; }
.akos-step-done .akos-step-label { color: var(--text-secondary); }
.akos-step-current .akos-step-dot { background: var(--bg); box-shadow: inset 0 0 0 2px var(--brand-gold), 0 0 0 5px var(--brand-halo); animation: akos-step-pulse 1.8s ease-in-out infinite; }
.akos-step-current .akos-step-label { color: var(--text); }
.akos-step-skipped .akos-step-dot { box-shadow: none; border: 1px dashed var(--idle); box-sizing: border-box; }
.akos-step-skipped .akos-step-label { color: var(--text-faint); }
.akos-step-failed .akos-step-dot { background: var(--bad); box-shadow: none; }
.akos-step-failed .akos-step-label { color: var(--bad); }
.akos-step-completed .akos-step-dot { background: var(--ok); box-shadow: 0 0 0 5px color-mix(in srgb, var(--ok) 18%, transparent); }
.akos-step-completed .akos-step-label { color: var(--ok); }
@keyframes akos-step-pulse { 0%, 100% { box-shadow: inset 0 0 0 2px var(--brand-gold), 0 0 0 3px var(--brand-halo); } 50% { box-shadow: inset 0 0 0 2px var(--brand-gold), 0 0 0 8px var(--brand-halo); } }
@media (prefers-reduced-motion: reduce) { .akos-step-current .akos-step-dot { animation: none; } }
.akos-task-state { padding: 0 0 28px; border-bottom: 1px solid var(--line-1); display: flex; flex-direction: column; gap: 10px; }
.akos-task-line { margin: 0; font-size: 15px; color: var(--text); }
.akos-task-note { margin: 0; font-size: 12.5px; color: var(--text-muted); line-height: 1.5; }
.akos-task-elapsed { margin: 0; font-size: 12.5px; color: var(--text-muted); }
.akos-involved { padding: 26px 0; border-bottom: 1px solid var(--line-1); }
.akos-involved-list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 14px 12px; }
.akos-involved-agent { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.akos-involved-num { font: 500 12px/1 var(--mono); color: var(--text-muted); letter-spacing: .06em; }
.akos-involved-name { font: 500 13px/1.2 var(--mono); letter-spacing: .1em; text-transform: uppercase; color: var(--text-secondary); overflow-wrap: anywhere; }
.akos-involved-name:hover { color: var(--text); }
.akos-involved-state { display: inline-flex; align-items: center; font: 500 10px/1 var(--mono); letter-spacing: .12em; text-transform: uppercase; color: var(--text-muted); }
.akos-involved-list .is-active .akos-involved-name { color: var(--text); }
.akos-involved-list .is-active .akos-involved-state { color: var(--brand-gold-text); }
.akos-involved-more { justify-content: flex-end; }
.akos-levels { display: flex; justify-content: center; gap: 8px; border-bottom: 1px solid var(--line-1); margin-top: 8px; }
.akos-level { background: none; border: 0; border-bottom: 2px solid transparent; padding: 18px 16px 14px; font: 500 12px/1 var(--mono); letter-spacing: .14em; text-transform: uppercase; color: var(--text-muted); cursor: pointer; }
.akos-level:hover { color: var(--text); }
.akos-level.is-on { color: var(--text); border-bottom-color: var(--brand-gold); }
.akos-level-panel { padding: 24px 0 36px; }
.akos-reply { border-left: 2px solid var(--brand-gold); padding: 2px 0 2px 18px; }
.akos-reply-text { margin: 0 0 10px; font-size: 16px; line-height: 1.6; color: var(--text); white-space: pre-wrap; }
.akos-kv { margin: 0 0 20px; display: grid; grid-template-columns: 190px 1fr; gap: 10px 20px; }
.akos-kv > div { display: contents; }
.akos-kv dt { font: 500 10.5px/1.6 var(--mono); letter-spacing: .12em; text-transform: uppercase; color: var(--text-muted); }
.akos-kv dd { margin: 0; color: var(--text); overflow-wrap: anywhere; }
.akos-lines { list-style: none; margin: 0 0 18px; padding: 0; display: flex; flex-direction: column; gap: 0; }
.akos-lines li { padding: 9px 0; border-bottom: 1px solid var(--line-1); line-height: 1.5; overflow-wrap: anywhere; }
.akos-acts td { vertical-align: top; }
.akos-hostline { margin: 12px 0 44px; padding: 24px; border: 1px solid var(--line-1); background: var(--bg-raised); }
.akos-hostline .akos-hero-state { padding: 0; border: 0; background: none; }

/* ---- GRAFO ---- */
.akos-graph-toolbar { display: flex; flex-wrap: wrap; gap: 12px 20px; align-items: center; margin: 0 0 14px; }
.akos-graph-search { flex: 1 1 260px; max-width: 420px; background: var(--bg-raised); }
.akos-graph-results { list-style: none; margin: 0 0 14px; padding: 0; display: flex; flex-wrap: wrap; gap: 6px; }
.akos-graph-result { background: var(--bg-raised); border: 1px solid var(--line); color: var(--text); padding: 6px 10px; font: 400 12.5px/1.3 var(--sans); cursor: pointer; }
.akos-graph-result:hover { border-color: var(--brand-gold); }
.akos-graph { position: relative; height: max(480px, calc(100vh - 250px)); border: 1px solid var(--line); background: var(--graph-bg); overflow: hidden; }
.akos-graph-canvas { display: block; width: 100%; height: 100%; cursor: grab; touch-action: none; }
.akos-graph-canvas:focus-visible { outline: 2px solid var(--accent); outline-offset: -2px; }
.akos-graph-data { display: none; }
.akos-graph-legend { position: absolute; top: 14px; left: 14px; display: flex; flex-direction: column; gap: 2px; padding: 10px; background: var(--bg-raised); border: 1px solid var(--line-1); max-width: 230px; }
.akos-legend-item { display: flex; align-items: center; gap: 8px; background: none; border: 0; padding: 5px 4px; color: var(--text); font: 500 10.5px/1 var(--mono); letter-spacing: .12em; text-transform: uppercase; cursor: pointer; text-align: left; }
.akos-legend-item.is-off { color: var(--text-faint); text-decoration: line-through; }
.akos-legend-item.is-off .akos-legend-dot { background: transparent; box-shadow: inset 0 0 0 1px var(--idle); }
.akos-legend-dot { width: 8px; height: 8px; border-radius: 50%; flex: none; background: var(--graph-evidencia); }
.akos-legend-agentes .akos-legend-dot { background: var(--graph-agentes); }
.akos-legend-memoria .akos-legend-dot { background: var(--graph-memoria); }
.akos-legend-evidencia .akos-legend-dot { background: var(--graph-evidencia); }
.akos-legend-inferencias .akos-legend-dot { background: var(--graph-inferencias); }
.akos-legend-tareas .akos-legend-dot { background: var(--graph-tareas); }
.akos-legend-eventos .akos-legend-dot { background: var(--graph-eventos); }
.akos-legend-capacidades .akos-legend-dot { background: var(--graph-capacidades); }
.akos-legend-vacunas .akos-legend-dot { background: var(--graph-vacunas); }
.akos-legend-count { margin-left: auto; color: var(--text-muted); font-variant-numeric: tabular-nums; letter-spacing: 0; }
.akos-legend-epi { display: flex; flex-wrap: wrap; gap: 6px 10px; margin: 8px 0 0; padding-top: 8px; border-top: 1px solid var(--line-1); font: 500 9.5px/1.3 var(--mono); letter-spacing: .06em; color: var(--text-muted); }
.akos-legend-epi span { display: inline-flex; align-items: center; gap: 5px; }
.akos-epi-mark { width: 8px; height: 8px; border-radius: 50%; display: inline-block; flex: none; }
.akos-epi-mark.akos-epi-observed { background: var(--text-secondary); }
.akos-epi-mark.akos-epi-inferred { box-shadow: inset 0 0 0 1.3px var(--text-secondary); }
.akos-epi-mark.akos-epi-provisional { border: 1px dashed var(--text-secondary); box-sizing: border-box; }
.akos-epi-mark.akos-epi-verified { background: var(--text-secondary); box-shadow: 0 0 0 2px var(--graph-bg), 0 0 0 3px var(--text-secondary); }
.akos-epi-mark.akos-epi-canonical { background: var(--brand-gold-text); }
.akos-epi-mark.akos-epi-contradicted { background: var(--graph-contradicts); }
.akos-epi-mark.akos-epi-obsolete { background: var(--text-secondary); opacity: .35; }
.akos-graph-zoom { position: absolute; left: 14px; bottom: 160px; display: flex; flex-direction: column; border: 1px solid var(--line-1); background: var(--bg-raised); }
.akos-zoom-btn { width: 38px; height: 38px; display: inline-flex; align-items: center; justify-content: center; background: none; border: 0; border-bottom: 1px solid var(--line-1); color: var(--text); cursor: pointer; }
.akos-zoom-btn:last-child { border-bottom: 0; }
.akos-zoom-btn:hover { color: var(--brand-gold-text); }
.akos-graph-stats { position: absolute; left: 14px; bottom: 14px; margin: 0; padding: 12px 14px; display: grid; grid-template-columns: repeat(2, auto); gap: 8px 22px; background: var(--bg-raised); border: 1px solid var(--line-1); }
.akos-graph-stats dt { font: 500 9.5px/1.3 var(--mono); letter-spacing: .12em; text-transform: uppercase; color: var(--text-muted); }
.akos-graph-stats dd { margin: 2px 0 0; font: 400 18px/1.2 var(--sans); color: var(--text); }

/* ---- CRONOS ---- */
.akos-cronos { display: grid; grid-template-columns: 1fr 1fr; gap: 20px 32px; padding: 20px; border: 1px solid var(--line-1); background: var(--bg-raised); margin: 0 0 24px; }
.akos-cronos-slider { display: flex; flex-direction: column; gap: 10px; }
.akos-cronos-slider input[type="range"] { accent-color: var(--brand-gold); min-height: 28px; padding: 0; border: 0; background: transparent; }
.akos-cronos-range { grid-column: 1 / -1; margin: 0; }
.akos-cronos-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 0; border: 1px solid var(--line-1); margin: 0 0 24px; }
.akos-cronos-col { padding: 18px 20px; }
.akos-cronos-col + .akos-cronos-col { border-left: 1px solid var(--line-1); }
.akos-cronos-figure { margin: 0; color: var(--text-secondary); }
.akos-cronos-figure b { font: 400 24px/1 var(--sans); color: var(--text); }

/* ---- CAPACIDADES · EVIDENCIA · SISTEMA ---- */
.akos-caps-filters { margin-bottom: 18px; }
.akos-cap-table td { vertical-align: top; }
.akos-cap-missing { margin: 6px 0 0; color: var(--text); font-style: italic; font-size: 12.5px; }
.akos-cap-reason { margin: 4px 0 0; }
.akos-evidence-table td { vertical-align: top; }
/* 2026-09-26 — an id, digest or artifact reference is one unbroken token; it wraps inside its cell instead of
   pushing the table (and the page) past the viewport — G43 measured 1386px at 1280 with the E2E fixture's ids. */
.akos-evidence-table { table-layout: auto; width: 100%; }
.akos-evidence-table code, .akos-evidence-table .akos-ev-label, .akos-evidence-table td a:not(.akos-text-link) { overflow-wrap: anywhere; word-break: break-word; }
.akos-ev-label { color: var(--text); }
.akos-parts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border: 1px solid var(--line-1); margin: 0 0 28px; }
.akos-part { padding: 22px; display: flex; flex-direction: column; align-items: flex-start; gap: 8px; }
.akos-part + .akos-part { border-left: 1px solid var(--line-1); }
.akos-part .akos-caps { color: var(--brand-gold-text); margin: 0; }
.akos-part-copy { margin: 0 0 6px; color: var(--text-secondary); line-height: 1.5; }
.akos-system-links { list-style: none; margin: 0 0 16px; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 0; border-top: 1px solid var(--line-1); }
.akos-system-link { display: flex; align-items: center; padding: 14px 4px; border-bottom: 1px solid var(--line-1); color: var(--text); font: 500 11.5px/1 var(--mono); letter-spacing: .12em; text-transform: uppercase; }
.akos-system-link:hover { color: var(--brand-gold-text); text-decoration: none; }

/* ---- links and the gold ---- */
.akos-text-link { text-decoration-color: var(--brand-gold); }
.akos-text-link:hover { color: var(--brand-gold-text); text-decoration-color: var(--brand-gold); }

/* ---- width: laptop, tablet (768), phone (390) ---- */
@media (max-width: 1280px) {
    .akos-console-grid { grid-template-columns: minmax(0, 1fr) 300px; }
    .akos-involved-list { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (max-width: 1100px) {
    .akos-console-grid, .akos-console-inicio .akos-console-grid { grid-template-columns: minmax(0, 1fr); margin: 0; }
    .akos-console-main, .akos-console-inicio .akos-console-main { padding: 0; }
    .akos-inspector, .akos-console-grafo .akos-inspector { position: static; max-height: none; border: 1px solid var(--line); margin-top: 28px; }
    .akos-detail-grid { grid-template-columns: minmax(0, 1fr); }
    .akos-detail-grid .akos-inspector { position: static; }
}
@media (max-width: 900px) {
    .akos-rail { width: min(300px, 86vw); }
    .akos-clock { display: none; }
    .akos-status-top { display: none; }
    .akos-graph { height: 60vh; min-height: 380px; }
}
@media (max-width: 620px) {
    .akos-console-hero { padding-top: 4px; }
    .akos-prompt { font-size: 22px; }
    .akos-intent-box { min-height: 104px; padding: 14px 64px 14px 14px; }
    .akos-intent-send { right: 10px; bottom: 10px; }
    .akos-stepper { grid-template-columns: 1fr; gap: 0; margin-left: 4px; }
    .akos-stepper::before { left: 7px; right: auto; top: 8px; bottom: 8px; border-top: 0; border-left: 1px solid var(--line-3); }
    .akos-step { flex-direction: row; text-align: left; gap: 14px; padding: 7px 0; }
    .akos-involved-list { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .akos-levels { justify-content: stretch; }
    .akos-level { flex: 1; padding: 16px 4px 12px; font-size: 11px; letter-spacing: .08em; }
    .akos-kv { grid-template-columns: 1fr; gap: 2px; }
    .akos-kv dd { margin-bottom: 10px; }
    .akos-inspector { padding: 20px 16px; }
    .akos-graph-legend, .akos-graph-zoom, .akos-graph-stats { position: static; max-width: none; margin: 0; border-width: 1px 0 0; }
    .akos-graph { height: auto; overflow: visible; }
    .akos-graph-canvas { height: 56vh; min-height: 320px; }
    .akos-graph-zoom { flex-direction: row; }
    .akos-zoom-btn { border-bottom: 0; border-right: 1px solid var(--line-1); }
    .akos-cronos, .akos-cronos-cols, .akos-parts { grid-template-columns: 1fr; }
    .akos-cronos-col + .akos-cronos-col, .akos-part + .akos-part { border-left: 0; border-top: 1px solid var(--line-1); }
    .akos-hostline { padding: 16px; }
    .akos-console-word { display: none; }
}
.akos-rail-word { display: block; }
.akos-cap-agent .card-head h2 { font-family: var(--mono); letter-spacing: .1em; text-transform: uppercase; font-size: 14px; }
/* The Grafo gives the canvas the height: a compact header, as in the mockup (the title is a line, not a hero). */
.akos-console-grafo > .page-head { margin-bottom: 18px; padding-bottom: 14px; }
.akos-console-grafo > .page-head h1 { font-size: 20px; line-height: 26px; }
.akos-console-grafo > .page-head .page-sub { font-size: 13px; margin-top: 4px; }
.akos-console-grafo .akos-graph { height: max(460px, calc(100vh - 210px)); }
/* A wide record table scrolls inside itself at phone width instead of widening the page. */
@media (max-width: 760px) { .akos-evidence-table, .akos-cap-table, .akos-acts { display: block; overflow-x: auto; max-width: 100%; } }

/* ---------------------------------------------------------------------------------------------------------
   Audit (2026-09-26) — the console audit's visual defects. Aliases only.
   --------------------------------------------------------------------------------------------------------- */

/* The door is the signed-out landing: the client's 3D mark at hero size beside the form (stacked on a phone). */
.akos-signin { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 440px); gap: 48px 72px; align-items: center; max-width: 1120px; margin: 0 auto; padding: 8vh 32px 48px; }
.akos-signin .signin-card { margin: 0; width: 100%; }
.akos-signin-hero { display: flex; flex-direction: column; align-items: flex-start; gap: 18px; min-width: 0; color: var(--text); }
.akos-signin-hero .akos-mark3d { max-width: 460px; margin: 0 0 8px; }
.akos-signin-hero .signin-brand { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; margin: 0; }
.akos-signin-hero .brand-name { font: 400 34px/1 var(--sans); letter-spacing: .32em; text-transform: uppercase; color: var(--text); }
.akos-signin-sub { font: 500 10.5px/1.5 var(--mono); letter-spacing: .18em; text-transform: uppercase; color: var(--text-secondary); max-width: 34ch; }
.akos-signin-hero .signin-motto { margin: 6px 0 0; padding-top: 16px; border-top: 1px solid var(--line-1); color: var(--brand-gold-text); }
@media (max-width: 900px) {
    .akos-signin { grid-template-columns: minmax(0, 1fr); gap: 28px; padding: 32px 16px 40px; }
    .akos-signin-hero { align-items: center; text-align: center; gap: 12px; }
    .akos-signin-hero .akos-mark3d { max-width: 240px; margin: 0 auto 4px; }
    .akos-signin-hero .signin-brand { align-items: center; }
    .akos-signin-hero .brand-name { font-size: 24px; }
    .akos-signin .signin-card { max-width: 440px; margin: 0 auto; }
}

/* Filter chips: the label and its count were one word ("Todas210"). */
.filters .chip { gap: 8px; }
.filters .chip .akos-legend-count { margin-left: 0; }

/* Cronos rows: kind, label, epistemic word, instant and "¿por qué?" ran together. */
.akos-console-cronos .akos-lines li { display: flex; flex-wrap: wrap; align-items: baseline; column-gap: 10px; row-gap: 2px; }
.akos-console-cronos .akos-lines li .akos-kind { margin: 0; }
.akos-console-cronos .akos-lines li > .akos-text-link { margin-left: auto; }

/* PROGRESO: a step that does not apply is a DASH, not a hollow ring that reads as "pending", and says so. */
.akos-step-skipped .akos-step-dot { border: 0; background: var(--bg); box-shadow: none; }
.akos-step-skipped .akos-step-dot::before { content: ""; position: absolute; left: 3px; right: 3px; top: 50%; border-top: 2px solid var(--text-muted); transform: translateY(-50%); }
.akos-step-skipped .akos-step-label { color: var(--text-muted); }
.akos-step-note { font: 500 9.5px/1.2 var(--mono); letter-spacing: .1em; text-transform: uppercase; color: var(--text-faint); margin-top: -6px; }
@media (max-width: 620px) { .akos-step-note { margin: 0 0 0 auto; } }

/* The Inspector's rows: a long dotted kind ("akos.turn.llm.request+reasoning.usage") wraps inside the column. */
.akos-insp-rows li > * { min-width: 0; overflow-wrap: anywhere; }

/* Métricas: the usage line and a turn's tokens under its cost. */
.akos-usage { margin: 14px 0 0; }
.akos-usage-tokens { display: block; font-size: 11px; }
.akos-console-cronos .akos-lines li > time { color: var(--text-muted); font-size: 12px; }
.akos-signin .signin-live { margin: 14px 0 22px; }
/* The rail lockup: the 3D mark when the rail is expanded, the flat mark when it is collapsed to 64 px. */
.akos-lockup-mark3d .akos-mark3d { margin: 0; max-width: none; width: 60px; }
.akos-lockup-flat { display: none; }
html[data-rail="collapsed"] .akos-lockup-mark3d { display: none; }
html[data-rail="collapsed"] .akos-lockup-flat { display: block; }
/* "¿Por qué?" never breaks across two lines in a record table; the turns list gives the message room to read. */
.akos-evidence-table .akos-text-link { white-space: nowrap; }
table.grid[aria-label="turnos"] td:first-child { min-width: 240px; }

/* ---------------------------------------------------------------------------------------------------------
   Wave 2 (2026-09-26) — the Grafo's instrument (tabs, VISTA, FILTROS, live, lock, minimap, resumen, actividad),
   the Inspector's verification segments and description, the reply's "¿Por qué sabes esto?", and AJUSTES.
   Aliases only; every rule holds at 390 px and in the light theme.
   --------------------------------------------------------------------------------------------------------- */
.akos-graph-bar { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 20px; margin: 0 0 14px; }
.akos-graph-tabs { display: flex; gap: 22px; width: 100%; border-bottom: 1px solid var(--line-1); }
.akos-graph-tab { background: none; border: 0; border-bottom: 1px solid transparent; padding: 12px 0 11px; margin-bottom: -1px; color: var(--text-muted); font: 500 11px/1 var(--mono); letter-spacing: .12em; text-transform: uppercase; cursor: pointer; }
.akos-graph-tab:hover { color: var(--text); }
.akos-graph-tab.is-on { color: var(--brand-gold-text); border-bottom-color: var(--brand-gold); }
.akos-graph-controls { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 18px; }
.akos-graph-view { display: inline-flex; align-items: center; gap: 8px; }
.akos-graph-view select { background: var(--bg-raised); color: var(--text); border: 1px solid var(--line); padding: 6px 8px; font: 500 11px/1.2 var(--mono); letter-spacing: .08em; text-transform: uppercase; min-height: 32px; }
.akos-graph-filter-btn, .akos-graph-live { display: inline-flex; align-items: center; gap: 8px; background: none; border: 1px solid var(--line-1); color: var(--text); padding: 7px 10px; min-height: 32px; font: 500 11px/1 var(--mono); letter-spacing: .12em; text-transform: uppercase; cursor: pointer; }
.akos-graph-filter-btn:hover, .akos-graph-live:hover { border-color: var(--brand-gold); }
.akos-graph-filter-btn.is-on { border-color: var(--brand-gold); color: var(--brand-gold-text); }
.akos-graph-live.is-on { color: var(--brand-gold-text); }
.akos-graph-live:disabled { color: var(--text-faint); cursor: not-allowed; border-color: var(--line-1); }
.akos-graph-badge { display: inline-flex; align-items: center; justify-content: center; min-width: 16px; height: 16px; padding: 0 4px; border-radius: 8px; background: var(--brand-gold); color: var(--bg); font: 600 10px/1 var(--mono); letter-spacing: 0; }
.akos-graph-searchbox { flex: 1 1 220px; max-width: 360px; margin-left: auto; }
.akos-graph-searchbox .akos-graph-search { width: 100%; max-width: none; }
.akos-graph-read { display: flex; flex-wrap: wrap; gap: 4px 20px; margin: 0 0 12px; color: var(--text-secondary); font-size: 12px; line-height: 1.5; }
.akos-graph-read p { margin: 0; }
.akos-graph-read [data-graph-read-result] { color: var(--brand-gold-text); }
.akos-graph-guide { margin: 0 0 10px; color: var(--text-secondary); font-size: 12px; }
.akos-insp-relations { margin: 18px 0 0; }
.akos-insp-relations .akos-caps { margin-bottom: 8px; }
.akos-insp-relations ul { list-style: none; margin: 0; padding: 0; max-height: 270px; overflow-y: auto; border-top: 1px solid var(--line-1); }
.akos-insp-relations li { display: flex; flex-direction: column; gap: 3px; padding: 10px 0; border-bottom: 1px solid var(--line-1); overflow-wrap: anywhere; }
.akos-insp-relations li a { color: var(--text); font-size: 13px; line-height: 1.4; }
.akos-insp-relations li a:hover, .akos-insp-relations li a:focus-visible { color: var(--brand-gold-text); }
.akos-graph-filters { display: grid; gap: 14px; padding: 16px 18px; margin: 0 0 14px; border: 1px solid var(--line-1); background: var(--bg-raised); }
.akos-graph-filters fieldset { border: 0; margin: 0; padding: 0; min-width: 0; }
.akos-graph-filters legend { padding: 0; margin: 0 0 8px; color: var(--text); }
.akos-filter-options { display: flex; flex-wrap: wrap; gap: 6px 16px; }
.akos-filter-option { display: inline-flex; align-items: center; gap: 6px; font-size: 12.5px; color: var(--text-secondary); min-height: 28px; }
.akos-filter-option input { accent-color: var(--brand-gold); margin: 0; }
.akos-filter-row { display: flex; flex-wrap: wrap; gap: 12px 20px; }
.akos-filter-field { display: flex; flex-direction: column; gap: 6px; min-width: 150px; }
.akos-filter-field select, .akos-filter-field input { background: var(--bg); color: var(--text); border: 1px solid var(--line); padding: 6px 8px; min-height: 32px; }
.akos-filter-actions { display: flex; gap: 10px; }
.akos-graph-note { margin: 0 0 12px; padding: 8px 12px; border-left: 2px solid var(--brand-gold); color: var(--text-secondary); font-size: 13px; }
.akos-legend-toggle { display: flex; align-items: center; justify-content: space-between; gap: 8px; width: 100%; background: none; border: 0; padding: 2px 4px 6px; color: var(--text-muted); font: 500 9.5px/1 var(--mono); letter-spacing: .14em; text-transform: uppercase; cursor: pointer; }
.akos-legend-toggle .icon { transition: transform .15s ease; }
.akos-legend-body { display: flex; flex-direction: column; gap: 2px; }
.akos-graph-legend.is-closed .akos-legend-body { display: none; }
.akos-graph-legend.is-closed .akos-legend-toggle { padding-bottom: 2px; }
.akos-graph-legend.is-closed .akos-legend-toggle .icon { transform: rotate(-90deg); }
.akos-legend-note { margin: 0 0 6px; font-size: 11.5px; color: var(--brand-gold-text); }
.akos-legend-epi.is-coloured .akos-epi-mark.akos-epi-observed { background: var(--graph-evidencia); }
.akos-legend-epi.is-coloured .akos-epi-mark.akos-epi-inferred { box-shadow: inset 0 0 0 1.3px var(--graph-inferencias); background: transparent; }
.akos-legend-epi.is-coloured .akos-epi-mark.akos-epi-provisional { border-color: var(--graph-eventos); }
.akos-legend-epi.is-coloured .akos-epi-mark.akos-epi-verified { background: var(--ok); box-shadow: 0 0 0 2px var(--graph-bg), 0 0 0 3px var(--ok); }
.akos-graph-stats { position: static; width: 100%; grid-template-columns: repeat(5, minmax(0, 1fr)); border-top: 0; }
.akos-graph-stats-wide { grid-column: auto; }
.akos-zoom-btn:disabled { color: var(--text-faint); cursor: not-allowed; }
.akos-zoom-btn.is-on { color: var(--brand-gold-text); }
.akos-graph-zoom { left: auto; right: 14px; top: 14px; bottom: auto; }
.akos-console-grafo .akos-graph { height: max(460px, calc(100vh - 370px)); }
.akos-graph-minimap { position: absolute; right: 14px; bottom: 14px; width: 150px; height: 120px; border: 1px solid var(--line-1); background: var(--bg-raised); cursor: crosshair; }
.akos-graph-minimap canvas { display: block; width: 100%; height: 100%; }
.akos-graph-summary { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0; border: 1px solid var(--line-1); }
.akos-summary-figures { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 0; border-bottom: 1px solid var(--line-1); }
.akos-summary-figures > div { padding: 16px 20px; }
.akos-summary-figures > div + div { border-left: 1px solid var(--line-1); }
.akos-summary-figures dt { font: 500 9.5px/1.3 var(--mono); letter-spacing: .12em; text-transform: uppercase; color: var(--text-muted); }
.akos-summary-figures dd { margin: 4px 0 0; font: 400 24px/1.1 var(--sans); color: var(--text); }
.akos-summary-block { padding: 18px 20px; min-width: 0; }
.akos-summary-block + .akos-summary-block { border-left: 1px solid var(--line-1); }
.akos-summary-block[data-sum-block="agents"] { grid-column: 1 / -1; border-left: 0; border-top: 1px solid var(--line-1); }
.akos-summary-rows { list-style: none; margin: 10px 0 0; padding: 0; display: grid; gap: 8px; }
.akos-summary-rows li { display: grid; grid-template-columns: minmax(110px, 1fr) minmax(60px, 2fr) auto; align-items: center; gap: 12px; font-size: 13px; color: var(--text-secondary); }
.akos-summary-rows li > span:first-child { display: inline-flex; align-items: center; gap: 8px; min-width: 0; overflow-wrap: anywhere; }
.akos-summary-rows b { font-weight: 500; color: var(--text); }
.akos-summary-bar { height: 4px; background: var(--line-1); position: relative; }
.akos-summary-bar i { position: absolute; left: 0; top: 0; bottom: 0; background: var(--brand-gold); }
.akos-graph-activity > p { margin: 0 0 12px; }
.akos-activity { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--line-1); }
.akos-activity-row { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; padding: 10px 4px; border-bottom: 1px solid var(--line-1); font-size: 13px; }
.akos-activity-row > time { color: var(--text-muted); font: 400 12px/1.3 var(--mono); }
.akos-activity-row.is-fresh { border-left: 2px solid var(--brand-gold); padding-left: 8px; }
.akos-activity-text { flex: 1 1 260px; min-width: 0; text-align: left; background: none; border: 0; padding: 0; color: var(--text); font: inherit; overflow-wrap: anywhere; }
button.akos-activity-text { cursor: pointer; }
button.akos-activity-text:hover { color: var(--brand-gold-text); }
.akos-activity-agent { font: 500 10.5px/1 var(--mono); letter-spacing: .1em; color: var(--text-muted); }
@media (max-width: 900px) {
    .akos-graph-tabs { width: 100%; overflow-x: auto; gap: 14px; scrollbar-width: none; }
    .akos-graph-searchbox { max-width: none; flex-basis: 100%; }
}
@media (max-width: 620px) {
    .akos-graph-controls { width: 100%; }
    .akos-graph-minimap { display: none; }
    .akos-graph-summary, .akos-summary-figures { grid-template-columns: 1fr 1fr; }
    .akos-summary-block { grid-column: 1 / -1; }
    .akos-summary-block + .akos-summary-block { border-left: 0; border-top: 1px solid var(--line-1); }
    .akos-summary-figures > div:nth-child(3) { border-left: 0; }
    .akos-summary-figures > div:nth-child(n+3) { border-top: 1px solid var(--line-1); }
    .akos-graph-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); border: 1px solid var(--line-1); border-top: 0; }
    .akos-graph-stats-wide { grid-column: 1 / -1; }
    .akos-graph-legend { padding: 8px 12px; }
}
/* Inspector: DESCRIPCIÓN and the verification's segments (one per cited evidence ref; lit = in the record). */
.akos-insp-desc { margin: 0; color: var(--text); line-height: 1.5; overflow-wrap: anywhere; }
.akos-verif-bar { display: flex; gap: 3px; margin: 10px 0 6px; }
.akos-verif-seg { flex: 1 1 0; height: 3px; background: var(--line-3); }
.akos-verif-seg.is-ok { background: var(--brand-gold); }
.akos-verif-seg.is-missing { background: var(--graph-contradicts); opacity: .6; }
/* "¿Por qué sabes esto?" under a reply (Terminal bubble, Inicio's Normal level): a text control, the basis chips,
   and the chain inline where there is no Inspector beside the thread. */
.akos-why-reply { margin: 10px 0 0; display: flex; flex-direction: column; align-items: flex-start; gap: 8px; }
.akos-why-toggle { background: none; border: 0; padding: 2px 0; color: var(--brand-gold-text); font: 500 11px/1.3 var(--mono); letter-spacing: .1em; text-transform: uppercase; cursor: pointer; text-decoration: underline; text-decoration-color: var(--brand-gold); text-underline-offset: 3px; }
.akos-why-toggle:hover { color: var(--text); }
.akos-why-panel { width: 100%; display: flex; flex-direction: column; gap: 8px; padding: 10px 12px; border-left: 2px solid var(--brand-gold); background: var(--bg-raised); }
.akos-why-panel .akos-provenance { margin: 0; }
.akos-why-chips { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.akos-why-chips .akos-kind { margin-left: 0; }
.akos-claim-chip { display: inline-flex; align-items: center; padding: 3px 8px; border: 1px solid var(--line); background: var(--bg); color: var(--text); font: 500 10.5px/1.3 var(--mono); letter-spacing: .06em; cursor: pointer; overflow-wrap: anywhere; }
button.akos-claim-chip:hover, .akos-claim-chip.is-on { border-color: var(--brand-gold); color: var(--brand-gold-text); }
.akos-claim-chip.is-plain { cursor: default; color: var(--text-muted); border-style: dashed; }
/* AJUSTES: blocks, the segmented controls (their "on" state is CSS over the attribute the script writes, so the
   page never guesses the reader's choice on the server), and the compact density. */
.akos-settings { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border: 1px solid var(--line-1); }
.akos-settings-block { padding: 22px 24px; min-width: 0; border-bottom: 1px solid var(--line-1); }
.akos-settings-block:nth-child(odd) { border-right: 1px solid var(--line-1); }
.akos-settings-block[data-settings="system"] { grid-column: 1 / -1; border-right: 0; border-bottom: 0; }
.akos-setting { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 16px; padding: 8px 0; }
.akos-setting-name { color: var(--text-secondary); font-size: 13px; }
.akos-setting-copy { margin: 0; color: var(--text-secondary); line-height: 1.55; }
.akos-segmented { display: inline-flex; border: 1px solid var(--line); }
.akos-seg { background: none; border: 0; padding: 8px 14px; min-height: 36px; color: var(--text-muted); font: 500 11px/1 var(--mono); letter-spacing: .12em; text-transform: uppercase; cursor: pointer; }
.akos-seg + .akos-seg { border-left: 1px solid var(--line); }
.akos-seg:hover { color: var(--text); }
body[data-theme="dark"] .akos-seg[data-theme-set="dark"],
body:not([data-theme="dark"]) .akos-seg[data-theme-set="light"],
html[data-density="compact"] .akos-seg[data-density-set="compact"],
html:not([data-density="compact"]) .akos-seg[data-density-set="comfortable"] { color: var(--brand-gold-text); background: var(--bg-raised); box-shadow: inset 0 -1px 0 var(--brand-gold); }
.akos-settings-rows { list-style: none; margin: 0 0 10px; padding: 0; display: grid; gap: 10px; }
.akos-settings-rows li { display: flex; flex-direction: column; gap: 2px; padding-bottom: 10px; border-bottom: 1px solid var(--line-1); }
@media (max-width: 760px) {
    .akos-settings { grid-template-columns: 1fr; }
    .akos-settings-block:nth-child(odd) { border-right: 0; }
    .akos-settings-block { padding: 18px 16px; }
}
html[data-density="compact"] .akos-insp-block { padding: 11px 0; }
html[data-density="compact"] .akos-insp-kv { gap: 5px; }
html[data-density="compact"] .akos-inspector { padding: 18px 18px 28px; }
html[data-density="compact"] .rail-nav .akos-rail-link { min-height: 36px; padding-top: 5px; padding-bottom: 5px; }
html[data-density="compact"] .akos-activity-row { padding: 6px 4px; }
html[data-density="compact"] .akos-settings-block, html[data-density="compact"] .akos-summary-block { padding: 14px 16px; }
html[data-density="compact"] table.grid td, html[data-density="compact"] table.grid th { padding-top: 5px; padding-bottom: 5px; }

/* CRONOS as one timeline: the density bar (where records exist), the selected window, two handles over one track
   that cannot cross (the page clamps them), the axis and the presets. */
.akos-cronos { display: flex; flex-direction: column; gap: 10px; }
.akos-cronos-head { display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.akos-cronos-head .akos-caps { margin: 0; color: var(--text); }
.akos-cronos-after { text-align: right; }
.akos-cronos-track { position: relative; height: 64px; margin: 4px 0 0; }
.akos-cronos-density { position: absolute; left: 0; right: 0; top: 0; bottom: 18px; display: flex; align-items: flex-end; gap: 1px; border-bottom: 1px solid var(--line); }
.akos-cronos-density i { flex: 1 1 0; background: var(--text-muted); opacity: .55; min-height: 0; }
.akos-cronos-density i.is-empty { opacity: 0; }
.akos-cronos-window { position: absolute; top: 0; bottom: 18px; background: var(--brand-gold); opacity: .14; border-left: 1px solid var(--brand-gold); border-right: 1px solid var(--brand-gold); pointer-events: none; }
.akos-cronos-handle { position: absolute; left: 0; right: 0; bottom: 4px; width: 100%; height: 28px; margin: 0; padding: 0; border: 0; background: transparent; pointer-events: none; -webkit-appearance: none; appearance: none; }
.akos-cronos-handle::-webkit-slider-runnable-track { background: transparent; height: 28px; }
.akos-cronos-handle::-moz-range-track { background: transparent; }
.akos-cronos-handle::-webkit-slider-thumb { -webkit-appearance: none; pointer-events: auto; width: 16px; height: 28px; border-radius: 2px; background: var(--brand-gold); border: 2px solid var(--bg); cursor: ew-resize; }
.akos-cronos-handle::-moz-range-thumb { pointer-events: auto; width: 14px; height: 26px; border-radius: 2px; background: var(--brand-gold); border: 2px solid var(--bg); cursor: ew-resize; }
.akos-cronos-handle:focus-visible { outline: none; }
.akos-cronos-handle:focus-visible::-webkit-slider-thumb { box-shadow: 0 0 0 2px var(--text); }
.akos-cronos-axis { display: flex; justify-content: space-between; margin: 0; }
.akos-cronos-presets { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 4px; }
.akos-cronos-preset { display: inline-flex; align-items: center; gap: 8px; background: none; border: 1px solid var(--line-1); color: var(--text); padding: 7px 12px; min-height: 34px; font: 500 11px/1 var(--mono); letter-spacing: .1em; text-transform: uppercase; cursor: pointer; }
.akos-cronos-preset:hover { border-color: var(--brand-gold); }
.akos-cronos-preset.is-on { border-color: var(--brand-gold); color: var(--brand-gold-text); }
.akos-cronos-preset:disabled { color: var(--text-faint); cursor: not-allowed; border-color: var(--line-1); }
.akos-cronos-preset .akos-legend-count { margin-left: 0; }
/* CAPACIDADES: the per-agent summary cards first, available rows first inside each agent, the rest as one
   collapsed row per reason with what is missing. */
.akos-cap-summary { list-style: none; margin: 0 0 24px; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 0; border-top: 1px solid var(--line-1); border-left: 1px solid var(--line-1); }
.akos-cap-summary li { border-right: 1px solid var(--line-1); border-bottom: 1px solid var(--line-1); }
.akos-cap-card { display: flex; flex-direction: column; gap: 8px; padding: 14px 16px; color: var(--text); text-decoration: none; height: 100%; }
.akos-cap-card:hover { background: var(--bg-raised); text-decoration: none; }
.akos-cap-card-name { font: 500 12px/1.2 var(--mono); letter-spacing: .14em; text-transform: uppercase; }
.akos-cap-card-counts { display: flex; flex-wrap: wrap; gap: 4px 12px; font-size: 12.5px; color: var(--text-secondary); }
.akos-cap-card-counts b { font-weight: 500; color: var(--text); }
.akos-cap-ok b { color: var(--ok); }
.akos-cap-no { color: var(--text-muted); }
.akos-cap-meter { height: 3px; background: var(--line-3); position: relative; }
.akos-cap-meter i { position: absolute; left: 0; top: 0; bottom: 0; background: var(--ok); }
.akos-cap-group { border-top: 1px solid var(--line-1); padding: 10px 0; }
.akos-cap-group:first-child { border-top: 0; }
.akos-cap-group > summary { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; cursor: pointer; list-style: none; }
.akos-cap-group > summary::-webkit-details-marker { display: none; }
.akos-cap-group > summary::before { content: "▸"; color: var(--text-muted); font-size: 11px; }
.akos-cap-group[open] > summary::before { content: "▾"; }
.akos-cap-headline { color: var(--text); font-size: 13px; }
.akos-cap-need { margin-left: auto; font-size: 12.5px; color: var(--text-secondary); }
.akos-cap-need .akos-kind { margin-left: 0; }
.akos-cap-list { list-style: none; margin: 8px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px 14px; }
.akos-cap-table + .akos-cap-group { border-top: 1px solid var(--line-1); margin-top: 8px; }
@media (max-width: 620px) {
    .akos-cap-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .akos-cap-need { margin-left: 0; flex-basis: 100%; }
}
/* Inicio › "Lo que no está resuelto" is a glance: one line per item, truncated, with its meta after it. */
.ledger-lines .ledger-line { display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 8px; min-width: 0; padding: 8px 0; }
.ledger-line .tag { flex: none; }
.ledger-line-text { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--text); }
.ledger-line-text { flex-basis: 0; flex-grow: 1; }
.ledger-line-meta { flex: 1 0 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ledger-more { margin: 10px 0 0; }
@media (max-width: 620px) {
    .ledger-lines .ledger-line { flex-wrap: wrap; }
    .ledger-line-text { flex-basis: 100%; order: 2; }
    .ledger-line-meta { max-width: none; order: 3; }
}
.akos-insp-source { display: block; margin-top: 2px; font: 500 9.5px/1.3 var(--mono); letter-spacing: .1em; text-transform: uppercase; color: var(--text-muted); }
.ledger-columns > div, .ledger-lines { min-width: 0; }
.akos-cog-conflict strong { color: var(--text); }
/* Contradiction sides + crux (lane COG), and the turn's cognition panel. */
.akos-sides { display: flex; flex-direction: column; gap: 3px; margin: 6px 0 0; font-size: 12.5px; color: var(--text-secondary); flex-basis: 100%; min-width: 0; }
.akos-side .akos-kind { margin-left: 0; margin-right: 6px; }
.akos-crux { color: var(--text); }
.akos-sides.is-compact .akos-side { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.akos-cognition { display: grid; gap: 0; border: 1px solid var(--line-1); margin: 0 0 24px; }
.akos-cog-block { padding: 14px 18px; border-bottom: 1px solid var(--line-1); min-width: 0; }
.akos-cog-block:last-child { border-bottom: 0; }
.akos-cog-block > .akos-caps { color: var(--text); margin-bottom: 8px; }
.akos-cog-kv { margin: 0; display: grid; gap: 6px; }
.akos-cog-kv > div { display: grid; grid-template-columns: minmax(120px, 200px) minmax(0, 1fr); gap: 12px; }
.akos-cog-kv dt { font: 500 10px/1.4 var(--mono); letter-spacing: .1em; text-transform: uppercase; color: var(--text-muted); }
.akos-cog-kv dd { margin: 0; color: var(--text); overflow-wrap: anywhere; }
.akos-cog-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; font-size: 13px; }
.akos-cog-list code { overflow-wrap: anywhere; }
.akos-cog-steps { list-style: none; margin: 10px 0 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 6px 14px; font-size: 12.5px; }
.akos-cog-step { color: var(--text); }
.akos-cog-step.is-not_applicable, .akos-cog-step.is-pending { color: var(--text-muted); }
@media (max-width: 620px) { .akos-cog-kv > div { grid-template-columns: 1fr; gap: 2px; } }
.memoria-epi { display: flex; flex-wrap: wrap; gap: 4px 8px; margin-top: 4px; align-items: center; }
/* Wave 2 (lane KNOW) — Predicciones, Relaciones, Vacunas, Genoma: one list vocabulary. */
.akos-console-know .alert { margin-bottom: 16px; }
.akos-know-ledger { margin: 0 0 20px; border: 1px solid var(--line-1); }
.akos-know-ledger > p { margin: 10px 16px 14px; }
.akos-know-ledger .akos-summary-figures { border-bottom: 1px solid var(--line-1); }
.akos-know-bands { margin: 12px 16px 0; width: calc(100% - 32px); }
.akos-know-form { border: 1px solid var(--line-1); background: var(--bg-raised); padding: 12px 16px; margin: 0 0 18px; display: grid; gap: 8px; }
.akos-know-form > summary { cursor: pointer; font: 500 11px/1.4 var(--mono); letter-spacing: .12em; text-transform: uppercase; color: var(--brand-gold-text); }
.akos-know-form.is-inline { margin: 10px 0 0; }
.akos-know-list { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--line-1); }
.akos-know-item { padding: 14px 4px; border-bottom: 1px solid var(--line-1); display: grid; gap: 6px; min-width: 0; }
.akos-know-item > p { margin: 0; overflow-wrap: anywhere; }
.akos-know-head { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; }
.akos-know-title { color: var(--text); font-size: 14px; min-width: 0; overflow-wrap: anywhere; }
.akos-know-bar { align-items: flex-end; margin: 0 0 16px; }
.akos-genome-cols { margin: 0 0 20px; }
.akos-hypothetical { display: inline-flex; align-items: center; padding: 2px 8px; border: 1px solid var(--brand-gold); color: var(--brand-gold-text); font: 600 10.5px/1.3 var(--mono); letter-spacing: .12em; }
.akos-replay-diff td.is-changed { color: var(--brand-gold-text); }
.akos-legend-predicciones .akos-legend-dot { background: var(--graph-predicciones); }
.akos-legend-mutaciones .akos-legend-dot { background: var(--graph-mutaciones); }
.akos-lineage { display: grid; gap: 8px; margin: 0 0 18px; padding: 12px 14px; border: 1px solid var(--line-1); }
.akos-lineage-line { margin: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
/* Tablero constitucional (lane PAL §5). */
.akos-tablero-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 0; border-top: 1px solid var(--line-1); border-left: 1px solid var(--line-1); margin: 0 0 12px; }
.akos-tablero-dim { padding: 14px 16px; border-right: 1px solid var(--line-1); border-bottom: 1px solid var(--line-1); display: grid; gap: 6px; align-content: start; min-width: 0; }
.akos-tablero-dim > p { margin: 0; }
.akos-tablero-dim[data-state="no se mide"] { color: var(--text-muted); }
.akos-measure { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 2px 10px; font-size: 13px; padding: 4px 0; border-top: 1px solid var(--line-1); }
.akos-measure-name { color: var(--text-secondary); min-width: 0; overflow-wrap: anywhere; }
.akos-measure > .muted, .akos-measure-formula { grid-column: 1 / -1; }
.akos-measure-formula { font: 400 11px/1.4 var(--mono); color: var(--text-muted); overflow-wrap: anywhere; }
.akos-pal-chain { border-top: 1px solid var(--line-1); padding: 12px 0 4px; margin-top: 8px; }
.akos-tablero .card-body { display: grid; gap: 8px; }
/* Wave 2 (lane CAPS) — image attachments and the executor. */
.akos-attach { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; margin: 8px 0 0; }
.akos-attach-btn { display: inline-flex; align-items: center; gap: 6px; padding: 6px 10px; min-height: 32px; border: 1px solid var(--line-1); color: var(--text); font: 500 11px/1 var(--mono); letter-spacing: .12em; text-transform: uppercase; cursor: pointer; }
.akos-attach-btn:hover { border-color: var(--brand-gold); }
.akos-attach-btn.is-off { color: var(--text-faint); cursor: not-allowed; }
.akos-attach-list { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.akos-attach-item { position: relative; display: flex; flex-direction: column; gap: 4px; width: 96px; }
.akos-attach-item img { width: 96px; height: 72px; object-fit: cover; border: 1px solid var(--line-1); background: var(--bg-raised); }
.akos-attach-meta { font-size: 10.5px; color: var(--text-muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.akos-attach-remove { position: absolute; top: 2px; right: 2px; width: 22px; height: 22px; border: 0; background: var(--bg); color: var(--text); cursor: pointer; line-height: 1; }
.akos-attach-note { flex-basis: 100%; margin: 0; }
.akos-attach-refs { list-style: none; margin: 6px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px 12px; font-size: 12px; color: var(--text-secondary); }
.akos-attach-refs .akos-kind { margin-left: 0; }
.akos-execute { display: grid; gap: 8px; margin: 12px 0; padding: 12px 14px; border: 1px solid var(--brand-gold); }
.akos-execute > p { margin: 0; }

/* Historical inspection keeps the console's paper/ink planes, ruled panels and gold link voice. */
.akos-snapshot-note { margin: 0 0 20px; padding: 14px 16px; border: 1px solid var(--line); border-left: 2px solid var(--brand-gold); background: var(--bg-raised); font-size: 13px; overflow-wrap: anywhere; }
.akos-snapshot-note p { margin: 0 0 8px; }
.akos-snapshot-note .akos-text-link + .akos-text-link { margin-left: 16px; }
.akos-graph-notes { margin: 0 0 16px; font-size: 12px; color: var(--text-secondary); overflow-wrap: anywhere; }
.akos-graph-notes summary { cursor: pointer; color: var(--brand-gold-text); }
.akos-chain-link { color: var(--brand-gold-text); text-decoration: underline; text-underline-offset: 3px; overflow-wrap: anywhere; }
.akos-console-cronos [data-changed-node] .akos-text-link { display: block; margin-top: 6px; overflow-wrap: anywhere; }
.akos-inspector [data-insp="active-task"] { overflow-wrap: anywhere; }

/* The intention box's toolbar is ONE centre line shared with the send arrow (bottom 16px + 44px / 2 = 38px
   above the frame; 22px padding + 32px controls / 2 = 38px). The attach group dissolves into the row so its
   buttons and the autocorrect toggle are siblings on that line, and picked files wrap onto their own lines
   under it (`order: 1`) instead of re-centring the toggle against the thumbnails. Before 2026-10-04 the attach
   group's top margin put `+ IMAGEN` 4px below `Autocorrector: sí`; LayoutAudit now measures it. */
.akos-intent-tools { padding: 0 76px 22px 20px; align-items: center; flex-wrap: wrap; gap: 8px 12px; }
.akos-intent-tools > .akos-attach { display: contents; }
.akos-intent-tools .akos-attach-list, .akos-intent-tools .akos-attach-note { order: 1; flex-basis: 100%; }
.akos-intent-tools [data-akos-autocorrect-toggle] { height: 32px; padding: 0 10px; font: 500 11px/1 var(--mono); letter-spacing: .12em; }
@media (max-width: 620px) {
    .akos-intent-tools { padding: 0 64px 16px 14px; }
}

/* A field in a toolbar is a flex item, not a stacked form field: the kernel's stacked-form margin (4px 0 10px)
   pushed it 3px off the centre of the buttons beside it (Grafo, Relaciones, the mandate acts; LayoutAudit). */
.row > input, .row > select, .akos-filter-field > input, .akos-filter-field > select, .akos-graph-view > select { margin: 0; }
.akos-filter-field > input, .akos-filter-field > select { height: 32px; }
.akos-know-bar .btn-small { height: 32px; }
.terminal-composer > .row { flex-wrap: wrap; }

/* Document filenames and extraction notes remain readable at mobile widths. */
.akos-attach-list { min-width: 0; max-width: 100%; }
.akos-attach-item.is-document { width: 260px; max-width: 100%; padding: 8px 28px 8px 8px; border: 1px solid var(--line-1); }
.akos-attach-item.is-document .akos-attach-meta { white-space: normal; overflow-wrap: anywhere; }
.akos-attach-item.is-document [data-document-preview] { display: block; margin-top: 4px; }
.akos-attach-refs li { max-width: 100%; overflow-wrap: anywhere; }
.akos-console-inicio .recent li { grid-template-columns: minmax(0, 1fr) auto; }
.akos-console-inicio .recent .truncate { min-width: 0; }
