/* ========== Paleta (claro por defecto / oscuro con data-theme="dark") ========== */
:root {
  --bg: #fafbfc; --bg-2: #eef0f4; --bg-3: #f4f6f9; --surface: #ffffff;
  --text: #1f2733; --text-2: #3a4150; --text-soft: #6b7685; --muted: #9aa3b0;
  --border: #e7e9ee; --border-2: #d9dee6;
  --gold: #cf971c; --gold-2: #e0a82e; --gold-3: #e7b53c; --gold-dk: #a9760a;
  --gold-ink: #3a2c08; --link: #b8860b;
  --gold-soft: #fdf6e6; --gold-soft-2: #fbf0d8; --gold-border: #f0dca6; --gold-glow: #fdfaf2;
  --err-soft: #fdeaea; --ok-soft: #e7f3ea;
  --err-text: #dc2626; --err-text-2: #b91c1c; --ok-text: #15803d; --ok-text-2: #16a34a;
  --gold-text: #8a6810; --info-text: #2563eb; --lm: #7c3aed; --lm-2: #8b6fd6;
  --shadow: rgba(31,39,51,0.10);
  color-scheme: light;
}
:root[data-theme="dark"] {
  --bg: #0f1216; --bg-2: #1b2129; --bg-3: #222933; --surface: #161b22;
  --text: #e6eaf0; --text-2: #cdd4de; --text-soft: #9aa4b2; --muted: #6f7986;
  --border: #262d38; --border-2: #333b47;
  --gold: #e0a82e; --gold-2: #e7b53c; --gold-3: #f0c454; --gold-dk: #c9931b;
  --gold-ink: #2a2005; --link: #e0a82e;
  --gold-soft: #2a2312; --gold-soft-2: #362c15; --gold-border: #4a3d18; --gold-glow: #1d1a10;
  --err-soft: #3a1e1e; --ok-soft: #16301f;
  --err-text: #f08a8a; --err-text-2: #e57878; --ok-text: #5fd08a; --ok-text-2: #6ee7a0;
  --gold-text: #e8c274; --info-text: #7aa8f5; --lm: #b39af0; --lm-2: #9d86d8;
  --shadow: rgba(0,0,0,0.45);
  color-scheme: dark;
}

/* ========== Reset / base ========== */
* { box-sizing:border-box; }
html, body { margin:0; padding:0; height:100%; }
body {
  font-family:-apple-system, BlinkMacSystemFont, "Inter", "Segoe UI", Roboto, sans-serif;
  font-size:14px;
  color:var(--text);
  background:var(--bg);
  display:flex;
}
a { color:var(--link); text-decoration:none; }
button { font-family:inherit; cursor:pointer; }

/* ========== Login ========== */
.login-body {
  display:flex; align-items:center; justify-content:center;
  min-height:100vh;
  background:radial-gradient(1000px 500px at 85% -10%, var(--gold-glow) 0%, transparent 55%),
    var(--bg);
}
.login-card {
  background:var(--surface); padding:36px; border-radius:16px;
  width:380px; display:flex; flex-direction:column; gap:14px;
  border:1px solid var(--border);
  box-shadow:0 20px 50px var(--shadow);
}
.login-card h1 {
  margin:0 0 8px; font-size:18px; color:var(--link);
  letter-spacing:0.5px; font-weight:700;
}
.login-card label {
  display:flex; flex-direction:column; gap:6px;
  font-size:11px; color:var(--text-soft); font-weight:600;
  text-transform:uppercase; letter-spacing:0.7px;
}
.login-card input {
  padding:11px 12px; border-radius:8px; border:1px solid var(--border-2);
  background:var(--surface); color:var(--text); font-size:14px;
}
.login-card input:focus { outline:2px solid var(--gold-2); outline-offset:-1px; border-color:transparent; }
.login-card button {
  padding:12px; border-radius:8px; border:0;
  background:linear-gradient(135deg, var(--gold-3), var(--gold));
  color:var(--gold-ink); font-size:14px; font-weight:700; letter-spacing:0.3px;
}
.err { color:var(--err-text); margin:0; font-size:13px; }

/* ========== Sidebar ========== */
.sidebar {
  width:240px; min-width:240px; height:100vh;
  background:var(--surface); border-right:1px solid var(--border);
  display:flex; flex-direction:column; padding:20px 14px;
  position:sticky; top:0;
}
.brand { display:flex; gap:12px; align-items:center; padding:4px 6px 22px; }
.logo {
  width:36px; height:36px; border-radius:10px;
  background:linear-gradient(135deg, var(--gold-3) 0%, var(--gold) 100%);
  color:var(--gold-ink);
  display:flex; align-items:center; justify-content:center;
  font-weight:800; font-size:14px; letter-spacing:0.5px;
  box-shadow:0 4px 12px rgba(207,151,28,0.30);
}
.brand-name {
  font-weight:700; font-size:14px; color:var(--text);
  letter-spacing:0.3px;
}
.brand-sub { color:var(--muted); font-size:10px; text-transform:uppercase; letter-spacing:0.8px; }

.sidebar nav { flex:1; display:flex; flex-direction:column; gap:18px; margin-top:8px; overflow-y:auto; }
.nav-group { display:flex; flex-direction:column; gap:2px; }
.nav-group-title {
  font-size:10px; text-transform:uppercase; color:var(--muted);
  letter-spacing:0.8px; padding:6px 10px; font-weight:700;
  cursor:pointer; user-select:none; display:flex; align-items:center; justify-content:space-between;
}
.nav-group-title:hover { color:var(--text-soft); }
.nav-group-title::after { content:"▾"; font-size:10px; opacity:.6; transition:transform .15s; }
.nav-group.plegado .nav-group-title::after { transform:rotate(-90deg); }
/* Grupo plegado: solo se queda a la vista el área activa */
.nav-group.plegado button:not(.active) { display:none !important; }
.sidebar nav button {
  background:transparent; border:0; color:var(--text-soft);
  padding:9px 10px; border-radius:7px; text-align:left;
  font-size:13px; font-weight:500;
  display:flex; align-items:center; gap:9px;
  position:relative;
}
.sidebar nav button:hover { background:var(--bg-3); color:var(--text); }
.sidebar nav button.active {
  background:linear-gradient(90deg, rgba(207,151,28,0.14), rgba(207,151,28,0.04));
  color:var(--gold-dk); font-weight:600;
}
.sidebar nav button.active::before {
  content:""; position:absolute; left:0; top:8px; bottom:8px;
  width:3px; background:var(--gold); border-radius:0 3px 3px 0;
}
.sidebar nav .badge {
  margin-left:auto; background:#ef4444; color:#fff;
  font-size:10px; font-weight:700; padding:1px 7px; border-radius:99px;
  min-width:18px; text-align:center;
}

.sidebar-footer {
  border-top:1px solid var(--border); padding-top:14px; margin-top:14px;
  display:flex; flex-direction:column; gap:8px;
}
.user { display:flex; gap:10px; align-items:center; padding:4px 6px; }
.user-avatar {
  width:32px; height:32px; border-radius:50%;
  background:linear-gradient(135deg, var(--gold-3), var(--gold)); color:var(--gold-ink);
  display:flex; align-items:center; justify-content:center;
  font-weight:700; font-size:13px;
}
.user-name { font-weight:500; font-size:13px; color:var(--text); }
.user-sub { color:var(--muted); font-size:11px; }
.logout-btn {
  background:transparent; border:1px solid var(--border-2); color:var(--text-soft);
  padding:8px; border-radius:7px; font-size:12px; width:100%;
}
.logout-btn:hover { background:var(--bg-3); color:var(--text); }

/* ========== Content ========== */
.content { flex:1; padding:30px 36px; min-width:0; }
.page-header {
  display:flex; align-items:flex-start; justify-content:space-between;
  gap:20px; margin-bottom:24px;
}
.page-header h1 {
  margin:0 0 4px; font-size:24px; font-weight:700; color:var(--text);
  letter-spacing:-0.3px;
}
.page-sub { margin:0; color:var(--text-soft); font-size:13px; }

.period-tabs {
  display:flex; gap:2px; background:var(--surface);
  border:1px solid var(--border); border-radius:9px; padding:3px;
}
.period-tabs button {
  background:transparent; border:0; color:var(--text-soft);
  padding:6px 14px; border-radius:6px; font-size:12px; font-weight:600;
}
.period-tabs button.active {
  background:linear-gradient(135deg, var(--gold-3), var(--gold));
  color:var(--gold-ink);
}
.period-tabs button { cursor:pointer; }
.period-wrap { display:flex; flex-direction:column; align-items:flex-end; gap:8px; }
.custom-range { display:flex; align-items:center; gap:8px; background:var(--surface); border:1px solid var(--border); border-radius:9px; padding:6px 8px; }
.custom-range input[type="date"] { border:1px solid var(--border); border-radius:7px; padding:5px 9px; font-size:12px; color:var(--text-2); font-family:inherit; }
.custom-range input[type="date"]:focus { outline:none; border-color:var(--gold-2); }
.cr-sep { color:var(--muted); font-size:13px; }
.cr-apply { padding:6px 14px; font-size:12px; }

/* ========== KPI cards ========== */
.kpi-grid {
  display:grid; grid-template-columns:repeat(5, 1fr); gap:14px;
  margin-bottom:24px;
}
.kpi {
  background:var(--surface); padding:18px 20px; border-radius:12px;
  border:1px solid var(--border); box-shadow:0 1px 2px var(--shadow);
}
.kpi .label {
  font-size:10px; color:var(--muted); text-transform:uppercase;
  letter-spacing:0.7px; font-weight:700;
}
.kpi .value {
  font-size:26px; font-weight:700; margin-top:8px; color:var(--text);
  font-variant-numeric:tabular-nums;
}
.kpi .value small { font-size:12px; color:var(--muted); font-weight:500; display:block; margin-top:2px; letter-spacing:0; }
.kpi.highlight {
  background:linear-gradient(135deg, rgba(231,181,60,0.14), rgba(207,151,28,0.04)),
    var(--surface);
  border-color:rgba(207,151,28,0.30);
}
.kpi.highlight .value { color:var(--gold-dk); }

/* ========== Cards / tablas ========== */
.rankings-row { display:grid; grid-template-columns:1.4fr 1fr; gap:16px; }
@media (max-width:1100px) { .rankings-row { grid-template-columns:1fr; } }

/* ========== Grid de gráficas (Resumen) ========== */
.chart-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
@media (max-width:1100px) { .chart-grid { grid-template-columns:1fr; } .chart-grid .card[style*="span 2"] { grid-column:auto !important; } }
.chart-box { padding:16px; height:240px; position:relative; }

.card {
  background:var(--surface); border-radius:12px; border:1px solid var(--border);
  overflow:hidden; box-shadow:0 1px 2px var(--shadow);
}
.card-header {
  padding:18px 20px 12px;
  border-bottom:1px solid var(--bg-2);
}
.card-header h3 { margin:0; font-size:14px; font-weight:600; color:var(--text); }
.card-header .hint { margin:3px 0 0; font-size:11px; color:var(--muted); }

table { width:100%; border-collapse:collapse; }
th, td { padding:12px 16px; text-align:left; font-size:13px; vertical-align:middle; }
th {
  background:var(--bg); color:var(--muted); font-weight:700;
  font-size:10px; text-transform:uppercase; letter-spacing:0.8px;
  border-bottom:1px solid var(--bg-2);
}
tbody tr { border-bottom:1px solid var(--bg-3); }
tbody tr:last-child { border-bottom:0; }
tbody tr:hover { background:var(--bg); cursor:pointer; }

.cell-acct { display:flex; align-items:center; gap:10px; min-width:200px; }
.avatar {
  width:34px; height:34px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  color:#fff; font-weight:700; font-size:12px; flex-shrink:0;
  box-shadow:0 2px 6px var(--shadow);
}
img.avatar { object-fit:cover; background:var(--bg-2); }
.acct-meta { display:flex; flex-direction:column; min-width:0; }
.acct-handle { font-weight:600; font-size:13px; color:var(--text); }
.acct-sub { font-size:11px; color:var(--muted); }

.spark { width:100px; height:32px; }

.bar-cuota { display:flex; align-items:center; gap:8px; min-width:130px; }
.bar-track {
  flex:1; height:6px; background:var(--bg-2); border-radius:99px; overflow:hidden;
}
.bar-fill { height:100%; border-radius:99px; }
.bar-pct { font-size:12px; color:var(--text-soft); min-width:40px; text-align:right; font-variant-numeric:tabular-nums; }

.conv-pill {
  display:inline-block; padding:3px 10px; border-radius:99px;
  font-size:11px; font-weight:700; font-variant-numeric:tabular-nums;
}
.conv-good { background:rgba(22,163,74,0.12); color:var(--ok-text); }
.conv-mid  { background:rgba(202,138,4,0.14); color:var(--gold-dk); }
.conv-low  { background:rgba(220,38,38,0.12); color:var(--err-text-2); }

