/* Radar Electoral · pulido visual final
   Sin animaciones agresivas ni re-render adicional. */

:root{
  --panel-glow:rgba(77,145,255,.08);
  --panel-soft:#0d1a2b;
  --panel-deep:#091522;
}

html{scroll-behavior:auto}
body{background:linear-gradient(180deg,#07111e 0%,#091523 56%,#07111e 100%)}

/* HEADER */
.topbar{
  min-height:68px;
  padding:10px 20px;
  gap:18px;
  box-shadow:0 8px 24px rgba(0,0,0,.12);
}
.topTitle{min-width:245px}
.topTitle span{letter-spacing:.03em}
.topTitle b{font-size:14px}
.topActions{flex:1;flex-wrap:nowrap;min-width:0}
#platformTop{width:150px;min-width:150px;flex:0 0 150px}
.search{width:min(320px,28vw);min-width:190px}
.cloudStatus{white-space:nowrap}

/* En Cargas el selector de plataforma no aporta: el archivo define Meta/TikTok */
body[data-page="cargas"] #platformTop,
body[data-page="almacenamiento"] #platformTop{display:none}
body[data-page="cargas"] .search{width:min(360px,32vw)}

/* SIDEBAR */
.sidebar{background:linear-gradient(180deg,#081522,#07111d)}
.sidebar .brand{padding:2px 2px 4px}
.sideUser{box-shadow:inset 0 1px rgba(255,255,255,.025)}
.nav button{min-height:42px;transition:background .12s ease,color .12s ease,transform .12s ease}
.nav button:hover{transform:translateX(2px)}
.nav button.active{background:linear-gradient(90deg,#18304b,#13263c);box-shadow:inset 3px 0 #61a3ff}
.sidebarFoot{background:linear-gradient(180deg,#0d1b2c,#0a1624)}

/* CONTENIDO */
.content{padding:22px 26px 30px;max-width:1500px}
.hero{margin-bottom:16px}
.hero h1{font-size:30px}
.panel,.metric,.uploadCard,.recordCard{box-shadow:0 12px 32px rgba(0,0,0,.10)}
.panel{border-color:#20344d}

/* CONFIGURACIÓN DE CARGA */
body[data-page="cargas"] .twoCol{grid-template-columns:.95fr 1.05fr;align-items:stretch}
body[data-page="cargas"] .panel{background:linear-gradient(180deg,#101f33,#0c1929)}
body[data-page="cargas"] .notice.warn{
  background:linear-gradient(90deg,#3b2b12,#332310);
  border-color:#76551f;
  align-items:center;
}
body[data-page="cargas"] .notice.warn b{min-width:128px}

/* TARJETAS DE SUBIDA */
.uploadGrid{gap:14px;margin-top:14px}
.uploadCard{
  position:relative;
  overflow:hidden;
  min-height:220px;
  padding:18px;
  display:flex;
  flex-direction:column;
  background:linear-gradient(180deg,#101f33,#0b1827);
  border-color:#213750;
}
.uploadCard:before{
  content:"";
  position:absolute;
  inset:0 0 auto 0;
  height:3px;
  background:#2d4b6d;
}
.uploadCard.uploadRecommended:before{background:linear-gradient(90deg,#29c787,#66e2af)}
.uploadCard.uploadZip:before{background:linear-gradient(90deg,#4b91ff,#79b0ff)}
.uploadCard.uploadTikTok:before{background:linear-gradient(90deg,#ee4c7b,#5ee8dc)}
.uploadCard .uploadBadge{
  width:max-content;
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:5px 8px;
  margin-bottom:8px;
  border:1px solid #294561;
  border-radius:999px;
  color:#93a9c1;
  background:#0b1929;
  font-size:10px;
  font-weight:900;
  letter-spacing:.06em;
  text-transform:uppercase;
}
.uploadCard.uploadRecommended .uploadBadge{color:#7be4b3;border-color:#285c49;background:#0d2a21}
.uploadCard.uploadTikTok .uploadBadge{color:#ff9fbd;border-color:#61304a;background:#2a1320}
.uploadCard h3{font-size:18px;margin:7px 0 6px}
.uploadCard p{min-height:0;margin:0 0 16px;color:#8196ad;line-height:1.55}
.uploadCard button{margin-top:auto;width:100%;min-height:42px}

/* DROPZONE: menos espacio muerto */
.dropzone{
  min-height:125px;
  padding:20px;
  border-radius:14px;
  background:linear-gradient(180deg,#0a1726,#0a1624);
}
.dropzone h2{font-size:15px;margin:8px 0 4px}
.dropzone p{margin:0;font-size:12px}
.uploadIcon{font-size:24px}

/* PROGRESO */
.progressWrap{margin-top:10px;padding:10px 12px;border:1px solid #1e324a;border-radius:11px;background:#0a1726}
.progressBar{height:7px}
.progressText{margin-top:5px}

/* CORRIDAS */
.runs{gap:10px}
.runCard{padding:14px 15px;border-color:#21364f;transition:border-color .12s ease,background .12s ease}
.runCard:hover{border-color:#31577d;background:#0e1e31}
.runCard button{min-width:100px}

/* RESUMEN */
.metric{background:linear-gradient(180deg,#101f32,#0c1929)}
.metric strong{letter-spacing:-.035em}
.platformCard{background:linear-gradient(180deg,#0e1d30,#0a1726)}

/* REVISION */
.recordCard{background:linear-gradient(180deg,#101f32,#0b1827)}
.reviewActions button{min-height:40px}
.dataGrid>div{background:#0a1726}

/* TOASTS */
.toast{right:18px;bottom:18px;max-width:520px;border-radius:12px;padding:13px 15px}

/* Sin efectos que puedan generar parpadeo o molestias */
*,*:before,*:after{animation-duration:0s!important;animation-iteration-count:1!important}
.spinner{animation:spin .9s linear infinite!important}

@media(max-width:1180px){
  .topActions{flex-wrap:wrap}
  #platformTop{width:140px;min-width:140px}
  .search{width:240px}
  .uploadCard{min-height:205px}
}

@media(max-width:900px){
  .topbar{padding:12px 16px}
  .topActions{display:grid;grid-template-columns:1fr auto auto;width:100%}
  #platformTop{width:100%;min-width:0}
  .search{width:100%;grid-column:1/-1;grid-row:2}
  body[data-page="cargas"] .twoCol{grid-template-columns:1fr}
  .content{padding:16px}
}

@media(max-width:640px){
  .topActions{grid-template-columns:1fr auto}
  .cloudStatus{display:none}
  .avatar{display:none}
  .uploadCard{min-height:0}
  .dropzone{min-height:105px}
}
