/* Códice FAC · piloto CAMAN — calm, dense document-intelligence UI. System fonts only (CSP font-src 'self' data:). */

:root {
  color-scheme: light;
  --font-sans: ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --font-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;

  --bg: #FFFFFF;
  --bg-subtle: #F7F8F9;
  --bg-panel: #EEF1F3;
  --bg-sel: #EDF1F3;
  --bg-hover: rgba(20, 27, 32, .045);
  --fg: #141B20;
  --fg-muted: #46535B;
  --fg-faint: #67747B;
  --fg-ghost: rgba(20, 27, 32, .2);
  --border: rgba(20, 27, 32, .14);
  --border-strong: #141B20;

  --ai: #0E8A7E;          /* teal: AI-generated */
  --ai-ink: #0B6A61;
  --ai-bg: #D6F2ED;
  --ai-wash: rgba(16, 168, 148, .12);
  --ai-line: #25B3A2;
  --crit: #B42318;        /* red: contradictions, critical */
  --crit-wash: rgba(180, 35, 24, .07);
  --warn: #A86506;
  --warn-wash: rgba(196, 128, 18, .12);
  --ok: #2E7D57;
  --focus: #2563EB;

  --banner-bg: #1F3B57;   /* USO INTERNO */
  --banner-fg: #F0FAF4;
  --map-bg: #FFFFFF;
  --grid-dot: rgba(20, 27, 32, .09);
  --shadow: 0 12px 32px rgba(15, 23, 28, .14);
  --banner: 22px;
  --rail: 56px;
  --drawer: 420px;
}

:root[data-theme="dark"] {
  color-scheme: dark;
  --bg: #0E1417;
  --bg-subtle: #131B1F;
  --bg-panel: #1A2429;
  --bg-sel: #1C272D;
  --bg-hover: rgba(255, 255, 255, .05);
  --fg: #E8EEF1;
  --fg-muted: #AEBAC0;
  --fg-faint: #8A989F;
  --fg-ghost: rgba(232, 238, 241, .2);
  --border: rgba(232, 238, 241, .13);
  --border-strong: #E8EEF1;
  --ai: #2CC4B2;
  --ai-ink: #5ED6C7;
  --ai-bg: rgba(44, 196, 178, .18);
  --ai-wash: rgba(44, 196, 178, .13);
  --ai-line: #2CC4B2;
  --crit: #F0705F;
  --crit-wash: rgba(240, 112, 95, .12);
  --warn: #E2B04E;
  --warn-wash: rgba(226, 176, 78, .14);
  --ok: #5FC08F;
  --focus: #7CB7FF;
  --banner-bg: #18304A;
  --map-bg: #0E1417;
  --grid-dot: rgba(232, 238, 241, .06);
  --shadow: 0 12px 32px rgba(0, 0, 0, .5);
}

