/* ZOLDERTECH · Acceso privado (login y administración de usuarios).
   Usa tokens.css y base.css de ZOLDERTECH sin cambios; todo lo propio está acá. */
.zt-main { min-height: calc(100vh - 220px); padding: calc(var(--header-h) + var(--s-7)) var(--gutter) var(--s-8); display: flex; justify-content: center; align-items: flex-start;
  background: radial-gradient(900px 420px at 15% 0%, rgba(255,217,0,.06), transparent 60%), var(--z-black); }
.zt-card { width: 100%; max-width: 460px; padding: clamp(1.4rem, 4vw, 2.2rem); }
.zt-ancho { width: 100%; max-width: 1100px; }
.zt-ancho .zt-card { max-width: none; margin-block: var(--s-5); }
.zt-titulo { font-family: var(--f-display); font-stretch: 108%; font-weight: 700; font-size: clamp(1.7rem, 1.2rem + 2vw, 2.4rem); line-height: 1.05; margin: var(--s-3) 0 var(--s-3); }
.zt-h2 { font-family: var(--f-display); font-size: 1.15rem; margin: 0 0 var(--s-4); letter-spacing: .02em; }
.zt-h2--lista { margin-top: var(--s-6); }
.zt-sub { color: var(--z-silver); margin: 0 0 var(--s-5); }
.zt-form { display: grid; gap: var(--s-4); }
.zt-form--fila { grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); align-items: end; }
.zt-campo { display: grid; gap: .4rem; }
.zt-campo > span { font-size: .7rem; letter-spacing: .14em; text-transform: uppercase; color: var(--z-silver); }
.zt-campo input, .zt-campo select { min-height: 48px; padding: .7rem .9rem; background: #0d0d0d; color: var(--z-white); border: 1px solid var(--z-line); border-radius: var(--radius); font: inherit; width: 100%; }
.zt-campo input:focus, .zt-campo select:focus { outline: 2px solid var(--z-yellow); outline-offset: 1px; border-color: var(--z-yellow); }
.zt-check { display: flex; align-items: center; gap: .6rem; color: var(--z-silver); font-size: .92rem; cursor: pointer; }
.zt-check input { width: 18px; height: 18px; accent-color: var(--z-yellow); flex: none; }
.zt-msg { margin: 0 0 var(--s-4); padding: .75rem .9rem; border: 1px solid var(--z-line); border-left-width: 3px; border-radius: var(--radius); background: rgba(255,255,255,.03); }
.zt-msg--error { border-left-color: var(--z-red); color: #ff8a93; }
.zt-msg--ok { border-left-color: var(--z-yellow); color: var(--z-white); }
.zt-pie { margin: var(--s-5) 0 0; color: var(--z-dim); font-size: .88rem; }
.zt-pie a, .zt-sub a { color: var(--z-yellow); }
.zt-clave { display: grid; gap: .3rem; margin: 0 0 var(--s-4); padding: 1rem; border: 1px dashed var(--z-yellow); border-radius: var(--radius); }
.zt-clave code { font-family: var(--f-mono); font-size: 1.35rem; letter-spacing: .08em; color: var(--z-yellow); word-break: break-all; user-select: all; }
.zt-clave small { color: var(--z-silver); }
.zt-lista { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--s-3); }
.zt-fila { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1.1fr) minmax(0, 1.6fr); gap: var(--s-4); align-items: center; padding: var(--s-4); background: var(--z-anthracite); border: 1px solid var(--z-line); border-radius: var(--radius); }
.zt-fila__id { display: grid; gap: .2rem; min-width: 0; }
.zt-fila__id .mono { color: var(--z-silver); font-size: .8rem; overflow-wrap: anywhere; }
.zt-fila__meta { display: grid; gap: .35rem; justify-items: start; font-size: .78rem; color: var(--z-silver); }
.zt-fila__acc { display: flex; flex-wrap: wrap; gap: var(--s-2); justify-content: flex-end; align-items: center; }
.zt-inline { display: inline-flex; gap: .5rem; align-items: center; margin: 0; }
.zt-badge { display: inline-block; padding: .15rem .6rem; font-family: var(--f-mono); font-size: .68rem; letter-spacing: .12em; text-transform: uppercase; border: 1px solid; border-radius: 2px; }
.zt-badge--ok { color: var(--z-yellow); border-color: var(--z-yellow); }
.zt-badge--no { color: #ff8a93; border-color: var(--z-red); }
.zt-salir { margin-top: var(--s-6); }
code { font-family: var(--f-mono); color: var(--z-yellow); }
@media (max-width: 860px) {
  .zt-fila { grid-template-columns: 1fr; }
  .zt-fila__acc { justify-content: flex-start; }
}
