/* Roadmap público (SPEC §12.1.4, D-88): tres columnas sin fechas y «Avísame cuando llegue». Se carga después de ayuda.css
   (cabecera .ap-*). */
.rm-columnas { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; align-items: start; }
.rm-columna { display: grid; gap: 12px; }
.rm-columna-cab { display: flex; align-items: center; gap: 12px; }
.rm-columna-cab h2 { margin: 0; font-size: 20px; font-weight: 800; display: flex; align-items: center; gap: 10px; }
.rm-icono { flex: none; display: inline-grid; place-items: center; width: 36px; height: 36px; border-radius: 10px; background: var(--color-info-bg); color: var(--color-brand); }
.rm-en-marcha .rm-icono { background: var(--color-warning-bg); color: var(--color-warning); }
.rm-proximamente .rm-icono { background: var(--color-background); color: var(--color-muted); box-shadow: inset 0 0 0 1px var(--color-border); }
.rm-cuenta { font-size: 13px; font-weight: 700; color: var(--color-muted); background: var(--color-background); border: 1px solid var(--color-border); border-radius: 999px; padding: 1px 9px; }
.rm-entrada { margin: 0 0 4px; font-size: 14.5px; color: var(--color-muted); }
.rm-lista { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.rm-item { padding: 18px 20px; display: grid; gap: 6px; }
.rm-item h3 { margin: 0; font-size: 17px; line-height: 1.3; }
.rm-item > p { margin: 0; font-size: 14.5px; line-height: 1.55; color: var(--color-muted); }
.rm-item > .rm-etiqueta { font-size: 12px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--color-brand); }
.rm-disponible .rm-item { border-left: 4px solid var(--color-brand); }
.rm-en-marcha .rm-item { border-left: 4px solid #e0a526; }
.rm-nota { text-align: center; margin-top: 32px; }
.rm-sec + .ap-sec .ap-acciones { justify-content: center; }

/* Avísame cuando llegue */
.rm-avisame { margin-top: 8px; display: grid; gap: 12px; }
.rm-avisame-boton { justify-self: start; min-height: var(--touch); }
.rm-avisame-boton[aria-expanded="true"] { display: none; }
.rm-form { display: grid; gap: 12px; padding-top: 4px; }
.rm-campo { display: grid; gap: 6px; }
.rm-campo label { font-size: 13.5px; font-weight: 700; }
.rm-campo input {
  width: 100%; min-height: var(--touch); padding: 10px 12px; font: inherit; font-size: 16px; color: var(--color-text);
  background: var(--color-background); border: 1px solid var(--color-border); border-radius: 10px;
}
.rm-campo input:focus-visible { outline: 3px solid var(--color-brand); outline-offset: 2px; background: var(--color-surface); }
.rm-campo [aria-invalid="true"], .rm-casilla [aria-invalid="true"] { outline: 2px solid var(--color-danger); }
.rm-casilla { display: flex; gap: 10px; align-items: flex-start; font-size: 14px; line-height: 1.5; cursor: pointer; }
.rm-casilla input { flex: none; width: 20px; height: 20px; margin: 2px 0 0; accent-color: var(--color-brand); cursor: pointer; }
.rm-casilla small { display: block; font-size: 12.5px; color: var(--color-muted); }
.rm-form .boton { justify-self: start; }
.rm-form .campo-error { margin: 0; color: var(--color-danger); font-size: 13.5px; font-weight: 600; }
.rm-form .campo-trampa { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.rm-estado { margin: 0; border-radius: 10px; padding: 10px 12px; font-size: 14px; font-weight: 600; }
.rm-estado.ok { background: var(--color-info-bg); border-left: 4px solid var(--color-brand); }
.rm-estado.error { background: var(--color-danger-bg); color: var(--color-danger); border-left: 4px solid var(--color-danger); }
.rm-estado.info { background: var(--color-background); }

@media (max-width: 960px) {
  .rm-columnas { grid-template-columns: minmax(0, 1fr); gap: 36px; }
}
