/* Atalaya · con la identidad de Business Avance: fondo tinta, acento lima escaso, Archivo para titulares y cifras,
   Libre Franklin para leer e IBM Plex Mono para etiquetar. Los mundos 3D conservan sus propios colores. */
:root {
  color-scheme: dark;
  /* Identidad Business Avance: tinta, hueso y lima; oliva para fondo claro; panel y filete como auxiliares */
  --abyss: #05060a;
  --deep: #0a0c11;
  --panel: rgba(16, 19, 26, 0.88);
  --panel-solid: #10131a;
  --raise: #181c25;
  --line: #2c333f;
  --line-strong: #4a5363;
  --gold: #c9f24d;
  --gold-soft: #ecf2d6;
  --accent: var(--gold);
  --olive: #6e7d14;
  --bone: #f5f3ee;
  --fg: #f5f3ee;
  --muted: #a0a6b0;
  --faint: #69707c;
  /* Excepción documentada para producto: colores de estado y de series solo para datos, nunca decorativos */
  --go: #2fb24a;
  --warn: #fab219;
  --serious: #ec835a;
  --stop: #e04848;
  --s1: #3987e5; --s2: #d95926; --s3: #199e70; --s4: #c98500; --s5: #d55181;
  --font-display: 'Archivo', 'Helvetica Neue', Arial, sans-serif;
  --font-body: 'Libre Franklin', 'Segoe UI', system-ui, sans-serif;
  --font-data: 'IBM Plex Mono', ui-monospace, 'SFMono-Regular', Menlo, monospace;
  --r: 6px;
  --shadow: 0 18px 44px -22px rgba(0, 0, 0, 0.85);
  --relieve: 6px 6px 0 rgba(0, 0, 0, 0.55);
  --t-xs: 0.72rem; --t-s: 0.84rem; --t-m: 1rem; --t-l: 1.3rem; --t-xl: 2rem; --t-xxl: clamp(2.3rem, 4.6vw, 3.7rem);
}

* { box-sizing: border-box; }
[hidden] { display: none !important; }
html { scroll-behavior: smooth; scroll-padding-top: 96px; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { animation: none !important; transition: none !important; } }
body {
  margin: 0; background: var(--abyss); color: var(--fg);
  font-family: var(--font-body); font-size: 15px; line-height: 1.55;
  -webkit-font-smoothing: antialiased; overflow-x: hidden;
}
#sky { position: fixed; inset: 0; width: 100%; height: 100%; z-index: 0; pointer-events: none; }
.veil { position: fixed; inset: 0; z-index: 0; pointer-events: none;
  background: radial-gradient(1200px 700px at 78% -10%, rgba(201, 242, 77, 0.035), transparent 60%), radial-gradient(900px 600px at 0% 110%, rgba(255, 255, 255, 0.025), transparent 60%); }
button, input, select { font: inherit; color: inherit; }
button { cursor: pointer; }
:focus-visible { outline: 2px solid var(--gold); outline-offset: 2px; border-radius: 6px; }
.num, .mono { font-family: var(--font-data); font-variant-numeric: tabular-nums; }

/* ---------- Barra superior flotante ---------- */
.topbar {
  position: fixed; z-index: 40; top: calc(14px + env(safe-area-inset-top, 0px)); left: 50%; transform: translateX(-50%);
  width: min(1180px, calc(100% - 32px)); display: flex; align-items: center; gap: 14px;
  padding: 8px 10px 8px 18px; border: 1px solid var(--line); border-radius: 999px;
  background: rgba(12, 14, 19, 0.82); backdrop-filter: blur(18px) saturate(140%); box-shadow: var(--shadow);
}
.brand { display: flex; align-items: baseline; gap: 10px; white-space: nowrap; text-decoration: none; color: inherit; }
.brand b { font-family: var(--font-display); font-weight: 600; font-size: 1.35rem; letter-spacing: 0.02em; color: var(--gold-soft); }
.brand span { font-size: var(--t-xs); letter-spacing: 0.16em; text-transform: uppercase; color: var(--muted); }
.seg { display: flex; gap: 2px; padding: 3px; border-radius: 999px; background: rgba(255, 255, 255, 0.04); border: 1px solid var(--line); margin-left: auto; overflow-x: auto; scrollbar-width: none; }
.seg button { border: 0; background: transparent; padding: 6px 12px; border-radius: 999px; font-size: var(--t-s); color: var(--muted); display: flex; align-items: center; gap: 6px; white-space: nowrap; }
.seg button i { width: 8px; height: 8px; border-radius: 50%; display: inline-block; }
.seg button[aria-pressed="true"] { background: var(--raise); color: var(--fg); box-shadow: 0 0 0 1px var(--line-strong) inset; }
.verdict-pill { display: flex; align-items: center; gap: 8px; padding: 7px 14px; border-radius: 999px; font-size: var(--t-s); font-weight: 600; white-space: nowrap; border: 1px solid; }
.verdict-pill .dot { width: 9px; height: 9px; border-radius: 50%; background: currentColor; box-shadow: 0 0 12px currentColor; }
.v-go { color: var(--go); border-color: rgba(47, 178, 74, 0.4); background: rgba(47, 178, 74, 0.08); }
.v-warn { color: var(--warn); border-color: rgba(250, 178, 25, 0.4); background: rgba(250, 178, 25, 0.08); }
.v-stop { color: var(--stop); border-color: rgba(224, 72, 72, 0.45); background: rgba(224, 72, 72, 0.09); }

/* ---------- Dock lateral (navegación + caja de herramientas) ---------- */
.dock {
  position: fixed; z-index: 40; left: 18px; top: 50%; transform: translateY(-50%);
  display: flex; flex-direction: column; gap: 4px; padding: 8px; border-radius: 22px;
  background: rgba(12, 14, 19, 0.82); border: 1px solid var(--line); backdrop-filter: blur(18px); box-shadow: var(--shadow);
}
.dock hr { border: 0; height: 1px; background: var(--line); margin: 6px 4px; width: auto; }
.dock button {
  position: relative; width: 42px; height: 42px; border-radius: 12px; border: 0; background: transparent; color: var(--muted);
  display: grid; place-items: center; transition: background 0.2s, color 0.2s;
}
.dock button svg { width: 20px; height: 20px; stroke: currentColor; fill: none; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.dock button:hover, .dock button.on { background: var(--raise); color: var(--gold-soft); }
.dock button.on::before { content: ''; position: absolute; left: -8px; top: 12px; bottom: 12px; width: 2px; border-radius: 2px; background: var(--gold); }
.dock button .tip {
  position: absolute; left: 54px; top: 50%; transform: translate(-6px, -50%); opacity: 0; pointer-events: none;
  padding: 6px 10px; border-radius: 8px; background: var(--panel-solid); border: 1px solid var(--line); color: var(--fg);
  font-size: var(--t-xs); letter-spacing: 0.06em; white-space: nowrap; transition: opacity 0.15s, transform 0.15s;
}
.dock button:hover .tip, .dock button:focus-visible .tip { opacity: 1; transform: translate(0, -50%); }
.dock .tool { color: var(--gold); }

/* Panel flotante de herramientas */
.toolbox {
  position: fixed; z-index: 45; left: 84px; top: 50%; transform: translateY(-50%);
  width: min(360px, calc(100vw - 32px)); max-height: min(78vh, 680px); overflow: auto;
  padding: 18px; border-radius: 18px; background: rgba(14, 17, 24, 0.94); border: 1px solid var(--line-strong);
  backdrop-filter: blur(20px); box-shadow: var(--shadow);
}
.toolbox h3 { margin: 0 0 4px; font-family: var(--font-display); letter-spacing: -0.02em; font-weight: 700; font-size: 1.25rem; color: var(--gold-soft); }
.toolbox .sub { margin: 0 0 14px; color: var(--muted); font-size: var(--t-s); }
.toolbox .group { display: grid; gap: 8px; margin-bottom: 16px; }
.toolbox .group > label { font-size: var(--t-xs); text-transform: uppercase; letter-spacing: 0.14em; color: var(--faint); }
.toolbox .close { position: absolute; right: 10px; top: 10px; }

/* ---------- Estructura de página ---------- */
main { position: relative; z-index: 1; width: min(1180px, 100%); margin: 0 auto; padding-inline: 16px; padding-block: 104px 120px; }
@media (min-width: 900px) { main { padding-inline: 96px 24px; } }
section.chapter { padding-block: 56px 24px; scroll-margin-top: 80px; }
.eyebrow { display: flex; align-items: center; gap: 12px; font-family: var(--font-data); font-size: 0.7rem; letter-spacing: 0.2em; text-transform: uppercase; color: var(--gold); }
.eyebrow::after { content: ''; height: 1px; flex: 1; background: var(--line); }
.eyebrow .roman { font-family: var(--font-display); font-weight: 700; font-size: 0.95rem; letter-spacing: 0.08em; }
h1, h2 { font-family: var(--font-display); font-weight: 800; text-wrap: balance; letter-spacing: -0.035em; margin: 0; }
h1 { font-size: var(--t-xxl); line-height: 1.02; }
h1 em, h2 em { font-style: normal; color: transparent; -webkit-text-stroke: 1.4px var(--gold); }
h2 { font-size: clamp(1.7rem, 3.4vw, 2.5rem); line-height: 1.1; margin-top: 14px; }
.lede { color: var(--muted); max-width: 64ch; margin: 12px 0 0; font-size: 1.02rem; }
h4 { margin: 0; font-size: var(--t-xs); letter-spacing: 0.16em; text-transform: uppercase; color: var(--muted); font-weight: 600; }

.glass { background: var(--panel); border: 1px solid var(--line); border-radius: var(--r); backdrop-filter: blur(14px); box-shadow: var(--shadow); }
.grid { display: grid; gap: 14px; align-items: start; }
.cols-2 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr)); }
.cols-3 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); }
.pad { padding: 20px; }
.stack { display: grid; gap: 14px; min-width: 0; align-content: start; }
.row { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.spacer { flex: 1; }
.mt { margin-top: 22px; }
.muted { color: var(--muted); }
.small { font-size: var(--t-s); }

/* ---------- Hero / puente de mando ---------- */
.hero { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 28px; align-items: end; padding-top: 26px; }
@media (max-width: 900px) { .hero { grid-template-columns: 1fr; } }
.hero .company { display: flex; flex-wrap: wrap; gap: 8px 14px; margin-top: 18px; color: var(--muted); font-size: var(--t-s); }
.hero .company input { background: transparent; border: 0; border-bottom: 1px dashed var(--line-strong); color: var(--fg); padding: 2px 0; min-width: 0; width: 15ch; }
.verdict-card { padding: 22px; }
.verdict-card .big { font-family: var(--font-display); letter-spacing: -0.02em; font-weight: 700; font-size: 1.9rem; line-height: 1.1; margin: 6px 0 8px; }
.verdict-card .bar { display: flex; gap: 4px; margin-top: 16px; }
.verdict-card .bar span { flex: 1; height: 26px; border-radius: 4px; position: relative; cursor: pointer; }
.verdict-card .bar span:hover { outline: 1px solid var(--fg); }

.kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 150px), 1fr)); gap: 12px; margin-top: 26px; }
.kpi { padding: 16px 16px 14px; cursor: pointer; text-align: left; border-radius: var(--r); border: 1px solid var(--line); background: var(--panel); transition: border-color 0.2s, transform 0.2s; position: relative; overflow: hidden; }
.kpi:hover { border-color: var(--line-strong); transform: translateY(-2px); }
.kpi .k { font-size: var(--t-xs); letter-spacing: 0.12em; text-transform: uppercase; color: var(--muted); display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 4px 8px; }
.kpi .k > span:first-child { min-width: 0; overflow-wrap: anywhere; }
.kpi .k .state { flex-shrink: 0; letter-spacing: 0.04em; }
.kpi .v { font-family: var(--font-data); font-size: 1.5rem; margin-top: 8px; font-variant-numeric: tabular-nums; letter-spacing: -0.02em; }
.kpi .d { font-size: var(--t-xs); color: var(--faint); margin-top: 2px; }
.kpi svg.spark { display: block; width: 100%; height: 30px; margin-top: 8px; }
.state { display: inline-flex; align-items: center; gap: 6px; font-size: var(--t-xs); font-weight: 600; letter-spacing: 0.04em; padding: 2px 8px; border-radius: 999px; border: 1px solid; white-space: nowrap; }
.state::before { content: ''; width: 7px; height: 7px; border-radius: 50%; background: currentColor; }
.st-ok { color: var(--go); border-color: rgba(47, 178, 74, 0.35); }
.st-warn { color: var(--warn); border-color: rgba(250, 178, 25, 0.35); }
.st-stop { color: var(--stop); border-color: rgba(224, 72, 72, 0.4); }

/* ---------- Formularios ---------- */
.sectors { display: flex; flex-wrap: wrap; gap: 8px; }
.chip { border: 1px solid var(--line); background: rgba(255, 255, 255, 0.02); padding: 7px 13px; border-radius: 999px; font-size: var(--t-s); color: var(--muted); transition: all 0.2s; }
.chip:hover { color: var(--fg); border-color: var(--line-strong); }
.chip[aria-pressed="true"] { color: var(--abyss); background: var(--gold); border-color: var(--gold); font-weight: 600; }
.fields { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 250px), 1fr)); gap: 4px 22px; }
.field { padding: 10px 0 8px; border-bottom: 1px solid rgba(201, 242, 77, 0.08); min-width: 0; }
.field .top { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; }
.field label { font-size: var(--t-s); color: var(--muted); cursor: help; }
.field .val { display: flex; align-items: baseline; gap: 4px; }
.field input.fnum {
  width: 11ch; text-align: right; background: transparent; border: 0; border-bottom: 1px solid transparent;
  font-family: var(--font-data); font-size: 0.98rem; color: var(--fg); padding: 2px 0; -moz-appearance: textfield;
}
.field input.fnum:hover, .field input.fnum:focus { border-bottom-color: var(--gold); outline: none; }
.field .u { font-size: var(--t-xs); color: var(--faint); font-family: var(--font-data); }
input[type="range"] { -webkit-appearance: none; appearance: none; width: 100%; height: 18px; background: transparent; margin: 4px 0 0; }
input[type="range"]::-webkit-slider-runnable-track { height: 2px; border-radius: 2px; background: linear-gradient(90deg, var(--gold) var(--p, 50%), rgba(255, 255, 255, 0.12) var(--p, 50%)); }
input[type="range"]::-moz-range-track { height: 2px; background: rgba(255, 255, 255, 0.12); }
input[type="range"]::-moz-range-progress { height: 2px; background: var(--gold); }
input[type="range"]::-webkit-slider-thumb { -webkit-appearance: none; width: 14px; height: 14px; border-radius: 50%; background: var(--abyss); border: 2px solid var(--gold); margin-top: -6px; box-shadow: 0 0 0 4px rgba(201, 242, 77, 0.12); }
input[type="range"]::-moz-range-thumb { width: 12px; height: 12px; border-radius: 50%; background: var(--abyss); border: 2px solid var(--gold); }
select, .input {
  background: rgba(255, 255, 255, 0.04); border: 1px solid var(--line); border-radius: 10px; padding: 8px 10px; color: var(--fg); min-width: 0;
}
select option { background: var(--panel-solid); }
.btn { border: 1px solid var(--line-strong); background: rgba(201, 242, 77, 0.06); color: var(--gold-soft); padding: 9px 16px; border-radius: 999px; font-size: var(--t-s); font-weight: 600; transition: all 0.2s; }
.btn:hover { background: rgba(201, 242, 77, 0.16); }
.btn.solid { background: var(--gold); color: var(--abyss); border-color: var(--gold); }
.btn.solid:hover { background: var(--gold-soft); }
.btn.ghost { border-color: var(--line); color: var(--muted); background: transparent; }
.icon-btn { width: 32px; height: 32px; border-radius: 50%; border: 1px solid var(--line); background: transparent; color: var(--muted); display: grid; place-items: center; }
.icon-btn:hover { color: var(--fg); border-color: var(--line-strong); }

/* Dimensión: anillos */
.dimension { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 150px), 1fr)); gap: 12px; }
.ring { text-align: center; padding: 12px 8px; cursor: pointer; border-radius: 12px; }
.ring:hover { background: rgba(255, 255, 255, 0.03); }
.ring svg { width: 92px; height: 92px; display: block; margin: 0 auto 6px; }
.ring .lbl { font-size: var(--t-xs); color: var(--muted); letter-spacing: 0.08em; text-transform: uppercase; }
.ring .val { font-family: var(--font-data); font-size: 1.05rem; }

