/* Tokens: paleta de marca visite.ar (carruseles-agente/catalogo_patrones.json)
   + escala de espaciado de repo/design-system/tokens.css */
:root {
  --navy: #0e1a2b;
  --navy-2: #0a1220;
  --celeste: #75b5d9;
  --crema: #f3ecdd;
  --dorado: #e8b53d;
  --rojo: #d64545;
  --text: #eaf1fa;
  --text-dim: #8fa3bd;
  --line: rgba(117, 181, 217, 0.16);
  --line-strong: rgba(117, 181, 217, 0.32);
  --glass: rgba(117, 181, 217, 0.05);
  --glass-2: rgba(117, 181, 217, 0.1);
  --ok: #7fe0c3;
  --radius: 14px;
  --font: 'Inter', system-ui, -apple-system, sans-serif;
  --space-2: 4px; --space-4: 6px; --space-6: 8px; --space-9: 10px;
  --space-11: 12px; --space-12: 14px; --space-14: 20px; --space-16: 44px;
}

* { box-sizing: border-box; }
html, body { margin: 0; min-height: 100%; background: var(--navy); color: var(--text); font-family: var(--font); font-size: 14px; }
h1, h2, h3 { font-weight: 800; letter-spacing: -0.02em; margin: 0; }

.app { max-width: 1400px; margin: 0 auto; padding: 0 var(--space-14) 80px; }

.topbar {
  position: sticky; top: 0; z-index: 40;
  display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: var(--space-14);
  padding: var(--space-12) var(--space-2);
  margin-bottom: var(--space-14);
  background: rgba(14, 26, 43, 0.85);
  backdrop-filter: blur(16px);
  border-bottom: 1px solid var(--line);
}
.brand { display: flex; align-items: baseline; gap: var(--space-9); }
.brand-name { font-size: 17px; font-weight: 900; }
.brand-name em { color: var(--celeste); font-style: italic; }
.brand-sub { font-size: 11px; color: var(--text-dim); font-weight: 600; }

.filtros { display: flex; gap: var(--space-6); flex-wrap: wrap; }
.filtros input, .filtros select, select, input, textarea {
  background: var(--glass); color: var(--text); border: 1px solid var(--line);
  border-radius: 8px; padding: var(--space-6) var(--space-9); font-family: var(--font); font-size: 13px;
}
.filtros input { width: 160px; }

/* Tabla tipo sheet (Notion) en vez de grilla de tarjetas */
.tabla-wrap { border: 1px solid var(--line); border-radius: var(--radius); overflow: auto; }
.tabla { width: 100%; border-collapse: collapse; font-size: 13px; }
.tabla th {
  text-align: left; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em;
  color: var(--text-dim); padding: var(--space-9) var(--space-11); border-bottom: 1px solid var(--line);
  background: var(--glass); position: sticky; top: 0;
}
.tabla td { padding: var(--space-9) var(--space-11); border-bottom: 1px solid var(--line); vertical-align: middle; }
.tabla tbody tr { cursor: pointer; transition: background-color 0.1s; }
.tabla tbody tr:hover { background: var(--glass); }
.tabla tbody tr:last-child td { border-bottom: none; }
.col-thumb { width: 44px; }
.fila-thumb { width: 36px; height: 45px; object-fit: cover; border-radius: 4px; display: block; background: var(--navy-2); }
.col-creador { color: var(--text-dim); white-space: nowrap; }
.col-link { max-width: 180px; }
.col-link a { color: var(--celeste); font-size: 12px; word-break: break-all; }
.col-texto { max-width: 320px; color: var(--text); }
.texto-vacio { color: var(--text-dim); }
.col-estado { white-space: nowrap; }
.pastilla { display: inline-block; font-size: 11px; font-weight: 700; padding: 2px 8px; border-radius: 4px; margin: 1px; white-space: nowrap; }

.card-thumb { width: 100%; aspect-ratio: 4/5; object-fit: cover; background: var(--navy-2); display: block; }
.badge { display: inline-block; font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em; padding: 2px 7px; border-radius: 4px; }
.badge-pendiente { background: rgba(232, 181, 61, 0.18); color: var(--dorado); }
.badge-usado { background: rgba(127, 224, 195, 0.18); color: var(--ok); }
.badge-tipo { background: var(--glass-2); color: var(--text-dim); }

.modal-fondo { position: fixed; inset: 0; background: rgba(4, 8, 14, 0.7); display: flex; align-items: center; justify-content: center; z-index: 100; padding: var(--space-14); }
.modal-fondo.oculto { display: none; }
.modal { position: relative; background: var(--navy-2); border: 1px solid var(--line-strong); border-radius: var(--radius); width: min(760px, 100%); max-height: 88vh; overflow-y: auto; padding: var(--space-16); }
.modal-cerrar { position: absolute; top: var(--space-11); right: var(--space-11); background: none; border: none; color: var(--text-dim); font-size: 16px; cursor: pointer; }

.campo { display: flex; flex-direction: column; gap: var(--space-4); margin-bottom: var(--space-12); }
.campo label { font-size: 11px; color: var(--text-dim); font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; }
.campo textarea { resize: vertical; min-height: 60px; }
.fila { display: flex; gap: var(--space-11); }
.fila .campo { flex: 1; }

.chips { display: flex; flex-wrap: wrap; gap: var(--space-4); }
.chip { border: 1px solid var(--line); border-radius: 4px; padding: 4px 10px; font-size: 12px; cursor: pointer; background: transparent; color: var(--text-dim); }
.chip.activo { background: var(--celeste); color: var(--navy); border-color: var(--celeste); font-weight: 700; }

.acciones { display: flex; gap: var(--space-9); flex-wrap: wrap; margin-top: var(--space-14); align-items: center; }
button.accion { background: var(--celeste); color: var(--navy); border: none; border-radius: 8px; padding: var(--space-6) var(--space-12); font-weight: 700; cursor: pointer; font-size: 13px; }
button.accion.secundaria { background: var(--glass-2); color: var(--text); border: 1px solid var(--line); }
button.accion.peligro { background: rgba(214, 69, 69, 0.18); color: var(--rojo); border: 1px solid rgba(214, 69, 69, 0.4); }
.switch-usado { display: flex; align-items: center; gap: var(--space-6); font-size: 13px; }
.estado-guardado { font-size: 11px; color: var(--ok); }
