/* /docentes: componentes propios sobre rac.css (mismo sistema de bloques) */
.trust ul.t3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }

/* Selector de plan */
.ptabs { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: .5rem; margin-bottom: 1rem; }
.ptab { display: grid; gap: .1rem; text-align: left; padding: 1rem 1.1rem; border: 1.5px solid var(--line); border-radius: var(--r-sm); background: var(--card); transition: border-color .2s, background-color .2s; }
.ptab b { font-size: 1.15rem; letter-spacing: -0.02em; }
.ptab small { color: var(--muted); font-size: .85rem; }
.ptab:hover { border-color: var(--ink); }
.ptab[aria-selected="true"] { background: var(--or); border-color: var(--or); color: var(--on-or); }
.ptab[aria-selected="true"] small { color: var(--on-or); opacity: .75; }
.ppanel { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.4fr); border: 1px solid var(--line); border-radius: var(--r); overflow: hidden; background: var(--card); }
.ppanel[hidden] { display: none; }
.pp-side { position: relative; background: var(--night); color: #fff; padding: clamp(1.5rem, 3vw, 2.5rem); display: grid; gap: 1rem; align-content: start; }
.pp-side::before { content: ""; position: absolute; left: 0; top: 0; width: var(--s); height: var(--s); background: var(--or); }
.pp-lvl { color: #ffb47f; font-weight: 600; font-size: .95rem; }
.pp-side h3 { color: #fff; font-size: clamp(2.2rem, 4vw, 3.2rem); letter-spacing: -0.04em; }
.pp-side > p { color: rgba(255,255,255,.8); }
.pp-side dl { display: grid; gap: .8rem; border-top: 1px solid rgba(255,255,255,.15); padding-top: 1rem; }
.pp-side dt { font-size: .85rem; color: rgba(255,255,255,.6); }
.pp-side dd { font-weight: 700; font-size: 1.05rem; }
.pp-side .btns { margin-top: .5rem; }
.pp-list { padding: clamp(1.5rem, 3vw, 2.25rem); display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem 2rem; align-content: start; }
.pg h4 { font-size: .95rem; color: var(--muted); font-weight: 600; letter-spacing: 0; margin-bottom: .6rem; }
.pg ul { display: grid; gap: .55rem; }
.pg li { display: flex; gap: .6rem; align-items: flex-start; font-size: .97rem; }
.pg li .ico { width: 1.1rem; height: 1.1rem; color: var(--or-text); margin-top: .2rem; stroke-width: 2.6; }
.pg li small { display: block; color: var(--muted); font-size: .82rem; }
.pg .lim { color: var(--or-text); font-weight: 700; }
.pno, .pall { grid-column: 1 / -1; border-top: 1px solid var(--line); padding-top: 1rem; color: var(--muted); }
.pno summary { cursor: pointer; font-weight: 600; color: var(--ink-2); }
.pno ul { margin-top: .6rem; display: grid; gap: .35rem; grid-template-columns: repeat(2, minmax(0, 1fr)); font-size: .92rem; }
.pno li::before { content: "— "; }

/* Tabla completa plegable */
.dmore { margin-top: 1.25rem; border: 1px solid var(--line); border-radius: var(--r); background: var(--card); }
.dmore summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: 1.1rem 1.25rem; font-weight: 650; }
.dmore summary::-webkit-details-marker { display: none; }
.dmore .pm { width: 2rem; height: 2rem; display: grid; place-items: center; border: 1.5px solid var(--line); border-radius: .35rem; }
.dmore[open] .pm { background: var(--or); border-color: var(--or); color: var(--on-or); }
.dmore[open] .pm .ico { transform: rotate(45deg); }
.dmore .pm .ico { width: 1rem; height: 1rem; transition: transform .2s; }
.dmore-in { padding: 0 1.25rem 1.25rem; display: grid; gap: 1.25rem; }
.cmp-scroll { overflow-x: auto; border: 1px solid var(--line); border-radius: var(--r-sm); }
.cmp { width: 100%; min-width: 46rem; border-collapse: collapse; font-size: .93rem; }
.cmp th, .cmp td { padding: .75rem .8rem; border-bottom: 1px solid var(--line); text-align: center; vertical-align: middle; }
.cmp th[scope="row"], .cmp .corner { text-align: left; font-weight: 600; width: 34%; }
.cmp th[scope="row"] small { display: block; font-weight: 400; color: var(--muted); font-size: .8rem; }
.cmp thead th { background: var(--soft); font-weight: 700; }
.cmp .grp th { text-align: left; background: var(--or-soft); color: var(--or-text); font-size: .88rem; }
.cmp .yes { display: inline-grid; place-items: center; width: 1.6rem; height: 1.6rem; background: var(--or); color: var(--on-or); border-radius: .3rem; }
.cmp .yes .ico { width: .95rem; height: .95rem; stroke-width: 3; }
.cmp .no { color: var(--muted); }
.cmp .lim { display: block; font-size: .78rem; font-weight: 700; margin-top: .25rem; }
.mcmp { display: none; }
.esp-in { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; }
.esp-in h3 { font-size: 1rem; margin-bottom: .35rem; }
.esp-in p { color: var(--ink-2); font-size: .93rem; }

/* ¿Cuál es tu caso? */
.caso-grid { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: clamp(2rem, 4vw, 3.5rem); align-items: center; }
.casos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .6rem; }
.caso { display: flex; gap: .8rem; align-items: center; text-align: left; padding: .85rem 1rem; background: var(--card); border: 1.5px solid var(--line); border-radius: var(--r-sm); font-weight: 600; transition: border-color .2s; }
.caso .sq { width: 2.4rem; height: 2.4rem; display: grid; place-items: center; background: var(--or-soft); color: var(--or-text); border-radius: .35rem; flex: none; }
.caso:hover { border-color: var(--ink); }
.caso[aria-pressed="true"] { border-color: var(--ink); background: var(--ink); color: var(--bg); }
.caso[aria-pressed="true"] .sq { background: var(--or); color: var(--on-or); }
.rec { position: relative; background: var(--night); color: #fff; padding: clamp(1.75rem, 3.5vw, 2.75rem); display: grid; gap: .9rem; }
.rec::before, .rec::after { content: ""; position: absolute; width: var(--s); height: var(--s); background: var(--or); }
.rec::before { left: 0; top: 0; } .rec::after { right: 0; bottom: 0; }
.rec-k { color: #ffb47f; font-weight: 600; }
.rec-p { font-size: clamp(2.4rem, 4.5vw, 3.6rem); font-weight: 750; letter-spacing: -0.04em; line-height: 1; }
.rec-w { color: rgba(255,255,255,.82); font-size: 1.05rem; }

/* Línea de tiempo de carencias */
.tl { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.25rem; position: relative; }
.tl::before { content: ""; position: absolute; left: 0; right: 0; top: 1.3rem; height: 2px; background: var(--line); }
.tl > li { position: relative; display: grid; gap: .7rem; align-content: start; }
.tl-day { display: inline-flex; align-items: center; gap: .4rem; background: var(--bg); padding-right: .75rem; position: relative; justify-self: start; }
.tl-day span { color: var(--muted); font-weight: 600; }
.tl-day b { font-size: 2.6rem; font-weight: 800; letter-spacing: -0.04em; line-height: 1; }
.tl-day::before { content: ""; width: .9rem; height: .9rem; background: var(--or); margin-right: .45rem; }
.tl h3 { font-size: 1.1rem; }
.tl ul { display: grid; gap: .45rem; color: var(--ink-2); font-size: .97rem; }
.tl ul li { padding-left: 1rem; position: relative; }
.tl ul li::before { content: ""; position: absolute; left: 0; top: .6rem; width: .4rem; height: .4rem; background: var(--ink-2); }

/* Buscador de red */
.finder { background: var(--card); border: 1px solid var(--line); border-radius: var(--r); padding: clamp(1rem, 3vw, 1.75rem); display: grid; gap: 1rem; }
.f-form { display: grid; grid-template-columns: 1.2fr 1fr 1.2fr 1fr; gap: .75rem; }
.f-form label { display: grid; gap: .35rem; min-width: 0; }
.f-form label > span { font-size: .85rem; font-weight: 600; color: var(--ink-2); }
.f-form select, .f-form input { width: 100%; min-height: 3.1rem; padding: 0 .9rem; border-radius: var(--r-sm); border: 1.5px solid var(--line); background: var(--bg); color: var(--ink); font-weight: 600; font-size: 1rem; }
.f-form select:focus, .f-form input:focus { outline: none; border-color: var(--or); }
.qcs { display: flex; flex-wrap: wrap; gap: .45rem; align-items: center; }
.qcs > span { font-size: .88rem; color: var(--muted); font-weight: 600; margin-right: .2rem; }
.qc { padding: .45rem .8rem; border: 1.5px solid var(--line); border-radius: .35rem; font-weight: 600; font-size: .9rem; background: var(--bg); }
.qc:hover { border-color: var(--ink); }
.qc[aria-pressed="true"] { background: var(--ink); color: var(--bg); border-color: var(--ink); }
.f-count { color: var(--muted); border-top: 1px solid var(--line); padding-top: 1rem; }
.f-count b { color: var(--ink); }
.f-results { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; }
.ips { border: 1px solid var(--line); border-radius: var(--r-sm); padding: 1.1rem 1.2rem; display: grid; gap: .55rem; align-content: start; background: var(--bg); min-width: 0; }
.ips.nat { grid-column: 1 / -1; background: var(--or-soft); border-color: transparent; }
.ips h3 { font-size: 1.02rem; line-height: 1.3; }
.ips .sede { color: var(--muted); font-size: .88rem; margin-top: -.3rem; }
.ips .row { display: flex; gap: .55rem; align-items: flex-start; font-size: .92rem; }
.ips .row .ico { width: 1.05rem; height: 1.05rem; color: var(--or-text); margin-top: .2rem; }
.ips .row a { text-decoration: underline; text-decoration-color: var(--line); text-underline-offset: 3px; overflow-wrap: anywhere; }
.ips .tags { display: flex; flex-wrap: wrap; gap: .3rem; }
.ips .tags span { font-size: .78rem; padding: .2rem .5rem; border-radius: .3rem; background: var(--soft); }
.ips .tags .pl { background: var(--ink); color: var(--bg); font-weight: 700; }
.ips .tags .cat { background: var(--or-soft); color: var(--or-text); font-weight: 700; }
.f-empty { grid-column: 1 / -1; color: var(--muted); }
.f-more { justify-self: center; }

@media (max-width: 1100px) {
  .ptabs { grid-template-columns: repeat(5, minmax(8.5rem, 1fr)); overflow-x: auto; scrollbar-width: none; }
  .ppanel { grid-template-columns: 1fr; }
  .tl { grid-template-columns: 1fr 1fr; row-gap: 2.5rem; }
  .tl::before { display: none; }
  .f-form { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 900px) {
  .caso-grid { grid-template-columns: 1fr; }
  .f-results, .esp-in { grid-template-columns: 1fr; }
  .trust ul.t3 { grid-template-columns: 1fr; }
  .trust ul.t3 li + li { border-left: 0; border-top: 1px solid var(--line); }
  .mcmp { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items: center; gap: .5rem; }
  .mcmp > span:first-child { grid-column: 1 / -1; font-weight: 600; }
  .mcmp select { min-height: 3rem; padding: 0 .75rem; border-radius: var(--r-sm); border: 1.5px solid var(--line); background: var(--bg); font-weight: 700; }
  .cmp { min-width: 0; }
  .cmp [data-p]:not(.mshow) { display: none; }
  .cmp th[scope="row"], .cmp .corner { width: 50%; }
}
@media (max-width: 600px) {
  .pp-list { grid-template-columns: 1fr; }
  .pno ul { grid-template-columns: 1fr; }
  .casos { grid-template-columns: 1fr; }
  .tl { grid-template-columns: 1fr; }
  .f-form { grid-template-columns: 1fr 1fr; }
  .f-form label:first-child, .f-form .f-q { grid-column: 1 / -1; }
  .qcs { order: -1; }
}