/* ---------- Escenario 3D ---------- */
.stage { position: relative; height: clamp(420px, 68vh, 640px); overflow: hidden; border-radius: 18px; border: 1px solid var(--line);
  background: radial-gradient(120% 90% at 50% 0%, #121d3c 0%, #070c1b 70%); }
.stage canvas { display: block; width: 100%; height: 100%; touch-action: none; cursor: grab; }
.stage canvas:active { cursor: grabbing; }
.stage .hud { position: absolute; left: 14px; right: 14px; top: 14px; display: flex; gap: 10px; flex-wrap: wrap; align-items: center; pointer-events: none; }
.stage .hud > * { pointer-events: auto; }
.stage .hud .glass { padding: 8px 10px; border-radius: 12px; display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.stage .hud label { font-size: var(--t-xs); color: var(--faint); letter-spacing: 0.1em; text-transform: uppercase; }
.stage .hud select { padding: 5px 8px; font-size: var(--t-s); }
.stage .legend3d { position: absolute; left: 14px; bottom: 14px; padding: 10px 12px; border-radius: 12px; font-size: var(--t-xs); display: grid; gap: 4px; pointer-events: none; }
.stage .legend3d span { display: flex; align-items: center; gap: 8px; color: var(--muted); }
.stage .legend3d i { width: 18px; height: 6px; border-radius: 3px; display: inline-block; }
.stage .help3d { position: absolute; right: 14px; bottom: 14px; font-size: var(--t-xs); color: var(--faint); padding: 6px 10px; }
.stage .label3d { position: absolute; transform: translate(-50%, -50%); font-family: var(--font-data); font-size: 10.5px; color: var(--muted); pointer-events: none; white-space: nowrap; text-shadow: 0 1px 6px #000; }
.stage .label3d.axis { color: var(--gold-soft); font-family: var(--font-body); letter-spacing: 0.1em; text-transform: uppercase; font-size: 10px; }
.stage .fallback { position: absolute; inset: 0; display: grid; place-items: center; text-align: center; padding: 30px; color: var(--muted); }

/* ---------- Tarjeta flotante ---------- */
.float-card {
  position: fixed; z-index: 60; width: min(340px, calc(100vw - 24px)); padding: 16px 16px 14px; border-radius: 14px;
  background: rgba(14, 17, 24, 0.96); border: 1px solid var(--line-strong); box-shadow: 0 30px 80px -20px rgba(0, 0, 0, 0.8);
  backdrop-filter: blur(16px); font-size: var(--t-s); animation: pop 0.18s ease-out;
}
.float-card.pop-card { width: min(440px, calc(100vw - 24px)); max-height: min(70vh, 560px); overflow-y: auto; }
.pop-card h6 { margin: 12px 0 2px; font-size: var(--t-xs); text-transform: uppercase; letter-spacing: 0.08em; color: var(--gold); font-weight: 600; }
.pop-card ul { margin: 4px 0 0; padding-left: 18px; color: var(--muted); display: grid; gap: 3px; }
.pop-card .now { margin-top: 10px; padding: 10px 12px; border-radius: 10px; background: rgba(201, 242, 77, 0.07); border: 1px solid var(--line-strong); color: var(--fg); }
.pop-card table { width: 100%; margin-top: 6px; font-size: var(--t-xs); }
.pop-card td { padding: 3px 6px; border-bottom: 1px solid var(--line); }
[data-term] { cursor: help; }
.float-card.hover { pointer-events: none; width: min(280px, calc(100vw - 24px)); padding: 12px 14px; }
@keyframes pop { from { transform: translateY(6px) scale(0.98); opacity: 0.4; } to { transform: none; opacity: 1; } }
.float-card h5 { margin: 0 0 2px; font-family: var(--font-display); letter-spacing: -0.02em; font-weight: 700; font-size: 1.15rem; color: var(--gold-soft); padding-right: 28px; }
.float-card .fv { font-family: var(--font-data); font-size: 1.35rem; margin: 6px 0; }
.float-card p { margin: 6px 0 0; color: var(--muted); }
.float-card .formula { font-family: var(--font-data); font-size: 0.74rem; color: var(--faint); border-top: 1px solid var(--line); padding-top: 8px; margin-top: 10px; }
.float-card .close { position: absolute; top: 10px; right: 10px; width: 26px; height: 26px; }
.float-card dl { display: grid; grid-template-columns: auto auto; gap: 3px 14px; margin: 8px 0 0; }
.float-card dt { color: var(--muted); }
.float-card dd { margin: 0; text-align: right; font-family: var(--font-data); }
.float-card .actions { margin-top: 12px; display: flex; gap: 8px; flex-wrap: wrap; }

/* ---------- Gráficos ---------- */
.chart { position: relative; width: 100%; }
.chart svg { display: block; width: 100%; height: auto; overflow: visible; }
.chart text { font-family: var(--font-data); font-size: 10.5px; fill: var(--muted); }
.chart .grid line { stroke: rgba(255, 255, 255, 0.06); }
.chart .zero { stroke: var(--stop); stroke-dasharray: 3 4; opacity: 0.7; }
.chart .target { stroke: var(--gold); stroke-dasharray: 6 4; opacity: 0.8; }
.chart-legend { display: flex; flex-wrap: wrap; gap: 6px 14px; font-size: var(--t-s); color: var(--muted); margin-bottom: 8px; }
.chart-legend button { background: none; border: 0; padding: 2px 0; display: inline-flex; align-items: center; gap: 6px; color: var(--muted); }
.chart-legend button[aria-pressed="false"] { opacity: 0.4; }
.chart-legend i { width: 14px; height: 3px; border-radius: 2px; display: inline-block; }
.tip-line { stroke: var(--gold-soft); stroke-width: 1; opacity: 0.6; }

/* Tablas */
.table-wrap { overflow-x: auto; }
table { width: 100%; border-collapse: collapse; font-size: var(--t-s); }
th, td { padding: 9px 10px; text-align: right; border-bottom: 1px solid var(--line); white-space: nowrap; }
th:first-child, td:first-child { text-align: left; }
thead th { font-family: var(--font-display); font-weight: 700; color: var(--fg); font-size: 0.68rem; letter-spacing: 0.1em; text-transform: uppercase; border-bottom: 1.5px solid var(--fg); }
td { font-family: var(--font-data); font-variant-numeric: tabular-nums; }
td:first-child { font-family: var(--font-body); }
tr.active td { background: rgba(201, 242, 77, 0.06); }
tr.clickable { cursor: pointer; }
tr.clickable:hover td { background: rgba(255, 255, 255, 0.03); }
.sw { display: inline-block; width: 10px; height: 10px; border-radius: 3px; margin-right: 8px; vertical-align: -1px; }

/* Semáforos */
.lights { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 190px), 1fr)); gap: 10px; }
.light { display: grid; grid-template-columns: 40px 1fr; gap: 12px; align-items: center; padding: 14px; border-radius: 14px; border: 1px solid var(--line); background: var(--panel); cursor: pointer; text-align: left; }
.light:hover { border-color: var(--line-strong); }
.lamp { width: 40px; height: 64px; border-radius: 20px; background: #050811; border: 1px solid rgba(255, 255, 255, 0.08); display: grid; gap: 4px; padding: 6px 0; justify-items: center; align-content: center; }
.lamp i { width: 12px; height: 12px; border-radius: 50%; background: rgba(255, 255, 255, 0.07); }
.lamp i.on.stop { background: var(--stop); box-shadow: 0 0 12px var(--stop); }
.lamp i.on.warn { background: var(--warn); box-shadow: 0 0 12px var(--warn); }
.lamp i.on.ok { background: var(--go); box-shadow: 0 0 12px var(--go); }
.light .n { font-weight: 600; }
.light .lv { font-family: var(--font-data); font-size: 0.95rem; }
.light .lt { font-size: var(--t-xs); color: var(--muted); }

/* Hipótesis */
.hyp { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 8px 12px; align-items: center; padding: 10px 0; border-bottom: 1px solid rgba(201, 242, 77, 0.08); }
.hyp .meta { display: flex; gap: 8px; flex-wrap: wrap; font-size: var(--t-xs); color: var(--muted); }
.hyp .meta input { width: 6ch; padding: 4px 6px; font-family: var(--font-data); font-size: var(--t-xs); }
.switch { position: relative; width: 36px; height: 20px; border-radius: 999px; border: 1px solid var(--line-strong); background: transparent; padding: 0; }
.switch::after { content: ''; position: absolute; top: 2px; left: 2px; width: 14px; height: 14px; border-radius: 50%; background: var(--faint); transition: transform 0.2s, background 0.2s; }
.switch[aria-checked="true"] { background: rgba(201, 242, 77, 0.2); }
.switch[aria-checked="true"]::after { transform: translateX(16px); background: var(--gold); }

/* Tamaño operativo */
.size-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); gap: 12px; }
.size { padding: 16px; cursor: pointer; }
.size .from-to { display: flex; align-items: baseline; gap: 10px; margin-top: 8px; font-family: var(--font-data); }
.size .from-to .a { color: var(--faint); font-size: 0.95rem; }
.size .from-to .b { font-size: 1.35rem; }
.size .bars { display: grid; gap: 4px; margin-top: 10px; }
.size .bars span { height: 4px; border-radius: 2px; background: var(--faint); display: block; }
.size .bars span.after { background: var(--gold); }
.size .delta { font-size: var(--t-xs); margin-top: 6px; }
.delta.up { color: var(--go); } .delta.down { color: var(--serious); }

/* Humano */
.radar-wrap { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 20px; align-items: center; }
@media (max-width: 1100px) { .radar-wrap { grid-template-columns: 1fr; } }
#radar { max-width: 360px; margin: 0 auto; width: 100%; }
.score-big { font-family: var(--font-display); letter-spacing: -0.02em; font-weight: 700; font-size: 3.6rem; line-height: 1; }
.dimrow { padding: 8px 0; border-bottom: 1px solid rgba(201, 242, 77, 0.08); }
.dimrow summary { display: grid; grid-template-columns: minmax(0, 1fr) 46px; gap: 4px 12px; cursor: pointer; list-style: none; }
.dimrow summary::-webkit-details-marker { display: none; }
.dimrow p { margin: 8px 0 6px; color: var(--muted); }
.dimrow .meter { grid-column: 1 / -1; height: 4px; background: rgba(255, 255, 255, 0.06); border-radius: 2px; overflow: hidden; display: block; }
.dimrow .meter b { display: block; height: 100%; border-radius: 2px; }
.timeline { position: relative; padding-left: 22px; display: grid; gap: 12px; }
.timeline::before { content: ''; position: absolute; left: 6px; top: 6px; bottom: 6px; width: 1px; background: var(--line-strong); }
.timeline .ev { position: relative; }
.timeline .ev::before { content: ''; position: absolute; left: -20px; top: 6px; width: 9px; height: 9px; border-radius: 50%; background: var(--abyss); border: 2px solid var(--gold); }
.timeline .when { font-family: var(--font-data); font-size: var(--t-xs); color: var(--gold); }

/* Estructuras */
.structs { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 330px), 1fr)); gap: 12px; }
.struct { padding: 18px; display: grid; gap: 10px; cursor: pointer; text-align: left; color: var(--fg); }
.struct.current { border-color: var(--gold); box-shadow: 0 0 0 1px var(--gold) inset, var(--shadow); }
.struct .head { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; }
.struct .name { font-family: var(--font-display); letter-spacing: -0.02em; font-weight: 700; font-size: 1.2rem; }
.struct .score { font-family: var(--font-data); color: var(--gold); }
.struct .stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.struct .stats div { font-size: var(--t-xs); color: var(--muted); }
.struct .stats b { display: block; font-family: var(--font-data); font-size: 0.95rem; color: var(--fg); font-weight: 500; }
.struct .attrs { display: grid; gap: 5px; }
.attr { display: grid; grid-template-columns: 92px minmax(0, 1fr) 30px; align-items: center; gap: 8px; font-size: var(--t-xs); color: var(--muted); }
.attr .track { height: 4px; border-radius: 2px; background: rgba(255, 255, 255, 0.06); overflow: hidden; }
.attr .track b { display: block; height: 100%; background: var(--s1); }
.attr span:last-child { font-family: var(--font-data); text-align: right; }

/* Plan */
.targets { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 155px), 1fr)); gap: 10px; }
.target-tile { padding: 12px 14px; border-radius: 12px; border: 1px solid var(--line); background: var(--panel); }
.target-tile .t { font-size: var(--t-xs); color: var(--muted); text-transform: uppercase; letter-spacing: 0.1em; display: flex; justify-content: space-between; gap: 6px; }
.target-tile .now { font-family: var(--font-data); font-size: 1.15rem; margin-top: 6px; display: flex; align-items: center; justify-content: space-between; gap: 6px; flex-wrap: wrap; }
.target-tile .obj { font-size: var(--t-xs); color: var(--faint); }
.target-tile input { width: 100%; margin-top: 6px; }
.steps { display: grid; gap: 10px; counter-reset: step; }
.step { display: grid; grid-template-columns: 38px minmax(0, 1fr) auto; gap: 14px; align-items: start; padding: 14px 16px; border-radius: 14px; border: 1px solid var(--line); background: var(--panel); }
.step::before { counter-increment: step; content: counter(step); width: 38px; height: 38px; border-radius: 50%; display: grid; place-items: center; font-family: var(--font-display); letter-spacing: -0.02em; font-weight: 700; font-size: 1.15rem; color: var(--gold); border: 1px solid var(--line-strong); }
.step .what { font-weight: 600; }
.step .how { font-size: var(--t-s); color: var(--muted); }
.step .eff { text-align: right; font-family: var(--font-data); font-size: var(--t-s); }
.step .eff small { display: block; color: var(--faint); font-family: var(--font-body); }
@media (max-width: 600px) { .step { grid-template-columns: 38px minmax(0, 1fr); } .step .eff { grid-column: 2; text-align: left; } }
.note { font-size: var(--t-s); color: var(--muted); border-left: 2px solid var(--gold); padding: 4px 0 4px 12px; }

