/* ID ASTRAL · tokens alineados con la landing publicada (MENTA/ID-ASTRAL-SITE) */
:root {
  color-scheme: dark;
  --ink: #f8efe0;
  --muted: #c5bcae;
  --quiet: #8d8594;
  --gold: #e4c46f;
  --gold-2: #ad8540;
  --night: #080b14;
  --deep: #0b1020;
  --violet: #241831;
  --plum: #4f2b52;
  --line: rgba(228, 196, 111, 0.24);
  --line-soft: rgba(228, 196, 111, 0.12);
  --glass: rgba(255, 255, 255, 0.055);
  --glass-2: rgba(255, 255, 255, 0.085);
  --danger: #e08a7a;
  --ok: #9fd3b2;
  --shadow: 0 24px 80px rgba(0, 0, 0, 0.38);
  --serif: Georgia, "Times New Roman", serif;
  --sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --layer-identidad: #f8efe0;
  --layer-vinculos: #e4c46f;
  --layer-ciclos: #9fd3b2;
  --layer-simbolos: #c9a4e0;
  --layer-experiencias: #8fb8e0;
}

* { box-sizing: border-box; }
[hidden] { display: none !important; }

html { scroll-behavior: auto; }

body {
  margin: 0;
  min-width: 320px;
  min-height: 100vh;
  font-family: var(--sans);
  color: var(--ink);
  background:
    radial-gradient(circle at 18% 12%, rgba(125, 79, 142, 0.4), transparent 32rem),
    radial-gradient(circle at 84% 4%, rgba(228, 196, 111, 0.2), transparent 28rem),
    linear-gradient(145deg, #070912 0%, #111222 48%, #170d1f 100%);
  background-attachment: fixed;
  line-height: 1.5;
}

h1, h2, h3, h4 {
  font-family: var(--serif);
  font-weight: 500;
  letter-spacing: 0.005em;
  margin: 0 0 0.5rem;
  color: var(--ink);
}
h2 { font-size: 1.45rem; }
h3 { font-size: 1.12rem; margin-top: 1.25rem; color: var(--gold); }
p { margin: 0 0 0.75rem; }
.muted { color: var(--muted); }
.quiet { color: var(--quiet); font-size: 0.88rem; }
small { color: var(--quiet); }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }

button, input, select, textarea { font: inherit; }
button { border: 0; cursor: pointer; }
button:disabled, select:disabled, textarea:disabled, input:disabled { cursor: not-allowed; opacity: 0.5; }

input, select, textarea {
  width: 100%;
  border: 1px solid rgba(228, 196, 111, 0.2);
  border-radius: 12px;
  background: rgba(5, 6, 14, 0.55);
  color: var(--ink);
  min-height: 44px;
  padding: 10px 12px;
}
select option { background: var(--deep); color: var(--ink); }
textarea { min-height: 96px; resize: vertical; }
input:focus, select:focus, textarea:focus { outline: 2px solid rgba(228, 196, 111, 0.55); outline-offset: 1px; }

.app-shell { min-height: 100vh; display: flex; flex-direction: column; }

.topbar {
  display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap;
  padding: 1rem clamp(1rem, 4vw, 3rem);
  border-bottom: 1px solid var(--line-soft);
  position: relative; z-index: 2;
}
.brand { display: inline-flex; align-items: center; gap: 12px; }
.brand-mark { color: var(--gold); font-size: 1.4rem; }
.brand strong { display: block; font-family: var(--serif); letter-spacing: 0.12em; font-size: 1.05rem; }
.brand span { display: block; color: var(--quiet); font-size: 0.82rem; }
.profile-switcher { display: flex; gap: 0.5rem; align-items: center; flex-wrap: wrap; }
.profile-switcher select { min-width: 180px; width: auto; }

