/* ============================================================================
   RC GARAGE · MULTIDRONE  —  TEMA "MEDIODÍA"  (v1 final, drop-in reversible)
   ----------------------------------------------------------------------------
   Reskin claro: cielo con nubes + tráfico, tarjetas de cristal por estado,
   controles de cabina (metal azulado, encendido verde fósforo) y tablilla
   split-flap en los títulos.

   ACTIVAR  -> en index.html, DESPUÉS de tu CSS actual:
       <link rel="stylesheet" href="css/estilos.css">          (el tuyo)
       <link rel="stylesheet" href="css/mediodia-theme.css">   (este, el último)
       <script defer src="js/mediodia.js"></script>            (cielo + tablilla)

   REVERTIR -> borra (o comenta) esas dos líneas. Nada de tu código cambia.

   No toca la lógica ni la API: solo redefine los tokens que ya usa tu app
   (--bg-*, --fg-*, --accent...) y decora las clases existentes.

   PENDIENTE de afinar con tu index.html + CSS: cabecera fija, barra de
   navegación y modales (sus clases no las conozco todavía).
   ============================================================================ */

@import url('https://fonts.googleapis.com/css2?family=Hanken+Grotesk:wght@400;500;600&family=IBM+Plex+Mono:wght@400;500;600&family=Saira:wght@500;600;700&display=swap');

/* ---- 1. Tokens: oscuro -> claro Mediodía --------------------------------- */
:root{
  --bg-0: transparent;
  --bg-1: rgba(255,255,255,.82);
  --bg-2: #ffffff;
  --bg-3: #eef3f8;

  --fg-0: #23303a;
  --fg-1: #45525b;
  --fg-2: #6e7a82;
  --fg-3: #9aa6ad;

  --line:   rgba(35,48,58,.10);
  --line-2: rgba(35,48,58,.16);
  --line-3: rgba(35,48,58,.24);

  --accent: #2f7fc4; --accent-ink:#fff; --accent-soft: rgba(47,127,196,.14); --accent-glow: rgba(47,127,196,.4);
  --sun: #e8972b;
  --signal: #3f9e68; --signal-soft: rgba(63,158,104,.16);
  --warn: #e0992e; --warn-soft: rgba(224,153,46,.18);
  --danger: #d86a5a; --danger-soft: rgba(216,106,90,.16);

  --shadow-card: 0 1px 2px rgba(35,48,58,.05), 0 14px 34px -16px rgba(35,48,58,.3);
  color-scheme: light;
}

html, body{ background: transparent !important; }
body{ font-family:'Hanken Grotesk',sans-serif; color: var(--fg-0); }
.num, .mono{ font-family:'IBM Plex Mono',monospace; font-variant-numeric:tabular-nums; }

