/* ═══════════════════════════════════════════════════════════
   LISTO ADMIN v3 · Panel de Control
   Dark theme · Neon verde · Compatible con v2
   ═══════════════════════════════════════════════════════════ */
:root {
  --bg-darkest:#050a08;--bg-dark:#0a1410;--bg-panel:#0f1e18;--bg-card:#122620;--bg-card-hover:#163029;
  --green-primary:#0f6b4b;--green-dark:#0a4d36;--neon-lime:#a8e635;--neon-glow:rgba(168,230,53,0.4);
  --text-white:#f5fbf7;--text-light:rgba(245,251,247,0.82);--text-muted:rgba(245,251,247,0.55);
  --border-soft:rgba(168,230,53,0.12);--border-neon:rgba(168,230,53,0.4);--border-card:rgba(255,255,255,0.06);
  --shadow-card:0 20px 50px rgba(0,0,0,0.35);
  --font-display:'Outfit',system-ui,sans-serif;--font-body:'Sora',system-ui,sans-serif;
  --sidebar-w:240px;
}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:var(--font-body);background:var(--bg-darkest);color:var(--text-white);font-size:14px;line-height:1.6;-webkit-font-smoothing:antialiased}
h1,h2,h3,h4{font-family:var(--font-display);font-weight:800;letter-spacing:-0.02em}
a{color:inherit;text-decoration:none}
code{background:rgba(168,230,53,0.15);color:var(--neon-lime);padding:2px 6px;border-radius:4px;font-size:12px}

/* ─ LAYOUT ─ */
.admin-body{display:grid;grid-template-columns:var(--sidebar-w) 1fr;min-height:100vh}
.admin-main{padding:32px;overflow-x:hidden;background:var(--bg-dark)}

/* ─ SIDEBAR ─ */
.admin-sidebar{background:var(--bg-darkest);border-right:1px solid var(--border-soft);display:flex;flex-direction:column;position:sticky;top:0;height:100vh;overflow-y:auto}
.sidebar-brand{display:flex;align-items:center;gap:12px;padding:24px 20px;border-bottom:1px solid var(--border-soft)}
.sidebar-logo{color:var(--neon-lime);filter:drop-shadow(0 0 8px var(--neon-glow))}
.sidebar-title{font-family:var(--font-display);font-weight:800;font-size:1.1rem;color:var(--text-white)}
.sidebar-sub{font-size:11px;color:var(--text-muted);margin-top:1px}
.sidebar-nav{flex:1;padding:16px 12px;display:flex;flex-direction:column;gap:4px}
.sidebar-link{display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:10px;color:var(--text-muted);font-size:13px;font-weight:500;transition:all .2s;cursor:pointer}
.sidebar-link:hover,.sidebar-link.active{background:rgba(168,230,53,0.1);color:var(--neon-lime)}
.sidebar-link.active{border-left:3px solid var(--neon-lime);padding-left:11px}
.sidebar-footer{padding:16px 12px;border-top:1px solid var(--border-soft);display:flex;flex-direction:column;gap:8px}
.sidebar-btn-sec,.sidebar-btn-logout{display:flex;align-items:center;gap:8px;padding:9px 14px;border-radius:10px;font-size:13px;font-weight:500;text-decoration:none;transition:all .2s}
.sidebar-btn-sec{color:var(--text-muted);background:var(--bg-panel)}
.sidebar-btn-sec:hover{color:var(--text-white);background:var(--bg-card)}
.sidebar-btn-logout{color:#ff6b6b;background:rgba(255,107,107,0.1)}
.sidebar-btn-logout:hover{background:rgba(255,107,107,0.2)}

/* ─ TOPBAR ─ */
.admin-topbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:28px;padding-bottom:20px;border-bottom:1px solid var(--border-soft)}
.admin-h1{font-size:1.6rem;font-weight:800;color:var(--text-white)}
.admin-sub{color:var(--text-muted);font-size:13px;margin-top:2px}
.admin-userbox{display:flex;align-items:center;gap:10px}
.user-avatar{width:34px;height:34px;border-radius:50%;background:var(--green-primary);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px;color:var(--neon-lime);border:2px solid var(--border-neon)}
.user-name{font-size:13px;font-weight:600;color:var(--text-light)}
.user-badge-rol{font-size:10px;font-weight:700;background:rgba(168,230,53,0.15);color:var(--neon-lime);padding:3px 8px;border-radius:20px;letter-spacing:.04em}

