/* ══════════════════════════════════════════════════════════════════
   TMV Directorio Proveedores v2.0.0
   CSS auditado y corregido — resistente a Astra / cualquier tema
   Estrategia: CSS vars en raíz + bloque anti-tema con
   [data-theme] + !important + -webkit-text-fill-color
══════════════════════════════════════════════════════════════════ */

/* ── Variables de diseño ──────────────────────────────── */
.tmvprov {
  /* paleta dark */
  --tm-panel:      #0f1729;
  --tm-panel2:     #0a1120;
  --tm-text:       #e9eefc;
  --tm-muted:      #8fa3c8;
  --tm-line:       rgba(255,255,255,.11);
  --tm-accent:     #4f8cff;
  --tm-accent2:    #22c55e;
  --tm-shadow:     0 20px 48px rgba(0,0,0,.40);
  --tm-radius:     16px;
  /* inputs dark */
  --tm-input-bg:   #1b2842;
  --tm-input-fg:   #e9eefc;
  --tm-input-bdr:  rgba(255,255,255,.16);
  --tm-label-fg:   #a8bcd8;

  max-width: 1100px;
  margin: 0 auto;
  padding: 0 14px 24px;
  font-family: system-ui, -apple-system, 'Segoe UI', Roboto, Arial, sans-serif;
  font-size: 14px;
  line-height: 1.5;
  box-sizing: border-box;
}

.tmvprov[data-theme="light"] {
  --tm-panel:      #ffffff;
  --tm-panel2:     #f4f6fb;
  --tm-text:       #0f1729;
  --tm-muted:      #51607a;
  --tm-line:       rgba(15,23,41,.12);
  --tm-shadow:     0 12px 32px rgba(15,23,41,.10);
  /* inputs light */
  --tm-input-bg:   #eef1f8;
  --tm-input-fg:   #0f1729;
  --tm-input-bdr:  rgba(15,23,41,.18);
  --tm-label-fg:   #2c3a5a;
}

/* ── Card ─────────────────────────────────────────────── */
.tmvprov__card {
  background: linear-gradient(160deg, var(--tm-panel) 0%, var(--tm-panel2) 100%);
  border: 1px solid var(--tm-line);
  border-radius: var(--tm-radius);
  box-shadow: var(--tm-shadow);
  overflow: hidden;
  position: relative;
  color: var(--tm-text);
}
.tmvprov__card::before {
  content: '';
  position: absolute;
  inset: -40%;
  background: radial-gradient(circle at 20% 10%, rgba(79,140,255,.10) 0%, transparent 55%);
  pointer-events: none;
}

/* ── Cabecera ─────────────────────────────────────────── */
.tmvprov__head { padding: 18px 20px 10px; position: relative; }
.tmvprov__title { font-size: 18px; font-weight: 800; color: var(--tm-text); }
.tmvprov__sub   { font-size: 13px; color: var(--tm-muted); margin-top: 4px; }

/* ── Labels ───────────────────────────────────────────── */
.tmvprov__f label {
  display: block;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--tm-label-fg);
  margin: 12px 0 5px;
}

/* ── Grilla de campos ─────────────────────────────────── */
.tmvprov__filters {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 12px;
  padding: 4px 20px 14px;
  position: relative;
}
@media (max-width: 800px) { .tmvprov__filters { grid-template-columns: 1fr; } }

/* ── Inputs y selects ─────────────────────────────────── */
.tmvprov__filters input,
.tmvprov__filters select,
.tmvprov__reg input,
.tmvprov__reg select {
  width: 100%;
  padding: 10px 13px;
  border-radius: 10px;
  border: 1px solid var(--tm-input-bdr);
  background: var(--tm-input-bg);
  color: var(--tm-input-fg);
  font-size: 14px;
  font-family: inherit;
  outline: none;
  transition: border-color .18s, box-shadow .18s;
  box-sizing: border-box;
  /* reset webkit que puede poner texto negro */
  -webkit-text-fill-color: var(--tm-input-fg);
  -webkit-appearance: none;
  appearance: none;
}
.tmvprov__filters input:focus,
.tmvprov__filters select:focus,
.tmvprov__reg input:focus,
.tmvprov__reg select:focus {
  border-color: var(--tm-accent);
  box-shadow: 0 0 0 3px rgba(79,140,255,.18);
}

/* Select — flecha personalizada */
.tmvprov__filters select,
.tmvprov__reg select {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23a8bcd8' stroke-width='1.6' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 12px center;
  padding-right: 34px;
}
.tmvprov[data-theme="light"] .tmvprov__filters select,
.tmvprov[data-theme="light"] .tmvprov__reg select {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%232c3a5a' stroke-width='1.6' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
}

/* Placeholders */
.tmvprov__filters input::placeholder,
.tmvprov__reg input::placeholder {
  color: rgba(168,188,216,.50);
  -webkit-text-fill-color: rgba(168,188,216,.50);
  opacity: 1;
}
.tmvprov[data-theme="light"] .tmvprov__filters input::placeholder,
.tmvprov[data-theme="light"] .tmvprov__reg input::placeholder {
  color: rgba(15,23,41,.35);
  -webkit-text-fill-color: rgba(15,23,41,.35);
  opacity: 1;
}

