/* Redvel Reports — tema oscuro simple, sin dependencias */
*,*::before,*::after{box-sizing:border-box}
html{color-scheme:dark}
html,body{margin:0;padding:0}
body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;background:#0f0f17;color:#e8e8f0;font-size:14px;line-height:1.45}
a{color:#8db4ff;text-decoration:none}a:hover{text-decoration:underline}
h1{font-size:22px;margin:0 0 14px;font-weight:600}
h2{font-size:17px;margin:0 0 10px;font-weight:600}
h3{font-size:14px;margin:12px 0 6px;font-weight:600;color:#b8b8c8}
.muted{color:#8a8a99}
.container{max-width:1180px;margin:0 auto;padding:20px 16px 40px}
.topbar{background:#15151f;border-bottom:1px solid #262636;position:sticky;top:0;z-index:10}
.topbar-inner{max-width:1180px;margin:0 auto;padding:10px 16px;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.brand{font-weight:700;color:#fff;font-size:15px}
.nav{display:flex;gap:4px;align-items:center;flex-wrap:wrap}
.nav a,.nav .linklike{color:#b8b8c8;padding:6px 10px;border-radius:8px;background:none;border:0;font:inherit;cursor:pointer}
.nav a.active,.nav a:hover,.nav .linklike:hover{background:#23233a;color:#fff;text-decoration:none}
.inline{display:inline}
.footer{max-width:1180px;margin:0 auto;padding:10px 16px 30px;color:#6b6b80;font-size:12px}
.flash{padding:10px 14px;border-radius:10px;margin-bottom:14px}
.flash.ok{background:#183a2a;color:#9fe3bd}.flash.bad{background:#3d1b1b;color:#ffb4b4}
.card{background:#1c1c28;border:1px solid #2a2a3a;border-radius:14px;padding:16px;margin-bottom:16px}
.card.narrow{max-width:460px}
.grid{display:grid;gap:14px}
.grid.games{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:980px){.grid.games{grid-template-columns:1fr}}
.good{color:#4fcf85}.bad{color:#ff7b7b}.flat{color:#8a8a99}
.badge{display:inline-block;font-size:11px;padding:2px 7px;border-radius:6px;margin-left:6px;vertical-align:middle}
.badge.warn{background:#4a3a10;color:#ffd37a}.badge.ok{background:#183a2a;color:#9fe3bd}.badge.err{background:#4a1d1d;color:#ffb4b4}.badge.skip{background:#2b2b3c;color:#b8b8c8}
.table-wrap{overflow-x:auto}
table.data{width:100%;border-collapse:collapse;font-size:13px}
table.data th{color:#8a8a99;font-weight:500;text-align:left;padding:6px 6px;border-bottom:1px solid #2a2a3a}
table.data td{padding:6px 6px;border-bottom:1px solid #23232f;vertical-align:middle}
table.data td.num,table.data th.num{text-align:right;font-variant-numeric:tabular-nums}
table.data tr:last-child td{border-bottom:0}
.metrics td.metric-name{color:#b8b8c8}
.metrics td.val{font-weight:600}
.toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:14px}
.toolbar form{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
input[type=date],input[type=email],input[type=password],input[type=text],select{background:#11111a;border:1px solid #34344a;color:#fff;border-radius:9px;padding:8px 10px;font:inherit}
/* Campo de fecha con etiqueta integrada ("Desde"/"Hasta") — en iOS un date vacío se pinta como caja en blanco */
.date-field{display:inline-flex;align-items:center;gap:2px;background:#11111a;border:1px solid #34344a;border-radius:9px;padding-left:10px}
.date-field span{font-size:11px;color:#6b6b80;white-space:nowrap;text-transform:uppercase;letter-spacing:.3px}
.date-field input[type=date]{background:none;border:0;border-radius:0;min-width:0;padding:8px 10px 8px 6px}
.date-field:focus-within{border-color:#4a6fd8}
.date-field input[type=date]:focus{outline:none}
button,.btn{background:#2f5fd3;color:#fff;border:0;border-radius:9px;padding:8px 14px;font:inherit;cursor:pointer}
button:hover,.btn:hover{background:#3b6ce6;text-decoration:none}
button.secondary,.btn.secondary{background:#2b2b3c}
button.secondary:hover,.btn.secondary:hover{background:#34344a}
.form label{display:block;margin:10px 0 4px;color:#9a9ab0;font-size:13px}
.form input{width:100%;margin-bottom:6px}
.form button{margin-top:10px}
.error{color:#ffb4b4;font-size:13px;margin:4px 0 8px}
.subtle{font-size:12px;color:#8a8a99}
/* login */
.login-body{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:24px;background:radial-gradient(1200px 600px at 50% -10%,#232336 0%,#15151f 55%,#0e0e16 100%)}
.login-card{width:100%;max-width:340px;background:#1c1c28;border:1px solid #2a2a3a;padding:32px 28px;border-radius:14px;box-shadow:0 20px 60px rgba(0,0,0,.45)}
.login-card h1{margin:0 0 22px;font-size:18px;text-align:center}
.login-card label{display:block;margin:8px 0 6px;color:#9a9ab0;font-size:13px}
.login-card input[type=email],.login-card input[type=password]{width:100%;margin-bottom:8px}
.login-card .check{display:flex;align-items:center;gap:6px;margin:8px 0 14px}
.login-card button{width:100%}
/* charts */
.grid.charts{grid-template-columns:repeat(auto-fit,minmax(min(420px,100%),1fr))}
@media(max-width:520px){.grid.charts{grid-template-columns:1fr}}
.chart-box{position:relative;height:230px}
.chart-box.tall{height:320px}
tr.metric-row{cursor:pointer}
tr.metric-row:hover td{background:#20202e}
/* tablas densas: sin saltos de línea, nombres largos truncados */
table.data.nowrap th, table.data.nowrap td{white-space:nowrap}
td.trunc{max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:900px){td.trunc{max-width:160px}}
.mode-toggle{display:inline-flex;border:1px solid #34344a;border-radius:8px;overflow:hidden;margin-right:6px}
.mode-toggle a{padding:5px 10px;color:#b8b8c8;font-size:12px}
.mode-toggle a.active{background:#2f5fd3;color:#fff}
.mode-toggle a:hover{text-decoration:none}
/* game cards (vista Hoy) */
.game-card{padding:0;overflow:hidden}
.game-head{padding:14px 16px 10px;border-bottom:1px solid #262636;display:flex;justify-content:space-between;gap:12px;align-items:flex-start;flex-wrap:wrap}
.game-minis{display:flex;gap:18px}
.game-minis .mini{display:flex;flex-direction:column;align-items:flex-end;line-height:1.25}
.game-minis .label{font-size:11px;color:#8a8a99}
.game-minis .v{font-size:17px;font-weight:700}
.game-minis .good,.game-minis .bad,.game-minis .flat{font-size:11px}
.game-card .table-wrap{padding:0 8px}
.game-card table.data{font-size:12.5px}
tr.section-row td{padding:8px 6px 3px;color:#8a8a99;font-size:11px;text-transform:uppercase;letter-spacing:.6px;border-bottom:0}
.campaigns-fold{padding:8px 16px 14px}
.campaigns-fold summary{cursor:pointer;color:#b8b8c8;font-size:13px;padding:4px 0}
.campaigns-fold summary:hover{color:#fff}
/* vista Hoy: plano y sereno */
.summary-band{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));background:#17171f;border:1px solid #232330;border-radius:12px;margin-bottom:14px;overflow:hidden}
.summary-band .stat{padding:12px 16px;color:inherit;text-decoration:none;display:flex;flex-direction:column;gap:2px;border-right:1px solid #232330;border-bottom:1px solid #232330;margin-right:-1px;margin-bottom:-1px}

.summary-band a.stat:hover{background:#1b1b26;text-decoration:none}
.summary-band .label{font-size:12px;color:#8a8a99}
.summary-band .value{font-size:24px;font-weight:700}
.summary-band .delta{font-size:12px;color:#8a8a99}

.notes{margin:0 2px 14px;font-size:13px}
.notes .note{padding:3px 0 3px 10px;border-left:2px solid #3a3a4c;color:#a9a9bc;margin-bottom:2px}
.notes .note.danger{border-left-color:#d14343;color:#ffb4b4}
.notes .note.warning{border-left-color:#c98500;color:#ffd37a}
.notes summary{cursor:pointer;padding:2px 0}
.sources-line{display:flex;gap:12px;align-items:center;flex-wrap:wrap;color:#8a8a99;font-size:12.5px;padding:10px 2px;border-top:1px solid #232330;margin-top:8px}
.src-chip{color:#b8b8c8}
.src-actions{margin-left:auto}
.src-actions .linklike{background:none;border:0;color:#8db4ff;cursor:pointer;font-size:12.5px;padding:0}
.src-actions .linklike:hover{text-decoration:underline}
/* suavizar cajas globales */
.card{border-color:#232330;box-shadow:none}
.kpi{border-color:#232330}
.game-head{background:transparent}
/* unificación + mobile */
.page-head{justify-content:space-between}
.day-nav{display:flex;gap:6px;align-items:center;margin-left:auto;flex-wrap:nowrap}
.day-nav .btn{width:38px;text-align:center;padding-left:0;padding-right:0}
.btn.disabled{opacity:.35;pointer-events:none}
.topbar-inner{row-gap:4px}
.nav{row-gap:2px}
@media(max-width:760px){
  body{font-size:13.5px}
  .summary-band{grid-template-columns:repeat(2,1fr)}
  .summary-band .stat{padding:10px 12px}
  .summary-band .value{font-size:19px}
  .container{padding:14px 10px 30px}
  .toolbar{gap:8px}
  .toolbar h1{font-size:18px}
  .game-minis{gap:12px}
  .game-minis .v{font-size:15px}
  .nav a,.nav .linklike{padding:5px 7px;font-size:13px}
  .mode-toggle a{padding:4px 8px}
  .day-nav{margin-left:0;width:100%;justify-content:flex-end}
  .chart-box{height:200px}
  .chart-box.tall{height:240px}
  input[type=date]{min-width:0}
  .src-actions{margin-left:0;width:100%}
}
/* topbar pro */
.topbar{background:rgba(18,18,26,.92);backdrop-filter:blur(8px);border-bottom:1px solid #232330}
.topbar-inner{display:flex;align-items:center;gap:18px;padding:9px 16px}
.brand{display:flex;align-items:center;gap:8px;font-size:15px;letter-spacing:.2px}
.brand span{font-weight:700;color:#fff}
.brand em{font-style:normal;font-weight:400;color:#8a8a99;margin-left:4px}
.brand:hover{text-decoration:none}
.nav.primary{display:flex;gap:2px;align-items:center;flex:1;min-width:0;overflow-x:auto;scrollbar-width:none}
.nav.primary::-webkit-scrollbar{display:none}
.nav.primary a{position:relative;color:#a9a9bc;padding:7px 11px;border-radius:8px;white-space:nowrap}
.nav.primary a:hover{color:#fff;background:#20202e;text-decoration:none}
.nav.primary a.active{color:#fff;background:#232336}
.nav.primary a.active::after{content:'';position:absolute;left:11px;right:11px;bottom:3px;height:2px;border-radius:2px;background:#3987e5}
.nav-sep{width:1px;height:18px;background:#2b2b3c;margin:0 6px;flex:none}
.nav-right{display:flex;align-items:center;gap:10px;margin-left:auto;flex:none}
.user-menu{position:relative}
.user-menu summary{list-style:none;cursor:pointer;display:flex}
.user-menu summary::-webkit-details-marker{display:none}
.avatar{width:30px;height:30px;border-radius:50%;background:linear-gradient(135deg,#2f5fd3,#3987e5);color:#fff;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;border:1px solid #3a5fb0}
.user-menu[open] .avatar{outline:2px solid #3a5fb0}
/* Ajustes: engranaje redondo, mismo tamaño que el avatar, a su izquierda */
.gear-btn{width:30px;height:30px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;
    background:#23233a;border:1px solid #2f2f45;color:#b8b8c8;flex:none;transition:color .18s ease, background .18s ease, transform .3s ease}
.gear-btn:hover{background:#2c2c46;color:#fff;text-decoration:none;transform:rotate(60deg)}
.gear-btn.active{color:#fff;background:#2f5fd3;border-color:#3a5fb0}
.gear-btn:focus-visible{outline:2px solid #4a6fd8;outline-offset:2px}
@media (prefers-reduced-motion:reduce){.gear-btn:hover{transform:none}}
.user-dropdown{position:absolute;right:0;top:38px;background:#1c1c28;border:1px solid #2a2a3a;border-radius:12px;min-width:200px;padding:8px;z-index:40;box-shadow:0 12px 32px rgba(0,0,0,.45)}
.user-dropdown .who{display:flex;flex-direction:column;gap:1px;padding:6px 10px 8px;border-bottom:1px solid #262636;margin-bottom:6px;font-size:13px}
.user-dropdown a,.user-dropdown .linklike{display:block;width:100%;text-align:left;padding:7px 10px;border-radius:8px;color:#c9c9da;background:none;border:0;font:inherit;cursor:pointer;font-size:13.5px}
.user-dropdown a:hover,.user-dropdown .linklike:hover{background:#23233a;color:#fff;text-decoration:none}
@media(max-width:760px){
  .topbar-inner{gap:10px;padding:8px 10px}
  .brand em{display:none}
  .nav.primary a{padding:6px 8px;font-size:13px}
}
/* scrollbars oscuros */
*{scrollbar-width:thin;scrollbar-color:#34344a transparent}
::-webkit-scrollbar{width:9px;height:9px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:#2e2e40;border-radius:6px;border:2px solid transparent;background-clip:content-box}
::-webkit-scrollbar-thumb:hover{background:#3c3c52;background-clip:content-box}
/* formularios de gestión (Ajustes / Usuarios / Mi cuenta) */
.entity-card{padding:0;overflow:visible}
.entity-head{display:flex;align-items:center;gap:12px;padding:13px 16px;border-bottom:1px solid #232330;flex-wrap:wrap}
.entity-head h2{margin:0;font-size:15px}
.entity-head .meta{margin-left:auto;color:#8a8a99;font-size:12px;text-align:right}
.entity-body{padding:12px 16px 14px;display:flex;flex-direction:column;gap:10px}
.control-row{display:flex;gap:14px;align-items:center;flex-wrap:wrap}
.control-row label{display:flex;align-items:center;gap:6px;color:#b8b8c8;font-size:13px}
.control-row .grow{margin-left:auto}
.check-row{display:flex;gap:12px;align-items:center;flex-wrap:wrap;color:#b8b8c8;font-size:13px}
input[type=checkbox]{accent-color:#2f5fd3;width:15px;height:15px}
.avatar.sm{width:26px;height:26px;font-size:12px;flex:none}
.actions-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap;border-top:1px solid #20202c;padding-top:10px}
.actions-row .danger-btn{background:#3a1d1d;color:#ffb4b4}
.actions-row .danger-btn:hover{background:#4a2424}
.hint{color:#8a8a99;font-size:12px}
.analysis-body{font-size:13px;line-height:1.6;color:#c9c9da}
.analysis-body strong{color:#fff}
.analysis-card{padding:0;overflow:hidden;display:flex;flex-direction:column}
.analysis-card .game-head{flex:none;justify-content:space-between}
/* flex:1 + min-height:0 => la zona de scroll rellena la altura que el grid estira
   la tarjeta (antes se quedaba en 560px fijos y dejaba hueco gris debajo). */
.analysis-scroll{padding:12px 16px 14px;flex:1 1 auto;min-height:0;max-height:min(80vh,900px);overflow-y:auto}

/* --- Asistente IA (sidebar colapsable) --- */
/* Botón del analista IA: borde degradado que gira, aura que respira y destello al pasar */
/* ── Identidad IA compartida ─────────────────────────────────────────────
   .ai-chip = borde cónico giratorio + destello ✦ + "AI" en degradado.
   La usan el botón del analista (.assistant-btn) y los distintivos inline
   (.ai-badge) de "Análisis del día", "Estrategia", etc. */
.ai-chip{position:relative;display:inline-flex;align-items:center;gap:5px;background:#23233a;border:0;border-radius:10px;padding:6px 11px;font-size:12.5px;font-weight:800;letter-spacing:1.2px;line-height:1;isolation:isolate}
.ai-chip::before{content:"";position:absolute;inset:-1.5px;border-radius:inherit;z-index:-2;
    background:conic-gradient(from var(--ai-angle,0deg),#4a6fd8,#9d6bff,#3fd0c9,#4a6fd8);
    animation:ai-spin 4s linear infinite;opacity:.85}
.ai-chip::after{content:"";position:absolute;inset:0;border-radius:inherit;z-index:-1;background:#1b1b2b}
.ai-chip .ai-word{background:linear-gradient(100deg,#8fb0ff,#c9a4ff 45%,#5fe3d8);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent}
.ai-chip .ai-spark{font-size:.88em;color:#c9a4ff;line-height:1;transform-origin:50% 50%;animation:ai-twinkle 2.6s ease-in-out infinite}
@keyframes ai-twinkle{0%,100%{opacity:.55;transform:rotate(0deg) scale(.9)}50%{opacity:1;transform:rotate(180deg) scale(1.15)}}
@property --ai-angle{syntax:'<angle>';initial-value:0deg;inherits:false}
@keyframes ai-spin{to{--ai-angle:360deg}}
@keyframes ai-halo{0%,100%{box-shadow:0 0 0 0 rgba(124,92,255,0)}50%{box-shadow:0 0 14px 2px rgba(124,92,255,.22)}}

/* Botón del analista: la chip + interacción. Vive dentro del nav, así que se separa
   un poco de las pestañas y se alinea con su línea de base. */
.assistant-btn{cursor:pointer;transition:transform .18s ease, box-shadow .25s ease;animation:ai-halo 3.4s ease-in-out infinite}
.nav .assistant-btn{margin-left:6px}
.assistant-btn:hover{transform:translateY(-1px);box-shadow:0 0 0 3px rgba(124,92,255,.16),0 6px 18px rgba(90,70,220,.35)}
.assistant-btn:hover::before{opacity:1;animation-duration:1.6s}
.assistant-btn:hover .ai-spark{animation-duration:1.1s}
.assistant-btn:active{transform:translateY(0) scale(.97)}
.assistant-btn:focus-visible{outline:2px solid #9d6bff;outline-offset:2px}

/* Distintivo inline junto a un título (no interactivo, más pequeño) */
.ai-badge{font-size:9.5px;letter-spacing:1px;padding:3px 7px;gap:4px;border-radius:7px;margin-right:8px;vertical-align:2px}

/* Si el navegador no sabe recortar el degradado al texto, color plano legible */
@supports not ((-webkit-background-clip:text) or (background-clip:text)){
    .ai-chip .ai-word{color:#c9d2ff;-webkit-text-fill-color:currentColor}
}
/* Sin @property (Firefox antiguo) el gradiente no gira: rotamos el pseudo-elemento */
@supports not (background:conic-gradient(from var(--x,0deg),#000,#fff)){
    .ai-chip::before{animation:ai-rotate 4s linear infinite}
    @keyframes ai-rotate{to{transform:rotate(360deg)}}
}
@media (prefers-reduced-motion:reduce){
    .ai-chip,.ai-chip::before,.ai-chip .ai-spark,.assistant-btn{animation:none}
}
.assistant{position:fixed;top:0;right:0;bottom:0;width:400px;max-width:100vw;background:#15151f;border-left:1px solid #262636;z-index:40;display:flex;flex-direction:column;transform:translateX(100%);transition:transform .22s ease;box-shadow:-12px 0 30px rgba(0,0,0,.35)}
.assistant.open{transform:translateX(0)}
.assistant-head{display:flex;align-items:center;gap:8px;padding:12px 14px;border-bottom:1px solid #262636}
.assistant-head strong{flex:0 0 auto}
.assistant-head .subtle{flex:1;color:#6b6b80}
.assistant-head .linklike{background:none;border:0;color:#8a8a99;cursor:pointer;font-size:15px;padding:2px 6px;border-radius:6px}
.assistant-head .linklike:hover{background:#23233a;color:#fff}
.assistant-msgs{flex:1;overflow-y:auto;padding:14px;display:flex;flex-direction:column;gap:10px}
.a-msg{max-width:92%;padding:9px 12px;border-radius:12px;font-size:13px;line-height:1.5;overflow-wrap:break-word}
.a-msg.me{align-self:flex-end;background:#24406e;color:#e8efff;border-bottom-right-radius:4px}
.a-msg.bot{align-self:flex-start;background:#1f1f2d;border:1px solid #2a2a3a;border-bottom-left-radius:4px}
.a-msg.bot.err{background:#3d1b1b;border-color:#5a2626;color:#ffb4b4}
.a-msg.thinking{color:#8a8a99;font-style:italic;animation:apulse 1.2s ease-in-out infinite}
@keyframes apulse{0%,100%{opacity:.55}50%{opacity:1}}
.assistant-input{display:flex;gap:8px;padding:12px 14px;border-top:1px solid #262636}
.assistant-input textarea{flex:1;background:#0f0f17;border:1px solid #2a2a3a;border-radius:10px;color:#e8e8f0;padding:8px 10px;font:inherit;font-size:13px;resize:none}
.assistant-input textarea:focus{outline:none;border-color:#3987e5}
.assistant-input button{background:#3987e5;border:0;border-radius:10px;color:#fff;padding:0 16px;cursor:pointer;font:inherit}
.assistant-input button:disabled{opacity:.5;cursor:default}
.assistant-send-col{display:flex;flex-direction:column;align-items:stretch;gap:4px}
.assistant-send-col button{flex:1}
.assistant-quota{color:#6b6b80;font-size:10.5px;text-align:center;white-space:nowrap}
.assistant-quota.agotado{color:#d95926}

/* --- Tabs de ajustes --- */
.tabs{display:flex;gap:4px;margin:0 0 14px;border-bottom:1px solid #262636;padding-bottom:0}
.tabs a{color:#8a8a99;padding:7px 14px;border-radius:8px 8px 0 0;border-bottom:2px solid transparent}
.tabs a.active{color:#fff;border-bottom-color:#3987e5}
.tabs a:hover{color:#fff;text-decoration:none}

/* --- Estrategia IA (Campañas) --- */
.strategy-card{padding:12px 16px;border-color:#2b2b44}
.strategy-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.strategy-head .grow{flex:1}
.strategy-head .meta{color:#6b6b80;font-size:12px}
.strategy-title{font-size:14px;font-weight:600;color:#fff}
.ai-tag{display:inline-block;font-size:10px;font-weight:600;letter-spacing:.06em;color:#8db4ff;border:1px solid #34456e;border-radius:5px;padding:1px 5px;vertical-align:1px}
/* Destello ✦ reutilizable: misma identidad visual que el botón del analista */
.ai-mark{display:inline-block;color:#c9a4ff;line-height:1;font-size:.85em;margin-right:.32em;vertical-align:1px;
    transform-origin:50% 50%;animation:ai-twinkle 2.6s ease-in-out infinite}
@media (prefers-reduced-motion:reduce){.ai-mark{animation:none}}
.btn-sm{background:#23233a;border:1px solid #34345a;border-radius:8px;color:#e8e8f0;padding:4px 11px;cursor:pointer;font:inherit;font-size:12.5px}
.btn-sm:hover{background:#2c2c46}.btn-sm:disabled{opacity:.5;cursor:default}
.strategy-pending{animation:apulse 1.2s ease-in-out infinite}
.strategy-resumen{margin:9px 2px 0;font-size:13px;line-height:1.5;color:#c9c9d6;max-width:960px}
.strategy-resumen strong{color:#fff}
.actions-table td{padding:7px 10px 7px 0;border-bottom:1px solid #20202c;font-size:13px;vertical-align:middle}
.actions-table tr:last-child td{border-bottom:0}
.chip{display:inline-block;font-size:10px;font-weight:700;letter-spacing:.07em;padding:3px 8px;border-radius:6px;white-space:nowrap}
.chip.c-green{background:#12352a;color:#4fd398}.chip.c-amber{background:#3a2e0e;color:#ffce6b}
.chip.c-red{background:#3f1f16;color:#ff9c7a}.chip.c-violet{background:#292347;color:#b6acff}
.a-chip{width:1%;white-space:nowrap}
.a-target{font-weight:600;color:#fff;white-space:nowrap}
.a-que{color:#e0e0ea}
.a-dato{color:#9aa3c0;font-variant-numeric:tabular-nums;white-space:nowrap}
.a-donde{color:#6b6b80;white-space:nowrap;text-align:right}
@media(max-width:700px){.a-dato,.a-donde{white-space:normal}}


/* ============ MOBILE 10/10 (uso 50/50 movil-pc) ============ */
@media(max-width:760px){
  /* Topbar: 2 filas ordenadas — fila 1: marca + acciones; fila 2: nav deslizable */
  .topbar-inner{flex-wrap:wrap;gap:6px 8px;padding:8px 12px}
  .brand{order:1}
  .brand em{display:none}
  .nav-right{order:2;margin-left:auto;gap:8px}
  .nav.primary{order:3;flex:0 0 100%;width:100%;flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:2px}
  .nav.primary a{padding:6px 10px;font-size:13.5px}
  .nav-sep{display:none}
  .mode-toggle{margin-right:0}
  .assistant-btn{padding:5px 8px}

  /* iOS: fuentes <16px en campos disparan auto-zoom al enfocar */
  input[type=date],input[type=email],input[type=password],input[type=text],input[type=number],select,textarea{font-size:16px}
  .toolbar form{width:100%}
  .toolbar form select,.toolbar form input[type=date],.toolbar form input[type=text]{flex:1 1 40%;min-width:0}
  .toolbar form .date-field{flex:1 1 42%;min-width:0}
  .toolbar form .date-field input[type=date]{flex:1;width:100%}
  .toolbar form button[type=submit]{flex:1 1 100%}

  /* Sidebar IA: pantalla completa real (dvh evita el hueco de la barra de Safari) */
  .assistant{width:100vw;height:100dvh;bottom:auto}
  .assistant-input{padding-bottom:calc(12px + env(safe-area-inset-bottom))}
  .assistant-input textarea{font-size:16px}
  .a-msg{max-width:96%;font-size:14px}
  .assistant-msgs{-webkit-overflow-scrolling:touch}

  /* Estrategia: cada acción es una tarjeta (chip + objetivo + botón arriba; acción, dato y canal debajo) */
  .actions-table,.actions-table tbody{display:block}
  .actions-table tr{display:flex;flex-wrap:wrap;gap:5px 8px;align-items:center;padding:11px 12px;border:1px solid #23233a;border-radius:12px;background:#181824;margin-bottom:8px}
  .actions-table tr:last-child{margin-bottom:0}
  .actions-table td{display:inline-block;border:0;padding:0}
  .actions-table .a-chip{order:1;width:auto}
  .actions-table .a-target{order:2;white-space:normal;flex:1;min-width:0}
  .actions-table .a-state{order:3;margin-left:auto;flex:none}
  .actions-table .a-que{order:4;flex:0 0 100%;white-space:normal;margin-top:1px}
  .actions-table .a-dato{order:5;flex:0 0 100%;white-space:normal;font-size:12px}
  .actions-table .a-badge{order:6;flex:0 0 100%}
  .actions-table .a-donde{order:7;flex:0 0 100%;text-align:left;font-size:11px;margin-top:1px}

  /* Tarjetas y formularios de ajustes */
  .entity-head{flex-wrap:wrap;gap:6px}
  .entity-head .meta{width:100%;font-size:11.5px}
  .control-row{gap:8px}
  .control-row label{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
  .strategy-head .meta{font-size:11px}
  .strategy-head{gap:8px}

  /* Tablas: un pelin mas compactas, scroll con inercia */
  .table-wrap{-webkit-overflow-scrolling:touch;margin-inline:-4px;padding-inline:4px}
  table.data{font-size:12.5px}
  td.trunc{max-width:120px}

  /* Dropdown usuario que no se salga de pantalla */
  .user-dropdown{right:-4px;min-width:180px}

  /* Chips de fuentes en Hoy */
  .sources-line{gap:8px;font-size:12px}
}
@media(max-width:400px){
  .kpi .value{font-size:20px}
}
@media(max-width:760px){
  /* Conexiones: apilado (servicio + estado / detalle debajo) */
  .conn-table thead{display:none}
  .conn-table,.conn-table tbody{display:block}
  .conn-table tr{display:flex;flex-wrap:wrap;gap:4px 10px;align-items:center;padding:10px 0;border-bottom:1px solid #23232f}
  .conn-table tr:last-child{border-bottom:0}
  .conn-table td{display:inline-block;border:0;padding:0}
  .conn-table td:last-child{flex:0 0 100%;white-space:normal;font-size:12px}
}

/* grid items nunca fuerzan ancho por contenido (canvas de Chart.js, tablas) */
.grid>*{min-width:0}
.chart-box canvas{max-width:100%}

/* Decision de acciones de estrategia */
.a-state{white-space:nowrap}
.actions-table tr.action-done td{opacity:.55}
.actions-table tr.action-done td.a-state{opacity:1}
.undo{background:none;border:0;color:#8a8a99;font:inherit;font-size:11.5px;cursor:pointer;padding:2px 4px;text-decoration:underline dotted;margin-left:4px}
.undo:hover{color:#e8e8f0;background:none}

dialog.decide-dialog{border:1px solid #34345a;border-radius:14px;background:#171724;color:#e8e8f0;padding:0;width:min(420px,calc(100vw - 32px));box-shadow:0 18px 60px rgba(0,0,0,.6)}
dialog.decide-dialog::backdrop{background:rgba(6,6,14,.62);backdrop-filter:blur(2px)}
.dlg-head{display:flex;align-items:flex-start;gap:12px;padding:14px 16px 12px;border-bottom:1px solid #262636}
.dlg-head h3{margin:0;font-size:15px;font-weight:600;color:#fff}
.dlg-sub{margin:6px 0 0;font-size:12.5px;color:#b8b8c8;line-height:1.5}
.dlg-sub .chip{margin-right:6px}
.dlg-close{flex:none;margin-left:auto;background:none;border:0;color:#8a8a99;font-size:14px;line-height:1;cursor:pointer;padding:6px 8px;border-radius:8px}
.dlg-close:hover{background:#23233a;color:#fff}
.dlg-body{padding:14px 16px;display:flex;flex-direction:column;gap:12px}
.dlg-body label{display:flex;flex-direction:column;gap:5px;font-size:12.5px;color:#b8b8c8}
.dlg-body .opt{color:#6b6b80;font-size:11.5px}
.dlg-body input,.dlg-body select{background:#101018;border:1px solid #2b2b44;border-radius:8px;color:#e8e8f0;padding:8px 10px;font:inherit;font-size:13px;width:100%}
.dlg-body input:focus,.dlg-body select:focus{outline:none;border-color:#4a6fd8}
.dlg-row{display:grid;gap:12px}
.dlg-foot{display:flex;justify-content:flex-end;gap:10px;padding:4px 16px 14px}
.btn-sm.primary{background:#2f5fd3;border-color:#2f5fd3;color:#fff}
.btn-sm.primary:hover{background:#3a6ce0}
.dlg-hint{margin:0;padding:10px 16px 13px;font-size:11.5px;color:#8a8a99;border-top:1px solid #222232;line-height:1.5}

.decision-log{margin-top:10px}
.decision-log summary{cursor:pointer}
.decision-log .table-wrap{margin-top:8px}
.dlg-dato{margin:5px 0 0;font-size:11.5px;color:#8db4ff;font-variant-numeric:tabular-nums}
.dlg-current{font-size:11.5px;color:#c9d7a3;min-height:14px}
.testing-block{margin-top:14px;border-top:1px solid #262636;padding-top:10px}
.testing-title{margin:0 0 6px;font-size:13.5px;color:#e8c76b}
.dlg-note{margin:0;font-size:12px;color:#9a9ab0;line-height:1.5;background:#101018;border:1px solid #262636;border-radius:8px;padding:9px 11px}
.verdict-row{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.verdict{position:relative;cursor:pointer}
.verdict input{position:absolute;opacity:0}
.verdict span{display:block;text-align:center;padding:9px 6px;border:1px solid #2b2b44;border-radius:9px;background:#101018;font-size:12.5px;color:#b8b8c8}
.verdict input:checked + span{border-color:#4a6fd8;background:#1b2440;color:#fff}

.dlg-row{grid-template-columns:repeat(auto-fit,minmax(110px,1fr))}

/* Creatividades — galeria estilo intelligence */
.creatives-filterbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:6px}
.creatives-filterbar form{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:0}
.creatives-filterbar .density{flex:none;margin-left:auto}
@media (max-width:640px){
    .creatives-filterbar{gap:8px}
    .creatives-filterbar form{width:100%}
    .creatives-filterbar form select{flex:1 1 45%;min-width:0}
    .creatives-filterbar .density{margin-left:0;width:100%;justify-content:flex-end}
}
.density{display:flex;align-items:center;gap:6px}
.density .den-ico{color:#6b6b80;font-size:13px}
input[type=range]#card-size{-webkit-appearance:none;appearance:none;width:80px;height:4px;border-radius:4px;background:#2b2b44;outline:none;cursor:pointer}
input[type=range]#card-size::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:16px;height:16px;border-radius:50%;background:#4a6fd8;border:2px solid #0f0f17;box-shadow:0 1px 4px rgba(0,0,0,.5);cursor:pointer;transition:background .12s}
input[type=range]#card-size::-webkit-slider-thumb:hover{background:#5f81e6}
input[type=range]#card-size::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:#4a6fd8;border:2px solid #0f0f17;cursor:pointer}
input[type=range]#card-size::-moz-range-track{height:4px;border-radius:4px;background:#2b2b44}

.game-fold{padding:12px 16px}
.game-fold>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.game-fold>summary::-webkit-details-marker{display:none}
.fold-caret{color:#8a8a99;font-size:12px;transition:transform .15s}
.game-fold[open]>summary .fold-caret{transform:rotate(90deg)}
.fold-title{font-size:16px;font-weight:600}
.fold-stats{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:12.5px;color:#c8c8d8}
.fold-stats .subtle{font-size:12px}

.creatives-grid{display:grid;grid-template-columns:repeat(var(--cols,6),1fr);gap:12px;margin-top:14px}
.creative{display:block;background:#15151f;border:1px solid #262636;border-radius:11px;overflow:hidden;transition:border-color .12s,transform .12s;color:inherit}
.creative:hover{border-color:#4a6fd8;transform:translateY(-2px);text-decoration:none}
.creative-thumb{position:relative;aspect-ratio:4/5;background:#0d0d14}
.creative-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.creative-play{position:absolute;inset:0;margin:auto;width:42px;height:42px;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.5);border-radius:50%;color:#fff;font-size:14px;padding-left:3px}
.creative-badge{position:absolute;top:7px;right:7px;font-size:9.5px;font-weight:700;letter-spacing:.3px;padding:2px 6px;border-radius:5px;background:#000a;color:#fff}
.creative-badge.v{background:#c98500dd}
.creative-badge.i{background:#000a}
.creative-status{position:absolute;top:7px;left:7px;font-size:10px;padding:2px 7px;border-radius:20px;background:#23233aee;color:#c8c8d8}
.creative-status.on{background:#1c8a4eee;color:#fff;font-weight:600}
.creative-status.off{background:#23233aee;color:#c8c8d8}
.creative-net{position:absolute;bottom:7px;left:7px;font-size:9px;font-weight:700;letter-spacing:.4px;padding:2px 6px;border-radius:5px;color:#fff}
.creative-net.m{background:#1877f2dd}
.creative-net.g{background:#34a853dd}
.list-mode .creative-net{display:none}
.perf-chip{font-size:9.5px;font-weight:700;letter-spacing:.3px;padding:1px 6px;border-radius:5px;background:#2b2b3c;color:#b8b8c8}
.perf-chip.best{background:#183a2a;color:#9fe3bd}
.perf-chip.good{background:#4a3a10;color:#ffd37a}
.perf-chip.low{background:#3d2020;color:#ffb4b4}
/* Ranking de creatividades en el detalle de campaña */
.creative-rank td{vertical-align:middle}
.rank-thumb{position:relative;display:block;width:56px;height:56px;border-radius:8px;overflow:hidden;background:#101018}
.rank-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.rank-play{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:14px;color:#fff;text-shadow:0 1px 6px #000}
.rank-name{font-weight:600;max-width:280px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.share-bar{height:5px;border-radius:3px;background:#23233a;overflow:hidden;margin-bottom:3px}
.share-bar span{display:block;height:100%;background:#4a6fd8;border-radius:3px}
.creative-meta{padding:8px 10px}
.creative-name{font-size:12px;font-weight:600;color:#e8e8f0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.creative-camp{font-size:11px;color:#8db4ff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}
.creative-stats{display:flex;flex-wrap:wrap;gap:7px;margin-top:6px;font-size:11px;color:#8a8a99;align-items:baseline}
.creative-stats b{color:#e8e8f0;font-size:12.5px}
.creative-date{font-size:10px;color:#8a8a99;margin-top:4px}

/* Modo lista: imagen pequeña a la izquierda, info en fila */
.creatives-grid.list-mode{grid-template-columns:1fr;gap:6px}
.list-mode .creative{display:grid;grid-template-columns:52px 1fr;align-items:center;border-radius:9px}
.list-mode .creative-thumb{aspect-ratio:1;width:52px;height:52px}
.list-mode .creative-play{width:22px;height:22px;font-size:9px}
.list-mode .creative-badge,.list-mode .creative-status{display:none}
.list-mode .creative-meta{padding:6px 12px;display:grid;grid-template-columns:2fr 2fr auto;align-items:center;gap:12px}
.list-mode .creative-name{font-size:12.5px}
.list-mode .creative-camp{margin-top:0}
.list-mode .creative-stats{margin-top:0}
.list-mode .creative-date{margin-top:0;grid-column:auto}

/* Topes responsive: máx 3 columnas en móvil, 2 en muy pequeño */
@media (max-width:820px){.creatives-grid:not(.list-mode){grid-template-columns:repeat(3,1fr)}}
@media (max-width:520px){.creatives-grid:not(.list-mode){grid-template-columns:repeat(2,1fr)}.list-mode .creative-meta{grid-template-columns:1fr auto}.list-mode .creative-camp{display:none}}

.subtabs{display:flex;gap:4px;margin:0 0 14px;border-bottom:1px solid #262636}
.subtabs a{padding:8px 14px;color:#8a8a99;border-bottom:2px solid transparent;margin-bottom:-1px;font-size:14px}
.subtabs a:hover{color:#c8c8d8;text-decoration:none}
.subtabs a.active{color:#fff;border-bottom-color:#4a6fd8}


/* Conexiones — carga perezosa */
.badge.pending{background:#23233a;color:#9a9ab0}
.conn-spin{display:inline-block;width:13px;height:13px;border:2px solid #2b2b44;border-top-color:#6b8cff;border-radius:50%;animation:conn-spin .7s linear infinite;vertical-align:-2px}
@keyframes conn-spin{to{transform:rotate(360deg)}}
.lazy-slot{display:flex;align-items:center;justify-content:center;gap:10px;min-height:220px;color:#8a8a99;font-size:13px}
.lazy-slot .lazy-spin{width:20px;height:20px;border:3px solid #2b2b44;border-top-color:#6b8cff;border-radius:50%;animation:conn-spin .7s linear infinite}
.chart-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:8px}
.seg{display:inline-flex;background:#1a1a26;border:1px solid #2b2b44;border-radius:8px;padding:2px;flex:none}
.seg-btn{appearance:none;background:none;border:0;color:#8a8a99;font:inherit;font-size:12px;font-weight:600;padding:4px 11px;border-radius:6px;cursor:pointer;transition:background .12s,color .12s}
.seg-btn:hover{color:#c8c8d4}
.seg-btn.active{background:#2f5fd3;color:#fff}
