/* Futurista, ligero y responsive (sin frameworks pesados). */
:root{
  --bg0:#070A12;
  --bg1:#0B1022;
  --card:rgba(255,255,255,.06);
  --card2:rgba(255,255,255,.09);
  --border:rgba(255,255,255,.12);
  --text:#EAF0FF;
  --muted:rgba(234,240,255,.72);
  --neon:#57D6FF;
  --neon2:#B857FF;
  --good:#38E8A1;
  --bad:#FF5F7A;
  --shadow: 0 20px 70px rgba(0,0,0,.55);
  --radius: 18px;
}

*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Arial, "Noto Sans", "Helvetica Neue", sans-serif;
  color:var(--text);
  background:
    radial-gradient(1000px 600px at 20% 10%, rgba(87,214,255,.18), transparent 60%),
    radial-gradient(900px 650px at 80% 15%, rgba(184,87,255,.16), transparent 60%),
    radial-gradient(800px 600px at 50% 95%, rgba(56,232,161,.12), transparent 60%),
    linear-gradient(180deg, var(--bg0), var(--bg1));
}

a{color:inherit;text-decoration:none}
.container{max-width:1100px;margin:0 auto;padding:22px}
@media (max-width: 520px){.container{padding:14px}}

.topbar{
  display:flex;gap:14px;align-items:center;justify-content:space-between;
  padding:14px 16px;border:1px solid var(--border);
  background:linear-gradient(180deg, rgba(255,255,255,.08), rgba(255,255,255,.03));
  border-radius:var(--radius);box-shadow:var(--shadow);
  backdrop-filter: blur(10px);
}
.brand{display:flex;gap:10px;align-items:center}
.logo{
  width:34px;height:34px;border-radius:12px;
  background: radial-gradient(circle at 30% 30%, var(--neon), rgba(87,214,255,.15) 55%, transparent 70%),
              radial-gradient(circle at 70% 60%, var(--neon2), rgba(184,87,255,.12) 55%, transparent 70%),
              rgba(255,255,255,.05);
  border:1px solid var(--border);
  box-shadow:0 0 0 1px rgba(87,214,255,.14), 0 0 20px rgba(87,214,255,.08);
}
.brand h1{font-size:15px;margin:0;letter-spacing:.3px}
.nav{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.nav a{white-space:nowrap}
.pill{
  padding:9px 12px;border-radius:999px;border:1px solid var(--border);
  background:rgba(255,255,255,.05);
}
@media (max-width: 520px){
  .topbar{padding:12px;flex-direction:column;align-items:stretch}
  .brand{width:100%;justify-content:flex-start}
  .nav{width:100%;justify-content:flex-start}
  .nav .pill{flex:0 0 auto}
  .pill{padding:8px 10px}
  .brand h1{font-size:14px}
}
.pill:hover{border-color:rgba(87,214,255,.45);box-shadow:0 0 0 2px rgba(87,214,255,.12)}
.pill.active{border-color:rgba(87,214,255,.55);background:rgba(87,214,255,.10)}

.grid{display:grid;gap:16px}
.grid.cols-2{grid-template-columns:1fr}
@media (min-width: 980px){.grid.cols-2{grid-template-columns:1.2fr .8fr}}

.card{
  border:1px solid var(--border);
  background: linear-gradient(180deg, rgba(255,255,255,.08), rgba(255,255,255,.03));
  border-radius:var(--radius);
  box-shadow:var(--shadow);
  padding:16px;
  backdrop-filter: blur(10px);
}
.card h2{margin:0 0 10px 0;font-size:14px;letter-spacing:.4px;color:rgba(234,240,255,.92)}
.muted{color:var(--muted)}
.kpi{display:grid;grid-template-columns:repeat(2, minmax(0,1fr));gap:10px}
@media (min-width: 700px){.kpi{grid-template-columns:repeat(4, minmax(0,1fr))}}
@media (max-width: 420px){.kpi{grid-template-columns:1fr}}
.kpi .item{
  padding:12px;border-radius:14px;border:1px solid var(--border);
  background:rgba(255,255,255,.04)
}
.kpi .label{font-size:12px;color:var(--muted)}
.kpi .value{font-size:18px;font-weight:650;margin-top:6px}
.value.good{color:var(--good)}
.value.bad{color:var(--bad)}

.form{display:grid;gap:10px}
.row{display:grid;gap:10px}
@media (min-width: 720px){.row.cols-2{grid-template-columns:1fr 1fr}}
label{font-size:12px;color:var(--muted)}
input,textarea,select{
  width:100%;
  padding:11px 12px;
  border-radius:12px;
  border:1px solid var(--border);
  background:rgba(0,0,0,.20);
  color:var(--text);
  outline:none;
}
input:focus,textarea:focus,select:focus{border-color:rgba(87,214,255,.55);box-shadow:0 0 0 3px rgba(87,214,255,.10)}
textarea{min-height:84px;resize:vertical}

.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:11px 14px;border-radius:12px;border:1px solid rgba(87,214,255,.55);
  background: linear-gradient(180deg, rgba(87,214,255,.22), rgba(87,214,255,.08));
  color:var(--text);cursor:pointer;font-weight:650;
}
.btn:hover{box-shadow:0 0 0 3px rgba(87,214,255,.12)}
.btn.secondary{
  border-color:var(--border);
  background:rgba(255,255,255,.05);
}
.btn.danger{border-color:rgba(255,95,122,.6);background:rgba(255,95,122,.10)}