/* ---------- Informe ---------- */
.report-overlay { position: fixed; inset: 0; z-index: 80; background: rgba(6, 7, 9, 0.82); backdrop-filter: blur(6px); overflow: auto; padding: calc(20px + env(safe-area-inset-top, 0px)) 16px 40px; }
.report-bar { position: sticky; top: 0; z-index: 2; width: min(900px, 100%); margin: 0 auto 14px; display: flex; gap: 8px; flex-wrap: wrap; align-items: center; padding: 10px 12px; border-radius: 14px; background: rgba(14, 17, 24, 0.96); border: 1px solid var(--line-strong); }
.report-bar label { font-size: var(--t-xs); color: var(--muted); display: inline-flex; gap: 5px; align-items: center; }
.paper { width: min(900px, 100%); margin: 0 auto; background: #ecebe3; color: #10131a; border-radius: 6px; padding: clamp(22px, 5vw, 64px); font-family: var(--font-body); box-shadow: 0 40px 100px -30px #000; }
.paper h1 { font-size: clamp(2rem, 4.5vw, 3rem); color: #05060a; }
.paper h2 { font-size: 1.6rem; color: #05060a; margin-top: 36px; padding-top: 14px; border-top: 1px solid #c8c4b6; }
.paper h3 { font-family: var(--font-display); letter-spacing: -0.02em; font-weight: 700; font-size: 1.15rem; margin: 22px 0 6px; color: #05060a; }
.paper p, .paper li { line-height: 1.6; max-width: 72ch; }
.paper .kicker { font-size: 0.72rem; letter-spacing: 0.22em; text-transform: uppercase; color: #8a6a2c; }
.paper table { font-size: 0.82rem; margin-top: 8px; }
.paper th, .paper td { border-bottom: 1px solid #d9d6cc; color: #10131a; }
.paper thead th { color: #55610f; }
.paper .pill { display: inline-block; padding: 2px 9px; border-radius: 999px; font-size: 0.72rem; font-weight: 700; border: 1px solid; }
.paper .p-ok { color: #1d7a32; } .paper .p-warn { color: #9a6700; } .paper .p-stop { color: #b42323; }
.paper .verdict { padding: 16px 18px; border-radius: 6px; border: 1px solid #c8c4b6; background: #e6e4dc; margin-top: 18px; }
.paper .cols { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 180px), 1fr)); gap: 10px; margin-top: 12px; }
.paper .cols div { border: 1px solid #d9d6cc; border-radius: 6px; padding: 10px 12px; }
.paper .cols b { display: block; font-family: var(--font-data); font-size: 1.1rem; }
.paper .cols span { font-size: 0.72rem; color: #55610f; text-transform: uppercase; letter-spacing: 0.08em; }
.paper .chart text { fill: #4a5470; }
.paper .chart .grid line { stroke: #dcd9cf; }
.paper.rp .chart { --deep: #f5f3ee; }
.chart svg:focus-visible { outline: 2px solid var(--gold); outline-offset: 2px; }
.paper .foot { margin-top: 40px; font-size: 0.75rem; color: #6b6450; border-top: 1px solid #c8c4b6; padding-top: 10px; }

.toast { position: fixed; z-index: 90; left: 50%; bottom: calc(24px + env(safe-area-inset-bottom, 0px)); transform: translateX(-50%); padding: 10px 18px; border-radius: 999px; background: var(--gold); color: var(--abyss); font-weight: 600; font-size: var(--t-s); box-shadow: var(--shadow); }

/* ---------- Móvil ---------- */
@media (max-width: 899px) {
  .dock { left: 50%; top: auto; bottom: calc(12px + env(safe-area-inset-bottom, 0px)); transform: translateX(-50%); flex-direction: row; max-width: calc(100% - 24px); overflow-x: auto; border-radius: 18px; scrollbar-width: none; }
  .dock hr { width: 1px; height: auto; margin: 4px 4px; }
  .dock button { flex: 0 0 auto; width: 40px; height: 40px; }
  .dock button .tip, .dock button.on::before { display: none; }
  .toolbox { left: 50%; top: auto; bottom: calc(76px + env(safe-area-inset-bottom, 0px)); transform: translateX(-50%); max-height: 64vh; }
  .brand span { display: none; }
  .topbar { gap: 8px; padding-left: 14px; }
  .verdict-pill .txt { display: none; }
}
@media (max-width: 560px) {
  .seg button { padding: 6px 9px; } .seg button .lbl { display: none; }
  .stage .hud label { display: none; } .stage .hud { left: 8px; right: 8px; top: 8px; gap: 6px; }
  .stage .hud .glass { padding: 6px; } .stage .hud select { max-width: 31vw; }
  .stage .help3d { display: none; } .stage .legend3d { bottom: 8px; left: 8px; padding: 6px 8px; }
}

/* ---------- Ampliaciones: cuenta, modal, horquillas, variables, colchón, diccionario, asistente ---------- */
.account { position: relative; }
.acc-btn { width: 36px; height: 36px; border-radius: 50%; border: 1px solid var(--line-strong); background: var(--raise); color: var(--gold-soft); font-weight: 700; font-size: 0.8rem; display: grid; place-items: center; }
.acc-menu { position: absolute; right: 0; top: 46px; width: 270px; padding: 10px; border-radius: 14px; display: grid; gap: 2px; background: rgba(14, 17, 24, 0.97); z-index: 50; }
.acc-menu a, .acc-menu button { display: block; text-align: left; padding: 8px 10px; border-radius: 8px; color: var(--fg); text-decoration: none; background: none; border: 0; font-size: var(--t-s); }
.acc-menu a:hover, .acc-menu button:hover { background: var(--raise); }
.acc-head { display: grid; gap: 2px; padding: 6px 10px 10px; border-bottom: 1px solid var(--line); margin-bottom: 6px; }
.acc-head small { color: var(--muted); font-size: var(--t-xs); }
.acc-head .demo { color: var(--warn); }
.dock .dbtn { position: relative; width: 42px; height: 42px; border-radius: 12px; color: var(--muted); display: grid; place-items: center; }
.dock .dbtn svg { width: 20px; height: 20px; stroke: currentColor; fill: none; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.dock .dbtn:hover { background: var(--raise); color: var(--gold-soft); }
.dock .dbtn .tip { position: absolute; left: 54px; top: 50%; transform: translate(-6px, -50%); opacity: 0; pointer-events: none; padding: 6px 10px; border-radius: 8px; background: var(--panel-solid); border: 1px solid var(--line); color: var(--fg); font-size: var(--t-xs); white-space: nowrap; transition: opacity 0.15s, transform 0.15s; }
.dock .dbtn:hover .tip { opacity: 1; transform: translate(0, -50%); }
.modal-back { position: fixed; inset: 0; z-index: 70; background: rgba(6, 7, 9, 0.72); backdrop-filter: blur(4px); display: grid; place-items: center; padding: 16px; }
.modal { position: relative; width: min(820px, 100%); max-height: calc(100vh - 32px); overflow: auto; padding: clamp(20px, 4vw, 36px); border-radius: 18px; background: rgba(14, 17, 24, 0.98); border: 1px solid var(--line-strong); box-shadow: 0 40px 120px -30px #000; animation: pop 0.2s ease-out; }
.modal > .close { position: absolute; right: 14px; top: 14px; }
.modal h4 { margin-top: 18px; margin-bottom: 6px; }
.modal ul, .modal ol { margin: 4px 0 8px; padding-left: 20px; color: var(--muted); }
.modal li { margin: 3px 0; }
.modal p { color: var(--fg); }
.bands { display: grid; gap: 6px; }
.band { display: grid; grid-template-columns: 70px minmax(0, 1fr) auto; gap: 12px; align-items: center; padding: 10px 14px; border-radius: 10px; border: 1px solid var(--line); background: rgba(255, 255, 255, 0.02); font-family: var(--font-data); font-size: var(--t-s); }
.band b { font-family: var(--font-body); }
.band.ok b { color: var(--go); } .band.warn b { color: var(--warn); } .band.stop b { color: var(--stop); }
.band.here { border-color: currentColor; background: rgba(255, 255, 255, 0.05); }
.band.ok.here { color: var(--go); } .band.warn.here { color: var(--warn); } .band.stop.here { color: var(--stop); }
.band.here span { color: var(--fg); }
.band em { font-style: normal; font-size: var(--t-xs); font-family: var(--font-body); }
.chips { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 4px; }
.vchip { border: 1px solid var(--line-strong); background: rgba(201, 242, 77, 0.07); color: var(--gold-soft); padding: 5px 10px; border-radius: 999px; font-size: var(--t-xs); cursor: pointer; }
.vchip b { color: var(--fg); font-family: var(--font-data); font-weight: 500; }
.vchip.ind { border-color: rgba(57, 135, 229, 0.45); background: rgba(57, 135, 229, 0.08); color: #9cc4f5; }
.vchip.static { cursor: default; color: var(--muted); border-color: var(--line); background: none; }
.vchip:hover:not(.static) { filter: brightness(1.25); }
table.mini { width: 100%; font-size: var(--t-s); }
table.mini td { padding: 6px 8px; }
.fdesc { margin: 4px 0 0; font-size: var(--t-xs); color: var(--faint); line-height: 1.45; }
.human-fields { grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); }
.field.flash, .term.flash, .glass.flash { animation: flash 1.6s ease-out; border-radius: 10px; }
@keyframes flash { 0%, 30% { box-shadow: 0 0 0 2px var(--gold), 0 0 30px rgba(201, 242, 77, 0.35); background: rgba(201, 242, 77, 0.08); } 100% { box-shadow: 0 0 0 0 transparent; background: none; } }
.howto { margin: 10px 0 0; padding-left: 20px; display: grid; gap: 6px; color: var(--muted); }
.howto b { color: var(--fg); }
.how { padding: 18px 22px; }
.scen-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr)); gap: 10px; }
.scen { text-align: left; padding: 14px; color: var(--fg); cursor: pointer; display: grid; gap: 6px; align-content: start; }
.scen p { margin: 0; }
.scen.current { border-color: var(--gold); }
.scen:hover { border-color: var(--line-strong); }
.more { color: var(--gold); font-size: var(--t-xs); }
.cushion-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 140px), 1fr)); gap: 10px; margin: 10px 0; }
.cushion-stats div { padding: 10px 12px; border-radius: 10px; border: 1px solid var(--line); display: grid; gap: 2px; }
.cushion-stats span { font-size: var(--t-xs); color: var(--muted); text-transform: uppercase; letter-spacing: 0.08em; }
.cushion-stats b { font-family: var(--font-data); font-size: 1.05rem; font-weight: 500; }
.cushion-stats small { color: var(--faint); font-size: var(--t-xs); }
.mgrid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 150px), 1fr)); gap: 8px; }
.mgrid div { padding: 10px 12px; border-radius: 10px; border: 1px solid var(--line); display: grid; gap: 2px; }
.mgrid span { font-size: var(--t-xs); color: var(--muted); }
.mgrid b { font-family: var(--font-data); font-weight: 500; }
.policy { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 12px; padding: 8px 0; border-bottom: 1px solid rgba(201, 242, 77, 0.08); align-items: start; }
.policy p { margin: 2px 0; }
th.proj, td.proj { color: var(--muted); background: rgba(201, 242, 77, 0.04); }
th.proj small { font-size: 0.65rem; }
.dotc { display: inline-block; width: 8px; height: 8px; border-radius: 50%; margin-right: 6px; }
.dotc.ok { background: var(--go); } .dotc.warn { background: var(--warn); } .dotc.stop { background: var(--stop); }
table.guide td:nth-child(n+3):not(:last-child) { font-size: 0.8rem; }
.gloss { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 340px), 1fr)); gap: 12px; }
.term { padding: 18px; display: grid; gap: 8px; align-content: start; }
.term h3 { margin: 0; font-family: var(--font-display); letter-spacing: -0.02em; font-weight: 700; font-size: 1.2rem; color: var(--gold-soft); }
.term p { margin: 0; }
.term .formula { font-family: var(--font-data); font-size: var(--t-xs); color: var(--faint); }
.tag { font-size: var(--t-xs); color: var(--muted); border: 1px solid var(--line); border-radius: 999px; padding: 2px 8px; }
.flow { max-width: 560px; }
.mfrow { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr) 54px; gap: 10px; align-items: center; font-size: var(--t-s); }
.mfrow .track { height: 6px; border-radius: 3px; background: rgba(255, 255, 255, 0.06); overflow: hidden; }
.mfrow .track b { display: block; height: 100%; background: var(--gold); border-radius: 3px; }
.mfrow .num { text-align: right; }
/* Asistente */
.assistant { position: fixed; z-index: 55; right: 18px; bottom: calc(18px + env(safe-area-inset-bottom, 0px)); }
.as-fab { display: flex; align-items: center; gap: 8px; padding: 12px 18px; border-radius: 999px; border: 1px solid var(--gold); background: var(--gold); color: var(--abyss); font-weight: 700; box-shadow: 0 16px 40px -12px rgba(201, 242, 77, 0.55); }
.as-fab svg, .as-mic svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.as-panel { position: absolute; right: 0; bottom: 60px; width: min(400px, calc(100vw - 32px)); height: min(600px, calc(100vh - 120px)); display: grid; grid-template-rows: auto minmax(0, 1fr) auto auto auto auto; gap: 8px; padding: 14px; border-radius: 18px; background: rgba(14, 17, 24, 0.97); border-color: var(--line-strong); }
.as-panel header { display: flex; justify-content: space-between; align-items: center; }
.as-panel header small { display: block; color: var(--muted); font-size: var(--t-xs); }
.as-log { overflow: auto; display: grid; gap: 8px; align-content: start; padding-right: 4px; }
.msg { padding: 10px 12px; border-radius: 12px; font-size: var(--t-s); line-height: 1.5; max-width: 92%; }
.msg.user { justify-self: end; background: rgba(201, 242, 77, 0.14); border: 1px solid var(--line-strong); }
.msg.bot { justify-self: start; background: rgba(255, 255, 255, 0.04); border: 1px solid var(--line); }
.msg.note { justify-self: center; font-size: var(--t-xs); color: var(--warn); }
.thinking { color: var(--muted); font-style: italic; }
.as-sugs { display: flex; gap: 6px; overflow-x: auto; scrollbar-width: none; padding-bottom: 2px; }
.as-sugs .chip { white-space: nowrap; font-size: var(--t-xs); }
#asForm { display: flex; gap: 6px; }
#asForm .input { flex: 1; min-width: 0; }
.as-mic.on { background: var(--stop); color: #fff; border-color: var(--stop); animation: pulse 1.2s infinite; }
@keyframes pulse { 50% { box-shadow: 0 0 0 8px rgba(224, 72, 72, 0.2); } }
.as-speak { display: flex; align-items: center; gap: 8px; font-size: var(--t-xs); color: var(--muted); }
.switch[aria-pressed="true"] { background: rgba(201, 242, 77, 0.2); }
.switch[aria-pressed="true"]::after { transform: translateX(16px); background: var(--gold); }
@media (max-width: 899px) { .assistant { bottom: calc(76px + env(safe-area-inset-bottom, 0px)); right: 12px; } .as-fab span { display: none; } .as-fab { padding: 12px; } }

@media print {
  body { background: #fff; }
  body > *:not(.report-overlay) { display: none !important; }
  .assistant { display: none !important; }
  .report-overlay { position: static; background: none; padding: 0; overflow: visible; }
  .report-bar { display: none; }
  .paper { box-shadow: none; width: 100%; padding: 0; }
}

/* ---------- Informes profesionales ---------- */
.report-bar .rb-title { font-family: var(--font-display); letter-spacing: -0.02em; font-weight: 700; font-size: 1.1rem; color: var(--gold-soft); }
.rp-hint { width: min(900px, 100%); margin: 10px auto 0; text-align: center; font-size: var(--t-xs); color: var(--muted); }
.paper.rp {
  /* Los componentes copiados de la aplicación se repintan en claro redefiniendo los tokens dentro del documento */
  --fg: #05060a; --muted: #4f5560; --faint: #7d828c; --line: #d9d6cc; --line-strong: #6e7d14; --panel: #fbfaf7; --panel-solid: #fbfaf7; --raise: #ecebe3;
  --gold: #6e7d14; --gold-soft: #55610f; --abyss: #f5f3ee;
  background: #f5f3ee; color: var(--fg); padding: 0 0 36px; border-radius: 4px; overflow: hidden; font-size: 14.5px; line-height: 1.6;
  box-shadow: 0 40px 100px -30px #000, 0 0 0 1px rgba(200, 196, 182, 0.5);
}
.paper.rp > * { margin-left: clamp(18px, 6vw, 56px); margin-right: clamp(18px, 6vw, 56px); }
.paper.rp > .rp-cover { margin: 0 0 26px; }
.rp-cover { background: #f5f3ee; border-bottom: 1px solid #d9d6cc; }
.rp-brand { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 14px clamp(18px, 6vw, 56px); background: #05060a; color: #c9f24d; }
.rp-brand b { font-family: var(--font-display); font-size: 1.35rem; font-weight: 700; letter-spacing: 0.02em; }
.rp-brand span { font-size: 0.68rem; letter-spacing: 0.2em; text-transform: uppercase; color: #c8c4b6; }
.rp-cover-body { padding: 34px clamp(18px, 6vw, 56px) 26px; }
.rp-kicker { font-size: 0.7rem; letter-spacing: 0.2em; text-transform: uppercase; color: #6e7d14; font-weight: 600; }
.paper.rp h1 { font-family: var(--font-display); letter-spacing: -0.02em; font-weight: 700; font-size: clamp(2rem, 4.6vw, 2.9rem); line-height: 1.1; color: #0b0d13; margin: 10px 0 8px; text-wrap: balance; }
.rp-subtitle { color: #4f5560; margin: 0 0 18px; max-width: 70ch; }
.rp-meta { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 0; margin: 0; border-top: 2px solid #0b0d13; }
.rp-meta div { padding: 10px 14px 0 0; }
.rp-meta dt { font-size: 0.64rem; letter-spacing: 0.14em; text-transform: uppercase; color: #7d828c; }
.rp-meta dd { margin: 2px 0 0; font-weight: 600; color: #14171e; font-size: 0.86rem; }
.rp-summary { padding: 18px 22px; background: #ecebe3; border-left: 4px solid #8a9a2a; border-radius: 0 6px 6px 0; margin-bottom: 8px; }
.rp-summary.rp-s-ok { border-left-color: #1d8a37; } .rp-summary.rp-s-warn { border-left-color: #c48a00; } .rp-summary.rp-s-stop { border-left-color: #c02f2f; }
.rp-summary p { margin: 8px 0 0; }
.paper.rp h3.rp-verdict { font-family: var(--font-display); letter-spacing: -0.02em; font-weight: 700; font-size: 1.6rem; margin: 6px 0 0; color: #0b0d13; }
.rp-score { display: flex; align-items: baseline; gap: 6px; margin-top: 6px; }
.rp-score b { font-family: var(--font-display); letter-spacing: -0.02em; font-size: 2.6rem; font-weight: 700; color: #0b0d13; line-height: 1; }
.rp-score span { color: #7d828c; }
.paper.rp h2 { display: flex; align-items: baseline; gap: 12px; font-family: var(--font-display); letter-spacing: -0.02em; font-weight: 700; font-size: 1.5rem; color: #0b0d13; margin-top: 34px; padding-top: 14px; border-top: 1px solid #d9d6cc; break-after: avoid; page-break-after: avoid; }
.rp-n { font-family: var(--font-data); font-size: 0.78rem; color: #fff; background: #0b0d13; border-radius: 4px; padding: 2px 7px; letter-spacing: 0.06em; transform: translateY(-3px); }
.paper.rp h3 { font-family: var(--font-body); font-weight: 700; font-size: 1rem; color: #0b0d13; margin: 20px 0 6px; }
.paper.rp h4 { color: #6e7d14; }
.rp-lede { color: #4f5560; font-size: 0.88rem; margin-top: -4px; }
.rp-muted { color: #7d828c; }
.paper.rp p, .paper.rp li { max-width: 78ch; }
.rp-kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 170px), 1fr)); gap: 10px; margin-top: 10px; }
.rp-kpi { border: 1px solid #d9d6cc; border-left: 3px solid #c8c4b6; border-radius: 6px; padding: 10px 12px; display: grid; gap: 3px; align-content: start; break-inside: avoid; }
.rp-kpi.rp-k-ok { border-left-color: #1d8a37; } .rp-kpi.rp-k-warn { border-left-color: #c48a00; } .rp-kpi.rp-k-stop { border-left-color: #c02f2f; }
.rp-kpi span { font-size: 0.66rem; letter-spacing: 0.1em; text-transform: uppercase; color: #7d828c; }
.rp-kpi b { font-family: var(--font-data); font-size: 1.15rem; font-weight: 500; color: #0b0d13; }
.rp-kpi .rp-pill { width: fit-content; }
.rp-kpi small { color: #4f5560; font-size: 0.75rem; }
.rp-pill { display: inline-block; padding: 1px 9px; border-radius: 999px; font-size: 0.7rem; font-weight: 700; letter-spacing: 0.02em; border: 1px solid; vertical-align: 2px; }
.rp-pill.rp-ok { color: #17692b; background: #e7f4ea; border-color: #b6dcc0; }
.rp-pill.rp-warn { color: #7d5800; background: #f3f0e2; border-color: #c9d68a; }
.rp-pill.rp-stop { color: #9b2222; background: #fbe7e7; border-color: #efbcbc; }
.rp-tw, .paper.rp .table-wrap { overflow-x: auto; margin-top: 10px; }
.paper.rp table { width: 100%; border-collapse: collapse; font-size: 0.8rem; margin-top: 6px; }
.paper.rp thead th { background: #0b0d13; color: #e1f7a1; font-size: 0.66rem; letter-spacing: 0.1em; text-transform: uppercase; font-weight: 600; padding: 8px 10px; border: 0; text-align: left; white-space: nowrap; }
.paper.rp td { padding: 7px 10px; border-bottom: 1px solid #e6e4dc; color: #14171e; vertical-align: top; text-align: left; white-space: normal; font-family: var(--font-body); }
.paper.rp tbody tr:nth-child(even) td { background: #fbfaf7; }
.paper.rp tr { break-inside: avoid; page-break-inside: avoid; }
.paper.rp .rp-num, .paper.rp td.rp-num { text-align: right; font-family: var(--font-data); font-variant-numeric: tabular-nums; white-space: nowrap; }
.paper.rp td.rp-empty { text-align: center; color: #7d828c; }
.rp-callout { border: 1px solid #d9d6cc; background: #fbfaf7; border-radius: 6px; padding: 12px 14px; margin-top: 10px; }
.rp-steps { padding-left: 20px; display: grid; gap: 8px; }
.rp-steps li { padding-left: 4px; }
.rp-steps .rp-muted { display: block; font-size: 0.82rem; }
.rp-block { margin-top: 16px; break-inside: auto; }
.rp-block .grid, .rp-block .stack { display: grid; gap: 10px; }
.rp-block .glass, .rp-block .c, .rp-block .risk, .rp-block .cq, .rp-block .dq { background: #fff; border-color: #d9d6cc; box-shadow: none; backdrop-filter: none; }
.rp-block svg { max-width: 100%; height: auto; max-height: 340px; }
.rp-block svg text { fill: #4f5560; }
.rp-block .note { color: #4f5560; border-left-color: #8a9a2a; }
.rp-block .state { border: 1px solid; }
.paper.rp .verdict, .paper.rp .cols div { background: #fbfaf7; border-color: #d9d6cc; }
.rp-foot { margin-top: 40px !important; padding-top: 12px; border-top: 2px solid #0b0d13; display: grid; gap: 4px; font-size: 0.72rem; color: #7d828c; }
.rp-foot span:first-child { font-weight: 600; color: #4f5560; }
@media print {
  @page { size: A4; margin: 14mm 12mm 16mm; }
  .rp-hint { display: none; }
  .paper.rp { box-shadow: none; font-size: 10.5pt; border-radius: 0; }
  .paper.rp > * { margin-left: 0; margin-right: 0; }
  .rp-brand, .paper.rp thead th, .rp-n, .rp-summary, .rp-pill, .paper.rp tbody tr:nth-child(even) td { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  .rp-cover { break-after: avoid; }
}
/* Informe 360: barras de madurez */
.rp-bars { display: grid; gap: 6px; margin: 8px 0 14px; }
.rp-bar { display: grid; grid-template-columns: 120px minmax(0, 1fr) 36px; gap: 10px; align-items: center; font-size: 0.85rem; }
.rp-bar i { height: 8px; border-radius: 4px; background: #e6e4dc; overflow: hidden; display: block; }
.rp-bar i b { display: block; height: 100%; background: linear-gradient(90deg, #b88a32, #c9f24d); }
.rp-bar em { font-style: normal; font-family: var(--font-data); text-align: right; }

/* Selector de empresa o sociedad */
.account { display: flex; align-items: center; gap: 8px; }
.emp { position: relative; }
.emp-btn { display: flex; align-items: center; gap: 8px; max-width: 230px; height: 36px; padding: 0 12px 0 10px; border-radius: 999px; border: 1px solid var(--line-strong); background: rgba(201, 242, 77, 0.06); color: var(--fg); font-size: var(--t-s); }
.emp-btn i, .emp-it i { width: 10px; height: 10px; border-radius: 50%; flex: 0 0 auto; box-shadow: 0 0 8px currentColor; }
.emp-btn span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
/* Nombre cortado por el medio (P.nombreCortado): el principio lleva los puntos y el final se ve siempre */
.nc { display: flex; min-width: 0; } .nc .nc-a { flex: 0 1000 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: pre; } .nc .nc-z { flex: none; overflow: visible; white-space: pre; }
.emp-btn b { color: var(--gold); font-weight: 400; font-size: 0.7rem; }
.emp-btn:hover { border-color: var(--gold); }
.emp-menu { position: absolute; right: 0; top: calc(100% + 8px); width: min(330px, calc(100vw - 24px)); z-index: 90; padding: 6px 0; background: var(--panel-solid, #0b0d13); border-radius: 14px; box-shadow: var(--shadow); }
.emp-list { display: grid; max-height: 50vh; overflow-y: auto; }
.emp-it { display: flex; align-items: center; gap: 2px; padding: 0 8px 0 4px; }
.emp-it > button[data-emp] { flex: 1; display: flex; gap: 10px; align-items: center; text-align: left; padding: 8px; border: 0; background: none; color: var(--fg); border-radius: 10px; min-width: 0; }
.emp-it > button[data-emp]:hover { background: var(--raise); }
.emp-it.on > button[data-emp] { background: rgba(201, 242, 77, 0.1); }
.emp-it span { display: grid; min-width: 0; } .emp-it span b { font-weight: 600; font-size: var(--t-s); overflow-wrap: anywhere; } .emp-it span small { color: var(--muted); font-size: var(--t-xs); }
.emp-it .icon-btn { width: 26px; height: 26px; font-size: 0.8rem; }
.emp-new { padding: 10px 12px; border-top: 1px solid var(--line); gap: 6px; }
.emp-new .row { gap: 6px; flex-wrap: nowrap; } .emp-new select { flex: 1; }
.emp-group { display: block; padding: 10px 14px; border-top: 1px solid var(--line); color: var(--gold-soft); text-decoration: none; font-size: var(--t-s); }
.emp-group:hover { background: var(--raise); }
@media (max-width: 760px) { .emp-btn { max-width: 170px; padding: 0 10px; } .emp-btn b { display: none; } }

/* Ficha de la empresa en el puente de mando */
.id-card { margin-top: 18px; padding: 16px 18px; display: grid; gap: 12px; border: 1px solid var(--line-strong); }
.id-card label > span { display: block; font-size: var(--t-xs); text-transform: uppercase; letter-spacing: 0.1em; color: var(--muted); margin-bottom: 4px; }
.id-card .id-name input { width: 100%; background: transparent; border: 0; border-bottom: 1px solid var(--line-strong); color: var(--fg); font-family: var(--font-display); letter-spacing: -0.02em; font-weight: 700; font-size: clamp(1.5rem, 3vw, 2.1rem); padding: 2px 0 6px; }
.id-card .id-name input:focus { outline: none; border-bottom-color: var(--gold); }
.id-card.vacia .id-name input { border-bottom: 2px dashed var(--gold); }
.id-card .id-name input::placeholder { color: var(--gold-soft); opacity: 0.75; }
.id-grid { display: grid; grid-template-columns: 1.3fr 1fr 1fr; gap: 10px; }
@media (max-width: 700px) { .id-grid { grid-template-columns: 1fr; } }
.id-grid input, .id-grid select { width: 100%; background: var(--panel); border: 1px solid var(--line); border-radius: 10px; color: var(--fg); padding: 8px 10px; font: inherit; font-size: var(--t-s); }
.id-ejemplo { margin: 0; padding: 8px 12px; border-radius: 10px; background: rgba(250, 178, 25, 0.1); border: 1px solid rgba(250, 178, 25, 0.35); }
.id-actions { flex-wrap: wrap; gap: 8px; }
.field-sel { display: grid; gap: 4px; }
.docs-need ul { margin: 6px 0; padding-left: 18px; }
body.con-lineas .field[data-p="inversion.vidaUtil"] { display: none; }

/* Preguntas guiadas */
.qz-prog { height: 6px; border-radius: 4px; background: var(--line); overflow: hidden; margin-top: 10px; }
.qz-prog b { display: block; height: 100%; background: var(--gold); transition: width 0.3s; }
.qz-q { font-family: var(--font-display); letter-spacing: -0.02em; font-weight: 700; font-size: 1.5rem; margin: 14px 0 6px; line-height: 1.25; }
.qz-in { width: 100%; font-size: 1.1rem; padding: 10px 12px; }
.qz-num { max-width: 260px; font-family: var(--font-data); }
.qz-in.err { border-color: var(--stop); }
.qz-ops { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.qz-ops .chip { padding: 8px 14px; }
.qz-marca { color: var(--muted); margin-top: 10px; }
.qz-msg { margin: 8px 0 0; padding: 8px 12px; border-radius: 10px; background: rgba(201, 242, 77, 0.08); border: 1px solid var(--line); font-size: var(--t-s); }
.qz-foto { display: grid; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); gap: 8px; margin-top: 12px; }
.qz-foto > div { padding: 10px 12px; border-radius: 10px; border: 1px solid var(--line); background: var(--panel); display: grid; gap: 2px; }
.qz-foto span { font-size: var(--t-xs); color: var(--muted); text-transform: uppercase; letter-spacing: 0.08em; }
.qz-foto b { font-family: var(--font-data); font-size: 1.15rem; }
.qz-foto small { color: var(--faint); font-size: var(--t-xs); }

/* Líneas de la inversión */
.ln-tab input.input, .ln-tab select.input { padding: 5px 8px; font-size: var(--t-s); }
.ln-tab input.num { text-align: right; font-family: var(--font-data); }
.ln-tab tr.off td { opacity: 0.45; }
.ln-tab tr.tot td { border-top: 1px solid var(--line-strong); }
.btn.small { padding: 4px 10px; font-size: var(--t-xs); }
.lever-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 10px; }

/* Punto de equilibrio y paisaje guiado */
.hz-h3 { font-family: var(--font-display); letter-spacing: -0.02em; font-size: 1.5rem; font-weight: 700; margin-bottom: 0; }
.pe-kpis { display: grid; gap: 8px; }
.pe-kpis > div { padding: 8px 12px; border: 1px solid var(--line); border-radius: 10px; background: var(--panel); display: grid; gap: 2px; }
.pe-kpis span { font-size: var(--t-xs); color: var(--muted); text-transform: uppercase; letter-spacing: 0.08em; }
.pe-kpis b { font-family: var(--font-data); font-size: 1.2rem; }
.pe-kpis b small { font-size: 0.7rem; color: var(--muted); margin-left: 2px; }
.pe-kpis em { font-style: normal; color: var(--faint); font-size: var(--t-xs); }
.pe-mueve { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 10px 18px; align-items: end; padding-top: 10px; border-top: 1px solid var(--line); }
.pe-mueve > span { grid-column: 1 / -1; }
.pe-mueve label { display: grid; gap: 4px; font-size: var(--t-s); }
.pe-mueve label b { font-family: var(--font-data); color: var(--gold-soft); font-weight: 500; }
.hz-preg { display: flex; flex-wrap: wrap; gap: 8px; }
.hz-q { border: 1px solid var(--line-strong); background: var(--panel); color: var(--fg); border-radius: 999px; padding: 8px 14px; font: inherit; font-size: var(--t-s); cursor: pointer; }
.hz-q[aria-pressed="true"] { background: var(--gold); color: #1a1408; border-color: var(--gold); }
.hz-q:hover { border-color: var(--gold); }
.struct .score small { font-size: 0.62rem; color: var(--muted); margin-left: 3px; font-family: var(--font-body); }
.mgrid small { font-size: var(--t-xs); color: var(--faint); line-height: 1.35; }
.info-i { display: inline-grid; place-items: center; width: 16px; height: 16px; border-radius: 50%; border: 1px solid var(--line-strong); background: transparent; color: var(--gold-soft); font-size: 10px; cursor: pointer; padding: 0; vertical-align: 1px; }
.size { cursor: pointer; text-align: left; font: inherit; color: inherit; }
.size:hover { border-color: var(--gold); }
.size .mas { font-size: var(--t-xs); color: var(--gold-soft); margin-top: 6px; }
.target-tile .ref { font-size: var(--t-xs); color: var(--muted); margin-top: 6px; line-height: 1.4; }
.pe-grid { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); gap: 18px; align-items: start; }
@media (max-width: 820px) { .pe-grid { grid-template-columns: 1fr; } }
.fe-ctl { display: flex; flex-wrap: wrap; gap: 10px 20px; align-items: center; }
.fe-ctl label { display: flex; gap: 8px; align-items: center; }
.fe-ctl select { padding: 4px 8px; }
.fe-ctl b { font-family: var(--font-data); color: var(--gold-soft); }

/* Ficha de empresa (ventana) */
.ef-back { position: fixed; inset: 0; z-index: 200; background: rgba(8, 9, 13, 0.72); backdrop-filter: blur(6px); display: grid; place-items: start center; overflow-y: auto; padding: 4vh 12px; }
.ef-card { position: relative; width: min(720px, 100%); padding: 22px 22px 18px; display: grid; gap: 12px; background: var(--panel-solid, #0b0d13); border: 1px solid var(--line-strong); border-radius: 18px; }
.ef-card h4 { margin: 6px 0 0; }
.ef-x { position: absolute; top: 12px; right: 12px; }
.ef-card label > span { display: block; font-size: var(--t-xs); text-transform: uppercase; letter-spacing: 0.08em; color: var(--muted); margin-bottom: 4px; }
.ef-name input { width: 100%; background: transparent; border: 0; border-bottom: 1px solid var(--line-strong); color: var(--fg); font-family: var(--font-display); letter-spacing: -0.02em; font-weight: 700; font-size: 1.6rem; padding: 2px 0 6px; }
.ef-name input:focus { outline: none; border-bottom-color: var(--gold); }
.ef-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 10px 14px; }
.ef-grid .input { width: 100%; }
.ef-wide { grid-column: 1 / -1; }
.ef-socios { display: grid; gap: 6px; }
.ef-socio { display: grid; grid-template-columns: 1fr 90px auto; gap: 6px; align-items: center; }
.ef-datos { display: grid; gap: 8px; }
.ef-modo { display: flex; gap: 10px; align-items: flex-start; padding: 10px 12px; border: 1px solid var(--line, rgba(127,127,127,.3)); border-radius: 10px; cursor: pointer; }
.ef-modo:has(input:checked) { border-color: var(--gold, #c9f24d); background: color-mix(in srgb, var(--gold, #c9f24d) 10%, transparent); }
.ef-modo span { display: grid; gap: 2px; }
.ef-modo small { color: var(--muted, inherit); opacity: .85; }

/* Mapa de empresas */
.em-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; flex-wrap: wrap; }
.em-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 12px; }
.em-card { display: grid; gap: 5px; align-content: start; padding: 14px; border-radius: 14px; border: 1px solid var(--line); background: var(--panel); text-align: left; color: var(--fg); font: inherit; }
.em-card.on { border-color: var(--gold); box-shadow: 0 0 0 1px rgba(201, 242, 77, 0.35), 0 10px 30px rgba(0, 0, 0, 0.3); }
.em-top { display: flex; align-items: center; gap: 8px; }
.em-top i { width: 11px; height: 11px; border-radius: 50%; flex: 0 0 auto; box-shadow: 0 0 10px currentColor; }
.em-top b { font-family: var(--font-display); letter-spacing: -0.02em; font-size: 1.15rem; font-weight: 700; }
.em-act { margin-left: auto; font-size: var(--t-xs); color: var(--gold); border: 1px solid var(--gold); border-radius: 999px; padding: 1px 8px; }
.em-meta { font-size: var(--t-s); color: var(--fg); }
.em-meta.small { font-size: var(--t-xs); color: var(--muted); }
.em-socios { display: flex; height: 7px; border-radius: 4px; overflow: hidden; background: var(--line); margin-top: 4px; }
.em-prog { height: 3px; border-radius: 2px; background: var(--line); overflow: hidden; margin-top: 6px; }
.em-prog span { display: block; height: 100%; background: var(--gold); }
.em-btns { display: flex; gap: 6px; align-items: center; margin-top: 6px; flex-wrap: wrap; }
.em-btns .icon-btn { margin-left: auto; }
.em-new { place-items: center; justify-content: center; min-height: 140px; border-style: dashed; cursor: pointer; text-align: center; }
.em-new b { font-size: 2rem; color: var(--gold); font-weight: 300; }
.em-new:hover { border-color: var(--gold); }
.em-arbol { display: grid; justify-items: center; gap: 0; }
.em-raiz { width: min(320px, 100%); position: relative; padding-bottom: 20px; }
.em-raiz::after { content: ''; position: absolute; left: 50%; bottom: 0; height: 20px; border-left: 1px solid var(--line-strong); }
.em-hijos { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; border-top: 1px solid var(--line-strong); padding-top: 18px; width: fit-content; max-width: 100%; }
.em-hijos .em-card { width: min(260px, 100%); position: relative; }
.em-hijos .em-card::before { content: ''; position: absolute; left: 50%; top: -19px; height: 18px; border-left: 1px solid var(--line-strong); }

/* Mi plan */
.pl-card { width: min(980px, 100%); }
.pl-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 10px; }
.pl-it { display: grid; gap: 6px; align-content: start; padding: 14px; border-radius: 14px; border: 1px solid var(--line); background: var(--panel); }
.pl-it.on { border-color: var(--gold); }
.pl-it.dest { box-shadow: 0 0 0 2px var(--gold); }
.pl-it ul { margin: 0; padding-left: 16px; }
.pl-precio { font-family: var(--font-data); font-size: 1.4rem; }
.pl-precio small { font-size: 0.7rem; color: var(--muted); margin-left: 3px; }
.acc-menu button[data-planes] { color: var(--gold-soft); }
.del-card { width: min(560px, 100%); border-color: rgba(224, 72, 72, 0.5); }
.del-t { margin: 0; font-family: var(--font-display); letter-spacing: -0.02em; font-weight: 700; font-size: 1.45rem; }
.del-card ul { margin: 0; padding-left: 18px; }
.btn.del-btn { border-color: var(--stop); color: var(--stop); }
.btn.del-btn:hover { background: rgba(224, 72, 72, 0.12); }

/* ---------- Componentes de la identidad Business Avance ----------
   Kicker en mono, titular en Archivo con la segunda parte calada, filete lima bajo el titular,
   tarjetas de panel con relieve, tablas de filas y un único acento: la lima. */
.brand b { color: var(--fg); font-weight: 800; letter-spacing: -0.035em; }
.topbar { border-radius: 10px; }
.dock { border-radius: 12px; }
.btn { border-radius: 4px; letter-spacing: 0.01em; }
.btn.solid { color: #05060a; }
.kpi .v { font-family: var(--font-display); font-weight: 700; letter-spacing: -0.02em; }
.st-title::after, .lp-h2::after, .rm-head h2::after { content: ''; display: block; width: 48px; height: 3px; background: var(--gold); margin-top: 12px; }
.ef-card, .toolbox { box-shadow: var(--relieve), var(--shadow); }
a { color: var(--gold); }
/* El titular calado solo en tamaño grande: en miniaturas y textos pequeños la segunda parte va en lima macizo */
.rm-clone em, .rm-prev em, .rm-card em, .eco-fan em, .sp-card em, .toolbox em, .ef-card h2 em, .ef-card h3 em { color: var(--gold); -webkit-text-stroke: 0; }

/* ---------- Informes con consultor: versión para la empresa y cuaderno interno ---------- */
.ci-seg { margin-left: 0; }
.ci-seg button[aria-selected="true"] { background: var(--gold); color: #05060a; }
.paper.ci-interno { outline: 3px solid #b8432f; outline-offset: -3px; }
.ci-stamp { background: #b8432f; color: #fff; font: 600 0.72rem var(--font-data); letter-spacing: 0.14em; text-transform: uppercase; text-align: center; padding: 6px 10px; }
.ci-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); gap: 10px 14px; }
.ci-grid1 { display: grid; gap: 12px; }
.ci-grid label, .ci-grid1 label, .ci-l { display: grid; gap: 4px; font-size: 0.78rem; color: #55534c; font-weight: 600; }
.ci-in { width: 100%; font: 400 0.9rem var(--font-body); color: #15140f; background: #fffefa; border: 1px solid #d9d6cc; border-radius: 6px; padding: 7px 9px; resize: vertical; }
.ci-in:focus { outline: 2px solid #6e7d14; outline-offset: 1px; }
.ci-ses td { vertical-align: top; }
.ci-ses td:first-child { min-width: 130px; }
.ci-del { border: 0; background: transparent; font-size: 1.2rem; color: #8a877d; cursor: pointer; }
.ci-add { margin-top: 8px; border: 1px dashed #b5b19f; background: transparent; color: #4a4838; border-radius: 6px; padding: 7px 12px; font: 600 0.82rem var(--font-body); cursor: pointer; }
.ci-checks { list-style: none; padding: 0; margin: 0; display: grid; gap: 6px; }
.ci-checks label { display: flex; gap: 8px; align-items: flex-start; font-weight: 400; color: #15140f; }
.ci-checks input { margin-top: 3px; accent-color: #6e7d14; }
@media print { .ci-del, .ci-add { display: none; } .ci-in { border-color: #e4e1d6; background: transparent; } }

/* ---------- Portada de cada mundo (misma cara que el puente de mando) ---------- */
.hm-hero { padding-top: 6px; margin-bottom: 4px; }
.hm-hero h1 { font-size: clamp(2.2rem, 5vw, 3.9rem); }
.hm-emp { display: grid; gap: 2px; }
.hm-emp span, .hm-datos span { font-size: var(--t-xs); text-transform: uppercase; letter-spacing: 0.1em; color: var(--muted); }
.hm-emp b { font-family: var(--font-display); font-weight: 700; letter-spacing: -0.02em; font-size: clamp(1.4rem, 3vw, 1.9rem); border-bottom: 1px solid var(--line-strong); padding-bottom: 6px; }
.hm-emp small { color: var(--muted); }
.hm-datos { display: grid; grid-template-columns: repeat(auto-fit, minmax(110px, 1fr)); gap: 10px; }
.hm-datos b { display: block; font: 500 1.15rem var(--font-data); color: var(--fg); margin-top: 2px; }
.hm-bars { display: flex; align-items: flex-end; gap: 3px; height: 30px; margin-top: 8px; }
.hm-bars i { flex: 1; border-radius: 2px 2px 0 0; opacity: 0.85; min-width: 3px; }
.hm-kpis { margin-bottom: 18px; }
/* Cabecera de cada módulo: titular grande y calado, con brillo de marca */
.st-head { position: relative; overflow: hidden; }
.st-head::before { content: ''; position: absolute; inset: -40% auto auto -10%; width: 60%; height: 180%; background: radial-gradient(closest-side, rgba(201, 242, 77, 0.10), transparent); pointer-events: none; }
.st-head .st-title { font-size: clamp(2rem, 4.4vw, 3.1rem); font-weight: 800; letter-spacing: -0.03em; }
.st-head .st-title em { font-style: normal; color: transparent; -webkit-text-stroke: 1.3px var(--gold); }

/* ---------- Membrete corporativo de los informes ---------- */
.rp-mb { display: inline-flex; align-items: center; gap: 12px; }
.rp-mb .rp-ba { font-family: var(--font-display); font-weight: 800; font-size: 1.05rem; letter-spacing: 0.04em; text-transform: uppercase; color: #f5f3ee; }
.rp-mb .rp-ba i { font-style: normal; color: #c9f24d; margin-left: 5px; }
.rp-mb .rp-sep { width: 1px; height: 20px; background: #3a4150; }
.rp-mb .rp-at { font-family: var(--font-display); font-weight: 700; font-size: 1.05rem; color: #c9f24d; letter-spacing: 0.01em; }
.rp-mb .rp-at i { font-style: normal; color: #f5f3ee; }
@media (max-width: 520px) { .rp-mb { gap: 8px; } .rp-mb .rp-ba, .rp-mb .rp-at { font-size: 0.85rem; } }
/* Lienzo fuera de pantalla para el PDF (ancho de A4 a 96 ppp) */
.pdf-host { position: fixed; left: -12000px; top: 0; width: 794px; z-index: -1; pointer-events: none; }
.paper.pdf-doc { width: 794px !important; max-width: none !important; margin: 0 !important; box-shadow: none !important; border-radius: 0 !important; font-size: 13px; }
.paper.pdf-doc > * { margin-left: 38px !important; margin-right: 38px !important; }
.paper.pdf-doc > .rp-cover, .paper.pdf-doc > .ci-stamp, .paper.pdf-doc.pdf-pag > * { margin-left: 0 !important; margin-right: 0 !important; }
.pdf-doc .rp-tw { overflow: visible !important; }
.pdf-campo { display: block; white-space: pre-wrap; border-bottom: 1px dotted #b5b19f; padding: 2px 0 4px; min-height: 1.4em; color: #15140f; }
span.pdf-campo { display: inline-block; min-width: 60px; }
/* Guía del consultor */
.ci-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
@media (max-width: 620px) { .ci-cols { grid-template-columns: 1fr; } }
.ci-pat { border: 1px solid #d9d6cc; border-left: 4px solid #6e7d14; background: #fbfaf7; padding: 10px 14px; margin-top: 10px; break-inside: avoid; }
.ci-pat-h span { display: block; font: 600 0.66rem var(--font-data); letter-spacing: 0.12em; text-transform: uppercase; color: #6e7d14; }
.ci-pat-h b { font-family: var(--font-display); font-size: 1rem; color: #0b0d13; }
.ci-pat dl { display: grid; grid-template-columns: 1fr 1fr; gap: 8px 16px; margin: 8px 0 6px; }
@media (max-width: 620px) { .ci-pat dl { grid-template-columns: 1fr; } }
.ci-pat dt { font: 600 0.64rem var(--font-data); letter-spacing: 0.1em; text-transform: uppercase; color: #7d828c; }
.ci-pat dd { margin: 2px 0 0; font-size: 0.86rem; color: #14171e; }
.ci-check { display: flex; gap: 8px; align-items: center; font-size: 0.85rem; }
.ci-check input { accent-color: #6e7d14; }

/* Enlace a la mesa de trabajo en las cabeceras: en pantallas estrechas queda en el menú de la cuenta */
@media (max-width: 900px) { .topbar .mesa-link { display: none; } }
.mesa-btn { white-space: nowrap; }
.mesa-marca { display: inline-block; margin-left: 6px; padding: 1px 8px; border-radius: 999px; font-size: 11px; color: var(--muted); border: 1px solid var(--line, rgba(127,127,127,.3)); white-space: nowrap; }
.mesa-marca:empty { display: none; }
.mesa-casilla { margin-left: 6px; white-space: nowrap; }

/* ---------- Manual en el lateral (js/manual-lateral.js) ---------- */
.ml-tab { position: fixed; right: 0; top: 50%; transform: translateY(-50%); z-index: 60; padding: 14px 7px; border: 1px solid var(--line-strong); border-right: 0; border-radius: 10px 0 0 10px; background: rgba(14, 17, 24, 0.92); color: var(--gold); font: 700 0.72rem var(--font-display); letter-spacing: 0.14em; text-transform: uppercase; cursor: pointer; backdrop-filter: blur(8px); box-shadow: -8px 0 24px -12px rgba(0, 0, 0, 0.8); transition: padding 0.15s, background 0.15s; }
.ml-tab span { writing-mode: vertical-rl; transform: rotate(180deg); display: block; }
.ml-tab:hover, .ml-tab:focus-visible { padding-right: 11px; background: var(--gold); color: var(--abyss); }
.ml-wrap.on .ml-tab { right: min(560px, 100vw); background: var(--gold); color: var(--abyss); }
.ml-panel { position: fixed; top: 0; right: 0; bottom: 0; z-index: 150; width: min(560px, 100vw); display: grid; grid-template-rows: auto minmax(0, 1fr); background: var(--panel-solid, #10131a); border-left: 1px solid var(--line-strong); box-shadow: -30px 0 60px -30px rgba(0, 0, 0, 0.9); animation: mlIn 0.18s ease-out; }
@keyframes mlIn { from { transform: translateX(30px); opacity: 0; } to { transform: none; opacity: 1; } }
.ml-head { display: grid; gap: 8px; padding: calc(12px + env(safe-area-inset-top, 0px)) 14px 12px; border-bottom: 1px solid var(--line); }
.ml-row { display: flex; gap: 8px; align-items: center; }
.ml-row .input { width: 100%; min-width: 0; }
.ml-sp { flex: 1; }
.ml-tt { font: 700 1.05rem var(--font-display); letter-spacing: -0.01em; }
.ml-tt span { color: var(--gold); }
.ml-panel iframe { width: 100%; height: 100%; border: 0; background: #05060a; }
@media (max-width: 620px) { .ml-wrap.on .ml-tab { display: none; } .ml-tab { padding: 10px 5px; font-size: 0.64rem; top: 62%; } }
@media print { .ml-wrap { display: none !important; } }

/* Asistente: botón de conversación por voz junto al botón del asistente */
.as-bar { display: flex; align-items: center; gap: 8px; justify-content: flex-end; }
.as-voz { width: 46px; height: 46px; border-radius: 50%; display: grid; place-items: center; border: 1px solid var(--line-strong); background: rgba(14, 17, 24, 0.92); color: var(--muted); cursor: pointer; backdrop-filter: blur(8px); box-shadow: 0 12px 30px -14px rgba(0, 0, 0, 0.9); }
.as-voz svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.as-voz:hover { color: var(--gold); border-color: var(--gold); }
.as-voz.on { color: #fff; background: #1d6b30; border-color: var(--go); }
.as-voz.oye { background: var(--go); box-shadow: 0 0 0 0 rgba(47, 178, 74, 0.6); animation: asOye 1.6s infinite; }
.as-voz.habla { background: var(--gold); color: var(--abyss); border-color: var(--gold); }
@keyframes asOye { 0% { box-shadow: 0 0 0 0 rgba(47, 178, 74, 0.55); } 70% { box-shadow: 0 0 0 12px rgba(47, 178, 74, 0); } 100% { box-shadow: 0 0 0 0 rgba(47, 178, 74, 0); } }
@media (prefers-reduced-motion: reduce) { .as-voz.oye { animation: none; } }
.as-vozst { font: 600 var(--t-xs) var(--font-display); letter-spacing: 0.06em; text-transform: uppercase; color: var(--go); background: rgba(14, 17, 24, 0.9); border-radius: 999px; padding: 4px 10px; }
.as-vozst:empty { display: none; }
@media (max-width: 899px) { .as-voz { width: 44px; height: 44px; } .as-vozst { display: none; } }

/* ---------- Nota de la empresa (js/nota.js) ---------- */
.nt-chip { display: inline-flex; align-items: center; gap: 6px; padding: 5px 10px; border-radius: 999px; border: 1px solid var(--line-strong); background: rgba(14, 17, 24, 0.85); color: var(--fg); cursor: pointer; white-space: nowrap; }
.nt-chip:hover { border-color: var(--gold); }
.nt-chip small { font-size: 0.62rem; color: var(--muted); text-transform: uppercase; letter-spacing: 0.06em; }
.nt-n { font: 700 0.95rem var(--font-data); padding: 1px 7px; border-radius: 7px; background: rgba(255, 255, 255, 0.06); }
.nt-n.ok, .nt-big.ok, .nt-m b.ok { color: var(--go); } .nt-n.warn, .nt-big.warn, .nt-m b.warn { color: var(--warn); } .nt-n.stop, .nt-big.stop, .nt-m b.stop { color: var(--stop); }
.nt-n.ok { background: rgba(47, 178, 74, 0.14); } .nt-n.warn { background: rgba(250, 178, 25, 0.14); } .nt-n.stop { background: rgba(224, 72, 72, 0.16); }
.nt-sep { width: 1px; height: 18px; background: var(--line); }
.nt-panel { position: fixed; z-index: 140; top: calc(78px + env(safe-area-inset-top, 0px)); right: 16px; width: min(460px, calc(100vw - 32px)); max-height: calc(100vh - 100px); overflow: auto; padding: 16px; border-radius: 16px; background: var(--panel-solid, #10131a); border: 1px solid var(--line-strong); box-shadow: var(--shadow); display: grid; gap: 10px; }
.nt-panel[hidden] { display: none; }
.nt-head { display: flex; align-items: flex-start; gap: 10px; }
.nt-k { font: 600 var(--t-xs) var(--font-display); text-transform: uppercase; letter-spacing: 0.1em; color: var(--gold); }
.nt-big { font: 700 2.6rem var(--font-data); line-height: 1; }
.nt-big small { font-size: 0.9rem; color: var(--muted); margin-left: 2px; }
.nt-exp { margin: 0; font-size: var(--t-xs); color: var(--muted); }
.nt-mundos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; }
.nt-m { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 0 8px; align-items: center; text-align: left; padding: 8px 10px; border-radius: 10px; border: 1px solid var(--line); background: rgba(255, 255, 255, 0.02); color: var(--fg); cursor: pointer; }
.nt-m b { grid-row: span 2; font: 700 1.25rem var(--font-data); }
.nt-m span { font-size: var(--t-s); font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.nt-m small { font-size: 0.66rem; color: var(--muted); }
.nt-m.aqui { border-color: rgba(201, 242, 77, 0.45); }
.nt-m.on { background: rgba(201, 242, 77, 0.1); border-color: var(--gold); }
.nt-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.nt-p { width: 100%; display: grid; grid-template-columns: 10px minmax(0, 1fr) auto; gap: 10px; align-items: center; text-align: left; padding: 8px 10px; border-radius: 10px; border: 1px solid var(--line); background: rgba(255, 255, 255, 0.02); color: var(--fg); cursor: pointer; }
.nt-p:hover { border-color: var(--gold); }
.nt-p i { width: 10px; height: 10px; border-radius: 50%; background: var(--warn); }
.nt-p.stop i { background: var(--stop); box-shadow: 0 0 0 3px rgba(224, 72, 72, 0.2); }
.nt-p span { display: grid; gap: 2px; min-width: 0; }
.nt-p b { font-size: var(--t-s); font-weight: 600; }
.nt-p small { font-size: var(--t-xs); color: var(--muted); }
.nt-p em { font-style: normal; font-size: 0.64rem; color: var(--faint); text-transform: uppercase; letter-spacing: 0.06em; }
.nt-go { color: var(--gold); }
.nt-vacio { color: var(--go); font-size: var(--t-s); }
@media (max-width: 720px) { .nt-chip small { display: none; } .nt-chip { padding: 4px 6px; gap: 4px; } .nt-mundos { grid-template-columns: minmax(0, 1fr); } }
@media print { .nt-chip, .nt-panel { display: none !important; } }

/* Cabeceras con muchos accesos: sin partir botones; en pantallas medianas se quitan los accesos a otros mundos (siguen en el menú de la cuenta y en el asistente) */
.topbar .btn { white-space: nowrap; }
@media (max-width: 1560px) { .topbar a.btn[href="app.html"], .topbar a.btn[href="estrategia.html"] { display: none; } }
@media (max-width: 1180px) { .nt-chip small { display: none; } }
@media (max-width: 560px) { .topbar a.btn[href^="manual.html"], .topbar .mesa-link { display: none; } }
/* Conexiones: IA, grabadora y calendario */
.cx { width: min(720px, 100%); display: grid; gap: 8px; }
.cx-falta { margin: 18px 0 4px; }
.cx-tabs { display: flex; gap: 6px; flex-wrap: wrap; border-bottom: 1px solid var(--line); padding-bottom: 8px; }
.cx-tabs button { display: inline-flex; gap: 6px; align-items: center; padding: 6px 12px; border-radius: 999px; border: 1px solid var(--line); background: transparent; color: var(--fg); font: 600 var(--t-s) var(--font-display); cursor: pointer; }
.cx-tabs button[aria-selected=true] { border-color: var(--gold); background: rgba(201, 242, 77, 0.08); color: var(--gold-soft); }
.cx-body { display: grid; gap: 10px; }
.cx-luz { width: 9px; height: 9px; border-radius: 50%; display: inline-block; background: var(--faint); flex: none; }
.cx-luz.ok { background: var(--go); box-shadow: 0 0 6px var(--go); } .cx-luz.warn { background: var(--warn); } .cx-luz.stop { background: var(--stop); }
.cx-est { display: flex; gap: 8px; align-items: center; margin: 0; font: 600 var(--t-s) var(--font-display); }
.cx-op { border: 1px solid var(--line); border-radius: 12px; padding: 10px 12px; }
.cx-op summary { cursor: pointer; display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.cx-op ol { margin: 8px 0 0; }
.cx-op code, .cx code { font-family: var(--font-data); font-size: 0.85em; color: var(--gold-soft); }
.cx-rec { font: 600 0.62rem var(--font-display); text-transform: uppercase; letter-spacing: 0.08em; color: var(--abyss); background: var(--gold); padding: 2px 6px; border-radius: 6px; }
.cx-cal { display: grid; gap: 6px; }
.cx-calo { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 10px; padding: 10px 12px; border-radius: 12px; border: 1px solid var(--line); cursor: pointer; }
.cx-calo.on { border-color: var(--gold); background: rgba(201, 242, 77, 0.05); }
.cx-calo span { display: grid; gap: 2px; } .cx-calo small { color: var(--muted); font-size: var(--t-xs); }
.cx-calo input { accent-color: var(--gold); margin-top: 3px; }

/* Empresa modelo: tarjeta en el mapa y ficha de conexiones */
.em-modelo-wrap { margin-top: 14px; padding-top: 12px; border-top: 1px dashed var(--line-strong); }
.em-card.em-modelo { border: 1px solid rgba(201, 242, 77, 0.45); background: linear-gradient(160deg, rgba(201, 242, 77, 0.07), rgba(57, 135, 229, 0.06)); }
.em-tag { display: inline-block; font-size: 0.68rem; letter-spacing: 0.06em; text-transform: uppercase; padding: 2px 8px; border-radius: 999px; border: 1px solid var(--gold, #c9f24d); color: var(--gold, #c9f24d); }
.em-ficha-modelo h4 { margin: 6px 0 0; }
.emf-kpis { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.emf-kpis div { padding: 8px 10px; border-radius: 10px; background: rgba(255, 255, 255, 0.04); display: grid; gap: 2px; }
.emf-kpis span { font-size: 0.68rem; text-transform: uppercase; letter-spacing: 0.06em; opacity: 0.75; } .emf-kpis b { font-size: 0.98rem; } .emf-kpis small { font-size: 0.72rem; opacity: 0.75; }
.emf-mundos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; }
.emf-m { display: flex; gap: 8px; align-items: flex-start; padding: 8px 10px; border-radius: 10px; border: 1px solid var(--line); cursor: pointer; }
.emf-m span { display: grid; } .emf-m small { opacity: 0.7; font-size: 0.74rem; }
.emf-planes { display: flex; flex-wrap: wrap; gap: 6px; }
.emf-p { display: inline-flex; gap: 6px; align-items: center; padding: 6px 10px; border-radius: 999px; border: 1px solid var(--line); cursor: pointer; font-size: 0.85rem; }
@media (max-width: 640px) { .emf-kpis { grid-template-columns: 1fr 1fr; } .emf-mundos { grid-template-columns: 1fr; } }

/* Paseo virtual: tarjeta fija que acompaña de un mundo a otro */
.paseo { position: fixed; z-index: 120; left: 18px; bottom: 18px; width: min(400px, calc(100vw - 36px)); max-height: calc(100vh - 110px); overflow-y: auto; padding: 14px 16px 12px; border-radius: 18px; background: var(--panel-solid, #0b0d13); border: 1px solid rgba(201, 242, 77, 0.55); box-shadow: 0 30px 80px -24px rgba(0, 0, 0, 0.9); color: var(--ink, #f5f3ee); font-size: 0.9rem; line-height: 1.45; }
.paseo-h { display: flex; align-items: center; gap: 6px; } .paseo-sp { flex: 1; }
.paseo-n { font-family: var(--font-mono, monospace); font-size: 0.68rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--gold, #c9f24d); }
.paseo-x { background: none; border: 1px solid var(--line, rgba(255,255,255,.14)); color: inherit; border-radius: 8px; width: 26px; height: 26px; cursor: pointer; }
.paseo-m { margin-top: 8px; font-size: 0.72rem; text-transform: uppercase; letter-spacing: 0.06em; opacity: 0.7; }
.paseo-t { margin: 2px 0 6px; font-family: var(--font-display, inherit); font-size: 1.2rem; letter-spacing: -0.01em; }
.paseo-que { margin: 0 0 8px; opacity: 0.88; }
.paseo-ben { padding: 8px 10px; border-left: 3px solid var(--gold, #c9f24d); border-radius: 0 10px 10px 0; background: rgba(201, 242, 77, 0.07); }
.paseo-ben b { display: block; font-size: 0.68rem; text-transform: uppercase; letter-spacing: 0.06em; color: var(--gold, #c9f24d); margin-bottom: 2px; } .paseo-ben p { margin: 0; }
.paseo-aviso { margin: 8px 0 0; font-size: 0.8rem; opacity: 0.85; } .paseo-l { background: none; border: 0; color: var(--gold, #c9f24d); text-decoration: underline; cursor: pointer; font: inherit; padding: 0; }
.paseo-dots { display: flex; gap: 4px; flex-wrap: wrap; margin: 10px 0 8px; } .paseo-dots i { width: 7px; height: 7px; border-radius: 50%; background: rgba(255, 255, 255, 0.18); } .paseo-dots i.ok { background: rgba(201, 242, 77, 0.5); } .paseo-dots i.on { background: var(--gold, #c9f24d); box-shadow: 0 0 0 3px rgba(201, 242, 77, 0.25); }
.paseo-b { display: flex; justify-content: space-between; gap: 8px; flex-wrap: wrap; }
.paseo-btn { padding: 8px 12px; border-radius: 10px; border: 1px solid var(--line-strong, rgba(255,255,255,.25)); background: none; color: inherit; cursor: pointer; font: inherit; font-size: 0.84rem; }
.paseo-btn.solid { background: var(--gold, #c9f24d); color: #111; border-color: transparent; font-weight: 600; }
.paseo.paseo-min { width: auto; padding: 0; border: 0; background: none; box-shadow: none; }
.paseo-pill { padding: 10px 14px; border-radius: 999px; border: 1px solid var(--gold, #c9f24d); background: var(--panel-solid, #0b0d13); color: var(--gold, #c9f24d); cursor: pointer; font: inherit; font-size: 0.82rem; }
@media (max-width: 640px) { .paseo { left: 10px; right: 10px; bottom: 10px; width: auto; max-height: 62vh; } }
@media print { .paseo { display: none !important; } }
a.paseo-btn { text-decoration: none; display: inline-flex; align-items: center; }
/* Puesto de mando: paseo virtual y vídeo, pequeños y flotantes en la esquina inferior izquierda */
.pt-flota { position: fixed; z-index: 25; left: 16px; bottom: calc(16px + env(safe-area-inset-bottom, 0px)); display: flex; flex-direction: column; align-items: flex-start; gap: 6px; }
.pt-mini { display: inline-flex; align-items: center; gap: 7px; padding: 5px 11px 5px 5px; border-radius: 999px; border: 1px solid rgba(201, 242, 77, 0.45); background: rgba(9, 11, 15, 0.72); backdrop-filter: blur(6px); color: inherit; font: inherit; font-size: 0.76rem; font-weight: 600; cursor: pointer; }
.pt-mini i { display: grid; place-items: center; width: 20px; height: 20px; border-radius: 50%; background: var(--gold, #c9f24d); color: #111; font-style: normal; font-size: 0.55rem; }
.pt-mini-v { border-color: rgba(106, 168, 255, 0.5); } .pt-mini-v i { background: #6aa8ff; }
.pt-mini:hover, .pt-mini:focus-visible { border-color: var(--gold, #c9f24d); transform: translateY(-1px); }
/* Con los mundos a la vista, la barra de mundos ocupa el pie: los botones se quedan en la esquina, justo encima */
/* --pt-dock-h la mide portal.js: si la barra ocupa dos filas, los botones suben con ella */
body:has(.pt-dock:not([hidden])) .pt-flota { bottom: calc(56px + var(--pt-dock-h, 56px) + env(safe-area-inset-bottom, 0px)); }
@media (max-width: 760px) { .pt-flota { flex-direction: row; left: 10px; bottom: calc(10px + env(safe-area-inset-bottom, 0px)); } body:has(.pt-dock:not([hidden])) .pt-flota { bottom: calc(24px + var(--pt-dock-h, 130px) + env(safe-area-inset-bottom, 0px)); } }
/* Ventana flotante del vídeo de presentación */
.vp-back { position: fixed; inset: 0; z-index: 400; display: grid; place-items: center; padding: 16px; background: rgba(3, 5, 9, 0.82); backdrop-filter: blur(4px); }
.vp-box { position: relative; width: min(1100px, 100%); border-radius: 14px; overflow: hidden; border: 1px solid rgba(255, 255, 255, 0.14); background: #05070b; box-shadow: 0 30px 80px -20px rgba(0, 0, 0, 0.8); }
.vp-v { display: block; width: 100%; aspect-ratio: 16 / 9; background: #000; }
.vp-x { position: absolute; z-index: 2; top: 8px; right: 8px; width: 34px; height: 34px; border-radius: 50%; border: 1px solid rgba(255, 255, 255, 0.3); background: rgba(5, 7, 11, 0.75); color: #fff; font-size: 1.2rem; line-height: 1; cursor: pointer; }
.vp-pie { display: flex; justify-content: space-between; gap: 12px; padding: 8px 14px; font-size: 0.78rem; opacity: 0.85; } .vp-pie a { color: var(--gold, #c9f24d); }
@media print { .pt-flota, .vp-back { display: none !important; } }

/* Semáforo redondo común (tablero general y mapas) */
.pr-luz { display: inline-block; flex: none; width: 12px; height: 12px; border-radius: 50%; background: var(--line-strong); box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.04); }
.pr-luz.ok { background: var(--go); } .pr-luz.warn { background: var(--warn); } .pr-luz.stop { background: var(--stop); }
/* Tablero general de la empresa */
.tb-main { display: grid; gap: 16px; padding-bottom: 40px; }
.tb-mod { display: grid; gap: 16px; min-width: 0; }
body.arch-on .ar-cab + .tb-main { margin-top: 18px; }
.tb-hero { display: grid; grid-template-columns: 1.2fr 1fr; gap: 18px; align-items: center; }
.tb-h1 { font-family: var(--font-display); font-size: clamp(1.6rem, 1.2rem + 1.6vw, 2.4rem); margin: 6px 0; letter-spacing: -0.02em; } .tb-h1 em { color: var(--gold); font-style: normal; }
.tb-kpis { display: grid; gap: 10px; }
.tb-k { padding: 12px 14px; border: 1px solid var(--line); border-radius: 14px; display: grid; gap: 4px; }
.tb-k small { color: var(--muted); font-size: 0.72rem; text-transform: uppercase; letter-spacing: 0.08em; }
.tb-k b { font-family: var(--font-display); font-size: 1.15rem; display: flex; gap: 8px; align-items: center; }
.tb-k b.ok { color: var(--go); } .tb-k b.warn { color: var(--warn); } .tb-k b.stop { color: var(--stop); }
.tb-k b span { font-size: 0.8rem; color: var(--muted); } .tb-k > span { color: var(--muted); font-size: 0.8rem; line-height: 1.4; }
.tb-eq.stop { border-color: rgba(224, 72, 72, 0.6); } .tb-eq.warn { border-color: rgba(250, 178, 25, 0.55); } .tb-eq.ok { border-color: rgba(47, 178, 74, 0.55); }
.tb-capas { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; counter-reset: c; }
.tb-capa { position: relative; padding: 12px; border: 1px solid var(--line); border-radius: 12px; display: grid; gap: 4px; align-content: start; }
.tb-capa.stop { border-color: rgba(224, 72, 72, 0.6); background: rgba(224, 72, 72, 0.06); } .tb-capa.warn { border-color: rgba(250, 178, 25, 0.5); } .tb-capa.ok { border-color: rgba(47, 178, 74, 0.5); }
.tb-capa small { color: var(--muted); font-size: 0.74rem; line-height: 1.35; } .tb-capa em { font-style: normal; font-size: 0.72rem; color: var(--fg, inherit); }
.tb-capa:not(:last-child)::after { content: '→'; position: absolute; right: -8px; top: 12px; color: var(--muted); font-size: 0.8rem; }
.tb-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 12px; }
.tb-planeta { display: grid; gap: 8px; align-content: start; }
.tb-pn { font-family: var(--font-display); }
.tb-nota { font-family: var(--font-display); font-weight: 800; font-size: 1.3rem; } .tb-nota.ok { color: var(--go); } .tb-nota.warn { color: var(--warn); } .tb-nota.stop { color: var(--stop); }
.tb-top, .tb-prio, .tb-objs { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.tb-top a { display: flex; gap: 8px; align-items: flex-start; color: inherit; text-decoration: none; font-size: 0.82rem; line-height: 1.35; }
.tb-top a .pr-luz { margin-top: 4px; } .tb-top em, .tb-pi em { display: block; font-style: normal; font-size: 0.72rem; color: var(--muted); }
.tb-pi { display: flex; gap: 10px; align-items: flex-start; padding: 9px 11px; border: 1px solid var(--line); border-radius: 12px; color: inherit; text-decoration: none; }
.tb-pi > b { min-width: 22px; height: 22px; display: grid; place-items: center; border-radius: 50%; background: var(--raise, rgba(255, 255, 255, 0.06)); font-size: 0.75rem; }
.tb-pi .pr-luz { margin-top: 5px; } .tb-pi span strong { display: block; font-size: 0.88rem; } .tb-pi span small { display: block; color: var(--muted); font-size: 0.76rem; }
.tb-pi > span:nth-of-type(1) { flex: 1; } .tb-go { color: var(--muted); }
.tb-pi:hover, .tb-pi:focus-visible { border-color: var(--gold); }
.tb-objs li { display: flex; gap: 10px; align-items: flex-start; } .tb-objs li .pr-luz { margin-top: 5px; } .tb-objs small { display: block; color: var(--muted); font-size: 0.76rem; }
.tb-vacio { color: var(--muted); font-size: 0.82rem; }
@media (max-width: 900px) { .tb-hero { grid-template-columns: 1fr; } .tb-capas { grid-template-columns: 1fr; } .tb-capa:not(:last-child)::after { content: '↓'; right: 12px; top: auto; bottom: -10px; } }

/* ---------- Banda de guardado (servidor sin respuesta o navegador lleno) y aviso breve ---------- */
.at-aviso { position: fixed; z-index: 95; left: 50%; top: calc(12px + env(safe-area-inset-top, 0px)); transform: translateX(-50%); width: min(760px, calc(100% - 32px)); display: flex; flex-wrap: wrap; gap: 8px 12px; align-items: center; padding: 10px 12px 10px 16px; border: 1px solid rgba(250, 178, 25, 0.6); border-left-width: 4px; border-radius: 14px; background: var(--panel-solid, #10131a); color: var(--fg, #f5f3ee); box-shadow: var(--shadow); font-size: 0.86rem; line-height: 1.4; }
.at-aviso[data-tipo="stop"] { border-color: rgba(224, 72, 72, 0.7); }
.at-aviso[data-tipo="ok"] { border-color: rgba(47, 178, 74, 0.7); }
.at-aviso .at-aviso-t { flex: 1 1 260px; min-width: 0; }
.at-aviso .btn { white-space: nowrap; }
.at-toast { border-radius: 14px; max-width: calc(100% - 32px); text-align: center; z-index: 96; }
/* Distintivo de datos ficticios (cartera y grupo empresarial) */
.gr-fict { display: inline-block; margin-left: 6px; padding: 1px 8px; border-radius: 999px; border: 1px solid rgba(250, 178, 25, 0.55); color: var(--warn); font-size: 0.7rem; font-weight: 600; letter-spacing: 0.02em; vertical-align: middle; white-space: nowrap; }
.gr-modelo { border-style: dashed; }

/* ---------- Fin de la prueba: banda bajo la cabecera de cada mundo ---------- */
.at-prueba { position: fixed; z-index: 39; left: 50%; top: 76px; transform: translateX(-50%); width: min(760px, calc(100% - 32px)); display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; padding: 8px 8px 8px 14px; border-radius: 14px; border: 1px solid rgba(250, 178, 25, 0.5); background: var(--panel-solid, #10131a); box-shadow: var(--shadow); font-size: 0.86rem; }
.at-prueba.urge { border-color: rgba(224, 72, 72, 0.7); border-left-width: 4px; }
.at-prueba-t { flex: 1 1 200px; min-width: 0; } .at-prueba-t b { color: var(--warn); } .at-prueba.urge .at-prueba-t b { color: var(--stop); }
.at-prueba .btn { white-space: nowrap; } .at-prueba-x { margin-left: auto; }
@media (max-width: 560px) { .at-prueba { width: calc(100% - 20px); padding: 6px 6px 6px 10px; font-size: 0.8rem; } .at-prueba-p { display: none; } .at-prueba .btn { padding: 5px 9px; } }
@media print { .at-prueba { display: none !important; } }

/* ---------- Activación del acceso (pantalla de acceso y ventana «Activar ahora») ---------- */
.pg { display: grid; gap: 12px; }
.pg-h { margin: 0; } .pg-intro { margin: 0; }
.pg-precio { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 8px; padding: 12px 14px; border: 1px solid var(--line-strong); border-radius: 12px; background: rgba(201, 242, 77, 0.05); }
.pg-precio b { font-family: var(--font-display); font-size: 1.8rem; color: var(--gold-soft); } .pg-precio span { color: var(--muted); } .pg-precio small { flex-basis: 100%; color: var(--muted); font-size: var(--t-xs); }
.pg-form label { display: grid; gap: 4px; color: var(--muted); }
.pg-contacto { display: flex; flex-wrap: wrap; gap: 4px 12px; align-items: baseline; padding-top: 10px; border-top: 1px solid var(--line); }
.pg-contacto b { flex-basis: 100%; } .pg-contacto a { color: var(--gold-soft); }
.pg-card { width: min(520px, 100%); }
/* ---------- Copia de datos e importación ---------- */
.cp-card { width: min(580px, 100%); }
.cp-t { margin: 0; font-family: var(--font-display); font-weight: 600; font-size: 1.3rem; overflow-wrap: anywhere; }
.cp-file { display: grid; gap: 6px; font-size: var(--t-s); color: var(--muted); }
.cp-res { display: grid; grid-template-columns: max-content minmax(0, 1fr); gap: 6px 14px; margin: 0; font-size: var(--t-s); }
.cp-res dt { color: var(--muted); } .cp-res dd { margin: 0; overflow-wrap: anywhere; }
.cp-avisos { margin: 0; padding-left: 18px; color: var(--warn); }
.cp-peligro { display: grid; gap: 8px; padding: 10px 12px; border: 1px solid rgba(224, 72, 72, 0.5); border-radius: 12px; background: rgba(224, 72, 72, 0.06); justify-items: start; }
.cp-ok { display: flex; gap: 8px; align-items: flex-start; }
@media (max-width: 480px) { .cp-res { grid-template-columns: 1fr; } .cp-res dd { margin-bottom: 4px; } }
/* ---------- Primer acceso: cómo empezar ---------- */
.pa-card { width: min(560px, 100%); }
.pa-t { margin: 0; font-family: var(--font-display); font-weight: 600; font-size: 1.5rem; }
.pa-ops { display: grid; gap: 8px; }
.pa-op { display: grid; gap: 3px; text-align: left; padding: 12px 14px; border-radius: 12px; border: 1px solid var(--line-strong); background: rgba(255, 255, 255, 0.03); color: var(--fg); font: inherit; cursor: pointer; }
.pa-op b { font-size: 1rem; } .pa-op small { color: var(--muted); font-size: var(--t-xs); line-height: 1.4; }
.pa-op:hover, .pa-op:focus-visible { border-color: var(--gold); background: rgba(201, 242, 77, 0.06); }
.pa-op.pa-luego { border-style: dashed; }
/* ---------- Alta: errores por campo ---------- */
.fld-err { color: var(--stop); font-size: var(--t-xs); }
.input[aria-invalid="true"], input[type="checkbox"][aria-invalid="true"] { border-color: var(--stop); outline-color: var(--stop); }
.up-ok { display: grid; gap: 4px; }
.up-ok a, .up-priv a { color: var(--gold-soft); }

/* ---------- Cabecera compacta en móvil (≤ 560 px) ----------
   Se quedan la marca, la empresa (recortada con puntos suspensivos) y el botón de la cuenta; los accesos secundarios
   (manual, mesa, otros mundos) siguen en el menú de la cuenta. Nada sale de la pantalla. */
@media (max-width: 560px) {
  .topbar { gap: 6px; padding: 6px 6px 6px 12px; width: calc(100% - 20px); }
  .topbar:not(.site-nav) > a.btn { display: none; }
  .topbar .brand { flex: none; }
  .topbar .brand b { font-size: 1.1rem; }
  .topbar .spacer { flex: 1 1 0; min-width: 0; }
  .topbar .seg { flex: 0 1 auto; min-width: 30px; }
  .topbar .ruta-btn { padding: 6px 9px; }
  .topbar .verdict-pill { padding: 6px 8px; }
  .topbar .nt-chip small { display: none; }
  .topbar .nt-chip { flex: none; padding: 4px 8px; font-size: 0.8rem; }
  .topbar .nt-chip .nt-sep, .topbar .nt-chip .nt-sep ~ .nt-n { display: none; }
  .topbar .nt-chip .nt-n { font-size: 0.78rem; }
  /* Sin nota todavía: en la barra estrecha basta un guion (el texto sigue para el lector de pantalla y en el panel) */
  .topbar .nt-chip .nt-vacia { font-size: 0; }
  .topbar .nt-chip .nt-vacia::after { content: '—'; font-size: 0.78rem; }
  .topbar .account { flex: 0 1 auto; min-width: 72px; gap: 6px; }
  .topbar .emp { flex: 0 1 auto; min-width: 30px; }
  .topbar .emp-btn { max-width: 165px; width: 100%; min-width: 0; padding: 0 8px; }
  .topbar .emp-btn span { min-width: 0; }
  .topbar .acc-btn { flex: none; }
  .topbar .acc-menu, .topbar .emp-menu { max-width: calc(100vw - 20px); }
}
@media (max-width: 380px) { .topbar .emp-btn { max-width: 120px; } }
/* Menú de la cuenta: si no cabe en la pantalla, se desplaza por dentro */
.acc-menu { max-height: calc(100vh - 90px); max-height: calc(100dvh - 90px); overflow-y: auto; overscroll-behavior: contain; }
.acc-menu button[data-exp], .acc-menu button[data-activar] { color: var(--gold-soft); }

/* ---------- Barra común de los mundos (js/platform.js · montarBarra) ----------
   Marca, botón «Mundos» con la lista común, herramientas de la página, nota, empresa activa y cuenta.
   En el móvil (≤ 560 px) el botón es «Menú»: abre una hoja con los mundos y la cuenta, del ancho de la barra. */
.bm-wrap { position: relative; flex: none; }
.bm-btn { display: inline-flex; align-items: center; gap: 8px; height: 36px; padding: 0 12px; border-radius: 999px; border: 1px solid var(--line-strong); background: rgba(255, 255, 255, 0.03); color: var(--fg); font: inherit; font-size: var(--t-s); cursor: pointer; white-space: nowrap; }
.bm-btn:hover, .bm-btn[aria-expanded="true"] { border-color: var(--gold); }
.bm-ico { display: grid; gap: 3px; width: 14px; } .bm-ico b { display: block; height: 2px; border-radius: 2px; background: currentColor; }
.bm-tm { display: none; }
.bm-lista { position: absolute; left: 0; top: calc(100% + 10px); width: min(340px, calc(100vw - 24px)); max-height: calc(100vh - 100px); max-height: calc(100dvh - 100px); overflow-y: auto; overscroll-behavior: contain; padding: 6px; display: grid; gap: 2px; z-index: 60; background: var(--panel-solid, #0b0d13); border-radius: 14px; }
.bm-h { font: 600 0.64rem var(--font-data); letter-spacing: 0.14em; text-transform: uppercase; color: var(--faint); padding: 6px 10px 4px; }
.bm-it, .acc-menu a.bm-it { display: flex; align-items: center; gap: 10px; padding: 7px 10px; border-radius: 9px; color: var(--fg); text-decoration: none; }
.bm-it i { width: 10px; height: 10px; border-radius: 50%; flex: none; }
.bm-it span { display: grid; min-width: 0; } .bm-it b { font-weight: 600; font-size: var(--t-s); } .bm-it small { color: var(--muted); font-size: var(--t-xs); }
.bm-it:hover, .bm-it:focus-visible { background: var(--raise); }
.bm-it[aria-current="page"] { background: rgba(201, 242, 77, 0.08); box-shadow: inset 2px 0 0 var(--gold); }
.bm-it[data-lock] b { opacity: 0.7; }
.acc-menu .acc-mundos { display: none; }
@media (max-width: 1180px) and (min-width: 561px) { .barra-comun .bm-t { display: none; } .bm-btn { padding: 0 11px; } }
@media (max-width: 560px) {
  .topbar.barra-comun .acc-btn { display: none; }
  .bm-t { display: none; } .bm-tm { display: inline; }
  .bm-btn { padding: 0 10px; gap: 6px; }
  /* Las hojas (cuenta con los mundos, y lista de empresas) cuelgan de la barra y ocupan su ancho: no salen de la pantalla */
  .topbar.barra-comun .account, .topbar.barra-comun .emp { position: static; }
  .topbar.barra-comun .acc-menu, .topbar.barra-comun .emp-menu { position: absolute; left: 0; right: 0; top: calc(100% + 8px); width: auto; max-width: none; max-height: calc(100vh - 100px); max-height: calc(100dvh - 100px); }
  .topbar.barra-comun .acc-mundos { display: grid; gap: 2px; padding-bottom: 6px; margin-bottom: 6px; border-bottom: 1px solid var(--line); }
  .topbar.barra-comun .acc-mundos .bm-it small { display: none; }
  .topbar.barra-comun .account { min-width: 0; }
}
@media (max-width: 400px) { .bm-tm { display: none; } .bm-btn { width: 36px; padding: 0; justify-content: center; } .topbar .brand b { font-size: 1rem; } }
@media print { .bm-wrap { display: none !important; } }

/* ---------- Puesto de mando: la misma barra y una sola lista de mundos ---------- */
body.portal .topbar { z-index: 26; }
body.portal .pt-dock { align-items: stretch; }
body.portal .pt-dock-br { flex-basis: 100%; height: 0; }
body.portal .pt-dock .pt-sec { padding: 6px 12px 6px 10px; border-radius: 12px; gap: 9px; font-size: var(--t-s); }
body.portal .pt-dock .pt-sec i { width: 14px; height: 14px; }
body.portal .pt-dock .pt-sec small { display: none; }
@media (max-width: 760px) {
  /* En el móvil las etiquetas que siguen a los planetas se tapan: la lista de abajo es la forma de entrar */
  body.portal .pt-labels { display: none; }
  body.portal .pt-dock-br { display: none; }
  body.portal .pt-dock kbd { display: none; }
  body.portal .pt-dock .pt-sec { padding: 7px 10px; font-size: 0.82rem; }
  body.portal .pt-last { right: 10px; left: auto; transform: none; max-width: calc(100% - 20px); bottom: calc(64px + var(--pt-dock-h, 130px) + env(safe-area-inset-bottom, 0px)); }
}
/* Primera visita: la acción clave, destacada */
.pa-op.pa-clave { border-color: rgba(201, 242, 77, 0.55); background: rgba(201, 242, 77, 0.06); }
.pa-card .pa-luego { justify-self: start; }
/* La marca deja el nombre del mundo al botón «Mundos»; la nota, sin rótulos cuando falta sitio */
.barra-comun .brand span { display: none; }
.bm-car { color: var(--gold); font-size: 0.7rem; }
/* A 1440 px hay sitio para los rótulos «Empresa» y «Este mundo» salvo en el simulador, que lleva más botones */
@media (max-width: 1560px) { body:has(> .dock) .barra-comun .nt-chip small { display: none; } }
@media (max-width: 1280px) { .barra-comun .nt-chip small { display: none; } }
/* Sin nota de la empresa tampoco la hay del mundo: un solo «Sin nota», no «Sin nota | Sin nota» */
.nt-chip > .nt-n:first-child:not(.ok, .warn, .stop) ~ :is(.nt-sep, .nt-n, small:last-child) { display: none; }
.barra-comun .verdict-pill { max-width: 220px; min-width: 0; } .barra-comun .verdict-pill .txt { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
@media (max-width: 560px) { .bm-car { display: none; } }
/* Con un menú de la barra abierto, la barra queda por encima del asistente, la pestaña del manual y las barras de abajo */
.topbar.barra-comun:has(.acc-menu:not([hidden]), .bm-lista:not([hidden]), .emp-menu:not([hidden])) { z-index: 160; }
@media (max-width: 760px) {
  html body.portal .pt-labels { display: none; }
  body.portal .pt-dock button b { white-space: normal; overflow: visible; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; line-height: 1.15; font-size: 0.8rem; }
}
/* Sin 3D, las tarjetas de los mundos quedan encima de la lista de abajo, que puede ocupar dos filas */
html body.portal.no3d .pt-labels { bottom: calc(var(--pt-dock-h, 56px) + 76px + env(safe-area-inset-bottom, 0px)); }
/* Verificación en dos pasos */
.df-card { width: min(520px, 100%); }
.df-clave, .df-codigos { font-family: var(--font-data); font-size: 0.95rem; letter-spacing: 0.06em; color: var(--gold-soft); overflow-wrap: anywhere; }
.df-codigos { margin: 0; padding: 10px 12px; border: 1px solid var(--line-strong); border-radius: 10px; background: rgba(255, 255, 255, 0.03); white-space: pre-wrap; }
/* Con una ventana abierta, nada de lo que queda debajo se desenfoca: el desenfoque se recalcula al cambiar la ventana */
body:has(> .modal-back, > .ef-back) :is(.glass, .topbar, .dock, .ruta-bar, .assistant *, .kpi, .ml-tab) { backdrop-filter: none !important; -webkit-backdrop-filter: none !important; }
body:has(> .modal-back, > .ef-back) :is(.modal-back, .ef-back) { backdrop-filter: none; -webkit-backdrop-filter: none; background: rgba(6, 7, 9, 0.86); }
/* Aviso común de bloqueo por plan (platform.js · P.bloqueo): en la página y en ventana */
.bq-card { max-width: 740px; margin: 40px auto; }
.ef-card.bq-card { width: min(620px, 100%); margin: 0; }
.bq-card h2 { font-size: clamp(1.5rem, 3vw, 2.1rem); }
.bq-card .row { flex-wrap: wrap; }
/* Página entera bloqueada por el plan (P.bloqueo con zona): sin «Mapa», sin nota y sin la fila de pestañas vacía */
body.bq-pagina :is(.ruta-btn, .rm-open, .nt-chip, .ruta-bar, .st-tabs:empty, #peTabs, #ivTabs) { display: none !important; }
/* Asistente en el puesto de mando: en pantallas estrechas, encima de la lista de mundos y a la altura del paseo virtual */
@media (max-width: 899px) { body.portal .assistant { bottom: calc(24px + var(--pt-dock-h, 130px) + env(safe-area-inset-bottom, 0px)); } }

/* ---------- Buscador común (js/buscador.js): botón en la barra, Ctrl K y «/» ---------- */
.bs-btn { display: inline-flex; align-items: center; gap: 8px; height: 36px; padding: 0 12px; flex: none; border-radius: 999px; border: 1px solid var(--line-strong); background: rgba(255, 255, 255, 0.03); color: var(--fg); font-size: var(--t-s); white-space: nowrap; }
.bs-btn:hover { border-color: var(--gold); }
.bs-btn .bs-ico { font-size: 1.05rem; line-height: 1; color: var(--gold-soft); }
.bs-btn kbd { font-family: var(--font-data); font-size: 0.68rem; color: var(--faint); border: 1px solid var(--line); border-radius: 4px; padding: 0 5px; }
@media (max-width: 1100px) { .bs-btn kbd { display: none; } }
@media (max-width: 760px) { .bs-btn { width: 36px; padding: 0; justify-content: center; } .bs-btn .bs-t { display: none; } }
.bs-velo { position: fixed; inset: 0; z-index: 180; background: rgba(5, 6, 10, 0.72); backdrop-filter: blur(4px); display: grid; place-items: start center; padding: max(72px, calc(env(safe-area-inset-top, 0px) + 16px)) max(16px, env(safe-area-inset-right, 0px)) 16px max(16px, env(safe-area-inset-left, 0px)); }
.bs-caja { width: min(620px, 100%); background: var(--raise); border: 1px solid var(--line-strong); border-radius: 12px; box-shadow: 0 24px 80px rgba(0, 0, 0, 0.6); overflow: hidden; display: grid; }
.bs-campo { display: flex; align-items: center; gap: 10px; padding: 0 12px 0 16px; border-bottom: 1px solid var(--line); }
.bs-campo > span { color: var(--gold-soft); font-size: 1.15rem; }
.bs-campo input { flex: 1; min-width: 0; padding: 15px 0; background: none; border: 0; color: var(--fg); font-size: 1.02rem; outline: none; }
.bs-x { flex: none; font-family: var(--font-data); font-size: 0.7rem; color: var(--faint); background: none; border: 1px solid var(--line); border-radius: 4px; padding: 2px 6px; }
.bs-lista { max-height: min(56vh, 480px); overflow: auto; overscroll-behavior: contain; padding: 6px; display: grid; gap: 1px; align-content: start; }
.bs-grupo { font-family: var(--font-data); font-size: 0.66rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--faint); padding: 10px 10px 4px; }
.bs-op { display: grid; grid-template-columns: 10px minmax(0, 1fr) auto; gap: 10px; align-items: center; padding: 8px 10px; border-radius: 6px; cursor: pointer; }
.bs-op i { width: 9px; height: 9px; border-radius: 2px; }
.bs-op b { font-weight: 500; display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bs-op small { display: block; color: var(--muted); font-size: 0.76rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bs-op[aria-selected="true"] { background: #1f2430; box-shadow: inset 2px 0 0 var(--gold); }
.bs-lock { font-size: 0.8rem; opacity: 0.8; }
.bs-sr, .ar-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.bs-nada { margin: 0; padding: 14px; color: var(--muted); font-size: var(--t-s); }
.bs-pie { padding: 8px 14px; border-top: 1px solid var(--line); font-size: 0.75rem; color: var(--faint); display: flex; gap: 14px; flex-wrap: wrap; }
@media (hover: none) { .bs-pie { display: none; } }

/* ---------- Archivador (js/archivador.js): Mundo → Área o fase → Módulo → Vista ----------
   A la izquierda, los mundos con su solapa de color; arriba del contenido, la ruta con hermanos, los abiertos y los
   módulos del área como pestañas; al final, anterior · siguiente. --wc es el color del mundo abierto. */
body.arch-on { --ar-w: 264px; --ar-top: calc(84px + env(safe-area-inset-top, 0px)); }
body.arch-on.arch-plegado { --ar-w: 56px; }
body.arch-on :is(#stTabs, #peTabs, #ivTabs, #ivRuta, #msTabs) { display: none !important; }
/* Contador de un módulo (pendientes de la bandeja, metas sin cumplir) */
.ar-cuenta { display: inline-block; margin-left: 6px; padding: 0 6px; border-radius: 999px; background: color-mix(in srgb, var(--wc, var(--gold)) 16%, transparent); color: var(--muted); font-family: var(--font-data); font-size: 0.68rem; line-height: 1.5; vertical-align: 1px; }
.ar-pest [role="tab"][aria-selected="true"] .ar-cuenta { color: var(--fg); }
/* Páginas de módulos sobre una sola carga (tablero, cartera, libro): solo se ve el módulo abierto */
.ar-mod[hidden] { display: none !important; }
.rm-clone .ar-pie { display: none; }
.ar-carp { display: none; align-items: center; gap: 6px; height: 36px; padding: 0 12px; flex: none; border-radius: 999px; border: 1px solid color-mix(in srgb, var(--wc, var(--gold)) 55%, var(--line-strong)); background: color-mix(in srgb, var(--wc, var(--gold)) 10%, transparent); color: var(--fg); font-size: var(--t-s); white-space: nowrap; }
.ar-carp:hover, .ar-carp[aria-expanded="true"] { border-color: var(--wc, var(--gold)); }
.ar-ci { width: 15px; height: 11px; border-radius: 2px 5px 2px 2px; background: var(--wc, var(--gold)); position: relative; margin-top: 3px; flex: none; }
.ar-ci::before { content: ''; position: absolute; left: 0; top: -3px; width: 7px; height: 4px; border-radius: 2px 2px 0 0; background: var(--wc, var(--gold)); }
.ar-arch { position: fixed; z-index: 30; left: 16px; top: var(--ar-top); bottom: 16px; width: var(--ar-w); display: flex; flex-direction: column; gap: 4px; padding: 10px 8px; overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; border: 1px solid var(--line); border-radius: 10px; background: rgba(12, 14, 19, 0.86); backdrop-filter: blur(16px); }
.ar-top { display: flex; align-items: center; gap: 6px; padding: 0 2px 4px 6px; }
.ar-h { flex: 1; font-family: var(--font-data); font-size: 0.66rem; letter-spacing: 0.16em; text-transform: uppercase; color: var(--faint); }
.ar-plegar { width: 30px; height: 30px; flex: none; border-radius: 6px; border: 1px solid var(--line); background: none; color: var(--muted); }
.ar-plegar:hover { color: var(--fg); border-color: var(--line-strong); }
.ar-lista { display: grid; gap: 2px; }
.ar-mundo { width: 100%; display: grid; grid-template-columns: 14px minmax(0, 1fr) auto; align-items: center; gap: 10px; padding: 7px 8px; border: 0; border-radius: 6px; background: none; text-align: left; color: var(--fg); }
.ar-mundo:hover, .ar-carpeta.abierta > .ar-mundo { background: var(--raise); }
.ar-carpeta.actual > .ar-mundo { box-shadow: inset 2px 0 0 var(--wc); }
.ar-solapa { width: 14px; height: 11px; border-radius: 2px 5px 2px 2px; background: var(--wc); position: relative; margin-top: 3px; }
.ar-solapa::before { content: ''; position: absolute; left: 0; top: -3px; width: 7px; height: 4px; border-radius: 2px 2px 0 0; background: var(--wc); }
.ar-nom { font-size: 0.88rem; font-weight: 500; line-height: 1.25; min-width: 0; }
.ar-nom small { display: block; font-family: var(--font-data); font-size: 0.62rem; letter-spacing: 0.06em; text-transform: uppercase; color: var(--faint); font-weight: 400; margin-top: 2px; }
.ar-flecha { font-size: 0.72rem; color: var(--faint); }
.ar-dentro { display: grid; gap: 1px; margin: 2px 0 8px 14px; padding-left: 8px; border-left: 2px solid var(--wc); }
.ar-abtn { width: 100%; display: flex; align-items: center; gap: 8px; padding: 6px 8px; border: 0; border-radius: 5px; background: none; text-align: left; color: var(--muted); font-size: 0.85rem; }
.ar-abtn:hover, .ar-area.abierta > .ar-abtn { color: var(--fg); }
.ar-abtn:hover { background: var(--raise); }
.ar-num { font-family: var(--font-data); font-size: 0.7rem; color: var(--wc); min-width: 10px; flex: none; }
.ar-num:empty { width: 6px; min-width: 6px; height: 6px; border-radius: 2px; background: color-mix(in srgb, var(--wc) 70%, transparent); }
.ar-an { flex: 1; min-width: 0; }
.ar-cnt { font-family: var(--font-data); font-size: 0.66rem; color: var(--faint); }
.ar-hojas { list-style: none; margin: 0; padding: 1px 0 6px 14px; display: grid; gap: 1px; }
.ar-hojas a { display: block; padding: 4px 8px; border-radius: 4px; color: var(--muted); font-size: 0.82rem; text-decoration: none; line-height: 1.35; }
.ar-hojas a:hover { color: var(--fg); background: var(--raise); }
.ar-hojas a[aria-current="page"] { color: var(--fg); background: color-mix(in srgb, var(--wc) 18%, transparent); box-shadow: inset 2px 0 0 var(--wc); }
/* Módulos fuera del recorrido (por ejemplo, el diccionario del simulador): al final, con su título y sin número */
.ar-aparte { margin-top: 6px; padding-top: 6px; border-top: 1px dashed var(--line); }
.ar-aph { display: block; padding: 2px 8px 2px; font-family: var(--font-data); font-size: 0.62rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--faint); }
.ar-aparte .ar-hojas { padding-left: 6px; }
/* Plegado (escritorio): solo las solapas */
body.arch-plegado .ar-arch { padding-inline: 6px; }
body.arch-plegado .ar-h, body.arch-plegado .ar-nom, body.arch-plegado .ar-flecha, body.arch-plegado .ar-dentro { display: none; }
body.arch-plegado .ar-top { padding: 0 0 6px; justify-content: center; }
body.arch-plegado .ar-mundo { grid-template-columns: 1fr; justify-items: center; padding: 9px 0; }
/* Contenido a la derecha del archivador; la barra superior ocupa el ancho */
@media (min-width: 861px) {
  body.arch-on .topbar { left: 16px; right: 16px; width: auto; transform: none; }
  body.arch-on .st-main { width: auto; max-width: 1280px; margin-left: calc(var(--ar-w) + 32px); margin-right: auto; padding-inline: 0 16px; }
}
@media (min-width: 861px) and (max-width: 1100px) { body.arch-on:not(.arch-plegado) { --ar-w: 228px; } }
/* Cajón en pantallas estrechas */
.ar-velo { position: fixed; inset: 0; z-index: 74; background: rgba(5, 6, 10, 0.6); }
@media (max-width: 860px) {
  .ar-carp { display: inline-flex; }
  .ar-arch { z-index: 75; left: 0; top: 0; bottom: 0; width: min(320px, 88vw); border-radius: 0 10px 10px 0; border-left: 0; padding-top: max(12px, env(safe-area-inset-top, 0px)); padding-left: max(8px, env(safe-area-inset-left, 0px)); box-shadow: 20px 0 60px rgba(0, 0, 0, 0.6); transform: translateX(-105%); visibility: hidden; transition: transform 0.2s, visibility 0.2s; background: rgba(12, 14, 19, 0.97); }
  .ar-arch.visible { transform: none; visibility: visible; }
  body.arch-plegado .ar-h, body.arch-plegado .ar-nom, body.arch-plegado .ar-flecha { display: revert; }
  body.arch-plegado .ar-dentro { display: grid; }
  body.arch-plegado .ar-mundo { grid-template-columns: 14px minmax(0, 1fr) auto; justify-items: stretch; padding: 7px 8px; }
  body.arch-plegado .ar-top { justify-content: flex-start; padding: 0 2px 4px 6px; }
}
/* Móvil: «Áreas» queda en su icono de carpeta (el botón «Menú» de la barra sigue llevando a los mundos y a la cuenta);
   la empresa ya está en la barra, así que la ruta empieza en el mundo */
@media (max-width: 560px) {
  .ar-carp { width: 36px; padding: 0; justify-content: center; }
  .ar-carp .ar-ct { display: none; }
  .ar-miga.emp { display: none; }
  .ar-miga.emp + .ar-miga .ar-sep { display: none; }
}
/* Ruta: Empresa › Mundo › Área › Módulo */
.ar-cab { display: grid; gap: 10px; min-width: 0; }
.ar-ruta { position: relative; z-index: 25; border: 1px solid var(--line); border-radius: 10px; background: linear-gradient(90deg, color-mix(in srgb, var(--wc, var(--gold)) 14%, rgba(12, 14, 19, 0.75)), rgba(12, 14, 19, 0.6) 60%); box-shadow: inset 3px 0 0 var(--wc, var(--gold)); min-width: 0; }
.ar-ruta ol { list-style: none; margin: 0; padding: 6px 10px; display: flex; flex-wrap: wrap; align-items: center; gap: 2px; min-width: 0; }
.ar-miga { position: relative; display: flex; align-items: center; gap: 2px; min-width: 0; max-width: 100%; }
.ar-miga > button { display: inline-flex; align-items: center; gap: 6px; min-width: 0; max-width: 100%; padding: 4px 8px; border: 0; border-radius: 5px; background: none; color: var(--muted); font-size: 0.86rem; }
.ar-miga > button:hover, .ar-miga > button[aria-expanded="true"] { background: var(--raise); color: var(--fg); }
.ar-miga > button[aria-current="page"] { color: var(--fg); font-weight: 600; }
.ar-miga > button i { width: 8px; height: 8px; border-radius: 2px; flex: none; }
.ar-mt { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 28ch; }
.ar-car { font-size: 0.66rem; color: var(--faint); }
.ar-sep { color: var(--faint); font-size: 0.85rem; padding: 0 1px; }
.ar-herm { position: absolute; top: calc(100% + 4px); left: 0; z-index: 30; min-width: 240px; max-width: min(360px, calc(100vw - 32px)); max-height: 340px; overflow: auto; overscroll-behavior: contain; display: grid; gap: 2px; padding: 6px; border: 1px solid var(--line-strong); border-radius: 8px; background: var(--raise); box-shadow: 0 12px 40px rgba(0, 0, 0, 0.5); }
.ar-herm button { display: flex; align-items: center; gap: 8px; padding: 7px 10px; border: 0; border-radius: 5px; background: none; text-align: left; font-size: 0.87rem; color: var(--fg); }
.ar-herm button:hover, .ar-herm button:focus-visible { background: #1f2430; }
.ar-herm button[aria-current="true"] { background: #1f2430; box-shadow: inset 2px 0 0 var(--wc, var(--gold)); }
.ar-herm button i { width: 8px; height: 8px; border-radius: 2px; flex: none; }
.ar-herm .ar-lock { margin-left: auto; font-size: 0.75rem; }
@media (max-width: 560px) {
  .ar-miga { position: static; }
  .ar-herm { left: 6px; right: 6px; min-width: 0; max-width: none; }
  .ar-mt { max-width: 22ch; }
  .ar-miga.emp .ar-mt { max-width: 14ch; }
}
/* Abiertos */
.ar-abiertos { display: flex; align-items: center; gap: 8px; min-width: 0; }
.ar-et { flex: none; font-family: var(--font-data); font-size: 0.64rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--faint); }
.ar-abiertos ul { list-style: none; margin: 0; padding: 2px; display: flex; gap: 6px; overflow-x: auto; scrollbar-width: none; min-width: 0; }
.ar-abiertos a { flex: none; display: inline-flex; align-items: center; gap: 6px; padding: 3px 10px; border: 1px solid var(--line); border-radius: 999px; color: var(--muted); font-size: 0.78rem; text-decoration: none; white-space: nowrap; }
.ar-abiertos a:hover { color: var(--fg); border-color: var(--line-strong); }
.ar-abiertos a i { width: 7px; height: 7px; border-radius: 2px; }
.ar-abiertos a[aria-current="page"] { color: var(--fg); border-color: var(--line-strong); background: var(--raise); }
/* Módulos del área como pestañas de archivador */
.ar-pest { display: flex; gap: 2px; padding: 6px 6px 0; overflow-x: auto; scrollbar-width: none; border-bottom: 1px solid var(--line); position: sticky; top: calc(76px + env(safe-area-inset-top, 0px)); z-index: 20; background: rgba(8, 10, 14, 0.82); backdrop-filter: blur(12px); border-radius: 10px 10px 0 0; }
.ar-pest [role="tab"] { flex: none; position: relative; padding: 8px 14px 9px; margin-bottom: -1px; border: 1px solid transparent; border-bottom: 0; border-radius: 7px 7px 0 0; background: none; color: var(--muted); font-size: 0.86rem; white-space: nowrap; }
.ar-pest [role="tab"]:hover { color: var(--fg); }
.ar-pest [role="tab"][aria-selected="true"] { background: var(--panel-solid); border-color: var(--line); color: var(--fg); }
.ar-pest [role="tab"][aria-selected="true"]::before { content: ''; position: absolute; left: 10px; right: 10px; top: -1px; height: 2px; border-radius: 2px; background: var(--wc, var(--gold)); }
.ar-pest [role="tab"]:focus-visible { outline-offset: -2px; }
body.arch-on .ar-cab + .st-tabs + .st-panel, body.arch-on .ar-cab + .st-panel { margin-top: 18px; }
/* Pie: anterior · posición · siguiente */
.ar-pie { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; margin-top: 40px; padding-top: 20px; border-top: 1px solid var(--line); }
.ar-pie .btn { max-width: 100%; white-space: normal; text-align: left; }
.ar-pie .btn small { color: inherit; opacity: 0.7; font-weight: 400; }
.ar-pos { font-family: var(--font-data); font-size: 0.75rem; color: var(--muted); text-align: center; }
.ar-hueco { flex: 0 0 1px; }
@media (max-width: 560px) { .ar-pie { flex-direction: column; align-items: stretch; } .ar-pie .btn { text-align: center; justify-content: center; } .ar-pos { order: -1; } .ar-hueco { display: none; } }
/* Estado de cada paso (mundos por fases): verde hecho, ámbar en curso, vacío pendiente */
.ar-est { display: inline-block; width: 7px; height: 7px; border-radius: 50%; border: 1px solid var(--faint); flex: none; margin-right: 7px; vertical-align: 1px; }
.ar-est.hecho { background: var(--go, #3fb27f); border-color: var(--go, #3fb27f); }
.ar-est.curso { background: var(--warn, #e0a43a); border-color: var(--warn, #e0a43a); }
.ar-area.hecha > .ar-abtn .ar-num { color: var(--go, #3fb27f); }
/* Bloques dentro de una fase (un bloque por producto) */
.ar-bloque { margin: 2px 0 4px 14px; border-left: 2px solid color-mix(in srgb, var(--wc) 45%, transparent); }
.ar-bloque .ar-hojas { padding-left: 6px; }
.ar-bcab { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 8px; padding: 4px 8px 2px; font-size: 0.8rem; font-weight: 600; color: var(--fg); }
.ar-bst { font-family: var(--font-data); font-size: 0.62rem; font-weight: 400; letter-spacing: 0.04em; color: var(--faint); padding: 1px 6px; border: 1px solid var(--line); border-radius: 999px; white-space: nowrap; }
.ar-bst.hecho { color: var(--go, #3fb27f); border-color: color-mix(in srgb, var(--go, #3fb27f) 50%, transparent); }
.ar-bst.curso { color: var(--warn, #e0a43a); border-color: color-mix(in srgb, var(--warn, #e0a43a) 50%, transparent); }
.ar-pest [role="tab"] .ar-est { margin-right: 8px; }
/* Recorrido completo al pie (mundos por fases) */
.ar-recorrido { margin-top: 40px; display: grid; gap: 8px; min-width: 0; }
.ar-rt { margin: 0 0 2px; font-family: var(--font-data); font-size: 0.68rem; font-weight: 400; letter-spacing: 0.14em; text-transform: uppercase; color: var(--faint); }
.ar-fases { display: grid; gap: 8px; }
.ar-fase { border: 1px solid var(--line); border-radius: 8px; background: rgba(12, 14, 19, 0.6); overflow: hidden; min-width: 0; }
.ar-fase.actual { border-color: color-mix(in srgb, var(--wc, var(--gold)) 45%, var(--line)); }
.ar-fbtn { width: 100%; display: grid; grid-template-columns: 32px minmax(0, 1fr) auto; gap: 12px; align-items: center; padding: 10px 14px; background: none; border: 0; text-align: left; color: var(--fg); }
.ar-fbtn:hover { background: var(--raise); }
.ar-fn { width: 30px; height: 30px; border-radius: 50%; display: grid; place-items: center; font-family: var(--font-data); font-size: 0.82rem; border: 1.5px solid var(--wc, var(--gold)); color: var(--wc, var(--gold)); }
.ar-fase.hecha .ar-fn { background: var(--wc, var(--gold)); color: #0b0d12; }
.ar-ft { display: grid; gap: 2px; min-width: 0; }
.ar-ft b { font-family: var(--font-display); font-size: 0.95rem; font-weight: 600; }
.ar-ft small { color: var(--muted); font-size: 0.8rem; }
.ar-fp { font-family: var(--font-data); font-size: 0.72rem; color: var(--muted); white-space: nowrap; }
.ar-fcuerpo { border-top: 1px solid var(--line); padding: 10px 14px 14px; display: grid; gap: 10px; }
.ar-fbloque { border-left: 3px solid var(--wc, var(--gold)); padding-left: 12px; display: grid; gap: 8px; }
.ar-fbloque h5 { margin: 0; font-family: var(--font-display); font-size: 0.88rem; display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.ar-chips { display: flex; gap: 6px; flex-wrap: wrap; min-width: 0; }
.ar-chips button { display: inline-flex; align-items: center; max-width: 100%; padding: 6px 10px; border: 1px solid var(--line); border-radius: 6px; background: var(--panel-solid, #111418); color: var(--fg); font-size: 0.82rem; text-align: left; }
.ar-chips button:hover { border-color: var(--line-strong); }
.ar-chips button[aria-current="true"] { border-color: var(--wc, var(--gold)); }
/* La ruta, «Abiertos» y las pestañas van siempre justo bajo la barra superior; la portada del mundo (hero), debajo.
   Al abrir otro módulo la portada se pliega (archivador.js, opción «portada») y queda una línea para desplegarla */
body.arch-on .ar-cab ~ .st-panel { margin-top: 18px; }
body.arch-on .ar-cab + :is(#ivHero, #msHero, #lbHero):not(.ar-plegada) { margin-top: 14px; }
.ar-plegada { display: none !important; }
.ar-portada { display: flex; margin-top: -2px; }
.ar-portada[hidden] { display: none; }
.ar-pbtn { display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px; border: 1px solid var(--line); border-radius: 999px; background: none; color: var(--muted); font-size: 0.78rem; }
.ar-pbtn:hover, .ar-pbtn:focus-visible { color: var(--fg); border-color: var(--wc, var(--gold)); }
.ar-pbtn span { font-size: 0.66rem; color: var(--wc, var(--gold)); }
@media print { .ar-arch, .ar-cab, .ar-pie, .ar-recorrido, .ar-carp, .bs-btn, .bs-velo { display: none !important; } body.arch-on .st-main { margin: 0 auto; } }
/* Palancas con su explicación y casilla numérica (Margen y demanda) */
.lv-explica .field { display: grid; gap: 6px; align-content: start; }
.lv-num { display: inline-flex; align-items: center; gap: 4px; }
.lv-num input { width: 5.5em; padding: 4px 6px; text-align: right; font-family: var(--font-data); font-variant-numeric: tabular-nums; }
.lv-num span { color: var(--muted); font-size: 0.82rem; }
.lv-ayuda summary { cursor: pointer; color: var(--muted); font-size: 0.8rem; }
.lv-ayuda p { margin: 6px 0 0; font-size: 0.82rem; color: var(--muted); line-height: 1.45; }
.lv-ayuda b { color: var(--fg); font-weight: 600; }
