/* =============================================================
   VECTAX LEGAL · Herramientas
   Complementa assets/styles.css. Usa sus mismas variables
   (--bg, --surface, --on-bg, --gold, --radius…), así que sigue
   el modo claro/oscuro de la web sin tocar nada más.
   ============================================================= */
:root{
  --t-accent:var(--gold-dark);
  --t-accent-soft:rgba(180,150,110,.16);
  --t-alert:var(--alert);
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){--t-accent:var(--gold);--t-accent-soft:rgba(201,168,124,.16);--t-alert:#E39A90;}
}
:root[data-theme="dark"]{--t-accent:var(--gold);--t-accent-soft:rgba(201,168,124,.16);--t-alert:#E39A90;}

.primary-nav a[aria-current="page"]{border-color:var(--gold);}
/* Menú con 6 apartados: más aire y menú desplegable hasta 1120 px */
.header-row{gap:28px;}
@media (min-width:861px){
  nav.primary-nav{gap:18px;}
  .primary-nav a:not(.btn){font-size:.9rem;letter-spacing:.01em;}
}
@media (min-width:861px) and (max-width:1120px){
  .menu-toggle{display:inline-flex;}
  nav.primary-nav{position:fixed;inset:72px 0 auto 0;background:var(--bg);border-bottom:1px solid var(--on-bg-line);flex-direction:column;gap:0;padding:8px 24px 20px;transform:translateY(-12px);opacity:0;pointer-events:none;transition:transform .2s ease,opacity .2s ease;}
  nav.primary-nav.is-open{transform:translateY(0);opacity:1;pointer-events:auto;}
  .primary-nav a:not(.btn){padding-block:14px;border-bottom:1px solid var(--on-bg-line);width:100%;font-size:.95rem;}
}

.t-vh{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;}
.btn[disabled]{opacity:.35;cursor:default;}
button.btn{font-size:.92rem;}

/* Modo incrustado (?embed=1): solo la herramienta */
html.embed header,html.embed footer,html.embed .hero,html.embed .brief,html.embed .skip-link{display:none;}
html.embed section{padding-block:24px;}

/* ---------- Ficha de la cabecera (misma pieza .doc de la portada) ---------- */
.t-doc-title{font-weight:700;font-size:1.05rem;line-height:1.3;color:var(--navy-900);margin-bottom:6px;}
.t-doc-sub{font-family:"IBM Plex Mono",monospace;font-size:.72rem;letter-spacing:.02em;color:var(--ink-soft);margin-bottom:16px;}

/* ---------- Enlaces tipo "abrir" ---------- */
.t-open{display:inline-block;margin-top:12px;font-family:"IBM Plex Mono",monospace;font-size:.76rem;letter-spacing:.02em;color:var(--t-accent);text-decoration:none;border-bottom:1px solid var(--gold);}
.t-open:hover{color:var(--on-bg);}
.area-row h3 a{text-decoration:none;}
.area-row h3 a:hover{color:var(--t-accent);}

/* ---------- Controles del calendario ---------- */
.t-controls{display:flex;flex-direction:column;gap:14px;padding-bottom:22px;border-bottom:1px solid var(--on-bg-line);}
.t-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center;}
.t-label{font-family:"IBM Plex Mono",monospace;font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;color:var(--on-bg-soft);margin-right:6px;}
.t-chip{font-family:"Archivo",sans-serif;font-weight:600;font-size:.88rem;background:transparent;color:var(--on-bg-soft);border:1px solid var(--on-bg-line);border-radius:var(--radius);padding:9px 14px;min-height:40px;cursor:pointer;}
.t-chip:hover{border-color:var(--gold);}
.t-chip[aria-pressed="true"]{background:var(--on-bg);color:var(--bg);border-color:var(--on-bg);}
.t-search{flex:1 1 240px;max-width:420px;}
.t-tabs{display:flex;gap:28px;border-bottom:1px solid var(--on-bg-line);margin:26px 0 24px;}
.t-tab{background:none;border:0;border-bottom:2px solid transparent;margin-bottom:-1px;padding:10px 0;min-height:44px;font-family:"Archivo",sans-serif;font-weight:700;font-size:.95rem;color:var(--on-bg-soft);cursor:pointer;}
.t-tab[aria-selected="true"]{color:var(--on-bg);border-color:var(--gold);}