/* always-dark surface (map drawer) */
.ink {
  --bg: #141B20; --bg-subtle: #1A2328; --bg-panel: #212C32; --bg-hover: rgba(255, 255, 255, .06); --bg-sel: #222E35;
  --fg: #E9EFF2; --fg-muted: rgba(233, 239, 242, .74); --fg-faint: rgba(233, 239, 242, .56); --border: rgba(233, 239, 242, .14);
  --border-strong: #E9EFF2; --ai-ink: #5ED6C7; --ai-bg: rgba(44, 196, 178, .2); --ai-wash: rgba(44, 196, 178, .14); --crit: #F28B7D; --warn: #E9B95A;
  background: var(--bg); color: var(--fg); color-scheme: dark;
}
:root[data-theme="dark"] .ink { --bg: #131B1F; }

*, *::before, *::after { box-sizing: border-box; }
* { margin: 0; padding: 0; }
html, body { height: 100%; }
body {
  background: var(--bg); color: var(--fg); font: 400 14px/1.45 var(--font-sans); letter-spacing: -.003em;
  -webkit-font-smoothing: antialiased; overflow: hidden; display: flex; flex-direction: column; min-width: 320px;
}
button, input, select, textarea { font: inherit; color: inherit; letter-spacing: inherit; }
button { cursor: pointer; background: none; border: 0; text-align: inherit; }
button:disabled { cursor: not-allowed; opacity: .5; }
a { color: inherit; }
:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
svg.i { flex: none; stroke: currentColor; fill: none; stroke-width: 1.4; stroke-linecap: round; stroke-linejoin: round; }
table { border-collapse: collapse; }
[hidden] { display: none !important; }
q { quotes: none; }

.cls {
  height: var(--banner); flex: none; display: flex; align-items: center; justify-content: center; background: var(--banner-bg); color: var(--banner-fg);
  font: 600 11px/1 var(--font-mono); letter-spacing: .16em; text-transform: uppercase; white-space: nowrap; overflow: hidden; z-index: 70; position: relative;
}
#root { flex: 1; min-height: 0; position: relative; }
.boot, .noscript { padding: 40px; color: var(--fg-muted); font: 400 13px var(--font-mono); }

/* ------------------------------------------------------------------ primitives */
.lab { font: 400 11px/1.4 var(--font-mono); letter-spacing: .06em; text-transform: uppercase; color: var(--fg-muted); }
.lab b { font-weight: 600; color: var(--fg); }
.mono { font-family: var(--font-mono); font-variant-numeric: tabular-nums; letter-spacing: 0; }
.muted { color: var(--fg-muted); }
.faint { color: var(--fg-faint); }
.small { font-size: 12.5px; }
.crit { color: var(--crit); }
.warn { color: var(--warn); }
.nowrap { white-space: nowrap; }
.minw0 { min-width: 0; }
.pad { padding: 16px; }
.mt { margin-top: 16px; }
.mt2 { margin-top: 24px; }
.w5 { font-weight: 550; }
.live-dot { width: 6px; height: 6px; background: var(--ai-line); display: inline-block; flex: none; }
.sq { display: inline-block; width: 6px; height: 6px; background: currentColor; flex: none; }
.hl { background: var(--ai-wash); border-bottom: 2px solid var(--ai-line); color: inherit; padding: 0 1px; }
mark { color: inherit; }
kbd { font: 400 11px/1 var(--font-mono); border: 1px solid var(--border); padding: 3px 5px; color: var(--fg-muted); background: var(--bg); }

.btn {
  height: 32px; padding: 0 12px; border: 1px solid var(--border); background: var(--bg); color: var(--fg); font: 500 13px/1 var(--font-sans);
  display: inline-flex; align-items: center; gap: 7px; white-space: nowrap; transition: background .15s, border-color .15s; text-decoration: none;
}
.btn:hover:not(:disabled) { background: var(--bg-hover); border-color: var(--fg-faint); }
.btn.pri { background: var(--fg); color: var(--bg); border-color: var(--fg); }
.btn.pri:hover:not(:disabled) { background: var(--fg); opacity: .88; }
.btn.ghost { border-color: transparent; background: transparent; }
.btn.ghost:hover:not(:disabled) { background: var(--bg-hover); border-color: transparent; }
.btn.ai { border-color: var(--ai-line); box-shadow: inset 3px 0 0 var(--ai-line); }
.btn.pri.ai { box-shadow: inset 4px 0 0 var(--ai-line); }
.btn.sm { height: 28px; padding: 0 9px; font-size: 12.5px; }
.btn.xs { height: 24px; padding: 0 7px; font-size: 12px; gap: 5px; }
.btn.icon { width: 32px; padding: 0; justify-content: center; }
.linkish { display: inline-flex; align-items: center; gap: 6px; text-decoration: underline; text-decoration-color: var(--fg-ghost); text-underline-offset: 3px; }
.linkish:hover { text-decoration-color: currentColor; }

.aitag {
  display: inline-flex; align-items: center; gap: 5px; font: 600 10.5px/1 var(--font-mono); letter-spacing: .07em; text-transform: uppercase;
  padding: 4px 6px; background: var(--ai-bg); color: var(--ai-ink); white-space: nowrap;
}
.pill { display: inline-flex; align-items: center; gap: 6px; border: 1px solid var(--border); border-radius: 999px; padding: 2px 9px; font: 400 11px/1.6 var(--font-mono); letter-spacing: .05em; text-transform: uppercase; color: var(--fg-muted); white-space: nowrap; }
.ktag, .stag { display: inline-flex; align-items: center; font: 500 10.5px/1 var(--font-mono); letter-spacing: .06em; text-transform: uppercase; padding: 4px 6px; border: 1px solid var(--border); color: var(--fg-muted); white-space: nowrap; }
.stag.st-confirmed { border-color: var(--crit); color: var(--crit); }
.stag.st-dismissed { color: var(--fg-faint); text-decoration: line-through; }
.stag.st-explained { border-color: var(--ai-line); color: var(--ai-ink); }

.sev { display: inline-flex; align-items: center; gap: 7px; font: 600 11px/1 var(--font-mono); letter-spacing: .07em; text-transform: uppercase; white-space: nowrap; }
.sev-critical, .sev-high { color: var(--crit); }
.sev-medium { color: var(--warn); }
.sev-low { color: var(--fg-faint); }
.sevbars { display: inline-flex; gap: 2px; }
.sevbars i { width: 5px; height: 10px; background: var(--fg-ghost); display: block; }
.sevbars.s1 i:nth-child(-n+1) { background: var(--fg-faint); }
.sevbars.s2 i:nth-child(-n+2) { background: var(--warn); }
.sevbars.s3 i:nth-child(-n+3) { background: var(--crit); }
.sevbars.s4 i { background: var(--crit); }
.sevbars.s4 { box-shadow: 0 0 0 1px var(--crit); padding: 1px; }

.glyph { flex: none; overflow: visible; color: var(--fg); }
.glyph .gf { fill: currentColor; }
.glyph .go { fill: var(--bg); stroke: currentColor; stroke-width: 1.7; }
.glyph .gl { fill: none; stroke: currentColor; stroke-width: 1.5; }
.glyph .gr { fill: var(--rc, var(--crit)); }
.glyph .gb { fill: var(--crit); stroke: var(--bg); stroke-width: 1.3; }

/* skeleton / states */
.skel { display: grid; gap: 9px; }
.skel i { display: block; height: 12px; background: linear-gradient(90deg, var(--bg-panel) 0%, var(--bg-subtle) 50%, var(--bg-panel) 100%); background-size: 200% 100%; animation: shimmer 1.3s linear infinite; }
@keyframes shimmer { from { background-position: 200% 0; } to { background-position: -200% 0; } }
.empty { display: flex; flex-direction: column; align-items: center; gap: 8px; text-align: center; padding: 36px 20px; color: var(--fg-muted); }
.empty b { font-weight: 550; color: var(--fg); font-size: 14px; }
.empty p { font-size: 13px; max-width: 380px; }
.errbox { display: flex; align-items: flex-start; gap: 12px; padding: 14px 16px; border: 1px solid var(--crit); background: var(--crit-wash); max-width: 760px; }
.errbox > svg { color: var(--crit); margin-top: 1px; }
.errbox div { flex: 1; min-width: 0; }
.errbox b { font-weight: 600; }
.errbox p { color: var(--fg-muted); font-size: 13px; margin-top: 2px; }
.errbox.compact { padding: 10px 12px; }
.dots { display: inline-flex; gap: 3px; align-items: center; }
.dots i { width: 4px; height: 4px; background: currentColor; animation: dot 1s steps(2) infinite; }
.dots i:nth-child(2) { animation-delay: .2s; }
.dots i:nth-child(3) { animation-delay: .4s; }
@keyframes dot { 0% { opacity: 1; } 50% { opacity: .2; } }
.spin { display: inline-block; border: 1.6px solid var(--fg-ghost); border-top-color: currentColor; border-radius: 50%; animation: spin .8s linear infinite; flex: none; vertical-align: -2px; }
@keyframes spin { to { transform: rotate(360deg); } }
.pulse { width: 8px; height: 8px; background: var(--ai-line); display: block; animation: dot 1.2s steps(2) infinite; }
.hollow { width: 8px; height: 8px; border: 1px solid var(--fg-faint); display: block; }

/* ------------------------------------------------------------------ splash */
.splash { position: absolute; inset: 0; display: grid; place-items: center; padding: 24px; background: var(--bg-subtle);
  background-image: radial-gradient(var(--grid-dot) 1px, transparent 1.3px); background-size: 22px 22px; }
.splash-card { width: min(520px, 100%); background: var(--bg); border: 1px solid var(--border-strong); padding: 28px 28px 24px; display: grid; gap: 10px; }
.splash-brand { display: flex; align-items: center; gap: 10px; font: 600 16px/1 var(--font-sans); letter-spacing: -.01em; margin-bottom: 8px; }
.splash h1 { font: 400 28px/1.15 var(--font-sans); letter-spacing: -.03em; }
.splash .muted { display: flex; gap: 8px; align-items: center; }
.splash .row-acts { margin-top: 10px; }

/* ------------------------------------------------------------------ shell */
.app { display: grid; grid-template-columns: var(--rail) minmax(0, 1fr); height: 100%; }
.rail { border-right: 1px solid var(--border); display: flex; flex-direction: column; align-items: center; padding: 10px 0; gap: 4px; background: var(--bg); z-index: 40; }
.rail-mark { width: 36px; height: 36px; display: grid; place-items: center; margin-bottom: 10px; color: var(--fg); }
.rail-btn { position: relative; width: 42px; height: 42px; display: grid; place-items: center; color: var(--fg-muted); text-decoration: none; }
.rail-btn:hover { background: var(--bg-hover); color: var(--fg); }
.rail-btn[aria-current="page"] { color: var(--fg); background: var(--bg-sel); }
.rail-btn[aria-current="page"]::before { content: ""; position: absolute; left: -7px; top: 8px; bottom: 8px; width: 2px; background: var(--fg); }
.rail-btn .tip {
  position: absolute; left: 50px; top: 50%; transform: translateY(-50%); background: var(--fg); color: var(--bg); white-space: nowrap;
  font: 500 12.5px/1 var(--font-sans); padding: 8px 10px; opacity: 0; pointer-events: none; transition: opacity .15s; z-index: 80; display: flex; gap: 8px; align-items: center;
}
.rail-btn .tip small { font: 400 11px/1 var(--font-mono); letter-spacing: .05em; text-transform: uppercase; opacity: .7; }
.rail-btn:hover .tip, .rail-btn:focus-visible .tip { opacity: 1; }
.rail .sp { flex: 1; }
.rail hr { width: 26px; border: 0; border-top: 1px solid var(--border); margin: 6px 0; }

.main { display: grid; grid-template-rows: 52px 42px minmax(0, 1fr) 58px; min-width: 0; min-height: 0; position: relative; }
.top { display: flex; align-items: center; gap: 14px; padding: 0 16px; border-bottom: 1px solid var(--border); min-width: 0; }
.brand { display: flex; align-items: center; gap: 9px; color: var(--fg); text-decoration: none; flex: none; }
.brand .prod { font: 650 15px/1 var(--font-sans); letter-spacing: -.015em; }
.ws { display: flex; flex-direction: column; gap: 3px; min-width: 0; padding-left: 14px; border-left: 1px solid var(--border); }
.ws b { font: 550 13px/1.2 var(--font-sans); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ws span { font-size: 11.5px; color: var(--fg-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.search {
  flex: 1; max-width: 500px; margin-left: auto; height: 34px; display: flex; align-items: center; gap: 10px; padding: 0 10px; border: 1px solid var(--border);
  background: var(--bg-subtle); color: var(--fg-muted); min-width: 120px;
}
.search:hover { border-color: var(--fg-faint); }
.search span { flex: 1; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-size: 13.5px; }
.clock { font-size: 12px; color: var(--fg-muted); white-space: nowrap; display: flex; gap: 6px; align-items: center; margin-left: auto; }
.clock .blink { animation: dot 2s steps(2) infinite; }
.umenu { position: relative; flex: none; }
.user { width: 32px; height: 32px; display: grid; place-items: center; border: 1px solid var(--border); font: 600 11.5px/1 var(--font-mono); }
.user:hover, .user[aria-expanded="true"] { border-color: var(--fg); }
.umenu-pop { position: absolute; right: 0; top: 38px; width: 270px; background: var(--bg); border: 1px solid var(--border-strong); box-shadow: var(--shadow); z-index: 90; display: grid; }
.umenu-pop .who { padding: 12px 14px; border-bottom: 1px solid var(--border); display: grid; gap: 3px; }
.umenu-pop .who b { font-weight: 600; }
.umenu-pop .who > span:not(.lab) { font-size: 12.5px; color: var(--fg-muted); overflow: hidden; text-overflow: ellipsis; }
.umenu-pop .who .lab { margin-top: 4px; }
.umenu-pop button { display: flex; gap: 10px; align-items: center; padding: 10px 14px; font-size: 13.5px; }
.umenu-pop button:hover { background: var(--bg-hover); }

.tabs { display: flex; align-items: stretch; border-bottom: 1px solid var(--border); padding: 0 8px; gap: 2px; min-width: 0; }
.tablist { display: flex; align-items: stretch; overflow-x: auto; scrollbar-width: none; min-width: 0; }
.tablist::-webkit-scrollbar { display: none; }
.tab { display: flex; align-items: center; gap: 8px; padding: 0 12px; color: var(--fg-muted); font: 500 13.5px/1 var(--font-sans); white-space: nowrap; position: relative; text-decoration: none; }
.tab:hover { color: var(--fg); }
.tab[aria-selected="true"] { color: var(--fg); }
.tab[aria-selected="true"]::after { content: ""; position: absolute; left: 8px; right: 8px; bottom: -1px; height: 2px; background: var(--fg); }
.tab .n { font: 400 11.5px/1 var(--font-mono); color: var(--fg-faint); }
.tab .bad { font: 600 11px/1 var(--font-mono); background: var(--crit); color: #fff; padding: 3px 5px; }
.tab-x { display: grid; place-items: center; width: 20px; height: 20px; color: var(--fg-muted); }
.tab-x:hover { background: var(--bg-hover); color: var(--fg); }
.tabs .lens { margin-left: auto; display: flex; align-items: center; gap: 10px; padding: 0 8px; white-space: nowrap; min-width: 0; overflow: hidden; flex: 0 1000 auto; }  /* the scope gives way before a tab */

.views { position: relative; min-height: 0; min-width: 0; overflow: hidden; }
.view { position: absolute; inset: 0; overflow: auto; min-width: 0; }
.view[data-view="mapa"], .view[data-view="preguntar"], .view[data-view="contradicciones"] { overflow: hidden; }

.timeline { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 18px; padding: 0 16px; border-top: 1px solid var(--border); background: var(--bg); min-width: 0; }
.timeline .when { display: flex; flex-direction: column; gap: 3px; min-width: 104px; }
.timeline .when b { font-size: 14px; font-weight: 600; }
.timeline .track { position: relative; height: 44px; min-width: 0; }
.timeline .hist { position: absolute; left: 0; right: 0; top: 2px; width: 100%; height: 28px; }
.timeline .hist rect { fill: var(--fg-faint); opacity: .55; }
.timeline .hist rect:hover { opacity: 1; fill: var(--fg); }
.timeline .hist rect.now { fill: var(--ai-line); opacity: 1; }
.timeline .ticks { position: absolute; left: 0; right: 0; bottom: 0; height: 12px; font-size: 10.5px; color: var(--fg-faint); border-top: 1px solid var(--border); }
.timeline .ticks span { position: absolute; top: 2px; white-space: nowrap; text-transform: uppercase; }
.timeline .tl-sum { font-size: 11.5px; color: var(--fg-muted); white-space: nowrap; }
.hist-empty { position: absolute; inset: 8px 0; background: var(--bg-subtle); }

.toasts { position: fixed; right: 16px; bottom: calc(var(--banner) + 70px); z-index: 120; display: flex; flex-direction: column; gap: 8px; align-items: flex-end; pointer-events: none; }
.toast { background: var(--fg); color: var(--bg); padding: 10px 14px; font-size: 13px; max-width: 400px; display: flex; gap: 10px; align-items: flex-start; pointer-events: auto; animation: tin .25s ease-out; box-shadow: var(--shadow); }
.toast.error { background: var(--crit); color: #fff; }
.toast.ok { border-left: 3px solid var(--ai-line); }
.toast .tg { font-size: 11.5px; color: var(--ai-line); }
.toast.error .tg { color: #fff; }
@keyframes tin { from { opacity: 0; transform: translateY(8px); } }

/* ------------------------------------------------------------------ cards / grids shared */
.wrap { padding: 24px 28px 48px; max-width: 1440px; }
.card { border: 1px solid var(--border); background: var(--bg); padding: 16px; }
.vhead { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; margin-bottom: 22px; flex-wrap: wrap; }
.vhead h1 { font: 400 32px/1.08 var(--font-sans); letter-spacing: -.035em; margin-top: 8px; }
.vhead p { color: var(--fg-muted); max-width: 680px; margin-top: 8px; }
.runline { display: flex; align-items: center; gap: 6px; }
.row-acts { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 18px; align-items: center; }
.kv { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid var(--border); border-left: 1px solid var(--border); }
.kv > div { padding: 10px 12px; border-right: 1px solid var(--border); border-bottom: 1px solid var(--border); min-width: 0; }
.kv .v { font: 400 13.5px/1.35 var(--font-mono); margin-top: 4px; display: flex; flex-wrap: wrap; gap: 4px 8px; align-items: baseline; }
.kv .v.sans { font-family: var(--font-sans); }
.kv .v small { font-size: 11.5px; color: var(--fg-muted); }
.kv .v small.crit { color: var(--crit); }
.kv .v small.warn { color: var(--warn); }
.kv a { text-decoration-color: var(--fg-ghost); text-underline-offset: 3px; }
.tblwrap { overflow-x: auto; max-width: 100%; }
.tbl { width: 100%; font-size: 13px; }
.tbl th { font: 400 11px/1.3 var(--font-mono); letter-spacing: .06em; text-transform: uppercase; color: var(--fg-muted); text-align: left; padding: 8px 10px; border-bottom: 1px solid var(--fg); white-space: nowrap; }
.tbl td { padding: 9px 10px; border-bottom: 1px solid var(--border); vertical-align: top; }
.tbl .r { text-align: right; }
.tbl tr.click { cursor: pointer; }
.tbl tr.click:hover td { background: var(--bg-hover); }
.tbl tr.locked td { color: var(--fg-faint); }
.tbl tr.total td { font-weight: 600; border-bottom: 0; border-top: 1px solid var(--fg); }
.quote-sm { color: var(--fg-muted); font-size: 12.5px; margin-top: 4px; }
.docname { display: inline-flex; gap: 7px; align-items: center; }
.gst { font: 500 11px/1 var(--font-mono); letter-spacing: .04em; text-transform: uppercase; padding: 3px 6px; border: 1px solid var(--border); white-space: nowrap; display: inline-block; }
.gst.ok { color: var(--ok); border-color: currentColor; }
.gst.warn { color: var(--warn); border-color: currentColor; }
.gst.crit { color: var(--crit); border-color: currentColor; }
.field { display: grid; gap: 6px; margin-top: 8px; }
.field textarea, .field input, .reopen input, .cx-filters input, .cx-filters select {
  width: 100%; border: 1px solid var(--border); background: var(--bg); padding: 8px 10px; font-size: 13.5px; resize: vertical; border-radius: 0;
}
.field textarea:focus, .field input:focus, .reopen input:focus, .cx-filters input:focus, .cx-filters select:focus { outline: 2px solid var(--focus); outline-offset: -1px; }
.chips { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }

/* citation chips */
.cite { display: inline-flex; align-items: center; gap: 6px; border: 1px solid var(--border); padding: 3px 7px; font: 400 11.5px/1.3 var(--font-mono); color: var(--fg); background: var(--bg); max-width: 100%; min-width: 0; }
.cite:hover { border-color: var(--ai-line); background: var(--ai-wash); }
.cite .d { font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-width: 0; }
.cite .s { color: var(--fg-muted); white-space: nowrap; }
.cite .cn-n { font-weight: 600; color: var(--ai-ink); }
.cite svg { color: var(--fg-faint); }
sup.cn { vertical-align: super; font-size: 0; line-height: 0; }
sup.cn button { font: 600 10.5px/1 var(--font-mono); border: 1px solid var(--border); padding: 2px 4px; margin-left: 2px; color: var(--ai-ink); background: var(--bg); vertical-align: 3px; }
sup.cn button:hover, sup.cn button.on { background: var(--ai-line); color: #08201C; border-color: var(--ai-line); }

/* source cards */
.srcard { display: block; width: 100%; text-align: left; padding: 12px 16px; border-bottom: 1px solid var(--border); background: transparent; transition: background .15s; }
.srcard:hover { background: var(--bg-hover); }
.srcard.on { background: var(--ai-wash); box-shadow: inset 3px 0 0 var(--ai-line); }
.srcard .row1 { display: flex; gap: 8px; align-items: center; }
.srcard .n { font: 600 11.5px/1 var(--font-mono); border: 1px solid var(--border); padding: 3px 5px; background: var(--bg); color: var(--ai-ink); }
.srcard .kind { font: 400 10.5px/1 var(--font-mono); letter-spacing: .06em; text-transform: uppercase; color: var(--fg-muted); }
.srcard .cf { margin-left: auto; font: 400 11px/1 var(--font-mono); color: var(--fg-faint); }
.srcard b { display: block; font-weight: 600; font-size: 13px; margin-top: 8px; overflow-wrap: anywhere; }
.srcard .where { display: block; font: 400 11.5px/1.3 var(--font-mono); color: var(--fg-muted); margin-top: 4px; overflow-wrap: anywhere; }
.srcard q { display: block; font-size: 13px; margin-top: 8px; color: var(--fg); border-left: 2px solid var(--ai-line); padding-left: 9px; }
.srcgrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); border-top: 1px solid var(--border); border-left: 1px solid var(--border); margin-top: 8px; }
.srcgrid .srcard { border-right: 1px solid var(--border); }

/* markdown */
.md { font-size: 15px; line-height: 1.62; }
.md p { margin: 0 0 11px; }
.md h3 { font: 600 16px/1.3 var(--font-sans); margin: 16px 0 8px; }
.md h4 { font: 600 14px/1.3 var(--font-sans); margin: 14px 0 6px; }
.md ul, .md ol { margin: 0 0 12px 20px; display: grid; gap: 4px; }
.md li::marker { color: var(--fg-faint); }
.md strong { font-weight: 650; }
.md code { font: 400 12.5px var(--font-mono); background: var(--bg-panel); padding: 1px 4px; }
.md blockquote { border-left: 2px solid var(--border-strong); padding-left: 12px; color: var(--fg-muted); margin: 0 0 12px; }
.md a { color: var(--ai-ink); }
.md hr { border: 0; border-top: 1px solid var(--border); margin: 14px 0; }
.md .tblwrap { margin: 4px 0 14px; }
.mdt { width: 100%; font-size: 13px; line-height: 1.4; }
.mdt th { font: 400 11px/1.3 var(--font-mono); letter-spacing: .05em; text-transform: uppercase; color: var(--fg-muted); padding: 7px 10px; border-bottom: 1px solid var(--fg); white-space: nowrap; }
.mdt td { padding: 8px 10px; border-bottom: 1px solid var(--border); vertical-align: top; }
.mdt tr:hover td { background: var(--bg-hover); }

/* modal */
.modal-scrim { position: fixed; inset: 0; background: rgba(10, 15, 18, .38); z-index: 110; display: grid; place-items: center; padding: 16px; }
.modal { background: var(--bg); border: 1px solid var(--border-strong); box-shadow: var(--shadow); display: flex; flex-direction: column; max-height: calc(100vh - 64px); }
.modal header { display: flex; justify-content: space-between; align-items: center; padding: 8px 8px 8px 16px; border-bottom: 1px solid var(--border); }
.modal-body { padding: 16px; overflow: auto; }
.modal footer { display: flex; justify-content: flex-end; gap: 8px; padding: 12px 16px; border-top: 1px solid var(--border); }

/* ------------------------------------------------------------------ 1 ingesta */
.ing { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 24px; }
.ing .col { display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.src { background: var(--bg-subtle); border-style: dashed; border-color: var(--fg-faint); padding: 22px; }
.src h2 { font: 400 38px/1 var(--font-sans); letter-spacing: -.04em; margin: 10px 0 8px; }
.src .muted { font-size: 13.5px; }
.tiers { display: grid; margin-top: 16px; border-top: 1px solid var(--border); }
.tiers > div { display: grid; grid-template-columns: 28px minmax(0, 1fr) auto; gap: 10px; align-items: center; padding: 8px 0; border-bottom: 1px solid var(--border); }
.tiers .tier { width: 22px; height: 22px; display: grid; place-items: center; border: 1px solid var(--fg); font-size: 11.5px; font-weight: 600; }
.tiers b { font-weight: 550; font-size: 13.5px; display: block; }
.tiers small { color: var(--fg-muted); font-size: 12px; }
.srcs { display: grid; margin-top: 6px; border-top: 1px solid var(--border); }
.srcs > div { display: flex; justify-content: space-between; gap: 12px; padding: 7px 0; border-bottom: 1px solid var(--border); font-size: 13px; }
.srcs .mono { color: var(--fg-muted); font-size: 11.5px; white-space: nowrap; }
.recs .kvg { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0; margin-top: 10px; border-top: 1px solid var(--border); border-left: 1px solid var(--border); }
.recs .kvg > div { padding: 10px 12px; border-right: 1px solid var(--border); border-bottom: 1px solid var(--border); display: grid; gap: 3px; }
.recs .kvg b { font-size: 20px; font-weight: 400; }
.recs .kvg small { font-size: 12px; color: var(--fg-muted); }
.tiles { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); border-top: 1px solid var(--border); border-left: 1px solid var(--border); }
.tile { padding: 12px 14px; border-right: 1px solid var(--border); border-bottom: 1px solid var(--border); min-width: 0; }
.tile .v { font: 400 27px/1.1 var(--font-sans); letter-spacing: -.025em; margin-top: 8px; font-variant-numeric: tabular-nums; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.tile .sub { font: 400 11.5px/1.3 var(--font-mono); color: var(--fg-muted); margin-top: 4px; }
.tile.ai .lab::before { content: ""; display: inline-block; width: 6px; height: 6px; background: var(--ai-line); margin-right: 6px; vertical-align: 1px; }
.tile.alert .v { color: var(--crit); }
.btype { display: grid; grid-template-columns: minmax(130px, 1.3fr) minmax(0, 2fr) 70px; gap: 12px; align-items: center; padding: 7px 0; border-bottom: 1px solid var(--border); font-size: 13.5px; }
.btype:last-child { border-bottom: 0; }
.btype > span:first-child { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.btype .mono { text-align: right; font-size: 12.5px; }
.bar { height: 9px; background: var(--bg-panel); position: relative; overflow: hidden; display: block; }
.bar i { position: absolute; left: 0; top: 0; bottom: 0; background-image: radial-gradient(var(--fg) .9px, transparent 1.2px); background-size: 4px 4px; background-color: var(--fg-ghost); border-right: 2px solid var(--ai-line); }
.bar.indet i { animation: indet 1.6s ease-in-out infinite; }
@keyframes indet { 0% { left: -35%; } 100% { left: 100%; } }
.stages { display: grid; margin-top: 10px; border-top: 1px solid var(--border); }
.stage { display: grid; grid-template-columns: 22px 18px minmax(0, 1fr) 170px; gap: 10px; align-items: center; padding: 10px 0; border-bottom: 1px solid var(--border); }
.stage:last-child { border-bottom: 0; }
.stage .si { font-size: 11px; color: var(--fg-faint); }
.stage .sic { display: grid; place-items: center; width: 18px; height: 18px; }
.stage.st-ok .sic { color: var(--ai-ink); }
.stage.st-err .sic { color: var(--crit); }
.stage .sx { min-width: 0; display: grid; gap: 2px; }
.stage .sx b { font-weight: 550; font-size: 13.5px; }
.stage .sx span { font-size: 12px; color: var(--fg-muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.stage .sv { display: grid; grid-template-columns: 1fr auto; gap: 4px 10px; align-items: center; }
.stage .sv .mono { font-size: 13px; }
.stage .sv .lab { text-align: right; font-size: 10.5px; }
.stage .sv .bar { grid-column: 1 / -1; height: 4px; }
.stage.st-run .sv .lab { color: var(--ai-ink); }
.stage.st-pend .sx b { color: var(--fg-muted); }

/* ------------------------------------------------------------------ 2 mapa */
.mapv { position: absolute; inset: 0; background: var(--map-bg); overflow: hidden; }
.graph-wrap { position: absolute; inset: 0; background-image: radial-gradient(var(--grid-dot) 1px, transparent 1.3px); background-size: 22px 22px; }
.graph-box { position: absolute; inset: 0; }
.graph-box.pointer { cursor: pointer; }
.map-loading { position: absolute; left: 50%; top: 45%; transform: translate(-50%, -50%); display: flex; gap: 10px; align-items: center; padding: 10px 14px; background: var(--bg); border: 1px solid var(--border); font-size: 13px; color: var(--fg-muted); z-index: 6; }
.map-error { position: absolute; left: 50%; top: 40%; transform: translate(-50%, -50%); width: min(560px, calc(100% - 32px)); z-index: 7; background: var(--bg); }
.mpanel { position: absolute; background: var(--bg); border: 1px solid var(--border); z-index: 5; }
.filters { left: 16px; top: 16px; width: 252px; max-height: calc(100% - 64px); overflow: auto; }
.filters.col { width: auto; }
.filters header { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 8px 8px 8px 12px; border-bottom: 1px solid var(--border); position: sticky; top: 0; background: var(--bg); z-index: 1; }
.filters.col header { border-bottom: 0; }
.filters .grp { padding: 8px 4px 10px; border-bottom: 1px solid var(--border); }
.filters .grp:last-child { border-bottom: 0; }
.filters .grp > .lab { padding: 4px 8px 6px; }
.fx { display: flex; align-items: center; gap: 9px; padding: 3px 8px; font-size: 13px; cursor: pointer; user-select: none; }
.fx:hover { background: var(--bg-hover); }
.fx.none { opacity: .45; cursor: default; }
.fx input { appearance: none; width: 13px; height: 13px; border: 1px solid var(--fg-faint); display: grid; place-items: center; flex: none; margin: 0; background: var(--bg); }
.fx input:checked { background: var(--fg); border-color: var(--fg); }
.fx input:checked::after { content: ""; width: 5px; height: 5px; background: var(--bg); }
.fx .fl { flex: 1; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.fx .c { font: 400 11.5px/1 var(--font-mono); color: var(--fg-faint); }
.fx .ln { width: 20px; height: 0; border-top: 1.5px solid var(--fg-muted); flex: none; }
.fx .ln.d-contradicts { border-top: 2px dashed var(--crit); }
.fx .ln.d-supersedes { border-top-style: dotted; }
.fx .ln.d-amends { border-top-style: dashed; }
.mtools { right: 16px; top: 16px; display: flex; flex-direction: column; transition: right .25s ease-out; }
.mtools button { width: 36px; height: 36px; display: grid; place-items: center; border-bottom: 1px solid var(--border); color: var(--fg); }
.mtools button:last-child { border-bottom: 0; }
.mtools button:hover { background: var(--bg-hover); }
.mtools button[aria-pressed="true"] { background: var(--bg-sel); box-shadow: inset 2px 0 0 var(--fg); }
.mapv:has(.drawer) .mtools { right: calc(var(--drawer) + 16px); }
.thread { left: 50%; top: 16px; transform: translateX(-50%); display: flex; align-items: center; gap: 10px; padding: 8px 12px; max-width: calc(100% - 760px); min-width: 0; white-space: nowrap; }
.mapv:has(.drawer) .thread { left: calc(50% - var(--drawer) / 2); max-width: calc(100% - var(--drawer) - 600px); }
.thread .t { font-size: 11.5px; letter-spacing: .06em; text-transform: uppercase; overflow: hidden; text-overflow: ellipsis; min-width: 0; }
.thread .faint { font-size: 11px; }
.map-stats { position: absolute; left: 16px; bottom: 12px; font-size: 11px; color: var(--fg-faint); background: var(--bg); padding: 4px 8px; border: 1px solid var(--border); z-index: 4; }

.drawer { position: absolute; top: 0; right: 0; bottom: 0; width: var(--drawer); max-width: 100%; z-index: 20; display: flex; flex-direction: column; border-left: 1px solid #0B1013; animation: slidein .25s ease-out; }
@keyframes slidein { from { transform: translateX(30px); opacity: .4; } }
.drawer .dh { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 0 6px 0 16px; height: 44px; border-bottom: 1px solid var(--border); flex: none; }
.drawer .dh .lab { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; text-transform: none; letter-spacing: .02em; }
.dh-acts { display: flex; gap: 2px; }
.drawer .btn.icon.ghost { color: var(--fg); }
.drawer .db { overflow: auto; flex: 1; min-height: 0; }
.isec { padding: 14px 16px; border-bottom: 1px solid var(--border); }
.isec h2 { font: 400 21px/1.2 var(--font-sans); letter-spacing: -.02em; margin: 8px 0 6px; overflow-wrap: anywhere; }
.isec p { color: var(--fg-muted); font-size: 13px; }
.isec .lab.crit { color: var(--crit); }
.isec .lab.crit b { color: var(--crit); }
.trow { display: flex; align-items: center; gap: 8px; min-width: 0; }
.trow .lab { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dacts { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 12px; }
.ink .btn { background: transparent; color: var(--fg); border-color: var(--border); }
.ink .btn:hover:not(:disabled) { background: var(--bg-hover); border-color: var(--fg-faint); }
.ink .btn.pri { background: var(--fg); color: #141B20; border-color: var(--fg); }
.ink .btn.ai { border-color: var(--ai-line); }
.spec { display: grid; grid-template-columns: repeat(4, 1fr); border-bottom: 1px solid var(--border); }
.spec > div { padding: 10px 12px; border-right: 1px solid var(--border); min-width: 0; }
.spec > div:last-child { border-right: 0; }
.spec .v { font: 400 18px/1.2 var(--font-mono); margin-top: 4px; }
.spec .v.crit { color: var(--crit); }
.props { display: grid; margin-top: 8px; }
.props > div { display: grid; grid-template-columns: 120px minmax(0, 1fr); gap: 10px; padding: 5px 0; border-bottom: 1px solid var(--border); font-size: 12.5px; }
.props > div:last-child { border-bottom: 0; }
.props dt { color: var(--fg-muted); }
.props dd { overflow-wrap: anywhere; }
.lgrp { margin-top: 10px; }
.lgrp > .lab { display: flex; justify-content: space-between; padding: 3px 0; }
.lgrp > .lab.crit { color: var(--crit); }
.lrow { display: flex; align-items: center; gap: 9px; width: 100%; padding: 5px 6px; text-align: left; font-size: 13px; color: var(--fg); }
.lrow:hover { background: var(--bg-hover); }
.lrow .nm { flex: 1; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.lrow .mono { font-size: 10.5px; color: var(--fg-faint); white-space: nowrap; }
.ink .glyph { color: var(--fg); }
.ink .glyph .go { fill: var(--bg); }
.more { font: 400 11.5px/1 var(--font-mono); color: var(--fg-muted); padding: 6px; text-decoration: underline; text-underline-offset: 3px; }
.ev { padding: 11px 0; border-top: 1px solid var(--border); }
.ev:first-of-type { border-top: 0; }
.ev q { display: block; font-size: 13.5px; color: var(--fg); margin-bottom: 8px; }
.ev .meta { display: flex; justify-content: space-between; gap: 8px; align-items: center; font: 400 11px/1 var(--font-mono); color: var(--fg-muted); }
.frow { display: grid; grid-template-columns: auto auto; justify-content: space-between; gap: 4px 10px; padding: 8px 0; border-top: 1px solid var(--border); text-decoration: none; }
.frow:first-of-type { border-top: 0; }
.frow .mono { font-size: 11.5px; color: var(--fg-muted); }
.frow .ft { grid-column: 1 / -1; font-size: 13px; }
.frow:hover .ft { text-decoration: underline; text-underline-offset: 3px; }

/* ------------------------------------------------------------------ 3 preguntar */
.ask { display: grid; grid-template-columns: minmax(0, 1fr) 370px; height: 100%; }
.ask-main { overflow: auto; padding: 24px 28px 48px; }
.ask-side { border-left: 1px solid var(--border); overflow: auto; background: var(--bg-subtle); }
.side-h { padding: 14px 16px; border-bottom: 1px solid var(--border); position: sticky; top: 0; background: var(--bg-subtle); z-index: 1; }
.askform { display: flex; gap: 8px; border: 1px solid var(--fg); padding: 6px 6px 6px 14px; align-items: center; max-width: 880px; background: var(--bg); margin-top: 10px; }
.askform input { flex: 1; border: 0; outline: 0; background: transparent; font-size: 15.5px; min-width: 0; height: 34px; }
.askform:focus-within { box-shadow: 0 0 0 3px var(--ai-wash); }
.suggest { max-width: 880px; margin-top: 22px; }
.suggest.compact { margin-top: 26px; }
.fups { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 10px; }
.fups button { border: 1px solid var(--border); padding: 8px 11px; font-size: 13px; display: inline-flex; gap: 8px; align-items: center; background: var(--bg); text-align: left; }
.fups button:hover { border-color: var(--fg); }
.fups button svg { color: var(--fg-faint); }
.qa { max-width: 880px; margin-top: 26px; padding-top: 20px; border-top: 1px solid var(--border); position: relative; }
.qa .q { font: 400 24px/1.25 var(--font-sans); letter-spacing: -.022em; margin: 6px 0 14px; }
.qa .answer { font-size: 15.5px; }
.steps { list-style: none; display: grid; gap: 4px; margin: 0 0 14px; font-size: 12.5px; color: var(--fg-muted); font-family: var(--font-mono); }
.steps li { display: flex; gap: 8px; align-items: center; }
.steps li svg { color: var(--ai-ink); }
.steps li.now { color: var(--fg); }
.steps.done { opacity: .7; }
.thinking { display: flex; align-items: center; gap: 10px; color: var(--fg-muted); font-size: 14px; }
.caret { display: inline-block; width: 7px; height: 15px; background: var(--ai-line); animation: dot 1s steps(2) infinite; vertical-align: -2px; }
.md.streaming > :last-child { display: inline; }
.confline { display: flex; align-items: center; gap: 12px; margin-top: 16px; padding: 10px 12px; border: 1px solid var(--border); font-size: 13px; flex-wrap: wrap; }
.confline .mini { width: 90px; height: 5px; background: var(--bg-panel); position: relative; }
.confline .mini i { position: absolute; left: 0; top: 0; bottom: 0; background: var(--fg); border-right: 2px solid var(--ai-line); }
.confline .trace { font: 400 11.5px var(--font-mono); color: var(--fg-muted); }
.confline .meta { margin-left: auto; font-size: 11px; }
.qhist { max-width: 880px; margin-top: 30px; border-top: 1px solid var(--border); padding-top: 14px; }
.qhist-h { display: flex; justify-content: space-between; align-items: center; margin-bottom: 6px; }
.hrow { display: flex; gap: 10px; align-items: center; width: 100%; padding: 8px 8px; border-bottom: 1px solid var(--border); font-size: 13.5px; text-align: left; }
.hrow:hover { background: var(--bg-hover); }
.hrow.on { background: var(--bg-sel); box-shadow: inset 2px 0 0 var(--fg); }
.hrow .hq { flex: 1; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.hrow .dot { width: 7px; height: 7px; flex: none; background: var(--fg-ghost); }
.hrow .dot.done { background: var(--ai-line); }
.hrow .dot.error { background: var(--crit); }
.hrow .dot.streaming { background: var(--fg); animation: dot 1s steps(2) infinite; }

/* ------------------------------------------------------------------ 4 contradicciones */
.cx { display: grid; grid-template-columns: 390px minmax(0, 1fr); height: 100%; }
.cx-list { border-right: 1px solid var(--border); display: flex; flex-direction: column; min-height: 0; }
.cx-list header { padding: 14px 16px 12px; border-bottom: 1px solid var(--border); flex: none; }
.cx-list .big { font: 400 21px/1.2 var(--font-sans); letter-spacing: -.02em; margin-top: 6px; }
.cx-list .big .crit { color: var(--crit); }
.seg { display: flex; margin-top: 12px; border: 1px solid var(--border); }
.seg button { flex: 1; padding: 7px 4px; font-size: 12px; font-weight: 500; display: flex; justify-content: center; gap: 5px; align-items: center; border-right: 1px solid var(--border); white-space: nowrap; color: var(--fg-muted); }
.seg button:last-child { border-right: 0; }
.seg button:hover { background: var(--bg-hover); color: var(--fg); }
.seg button[aria-selected="true"] { background: var(--fg); color: var(--bg); }
.seg button .mono { font-size: 10.5px; opacity: .75; }
.cx-filters { display: grid; grid-template-columns: 150px minmax(0, 1fr); gap: 6px; margin-top: 8px; }
.cx-filters input, .cx-filters select { height: 30px; padding: 4px 8px; font-size: 12.5px; }
.cx-items { overflow: auto; flex: 1; min-height: 0; }
.cx-item { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 5px 10px; padding: 12px 16px; border-bottom: 1px solid var(--border); width: 100%; text-align: left; position: relative; text-decoration: none; color: var(--fg); }
.cx-item:hover { background: var(--bg-hover); }
.cx-item[aria-current="true"] { background: var(--bg-sel); }
.cx-item[aria-current="true"]::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 3px; background: var(--fg); }
.cx-item b { font-weight: 550; font-size: 13.5px; grid-column: 1 / -1; line-height: 1.35; }
.cx-item .mono { font-size: 11.5px; color: var(--fg-muted); }
.cx-item .meta, .cx-item .ref { grid-column: 1 / -1; display: flex; gap: 6px; align-items: center; flex-wrap: wrap; }
.cx-item .ref { color: var(--fg-faint); font-size: 11px; }
.cx-detail { overflow: auto; padding: 24px 28px 48px; min-width: 0; }
.cx-detail > h2 { font: 400 25px/1.22 var(--font-sans); letter-spacing: -.025em; margin: 8px 0 10px; max-width: 980px; }
.cx-tags { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; }
.lead { color: var(--fg-muted); max-width: 900px; margin-top: 12px; font-size: 14.5px; }
.analysis { border: 1px solid var(--border); border-left: 3px solid var(--ai-line); padding: 12px 16px 14px; margin: 18px 0 20px; max-width: 1040px; background: var(--bg); }
.analysis > .lab { margin-bottom: 8px; display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.analysis .md { font-size: 14.5px; }
.analysis .md p:last-child { margin-bottom: 0; }
.verdict { font: 500 10.5px/1 var(--font-mono); letter-spacing: .05em; padding: 4px 6px; border: 1px solid var(--border); }
.verdict.v-confirmed { color: var(--crit); border-color: currentColor; }
.verdict.v-explained { color: var(--ai-ink); border-color: currentColor; }
.sbs-wrap { max-width: 1140px; }
.sbs { display: grid; grid-template-columns: minmax(0, 1fr) 44px minmax(0, 1fr); border: 1px solid var(--border); margin-top: 8px; }
.clause { padding: 14px 16px; min-width: 0; }
.clause .fld { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; margin: 10px 0; flex-wrap: wrap; }
.clause .fld b { font-size: 18px; font-weight: 500; }
.clause .txt { font: 400 14px/1.6 var(--font-sans); padding: 10px 12px; background: var(--bg-subtle); border: 1px solid var(--border); }
.clause .foot { display: flex; justify-content: space-between; align-items: center; gap: 8px; margin-top: 10px; flex-wrap: wrap; }
.neq { display: grid; place-items: center; border-left: 1px solid var(--border); border-right: 1px solid var(--border); background: var(--crit-wash); color: var(--crit); font: 500 22px/1 var(--font-mono); }
.cx-detail .kv { max-width: 1140px; }
.affected { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.ochip { display: inline-flex; align-items: center; gap: 8px; border: 1px solid var(--border); padding: 5px 9px 5px 6px; font-size: 13px; background: var(--bg); max-width: 100%; }
.ochip:hover { border-color: var(--fg); }
.ochip > span:not(.mono) { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-width: 0; }
.ochip .mono { font-size: 10.5px; color: var(--fg-faint); white-space: nowrap; }
.flist .cx-item { border: 1px solid var(--border); border-bottom: 0; }
.flist .cx-item:last-child { border-bottom: 1px solid var(--border); }

/* ------------------------------------------------------------------ 5 decisión */
.dec-view { min-height: 100%; }
.dec-bar { display: flex; align-items: center; gap: 14px; padding: 8px 28px; border-bottom: 1px solid var(--border); position: sticky; top: 0; background: var(--bg); z-index: 3; min-width: 0; }
.dec-bar > .lab { flex: none; }
.dec-list { display: flex; gap: 6px; overflow-x: auto; scrollbar-width: thin; min-width: 0; padding: 2px 0; }
.dchip { display: inline-flex; align-items: center; gap: 8px; border: 1px solid var(--border); padding: 5px 10px; text-decoration: none; max-width: 340px; flex: none; font-size: 12.5px; }
.dchip:hover { border-color: var(--fg-faint); }
.dchip.on { border-color: var(--fg); background: var(--bg-sel); }
.dchip .q { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; color: var(--fg-muted); min-width: 0; }
.dchip .mono { font-size: 11.5px; font-weight: 600; }
.dchip .dot { width: 7px; height: 7px; flex: none; background: var(--fg-ghost); }
.dchip .dot.draft { background: var(--warn); }
.dchip .dot.approved { background: var(--ai-line); }
.dchip .dot.rejected { background: var(--crit); }
.dec-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; }
.dec-head h1 { font: 400 28px/1.18 var(--font-sans); letter-spacing: -.03em; max-width: 960px; margin-top: 8px; }
.status { font: 600 11px/1 var(--font-mono); letter-spacing: .08em; text-transform: uppercase; padding: 7px 9px; border: 1px solid var(--fg); white-space: nowrap; flex: none; }
.status.ok { background: var(--ai-line); border-color: var(--ai-line); color: #072019; }
.status.bad { border-color: var(--crit); color: var(--crit); }
.facts { margin-top: 18px; }
.why { display: grid; border-top: 1px solid var(--border); border-left: 1px solid var(--border); margin-top: 8px; }
.why.n1 { grid-template-columns: minmax(0, 1fr); }
.why.n2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.why.n3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.why > div { padding: 12px 14px; border-right: 1px solid var(--border); border-bottom: 1px solid var(--border); font-size: 14px; display: flex; flex-direction: column; gap: 8px; align-items: flex-start; min-width: 0; }
.why p { margin: 0; }
.opts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border: 1px solid var(--border); margin-top: 8px; }
.opt { padding: 16px; border-right: 1px solid var(--border); display: flex; flex-direction: column; gap: 10px; position: relative; background: var(--bg); min-width: 0; cursor: default; }
.opt:last-child { border-right: 0; }
.opt.rec { background: var(--bg-subtle); }
.opt.rec::before { content: ""; position: absolute; left: -1px; right: -1px; top: -1px; height: 3px; background: var(--ai-line); }
.opt.sel { outline: 2px solid var(--fg); outline-offset: -2px; }
.opt.won { outline: 2px solid var(--ai-line); outline-offset: -2px; }
.opt-top { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.opt h3 { font: 600 16px/1.3 var(--font-sans); letter-spacing: -.01em; }
.opt p { font-size: 13.5px; color: var(--fg-muted); }
.opt ul { list-style: none; display: grid; gap: 5px; font-size: 13px; }
.opt li { display: flex; gap: 8px; }
.opt li::before { content: ""; width: 4px; height: 4px; background: var(--fg); margin-top: 8px; flex: none; }
.opt .sp { flex: 1; }
.confbar { height: 4px; background: var(--bg-panel); position: relative; display: block; }
.confbar i { position: absolute; left: 0; top: 0; bottom: 0; background: var(--fg-faint); }
.opt.rec .confbar i { background: var(--ai-line); }
.pick { display: flex; align-items: center; gap: 8px; font: 500 13px/1 var(--font-sans); cursor: pointer; padding-top: 10px; border-top: 1px solid var(--border); }
.pick.won { color: var(--ai-ink); cursor: default; }
.opt input[type=radio] { appearance: none; width: 15px; height: 15px; border: 1px solid var(--fg); border-radius: 50%; display: grid; place-items: center; margin: 0; background: var(--bg); }
.opt input[type=radio]:checked::after { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--fg); }
.approve { margin-top: 20px; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 20px; align-items: end; padding: 16px; border: 1px solid var(--fg); }
.approve h3 { font: 600 15px/1.3 var(--font-sans); }
.approve p { font-size: 13.5px; color: var(--fg-muted); margin-top: 4px; }
.approve-acts { display: flex; gap: 8px; flex-wrap: wrap; }
.outcome { margin-top: 20px; display: flex; gap: 14px; align-items: flex-start; padding: 16px; border: 1px solid var(--ai-line); background: var(--ai-wash); flex-wrap: wrap; }
.outcome.rejected { border-color: var(--crit); background: var(--crit-wash); }
.outcome > svg { color: var(--ai-ink); margin-top: 2px; }
.outcome.rejected > svg { color: var(--crit); }
.outcome > div:not(.reopen) { flex: 1; }
.outcome .big { font: 400 20px/1.25 var(--font-sans); letter-spacing: -.02em; }
.outcome p { margin-top: 6px; font-size: 13.5px; }
.reopen { display: flex; gap: 8px; align-items: center; min-width: 300px; }
.reopen input { height: 32px; }

/* ------------------------------------------------------------------ expediente */
.exp-head { display: flex; justify-content: space-between; gap: 20px; align-items: flex-start; }
.exp-head h1.mono-h { font: 500 27px/1.15 var(--font-mono); letter-spacing: -.02em; margin-top: 8px; }
.objeto { font-size: 15px; margin-top: 8px; max-width: 980px; }
.exp-meta { display: flex; flex-wrap: wrap; gap: 8px 18px; margin-top: 12px; align-items: center; font-size: 13px; }
.exp-meta .lab { margin-right: 4px; }
.estado { font: 600 11px/1 var(--font-mono); letter-spacing: .06em; text-transform: uppercase; padding: 5px 7px; border: 1px solid var(--fg); }
.estado.live { border-color: var(--ai-line); color: var(--ai-ink); }
.exp-acts { display: flex; gap: 8px; flex-wrap: wrap; justify-content: flex-end; flex: none; }
.money { margin-top: 18px; }
.money-head { display: grid; grid-template-columns: 1.3fr repeat(4, minmax(0, 1fr)); gap: 12px; align-items: end; }
.money-head > div { display: grid; gap: 4px; min-width: 0; }
.money-head b { font: 500 22px/1.1 var(--font-mono); letter-spacing: -.02em; white-space: nowrap; }
.money-head span.mono { font-size: 12.5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mbar { position: relative; height: 14px; background: var(--bg-panel); margin-top: 14px; display: flex; }
.mbar.thin { height: 5px; margin-top: 6px; }
.mbar .seg { height: 100%; display: block; }
.mbar .seg.ini { background: var(--fg); }
.mbar .seg.add { background: repeating-linear-gradient(135deg, var(--fg-muted) 0 3px, transparent 3px 6px); border-left: 1px solid var(--bg); }
.mbar .seg.add.warn { background: repeating-linear-gradient(135deg, var(--warn) 0 3px, transparent 3px 6px); }
.mbar .seg.add.crit { background: repeating-linear-gradient(135deg, var(--crit) 0 3px, transparent 3px 6px); }
.mbar .seg.fac { background: var(--fg-faint); }
.mbar .seg.pag { background: var(--ai-line); }
.mbar .cap { position: absolute; top: -4px; bottom: -4px; width: 0; border-left: 2px dashed var(--crit); }
.legend { display: flex; gap: 16px; flex-wrap: wrap; margin-top: 10px; font-size: 11px; color: var(--fg-muted); }
.legend span { display: inline-flex; gap: 6px; align-items: center; }
.legend i { width: 10px; height: 10px; display: inline-block; }
.legend i.ini { background: var(--fg); }
.legend i.add { background: repeating-linear-gradient(135deg, var(--fg-muted) 0 2px, transparent 2px 4px); border: 1px solid var(--fg-muted); }
.legend i.add.warn { background: repeating-linear-gradient(135deg, var(--warn) 0 2px, transparent 2px 4px); border-color: var(--warn); }
.legend i.add.crit { background: repeating-linear-gradient(135deg, var(--crit) 0 2px, transparent 2px 4px); border-color: var(--crit); }
.legend i.fac { background: var(--fg-faint); }
.legend i.pag { background: var(--ai-line); }
.legend i.capi { width: 0; height: 12px; border-left: 2px dashed var(--crit); }
.ctl { margin-top: 16px; }
.tl-track { position: relative; height: 54px; margin: 18px 10px 4px; }
.tl-line { position: absolute; left: 0; right: 0; top: 26px; border-top: 1px solid var(--fg-faint); }
.tl-ev { position: absolute; top: 21px; width: 10px; height: 10px; margin-left: -5px; background: var(--bg); border: 1.5px solid var(--fg-muted); }
.tl-ev.major { background: var(--fg); border-color: var(--fg); }
.tl-ev.warn { border-color: var(--warn); background: var(--warn); }
.tl-ev.crit { border-color: var(--crit); background: var(--crit); }
.tl-ev .tl-l { position: absolute; top: -20px; left: 50%; transform: translateX(-50%); font-size: 10.5px; color: var(--fg-muted); white-space: nowrap; text-transform: uppercase; }
.tl-ev:first-of-type .tl-l { left: 0; transform: none; }
.tl-today { position: absolute; top: 8px; bottom: 0; border-left: 1.5px solid var(--ai-line); }
.tl-today span { position: absolute; top: 34px; left: 4px; font-size: 10.5px; color: var(--ai-ink); text-transform: uppercase; }
.tl-list { list-style: none; display: grid; grid-template-columns: repeat(auto-fill, minmax(340px, 1fr)); gap: 0 24px; margin-top: 8px; border-top: 1px solid var(--border); }
.tl-list li { display: grid; grid-template-columns: 92px 92px minmax(0, 1fr); gap: 8px; padding: 6px 0; border-bottom: 1px solid var(--border); font-size: 12.5px; align-items: baseline; }
.tl-list li.future { color: var(--fg-faint); }
.tl-list .mono { font-size: 11.5px; }
.tl-list b { font-weight: 550; }
.kd { font: 500 10.5px/1 var(--font-mono); letter-spacing: .05em; text-transform: uppercase; color: var(--fg-muted); }
.kd.warn { color: var(--warn); }
.kd.crit { color: var(--crit); }
.etabs { display: flex; gap: 0; margin-top: 22px; border-bottom: 1px solid var(--border); overflow-x: auto; scrollbar-width: none; }
.etabs button { padding: 10px 14px; font-size: 13.5px; font-weight: 500; color: var(--fg-muted); position: relative; display: flex; gap: 7px; align-items: center; white-space: nowrap; }
.etabs button:hover { color: var(--fg); }
.etabs button[aria-selected="true"] { color: var(--fg); }
.etabs button[aria-selected="true"]::after { content: ""; position: absolute; left: 10px; right: 10px; bottom: -1px; height: 2px; background: var(--fg); }
.etabs .mono { font-size: 11px; color: var(--fg-faint); }
.etabs .mono.crit { color: var(--crit); }
.etab-body { margin-top: 6px; }

/* ------------------------------------------------------------------ reader */
.rd-scrim { position: fixed; left: 0; right: 0; top: var(--banner); bottom: var(--banner); background: rgba(10, 15, 18, .22); z-index: 100; }
.reader { position: absolute; top: 0; right: 0; bottom: 0; width: min(720px, 100vw); background: var(--bg); border-left: 1px solid var(--border-strong); box-shadow: var(--shadow); display: flex; flex-direction: column; animation: slidein .22s ease-out; }
.rd-head { padding: 12px 12px 12px 18px; border-bottom: 1px solid var(--border); display: flex; gap: 12px; align-items: flex-start; justify-content: space-between; }
.rd-head h3 { font: 600 15.5px/1.3 var(--font-sans); margin-top: 4px; overflow-wrap: anywhere; }
.rd-actions { display: flex; gap: 6px; flex: none; align-items: center; }
.rd-meta { display: flex; flex-wrap: wrap; gap: 4px 14px; padding: 8px 18px; border-bottom: 1px solid var(--border); font-size: 11.5px; color: var(--fg-muted); background: var(--bg-subtle); }
.rd-meta .ai { color: var(--ai-ink); }
.rd-sum { padding: 10px 18px; border-bottom: 1px solid var(--border); font-size: 13px; color: var(--fg-muted); }
.rd-sum p { margin-top: 3px; }
.rd-quote { padding: 10px 18px; border-bottom: 1px solid var(--border); background: var(--ai-wash); }
.rd-quote q { display: block; font-size: 13.5px; margin-top: 4px; border-left: 2px solid var(--ai-line); padding-left: 10px; }
.rd-body { overflow: auto; flex: 1; padding: 16px 0 28px; background: var(--bg-panel); }
.page { background: var(--bg); margin: 0 20px; border: 1px solid var(--border); padding: 30px 32px 28px; position: relative; min-height: 300px; }
.page .pno { position: absolute; right: 12px; top: 10px; font-size: 11px; color: var(--fg-faint); }
.pagetext { white-space: pre-wrap; font: 400 14px/1.7 var(--font-sans); overflow-wrap: anywhere; }
.pagetext mark.hl { padding: 1px 0; }
.page .note { font-size: 12px; color: var(--warn); margin-bottom: 12px; }
.page.record { min-height: 0; }
.kvt { width: 100%; font-size: 13.5px; }
.kvt th { text-align: left; font: 400 11px/1.3 var(--font-mono); letter-spacing: .05em; text-transform: uppercase; color: var(--fg-muted); padding: 10px 12px 10px 0; width: 170px; vertical-align: top; border-bottom: 1px solid var(--border); }
.kvt td { padding: 10px 0; border-bottom: 1px solid var(--border); overflow-wrap: anywhere; }
.kvt td.big { font-size: 18px; }
.page.record .note { color: var(--fg-muted); margin: 14px 0 0; }
.rd-foot { display: flex; justify-content: space-between; align-items: center; gap: 8px; padding: 10px 14px; border-top: 1px solid var(--border); font-size: 12px; color: var(--fg-muted); }

/* ------------------------------------------------------------------ palette */
.pal-scrim { position: fixed; inset: 0; background: rgba(10, 15, 18, .32); z-index: 105; }
.palette { position: absolute; left: 50%; top: 11vh; transform: translateX(-50%); width: min(700px, calc(100vw - 32px)); background: var(--bg); border: 1px solid var(--border-strong); box-shadow: var(--shadow); display: flex; flex-direction: column; max-height: 72vh; }
.palette .pin { display: flex; align-items: center; gap: 10px; padding: 0 14px; border-bottom: 1px solid var(--border); height: 52px; }
.palette .pin input { flex: 1; border: 0; outline: 0; background: transparent; font-size: 16px; min-width: 0; }
.palette .pl { overflow: auto; padding: 6px 0; }
.palette .pg { padding: 8px 14px 4px; }
.pi { display: flex; align-items: center; gap: 11px; width: 100%; padding: 8px 14px; font-size: 13.5px; cursor: pointer; position: relative; }
.pi[aria-selected="true"] { background: var(--bg-sel); }
.pi[aria-selected="true"]::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 2px; background: var(--fg); }
.pi .pl-l { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 45%; flex: none; }
.pi .sub { color: var(--fg-muted); font-size: 12.5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; flex: 1; min-width: 0; }
.pi .k { font: 400 11px/1 var(--font-mono); color: var(--fg-faint); white-space: nowrap; }
.pal-empty { padding: 14px; font-size: 13px; color: var(--fg-muted); }
.pal-empty.err { color: var(--crit); }
.palette footer { display: flex; gap: 14px; padding: 8px 14px; border-top: 1px solid var(--border); font: 400 11px/1 var(--font-mono); color: var(--fg-muted); flex-wrap: wrap; }

/* ------------------------------------------------------------------ responsive */
@media (max-width: 1360px) {
  .thread { display: none; }
  .search { max-width: 380px; }
}
@media (max-width: 1100px) {
  .ws { display: none; }
}
@media (max-width: 1180px) {
  .ing { grid-template-columns: 1fr; }
  .ask { grid-template-columns: minmax(0, 1fr) 320px; }
  .opts { grid-template-columns: 1fr; }
  .opt { border-right: 0; border-bottom: 1px solid var(--border); }
  .opt:last-child { border-bottom: 0; }
  .tabs .lens .lab:last-child { display: none; }
  .money-head { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .cx { grid-template-columns: 340px minmax(0, 1fr); }
  :root { --drawer: 380px; }
}
@media (max-width: 960px) {
  .tabs .lens { display: none; }
  .clock .d { display: none; }
  .why.n3, .why.n2 { grid-template-columns: 1fr; }
  .kv { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .tiles { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .exp-head { flex-direction: column; }
  .exp-acts { justify-content: flex-start; }
  .approve { grid-template-columns: 1fr; }
  .ask { grid-template-columns: 1fr; height: auto; min-height: 100%; }
  .view[data-view="preguntar"] { overflow: auto; }
  .ask-side { border-left: 0; border-top: 1px solid var(--border); }
  .cx { grid-template-columns: 1fr; height: auto; }
  .view[data-view="contradicciones"] { overflow: auto; }
  .cx-list { border-right: 0; border-bottom: 1px solid var(--border); }
  .cx-items { max-height: 46vh; }
  .stage { grid-template-columns: 22px 18px minmax(0, 1fr) 120px; }
}
@media (max-width: 760px) {
  :root { --rail: 0px; --drawer: 100vw; }
  .rail { display: none; }
  .top { gap: 8px; padding: 0 10px; }
  .brand .prod { display: none; }
  .search span { font-size: 12.5px; }
  .search kbd, .clock { display: none; }
  .main { grid-template-rows: 52px 42px minmax(0, 1fr) 0; }
  .timeline { display: none; }
  .wrap, .ask-main, .cx-detail { padding: 16px; }
  .tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sbs { grid-template-columns: 1fr; }
  .neq { border: 0; border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); height: 34px; }
  .filters { width: auto; right: 64px; }
  .map-stats { display: none; }
  .money-head { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .reopen { min-width: 0; width: 100%; }
  .page { margin: 0 8px; padding: 20px 16px; }
  .dec-bar { padding: 8px 16px; }
  .dec-head { flex-direction: column; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; }
}

/* ------------------------------------------------------------------ real-data additions */
.vchip { font: 500 10px/1 var(--font-mono); letter-spacing: .05em; text-transform: uppercase; padding: 3px 5px; border: 1px solid var(--border); color: var(--fg-muted); white-space: nowrap; }
.vchip.v-confirmed { color: var(--crit); border-color: currentColor; }
.vchip.v-explained { color: var(--ai-ink); border-color: currentColor; }
.vchip.v-extraction_error { color: var(--warn); border-color: currentColor; }
.vchip.dec { color: var(--fg); border-color: var(--fg-faint); }
.tl-doc { position: absolute; top: 22px; width: 1px; height: 8px; background: var(--fg-faint); opacity: .55; }
.kd.muted { color: var(--fg-faint); }
.spec.inner { border: 1px solid var(--border); grid-template-columns: repeat(3, 1fr); margin: 8px 0 6px; }
.spec .v.sm { font-size: 13px; }
.splash-brand span { line-height: 1.3; }
.splash-note { font-size: 12.5px; color: var(--fg-muted); border-top: 1px solid var(--border); padding-top: 10px; margin-top: 4px; }
.mdt td:first-child { white-space: nowrap; }
.md.streaming > p:last-child::after, .md.streaming > ul:last-child > li:last-child::after, .md.streaming > ol:last-child > li:last-child::after {
  content: ""; display: inline-block; width: 7px; height: 14px; background: var(--ai-line); margin-left: 3px; vertical-align: -2px; animation: dot 1s steps(2) infinite;
}
.dchip .mono { white-space: nowrap; }
.dec-head h1.long { font-size: 22px; line-height: 1.25; }
.tl-ev .tl-l.a-l { left: -2px; transform: none; }
.tl-ev .tl-l.a-r { left: auto; right: -2px; transform: none; }
.tl-ev .tl-l.below { top: 16px; }
.tl-ev.beyond { border-style: dashed; }
.tl-track { margin-bottom: 18px; }
.kd.strong { color: var(--fg); font-weight: 600; }
.tl-list li > span:last-child { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }

/* ------------------------------------------------------------------ recorrido (guided tour) */
.tourbtn { flex: none; }
.tourbtn svg { fill: currentColor; stroke-width: 0; }
.tourbtn.on svg { fill: none; stroke-width: 1.6; }
.tourbtn.on { border-color: var(--ai-line); box-shadow: inset 3px 0 0 var(--ai-line); }
.tour { position: fixed; right: 16px; bottom: calc(var(--banner) + 72px); width: min(380px, calc(100vw - 32px)); z-index: 95; border: 1px solid #0B1013;
  box-shadow: var(--shadow); padding: 14px 16px 12px; display: grid; gap: 10px; animation: tin .25s ease-out; }
.tour-h { display: flex; justify-content: space-between; align-items: center; gap: 10px; }
.tour-dots { display: flex; gap: 3px; flex: none; }
.tour-dots i { width: 14px; height: 3px; background: rgba(233, 239, 242, .22); display: block; }
.tour-dots i.on { background: var(--ai-line); }
.tour-t { font-size: 14px; line-height: 1.5; margin: 0; display: flex; gap: 8px; align-items: flex-start; }
.tour-err { font-size: 12.5px; color: var(--crit); margin: 0; }
.tour-note { font-size: 12.5px; color: var(--fg-muted); margin: 0; }
.tour-acts { display: flex; justify-content: flex-end; gap: 8px; }
.tour-acts kbd { margin-left: 4px; background: transparent; color: var(--fg-muted); border-color: var(--border); }
.tour .btn.pri { background: var(--ai-line); border-color: var(--ai-line); color: #062019; }
.app.touring .toasts { right: calc(min(380px, 100vw - 32px) + 32px); }
@media (max-width: 1100px) { .tourbtn span { display: none; } .tourbtn { width: 34px; padding: 0; justify-content: center; } }
.tour.beside-drawer { right: calc(var(--drawer) + 16px); }
.tour.ink .btn.pri:hover:not(:disabled) { background: #46D3C2; border-color: #46D3C2; color: #062019; opacity: 1; }
@media (max-width: 1100px) { .tour.beside-drawer { right: 16px; bottom: calc(var(--banner) + 140px); } }

/* Preguntar: header row with the "Nueva conversación" action */
.ask-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 24px; max-width: 880px; }
.ask-head .btn { text-transform: none; letter-spacing: 0; }

/* ================================================================== capa territorial y Mando FAC (TERRITORIO.md §6–8)
   Risk ramp: 8 log-like bins of P(≥1 lethal event registered), one warm hue family, monotone lightness (validated with
   the dataviz ordinal checks; the lightest step is allowed to recede into the surface: values stay readable in the
   tooltip, panel and top-20 table). Dark mode flips the anchor: low risk recedes into the dark map, high risk is bright.
   VSUP rows (u1-*, u2-*, u3-0) merge bins and fade toward grey as the 80 % interval widens (Correll et al. 2018).
   --bayes marks Bayesian estimates (interval whiskers, model series, P(verdadero)); text never wears a data colour. */
:root {
  --risk-0: #fdf3e6; --risk-1: #f7dabd; --risk-2: #f5be8d; --risk-3: #f29e5c;
  --risk-4: #e97b2f; --risk-5: #d65902; --risk-6: #b23f09; --risk-7: #852e15;
  --vsup1-0: #e3d6c8; --vsup1-1: #e0b592; --vsup1-2: #d78f68; --vsup1-3: #af6f59;
  --vsup2-0: #d1c1b3; --vsup2-1: #c39e8c; --vsup3-0: #c0bdb8;
  --nr-fill: #e9ecee;
  --bayes: #1f5fad; --bayes-wash: rgba(31, 95, 173, .09);
  --at-inm: #d95926; --at-est: #6250d6; --at-seg: #1baf7a;
  --sel: #2563eb;
}
:root[data-theme="dark"] {
  --risk-0: #402a22; --risk-1: #5f3625; --risk-2: #834221; --risk-3: #a75217;
  --risk-4: #c96811; --risk-5: #e68724; --risk-6: #faaa51; --risk-7: #fed398;
  --vsup1-0: #544037; --vsup1-1: #7f5238; --vsup1-2: #a56c3f; --vsup1-3: #b8956a;
  --vsup2-0: #625146; --vsup2-1: #846c55; --vsup3-0: #5a5853;
  --nr-fill: #1f292e;
  --bayes: #7ab0f2; --bayes-wash: rgba(122, 176, 242, .13);
  --at-inm: #d95926; --at-est: #9085e9; --at-seg: #199e70;
  --sel: #7cb7ff;
}
:is(.rmap, .rmap-inset, .lg, .pstrip, .vsup) .r0 { fill: var(--risk-0); background: var(--risk-0); }
:is(.rmap, .rmap-inset, .lg, .pstrip, .vsup) .r1 { fill: var(--risk-1); background: var(--risk-1); }
:is(.rmap, .rmap-inset, .lg, .pstrip, .vsup) .r2 { fill: var(--risk-2); background: var(--risk-2); }
:is(.rmap, .rmap-inset, .lg, .pstrip, .vsup) .r3 { fill: var(--risk-3); background: var(--risk-3); }
:is(.rmap, .rmap-inset, .lg, .pstrip, .vsup) .r4 { fill: var(--risk-4); background: var(--risk-4); }
:is(.rmap, .rmap-inset, .lg, .pstrip, .vsup) .r5 { fill: var(--risk-5); background: var(--risk-5); }
:is(.rmap, .rmap-inset, .lg, .pstrip, .vsup) .r6 { fill: var(--risk-6); background: var(--risk-6); }
:is(.rmap, .rmap-inset, .lg, .pstrip, .vsup) .r7 { fill: var(--risk-7); background: var(--risk-7); }
:is(.rmap, .rmap-inset, .vsup) .u1-0 { fill: var(--vsup1-0); background: var(--vsup1-0); }
:is(.rmap, .rmap-inset, .vsup) .u1-1 { fill: var(--vsup1-1); background: var(--vsup1-1); }
:is(.rmap, .rmap-inset, .vsup) .u1-2 { fill: var(--vsup1-2); background: var(--vsup1-2); }
:is(.rmap, .rmap-inset, .vsup) .u1-3 { fill: var(--vsup1-3); background: var(--vsup1-3); }
:is(.rmap, .rmap-inset, .vsup) .u2-0 { fill: var(--vsup2-0); background: var(--vsup2-0); }
:is(.rmap, .rmap-inset, .vsup) .u2-1 { fill: var(--vsup2-1); background: var(--vsup2-1); }
:is(.rmap, .rmap-inset, .vsup) .u3-0 { fill: var(--vsup3-0); background: var(--vsup3-0); }
:is(.rmap, .rmap-inset) .nd { fill: url(#terr-hatch); }
:is(.rmap, .rmap-inset) .nr { fill: var(--nr-fill); }
.lg i.nd { background: repeating-linear-gradient(45deg, var(--bg-subtle) 0 3px, var(--fg-ghost) 3px 4px); border: 1px solid var(--border); }
.lg i.nr { background: var(--nr-fill); border: 1px solid var(--border); }
.hatch-bg { fill: var(--bg-subtle); }
.hatch-ln { stroke: var(--fg-ghost); stroke-width: 2; }

/* marking: USO INTERNO + datos al … (every view with findings or risk) */
.marking { display: inline-flex; flex-direction: column; gap: 2px; border: 1px solid var(--fg); border-left: 4px solid var(--warn); padding: 5px 9px; background: var(--bg); flex: none; max-width: 100%; min-width: 0; }
.marking .mk-l { font: 600 10.5px/1.2 var(--font-mono); letter-spacing: .07em; text-transform: uppercase; color: var(--fg); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.marking .mk-d { font: 400 11px/1.25 var(--font-mono); color: var(--fg-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.marking .mk-d b { color: var(--fg); font-weight: 600; }
.marking.compact { padding: 3px 8px; }
.marking.compact .mk-l { font-size: 10px; }
.marking.float { position: absolute; z-index: 6; }

/* views that manage their own scroll */
.view[data-view="territorio"], .view[data-view="alertas"], .view[data-view="mando"] { overflow: hidden; }
.tab.fac .n { color: var(--fg-muted); }

/* ------------------------------------------------------------------ territorio */
.terr { position: absolute; inset: 0; display: flex; flex-direction: column; background: var(--bg); }
.terr-bar { flex: none; display: flex; align-items: center; gap: 14px; padding: 7px 16px; border-bottom: 1px solid var(--border); min-height: 50px; min-width: 0; }
.terr-bar .seg { margin-top: 0; flex: none; }
.terr-bar .seg button { padding: 6px 10px; gap: 6px; font-size: 12.5px; }
.terr-bar .sp { flex: 1; }
.tb-grp { display: flex; align-items: center; gap: 8px; flex: none; }
.seg button[aria-checked="true"] { background: var(--fg); color: var(--bg); }
.seg button .mono { font-size: 10px; opacity: .72; }
.terr-body { flex: 1; min-height: 0; display: grid; grid-template-columns: minmax(0, 1fr) 372px; }
.terr-map { position: relative; min-width: 0; min-height: 0; background: var(--map-bg); overflow: hidden; }
.terr-side { border-left: 1px solid var(--border); overflow: auto; background: var(--bg); min-height: 0; }
.terr-scroll { flex: 1; min-height: 0; overflow: auto; }
.terr-stats { position: absolute; right: 12px; bottom: 10px; font-size: 10.5px; color: var(--fg-faint); background: var(--bg); padding: 3px 7px; border: 1px solid var(--border); z-index: 4; max-width: calc(100% - 140px); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

.rmap { position: absolute; inset: 0; outline: none; }
.rmap:focus-visible { box-shadow: inset 0 0 0 2px var(--focus); }
.rmap-svg { position: absolute; inset: 0; width: 100%; height: 100%; display: block; cursor: grab; touch-action: none; }
.rmap-svg:active { cursor: grabbing; }
.rmap .munis path { stroke: var(--map-bg); stroke-width: .5px; vector-effect: non-scaling-stroke; cursor: pointer; }
.rmap .dep { fill: none; stroke: var(--fg-muted); stroke-opacity: .55; stroke-width: .8px; vector-effect: non-scaling-stroke; pointer-events: none; }
.rmap .outline { fill: none; stroke: var(--fg); stroke-opacity: .75; stroke-width: 1px; vector-effect: non-scaling-stroke; pointer-events: none; }
.rmap .ats path { fill: none; vector-effect: non-scaling-stroke; pointer-events: none; stroke-linejoin: round; }
.rmap .ats .halo path { stroke: var(--map-bg); stroke-width: 3.4px; }
.rmap .ats .line path { stroke: var(--fg); stroke-width: 1.3px; }
.rmap .ats.all .halo { display: none; }
.rmap .ats.all .line path { stroke-width: .9px; stroke-opacity: .7; }
.rmap .ats.one .halo path { stroke-width: 5px; }
.rmap .ats.one .line path { stroke-width: 2.4px; }
.rmap .hover-ol { fill: none; stroke: var(--fg); stroke-width: 1.8px; vector-effect: non-scaling-stroke; pointer-events: none; }
.rmap .sel-ol path { fill: none; vector-effect: non-scaling-stroke; pointer-events: none; stroke-linejoin: round; }
.rmap .sel-ol .halo { stroke: var(--map-bg); stroke-width: 6px; }
.rmap .sel-ol .line { stroke: var(--sel); stroke-width: 3px; }
.rmap .marks { pointer-events: none; }
.mk.unit .u-o, .lgk .u-o { fill: var(--map-bg); stroke: var(--fg); stroke-width: 1.7px; }
.mk.unit .u-i, .lgk .u-i { fill: var(--fg); }
.mk.unit text { font: 600 10.5px/1 var(--font-mono); fill: var(--fg); paint-order: stroke; stroke: var(--map-bg); stroke-width: 3.2px; stroke-linejoin: round; letter-spacing: .02em; }
.mk.ev circle { fill: none; stroke: var(--fg); stroke-width: 1.4px; }
.mk.ev circle.h { stroke: var(--map-bg); stroke-width: 3.6px; }
.mk.con path, .lgk .con { fill: var(--map-bg); stroke: var(--fg); stroke-width: 1.4px; }
.lgk .ev { fill: none; stroke: var(--fg); stroke-width: 1.4px; }
svg.lgk { width: 16px; height: 16px; flex: none; overflow: visible; }
.lgk.at { width: 14px; height: 11px; border: 2px solid var(--fg); box-shadow: 0 0 0 1px var(--map-bg); flex: none; display: inline-block; margin: 0 1px; }

.rmap-tools { position: absolute; right: 12px; top: 12px; display: flex; flex-direction: column; background: var(--bg); border: 1px solid var(--border); z-index: 5; }
.rmap-tools button { width: 34px; height: 34px; display: grid; place-items: center; font: 400 18px/1 var(--font-sans); color: var(--fg); border-bottom: 1px solid var(--border); }
.rmap-tools button:last-child { border-bottom: 0; }
.rmap-tools button:hover { background: var(--bg-hover); }
.rmap-tools .fitb { font-size: 15px; }
.rmap-inset { position: absolute; left: 12px; bottom: 12px; background: var(--bg); border: 1px solid var(--border); padding: 4px 6px 4px; z-index: 4; display: grid; gap: 2px; }
.rmap-inset .lab { font-size: 9.5px; letter-spacing: .04em; }
.rmap-inset svg { display: block; }
.rmap-inset path { stroke: var(--fg); stroke-width: 1px; cursor: pointer; }
.rmap-inset path.nd { fill: var(--fg-faint); }
.rmap-inset path.is-sel { stroke: var(--sel); stroke-width: 2px; }
.rmap-tip { position: absolute; z-index: 30; pointer-events: none; background: var(--bg); border: 1px solid var(--border-strong); box-shadow: var(--shadow); padding: 9px 11px 10px; width: 280px; font-size: 12.5px; display: grid; gap: 4px; }
.tt-h { display: flex; flex-wrap: wrap; gap: 2px 8px; align-items: baseline; }
.tt-h b { font-size: 14px; font-weight: 600; }
.tt-h span { color: var(--fg-muted); font-size: 12px; }
.tt-p { display: flex; gap: 8px; align-items: baseline; }
.tt-v { font: 400 24px/1 var(--font-sans); letter-spacing: -.02em; }
.tt-l { font-size: 11.5px; color: var(--fg-muted); }
.tt-r { font-size: 11.5px; color: var(--fg-muted); }
.tt-f { display: flex; flex-wrap: wrap; gap: 4px 10px; border-top: 1px solid var(--border); padding-top: 6px; margin-top: 2px; font-size: 11.5px; }
.tt-f span { display: inline-flex; gap: 5px; align-items: center; }
i.k-unit, i.k-con, i.k-at { display: inline-block; flex: none; }
i.k-unit { width: 9px; height: 9px; border: 1.5px solid var(--fg); background: radial-gradient(var(--fg) 0 1.6px, transparent 1.9px); }
i.k-con { width: 7px; height: 9px; border: 1.5px solid var(--fg); border-top-right-radius: 3px; }
i.k-at { width: 10px; height: 8px; border: 2px solid var(--fg); }

.rmap-panel { position: absolute; left: 12px; top: 12px; width: 240px; background: var(--bg); border: 1px solid var(--border); z-index: 6; max-height: calc(100% - 120px); overflow: auto; }
.rmap-panel.col { width: auto; }
.rmap-panel header { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 6px 6px 6px 10px; border-bottom: 1px solid var(--border); position: sticky; top: 0; background: var(--bg); z-index: 1; }
.rmap-panel.col header { border-bottom: 0; }
.rmap-panel .grp { padding: 8px 2px 8px; }
.rmap-panel .grp > .lab { padding: 0 8px 4px; }
.rmap-panel .fx { padding: 4px 8px; font-size: 12.5px; }
.at-sel { margin: 2px 8px 6px 30px; width: calc(100% - 38px); font-size: 12px; padding: 4px 6px; border: 1px solid var(--border); background: var(--bg); border-radius: 0; }
.lg { padding: 8px 10px 10px; border-bottom: 1px solid var(--border); }
.lg-t { margin-bottom: 6px; text-transform: none; letter-spacing: .02em; }
.lg-bar { display: grid; grid-template-columns: repeat(8, 1fr); gap: 1px; height: 12px; }
.lg-bar i { display: block; }
.lg-ticks { position: relative; height: 14px; font-size: 10px; color: var(--fg-muted); margin-top: 2px; }
.lg-ticks span { position: absolute; top: 0; transform: translateX(-50%); }
.lg-ticks span:nth-child(1) { left: 12.5%; } .lg-ticks span:nth-child(2) { left: 25%; } .lg-ticks span:nth-child(3) { left: 37.5%; }
.lg-ticks span:nth-child(4) { left: 50%; } .lg-ticks span:nth-child(5) { left: 62.5%; } .lg-ticks span:nth-child(6) { left: 75%; }
.lg-ticks span:nth-child(7) { left: 87.5%; }
.lg-ticks span.u { right: 0; left: auto; transform: none; }
.lg-nd { display: flex; gap: 7px; align-items: center; font-size: 11.5px; color: var(--fg-muted); margin-top: 6px; }
.lg-nd i { width: 16px; height: 10px; display: inline-block; flex: none; }
.vsup { display: grid; grid-template-columns: 14px minmax(0, 1fr); gap: 4px; }
.vsup-y { writing-mode: vertical-rl; transform: rotate(180deg); font-size: 9px; text-align: center; white-space: nowrap; }
.vsup-rows { display: grid; gap: 2px; padding-right: 44px; }
.vsup-row { display: flex; gap: 1px; height: 11px; position: relative; }
.vsup-row i { flex: 1; display: block; }
.vsup-cap { position: absolute; right: -44px; width: 40px; top: -1px; font: 400 9.5px/1 var(--font-mono); color: var(--fg-muted); }
.vsup + .lg-ticks { margin-left: 18px; margin-right: 44px; }
.lg-note { font-size: 11px; color: var(--fg-muted); margin-top: 6px; line-height: 1.35; }

.map-error.terr { width: min(480px, calc(100% - 32px)); }
.norun { padding: 18px 16px; display: grid; gap: 8px; }
.norun h3 { font: 400 18px/1.3 var(--font-sans); letter-spacing: -.01em; }
.norun p { font-size: 13px; color: var(--fg-muted); }

/* probability strip (where p and its 80 % interval fall on the map's scale) */
.pstrip { position: relative; height: 10px; margin: 8px 0 3px; }
.pstrip.sm { height: 7px; margin: 0; }
.ps-cells { display: grid; grid-template-columns: repeat(8, 1fr); gap: 1px; height: 100%; }
.ps-cells i { display: block; }
.ps-int { position: absolute; top: -3px; bottom: -3px; border: 1.5px solid var(--fg); border-radius: 2px; min-width: 3px; }
.pstrip.sm .ps-int { top: -2px; bottom: -2px; border-width: 1.2px; }
.ps-pt { position: absolute; top: 50%; width: 9px; height: 9px; margin: -4.5px 0 0 -4.5px; background: var(--fg); border: 2px solid var(--bg); border-radius: 50%; }
.pstrip.sm .ps-pt { width: 6px; height: 6px; margin: -3px 0 0 -3px; border-width: 1.5px; }

/* top 20 */
.t20-h { padding: 14px 16px 10px; border-bottom: 1px solid var(--fg); }
.t20-h p { margin-top: 4px; }
.t20-l { list-style: none; }
.t20-r { display: grid; grid-template-columns: 20px minmax(0, 1fr) auto 78px 46px; gap: 8px; align-items: center; width: 100%; padding: 6px 12px 6px 14px; border-bottom: 1px solid var(--border); text-align: left; position: relative; }
.t20-r:hover { background: var(--bg-hover); }
.t20-r.on { background: var(--bg-sel); }
.t20-r.on::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 3px; background: var(--fg); }
.t20-r .rk { font-size: 11px; color: var(--fg-faint); }
.t20-r .nm { min-width: 0; display: grid; }
.t20-r .nm b { font-weight: 550; font-size: 13px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.t20-r .nm span { font-size: 11px; color: var(--fg-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.t20-r .fl { display: flex; gap: 4px; align-items: center; }
.t20-r .v { text-align: right; font-size: 12.5px; font-weight: 600; }
.t20-n { padding: 10px 16px 18px; }

/* municipality panel */
.mp-nav { display: flex; justify-content: space-between; align-items: center; padding: 6px 6px 0 10px; }
.mp-head { padding: 2px 16px 12px; border-bottom: 1px solid var(--border); }
.mp-head h2 { font: 400 25px/1.12 var(--font-sans); letter-spacing: -.025em; margin-top: 4px; overflow-wrap: anywhere; }
.mp-head p { color: var(--fg-muted); font-size: 13px; margin-top: 2px; }
.mp-sec { padding: 12px 16px; border-bottom: 1px solid var(--border); }
.mp-big { display: flex; align-items: center; gap: 12px; margin-top: 6px; flex-wrap: wrap; }
.mp-big .v { font: 400 42px/1 var(--font-sans); letter-spacing: -.035em; }
.mp-big .i { display: flex; flex-direction: column; font-size: 11.5px; color: var(--fg-muted); gap: 2px; }
.mp-big .i b { font-size: 14px; color: var(--fg); font-weight: 600; }
.mp-big .rk { margin-left: auto; font-size: 12px; color: var(--fg-muted); border: 1px solid var(--border); padding: 2px 6px; }
.mp-ticks { display: flex; justify-content: space-between; font-size: 10px; color: var(--fg-faint); }
.mp-kv { display: grid; gap: 5px; margin-top: 10px; }
.mp-kv > div { display: flex; justify-content: space-between; gap: 10px; font-size: 13px; }
.mp-kv dt { color: var(--fg-muted); }
.mp-kv dd { text-align: right; }
.mp-src { font-size: 11px; color: var(--fg-muted); margin-top: 8px; }
.mp-none { font-size: 13px; color: var(--fg-muted); margin-top: 6px; }
.mp-list { list-style: none; display: grid; gap: 2px; margin-top: 6px; }
.mp-list li { display: flex; gap: 8px; align-items: center; padding: 3px 0; font-size: 13px; }
.mp-list li span { color: var(--fg-muted); font-size: 12px; }
.mp-units li { align-items: flex-start; }
.mp-u { display: grid; gap: 1px; min-width: 0; }
.mp-u b { color: var(--fg); font-size: 13px; }
.mp-top { margin-top: 6px; }
.mp-top a.lrow { text-decoration: none; }
.mp-acts { display: flex; gap: 8px; flex-wrap: wrap; padding: 12px 16px 24px; }
.hist36 svg { width: 100%; height: auto; display: block; margin-top: 6px; overflow: visible; }
.hist36 .hb { fill: var(--fg-faint); }
.hist36 .hb:hover { fill: var(--fg); }
.hist36 .base { stroke: var(--border); }
.hist36 .cut { stroke: var(--fg); stroke-width: 1; }
.hist36 .fc line { stroke: var(--bayes); stroke-width: 1.5; }
.hist36 .fc circle { fill: var(--bayes); stroke: var(--bg); stroke-width: 1.5; }
.hist36 .fc:not(.on) { opacity: .5; }
.hist36 .ax { font: 400 9.5px var(--font-mono); fill: var(--fg-faint); }
.hist36 .ax.fcx, .hist36 .ax .fcx { fill: var(--bayes); }
.hist36 figcaption { font-size: 10.5px; color: var(--fg-muted); margin-top: 4px; }
.at-cite { display: grid; gap: 4px; width: 100%; text-align: left; padding: 9px 10px; border: 1px solid var(--border); margin-top: 8px; background: var(--bg); }
.at-cite:hover { border-color: var(--fg-faint); background: var(--bg-hover); }
.at-h { display: flex; gap: 8px; align-items: baseline; flex-wrap: wrap; }
.at-h b { font-size: 13px; font-weight: 600; }
.at-cite q { font-size: 12.5px; border-left: 2px solid var(--fg-faint); padding-left: 8px; color: var(--fg); }
.at-cite .go { font-size: 10.5px; color: var(--fg-muted); }
.at-t { display: inline-flex; align-items: center; gap: 5px; font: 600 10px/1 var(--font-mono); text-transform: uppercase; letter-spacing: .06em; padding: 3px 5px; border: 1px solid var(--border); color: var(--fg); white-space: nowrap; }
.at-t::before { content: ""; width: 7px; height: 7px; background: var(--at-seg); flex: none; }
.at-t.t-inminencia::before { background: var(--at-inm); }
.at-t.t-estructural::before { background: var(--at-est); }

/* validación */
.val { padding: 20px 28px 48px; max-width: 1320px; }
.val-head h2 { font: 400 27px/1.15 var(--font-sans); letter-spacing: -.03em; margin-top: 6px; }
.val-head p { margin-top: 6px; max-width: 760px; }
.val-verdicts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin: 16px 0 18px; }
.verdict-card { border: 1px solid var(--border); border-left: 4px solid var(--fg-faint); padding: 12px 14px; background: var(--bg); }
.verdict-card.ok { border-left-color: var(--ok); }
.verdict-card.lose { border-left-color: var(--warn); }
.vc-h { display: flex; justify-content: space-between; gap: 8px; align-items: center; flex-wrap: wrap; }
.vc-badge { display: inline-flex; gap: 5px; align-items: center; font: 600 10.5px/1 var(--font-mono); text-transform: uppercase; letter-spacing: .05em; padding: 4px 6px; border: 1px solid currentColor; color: var(--fg-muted); }
.vc-badge.ok { color: var(--ok); }
.vc-badge.lose { color: var(--warn); }
.vc-t { font-size: 15px; line-height: 1.45; margin: 8px 0; }
.vc-l { list-style: none; display: grid; gap: 4px; font-size: 12.5px; }
.vc-l li { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; }
.vc-m { display: inline-flex; gap: 3px; align-items: center; font: 500 11.5px/1 var(--font-mono); }
.vc-m.win { color: var(--ok); }
.vc-m.lose { color: var(--crit); }
.val-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 16px; align-items: start; }
.tbl.bt th.c { text-align: center; border-bottom: 1px solid var(--border); }
.tbl.bt .mdl { background: var(--bayes-wash); }
.tbl.bt td.best { font-weight: 700; }
.mt-s { margin-top: 8px; }
.val-rel-h { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.seg.sm { margin-top: 0; }
.seg.sm button { padding: 4px 10px; }
.rel svg { width: 100%; max-width: 360px; display: block; margin: 6px auto 0; }
.rel .grid, .hits .grid { stroke: var(--border); }
.rel .diag { stroke: var(--fg-faint); stroke-width: 1; }
.rel .relline { fill: none; stroke: var(--bayes); stroke-width: 2; stroke-linejoin: round; }
.rel .relpt circle:not(.hit) { fill: var(--bayes); fill-opacity: .9; stroke: var(--bg); stroke-width: 2; }
.rel .hit, .hits .hit { fill: transparent; stroke: none; }
.rel .ax, .hits .ax { font: 400 9.5px var(--font-mono); fill: var(--fg-faint); }
.rel .ax.lbl { font-size: 10px; fill: var(--fg-muted); }
.rel figcaption { margin-top: 4px; display: flex; gap: 10px; flex-wrap: wrap; align-items: baseline; }
.hits svg { width: 100%; max-width: 720px; display: block; margin-top: 6px; }
.hits .l-model { fill: none; stroke: var(--bayes); stroke-width: 2; stroke-linejoin: round; }
.hits .d-model { fill: var(--bayes); stroke: var(--bg); stroke-width: 2; }
.hits .l-base { fill: none; stroke: var(--fg-faint); stroke-width: 1.5; stroke-linejoin: round; }
.hits .l-pers { stroke-dasharray: 5 3; }
.lg-inline { display: flex; gap: 16px; color: var(--fg-muted); flex-wrap: wrap; margin-top: 4px; }
.lg-inline span { display: inline-flex; align-items: center; gap: 6px; }
.lg-inline i { display: inline-block; width: 16px; height: 0; border-top: 2px solid var(--fg-faint); }
.lg-inline i.k-model { border-top-color: var(--bayes); }
.lg-inline i.k-pers { border-top-style: dashed; }
.mcard { margin-top: 16px; border: 1px solid var(--border); padding: 14px 16px; }
.mc-kv { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 24px; margin-top: 8px; }
.mc-kv > div { display: grid; grid-template-columns: 120px minmax(0, 1fr); gap: 10px; padding: 6px 0; border-bottom: 1px solid var(--border); font-size: 13px; }
.mc-kv dt { color: var(--fg-muted); }
.mc-kv dd { overflow-wrap: anywhere; }
.mc-post { margin-top: 12px; }
.mc-post summary { cursor: pointer; }
.limits { margin-top: 16px; padding: 14px 16px; background: var(--bg-subtle); border: 1px solid var(--border); }
.limits ul { margin: 8px 0 0 18px; display: grid; gap: 5px; font-size: 13px; }
.limits .ucdp-cite { margin-top: 10px; }

/* footers of the territorial views */
.timeline.terr-foot, .timeline.at-foot { grid-template-columns: auto minmax(0, 1fr) minmax(240px, 400px); }
.tt-row { position: relative; display: flex; height: 32px; margin-top: 4px; }
.tt-m { display: flex; align-items: flex-end; justify-content: center; height: 100%; border-left: 1px solid var(--border); font-size: 10px; min-width: 0; }
.tt-m i { font-style: normal; white-space: nowrap; }
.tt-m.past i { color: var(--fg-faint); padding-bottom: 3px; text-transform: uppercase; }
.tt-m.fc { border: 1px solid var(--fg-faint); margin-left: 3px; background: var(--bg); color: var(--fg); }
.tt-m.fc:hover { border-color: var(--fg); }
.tt-m.fc.on { background: var(--fg); color: var(--bg); border-color: var(--fg); }
.tt-m.fc i { font: 600 10.5px/1 var(--font-mono); padding-bottom: 9px; text-transform: uppercase; }
.tt-m.past { flex: 1 1 0; }
.tt-m.fc { flex: 0 0 auto; padding: 0 10px; }
.tt-cut { position: relative; flex: 0 0 0; align-self: stretch; margin-top: -2px; border-left: 2px solid var(--fg); pointer-events: none; }
.tt-cut span { position: absolute; right: 5px; top: 0; font-size: 10px; white-space: nowrap; color: var(--fg); }
.tt-cut + .tt-m.fc { margin-left: 8px; }
.tt-empty { font-size: 11.5px; color: var(--fg-muted); padding-top: 14px; }
.tt-note { font-size: 11.5px; line-height: 1.35; color: var(--fg); border-left: 3px solid var(--warn); padding-left: 9px; }
.at-track { position: relative; height: 40px; border-bottom: 1px solid var(--border); margin-top: 2px; }
.at-yr { position: absolute; bottom: -14px; font-size: 10px; color: var(--fg-faint); transform: translateX(-50%); }
.at-tick { position: absolute; top: 10px; width: 5px; height: 22px; margin-left: -2.5px; background: var(--at-seg); }
.at-tick.t-inminencia { background: var(--at-inm); }
.at-tick.t-estructural { background: var(--at-est); }
.at-tick.portal { opacity: .45; height: 14px; top: 18px; }
.at-tick:hover, .at-tick.on { outline: 2px solid var(--fg); outline-offset: 1px; z-index: 2; opacity: 1; }

/* ------------------------------------------------------------------ Mando FAC */
.mandov { position: absolute; inset: 0; }
.mandov > .wrap { position: absolute; inset: 0; overflow: auto; max-width: none; }
.mando .vhead { align-items: flex-start; }
.mk-tiles { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.mk-strip { margin-top: 18px; }
.mk-strip.none { padding: 10px 12px; border: 1px dashed var(--border); }
.mk-strip-h { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; }
.mk-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 8px; margin-top: 8px; }
.mk-card { display: grid; gap: 6px; text-align: left; padding: 10px 12px; border: 1px solid var(--border); background: var(--bg); align-content: start; }
.mk-card:hover { border-color: var(--fg); }
.mk-n { font-weight: 600; font-size: 14px; }
.mk-n small { display: block; font-weight: 400; font-size: 11.5px; color: var(--fg-muted); }
.mk-p { display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; }
.mk-p b { font: 400 26px/1 var(--font-sans); letter-spacing: -.02em; }
.mk-p .mono { font-size: 11px; color: var(--fg-muted); }
.mk-f { display: flex; flex-wrap: wrap; gap: 4px 10px; font-size: 11.5px; color: var(--fg-muted); }
.mk-f span { display: inline-flex; align-items: center; gap: 5px; }
.mk-th { margin-bottom: 6px; }
.mk-tbl td { vertical-align: middle; }
.mk-tbl tr.locked td { color: var(--fg); }
.mk-tbl tr.locked { cursor: default; }
.mk-tbl tr.on td { background: var(--bg-sel); }
.mk-tbl tr.click:focus-visible { outline: 2px solid var(--focus); outline-offset: -2px; }
.mk-tbl .linkish { display: inline; }
.thsort { font: inherit; color: inherit; letter-spacing: inherit; text-transform: inherit; padding: 0; }
.thsort.on { color: var(--fg); font-weight: 600; }
.mk-sev { display: flex; align-items: center; gap: 8px; }
.sevstack { display: flex; gap: 2px; width: 120px; height: 8px; background: var(--bg-panel); flex: none; }
.sevstack i { display: block; height: 100%; }
.s-critical, .s-high { background: var(--crit); }
.s-medium { background: var(--warn); }
.s-low { background: var(--fg-faint); }
.mk-r { display: flex; gap: 6px; align-items: baseline; margin-bottom: 3px; }
.mk-tbl .pstrip.sm { width: 110px; }
.mk-notes { margin-top: 18px; display: grid; gap: 6px; max-width: 980px; }
.mk-drawer { background: var(--bg); box-shadow: var(--shadow); border-left: 1px solid var(--border-strong); z-index: 20; }
.mk-drawer .isec p { margin-top: 2px; }
.mk-item { padding: 12px 16px; border-bottom: 1px solid var(--border); display: grid; gap: 6px; }
.mk-item-h { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.mk-item b { font-weight: 600; font-size: 13.5px; }
.mk-item p { margin: 0; }
.mk-item-m { font-size: 11.5px; color: var(--fg-muted); }
.mk-item-a { display: flex; gap: 6px; flex-wrap: wrap; }
.mk-rev { display: inline-flex; gap: 2px; margin-left: auto; }
.fchip { display: inline-flex; gap: 6px; align-items: center; border: 1px solid var(--border); padding: 3px 8px; font: 500 11.5px/1.4 var(--font-mono); background: var(--bg); }
.fchip .mono { opacity: .7; }
.fchip.on { background: var(--fg); color: var(--bg); border-color: var(--fg); }
.gst.muted { color: var(--fg-faint); }

@media (max-width: 1366px) {
  .tb-grp > .lab { display: none; }
}
@media (max-width: 1180px) {
  .terr-body { grid-template-columns: minmax(0, 1fr) 330px; }
  .val-grid, .val-verdicts { grid-template-columns: 1fr; }
  .mk-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .timeline.terr-foot, .timeline.at-foot { grid-template-columns: auto minmax(0, 1fr) minmax(200px, 300px); }
}
@media (max-width: 960px) {
  .terr-bar { flex-wrap: wrap; }
  .terr-body { grid-template-columns: 1fr; grid-template-rows: minmax(360px, 60vh) auto; overflow: auto; }
  .terr-side { border-left: 0; border-top: 1px solid var(--border); }
  .mc-kv { grid-template-columns: 1fr; }
  .tt-note { display: none; }
}

/* ------------------------------------------------------------------ Alertas Tempranas (hipergrafo) */
.atv { position: absolute; inset: 0; display: grid; grid-template-columns: 330px minmax(0, 1fr) 372px; }
.atv-list { border-right: 1px solid var(--border); display: flex; flex-direction: column; min-height: 0; }
.atv-list header { padding: 14px 14px 10px; border-bottom: 1px solid var(--border); flex: none; display: grid; gap: 8px; }
.atv-list .big { font: 400 21px/1.2 var(--font-sans); letter-spacing: -.02em; }
.atv-src { display: flex; }
.atv-src button { flex: 1; font-size: 11.5px; padding: 5px 4px; }
.atv-f { display: grid; gap: 6px; }
.atv-f input[type="search"], .atv-f select { width: 100%; height: 30px; border: 1px solid var(--border); background: var(--bg); padding: 4px 8px; font-size: 12.5px; border-radius: 0; }
.atv-f input:focus, .atv-f select:focus { outline: 2px solid var(--focus); outline-offset: -1px; }
.atv-f .fx { padding: 2px 0; font-size: 12.5px; }
.atv-f .fchip { justify-self: start; }
.atv-items { overflow: auto; flex: 1; min-height: 0; }
.at-item { display: grid; gap: 4px; padding: 10px 14px; border-bottom: 1px solid var(--border); text-decoration: none; color: var(--fg); position: relative; }
.at-item:hover { background: var(--bg-hover); }
.at-item[aria-current="true"] { background: var(--bg-sel); }
.at-item[aria-current="true"]::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 3px; background: var(--fg); }
.at-item b { font-weight: 550; font-size: 13px; line-height: 1.3; }
.at-r1 { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; font-size: 11px; }
.at-item .meta { font-size: 11px; color: var(--fg-muted); }
.fbadge { font: 600 9.5px/1 var(--font-mono); text-transform: uppercase; letter-spacing: .06em; padding: 3px 5px; border: 1px solid var(--border); color: var(--fg-muted); white-space: nowrap; }
.fbadge.extraccion { border-color: var(--fg); color: var(--fg); }
.atv-graph { position: relative; min-width: 0; min-height: 0; display: flex; flex-direction: column; background: var(--map-bg); }
.atv-gh { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 8px 12px; border-bottom: 1px solid var(--border); flex: none; background: var(--bg); }
.atv-gh .lab { text-transform: none; letter-spacing: .01em; }
.atv-legend { display: flex; flex-wrap: wrap; gap: 4px 14px; padding: 6px 12px; border-top: 1px solid var(--border); color: var(--fg-muted); background: var(--bg); flex: none; }
.atv-legend span { display: inline-flex; gap: 6px; align-items: center; }
.lg-hull { display: inline-block; width: 16px; height: 10px; border-radius: 6px; opacity: .55; background: var(--at-seg); }
.lg-hull.t-inminencia { background: var(--at-inm); }
.lg-hull.t-estructural { background: var(--at-est); }
.lg-node { display: inline-block; width: 9px; height: 9px; border-radius: 50%; border: 1.5px solid var(--fg); background: var(--map-bg); }
.hg { position: relative; flex: 1; min-height: 0; }
.hg-svg { position: absolute; inset: 0; display: block; }
.hg-geo .dep { fill: none; stroke: var(--fg-ghost); stroke-width: .8px; vector-effect: non-scaling-stroke; }
.hg-geo .outline { fill: none; stroke: var(--fg-faint); stroke-width: 1px; vector-effect: non-scaling-stroke; }
.hull { fill: var(--at-seg); stroke: var(--at-seg); fill-opacity: .14; stroke-opacity: .14; stroke-width: 30px; stroke-linejoin: round; stroke-linecap: round; cursor: pointer; transition: fill-opacity .15s, stroke-opacity .15s; }
.hull.t-inminencia { fill: var(--at-inm); stroke: var(--at-inm); }
.hull.t-estructural { fill: var(--at-est); stroke: var(--at-est); }
.hull:hover { fill-opacity: .24; stroke-opacity: .24; }
.hull.on { fill-opacity: .34; stroke-opacity: .34; }
.hull.dim { fill-opacity: .06; stroke-opacity: .06; }
.hn { cursor: pointer; }
.hn circle:not(.hit) { fill: var(--map-bg); stroke: var(--fg); stroke-width: 1.5px; }
.hn.on circle:not(.hit) { fill: var(--fg); }
.hn.focus circle:not(.hit), .hn.focus rect:not(.core) { stroke: var(--sel); stroke-width: 3px; }
.hn.fac rect { fill: var(--map-bg); stroke: var(--fg); stroke-width: 1.6px; }
.hn.fac rect.core { fill: var(--fg); stroke: none; }
.hn.fac.on rect:not(.core) { stroke-width: 2.4px; }
.hn .hit { fill: transparent; stroke: none; }
.hg-labels text, .hg-alabels text { font: 500 11px/1 var(--font-sans); fill: var(--fg); paint-order: stroke; stroke: var(--map-bg); stroke-width: 3.4px; stroke-linejoin: round; pointer-events: none; }
.hg-labels text.focus { font-weight: 700; }
.hg-alabels text { font: 600 10.5px/1 var(--font-mono); fill: var(--fg-muted); }
.hg-alabels text.on { fill: var(--fg); font-size: 11.5px; }
.hg-tip { position: absolute; left: 12px; bottom: 12px; background: var(--bg); border: 1px solid var(--border-strong); box-shadow: var(--shadow); padding: 8px 10px; font-size: 11.5px; line-height: 1.5; max-width: 320px; pointer-events: none; }
.atv-detail { border-left: 1px solid var(--border); overflow: auto; min-height: 0; background: var(--bg); }
.atd-head { padding: 2px 16px 12px; border-bottom: 1px solid var(--border); display: grid; gap: 6px; }
.atd-head h2 { font: 400 20px/1.25 var(--font-sans); letter-spacing: -.015em; overflow-wrap: anywhere; }
.atd-tags { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.atd-sum { font-size: 13.5px; margin-top: 6px; }
.atd-meta { display: grid; gap: 6px; }
.atd-meta .row-acts { margin-top: 6px; }
.atd-meta .warn { display: inline-flex; gap: 5px; align-items: center; }
.atd-ms { list-style: none; display: grid; gap: 8px; margin-top: 8px; }
.atd-ms li { border: 1px solid var(--border); padding: 8px 10px; display: grid; gap: 6px; }
.atd-ms li.focus { border-color: var(--sel); box-shadow: inset 3px 0 0 var(--sel); }
.atd-m1 { display: flex; gap: 8px; align-items: baseline; flex-wrap: wrap; }
.atd-m1 b { font-weight: 600; font-size: 13.5px; }
.atd-fac { display: inline-flex; gap: 5px; align-items: center; font: 600 10.5px/1 var(--font-mono); }
.atd-p { margin-left: auto; }
.atd-q { display: grid; gap: 4px; text-align: left; background: var(--bg-subtle); border: 1px solid var(--border); padding: 7px 9px; }
.atd-q:hover { border-color: var(--fg-faint); background: var(--bg-hover); }
.atd-q q { font-size: 12.5px; border-left: 2px solid var(--fg-faint); padding-left: 8px; }
.atd-q .mono { font-size: 10.5px; }
.atd-note { padding: 12px 16px 24px; color: var(--fg-muted); border-top: 1px solid var(--border); }

/* ------------------------------------------------------------------ veracidad (LTM) */
.ver { border: 1px solid var(--border); border-left: 3px solid var(--bayes); padding: 12px 16px 14px; margin: 18px 0 20px; max-width: 1040px; background: var(--bg); display: grid; gap: 10px; }
.ver.compact { border: 0; padding: 0; margin: 0; max-width: none; }
.ver-h { display: flex; justify-content: space-between; align-items: center; gap: 10px; flex-wrap: wrap; }
.bayestag { display: inline-flex; align-items: center; gap: 5px; font: 600 10.5px/1 var(--font-mono); letter-spacing: .06em; text-transform: uppercase; padding: 4px 6px; background: var(--bayes-wash); color: var(--fg); border: 1px solid var(--bayes); white-space: nowrap; }
.bayestag svg { color: var(--bayes); }
.ver-attr { display: grid; gap: 6px; }
.ver-an { display: flex; gap: 8px; align-items: center; font-size: 13.5px; }
.ver-c { display: grid; gap: 6px; padding: 8px 10px; border: 1px solid var(--border); }
.ver-c.top { border-color: var(--fg-faint); }
.ver-c1 { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; flex-wrap: wrap; }
.ver-v { font-size: 16px; font-weight: 500; }
.ver-p { display: inline-flex; gap: 8px; align-items: baseline; font-size: 12px; color: var(--fg-muted); flex-wrap: wrap; }
.ver-p b { font-size: 18px; color: var(--fg); }
.ver-bar { position: relative; height: 8px; background: var(--bg-panel); display: block; }
.ver-bar > i { position: absolute; left: 0; top: 0; bottom: 0; background: var(--bayes); opacity: .75; }
.ver-ic { position: absolute; top: -3px; bottom: -3px; border: 1.5px solid var(--fg); border-radius: 2px; }
.ver-src { display: flex; flex-wrap: wrap; gap: 6px; }
.vsrc { display: inline-flex; gap: 5px; align-items: center; border: 1px solid var(--border); padding: 3px 7px; font-size: 11.5px; background: var(--bg); }
.vsrc span { color: var(--fg-muted); }
.vsrc.pos { border-color: var(--fg-faint); }
.vsrc.pos svg { color: var(--ok); }
.vsrc.neg { color: var(--fg-muted); }
.vsrc.neg svg { color: var(--crit); }
.vsrc:hover { border-color: var(--fg); background: var(--bg-hover); }
.ver-q summary { cursor: pointer; }
.ver-q .tbl { margin-top: 6px; }
.ver-note { font-size: 12px; color: var(--fg-muted); }
.ver-calc { display: inline-flex; gap: 8px; align-items: center; margin: 16px 0; padding: 8px 12px; border: 1px dashed var(--bayes); font-size: 13px; color: var(--fg); }
.ver-calc svg { color: var(--bayes); }
.rd-policy { display: flex; gap: 8px; align-items: flex-start; margin: 0 0 12px; padding: 6px 10px; font-size: 12px; color: var(--fg-muted); background: var(--bg-panel); border-left: 2px solid var(--fg-faint); }
.rd-policy svg { flex: none; margin-top: 1px; }
.gst.gate { cursor: pointer; background: none; }
.gst.gate:hover { background: var(--bg-hover); }
.mp-mu dd { white-space: nowrap; }
.mp-munote { margin: 2px 0 0; font-size: 11px; color: var(--fg-muted); }
.tc-mu { display: block; font: 400 11px/1.35 var(--font-sans); color: var(--fg-muted); margin-top: 2px; }
.mk.unit .u-ring { fill: none; stroke: var(--fg); stroke-width: 1.6; paint-order: stroke; }
.mk.unit.hot text { font-weight: 700; }
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.tc-rank td, .tc-rank th { padding-top: 5px; padding-bottom: 5px; }
.ver-u { font-size: 12px; color: var(--fg-muted); }
.ver-u b { color: var(--fg); font-weight: 600; }
.ver-seg { display: inline-flex; margin: 8px 0 2px; }
.ver-seg button { flex: none; padding: 4px 12px; }
.ver-bar.none { background: repeating-linear-gradient(45deg, var(--bg-panel) 0 4px, transparent 4px 8px); border: 1px dashed var(--border); }
/* finding (CX-REC): both sides on one 0–1 axis */
.hv-grid { display: grid; grid-template-columns: minmax(110px, auto) minmax(96px, auto) minmax(150px, 1fr) minmax(100px, auto); column-gap: 16px; row-gap: 6px; align-items: center; }
.hv-head, .hv-row { display: contents; }
.hv-head > span { font-size: 10px; color: var(--fg-faint); }
.hv-axis { display: flex; justify-content: space-between; }
.hv-axis i { font-style: normal; }
.hv-n { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; font-size: 13px; }
.hv-v { font-size: 15px; font-weight: 500; white-space: nowrap; }
.hv-p { display: grid; gap: 2px; font-size: 11.5px; color: var(--fg-muted); white-space: nowrap; }
.hv-p b { font-size: 18px; line-height: 1; color: var(--fg); }
.hv-x { grid-column: 3 / -1; display: flex; gap: 12px; align-items: center; flex-wrap: wrap; min-height: 4px; margin: -2px 0 6px; }
.hv-rec { display: flex; gap: 10px; align-items: flex-start; padding: 10px 12px; background: var(--bayes-wash); border: 1px solid var(--border); }
.hv-rec > svg { color: var(--bayes); flex: none; margin-top: 2px; }
.hv-rec .lab { margin-bottom: 2px; color: var(--fg-muted); } /* faint ink on the wash is < 4.5:1 in light */
.hv-rec b { font-size: 14px; font-weight: 600; }
.hv-rec p { margin: 4px 0 0; }
@media (max-width: 760px) {
  .hv-grid { grid-template-columns: 1fr auto; }
  .hv-head { display: none; }
  .hv-grid .ver-bar, .hv-x { grid-column: 1 / -1; }
}

/* ------------------------------------------------------------------ assistant tool cards + policy badge */
.tcards { display: grid; gap: 10px; margin: 2px 0 16px; max-width: 880px; }
.tcard { border: 1px solid var(--border); border-left: 3px solid var(--bayes); padding: 12px 14px; background: var(--bg); display: grid; gap: 8px; }
.tcard.warnc { border-left-color: var(--warn); }
.tc-h { display: flex; justify-content: space-between; align-items: center; gap: 10px; flex-wrap: wrap; }
.tc-h .lab { text-transform: none; letter-spacing: .01em; }
.tc-main { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.tc-v { font: 400 36px/1 var(--font-sans); letter-spacing: -.03em; }
.tc-l { display: grid; gap: 3px; font-size: 12px; color: var(--fg-muted); }
.tc-l b { color: var(--fg); font-size: 13px; }
.tc-rk { margin-left: auto; font-size: 12px; color: var(--fg-muted); border: 1px solid var(--border); padding: 2px 6px; }
.tc-kv { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4px 18px; }
.tc-kv > div { display: grid; gap: 1px; font-size: 12.5px; }
.tc-kv dt { color: var(--fg-muted); font-size: 11px; }
.tc-note, .tc-msg { font-size: 12.5px; color: var(--fg-muted); }
.tc-msg { color: var(--fg); }
.tc-cands { display: flex; flex-wrap: wrap; gap: 6px; }
.tc-cand { display: inline-flex; gap: 2px; }
.tc-acts { display: flex; gap: 6px; }
.poltag { display: inline-flex; align-items: center; gap: 5px; font: 600 10.5px/1 var(--font-mono); letter-spacing: .07em; text-transform: uppercase; padding: 4px 6px; border: 1px solid var(--fg-faint); color: var(--fg); white-space: nowrap; }
.ask-head-r { display: inline-flex; gap: 10px; align-items: center; }
.cx-top { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; flex-wrap: wrap; max-width: 1140px; }
.pal-mode { display: inline-flex; gap: 6px; align-items: center; font: 600 11px/1 var(--font-mono); text-transform: uppercase; letter-spacing: .05em; padding: 4px 7px; background: var(--fg); color: var(--bg); white-space: nowrap; }
.pad0 { padding-top: 2px; }
.exp-acts .marking { align-self: center; }

@media (max-width: 1180px) {
  .atv { grid-template-columns: 300px minmax(0, 1fr); }
  .atv-detail { position: absolute; right: 0; top: 0; bottom: 0; width: 360px; box-shadow: var(--shadow); z-index: 10; }
  .atv-detail:has(.norun) { display: none; }
  .tc-kv { grid-template-columns: 1fr; }
}
@media (max-width: 960px) {
  .atv { grid-template-columns: 1fr; grid-template-rows: auto 50vh; overflow: auto; }
  .atv-list { max-height: 50vh; border-right: 0; border-bottom: 1px solid var(--border); }
}
.marking.map-mark { left: 50%; top: 16px; transform: translateX(-50%); }
.mapv:has(.drawer) .marking.map-mark { left: calc(50% - var(--drawer) / 2); }
@media (max-width: 1100px) { .marking.map-mark { display: none; } }
.dec-bar .dec-mark { margin-left: auto; }
.ing-right { display: grid; gap: 8px; justify-items: end; }
@media (max-width: 1440px) { .tabs.many .lens { display: none; } .tabs.many .tab { padding: 0 10px; } }
.mk-tbl td.r { white-space: nowrap; }
.mk-tbl td:nth-child(2) .linkish { display: block; }
.rmap .con-ol path { fill: url(#terr-con); stroke: var(--fg); stroke-opacity: .55; stroke-width: .8px; vector-effect: non-scaling-stroke; pointer-events: none; }
.con-ln { stroke: var(--fg); stroke-width: 1.1; stroke-opacity: .55; }
.lgk.conh { width: 14px; height: 11px; flex: none; display: inline-block; margin: 0 1px; border: 1px solid var(--fg-muted);
  background: repeating-linear-gradient(45deg, transparent 0 2.4px, var(--fg-muted) 2.4px 3.4px); }
.atv-f2 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; }
.atv-f2 select { padding: 4px 4px; font-size: 12px; }
.atv-src button .mono { margin-left: 4px; }
.at-tick.portal { width: 2px; margin-left: -1px; }
@media (max-width: 1366px) { .atv { grid-template-columns: 300px minmax(0, 1fr) 340px; } }
.keyhelp { display: grid; gap: 14px; }
.keyhelp dl { display: grid; gap: 4px; margin-top: 6px; }
.keyhelp dl > div { display: grid; grid-template-columns: 110px minmax(0, 1fr); gap: 10px; align-items: baseline; font-size: 13px; }
.keyhelp kbd { white-space: nowrap; }
.vc-m.tie { color: var(--fg-muted); }
.hits .l-f12 { stroke-dasharray: 1.5 3; stroke-linecap: round; }
.lg-inline i.k-f12 { border-top-style: dotted; }
.bots { display: grid; gap: 0; }
.bot { padding: 10px 0; border-top: 1px solid var(--border); display: grid; gap: 4px; }
.bots > .lab + .bot { border-top: 0; }
.bot-h { display: flex; justify-content: space-between; gap: 10px; align-items: baseline; flex-wrap: wrap; }
.bot-h b { font-weight: 600; font-size: 13.5px; }
.bot-run { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }

/* ================================================================== Novedades (sources, weekly changes, coverage) */
.novedades .vhead { align-items: flex-start; }
.nv-right { display: flex; flex-direction: column; align-items: flex-end; gap: 8px; }
.nv-v { font-size: 22px; }
.nv-v::first-letter { text-transform: uppercase; }
.nv-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; align-items: start; }
.nv-grid > .card > .lab:first-child { margin-bottom: 10px; }
.nv-units td, .nv-units th { padding: 5px 6px; }
.nv-sub { margin-top: 14px; }
.nv-sub > .lab { margin-bottom: 6px; }
.nv-list { list-style: none; margin: 0 0 10px; padding: 0; }
.nv-list > li { padding: 8px 0; border-top: 1px solid var(--border); display: grid; gap: 3px; }
.nv-list > li:first-child { border-top: 0; }
.nv-l1, .nv-l3 { display: flex; justify-content: space-between; gap: 12px; align-items: baseline; }
.nv-l3 a { white-space: nowrap; display: inline-flex; gap: 4px; align-items: center; }
.nv-at, .nv-site { all: unset; cursor: pointer; display: flex; gap: 10px; align-items: baseline; justify-content: space-between; width: 100%; }
.nv-at { justify-content: flex-start; }
.nv-at:hover b, .nv-site:hover b { text-decoration: underline; }
.nv-at:focus-visible, .nv-site:focus-visible { outline: 2px solid var(--focus, var(--fg)); outline-offset: 2px; }
.nv-src td { vertical-align: top; padding: 8px 6px; }
.nv-cov-g { display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 16px; margin-top: 8px; }
.nv-cov-g > div { display: grid; gap: 4px; align-content: start; }
.nv-cov-g b { font-size: 20px; font-weight: 400; }
.nv-cov-g .chips { display: flex; flex-wrap: wrap; gap: 4px; }
.nv-gaps { margin: 6px 0 0; padding-left: 18px; color: var(--fg-muted); }
.nv-tech > summary { cursor: pointer; list-style: none; }
.nv-tech > summary::-webkit-details-marker { display: none; }
.nv-tech > summary .lab::before { content: '▸ '; }
.nv-tech[open] > summary .lab::before { content: '▾ '; }
.nv-tech[open] > summary { margin-bottom: 12px; }
@media (max-width: 900px) { .nv-grid, .nv-cov-g { grid-template-columns: 1fr; } .nv-right { align-items: flex-start; } }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.mk-lock { display: inline-flex; padding: 2px 6px; }
