/* =====================================================================
   EL EXPEDIENTE DE RENTA · estilos   (CC-4, s528:renta, 30/09/2026)
   Todo cuelga de #rentaModal: ninguna regla sale de la pantalla de Renta. Los colores son los tokens del panel
   (--ink, --paper, --line, --gold...) mas el ACENTO del modulo, el verde #15803d (plan de Renta, decision 3), que
   se redefine para el tema oscuro. Nada de colores sueltos fuera de estos tokens.
   ===================================================================== */
#rentaModal {
  --rt-acento:#15803d; --rt-acento-suave:#e7f4ec; --rt-acento-tinta:#14532d;
  --rt-aviso:#b45309; --rt-aviso-suave:#fdf3e2; --rt-aviso-tinta:#7c3a06;
  --rt-auto:#b8893d; --rt-auto-suave:#fbf5ea;
  --rt-hueco:#ece8df; --rt-sombra:0 1px 2px rgba(16,39,67,.06);
}
:root[data-tema="oscuro"] #rentaModal {
  --rt-acento:#5cc98a; --rt-acento-suave:#16301f; --rt-acento-tinta:#b8ecca;
  --rt-aviso:#e0a458; --rt-aviso-suave:#33260f; --rt-aviso-tinta:#f3d3a4;
  --rt-auto:#d3ac63; --rt-auto-suave:#2a2416;
  --rt-hueco:#27303f; --rt-sombra:none;
}
#rentaModal .rt-panel { width:min(1080px,100%); min-height:min(760px, 90vh); border-top-color:var(--rt-acento); }   /* las pestañas no saltan al cambiar de pantalla */
#rentaModal .rt-cab { display:flex; align-items:flex-start; justify-content:space-between; gap:14px; flex-wrap:wrap; margin-bottom:14px; }
#rentaModal .rt-cab h2 { margin:0; font:500 24px/1.2 Georgia, serif; color:var(--ink); }
#rentaModal .rt-cab .sub { margin-top:4px; }
#rentaModal .rt-cab .actions { display:flex; gap:8px; align-items:center; flex-wrap:wrap; }
#rentaModal .rt-cab select { padding:8px 10px; border:1px solid var(--line); border-radius:6px; font:inherit; font-size:12.5px; background:var(--paper); color:var(--ink); }

/* las pestañas: una fila, se desliza si no cabe (nunca desborda la pagina) */
#rentaModal .rt-tabs { display:flex; gap:4px; border-bottom:1px solid var(--line); margin:0 0 18px; overflow-x:auto; scrollbar-width:thin; }
#rentaModal .rt-tab { border:0; background:none; padding:10px 14px; font:inherit; font-size:13px; font-weight:600; color:var(--ink-soft); cursor:pointer; border-bottom:3px solid transparent; margin-bottom:-1px; white-space:nowrap; }
#rentaModal .rt-tab[aria-selected="true"] { color:var(--ink); border-bottom-color:var(--rt-acento); }
#rentaModal .rt-tab:focus-visible { outline:2px solid var(--rt-acento); outline-offset:-2px; }
#rentaModal .rt-tab small { display:inline-block; margin-left:6px; padding:1px 7px; border-radius:10px; background:var(--rt-aviso-suave); color:var(--rt-aviso-tinta); font-size:11px; font-weight:700; }

#rentaModal .rt-pila > * + * { margin-top:16px; }
#rentaModal .rt-rejilla { display:grid; gap:16px; grid-template-columns:minmax(0,1.35fr) minmax(0,1fr); }
#rentaModal .rt-tarjeta { border:1px solid var(--line); border-radius:10px; padding:18px; background:var(--paper); box-shadow:var(--rt-sombra); min-width:0; }
#rentaModal .rt-tarjeta h3, #rentaModal .rt-h3 { margin:0 0 10px; font:600 15px/1.3 system-ui, sans-serif; color:var(--ink); }
#rentaModal .rt-eyebrow { display:block; font:600 10.5px/1 system-ui, sans-serif; letter-spacing:.11em; text-transform:uppercase; color:var(--ink-soft); margin-bottom:6px; }
#rentaModal .rt-muted { color:var(--ink-soft); }
#rentaModal .rt-small { font-size:12px; }
#rentaModal .rt-num { font-family:Georgia, serif; font-variant-numeric:tabular-nums; white-space:nowrap; }
#rentaModal .rt-fila { display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; }