/* ---------- Vista mensual ---------- */
.t-cal-nav{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:14px;}
.t-cal-nav h2{font-size:1.45rem;font-weight:700;letter-spacing:-.01em;margin-right:auto;text-transform:capitalize;}
.t-icon{width:44px;height:44px;padding:0;font-size:1.1rem;}
.t-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;}
.t-dow{font-family:"IBM Plex Mono",monospace;font-size:.7rem;letter-spacing:.06em;text-transform:uppercase;color:var(--on-bg-soft);text-align:center;padding:6px 0;}
.t-day{position:relative;min-height:96px;background:var(--bg);border:1px solid var(--on-bg-line);border-radius:var(--radius);padding:7px 7px 8px;text-align:left;display:flex;flex-direction:column;gap:4px;overflow:hidden;font:inherit;color:inherit;}
.t-day.blank{background:transparent;border-color:transparent;}
.t-day.wk{background:var(--surface);}
.t-day .n{font-family:"IBM Plex Mono",monospace;font-size:.76rem;color:var(--on-bg-soft);}
.t-day.past{opacity:.45;}
.t-day.today{box-shadow:inset 0 0 0 2px var(--on-bg);}
.t-day.today .n{color:var(--on-bg);font-weight:500;}
button.t-day{cursor:pointer;}
button.t-day:hover{border-color:var(--gold);}
.t-day.has{border-top:3px solid var(--gold);}
.t-day.has .n{color:var(--on-bg);font-weight:500;}
.t-day.sel{background:var(--t-accent-soft);border-color:var(--gold);}
.t-pill{display:block;font-family:"IBM Plex Mono",monospace;font-size:.66rem;line-height:1.45;padding:1px 5px;border-radius:2px;background:var(--t-accent-soft);color:var(--on-bg);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.t-pill.dom{background:transparent;border:1px dashed var(--t-accent);color:var(--t-accent);}
.t-more{font-family:"IBM Plex Mono",monospace;font-size:.66rem;color:var(--on-bg-soft);}
.t-dots{display:none;gap:3px;justify-content:center;flex-wrap:wrap;margin-top:auto;}
.t-dot{width:6px;height:6px;border-radius:50%;background:var(--gold);}
.t-dot.dom{background:transparent;border:1.5px solid var(--t-accent);}
.t-legend{display:flex;flex-wrap:wrap;gap:6px 20px;margin-top:14px;font-family:"IBM Plex Mono",monospace;font-size:.72rem;color:var(--on-bg-soft);}
.t-legend i{display:inline-block;width:12px;height:12px;border-radius:2px;vertical-align:-2px;margin-right:6px;}
.lg-plazo{background:var(--t-accent-soft);border-top:3px solid var(--gold);}
.lg-dom{border:1px dashed var(--t-accent);}
.lg-hoy{box-shadow:inset 0 0 0 2px var(--on-bg);}
@media (max-width:640px){
  .t-day{min-height:54px;padding:5px 3px;align-items:center;}
  .t-day .t-pill,.t-day .t-more{display:none;}
  .t-dots{display:flex;}
  .t-dow{font-size:.62rem;letter-spacing:0;}
}

/* ---------- Detalle de plazos (misma lógica visual que la lista de análisis) ---------- */
.t-detail{margin-top:34px;}
.t-detail-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:8px;}
.t-detail-head h3{font-size:1.2rem;font-weight:700;}
.t-detail-head h3::first-letter{text-transform:uppercase;}
.t-linkbtn{background:none;border:0;padding:6px 0;font-family:"IBM Plex Mono",monospace;font-size:.76rem;color:var(--t-accent);text-decoration:underline;cursor:pointer;}
.t-dayblock{margin-top:24px;}
.t-dayblock h4{margin:0 0 2px;font-family:"IBM Plex Mono",monospace;font-weight:500;font-size:.74rem;letter-spacing:.06em;text-transform:uppercase;color:var(--t-accent);}
.t-items{list-style:none;margin:0;padding:0;}
.t-item{padding:18px 0;border-bottom:1px solid var(--on-bg-line);}
.t-item.past{opacity:.55;}
.t-item-top{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;}
.t-period{display:block;font-family:"IBM Plex Mono",monospace;font-size:.72rem;letter-spacing:.04em;color:var(--t-accent);margin-bottom:5px;}
.t-item h5{margin:0;font-size:1.04rem;font-weight:700;line-height:1.35;}
.t-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px;}
.t-tag{font-family:"IBM Plex Mono",monospace;font-size:.7rem;border:1px solid var(--on-bg-line);border-radius:2px;padding:2px 7px;color:var(--on-bg);}
.t-tag.who{color:var(--on-bg-soft);}
.t-note{margin-top:8px;font-size:.92rem;color:var(--on-bg-soft);max-width:70ch;}
.t-dom-line{margin-top:8px;font-size:.92rem;}
.t-links{display:flex;flex-wrap:wrap;gap:4px 18px;margin-top:10px;font-family:"IBM Plex Mono",monospace;font-size:.72rem;}
.t-links a{color:var(--t-accent);}
.t-cnt{flex:none;font-family:"IBM Plex Mono",monospace;font-size:.7rem;font-weight:500;padding:5px 8px;border-radius:2px;border:1px solid var(--on-bg-line);color:var(--on-bg-soft);white-space:nowrap;}
.t-cnt.soon{border-color:var(--t-alert);color:var(--t-alert);}
.t-cnt.today{background:var(--t-alert);border-color:var(--t-alert);color:var(--bg);}
.t-empty{padding:26px 0;color:var(--on-bg-soft);border-top:1px solid var(--on-bg-line);}

