.form{
  display:grid;
  gap: 12px;
}

.form--grid{
  display:grid;
  gap: 12px;
  grid-template-columns: repeat(2, minmax(0,1fr));
}
@media (max-width: 720px){
  .form--grid{ grid-template-columns: 1fr; }
}

.form-inline{
  display:flex;
  gap: 10px;
  flex-wrap: wrap;
  align-items:center;
  margin-top: 10px;
}

.field{
  display:grid;
  gap: 6px;
}
.field--full{ grid-column: 1 / -1; }

.field__label,
.field__help{
  font-size: 12px;
  color: var(--muted);
}

/* ============================================================
   INPUTS / SELECTS (canónico)
   ============================================================ */

.input, .select{
  width: 100%;
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(35,52,76,.9);
  color: var(--text);
  border-radius: 12px;
  padding: 10px 11px;
  outline: none;
}

/* Ratón */
.input:focus, .select:focus{
  border-color: rgba(59,130,246,.75);
  box-shadow: 0 0 0 3px rgba(59,130,246,.20);
}

/* Teclado */
.input:focus-visible,
.select:focus-visible{
  outline: 2px solid rgba(110,168,255,.75);
  outline-offset: 2px;
  border-color: rgba(110,168,255,.85);
  box-shadow: none;
}

.input:focus:not(:focus-visible),
.select:focus:not(:focus-visible){
  outline: none;
}

.input--big{
  font-size: 18px;
  padding: 14px 14px;
  border-radius: 14px;
}

.input--sm{
  font-size: 12px;
  padding: 8px 9px;
  border-radius: 10px;
  width: 160px;
}

.select--sm{
  font-size: 12px;
  padding: 7px 9px;
  border-radius: 10px;
}

.pill{
  display:inline-flex;
  padding: 10px 12px;
  border-radius: 12px;
  border: 1px solid var(--line);
  background: rgba(255,255,255,.03);
  font-weight: 800;
}

/* ============================================================
   BUTTONS (canónico)
   ============================================================ */

.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap: 8px;
  padding: 10px 12px;
  border-radius: 12px;
  border: 1px solid rgba(35,52,76,.95);
  background: rgba(255,255,255,.04);
  color: var(--text);
  cursor: pointer;
  white-space: nowrap;
}

.btn:hover{
  border-color: rgba(59,130,246,.65);
  background: rgba(59,130,246,.10);
}

.btn:focus-visible{
  outline: 2px solid rgba(110,168,255,.75);
  outline-offset: 3px;
}

.btn:focus:not(:focus-visible){
  outline: none;
}

.btn--primary{
  border-color: rgba(59,130,246,.65);
  background: rgba(59,130,246,.22);
}
.btn--primary:hover{ background: rgba(59,130,246,.30); }

.btn--danger{
  border-color: rgba(239,68,68,.65);
  background: rgba(239,68,68,.18);
}
.btn--danger:hover{ background: rgba(239,68,68,.26); }

.btn--ghost{ background: transparent; }

.btn--sm{
  padding: 8px 10px;
  border-radius: 10px;
  font-size: 12px;
}

.btn--big{
  width: 100%;
  padding: 14px 14px;
  border-radius: 14px;
  font-size: 16px;
  font-weight: 800;
}

.logout-block{ margin-top: 10px; }
.hint{
  margin-top: 12px;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.4;
}

/* ============================================================
   LINKS (accesibilidad)
   ============================================================ */

a:focus-visible{
  outline: 2px solid rgba(110,168,255,.75);
  outline-offset: 2px;
  border-radius: 6px;
}
a:focus:not(:focus-visible){ outline: none; }

/* ============================================================
   CHIPS
   ============================================================ */

.chip{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding: 6px 10px;
  border-radius: 999px;
  border: 1px solid rgba(35,52,76,.95);
  background: rgba(255,255,255,.03);
  font-size: 12px;
  color: var(--text);
}

.chip--active{
  border-color: rgba(59,130,246,.75);
  background: rgba(59,130,246,.22);
}

.chip--muted{
  color: var(--muted);
  border-color: rgba(35,52,76,.75);
  background: rgba(255,255,255,.02);
}
.chip--ok{
  border-color: rgba(34,197,94,.55);
  background: rgba(34,197,94,.14);
}

/* ============================================================
   TABLES (canónico)
   ============================================================ */

.table-wrap{
  overflow:auto;
  border-radius: 14px;
  border: 1px solid rgba(35,52,76,.8);
}

.table{
  width: 100%;
  border-collapse: collapse;
  min-width: 720px;
}

.table th, .table td{
  padding: 10px 10px;
  border-bottom: 1px solid rgba(35,52,76,.65);
  text-align: left;
  vertical-align: middle;
}

.table th{
  font-size: 12px;
  color: var(--muted);
  background: rgba(255,255,255,.03);
  position: sticky;
  top: 0;
}

.table tr:hover td{
  background: rgba(255,255,255,.02);
}

.td-right{ text-align:right; }

.empty{
  text-align:center;
  color: var(--muted);
  padding: 18px 12px !important;
}

.filters{
  display:flex;
  gap: 10px;
  flex-wrap: wrap;
  margin-bottom: 12px;
}
.filters .input{ width: min(380px, 100%); }
