/* OnePortal · directorio: complementa app.css (mismo sistema visual). */
.pasos-acceso { display: flex; gap: 6px; margin-bottom: 22px; }
.pasos-acceso span { flex: 1; height: 4px; border-radius: 4px; background: var(--linea); }
.pasos-acceso span.hecho { background: var(--acento); }
.codigo { font-size: 28px; letter-spacing: .5em; text-align: center; font-family: ui-monospace, "SF Mono", Consolas, monospace; padding: 12px; }
.portales { display: grid; gap: 12px; margin-top: 18px; }
.portal { display: flex; align-items: center; gap: 14px; padding: 14px 16px; border: 1px solid var(--linea); border-radius: var(--r); background: var(--surf);
  text-decoration: none; color: var(--tinta); transition: border-color .15s, box-shadow .15s; }
.portal:hover { border-color: var(--acento); box-shadow: 0 0 0 3px var(--acento-suave); }
.portal-logo { width: 56px; height: 40px; border-radius: 8px; background: var(--surf2); display: grid; place-items: center; overflow: hidden; flex: none;
  font-weight: 700; color: var(--primario); }
.portal-logo img { max-width: 100%; max-height: 100%; object-fit: contain; }
.portal b { display: block; } .portal small { color: var(--mut); }
.portal .ir { margin-left: auto; color: var(--acento); font-weight: 600; white-space: nowrap; }
.enlace { background: none; border: 0; color: var(--acento); padding: 0; font-weight: 600; }
.enlace:disabled { color: var(--tenue); cursor: default; }

/* Alta de portal por invitación */
body.alta { background: var(--bg); }
.alta-cab { display: flex; align-items: center; padding: 20px 32px; }
.op-marca.grande { gap: 10px; color: var(--tinta); font-size: 19px; }
.op-marca.grande img { width: 36px; height: 36px; }
.alta-cuerpo { max-width: 860px; margin: 0 auto; padding: 8px 16px 64px; display: flex; flex-direction: column; gap: 18px; }
.alta-intro h1 { font-size: 26px; }
.alta-intro p { color: var(--mut); margin-top: 6px; max-width: 64ch; }
.plan-resumen { display: flex; flex-wrap: wrap; gap: 8px 20px; margin-top: 12px; font-size: 13.5px; color: var(--mut); }
.plan-resumen b { color: var(--tinta); }
.sub-estado { font-size: 12.5px; }
.sub-estado.ok { color: var(--ok-tinta); } .sub-estado.mal { color: var(--mal-tinta); }
.receptor { display: grid; grid-template-columns: 170px 1fr 1fr auto; gap: 10px; align-items: end; }

.alta-pie { display: flex; flex-direction: column; gap: 14px; }
.codigo-caja { max-width: 420px; }
@media (max-width: 720px) { .receptor { grid-template-columns: 1fr; } .alta-cab { padding: 16px; } }