/* ─ ALERTS ─ */
.admin-alert{padding:12px 18px;border-radius:10px;font-size:14px;margin-bottom:20px;font-weight:500}
.admin-alert--success{background:rgba(168,230,53,0.12);color:var(--neon-lime);border:1px solid rgba(168,230,53,0.3)}
.admin-alert--error{background:rgba(255,107,107,0.1);color:#ff8a8a;border:1px solid rgba(255,107,107,0.3)}
.admin-alert--warning{background:rgba(245,158,11,0.12);color:#fbbf24;border:1px solid rgba(245,158,11,0.35)}

/* ─ SECTIONS ─ */
.admin-section{margin-bottom:32px}
.admin-section-head{margin-bottom:20px}
.admin-section-head h2{font-size:1.2rem;margin-bottom:4px}
.admin-section-head p{color:var(--text-muted);font-size:13px}
.admin-card{background:var(--bg-card);border:1px solid var(--border-card);border-radius:16px;padding:24px}
.admin-card-title{font-size:1rem;font-weight:700;margin-bottom:16px;color:var(--text-white)}
.text-muted-admin{color:var(--text-muted);font-size:13px}

/* ─ STATS CARDS ─ */
.stats-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:32px}
.stat-card{background:var(--bg-card);border:1px solid var(--border-card);border-radius:20px;padding:28px 20px;text-align:center;transition:border-color .2s,transform .2s}
.stat-card:hover{border-color:rgba(168,230,53,.35);transform:translateY(-2px)}
.stat-num{font-family:var(--font-display);font-size:2.8rem;font-weight:800;color:var(--text-white);line-height:1;margin-bottom:8px}
.stat-label{font-size:0.8rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em}
.stat-num{font-family:var(--font-display);font-size:2.2rem;font-weight:900;color:var(--neon-lime)}
.stat-label{font-size:12px;color:var(--text-muted);margin-top:4px;text-transform:uppercase;letter-spacing:.04em}
.stat-card--warn .stat-num{color:#ffb347}
.stat-card--ok .stat-num{color:#7dd957}
.stat-card--wa .stat-num{font-size:1.6rem}

/* ─ COMUNAS CHART ─ */
.comunas-chart{display:flex;flex-direction:column;gap:10px}
.comuna-row{display:grid;grid-template-columns:140px 1fr 40px;align-items:center;gap:12px}
.comuna-name{font-size:13px;font-weight:600;color:var(--text-light);text-align:right}
.comuna-bar-wrap{background:rgba(255,255,255,0.06);border-radius:4px;height:8px;overflow:hidden}
.comuna-bar{height:100%;background:linear-gradient(90deg,var(--green-primary),var(--neon-lime));border-radius:4px;transition:width .6s cubic-bezier(.4,0,.2,1)}
.comuna-cnt{font-size:13px;font-weight:700;color:var(--neon-lime)}

/* ─ TABLE ─ */
.table-wrap{overflow-x:auto}
.admin-table{width:100%;border-collapse:collapse;font-size:13px}
.admin-table th{padding:10px 12px;text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);border-bottom:1px solid var(--border-soft);white-space:nowrap}
.admin-table td{padding:10px 12px;border-bottom:1px solid rgba(255,255,255,0.04);vertical-align:middle}
.admin-table tr:last-child td{border-bottom:none}
.admin-table tr:hover td{background:rgba(168,230,53,0.03)}
.badge-plan{background:rgba(168,230,53,0.1);color:var(--neon-lime);padding:2px 8px;border-radius:20px;font-size:11px;font-weight:600;white-space:nowrap}
.btn-mini{padding:4px 10px;border:1px solid var(--border-neon);background:transparent;color:var(--neon-lime);border-radius:6px;font-size:11px;font-weight:600;cursor:pointer;transition:all .2s}
.btn-mini:hover{background:rgba(168,230,53,0.15)}
.btn-mini--danger{border-color:rgba(255,107,107,0.4);color:#ff8a8a}
.btn-mini--danger:hover{background:rgba(255,107,107,0.1)}
.wa-badge{font-size:12px;font-weight:700}.wa-ok{color:var(--neon-lime)}.wa-no{color:var(--text-dim)}

/* ─ ESTADO SELECT ─ */
.estado-select{background:var(--bg-panel);border:1px solid var(--border-card);color:var(--text-white);padding:4px 8px;border-radius:6px;font-size:12px;cursor:pointer;font-family:var(--font-body)}
.estado-nuevo{color:#7dd9ff;border-color:rgba(125,217,255,0.3)}
.estado-contactado{color:#ffb347;border-color:rgba(255,179,71,0.3)}
.estado-instalado{color:var(--neon-lime);border-color:var(--border-neon)}
.estado-descartado{color:#ff8a8a;border-color:rgba(255,138,138,0.3)}

/* ─ FORMS ─ */
.admin-form{display:flex;flex-direction:column;gap:20px}
.form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px}
.form-group{display:flex;flex-direction:column;gap:6px}
.form-group label,.form-label-admin{font-size:12px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}
.form-input-admin {
  width: 100%;
  padding: 13px 16px;
  background: rgba(15, 30, 24, 0.5);
  border: 1px solid rgba(168, 230, 53, 0.2);
  border-radius: 10px;
  color: var(--text-white);
  font-family: var(--font-body);
  font-size: 0.95rem;
  transition: all 0.25s ease;
  height: 48px;
  display: flex;
  align-items: center;
}
.form-input-admin:focus {
  outline: none;
  background: rgba(15, 30, 24, 0.7);
  border-color: rgba(168, 230, 53, 0.45);
  box-shadow: 0 0 0 3px rgba(168, 230, 53, 0.1);
}
.form-input-admin::placeholder {
  color: var(--text-dim);
}
.form-input-admin:focus{border-color:var(--border-neon);box-shadow:0 0 0 3px rgba(168,230,53,0.1)}
.form-input-admin small{font-size:11px;color:var(--text-dim);margin-top:4px}
small{font-size:11px;color:var(--text-dim)}
textarea.form-input-admin{resize:vertical;min-height:80px}

/* ─ BUTTONS ─ */
.btn-save-primary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  background: var(--neon-lime);
  color: var(--bg-darkest);
  padding: 13px 24px;
  border: none;
  border-radius: 10px;
  font-size: 0.95rem;
  font-weight: 700;
  cursor: pointer;
  transition: all 0.25s ease;
  height: 48px;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  box-shadow: 0 8px 24px rgba(168, 230, 53, 0.35);
}
.btn-save-primary:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 32px rgba(168, 230, 53, 0.55);
}
.btn-save-primary:active {
  transform: translateY(0);
  box-shadow: 0 4px 16px rgba(168, 230, 53, 0.35);
}
.btn-save-primary:hover{transform:translateY(-1px);box-shadow:0 8px 24px rgba(168,230,53,0.35)}
.btn-save-secondary{display:inline-flex;align-items:center;gap:8px;padding:10px 20px;background:var(--bg-panel);color:var(--neon-lime);border:1px solid var(--border-neon);font-weight:600;font-size:13px;border-radius:10px;cursor:pointer;font-family:var(--font-body);transition:all .2s}
.btn-save-secondary:hover{background:rgba(168,230,53,0.1)}
.admin-save-bar{display:flex;justify-content:flex-end;padding-top:8px;border-top:1px solid var(--border-soft)}

/* ─ PLANS EDITOR ─ */
.planes-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px}
.plan-editor{background:var(--bg-card);border:1px solid var(--border-card);border-radius:16px;padding:24px}
.plan-editor--featured{border-color:var(--border-neon);box-shadow:0 0 20px rgba(168,230,53,0.1)}
.plan-editor-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}
.plan-editor-head h3{font-size:1rem;color:var(--text-white)}
.plan-editor-toggles{display:flex;gap:16px}

/* ─ SWITCHES ─ */
.switch{display:inline-flex;align-items:center;gap:8px;cursor:pointer}
.switch input{display:none}
.switch-slider{width:36px;height:20px;background:rgba(255,255,255,0.1);border-radius:20px;position:relative;transition:.3s}
.switch-slider::after{content:'';position:absolute;top:3px;left:3px;width:14px;height:14px;background:#fff;border-radius:50%;transition:.3s}
.switch input:checked~.switch-slider{background:var(--green-primary)}
.switch input:checked~.switch-slider::after{transform:translateX(16px)}
.switch--featured input:checked~.switch-slider{background:var(--neon-lime)}
.switch-label{font-size:12px;color:var(--text-muted)}
.switch--big{padding:16px;background:var(--bg-panel);border-radius:12px;border:1px solid var(--border-card);gap:12px}
.switch--big .switch-label{font-size:14px;font-weight:600;color:var(--text-white)}

/* ─ WHATSAPP SECTION ─ */
.wa-orientacion{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:20px}
.wa-option-card{background:var(--bg-panel);border:1px solid var(--border-card);border-radius:14px;padding:20px;cursor:pointer;transition:all .2s}
.wa-option-card:hover,.wa-option-card.active{border-color:var(--border-neon);background:var(--bg-card)}
.wa-option-title{font-weight:700;font-size:15px;margin-bottom:8px;display:flex;align-items:center;gap:8px}
.badge-gratis{background:rgba(168,230,53,0.15);color:var(--neon-lime);padding:2px 8px;border-radius:20px;font-size:10px;font-weight:700}
.badge-pago{background:rgba(255,179,71,0.15);color:#ffb347;padding:2px 8px;border-radius:20px;font-size:10px;font-weight:700}
.wa-option-desc{font-size:13px;color:var(--text-muted);margin-bottom:12px}
.wa-option-steps{font-size:12px;color:var(--text-light)}
.wa-option-steps ol{margin:6px 0 0 16px;display:flex;flex-direction:column;gap:4px}
.plantilla-card{background:var(--bg-panel);border:1px solid var(--border-card);border-radius:14px;padding:20px;margin-bottom:16px}
.trigger-badge{background:rgba(168,230,53,0.1);color:var(--neon-lime);padding:2px 8px;border-radius:20px;font-size:11px;margin-left:10px}

/* ─ USUARIOS ─ */
.rol-badge{padding:3px 8px;border-radius:20px;font-size:11px;font-weight:700}
.rol-superadmin{background:rgba(168,230,53,0.2);color:var(--neon-lime)}
.rol-admin{background:rgba(125,217,255,0.15);color:#7dd9ff}
.rol-viewer{background:rgba(255,255,255,0.08);color:var(--text-muted)}
.estado-activo{color:var(--neon-lime);font-size:12px}
.estado-inactivo{color:#ff8a8a;font-size:12px}

/* ─ MODAL ─ */
.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,0.7);backdrop-filter:blur(8px);z-index:9999;display:flex;align-items:center;justify-content:center;padding:20px}
.modal-card{background:var(--bg-card);border:1px solid var(--border-neon);border-radius:20px;padding:32px;width:100%;max-width:560px;box-shadow:var(--shadow-card)}

/* ─ LOGIN ─ */
/* LOGIN v4 — pantalla completa centrada */
.login-body {
  margin: 0;
  background: var(--bg-darkest);
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  /* orbs decorativos */
  background-image:
    radial-gradient(ellipse 700px 500px at 30% 20%, rgba(15,107,75,0.22) 0%, transparent 70%),
    radial-gradient(ellipse 500px 400px at 70% 80%, rgba(10,77,54,0.15) 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.login-wrap {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
  position: relative;
  z-index: 2;
}
.login-card {
  background: rgba(18, 38, 32, 0.9);
  border: 1px solid rgba(168,230,53,0.3);
  border-radius: 32px;
  padding: 64px 56px 56px;
  width: 100%;
  max-width: 480px;
  box-shadow:
    0 0 120px rgba(168,230,53,0.12),
    0 50px 100px rgba(0,0,0,0.7),
    inset 0 1px 0 rgba(255,255,255,0.05);
  backdrop-filter: blur(32px);
  -webkit-backdrop-filter: blur(32px);
}
.login-logo {
  display: flex;
  justify-content: center;
  margin-bottom: 24px;
  filter: drop-shadow(0 0 20px rgba(168,230,53,0.5));
  animation: logoBreathe 3s ease-in-out infinite;
}
@keyframes logoBreathe {
  0%, 100% { filter: drop-shadow(0 0 16px rgba(168,230,53,0.4)); }
  50% { filter: drop-shadow(0 0 28px rgba(168,230,53,0.7)); }
}
.login-title {
  font-size: 1.6rem;
  font-weight: 800;
  text-align: center;
  margin: 0 0 8px;
  color: var(--text-white);
  letter-spacing: -0.02em;
}
.login-sub {
  text-align: center;
  color: var(--text-muted);
  margin-bottom: 40px;
  font-size: 12px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-weight: 500;
}
.login-form { display: flex; flex-direction: column; gap: 18px; }

/* v4.5 - filtros de solicitudes */
.solicitudes-filtros{display:grid;grid-template-columns:repeat(6,minmax(120px,1fr));gap:10px;align-items:center;margin:0 0 14px}
.solicitudes-filtros .form-input-admin{height:38px;padding:8px 10px;font-size:13px}
.check-filter{display:flex;align-items:center;gap:8px;color:var(--text-light);font-size:13px;white-space:nowrap}
.reiterados-box{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:0 0 14px;color:var(--text-light);font-size:13px}
.reiterados-box span,.badge-repeat{display:inline-flex;align-items:center;border:1px solid rgba(168,230,53,.35);background:rgba(168,230,53,.08);color:var(--neon-lime);border-radius:999px;padding:3px 8px;font-weight:700;font-size:12px;white-space:nowrap}
@media(max-width:1100px){.solicitudes-filtros{grid-template-columns:repeat(2,minmax(120px,1fr))}}
@media(max-width:680px){.solicitudes-filtros{grid-template-columns:1fr}}

/* v4.5.2 - ajuste login: centrado real y tamaño correcto */
body.admin-body.login-body{
  display:flex !important;
  grid-template-columns:none !important;
  align-items:center !important;
  justify-content:center !important;
  min-height:100vh !important;
  width:100%;
}
body.admin-body.login-body .login-wrap{
  min-height:100vh;
  width:100%;
  display:flex;
  align-items:center;
  justify-content:center;
}
body.admin-body.login-body .login-card{
  width:min(480px, calc(100vw - 48px));
  margin:auto;
}

/* v4.5.6 - Solicitudes completa */
.solicitudes-filtros--full{grid-template-columns:repeat(4,minmax(160px,1fr));align-items:center;}
.admin-table--solicitudes th,.admin-table--solicitudes td{white-space:nowrap;}
@media(max-width:1200px){.solicitudes-filtros--full{grid-template-columns:repeat(2,minmax(140px,1fr));}}
@media(max-width:720px){.solicitudes-filtros--full{grid-template-columns:1fr;}}

/* ListoNet v7.8 responsive hardening */
@media (max-width: 900px){
  .admin-layout{display:block!important;}
  .admin-sidebar{position:relative!important;width:100%!important;min-height:auto!important;}
  .admin-main,.main-content{margin-left:0!important;width:100%!important;padding:16px!important;}
  .admin-topbar{flex-direction:column!important;align-items:flex-start!important;gap:10px!important;}
  .form-grid-2,.form-grid-3,.inv-form,.fin-form{grid-template-columns:1fr!important;}
  .fin-filtros,.filters-row,.plan-tabs{flex-direction:column!important;align-items:stretch!important;}
  .fin-filtros input,.fin-filtros select,.fin-filtros button,.filters-row input,.filters-row select,.filters-row button{width:100%!important;}
  .fin-table-wrap,.table-wrap,.admin-table-wrap{overflow-x:auto!important;}
  table{min-width:900px;}
  .modal-card,.modal-box{width:calc(100vw - 24px)!important;max-width:calc(100vw - 24px)!important;max-height:88vh!important;overflow:auto!important;}
  .plans-grid,.cards-grid{grid-template-columns:1fr!important;}
}

/* === COMPATIBILIDAD v10 === */
:root {
  --bg-darker: #0a1410;
  --bg-darkest-alt: #050a08;
  --border-neon: rgba(168,230,53,0.4);
}
/* Layout universal v10 */
.admin-body { display:flex; min-height:100vh; }
.admin-sidebar { width:220px; min-width:220px; flex-shrink:0; }
.admin-main { flex:1; min-width:0; padding:32px; overflow-x:hidden; background:var(--bg-dark); }
/* Topbar */
.admin-topbar { display:flex; align-items:center; justify-content:space-between; margin-bottom:28px; padding-bottom:20px; border-bottom:1px solid var(--border-soft); flex-wrap:wrap; gap:12px; }
.admin-h1 { font-size:1.5rem; font-weight:800; color:var(--text-white); margin:0; }
.admin-sub { color:var(--text-muted); font-size:13px; margin:4px 0 0; }
/* Cards grid */
.stats-row { display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:14px; margin-bottom:28px; }
.stat-card { background:var(--bg-card); border:1px solid var(--border-soft); border-radius:14px; padding:18px 20px; }
.stat-num { font-size:28px; font-weight:800; color:var(--neon-lime); font-family:var(--font-display); }
.stat-lbl { font-size:11px; color:var(--text-muted); text-transform:uppercase; letter-spacing:.06em; margin-top:4px; }
/* Tabla */
.admin-card { background:var(--bg-card); border:1px solid var(--border-soft); border-radius:16px; padding:24px; margin-bottom:22px; }
.admin-table-wrap { overflow-x:auto; }
.admin-table { width:100%; border-collapse:collapse; font-size:13px; }
.admin-table th { padding:12px 14px; text-align:left; background:var(--bg-darkest); color:var(--text-muted); font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.06em; border-bottom:1px solid var(--border-soft); }
.admin-table td { padding:12px 14px; border-bottom:1px solid rgba(255,255,255,.04); color:var(--text-white); }
.admin-table tr:last-child td { border-bottom:none; }
.admin-table tr:hover td { background:rgba(168,230,53,.03); }
/* Badges */
.badge { display:inline-block; padding:3px 10px; border-radius:20px; font-size:11px; font-weight:700; letter-spacing:.03em; }
.badge-verde { background:rgba(74,222,128,.15); color:#4ade80; }
.badge-rojo { background:rgba(255,107,107,.15); color:#ff6b6b; }
.badge-azul { background:rgba(59,130,246,.15); color:#60a5fa; }
.badge-naranja { background:rgba(251,146,60,.15); color:#fb923c; }
.badge-gris { background:rgba(107,114,128,.15); color:#9ca3af; }
.badge-lima { background:rgba(168,230,53,.15); color:#a8e635; }
/* Formularios */
.form-control { width:100%; background:var(--bg-card); border:1px solid var(--border-card); border-radius:10px; padding:10px 14px; color:var(--text-white); font-size:13px; font-family:var(--font-body); transition:border-color .2s; outline:none; box-sizing:border-box; }
.form-control:focus { border-color:var(--border-neon); box-shadow:0 0 0 3px rgba(168,230,53,.08); }
.form-control::placeholder { color:var(--text-muted); }
.form-control option { background:var(--bg-dark); }
.form-group { margin-bottom:16px; }
.form-group label { display:block; font-size:12px; font-weight:600; color:var(--text-muted); margin-bottom:6px; text-transform:uppercase; letter-spacing:.04em; }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.form-footer { display:flex; gap:10px; justify-content:flex-end; margin-top:24px; padding-top:20px; border-top:1px solid var(--border-soft); }
/* Botones */
.btn-neon { background:var(--neon-lime); color:#06130d; border:none; padding:10px 20px; border-radius:10px; font-weight:700; font-size:13px; cursor:pointer; transition:all .2s; }
.btn-neon:hover { background:#c5f500; box-shadow:0 0 20px rgba(168,230,53,.4); transform:translateY(-1px); }
.btn-outline { background:transparent; border:1px solid var(--border-neon); color:var(--neon-lime); padding:10px 20px; border-radius:10px; font-weight:600; font-size:13px; cursor:pointer; transition:all .2s; }
.btn-danger { background:rgba(255,107,107,.12); border:1px solid rgba(255,107,107,.28); color:#ff8a8a; padding:8px 14px; border-radius:8px; font-weight:600; font-size:12px; cursor:pointer; }
/* Modales */
.modal-overlay { display:none; position:fixed; inset:0; background:rgba(0,0,0,.75); z-index:900; align-items:center; justify-content:center; padding:20px; }
.modal-overlay.open { display:flex; }
.modal-box { background:var(--bg-card); border:1px solid var(--border-soft); border-radius:20px; width:100%; max-width:600px; max-height:90vh; overflow-y:auto; padding:28px; box-shadow:0 24px 80px rgba(0,0,0,.6); }
.modal-head { display:flex; justify-content:space-between; align-items:center; margin-bottom:22px; }
.modal-head h3 { margin:0; font-size:1.1rem; color:var(--text-white); }
.modal-close { background:transparent; border:0; color:var(--text-muted); font-size:22px; cursor:pointer; }
.modal-close:hover { color:var(--text-white); }
/* Tabs */
.tabs-row { display:flex; gap:4px; margin-bottom:20px; border-bottom:1px solid var(--border-soft); }
.tab-btn { background:transparent; border:none; border-bottom:2px solid transparent; padding:10px 16px; color:var(--text-muted); font-size:13px; font-weight:600; cursor:pointer; transition:all .2s; }
.tab-btn.active { color:var(--neon-lime); border-bottom-color:var(--neon-lime); }
/* Alertas */
.alert { padding:12px 16px; border-radius:10px; font-size:13px; font-weight:600; margin-bottom:16px; }
.alert-ok { background:rgba(168,230,53,.1); border:1px solid rgba(168,230,53,.25); color:var(--neon-lime); }
.alert-err { background:rgba(255,107,107,.1); border:1px solid rgba(255,107,107,.25); color:#ff8a8a; }
.alert-warn { background:rgba(251,146,60,.1); border:1px solid rgba(251,146,60,.25); color:#fb923c; }
/* Login */
.login-body { min-height:100vh; display:flex; align-items:center; justify-content:center; background:var(--bg-darkest); }
.login-wrap { width:100%; max-width:420px; padding:20px; }
.login-card { background:var(--bg-card); border:1px solid var(--border-soft); border-radius:24px; padding:44px; box-shadow:0 32px 80px rgba(0,0,0,.5); }
.login-logo { text-align:center; margin-bottom:12px; }
.login-sub { text-align:center; color:var(--text-muted); font-size:13px; margin-bottom:32px; }