.tabs {
  display: flex; gap: 0.25rem; flex-wrap: wrap;
  padding: 0.75rem clamp(1rem, 4vw, 3rem) 0;
}
.tab {
  background: transparent; color: var(--muted); padding: 0.6rem 0.9rem; border-radius: 999px;
  border: 1px solid transparent; font-weight: 600; font-size: 0.92rem;
}
.tab:hover { color: var(--ink); background: var(--glass); }
.tab.is-active { color: #17100b; background: linear-gradient(135deg, var(--gold), #f5df99); }

.workspace { flex: 1; padding: 1.25rem clamp(1rem, 4vw, 3rem) 2rem; display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.25rem; }
.view, .panel { min-width: 0; }

.panel {
  border: 1px solid var(--line-soft);
  border-radius: 22px;
  background: var(--glass);
  padding: clamp(1rem, 2.5vw, 1.6rem);
  box-shadow: var(--shadow);
}
.panel-head { display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap; margin-bottom: 0.5rem; }
.panel-head h2 { margin: 0; }
.profile-panel { max-width: 860px; }

.form-grid { display: grid; gap: 0.85rem; }
.field { display: grid; gap: 0.35rem; }
.field label { color: var(--muted); font-size: 0.9rem; }
.field.inline { grid-template-columns: auto auto; align-items: center; gap: 0.5rem; }
.field.inline select { width: auto; min-width: 160px; }
.check { display: flex; gap: 0.6rem; align-items: flex-start; color: var(--muted); font-size: 0.92rem; }
.check input { width: auto; min-height: 0; margin-top: 0.3rem; }
.grid-two { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); }
.grid-three { display: grid; gap: 0.75rem; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); }
.grid-conversation { display: grid; gap: 1.25rem; grid-template-columns: minmax(0, 1.6fr) minmax(280px, 1fr); }
.grid-matrix { display: grid; gap: 1.25rem; grid-template-columns: minmax(0, 1.5fr) minmax(300px, 1fr); }
.button-row { display: flex; gap: 0.5rem; flex-wrap: wrap; align-items: center; }
.stack { display: grid; gap: 0.75rem; }

.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 0.4rem;
  min-height: 42px; padding: 0.55rem 1.1rem; border-radius: 999px;
  background: linear-gradient(135deg, var(--gold), #f5df99); color: #17100b; font-weight: 700;
}
.btn-secondary { background: var(--glass-2); color: var(--ink); border: 1px solid var(--line); }
.btn-ghost { background: transparent; color: var(--muted); border: 1px solid transparent; }
.btn-ghost:hover { color: var(--ink); border-color: var(--line-soft); }
.btn-small { min-height: 32px; padding: 0.25rem 0.7rem; font-size: 0.85rem; }
.btn-danger { color: var(--danger); }

.pill {
  display: inline-flex; align-items: center; padding: 0.2rem 0.6rem; border-radius: 999px;
  border: 1px solid var(--line-soft); color: var(--muted); font-size: 0.78rem; letter-spacing: 0.02em;
}
.pill-gold { color: var(--gold); border-color: var(--line); }
.pill-ok { color: var(--ok); }
.pill-warn { color: #f0c987; }

.notice {
  margin-top: 1rem; padding: 0.9rem 1rem; border-radius: 14px;
  border: 1px solid var(--line); background: rgba(228, 196, 111, 0.06); color: var(--muted); font-size: 0.92rem;
}
.notice strong { color: var(--gold); }

.list-item {
  border: 1px solid var(--line-soft); border-radius: 14px; padding: 0.8rem 0.95rem; background: rgba(5, 6, 14, 0.35);
  display: grid; gap: 0.4rem;
}
.list-item header { display: flex; justify-content: space-between; gap: 0.5rem; align-items: baseline; flex-wrap: wrap; }
.list-item p { margin: 0; white-space: pre-wrap; }
.list-item .actions { display: flex; gap: 0.35rem; flex-wrap: wrap; }

/* Conversacion */
.conversation-list { display: grid; gap: 0.75rem; max-height: 52vh; overflow: auto; padding: 0.25rem; margin-bottom: 1rem; }
.message { border-radius: 16px; padding: 0.8rem 1rem; max-width: 92%; display: grid; gap: 0.35rem; }
.message p { margin: 0; white-space: pre-wrap; }
.message time, .message details { color: var(--quiet); font-size: 0.78rem; }
.message-user { justify-self: end; background: rgba(228, 196, 111, 0.14); border: 1px solid var(--line-soft); }
.message-companion { justify-self: start; background: rgba(5, 6, 14, 0.5); border: 1px solid var(--line-soft); }
.message details summary { cursor: pointer; }
.context-panel h3 { margin-top: 0; }
.context-group { margin-bottom: 0.85rem; }
.context-group h4 { margin: 0 0 0.3rem; font-family: var(--sans); font-size: 0.8rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--gold); }
.context-group ul { margin: 0; padding-left: 1.1rem; color: var(--muted); font-size: 0.9rem; }
.context-group.is-off { opacity: 0.55; }

