/* ===================== Tablero de pacing — capa visual v2 ===================== */
:root{
  --ground:#f5f4f1; --surface:#ffffff; --surface-2:#faf9f6; --ink:#1b1f27; --muted:#6b6f78; --line:#e7e4de; --line-2:#d9d5cd;
  --accent:#d9781a; --accent-soft:#fdf0e1; --accent-ink:#9a4f08;
  --ok:#1f9d55; --ok-soft:#e5f5ec; --warn:#c98208; --warn-soft:#fdf3dc; --bad:#d23f2c; --bad-soft:#fbe7e3;
  --meta:#3b5bdb; --google:#2f9e44; --tiktok:#222222; --ga4:#e8590c; --tn:#1c7ed6;
  --shadow:0 18px 40px rgba(27,31,39,.14);
  --display:"Bricolage Grotesque","Segoe UI",system-ui,sans-serif;
  --body:"IBM Plex Sans","Segoe UI",system-ui,-apple-system,sans-serif;
  /* compat con main.css */
  --color-bg:var(--ground); --color-surface:var(--surface); --color-text:var(--ink); --color-muted:var(--muted);
  --color-border:var(--line); --color-accent:var(--accent); --font-sans:var(--body);
}
body{background:var(--ground); color:var(--ink); font-family:var(--body)}
body.has-shell{margin:0}
:focus-visible{outline:2px solid var(--accent); outline-offset:2px}

