/* ============================================================
   /ads (oct-2026) — mirar · analizar · subir. Prefijo ax- (nada que empiece por «ads»: los bloqueadores lo esconden).
   Lo memorable son los creativos en grande; todo lo demás, callado.
   Gasto en naranja apagado y ventas en el azul de la app: los dos en euros, un solo eje.
   ============================================================ */
:root { --c-gasto: #E08A3C; --c-ventas: #2563EB; }

.ax { max-width: 1240px; margin: 0 auto; padding: 20px var(--content-pad) 64px; display: grid; gap: 28px; }

/* ---- Barra de arriba ---- */
.ax-top { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; }
.ax-top-r { margin-left: auto; display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
.ax-top .cmp-bar { margin: 0; padding: 0; border: 0; background: none; gap: 8px; }
.ax-top .cmp-tag { display: none; }
#sales-results.loading { opacity: .55; transition: opacity 120ms; }
#sales-results { display: grid; gap: 28px; }

/* ---- Cifras + gráfico ---- */
.ax-panel { padding: 20px 22px 14px; }
.ax-kpis { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.ax-kpi { display: grid; gap: 4px; min-width: 0; }
.ax-kpi-l { font: var(--fw-med) 12.5px/1.2 var(--font); color: var(--ink-2); }
.ax-kpi-v { font: var(--fw-sb) 28px/1.1 var(--font); letter-spacing: -.03em; color: var(--ink); font-variant-numeric: tabular-nums; }
.ax-kpi-v.good { color: var(--good); }
.ax-kpi-v.bad { color: var(--alert); }
.ax-kpi-s { font: 12px/1.35 var(--font); color: var(--ink-3); }
.ax-d { font-style: normal; font-weight: var(--fw-med); color: var(--ink-3); margin-left: 4px; font-variant-numeric: tabular-nums; }
.ax-d.good { color: var(--good); }
.ax-d.bad { color: var(--alert); }

.ax-ch-head { display: flex; justify-content: flex-end; gap: 16px; margin: 18px 0 8px; }
.ax-ley { display: inline-flex; align-items: center; gap: 6px; font: 12px/1 var(--font); color: var(--ink-2); }
.ax-ley i { display: inline-block; }
.ax-ley-g { width: 10px; height: 10px; border-radius: 3px; background: var(--c-gasto); }
.ax-ley-v { width: 14px; height: 2px; border-radius: 2px; background: var(--c-ventas); }

.ax-ch { display: grid; grid-template-columns: 64px minmax(0, 1fr); grid-template-rows: 176px 24px; }
.ax-ch-y { position: relative; }
.ax-ch-y span {
    position: absolute; right: 10px; transform: translateY(50%);
    font: 11px/1 var(--font); color: var(--ink-3); font-variant-numeric: tabular-nums; white-space: nowrap;
}
.ax-ch-plot { position: relative; border-bottom: 1px solid rgba(24, 24, 27, .14); }
.ax-ch-grid b { position: absolute; left: 0; right: 0; height: 1px; background: var(--line-row); }
.ax-ch-bars { position: absolute; inset: 0; display: grid; grid-template-columns: repeat(var(--n), minmax(0, 1fr)); }
.ax-ch-col { position: relative; display: flex; align-items: flex-end; justify-content: center; height: 100%; padding: 0 1px; cursor: default; }
.ax-ch-col::before { content: ""; position: absolute; inset: 0 1px; border-radius: 4px 4px 0 0; background: transparent; transition: background 80ms; }
.ax-ch-col:hover::before { background: var(--hover); }
.ax-ch-col i { position: relative; display: block; width: min(72%, 22px); min-height: 1px; border-radius: 4px 4px 0 0; background: var(--c-gasto); }
.ax-ch-col.hoy i { opacity: .4; }
.ax-ch-line { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; pointer-events: none; }
.ax-ch-line polyline { fill: none; stroke: var(--c-ventas); stroke-width: 2; vector-effect: non-scaling-stroke; stroke-linejoin: round; stroke-linecap: round; }
.ax-ch-dot { position: absolute; width: 8px; height: 8px; margin: -4px 0 0 -4px; border-radius: 50%; background: var(--c-ventas); box-shadow: 0 0 0 2px var(--bg); pointer-events: none; }
.ax-ch-x { grid-column: 2; position: relative; }
.ax-ch-x span { position: absolute; top: 7px; transform: translateX(-50%); font: 11px/1 var(--font); color: var(--ink-3); white-space: nowrap; }
.ax-ch-mini { grid-template-columns: minmax(0, 1fr); grid-template-rows: 120px; }

/* ---- Secciones ---- */
.ax-sec { display: grid; gap: 12px; min-width: 0; }
.ax-sec-h { display: flex; align-items: center; flex-wrap: wrap; gap: 10px 12px; min-height: 30px; }
.ax-sec-h h2 { margin: 0; font: var(--fw-sb) 15px/1.3 var(--font); letter-spacing: -.01em; color: var(--ink); }
.ax-sec-s { font: 12.5px/1.3 var(--font); color: var(--ink-3); }
.ax-grow { flex: 1; }
.ax-orden { display: inline-flex; align-items: center; gap: 6px; font: 12.5px/1 var(--font); color: var(--ink-3); }
.ax-orden select {
    height: 30px; padding: 0 26px 0 10px; border: 0; border-radius: var(--r-md); box-shadow: var(--shadow-ctl);
    background: var(--bg) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2371717A' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 8px center / 14px;
    font: var(--fw-med) 12.5px/1 var(--font); color: var(--ink); appearance: none; cursor: pointer;
}

/* ---- Qué hacer hoy ---- */
.ax-hacer-r { display: flex; align-items: center; gap: 12px; padding: 12px 16px; }
.ax-hacer-r + .ax-hacer-r { border-top: 1px solid var(--line-row); }
.ax-hacer-img { flex: none; width: 36px; height: 45px; border-radius: 6px; object-fit: cover; background: var(--block-2); }
.ax-hacer-ico { display: grid; place-items: center; color: var(--ink-2); }
.ax-hacer-ico svg { width: 17px; height: 17px; }
.ax-hacer-tx { flex: 1; min-width: 0; display: grid; gap: 3px; }
.ax-hacer-tx b { display: flex; align-items: center; gap: 8px; min-width: 0; font: var(--fw-sb) 13.5px/1.35 var(--font); color: var(--ink); }
.ax-hacer-tx b .ui-pill { flex: none; height: 20px; font-size: 11.5px; }
.ax-hacer-n { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ax-hacer-tx span { font: 12.5px/1.4 var(--font); color: var(--ink-2); }
.ax-dot { display: inline-block; width: 7px; height: 7px; margin: 0 8px 1px 0; border-radius: 50%; vertical-align: middle; }
.ax-dot-red { background: var(--alert); }
.ax-dot-green { background: var(--good); }
.ax-dot-blue { background: var(--accent); }

/* ---- Anuncios: tarjetas ---- */
.ax-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(212px, 1fr)); gap: 16px; }
.ax-card {
    display: flex; flex-direction: column; min-width: 0; overflow: hidden; cursor: pointer;
    background: var(--bg); border-radius: var(--r-card); box-shadow: var(--shadow-card);
    transition: box-shadow 140ms ease, transform 140ms ease;
}
.ax-card:hover { box-shadow: 0 0 0 1px rgba(24, 24, 27, .10), 0 8px 24px rgba(24, 24, 27, .08); transform: translateY(-1px); }
.ax-card:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.ax-card-img { position: relative; aspect-ratio: 4 / 5; background: var(--block-2); overflow: hidden; }
.ax-card-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ax-card-img .ui-pill { position: absolute; top: 10px; left: 10px; box-shadow: 0 1px 3px rgba(24, 24, 27, .12); }
.ax-card-img .ui-pill-gray { background: #F4F4F5; }
.ax-vid {
    position: absolute; right: 10px; bottom: 10px; display: grid; place-items: center; width: 28px; height: 28px;
    border-radius: 50%; background: rgba(24, 24, 27, .55); color: #fff; backdrop-filter: blur(4px);
}
.ax-vid svg { width: 13px; height: 13px; margin-left: 2px; }
.ax-card.off .ax-card-img img { filter: grayscale(.7); opacity: .7; }
.ax-card-b { display: flex; flex-direction: column; flex: 1; padding: 12px 14px 12px; }
.ax-card-t {
    font: var(--fw-sb) 13.5px/1.35 var(--font); color: var(--ink); min-height: 2.7em;
    display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.ax-card-k { margin-top: 2px; font: 12px/1.3 var(--font); color: var(--ink-3); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ax-card-m { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; margin: 12px 0 0; padding-top: 10px; border-top: 1px solid var(--line-row); }
.ax-card-m div { min-width: 0; }
.ax-card-m dt { font: 11.5px/1.2 var(--font); color: var(--ink-3); }
.ax-card-m dd { margin: 3px 0 0; font: var(--fw-sb) 14px/1.2 var(--font); color: var(--ink); font-variant-numeric: tabular-nums; white-space: nowrap; }
.ax-card-f { display: flex; align-items: center; justify-content: space-between; margin-top: auto; padding-top: 12px; font: 12.5px/1 var(--font); color: var(--ink-2); font-variant-numeric: tabular-nums; }
.ax .good, .ax-dr-in .good { color: var(--good); }
.ax .bad, .ax-dr-in .bad { color: var(--alert); }

/* ---- Tablas ---- */
.ax-tw { overflow-x: auto; }
.ax-t { width: 100%; border-collapse: collapse; font: 13px/1.35 var(--font); color: var(--ink); }
.ax-t th { padding: 10px 12px; text-align: left; font: var(--fw-med) 12px/1.2 var(--font); color: var(--ink-3); white-space: nowrap; border-bottom: 1px solid var(--line-row); }
.ax-t td { padding: 10px 12px; border-bottom: 1px solid var(--line-row); vertical-align: middle; font-variant-numeric: tabular-nums; }
.ax-t tbody tr:last-child td { border-bottom: 0; }
.ax-t tbody tr[data-ax-ver] { cursor: pointer; }
.ax-t tbody tr:hover td { background: var(--hover); }
.ax-t .r { text-align: right; white-space: nowrap; }
.ax-t tr.off td { color: var(--ink-3); }
.ax-c-on { width: 46px; }
.ax-t-ad { display: flex; align-items: center; gap: 10px; min-width: 220px; }
.ax-t-ad img, .ax-t-ad > span { flex: none; width: 32px; height: 40px; border-radius: 5px; object-fit: cover; background: var(--block-2); }
.ax-t-name { font-weight: var(--fw-med); }
.ax-t-sub { font-size: 12px; color: var(--ink-3); }
.ax-vacio { padding: 20px; text-align: center; color: var(--ink-3); }
.ax-vacio-c { display: flex; align-items: center; justify-content: center; gap: 12px; padding: 28px; color: var(--ink-2); font: 13.5px/1.4 var(--font); }

/* ---- Presupuesto − / + ---- */
.ax-bud { display: inline-flex; align-items: center; gap: 2px; height: 28px; padding: 0 2px; border-radius: var(--r-md); box-shadow: var(--shadow-ctl); background: var(--bg); font: var(--fw-med) 12.5px/1 var(--font); color: var(--ink); font-variant-numeric: tabular-nums; }
.ax-bud > span { padding: 0 6px; white-space: nowrap; }
.ax-bud-b { display: grid; place-items: center; width: 24px; height: 24px; padding: 0; border: 0; border-radius: 6px; background: none; color: var(--ink-2); font: 500 15px/1 var(--font); cursor: pointer; }
.ax-bud-b:hover { background: var(--hover-ctl); color: var(--ink); }

/* ---- Panel de un anuncio ---- */
.ax-dr-in { display: flex; flex-direction: column; height: 100%; min-height: 0; }
.ax-dr-h { display: flex; align-items: flex-start; gap: 12px; padding: 18px 20px 14px 24px; border-bottom: 1px solid var(--line); }
.ax-dr-tit { flex: 1; min-width: 0; }
.ax-dr-tit h2 { margin: 0; font: var(--fw-sb) 17px/1.3 var(--font); letter-spacing: -.01em; color: var(--ink); text-wrap: balance; }
.ax-dr-tit p { margin: 3px 0 0; font: 12.5px/1.4 var(--font); color: var(--ink-3); }
.ax-dr-b { flex: 1; overflow-y: auto; padding: 20px 24px 32px; display: grid; gap: 26px; align-content: start; }
.ax-dr-top { display: grid; grid-template-columns: 196px minmax(0, 1fr); gap: 20px; align-items: start; }
.ax-dr-media { position: relative; aspect-ratio: 4 / 5; border-radius: 10px; overflow: hidden; background: var(--block-2); }
.ax-dr-media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ax-vid-l { width: 36px; height: 36px; }
.ax-vid-l svg { width: 16px; height: 16px; }
.ax-dr-ctl { display: grid; gap: 12px; justify-items: start; }
.ax-dr-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; width: 100%; min-height: 30px; padding-bottom: 12px; border-bottom: 1px solid var(--line-row); font: 13px/1 var(--font); color: var(--ink-2); }
.ax-dr-links { display: flex; flex-wrap: wrap; gap: 14px; font: var(--fw-med) 12.5px/1 var(--font); }
.ax-dr-links a { color: var(--accent); text-decoration: none; }
.ax-dr-links a:hover { text-decoration: underline; }
.ax-dr-sec { display: grid; gap: 10px; min-width: 0; }
.ax-dr-sec h3 { margin: 0; font: var(--fw-sb) 13px/1.3 var(--font); color: var(--ink); }
.ax-dr-sec .ax-ch-head { margin: -26px 0 4px; }
.ax-dr-nums { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px 12px; margin: 0; }
.ax-dr-nums dt { font: 11.5px/1.2 var(--font); color: var(--ink-3); }
.ax-dr-nums dd { margin: 4px 0 0; font: var(--fw-sb) 16px/1.2 var(--font); color: var(--ink); font-variant-numeric: tabular-nums; }
.ax-dr-sec .ax-ch { grid-template-columns: 56px minmax(0, 1fr); grid-template-rows: 130px 24px; }
.ax-emb { display: grid; gap: 7px; }
.ax-emb-r { display: grid; grid-template-columns: 112px minmax(0, 1fr) 64px 52px; align-items: center; gap: 10px; font: 12.5px/1.2 var(--font); }
.ax-emb-l { color: var(--ink-2); }
.ax-emb-bar { height: 8px; border-radius: 4px; background: var(--block-2); overflow: hidden; }
.ax-emb-bar i { display: block; height: 100%; border-radius: 4px; background: var(--c-ventas); opacity: .8; }
.ax-emb-v { text-align: right; color: var(--ink); font-weight: var(--fw-med); font-variant-numeric: tabular-nums; }
.ax-emb-p { text-align: right; color: var(--ink-3); font-variant-numeric: tabular-nums; }
.ax-dr-titular { margin: 0; font: var(--fw-sb) 13.5px/1.4 var(--font); color: var(--ink); }
.ax-dr-body { margin: 0; max-width: 64ch; font: 13.5px/1.6 var(--font); color: var(--ink); }
.ax-dr-sec > .ui-btn { justify-self: start; }

/* ---- Subir creativo ---- */
.ax-up-b { display: grid; grid-template-columns: 300px minmax(0, 1fr); gap: 24px; padding: 6px 24px 20px; overflow-y: auto; }
.ax-up-media { display: grid; gap: 12px; align-content: start; }
.ax-drop {
    display: grid; justify-items: center; gap: 6px; padding: 26px 16px; border: 1.5px dashed rgba(24, 24, 27, .18); border-radius: 12px;
    text-align: center; cursor: pointer; transition: background var(--t), border-color var(--t);
}
.ax-drop:hover, .ax-drop.sobre { background: var(--block); border-color: var(--accent); }
.ax-drop svg { width: 28px; height: 28px; color: var(--ink-3); margin-bottom: 4px; }
.ax-drop.min { grid-template-columns: auto auto; justify-content: center; align-items: center; gap: 8px; padding: 10px 12px; }
.ax-drop.min svg { width: 18px; height: 18px; margin: 0; }
.ax-drop.min span { display: none; }
.ax-drop.min b { font-size: 12.5px; font-weight: var(--fw-med); color: var(--ink-2); }
.ax-drop b { font: var(--fw-sb) 13.5px/1.3 var(--font); color: var(--ink); }
.ax-drop span { font: 12px/1.4 var(--font); color: var(--ink-3); }
.ax-slots { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; align-items: start; }
.ax-slot { position: relative; margin: 0; display: grid; gap: 6px; }
.ax-slot-m { border-radius: 8px; overflow: hidden; background: var(--block-2); aspect-ratio: 4 / 5; }
.ax-slot[data-slot="story"] .ax-slot-m { aspect-ratio: 9 / 16; }
.ax-slot-m img, .ax-slot-m video { width: 100%; height: 100%; object-fit: cover; display: block; }
.ax-slot figcaption { display: grid; gap: 1px; font: 12px/1.3 var(--font); color: var(--ink-3); }
.ax-slot figcaption b { color: var(--ink); font-weight: var(--fw-med); }
.ax-slot .ui-x { position: absolute; top: 6px; right: 6px; background: rgba(255, 255, 255, .92); box-shadow: 0 1px 3px rgba(24, 24, 27, .15); }
.ax-up-help { margin: 0; font: 12px/1.45 var(--font); color: var(--ink-3); }
.ax-up-form { display: grid; gap: 14px; align-content: start; min-width: 0; }
.ax-up-lab { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.ax-up-copiar { max-width: 220px; height: 26px; padding: 0 8px; border: 0; border-radius: 6px; box-shadow: var(--shadow-ctl); background: var(--bg); font: 12px/1 var(--font); color: var(--ink-2); cursor: pointer; }
.ax-up-fila { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.ax-up-pres { width: 150px; }
.ax-up-eur { position: relative; display: block; }
.ax-up-eur input { padding-right: 52px; }
.ax-up-eur em { position: absolute; right: 10px; top: 50%; transform: translateY(-50%); font: 12.5px/1 var(--font); font-style: normal; color: var(--ink-3); pointer-events: none; }
.ax-up-fila .ui-check { padding-bottom: 9px; }
.ax-up-aviso { margin: 0; padding: 10px 12px; border-radius: 8px; background: var(--pill-yellow-bg); color: var(--pill-yellow-tx); font: 12.5px/1.45 var(--font); }
.ax-up-aviso.err { background: var(--pill-red-bg); color: var(--pill-red-tx); }
.ax-up-pie { flex: 1; min-width: 0; font: 12.5px/1.4 var(--font); color: var(--ink-3); }
.ax-up-prog { display: grid; grid-template-columns: 1fr; justify-items: center; gap: 8px; padding: 56px 24px 64px; text-align: center; }
.ax-up-prog b { font: var(--fw-sb) 15px/1.3 var(--font); color: var(--ink); }
.ax-up-prog span { max-width: 44ch; font: 13px/1.5 var(--font); color: var(--ink-2); }
.ax-up-spin { width: 28px; height: 28px; margin-bottom: 8px; border-radius: 50%; border: 2.5px solid var(--block-2); border-top-color: var(--ink); animation: ax-gira 800ms linear infinite; }
.ax-up-prog.ok .ax-up-spin { animation: none; border-color: var(--good); background: var(--good) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12 5 5 9-10'/%3E%3C/svg%3E") no-repeat center / 16px; }
.ax-up-prog.err .ax-up-spin { animation: none; border-color: var(--alert); background: var(--alert) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round'%3E%3Cpath d='M12 7v6M12 17h.01'/%3E%3C/svg%3E") no-repeat center / 16px; }
@keyframes ax-gira { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .ax-up-spin { animation-duration: 2.4s; } .ax-card { transition: none; } }

/* ---- Estrecho ---- */
@media (max-width: 900px) {
    .ax-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px 16px; }
    .ax-up-b { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
    .ax { padding: 14px 16px 48px; gap: 22px; }
    .ax-top-r { margin-left: 0; width: 100%; }
    .ax-kpi-v { font-size: 22px; }
    .ax-ch { grid-template-columns: 48px minmax(0, 1fr); grid-template-rows: 140px 24px; }
    .ax-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
    .ax-card-b { padding: 10px; }
    .ax-card-m { grid-template-columns: 1fr 1fr; }
    .ax-card-m div:last-child { display: none; }
    .ax-orden span { display: none; }
    .ax-dr-top { grid-template-columns: 120px minmax(0, 1fr); }
    .ax-dr-nums { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ax-emb-r { grid-template-columns: 96px minmax(0, 1fr) 56px 44px; }
    .ui-modal-f { flex-wrap: wrap; }
    .ax-hacer-r { flex-wrap: wrap; row-gap: 10px; }
    .ax-hacer-tx { flex-basis: calc(100% - 48px); }
    .ax-hacer-tx b { flex-wrap: wrap; row-gap: 4px; }
    .ax-hacer-n { white-space: normal; }
    .ax-hacer-r > .ui-btn:first-of-type { margin-left: 48px; }
    .ax-up-pie { flex-basis: 100%; }
}
