/* ═══════════════════════════════════════════════════════════════════
   COMUNIDAD AGENCIERA — sistema de diseño heredado de Automotores Omega
   Negro profundo + naranja racing + Barlow / Barlow Condensed
   ═══════════════════════════════════════════════════════════════════ */
:root {
  --bg:#080808; --card:#0f0f0f; --card2:#161616; --border:#242424;
  --accent:#ff6200; --accent2:#ff8c00; --accent3:#e64d00;
  --green:#00d97e; --red:#ff3b3b; --yellow:#ffcc00;
  --text:#ffffff; --muted:#666666; --muted2:#333333;
  --cond:'Barlow Condensed',sans-serif;
  --body:'Barlow',system-ui,sans-serif;
}
* { margin:0; padding:0; box-sizing:border-box; }
body { background:var(--bg); color:var(--text); font-family:var(--body); font-size:14px; min-height:100vh; }
.hidden { display:none !important; }

/* ── login ── */
.login-wrap { min-height:100vh; display:flex; align-items:center; justify-content:center;
  background:
    linear-gradient(45deg, rgba(255,255,255,.02) 25%, transparent 25%, transparent 50%, rgba(255,255,255,.02) 50%, rgba(255,255,255,.02) 75%, transparent 75%),
    var(--bg);
  background-size:28px 28px, auto; }
.login-card { width:380px; background:var(--card); border:1px solid var(--border); border-radius:2px;
  padding:40px 36px; position:relative; overflow:hidden; }
.login-card::before { content:''; position:absolute; top:0; left:0; right:0; height:3px;
  background:linear-gradient(90deg, var(--accent3), var(--accent), var(--accent2)); }
.login-brand { text-align:center; margin-bottom:28px; }
.login-brand svg { height:64px; width:auto; margin-bottom:14px; }
.brand-title { font-family:var(--cond); font-weight:900; font-size:36px; letter-spacing:5px; line-height:1; }
.brand-sub { font-family:var(--cond); font-weight:700; font-size:14px; letter-spacing:6px; color:var(--accent); text-transform:uppercase; margin-top:4px; }
.login-card label { display:block; margin:14px 0 5px; color:var(--muted); font-family:var(--cond);
  font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:2px; }
.login-card input { width:100%; }