/* la portada */
#rentaModal .rt-hero { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:22px; align-items:center; padding:22px 24px; border-radius:12px; background:var(--rt-acento-suave); border:1px solid var(--rt-acento); }
#rentaModal .rt-hero h1 { margin:4px 0 8px; font:500 26px/1.2 Georgia, serif; color:var(--ink); }
#rentaModal .rt-hero p { margin:0; color:var(--ink); font-size:14px; line-height:1.55; max-width:62ch; }
#rentaModal .rt-hero .rt-acc { display:flex; gap:8px; flex-wrap:wrap; margin-top:14px; }
#rentaModal .rt-cifra { text-align:right; min-width:0; }
#rentaModal .rt-cifra small { display:block; font:600 10.5px/1.3 system-ui, sans-serif; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-soft); }
#rentaModal .rt-cifra .rt-num { display:block; font-size:30px; color:var(--rt-acento-tinta); margin:4px 0; }
#rentaModal .rt-kpis { display:grid; grid-template-columns:repeat(auto-fit,minmax(170px,1fr)); gap:12px; }
#rentaModal .rt-kpi { border-left:3px solid var(--line); padding:4px 0 4px 12px; min-width:0; }
#rentaModal .rt-kpi b { display:block; font:500 22px/1.15 Georgia, serif; color:var(--ink); }
#rentaModal .rt-kpi span { display:block; margin-top:4px; font-size:10.5px; letter-spacing:.09em; text-transform:uppercase; color:var(--ink-soft); }
#rentaModal .rt-kpi.ok { border-left-color:var(--rt-acento); }
#rentaModal .rt-kpi.av { border-left-color:var(--rt-aviso); }
#rentaModal .rt-toca { display:flex; gap:12px; align-items:flex-start; padding:12px 0; border-top:1px solid var(--line); }
#rentaModal .rt-toca:first-of-type { border-top:0; }
#rentaModal .rt-toca > div { flex:1; min-width:0; }
#rentaModal .rt-toca b { display:block; color:var(--ink); }
#rentaModal .rt-toca .rt-small { margin-top:2px; }
#rentaModal .rt-n { flex:none; width:24px; height:24px; border-radius:50%; display:grid; place-items:center; font-size:12px; font-weight:700; background:var(--rt-aviso-suave); color:var(--rt-aviso-tinta); }
#rentaModal .rt-anillo { display:flex; gap:18px; align-items:center; flex-wrap:wrap; }
#rentaModal .rt-anillo svg { flex:none; }
#rentaModal .rt-leyenda div { display:flex; gap:7px; align-items:center; margin-bottom:6px; font-size:12.5px; color:var(--ink); }
#rentaModal .rt-leyenda i { width:10px; height:10px; border-radius:2px; display:inline-block; }

/* notas */
#rentaModal .rt-nota { border-left:3px solid var(--line); background:var(--rt-hueco); padding:10px 12px; border-radius:0 8px 8px 0; font-size:13px; line-height:1.5; color:var(--ink); }
#rentaModal .rt-nota.ok { border-left-color:var(--rt-acento); background:var(--rt-acento-suave); }
#rentaModal .rt-nota.av { border-left-color:var(--rt-aviso); background:var(--rt-aviso-suave); color:var(--rt-aviso-tinta); }
#rentaModal .rt-nota + .rt-nota { margin-top:8px; }

