/* CTRL-C · dirección visual "Runway" (night ops board / FIDS).
   Tokens y specs: AVIO_tokens_y_componentes.md (handoff Claude Design).
   Tema oscuro único. Nunca solo color: color + forma + etiqueta. */

@font-face { font-family:'IBM Plex Sans'; font-weight:400; font-style:normal; font-display:swap; src:url('../fonts/IBMPlexSans-400.woff2') format('woff2'); }
@font-face { font-family:'IBM Plex Sans'; font-weight:500; font-style:normal; font-display:swap; src:url('../fonts/IBMPlexSans-500.woff2') format('woff2'); }
@font-face { font-family:'IBM Plex Sans'; font-weight:600; font-style:normal; font-display:swap; src:url('../fonts/IBMPlexSans-600.woff2') format('woff2'); }
@font-face { font-family:'IBM Plex Sans'; font-weight:700; font-style:normal; font-display:swap; src:url('../fonts/IBMPlexSans-700.woff2') format('woff2'); }
@font-face { font-family:'IBM Plex Mono'; font-weight:400; font-style:normal; font-display:swap; src:url('../fonts/IBMPlexMono-400.woff2') format('woff2'); }
@font-face { font-family:'IBM Plex Mono'; font-weight:500; font-style:normal; font-display:swap; src:url('../fonts/IBMPlexMono-500.woff2') format('woff2'); }
@font-face { font-family:'IBM Plex Mono'; font-weight:600; font-style:normal; font-display:swap; src:url('../fonts/IBMPlexMono-600.woff2') format('woff2'); }
@font-face { font-family:'IBM Plex Mono'; font-weight:700; font-style:normal; font-display:swap; src:url('../fonts/IBMPlexMono-700.woff2') format('woff2'); }

:root {
  --avio-bg-app:#080d13; --avio-panel:#0e1620; --avio-panel-2:#0b121a;
  --avio-inset:#0a1119; --avio-hairline:#131e29; --avio-border:#1d2a37;
  --avio-border-strong:#2b3d4e; --avio-text:#e8eef4; --avio-text-2:#c6d3df;
  --avio-text-mut:#8296a8; --avio-text-dim:#5a6b7c;
  --avio-amber:#f4a52b; --avio-amber-ink:#05080b;
  --avio-st-actv:#64798d; --avio-st-inwork:#2fb9d6; --avio-st-complete:#3cbd6b;
  --avio-st-unassign:#a1927d; --avio-st-cancel:#8a5560;
  --avio-alert-crit:#ff5257; --avio-alert-warn:#f4a52b; --avio-alert-info:#5aa9ff;
  --avio-pri-1:#ff7a45; --avio-pri-2:#e0a83a; --avio-pri-3:#6b8296;
  --avio-req-insp:#39d0b0; --avio-event:#b08cff;
  --avio-crit-bg:#2a0e10; --avio-hazard-a:#ff5257; --avio-hazard-b:#3a0d0e;
  --avio-stale-bg:#241708; --avio-stale-border:#e0972f; --avio-stale-text:#f0b968;
  --avio-insp-bg:#0c1a18; --avio-insp-border:#2a7d6c;
  --font-text:'IBM Plex Sans',system-ui,sans-serif;
  --font-mono:'IBM Plex Mono',ui-monospace,monospace;
  --sh-pop:0 12px 30px rgba(0,0,0,.5); --sh-overlay:0 10px 30px rgba(0,0,0,.55);
  --glow-now:0 0 6px var(--avio-amber);
}

* { box-sizing:border-box; margin:0; padding:0; }
[hidden] { display:none !important; }
html { color-scheme:dark; }
body {
  background:var(--avio-bg-app); color:var(--avio-text);
  font-family:var(--font-text); font-size:14px; min-height:100vh;
}
button { font-family:inherit; }
a { color:var(--avio-amber); text-decoration:none; }
.mono { font-family:var(--font-mono); }
:focus-visible { outline:2px solid var(--avio-amber); outline-offset:1px; }

@keyframes avioLive { 0%,100%{opacity:1} 50%{opacity:.4} }
@keyframes avioSkel { 0%,100%{opacity:1} 50%{opacity:.55} }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation:none !important; transition:none !important; }
}

