/* Paneles / tarjetas */
.panel { margin-top:14px; padding:18px; background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-md); box-shadow:none; }
.panel-head { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; margin-bottom:14px; }
.panel-head h2 { font-size:14px; }
.panel-head p { margin:4px 0 0; max-width:720px; color:var(--muted); font-size:10px; }

/* KPIs */
.kpi-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); gap:10px; margin-top:10px; }
.kpi { position:relative; min-height:104px; padding:18px 18px 15px; overflow:hidden; background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-sm); }
.kpi::before { content:""; position:absolute; inset:0 auto 0 0; width:2px; background:transparent; }
.kpi:first-child::before { background:var(--red); }
.kpi .label { color:var(--gray-600); font-size:8px; font-weight:700; text-transform:uppercase; letter-spacing:.08em; }
.kpi .value { display:block; margin-top:9px; color:var(--ink); font-size:30px; font-weight:700; line-height:1; letter-spacing:-.04em; }
.kpi .note { margin-top:8px; color:var(--gray-500); font-size:9px; }
.executive-kpis .kpi { background:linear-gradient(180deg,var(--white) 0%,var(--gray-50) 100%); }

/* Sesión / topbar */
.session-badge { display:inline-flex; align-items:center; gap:7px; height:32px; padding:0 10px 0 4px; background:var(--white); border:1px solid var(--border); border-radius:999px; color:var(--gray-700); font-size:9px; }
.session-avatar { display:grid; place-items:center; width:22px; height:22px; border-radius:50%; background:var(--red); color:var(--white); font-size:9px; font-weight:800; }
.topbar-clean { border:0; }

/* Botones */
.btn-primary,.btn-secondary,.btn-danger,.button-link,.btn-filter-clear,.performance-actions button { min-height:34px; padding:0 14px; display:inline-flex; align-items:center; justify-content:center; gap:6px; border:1px solid var(--border-strong); border-radius:var(--radius-xs); background:var(--white); color:var(--ink); font-size:9px; font-weight:700; text-decoration:none; transition:background .15s,border-color .15s,color .15s; }
.btn-primary { border-color:var(--red); background:var(--red); color:var(--white); }
.btn-primary:hover { background:var(--red-dark); }
.btn-secondary:hover,.button-link:hover,.btn-filter-clear:hover,.performance-actions button:hover { background:var(--gray-100); border-color:var(--gray-400); }
.btn-danger { border-color:var(--alert-bg); background:var(--alert-bg); color:var(--danger); }

/* Filtros / formularios */
.filterbar,.day-filterbar,.performance-actions { display:flex; align-items:flex-end; flex-wrap:wrap; gap:10px; margin:0 0 12px; padding:10px 14px; border:1px solid var(--border); border-radius:var(--radius-sm); background:var(--white); }
.filterbar label,.day-filterbar label,.performance-actions label { display:grid; gap:4px; color:var(--gray-600); font-size:8px; }
select,input[type="text"],input[type="password"],input[type="email"] { min-height:34px; padding:0 10px; border:1px solid var(--border-strong); border-radius:6px; outline:0; background:var(--white); }
select:focus,input:focus { border-color:var(--gray-700); box-shadow:0 0 0 3px rgba(var(--ink-rgb),.06); }

/* Tablas */
.table-toolbar { margin:0 0 8px; color:var(--gray-500); font-size:8px; font-weight:700; text-transform:uppercase; letter-spacing:.06em; }
.empty-state { padding:16px; text-align:center; color:var(--gray-500); font-size:10px; }
.excel-wrap { width:100%; overflow:auto; border:1px solid var(--border); border-radius:8px; background:var(--white); }
.excel-table { width:100%; min-width:680px; border-collapse:collapse; font-size:9px; }
.excel-table th { position:sticky; top:0; z-index:1; padding:10px 12px; border-bottom:1px solid var(--border); background:var(--surface-alt); color:var(--gray-600); text-align:right; font-size:7.5px; font-weight:800; text-transform:uppercase; letter-spacing:.05em; white-space:nowrap; }
.excel-table td { padding:10px 12px; border-bottom:1px solid var(--gray-150); color:var(--gray-800); text-align:right; white-space:nowrap; }
.excel-table th:first-child,.excel-table td:first-child,.excel-table .text { text-align:left; }
.excel-table tbody tr:hover { background:var(--surface-soft); }
.excel-table tbody tr:last-child td { border-bottom:0; }
.excel-table td.positive { color:var(--green); font-weight:700; }
.excel-table td.negative,.excel-table td.alert { color:var(--danger); font-weight:700; }
.excel-table td.warncell { color:var(--amber); }
.excel-table td.okcell { color:var(--green); }
.compact-table .excel-table,.compact .excel-table { font-size:8.5px; }
.compact-table .excel-table th,.compact-table .excel-table td,.compact .excel-table th,.compact .excel-table td { padding:8px 10px; }

/* Estados / pills */
.status-pill { display:inline-flex; align-items:center; gap:4px; padding:3px 7px; border-radius:999px; background:var(--gray-100); font-size:8px; font-weight:700; }
.status-ok { background:var(--ok-bg); color:var(--ok-text); }
.status-warn { background:var(--warn-bg); color:var(--warn-text); }
.status-alert { background:var(--alert-bg); color:var(--alert-text); }
.insight-box,.import-info-card { padding:16px; border:1px solid var(--border); border-radius:var(--radius-sm); background:var(--surface-soft); color:var(--gray-700); font-size:10px; }