/* «Esto ya lo sabemos» */
#rentaModal .rt-auto { border:1px solid var(--rt-auto); background:var(--rt-auto-suave); border-radius:10px; padding:16px 18px; }
#rentaModal .rt-orig { display:inline-block; padding:2px 8px; border-radius:10px; border:1px solid var(--rt-auto); color:var(--ink); font-size:11px; }
#rentaModal .rt-auto-fila { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(0,1.4fr) auto; gap:12px; align-items:baseline; padding:9px 0; border-top:1px solid var(--line); font-size:13.5px; color:var(--ink); }
#rentaModal .rt-auto-fila:first-of-type { border-top:0; }
#rentaModal .rt-auto-fila > span:nth-child(2) { color:var(--ink-soft); font-size:12.5px; }
#rentaModal .rt-auto-fila b { text-align:right; }

/* las tarjetas de bloque */
#rentaModal .rt-bloques { display:grid; grid-template-columns:repeat(auto-fill,minmax(230px,1fr)); gap:12px; }
#rentaModal .rt-bloque { display:flex; flex-direction:column; justify-content:flex-start; width:100%; text-align:left; border:1px solid var(--line); border-radius:10px; padding:14px 14px 12px; background:var(--paper); cursor:pointer; font:inherit; color:var(--ink); position:relative; }
#rentaModal .rt-bloque:hover { border-color:var(--ink-soft); }
#rentaModal .rt-bloque:focus-visible { outline:2px solid var(--rt-acento); outline-offset:2px; }
#rentaModal .rt-bloque .rt-bt { display:flex; justify-content:space-between; gap:8px; align-items:flex-start; font-weight:700; font-size:14px; }
#rentaModal .rt-bloque p { margin:6px 0 10px; font-size:12.5px; line-height:1.45; color:var(--ink-soft); }
#rentaModal .rt-bloque.completo { border-left:4px solid var(--rt-acento); }
#rentaModal .rt-bloque.a-medias { border-left:4px solid var(--rt-aviso); }
#rentaModal .rt-bloque.pendiente { border-left:4px solid var(--line); }
#rentaModal .rt-chip { flex:none; padding:2px 8px; border-radius:10px; font-size:11px; font-weight:700; white-space:nowrap; }
#rentaModal .rt-chip.completo { background:var(--rt-acento-suave); color:var(--rt-acento-tinta); }
#rentaModal .rt-chip.a-medias { background:var(--rt-aviso-suave); color:var(--rt-aviso-tinta); }
#rentaModal .rt-chip.pendiente { background:var(--rt-hueco); color:var(--ink-soft); }
#rentaModal details.rt-plg { border-top:1px solid var(--line); padding-top:12px; }
#rentaModal details.rt-plg > summary { cursor:pointer; font-weight:600; font-size:13px; color:var(--ink); }
#rentaModal details.rt-plg[open] > summary { margin-bottom:12px; }

/* la tabla del detalle de actividad */
#rentaModal .rt-scroll { overflow-x:auto; }
#rentaModal table.rt-tabla { width:100%; border-collapse:collapse; font-size:13px; }
#rentaModal table.rt-tabla th { text-align:left; font:600 10.5px/1.2 system-ui, sans-serif; letter-spacing:.08em; text-transform:uppercase; color:var(--ink-soft); padding:8px 8px; border-bottom:1px solid var(--line); }
#rentaModal table.rt-tabla td { padding:8px; border-bottom:1px solid var(--line); color:var(--ink); vertical-align:top; }
#rentaModal table.rt-tabla .r { text-align:right; }
#rentaModal table.rt-tabla tfoot td { font-weight:700; border-bottom:0; }