/* ---- Shell -------------------------------------------------------------- */
.shell { min-height:100vh; display:flex; flex-direction:column; }
.topbar {
  display:flex; align-items:center; justify-content:space-between;
  padding:12px 22px; border-bottom:1px solid var(--avio-border);
  background:var(--avio-panel-2); position:sticky; top:0; z-index:20;
  gap:12px; flex-wrap:wrap;
}
.topbar-izq { display:flex; align-items:center; gap:24px; flex-wrap:wrap; }
.logo { font-family:var(--font-mono); font-size:16px; font-weight:700; letter-spacing:2px; color:var(--avio-amber); }
.logo small { color:var(--avio-text-dim); font-weight:400; letter-spacing:1px; margin-left:8px; font-size:11px; }
.nav-tabs { display:flex; gap:4px; flex-wrap:wrap; }
.nav-tab {
  font-family:var(--font-mono); font-size:12px; letter-spacing:.5px;
  padding:6px 12px; border-radius:6px; cursor:pointer;
  background:transparent; border:1px solid transparent; color:var(--avio-text-mut);
  display:inline-block;
}
.nav-tab:hover { color:var(--avio-text-2); border-color:var(--avio-border); }
.nav-tab.activo { background:#16232f; border-color:var(--avio-border-strong); color:var(--avio-text); }
.topbar-der { display:flex; align-items:center; gap:16px; }
.mxi-estado { display:inline-flex; align-items:center; gap:6px; font-family:var(--font-mono); font-size:11px; }
.mxi-punto { width:7px; height:7px; border-radius:50%; animation:avioLive 2s ease-in-out infinite; }
.usuario-chip { font-family:var(--font-mono); font-size:11px; color:var(--avio-text-mut); }
.btn-salir {
  background:transparent; border:1px solid var(--avio-border); color:var(--avio-text-mut);
  border-radius:5px; padding:4px 10px; font-family:var(--font-mono); font-size:11px; cursor:pointer;
}
.btn-salir:hover { border-color:var(--avio-border-strong); color:var(--avio-text-2); }

/* barra de impersonación (3.14) */
.imp-bar {
  display:flex; align-items:center; justify-content:center; gap:14px;
  padding:8px 18px; background:#2a1c07; border-bottom:1px solid var(--avio-stale-border);
  color:var(--avio-stale-text); font-family:var(--font-mono); font-size:12px; letter-spacing:.3px;
}
.imp-bar strong { color:#ffce7a; }
.imp-bar button {
  background:transparent; border:1px solid var(--avio-stale-border); color:var(--avio-stale-text);
  border-radius:5px; padding:3px 12px; font-family:var(--font-mono); font-size:11px; cursor:pointer;
}

/* banner stale (3.7) */
.banner-stale {
  display:flex; align-items:center; gap:12px; padding:10px 22px;
  background:var(--avio-stale-bg); border-bottom:1px solid var(--avio-stale-border);
  font-family:var(--font-mono); font-size:12px; color:var(--avio-stale-text);
}
.banner-stale strong { color:#ffce7a; }
.tri-warn { width:0; height:0; border-left:6px solid transparent; border-right:6px solid transparent; border-bottom:11px solid var(--avio-stale-border); flex:none; }

main.contenido { flex:1; padding:20px 22px 120px; width:100%; max-width:1720px; margin:0 auto; }

/* ---- KPIs (3.11) --------------------------------------------------------- */
.kpis { display:flex; border:1px solid var(--avio-border); border-radius:10px; overflow:hidden; background:var(--avio-inset); overflow-x:auto; }
.kpi { flex:1; min-width:110px; padding:13px 18px; border-right:1px solid var(--avio-hairline); display:flex; flex-direction:column; gap:3px; }
.kpi:last-child { border-right:none; }
.kpi b { font-family:var(--font-mono); font-size:24px; font-weight:700; letter-spacing:.5px; color:var(--avio-text); }
.kpi span { font-size:11px; letter-spacing:.5px; color:var(--avio-text-mut); text-transform:uppercase; }
.kpi.verde b { color:var(--avio-st-complete); }
.kpi.cian b { color:var(--avio-st-inwork); }
.kpi.rojo b { color:#ff8a8d; }

/* ---- Controles: chips, orden, fecha -------------------------------------- */
.controles { display:flex; align-items:center; justify-content:space-between; gap:14px; flex-wrap:wrap; }
.chips { display:flex; gap:8px; align-items:center; flex-wrap:wrap; }
.chip {
  font-family:var(--font-mono); font-size:12px; letter-spacing:.3px; padding:6px 13px;
  border-radius:20px; cursor:pointer; background:transparent;
  border:1px solid var(--avio-border-strong); color:var(--avio-text-mut);
}
.chip.activo { background:var(--avio-amber); border-color:var(--avio-amber); color:var(--avio-amber-ink); font-weight:600; }
.controles-der { display:flex; gap:10px; align-items:center; flex-wrap:wrap; }
.sel-orden { position:relative; }
.sel-orden > button {
  display:inline-flex; align-items:center; gap:10px; font-family:var(--font-mono); font-size:12px;
  color:var(--avio-text-2); background:var(--avio-panel); border:1px solid var(--avio-border-strong);
  padding:7px 13px; border-radius:7px; cursor:pointer;
}
.sel-orden > button .flecha { color:var(--avio-amber); }
.sel-orden .pop {
  position:absolute; top:calc(100% + 6px); right:0; z-index:30; min-width:230px;
  background:var(--avio-panel); border:1px solid var(--avio-border-strong); border-radius:8px;
  padding:5px; box-shadow:var(--sh-pop); display:none; flex-direction:column;
}
.sel-orden .pop.abierto { display:flex; }
.sel-orden .pop button {
  display:flex; align-items:center; justify-content:space-between; gap:10px; text-align:left;
  font-family:var(--font-mono); font-size:12px; padding:8px 11px; border-radius:6px;
  cursor:pointer; background:transparent; border:none; color:var(--avio-text-mut);
}
.sel-orden .pop button:hover { background:var(--avio-inset); color:var(--avio-text-2); }
.sel-orden .pop button .check { color:var(--avio-amber); }
.sel-fecha, select.sel-fecha {
  display:inline-flex; align-items:center; gap:8px; font-family:var(--font-mono); font-size:12px;
  color:var(--avio-text-2); border:1px solid var(--avio-border-strong); padding:7px 13px;
  border-radius:7px; background:var(--avio-panel);
}

/* ---- Grilla y tarjeta de WP (3.1) ---------------------------------------- */
.grilla { display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:14px; }
.grilla.stale { opacity:.62; }
.card {
  position:relative; background:var(--avio-panel); border:1px solid var(--avio-border);
  border-radius:8px; padding:14px 16px; cursor:pointer; display:flex; flex-direction:column; gap:10px;
  overflow:hidden;
}
.card:hover { border-color:var(--avio-border-strong); }
.card.fuera { border:1.5px solid var(--avio-hazard-a); }
.card.fuera::before {
  content:""; position:absolute; top:0; left:0; right:0; height:5px;
  background:repeating-linear-gradient(45deg,var(--avio-hazard-a) 0 8px,var(--avio-hazard-b) 8px 16px);
}
.card.atenuada { opacity:.5; }
.card-cab { display:flex; align-items:flex-start; justify-content:space-between; gap:8px; }
.matricula { font-family:var(--font-mono); font-size:22px; font-weight:700; color:var(--avio-text); line-height:1.1; }
.wp-cod { font-family:var(--font-mono); font-size:11px; color:var(--avio-text-dim); }
.card-chips { display:flex; gap:6px; flex-wrap:wrap; justify-content:flex-end; }
.chip-estado {
  font-family:var(--font-mono); font-size:10px; font-weight:600; letter-spacing:.5px;
  padding:3px 8px; border-radius:4px; border:1px solid; background:transparent; white-space:nowrap;
}
.chip-insp {
  font-family:var(--font-mono); font-size:10px; font-weight:600; letter-spacing:.5px;
  padding:3px 8px; border-radius:4px; border:1px solid var(--avio-insp-border);
  background:var(--avio-insp-bg); color:var(--avio-req-insp); white-space:nowrap;
}
.pill-fuera {
  align-self:flex-start; font-family:var(--font-mono); font-size:10px; font-weight:700; letter-spacing:.5px;
  padding:3px 9px; border-radius:4px; background:var(--avio-crit-bg);
  border:1px solid var(--avio-hazard-a); color:#ff8a8d;
}
.tag-noini {
  align-self:flex-start; font-family:var(--font-mono); font-size:10px; letter-spacing:.5px;
  padding:3px 9px; border-radius:4px; border:1px solid var(--avio-border-strong); color:var(--avio-text-dim);
}
.tag-stale {
  position:absolute; top:8px; right:8px; font-family:var(--font-mono); font-size:9px; font-weight:600;
  letter-spacing:.5px; padding:2px 7px; border-radius:4px;
  background:var(--avio-stale-bg); border:1px solid var(--avio-stale-border); color:var(--avio-stale-text);
}
.grilla.stale .card { padding-top:30px; }
.grilla.stale .card.fuera { padding-top:32px; }
.card-meta { display:flex; gap:16px; font-family:var(--font-mono); font-size:11px; color:var(--avio-text-mut); flex-wrap:wrap; }
.card-meta b { color:var(--avio-text-2); font-weight:600; }
.seg-bar { display:flex; height:8px; border-radius:4px; overflow:hidden; background:var(--avio-inset); border:1px solid var(--avio-hairline); }
.seg-bar span { display:block; }
.card-pie { display:flex; justify-content:space-between; font-family:var(--font-mono); font-size:11px; color:var(--avio-text-mut); }
.card-badges { display:flex; flex-direction:column; gap:5px; }

/* badge de alerta corto (3.2) */
.badge-alerta {
  display:flex; align-items:baseline; gap:7px; padding:5px 9px; background:var(--avio-inset);
  border-left:3px solid; border-radius:0 4px 4px 0; font-family:var(--font-mono); font-size:11px;
  flex-wrap:wrap;
}
.badge-alerta .forma { font-size:10px; flex:none; }
.badge-alerta .barcode { font-weight:700; color:var(--avio-text); }
.badge-alerta.critica { border-color:var(--avio-alert-crit); color:#ff8a8d; }
.badge-alerta.critica .forma { color:var(--avio-alert-crit); }
.badge-alerta.advertencia { border-color:var(--avio-alert-warn); color:#ffce7a; }
.badge-alerta.advertencia .forma { color:var(--avio-alert-warn); }
.badge-alerta.informativa { border-color:var(--avio-alert-info); color:#9cc8ff; }
.badge-alerta.informativa .forma { color:var(--avio-alert-info); }

/* estados de pantalla */
.skeleton { height:168px; background:var(--avio-panel); border:1px solid var(--avio-border); border-radius:8px; animation:avioSkel 1.4s ease-in-out infinite; }
.estado-panel {
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:14px;
  padding:90px 20px; border-radius:12px; background:var(--avio-inset);
  border:1px dashed var(--avio-border-strong); text-align:center;
}
.estado-panel .glifo {
  width:54px; height:54px; border-radius:50%; border:2px solid var(--avio-border-strong);
  display:flex; align-items:center; justify-content:center;
  font-family:var(--font-mono); font-size:22px; color:var(--avio-text-dim);
}
.estado-panel b { font-size:16px; font-weight:600; color:var(--avio-text-2); }
.estado-panel p { font-size:13px; color:var(--avio-text-mut); max-width:360px; }
.estado-panel.error { border:1px solid var(--avio-alert-crit); background:#1a0e10; }
.estado-panel.error .glifo { border-color:var(--avio-alert-crit); color:#ff8a8d; }
.estado-panel.error b { color:#ff8a8d; }
.btn-sec {
  padding:9px 18px; background:transparent; border:1px solid var(--avio-border-strong);
  color:var(--avio-text-2); border-radius:7px; font-family:var(--font-mono); font-size:12px; cursor:pointer;
}

/* ---- Drawer de detalle (3.9 / §C) ---------------------------------------- */
.drawer-backdrop { position:fixed; inset:0; background:rgba(3,6,10,.6); z-index:40; display:none; }
.drawer-backdrop.abierto { display:block; }
.drawer {
  position:fixed; top:0; right:0; bottom:0; width:min(640px,100%); z-index:41;
  background:var(--avio-panel-2); border-left:1px solid var(--avio-border-strong);
  transform:translateX(100%); transition:transform .18s ease-out; overflow-y:auto;
}
.drawer.abierto { transform:none; }
.drawer-cab {
  position:sticky; top:0; background:var(--avio-panel-2); border-bottom:1px solid var(--avio-border);
  padding:18px 22px; display:flex; flex-direction:column; gap:8px; z-index:2;
}
.drawer-cab .fila1 { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.drawer-cab .matricula { font-size:26px; }
.drawer-cerrar {
  background:transparent; border:1px solid var(--avio-border); color:var(--avio-text-mut);
  width:32px; height:32px; border-radius:6px; cursor:pointer; font-size:14px;
}
.tabla-tareas { width:100%; border-collapse:collapse; font-size:12px; }
.tabla-tareas th {
  text-align:left; font-family:var(--font-mono); font-size:10px; letter-spacing:.5px;
  text-transform:uppercase; color:var(--avio-text-dim); padding:10px 12px;
  background:var(--avio-panel-2); border-bottom:1px solid var(--avio-border); position:sticky; top:97px;
}
.tabla-tareas td { padding:9px 12px; border-bottom:1px solid var(--avio-hairline); font-family:var(--font-mono); color:var(--avio-text-2); vertical-align:top; }
.tabla-tareas tr:nth-child(even) td { background:var(--avio-panel); }
.tabla-tareas tr.fuera td { background:rgba(255,82,87,.08); }
.tabla-tareas tr.fuera td.lim { color:var(--avio-alert-crit); font-weight:600; }
.tabla-tareas .nombre-t { color:var(--avio-text-mut); font-family:var(--font-text); font-size:11px; }
.tabla-tareas tr.cancel .nombre-t, .tabla-tareas tr.cancel .cod-t { text-decoration:line-through; }
.pill-pri {
  font-family:var(--font-mono); font-size:10px; font-weight:600; padding:2px 7px;
  border-radius:4px; border:1px solid; background:transparent;
}
.pill-pri.p1 { color:var(--avio-pri-1); border-color:var(--avio-pri-1); }
.pill-pri.p2 { color:var(--avio-pri-2); border-color:var(--avio-pri-2); }
.pill-pri.p3 { color:var(--avio-pri-3); border-color:var(--avio-pri-3); }
.estado-celda { display:inline-flex; align-items:center; gap:6px; white-space:nowrap; }
.estado-punto { width:8px; height:8px; border-radius:50%; flex:none; }

/* ---- Línea de tiempo (3.5/3.6/3.8) ---------------------------------------- */
.tl-controles { display:flex; align-items:center; gap:14px; flex-wrap:wrap; }
.btn-play {
  width:38px; height:38px; border-radius:50%; background:var(--avio-amber); color:var(--avio-amber-ink);
  border:none; cursor:pointer; font-size:14px; display:flex; align-items:center; justify-content:center;
}
.btn-vel {
  font-family:var(--font-mono); font-size:12px; background:var(--avio-panel);
  border:1px solid var(--avio-border-strong); color:var(--avio-text-2);
  padding:7px 13px; border-radius:7px; cursor:pointer; min-width:52px;
}
.tl-slider { flex:1; min-width:200px; accent-color:var(--avio-amber); height:28px; }
.tl-reloj { font-family:var(--font-mono); font-size:14px; font-weight:700; color:var(--avio-amber); white-space:nowrap; }
.tl-panel { background:var(--avio-panel); border:1px solid var(--avio-border); border-radius:12px; padding:16px 18px; }
.tl-eje { position:relative; height:26px; margin-left:92px; border-bottom:1px solid var(--avio-border); }
.tl-tick { position:absolute; top:0; bottom:0; border-left:1px solid var(--avio-hairline); }
.tl-tick span { position:absolute; top:2px; left:4px; font-family:var(--font-mono); font-size:9px; color:var(--avio-text-dim); }
.tl-evento { position:absolute; top:2px; transform:translateX(-50%); color:var(--avio-event); font-size:12px; cursor:default; }
.tl-filas { max-height:560px; overflow-y:auto; }
.tl-fila { display:flex; align-items:center; height:30px; cursor:pointer; }
.tl-fila:hover .tl-etq { color:var(--avio-text); }
.tl-etq {
  width:92px; flex:none; font-family:var(--font-mono); font-size:11px; font-weight:600;
  color:var(--avio-text-2); display:flex; gap:5px; align-items:center;
}
.tl-etq .insp { color:var(--avio-req-insp); font-size:10px; }
.tl-track { position:relative; flex:1; height:100%; background:var(--avio-inset); border-radius:3px; }
.tl-ventana { position:absolute; top:7px; bottom:7px; border:1px solid var(--avio-st-actv); border-radius:3px; }
.tl-ventana.fuera { border-color:var(--avio-alert-crit); }
.tl-avance { position:absolute; top:8px; bottom:8px; background:var(--avio-st-inwork); border-radius:2px; }
.tl-avance.fuera { background:var(--avio-alert-crit); }
.tl-cursor { position:absolute; top:0; bottom:0; width:2px; background:var(--avio-amber); box-shadow:var(--glow-now); animation:avioLive 2s ease-in-out infinite; z-index:2; }
.tl-leyenda { display:flex; gap:18px; margin-top:12px; font-family:var(--font-mono); font-size:10px; color:var(--avio-text-dim); flex-wrap:wrap; }
.tl-reconstruccion { display:flex; flex-direction:column; gap:16px; margin-top:22px; }
.tl-encabezado { font-family:var(--font-mono); font-size:13px; font-weight:700; letter-spacing:1px; color:var(--avio-amber); }

/* ---- Feed de alertas ------------------------------------------------------ */
.feed { display:flex; flex-direction:column; border:1px solid var(--avio-border); border-radius:10px; overflow:hidden; }
.feed-fila {
  display:flex; gap:14px; align-items:baseline; padding:10px 16px;
  border-bottom:1px solid var(--avio-hairline); background:var(--avio-panel); font-size:13px; flex-wrap:wrap;
}
.feed-fila:last-child { border-bottom:none; }
.feed-fila.critica { background:rgba(255,82,87,.06); }
.feed-fila .hora { font-family:var(--font-mono); font-size:11px; color:var(--avio-text-dim); flex:none; width:44px; }
.feed-nivel { font-family:var(--font-mono); font-size:10px; font-weight:600; letter-spacing:.5px; flex:none; width:130px; }
.feed-nivel.critica { color:var(--avio-alert-crit); }
.feed-nivel.advertencia { color:var(--avio-alert-warn); }
.feed-nivel.informativa { color:var(--avio-alert-info); }
.feed-fila .matri { font-family:var(--font-mono); font-weight:600; color:var(--avio-text-2); flex:none; }
.feed-fila .texto { color:var(--avio-text-mut); flex:1; min-width:200px; }
.feed-fila .resuelta { font-family:var(--font-mono); font-size:10px; color:var(--avio-st-complete); }
.feed-vacio { padding:40px; text-align:center; color:var(--avio-text-dim); background:var(--avio-inset); }

/* ---- Inspecciones (3.10) --------------------------------------------------- */
.grilla-insp { display:grid; grid-template-columns:repeat(auto-fill,minmax(360px,1fr)); gap:14px; }
.card-insp { border-color:var(--avio-insp-border); }
.mini-tareas { display:flex; flex-direction:column; gap:6px; }
.mini-tarea { display:flex; align-items:center; gap:9px; font-family:var(--font-mono); font-size:11px; color:var(--avio-text-2); }

/* ---- Login ----------------------------------------------------------------- */
.login-fondo {
  min-height:100vh; display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:22px; padding:30px 16px;
  background:radial-gradient(ellipse at 50% 30%, #0d1620 0%, #080d13 70%);
}
.login-caja { width:min(420px,100%); display:flex; flex-direction:column; gap:16px; }
.login-logo { text-align:center; display:flex; flex-direction:column; gap:6px; }
.login-logo .logo { font-size:26px; letter-spacing:4px; }
.login-logo span { font-size:12px; color:var(--avio-text-mut); letter-spacing:1px; }
.login-card {
  background:var(--avio-panel); border:1px solid var(--avio-border); border-radius:12px;
  padding:24px 22px; display:flex; flex-direction:column; gap:14px;
}
.login-card h2 { font-size:14px; font-weight:600; color:var(--avio-text-2); }
.login-card p { font-size:12px; color:var(--avio-text-mut); line-height:1.5; }
.btn-amber {
  display:block; width:100%; text-align:center; padding:12px 16px; border-radius:7px;
  background:var(--avio-amber); color:var(--avio-amber-ink); border:none;
  font-family:var(--font-mono); font-size:13px; font-weight:700; letter-spacing:.5px; cursor:pointer;
}
.btn-amber:hover { filter:brightness(1.07); }
.campo { display:flex; flex-direction:column; gap:6px; }
.campo label { font-size:11px; letter-spacing:.5px; text-transform:uppercase; color:var(--avio-text-mut); }
.campo input, .campo select {
  background:var(--avio-inset); border:1px solid var(--avio-border-strong); color:var(--avio-text);
  border-radius:7px; padding:10px 12px; font-family:var(--font-mono); font-size:13px;
}
.campo input:focus { outline:2px solid var(--avio-amber); outline-offset:0; border-color:transparent; }
.micro { font-size:11px; color:var(--avio-text-dim); text-align:center; }
.divisor { display:flex; align-items:center; gap:10px; color:var(--avio-text-dim); font-size:10px; letter-spacing:1px; }
.divisor::before, .divisor::after { content:""; flex:1; border-top:1px solid var(--avio-hairline); }
.flashes { display:flex; flex-direction:column; gap:8px; }
.flash { padding:10px 14px; border-radius:7px; font-size:12px; border:1px solid; }
.flash.info { border-color:var(--avio-border-strong); color:var(--avio-text-2); background:var(--avio-inset); }
.flash.error { border-color:var(--avio-alert-crit); color:#ff8a8d; background:var(--avio-crit-bg); }

/* ---- Admin / Sistema --------------------------------------------------------- */
.seccion { background:var(--avio-panel); border:1px solid var(--avio-border); border-radius:12px; padding:20px; display:flex; flex-direction:column; gap:14px; }
.seccion h2 { font-size:15px; font-weight:600; color:var(--avio-text); }
.seccion h3 { font-size:12px; text-transform:uppercase; letter-spacing:.5px; color:var(--avio-text-mut); }
.grid-2 { display:grid; grid-template-columns:repeat(auto-fit,minmax(340px,1fr)); gap:18px; align-items:start; }
.grid-form { display:grid; grid-template-columns:repeat(auto-fill,minmax(190px,1fr)); gap:12px; }
.tabla-admin { width:100%; border-collapse:collapse; font-size:12px; }
.tabla-admin th { text-align:left; font-family:var(--font-mono); font-size:10px; text-transform:uppercase; letter-spacing:.5px; color:var(--avio-text-dim); padding:8px 10px; border-bottom:1px solid var(--avio-border); }
.tabla-admin td { padding:8px 10px; border-bottom:1px solid var(--avio-hairline); color:var(--avio-text-2); }
.punto-activo { display:inline-block; width:8px; height:8px; border-radius:50%; background:var(--avio-st-complete); margin-right:6px; }
.punto-susp { display:inline-block; width:8px; height:8px; border-radius:50%; background:var(--avio-st-unassign); margin-right:6px; }
.btn-mini { background:transparent; border:1px solid var(--avio-border-strong); color:var(--avio-text-mut); border-radius:5px; padding:3px 10px; font-family:var(--font-mono); font-size:11px; cursor:pointer; }
.btn-mini:hover { color:var(--avio-text-2); }
.token-claro {
  font-family:var(--font-mono); font-size:12px; word-break:break-all; padding:12px;
  background:var(--avio-stale-bg); border:1px solid var(--avio-stale-border);
  color:var(--avio-stale-text); border-radius:7px;
}
.leyenda-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(200px,1fr)); gap:12px; }
.leyenda-item { display:flex; align-items:center; gap:10px; background:var(--avio-inset); border:1px solid var(--avio-hairline); border-radius:7px; padding:10px 12px; font-family:var(--font-mono); font-size:11px; color:var(--avio-text-2); }
.leyenda-item .muestra { width:16px; height:16px; border-radius:4px; flex:none; }

@media (max-width: 767px) {
  main.contenido { padding:14px 12px 90px; }
  .topbar { padding:10px 12px; }
  .feed-nivel { width:auto; }
  .tl-etq { width:64px; }
  .tl-eje { margin-left:64px; }
}