/* ---- 2. Cielo (lo inyecta mediodia.js) ----------------------------------- */
.mediodia-sky{position:fixed;inset:0;z-index:-1;pointer-events:none;overflow:hidden;
  background:linear-gradient(180deg,#6fb0e4 0%,#9cc9ee 26%,#c7e1f4 55%,#e9f4fb 100%)}
.mediodia-sky .cl{position:absolute;top:0;left:-12%;width:124%;height:100%}
.mediodia-sky .cl.far{opacity:.6;animation:md-d1 140s linear infinite alternate}
.mediodia-sky .cl.near{opacity:.8;animation:md-d2 100s linear infinite alternate}
@keyframes md-d1{to{transform:translateX(5%)}}
@keyframes md-d2{to{transform:translateX(-6%)}}
.cloud{position:absolute;left:0;color:#fff;opacity:.6;filter:blur(7px);will-change:transform}
.cloud svg{display:block;width:100%;height:auto;fill:currentColor}
.mover{position:absolute;left:0;color:#34597c;opacity:.32;will-change:transform}
.mover svg{display:block;width:100%;height:auto;fill:currentColor}
.mover.rev svg{transform:scaleX(-1)}
@keyframes driftR{from{transform:translateX(-22vw)}to{transform:translateX(124vw)}}
@keyframes driftL{from{transform:translateX(124vw)}to{transform:translateX(-22vw)}}

/* ---- 3. Títulos: Saira + tablilla split-flap (la monta mediodia.js) ------ */
.view-title{font-family:'Saira',sans-serif;font-weight:700;letter-spacing:.02em;text-transform:uppercase;
  color:var(--fg-0);text-shadow:0 1px 16px rgba(255,255,255,.55)}
.view-subtitle{font-family:'IBM Plex Mono',monospace;letter-spacing:.06em;color:var(--fg-1)}
.flipboard{display:inline-flex;gap:4px;flex-wrap:wrap;filter:drop-shadow(0 10px 18px rgba(20,40,60,.35))}
.flip{position:relative;display:grid;place-items:center;width:34px;height:48px;border-radius:5px;
  background:linear-gradient(180deg,#262c33 0 calc(50% - .5px),#161a1f calc(50% + .5px) 100%);
  color:#fff;font-family:'Saira',sans-serif;font-weight:700;font-size:31px;line-height:1;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08),inset 0 -2px 4px rgba(0,0,0,.5)}
.flip::after{content:"";position:absolute;left:0;right:0;top:50%;height:1px;background:rgba(0,0,0,.7);transform:translateY(-.5px)}
.flip-gap{width:14px}

/* ---- 4. Tarjetas = botones de cristal por estado ------------------------- */
/*  .card                 -> cristal VERDE (operativa, fija)
    .card.needs-attention -> cristal ROJO (incidencia, parpadea)              */
.card{position:relative;overflow:hidden;border-radius:20px;cursor:pointer;
  backdrop-filter:blur(16px) saturate(1.5);-webkit-backdrop-filter:blur(16px) saturate(1.5);
  border:1px solid rgba(63,158,104,.6);
  background:linear-gradient(160deg,rgba(140,220,165,.5),rgba(63,158,104,.2));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.7),inset 0 -12px 22px rgba(63,158,104,.22),0 6px 0 rgba(40,108,70,.6),0 16px 28px -10px rgba(63,158,104,.55);
  transition:transform .12s cubic-bezier(.16,1,.3,1),box-shadow .12s ease;
  animation:cardin .5s cubic-bezier(.16,1,.3,1) both}
@keyframes cardin{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.card:hover{transform:translateY(-3px);box-shadow:inset 0 1px 0 rgba(255,255,255,.78),inset 0 -12px 22px rgba(63,158,104,.25),0 9px 0 rgba(40,108,70,.6),0 26px 42px -12px rgba(63,158,104,.7)}
.card:active{transform:translateY(5px);box-shadow:inset 0 1px 0 rgba(255,255,255,.6),inset 0 7px 16px rgba(40,108,70,.45),0 1px 0 rgba(40,108,70,.6),0 6px 14px -6px rgba(63,158,104,.5)}
.card>*{position:relative;z-index:2}
.card::before{content:"";position:absolute;top:0;left:-70%;width:55%;height:100%;z-index:3;pointer-events:none;
  background:linear-gradient(105deg,transparent,rgba(255,255,255,.55),transparent);transform:skewX(-18deg);opacity:0}
.card:hover::before{animation:sheen 1.1s ease}
@keyframes sheen{0%{left:-70%;opacity:0}14%{opacity:1}100%{left:130%;opacity:0}}

.card.needs-attention{border-color:rgba(216,106,90,.62);
  background:linear-gradient(160deg,rgba(245,150,135,.5),rgba(216,106,90,.22));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.7),inset 0 -12px 22px rgba(216,106,90,.24),0 6px 0 rgba(168,70,56,.6),0 16px 28px -10px rgba(216,106,90,.55)}
.card.needs-attention:hover{transform:translateY(-3px);box-shadow:inset 0 1px 0 rgba(255,255,255,.78),inset 0 -12px 22px rgba(216,106,90,.27),0 9px 0 rgba(168,70,56,.6),0 26px 42px -12px rgba(216,106,90,.7)}
.card.needs-attention:active{transform:translateY(5px);box-shadow:inset 0 1px 0 rgba(255,255,255,.6),inset 0 7px 16px rgba(168,70,56,.45),0 1px 0 rgba(168,70,56,.6),0 6px 14px -6px rgba(216,106,90,.5)}
.card.needs-attention::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;z-index:4;
  box-shadow:inset 0 0 0 1.5px rgba(255,107,107,.6),inset 0 0 20px rgba(216,106,90,.3);
  animation:redpulse 2s ease-in-out infinite}
@keyframes redpulse{0%,100%{box-shadow:inset 0 0 0 1px rgba(255,107,107,.22),inset 0 0 14px rgba(216,106,90,.1)}
  50%{box-shadow:inset 0 0 0 2px rgba(255,107,107,.9),inset 0 0 28px rgba(216,106,90,.55)}}

.card-image{background:rgba(255,255,255,.32);color:rgba(35,48,58,.30)}
.card-image>svg{opacity:.5}
.card-title{font-family:'Saira',sans-serif;font-weight:700;letter-spacing:.01em;text-transform:uppercase;color:var(--fg-0)}
.card-meta{color:var(--fg-1)} .card-meta .num{color:var(--fg-0)}

.chip{background:rgba(255,255,255,.92);border:1px solid var(--line);color:var(--fg-1);box-shadow:0 2px 8px rgba(35,48,58,.12)}
.chip.accent{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}
.chip.danger{background:var(--danger-soft);border-color:var(--danger);color:var(--danger)}
.chip.warn{background:var(--warn-soft);border-color:var(--warn);color:var(--warn)}

/* ---- 5. Controles de cabina --------------------------------------------- */
.search-bar{background:rgba(255,255,255,.82);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
  border:1px solid rgba(255,255,255,.7);box-shadow:var(--shadow-card)}
.search-bar input{color:var(--fg-0)} .search-bar svg{color:var(--fg-2)}

.filter-chip{font-family:'Saira',sans-serif;font-weight:600;letter-spacing:.07em;text-transform:uppercase;
  border:1px solid #11161d;color:#a6b0bb;
  background:repeating-linear-gradient(90deg,rgba(255,255,255,.045) 0 1px,transparent 1px 3px),linear-gradient(180deg,#333d4a,#1e2630);
  text-shadow:0 -1px 0 rgba(0,0,0,.5);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.13),inset 0 -2px 3px rgba(0,0,0,.5),0 2px 0 #11161d,0 5px 10px -4px rgba(0,0,0,.45);
  transition:transform .08s,box-shadow .12s,background .14s,color .14s}
.filter-chip svg{opacity:.8}
.filter-chip:hover{color:#dfe6ec;background:repeating-linear-gradient(90deg,rgba(255,255,255,.055) 0 1px,transparent 1px 3px),linear-gradient(180deg,#3a4552,#242c37)}
.filter-chip:active{transform:translateY(2px);box-shadow:inset 0 2px 5px rgba(0,0,0,.6),0 0 0 #11161d}
.filter-chip.active{color:#042a17;border-color:#0f6238;text-shadow:0 1px 0 rgba(255,255,255,.4);
  background:linear-gradient(180deg,#62ffa6,#28d97b);transform:none;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.6),inset 0 0 10px rgba(255,255,255,.4),0 0 16px rgba(54,224,122,.75),0 2px 0 #0f6238}
.filter-chip.active svg{opacity:1}
#toggle-issues.active,.filter-chip.warn.active{color:#3a2400;border-color:#9a6a12;
  background:linear-gradient(180deg,#ffcf6b,#e89a2b);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.6),inset 0 0 10px rgba(255,255,255,.4),0 0 16px rgba(232,154,43,.75),0 2px 0 #9a6a12}

.btn{font-family:'Saira',sans-serif;font-weight:600;letter-spacing:.06em;text-transform:uppercase;border-radius:9px;
  border:1px solid #11161d;color:#c2cdd8;
  background:repeating-linear-gradient(90deg,rgba(255,255,255,.05) 0 1px,transparent 1px 3px),linear-gradient(180deg,#36404e,#202833);
  text-shadow:0 -1px 0 rgba(0,0,0,.55);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.16),inset 0 -2px 3px rgba(0,0,0,.5),0 3px 0 #11161d,0 7px 14px -4px rgba(0,0,0,.5);
  transition:transform .08s ease,box-shadow .08s ease,background .14s,color .14s}
.btn:hover{background:repeating-linear-gradient(90deg,rgba(255,255,255,.06) 0 1px,transparent 1px 3px),linear-gradient(180deg,#3d4858,#252e39);color:#e6ecf2}
.btn:active{transform:translateY(3px);box-shadow:inset 0 1px 0 rgba(255,255,255,.12),inset 0 3px 6px rgba(0,0,0,.6),0 0 0 #11161d,0 2px 5px -2px rgba(0,0,0,.5)}
.btn-primary{color:#042a17;border-color:#0f6238;text-shadow:0 1px 0 rgba(255,255,255,.45);
  background:linear-gradient(180deg,#62ffa6,#27d779);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.7),inset 0 0 12px rgba(255,255,255,.4),0 0 18px rgba(54,224,122,.7),0 4px 0 #0f6238,0 9px 18px -5px rgba(0,0,0,.5)}
.btn-primary:hover{background:linear-gradient(180deg,#74ffb3,#33e487);box-shadow:inset 0 1px 0 rgba(255,255,255,.8),inset 0 0 15px rgba(255,255,255,.5),0 0 28px rgba(54,224,122,.9),0 4px 0 #0f6238,0 10px 20px -5px rgba(0,0,0,.5)}
.btn-primary:active{transform:translateY(4px);box-shadow:inset 0 1px 0 rgba(255,255,255,.6),inset 0 2px 8px rgba(0,0,0,.3),0 0 14px rgba(54,224,122,.6),0 0 0 #0f6238,0 3px 8px -2px rgba(0,0,0,.5)}
.btn-danger{color:#fff;border-color:#8e3a2d;background:linear-gradient(180deg,#e07a68,#c64a38);box-shadow:inset 0 1px 0 rgba(255,255,255,.3),0 3px 0 #8e3a2d,0 7px 14px -4px rgba(0,0,0,.4)}
.btn:focus-visible,.filter-chip:focus-visible,.card:focus-visible{outline:2.5px solid var(--sun);outline-offset:2px}

/* ---- 6. Avisos, bloques, formularios, login ------------------------------ */
.warning-banner{background:var(--danger-soft);border:1px solid rgba(216,106,90,.4);color:var(--fg-0)}
.warning-banner .origin-icon,.warning-banner .origin-label{color:var(--danger)}
.warning-banner .origin-meta{color:var(--fg-1)}
.info-block{background:rgba(255,255,255,.7);border:1px solid var(--line);color:var(--fg-1)} .info-block.empty{color:var(--fg-2)}
.empty-state{color:var(--fg-1)} .empty-state h3{color:var(--fg-0)} .md-empty-icon{color:var(--accent);opacity:.55}

.input,.textarea,input[type="text"],input[type="email"],input[type="password"],textarea,select{
  background:#fff;border:1px solid var(--line-2);color:var(--fg-0)}
.input:focus,.textarea:focus,input:focus,textarea:focus,select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.section-title,.section-subtitle,.stat-label,.usage-item-label,.hint{color:var(--fg-2)}
.stat-cell,.usage-item{background:rgba(255,255,255,.7);border:1px solid var(--line)} .stat-value{color:var(--fg-0)}
.list-item{background:rgba(255,255,255,.6);border-bottom:1px solid var(--line)} .list-item:hover{background:rgba(255,255,255,.92)}
.list-item-title{color:var(--fg-0)} .list-item-sub{color:var(--fg-2)}
.list-item-thumb{background:linear-gradient(135deg,#eaf2fb,#dfeaf4);color:#9bb4c9}

.auth-card{background:rgba(255,255,255,.82);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);
  border:1px solid rgba(255,255,255,.7);box-shadow:var(--shadow-card)}
.auth-brand h1{color:var(--fg-0);font-family:'Saira',sans-serif;text-transform:uppercase}
.brand-multi{color:var(--fg-0)} .brand-drone{color:var(--accent)}

/* ---- 7. Modales (mejor esfuerzo; afinar con index.html) ------------------ */
.modal,.modal-card,[class*="modal"]>.card{background:rgba(255,255,255,.96);backdrop-filter:blur(20px);color:var(--fg-0)}

/* ---- 8. Respeto a 'reducir movimiento' (oculta el tráfico, no lo congela) - */
@media (prefers-reduced-motion: reduce){
  .mover,.cloud{display:none}
  .mediodia-sky .cl{animation:none}
  .card{animation:none}
  .card.needs-attention::after{animation:none}
  .card::before{display:none}
}

/* ---- 9. Splash de carga (clases vistas en index.html) -------------------- */
.splash{background:linear-gradient(180deg,#6fb0e4,#c7e1f4) !important;color:var(--fg-0)}
.splash-text{color:#23303a;font-family:'Saira',sans-serif;font-weight:700;text-transform:uppercase;letter-spacing:.12em}
.splash-sub{color:#45525b;font-family:'IBM Plex Mono',monospace;letter-spacing:.1em}

/* ---- 10. Barra inferior: 4 pestañas (FLOTA · BATERÍAS · PRESALIDA · AJUSTES) -
   La regla original fija 3 columnas; al añadir Presalida hay 4 y Ajustes
   saltaba de línea. Repartimos en una sola fila. -------------------------- */
.bottom-nav { grid-template-columns: repeat(4, 1fr) !important; }
.nav-btn { padding-left: 4px !important; padding-right: 4px !important; min-width: 0; }
.nav-btn span { font-size: 9.5px; letter-spacing: 0.04em; }

@media (min-width: 768px) {
  .bottom-nav { grid-template-columns: repeat(4, max-content) !important; }
  .nav-btn span { font-size: 11px; letter-spacing: 0.14em; }
}
