/*
 * Diagnóstico financiero y calculadora (ARAANT).
 * Sistema Letters: lienzo blanco/nube, tinta obsidiana, tarjetas de 18 px
 * con sombra azulada, azul quirúrgico solo en detalles. Los fondos de las
 * secciones los pone letters.css (main > section.section).
 */

.dg { --dg-filete: rgba(7,7,9,.08); --dg-ok: #1f7a4d; --dg-no: #a3241a; --dg-ver: #8a5a00; }
.dg .container { min-width: 0; }

/* --- Índice de la cabecera ------------------------------------------- */
.dg-indice { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 1.5rem; }
.dg-indice a {
  padding: .45rem .95rem; border-radius: 999px; font-size: .875rem; text-decoration: none;
  background: rgba(255,255,255,.22); border: 1px solid rgba(255,255,255,.55); color: #fff !important;
}
.dg-indice a:hover { background: rgba(255,255,255,.4); }

/* --- Composición ----------------------------------------------------- */
.dg-dos { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(1.5rem, 4vw, 4rem); align-items: start; }
.dg-pila { display: grid; gap: 1.25rem; min-width: 0; }
.dg-cab h2 { margin: .35rem 0 .75rem; font-size: clamp(1.75rem, 2.6vw, 2.5rem); line-height: 1.05; }
.dg-cab p { color: var(--carbon); max-width: 46rem; }
.dg-cab--fila { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(1.5rem, 4vw, 4rem); align-items: end; margin-bottom: 1.75rem; }
.dg-cab--fila p { margin: 0; }

/* --- Tarjetas y formularios ----------------------------------------- */
.dg-tarjeta {
  background: var(--papel); border-radius: var(--r-tarjeta, 18px); padding: clamp(1.25rem, 2.2vw, 2rem);
  box-shadow: var(--sombra-s), var(--sombra-xl); border: 1px solid rgba(28, 59, 48,.10); min-width: 0;
}
.dg-tarjeta h3 { margin: 0 0 1rem; font-size: 1.25rem; }
.dg-form { display: grid; gap: 1.1rem; }
.dg-form--inv { margin-top: 1.5rem; }
.dg-campos { display: grid; grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr)); gap: 1rem 1.25rem; }
.dg-campo { display: grid; gap: .4rem; min-width: 0; margin: 0; }
.dg-campo--ancho { grid-column: 1 / -1; }
.dg-campo label, .dg-campo legend { font-size: .875rem; font-weight: 600; color: var(--tinta-2); }
.dg-campo small, .dg-nota { font-size: .8125rem; color: var(--carbon); line-height: 1.45; }
.dg-campo input, .dg-campo select, .dg-busca input {
  width: 100%; min-width: 0; box-sizing: border-box; font: inherit; font-size: 1rem; color: var(--obsidiana);
  padding: .7rem .9rem; border-radius: 12px; border: 1px solid rgba(7,7,9,.14); background: #fff;
}
.dg-campo input:focus, .dg-campo select:focus, .dg-busca input:focus { outline: 2px solid var(--azul); outline-offset: 1px; border-color: var(--azul); }
.dg-botones { display: flex; flex-wrap: wrap; gap: .75rem; align-items: center; margin: 0; }
.dg-ok { color: var(--dg-ok); font-weight: 600; font-size: .9rem; }

/* --- Listas y tablas ------------------------------------------------- */
.dg-lista { list-style: none; margin: 0; padding: 0; display: grid; }
.dg-lista li { display: flex; flex-wrap: wrap; gap: .25rem 1rem; justify-content: space-between; align-items: center; padding: .7rem 0; border-top: 1px solid var(--dg-filete); }
.dg-lista li:first-child { border-top: 0; }
.dg-lista__eti { color: var(--carbon); font-size: .875rem; }
.dg-borrar { display: inline; margin: 0; }
.dg .dg-x, .dg-link {
  background: none !important; border: 0 !important; padding: .25rem .1rem !important; min-height: 0 !important;
  font: inherit; font-size: .8125rem !important; color: var(--carbon) !important; text-decoration: underline; cursor: pointer; box-shadow: none !important;
}
.dg .dg-x:hover { color: var(--dg-no) !important; }