/* Informe */
.report { display: grid; gap: 1.25rem; }
.report section { border: 1px solid var(--line-soft); border-radius: 18px; padding: 1.1rem 1.25rem; background: rgba(5, 6, 14, 0.35); }
.report h2 { font-size: 1.25rem; margin-bottom: 0.6rem; }
.report h2 span { color: var(--gold); margin-right: 0.5rem; }
.report table { width: 100%; border-collapse: collapse; font-size: 0.92rem; }
.report th, .report td { text-align: left; padding: 0.5rem 0.6rem; border-bottom: 1px solid var(--line-soft); vertical-align: top; }
.report th { color: var(--quiet); font-weight: 600; font-size: 0.8rem; letter-spacing: 0.06em; text-transform: uppercase; }
.report td.num { font-family: var(--serif); font-size: 1.05rem; color: var(--gold); white-space: nowrap; }
.report .note { border-left: 2px solid var(--line); padding-left: 0.85rem; color: var(--muted); font-size: 0.92rem; margin-bottom: 0.75rem; }
.report .note strong { display: block; color: var(--ink); font-family: var(--serif); font-weight: 500; }
.report .header-table td:first-child { color: var(--quiet); width: 32%; }
.report .closing { font-family: var(--serif); font-size: 1.1rem; color: var(--ink); }
.report .methods { display: flex; gap: 0.4rem; flex-wrap: wrap; }
.report .cycles { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); margin-top: 0.75rem; }
.report .is-current td { color: var(--ink); background: rgba(228, 196, 111, 0.08); }
.report .empty { color: var(--quiet); font-style: italic; }
.report .square { display: grid; grid-template-columns: repeat(3, 44px); gap: 4px; }
.report .square span { border: 1px solid var(--line-soft); border-radius: 8px; text-align: center; padding: 0.35rem 0; font-size: 0.85rem; }
.report .square span b { color: var(--gold); }

/* Matriz */
.graph-wrap { border: 1px solid var(--line-soft); border-radius: 18px; background: radial-gradient(circle at 50% 50%, rgba(79, 43, 82, 0.35), rgba(5, 6, 14, 0.6) 70%); overflow: hidden; }
#graphSvg { width: 100%; height: auto; display: block; }
#graphSvg .edge { stroke: rgba(228, 196, 111, 0.35); stroke-width: 1.2; }
#graphSvg .edge-label { fill: var(--quiet); font-size: 10px; }
#graphSvg .node circle { stroke: rgba(8, 11, 20, 0.9); stroke-width: 2; }
#graphSvg .node text { fill: var(--ink); font-size: 11px; text-anchor: middle; }
#graphSvg .node .sub { fill: var(--quiet); font-size: 9px; }
#graphSvg .node-self circle { fill: var(--layer-identidad); }
#graphSvg .node-vinculos circle { fill: var(--layer-vinculos); }
#graphSvg .node-ciclos circle { fill: var(--layer-ciclos); }
#graphSvg .node-simbolos circle { fill: var(--layer-simbolos); }
#graphSvg .node-experiencias circle { fill: var(--layer-experiencias); }
#graphSvg .node-identidad circle { fill: var(--layer-identidad); }
#graphSvg .ring { fill: none; stroke: rgba(228, 196, 111, 0.12); stroke-dasharray: 3 5; }
.legend { display: flex; gap: 0.75rem; flex-wrap: wrap; margin-top: 0.75rem; color: var(--muted); font-size: 0.85rem; }
.legend span::before { content: ""; display: inline-block; width: 10px; height: 10px; border-radius: 50%; margin-right: 6px; background: var(--dot); }