/* ---------- Línea del tiempo: resumen anual ---------- */
.t-year{margin-bottom:34px;}
.t-year h3{margin-bottom:12px;font-family:"IBM Plex Mono",monospace;font-weight:500;font-size:.74rem;letter-spacing:.06em;text-transform:uppercase;color:var(--t-accent);}
.t-strip{position:relative;padding-top:20px;}
.t-track{position:relative;height:48px;background:var(--surface);border:1px solid var(--on-bg-line);border-radius:var(--radius);}
.t-q{position:absolute;top:0;bottom:0;border-right:1px solid var(--on-bg-line);}
.t-q:last-of-type{border-right:0;}
.t-q span{position:absolute;top:-20px;left:4px;font-family:"IBM Plex Mono",monospace;font-size:.68rem;color:var(--on-bg-soft);}
.t-elapsed{position:absolute;left:0;top:0;bottom:0;background:var(--t-accent-soft);pointer-events:none;}
.t-mk{position:absolute;top:50%;transform:translate(-50%,-50%);border-radius:50%;background:var(--gold);border:2px solid var(--bg);padding:0;cursor:pointer;}
.t-mk.past{background:var(--on-bg-soft);opacity:.55;}
.t-mk.is-next{box-shadow:0 0 0 3px var(--t-alert);}
.t-mk:hover,.t-mk:focus-visible{transform:translate(-50%,-50%) scale(1.25);}
.t-now{position:absolute;top:-6px;bottom:-6px;width:2px;background:var(--on-bg);pointer-events:none;}
.t-now span{position:absolute;bottom:-22px;left:50%;transform:translateX(-50%);font-family:"IBM Plex Mono",monospace;font-size:.68rem;color:var(--on-bg);white-space:nowrap;}
.t-months{display:grid;grid-template-columns:repeat(12,1fr);margin-top:26px;}
.t-months span{font-family:"IBM Plex Mono",monospace;font-size:.66rem;text-transform:uppercase;color:var(--on-bg-soft);padding-left:3px;border-left:1px solid var(--on-bg-line);}
@media (max-width:640px){.t-months .l{display:none;}}
@media (min-width:641px){.t-months .s{display:none;}}