.dg-tabla-caja { background: var(--papel); border-radius: var(--r-tarjeta, 18px); box-shadow: var(--sombra-s), var(--sombra-xl); overflow: hidden; border: 1px solid rgba(28, 59, 48,.10); }
.dg-tabla { width: 100%; border-collapse: collapse; font-size: .9375rem; }
.dg-tabla th { text-align: left; font-size: .75rem; letter-spacing: .02em; text-transform: uppercase; color: var(--carbon); font-weight: 600; padding: .9rem 1rem; background: var(--nube); }
.dg-tabla td { padding: .85rem 1rem; border-top: 1px solid var(--dg-filete); vertical-align: top; }
.dg-tabla td small { display: block; color: var(--carbon); font-size: .8125rem; }
.dg-tabla .num { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.dg-tabla tr.is-cuenta td:first-child { box-shadow: inset 3px 0 0 var(--azul); }
.dg-acc { white-space: nowrap; text-align: right; }
.dg-estado { display: inline-block; font-size: .8125rem; padding: .15rem .6rem; border-radius: 999px; background: var(--nube); }
.dg-estado--prevista { background: #edf1ec; }
.dg-estado--realizada { background: #eee; color: var(--carbon); }
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* --- Minimis --------------------------------------------------------- */
.dg-minimis__cifras { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; margin-bottom: 1rem; }
.dg-minimis__cifras div { display: grid; gap: .2rem; }
.dg-minimis__cifras b { font-size: clamp(1.15rem, 2vw, 1.6rem); font-weight: 600; letter-spacing: -0.03em; }
.dg-minimis__cifras span { font-size: .8125rem; color: var(--carbon); }
.dg-barra { width: 100%; height: .6rem; border: 0; border-radius: 999px; overflow: hidden; background: var(--tinte); appearance: none; -webkit-appearance: none; margin-bottom: .75rem; }
.dg-barra::-webkit-progress-bar { background: var(--tinte); border-radius: 999px; }
.dg-barra::-webkit-progress-value { background: var(--azul); border-radius: 999px; }
.dg-barra::-moz-progress-bar { background: var(--azul); border-radius: 999px; }
.dg-minimis.is-aviso .dg-barra::-webkit-progress-value { background: var(--dg-no); }
.dg-minimis.is-aviso .dg-barra::-moz-progress-bar { background: var(--dg-no); }
.dg-cita { margin: 1.25rem 0 0; padding: 1rem 1.25rem; border-left: 3px solid var(--azul); background: rgba(255,255,255,.75); border-radius: 0 12px 12px 0; font-size: .9375rem; color: var(--tinta-2); line-height: 1.5; }
.dg-cita cite { display: block; margin-top: .5rem; font-style: normal; font-size: .8125rem; color: var(--carbon); }
.dg-alerta { margin: .75rem 0 0; padding: .75rem 1rem; border-radius: 12px; background: #fdf0ee; color: var(--dg-no); font-size: .9rem; line-height: 1.45; }
.dg-alerta--suave { background: #f4f7f3; color: var(--tinta-2); }
.dg-alerta--error { margin: 0; }
.dg-alerta--error p { margin: .2rem 0; }

/* --- Mapa de oportunidades ------------------------------------------ */
.dg-proyecto { margin-top: 2.25rem; }
.dg-proyecto:first-of-type { margin-top: 0; }
.dg-proyecto__cab { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: end; gap: 1rem 2rem; padding-bottom: 1rem; margin-bottom: 1.25rem; border-bottom: 1px solid rgba(28, 59, 48,.18); }
.dg-proyecto__cab h3 { margin: .5rem 0 .25rem; font-size: clamp(1.35rem, 2vw, 1.75rem); }
.dg-proyecto__meta { margin: 0; color: var(--carbon); }
.dg-proyecto__n { margin: 0; text-align: right; color: var(--carbon); }
.dg-proyecto__n b { display: block; font-size: 2.25rem; color: var(--obsidiana); font-weight: 600; letter-spacing: -0.04em; line-height: 1; }
.dg-proyecto__n small { display: block; font-size: .8125rem; max-width: 22rem; margin-left: auto; }
.dg-oport { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 26rem), 1fr)); gap: 1.25rem; }
.dg-op {
  display: grid; gap: .6rem; align-content: start; min-width: 0;
  background: var(--papel); border-radius: var(--r-tarjeta, 18px); padding: 1.35rem; box-shadow: var(--sombra-s), var(--sombra-xl); border: 1px solid rgba(28, 59, 48,.10);
}
.dg-op--link { text-decoration: none; color: inherit; transition: transform .2s ease, box-shadow .2s ease; }
.dg-op--link:hover { transform: translateY(-2px); box-shadow: 0 0 0 1px rgba(28, 59, 48,.35), var(--sombra-xl); }
.dg-op__cab { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem; }
.dg-op__plazo { margin-left: auto; font-size: .8125rem; color: var(--carbon); }
.dg-op__plazo.apura { color: var(--dg-no); font-weight: 600; }
.dg-op h4, .dg-op__tit { margin: 0; font-size: 1.05rem; line-height: 1.3; font-weight: 600; overflow-wrap: anywhere; }
.dg-op h4 a { color: var(--obsidiana); text-decoration: none; }
.dg-op h4 a:hover { text-decoration: underline; }
.dg-op__org { margin: 0; font-size: .875rem; color: var(--carbon); }
.dg-tag-gasto { background: #edf1ec !important; border-color: #cef4c4 !important; }
.dg-reqs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .75rem; padding: .85rem; background: var(--nube); border-radius: 12px; }
.dg-reqs__col p { margin: 0 0 .35rem; font-size: .8125rem; color: var(--carbon); }
.dg-reqs__col p b { font-size: 1.25rem; display: block; line-height: 1.1; }
.dg-reqs__col--si p b { color: var(--dg-ok); }
.dg-reqs__col--no p b { color: var(--dg-no); }
.dg-reqs__col--ver p b { color: var(--dg-ver); }
.dg-reqs ul { margin: 0; padding: 0; list-style: none; display: grid; gap: .3rem; font-size: .8rem; line-height: 1.35; color: var(--tinta-2); }
.dg-reqs li { overflow-wrap: anywhere; }
.dg-op__acc { display: flex; flex-wrap: wrap; gap: .6rem; margin-top: .25rem; }

/* --- Calculadora ----------------------------------------------------- */
.dg-busca { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem; margin-top: 1.5rem; max-width: 34rem; }
.dg-busca label { color: #fff; font-weight: 600; font-size: .9rem; }
.dg-busca input { flex: 1 1 10rem; width: auto; }
.page-hero .lead a { color: inherit !important; text-decoration: underline; text-underline-offset: 3px; }
.dg-calc { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(1.25rem, 3vw, 3rem); align-items: start; }
.dg-calc__datos h2 { margin: 0; font-size: 1.5rem; }
.dg-calc__res { display: grid; gap: 1rem; min-width: 0; }
.dg-ints { border: 0; padding: 0; }
.dg-int { display: flex; gap: .7rem; align-items: flex-start; padding: .7rem .85rem; border: 1px solid rgba(7,7,9,.12); border-radius: 12px; cursor: pointer; background: #fff; }
.dg-int:has(input:checked) { border-color: var(--azul); box-shadow: 0 0 0 1px var(--azul); background: #f8faf8; }
.dg .dg-int input { width: auto !important; min-width: 0; padding: 0; margin-top: .25rem; accent-color: var(--azul); flex: 0 0 auto; }
.dg-int span { display: grid; gap: .15rem; min-width: 0; }
.dg-int b { font-size: 1.1rem; }
.dg-int small { overflow-wrap: anywhere; }
.dg-sin { margin: 0; padding: .85rem 1rem; background: var(--nube); border-radius: 12px; font-size: .9rem; color: var(--tinta-2); line-height: 1.45; }
.dg-sin b { font-size: 1.25rem; margin-right: .35rem; }

.dg-res { border-radius: var(--r-tarjeta, 18px); padding: 1.35rem 1.5rem; display: grid; gap: .35rem; min-width: 0; box-shadow: var(--sombra-s), var(--sombra-xl); }
.dg-res__eti { margin: 0; font-size: .8125rem; font-weight: 600; letter-spacing: .02em; text-transform: uppercase; }
.dg-res__n { font-size: clamp(2rem, 4vw, 3.25rem); font-weight: 600; letter-spacing: -0.04em; line-height: 1; overflow-wrap: anywhere; }
.dg-res__formula { margin: 0; font-size: .875rem; line-height: 1.45; }
.dg-res--teorico { background: var(--obsidiana); color: #fff; }
.dg-res--teorico .dg-res__eti, .dg-res--teorico .dg-res__formula { color: rgba(255,255,255,.72); }
.dg-res--elegible { background: var(--papel); border: 1px solid rgba(28, 59, 48,.18); }
.dg-res--elegible .dg-res__eti, .dg-res--elegible .dg-res__formula { color: var(--carbon); }
.dg-res--organismo { background: repeating-linear-gradient(135deg, #ECE2CC 0 10px, #f2f5f1 10px 20px); border: 1px dashed rgba(7,7,9,.18); box-shadow: none; }
.dg-res--organismo .dg-res__n { font-size: clamp(1.4rem, 2.4vw, 1.9rem); letter-spacing: -0.02em; }
.dg-res--organismo .dg-res__eti, .dg-res--organismo .dg-res__formula { color: var(--carbon); }
.dg-fuente p { line-height: 1.5; }
.dg-fuente .dg-lista { margin: 1rem 0; }
.dg-guardar { display: flex; flex-wrap: wrap; gap: .75rem; align-items: center; margin-top: 1rem; }

/* --- Móvil ----------------------------------------------------------- */
@media (max-width: 900px) {
  .dg-dos, .dg-calc, .dg-cab--fila { grid-template-columns: minmax(0, 1fr); }
  .dg-proyecto__n { text-align: left; }
  .dg-proyecto__n small { margin-left: 0; }
}
@media (max-width: 640px) {
  .dg-reqs { grid-template-columns: minmax(0, 1fr); }
  .dg-minimis__cifras { grid-template-columns: minmax(0, 1fr); }
  .dg-tabla thead { display: none; }
  .dg-tabla, .dg-tabla tbody, .dg-tabla tr, .dg-tabla td { display: block; width: 100%; box-sizing: border-box; }
  .dg-tabla tr { padding: .5rem 0; border-top: 1px solid var(--dg-filete); }
  .dg-tabla tr:first-child { border-top: 0; }
  .dg-tabla td { border-top: 0; padding: .3rem 1rem; display: flex; justify-content: space-between; gap: 1rem; text-align: right; }
  .dg-tabla td[data-eti]::before { content: attr(data-eti); color: var(--carbon); font-size: .8125rem; text-align: left; flex: 0 0 auto; }
  .dg-tabla td.num { text-align: right; }
  .dg-acc { justify-content: flex-end !important; gap: 1rem; }
  .dg-indice a { font-size: .8125rem; padding: .4rem .75rem; }
}