/* Soporte flotante */
.support-float { position:fixed; right:18px; bottom:18px; z-index:40; width:36px; height:36px; overflow:hidden; border:1px solid var(--border); border-radius:50%; background:var(--white); box-shadow:var(--shadow-soft); text-indent:-999px; }
.support-float::after { content:"?"; position:absolute; inset:0; display:grid; place-items:center; color:var(--ink); font-size:13px; font-weight:800; text-indent:0; }

/* Bloques colapsables (desgloses secundarios) */

/* Widget "Paid Media Performance" (hero oscuro) */
.top-paid-hero { margin-top:0; min-height:126px; padding:18px 20px; display:grid; grid-template-columns:minmax(200px,.9fr) minmax(360px,1.35fr) minmax(260px,1fr); gap:20px; align-items:center; overflow:hidden; border-radius:var(--radius-md); background:var(--hero-bg); color:var(--hero-text); }
.top-paid-hero.compact { min-height:0; padding:16px; grid-template-columns:1fr; gap:12px; align-content:start; border-radius:var(--radius-sm); }
.top-paid-main { display:block; min-width:0; }
.top-paid-label { margin-bottom:12px; }
.top-paid-leader { display:flex; align-items:center; gap:12px; }
.top-paid-icon { width:42px; height:42px; flex:0 0 42px; display:grid; place-items:center; overflow:hidden; background:rgba(255,255,255,.08); border:1px solid var(--hero-border); border-radius:50%; }
.top-paid-icon svg { width:24px; height:24px; fill:var(--hero-text); }
.top-paid-leader .top-paid-icon { background:var(--red); border-color:var(--red); }
.top-paid-hero.compact .top-paid-icon { width:36px; height:36px; flex-basis:36px; }
.top-paid-hero.compact .top-paid-icon svg { width:20px; height:20px; }
.top-paid-copy { min-width:0; }
.top-paid-eyebrow,.top-paid-label { color:var(--hero-muted); font-size:7.5px; font-weight:800; text-transform:uppercase; letter-spacing:.11em; }
.top-paid-title { margin-top:6px; color:var(--hero-text); font-size:26px; font-weight:700; line-height:1; }
.top-paid-hero.compact .top-paid-title { font-size:21px; }
.top-paid-scorecard { min-width:0; }
.top-paid-numbers { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; }
.top-paid-hero.compact .top-paid-numbers { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.top-paid-numbers > div { min-width:0; }
.top-paid-numbers span { display:block; color:var(--hero-muted); font-size:7px; font-weight:800; text-transform:uppercase; letter-spacing:.08em; }
.top-paid-numbers strong { display:block; margin-top:5px; color:var(--hero-text); font-size:20px; font-weight:700; line-height:1; }
.top-paid-hero.compact .top-paid-numbers strong { font-size:17px; }
.top-paid-scorecard > p { margin:8px 0 0; color:var(--hero-subtle); font-size:8px; }
.top-paid-share { display:grid; grid-template-columns:auto 1fr; align-items:center; gap:8px; margin-top:11px; }
.top-paid-share > span { color:var(--hero-subtle); font-size:7px; text-transform:uppercase; letter-spacing:.06em; }
.top-paid-share > i { display:block; height:3px; overflow:hidden; border-radius:4px; background:var(--hero-surface-alt); }
.top-paid-share > i > b { display:block; height:100%; background:var(--chart-pauta); }
.top-paid-list { display:grid; align-content:center; gap:7px; margin:0; padding:0; list-style:none; }
.top-paid-rank { display:grid; grid-template-columns:22px 20px minmax(0,1fr) auto; gap:6px; align-items:center; min-width:0; font-size:8px; }
.top-paid-rank .rank { color:var(--hero-subtle); font-size:7px; font-weight:800; }
.top-paid-rank .top-paid-icon { width:20px; height:20px; border-color:var(--hero-surface-alt); }
.top-paid-rank .top-paid-icon svg { width:12px; height:12px; }
.top-paid-rank .name { min-width:0; overflow:hidden; color:var(--gray-100); font-size:8px; font-weight:650; text-overflow:ellipsis; white-space:nowrap; }
.top-paid-rank .value { color:var(--hero-text); font-size:8px; font-weight:750; }
.top-paid-rank .mini-bar { grid-column:3 / 5; display:block; height:2px; overflow:hidden; border-radius:2px; background:var(--hero-surface-alt); }
.top-paid-rank .mini-bar i { display:block; height:100%; background:var(--hero-subtle); }
.top-paid-rank.muted { color:var(--hero-subtle); }
.top-paid-empty { grid-column:1/-1; display:grid; gap:5px; padding:10px; }
.top-paid-empty span { color:var(--hero-muted); font-size:8px; text-transform:uppercase; letter-spacing:.1em; }
.top-paid-empty strong { color:var(--hero-text); font-size:18px; }
.top-paid-empty small { color:var(--hero-subtle); }

/* Admin / auditoría */
.system-health-grid,.preview-validation-grid,.preview-kpi-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); gap:10px; }
.health-card,.preview-card,.preview-check,.preview-weight-card { padding:14px; border:1px solid var(--border); border-radius:8px; background:var(--white); }
.system-health-panel { background:var(--surface-soft); }
.admin-actions,.import-actions { display:flex; flex-wrap:wrap; gap:8px; }
.admin-subhead { margin:20px 0 8px; }
.app-locked { overflow:hidden; }
.audit-summary,.audit-semaphore { margin:10px 0; }
.audit-kpi-grid { margin-top:12px; }
.audit-ok { border-color:var(--border); }
.performance-note { margin:9px 0 0; color:var(--gray-500); font-size:8.5px; }
.preview-table-wrap { margin-top:8px; }

/* Visibilidad condicionada por rol */
.hidden-by-role { display:none; }