/* el formulario de un bloque */
#rentaModal .rt-form-cab { display:flex; justify-content:space-between; gap:12px; align-items:flex-start; flex-wrap:wrap; }
#rentaModal .rt-form-cab h3 { margin:0; font:500 21px/1.25 Georgia, serif; color:var(--ink); }
#rentaModal .rt-intro { margin:6px 0 0; font-size:13px; line-height:1.5; color:var(--ink-soft); max-width:70ch; }
#rentaModal .rt-guardado { font-size:12px; color:var(--ink-soft); white-space:nowrap; min-height:1em; }
#rentaModal .rt-guardado.error { color:var(--c-t-b3261e, #b3261e); font-weight:700; white-space:normal; }
#rentaModal .rt-puerta { padding:16px; border-radius:10px; background:var(--rt-hueco); }
#rentaModal .rt-puerta p { margin:0 0 12px; font-size:15px; font-weight:600; color:var(--ink); }
#rentaModal .rt-sino { display:inline-flex; border:1px solid var(--line); border-radius:8px; overflow:hidden; background:var(--paper); }
#rentaModal .rt-sino label { position:relative; cursor:pointer; }
#rentaModal .rt-sino input { position:absolute; opacity:0; inset:0; margin:0; cursor:pointer; }
#rentaModal .rt-sino span { display:block; padding:8px 18px; font-size:13px; font-weight:700; color:var(--ink); }
#rentaModal .rt-sino label + label span { border-left:1px solid var(--line); }
#rentaModal .rt-sino input:checked + span { background:var(--rt-acento); color:#fff; }
:root[data-tema="oscuro"] #rentaModal .rt-sino input:checked + span { color:#0b1a11; }
#rentaModal .rt-sino input:focus-visible + span { outline:2px solid var(--rt-acento); outline-offset:-3px; }
#rentaModal .rt-campos { display:grid; grid-template-columns:repeat(auto-fill,minmax(230px,1fr)); gap:14px 16px; }
#rentaModal .rt-f { display:flex; flex-direction:column; gap:6px; font-size:12.5px; font-weight:600; color:var(--ink); min-width:0; }
#rentaModal .rt-f.ancho { grid-column:1 / -1; }
#rentaModal .rt-f input[type="text"], #rentaModal .rt-f input[type="date"], #rentaModal .rt-f select { padding:9px 11px; border:1px solid var(--line); border-radius:6px; font:inherit; font-size:13.5px; font-weight:400; background:var(--paper); color:var(--ink); min-width:0; width:100%; box-sizing:border-box; }
#rentaModal .rt-f input:focus, #rentaModal .rt-f select:focus { outline:2px solid var(--rt-acento); outline-offset:0; border-color:var(--rt-acento); }
#rentaModal .rt-f.falta input, #rentaModal .rt-f.falta select { border-color:var(--rt-aviso); }
#rentaModal .rt-f.malo input { border-color:var(--c-t-b3261e, #b3261e); }
#rentaModal .rt-f .rt-ayuda { font-weight:400; font-size:11.5px; line-height:1.4; color:var(--ink-soft); }
#rentaModal .rt-f .rt-error { font-weight:600; font-size:11.5px; color:var(--c-t-b3261e, #b3261e); }
#rentaModal .rt-item { border:1px solid var(--line); border-radius:10px; padding:14px; }
#rentaModal .rt-item + .rt-item { margin-top:12px; }
#rentaModal .rt-item-cab { display:flex; justify-content:space-between; align-items:center; gap:8px; margin-bottom:10px; font-weight:700; font-size:13px; color:var(--ink); }
#rentaModal .rt-quitar { border:0; background:none; color:var(--ink-soft); text-decoration:underline; cursor:pointer; font:inherit; font-size:12px; }
#rentaModal .rt-faltan { font-size:12.5px; color:var(--rt-aviso-tinta); }
#rentaModal .rt-faltan ul { margin:6px 0 0; padding-left:18px; }
#rentaModal .rt-pie { display:flex; justify-content:space-between; gap:10px; flex-wrap:wrap; align-items:center; border-top:1px solid var(--line); padding-top:14px; }
#rentaModal .rt-pie .rt-der { display:flex; gap:8px; flex-wrap:wrap; }
#rentaModal .btn.rt-p { background:var(--rt-acento); border-color:var(--rt-acento); color:#fff; }
:root[data-tema="oscuro"] #rentaModal .btn.rt-p { color:#0b1a11; }
#rentaModal .btn[disabled] { opacity:.55; cursor:not-allowed; }
#rentaModal .rt-cargando { padding:40px 0; text-align:center; color:var(--ink-soft); }