/* Shell */
.shell{display:grid; grid-template-columns:220px minmax(0,1fr); min-height:100vh}
.rail{background:var(--surface); border-right:1px solid var(--line); padding:20px 14px; display:flex; flex-direction:column; gap:22px; position:sticky; top:0; height:100vh}
.brand{display:flex; align-items:center; gap:10px; padding:0 6px; text-decoration:none; color:var(--ink)}
.brand__mark{width:32px; height:32px; border-radius:8px; background:var(--accent); color:#fff; display:grid; place-items:center; font-family:var(--display); font-weight:700; font-size:12px; letter-spacing:.03em}
.brand__name{font-family:var(--display); font-weight:700; font-size:16px; line-height:1.1}
.brand__name small{display:block; font-family:var(--body); font-weight:400; font-size:11px; color:var(--muted)}
.nav{display:flex; flex-direction:column; gap:2px}
.nav a{display:flex; align-items:center; gap:10px; padding:8px 10px; border-radius:8px; color:var(--muted); text-decoration:none; font-weight:500}
.nav a:hover{background:var(--surface-2); color:var(--ink)}
.nav a[aria-current="page"]{background:var(--accent-soft); color:var(--accent-ink)}
.nav svg{width:17px; height:17px; flex:none}
.rail__foot{margin-top:auto; font-size:12px; color:var(--muted); padding:0 6px; display:flex; flex-direction:column; gap:6px; word-break:break-all}
.rail__foot b{color:var(--ink); font-weight:500}
.shell__main.content{max-width:none; margin:0; padding:22px 28px 48px}
.linkish{border:0; background:none; color:var(--accent); cursor:pointer; padding:0; font:inherit; font-weight:500; text-align:left}

/* Encabezado */
.top{display:flex; flex-wrap:wrap; gap:14px; align-items:flex-end; justify-content:space-between; margin-bottom:18px}
.top h1{font-family:var(--display); font-weight:700; font-size:26px; margin:0; letter-spacing:-.01em}
.top .sub{color:var(--muted); font-size:13px; margin-top:4px}
.top__actions{display:flex; gap:10px; align-items:center; flex-wrap:wrap}
.updated{font-size:12.5px; color:var(--muted)} .updated b{color:var(--ink); font-weight:500}
.crumbs{display:flex; gap:8px; align-items:center; font-size:13px; color:var(--muted); margin-bottom:6px}
.crumbs a{color:var(--accent); text-decoration:none; font-weight:500}
.shell .btn{border:1px solid var(--line-2); background:var(--surface); border-radius:8px; padding:7px 12px; cursor:pointer; font-weight:500; display:inline-flex; gap:7px; align-items:center; color:var(--ink); text-decoration:none; font-size:13.5px}
.shell .btn:hover{border-color:var(--accent)}
.shell .btn--primary{background:var(--accent); border-color:var(--accent); color:#fff}
.shell .btn--primary:hover{filter:brightness(1.06)}

/* Resumen y filtros */
.summary{display:flex; gap:10px; flex-wrap:wrap; margin-bottom:14px}
.stat{display:flex; align-items:center; gap:10px; background:var(--surface); border:1px solid var(--line); border-radius:10px; padding:10px 14px; cursor:pointer; min-width:170px; font:inherit; color:inherit; text-align:left}
.stat:hover{border-color:var(--line-2)}
.stat[aria-pressed="true"]{border-color:var(--ink); box-shadow:inset 0 0 0 1px var(--ink)}
.stat__dot{width:10px; height:10px; border-radius:50%}
.stat__dot--bad{background:var(--bad)} .stat__dot--warn{background:var(--warn)} .stat__dot--ok{background:var(--ok)}
.stat__n{font-family:var(--display); font-weight:700; font-size:22px; font-variant-numeric:tabular-nums; line-height:1}
.stat__label{font-size:12.5px; color:var(--muted); line-height:1.25}
.toolbar{display:flex; gap:10px; flex-wrap:wrap; align-items:center; margin-bottom:12px}
.search{flex:1 1 220px; max-width:320px; position:relative}
.search input{width:100%; padding:8px 10px 8px 32px; border:1px solid var(--line-2); border-radius:8px; background:var(--surface); font:inherit}
.search svg{position:absolute; left:10px; top:50%; transform:translateY(-50%); width:15px; color:var(--muted)}
.chips{display:flex; gap:6px; flex-wrap:wrap}
.chip{border:1px solid var(--line-2); background:var(--surface); border-radius:999px; padding:5px 11px; cursor:pointer; font-size:12.5px; display:inline-flex; gap:6px; align-items:center; color:var(--ink)}
.chip[aria-pressed="true"]{background:var(--ink); color:var(--surface); border-color:var(--ink)}
.toolbar__spacer{flex:1}
.cols{position:relative}
.cols__menu{position:absolute; right:0; top:calc(100% + 6px); background:var(--surface); border:1px solid var(--line); border-radius:10px; box-shadow:var(--shadow); padding:10px; z-index:20; width:240px; display:grid; gap:2px}
.cols__menu label{display:flex; gap:8px; align-items:center; padding:5px 6px; border-radius:6px; cursor:pointer; font-size:13px}
.cols__menu label:hover{background:var(--surface-2)}
.cols__menu .hint{font-size:11.5px; color:var(--muted); padding:2px 6px 6px}

/* Grilla */
.table-wrap{background:var(--surface); border:1px solid var(--line); border-radius:12px; overflow-x:auto}
table.grid{border-collapse:separate; border-spacing:0; width:100%; min-width:1060px; font-variant-numeric:tabular-nums; font-size:13.5px}
table.grid.simple{min-width:720px}
table.grid > thead > tr > th{position:sticky; top:0; z-index:3}
table.grid thead th{background:var(--surface); text-align:right; font-size:11px; text-transform:uppercase; letter-spacing:.05em; color:var(--muted); font-weight:600; padding:10px 12px; border-bottom:1px solid var(--line); white-space:nowrap}
table.grid > thead > tr > th:first-child, table.grid > tbody > tr > td:first-child{text-align:left; position:sticky; left:0; z-index:2}
table.grid > thead > tr > th:first-child{z-index:4}
/* con scroll lateral, la columna fija se separa con una sombra */
.table-wrap.is-scrolled-x table.grid > thead > tr > th:first-child{box-shadow:6px 0 8px -6px rgba(0,0,0,.18)}
.table-wrap.is-scrolled-x table.grid > tbody > tr.line-row > td:first-child{box-shadow:inset 3px 0 0 var(--stripe, transparent), 6px 0 8px -6px rgba(0,0,0,.18)}
table.grid th.pacing-h{text-align:left; min-width:250px}
table.grid th.left, table.grid td.left{text-align:left}
table.grid td.wrap{white-space:normal}
table.grid tbody td{padding:9px 12px; border-bottom:1px solid var(--line); text-align:right; white-space:nowrap; background:var(--surface); vertical-align:middle}
tr.client-row td{background:var(--surface-2) !important; padding-block:8px}
/* la celda del cliente ocupa toda la fila (colspan): se fija el contenido para que el nombre siga a la vista */
.client-cell{display:inline-flex; align-items:center; gap:10px; position:sticky; left:12px}
.caret-btn{border:0; background:none; padding:2px; cursor:pointer; color:var(--muted); display:grid; place-items:center}
.caret{width:14px; height:14px; transition:transform .15s}
tr.client-row[aria-expanded="false"] .caret{transform:rotate(-90deg)}
.client-link{font-family:var(--display); font-weight:700; font-size:15px; color:var(--ink); text-decoration:none}
.client-link:hover{color:var(--accent); text-decoration:underline; text-underline-offset:3px}
.client-meta{font-size:12px; color:var(--muted)}
.pill{display:inline-flex; align-items:center; gap:4px; border-radius:999px; padding:1px 8px; font-size:11.5px; font-weight:600}
.pill--ok{background:var(--ok-soft); color:var(--ok)} .pill--warn{background:var(--warn-soft); color:var(--warn)} .pill--bad{background:var(--bad-soft); color:var(--bad)}
tr.line-row td:first-child{box-shadow:inset 3px 0 0 var(--stripe, transparent)}
tr.status-ok{--stripe:var(--ok)} tr.status-warn{--stripe:var(--warn)} tr.status-bad{--stripe:var(--bad)} tr.status-none{--stripe:var(--line-2)}
tr.line-row:hover td{background:var(--surface-2)}
.line-cell{display:flex; flex-direction:column; gap:3px; min-width:210px}
.line-name{font-weight:600; color:var(--ink); text-decoration:none}
.line-name:hover{color:var(--accent)}
.plats{display:flex; gap:4px; align-items:center; flex-wrap:wrap}
.plat{font-size:10px; font-weight:600; border-radius:4px; padding:0 5px; line-height:16px; color:#fff}
.plat--m{background:var(--meta)} .plat--g{background:var(--google)} .plat--t{background:var(--tiktok)} .plat--a{background:var(--ga4)} .plat--n{background:var(--tn)}
.cut{font-size:11px; color:var(--muted)}
.warn-icon{font-size:11px; color:var(--warn); cursor:help}
.tag{font-size:10.5px; color:var(--muted)}
.sub-val{font-size:11px; color:var(--muted)}
.split{font-size:12px; line-height:1.35}
.plat-mini{border-collapse:collapse; font-size:11.5px; white-space:nowrap}
.plat-mini th{font-size:10px; font-weight:600; text-transform:uppercase; letter-spacing:.04em; color:var(--muted); padding:0 8px 3px 0; text-align:right; background:none; border:0}
.plat-mini th:first-child, .plat-mini td:first-child{text-align:left; padding-left:0}
.plat-mini td{padding:2px 8px 2px 0; border:0; border-top:1px solid var(--line); background:none; font-variant-numeric:tabular-nums}
.plat-mini td.num{text-align:right}
.plat-mini tr{cursor:help}
.ga4-filters-block--account{margin-top:10px; padding:10px 12px; border:1px dashed var(--line-2); border-radius:8px; background:var(--surface-2)}
.ga4-filters-block--account h4{margin:0 0 6px; font-size:13px}
.ga4-filters-block--account .ga4-actions{display:flex; gap:6px; flex-wrap:wrap; margin-top:6px}
.ideal{font-weight:600}
.muted{color:var(--muted)}
.txt-ok{color:var(--ok)} .txt-warn{color:var(--warn)} .txt-bad{color:var(--bad)} .txt-none{color:var(--muted)}
.empty-state{padding:40px !important; text-align:center !important; color:var(--muted)}

/* Barra por día */
.pace{display:grid; grid-template-columns:1fr auto; gap:6px 10px; align-items:center; text-align:left; min-width:250px}
.segs{position:relative; display:grid; gap:2px; height:20px}
.seg{background:var(--line); border-radius:2px}
.seg.on{background:var(--fill)}
.seg.part{background:linear-gradient(90deg, var(--fill) var(--p), var(--line) var(--p))}
.marker{position:absolute; top:-3px; bottom:-3px; width:2px; background:var(--ink); border-radius:1px}
.marker::after{content:""; position:absolute; top:-4px; left:-3px; border:4px solid transparent; border-top-color:var(--ink)}
.gap{font-weight:600; font-size:12.5px; border-radius:6px; padding:2px 7px; min-width:66px; text-align:center}
.gap--ok{background:var(--ok-soft); color:var(--ok)} .gap--warn{background:var(--warn-soft); color:var(--warn)} .gap--bad{background:var(--bad-soft); color:var(--bad)} .gap--none{background:var(--surface-2); color:var(--muted)}
.pace-legend{grid-column:1/-1; font-size:11px; color:var(--muted)}

/* Presupuesto editable */
.budget{border:1px dashed transparent; border-radius:6px; padding:2px 6px; cursor:text; background:none; font:inherit; color:inherit}
.budget:hover{border-color:var(--line-2)}
.budget__edit{opacity:0; color:var(--accent); margin-left:4px}
.budget:hover .budget__edit, .budget:focus-visible .budget__edit{opacity:1}
.budget-input{width:130px; text-align:right; border:1px solid var(--accent); border-radius:6px; padding:3px 6px; background:var(--surface); font:inherit}
.budget-wrap{display:flex; flex-direction:column; align-items:flex-end; gap:2px}
.tag--warn{color:var(--warn); background:var(--warn-soft); border-radius:999px; padding:1px 7px; font-weight:600}
.budget--next{font-size:11px; color:var(--muted); opacity:0; padding:0 6px; transition:opacity .15s}
.budget--next.is-set{opacity:1; color:var(--accent); font-weight:500}
.budget-wrap:hover .budget--next, .budget--next:focus-visible{opacity:1}
.month-nav{display:flex; gap:6px; flex-wrap:wrap; margin-top:8px}
.month-nav a{font-size:12px; color:var(--muted); text-decoration:none; padding:2px 9px; border:1px solid var(--line); border-radius:999px; background:var(--surface)}
.month-nav a:hover{color:var(--ink); border-color:var(--line-2)}
.month-nav a[aria-current="page"]{color:var(--ink); border-color:var(--accent); font-weight:600}
.badge-closed{font-family:inherit; font-size:12px; font-weight:600; letter-spacing:0; vertical-align:middle; color:var(--muted); background:var(--surface-2); border-radius:999px; padding:2px 9px; margin-left:8px}
.hint--warn{color:var(--warn)}

/* Cliente */
.kpis{display:flex; gap:10px; flex-wrap:wrap; margin-bottom:16px}
.kpi{background:var(--surface); border:1px solid var(--line); border-radius:10px; padding:10px 14px; flex:1 1 180px}
.kpi span{display:block; font-size:12px; color:var(--muted)}
.kpi b{font-family:var(--display); font-size:19px; font-variant-numeric:tabular-nums}
.kpi b span{display:inline; font-size:inherit; color:inherit}
.kpi b .txt-ok{color:var(--ok)} .kpi b .txt-warn{color:var(--warn)} .kpi b .txt-bad{color:var(--bad)}
.ctabs{display:flex; gap:4px; border-bottom:1px solid var(--line); margin-bottom:16px; overflow-x:auto}
.ctab{padding:9px 12px; color:var(--muted); font-weight:500; border-bottom:2px solid transparent; white-space:nowrap; text-decoration:none}
.ctab[aria-selected="true"]{color:var(--ink); border-bottom-color:var(--accent)}
.source-name{display:flex; gap:8px; align-items:center; font-weight:600}
.client-cards{display:grid; grid-template-columns:repeat(auto-fill, minmax(240px, 1fr)); gap:12px}
.client-card{background:var(--surface); border:1px solid var(--line); border-radius:12px; padding:14px 16px; display:grid; gap:6px; text-decoration:none; color:var(--ink); box-shadow:inset 3px 0 0 var(--stripe, var(--line-2))}
.client-card:hover{border-color:var(--line-2)}
.client-card.status-ok{--stripe:var(--ok)} .client-card.status-warn{--stripe:var(--warn)} .client-card.status-bad{--stripe:var(--bad)}
.client-card__name{font-family:var(--display); font-weight:700; font-size:17px}
.client-card__meta{font-size:12.5px; color:var(--muted)}
.client-card__pills{display:flex; gap:6px; flex-wrap:wrap}
.empty-card{background:var(--surface); border:1px solid var(--line); border-radius:12px; padding:28px; text-align:center; display:grid; gap:8px; justify-items:center}
.empty-card h2{font-family:var(--display); margin:0; font-size:18px}
.empty-card p{margin:0; color:var(--muted)}
.toast{position:fixed; bottom:20px; left:50%; transform:translateX(-50%); background:var(--ink); color:var(--surface); padding:9px 14px; border-radius:8px; font-size:13px; z-index:40; max-width:90vw}
.shell .flash{margin-bottom:14px}

@media (max-width:860px){
  .shell{grid-template-columns:1fr}
  .rail{position:static; height:auto; flex-direction:row; align-items:center; padding:10px 16px; overflow-x:auto; gap:14px}
  .nav{flex-direction:row}
  .nav a span{display:none}
  .rail__foot{display:none}
  .shell__main.content{padding:16px}
  .stat{min-width:0; flex:1 1 140px}
}
@media (prefers-reduced-motion:reduce){*{transition:none !important}}
/* [hidden] siempre gana sobre los display de los componentes */
[hidden]{display:none !important}

/* Explorar fuentes GA4 (wizard) */
.ga4-explore-search{display:flex; gap:10px; align-items:center; margin:6px 0 8px}
.ga4-explore-search .ga4-search{flex:1; padding:7px 10px; border:1px solid var(--line-2); border-radius:8px; font:inherit; background:var(--surface)}
.ga4-explore-rows .ga4-row{display:grid; grid-template-columns:24px 32px minmax(0,1fr) 90px 130px 70px; gap:8px; padding:6px; font-size:13px; align-items:center; border-bottom:1px solid var(--line); cursor:pointer}
.ga4-explore-rows .ga4-row:hover{background:var(--surface-2)}
.ga4-explore-rows .ga4-row--head{font-size:11px; text-transform:uppercase; letter-spacing:.04em; color:var(--muted); cursor:default; font-weight:600}
.ga4-explore-rows .ga4-row--head span:nth-child(n+4){text-align:right}
.ga4-explore-rows .ga4-num{text-align:right; font-family:var(--body); font-variant-numeric:tabular-nums}
.ga4-explore-rows .ga4-sm{overflow:hidden; text-overflow:ellipsis; white-space:nowrap}
.plat--v{background:#f71963}
.plat--x{background:#ee672f}
.plat--s{background:#5e8e3e}

/* Objetivos de la línea (columnas Objetivo 1 / 2) */
.obj-cell{min-width:210px}
.obj{display:flex; flex-direction:column; gap:5px}
.obj__head{display:flex; align-items:center; justify-content:space-between; gap:8px}
.obj__label{font-size:12px; font-weight:600; color:var(--ink); white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
.obj__bar{position:relative; height:8px; border-radius:4px; background:var(--line)}
.obj__fill{display:block; height:100%; border-radius:4px; background:var(--muted)}
.obj--ok .obj__fill{background:var(--ok)} .obj--warn .obj__fill{background:var(--warn)} .obj--bad .obj__fill{background:var(--bad)}
.obj__legend{font-size:11.5px; color:var(--muted); white-space:nowrap}
.objective-row{white-space:nowrap}
.objective-row select{min-width:230px}

/* ── Módulo Evolutivo ── */
.evo-controls{display:flex; flex-wrap:wrap; gap:12px 16px; align-items:flex-end; margin:4px 0 14px}
.evo-controls label{display:flex; flex-direction:column; gap:5px; font-size:12px; font-weight:600; color:var(--muted)}
.evo-controls select,.evo-controls input[type=date]{min-width:170px; padding:8px 10px; border:1px solid var(--line-2); border-radius:8px; background:var(--surface); font:inherit; font-size:13.5px; color:var(--ink)}
#evo-account{min-width:280px}
.evo-pick{min-width:180px; max-width:280px; justify-content:flex-start; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-weight:500}
.evo-legend{display:flex; flex-wrap:wrap; gap:16px; font-size:13px; margin:0 2px 8px; color:var(--ink)}
.evo-legend i{display:inline-block; width:12px; height:12px; border-radius:3px; margin-right:6px; vertical-align:-1px}
.evo-legend i.line{height:3px; vertical-align:3px; border-radius:2px}
.evo-card{position:relative; background:var(--surface); border:1px solid var(--line); border-radius:14px; padding:16px 16px 10px}
.evo-chart-wrap{position:relative; height:380px}
.evo-status{position:absolute; inset:0; display:grid; place-items:center; color:var(--muted); font-size:13.5px; background:rgba(255,255,255,.7); border-radius:14px}
.evo-status[hidden]{display:none}
.evo-totals{display:flex; flex-wrap:wrap; gap:12px; margin:14px 0}
.evo-total{flex:1 1 180px; background:var(--surface); border:1px solid var(--line); border-left:4px solid var(--c); border-radius:10px; padding:10px 14px; display:flex; flex-direction:column; gap:2px}
.evo-total span{font-size:12px; color:var(--muted); font-weight:600}
.evo-total b{font-size:20px; font-family:var(--display)}
.evo-total small{font-size:11px; color:var(--muted)}
.evo-detail{margin:6px 0 30px}
.evo-detail summary{cursor:pointer; font-weight:600; font-size:13px; color:var(--accent-ink)}
.evo-table-wrap{max-height:420px; overflow:auto; margin-top:10px; border:1px solid var(--line); border-radius:10px; background:var(--surface)}
.evo-table{width:100%; border-collapse:collapse; font-size:13px}
.evo-table th,.evo-table td{padding:8px 12px; border-bottom:1px solid var(--line); white-space:nowrap}
.evo-table th{position:sticky; top:0; background:var(--surface-2); text-align:left; font-size:11.5px; text-transform:uppercase; letter-spacing:.03em; color:var(--muted)}
.evo-table .num{text-align:right; font-variant-numeric:tabular-nums}
.evo-modal{position:fixed; inset:0; background:rgba(20,22,28,.45); display:grid; place-items:center; z-index:50; padding:16px}
.evo-modal[hidden]{display:none}
.evo-modal__box{background:var(--surface); border-radius:14px; width:min(620px,100%); max-height:88vh; display:flex; flex-direction:column; box-shadow:0 20px 60px rgba(0,0,0,.2)}
.evo-modal__box--wide{width:min(900px,100%)}
.evo-modal__head{display:flex; justify-content:space-between; align-items:center; padding:16px 20px; border-bottom:1px solid var(--line)}
.evo-modal__head h3{margin:0; font-size:17px}
.evo-modal__foot{display:flex; justify-content:flex-end; gap:10px; padding:14px 20px; border-top:1px solid var(--line)}
.evo-x{border:0; background:none; cursor:pointer; font-size:15px; color:var(--muted); padding:4px}
.evo-metrics{display:grid; grid-template-columns:1.5fr 1fr; min-height:0; flex:1; overflow:hidden}
.evo-metrics__left{padding:14px 18px; overflow:auto; border-right:1px solid var(--line)}
.evo-metrics__right{padding:14px 18px; overflow:auto; background:var(--surface-2)}
.evo-metrics input[type=search],.evo-camps-tools input[type=search]{width:100%; padding:9px 12px; border:1px solid var(--line-2); border-radius:8px; font:inherit; margin-bottom:12px}
.evo-group{border:1px solid var(--line); border-radius:10px; margin-bottom:10px; overflow:hidden}
.evo-group__head{background:var(--accent-soft); padding:9px 12px; font-weight:600; font-size:13.5px}
.evo-group__head small{font-weight:500; color:var(--muted); margin-left:6px}
.evo-group__items{display:grid; grid-template-columns:1fr 1fr; gap:8px 14px; padding:12px}
.evo-group__items label{display:flex; gap:8px; align-items:center; font-size:13.5px; cursor:pointer}
.evo-sel-title{font-size:15px; margin-bottom:2px} .evo-sel-title span{color:var(--muted); font-size:12.5px}
.evo-sel-list{list-style:none; padding:0; margin:10px 0 0; display:flex; flex-direction:column; gap:6px}
.evo-sel-list li{display:flex; align-items:center; gap:8px; background:var(--surface); border:1px solid var(--line); border-radius:8px; padding:8px 10px; font-size:13.5px; cursor:grab}
.evo-sel-list li.dragging{opacity:.5}
.evo-sel-list li em{margin-left:auto; font-style:normal; font-size:11.5px; color:var(--muted)}
.evo-sel-list .evo-empty{cursor:default; color:var(--muted)}
.evo-grip{color:var(--muted); letter-spacing:-2px}
.evo-swatch{width:10px; height:10px; border-radius:3px}
.evo-sel-name{white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
.evo-soon{margin-top:6px}
.evo-camps-tools{display:flex; gap:8px; align-items:center; padding:14px 20px 0}
.evo-camps-tools input[type=search]{margin:0}
.evo-modal .hint{padding:0 20px}
.evo-metrics .hint{padding:0}
.evo-camps-list{padding:10px 20px; overflow:auto; flex:1; min-height:120px}
.evo-camp{display:flex; gap:10px; align-items:center; padding:7px 4px; border-bottom:1px solid var(--line); font-size:13.5px; cursor:pointer}
.evo-camp small{margin-left:auto; color:var(--muted); font-size:11px}
@media (max-width:760px){.evo-metrics{grid-template-columns:1fr} .evo-metrics__left{border-right:0} .evo-group__items{grid-template-columns:1fr} .evo-chart-wrap{height:300px}}
.evo-notes{font-size:12px; color:var(--muted); margin:-4px 2px 8px; min-height:0}
.evo-controls optgroup{font-weight:700}
.evo-pick:disabled{opacity:.6; cursor:default}

.chip--mine[aria-pressed="true"]{border-color:var(--accent); color:var(--ink); font-weight:600}
.owner-form{display:inline-flex; align-items:center; gap:6px; font-size:13px}
.owner-form select{font:inherit; font-size:12.5px; padding:2px 6px; border:1px solid var(--line-2); border-radius:6px; background:var(--surface)}

/* Mis conexiones / Cuentas (modelo Dashbo) */
.flash{border-radius:10px; padding:10px 14px; margin-bottom:12px; font-size:13.5px}
.flash--success{background:var(--ok-soft); color:var(--ok)} .flash--error{background:var(--bad-soft); color:var(--bad)}
.conn-cards{display:grid; gap:14px}
.conn-card{background:var(--surface); border:1px solid var(--line); border-radius:12px; padding:14px 16px}
.conn-card__head{display:flex; justify-content:space-between; align-items:center; gap:10px; margin-bottom:8px; font-size:12.5px}
.conn-card__provider{font-family:var(--display); font-weight:700; font-size:17px; margin-right:10px}
.conn-card__email{color:var(--muted)}
.conn-table{width:100%; border-collapse:collapse; font-size:13px}
.conn-table th{font-size:10.5px; text-transform:uppercase; letter-spacing:.04em; color:var(--muted); text-align:right; padding:4px 8px; font-weight:600}
.conn-table th:first-child, .conn-table td:first-child{text-align:left; padding-left:0}
.conn-table td{padding:6px 8px; border-top:1px solid var(--line); text-align:right}
.conn-card__foot{display:flex; justify-content:space-between; align-items:center; margin-top:10px}
.inline{display:inline}
.danger{color:var(--bad)}
.summary--inline{margin-bottom:0}
.summary--inline .stat{min-width:0; padding:6px 12px; text-decoration:none}
.bulk{display:flex; justify-content:space-between; align-items:center; gap:10px; margin:8px 0; font-size:12.5px; color:var(--muted)}
.bulk__actions{display:inline-flex; gap:6px; align-items:center}
.btn-mini--primary{background:var(--accent); color:#fff; border-color:var(--accent)}
.grid.accounts td.left, .grid.accounts th.left{text-align:left}
.grid.accounts td.right{text-align:right; white-space:nowrap}
.acc-actions .btn-mini{margin-left:4px}
.acc-row--ignored td{color:var(--muted)}
.acc-row--missing td{opacity:.6}
.pill--none{background:var(--surface-2); color:var(--ink)} .pill--muted{background:var(--surface-2); color:var(--muted)}

/* Tiendas */
.h2{font-family:var(--display); font-size:18px; margin:22px 0 10px}
.store-cards .client-card{gap:8px}
.copy-input{width:100%; font:inherit; font-size:12px; padding:6px 8px; border:1px solid var(--line-2); border-radius:6px; background:var(--surface-2); color:var(--ink)}
.store-form{display:grid; gap:12px; max-width:560px}
.store-form label{display:grid; gap:4px; font-size:13px; font-weight:500}
.store-form input{font:inherit; padding:8px 10px; border:1px solid var(--line-2); border-radius:8px; background:var(--surface)}
.store-form .hint{font-weight:400}
.form-actions{display:flex; gap:8px; margin-top:6px}
.tutorial-text{width:100%; max-width:820px; font:inherit; font-size:13.5px; line-height:1.5; padding:14px; border:1px solid var(--line); border-radius:12px; background:var(--surface); color:var(--ink)}
.flash--warn{background:var(--warn-soft); color:var(--warn)} .flash a{color:inherit; font-weight:600}

/* Páginas legales (públicas) */
.legal{max-width:820px; margin:0 auto; padding:8px 0 40px; line-height:1.55}
.legal__head{margin-bottom:18px} .legal__head h1{font-family:var(--display); font-size:26px; margin:0 0 4px}
.legal__nav{font-size:13px} .legal__nav a{color:var(--accent); text-decoration:none}
.legal h2{font-family:var(--display); font-size:17px; margin:22px 0 6px}
.legal p{margin:0 0 8px; font-size:14px}

/* El bloque de la grilla scrollea por dentro (alto lo fija panel.js); cabecera y 1ª columna fijas */
.table-wrap--scroll{overflow:auto; overscroll-behavior:contain}

/* Marca VC Digital: mismo tablero, acento teal legible sobre claro */
body.brand-vc{--accent:#1aa89d; --accent-soft:#e2f6f4; --accent-ink:#0f7f76}