/* ---------- Línea del tiempo: detalle vertical ---------- */
.t-tl{list-style:none;margin:0;padding:0;}
.t-node,.t-now-row{display:grid;grid-template-columns:70px 24px minmax(0,1fr);column-gap:14px;}
.t-node-date{text-align:right;padding-top:18px;}
.t-node-date .d{font-weight:800;font-size:1.7rem;line-height:1;color:var(--on-bg);}
.t-node-date .m{margin-top:4px;font-family:"IBM Plex Mono",monospace;font-size:.7rem;letter-spacing:.06em;text-transform:uppercase;color:var(--on-bg-soft);}
.t-rail{position:relative;}
.t-rail::before{content:"";position:absolute;left:50%;top:0;bottom:0;width:1px;background:var(--on-bg-line);transform:translateX(-50%);}
.t-rail-dot{position:absolute;left:50%;top:22px;width:12px;height:12px;border-radius:50%;transform:translateX(-50%);background:var(--bg);border:2px solid var(--gold);}
.t-node.past .t-rail-dot{background:var(--on-bg-soft);border-color:var(--on-bg-soft);}
.t-node.past .t-node-date{opacity:.5;}
.t-node.is-next .t-rail-dot{background:var(--gold);box-shadow:0 0 0 4px var(--t-accent-soft);}
.t-node.flash .t-item{background:var(--t-accent-soft);transition:background .3s ease;}
.t-now-row{align-items:center;padding:12px 0;}
.t-now-row .lbl{text-align:right;font-family:"IBM Plex Mono",monospace;font-size:.72rem;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--on-bg);}
.t-now-row .t-rail-dot{top:50%;transform:translate(-50%,-50%);width:9px;height:9px;background:var(--on-bg);border-color:var(--on-bg);}
.t-now-row .txt{font-family:"IBM Plex Mono",monospace;font-size:.72rem;color:var(--on-bg-soft);}
.t-show-past{margin:0 0 10px 108px;}
@media (max-width:520px){
  .t-node,.t-now-row{grid-template-columns:44px 16px minmax(0,1fr);column-gap:10px;}
  .t-node-date .d{font-size:1.3rem;}
  .t-show-past{margin-left:70px;}
}

/* ---------- Notas al pie de la herramienta ---------- */
.t-foot{margin-top:44px;padding-top:16px;border-top:1px solid var(--on-bg-line);}
.t-source{font-family:"IBM Plex Mono",monospace;font-size:.72rem;line-height:1.6;color:var(--on-bg-soft);max-width:90ch;margin-top:8px;}
.t-source a{color:var(--t-accent);}

/* ---------- Calculadora ---------- */
.t-form{max-width:780px;}
.t-fieldset{border:1px solid var(--on-bg-line);border-radius:var(--radius);background:var(--bg);padding:22px 22px 8px;margin:0 0 18px;min-width:0;}
.t-fieldset legend{padding:0 8px;font-family:"IBM Plex Mono",monospace;font-size:.74rem;letter-spacing:.06em;text-transform:uppercase;color:var(--t-accent);}
.t-hint{color:var(--on-bg-soft);font-size:.92rem;margin:0 0 16px;}
.t-fields{display:grid;gap:4px 18px;grid-template-columns:1fr;}
@media (min-width:680px){.t-fields.two{grid-template-columns:1fr 1fr;}}
.t-field{margin-bottom:16px;}
.t-flabel{display:block;font-family:"IBM Plex Mono",monospace;font-size:.74rem;letter-spacing:.02em;color:var(--on-bg-soft);margin-bottom:6px;}
.t-select{width:100%;min-height:46px;font-family:"Archivo",sans-serif;font-size:.96rem;background:var(--bg);color:var(--on-bg);border:1px solid var(--on-bg-line);border-radius:var(--radius);padding:12px 14px;}
.t-form input[type=radio],.t-form input[type=checkbox]{width:auto;padding:0;margin:0;accent-color:var(--gold-dark);}
.t-radios{display:flex;flex-wrap:wrap;gap:8px;}
.t-radios label{display:flex;align-items:center;gap:8px;border:1px solid var(--on-bg-line);border-radius:var(--radius);padding:10px 14px;min-height:44px;cursor:pointer;font-size:.95rem;}
.t-radios label:has(input:checked){border-color:var(--on-bg);}
.t-check{display:flex;gap:10px;align-items:flex-start;font-size:.95rem;margin:4px 0 16px;cursor:pointer;}
.t-check input{margin-top:5px!important;}
.t-actions{display:flex;gap:12px;flex-wrap:wrap;margin:24px 0 6px;}
.t-error{min-height:1.2em;font-family:"IBM Plex Mono",monospace;font-size:.8rem;color:var(--t-alert);}