/* el dossier */
#rentaModal .rt-dossier { border:1px solid var(--line); border-radius:10px; padding:22px 24px; background:var(--paper); }
#rentaModal .rt-dos-cab h2 { margin:4px 0 6px; font:500 24px/1.2 Georgia, serif; color:var(--ink); }
#rentaModal .rt-dos-bloque { border-top:1px solid var(--line); padding-top:14px; margin-top:16px; break-inside:avoid; }
#rentaModal .rt-dos-fila { display:flex; justify-content:space-between; gap:16px; padding:5px 0; font-size:13px; color:var(--ink); border-bottom:1px dotted var(--line); }
#rentaModal .rt-dos-fila > span { min-width:0; overflow-wrap:anywhere; }
#rentaModal .rt-dos-fila > b { text-align:right; font-weight:600; overflow-wrap:anywhere; }
#rentaModal .rt-dos-total { font-weight:700; border-bottom:1px solid var(--ink-soft); }
#rentaModal .rt-dos-lista { margin-top:8px; font-size:13px; color:var(--ink); }
#rentaModal .rt-dos-item { margin:6px 0 0 12px; padding-left:10px; border-left:2px solid var(--line); }
@media print {
  #rentaModal .rt-dossier { border:0; padding:0; }
  #rentaModal .rt-dos-fila, #rentaModal .rt-dos-cab h2 { color:#000; }
}
/* documentos */
#rentaModal .rt-elegir { display:inline-flex; align-items:center; justify-content:center; cursor:pointer; align-self:flex-start; }
#rentaModal .rt-elegir.rt-apagado { opacity:.55; cursor:not-allowed; }
#rentaModal .rt-papel-fila { display:flex; align-items:center; gap:12px; padding:8px 0; border-top:1px solid var(--line); flex-wrap:wrap; }
#rentaModal .rt-papel-fila:first-of-type { border-top:0; }
#rentaModal .rt-papel-nombre { flex:1; min-width:160px; font-size:13.5px; color:var(--ink); overflow-wrap:anywhere; }
#rentaModal .rt-papel-fila .rt-der { display:flex; gap:10px; align-items:center; }
#rentaModal .rt-papel-pista { margin-top:8px; }
#rentaModal .rt-ayuda.rt-error { color:var(--c-t-b3261e, #b3261e); font-weight:600; }
@media (max-width: 767px) {
  #rentaModal .rt-rejilla { grid-template-columns:1fr; }
  #rentaModal .rt-hero { grid-template-columns:1fr; padding:18px; }
  #rentaModal .rt-cifra { text-align:left; }
  #rentaModal .rt-hero h1 { font-size:22px; }
  #rentaModal .rt-auto-fila { grid-template-columns:minmax(0,1fr) auto; }
  #rentaModal .rt-auto-fila > span:nth-child(2) { grid-column:1 / -1; grid-row:2; }
}
/* Imprimir SOLO cuando lo pide el dossier (body.rt-imprimiendo, lo pone y lo quita renta.js): sin la clase, la impresion es la del
   panel (la factura y el presupuesto, que tienen su propia regla «body > *:not(#presuModal):not(#facModal)»). Los :not(#…) suben la
   especificidad por encima de esa regla, que tambien lleva !important. */
@media print {
  body.rt-imprimiendo > *:not(#rentaModal) { display:none !important; }
  body.rt-imprimiendo > #rentaModal:not(#presuModal):not(#facModal) { position:static !important; background:none !important; padding:0 !important; display:block !important; }
  body.rt-imprimiendo #rentaModal .rt-panel { max-height:none !important; overflow:visible !important; border:0 !important; width:100% !important; }
  body.rt-imprimiendo #rentaModal .rt-noimprimir { display:none !important; }
}