/* Tablas simples */
.kv { width: 100%; border-collapse: collapse; font-size: 0.9rem; }
.kv td { padding: 0.45rem 0.5rem; border-bottom: 1px solid var(--line-soft); vertical-align: top; }
.kv td:first-child { color: var(--quiet); width: 42%; }
.kv .yes { color: var(--ok); }
.kv .no { color: var(--danger); }

.footer {
  display: flex; justify-content: space-between; gap: 1rem; flex-wrap: wrap;
  padding: 1.5rem clamp(1rem, 4vw, 3rem); border-top: 1px solid var(--line-soft);
  color: var(--quiet); font-size: 0.85rem;
}

/* Informe V2: lectura larga, índice estable y anexo separado. */
.reading-intro, .reading-chapter, .reading-annex { max-width: 82ch; margin-inline: auto; }
.reading-intro { padding: 1rem 0 2rem; }
.reading-index ol { columns: 2; column-gap: 2rem; padding-left: 1.4rem; }
.reading-index li { break-inside: avoid; margin-bottom: .7rem; }
.reading-index a, .reading-links a { color: var(--gold, #e4c46f); text-underline-offset: .2em; }
.reading-unit { margin: 2.5rem 0; padding-bottom: 1.5rem; border-bottom: 1px solid var(--line-soft); scroll-margin-top: 1rem; }
.reading-unit p { line-height: 1.85; margin: .95rem 0; }
.reading-unit h4 { margin-bottom: .3rem; }
.reading-calculation { padding: .7rem 1rem; background: rgba(170, 160, 135, .07); border-left: 2px solid var(--gold, #e4c46f); }
.reading-pending { opacity: .85; }
.reading-coverage, .reading-links { font-size: .9rem; }
.reading-annex, .technical-report { margin-top: 2rem; padding: 1rem; border: 1px solid var(--line-soft); border-radius: .6rem; }
.reading-annex summary, .technical-report summary { cursor: pointer; font-weight: 600; }
.reading-explore { margin-top: .5rem; }
#personReading { margin-top: 1rem; min-width: 0; }
#personReading > details { padding: .8rem 0; border-bottom: 1px solid var(--line-soft); }
#personReading summary { cursor: pointer; }
.cycle-table-scroll { max-width: 100%; overflow-x: auto; }
.cycle-table-scroll table { width: 100%; min-width: 480px; border-collapse: collapse; }
.cycle-table-scroll th, .cycle-table-scroll td { text-align: left; vertical-align: top; padding: .5rem .65rem; border-bottom: 1px solid var(--line-soft); }
.cycle-table-scroll td:first-child { white-space: nowrap; }
@media (max-width: 620px) { .reading-index ol { columns: 1; } }

@media (max-width: 900px) {
  .grid-conversation, .grid-matrix { grid-template-columns: 1fr; }
  .conversation-list { max-height: 40vh; }
}
@media (max-width: 620px) {
  .tabs { gap: 0.15rem; }
  .tab { padding: 0.5rem 0.65rem; font-size: 0.85rem; }
  .profile-switcher select { min-width: 0; flex: 1; }
}

@media print {
  :root { color-scheme: light; --ink: #111; --gold: #6b5216; --muted: #444; --quiet: #444; }
  body { background: #fff; color: #111; }
  /* Sin preparación no se imprimen accidentalmente otras vistas privadas. */
  body:not([data-print-reading]) > *, [data-print-omit] { display: none !important; }
  [data-print-path], [data-print-root] { display: block !important; width: auto; max-width: none; margin: 0; padding: 0; }
  [data-print-root], [data-print-root] section, [data-print-root] details { background: #fff; box-shadow: none; border-color: #ccc; }
  [data-print-root] { overflow-wrap: anywhere; }
  [data-print-root] button, [data-print-root] form, .technical-report { display: none !important; }
  [data-print-root] section, [data-print-root] details, .reading-unit { break-inside: auto; }
  [data-print-root] h2, [data-print-root] h3, [data-print-root] h4, [data-print-root] summary { break-after: avoid; }
  [data-print-root] th, [data-print-root] td { border-color: #ddd; }
  [data-print-root] a, .report td.num, .report h2 span, .report h3 { color: #6b5216; }
  [data-print-root] a[href^="https://"]::after { content: " (" attr(href) ")"; font-size: .85em; }
  .report th, .report .note, .report .header-table td:first-child, .muted, .quiet { color: #444; }
  .pill { border-color: #ccc; color: #444; }
  .cycle-table-scroll { overflow: visible; }
  .cycle-table-scroll table { min-width: 0; }
}

/* Acceso por teclado: no altera la composición mientras el control no tiene foco. */
.skip-link { position: absolute; left: 1rem; top: -8rem; z-index: 20; padding: .75rem 1rem; background: var(--deep); color: var(--ink); }
.skip-link:focus { top: 1rem; }
button:focus-visible, a:focus-visible, summary:focus-visible, [tabindex]:focus-visible { outline: 2px solid var(--gold); outline-offset: 4px; }
#graphSvg [role="button"]:focus-visible circle { stroke: var(--gold); stroke-width: 4; }
@media print { .skip-link { display: none !important; } }

/* Lectura por capas: acciones claras, contenido completo al abrir. */
:root { --quiet: #b0a7b8; }
button:focus-visible, a:focus-visible, summary:focus-visible { outline: 2px solid var(--gold); outline-offset: 4px; }
.brand { background: transparent; color: var(--ink); text-align: left; padding: 0; }
.brand span.brand-mark { color: var(--gold); font-size: 1.7rem; }
.workspace { width: 100%; max-width: 1360px; margin: 0 auto; }
.topbar { box-shadow: none; }
.profile-switcher select { max-width: 230px; }
h1 { font-size: clamp(1.8rem, 3vw, 2.5rem); line-height: 1.12; }
summary { cursor: pointer; color: var(--ink); padding: .75rem 0; }
details > :not(summary) { margin-top: .6rem; }
.more-nav { position: relative; z-index: 5; }
.more-nav > summary { padding: .6rem 1rem; font-weight: 600; color: var(--muted); }
.more-menu { position: absolute; top: 100%; left: 0; width: 220px; padding: .6rem; border: 1px solid var(--line); background: #161323; border-radius: 16px; box-shadow: var(--shadow); }
.more-menu .tab { width: 100%; text-align: left; border-radius: 8px; }
.welcome-hero { display: grid; grid-template-columns: 1.35fr 1fr; gap: 4rem; align-items: center; padding: clamp(1rem,4vw,4rem) 0 3rem; }
.welcome-hero h1 { font-size: clamp(2.8rem,5.5vw,5rem); letter-spacing: -.035em; line-height: 1.08; margin: .8rem 0 1.5rem; }
.welcome-lead { font-size: 1.12rem; line-height: 1.75; color: var(--muted); max-width: 40rem; margin-bottom: 1.5rem; }
.welcome-hero .quiet { margin-top: 1.2rem; max-width: 26rem; }
.symbol-orbit { aspect-ratio: 1; border: 1px solid var(--line); border-radius: 50%; display: grid; place-content: center; position: relative; max-width: 350px; width: 100%; justify-self: center; box-shadow: 0 0 90px rgba(200,155,225,.07); }
.symbol-orbit::before { content: ''; position: absolute; inset: 12%; border: 1px solid var(--line-soft); border-radius: 50%; }
.symbol-orbit span { color: var(--gold); font-size: 4rem; text-align: center; line-height: 1.1; }
.symbol-orbit b { text-align: center; font: 1.4rem/1.4 var(--serif); color: var(--muted); margin-top: 1rem; }
.symbol-orbit i { position: absolute; background: #161323; font-style: normal; color: var(--gold); font-size: 1.8rem; padding: 0 .7rem; }
.symbol-orbit i:nth-of-type(1) { top: 0; left: 23%; }.symbol-orbit i:nth-of-type(2) { bottom: 18%; right: -2%; }.symbol-orbit i:nth-of-type(3) { bottom: 18%; left: -2%; }
.journey-cards { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1rem; }
.journey-cards article, .journey-cards > button { padding: 1.5rem; border: 1px solid var(--line); border-radius: 18px; background: var(--glass); color: var(--ink); text-align: left; }
.journey-cards h2, .journey-cards strong { display: block; font: 1.4rem/1.25 var(--serif); margin: 1rem 0 .75rem; }
.journey-cards p, .journey-cards button > span:not(.eyebrow) { color: var(--muted); font-size: .94rem; line-height: 1.6; }
.journey-cards button > span:last-child { display: block; color: var(--gold); margin-top: 1rem; font-size: 1.4rem; }
.action-cards > button:hover { border-color: var(--gold); background: var(--glass-2); }
.welcome-bottom { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 1rem; padding: 1.5rem 0; }
.welcome-return { padding: 2rem 0 2.5rem; }.welcome-return h1 { margin: .5rem 0 1rem; }
.profile-panel { width: 100%; max-width: 760px; margin: 1rem auto; }
.profile-steps { list-style: none; display: flex; gap: 1rem; padding: 0; margin: 1.4rem 0 2rem; color: var(--quiet); border-bottom: 1px solid var(--line-soft); }
.profile-steps li { flex: 1; padding-bottom: .7rem; font-size: .87rem; }
.profile-steps [aria-current] { color: var(--gold); border-bottom: 2px solid var(--gold); }
fieldset { border: 0; padding: 0; margin: 0; min-width: 0; display: grid; gap: 1rem; }
legend { font: 1.6rem var(--serif); padding: 0 0 .8rem; }
.form-extra { margin: .7rem 0; border-top: 1px solid var(--line-soft); }
.form-extra input, .form-extra select { margin-bottom: .5rem; }
.wizard-actions { justify-content: flex-end; margin-top: 1.2rem; }
.form-error { color: var(--danger); border-left: 2px solid; padding: .7rem; }
.profile-review dl { display: grid; grid-template-columns: 1fr 2fr; gap: .7rem 1rem; }.profile-review dt { color: var(--quiet); }.profile-review dd { margin: 0; }
.reading-date { margin-bottom: 1rem; }.reading-date summary { color: var(--muted); font-size: .9rem; }
.reading-intro { padding: 1.2rem 0; }.reading-intro > p { max-width: 65ch; }
.reading-shortcuts { display: flex; gap: .6rem; flex-wrap: wrap; margin: 1.2rem 0; }.reading-shortcuts a { border: 1px solid var(--line); border-radius: 12px; padding: .8rem 1rem; text-decoration: none; color: var(--gold); }
.reading-shortcuts a:hover { background: var(--glass-2); }
.report details.reading-chapter { margin: .65rem 0; border: 1px solid var(--line); border-radius: 16px; background: rgba(5,6,14,.25); }
.reading-chapter > summary { padding: 1.25rem; display: flex; gap: 1rem; align-items: center; font: 1.25rem var(--serif); }
.reading-chapter > summary::after { content: '+'; margin-left: auto; color: var(--gold); font: 1.5rem var(--sans); }.reading-chapter[open] > summary::after { content: '−'; }
.chapter-number { color: var(--gold); font: .8rem var(--sans); letter-spacing: .08em; }
.chapter-content { padding: 0 clamp(1rem,3vw,2rem) 1.5rem; }.chapter-content .reading-unit { max-width: 80ch; margin-left: auto; margin-right: auto; }
.suggestion-row { display: flex; flex-wrap: wrap; gap: .6rem; margin: 1rem 0; }
.grid-conversation { grid-template-columns: minmax(0,1fr); max-width: 900px; margin: 0 auto; }.context-panel { box-shadow: none; }
#viewContexto, #viewMatriz { display: grid; gap: 1.2rem; }
#viewContexto > .panel, #viewContexto > .grid-two { max-width: 1050px; width: 100%; margin: 0 auto; }
#graphEvidence { box-shadow: none; }
.library-entry { padding: .4rem 1rem; margin-bottom: .5rem; border-radius: 12px; border: 1px solid var(--line-soft); }
#profileError:empty { display: none; }
@media (max-width: 720px) {
  .topbar { padding: .8rem 1rem; }.brand span { font-size: .7rem; }.profile-switcher { gap: .2rem; }.profile-switcher select { min-width: 110px; max-width: 150px; font-size: .85rem; }
  .tabs { gap: .1rem; padding: .6rem .7rem 0; }.tab { padding: .55rem .65rem; font-size: .82rem; }.more-nav > summary { font-size: .82rem; padding: .55rem .6rem; }
  .welcome-hero { grid-template-columns: 1fr; gap: 1.2rem; padding: 1rem 0; }.symbol-orbit { display: none; }.welcome-hero h1 { font-size: 3.1rem; }.welcome-lead { font-size: 1rem; }
  .journey-cards { grid-template-columns: 1fr; }.journey-cards article { padding: 1rem 1.25rem; }.journey-cards h2 { margin: .5rem 0; }.welcome-bottom { justify-content: flex-start; gap: .25rem; }
  .profile-panel { margin: 0; }.profile-steps { gap: .5rem; }.profile-steps li { font-size: .75rem; }
  .reading-shortcuts { display: grid; grid-template-columns: 1fr; }.reading-chapter > summary { font-size: 1.07rem; padding: 1rem; }.chapter-content { padding: 0 .85rem 1rem; }
  .profile-review dl { grid-template-columns: 1fr; gap: .2rem; }.profile-review dd { margin-bottom: .7rem; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
@media print { :root { --quiet: #444444; } .reading-shortcuts, .reading-date { display: none !important; } .report details.reading-chapter { background: white; border: 0; }.reading-chapter > summary::after { display: none; }.reading-chapter > summary { break-after: avoid; padding-left: 0; }.chapter-content { padding: 0; } }

@media (max-width: 720px) { .tabs { position: relative; }.more-nav { position: static; }.more-menu { left: auto; right: 1rem; max-width: calc(100vw - 2rem); } }

/* Hoy, personas y memoria visible. */
.today-heading { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:1rem; padding:1rem 0 1.5rem; }
.today-heading h1 { margin:.5rem 0; }
.today-grid { display:grid; grid-template-columns:1.2fr 1fr; gap:1.25rem; margin-bottom:1.25rem; }
.today-symbol { background:linear-gradient(125deg,rgba(120,84,160,.18),rgba(228,196,111,.06)); }
.today-symbol h2 { font-family:var(--serif); font-size:2.3rem; color:var(--gold); }
.today-theme { font-size:1.08rem; }
.today-cycles { display:flex; gap:1rem; justify-content:space-between; margin:1.4rem 0; }
.today-cycles div { display:grid; gap:.5rem; text-align:center; }
.today-cycles strong { font-family:var(--serif); font-size:2.7rem; color:var(--gold); }
.today-cycles span { font-size:.85rem; color:var(--muted); }
.memory-card { display:grid; width:100%; gap:.5rem; border:1px solid var(--line-soft); border-radius:12px; padding:1rem; margin:.7rem 0; text-align:left; background:var(--glass); color:var(--ink); overflow-wrap:anywhere; }
.memory-card > span:last-child { color:var(--muted); line-height:1.6; }
.people-shortcuts { display:flex; gap:.5rem; flex-wrap:wrap; margin:1rem 0; }
.history-filters { display:grid; gap:.8rem; margin:1rem 0; }
.history-filters > label:not(.check) { display:grid; gap:.4rem; }
#journalList .list-item > p { white-space:pre-wrap; overflow-wrap:anywhere; }
@media (max-width:720px) { .today-grid { grid-template-columns:1fr; }.today-symbol h2 { font-size:1.9rem; }.today-heading { padding-top:.5rem; } }