.t-result{max-width:780px;}
.t-result:empty{display:none;}
.t-verdict{margin-top:26px;background:var(--surface);border:1px solid var(--on-bg-line);border-left:4px solid var(--on-bg-soft);border-radius:var(--radius);padding:24px;}
.t-verdict.yes{border-left-color:var(--on-bg);}
.t-verdict.prob{border-left-color:var(--gold);}
.t-verdict.lim{border-left-color:var(--t-alert);}
.t-verdict h3{font-size:1.45rem;font-weight:800;line-height:1.2;letter-spacing:-.01em;margin:6px 0 10px;}
.t-verdict p{color:var(--on-bg-soft);margin-top:8px;}
.t-kick{display:block;font-family:"IBM Plex Mono",monospace;font-size:.72rem;letter-spacing:.06em;color:var(--t-accent);}
.t-bar{position:relative;height:12px;margin-top:22px;background:var(--bg);border:1px solid var(--on-bg-line);border-radius:2px;overflow:hidden;}
.t-bar .a{position:absolute;left:0;top:0;bottom:0;background:var(--on-bg);}
.t-bar .b{position:absolute;top:0;bottom:0;background:repeating-linear-gradient(45deg,var(--gold) 0 5px,transparent 5px 10px);}
.t-bar .m{position:absolute;top:0;bottom:0;width:2px;background:var(--t-alert);}
.t-bar-legend{display:flex;justify-content:space-between;flex-wrap:wrap;gap:6px 14px;margin-top:8px;font-family:"IBM Plex Mono",monospace;font-size:.7rem;color:var(--on-bg-soft);}
.t-crit{margin-top:26px;border-top:1px solid var(--on-bg-line);}
.t-crit-row{display:grid;grid-template-columns:40px 1fr;gap:18px;padding:22px 0;border-bottom:1px solid var(--on-bg-line);}
.t-crit-row .num{font-family:"IBM Plex Mono",monospace;font-weight:600;font-size:.92rem;color:var(--t-accent);margin-top:2px;}
.t-crit-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:6px;}
.t-crit-head h4{margin:0;font-size:1.1rem;font-weight:700;}
.t-crit-row p{margin-top:6px;font-size:.95rem;max-width:64ch;}
.t-crit-row .norm{color:var(--on-bg-soft);}
.t-badge{font-family:"IBM Plex Mono",monospace;font-size:.68rem;letter-spacing:.06em;text-transform:uppercase;padding:4px 8px;border-radius:2px;border:1px solid var(--on-bg-line);white-space:nowrap;}
.t-badge.b-si{background:var(--on-bg);border-color:var(--on-bg);color:var(--bg);}
.t-badge.b-prob{border-color:var(--gold);color:var(--t-accent);}
.t-badge.b-lim{border-color:var(--t-alert);color:var(--t-alert);}
.t-badge.b-no,.t-badge.b-na{color:var(--on-bg-soft);}
.t-notes{margin-top:22px;font-size:.92rem;color:var(--on-bg-soft);max-width:70ch;}
.t-notes p + p{margin-top:10px;}
.t-notes b{color:var(--on-bg);}
.t-follow{margin-top:30px;background:var(--navy-950);color:#F0EDE4;border-radius:6px;padding:26px 28px;}
.t-follow .t-kick{color:var(--gold);margin-bottom:12px;}
.t-follow ul{list-style:none;margin:0;padding:0;}
.t-follow li{padding:10px 0;border-top:1px solid rgba(240,237,228,.14);}
.t-follow li:first-child{border-top:0;padding-top:0;}
.t-follow a{color:#F5F3EE;font-weight:700;text-decoration:none;border-bottom:1px solid var(--gold);}
.t-follow a:hover{color:var(--gold);}
.t-follow span{display:block;margin-top:4px;font-size:.9rem;color:#C3CAD6;}
.t-details{max-width:780px;margin-top:40px;border-top:1px solid var(--on-bg-line);padding-top:16px;font-size:.92rem;color:var(--on-bg-soft);}
.t-details summary{cursor:pointer;font-family:"IBM Plex Mono",monospace;font-size:.76rem;letter-spacing:.04em;text-transform:uppercase;color:var(--on-bg);}
.t-details ul{margin:12px 0;padding-left:18px;}
.t-details li{margin-bottom:6px;}
.t-details a{color:var(--t-accent);}
@media print{
  header,footer,.brief,.t-controls,.t-tabs,.t-actions,.t-links,.t-follow{display:none!important;}
}
