/* ---------- AUTH PAGES (login / install) ---------- */
.auth-body{
  background:linear-gradient(180deg,#FFFFFF 0%, #EAF6FD 100%);
  min-height:100vh;
  display:flex;
  align-items:center;
  justify-content:center;
  font-family:'Segoe UI','Helvetica Neue',Arial,sans-serif;
  color:#1B2733;
  margin:0;
  padding:24px;
}
.auth-card{
  background:#fff;
  max-width:440px;
  width:100%;
  padding:34px 32px;
  border-radius:14px;
  box-shadow:0 8px 30px rgba(15,74,138,0.12);
  text-align:center;
}
.auth-logo{ height:92px; margin-bottom:20px; }
.auth-card h1{ font-size:20px; margin:0 0 6px; color:#0B3A6E; }
.form-stack{ text-align:left; margin-top:18px; display:flex; flex-direction:column; gap:14px; }
.form-stack label{ font-size:13px; font-weight:600; color:#0B3A6E; display:flex; flex-direction:column; gap:5px; }
.form-stack input, .form-stack select, .form-stack textarea{
  font-size:14px;
  padding:9px 12px;
  border:1px solid #CFE4F4;
  border-radius:8px;
  font-family:inherit;
}
.form-stack input:focus, .form-stack select:focus, .form-stack textarea:focus{
  outline:2px solid #1C9AD6;
  border-color:#1C9AD6;
}
.form-stack .btn{ margin-top:6px; justify-content:center; }
.back-link{ display:inline-block; margin-top:18px; font-size:13px; color:#6B7B8C; text-decoration:none; }
.back-link:hover{ text-decoration:underline; }

.alert{ padding:10px 14px; border-radius:8px; font-size:13.5px; text-align:left; margin-bottom:6px; }
.alert-error{ background:#FDECEC; color:#8F1B22; border:1px solid #F5C6C6; }
.alert-warn{ background:#FFF6E5; color:#7A5300; border:1px solid #F5DFA6; text-align:left; }
.alert-success{ background:#E9F8EE; color:#1D6B34; border:1px solid #BFE6CB; }

/* ---------- ADMIN SHELL ---------- */
.admin-body{ background:#F4F8FB; font-family:'Segoe UI','Helvetica Neue',Arial,sans-serif; color:#1B2733; margin:0; }
.admin-topbar{
  background:#0B3A6E;
  color:#fff;
  padding:0 20px;
  display:flex;
  align-items:center;
  gap:18px;
  height:58px;
}
.admin-topbar img{ height:30px; }
.admin-topbar .title{ font-weight:700; letter-spacing:0.3px; font-size:15px; }
.admin-topbar nav{ display:flex; gap:4px; flex:1; }
.admin-topbar nav a{
  color:#CFE4F4;
  text-decoration:none;
  font-size:13.5px;
  font-weight:600;
  padding:8px 12px;
  border-radius:6px;
}
.admin-topbar nav a:hover, .admin-topbar nav a.active{ background:rgba(255,255,255,0.12); color:#fff; }
.admin-topbar .user{ font-size:13px; color:#CFE4F4; display:flex; align-items:center; gap:10px; }
.admin-topbar .user a{ color:#fff; text-decoration:underline; }

.admin-wrap{ max-width:1100px; margin:0 auto; padding:24px 20px 60px; }
.admin-header{ display:flex; align-items:center; justify-content:space-between; gap:14px; margin-bottom:18px; flex-wrap:wrap; }
.admin-header h1{ font-size:21px; margin:0; color:#0B3A6E; }
.breadcrumb{ font-size:13px; color:#6B7B8C; margin-bottom:6px; }
.breadcrumb a{ color:#6B7B8C; }

.cards-grid{ display:grid; grid-template-columns:repeat(auto-fit, minmax(220px, 1fr)); gap:14px; margin-bottom:26px; }
.stat-card{ background:#fff; border-radius:10px; padding:18px; box-shadow:0 1px 3px rgba(15,74,138,0.08); }
.stat-card .num{ font-size:26px; font-weight:700; color:#0B3A6E; }
.stat-card .label{ font-size:12.5px; color:#6B7B8C; text-transform:uppercase; letter-spacing:0.4px; }

.panel{ background:#fff; border-radius:10px; box-shadow:0 1px 3px rgba(15,74,138,0.08); margin-bottom:20px; overflow:hidden; }
.panel-header{ padding:14px 18px; border-bottom:1px solid #E7F0F8; display:flex; align-items:center; justify-content:space-between; gap:10px; flex-wrap:wrap; }
.panel-header h2{ font-size:15px; margin:0; color:#0B3A6E; }
.panel-body{ padding:8px 18px 18px; }

table.admin-table{ width:100%; border-collapse:collapse; }
table.admin-table th{
  text-align:left; font-size:11.5px; color:#6B7B8C; text-transform:uppercase; letter-spacing:0.4px;
  padding:8px 10px; border-bottom:1.4px solid #0F4A8A;
}
table.admin-table td{ padding:9px 10px; border-bottom:1px solid #E7F0F8; font-size:13.5px; vertical-align:middle; }
table.admin-table tr:hover td{ background:#F7FBFE; }
table.admin-table td.num{ text-align:right; font-variant-numeric:tabular-nums; white-space:nowrap; }
table.admin-table td.actions{ text-align:right; white-space:nowrap; }
table.admin-table .muted-code{ font-family:'Consolas','Courier New',monospace; font-size:12px; color:#6B7B8C; }

.btn{
  display:inline-flex; align-items:center; gap:6px; padding:8px 14px; border-radius:7px;
  font-size:13.5px; font-weight:600; text-decoration:none; border:1px solid transparent; cursor:pointer;
  background:#fff;
}
.btn-primary{ background:#0F4A8A; color:#fff; }
.btn-primary:hover{ background:#0B3A6E; }
.btn-outline{ background:#fff; color:#0F4A8A; border-color:#CFE4F4; }
.btn-outline:hover{ background:#EAF5FC; }
.btn-danger{ background:#fff; color:#B4232C; border-color:#F1C6C6; }
.btn-danger:hover{ background:#FDECEC; }
.btn-ghost{ background:transparent; color:#6B7B8C; border-color:transparent; }
.btn-ghost:hover{ background:#EEF4F9; }
.btn-xs{ padding:4px 9px; font-size:12px; }
button.btn{ font-family:inherit; }

.inline-form{ display:inline; }
.row-actions{ display:flex; gap:6px; justify-content:flex-end; }

.field-grid{ display:grid; grid-template-columns:repeat(auto-fit, minmax(160px,1fr)); gap:12px; }
.field-grid label{ font-size:12.5px; font-weight:600; color:#0B3A6E; display:flex; flex-direction:column; gap:5px; }
.field-grid input, .field-grid select{ font-size:14px; padding:8px 10px; border:1px solid #CFE4F4; border-radius:7px; font-family:inherit; }
.field-grid input:focus, .field-grid select:focus{ outline:2px solid #1C9AD6; border-color:#1C9AD6; }

.toolbar{ display:flex; gap:10px; align-items:center; flex-wrap:wrap; margin-bottom:14px; }
.toolbar input[type=search]{ padding:8px 12px; border:1px solid #CFE4F4; border-radius:7px; font-size:13.5px; min-width:220px; }

.badge{ display:inline-block; padding:2px 9px; border-radius:999px; font-size:11px; font-weight:700; background:#EAF5FC; color:#0F4A8A; }
.badge-ok{ background:#E9F8EE; color:#1D6B34; }
.badge-warn{ background:#FFF6E5; color:#7A5300; }
.badge-danger{ background:#FDECEC; color:#8F1B22; }

/* ---------- PAGOS RECURRENTES ---------- */
.table-scroll{ overflow-x:auto; }
.pagos-row-enviado{ opacity:0.6; }
.pagos-edit-row{ display:none; }
.pagos-edit-row.active{ display:table-row; }
.pagos-edit-row td{ background:#F7FBFE; padding:14px 16px; }
.pagos-edit-grid{ display:grid; grid-template-columns:repeat(auto-fit, minmax(260px,1fr)); gap:18px; margin-bottom:10px; }
.pagos-edit-grid .field-grid{ grid-template-columns:1fr 1fr; align-items:end; }

/* ---------- INVENTARIO FÍSICO ---------- */
.modal-overlay{
  position:fixed; inset:0; background:rgba(11,58,110,0.45);
  display:flex; align-items:flex-start; justify-content:center;
  padding:6vh 16px; z-index:100; overflow-y:auto;
}
.modal-overlay[hidden]{ display:none; }
.modal-box{
  background:#fff; border-radius:14px; box-shadow:0 20px 60px rgba(15,74,138,0.3);
  max-width:480px; width:100%; padding:24px 26px; display:flex; flex-direction:column; gap:12px;
}
.modal-head{ display:flex; align-items:center; justify-content:space-between; margin-bottom:2px; }
.modal-head h2{ font-size:18px; margin:0; color:#0B3A6E; }
.modal-box label{ font-size:13px; font-weight:600; color:#0B3A6E; display:flex; flex-direction:column; gap:5px; }
.modal-box input{ font-size:15px; padding:10px 12px; border:1px solid #CFE4F4; border-radius:8px; font-family:inherit; }
.modal-box input:focus{ outline:2px solid #1C9AD6; border-color:#1C9AD6; }
.modal-box input:disabled{ background:#F4F8FB; color:#9AAAB8; }

.cap-sugerencias{ display:flex; flex-direction:column; gap:2px; max-height:220px; overflow-y:auto; }
.cap-sug-item{
  display:flex; gap:10px; align-items:baseline; text-align:left; width:100%;
  padding:8px 10px; border:1px solid transparent; border-radius:7px; background:#fff; cursor:pointer; font-family:inherit;
}
.cap-sug-item:hover{ background:#EAF5FC; border-color:#CFE4F4; }
.cap-sug-clave{ font-family:'Consolas','Courier New',monospace; font-size:12px; color:#0F4A8A; font-weight:700; white-space:nowrap; }
.cap-sug-nombre{ font-size:13px; color:#1B2733; }
.cap-sug-vacio{ font-size:13px; color:#6B7B8C; padding:6px 2px; }
.cap-seleccionado{ font-size:13.5px; background:#EAF5FC; border-radius:8px; padding:8px 12px; color:#0B3A6E; }
.cap-feedback:empty{ display:none; }
.celda-editable{ cursor:pointer; }
.celda-editable:hover{ background:#EAF5FC; text-decoration:underline dotted; text-underline-offset:3px; }
.celda-input{
  width:70px; font-size:13.5px; padding:3px 6px; border:1px solid #1C9AD6; border-radius:5px;
  text-align:right; font-family:inherit; font-variant-numeric:tabular-nums;
}

/* ---------- TABS (ej. Configuración) ---------- */
.tabs-nav{ display:flex; gap:4px; border-bottom:2px solid #E7F0F8; margin-bottom:20px; flex-wrap:wrap; }
.tabs-nav button{
  background:transparent; border:none; border-bottom:2px solid transparent; margin-bottom:-2px;
  padding:10px 16px; font-size:13.5px; font-weight:600; color:#6B7B8C; cursor:pointer; font-family:inherit;
}
.tabs-nav button:hover{ color:#0F4A8A; }
.tabs-nav button.active{ color:#0B3A6E; border-bottom-color:#0F4A8A; }
.tab-panel{ display:none; }
.tab-panel.active{ display:block; }