.table-wrap{overflow:auto;border-radius:14px;border:1px solid var(--border)}
table{width:100%;border-collapse:collapse;min-width:760px}
@media (max-width: 520px){
  table{min-width:680px}
}

/* Acciones (botones) en móvil: stack vertical */
.actions{display:flex;gap:10px;flex-wrap:wrap}
@media (max-width: 520px){
  .actions{flex-direction:column}
  .actions > .btn,
  .actions > a.btn,
  .actions > button.btn{width:100%}
}

/* Tablas responsivas en móvil: modo “tarjeta” */
@media (max-width: 640px){
  .table-wrap{overflow:visible}
  table{min-width:0}
  thead{display:none}
  tbody{display:block}
  tr{display:block;border:1px solid rgba(255,255,255,.10);border-radius:14px;margin:10px 0;overflow:hidden;background:rgba(255,255,255,.03)}
  td{display:flex;justify-content:space-between;gap:12px;padding:10px 12px;border-bottom:1px solid rgba(255,255,255,.08)}
  td:last-child{border-bottom:none}
  td::before{content:attr(data-label);font-weight:650;color:var(--muted)}
}
th,td{padding:12px 12px;border-bottom:1px solid rgba(255,255,255,.08);text-align:left}
th{font-size:12px;color:var(--muted);font-weight:650;letter-spacing:.35px}
td{font-size:13px}
.tag{display:inline-flex;padding:4px 10px;border-radius:999px;border:1px solid var(--border);background:rgba(255,255,255,.04);font-size:12px}
.tag.good{border-color:rgba(56,232,161,.45);background:rgba(56,232,161,.08)}
.tag.bad{border-color:rgba(255,95,122,.45);background:rgba(255,95,122,.08)}

.flash{display:grid;gap:8px;margin:14px 0}
.flash .msg{
  padding:12px 12px;border-radius:14px;border:1px solid var(--border);
  background:rgba(255,255,255,.05)
}
.flash .msg.success{border-color:rgba(56,232,161,.40);background:rgba(56,232,161,.08)}
.flash .msg.error{border-color:rgba(255,95,122,.40);background:rgba(255,95,122,.08)}

.footer{margin:22px 0;color:rgba(234,240,255,.55);font-size:12px;text-align:center}

.spark{
  width:100%;
  height:84px;
  border-radius:14px;
  border:1px solid var(--border);
  background:rgba(255,255,255,.03);
}

