/* =========================================================
   FORMS — Inputs, labels, form rows, filtros, controles
   ========================================================= */

/* ── FIELD (login + genérico) ── */
.field { margin-bottom: 1rem; }
.field label { display: block; font-size: 12px; color: var(--muted); margin-bottom: 4px; }
.field input {
  width: 100%;
  padding: 9px 12px;
  border: 0.5px solid var(--border);
  border-radius: var(--radius);
  font-size: 14px;
  background: var(--bg);
  color: var(--text);
  outline: none;
  transition: border-color 0.15s, background 0.25s, color 0.25s;
}
.field input:focus { border-color: var(--primary); }

/* ── CONTROLES / FILTROS ── */
.controls { display: flex; flex-direction: column; gap: 8px; margin-bottom: 1rem; }
.controls-row { display: flex; gap: 8px; align-items: center; width: 100%; }
.controls-row input,
.controls-row select {
  flex: 1;
  min-width: 0;
  padding: 7px 10px;
  border: 0.5px solid var(--border);
  border-radius: var(--radius);
  background: var(--surface);
  color: var(--text);
  font-size: 13px;
  outline: none;
  transition: border-color 0.15s, background 0.25s, color 0.25s;
}
.controls-row input:focus,
.controls-row select:focus { border-color: var(--primary); }

/* ── FORM ROWS (modales) ── */
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.form-row { margin-bottom: 0.75rem; }
.form-row label { display: block; font-size: 11px; color: var(--muted); margin-bottom: 3px; }
.form-row input,
.form-row select,
.form-row textarea {
  width: 100%;
  padding: 7px 10px;
  border: 0.5px solid var(--border);
  border-radius: var(--radius);
  font-size: 13px;
  background: var(--bg);
  color: var(--text);
  outline: none;
  transition: border-color 0.15s, background 0.25s, color 0.25s;
}
.form-row input:focus,
.form-row select:focus { border-color: var(--primary); }
.form-row textarea { resize: vertical; min-height: 60px; }
.checkrow { display: flex; gap: 16px; margin-top: 4px; }
.checkrow label { display: flex; align-items: center; gap: 5px; font-size: 13px; cursor: pointer; color: var(--text); }

/* ── FILTROS (buscador + selects de publicaciones) ── */

/* Buscador */
.filter-search-wrap {
  position: relative;
  flex: 2;
  min-width: 0;
}
.filter-search-icon {
  position: absolute;
  left: 10px; top: 50%;
  transform: translateY(-50%);
  font-size: 13px;
  pointer-events: none;
}
.filter-search {
  width: 100%;
  padding: 8px 12px 8px 32px;
  border: 0.5px solid var(--border);
  border-radius: var(--radius);
  background: var(--surface);
  color: var(--text);
  font-size: 13px;
  outline: none;
  transition: border-color 0.15s;
}
.filter-search:focus { border-color: var(--primary); }

/* Selects — nativos, un solo borde, sin wrapper */
.filter-select {
  flex: 1;
  min-width: 0;
  padding: 8px 30px 8px 12px;
  border: 0.5px solid var(--border);
  border-left-width: 3px;           /* borde izquierdo grueso para el color */
  border-left-color: var(--border); /* empieza neutral */
  border-radius: var(--radius);
  background: var(--surface);
  color: var(--text);
  font-size: 13px;
  outline: none;
  cursor: pointer;
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%23888'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 10px center;
  transition: border-color 0.15s, border-left-color 0.2s;
}
.filter-select:hover,
.filter-select:focus { border-color: var(--primary); }

/* Cuando tiene valor seleccionado (clase añadida por JS) */
.filter-select.has-value {
  border-left-color: var(--dot-color, var(--primary));
}

/* Fila 2 */
.controls-row:nth-child(2) .filter-select { max-width: 280px; }

.btn-limpiar {
  white-space: nowrap;
  flex-shrink: 0;
  font-size: 12px;
  color: var(--muted);
}
.btn-limpiar:hover { color: var(--red-txt); border-color: var(--red-txt); }

@media (max-width: 768px) {
  .controls-row { flex-wrap: wrap; }
  .filter-search-wrap { flex: 1 1 100%; }
  .filter-select { flex: 1 1 calc(50% - 4px); }
  .pub-controls-row .filter-search-wrap { flex: 1 1 100%; }
  .pub-controls-row .filter-select { flex: 1 1 calc(50% - 4px); }
}