/* Health score pill — gradiente según valor */
.health-pill {
  display:inline-flex; align-items:center; gap:6px;
  padding:3px 10px; border-radius:99px;
  font-size:11px; font-weight:700; font-variant-numeric:tabular-nums;
}
.health-dot { width:6px; height:6px; border-radius:50%; }
.health-90 { background:rgba(22,163,74,0.12); color:var(--ok-text); }
.health-90 .health-dot { background:#16a34a; }
.health-70 { background:rgba(101,163,13,0.14); color:var(--ok-text); }
.health-70 .health-dot { background:#65a30d; }
.health-50 { background:rgba(202,138,4,0.14); color:var(--gold-dk); }
.health-50 .health-dot { background:var(--gold-dk); }
.health-30 { background:rgba(234,88,12,0.14); color:var(--gold-text); }
.health-30 .health-dot { background:#ea580c; }
.health-0  { background:rgba(220,38,38,0.12); color:var(--err-text-2); }
.health-0 .health-dot { background:#dc2626; }
.health-warm { background:rgba(217,119,6,0.14); color:var(--gold-text); }
.health-warm .health-dot { background:#d97706; }
.health-gray { background:rgba(107,118,133,0.12); color:var(--text-soft); }
.health-gray .health-dot { background:#9aa3b0; }

.num { font-variant-numeric:tabular-nums; font-weight:600; color:var(--text); }

.estado-pill {
  display:inline-block; padding:1px 7px; border-radius:99px;
  font-size:10px; font-weight:700; vertical-align:middle;
}

/* ========== Videos grid ========== */
.video-grid {
  display:grid; grid-template-columns:repeat(auto-fill, minmax(180px, 1fr)); gap:16px;
}
.video-card {
  background:var(--surface); border:1px solid var(--border); border-radius:12px;
  overflow:hidden; transition:transform 0.15s, box-shadow 0.15s, border-color 0.15s;
  box-shadow:0 1px 2px var(--shadow);
}
.video-card:hover { transform:translateY(-2px); border-color:var(--gold-2); box-shadow:0 8px 20px var(--shadow); }
.video-thumb {
  width:100%; aspect-ratio:9/16; object-fit:cover; background:var(--bg-2); display:block;
}
.video-meta { padding:11px 13px; }
.video-views { font-weight:700; font-size:16px; color:var(--gold-dk); font-variant-numeric:tabular-nums; }
.video-acct { font-size:12px; color:var(--text-soft); }
.video-date { font-size:11px; color:var(--muted); margin-top:5px; }

/* miniatura con badge de views encima */
.video-thumb-wrap { position:relative; }
.video-views-badge {
  position:absolute; left:8px; bottom:8px;
  background:rgba(15,20,30,0.82); color:#fff; font-weight:700; font-size:13px;
  padding:3px 9px 3px 7px; border-radius:8px; display:flex; align-items:center; gap:5px;
  font-variant-numeric:tabular-nums; backdrop-filter:blur(2px); letter-spacing:.2px;
}
.video-views-badge svg { width:13px; height:13px; opacity:.92; }
.video-caption {
  font-size:11px; color:var(--text-soft); margin-top:6px; line-height:1.35;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
}
.video-acct-row { display:flex; align-items:center; gap:7px; margin-bottom:2px; }
.video-acct-row .avatar { width:22px; height:22px; min-width:22px; font-size:9px; border-radius:6px; }
.video-eng { display:flex; gap:12px; font-size:11px; color:var(--text-soft); margin-top:5px; }
.video-engpct { color:var(--gold-dk); font-weight:700; margin-left:auto; }

/* ficha de rendimiento (detalle de cuenta) */
.rend-grid { display:grid; grid-template-columns:repeat(auto-fit, minmax(115px, 1fr)); gap:12px; }
.rend-card { background:var(--surface); border:1px solid var(--border); border-radius:12px; padding:13px 15px; box-shadow:0 1px 2px var(--shadow); }
.rend-card .rk { font-size:10px; color:var(--muted); text-transform:uppercase; letter-spacing:.5px; display:flex; align-items:center; gap:5px; }
.rend-card .rv { font-size:21px; font-weight:800; color:var(--text); font-variant-numeric:tabular-nums; margin-top:3px; }
.rend-card .rv.pos { color:var(--ok-text-2); }
.rend-card .rv.neg { color:var(--err-text); }
.rend-card .rh { font-size:10.5px; color:var(--muted); margin-top:2px; }

/* crecimiento de cuentas (resumen) */
.crec-list { padding:6px 4px 10px; }
.crec-row { display:flex; align-items:center; gap:10px; padding:8px 10px; border-radius:8px; }
.crec-row:hover { background:var(--gold-soft); }
.crec-row .avatar { width:30px; height:30px; min-width:30px; font-size:11px; }
.crec-h { flex:1; font-size:13px; color:var(--text); font-weight:600; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.crec-f { font-size:12px; color:var(--muted); font-variant-numeric:tabular-nums; }
.crec-d { font-size:13px; font-weight:700; font-variant-numeric:tabular-nums; min-width:56px; text-align:right; }
.crec-d.pos { color:var(--ok-text-2); }
.crec-d.neg { color:var(--err-text); }

/* ========== Tareas ========== */
.tarea-card { padding:0; overflow:hidden; margin-bottom:14px; }
.tarea-card-head { display:flex; align-items:center; gap:12px; padding:14px 16px; border-bottom:1px solid var(--bg-2); }
.tarea-card-head .avatar { width:38px; height:38px; min-width:38px; font-size:13px; }
.tarea-acct { font-size:15px; font-weight:700; color:var(--text); }
.tarea-acct-sub { font-size:12px; color:var(--muted); margin-top:1px; }
.add-mini {
  width:32px; height:32px; min-width:32px; border-radius:9px; border:1px solid var(--border);
  background:var(--surface); color:var(--gold-text); font-size:18px; line-height:1; cursor:pointer; font-weight:700;
}
.add-mini:hover { border-color:var(--gold-2); background:var(--gold-soft); }
.tarea-list { padding:6px 8px 8px; }
.tarea-row { display:flex; align-items:flex-start; gap:11px; padding:10px 10px; border-radius:9px; }
.tarea-row:hover { background:var(--gold-soft); }
.tarea-row.done .tarea-texto { text-decoration:line-through; color:var(--muted); }
.tarea-check {
  width:22px; height:22px; min-width:22px; margin-top:1px; border-radius:7px;
  border:2px solid var(--gold-border); background:var(--surface); color:#fff; font-size:13px; font-weight:700;
  cursor:pointer; display:flex; align-items:center; justify-content:center;
}
.tarea-row.done .tarea-check { background:#16a34a; border-color:#16a34a; }
.tarea-main { flex:1; min-width:0; }
.tarea-texto { font-size:13.5px; color:var(--text); line-height:1.4; white-space:pre-wrap; }
.tarea-meta { display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin-top:6px; }
.prio-pill { font-size:10.5px; font-weight:700; padding:2px 8px; border-radius:20px; }
.prio-alta { background:var(--err-soft); color:var(--err-text-2); }
.prio-normal { background:var(--gold-soft-2); color:var(--gold-text); }
.prio-baja { background:var(--bg-2); color:var(--text-soft); }
.fch { font-size:10.5px; font-weight:600; color:var(--text-soft); background:var(--bg-2); padding:2px 8px; border-radius:20px; }
.fch.hoy { background:var(--ok-soft); color:var(--ok-text); }
.fch.tarde { background:var(--err-soft); color:var(--err-text-2); }
.tarea-por { font-size:11px; color:var(--muted); }
.tarea-del {
  background:none; border:0; color:var(--muted); font-size:14px; cursor:pointer; padding:2px 4px; margin-top:1px;
}
.tarea-del:hover { color:var(--err-text); }
/* --- Tareas: barra de estadísticas + controles de equipo --- */
.tareas-stats { display:flex; gap:10px; flex-wrap:wrap; margin-bottom:14px; }
.tstat { display:flex; flex-direction:column; align-items:flex-start; gap:3px; background:var(--surface);
  border:1px solid var(--border); border-radius:12px; padding:10px 16px; min-width:98px; }
.tstat-n { font-size:22px; font-weight:800; color:var(--text); line-height:1; }
.tstat-l { font-size:10.5px; font-weight:700; color:var(--muted); text-transform:uppercase; letter-spacing:.04em; }
.tstat.is-hoy .tstat-n { color:var(--ok-text); }
.tstat.is-tarde .tstat-n { color:var(--err-text-2); }
.tstat-btn { cursor:pointer; font-family:inherit; text-align:left; transition:border-color .12s, background .12s; }
.tstat-btn:hover { border-color:var(--gold); }
.tstat-btn.active { border-color:var(--gold); background:var(--gold-soft); }
.tareas-controls { display:flex; gap:18px; align-items:center; flex-wrap:wrap; margin-bottom:16px; }
.tctl { display:flex; align-items:center; gap:8px; }
.tctl-lbl { font-size:10.5px; font-weight:700; color:var(--muted); text-transform:uppercase; letter-spacing:.04em; }
.tctl-sel { background:var(--surface); border:1px solid var(--border); color:var(--text); border-radius:8px;
  padding:6px 10px; font-size:12.5px; font-weight:600; cursor:pointer; }
.tctl-sel:hover { border-color:var(--gold-2); }
.tarea-ctx { font-size:10.5px; font-weight:600; color:var(--gold-text); background:var(--gold-soft-2); padding:2px 8px; border-radius:20px; }
.avatar.avatar-sin { background:var(--bg-2); color:var(--muted); }
.tarea-row.row-alta { box-shadow: inset 3px 0 0 var(--err-text-2); }
.tareas-empty { text-align:center; padding:46px 20px; background:var(--surface); border:1px dashed var(--border); border-radius:14px; }
.tareas-empty .te-icon { font-size:32px; color:#16a34a; line-height:1; }
.tareas-empty .te-title { font-size:16px; font-weight:700; color:var(--text); margin-top:10px; }
.tareas-empty .te-sub { font-size:13px; color:var(--muted); margin-top:5px; }
.t-tgt { margin-bottom:10px; }
.opt { font-weight:400; color:var(--muted); font-size:11px; text-transform:none; letter-spacing:0; }
.fecha-row { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.chip-fecha { background:var(--surface); border:1px solid var(--border-2); color:var(--text-2);
  padding:7px 13px; border-radius:8px; font-size:12.5px; font-weight:600; cursor:pointer; font-family:inherit; }
.chip-fecha:hover { border-color:var(--gold-2); }
.chip-fecha.active { background:linear-gradient(135deg, var(--gold-3), var(--gold)); color:var(--gold-ink); border-color:transparent; }
.fecha-input { flex:1; min-width:150px; background:var(--surface); border:1px solid var(--border-2); color:var(--text);
  border-radius:8px; padding:7px 10px; font-size:13px; font-family:inherit; }
.fecha-input:focus { outline:2px solid var(--gold-2); outline-offset:-1px; border-color:transparent; }
.modal-body textarea {
  width:100%; box-sizing:border-box; border:1px solid var(--border); border-radius:9px;
  padding:9px 11px; font:inherit; font-size:13px; color:var(--text); resize:vertical; margin-top:4px;
}
.modal-body textarea:focus { outline:none; border-color:var(--gold-2); }
.modal-seg { display:inline-flex; margin-top:4px; }

/* ========== Comparar cuentas ========== */
.cmp-bar { display:flex; align-items:center; gap:14px; margin-bottom:18px; }
.cmp-pick { flex:1; min-width:0; }
.cmp-pick .acpick, .cmp-pick .acpick-btn { width:100%; }
.cmp-vs { font-weight:800; color:#b8bec9; font-size:13px; flex:none; }
.cmp-card { padding:0; overflow:hidden; margin-bottom:16px; }
.cmp-heads { display:flex; }
.cmp-head { flex:1; min-width:0; display:flex; align-items:center; gap:10px; padding:14px 16px; }
.cmp-head + .cmp-head { border-left:1px solid var(--bg-2); }
.cmp-dot { width:10px; height:10px; border-radius:50%; flex:none; }
.cmp-head .avatar { width:34px; height:34px; min-width:34px; }
.cmp-h { font-size:14px; font-weight:700; color:var(--text); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.cmp-m { font-size:11px; color:var(--muted); }
.cmp-table { border-top:1px solid var(--bg-2); }
.cmp-row { display:grid; grid-template-columns:1fr auto 1fr; align-items:center; border-bottom:1px solid var(--bg-3); }
.cmp-row:last-child { border-bottom:0; }
.cmp-cell { text-align:center; font-size:15px; font-weight:700; color:var(--text-soft); font-variant-numeric:tabular-nums; padding:11px 8px; }
.cmp-cell.win { color:var(--gold-dk); }
.cmp-label { font-size:10.5px; color:var(--muted); text-align:center; text-transform:uppercase; letter-spacing:.4px; padding:0 14px; min-width:150px; }

/* ========== Accesos (credenciales por cuenta) ========== */
.acc-head { cursor:pointer; user-select:none; }
.acc-head h3 { margin:0; }
.acc-chev { color:var(--muted); font-size:12px; transition:transform .15s; display:inline-block; flex:none; }
.acc-head.open .acc-chev { transform:rotate(90deg); }
.acc-list.collapsed { display:none; }
.acc-list { padding:6px 10px 12px; }
.acc-row { display:flex; align-items:center; gap:10px; padding:8px; border-radius:8px; }
.acc-row:hover { background:var(--gold-soft); }
.acc-k { width:140px; min-width:140px; font-size:12px; color:var(--muted); }
.acc-v { flex:1; font-size:13px; color:var(--text); word-break:break-all; }
.acc-v.link { color:var(--gold-dk); text-decoration:none; }
.acc-v.link:hover { text-decoration:underline; }
.acc-v.secret { letter-spacing:1px; font-variant-numeric:tabular-nums; }
.acc-v.empty { color:var(--muted); }
.acc-btn { background:none; border:1px solid var(--border); border-radius:7px; padding:3px 8px; font-size:12px; cursor:pointer; color:var(--text-soft); flex:none; }
.acc-btn:hover { border-color:var(--gold-2); color:var(--gold-dk); }
.acc-notas { padding:9px 10px; font-size:12px; color:var(--text-soft); background:var(--gold-soft); border-radius:8px; margin:4px 8px 4px; white-space:pre-wrap; }

/* ========== Observaciones + SIM ========== */
.obs-text { width:100%; box-sizing:border-box; border:1px solid var(--border); border-radius:9px; padding:10px 12px; font:inherit; font-size:13px; color:var(--text); resize:vertical; }
.obs-text:focus { outline:none; border-color:var(--gold-2); }
.obs-save { padding:7px 16px; font-size:13px; }
.disp-sim { border-top:1px solid var(--bg-2); margin:6px 0 2px; }
.disp-sim-head { cursor:pointer; user-select:none; }
.disp-sim .acc-k { width:130px; min-width:130px; }

/* ========== Equipo (permisos) ========== */
.perm-areas { display:flex; flex-direction:column; gap:10px; margin-top:6px; }
.perm-area { border:1px solid var(--border); border-radius:8px; padding:9px 11px; display:flex; flex-direction:column; gap:8px; }
.perm-head { display:flex; align-items:center; gap:8px; font-size:12.5px; font-weight:700; color:var(--text); cursor:pointer; }
.perm-head input { width:15px; height:15px; accent-color:var(--gold); }
.perm-area > .perm-head { text-transform:uppercase; font-size:11px; letter-spacing:.6px; }
.perm-area .perm-grid { padding-left:23px; margin-top:0; }
.perm-sub { padding-left:23px; display:flex; flex-direction:column; gap:6px; }
.perm-sub > .perm-head { font-weight:600; }
/* Pestañas internas de un área (debajo del título de página) */
.subtabs { display:flex; gap:4px; flex-wrap:wrap; border-bottom:1px solid var(--border); margin:-6px 0 18px; }
.subtabs button {
  background:transparent; border:0; border-bottom:2px solid transparent; margin-bottom:-1px;
  padding:9px 14px; font-size:13px; font-weight:500; color:var(--text-soft); cursor:pointer;
}
.subtabs button:hover { color:var(--text); }
.subtabs button.active { color:var(--gold-dk); border-bottom-color:var(--gold); font-weight:600; }
.perm-grid { display:grid; grid-template-columns:1fr 1fr; gap:7px 14px; margin-top:6px; }
.perm-check { display:flex; align-items:center; gap:8px; font-size:12.5px; color:var(--text-2); cursor:pointer; }
.perm-check input { width:15px; height:15px; accent-color:var(--gold); }
.coord-toggle { display:flex; align-items:flex-start; gap:9px; margin:10px 0 2px; padding:10px 12px;
  background:var(--gold-soft); border:1px solid var(--gold-border); border-radius:9px;
  font-size:12.5px; color:var(--text-2); cursor:pointer; line-height:1.4; }
.coord-toggle input { width:16px; height:16px; margin-top:1px; accent-color:var(--gold); flex:none; }
.u-edit { margin-right:6px; }

/* cabecera de estadísticas + barra de filtros del buscador */
.bsc-stats { display:flex; gap:12px; flex-wrap:wrap; margin-bottom:16px; }
.bsc-stat {
  background:var(--surface); border:1px solid var(--border); border-radius:12px; padding:13px 18px;
  min-width:130px; box-shadow:0 1px 2px var(--shadow);
}
.bsc-stat .k { font-size:10px; color:var(--muted); text-transform:uppercase; letter-spacing:.6px; }
.bsc-stat .v { font-size:23px; font-weight:800; color:var(--text); font-variant-numeric:tabular-nums; margin-top:2px; }
.bsc-stat .v.gold { color:var(--gold-dk); }
.bsc-bar { display:flex; gap:10px; flex-wrap:wrap; align-items:center; margin-bottom:18px; }
.seg { display:flex; gap:2px; background:var(--surface); border:1px solid var(--border); border-radius:9px; padding:3px; }
.seg button { background:transparent; border:0; color:var(--text-soft); padding:6px 13px; border-radius:6px; font-size:12px; font-weight:600; cursor:pointer; }
.seg button.active { background:linear-gradient(135deg, var(--gold-3), var(--gold)); color:var(--gold-ink); }
.bsc-select { background:var(--surface); border:1px solid var(--border); border-radius:9px; padding:7px 12px; font-size:12px; font-weight:600; color:var(--text-2); cursor:pointer; }
.bsc-select:focus { outline:none; border-color:var(--gold-2); }

/* selector de cuenta propio (sustituye al <select> nativo feo) */
.acpick { position:relative; }
.acpick-btn {
  background:var(--surface); border:1px solid var(--border); border-radius:9px; padding:7px 12px;
  font-size:12px; font-weight:600; color:var(--text-2); cursor:pointer;
  display:flex; align-items:center; gap:10px; justify-content:space-between; min-width:175px;
}
.acpick-btn:hover { border-color:var(--gold-2); }
.acpick-btn .lbl { display:flex; align-items:center; gap:8px; overflow:hidden; }
.acpick-btn .lbl .at { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.acpick-btn .chev { color:var(--muted); font-size:10px; transition:transform .15s; flex:none; }
.acpick.open .acpick-btn { border-color:var(--gold-2); }
.acpick.open .acpick-btn .chev { transform:rotate(180deg); }
.acpick-panel {
  position:absolute; top:calc(100% + 6px); left:0; z-index:40; width:245px;
  background:var(--surface); border:1px solid var(--border); border-radius:12px;
  box-shadow:0 14px 34px var(--shadow); padding:7px; display:none;
}
.acpick.open .acpick-panel { display:block; }
.acpick-search {
  width:100%; border:1px solid var(--border); border-radius:8px; padding:8px 10px;
  font-size:12px; margin-bottom:6px; box-sizing:border-box; color:var(--text-2);
}
.acpick-search:focus { outline:none; border-color:var(--gold-2); }
.acpick-list { max-height:248px; overflow:auto; }
.acpick-item {
  display:flex; align-items:center; gap:8px; padding:8px 9px; border-radius:7px;
  font-size:12.5px; color:var(--text-2); cursor:pointer;
}
.acpick-item:hover { background:var(--gold-soft); }
.acpick-item.sel { background:var(--gold-soft-2); color:var(--gold-text); font-weight:700; }
.acpick-item .tick { width:13px; color:var(--gold); visibility:hidden; flex:none; }
.acpick-item.sel .tick { visibility:visible; }
.acpick-item .avatar, .acpick-btn .avatar {
  width:26px; height:26px; min-width:26px; font-size:10px; border-radius:50%; flex:none;
}
.acpick-item .at { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.acpick-all-av {
  width:26px; height:26px; min-width:26px; border-radius:50%; flex:none;
  background:var(--gold-border); color:var(--gold-text); font-size:10px; font-weight:700;
  display:flex; align-items:center; justify-content:center;
}
.acpick-empty { padding:12px; text-align:center; color:var(--muted); font-size:12px; }

/* ========== Dispositivos ========== */
.disp-card {
  background:var(--surface); border:1px solid var(--border); border-radius:12px;
  margin-bottom:14px; overflow:hidden; box-shadow:0 1px 2px var(--shadow);
}
.disp-head {
  padding:16px 20px; border-bottom:1px solid var(--bg-2);
  display:flex; align-items:center; justify-content:space-between;
}
.disp-name { font-weight:700; font-size:14px; color:var(--text); }
.disp-meta { font-size:11px; color:var(--muted); margin-top:3px; }
.disp-badge {
  background:rgba(207,151,28,0.14); color:var(--gold-dk); padding:4px 10px;
  border-radius:99px; font-size:11px; font-weight:700;
}

/* ========== Alertas ========== */
.alert-card {
  background:var(--surface); border:1px solid var(--border); border-radius:12px;
  margin-bottom:12px; padding:16px 20px;
  display:flex; align-items:center; gap:16px;
  border-left:3px solid var(--alert-color, var(--gold));
  box-shadow:0 1px 2px var(--shadow);
}
.alert-icon {
  width:36px; height:36px; border-radius:50%;
  background:var(--alert-bg, rgba(207,151,28,0.14));
  color:var(--alert-color, var(--gold));
  display:flex; align-items:center; justify-content:center;
  font-size:18px; font-weight:700; flex-shrink:0;
}
.alert-body { flex:1; min-width:0; }
.alert-title { font-weight:600; font-size:13px; color:var(--text); }
.alert-detail { font-size:12px; color:var(--text-soft); margin-top:2px; }
.alert-actions { display:flex; gap:8px; flex-shrink:0; }
.alert-actions a {
  font-size:12px; padding:6px 12px; border-radius:6px;
  background:var(--bg-3); color:var(--text); font-weight:500;
  border:1px solid var(--border);
}
.alert-actions a:hover { background:var(--border-2); }
.alert-section-title {
  font-size:11px; text-transform:uppercase; color:var(--muted);
  letter-spacing:0.8px; font-weight:700; margin:20px 0 10px;
}
.alert-section-title:first-child { margin-top:0; }
.alert-section-count {
  background:var(--bg-2); color:var(--gold-dk);
  padding:1px 8px; border-radius:99px; font-size:10px;
  margin-left:8px;
}
.alert-empty {
  background:var(--surface); border:1px solid var(--border); border-radius:12px;
  padding:24px; text-align:center; color:var(--text-soft); font-size:13px;
}

/* ========== Formulario añadir cuenta ========== */
.add-form { margin-bottom:16px; padding-bottom:16px; }
.add-row {
  display:flex; gap:8px; flex-wrap:wrap; align-items:center;
  padding:14px 20px 4px;
}
.add-row input {
  flex:1; min-width:140px;
  padding:9px 12px; border-radius:8px; border:1px solid var(--border-2);
  background:var(--surface); color:var(--text); font-size:13px;
}
.add-row input:focus { outline:2px solid var(--gold-2); outline-offset:-1px; border-color:transparent; }
.btn-primary {
  padding:9px 18px; border-radius:8px; border:0;
  background:linear-gradient(135deg, var(--gold-3), var(--gold));
  color:var(--gold-ink); font-size:13px; font-weight:700; white-space:nowrap;
}
.btn-primary:hover { filter:brightness(1.05); }
.form-msg { padding:4px 20px 0; font-size:12px; min-height:16px; color:var(--ok-text); }
.form-msg.err { color:var(--err-text-2); }
.btn-del {
  background:transparent; border:1px solid var(--border); color:var(--muted);
  width:26px; height:26px; border-radius:6px; font-size:12px; line-height:1;
}
.btn-del:hover { background:var(--err-soft); color:var(--err-text); border-color:#f5c2c2; }

/* ========== Botón + y barra de acción ========== */
.action-bar { display:flex; align-items:center; justify-content:flex-start; gap:10px; margin-bottom:16px; flex-wrap:wrap; }
.add-btn {
  padding:9px 16px; border-radius:9px; border:0;
  background:linear-gradient(135deg, var(--gold-3), var(--gold));
  color:var(--gold-ink); font-weight:700; font-size:13px;
  display:inline-flex; align-items:center; gap:7px; box-shadow:0 2px 6px rgba(207,151,28,0.25);
}
.add-btn:hover { filter:brightness(1.05); }
.add-btn .plus { font-size:16px; line-height:1; margin-top:-1px; }

/* ========== Modal ========== */
.modal-overlay {
  position:fixed; inset:0; z-index:1000;
  background:rgba(20,25,35,0.45); backdrop-filter:blur(3px);
  display:flex; align-items:center; justify-content:center; padding:20px;
  animation:fadeIn 0.12s ease;
}
@keyframes fadeIn { from { opacity:0; } to { opacity:1; } }
.modal {
  background:var(--surface); border-radius:16px; width:440px; max-width:100%;
  box-shadow:0 30px 70px rgba(0,0,0,0.28); overflow:hidden;
  animation:pop 0.14s ease;
  /* Se ajusta a la pantalla: cabecera y pie fijos, el cuerpo hace scroll (así el botón
     Guardar SIEMPRE queda visible aunque el formulario sea largo). */
  display:flex; flex-direction:column; max-height:calc(100vh - 40px);
}
@keyframes pop { from { transform:translateY(8px) scale(0.98); opacity:0; } to { transform:none; opacity:1; } }
.modal-head {
  display:flex; align-items:center; justify-content:space-between;
  padding:20px 22px 16px; flex-shrink:0;
}
.modal-head h3 { margin:0; font-size:17px; font-weight:700; color:var(--text); }
.modal-close { background:transparent; border:0; color:var(--muted); font-size:18px; line-height:1; }
.modal-close:hover { color:var(--text); }
.modal-body { padding:4px 22px 8px; display:flex; flex-direction:column; gap:14px;
  overflow-y:auto; flex:1 1 auto; min-height:0; }
.modal-body label {
  display:flex; flex-direction:column; gap:6px;
  font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:0.6px; color:var(--text-soft);
}
.modal-body input {
  padding:11px 13px; border-radius:9px; border:1px solid var(--border-2);
  font-size:14px; color:var(--text); text-transform:none; letter-spacing:0;
}
.modal-body input:focus { outline:2px solid var(--gold-2); outline-offset:-1px; border-color:transparent; }
.modal-msg { min-height:16px; font-size:12px; }
.modal-foot {
  display:flex; justify-content:flex-end; gap:10px;
  padding:16px 22px; border-top:1px solid var(--bg-2); background:var(--bg); flex-shrink:0;
}
.modal-cancel {
  padding:10px 18px; border-radius:9px; border:1px solid var(--border-2);
  background:var(--surface); color:var(--text-soft); font-size:13px; font-weight:600;
}
.modal-cancel:hover { background:var(--bg-3); }

/* ========== Combobox (desplegable propio) ========== */
.combo { position:relative; }
.combo > input { width:100%; }
.combo-list {
  position:absolute; top:calc(100% + 5px); left:0; right:0; z-index:20;
  background:var(--surface); border:1px solid var(--border); border-radius:10px;
  box-shadow:0 14px 36px var(--shadow); max-height:230px; overflow-y:auto;
  display:none; padding:5px;
}
.combo-list.open { display:block; }
.combo-item {
  padding:9px 12px; font-size:14px; cursor:pointer; color:var(--text);
  border-radius:7px; display:flex; align-items:center; gap:9px;
}
.combo-item:hover, .combo-item.active { background:var(--gold-soft); color:var(--gold-dk); }
.combo-item .ci-dot {
  width:22px; height:22px; border-radius:50%; flex-shrink:0;
  display:flex; align-items:center; justify-content:center;
  color:#fff; font-size:10px; font-weight:700;
}
.combo-item.create { color:var(--text-soft); border-top:1px solid var(--bg-2); margin-top:4px; padding-top:11px; }
.combo-item.create:hover { color:var(--gold-dk); }
.combo-empty { padding:12px; font-size:13px; color:var(--muted); text-align:center; }

/* ========== Misc ========== */
.loading { color:var(--muted); padding:40px 0; text-align:center; }
.empty { color:var(--muted); padding:30px; text-align:center; font-size:13px; }
.section-title {
  font-size:11px; text-transform:uppercase; color:var(--muted);
  letter-spacing:0.8px; font-weight:700; margin:0 0 12px;
}

/* Scrollbars finos */
::-webkit-scrollbar { width:10px; height:10px; }
::-webkit-scrollbar-track { background:var(--bg-3); }
::-webkit-scrollbar-thumb { background:var(--border-2); border-radius:99px; border:2px solid var(--bg-3); }
::-webkit-scrollbar-thumb:hover { background:#b9c0ca; }

/* ========== Conversión OF ========== */
.cv-kpis { display:grid; grid-template-columns:repeat(4, 1fr); gap:14px; margin-bottom:18px; }
@media (max-width:900px) { .cv-kpis { grid-template-columns:repeat(2, 1fr); } }
.cv-kpi-money {
  background:linear-gradient(135deg, rgba(231,181,60,0.16), rgba(207,151,28,0.04)),
    var(--surface);
  border-color:rgba(207,151,28,0.30);
}
.cv-kpi-money .value { color:var(--gold-dk); }

.cv-insight {
  background:linear-gradient(135deg, rgba(231,181,60,0.12), rgba(207,151,28,0.03)), var(--surface);
  border:1px solid rgba(207,151,28,0.28); border-left:3px solid var(--gold);
  border-radius:12px; padding:14px 18px; margin-bottom:18px;
  font-size:13px; color:var(--gold-text); line-height:1.55;
}
.cv-insight b { color:var(--gold-text); }
.cv-insight span { display:block; margin-top:5px; color:var(--gold-text); }

.cv-card {
  background:var(--surface); border:1px solid var(--border); border-radius:12px;
  box-shadow:0 1px 2px var(--shadow); margin-bottom:16px; overflow:hidden;
}
.cv-head {
  display:flex; align-items:center; justify-content:space-between;
  padding:14px 18px; border-bottom:1px solid var(--bg-2);
  background:linear-gradient(135deg, rgba(231,181,60,0.06), transparent);
}
.cv-model { font-weight:700; font-size:15px; color:var(--text); }
.cv-headsub { font-size:12px; color:var(--muted); margin-left:10px; }
.cv-headrev { font-size:20px; font-weight:800; color:var(--gold-dk); font-variant-numeric:tabular-nums; }

.cv-table th { font-size:10px; text-transform:uppercase; letter-spacing:0.6px; color:var(--muted); }
.cv-table td, .cv-table th { padding:11px 16px; }
.cv-table td.num, .cv-table th.num { text-align:right; font-variant-numeric:tabular-nums; }
.cv-table tbody tr { border-top:1px solid var(--bg-3); }
.cv-table tbody tr:hover { background:var(--bg-3); }
.cv-table tr.cv-zero td { color:var(--muted); }
.cv-strong { font-weight:700; color:var(--text); }
.cv-acc { font-weight:600; color:var(--link); cursor:pointer; }
.cv-acc.cv-off { color:var(--text-soft); font-weight:500; cursor:default; }
.cv-tag {
  display:inline-block; font-size:10px; font-weight:600; color:var(--muted);
  background:var(--bg-3); border-radius:5px; padding:1px 6px; margin-left:4px; letter-spacing:0;
}
.cv-conv { font-weight:700; font-size:12px; padding:2px 8px; border-radius:6px; }
.cv-conv.good { background:var(--ok-soft); color:var(--ok-text-2); }
.cv-conv.mid { background:var(--gold-soft); color:var(--link); }
.cv-conv.bad { background:var(--bg-3); color:var(--muted); }
.cv-foot { margin-top:6px; }

.cv-empty { text-align:center; padding:60px 24px; color:var(--text-soft); }
.cv-empty-ic { font-size:40px; margin-bottom:10px; }
.cv-empty .hint { max-width:520px; margin:8px auto 0; }

/* Conversión:filas de cuentas no trackeadas (sin ficha) atenuadas */
.cv-untracked .acct-handle { color:var(--text-soft); }
.cv-untracked .acct-sub { color:var(--muted); }
tr[data-handle] { cursor:pointer; }

/* Ficha:embudo de conversión OnlyFans (sincronizado con la vista Conversión) */
.of-card { border-color:rgba(207,151,28,0.30); }
.of-funnel {
  display:flex; align-items:center; gap:8px; flex-wrap:wrap;
  padding:16px 20px 20px;
}
.of-cell {
  background:var(--gold-soft); border:1px solid var(--gold-border); border-radius:10px;
  padding:10px 16px; text-align:center; min-width:92px; flex:1;
}
.of-cell.of-money { background:linear-gradient(135deg, rgba(231,181,60,0.16), var(--surface)); border-color:rgba(207,151,28,0.35); }
.of-lbl { font-size:10px; color:var(--muted); text-transform:uppercase; letter-spacing:.6px; font-weight:700; }
.of-val { font-size:20px; font-weight:700; margin-top:5px; color:var(--text); font-variant-numeric:tabular-nums; }
.of-cell.of-money .of-val { color:var(--gold-dk); }
.of-arrow { color:#cbb26a; font-size:16px; font-weight:700; flex:none; }
.of-warn { margin:0 20px 16px; padding:10px 14px; background:var(--gold-soft); border-left:3px solid #e0b23c; border-radius:0; color:var(--gold-text); }
@media (max-width:720px) { .of-arrow { display:none; } }

/* Embudo completo:pasos con su % de caída entre cada etapa */
.of-step { display:flex; flex-direction:column; align-items:center; gap:1px; flex:none; padding:0 2px; min-width:58px; }
.of-rate { font-size:10px; color:var(--muted); white-space:nowrap; font-weight:600; }
.of-cell.of-views { background:var(--bg-3); border-color:var(--border-2); }

/* Cuentas:acciones por fila (ficha + borrar) */
.row-actions { display:flex; gap:8px; justify-content:flex-end; align-items:center; }
.btn-ficha { background:none; border:0; cursor:pointer; font-size:15px; line-height:1; opacity:.6; padding:2px; }
.btn-ficha:hover { opacity:1; transform:scale(1.1); }

/* Control de estado en la ficha */
.est-card { padding:16px 20px; }
.est-row { display:flex; align-items:center; gap:16px; flex-wrap:wrap; }
.est-lbl { font-size:10px; color:var(--muted); text-transform:uppercase; letter-spacing:.6px; font-weight:700; }
.est-controls { margin-left:auto; display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.est-sel { padding:8px 10px; border:1px solid var(--border); border-radius:8px; font-size:13px; background:var(--surface); }
.est-motivo { padding:8px 10px; border:1px solid var(--border); border-radius:8px; font-size:13px; width:180px; }
.est-save { padding:8px 16px; }
.est-auto { background:var(--bg-3); border:1px solid var(--border); border-radius:8px; padding:8px 12px; font-size:13px; cursor:pointer; color:var(--text-soft); }
.est-auto:hover { background:var(--bg-2); }
.est-baneo { font-size:12px; font-weight:600; color:var(--err-text); background:var(--err-soft); padding:3px 10px; border-radius:6px; }
.est-hint { margin-top:10px; }

/* Resumen:sello de última actualización */
.resumen-fresh { font-size:12.5px; color:var(--text-soft); background:var(--bg-3); border:1px solid var(--bg-2); border-radius:8px; padding:8px 14px; margin-bottom:16px; }
.resumen-fresh b { color:var(--text); }

/* Enlaces a Instagram (ficha + lista de cuentas) */
a.cell-acct, a.ig-link { text-decoration:none; color:inherit; }
a.ig-link:hover, a.cell-acct:hover .acct-handle { color:var(--link); }
.ig-ext { font-size:11px; color:var(--link); opacity:.75; vertical-align:1px; }

/* Competencia:chips de cuentas rivales */
.comp-chips { display:flex; gap:10px; flex-wrap:wrap; margin-bottom:16px; }
.comp-chip { display:flex; align-items:center; gap:8px; background:var(--surface); border:1px solid var(--border); border-radius:10px; padding:6px 10px 6px 6px; cursor:pointer; transition:border-color .1s; }
.comp-chip:hover { border-color:#d4b978; }
.comp-chip.active { border-color:var(--gold); background:linear-gradient(135deg, rgba(231,181,60,0.12), var(--surface)); }
.comp-chip .avatar { width:32px; height:32px; font-size:12px; }
.comp-chip-meta { display:flex; flex-direction:column; line-height:1.25; }
.comp-chip-h { font-size:13px; font-weight:600; color:var(--text); }
.comp-chip-sub { font-size:11px; color:var(--muted); }
.comp-del { background:none; border:0; color:var(--muted); cursor:pointer; font-size:13px; padding:2px 4px; }
.comp-del:hover { color:var(--err-text); }
.comp-filter-lbl { margin-left:auto; }

/* ===== Desglose de pago · modelos ===== */
.pg-desg-hero {
  display:flex; align-items:center; gap:12px; flex-wrap:wrap; margin:2px 0 14px;
  padding:12px 18px; border-radius:14px; box-shadow:0 1px 2px var(--shadow);
  background:linear-gradient(135deg, var(--gold-soft), var(--surface)); border:1px solid var(--gold-border);
}
.pg-desg-hero .k { font-size:11px; text-transform:uppercase; letter-spacing:.5px; color:var(--gold-text); font-weight:700; }
.pg-desg-hero .v { font-size:26px; font-weight:800; color:var(--gold-dk); font-variant-numeric:tabular-nums; line-height:1; }
.pg-desg-hero .h { font-size:12.5px; color:var(--text-soft); margin-left:auto; }

.pg-mfilter { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:14px; }
.pg-mchip {
  display:flex; align-items:center; gap:7px; background:var(--surface); border:1px solid var(--border);
  border-radius:999px; padding:4px 13px 4px 5px; cursor:pointer; font-size:13px; color:var(--text-2);
  transition:border-color .12s, background .12s;
}
.pg-mchip .avatar { width:22px; height:22px; min-width:22px; font-size:9px; }
.pg-mchip .nm { font-weight:600; }
.pg-mchip .amt { font-size:11px; color:var(--muted); font-variant-numeric:tabular-nums; }
.pg-mchip:hover { border-color:var(--gold-border); }
.pg-mchip.active { border-color:var(--gold); background:linear-gradient(135deg, var(--gold-soft), var(--surface)); color:var(--text); }
.pg-mchip.active .amt { color:var(--gold-dk); font-weight:700; }
.pg-mchip.all { padding-left:13px; }
.pg-mchip.all .ic { font-size:12px; color:var(--muted); line-height:1; }

.pg-mcards { display:flex; flex-direction:column; gap:10px; }
.pg-mcard { background:var(--surface); border:1px solid var(--border); border-radius:12px; padding:12px 15px; box-shadow:0 1px 2px var(--shadow); }
.pg-mcard-head { display:flex; justify-content:space-between; align-items:center; }
.pg-mcard-head .who { display:flex; align-items:center; gap:9px; font-size:15px; color:var(--text); }
.pg-mcard-head .tot { font-size:18px; font-weight:800; color:var(--text); font-variant-numeric:tabular-nums; }
.pg-mcard-lines { margin-top:9px; border-top:1px solid var(--bg-2); }
.pg-mcard-lines .ln { display:flex; justify-content:space-between; align-items:center; gap:12px; font-size:13px; padding:6px 0; color:var(--text-2); }
.pg-mcard-lines .ln + .ln { border-top:1px solid var(--bg-3); }
.pg-mcard-lines .ln i { font-style:normal; color:var(--muted); font-size:12px; margin-left:5px; }
.pg-mcard-lines .ln .pos { color:var(--gold-dk); font-weight:700; }
.pg-mcard-lines .ln .warn { color:#c0392b; font-style:normal; font-size:12px; }
.pg-mcard-cst { display:flex; flex-wrap:wrap; gap:6px; margin-top:10px; }
.pg-cst-item { font-size:11.5px; background:var(--bg-3); border:1px solid var(--border); border-radius:7px; padding:3px 9px; color:var(--text-soft); }
.pg-cst-item b { color:var(--text-2); font-weight:700; margin-right:2px; }

/* Botón ⭐ guardar idea en las tarjetas de reel */
.video-thumb-wrap { position:relative; }
.reel-save { position:absolute; top:6px; right:6px; background:rgba(0,0,0,0.55); color:#ffd75e; border:0; border-radius:8px; width:30px; height:30px; font-size:16px; cursor:pointer; line-height:1; z-index:2; }
.reel-save:hover { background:rgba(0,0,0,0.78); transform:scale(1.08); }
.reel-save.saved { background:rgba(207,151,28,0.9); color:#fff; }

/* Ideas / Inspiración */
.ideas-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(220px, 1fr)); gap:16px; }
.idea-card { background:var(--surface); border:1px solid var(--border); border-radius:12px; overflow:hidden; display:flex; flex-direction:column; }
.idea-thumb { position:relative; display:block; }
.idea-body { padding:10px 12px 12px; display:flex; flex-direction:column; gap:8px; }
.idea-head { display:flex; align-items:center; justify-content:space-between; }
.idea-h { font-size:13px; font-weight:600; color:var(--link); }
.idea-del { background:var(--bg-3); border:0; color:var(--text-soft); cursor:pointer; font-size:13px; width:26px; height:26px; border-radius:7px; line-height:1; display:flex; align-items:center; justify-content:center; flex:none; }
.idea-del:hover { background:var(--err-soft); color:var(--err-text); }
.idea-nota { width:100%; border:1px solid var(--border); border-radius:8px; padding:8px; font-size:12.5px; font-family:inherit; resize:vertical; box-sizing:border-box; }
.idea-nota:focus { outline:none; border-color:var(--gold); }

/* Ideas:generador de captions con IA */
.idea-gen { width:100%; margin-top:8px; background:linear-gradient(135deg, var(--gold-3), var(--gold)); color:var(--gold-ink); border:0; border-radius:8px; padding:8px 12px; font-size:12.5px; font-weight:600; cursor:pointer; }
.idea-gen:hover { filter:brightness(1.04); }
.idea-gen:disabled { opacity:.7; cursor:default; }
.idea-caps { display:flex; flex-direction:column; gap:6px; margin-top:8px; }
.idea-cap { display:flex; gap:6px; align-items:flex-start; background:var(--gold-soft); border:1px solid var(--gold-border); border-radius:8px; padding:7px 9px; }
.idea-cap-txt { flex:1; font-size:12px; line-height:1.45; color:var(--text); white-space:pre-wrap; }
.idea-cap-copy { background:none; border:0; cursor:pointer; font-size:13px; opacity:.7; flex:none; }
.idea-cap-copy:hover { opacity:1; }

/* Ideas:caja de contexto para la IA */
.ctx-box { background:var(--surface); border:1px solid var(--border); border-radius:12px; padding:12px 16px; margin-bottom:18px; }
.ctx-box summary { cursor:pointer; font-size:13.5px; color:var(--text); }
.ctx-box summary::-webkit-details-marker { color:var(--gold); }
.ctx-text { width:100%; border:1px solid var(--border); border-radius:8px; padding:10px; font-size:12.5px; font-family:inherit; line-height:1.5; resize:vertical; box-sizing:border-box; }
.ctx-text:focus { outline:none; border-color:var(--gold); }
.ctx-row { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-top:8px; }

/* ===== Conversión completa (embudo IG -> link.me -> OnlyFans) ===== */
.embudo-note { background:var(--gold-soft); border:1px solid var(--gold-border); color:var(--gold-text); border-radius:10px; padding:10px 14px; font-size:12.5px; line-height:1.5; margin-bottom:16px; }
.embudo-card { margin-bottom:16px; }
.embudo-head { display:flex; align-items:center; justify-content:space-between; gap:14px; flex-wrap:wrap; }
.embudo-mini { display:flex; align-items:center; gap:8px; font-size:13px; font-weight:600; color:var(--text-soft); flex-wrap:wrap; }
.embudo-mini .fx { background:var(--bg-3); border:1px solid var(--border); border-radius:999px; padding:3px 10px; white-space:nowrap; }
.embudo-mini .fx i { color:var(--gold-dk); font-style:normal; font-weight:700; font-size:11.5px; }
.embudo-mini .fx.cv-strong { background:var(--gold-soft); border-color:var(--gold-border); color:var(--gold-text); }
.embudo-mini .arw { color:#b8bcc6; font-weight:700; }
.embudo-table th, .embudo-table td { vertical-align:middle; }
.conv-na { background:var(--bg-3); color:#9aa0ab; }
.lm-new { color:var(--ok-text); font-weight:700; font-size:11px; }
.muted { color:#b0b5bf; font-size:11.5px; }
.fuga-badge { display:inline-block; font-size:11px; font-weight:700; padding:2px 9px; border-radius:999px; white-space:nowrap; }
.fuga-of { background:rgba(220,38,38,0.10); color:var(--err-text-2); }
.fuga-lm { background:rgba(234,127,12,0.12); color:var(--gold-text); }

/* Paso link.me en el embudo de la ficha */
.of-cell.of-lm .of-val { color:var(--lm); }
.of-cell.of-lm .of-lbl { color:var(--lm-2); }
.of-sub { font-size:11px; color:var(--gold-text); font-weight:700; margin-top:2px; }

/* Editor de link.me en la ficha */
.linkme-card .lm-edit { display:flex; gap:10px; align-items:center; flex-wrap:wrap; padding:12px 16px 16px; }
.lm-input { flex:1; min-width:260px; border:1px solid var(--border); border-radius:8px; padding:9px 12px; font-size:13px; font-family:inherit; }
.lm-input:focus { outline:none; border-color:var(--gold); }
.lm-msg { font-size:12.5px; font-weight:600; color:var(--text-soft); }
.lm-msg.ok { color:var(--ok-text); }
.lm-msg.err { color:var(--err-text-2); }

/* Enlace pequeño a Instagram dentro de la fila de Cuentas (clic en la fila = abre ficha) */
.ig-ext-link { color:#b0b5bf; text-decoration:none; font-size:12px; padding:0 3px; }
.ig-ext-link:hover { color:var(--gold); }
.card table tbody tr[data-handle]:hover { background:var(--gold-soft); }

/* Mini-embudo en el detalle de modelo */
.md-funnel { margin:-4px 0 18px; }

.md-funnel-card .md-funnel { padding:14px 18px 16px; margin:0; }

/* Botón "✓ Hecho" en las alertas + tarjeta clicable */
.alert-card { position:relative; }
.alert-card .alert-body { padding-right:84px; }
.alert-done { position:absolute; top:12px; right:12px; border:1px solid var(--alert-color); color:var(--alert-color);
  background:var(--surface); border-radius:8px; padding:5px 11px; font-size:12px; font-weight:700; cursor:pointer; white-space:nowrap; }
.alert-done:hover { background:var(--alert-color); color:#fff; }
.alert-card[data-acct]:hover { box-shadow:0 3px 12px rgba(0,0,0,0.07); }

/* Icono de alerta = foto de la cuenta o marca de móvil */
.alert-icon .avatar { width:42px; height:42px; font-size:15px; }
.alert-movil-ic { width:42px; height:42px; border-radius:50%; background:var(--bg-3); display:flex; align-items:center; justify-content:center; font-size:21px; }

/* Acciones rápidas en la alerta (nº + botón de recargar) */
.alert-actions { display:flex; align-items:center; gap:12px; flex-wrap:wrap; margin-top:9px; }
.alert-num { font-size:13px; color:var(--text); display:inline-flex; align-items:center; gap:7px; }
.alert-num b { font-size:14px; letter-spacing:.3px; }
.alert-actions a.alert-link-btn { display:inline-flex; align-items:center; gap:5px; background:#ffd21e !important;
  color:var(--gold-text) !important; border:0 !important; text-decoration:none !important; font-size:13px; font-weight:800;
  padding:8px 16px; border-radius:10px; box-shadow:0 2px 7px rgba(230,180,10,0.45); transition:background .12s, transform .12s; }
.alert-actions a.alert-link-btn:hover { background:#f5c518 !important; transform:translateY(-1px); }

/* Botón "✓ Recargado hoy" en la alerta de SIM */
.alert-actions .alert-recargado { border:1px solid #16a34a; background:var(--ok-soft); color:var(--ok-text);
  font-size:12.5px; font-weight:700; padding:7px 14px; border-radius:10px; cursor:pointer; white-space:nowrap; }
.alert-actions .alert-recargado:hover { background:#16a34a; color:#fff; }
/* Botón "🔕 No seguir esta SIM" (móvil retirado) */
.alert-actions .alert-noseguir { border:1px solid var(--border-2); background:var(--bg-3); color:var(--text-soft);
  font-size:12.5px; font-weight:600; padding:7px 14px; border-radius:10px; cursor:pointer; white-space:nowrap; }
.alert-actions .alert-noseguir:hover { background:var(--border); color:var(--text); }

/* ========== Control de contenido ========== */
.cc-topinfo { font-size:13px; color:var(--text-soft); }
.cc-topinfo b { color:var(--text); }
.cc-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(320px, 1fr)); gap:14px; }
.cc-card {
  background:var(--surface); border:1px solid var(--border); border-radius:12px;
  padding:14px 16px 16px; box-shadow:0 1px 2px var(--shadow);
}
.cc-head { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:12px; }
.cc-sections { display:flex; flex-direction:column; gap:9px; }
.cc-sec { padding:2px 0; }
.cc-sec.cc-clickable { cursor:pointer; border-radius:8px; transition:background .12s; }
.cc-sec.cc-clickable:hover { background:var(--bg-3); }
.cc-sec-top { display:flex; align-items:center; justify-content:space-between; margin-bottom:4px; }
.cc-sec-name { font-size:13px; font-weight:600; color:var(--text); }
.cc-sec-count { font-size:12.5px; font-weight:700; padding:1px 8px; border-radius:99px; }
.cc-bar { height:7px; background:var(--bg-2); border-radius:99px; overflow:hidden; }
.cc-bar-fill { height:100%; border-radius:99px; transition:width .3s; }
/* estados */
.cc-ok   { background:rgba(22,163,74,0.14); color:var(--ok-text); }
.cc-casi { background:rgba(202,138,4,0.16); color:var(--gold-dk); }
.cc-bad  { background:rgba(220,38,38,0.12); color:var(--err-text-2); }
.cc-na   { background:rgba(148,163,184,0.18); color:var(--text-soft); }
.cc-bar-fill.cc-ok   { background:#16a34a; }
.cc-bar-fill.cc-casi { background:var(--gold-2); }
.cc-bar-fill.cc-bad  { background:#ef4444; }
.cc-bar-fill.cc-na   { background:var(--border-2); }
/* pestañas Esta semana / Historial */
.cc-tabs { display:flex; gap:6px; margin-bottom:16px; border-bottom:1px solid var(--border); }
.cc-tab { background:none; border:none; padding:9px 14px; font-size:13.5px; font-weight:600;
  color:var(--text-soft); cursor:pointer; border-bottom:2px solid transparent; margin-bottom:-1px; }
.cc-tab:hover { color:var(--text); }
.cc-tab.active { color:var(--gold-dk); border-bottom-color:var(--gold); }
/* historial:lista de modelos (tarjetas con tira de semanas) */
.mh-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(280px, 1fr)); gap:14px; }
.mh-card { background:var(--surface); border:1px solid var(--border); border-radius:14px; padding:16px;
  cursor:pointer; transition:box-shadow .15s, transform .1s; box-shadow:0 1px 2px rgba(31,39,51,.04); }
.mh-card:hover { box-shadow:0 6px 18px rgba(31,39,51,.10); transform:translateY(-2px); }
.mh-top { display:flex; align-items:center; gap:12px; margin-bottom:14px; }
.mh-name { flex:1; display:flex; flex-direction:column; min-width:0; }
.mh-name b { font-size:15px; color:var(--text); }
.mh-name span { font-size:11.5px; color:var(--muted); }
.mh-strip { display:flex; flex-wrap:wrap; gap:5px; }
.mh-wkblock { min-width:34px; height:30px; border-radius:7px; display:flex; align-items:center;
  justify-content:center; font-size:11.5px; font-weight:800; color:#fff; padding:0 6px; }
.mh-ok { background:#16a34a; } .mh-mid { background:var(--gold-2); } .mh-bad { background:#ef4444; }
.mh-empty { font-size:12px; color:#b0b6c0; padding:4px 0; }
/* bloque "TO-DO sin actualizar" en Esta semana */
.cc-desact { margin-top:22px; background:var(--gold-soft); border:1px solid var(--gold-border); border-radius:12px; padding:14px 16px; }
.cc-desact-head { font-weight:700; font-size:13.5px; color:var(--gold-dk); margin-bottom:4px; }
.cc-desact-list { display:flex; flex-wrap:wrap; gap:8px; }
.cc-desact-chip { display:flex; align-items:center; gap:7px; background:var(--surface); border:1px solid var(--gold-border);
  border-radius:99px; padding:4px 10px 4px 4px; font-size:13px; font-weight:600; color:var(--text); }
.cc-desact-chip .avatar { width:28px; height:28px; font-size:11px; }
.cc-desact-sem { font-size:11px; font-weight:700; color:var(--gold-dk); background:rgba(207,151,28,.12); padding:1px 7px; border-radius:99px; }
.mh-enter { margin-top:12px; text-align:right; font-size:12.5px; font-weight:700; color:var(--gold-dk); }
/* historial:detalle de una modelo (semanas) */
.mh-wk { transition:box-shadow .12s; }
.mh-wk:hover { box-shadow:0 4px 14px rgba(31,39,51,.09); }
.mh-wk-head { display:flex; align-items:center; gap:10px; margin-bottom:12px; }
.mh-wk-head b { font-size:15px; color:var(--text); }
.mh-wk-secs { display:flex; gap:16px; flex-wrap:wrap; }
/* modal detalle de la semana */
.cd-modal { max-width:640px; width:92%; }
.cd-table { width:100%; border-collapse:collapse; }
.cd-table th { font-size:11px; color:var(--muted); text-transform:uppercase; text-align:left;
  padding:6px 8px; border-bottom:1px solid var(--bg-2); }
.cd-table td { padding:10px 8px; border-bottom:1px solid var(--bg-3); vertical-align:top; }
.cd-table th.num, .cd-table td.num { text-align:center; white-space:nowrap; }
.cd-sec { font-weight:700; font-size:13.5px; color:var(--text); }
.cd-tarea { font-size:11.5px; color:var(--text-soft); margin-top:3px; line-height:1.4; }
/* chips de semana en la ficha de la modelo */
.md-cc-chips { display:flex; flex-wrap:wrap; gap:7px; padding:0 2px; }
.md-cc-chip { border:none; padding:6px 12px; border-radius:99px; font-size:12.5px;
  font-weight:700; cursor:pointer; transition:filter .12s; }
.md-cc-chip:hover { filter:brightness(0.95); }
.md-cc-chip.cc-ok   { background:rgba(22,163,74,0.14); color:var(--ok-text); }
.md-cc-chip.cc-casi { background:rgba(202,138,4,0.16); color:var(--gold-dk); }
.md-cc-chip.cc-bad  { background:rgba(220,38,38,0.12); color:var(--err-text-2); }

/* ========== Avisos propios del panel (toast) + botón de peligro ========== */
.btn-danger {
  padding:9px 18px; border-radius:8px; border:0;
  background:linear-gradient(135deg, #e07a7a, #d64545);
  color:#fff; font-size:13px; font-weight:700; white-space:nowrap; cursor:pointer;
}
.btn-danger:hover { filter:brightness(1.05); }
.modal-confirm-text { margin:0; font-size:14px; line-height:1.5; color:var(--text-soft); white-space:pre-line; }

.toast-wrap {
  position:fixed; top:18px; right:18px; z-index:2000;
  display:flex; flex-direction:column; gap:10px; width:340px; max-width:calc(100vw - 36px);
}
.toast {
  background:var(--surface); border-radius:12px; padding:13px 15px;
  box-shadow:0 14px 38px var(--shadow); border-left:4px solid var(--gold);
  display:flex; gap:10px; align-items:flex-start; cursor:pointer;
  font-size:13.5px; color:var(--text); line-height:1.45; white-space:pre-line;
  animation:toastIn 0.22s cubic-bezier(.2,.8,.2,1);
}
.toast.out { animation:toastOut 0.28s ease forwards; }
.toast-ok   { border-left-color:#2e9e5b; }
.toast-err  { border-left-color:#d64545; }
.toast-info { border-left-color:var(--gold); }
.toast-ic  { flex:none; font-size:15px; line-height:1.3; }
.toast-msg { flex:1; }
@keyframes toastIn  { from { transform:translateX(120%); opacity:0; } to { transform:none; opacity:1; } }
@keyframes toastOut { to { transform:translateX(120%); opacity:0; } }

/* ========== Elección de modo al añadir modelo (crear todo / solo ficha) ========== */
.mm-choice { display:flex; flex-direction:column; gap:8px; margin-top:2px; }
.mm-opt {
  display:flex !important; flex-direction:row !important; gap:10px; align-items:flex-start;
  padding:11px 13px; border:1px solid var(--border-2); border-radius:10px; cursor:pointer;
  text-transform:none !important; letter-spacing:0 !important; font-weight:400 !important;
}
.mm-opt:hover { border-color:var(--gold); background:var(--gold-soft); }
.mm-opt:has(input:checked) { border-color:var(--gold); background:var(--gold-soft); box-shadow:0 0 0 1px var(--gold) inset; }
.mm-opt input { margin-top:2px; accent-color:var(--gold); flex:none; }
.mm-opt-t { display:flex; flex-direction:column; gap:2px; }
.mm-opt-t b { font-size:13.5px; color:var(--text); font-weight:700; }
.mm-opt-t > span { font-size:12px; color:var(--text-soft); line-height:1.4; }

/* ========== Lista de links de carpetas de la próxima semana ========== */
.ls-list { display:flex; flex-direction:column; gap:7px; max-height:60vh; overflow-y:auto; }
.ls-row {
  display:flex; align-items:center; justify-content:space-between; gap:12px;
  padding:9px 12px; border:1px solid var(--bg-2); border-radius:9px; background:var(--bg);
}
.ls-mod { font-size:13.5px; color:var(--text); }
.ls-copy {
  flex:none; padding:6px 12px; border-radius:8px; border:1px solid var(--border-2);
  background:var(--surface); color:var(--gold-dk); font-size:12.5px; font-weight:600; cursor:pointer; white-space:nowrap;
}
.ls-copy:hover { background:var(--gold-soft); border-color:var(--gold); }
.ls-err { font-size:12px; color:var(--err-text-2); }

/* ========== Asignar tareas a alguien del equipo ========== */
.tarea-asig {
  font-size:11px; font-weight:600; padding:2px 9px; border-radius:10px;
  border:1px solid var(--border-2); background:var(--surface); color:var(--text-soft); cursor:pointer; white-space:nowrap;
}
.tarea-asig:hover { border-color:var(--gold); background:var(--gold-soft); color:var(--gold-dk); }
.tarea-asig.sin { color:var(--muted); border-style:dashed; }
.asig-list { display:flex; flex-direction:column; gap:6px; }
.asig-opt {
  width:100%; text-align:left; padding:10px 12px; border-radius:9px;
  border:1px solid var(--bg-2); background:var(--bg); font-size:14px; color:var(--text); cursor:pointer;
}
.asig-opt:hover { border-color:var(--gold); background:var(--gold-soft); }

/* ========== Desplegable dentro de modales (ej. "Asignar a") ========== */
.modal-body select {
  padding:11px 13px; border-radius:9px; border:1px solid var(--border-2);
  font-size:14px; color:var(--text); background:var(--surface);
  text-transform:none; letter-spacing:0; cursor:pointer; width:100%;
}
.modal-body select:focus { outline:2px solid var(--gold-2); outline-offset:-1px; border-color:transparent; }

/* ===== Telegram (grupo por cuenta) ===== */
.tg-link-row { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.tg-link { font-size:13px; color:var(--info-text); word-break:break-all; text-decoration:none; }
.tg-link:hover { text-decoration:underline; }
.tg-copy { font-size:12px; padding:4px 10px; border-radius:7px; border:1px solid var(--border-2);
  background:var(--surface); color:var(--text-2); cursor:pointer; }
.tg-copy:hover { background:var(--bg-3); }
.tg-mem-lbl { margin:14px 0 7px; font-size:11px; text-transform:uppercase; letter-spacing:.6px; color:var(--muted); }
.tg-chips { display:flex; flex-wrap:wrap; gap:7px; }
.tg-chip { display:inline-flex; align-items:center; gap:6px; padding:5px 8px 5px 11px;
  background:var(--bg-3); border:1px solid var(--border); border-radius:20px; font-size:13px; color:var(--text); }
.tg-chip-x { border:none; background:transparent; color:var(--muted); cursor:pointer; font-size:12px;
  line-height:1; padding:2px 3px; border-radius:50%; }
.tg-chip-x:hover { color:var(--err-text); background:var(--err-soft); }
.tg-actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:16px; }
.tg-btn { padding:9px 14px; border-radius:9px; border:1px solid var(--border-2); background:var(--surface);
  color:var(--text); font-size:13px; font-weight:600; cursor:pointer; }
.tg-btn:hover { background:var(--bg-3); }
.tg-btn:disabled { opacity:.6; cursor:default; }
.tg-danger { color:var(--err-text); border-color:var(--err-soft); }
.tg-danger:hover { background:var(--err-soft); }

/* ===== Telegram:elegir grupos al añadir una persona ===== */
.tgp-head { display:flex; align-items:center; justify-content:space-between; margin:16px 0 7px;
  font-size:11px; text-transform:uppercase; letter-spacing:.6px; color:var(--muted); }
.tgp-mini { border:1px solid var(--border); background:var(--surface); color:var(--text-soft); font-size:11px; font-weight:600;
  padding:4px 10px; border-radius:6px; cursor:pointer; margin-left:5px;
  text-transform:none; letter-spacing:0; }
.tgp-mini:hover { background:var(--bg-3); color:var(--text); }
.tgp-list { max-height:230px; overflow-y:auto; border:1px solid var(--border); border-radius:9px;
  padding:4px; background:var(--surface); }
.tgp-row { display:flex; align-items:center; gap:9px; padding:6px 8px; border-radius:7px;
  cursor:pointer; user-select:none; }
.tgp-row:hover { background:var(--bg-3); }
.tgp-row.sel { background:var(--gold-soft); }
.tgp-row.sel:hover { background:var(--gold-soft-2); }
.tgp-row .avatar { width:26px; height:26px; min-width:26px; font-size:10px; }
.tgp-tick { width:13px; min-width:13px; font-size:12px; font-weight:700; color:transparent; }
.tgp-row.sel .tgp-tick { color:var(--gold); }
.tgp-h { font-size:13px; font-weight:600; color:var(--text); }
.tgp-m { margin-left:auto; font-size:11px; color:var(--muted); }
.modal-ok:disabled { opacity:.5; cursor:default; }
/* Aviso "se añade solo el Telegram del móvil" en el modal de crear grupo */
.cg-auto { font-size:12.5px; color:var(--text); background:var(--bg-3); border:1px solid var(--border);
  border-radius:9px; padding:9px 11px; margin-bottom:4px; line-height:1.5; }
.cg-auto.cg-warn { background:rgba(224,138,0,.10); border-color:rgba(224,138,0,.45); }
.cg-warn-inline { color:#e08a00; font-weight:600; }

/* ===== Telegram:miembros del grupo ===== */
.tg-mem-btn { display:inline-flex; align-items:center; gap:5px; padding:5px 11px; border-radius:20px;
  border:1px solid var(--border); background:var(--bg-3); color:var(--text); font-size:12px; font-weight:600;
  cursor:pointer; }
.tg-mem-btn:hover { background:var(--gold-soft); border-color:#e7cf8f; }
.tgm-row { display:flex; align-items:center; gap:9px; padding:7px 8px; border-radius:7px; }
.tgm-row:hover { background:var(--bg-3); }
.tgm-ic { font-size:13px; }
.tgm-n { font-size:13px; font-weight:600; color:var(--text); }
.tgm-sub { font-size:11px; color:var(--muted); }
.tgm-x { margin-left:auto; border:none; background:transparent; color:var(--muted); cursor:pointer;
  font-size:12px; line-height:1; padding:4px 6px; border-radius:6px; }
.tgm-x:hover { color:var(--err-text); background:var(--err-soft); }
.tgm-x:disabled { opacity:.4; cursor:default; }
.tgm-click { cursor:pointer; }
.tgm-click:hover { background:var(--gold-soft); }
.tg-warn { display:flex; align-items:center; gap:12px; flex-wrap:wrap; margin:0 0 14px;
  padding:11px 14px; border-radius:9px; background:var(--gold-soft); border:1px solid var(--gold-border);
  font-size:13px; color:var(--gold-text); }
.tg-warn span { flex:1; min-width:240px; }

/* ===== Botón de tema claro/oscuro (pie del menú) ===== */
.theme-btn {
  background:transparent; border:1px solid var(--border-2); color:var(--text-soft);
  padding: 8px; border-radius:7px; font-size: 12px; width: 100%; margin-bottom: 8px;
  font-family: inherit;
}
.theme-btn:hover { background:var(--bg-3); color:var(--text); border-color:var(--gold-2); }
/* En oscuro, las fotos puras restan menos si bajan un pelo de brillo */
:root[data-theme="dark"] img.avatar,
:root[data-theme="dark"] .reel-thumb img { filter: brightness(0.92); }
.tg-trash { border:1px solid var(--border); background:var(--surface); color:var(--muted);
  font-size:14px; padding:6px 10px; border-radius:8px; cursor:pointer; line-height:1; }
.tg-trash:hover { background:var(--err-soft); border-color:var(--err-text); color:var(--err-text); }

/* ===== Separador de secciones dentro de un modal (formulario de dispositivo, etc.) ===== */
.modal-sec { margin:18px 0 6px; font-size:11px; text-transform:uppercase; letter-spacing:.6px;
  color:var(--gold-dk); font-weight:700; border-top:1px solid var(--border); padding-top:13px; }
.modal-sec:first-child { border-top:none; padding-top:0; margin-top:0; }

/* ===== Dispositivos: tabla estilo Airtable ===== */
.dv-grid-wrap { overflow-x:auto; background:var(--surface); border:1px solid var(--border);
  border-radius:12px; box-shadow:0 1px 3px var(--shadow); }
.dv-grid { border-collapse:collapse; width:100%; font-size:13px; white-space:nowrap; }
.dv-grid th, .dv-grid td { border:1px solid var(--border); padding:9px 13px; text-align:left;
  vertical-align:middle; }
.dv-grid thead th { position:sticky; top:0; background:var(--bg-2); color:var(--text-soft);
  font-size:10.5px; text-transform:uppercase; letter-spacing:.5px; font-weight:700; z-index:1; }
.dv-grid tbody tr:hover { background:var(--bg-3); }
.dv-grid td.dv-name b { display:block; color:var(--text); }
.dv-grid .dv-sub { color:var(--muted); font-size:11px; }
.dv-grid .dv-muted { color:var(--muted); }
.dv-grid .dv-center { text-align:center; }
.dv-secret { cursor:pointer; letter-spacing:1.5px; color:var(--text); }
.dv-secret:hover { color:var(--gold-dk); }
.dv-tg { display:inline-block; cursor:pointer; font-size:12px; font-weight:600; color:var(--gold-dk);
  white-space:nowrap; }
.dv-tg:hover { text-decoration:underline; }
.dv-eye { border:none; background:transparent; cursor:pointer; font-size:12px; padding:0 0 0 5px; }
.dv-cuentas { border:1px solid var(--border-2); background:var(--surface); color:var(--gold-dk);
  font-weight:700; font-size:12px; padding:4px 11px; border-radius:20px; cursor:pointer; }
.dv-cuentas:hover { background:var(--gold-soft); border-color:var(--gold-2); }
.dv-acts { white-space:nowrap; }
.dv-acts .add-mini { margin-right:5px; }
.cv-fuera { background:var(--bg-3); font-style:italic; }
.cv-fuera td { color:var(--muted); }

/* ===== Resumen: fans de OnlyFans ===== */
.fans-row { display:grid; grid-template-columns:2fr 1fr 1fr; gap:12px; margin-bottom:16px; }
.fans-card { background:var(--surface); border:1px solid var(--border); border-radius:12px;
  padding:16px 18px; box-shadow:0 1px 3px var(--shadow); }
.fans-card.hoy { background:linear-gradient(135deg, var(--gold-soft), var(--surface)); border-color:var(--gold-border); }
.fans-lbl { font-size:11px; text-transform:uppercase; letter-spacing:.6px; color:var(--text-soft); font-weight:600; }
.fans-val { font-size:30px; font-weight:800; color:var(--text); margin-top:4px; line-height:1.1; }
.fans-card.hoy .fans-val { color:var(--gold-dk); }
.fans-sub { font-size:12px; color:var(--muted); margin-top:6px; }
@media (max-width:720px) { .fans-row { grid-template-columns:1fr; } }

/* ===== Enlaces para la bio (vista del poster) ===== */
.enl-link code { font-size:13px; color:var(--text); background:var(--bg-3); padding:5px 10px;
  border-radius:7px; border:1px solid var(--border); display:inline-block; word-break:break-all; }
/* Sin link.me no es un error, solo está pendiente: gris tranquilo, sin fondo rojo. */
.enl-sin { color:var(--text-3); font-size:13px; }
.enl-copy { padding:7px 14px; font-size:13px; }
.enl-movil { font-size:12px; font-weight:600; color:var(--text-2); background:var(--bg-3);
  padding:4px 9px; border-radius:7px; border:1px solid var(--border); white-space:nowrap; }

/* Chip de móvil en la tabla de Cuentas: clic -> iPhones, resaltando ese móvil. */
.c-movil-chip { font-size:12px; font-weight:700; color:var(--gold-dk); background:var(--surface);
  border:1px solid var(--border-2); padding:4px 10px; border-radius:20px; cursor:pointer; white-space:nowrap; }
.c-movil-chip:hover { background:var(--gold-soft); border-color:var(--gold-2); }
.c-movil-chip.off { color:var(--text-3); font-weight:600; }
/* Fila del móvil recién abierto desde Cuentas: destello dorado que se apaga solo. */
@keyframes dvFocus { 0%, 40% { background:var(--gold-soft); } 100% { background:transparent; } }
tr.dv-focus > td { animation:dvFocus 2.6s ease-out; }
tr.dv-focus { outline:2px solid var(--gold-2); outline-offset:-2px; }
.tg-prog { font-size:13px; color:var(--text-3); font-weight:600; }

/* iPhones: estado Activo/Retirado (desplegable), badge Reseteado, fila retirada en gris */
.dv-estado-sel { font-size:12px; font-weight:700; padding:4px 8px; border-radius:8px;
  border:1px solid var(--border); cursor:pointer; background:var(--bg-3); color:var(--text-2); }
.dv-estado-sel:hover { filter:brightness(1.08); }
.dv-estado-sel.on  { background:var(--good-soft, rgba(46,160,67,.14)); color:var(--good-text, #2ea043);
  border-color:var(--good-border, rgba(46,160,67,.4)); }
.dv-estado-sel.off { background:var(--bg-3); color:var(--text-3); }
.dv-reset { display:inline-block; margin-left:6px; font-size:10.5px; font-weight:700;
  color:var(--gold-text, #b7791f); background:var(--gold-soft, rgba(183,121,31,.12));
  border:1px solid var(--gold-border, rgba(183,121,31,.35)); padding:1px 7px; border-radius:6px;
  vertical-align:middle; }
tr.dv-off { opacity:.5; }
tr.dv-off:hover { opacity:.8; }
.btn-track { background:none; border:0; cursor:pointer; font-size:15px; line-height:1; opacity:.6; padding:2px; }
.btn-track:hover { opacity:1; transform:scale(1.1); }
.btn-track:disabled { opacity:.35; cursor:default; }
.fans-tbl { width:100%; border-collapse:collapse; }
.fans-tbl th, .fans-tbl td { padding:8px 14px; text-align:left; border-bottom:1px solid var(--border); font-size:13px; }
.fans-tbl th { font-size:11px; text-transform:uppercase; letter-spacing:.5px; color:var(--text-3); }
.fans-tbl td.num, .fans-tbl th:not(:first-child) { text-align:right; }
.fans-tbl tfoot td { border-top:2px solid var(--border); border-bottom:0; }

/* Panel por modelo (sección Modelos): tarjetas con IG + OnlyFans de un vistazo */
.mod-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(320px,1fr)); gap:14px; }
.mod-card { position:relative; background:var(--bg-1); border:1px solid var(--border); border-radius:14px;
  padding:16px; cursor:pointer; transition:border-color .15s, transform .15s; }
.mod-card:hover { border-color:var(--gold-border,#c9a54a); transform:translateY(-2px); }
.mod-del { position:absolute; top:10px; right:10px; }
.mod-head { display:flex; align-items:center; gap:12px; margin-bottom:14px; padding-right:22px; }
.mod-idcol { display:flex; flex-direction:column; min-width:0; }
.mod-name { font-size:16px; font-weight:700; }
.mod-sub { font-size:12px; color:var(--text-3); }
.mod-money { margin-left:auto; text-align:right; }
.mod-eur { display:block; font-size:20px; font-weight:800; color:var(--good-text,#2ea043); }
.mod-eur-lbl { font-size:10px; text-transform:uppercase; letter-spacing:.5px; color:var(--text-3); }
.mod-stats { display:grid; grid-template-columns:1fr 1fr; gap:8px 14px; margin-bottom:12px; }
.mod-stat { display:flex; justify-content:space-between; align-items:baseline;
  border-bottom:1px solid var(--border); padding-bottom:5px; }
.mod-k { font-size:12px; color:var(--text-2); }
.mod-v { font-size:15px; font-weight:700; }
.mod-today { font-size:12px; color:var(--text-2); background:var(--bg-3); border-radius:8px; padding:7px 10px; text-align:center; }

/* ===================== Landings ===================== */
.lnd-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:14px; }
.lnd-card { padding:0; overflow:hidden; cursor:pointer; transition:transform .1s, box-shadow .1s; }
.lnd-card:hover { transform:translateY(-2px); box-shadow:0 8px 24px var(--shadow); }
.lnd-cardhead { display:flex; gap:11px; align-items:center; padding:14px 14px 10px; }
.lnd-cardname { font-weight:700; font-size:15px; }
.lnd-cardurl { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; font-size:12px; }
.lnd-minis { display:flex; gap:3px; padding:0 14px; }
.lnd-mini { flex:1; aspect-ratio:3/4; border-radius:8px; background:var(--bg-3) center/cover; }
.lnd-cardfoot { display:flex; justify-content:space-between; align-items:center; padding:11px 14px 14px; }

.lnd-detalle { display:flex; gap:20px; align-items:flex-start; flex-wrap:wrap; margin-top:14px; }
.lnd-form { flex:1 1 430px; min-width:0; display:flex; flex-direction:column; gap:16px; }
.lnd-preview { flex:0 0 330px; position:sticky; top:12px; }

.lnd-block { padding:18px; }
.lnd-block-h { font-size:14px; font-weight:700; margin-bottom:14px; }
.lnd-field { display:block; font-size:12px; color:var(--text-soft); font-weight:600; margin-bottom:11px; }
.lnd-field input { display:block; width:100%; margin-top:5px; padding:10px 12px; font-size:14px;
  font-weight:400; color:var(--text); background:var(--bg-3); border:1px solid var(--border); border-radius:10px; }
.lnd-field input:focus { outline:none; border-color:var(--gold); }
.lnd-row2 { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.lnd-url { font-family:monospace; font-size:12.5px; color:var(--gold-dk); background:var(--bg-3);
  border-radius:9px; padding:8px 11px; margin-bottom:11px; word-break:break-all; }

.lnd-paises { display:flex; align-items:center; gap:7px; flex-wrap:wrap; margin:4px 0 14px; }
.lnd-toggles { display:flex; gap:20px; flex-wrap:wrap; border-top:1px solid var(--border); padding-top:14px; }
.lnd-switch { display:flex; align-items:center; gap:9px; cursor:pointer; font-size:13.5px; user-select:none; }
.lnd-switch input { display:none; }
.lnd-sl { width:40px; height:23px; border-radius:99px; background:var(--bg-3); border:1px solid var(--border);
  position:relative; transition:.15s; flex:0 0 auto; }
.lnd-sl::after { content:""; position:absolute; left:2.5px; top:2px; width:17px; height:17px; border-radius:50%;
  background:var(--muted); transition:.15s; }
.lnd-switch input:checked + .lnd-sl { background:var(--gold); border-color:var(--gold); }
.lnd-switch input:checked + .lnd-sl::after { left:20px; background:#fff; }
.lnd-switch-pub input:checked + .lnd-sl { background:#3ddc84; border-color:#3ddc84; }

.lnd-tabs { display:flex; gap:7px; flex-wrap:wrap; margin-bottom:14px; }
.lnd-tab { padding:8px 12px; border-radius:9px; border:1px solid var(--border); background:var(--bg-3);
  font-size:12.5px; font-weight:600; cursor:pointer; color:var(--text-soft); display:flex; align-items:center; gap:6px; }
.lnd-tab.on { background:var(--gold); border-color:var(--gold); color:#3a2a05; }
.lnd-dot { background:#e8608f; color:#fff; border-radius:99px; min-width:16px; height:16px; font-size:11px;
  display:inline-flex; align-items:center; justify-content:center; padding:0 4px; }

.lnd-fotos { display:grid; grid-template-columns:150px 96px; gap:12px; margin-bottom:8px; align-items:start; }
.lnd-foto { cursor:pointer; }
.lnd-drop { position:relative; border-radius:12px; overflow:hidden; border:1px solid var(--border);
  background:var(--bg-3); }
.lnd-drop img { width:100%; height:100%; object-fit:cover; display:block; }
.lnd-drop-ov { position:absolute; inset:0; background:rgba(0,0,0,.42); color:#fff; font-size:13px; font-weight:600;
  display:flex; align-items:center; justify-content:center; opacity:0; transition:.12s; }
.lnd-foto:hover .lnd-drop-ov { opacity:1; }
.lnd-drop-empty { position:absolute; inset:0; display:flex; flex-direction:column; align-items:center;
  justify-content:center; color:var(--muted); font-size:13px; font-weight:600; text-align:center; line-height:1.5; }
.lnd-drop-empty::first-line { font-size:26px; }

.lnd-of { margin-top:12px; font-size:12px; color:var(--text-soft); }
.lnd-of code { font-size:11.5px; word-break:break-all; }
.lnd-ok { margin-top:12px; color:#2ea86a; font-size:13px; font-weight:600; }

.lnd-paissel { width:100%; padding:9px 12px; border-radius:10px; border:1px solid var(--border);
  background:var(--surface); color:var(--text); font-size:13px; margin-bottom:12px; }
.lnd-phone { width:100%; border:11px solid #26242f; border-radius:36px; overflow:hidden; background:#000;
  box-shadow:0 18px 46px var(--shadow); }
.lnd-phone iframe { width:100%; height:600px; border:0; display:block; background:#0e0d12; }

.lnd-comp { border-top:1px solid var(--border); padding-top:14px; margin-top:4px;
  display:flex; flex-direction:column; gap:10px; }
.lnd-comp .lnd-switch { font-size:13.5px; }

/* editor de botones */
.lnd-botones { display:flex; flex-direction:column; gap:9px; margin-bottom:6px; }
.lnd-btn-row { display:flex; align-items:flex-start; gap:9px; background:var(--bg-3);
  border:1px solid var(--border); border-radius:11px; padding:9px 10px; }
.lnd-btn-tag { flex:0 0 auto; font-size:10.5px; font-weight:700; padding:4px 8px; border-radius:7px;
  margin-top:6px; white-space:nowrap; }
.lnd-t-of { background:rgba(232,96,143,.16); color:#e8608f; }
.lnd-t-telegram { background:rgba(56,150,235,.16); color:#3b9dfb; }
.lnd-t-enlace { background:rgba(160,160,170,.16); color:var(--text-soft); }
.lnd-btn-body { flex:1; min-width:0; display:flex; flex-direction:column; gap:7px; }
.lnd-btn-body input, .lnd-btn-ico { width:100%; padding:8px 10px; font-size:13px; color:var(--text);
  background:var(--surface); border:1px solid var(--border); border-radius:8px; }
.lnd-btn-extra { display:grid; grid-template-columns:1fr 92px; gap:7px; }
.lnd-btn-act { display:flex; gap:3px; flex:0 0 auto; }
.lnd-btn-act button { padding:5px 8px; font-size:13px; background:var(--surface); border:1px solid var(--border);
  border-radius:7px; cursor:pointer; color:var(--text-soft); line-height:1; }
.lnd-btn-act button:disabled { opacity:.3; cursor:default; }
.lnd-btn-act button:not(:disabled):hover { border-color:var(--gold); }
.lnd-btn-del:hover { border-color:#e05a6f !important; color:#e05a6f !important; }
.lnd-add-btns { display:flex; align-items:center; gap:7px; flex-wrap:wrap; margin-top:3px; }
.lnd-add-btns button { padding:7px 11px; font-size:12.5px; font-weight:600; background:var(--bg-3);
  border:1px dashed var(--border); border-radius:9px; cursor:pointer; color:var(--text-soft); }
.lnd-add-btns button:hover { border-color:var(--gold); color:var(--gold-dk); border-style:solid; }

/* aplicar diseño a otras */
.lnd-plantilla-row { display:flex; align-items:center; gap:12px; flex-wrap:wrap;
  border-top:1px solid var(--border); margin-top:14px; padding-top:14px; }
.lnd-modal-ov { position:fixed; inset:0; background:rgba(0,0,0,.5); z-index:1000;
  display:flex; align-items:center; justify-content:center; padding:20px; }
.lnd-modal { background:var(--surface); border:1px solid var(--border); border-radius:16px;
  padding:22px; width:100%; max-width:440px; box-shadow:0 20px 60px rgba(0,0,0,.4); }
.lnd-modal h3 { font-size:16px; margin-bottom:6px; }
.lnd-modal-sec { font-size:12px; font-weight:700; color:var(--text-soft); text-transform:uppercase;
  letter-spacing:.03em; margin-bottom:8px; }
.lnd-radio, .lnd-check { display:flex; align-items:flex-start; gap:9px; padding:8px 0; font-size:14px; cursor:pointer; }
.lnd-radio input, .lnd-check input { margin-top:2px; flex:0 0 auto; }
.lnd-check .hint, .lnd-radio .hint { display:block; }
.lnd-modal-foot { display:flex; justify-content:flex-end; gap:10px; margin-top:18px; }
.lnd-modal-foot button { padding:9px 16px; border-radius:9px; border:1px solid var(--border);
  background:var(--bg-3); color:var(--text); font-weight:600; cursor:pointer; }
.lnd-modal-foot button.pri { background:var(--gold); border-color:var(--gold); color:#3a2a05; }

/* crear desde plantilla */
.lnd-crear-cuenta { display:flex; align-items:center; gap:12px; flex-wrap:wrap; margin-bottom:14px;
  padding:12px 14px; border-radius:11px; background:rgba(232,167,46,.1); border:1px solid rgba(232,167,46,.35); }
.lnd-crear-cuenta span { font-size:13.5px; color:var(--text); }
.lnd-crear-cuenta button { margin-left:auto; padding:8px 14px; font-weight:700; font-size:13px;
  background:var(--gold); border:1px solid var(--gold); color:#3a2a05; border-radius:9px; cursor:pointer; }
.lnd-crear-cuenta button:hover { filter:brightness(1.06); }

/* banner del diseño común */
.lnd-diseno-banner { display:flex; align-items:center; gap:16px; flex-wrap:wrap;
  background:linear-gradient(120deg, rgba(232,167,46,.12), rgba(232,96,143,.08));
  border:1px solid var(--border); border-radius:14px; padding:16px 18px; margin-bottom:18px; }
.lnd-diseno-t { font-size:15px; font-weight:700; margin-bottom:3px; }
.lnd-diseno-banner button { margin-left:auto; padding:10px 16px; font-weight:700; font-size:13.5px;
  background:var(--gold); border:1px solid var(--gold); color:#3a2a05; border-radius:10px; cursor:pointer; white-space:nowrap; }
.lnd-diseno-banner button:hover { filter:brightness(1.06); }

/* temporizador en el editor */
.lnd-timer-box { border-top:1px solid var(--border); margin-top:12px; padding-top:12px; }
.lnd-timer-cfg { display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin-top:8px; padding-left:50px; }
.lnd-timer-cfg input { padding:8px 10px; font-size:13px; color:var(--text); background:var(--bg-3);
  border:1px solid var(--border); border-radius:8px; }
.lnd-timer-cfg input:first-child { flex:1; min-width:140px; }

/* pestañas dentro de una modelo */
.lnd-mtabs { display:flex; gap:8px; flex-wrap:wrap; margin:14px 0 4px; border-bottom:1px solid var(--border); padding-bottom:12px; }
.lnd-mtab { padding:9px 15px; border-radius:10px; border:1px solid var(--border); background:var(--bg-3);
  font-size:13px; font-weight:600; cursor:pointer; color:var(--text-soft); display:flex; align-items:center; gap:6px; }
.lnd-mtab.on { background:var(--gold); border-color:var(--gold); color:#3a2a05; }
.lnd-mini-uno { aspect-ratio:4/3; width:100%; }

/* quitar foto */
.lnd-fotowrap { display:flex; flex-direction:column; gap:6px; }
.lnd-foto-del { padding:6px 8px; font-size:11.5px; font-weight:600; background:transparent; color:var(--text-soft);
  border:1px solid var(--border); border-radius:7px; cursor:pointer; }
.lnd-foto-del:hover { border-color:#e05a6f; color:#e05a6f; }

/* estadísticas */
.lnd-stats { display:grid; grid-template-columns:repeat(auto-fit,minmax(92px,1fr)); gap:10px; }
.lnd-stat { background:var(--bg-3); border:1px solid var(--border); border-radius:11px; padding:12px 8px; text-align:center; }
.lnd-stat-n { font-size:22px; font-weight:800; letter-spacing:-.5px; }
.lnd-stat-l { font-size:11px; color:var(--text-soft); margin-top:2px; }
.lnd-stat-conv { background:linear-gradient(135deg, var(--gold-soft), var(--gold-soft-2)); border-color:var(--gold-border); }
.lnd-stat-conv .lnd-stat-n { color:var(--gold-dk); }
.lnd-paises-stats { display:flex; flex-direction:column; gap:7px; }
.lnd-pais-row { display:grid; grid-template-columns:minmax(120px,160px) 1fr 40px; align-items:center; gap:10px; font-size:13px; }
.lnd-pais-name { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.lnd-pais-bar { height:8px; background:var(--bg-3); border-radius:99px; overflow:hidden; }
.lnd-pais-bar div { height:100%; background:linear-gradient(90deg, var(--gold-2), var(--gold)); border-radius:99px; }

/* cabecera de stats con botón actualizar */
.lnd-stats-head { display:flex; align-items:center; justify-content:space-between; gap:8px; }
.lnd-refresh { font-size:12px; font-weight:600; padding:5px 10px; border-radius:9px; cursor:pointer;
  border:1px solid var(--gold-border); background:var(--gold-soft); color:var(--gold-text); white-space:nowrap; }
.lnd-refresh:hover { background:var(--gold-soft-2); }
.lnd-refresh:disabled { opacity:.6; cursor:default; }
.lnd-block-h.lnd-sub { font-size:13px; margin:16px 0 10px; }

/* embudo visitas -> OnlyFans */
.lnd-funnel { display:flex; flex-direction:column; gap:8px; margin-top:14px; }
.lnd-funnel-row { display:grid; grid-template-columns:130px 1fr 42px; align-items:center; gap:10px; font-size:13px; }
.lnd-funnel-lbl { color:var(--text-soft); white-space:nowrap; }
.lnd-funnel-row b { text-align:right; font-variant-numeric:tabular-nums; }
.lnd-funnel-bar { height:16px; background:var(--bg-3); border-radius:99px; overflow:hidden; }
.lnd-funnel-bar div { height:100%; border-radius:99px; background:linear-gradient(90deg, var(--gold-2), var(--gold)); transition:width .5s ease; }
.lnd-funnel-bar.of div { background:linear-gradient(90deg, var(--lm-2), var(--lm)); }

/* mini-gráfica de 7 días */
.lnd-spark { display:flex; align-items:flex-end; gap:6px; height:110px; padding:6px 2px 0; }
.lnd-spark-col { flex:1; display:flex; flex-direction:column; align-items:center; justify-content:flex-end; height:100%; gap:4px; }
.lnd-spark-n { font-size:11px; font-weight:700; color:var(--gold-dk); min-height:14px; }
.lnd-spark-bar { width:70%; max-width:34px; border-radius:6px 6px 0 0; background:linear-gradient(180deg, var(--gold-3), var(--gold)); min-height:0; transition:height .5s ease; }
.lnd-spark-lbl { font-size:10px; color:var(--text-soft); white-space:nowrap; }
.lnd-spark.dense { gap:2px; }
.lnd-spark.dense .lnd-spark-bar { max-width:none; width:82%; }
.lnd-spark.dense .lnd-spark-lbl { font-size:9px; }

/* filtro de periodo (Hoy / 7 días / 30 días / Todo) */
.lnd-perbar { display:flex; gap:6px; margin:2px 0 14px; flex-wrap:wrap; }
.lnd-per { font-size:12px; font-weight:600; padding:6px 13px; border-radius:9px; cursor:pointer;
  border:1px solid var(--border); background:var(--bg-3); color:var(--text-soft); transition:all .12s; }
.lnd-per:hover { border-color:var(--gold-2); color:var(--text); }
.lnd-per.on { background:linear-gradient(135deg, var(--gold-3), var(--gold)); color:var(--gold-ink); border-color:transparent; }
.lnd-fechas { display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin:0 0 14px; padding:10px 12px;
  background:var(--bg-3); border:1px solid var(--border); border-radius:11px; font-size:13px; color:var(--text-soft); }
.lnd-fechas label { display:flex; align-items:center; gap:6px; }
.lnd-fechas input[type="date"] { padding:6px 9px; border-radius:8px; border:1px solid var(--border);
  background:var(--bg-2); color:var(--text); font-size:13px; }
.lnd-fechas input[type="date"]:focus { outline:none; border-color:var(--gold-2); }
.lnd-ver-fechas { padding:6px 16px; border-radius:8px; cursor:pointer; font-weight:700; font-size:13px;
  border:none; background:linear-gradient(135deg, var(--gold-3), var(--gold)); color:var(--gold-ink); }
.lnd-ver-fechas:hover { filter:brightness(1.05); }
.lnd-ver-fechas:disabled { opacity:.6; cursor:default; }
.lnd-linkrow { display:flex; gap:8px; align-items:center; flex-wrap:wrap; margin-bottom:8px; }
.lnd-linkrow code { font-size:12px; word-break:break-all; }
.lnd-linkrow a { color:var(--link); text-decoration:none; }

/* recortador de fotos */
.crop-frame { border-radius:12px; overflow:hidden; background:#000; border:1px solid var(--border); }
.crop-cv { display:block; }
.crop-zoomrow { display:flex; align-items:center; gap:10px; margin:14px 0 4px; }
.crop-zoomrow span { font-size:15px; }
.crop-zoom { flex:1; accent-color:var(--gold); }


/* mini-preview de la landing completa en la tarjeta */
.lnd-cardprev { margin:0 14px 4px; border-radius:12px; overflow:hidden; border:1px solid var(--border); background:#0e0d12; position:relative; aspect-ratio:1/2; }
.lnd-prev-if { width:380px; height:760px; border:0; transform-origin:top left; pointer-events:none; display:block; visibility:hidden; }
.lnd-grid { grid-template-columns:repeat(auto-fill,minmax(230px,1fr)); }

/* toggles del diseño arriba, más visibles */
.lnd-toggles-top { border-top:0; padding-top:0; margin-bottom:6px; background:var(--bg-3); border:1px solid var(--border); border-radius:11px; padding:12px 14px; }
.lnd-switch-18 b { color:var(--gold-dk); }

/* barra del botón Desplegar */
.lnd-deploy-bar { display:flex; align-items:center; gap:16px; flex-wrap:wrap; margin-bottom:16px;
  background:linear-gradient(120deg, rgba(61,220,132,.12), rgba(232,167,46,.08));
  border:1px solid var(--border); border-radius:14px; padding:14px 18px; }
.lnd-deploy-t { font-size:15px; font-weight:700; margin-bottom:2px; }
.lnd-deploy-bar button { margin-left:auto; padding:11px 22px; font-weight:700; font-size:14px;
  background:#2ea86a; border:1px solid #2ea86a; color:#fff; border-radius:11px; cursor:pointer; white-space:nowrap; }
.lnd-deploy-bar button:hover:not(:disabled) { filter:brightness(1.06); }
.lnd-deploy-bar button:disabled { opacity:.5; cursor:default; }

/* Permisos agrupados dentro del modal: anular el estilo genérico de .modal-body label */
.modal-body .perm-check, .modal-body .perm-head {
  flex-direction:row; align-items:center; gap:8px; text-transform:none; letter-spacing:0;
}
.modal-body .perm-check { font-size:12.5px; font-weight:500; color:var(--text-2); }
.modal-body .perm-head { font-size:12.5px; font-weight:600; color:var(--text); }
.modal-body .perm-area > .perm-head { text-transform:uppercase; font-size:11px; letter-spacing:.6px; font-weight:700; }
.modal-body .perm-check input, .modal-body .perm-head input { padding:0; width:15px; height:15px; flex:none; }