/* ── inputs / botones ── */
input, select, textarea {
  background:var(--card2); border:1px solid var(--border); color:var(--text);
  border-radius:2px; padding:10px 12px; font-family:var(--body); font-size:14px;
}
input:focus, select:focus, textarea:focus { outline:none; border-color:var(--accent); }
.btn {
  background:#1a1a1a; border:1px solid var(--border); color:var(--text);
  border-radius:2px; padding:10px 18px; cursor:pointer;
  font-family:var(--cond); font-weight:700; font-size:13px;
  text-transform:uppercase; letter-spacing:1px;
  transition:background .18s, color .18s, border-color .18s, transform .12s;
}
.btn:hover { border-color:var(--accent); color:var(--accent); }
.btn-primary { background:linear-gradient(135deg, var(--accent), #ffb000); border-color:var(--accent); color:#000; }
.btn-primary:hover { filter:brightness(1.12); color:#000; transform:translateY(-1px); }
.btn-ghost { background:transparent; border:2px solid var(--accent); color:var(--accent); }
.btn-ghost:hover { background:rgba(255,98,0,.08); }
.btn-block { width:100%; margin-top:22px; padding:12px; font-size:15px; }
.btn-sm { padding:6px 14px; font-size:12px; }
.form-msg { display:block; margin-top:10px; font-size:12px; color:var(--yellow); min-height:16px; }

/* ── topbar ── */
.topbar {
  display:flex; align-items:center; gap:22px; padding:12px 24px;
  background:var(--card); border-bottom:1px solid var(--border);
  position:sticky; top:0; z-index:50;
}
.topbar::after { content:''; position:absolute; left:0; right:0; bottom:-1px; height:2px;
  background:linear-gradient(90deg, var(--accent3), var(--accent) 30%, transparent 70%); }
.brand { display:flex; align-items:center; gap:12px; min-width:230px; }
.brand svg { height:44px; width:auto; flex-shrink:0; }
.brand-name { font-family:var(--cond); font-weight:900; font-size:23px; letter-spacing:3px; line-height:1; }
.brand-net { font-family:var(--cond); font-weight:700; font-size:11px; letter-spacing:4px; color:var(--accent); text-transform:uppercase; }
.nav { display:flex; gap:8px; flex:1; flex-wrap:wrap; }
.nav-btn {
  background:var(--card2); border:1px solid var(--border); color:var(--muted);
  padding:9px 16px; border-radius:10px; cursor:pointer;
  font-family:var(--cond); font-weight:700; font-size:14px;
  text-transform:uppercase; letter-spacing:.03em; white-space:nowrap;
  transition:background .18s, color .18s, border-color .18s, transform .12s;
}
.nav-btn:hover { color:var(--text); border-color:var(--accent); transform:translateY(-1px); }
.nav-btn.active { background:var(--accent); color:#000; border-color:var(--accent); }
.nav-btn-red { color:var(--accent); }
.badge-count { background:var(--red); color:#fff; border-radius:10px; padding:1px 7px; font-size:11px; margin-left:4px; font-family:var(--body); }

/* chip de la agencia logueada (identidad secundaria, la marca es Comunidad Agenciera) */
.agency-chip { display:flex; align-items:center; gap:9px; background:var(--card2);
  border:1px solid var(--border); border-radius:2px; padding:5px 12px 5px 6px; }
.agency-chip img { height:30px; max-width:90px; object-fit:contain; }
.agency-chip .ac-label { font-family:var(--cond); font-size:9px; font-weight:700; letter-spacing:2px; color:var(--muted); text-transform:uppercase; line-height:1; }
.agency-chip .ac-nombre { font-family:var(--cond); font-size:15px; font-weight:800; letter-spacing:1px; text-transform:uppercase; line-height:1.1; }

.main { padding:24px; max-width:1440px; margin:0 auto; }
.view-head { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px; margin-bottom:20px; }
.view-head h1 { font-family:var(--cond); font-size:30px; font-weight:900; letter-spacing:2px; text-transform:uppercase; }
.view-head h1::after { content:''; display:block; width:56px; height:3px; background:var(--accent); margin-top:6px; }
.toolbar { display:flex; gap:8px; flex-wrap:wrap; align-items:center; }
.input-search { min-width:230px; }

/* ── KPIs ── */
.kpi-row { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:12px; margin-bottom:22px; }
.kpi { background:var(--card); border:1px solid var(--border); border-radius:2px; padding:16px 20px; position:relative; overflow:hidden; transition:border-color .2s; }
.kpi:hover { border-color:var(--accent); }
.kpi .n { font-family:var(--cond); font-size:32px; font-weight:900; line-height:1; }
.kpi .l { font-family:var(--cond); font-size:10px; font-weight:700; color:var(--muted); text-transform:uppercase; letter-spacing:2px; margin-top:8px; }

/* ── tablas ── */
.table-wrap { background:var(--card); border:1px solid var(--border); border-radius:2px; overflow-x:auto; }
.tbl { width:100%; border-collapse:collapse; }
.tbl th {
  text-align:left; padding:12px 14px; font-family:var(--cond); font-size:12px; font-weight:800;
  letter-spacing:2px; text-transform:uppercase; color:var(--muted);
  border-bottom:1px solid var(--border); white-space:nowrap; background:var(--card2);
}
.tbl td { padding:11px 14px; border-bottom:1px solid #1a1a1a; white-space:nowrap; }
.tbl tr:last-child td { border-bottom:none; }
.tbl tr:hover td { background:rgba(255,98,0,.03); }

/* ── chips de estado ── */
.chip { display:inline-block; padding:3px 11px; border-radius:2px; font-family:var(--cond);
  font-size:12px; font-weight:800; letter-spacing:1.5px; text-transform:uppercase; }
.chip-disponible { background:rgba(0,217,126,.12); color:var(--green); border:1px solid rgba(0,217,126,.3); }
.chip-senado { background:var(--red); color:#fff; }
.chip-vendido { background:var(--muted2); color:#999; }
.chip-pausado { background:rgba(255,204,0,.12); color:var(--yellow); border:1px solid rgba(255,204,0,.3); }

/* ── toggle compartir ── */
.toggle { position:relative; width:42px; height:22px; background:var(--card2); border:1px solid var(--border); border-radius:20px; cursor:pointer; transition:.2s; }
.toggle::after { content:''; position:absolute; top:2px; left:2px; width:16px; height:16px; border-radius:50%; background:var(--muted); transition:.2s; }
.toggle.on { background:var(--accent); border-color:var(--accent); }
.toggle.on::after { left:22px; background:#000; }

/* ── cards comunidad ── */
.cards-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:14px; }
.vcard { background:var(--card); border:1px solid var(--border); border-radius:2px; padding:18px;
  display:flex; flex-direction:column; gap:10px; position:relative; overflow:hidden;
  transition:border-color .2s, transform .12s; }
.vcard:hover { border-color:var(--accent); transform:translateY(-2px); }
.vcard.senado { border-color:var(--red); }
.vcard .agencia-row { display:flex; align-items:center; gap:9px; }
.vcard .agencia-logo { width:32px; height:32px; border-radius:2px; object-fit:contain; background:#fff; }
.vcard .agencia-nombre { font-family:var(--cond); font-size:12px; font-weight:700; letter-spacing:1.5px; color:var(--muted); text-transform:uppercase; }
.vcard .v-titulo { font-family:var(--cond); font-size:24px; font-weight:900; letter-spacing:1px; text-transform:uppercase; line-height:1.05; }
.vcard .v-datos { font-size:12px; color:var(--muted); }
.vcard .v-precio { font-family:var(--cond); font-size:28px; font-weight:900; color:var(--green); letter-spacing:.5px; }
.vcard .v-acciones { display:flex; gap:8px; margin-top:auto; padding-top:6px; }
.senado-banner {
  position:absolute; top:14px; right:-34px; transform:rotate(38deg);
  background:var(--red); color:#fff; font-family:var(--cond); font-weight:900;
  letter-spacing:3px; font-size:13px; padding:4px 40px;
  box-shadow:0 2px 10px rgba(255,59,59,.45);
}

/* ── configuración ── */
.config-tabs { display:flex; gap:8px; margin-bottom:18px; }
.cfg-tab { background:var(--card2); border:1px solid var(--border); color:var(--muted);
  padding:9px 20px; border-radius:10px; cursor:pointer;
  font-family:var(--cond); font-weight:700; font-size:14px; text-transform:uppercase; letter-spacing:.03em; }
.cfg-tab.active { background:var(--accent); color:#000; border-color:var(--accent); }
.cfg-grid { display:grid; grid-template-columns:330px 1fr; gap:14px; align-items:start; }
@media (max-width:900px) { .cfg-grid { grid-template-columns:1fr; } }
.cfg-card { background:var(--card); border:1px solid var(--border); border-radius:2px; padding:22px; }
.cfg-card h3 { font-family:var(--cond); font-size:16px; font-weight:800; letter-spacing:1.5px; text-transform:uppercase; margin-bottom:4px; }
.hint { font-size:12px; color:var(--muted); margin-bottom:14px; }
.logo-drop {
  border:2px dashed var(--border); border-radius:2px; min-height:170px;
  display:flex; align-items:center; justify-content:center; cursor:pointer;
  color:var(--muted); font-size:13px; padding:12px; background:var(--card2);
  transition:border-color .2s;
}
.logo-drop:hover { border-color:var(--accent); color:var(--accent); }
.logo-drop img { max-height:145px; max-width:100%; object-fit:contain; }
.form-2col { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.form-2col label { display:block; font-family:var(--cond); font-size:11px; font-weight:700;
  color:var(--muted); text-transform:uppercase; letter-spacing:1.5px; margin-bottom:5px; }
.form-2col input { width:100%; }
.form-2col .span2 { grid-column:span 2; display:flex; align-items:center; gap:12px; }
@media (max-width:600px) { .form-2col { grid-template-columns:1fr; } .form-2col .span2 { grid-column:span 1; } }

/* ── señas ── */
.sena-card { background:var(--card); border:1px solid var(--border); border-radius:2px; padding:20px; margin-bottom:12px; transition:border-color .2s; }
.sena-card:hover { border-color:var(--accent); }
.sena-head { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:8px; margin-bottom:10px; }
.sena-titulo { font-family:var(--cond); font-size:22px; font-weight:900; letter-spacing:1px; text-transform:uppercase; }
.sena-meta { font-size:12px; color:var(--muted); margin-bottom:10px; }
.reparto-tbl { width:100%; border-collapse:collapse; margin:10px 0; }
.reparto-tbl th, .reparto-tbl td { text-align:left; padding:7px 10px; font-size:13px; border-bottom:1px solid #1a1a1a; }
.reparto-tbl th { font-family:var(--cond); color:var(--muted); font-size:11px; font-weight:800; text-transform:uppercase; letter-spacing:2px; }

/* ── modal ── */
.overlay { position:fixed; inset:0; background:rgba(0,0,0,.78); z-index:100; display:flex; align-items:center; justify-content:center; padding:20px; }
.modal { background:var(--card); border:1px solid var(--border); border-radius:2px; width:100%; max-width:680px; max-height:90vh; display:flex; flex-direction:column; position:relative; }
.modal::before { content:''; position:absolute; top:0; left:0; right:0; height:3px;
  background:linear-gradient(90deg, var(--accent3), var(--accent), var(--accent2)); }
.modal-head { display:flex; justify-content:space-between; align-items:center; padding:18px 22px; border-bottom:1px solid var(--border); }
.modal-head h2 { font-family:var(--cond); font-size:20px; font-weight:900; letter-spacing:1.5px; text-transform:uppercase; }
.modal-x { background:none; border:none; color:var(--muted); font-size:18px; cursor:pointer; }
.modal-x:hover { color:var(--accent); }
.modal-body { padding:22px; overflow-y:auto; }

/* ── toast / loading ── */
.toast {
  position:fixed; bottom:24px; left:50%; transform:translateX(-50%);
  background:var(--card); border:1px solid var(--accent); color:var(--text);
  padding:13px 24px; border-radius:2px; z-index:200;
  font-family:var(--cond); font-weight:700; font-size:15px; letter-spacing:.5px;
  box-shadow:0 4px 24px rgba(0,0,0,.6);
}
.loading-bar { position:fixed; top:0; left:0; right:0; height:3px; z-index:300;
  background:linear-gradient(90deg, var(--accent3), var(--accent2), var(--accent3));
  background-size:200% 100%; animation:slide 1s linear infinite; }
@keyframes slide { to { background-position:-200% 0; } }

/* ── import preview ── */
.import-preview { max-height:320px; overflow:auto; border:1px solid var(--border); border-radius:2px; margin:12px 0; background:var(--card2); }
.import-preview table { width:100%; border-collapse:collapse; font-size:12px; }
.import-preview th { font-family:var(--cond); font-size:11px; font-weight:800; text-transform:uppercase; letter-spacing:1px; color:var(--muted); }
.import-preview th, .import-preview td { padding:6px 8px; border-bottom:1px solid #1a1a1a; white-space:nowrap; }
.import-preview .err { color:var(--red); }
.row-err td { background:rgba(255,59,59,.07); }
