/* ═══ ADMIN MODULE STYLES ═══ */

/* ── Tabs ── */
.adm-tabs { display:flex; gap:4px; margin-bottom:20px; background:var(--g50,#f8fafc); padding:4px; border-radius:12px; }
.adm-tab { padding:10px 20px; border-radius:10px; font-size:.85rem; font-weight:700; color:var(--g400,#94a3b8); transition:all .25s; cursor:pointer; }
.adm-tab:hover { color:var(--navy-800,#1e293b); background:rgba(0,0,0,.03); }
.adm-tab.active { background:var(--white,#fff); color:var(--navy-400,#2563eb); box-shadow:0 2px 8px rgba(0,0,0,.06); }

.adm-tab-panel { display:none; }
.adm-tab-panel.active { display:block; }

/* ── Role badge ── */
.adm-role-badge { font-size:.7rem; font-weight:700; padding:3px 10px; border-radius:20px; text-transform:uppercase; letter-spacing:.03em; }
.adm-role-superadmin { background:#ecfdf5; color:#059669; }
.adm-role-admin_regional { background:#eff6ff; color:#2563eb; }

/* ── Sucursales Grid ── */
.adm-suc-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:14px; }
.adm-suc-card { display:flex; align-items:center; gap:14px; padding:18px 20px; border-radius:14px; background:var(--glass-bg,rgba(255,255,255,.72)); backdrop-filter:blur(12px); border:1.5px solid var(--g200,#e2e8f0); transition:all .25s; }
.adm-suc-card:hover { transform:translateY(-2px); box-shadow:0 8px 24px rgba(0,0,0,.06); }
.adm-suc-ok { border-left:4px solid #10b981; }
.adm-suc-overdue { border-left:4px solid #e11d48; }
.adm-suc-icon { width:44px; height:44px; border-radius:12px; background:var(--navy-50,#eff6ff); color:var(--navy-400,#2563eb); display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.adm-suc-overdue .adm-suc-icon { background:#fef2f2; color:#e11d48; }
.adm-suc-info { flex:1; }
.adm-suc-name { display:block; font-size:.92rem; font-weight:800; color:var(--navy-800,#1e293b); }
.adm-suc-status { display:block; font-size:.78rem; font-weight:600; margin-top:2px; }
.adm-suc-date { display:block; font-size:.72rem; color:var(--g400,#94a3b8); margin-top:1px; }

/* ── Detalles ── */
.adm-det-section { margin-bottom:24px; }
.adm-det-suc-title { font-size:.92rem; font-weight:800; color:var(--navy-800,#1e293b); margin:0 0 10px; padding-bottom:8px; border-bottom:1.5px solid var(--g100,#f1f5f9); }
.adm-det-count { font-weight:500; color:var(--g400,#94a3b8); }
.adm-det-list { display:flex; flex-direction:column; gap:8px; }
.adm-det-item { display:flex; align-items:center; gap:12px; padding:12px 16px; border-radius:10px; background:var(--g50,#f8fafc); border:1px solid var(--g100,#f1f5f9); }
.adm-det-file-icon { width:36px; height:36px; border-radius:8px; background:#ecfdf5; color:#059669; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.adm-det-file-info { flex:1; min-width:0; }
.adm-det-file-name { display:block; font-size:.85rem; font-weight:700; color:var(--navy-800,#1e293b); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.adm-det-file-meta { display:block; font-size:.72rem; color:var(--g400,#94a3b8); margin-top:2px; }
.adm-det-download { padding:7px 16px; border-radius:8px; font-size:.8rem; font-weight:700; color:var(--navy-400,#2563eb); background:var(--navy-50,#eff6ff); border:1.5px solid rgba(37,99,235,.15); cursor:pointer; transition:all .2s; white-space:nowrap; }
.adm-det-download:hover { background:rgba(37,99,235,.1); border-color:var(--navy-400); }
.adm-det-empty { font-size:.82rem; color:var(--g400,#94a3b8); padding:12px 0; }

/* ── Clients filter ── */
.adm-clients-header { display:flex; align-items:center; justify-content:space-between; margin-bottom:16px; }
.adm-clients-header h3 { margin:0; }
.adm-add-client-btn {
  padding:10px 20px; border-radius:10px; font-size:.82rem; font-weight:700;
  color:#fff; background:linear-gradient(135deg,#2563eb,#3b82f6); border:none;
  cursor:pointer; transition:all .25s; white-space:nowrap;
}
.adm-add-client-btn:hover { background:linear-gradient(135deg,#1d4ed8,#2563eb); transform:translateY(-1px); box-shadow:0 4px 12px rgba(37,99,235,.25); }
.adm-filter-bar { display:flex; gap:6px; flex-wrap:wrap; margin-bottom:16px; }
.adm-filter-btn { padding:6px 14px; border-radius:8px; font-size:.78rem; font-weight:600; color:var(--g400,#94a3b8); background:var(--g50,#f8fafc); border:1px solid var(--g200,#e2e8f0); cursor:pointer; transition:all .2s; }
.adm-filter-btn.active { background:var(--navy-400,#2563eb); color:white; border-color:var(--navy-400); }
.adm-suc-pill { font-size:.72rem; font-weight:700; padding:3px 10px; border-radius:20px; background:var(--navy-50,#eff6ff); color:var(--navy-400,#2563eb); }

/* ── Passwords ── */
.adm-pw-section { margin-bottom:24px; }
.adm-pw-section h4 { font-size:.88rem; font-weight:800; color:var(--navy-800); margin:0 0 12px; }
.adm-pw-list { display:flex; flex-direction:column; gap:8px; }
.adm-pw-item { display:flex; align-items:center; justify-content:space-between; padding:12px 16px; border-radius:10px; background:var(--g50,#f8fafc); border:1px solid var(--g100,#f1f5f9); }
.adm-pw-item-name { display:block; font-size:.85rem; font-weight:700; color:var(--navy-800); }
.adm-pw-item-sub { display:block; font-size:.72rem; color:var(--g400); margin-top:1px; }
.adm-pw-item-btn { padding:6px 14px; border-radius:8px; font-size:.78rem; font-weight:700; color:#e11d48; background:#fef2f2; border:1.5px solid rgba(225,29,72,.12); cursor:pointer; transition:all .2s; }
.adm-pw-item-btn:hover { background:rgba(225,29,72,.08); border-color:#e11d48; }
.adm-pw-search-wrap { margin-bottom:12px; }
.adm-pw-search { width:100%; padding:10px 14px; border:1.5px solid var(--g200); border-radius:10px; font-size:.85rem; outline:none; transition:all .25s; }
.adm-pw-search:focus { border-color:var(--navy-400); box-shadow:0 0 0 3px rgba(37,99,235,.08); }
.adm-pw-hint { font-size:.82rem; color:var(--g400); text-align:center; padding:16px; }

/* Password Modal */
.adm-pw-modal { position:fixed; inset:0; background:rgba(0,0,0,.5); display:flex; align-items:center; justify-content:center; z-index:9999; }
.adm-pw-modal-card { background:white; border-radius:16px; padding:28px; width:380px; max-width:90vw; box-shadow:0 20px 60px rgba(0,0,0,.15); }
.adm-pw-modal-card h4 { margin:0 0 4px; font-size:1rem; font-weight:800; color:var(--navy-800); }
.adm-pw-modal-email { font-size:.82rem; color:var(--g400); margin:0 0 20px; }
.adm-pw-field { margin-bottom:12px; }
.adm-pw-field label { display:block; font-size:.74rem; font-weight:700; color:var(--g500); text-transform:uppercase; letter-spacing:.04em; margin-bottom:4px; }
.adm-pw-field input { width:100%; padding:10px 14px; border:1.5px solid var(--g200); border-radius:10px; font-size:.88rem; outline:none; }
.adm-pw-field input:focus { border-color:var(--navy-400); box-shadow:0 0 0 3px rgba(37,99,235,.08); }
.adm-pw-status { display:block; font-size:.82rem; font-weight:600; margin-bottom:12px; min-height:20px; }
.adm-pw-modal-btns { display:flex; gap:8px; justify-content:flex-end; }
.adm-pw-cancel { padding:10px 20px; border-radius:10px; font-size:.85rem; font-weight:600; color:var(--g500); background:var(--g50); border:1px solid var(--g200); cursor:pointer; }
.adm-pw-save { padding:10px 20px; border-radius:10px; font-size:.85rem; font-weight:700; color:white; background:#e11d48; cursor:pointer; transition:all .2s; }
.adm-pw-save:hover { background:#be123c; }

/* ── Upload Enforcement Banner ── */
.upload-enforce-banner { background:linear-gradient(135deg,#fff7ed,#fef2f2); border-bottom:2px solid #f59e0b; padding:12px 24px; }
.upload-enforce-content { display:flex; align-items:center; gap:12px; max-width:1200px; margin:0 auto; }
.upload-enforce-content svg { color:#f59e0b; flex-shrink:0; }
.upload-enforce-content span { flex:1; font-size:.85rem; font-weight:600; color:#92400e; }
.upload-enforce-btn { padding:8px 20px; border-radius:8px; font-size:.82rem; font-weight:700; color:white; background:#f59e0b; cursor:pointer; white-space:nowrap; transition:all .2s; }
.upload-enforce-btn:hover { background:#d97706; }
.upload-enforce-dismiss { width:28px; height:28px; border-radius:6px; display:flex; align-items:center; justify-content:center; color:#92400e; cursor:pointer; font-size:.9rem; }
.upload-enforce-dismiss:hover { background:rgba(0,0,0,.05); }

/* ── Upload Modal ── */
.adm-modal-overlay { position:fixed; inset:0; background:rgba(6,8,15,.6); display:flex; align-items:center; justify-content:center; z-index:9999; opacity:0; transition:opacity .3s; }
.adm-modal-overlay.active { opacity:1; }
.adm-modal-card { background:white; border-radius:20px; width:480px; max-width:90vw; overflow:hidden; box-shadow:0 20px 60px rgba(0,0,0,.2); }
.adm-modal-header { padding:20px 24px; background:var(--navy-50,#eff6ff); border-bottom:1px solid var(--g200); display:flex; align-items:center; gap:12px; }
.adm-modal-header h3 { margin:0; font-size:1rem; font-weight:800; color:var(--navy-800); flex:1; }
.adm-modal-suc { font-size:.72rem; font-weight:700; padding:3px 10px; border-radius:20px; background:var(--navy-400); color:white; }
.adm-modal-close { width:32px; height:32px; border-radius:8px; display:flex; align-items:center; justify-content:center; color:var(--g400); cursor:pointer; }
.adm-modal-close:hover { background:rgba(0,0,0,.05); }
.adm-modal-body { padding:24px; }
.adm-upload-drop { border:2px dashed var(--g300,#cbd5e1); border-radius:14px; padding:40px 20px; text-align:center; cursor:pointer; transition:all .25s; }
.adm-upload-drop:hover, .adm-upload-drop.dragover { border-color:var(--navy-400); background:var(--navy-50); }
.adm-upload-drop svg { color:var(--g300); margin-bottom:12px; }
.adm-upload-drop p { margin:0; font-size:.88rem; font-weight:600; color:var(--navy-800); }
.adm-upload-drop span { font-size:.74rem; color:var(--g400); }
.adm-upload-status { margin-top:16px; display:flex; align-items:center; gap:8px; font-size:.85rem; }

/* ── Shared ── */
.adm-loading { display:flex; align-items:center; gap:10px; padding:30px; justify-content:center; color:var(--g400); font-size:.85rem; }
.adm-empty { text-align:center; padding:24px; color:var(--g400); font-size:.85rem; }
.adm-error { text-align:center; padding:16px; color:#e11d48; font-size:.85rem; }
.adm-table-wrap { overflow-x:auto; }

/* ── Dark mode ── */
:root.dark-mode .adm-tab { color:#9ca3af; }
:root.dark-mode .adm-tab.active { background:#1f2937; color:#60a5fa; }
:root.dark-mode .adm-tabs { background:#111827; }
:root.dark-mode .adm-suc-card { background:rgba(17,24,39,.85); border-color:#374151; }
:root.dark-mode .adm-suc-name { color:#f3f4f6; }
:root.dark-mode .adm-det-item { background:#1f2937; border-color:#374151; }
:root.dark-mode .adm-det-file-name { color:#f3f4f6; }
:root.dark-mode .adm-pw-modal-card { background:#1f2937; }
:root.dark-mode .adm-pw-modal-card h4 { color:#f3f4f6; }
:root.dark-mode .adm-pw-field input { background:#111827; color:#f3f4f6; border-color:#374151; }
:root.dark-mode .adm-modal-card { background:#1f2937; }
:root.dark-mode .adm-modal-header { background:rgba(37,99,235,.05); border-color:#374151; }
:root.dark-mode .upload-enforce-banner { background:linear-gradient(135deg,#1f2937,#292524); border-color:#92400e; }
:root.dark-mode .upload-enforce-content span { color:#fbbf24; }

@media (max-width:768px) {
  .adm-suc-grid { grid-template-columns:1fr; }
  .adm-tabs { flex-wrap:wrap; }
  .adm-pw-modal-card { width:95vw; }
  .upload-enforce-content { flex-wrap:wrap; }
}

/* ═══════════════════════════════════════════
   ANALYTICS DASHBOARD STYLES
   ═══════════════════════════════════════════ */

/* Selected card */
.adm-suc-card.adm-suc-selected { border-color:var(--navy-400,#2563eb); box-shadow:0 4px 20px rgba(37,99,235,.12); }
.adm-suc-arrow { color:var(--g300,#cbd5e1); transition:all .25s; flex-shrink:0; }
.adm-suc-card.adm-suc-selected .adm-suc-arrow { color:var(--navy-400,#2563eb); transform:rotate(90deg); }

/* Analytics Container */
.adm-analytics { margin-top:24px; animation:fu .4s var(--ease) both; }
.anl-header { display:flex; align-items:center; justify-content:space-between; margin-bottom:16px; flex-wrap:wrap; gap:8px; }
.anl-title { font-size:1.1rem; font-weight:800; color:var(--navy-800,#1e293b); margin:0; }
.anl-period { font-size:.78rem; font-weight:600; color:var(--g400,#94a3b8); background:var(--g50,#f8fafc); padding:4px 12px; border-radius:20px; }
.anl-filter-note { font-size:.78rem; font-weight:700; color:#f59e0b; background:#fffbeb; padding:4px 12px; border-radius:20px; border:1px solid rgba(245,158,11,.2); }

/* Filter Bar */
.anl-filter-bar {
  display:flex; flex-wrap:wrap; gap:10px; align-items:flex-end;
  background:var(--glass-bg,rgba(255,255,255,.85)); backdrop-filter:blur(12px);
  border:1.5px solid var(--g200,#e2e8f0); border-radius:14px;
  padding:14px 18px; margin-bottom:20px;
}
.anl-filter-group { display:flex; flex-direction:column; gap:3px; }
.anl-filter-group label { font-size:.68rem; font-weight:700; color:var(--g500,#64748b); text-transform:uppercase; letter-spacing:.03em; }
.anl-filter-group select, .anl-filter-group input {
  padding:7px 10px; border:1.5px solid var(--g200,#e2e8f0); border-radius:8px;
  font-size:.82rem; font-weight:500; color:var(--navy-800,#1e293b);
  background:var(--white,#fff); outline:none; transition:all .2s;
  min-width:110px;
}
.anl-filter-group select:focus, .anl-filter-group input:focus { border-color:var(--navy-400,#2563eb); box-shadow:0 0 0 3px rgba(37,99,235,.06); }
.anl-filter-actions { display:flex; gap:8px; align-items:flex-end; margin-left:auto; }
.anl-f-clear {
  padding:7px 14px; border-radius:8px; font-size:.78rem; font-weight:600;
  color:var(--g500,#64748b); border:1.5px solid var(--g200,#e2e8f0);
  background:var(--white,#fff); cursor:pointer; transition:all .2s;
}
.anl-f-clear:hover { background:#fef2f2; color:#e11d48; border-color:rgba(225,29,72,.2); }
.anl-f-pdf {
  padding:7px 14px; border-radius:8px; font-size:.78rem; font-weight:700;
  color:#fff; background:var(--navy-400,#2563eb); cursor:pointer;
  border:none; transition:all .2s;
}
.anl-f-pdf:hover { background:var(--navy-600,#1e4d78); }
.anl-f-pdf:disabled { opacity:.5; cursor:wait; }

/* KPI Cards */
.anl-kpis { display:grid; grid-template-columns:repeat(auto-fit,minmax(170px,1fr)); gap:12px; margin-bottom:24px; }
.anl-kpi {
  display:flex; align-items:center; gap:12px;
  padding:16px 18px; border-radius:14px;
  background:var(--glass-bg,rgba(255,255,255,.85)); backdrop-filter:blur(12px);
  border:1.5px solid var(--g200,#e2e8f0);
  transition:all .25s;
}
.anl-kpi:hover { transform:translateY(-2px); box-shadow:0 8px 24px rgba(0,0,0,.06); }
.anl-kpi-icon { font-size:1.4rem; flex-shrink:0; }
.anl-kpi-data { display:flex; flex-direction:column; min-width:0; }
.anl-kpi-value { font-size:1.15rem; font-weight:800; color:var(--navy-800,#1e293b); font-family:var(--mono,monospace); }
.anl-kpi-label { font-size:.72rem; font-weight:700; color:var(--g500,#64748b); text-transform:uppercase; letter-spacing:.03em; }
.anl-kpi-sub { font-size:.72rem; color:var(--g400,#94a3b8); margin-top:1px; }

/* Color accents for KPIs */
.anl-kpi-green { border-left:4px solid #10b981; }
.anl-kpi-blue { border-left:4px solid #2a6da8; }
.anl-kpi-navy { border-left:4px solid #1e4d78; }
.anl-kpi-amber { border-left:4px solid #f59e0b; }
.anl-kpi-purple { border-left:4px solid #8b5cf6; }
.anl-kpi-red { border-left:4px solid #e11d48; }

/* Chart Cards */
.anl-charts-row { display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-bottom:16px; }
.anl-charts-row-3 { grid-template-columns:1fr 1fr 1fr; }
.anl-chart-card {
  background:var(--glass-bg,rgba(255,255,255,.85)); backdrop-filter:blur(12px);
  border:1.5px solid var(--g200,#e2e8f0); border-radius:14px;
  padding:18px; position:relative; overflow:hidden;
  transition:all .25s;
}
.anl-chart-card:hover { box-shadow:0 4px 16px rgba(0,0,0,.05); }
.anl-chart-card.anl-chart-wide { grid-column:span 1; }
.anl-chart-title { font-size:.82rem; font-weight:700; color:var(--navy-800,#1e293b); margin-bottom:14px; }
.anl-chart-wrap { position:relative; height:220px; }

/* Top Lists */
.anl-top-list { max-height:300px; overflow-y:auto; }
.anl-top-item {
  display:flex; align-items:center; gap:10px;
  padding:8px 0; border-bottom:1px solid var(--g100,#f1f5f9);
}
.anl-top-item:last-child { border-bottom:none; }
.anl-top-rank { width:22px; height:22px; border-radius:6px; background:var(--g100,#f1f5f9); color:var(--g500,#64748b); font-size:.72rem; font-weight:800; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.anl-top-item:nth-child(1) .anl-top-rank { background:linear-gradient(135deg,#f59e0b,#fbbf24); color:white; }
.anl-top-item:nth-child(2) .anl-top-rank { background:linear-gradient(135deg,#94a3b8,#cbd5e1); color:white; }
.anl-top-item:nth-child(3) .anl-top-rank { background:linear-gradient(135deg,#d97706,#f59e0b); color:white; }
.anl-top-info { flex:1; min-width:0; }
.anl-top-name { display:block; font-size:.78rem; font-weight:700; color:var(--navy-800,#1e293b); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.anl-top-bar { height:4px; background:var(--g100,#f1f5f9); border-radius:4px; margin-top:4px; overflow:hidden; }
.anl-top-bar-fill { height:100%; background:linear-gradient(90deg,#10b981,#34d399); border-radius:4px; transition:width .6s ease; }
.anl-top-bar-fill.anl-bar-blue { background:linear-gradient(90deg,#2a6da8,#60a5fa); }
.anl-top-vals { text-align:right; flex-shrink:0; }
.anl-top-gross { display:block; font-size:.8rem; font-weight:800; color:var(--navy-800,#1e293b); font-family:var(--mono,monospace); }
.anl-top-count { display:block; font-size:.68rem; color:var(--g400,#94a3b8); }

/* Analytics Empty State */
.adm-analytics-empty { text-align:center; padding:48px 24px; }
.adm-analytics-empty-icon { font-size:3rem; opacity:.4; margin-bottom:8px; }
.adm-analytics-empty h4 { font-weight:800; color:var(--g500,#64748b); margin:0 0 4px; }
.adm-analytics-empty p { color:var(--g400,#94a3b8); font-size:.85rem; max-width:400px; margin:0 auto; }

/* ── Dark mode analytics — COMPLETE ── */
:root.dark-mode .anl-kpi { background:rgba(17,24,39,.85); border-color:#374151; }
:root.dark-mode .anl-kpi-value { color:#f3f4f6; }
:root.dark-mode .anl-kpi-label { color:#9ca3af; }
:root.dark-mode .anl-kpi-sub { color:#6b7280; }
:root.dark-mode .anl-chart-card { background:rgba(17,24,39,.85); border-color:#374151; }
:root.dark-mode .anl-chart-card:hover { box-shadow:0 4px 16px rgba(0,0,0,.3); }
:root.dark-mode .anl-chart-title { color:#f3f4f6; }
:root.dark-mode .anl-top-name { color:#f3f4f6; }
:root.dark-mode .anl-top-gross { color:#f3f4f6; }
:root.dark-mode .anl-top-rank { background:#374151; color:#9ca3af; }
:root.dark-mode .anl-top-bar { background:#374151; }
:root.dark-mode .anl-top-item { border-color:#1f2937; }
:root.dark-mode .adm-suc-card.adm-suc-selected { border-color:#60a5fa; box-shadow:0 4px 20px rgba(96,165,250,.15); }
:root.dark-mode .anl-filter-bar { background:rgba(17,24,39,.85); border-color:#374151; }
:root.dark-mode .anl-filter-group label { color:#9ca3af; }
:root.dark-mode .anl-filter-group select,
:root.dark-mode .anl-filter-group input { background:#111827; color:#f3f4f6; border-color:#374151; }
:root.dark-mode .anl-filter-group select:focus,
:root.dark-mode .anl-filter-group input:focus { border-color:#60a5fa; box-shadow:0 0 0 3px rgba(96,165,250,.1); }
:root.dark-mode .anl-f-clear { background:#1f2937; color:#9ca3af; border-color:#374151; }
:root.dark-mode .anl-f-clear:hover { background:#292524; color:#f87171; border-color:rgba(248,113,113,.2); }
:root.dark-mode .anl-f-pdf { background:#2563eb; }
:root.dark-mode .anl-f-pdf:hover { background:#1d4ed8; }
:root.dark-mode .anl-title { color:#f3f4f6; }
:root.dark-mode .anl-period { background:#1f2937; color:#9ca3af; }
:root.dark-mode .anl-filter-note { background:rgba(245,158,11,.1); color:#fbbf24; border-color:rgba(245,158,11,.15); }
:root.dark-mode .adm-analytics-empty h4 { color:#9ca3af; }
:root.dark-mode .adm-analytics-empty p { color:#6b7280; }
:root.dark-mode .anl-suc-arrow { color:#4b5563; }

/* ── Responsive analytics ── */
@media (max-width:1024px) {
  .anl-charts-row, .anl-charts-row-3 { grid-template-columns:1fr; }
  .anl-chart-card.anl-chart-wide { grid-column:span 1; }
  .anl-filter-bar { flex-direction:column; }
  .anl-filter-actions { margin-left:0; width:100%; justify-content:flex-end; }
}
@media (max-width:640px) {
  .anl-kpis { grid-template-columns:1fr 1fr; }
  .anl-chart-wrap { height:180px; }
}

/* ═══ CUMPLIMIENTO / COMPLIANCE PANEL ═══ */
.adm-cumpl-header { margin-bottom:20px; }
.adm-cumpl-header h3 { font-size:1.1rem; font-weight:800; color:var(--navy-800,#1e293b); margin:0 0 6px; }
.adm-cumpl-sub { font-size:.82rem; color:var(--g400,#94a3b8); margin:0 0 16px; }
.adm-cumpl-summary { display:flex; gap:10px; flex-wrap:wrap; }
.adm-cumpl-badge {
  display:inline-flex; align-items:center; gap:4px;
  padding:8px 16px; border-radius:10px;
  font-size:.85rem; font-weight:700;
}
.adm-cumpl-grid {
  display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr));
  gap:14px;
}
.adm-cumpl-card {
  background:var(--glass-bg,rgba(255,255,255,.85)); backdrop-filter:blur(12px);
  border:1.5px solid var(--g200,#e2e8f0); border-radius:14px;
  padding:18px 20px; transition:all .25s;
}
.adm-cumpl-card:hover { transform:translateY(-2px); box-shadow:0 8px 24px rgba(0,0,0,.06); }
.adm-cumpl-card-top { display:flex; align-items:center; gap:12px; margin-bottom:8px; }
.adm-cumpl-icon { font-size:1.5rem; flex-shrink:0; }
.adm-cumpl-suc { display:block; font-size:.92rem; font-weight:800; color:var(--navy-800,#1e293b); }
.adm-cumpl-label { display:block; font-size:.78rem; font-weight:700; margin-top:2px; }
.adm-cumpl-card-bottom { padding-top:8px; border-top:1px solid var(--g100,#f1f5f9); }
.adm-cumpl-date { font-size:.75rem; color:var(--g400,#94a3b8); font-weight:600; }

:root.dark-mode .adm-cumpl-card { background:rgba(17,24,39,.85); border-color:#374151; }
:root.dark-mode .adm-cumpl-card:hover { box-shadow:0 8px 24px rgba(0,0,0,.3); }
:root.dark-mode .adm-cumpl-suc { color:#f3f4f6; }
:root.dark-mode .adm-cumpl-card-bottom { border-color:#1f2937; }
:root.dark-mode .adm-cumpl-header h3 { color:#f3f4f6; }

/* ── Excel Export (Clientes) ── */
.adm-excel-export {
  background:var(--glass-bg,rgba(255,255,255,.85)); backdrop-filter:blur(12px);
  border:1.5px solid var(--g200,#e2e8f0); border-radius:14px;
  padding:18px 20px; margin-bottom:18px;
}
.adm-excel-export-title { font-size:.88rem; font-weight:800; color:var(--navy-800,#1e293b); margin-bottom:12px; }
.adm-excel-export-row { display:flex; gap:12px; flex-wrap:wrap; align-items:flex-end; }
.adm-excel-export-row .anl-filter-group { flex:1; min-width:140px; }
.adm-excel-export-row .anl-filter-group label { display:block; font-size:.72rem; font-weight:700; color:var(--g500,#64748b); text-transform:uppercase; letter-spacing:.04em; margin-bottom:4px; }
.adm-excel-export-row .anl-filter-group input,
.adm-excel-export-row .anl-filter-group select {
  width:100%; padding:8px 12px; border:1.5px solid var(--g200,#e2e8f0); border-radius:8px;
  font-size:.82rem; outline:none; transition:all .2s; background:var(--white,#fff);
  color:var(--navy-800,#1e293b);
}
.adm-excel-export-row .anl-filter-group input:focus,
.adm-excel-export-row .anl-filter-group select:focus { border-color:var(--navy-400,#2563eb); box-shadow:0 0 0 3px rgba(37,99,235,.08); }
.adm-excel-btn {
  padding:10px 22px; border-radius:10px; font-size:.82rem; font-weight:700;
  color:white; background:linear-gradient(135deg,#059669,#10b981); border:none;
  cursor:pointer; transition:all .2s; white-space:nowrap; flex-shrink:0;
}
.adm-excel-btn:hover { background:linear-gradient(135deg,#047857,#059669); transform:translateY(-1px); box-shadow:0 4px 12px rgba(5,150,105,.25); }
.adm-excel-btn:disabled { opacity:.6; cursor:wait; transform:none; box-shadow:none; }
.adm-excel-status { display:block; font-size:.78rem; font-weight:600; margin-top:10px; min-height:18px; }

:root.dark-mode .adm-excel-export { background:rgba(17,24,39,.85); border-color:#374151; }
:root.dark-mode .adm-excel-export-title { color:#f3f4f6; }
:root.dark-mode .adm-excel-export-row .anl-filter-group input,
:root.dark-mode .adm-excel-export-row .anl-filter-group select { background:#111827; color:#f3f4f6; border-color:#374151; }
:root.dark-mode .adm-excel-export-row .anl-filter-group input:focus,
:root.dark-mode .adm-excel-export-row .anl-filter-group select:focus { border-color:#60a5fa; box-shadow:0 0 0 3px rgba(96,165,250,.1); }
:root.dark-mode .adm-excel-export-row .anl-filter-group label { color:#9ca3af; }

@media (max-width:640px) {
  .adm-excel-export-row { flex-direction:column; }
  .adm-excel-export-row .anl-filter-group { min-width:100%; }
}

@media (max-width:640px) {
  .adm-cumpl-grid { grid-template-columns:1fr; }
  .adm-cumpl-summary { flex-direction:column; }
}

/* ══════════════════════════════════════════
   MULTI-SUCURSAL SELECTOR
   ══════════════════════════════════════════ */
.adm-multi-suc-bar {
  display:flex; align-items:center; gap:16px; padding:16px 20px;
  background:linear-gradient(135deg,#f0f4ff 0%,#e8f0fe 100%);
  border:1px solid #c7d2fe; border-radius:14px; margin-bottom:16px;
}
:root.dark-mode .adm-multi-suc-bar { background:linear-gradient(135deg,#1e293b 0%,#0f172a 100%); border-color:#334155; }

.adm-multi-suc-label {
  display:flex; align-items:center; gap:8px; font-weight:600; font-size:.88rem; color:#3730a3; white-space:nowrap;
}
:root.dark-mode .adm-multi-suc-label { color:#93c5fd; }
.adm-multi-suc-label svg { color:#4f46e5; }
:root.dark-mode .adm-multi-suc-label svg { color:#818cf8; }

.adm-multi-suc-select-wrap { position:relative; flex:1; min-width:220px; }

.adm-multi-suc-toggle {
  display:flex; align-items:center; justify-content:space-between; width:100%;
  padding:10px 14px; background:#fff; border:1.5px solid #c7d2fe; border-radius:10px;
  font-size:.86rem; font-weight:500; color:#1e293b; cursor:pointer; transition:all .2s;
}
.adm-multi-suc-toggle:hover { border-color:#6366f1; box-shadow:0 0 0 3px rgba(99,102,241,.1); }
:root.dark-mode .adm-multi-suc-toggle { background:#1e293b; color:#e2e8f0; border-color:#475569; }
:root.dark-mode .adm-multi-suc-toggle:hover { border-color:#818cf8; box-shadow:0 0 0 3px rgba(129,140,248,.15); }

.adm-multi-suc-dropdown {
  position:absolute; top:calc(100% + 6px); left:0; right:0; z-index:50;
  background:#fff; border:1.5px solid #c7d2fe; border-radius:12px;
  box-shadow:0 10px 40px rgba(0,0,0,.12); padding:8px;
  display:none; max-height:260px; overflow-y:auto;
}
.adm-multi-suc-dropdown.open { display:block; }
:root.dark-mode .adm-multi-suc-dropdown { background:#1e293b; border-color:#475569; box-shadow:0 10px 40px rgba(0,0,0,.4); }

.adm-multi-suc-option {
  display:flex; align-items:center; gap:10px; padding:9px 12px; border-radius:8px;
  cursor:pointer; font-size:.85rem; font-weight:500; color:#334155; transition:background .15s;
}
.adm-multi-suc-option:hover { background:#f1f5f9; }
:root.dark-mode .adm-multi-suc-option { color:#d1d5db; }
:root.dark-mode .adm-multi-suc-option:hover { background:#334155; }
.adm-multi-suc-option:first-child { margin-top:2px; }

.adm-multi-suc-option input[type="checkbox"] {
  width:16px; height:16px; accent-color:#4f46e5; cursor:pointer;
}

.adm-multi-suc-actions {
  display:flex; justify-content:space-between; align-items:center; padding:8px 4px 4px; border-top:1px solid #e2e8f0; margin-top:4px; gap:8px;
}
:root.dark-mode .adm-multi-suc-actions { border-color:#374151; }

.adm-multi-suc-apply {
  padding:8px 20px; border:none; border-radius:8px;
  background:linear-gradient(135deg,#4f46e5,#6366f1); color:#fff;
  font-weight:600; font-size:.82rem; cursor:pointer; transition:all .2s;
}
.adm-multi-suc-apply:hover { transform:translateY(-1px); box-shadow:0 4px 12px rgba(99,102,241,.3); }

.adm-multi-suc-select-all {
  padding:8px 14px; border:1.5px solid #c7d2fe; border-radius:8px;
  background:#f8fafc; color:#4338ca; font-weight:600; font-size:.8rem;
  cursor:pointer; transition:all .2s;
}
.adm-multi-suc-select-all:hover { background:#e8f0fe; border-color:#818cf8; }
:root.dark-mode .adm-multi-suc-select-all { background:#1e293b; color:#a5b4fc; border-color:#475569; }
:root.dark-mode .adm-multi-suc-select-all:hover { background:#334155; }

/* Cards in multi-select mode — show arrow for clickable cards */
.adm-suc-card .adm-suc-arrow { transition: transform .2s; }
.adm-suc-card:hover .adm-suc-arrow { transform: translateX(3px); }

/* ══════════════════════════════════════════
   FACTURACIÓN TAB
   ══════════════════════════════════════════ */
.adm-fact-export {
  border-color:#d4a574; background:linear-gradient(135deg,#fffbf0 0%,#fff7ed 100%);
}
:root.dark-mode .adm-fact-export { background:linear-gradient(135deg,#1c1917 0%,#1a1410 100%); border-color:#92400e; }

.adm-fact-preview {
  margin-top:12px; min-height:20px;
}

@media (max-width:640px) {
  .adm-multi-suc-bar { flex-direction:column; align-items:stretch; }
  .adm-multi-suc-select-wrap { min-width:100%; }
}
/* ══════════════════════════════════════════
   TOGGLE ACTIVAR/DESACTIVAR CLIENTE
   ══════════════════════════════════════════ */
.adm-toggle {
  position: relative;
  display: inline-block;
  width: 42px;
  height: 22px;
  cursor: pointer;
  vertical-align: middle;
}
.adm-toggle input {
  opacity: 0;
  width: 0;
  height: 0;
  position: absolute;
}
.adm-toggle-slider {
  position: absolute;
  inset: 0;
  background: var(--g300, #cbd5e1);
  border-radius: 22px;
  transition: background-color .25s ease;
}
.adm-toggle-slider::before {
  content: "";
  position: absolute;
  height: 16px;
  width: 16px;
  left: 3px;
  top: 3px;
  background: #fff;
  border-radius: 50%;
  transition: transform .25s ease, box-shadow .25s ease;
  box-shadow: 0 1px 3px rgba(0,0,0,.2);
}
.adm-toggle input:checked + .adm-toggle-slider {
  background: #16a34a;
}
.adm-toggle input:checked + .adm-toggle-slider::before {
  transform: translateX(20px);
}
.adm-toggle input:focus-visible + .adm-toggle-slider {
  box-shadow: 0 0 0 3px rgba(37, 99, 235, .25);
}
.adm-toggle input:disabled + .adm-toggle-slider {
  opacity: .6;
  cursor: wait;
}
.adm-toggle.adm-toggle-loading .adm-toggle-slider::before {
  animation: adm-toggle-pulse .8s ease-in-out infinite;
}
@keyframes adm-toggle-pulse {
  0%, 100% { opacity: 1; }
  50% { opacity: .4; }
}
.adm-toggle-readonly {
  display: inline-block;
  opacity: .55;
  cursor: not-allowed;
  font-size: 1rem;
}

/* ══════════════════════════════════════════
   MODAL DE CONFIRMACIÓN (genérico)
   ══════════════════════════════════════════ */
.adm-confirm-overlay {
  position: fixed;
  inset: 0;
  background: rgba(15, 23, 42, .55);
  backdrop-filter: blur(3px);
  z-index: 10000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  animation: admConfirmFadeIn .18s ease-out;
}
@keyframes admConfirmFadeIn {
  from { opacity: 0; }
  to   { opacity: 1; }
}
.adm-confirm-panel {
  background: var(--bg-card, #fff);
  color: var(--text-primary, #1e293b);
  border-radius: 14px;
  box-shadow: 0 20px 60px rgba(0,0,0,.35);
  width: 100%;
  max-width: 440px;
  overflow: hidden;
  animation: admConfirmPop .22s cubic-bezier(.34,1.56,.64,1);
  border: 1px solid var(--border-color, #e2e8f0);
}
@keyframes admConfirmPop {
  from { transform: scale(.92); opacity: 0; }
  to   { transform: scale(1);    opacity: 1; }
}
.adm-confirm-header {
  padding: 20px 22px 12px;
  display: flex;
  align-items: center;
  gap: 12px;
}
.adm-confirm-icon {
  font-size: 1.8rem;
  line-height: 1;
}
.adm-confirm-title {
  margin: 0;
  font-size: 1.15rem;
  font-weight: 800;
  color: var(--text-primary, #1e293b);
}
.adm-confirm-body {
  padding: 0 22px 18px;
  font-size: .92rem;
  line-height: 1.5;
  color: var(--text-primary, #334155);
}
.adm-confirm-body p { margin: 0 0 10px; }
.adm-confirm-body p:last-child { margin-bottom: 0; }
.adm-confirm-hint {
  font-size: .82rem;
  color: var(--text-secondary, #64748b);
  background: var(--g50, #f8fafc);
  border-left: 3px solid #f59e0b;
  padding: 8px 12px;
  border-radius: 6px;
}
.adm-confirm-actions {
  padding: 14px 22px 20px;
  display: flex;
  gap: 10px;
  justify-content: flex-end;
}
.adm-confirm-btn {
  padding: 9px 18px;
  border-radius: 8px;
  border: none;
  font-size: .88rem;
  font-weight: 700;
  cursor: pointer;
  transition: transform .12s, box-shadow .12s, background .18s;
}
.adm-confirm-btn:active { transform: translateY(1px); }
.adm-confirm-cancel {
  background: var(--g100, #f1f5f9);
  color: var(--text-primary, #1e293b);
}
.adm-confirm-cancel:hover { background: var(--g200, #e2e8f0); }
.adm-confirm-danger {
  background: linear-gradient(135deg, #dc2626, #b91c1c);
  color: #fff;
  box-shadow: 0 2px 6px rgba(220,38,38,.35);
}
.adm-confirm-danger:hover {
  box-shadow: 0 4px 12px rgba(220,38,38,.45);
}
.adm-confirm-btn:focus-visible {
  outline: 3px solid rgba(37, 99, 235, .35);
  outline-offset: 2px;
}

/* Dark mode overrides (activados por [data-theme="dark"] o .dark-mode según tu theme-v2.css) */
[data-theme="dark"] .adm-toggle-slider,
.dark-mode .adm-toggle-slider {
  background: #475569;
}
[data-theme="dark"] .adm-confirm-hint,
.dark-mode .adm-confirm-hint {
  background: rgba(245, 158, 11, .08);
  color: #cbd5e1;
}
[data-theme="dark"] .adm-confirm-cancel,
.dark-mode .adm-confirm-cancel {
  background: #334155;
  color: #e2e8f0;
}
[data-theme="dark"] .adm-confirm-cancel:hover,
.dark-mode .adm-confirm-cancel:hover {
  background: #475569;
}