/* ── Listado de proveedores ───────────────────────────── */
.tmvprov__list   { padding: 0 20px 16px; display: flex; flex-direction: column; gap: 10px; }
.tmvprov__empty  { padding: 16px; border: 1px dashed var(--tm-line); border-radius: 12px; color: var(--tm-muted); text-align: center; }
.tmvprov__item   { display: grid; grid-template-columns: 36px 1fr auto; gap: 12px; border: 1px solid var(--tm-line); border-radius: 12px; background: rgba(255,255,255,.04); padding: 12px; align-items: start; transition: border-color .18s; }
.tmvprov__item:hover { border-color: rgba(79,140,255,.30); }
@media (max-width: 700px) { .tmvprov__item { grid-template-columns: 36px 1fr; } .tmvprov__actions { grid-column: 1 / -1; justify-content: flex-start; } }

/* Checkbox */
.tmvprov__check { display: flex; align-items: center; justify-content: center; padding-top: 3px; }
.tmvprov__check input { display: none; }
.tmvprov__check span { width: 20px; height: 20px; border-radius: 6px; border: 1.5px solid var(--tm-line); background: rgba(0,0,0,.10); position: relative; flex-shrink: 0; transition: background .15s, border-color .15s; }
.tmvprov__check input:checked + span { border-color: var(--tm-accent); background: rgba(79,140,255,.25); }
.tmvprov__check input:checked + span::after { content: ''; position: absolute; inset: 4px; background: #fff; border-radius: 3px; }

/* Fila proveedor */
.tmvprov__row    { display: flex; gap: 7px; align-items: center; flex-wrap: wrap; }
.tmvprov__name   { font-size: 15px; font-weight: 800; color: var(--tm-text); }
.tmvprov__pill   { font-size: 11px; font-weight: 700; padding: 2px 9px; border-radius: 99px; border: 1px solid var(--tm-line); background: rgba(255,255,255,.05); color: var(--tm-text); white-space: nowrap; }
.tmvprov__pill--muted  { color: var(--tm-muted); }
.tmvprov__pill--rating { color: #f59e0b; border-color: rgba(245,158,11,.30); background: rgba(245,158,11,.08); }
.tmvprov__muted  { color: var(--tm-muted); font-size: 13px; margin-top: 5px; }
.tmvprov__grid   { display: grid; grid-template-columns: 1fr 1fr; gap: 4px 14px; margin-top: 7px; font-size: 13px; color: var(--tm-muted); }
.tmvprov__grid * { color: inherit; }
.tmvprov__grid b,
.tmvprov__grid strong { color: var(--tm-text); -webkit-text-fill-color: var(--tm-text); }
.tmvprov__grid a  { color: var(--tm-accent); -webkit-text-fill-color: var(--tm-accent); text-decoration: none; }
.tmvprov__grid a:hover { opacity: .8; text-decoration: underline; }
@media (max-width: 560px) { .tmvprov__grid { grid-template-columns: 1fr; } }
.tmvprov__notes  { margin-top: 7px; padding: 7px 10px; border-radius: 8px; border: 1px solid var(--tm-line); background: rgba(0,0,0,.12); color: var(--tm-muted); font-size: 12px; }

/* ── Botones ──────────────────────────────────────────── */
.tmvprov__actions { display: flex; gap: 7px; flex-direction: column; min-width: 100px; }
.tmvprov__btn {
  padding: 8px 13px;
  border-radius: 9px;
  border: 1px solid var(--tm-line);
  background: rgba(255,255,255,.06);
  color: var(--tm-text);
  -webkit-text-fill-color: var(--tm-text);
  font-weight: 700;
  font-size: 13px;
  cursor: pointer;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  white-space: nowrap;
  transition: opacity .15s, transform .12s;
  font-family: inherit;
}
.tmvprov__btn:hover  { opacity: .85; transform: translateY(-1px); }
.tmvprov__btn:active { transform: translateY(0); }
.tmvprov__btn--primary {
  background: linear-gradient(135deg, var(--tm-accent) 0%, #3569d4 100%);
  border-color: transparent;
  color: #fff;
  -webkit-text-fill-color: #fff;
}
.tmvprov__btn--ghost  { background: transparent; }
.tmvprov__btn--danger { border-color: rgba(239,68,68,.40); color: #ef4444; -webkit-text-fill-color: #ef4444; }

/* ── Área compose ─────────────────────────────────────── */
.tmvprov__compose { border-top: 1px solid var(--tm-line); padding: 14px 20px 18px; }
.tmvprov__composeHead  { display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; align-items: baseline; }
.tmvprov__composeTitle { font-weight: 800; font-size: 14px; color: var(--tm-text); }
.tmvprov__composeHint  { color: var(--tm-muted); font-size: 12px; }
.tmvprov__composeActions { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 12px; }
.tmvprov__textarea {
  width: 100%;
  margin-top: 12px;
  padding: 12px 14px;
  border-radius: 10px;
  border: 1px solid var(--tm-input-bdr);
  background: var(--tm-input-bg);
  color: var(--tm-input-fg);
  -webkit-text-fill-color: var(--tm-input-fg);
  font-size: 13px;
  font-family: inherit;
  line-height: 1.6;
  outline: none;
  resize: vertical;
  box-sizing: border-box;
}

/* ══════════════════════════════════════════════════════════════
   ANTI-ASTRA / ANTI-TEMA
   Astra inyecta colores via: body h*, body label, body input,
   body select usando --ast-global-color-N con alta especificidad.
   Ganamos con: body .tmvprov[data-theme="X"] etiqueta.clase
   + !important + -webkit-text-fill-color (Safari/webkit)
══════════════════════════════════════════════════════════════ */

/* Títulos */
body .tmvprov[data-theme="dark"]  .tmvprov__title,
body .tmvprov[data-theme="dark"]  .tmvprov__name,
body .tmvprov[data-theme="dark"]  .tmvprov__composeTitle
{ color: #e9eefc !important; -webkit-text-fill-color: #e9eefc !important; }

body .tmvprov[data-theme="light"] .tmvprov__title,
body .tmvprov[data-theme="light"] .tmvprov__name,
body .tmvprov[data-theme="light"] .tmvprov__composeTitle
{ color: #0f1729 !important; -webkit-text-fill-color: #0f1729 !important; }

/* Subtítulos / muted */
body .tmvprov[data-theme="dark"]  .tmvprov__sub,
body .tmvprov[data-theme="dark"]  .tmvprov__muted,
body .tmvprov[data-theme="dark"]  .tmvprov__composeHint,
body .tmvprov[data-theme="dark"]  .tmvprov__notes
{ color: #8fa3c8 !important; -webkit-text-fill-color: #8fa3c8 !important; }

/* Labels */
body .tmvprov[data-theme="dark"]  label.tmvprov__f > *,
body .tmvprov[data-theme="dark"]  .tmvprov__f label
{ color: #a8bcd8 !important; -webkit-text-fill-color: #a8bcd8 !important; }

body .tmvprov[data-theme="light"] .tmvprov__f label
{ color: #2c3a5a !important; -webkit-text-fill-color: #2c3a5a !important; }

/* Inputs y selects — fondo sólido + color forzado */
body .tmvprov[data-theme="dark"]  .tmvprov__filters input,
body .tmvprov[data-theme="dark"]  .tmvprov__filters select,
body .tmvprov[data-theme="dark"]  .tmvprov__reg input,
body .tmvprov[data-theme="dark"]  .tmvprov__reg select,
body .tmvprov[data-theme="dark"]  textarea.tmvprov__textarea
{ background: #1b2842 !important; color: #e9eefc !important; -webkit-text-fill-color: #e9eefc !important; }

body .tmvprov[data-theme="light"] .tmvprov__filters input,
body .tmvprov[data-theme="light"] .tmvprov__filters select,
body .tmvprov[data-theme="light"] .tmvprov__reg input,
body .tmvprov[data-theme="light"] .tmvprov__reg select,
body .tmvprov[data-theme="light"] textarea.tmvprov__textarea
{ background: #eef1f8 !important; color: #0f1729 !important; -webkit-text-fill-color: #0f1729 !important; }

/* Placeholders — necesitan bloque propio (no heredan -webkit-text-fill-color) */
body .tmvprov[data-theme="dark"]  .tmvprov__filters input::placeholder,
body .tmvprov[data-theme="dark"]  .tmvprov__reg input::placeholder
{ color: rgba(168,188,216,.48) !important; -webkit-text-fill-color: rgba(168,188,216,.48) !important; opacity: 1; }

body .tmvprov[data-theme="light"] .tmvprov__filters input::placeholder,
body .tmvprov[data-theme="light"] .tmvprov__reg input::placeholder
{ color: rgba(15,23,41,.36) !important; -webkit-text-fill-color: rgba(15,23,41,.36) !important; opacity: 1; }

/* Pills */
body .tmvprov[data-theme="dark"]  .tmvprov__pill
{ color: #e9eefc !important; -webkit-text-fill-color: #e9eefc !important; }
body .tmvprov[data-theme="dark"]  .tmvprov__pill--muted
{ color: #8fa3c8 !important; -webkit-text-fill-color: #8fa3c8 !important; }
body .tmvprov .tmvprov__pill--rating
{ color: #f59e0b !important; -webkit-text-fill-color: #f59e0b !important; }

/* Botón primario — siempre blanco */
body .tmvprov .tmvprov__btn--primary
{ color: #ffffff !important; -webkit-text-fill-color: #ffffff !important; }

/* Botón ghost / default — dark */
body .tmvprov[data-theme="dark"] .tmvprov__btn:not(.tmvprov__btn--primary)
{ color: #e9eefc !important; -webkit-text-fill-color: #e9eefc !important; }

/* Grid de datos del proveedor */
body .tmvprov[data-theme="dark"] .tmvprov__grid b,
body .tmvprov[data-theme="dark"] .tmvprov__grid strong
{ color: #e9eefc !important; -webkit-text-fill-color: #e9eefc !important; }
