/* ========================================================================
   BOMBARERA V42 — FINAL DEPLOY / ACCESSIBILITY SAFETY
   Focus: keyboard access, non-destructive network/recovery states,
   production-safe focus routing and clear system status messaging.
   ======================================================================== */

.skip-link-v42{
  position:fixed;
  top:10px;
  left:10px;
  z-index:1000010;
  max-width:calc(100vw - 20px);
  padding:11px 15px;
  border:1px solid rgba(126,224,255,.48);
  border-radius:12px;
  background:#07162f;
  color:#fff;
  font:900 14px/1.15 var(--font-body,'Exo 2',system-ui,sans-serif);
  text-decoration:none;
  box-shadow:0 16px 38px rgba(0,0,0,.42);
  transform:translateY(-160%);
  opacity:0;
  transition:transform .12s ease,opacity .12s ease;
}
.skip-link-v42:focus{
  transform:translateY(0);
  opacity:1;
  outline:3px solid #8fe8ff;
  outline-offset:2px;
}

.v42-live-region{
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  padding:0!important;
  margin:-1px!important;
  overflow:hidden!important;
  clip:rect(0,0,0,0)!important;
  white-space:nowrap!important;
  border:0!important;
}

.v42-network-status{
  position:fixed;
  right:18px;
  bottom:18px;
  z-index:999992;
  display:flex;
  align-items:center;
  gap:10px;
  max-width:min(430px,calc(100vw - 36px));
  padding:11px 14px;
  border:1px solid rgba(255,188,88,.28);
  border-radius:15px;
  background:linear-gradient(180deg,rgba(42,25,7,.96),rgba(20,13,7,.98));
  color:#fff6df;
  box-shadow:0 18px 42px rgba(0,0,0,.38),inset 0 1px 0 rgba(255,255,255,.06);
  font:850 13px/1.28 var(--font-body,'Exo 2',system-ui,sans-serif);
  transform:translateY(16px);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .15s ease,transform .15s ease,visibility .15s ease;
}
.v42-network-status.is-visible{
  transform:translateY(0);
  opacity:1;
  visibility:visible;
}
.v42-network-status.is-online{
  border-color:rgba(103,234,161,.28);
  background:linear-gradient(180deg,rgba(9,51,35,.96),rgba(5,25,20,.98));
  color:#eafff2;
}
.v42-network-status__dot{
  width:10px;
  height:10px;
  flex:0 0 10px;
  border-radius:999px;
  background:#ffbd59;
  box-shadow:0 0 0 5px rgba(255,189,89,.10);
}
.v42-network-status.is-online .v42-network-status__dot{
  background:#6af0a6;
  box-shadow:0 0 0 5px rgba(106,240,166,.10);
}

.v42-recovery{
  position:fixed;
  inset:0;
  z-index:1000005;
  display:grid;
  place-items:center;
  padding:24px;
  background:rgba(2,7,18,.78);
  backdrop-filter:blur(16px) saturate(112%);
  -webkit-backdrop-filter:blur(16px) saturate(112%);
}
.v42-recovery[hidden]{display:none!important}
.v42-recovery__card{
  width:min(500px,calc(100vw - 40px));
  padding:28px;
  border:1px solid rgba(122,198,255,.22);
  border-radius:28px;
  background:linear-gradient(180deg,rgba(8,22,49,.99),rgba(4,12,29,.995));
  color:#fff;
  box-shadow:0 34px 100px rgba(0,0,0,.56),inset 0 1px 0 rgba(255,255,255,.07);
}
.v42-recovery__eyebrow{
  display:block;
  color:#70dcff;
  font:900 10px/1 var(--font-title,'Exo 2',sans-serif);
  letter-spacing:.16em;
}
.v42-recovery__card h2{
  margin:11px 0 0;
  color:#fff;
  font:1000 clamp(27px,3vw,38px)/.98 var(--font-body,'Exo 2',system-ui,sans-serif);
  letter-spacing:-.035em;
}
.v42-recovery__card p{
  margin:13px 0 0;
  color:#c6d7ea;
  font:800 14px/1.48 var(--font-body,'Exo 2',system-ui,sans-serif);
}
.v42-recovery__status{
  display:flex;
  align-items:center;
  gap:8px;
  margin-top:16px;
  color:#8fa9c6;
  font:850 12px/1.2 var(--font-body,'Exo 2',system-ui,sans-serif);
}
.v42-recovery__status::before{
  content:'';
  width:8px;
  height:8px;
  flex:0 0 8px;
  border-radius:50%;
  background:#ffbd59;
}
.v42-recovery__actions{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
  margin-top:22px;
}
.v42-recovery__actions button{
  min-height:48px;
  padding:0 16px;
  border-radius:14px;
  border:1px solid rgba(123,198,255,.24);
  background:linear-gradient(180deg,rgba(19,55,97,.94),rgba(7,26,57,.98));
  color:#fff;
  font:1000 13px/1 var(--font-body,'Exo 2',system-ui,sans-serif);
  cursor:var(--bm-cursor-action)!important;
}
.v42-recovery__actions button:last-child{
  background:linear-gradient(180deg,rgba(17,28,51,.96),rgba(6,14,30,.99));
  color:#d9e7f6;
}
.v42-recovery__actions button:focus-visible{
  outline:3px solid #8fe8ff;
  outline-offset:3px;
}

html[data-input-modality="keyboard"] :is(button,a,input,select,textarea,[tabindex]):focus-visible{
  outline:3px solid #8fe8ff!important;
  outline-offset:3px!important;
}

#app:focus{outline:none}

@media (max-width:600px){
  .v42-recovery__actions{grid-template-columns:1fr}
  .v42-network-status{left:14px;right:14px;bottom:14px;max-width:none}
}

@media (prefers-reduced-motion:reduce){
  .skip-link-v42,.v42-network-status{transition:none!important}
}

body.v42-recovery-open{overflow:hidden!important}
body.v42-recovery-open #app{pointer-events:none;user-select:none}
.route-progress-v41__copy small{font-size:10px!important}
