:root{
  --bg:#f8f9fb;
  --surface:#ffffff;
  --surface-alt:#f1f3f7;
  --border:#e5e7eb;
  --border-strong:#d1d5db;
  --text:#1a1a2e;
  --muted:#6b7280;
  --dim:#9ca3af;
  --energy:#d97706;
  --gold:#b45309;
  --accent:#7c3aed;
  --success:#059669;
  --success-light:#d1fae5;
  --danger:#dc2626;
  --danger-light:#fee2e2;
  --shadow:0 18px 50px rgba(26,26,46,.08);
  --radius:18px;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;
  min-height:100vh;
  background:radial-gradient(circle at top left,rgba(217,119,6,.11) 0,transparent 28rem),var(--bg);
  color:var(--text);
  font-family:'DM Sans','Segoe UI',ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,sans-serif;
}
a{color:inherit}
button,input,textarea{font:inherit}
.app-shell{width:min(100%,760px);margin:0 auto;padding:max(20px,env(safe-area-inset-top)) 20px 96px}
.topbar{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:28px;opacity:1}
.brand{display:inline-flex;align-items:center;gap:10px;text-decoration:none}
.brand-mark,.hero-icon,.action-icon{display:grid;place-items:center;background:linear-gradient(135deg,var(--energy),var(--gold));color:#fff;font-weight:800;box-shadow:0 8px 24px rgba(217,119,6,.18)}
.brand-mark{width:36px;height:36px;border-radius:10px;font-size:18px}.brand strong{font-size:18px}.brand small{display:block;color:var(--muted);font-size:11px;margin-top:1px}.hero-icon{width:64px;height:64px;border-radius:18px;font-size:28px;margin-bottom:18px}.action-icon{width:46px;height:46px;border-radius:14px;font-size:20px;flex:0 0 46px}.ghost-link,.small-primary{text-decoration:none;border:1px solid var(--border);padding:10px 14px;border-radius:999px;background:rgba(255,255,255,.72);font-weight:700}.small-primary{background:linear-gradient(135deg,var(--energy),var(--gold));border-color:transparent;color:#fff;font-weight:900}.page-head{margin:6px 0 22px}.inline-head{display:flex;align-items:center;justify-content:space-between;gap:14px}.eyebrow{color:var(--energy);font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;margin:0 0 6px}h1{font-size:clamp(30px,7vw,44px);line-height:1;margin:0 0 10px;letter-spacing:-.04em}h2{font-size:20px;margin:0 0 6px;letter-spacing:-.02em}.muted{color:var(--muted);margin:0;line-height:1.45}.hero-card,.empty-card,.data-card,.action-card{background:rgba(255,255,255,.9);border:1px solid rgba(229,231,235,.95);border-radius:var(--radius);box-shadow:var(--shadow)}.login-card{margin-top:10vh;padding:28px}.stack-form{display:grid;gap:14px}.stack-form label{display:grid;gap:8px;color:var(--muted);font-weight:700}.full-form{padding-bottom:12px}input,textarea{width:100%;border:1px solid var(--border);background:#fff;color:var(--text);border-radius:16px;padding:15px 16px;outline:none;min-height:54px}textarea{resize:vertical;line-height:1.45}input:focus,textarea:focus{border-color:var(--energy);box-shadow:0 0 0 4px rgba(217,119,6,.13)}.primary-btn,.secondary-btn{display:inline-flex;justify-content:center;align-items:center;min-height:54px;border:0;border-radius:16px;padding:14px 18px;font-weight:900;text-decoration:none;cursor:pointer}.primary-btn{background:linear-gradient(135deg,var(--energy),var(--gold));color:#fff;box-shadow:0 10px 26px rgba(217,119,6,.18)}.primary-btn:active{transform:translateY(1px)}.secondary-btn{background:var(--surface-alt);color:var(--text)}.action-grid,.card-list{display:grid;gap:14px}.action-card{display:flex;align-items:center;gap:14px;min-height:96px;padding:18px;text-decoration:none}.primary-action{background:linear-gradient(135deg,#fff,#fff7ed)}.action-card strong{display:block;font-size:18px;margin-bottom:4px}.action-card small{color:var(--muted)}.empty-card{padding:22px;display:grid;gap:12px}.data-card{padding:18px;display:grid;gap:14px}.card-main.no-underline{text-decoration:none}.run-form{display:grid;gap:10px}.card-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid var(--border);padding-top:12px}.card-actions a,.danger-link{color:var(--muted);background:none;border:0;padding:10px 0;text-decoration:none;font-weight:800;cursor:pointer}.danger-link{color:var(--danger)}.progress{height:8px;background:var(--surface-alt);border-radius:999px;overflow:hidden}.progress.large{height:10px}.progress span{display:block;height:100%;background:linear-gradient(90deg,var(--energy),var(--gold));border-radius:inherit;transition:width .35s ease}.check-list{display:grid;gap:10px}.check-list form{margin:0}.check-row{width:100%;display:flex;align-items:flex-start;gap:14px;min-height:66px;padding:15px;text-align:left;background:#fff;border:1px solid var(--border);border-radius:18px;box-shadow:0 10px 28px rgba(26,26,46,.05);cursor:pointer;color:var(--text)}.check-row.done{background:#f0fbf5;border-color:#b7e7ca;color:#50645a}.check-row.done span:last-child{text-decoration:line-through}.check-box{width:32px;height:32px;flex:0 0 32px;display:grid;place-items:center;border:2px solid var(--border-strong);border-radius:10px;font-weight:900;color:var(--success);background:#fff}.done .check-box{border-color:var(--success);background:var(--success-light)}.bottom-actions,.sticky-action{position:sticky;bottom:max(14px,env(safe-area-inset-bottom));display:grid;grid-template-columns:1fr;gap:10px;margin-top:18px}.bottom-actions form{margin:0}.sticky-action form{margin:0}.bottom-actions .secondary-btn{min-height:48px}.flash-stack{display:grid;gap:8px;margin-bottom:14px}.flash{padding:12px 14px;border-radius:14px;background:#fff;border:1px solid var(--border)}.flash.ok{border-color:#bfe7cc;background:#f3fbf6}.flash.error{border-color:#f2b8b5;background:#fff4f3}@media (min-width:680px){.action-grid{grid-template-columns:1fr 1fr}.run-form{grid-template-columns:1fr auto;align-items:center}.bottom-actions{grid-template-columns:1fr auto}.app-shell{padding-top:24px}}


.top-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.back-link{cursor:pointer;color:var(--text)}
.danger-btn{display:inline-flex;justify-content:center;align-items:center;min-height:54px;border:0;border-radius:16px;padding:14px 18px;font-weight:900;text-decoration:none;cursor:pointer;background:var(--danger);color:#fff;box-shadow:0 10px 26px rgba(220,38,38,.16);width:100%}
.danger-btn:active{transform:translateY(1px)}
.confirm-overlay{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:22px;background:rgba(26,26,46,.42);backdrop-filter:blur(8px)}
.confirm-overlay[hidden]{display:none}
.confirm-dialog{width:min(100%,420px);background:rgba(255,255,255,.98);border:1px solid rgba(229,231,235,.95);border-radius:24px;box-shadow:0 24px 70px rgba(26,26,46,.22);padding:22px;display:grid;gap:16px;animation:confirmIn .16s ease-out}
.confirm-icon{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;background:#fff7ed;color:var(--energy);font-weight:900;font-size:22px;border:1px solid #fed7aa}
.confirm-copy h2{font-size:22px;margin:0 0 6px;letter-spacing:-.03em}.confirm-copy p{margin:0;color:var(--muted);line-height:1.45}.confirm-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.danger-confirm{background:linear-gradient(135deg,var(--energy),var(--gold))}
@keyframes confirmIn{from{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}
@media (max-width:420px){.topbar{align-items:flex-start}.top-actions{gap:6px}.ghost-link{padding:9px 12px}.confirm-dialog{border-radius:22px;padding:20px}.confirm-actions{grid-template-columns:1fr}.confirm-actions .primary-btn{order:1}.confirm-actions .secondary-btn{order:2}}

/* Fase 01.3 · Inicio como lanzador de bloques */
.home-head{margin-bottom:24px}
.module-grid{display:grid;gap:14px}
.module-card{position:relative;overflow:hidden;min-height:190px;padding:20px;background:rgba(255,255,255,.92);border:1px solid rgba(229,231,235,.95);border-radius:24px;box-shadow:var(--shadow);display:grid;gap:18px;isolation:isolate}
.module-card::before{content:"";position:absolute;inset:0 0 auto 0;height:5px;background:var(--module-accent,var(--energy));z-index:0}.module-card::after{content:"";position:absolute;right:-42px;top:-42px;width:140px;height:140px;border-radius:999px;background:color-mix(in srgb,var(--module-accent,var(--energy)) 14%,transparent);z-index:-1}.module-topline{display:flex;align-items:center;justify-content:space-between;gap:12px}.module-icon{width:48px;height:48px;border-radius:16px;display:grid;place-items:center;background:linear-gradient(135deg,var(--module-accent,var(--energy)),var(--module-accent-2,var(--gold)));color:#fff;font-size:23px;font-weight:900;box-shadow:0 12px 30px color-mix(in srgb,var(--module-accent,var(--energy)) 24%,transparent)}.module-status{display:inline-flex;align-items:center;min-height:30px;padding:7px 11px;border-radius:999px;font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.06em}.module-status.active{background:#ecfdf5;color:var(--success);border:1px solid #bbf7d0}.module-status.soon{background:#f3f4f6;color:var(--muted);border:1px solid var(--border)}.module-copy{display:grid;gap:8px}.module-copy h2{font-size:26px;letter-spacing:-.04em;margin:0}.module-copy p{margin:0;color:var(--muted);line-height:1.45}.module-actions{display:grid;gap:10px;margin-top:auto}.module-primary,.module-secondary{width:100%}.module-checklists{--module-accent:#d97706;--module-accent-2:#b45309}.module-forms{--module-accent:#2563eb;--module-accent-2:#1d4ed8}.module-tracking{--module-accent:#059669;--module-accent-2:#0f766e}.module-home{--module-accent:#7c3aed;--module-accent-2:#6d28d9}.module-card.is-disabled{opacity:.82}.module-card.is-disabled .module-icon{box-shadow:none}.module-card.is-disabled .module-copy p{color:#7a8292}
@media (min-width:680px){.module-grid{grid-template-columns:1fr 1fr}.module-card{min-height:220px}.module-card:first-child{grid-column:span 2;min-height:210px}.module-card:first-child .module-actions{grid-template-columns:1fr 1fr}}

/* Fase 01.6 · Login 2FA */
.login-form{margin-top:20px}
.otp-input{
  text-align:center;
  letter-spacing:.28em;
  font-size:24px;
  font-weight:900;
  font-variant-numeric:tabular-nums;
}

/* Fase 01.7 · Inicio con módulos reales y tarjetas homogéneas */
body.endpoint-home .home-head{
  max-width:760px;
}
body.endpoint-home .module-grid.modules-live-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:18px;
  align-items:stretch;
}
body.endpoint-home .modules-live-grid .module-card{
  min-height:240px;
  height:auto;
  padding:20px;
}
body.endpoint-home .modules-live-grid .module-card:first-child{
  grid-column:auto;
  min-height:240px;
}
body.endpoint-home .modules-live-grid .module-card:first-child .module-actions{
  grid-template-columns:1fr 1fr;
  max-width:none;
}
.module-network{
  --module-accent:#0ea5e9;
  --module-accent-2:#0369a1;
}
.module-status.next{
  background:#eff6ff;
  color:#0369a1;
  border:1px solid #bfdbfe;
}
.module-card.is-planned{
  opacity:.92;
}
.module-card.is-planned .module-copy p{
  color:#7a8292;
}
@media (min-width:680px){
  body.endpoint-home .module-grid.modules-live-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  body.endpoint-home .modules-live-grid .module-card,
  body.endpoint-home .modules-live-grid .module-card:first-child{
    min-height:270px;
    height:270px;
  }
  body.endpoint-home .modules-live-grid .module-card:first-child .module-actions{
    grid-template-columns:1fr 1fr;
  }
}
@media (min-width:980px){
  body.endpoint-home .module-grid.modules-live-grid{
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:18px;
  }
  body.endpoint-home .modules-live-grid .module-card,
  body.endpoint-home .modules-live-grid .module-card:first-child{
    min-height:270px;
    height:270px;
  }
  body.endpoint-home .modules-live-grid .module-card:first-child{
    grid-column:auto;
  }
}

/* Fase 01.8 · Módulos homogéneos y colores definitivos */
body.endpoint-home .module-grid.modules-live-grid{
  align-items:stretch;
}
body.endpoint-home .modules-live-grid .module-card,
body.endpoint-home .modules-live-grid .module-card:first-child{
  min-height:270px;
  height:270px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
}
body.endpoint-home .modules-live-grid .module-card .module-copy{
  flex:1;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
body.endpoint-home .modules-live-grid .module-card .module-actions{
  margin-top:auto;
}
.module-checklists{
  --module-accent:#d97706;
  --module-accent-2:#b45309;
}
.module-network{
  --module-accent:#059669;
  --module-accent-2:#047857;
}
.module-network .module-icon{
  background:linear-gradient(135deg,#10b981,#047857);
}
.module-network .module-status.next{
  background:#ecfdf5;
  color:#047857;
  border:1px solid #a7f3d0;
}
.module-network::before{
  background:linear-gradient(90deg,#10b981,#047857);
}
.module-network::after{
  background:rgba(16,185,129,.13);
}
@media (max-width:420px){
  body.endpoint-home .modules-live-grid .module-card,
  body.endpoint-home .modules-live-grid .module-card:first-child{
    min-height:260px;
    height:260px;
  }
}


/* Fase 01.9 · Icono OpsManager */
.brand-mark-img,
.module-icon-image{
  overflow:hidden;
  background:#fff8e8;
  border:0;
  box-shadow:0 8px 24px rgba(217,119,6,.16);
}
.brand-mark-img img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
}
.module-icon-image img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
}


/* Fase 01.9.1 · Iconos lineales y colores por módulo */
.brand-mark-logo{
  background:linear-gradient(135deg,#d97706,#b45309) !important;
  color:#fff !important;
  overflow:hidden;
  box-shadow:0 8px 24px rgba(217,119,6,.18) !important;
}
.brand-mark-logo svg{
  width:22px;
  height:22px;
  display:block;
}
.brand-mark-img,
.module-icon-image{
  background:linear-gradient(135deg,var(--module-accent,var(--energy)),var(--module-accent-2,var(--gold))) !important;
  color:#fff !important;
  overflow:hidden;
}
.brand-mark-img img,
.module-icon-image img{
  display:none !important;
}
.module-icon svg{
  width:25px;
  height:25px;
  display:block;
}
.module-checklists{
  --module-accent:#d97706 !important;
  --module-accent-2:#b45309 !important;
}
.module-network{
  --module-accent:#059669 !important;
  --module-accent-2:#047857 !important;
}
.module-checklists::before{
  background:linear-gradient(90deg,#d97706,#b45309) !important;
}
.module-network::before{
  background:linear-gradient(90deg,#10b981,#047857) !important;
}
.module-checklists::after{
  background:rgba(217,119,6,.13) !important;
}
.module-network::after{
  background:rgba(16,185,129,.13) !important;
}
.module-icon-checklists{
  background:linear-gradient(135deg,#d97706,#b45309) !important;
  color:#fff !important;
  box-shadow:0 12px 30px rgba(217,119,6,.22) !important;
}
.module-icon-network{
  background:linear-gradient(135deg,#10b981,#047857) !important;
  color:#fff !important;
  box-shadow:0 12px 30px rgba(5,150,105,.20) !important;
}
.module-network .module-status,
.module-network .module-status.next,
.module-network .module-status.soon{
  background:#ecfdf5 !important;
  color:#047857 !important;
  border:1px solid #a7f3d0 !important;
}
.module-checklists .module-status.active{
  background:#fff7ed !important;
  color:#b45309 !important;
  border:1px solid #fed7aa !important;
}

/* Fase 02.0 · Módulo Red/IPAM ligero */
.module-network{
  --module-accent:#059669 !important;
  --module-accent-2:#047857 !important;
}
.module-network::before{
  background:linear-gradient(90deg,#10b981,#047857) !important;
}
.module-network::after{
  background:rgba(16,185,129,.13) !important;
}
.module-icon-network{
  background:linear-gradient(135deg,#10b981,#047857) !important;
  color:#fff !important;
  box-shadow:0 12px 30px rgba(5,150,105,.20) !important;
}
.module-network .module-primary{
  background:linear-gradient(135deg,#059669,#047857) !important;
  box-shadow:0 18px 40px rgba(5,150,105,.18) !important;
}
.module-network .module-status.active{
  background:#ecfdf5 !important;
  color:#047857 !important;
  border:1px solid #a7f3d0 !important;
}

.summary-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
  margin:18px 0;
}
.summary-card{
  background:#fff;
  border:1px solid #e5e7eb;
  border-radius:20px;
  padding:16px;
  box-shadow:0 16px 40px rgba(15,23,42,.05);
}
.summary-card span{
  display:block;
  color:#7a8292;
  font-size:.82rem;
  font-weight:800;
  letter-spacing:.06em;
  text-transform:uppercase;
}
.summary-card strong{
  display:block;
  margin-top:6px;
  font-size:2rem;
  line-height:1;
  color:#17172b;
}
.summary-card.status-used strong{ color:#059669; }
.summary-card.status-free strong{ color:#2563eb; }
.summary-card.status-reserved strong{ color:#d97706; }

.filter-card{
  background:#fff;
  border:1px solid #e5e7eb;
  border-radius:24px;
  padding:18px;
  box-shadow:0 16px 44px rgba(15,23,42,.06);
  margin:18px 0 22px;
}
.network-filter{
  display:grid;
  gap:14px;
}
.field-block{
  display:grid;
  gap:8px;
}
.field-block span{
  font-size:.8rem;
  font-weight:900;
  color:#7a8292;
  text-transform:uppercase;
  letter-spacing:.06em;
}
.field-block input,
.field-block select{
  width:100%;
  min-height:52px;
  border:1px solid #e5e7eb;
  border-radius:16px;
  background:#f8fafc;
  color:#17172b;
  font:inherit;
  font-weight:700;
  padding:0 14px;
  outline:none;
}
.field-block input:focus,
.field-block select:focus{
  border-color:#10b981;
  box-shadow:0 0 0 4px rgba(16,185,129,.12);
}
.filter-actions{
  display:grid;
  grid-template-columns:1fr;
  gap:10px;
}
.network-btn{
  background:linear-gradient(135deg,#059669,#047857) !important;
  box-shadow:0 18px 40px rgba(5,150,105,.18) !important;
}

.section-head.compact{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  margin:18px 0 12px;
}
.section-head.compact h2{
  margin:0;
  font-size:1.5rem;
}

.network-list{
  display:grid;
  gap:12px;
  padding-bottom:32px;
}
.network-card{
  background:#fff;
  border:1px solid #e5e7eb;
  border-radius:22px;
  padding:16px;
  box-shadow:0 14px 34px rgba(15,23,42,.055);
  position:relative;
  overflow:hidden;
}
.network-card::before{
  content:"";
  position:absolute;
  inset:0 auto 0 0;
  width:5px;
  background:#94a3b8;
}
.network-card.network-status-usada::before{ background:#059669; }
.network-card.network-status-libre::before{ background:#2563eb; }
.network-card.network-status-reservada::before{ background:#d97706; }
.network-card.network-status-dhcp::before{ background:#7c3aed; }

.network-main{
  display:flex;
  justify-content:space-between;
  gap:14px;
  align-items:flex-start;
}
.network-ip{
  font-size:1.35rem;
  line-height:1.1;
  font-weight:900;
  color:#17172b;
  margin:0 0 8px;
}
.network-card h2{
  margin:0 0 6px;
  font-size:1.12rem;
  color:#17172b;
}
.network-meta{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:14px;
}
.network-meta span{
  display:inline-flex;
  align-items:center;
  min-height:30px;
  border-radius:999px;
  padding:5px 10px;
  background:#f1f5f9;
  color:#475569;
  font-size:.82rem;
  font-weight:800;
}
.mono{
  font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;
}
.status-pill{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:30px;
  padding:5px 10px;
  border-radius:999px;
  font-size:.74rem;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.06em;
  white-space:nowrap;
}
.status-usada{ background:#ecfdf5; color:#047857; border:1px solid #a7f3d0; }
.status-libre{ background:#eff6ff; color:#1d4ed8; border:1px solid #bfdbfe; }
.status-reservada{ background:#fff7ed; color:#b45309; border:1px solid #fed7aa; }
.status-dhcp{ background:#f5f3ff; color:#6d28d9; border:1px solid #ddd6fe; }

.empty-state{
  background:#fff;
  border:1px solid #e5e7eb;
  border-radius:24px;
  padding:22px;
  box-shadow:0 14px 34px rgba(15,23,42,.055);
}

@media (min-width:720px){
  .summary-grid{
    grid-template-columns:repeat(4,minmax(0,1fr));
  }
  .network-filter{
    grid-template-columns:2fr 1fr 1fr;
    align-items:end;
  }
  .filter-actions{
    grid-template-columns:1fr 1fr;
  }
  .network-list{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
@media (min-width:1120px){
  .network-list{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
}
/* OPSMANAGER_PATCH_02_1_START */
/* Fase 02.1 · Ajuste visual Home + Red */
.home .app-shell,
body.home .app-shell,
.app-shell:has(.home-head){
  width:min(100%,1120px);
}
.modules-equal-grid{
  display:grid !important;
  grid-template-columns:1fr !important;
  gap:18px !important;
  align-items:stretch !important;
}
.modules-equal-grid .module-card,
.modules-equal-grid .module-card.is-active,
.modules-equal-grid .module-checklists,
.modules-equal-grid .module-network{
  grid-column:auto !important;
  min-height:330px !important;
  height:100% !important;
}
.modules-equal-grid .module-card{
  display:flex !important;
  flex-direction:column !important;
}
.modules-equal-grid .module-copy{
  flex:1 1 auto !important;
}
.modules-equal-grid .module-actions{
  margin-top:auto !important;
}
.module-checklists{
  --module-accent:#d97706 !important;
  --module-accent-2:#b45309 !important;
}
.module-checklists::before{
  background:linear-gradient(90deg,#d97706,#b45309) !important;
}
.module-checklists::after{
  background:rgba(217,119,6,.13) !important;
}
.module-icon-checklists{
  background:linear-gradient(135deg,#d97706,#b45309) !important;
  color:#fff !important;
  box-shadow:0 14px 32px rgba(217,119,6,.20) !important;
}
.module-checklists .module-primary{
  background:linear-gradient(135deg,#d97706,#b45309) !important;
  box-shadow:0 18px 40px rgba(217,119,6,.18) !important;
}
.module-checklists .module-status.active{
  background:#fff7ed !important;
  color:#b45309 !important;
  border:1px solid #fed7aa !important;
}
.module-network{
  --module-accent:#059669 !important;
  --module-accent-2:#047857 !important;
}
.module-network::before{
  background:linear-gradient(90deg,#10b981,#047857) !important;
}
.module-network::after{
  background:rgba(16,185,129,.13) !important;
}
.module-icon-network{
  background:linear-gradient(135deg,#10b981,#047857) !important;
  color:#fff !important;
  box-shadow:0 14px 32px rgba(5,150,105,.20) !important;
}
.module-network .module-primary{
  background:linear-gradient(135deg,#059669,#047857) !important;
  box-shadow:0 18px 40px rgba(5,150,105,.18) !important;
}
.module-network .module-status.active{
  background:#ecfdf5 !important;
  color:#047857 !important;
  border:1px solid #a7f3d0 !important;
}
@media (min-width:820px){
  .modules-equal-grid{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }
}

body.network .app-shell,
.app-shell:has(.network-head){
  width:min(100%,1180px);
}
.network-eyebrow{
  color:#059669 !important;
}
.network-summary-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
  margin:18px 0;
}
.network-summary-card{
  background:rgba(255,255,255,.92);
  border:1px solid rgba(229,231,235,.95);
  border-radius:22px;
  padding:16px;
  box-shadow:0 18px 50px rgba(26,26,46,.07);
}
.network-summary-card span{
  display:block;
  color:#7a8292;
  font-size:.78rem;
  font-weight:900;
  letter-spacing:.07em;
  text-transform:uppercase;
}
.network-summary-card strong{
  display:block;
  margin-top:7px;
  font-size:2rem;
  line-height:1;
  letter-spacing:-.04em;
  color:#17172b;
}
.network-summary-used strong{ color:#059669; }
.network-summary-free strong{ color:#2563eb; }
.network-summary-reserved strong{ color:#d97706; }
.network-filter-card{
  background:rgba(255,255,255,.94);
  border:1px solid rgba(229,231,235,.95);
  border-radius:24px;
  padding:18px;
  box-shadow:0 18px 50px rgba(26,26,46,.07);
  margin:18px 0 24px;
}
.network-filter-form{
  display:grid;
  gap:14px;
}
.network-field{
  display:grid;
  gap:8px;
}
.network-field span{
  color:#7a8292;
  font-size:.78rem;
  font-weight:900;
  letter-spacing:.07em;
  text-transform:uppercase;
}
.network-field input,
.network-field select{
  width:100%;
  min-height:56px;
  border:1px solid var(--border);
  background:#fff;
  color:var(--text);
  border-radius:16px;
  padding:0 15px;
  outline:none;
  font:inherit;
  font-weight:800;
  box-shadow:none;
}
.network-field input:focus,
.network-field select:focus{
  border-color:#10b981;
  box-shadow:0 0 0 4px rgba(16,185,129,.13);
}
.network-filter-actions{
  display:grid;
  grid-template-columns:1fr;
  gap:10px;
}
.network-primary{
  background:linear-gradient(135deg,#059669,#047857) !important;
  box-shadow:0 18px 40px rgba(5,150,105,.18) !important;
}
.network-results-head{
  margin:8px 0 14px !important;
}
.network-results-head h2{
  font-size:1.55rem;
  margin:0;
}
.network-card-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:14px;
  padding-bottom:36px;
}
.network-result-card{
  background:rgba(255,255,255,.94);
  border:1px solid rgba(229,231,235,.95);
  border-radius:22px;
  padding:18px;
  box-shadow:0 16px 42px rgba(26,26,46,.065);
  position:relative;
  overflow:hidden;
}
.network-result-card::before{
  content:"";
  position:absolute;
  inset:0 auto 0 0;
  width:6px;
  background:#94a3b8;
}
.network-result-card.network-status-usada::before{ background:#059669; }
.network-result-card.network-status-libre::before{ background:#2563eb; }
.network-result-card.network-status-reservada::before{ background:#d97706; }
.network-result-card.network-status-dhcp::before{ background:#7c3aed; }
.network-result-top{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:14px;
}
.network-ip{
  margin:0 0 8px;
  color:#17172b;
  font-size:1.35rem;
  line-height:1.05;
  font-weight:950;
  letter-spacing:-.03em;
}
.network-result-card h2{
  margin:0 0 6px;
  color:#17172b;
  font-size:1.15rem;
  line-height:1.15;
}
.network-subtitle{
  margin:0;
  color:#7a8292;
  font-weight:800;
  line-height:1.35;
}
.network-status-pill{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:30px;
  padding:5px 10px;
  border-radius:999px;
  font-size:.72rem;
  font-weight:950;
  text-transform:uppercase;
  letter-spacing:.06em;
  white-space:nowrap;
}
.status-usada{ background:#ecfdf5; color:#047857; border:1px solid #a7f3d0; }
.status-libre{ background:#eff6ff; color:#1d4ed8; border:1px solid #bfdbfe; }
.status-reservada{ background:#fff7ed; color:#b45309; border:1px solid #fed7aa; }
.status-dhcp{ background:#f5f3ff; color:#6d28d9; border:1px solid #ddd6fe; }
.network-meta-row{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:15px;
}
.network-meta-row span{
  display:inline-flex;
  align-items:center;
  min-height:32px;
  border-radius:999px;
  padding:6px 11px;
  background:#f1f5f9;
  color:#475569;
  font-size:.82rem;
  font-weight:850;
}
.mono{
  font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;
}
.network-empty-card{
  background:rgba(255,255,255,.94);
  border:1px solid rgba(229,231,235,.95);
  border-radius:24px;
  padding:22px;
  box-shadow:0 16px 42px rgba(26,26,46,.065);
}
@media (min-width:720px){
  .network-summary-grid{
    grid-template-columns:repeat(4,minmax(0,1fr));
  }
  .network-filter-form{
    grid-template-columns:2fr 1fr 1fr;
    align-items:end;
  }
  .network-filter-actions{
    grid-template-columns:1fr 1fr;
  }
  .network-card-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
@media (min-width:1120px){
  .network-card-grid{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
}
/* OPSMANAGER_PATCH_02_1_END */

/* Fase 02.2 · Alta y edición de inventario de red */
.network-new-btn{
  background:linear-gradient(135deg,#059669,#047857) !important;
  box-shadow:0 14px 30px rgba(5,150,105,.16) !important;
  white-space:nowrap;
}
.network-card-actions{
  margin-top:16px;
  display:grid;
  grid-template-columns:1fr;
}
.network-edit-btn{
  min-height:44px;
  border-radius:14px;
  font-weight:950;
}
.network-form-card{
  background:rgba(255,255,255,.94);
  border:1px solid rgba(229,231,235,.95);
  border-radius:24px;
  padding:18px;
  box-shadow:0 18px 50px rgba(26,26,46,.07);
}
.network-edit-form{
  display:grid;
  gap:14px;
}
.network-form-actions{
  display:grid;
  grid-template-columns:1fr;
  gap:10px;
  margin-top:4px;
}
@media (min-width:720px){
  .network-edit-form{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .network-edit-form .network-field:first-child,
  .network-edit-form .network-field:nth-child(2){
    grid-column:span 1;
  }
  .network-form-actions{
    grid-column:1 / -1;
    grid-template-columns:1fr 1fr;
  }
}

/* Fase 02.3 · Formulario Red refinado */
.network-form-card{
  background:rgba(255,255,255,.96);
  border:1px solid rgba(209,250,229,.96);
  border-radius:26px;
  padding:22px;
  box-shadow:0 18px 50px rgba(5,150,105,.08);
}
.network-edit-form{
  display:grid;
  gap:22px 18px;
}
.network-field{
  display:flex;
  flex-direction:column;
  gap:9px;
  margin:0;
}
.network-field > span{
  display:block;
  margin:0;
  color:#6b7280;
  font-size:.78rem;
  font-weight:950;
  letter-spacing:.09em;
  line-height:1.1;
  text-transform:uppercase;
}
.network-control{
  width:100%;
  min-height:58px;
  border:1.5px solid rgba(16,185,129,.28);
  border-radius:18px;
  background:#fff;
  color:#1a1a2e;
  font:inherit;
  font-size:1rem;
  font-weight:800;
  line-height:1.2;
  padding:0 18px;
  outline:none;
  box-shadow:0 8px 22px rgba(5,150,105,.045);
  transition:border-color .16s ease, box-shadow .16s ease, background .16s ease;
}
.network-control::placeholder{
  color:#9ca3af;
  font-weight:750;
}
.network-control:focus{
  border-color:#10b981;
  box-shadow:0 0 0 4px rgba(16,185,129,.16), 0 12px 26px rgba(5,150,105,.08);
}
.network-readonly{
  background:#f8fafc;
  color:#64748b;
}
.network-select{
  appearance:none;
  -webkit-appearance:none;
  padding-right:48px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22' viewBox='0 0 24 24' fill='none' stroke='%23059669' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right 16px center;
  background-size:20px 20px;
}
.network-select option{
  color:#1a1a2e;
  background:#fff;
}
.network-form-actions{
  display:grid;
  grid-template-columns:1fr;
  gap:10px;
  margin-top:2px;
}
@media (min-width:720px){
  .network-form-card{
    padding:28px;
  }
  .network-edit-form{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .network-form-actions{
    grid-column:1 / -1;
    grid-template-columns:1fr 1fr;
  }
}
@media (max-width:560px){
  .network-form-card{
    padding:18px;
    border-radius:22px;
  }
  .network-control{
    min-height:56px;
    border-radius:17px;
    padding-left:16px;
    padding-right:16px;
  }
  .network-select{
    padding-right:46px;
  }
}

/* Fase 02.3.1 · Red: formulario y resultados refinados */
.network-new-btn,
.network-primary{
  background:linear-gradient(135deg,#059669,#047857) !important;
  color:#fff !important;
  border:0 !important;
  box-shadow:0 18px 40px rgba(5,150,105,.18) !important;
}
.network-new-btn:hover,
.network-primary:hover{
  filter:brightness(.97);
  color:#fff !important;
}
.network-filter-card,
.network-form-card,
.network-result-card,
.network-empty-card,
.network-summary-card{
  border-color:rgba(209,250,229,.82) !important;
}
.network-filter-card,
.network-form-card{
  box-shadow:0 18px 50px rgba(5,150,105,.075) !important;
}
.network-field{
  display:flex !important;
  flex-direction:column !important;
  gap:10px !important;
  margin:0 !important;
}
.network-field > span,
.network-field span{
  display:block !important;
  margin:0 !important;
  color:#6b7280 !important;
  font-size:.78rem !important;
  font-weight:950 !important;
  letter-spacing:.09em !important;
  line-height:1.12 !important;
  text-transform:uppercase !important;
}
.network-edit-form{
  gap:24px 18px !important;
}
.network-control,
.network-field input,
.network-field select{
  min-height:58px !important;
  border:1.5px solid rgba(16,185,129,.28) !important;
  border-radius:18px !important;
  background-color:#fff !important;
  color:#1a1a2e !important;
  font:inherit !important;
  font-size:1rem !important;
  font-weight:800 !important;
  line-height:1.2 !important;
  padding:0 18px !important;
  outline:none !important;
  box-shadow:0 8px 22px rgba(5,150,105,.045) !important;
  transition:border-color .16s ease, box-shadow .16s ease, background .16s ease !important;
}
.network-control:focus,
.network-field input:focus,
.network-field select:focus{
  border-color:#10b981 !important;
  box-shadow:0 0 0 4px rgba(16,185,129,.16), 0 12px 26px rgba(5,150,105,.08) !important;
}
.network-select,
.network-select-control,
.network-field select{
  appearance:none !important;
  -webkit-appearance:none !important;
  padding-right:48px !important;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22' viewBox='0 0 24 24' fill='none' stroke='%23059669' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") !important;
  background-repeat:no-repeat !important;
  background-position:right 16px center !important;
  background-size:20px 20px !important;
}
.network-select option,
.network-select-control option,
.network-field select option{
  color:#1a1a2e;
  background:#fff;
}
.network-help{
  color:#64748b;
  font-size:.82rem;
  font-weight:750;
  line-height:1.35;
}
.network-readonly{
  background:#f8fafc !important;
  color:#64748b !important;
}
.network-field-full{
  grid-column:1 / -1;
}
.network-form-actions{
  grid-column:1 / -1;
}
.network-result-card{
  padding:18px !important;
}
.network-result-top{
  display:flex !important;
  justify-content:space-between !important;
  align-items:flex-start !important;
  gap:14px !important;
}
.network-result-main{
  min-width:0;
  flex:1 1 auto;
}
.network-card-status-actions{
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:8px;
  flex:0 0 auto;
}
.network-edit-icon{
  width:38px;
  height:38px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:14px;
  background:#ecfdf5;
  color:#047857;
  border:1px solid #a7f3d0;
  text-decoration:none;
  box-shadow:0 10px 22px rgba(5,150,105,.10);
}
.network-edit-icon svg{
  width:20px;
  height:20px;
  stroke:currentColor;
  fill:none;
  stroke-width:1.9;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.network-edit-icon:hover{
  background:#d1fae5;
  color:#065f46;
}
.network-card-actions{
  display:none !important;
}
@media (max-width:560px){
  .network-edit-form{
    gap:22px !important;
  }
  .network-control,
  .network-field input,
  .network-field select{
    min-height:56px !important;
    border-radius:17px !important;
    padding-left:16px !important;
    padding-right:46px !important;
  }
  .network-result-card{
    padding:17px !important;
  }
  .network-status-pill{
    font-size:.68rem !important;
    min-height:28px !important;
    padding:4px 9px !important;
  }
  .network-edit-icon{
    width:36px;
    height:36px;
    border-radius:13px;
  }
}

/* OPSMANAGER_PATCH_02_4_START */
/* Fase 02.4 · Red: dropdowns reales, verdes y libres correctas */
.network-new-btn,
.network-primary,
.network-filter-actions .primary-btn{
  background:linear-gradient(135deg,#059669,#047857) !important;
  color:#fff !important;
  border:0 !important;
  box-shadow:0 18px 40px rgba(5,150,105,.18) !important;
}
.network-new-btn:hover,
.network-primary:hover,
.network-filter-actions .primary-btn:hover{
  color:#fff !important;
  filter:brightness(.97);
}
.network-form-card,
.network-filter-card,
.network-result-card,
.network-empty-card,
.network-summary-card{
  border-color:rgba(16,185,129,.22) !important;
}
.network-form-card,
.network-filter-card{
  box-shadow:0 18px 50px rgba(5,150,105,.075) !important;
}
.network-edit-form{
  display:grid !important;
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  gap:26px 18px !important;
}
.network-field{
  display:flex !important;
  flex-direction:column !important;
  gap:11px !important;
  margin:0 !important;
}
.network-field > span,
.network-field span{
  display:block !important;
  margin:0 !important;
  padding:0 !important;
  color:#64748b !important;
  font-size:.78rem !important;
  font-weight:950 !important;
  letter-spacing:.09em !important;
  line-height:1.12 !important;
  text-transform:uppercase !important;
}
.network-field-full,
.network-form-actions{
  grid-column:1 / -1 !important;
}
.network-control,
.network-field input,
.network-field select,
.network-select,
.network-select-control{
  width:100% !important;
  min-height:58px !important;
  border:1.5px solid rgba(16,185,129,.32) !important;
  border-radius:18px !important;
  background-color:#fff !important;
  color:#1a1a2e !important;
  font:inherit !important;
  font-size:1rem !important;
  font-weight:850 !important;
  line-height:1.2 !important;
  padding:0 18px !important;
  outline:none !important;
  box-shadow:0 8px 22px rgba(5,150,105,.045) !important;
  transition:border-color .16s ease, box-shadow .16s ease, background .16s ease !important;
}
.network-control:focus,
.network-field input:focus,
.network-field select:focus,
.network-select:focus,
.network-select-control:focus{
  border-color:#10b981 !important;
  box-shadow:0 0 0 4px rgba(16,185,129,.16), 0 12px 26px rgba(5,150,105,.08) !important;
}
.network-select,
.network-select-control,
.network-field select{
  appearance:none !important;
  -webkit-appearance:none !important;
  padding-right:48px !important;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22' viewBox='0 0 24 24' fill='none' stroke='%23059669' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") !important;
  background-repeat:no-repeat !important;
  background-position:right 16px center !important;
  background-size:20px 20px !important;
}
.network-select option,
.network-select-control option,
.network-field select option{
  color:#1a1a2e !important;
  background:#fff !important;
}
.network-custom-input[hidden]{
  display:none !important;
}
.network-custom-input:not([hidden]){
  margin-top:0 !important;
  border-style:dashed !important;
  background:#f8fffc !important;
}
.network-help{
  color:#64748b !important;
  font-size:.82rem !important;
  font-weight:750 !important;
  line-height:1.35 !important;
}
.network-readonly{
  background:#f8fafc !important;
  color:#64748b !important;
}
.network-result-card{
  padding:18px !important;
}
.network-result-top{
  display:flex !important;
  justify-content:space-between !important;
  align-items:flex-start !important;
  gap:14px !important;
}
.network-result-main{
  min-width:0 !important;
  flex:1 1 auto !important;
}
.network-card-status-actions{
  display:flex !important;
  flex-direction:column !important;
  align-items:flex-end !important;
  gap:8px !important;
  flex:0 0 auto !important;
}
.network-edit-icon{
  width:38px !important;
  height:38px !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  border-radius:14px !important;
  background:#ecfdf5 !important;
  color:#047857 !important;
  border:1px solid #a7f3d0 !important;
  text-decoration:none !important;
  box-shadow:0 10px 22px rgba(5,150,105,.10) !important;
}
.network-edit-icon svg{
  width:20px !important;
  height:20px !important;
  stroke:currentColor !important;
  fill:none !important;
  stroke-width:1.9 !important;
  stroke-linecap:round !important;
  stroke-linejoin:round !important;
}
.network-edit-icon:hover{
  background:#d1fae5 !important;
  color:#065f46 !important;
}
.network-card-actions{
  display:none !important;
}
@media (max-width:760px){
  .network-edit-form{
    grid-template-columns:1fr !important;
    gap:23px !important;
  }
}
@media (max-width:560px){
  .network-control,
  .network-field input,
  .network-field select,
  .network-select,
  .network-select-control{
    min-height:56px !important;
    border-radius:17px !important;
    padding-left:16px !important;
    padding-right:46px !important;
  }
  .network-result-card{
    padding:17px !important;
  }
  .network-status-pill{
    font-size:.68rem !important;
    min-height:28px !important;
    padding:4px 9px !important;
  }
  .network-edit-icon{
    width:36px !important;
    height:36px !important;
    border-radius:13px !important;
  }
}
/* OPSMANAGER_PATCH_02_4_END */

/* OPSMANAGER_PATCH_02_4_1_START */
/* Fase 02.4.1 · Red: select real + escritura libre robusta */
.network-choice-field{
  gap:10px !important;
}
.network-choice-field .network-choice-select{
  margin:0 !important;
}
.network-other-control{
  min-height:52px !important;
  border-style:dashed !important;
  background:#f8fffc !important;
  font-weight:800 !important;
}
.network-other-control::placeholder{
  color:#94a3b8 !important;
  font-weight:750 !important;
}
.network-choice-field .network-other-control:focus{
  background:#fff !important;
}
.network-form-card .network-control,
.network-form-card select.network-control,
.network-form-card input.network-control{
  border-color:rgba(16,185,129,.34) !important;
}
.network-form-card .network-control:focus,
.network-form-card select.network-control:focus,
.network-form-card input.network-control:focus{
  border-color:#10b981 !important;
  box-shadow:0 0 0 4px rgba(16,185,129,.16), 0 12px 26px rgba(5,150,105,.08) !important;
}
.network-new-btn,
.network-primary,
.network-filter-actions .primary-btn{
  background:linear-gradient(135deg,#059669,#047857) !important;
  color:#fff !important;
  border:0 !important;
}
@media (max-width:560px){
  .network-other-control{
    min-height:50px !important;
  }
}
/* OPSMANAGER_PATCH_02_4_1_END */

/* OPSMANAGER_PATCH_02_4_3_START */
/* Fase 02.4.3 · Red: edición con icono discreto y consistente */
.network-card-status-actions{
  display:flex !important;
  flex-direction:row !important;
  align-items:center !important;
  justify-content:flex-end !important;
  gap:8px !important;
  flex:0 0 auto !important;
}
.network-edit-icon,
.network-edit-pencil{
  width:32px !important;
  height:32px !important;
  min-width:32px !important;
  min-height:32px !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  border-radius:999px !important;
  background:#f8fffc !important;
  color:#047857 !important;
  border:1.5px solid rgba(5,150,105,.26) !important;
  text-decoration:none !important;
  box-shadow:none !important;
  transform:none !important;
}
.network-edit-icon svg,
.network-edit-pencil svg{
  width:16px !important;
  height:16px !important;
  stroke:currentColor !important;
  fill:none !important;
  stroke-width:2.15 !important;
  stroke-linecap:round !important;
  stroke-linejoin:round !important;
}
.network-edit-icon:hover,
.network-edit-pencil:hover{
  background:#ecfdf5 !important;
  color:#065f46 !important;
  border-color:rgba(5,150,105,.42) !important;
}
.network-status-pill{
  flex:0 0 auto !important;
}
@media (max-width:560px){
  .network-card-status-actions{
    gap:7px !important;
  }
  .network-edit-icon,
  .network-edit-pencil{
    width:31px !important;
    height:31px !important;
    min-width:31px !important;
    min-height:31px !important;
  }
  .network-edit-icon svg,
  .network-edit-pencil svg{
    width:15px !important;
    height:15px !important;
  }
}
/* OPSMANAGER_PATCH_02_4_3_END */

/* OPSMANAGER_PATCH_02_4_4_START */
/* Fase 02.4.4 · Red: acción EDITAR como badge bajo el estado */
.network-card-status-actions{
  display:flex !important;
  flex-direction:column !important;
  align-items:flex-end !important;
  justify-content:flex-start !important;
  gap:8px !important;
  flex:0 0 auto !important;
  min-width:max-content !important;
}
.network-edit-icon,
.network-edit-pencil{
  display:none !important;
}
.network-edit-text{
  text-decoration:none !important;
  text-transform:uppercase !important;
  letter-spacing:.06em !important;
  font-weight:800 !important;
  font-size:.78rem !important;
  line-height:1 !important;
  padding:10px 14px !important;
  border-radius:999px !important;
  color:#047857 !important;
  background:#ecfdf5 !important;
  border:1.5px solid rgba(5,150,105,.28) !important;
  min-width:86px !important;
  text-align:center !important;
  box-shadow:none !important;
}
.network-edit-text:hover,
.network-edit-text:focus{
  color:#065f46 !important;
  background:#d1fae5 !important;
  border-color:rgba(5,150,105,.42) !important;
  outline:none !important;
}
.network-edit-text:focus-visible{
  box-shadow:0 0 0 4px rgba(5,150,105,.16) !important;
}
.network-status-pill{
  flex:0 0 auto !important;
  min-width:86px !important;
  text-align:center !important;
}
@media (max-width:560px){
  .network-card-status-actions{
    gap:7px !important;
  }
  .network-edit-text,
  .network-status-pill{
    min-width:78px !important;
    font-size:.72rem !important;
    padding:9px 12px !important;
  }
}
/* OPSMANAGER_PATCH_02_4_4_END */
/* OPSMANAGER_PATCH_02_5_START */
/* Fase 02.5 · Red: resumen operativo + look & feel definitivo */
body.network .app-shell,
.app-shell:has(.network-dashboard-head){
  width:min(100%,1180px) !important;
}
.network-dashboard-head{
  margin-bottom:18px !important;
}
.network-dashboard-head h1{
  letter-spacing:-.055em !important;
}
.network-eyebrow{
  color:#059669 !important;
}
.network-top-summary{
  display:grid !important;
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  gap:12px !important;
  margin:22px 0 28px !important;
}
.network-kpi-card{
  display:flex !important;
  align-items:center !important;
  gap:13px !important;
  min-height:104px !important;
  border-radius:22px !important;
  padding:18px !important;
  background:linear-gradient(135deg,rgba(240,253,244,.96),rgba(255,255,255,.98)) !important;
  border:1px solid rgba(167,243,208,.70) !important;
  box-shadow:0 16px 42px rgba(5,150,105,.07) !important;
}
.network-kpi-icon,
.network-device-icon{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  flex:0 0 auto !important;
  color:#059669 !important;
  background:#e8f8ef !important;
}
.network-kpi-icon{
  width:52px !important;
  height:52px !important;
  border-radius:17px !important;
}
.network-kpi-icon svg,
.network-device-icon svg{
  width:28px !important;
  height:28px !important;
  fill:none !important;
  stroke:currentColor !important;
  stroke-width:2.35 !important;
  stroke-linecap:round !important;
  stroke-linejoin:round !important;
}
.network-kpi-card span:not(.network-kpi-icon){
  display:block !important;
  color:#059669 !important;
  font-size:.78rem !important;
  font-weight:950 !important;
  letter-spacing:.055em !important;
  text-transform:uppercase !important;
}
.network-kpi-card strong{
  display:block !important;
  margin-top:4px !important;
  color:#059669 !important;
  font-size:2rem !important;
  line-height:1 !important;
  font-weight:950 !important;
  letter-spacing:-.05em !important;
}
.network-device-section{
  margin:6px 0 24px !important;
}
.network-device-section > h2,
.network-results-title h2{
  margin:0 0 14px !important;
  color:#17172b !important;
  font-size:1.35rem !important;
  line-height:1.1 !important;
  font-weight:950 !important;
  letter-spacing:-.035em !important;
}
.network-device-grid{
  display:grid !important;
  grid-template-columns:1fr !important;
  gap:12px !important;
}
.network-device-card{
  display:flex !important;
  align-items:center !important;
  gap:15px !important;
  min-height:104px !important;
  background:rgba(255,255,255,.96) !important;
  border:1px solid rgba(229,231,235,.94) !important;
  border-radius:20px !important;
  padding:16px !important;
  box-shadow:0 14px 34px rgba(26,26,46,.065) !important;
}
.network-device-icon{
  width:58px !important;
  height:58px !important;
  border-radius:17px !important;
}
.network-device-copy h3{
  margin:0 0 5px !important;
  color:#17172b !important;
  font-size:1rem !important;
  line-height:1.15 !important;
  font-weight:950 !important;
  letter-spacing:-.02em !important;
  text-transform:uppercase !important;
}
.network-device-copy p{
  margin:0 !important;
  color:#059669 !important;
  font-size:.96rem !important;
  font-weight:850 !important;
  line-height:1.25 !important;
}
.network-device-copy p strong{
  font-size:1.08rem !important;
  font-weight:950 !important;
}
.network-device-copy small{
  display:block !important;
  margin-top:2px !important;
  color:#64748b !important;
  font-size:.93rem !important;
  font-weight:750 !important;
  line-height:1.25 !important;
}
.network-filter-card.network-search-panel{
  margin:22px 0 22px !important;
  padding:0 !important;
  background:transparent !important;
  border:0 !important;
  box-shadow:none !important;
}
.network-search-form{
  display:grid !important;
  grid-template-columns:1fr !important;
  gap:12px !important;
}
.network-search-form .network-field{
  gap:7px !important;
}
.network-search-form .network-field span{
  color:#17172b !important;
  font-size:1.15rem !important;
  letter-spacing:-.02em !important;
  text-transform:none !important;
  font-weight:950 !important;
}
.network-field input,
.network-field select,
.network-control,
.network-select-control{
  border-radius:18px !important;
  border:1.4px solid rgba(148,163,184,.38) !important;
  background:#fff !important;
  box-shadow:none !important;
}
.network-field input:focus,
.network-field select:focus,
.network-control:focus,
.network-select-control:focus{
  border-color:#10b981 !important;
  box-shadow:0 0 0 4px rgba(16,185,129,.14) !important;
  outline:none !important;
}
.network-filter-actions{
  display:grid !important;
  grid-template-columns:1fr 1fr !important;
  gap:12px !important;
}
.network-primary,
.network-new-btn,
.network-filter-actions .primary-btn{
  min-height:56px !important;
  background:linear-gradient(135deg,#059669,#047857) !important;
  color:#fff !important;
  border:0 !important;
  border-radius:16px !important;
  box-shadow:0 14px 32px rgba(5,150,105,.17) !important;
}
.network-secondary,
.network-filter-actions .secondary-btn{
  min-height:56px !important;
  color:#047857 !important;
  background:#f8fffb !important;
  border:1.4px solid rgba(5,150,105,.18) !important;
  border-radius:16px !important;
}
.network-results-title{
  margin:18px 0 12px !important;
}
.network-results-title h2{
  margin-bottom:3px !important;
}
.network-results-title p{
  margin:0 !important;
  font-weight:750 !important;
}
.network-results-head{
  display:none !important;
}
.network-results-grid{
  display:grid !important;
  grid-template-columns:1fr !important;
  gap:12px !important;
  padding-bottom:42px !important;
}
.network-result-card{
  display:grid !important;
  grid-template-columns:1fr auto !important;
  grid-template-areas:
    "main actions"
    "meta actions" !important;
  align-items:center !important;
  column-gap:14px !important;
  row-gap:10px !important;
  min-height:118px !important;
  padding:18px !important;
  border-radius:22px !important;
  background:rgba(255,255,255,.97) !important;
  border:1px solid rgba(229,231,235,.94) !important;
  box-shadow:0 14px 34px rgba(26,26,46,.065) !important;
  overflow:hidden !important;
}
.network-result-card::before{
  width:0 !important;
  display:none !important;
}
.network-result-left{
  grid-area:main !important;
  display:flex !important;
  align-items:flex-start !important;
  gap:12px !important;
  min-width:0 !important;
}
.network-result-dot{
  width:12px !important;
  height:12px !important;
  margin-top:7px !important;
  border-radius:999px !important;
  flex:0 0 auto !important;
  background:#059669 !important;
  box-shadow:0 0 0 5px rgba(5,150,105,.10) !important;
}
.network-result-main{
  min-width:0 !important;
}
.network-ip{
  margin:0 0 5px !important;
  color:#17172b !important;
  font-size:1.32rem !important;
  line-height:1.05 !important;
  font-weight:950 !important;
  letter-spacing:-.035em !important;
}
.network-result-card h2{
  margin:0 0 5px !important;
  color:#17172b !important;
  font-size:1.02rem !important;
  line-height:1.15 !important;
  font-weight:850 !important;
  letter-spacing:-.01em !important;
}
.network-subtitle{
  margin:0 !important;
  color:#64748b !important;
  font-size:.92rem !important;
  font-weight:760 !important;
  line-height:1.25 !important;
}
.network-result-meta{
  grid-area:meta !important;
  display:flex !important;
  flex-wrap:wrap !important;
  gap:7px !important;
  align-items:center !important;
  padding-left:24px !important;
}
.network-result-meta span,
.network-meta-row span{
  display:inline-flex !important;
  align-items:center !important;
  min-height:30px !important;
  border-radius:10px !important;
  padding:5px 10px !important;
  color:#047857 !important;
  background:#f0fdf4 !important;
  border:1px solid rgba(5,150,105,.16) !important;
  font-size:.78rem !important;
  line-height:1 !important;
  font-weight:850 !important;
}
.network-card-status-actions{
  grid-area:actions !important;
  display:flex !important;
  flex-direction:column !important;
  align-items:flex-end !important;
  justify-content:center !important;
  gap:8px !important;
  min-width:92px !important;
}
.network-status-pill{
  min-width:86px !important;
  min-height:32px !important;
  padding:7px 12px !important;
  border-radius:999px !important;
  font-size:.74rem !important;
  line-height:1 !important;
  font-weight:950 !important;
  letter-spacing:.055em !important;
  text-transform:uppercase !important;
}
.status-usada,
.status-libre,
.status-reservada,
.status-dhcp{
  color:#047857 !important;
  background:#ecfdf5 !important;
  border:1px solid #a7f3d0 !important;
}
.network-edit-text{
  text-decoration:none !important;
  color:#047857 !important;
  background:#fff !important;
  border:1.4px solid rgba(5,150,105,.58) !important;
  font-size:.74rem !important;
  font-weight:950 !important;
  letter-spacing:.055em !important;
  box-shadow:none !important;
}
.network-edit-text:hover,
.network-edit-text:focus{
  background:#ecfdf5 !important;
  color:#065f46 !important;
  outline:none !important;
}
.network-empty-card{
  border-radius:22px !important;
  background:rgba(255,255,255,.96) !important;
  border:1px solid rgba(229,231,235,.94) !important;
}
@media (min-width:640px){
  .network-top-summary{
    grid-template-columns:repeat(4,minmax(0,1fr)) !important;
  }
  .network-device-grid{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }
}
@media (min-width:860px){
  .network-search-form{
    grid-template-columns:2fr 1fr 1fr !important;
    align-items:end !important;
  }
  .network-filter-actions{
    grid-column:1 / -1 !important;
  }
}
@media (max-width:560px){
  .network-dashboard-head h1{
    font-size:2.45rem !important;
  }
  .network-top-summary{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:10px !important;
  }
  .network-kpi-card{
    min-height:92px !important;
    padding:14px !important;
    gap:10px !important;
  }
  .network-kpi-icon{
    width:44px !important;
    height:44px !important;
    border-radius:14px !important;
  }
  .network-kpi-icon svg{
    width:24px !important;
    height:24px !important;
  }
  .network-kpi-card strong{
    font-size:1.65rem !important;
  }
  .network-device-card{
    min-height:96px !important;
    padding:14px !important;
  }
  .network-device-icon{
    width:50px !important;
    height:50px !important;
    border-radius:15px !important;
  }
  .network-filter-actions{
    grid-template-columns:1fr !important;
  }
  .network-result-card{
    grid-template-columns:1fr auto !important;
    padding:16px !important;
    column-gap:10px !important;
  }
  .network-card-status-actions{
    min-width:78px !important;
  }
  .network-status-pill{
    min-width:76px !important;
    font-size:.68rem !important;
    padding:7px 10px !important;
  }
  .network-result-meta{
    padding-left:24px !important;
  }
  .network-result-meta span{
    font-size:.74rem !important;
  }
}
/* OPSMANAGER_PATCH_02_5_END */

/* Fase 02.6 · sesión persistente opcional */
.remember-option {
  display: flex !important;
  align-items: flex-start;
  gap: 12px;
  padding: 14px 14px;
  border: 1px solid #e5e7eb;
  border-radius: 16px;
  background: #f8fafc;
  color: #1f2937;
  cursor: pointer;
  user-select: none;
}

.remember-option input[type="checkbox"] {
  width: 20px;
  height: 20px;
  min-width: 20px;
  margin-top: 2px;
  accent-color: #d97706;
  cursor: pointer;
}

.remember-option span {
  display: flex;
  flex-direction: column;
  gap: 3px;
  line-height: 1.25;
}

.remember-option strong {
  font-size: 0.95rem;
  font-weight: 800;
}

.remember-option small {
  font-size: 0.82rem;
  color: #6b7280;
}

/* OPSMANAGER_PATCH_START: fase03_1_rental_css_fix */
/* Módulo Alquiler · look & feel azul coherente con OpsManager */
.module-rental{
  --module-accent:#2563eb;
  --module-accent-2:#1d4ed8;
  --module-soft:#eff6ff;
  --module-border:#bfdbfe;
}
.module-rental .module-icon,
.module-icon-rental{
  color:#2563eb;
  background:linear-gradient(135deg,#dbeafe,#eff6ff);
  border-color:#bfdbfe;
}
.module-rental .module-status.active{
  color:#1d4ed8;
  background:#eff6ff;
  border-color:#bfdbfe;
}
.module-rental .module-primary{
  background:linear-gradient(135deg,#2563eb,#1d4ed8)!important;
  color:#fff!important;
  box-shadow:0 12px 28px rgba(37,99,235,.18)!important;
}
.module-rental .module-secondary{
  background:#eff6ff!important;
  color:#1d4ed8!important;
  border-color:#bfdbfe!important;
}

.rental-head,
.rental-dashboard-head{
  --rental:#2563eb;
  --rental-2:#1d4ed8;
  --rental-soft:#eff6ff;
  --rental-border:#bfdbfe;
}
.rental-eyebrow{
  color:#2563eb!important;
}
.rental-top-summary{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
  margin:18px 0 14px;
}
.rental-kpi-card{
  background:#fff;
  border:1px solid rgba(191,219,254,.95);
  border-radius:22px;
  box-shadow:0 16px 36px rgba(37,99,235,.08);
  padding:16px;
  display:grid;
  gap:8px;
  min-height:104px;
}
.rental-kpi-card span,
.rental-status-card span{
  color:var(--muted);
  font-size:11px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.07em;
}
.rental-kpi-card strong{
  font-size:24px;
  line-height:1;
  letter-spacing:-.04em;
}
.rental-status-row{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
  margin:0 0 16px;
}
.rental-status-card{
  background:#eff6ff;
  border:1px solid #bfdbfe;
  border-radius:20px;
  padding:14px 10px;
  display:grid;
  gap:4px;
  text-align:center;
  min-height:84px;
  align-content:center;
}
.rental-status-card strong{
  font-size:24px;
  line-height:1;
  color:#1d4ed8;
}
.positive{
  color:#059669!important;
}
.negative{
  color:#dc2626!important;
}

.rental-filter-card,
.rental-form-card,
.rental-empty-card{
  background:#fff;
  border:1px solid rgba(229,231,235,.95);
  border-radius:24px;
  box-shadow:var(--shadow);
  padding:18px;
  margin:16px 0;
}
.rental-filter-form,
.rental-form{
  display:grid;
  gap:16px;
}
.rental-field{
  display:grid;
  gap:9px;
  color:var(--muted);
  font-weight:800;
}
.rental-field span{
  font-size:13px;
  line-height:1.2;
}
.rental-field input,
.rental-field textarea,
.rental-select-control{
  width:100%;
  border:1px solid #bfdbfe;
  background:#fff;
  color:var(--text);
  border-radius:16px;
  padding:15px 16px;
  outline:none;
  min-height:54px;
  font:inherit;
  box-shadow:none;
}
.rental-field textarea{
  min-height:108px;
  resize:vertical;
}
.rental-field input:focus,
.rental-field textarea:focus,
.rental-select-control:focus{
  border-color:#2563eb;
  box-shadow:0 0 0 4px rgba(37,99,235,.14);
}
.rental-select-control{
  appearance:auto;
}
.rental-filter-actions,
.rental-form-actions{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
}
.rental-actions-row{
  margin:14px 0;
}
.rental-primary{
  background:linear-gradient(135deg,#2563eb,#1d4ed8)!important;
  color:#fff!important;
  border-color:#1d4ed8!important;
  box-shadow:0 12px 28px rgba(37,99,235,.18)!important;
}
.rental-secondary{
  background:#eff6ff!important;
  color:#1d4ed8!important;
  border-color:#bfdbfe!important;
}
.rental-results-title{
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:end;
  margin:20px 0 10px;
}
.rental-results-title h2{
  margin:0;
  font-size:22px;
}
.rental-card-grid{
  display:grid;
  gap:12px;
}
.rental-result-card{
  background:#fff;
  border:1px solid rgba(229,231,235,.95);
  border-radius:22px;
  box-shadow:0 14px 34px rgba(26,26,46,.06);
  padding:16px;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:12px;
  align-items:start;
}
.rental-result-card.is-income{
  border-left:5px solid #059669;
}
.rental-result-card.is-expense{
  border-left:5px solid #dc2626;
}
.rental-date{
  margin:0 0 5px;
  color:#2563eb;
  font-weight:900;
  font-size:13px;
}
.rental-result-main h2{
  font-size:20px;
  line-height:1.12;
  margin:0 0 6px;
  letter-spacing:-.03em;
}
.rental-notes{
  margin:0;
  color:var(--muted);
  font-size:14px;
  line-height:1.35;
}
.rental-result-side{
  display:grid;
  justify-items:end;
  gap:7px;
}
.rental-amount{
  font-size:18px;
  font-weight:900;
  white-space:nowrap;
}
.rental-status-pill,
.rental-edit-text{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:28px;
  padding:6px 10px;
  border-radius:999px;
  font-size:11px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.06em;
  text-decoration:none;
  white-space:nowrap;
}
.rental-status-pill.status-pagado{
  background:#ecfdf5;
  color:#047857;
  border:1px solid #a7f3d0;
}
.rental-status-pill.status-pte{
  background:#fff7ed;
  color:#c2410c;
  border:1px solid #fed7aa;
}
.rental-edit-text{
  background:#eff6ff;
  color:#1d4ed8;
  border:1px solid #bfdbfe;
}
.rental-delete-form{
  margin-top:14px;
}
.rental-delete-form .danger-btn{
  width:100%;
}

@media (min-width:680px){
  .rental-top-summary{
    grid-template-columns:repeat(4,minmax(0,1fr));
  }
  .rental-filter-form{
    grid-template-columns:2fr 1fr 1fr;
    align-items:end;
  }
  .rental-field-search{
    grid-column:auto;
  }
  .rental-filter-actions{
    grid-column:1/-1;
    max-width:420px;
  }
  .rental-card-grid{
    grid-template-columns:1fr 1fr;
  }
}
@media (max-width:420px){
  .rental-top-summary{
    grid-template-columns:1fr 1fr;
  }
  .rental-status-row{
    grid-template-columns:1fr 1fr 1fr;
  }
  .rental-result-card{
    grid-template-columns:1fr;
  }
  .rental-result-side{
    justify-items:start;
    grid-template-columns:auto auto auto;
    align-items:center;
  }
  .rental-filter-actions,
  .rental-form-actions{
    grid-template-columns:1fr;
  }
}
/* OPSMANAGER_PATCH_END: fase03_1_rental_css_fix */

/* OPSMANAGER_PATCH_START: fase03_2_rental_reimburse */
.warning{color:#d97706}
.rental-reimbursement-card{
  background:#f8fafc;
  border:1px solid #dbeafe;
  border-radius:22px;
  padding:16px;
  display:grid;
  gap:14px;
}
.rental-check-row{
  display:grid;
  grid-template-columns:auto 1fr;
  gap:12px;
  align-items:start;
  color:var(--text);
}
.rental-check-row input{
  width:22px;
  height:22px;
  accent-color:#2563eb;
  margin-top:2px;
}
.rental-check-row strong{
  display:block;
  font-size:15px;
  line-height:1.25;
}
.rental-check-row small{
  display:block;
  color:var(--muted);
  margin-top:4px;
  line-height:1.35;
  font-size:13px;
  font-weight:700;
}
.rental-reimbursement-fields{
  display:grid;
  gap:14px;
}
.rental-reimbursement-fields[hidden]{display:none!important}
.rental-reimbursement-line{
  margin-top:12px;
  display:inline-grid;
  gap:4px;
  padding:10px 12px;
  border-radius:16px;
  border:1px solid #bfdbfe;
  background:#eff6ff;
}
.rental-reimbursement-line span{
  color:#1d4ed8;
  font-size:11px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.06em;
}
.rental-reimbursement-line strong{
  color:#1d4ed8;
  font-size:16px;
}
.rental-reimbursement-line small{
  color:var(--muted);
  font-weight:800;
}
.rental-reimbursement-line.is-pending{
  background:#fff7ed;
  border-color:#fed7aa;
}
.rental-reimbursement-line.is-pending span,
.rental-reimbursement-line.is-pending strong{
  color:#c2410c;
}
.rental-status-pill.reimbursement-pendiente{
  background:#fff7ed;
  color:#c2410c;
  border:1px solid #fed7aa;
}
.rental-status-pill.reimbursement-cobrado{
  background:#eff6ff;
  color:#1d4ed8;
  border:1px solid #bfdbfe;
}
@media (max-width:420px){
  .rental-result-side{
    grid-template-columns:auto;
    justify-items:start;
  }
}
/* OPSMANAGER_PATCH_END: fase03_2_rental_reimburse */

/* OPSMANAGER_PATCH_START: fase03_4_rental_year_red_laf */
.module-rental{
  --module-accent:#2563eb!important;
  --module-accent-2:#1d4ed8!important;
}
.module-rental::before{background:#2563eb!important}
.module-rental::after{background:rgba(37,99,235,.12)!important}
.module-rental .module-icon,
.module-icon-rental{
  background:linear-gradient(135deg,#2563eb,#1d4ed8)!important;
  color:#fff!important;
}
.module-rental .module-primary,
.rental-primary{
  background:linear-gradient(135deg,#2563eb,#1d4ed8)!important;
  color:#fff!important;
  border-color:transparent!important;
  box-shadow:0 12px 30px rgba(37,99,235,.18)!important;
}
.module-rental .module-status.active{
  background:#eff6ff!important;
  color:#1d4ed8!important;
  border-color:#bfdbfe!important;
}
.rental-head,
.rental-redstyle-head{
  --rental:#2563eb;
  --rental-2:#1d4ed8;
  --rental-soft:#eff6ff;
  --rental-border:#bfdbfe;
}
.rental-eyebrow{color:#2563eb!important}
.rental-red-layout{
  display:grid;
  gap:18px;
}
.rental-red-summary,
.rental-blue-card,
.rental-filter-card,
.rental-form-card,
.rental-empty-card{
  background:rgba(255,255,255,.92);
  border:1px solid rgba(191,219,254,.85);
  border-radius:24px;
  box-shadow:var(--shadow);
}
.rental-red-summary{padding:18px;display:grid;gap:16px;align-content:start}
.rental-red-main{display:grid;gap:16px;min-width:0}
.rental-year-card{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding:16px;
  border-radius:20px;
  background:linear-gradient(135deg,#eff6ff,#fff);
  border:1px solid #bfdbfe;
}
.rental-year-card strong{display:block;font-size:34px;letter-spacing:-.06em;color:#1d4ed8;line-height:1}
.rental-card-label{display:block;color:#64748b;font-size:11px;text-transform:uppercase;letter-spacing:.08em;font-weight:900;margin-bottom:6px}
.rental-year-select{min-width:112px;background:#fff!important;border-color:#bfdbfe!important;color:#1e3a8a!important;font-weight:900}
.rental-kpi-grid,
.rental-top-summary{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
}
.rental-kpi-card,
.rental-status-card{
  padding:16px;
  border-radius:20px;
  background:#fff;
  border:1px solid #dbeafe;
  box-shadow:0 10px 28px rgba(37,99,235,.06);
}
.rental-kpi-card.is-main{grid-column:1 / -1;background:linear-gradient(135deg,#eff6ff,#fff)}
.rental-kpi-card span,
.rental-status-card span{display:block;color:#64748b;font-size:11px;text-transform:uppercase;letter-spacing:.07em;font-weight:900;margin-bottom:8px}
.rental-kpi-card strong,
.rental-status-card strong{display:block;font-size:22px;letter-spacing:-.04em;color:#172554}
.rental-kpi-card.is-main strong{font-size:34px}
.rental-new-wide{width:100%;min-height:54px}
.rental-filter-card{padding:16px}
.rental-filter-form,
.rental-form{display:grid;gap:14px}
.rental-field{display:grid;gap:9px;color:#64748b;font-weight:800}
.rental-field span{font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:#64748b}
.rental-field input,
.rental-field textarea,
.rental-select-control{
  width:100%;
  border:1px solid #bfdbfe;
  background:#fff;
  color:#172554;
  border-radius:16px;
  padding:15px 16px;
  outline:none;
  min-height:54px;
  font-weight:700;
}
.rental-field input:focus,
.rental-field textarea:focus,
.rental-select-control:focus{
  border-color:#2563eb;
  box-shadow:0 0 0 4px rgba(37,99,235,.13);
}
.rental-filter-actions,
.rental-form-actions{display:grid;gap:10px}
.rental-secondary{background:#eff6ff!important;color:#1d4ed8!important;border:1px solid #bfdbfe!important}
.rental-results-title{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-top:2px}
.rental-results-title h2{margin:0;font-size:22px;letter-spacing:-.03em;color:#172554}
.rental-card-grid{display:grid;gap:12px}
.rental-result-card{
  display:grid;
  gap:14px;
  padding:16px;
  border-radius:22px;
  background:#fff;
  border:1px solid #dbeafe;
  box-shadow:0 12px 32px rgba(15,23,42,.06);
}
.rental-result-card.is-income{border-left:5px solid #2563eb}
.rental-result-card.is-expense{border-left:5px solid #60a5fa}
.rental-date{margin:0 0 6px;color:#64748b;font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.06em}
.rental-result-main h2{margin:0;font-size:20px;letter-spacing:-.03em;color:#0f172a}.rental-notes{margin:8px 0 0;color:#64748b;line-height:1.45}
.rental-result-side{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;flex-wrap:wrap}
.rental-amount{font-size:22px;letter-spacing:-.04em;color:#172554}.positive{color:#2563eb!important}.negative{color:#dc2626!important}
.rental-status-pill,
.rental-edit-text{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:30px;
  padding:7px 11px;
  border-radius:999px;
  font-size:11px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.06em;
  text-decoration:none;
  white-space:nowrap;
}
.rental-status-pill.status-pagado{background:#eff6ff;color:#1d4ed8;border:1px solid #bfdbfe}
.rental-status-pill.status-pte{background:#fff7ed;color:#b45309;border:1px solid #fed7aa}
.rental-status-pill.reimbursement-pendiente{background:#fef2f2;color:#b91c1c;border:1px solid #fecaca}
.rental-status-pill.reimbursement-cobrado{background:#ecfdf5;color:#047857;border:1px solid #bbf7d0}
.rental-edit-text{background:#eff6ff;color:#1d4ed8;border:1px solid #bfdbfe}
.rental-reimbursement-line{margin-top:12px;display:grid;gap:3px;padding:12px;border-radius:16px;background:#f8fafc;border:1px solid #e2e8f0}
.rental-reimbursement-line span{font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.06em;color:#64748b}.rental-reimbursement-line strong{font-size:18px;color:#172554}.rental-reimbursement-line small{color:#64748b;font-weight:700}.rental-reimbursement-line.is-pending{background:#fef2f2;border-color:#fecaca}.rental-reimbursement-line.is-pending span,.rental-reimbursement-line.is-pending strong{color:#b91c1c}
.rental-form-card{padding:18px}.rental-reimbursement-card{padding:14px;border:1px solid #bfdbfe;border-radius:20px;background:#eff6ff;display:grid;gap:12px}.rental-check-row{display:flex;align-items:flex-start;gap:12px}.rental-check-row input{width:22px;height:22px;margin-top:2px;accent-color:#2563eb}.rental-check-row strong{display:block;color:#172554}.rental-reimbursement-fields{display:grid;gap:12px}.rental-reimbursement-fields[hidden]{display:none!important}.rental-delete-form{margin-top:16px}.danger-btn{width:100%;min-height:48px;border:0;border-radius:16px;background:#fef2f2;color:#b91c1c;font-weight:900}
@media (min-width:720px){
  .rental-filter-form{grid-template-columns:2fr 1fr 1fr auto;align-items:end}.rental-filter-actions{grid-template-columns:1fr 1fr}.rental-card-grid{grid-template-columns:1fr}.rental-result-card{grid-template-columns:minmax(0,1fr) auto;align-items:start}.rental-result-side{justify-content:flex-end;max-width:250px}.rental-form-card{max-width:760px}
}
@media (min-width:1060px){
  body.endpoint-rental .app-shell{max-width:1240px}.rental-red-layout{grid-template-columns:360px minmax(0,1fr);align-items:start}.rental-red-summary{position:sticky;top:22px}.rental-kpi-grid{grid-template-columns:1fr}.rental-kpi-card.is-main{grid-column:auto}.rental-filter-card{padding:18px}.rental-card-grid{gap:14px}
}
/* OPSMANAGER_PATCH_END: fase03_4_rental_year_red_laf */

/* OPSMANAGER_PATCH_START: fase03_4_1_rental_fullwidth_red_laf */
/* Alquiler: mismo patrón de anchura/paneles que Red, manteniendo mobile-first */
body.endpoint-rental .app-shell,
.app-shell:has(.rental-dashboard-head){
  width:min(100%,1180px) !important;
  max-width:1180px !important;
}
body.endpoint-rental .rental-dashboard-head{
  margin-bottom:18px !important;
}
body.endpoint-rental .rental-dashboard-head h1{
  letter-spacing:-.055em !important;
}
body.endpoint-rental .rental-red-layout{
  display:grid !important;
  grid-template-columns:1fr !important;
  gap:22px !important;
  align-items:start !important;
}
body.endpoint-rental .rental-red-sidebar,
body.endpoint-rental .rental-red-main{
  width:100% !important;
  min-width:0 !important;
  display:grid !important;
  gap:18px !important;
}
body.endpoint-rental .rental-red-sidebar{
  position:static !important;
  top:auto !important;
}
body.endpoint-rental .rental-panel-card{
  padding:18px !important;
  border-radius:24px !important;
}
body.endpoint-rental .rental-year-form{
  margin:0 0 16px !important;
}
body.endpoint-rental .rental-field.compact{
  display:grid !important;
  grid-template-columns:minmax(0,1fr) minmax(130px,190px) !important;
  gap:14px !important;
  align-items:center !important;
  min-height:78px !important;
  padding:16px 18px !important;
  border-radius:22px !important;
  background:linear-gradient(135deg,#fff,var(--rental-soft)) !important;
  border:1px solid var(--rental-border) !important;
}
body.endpoint-rental .rental-field.compact span{
  margin:0 !important;
  color:var(--rental) !important;
}
body.endpoint-rental .rental-field.compact .rental-select-control{
  min-height:54px !important;
  border-radius:17px !important;
}
body.endpoint-rental .rental-kpi-grid-red{
  display:grid !important;
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  gap:12px !important;
}
body.endpoint-rental .rental-kpi-red,
body.endpoint-rental .rental-device-card-red{
  box-shadow:0 14px 34px rgba(26,26,46,.065) !important;
}
body.endpoint-rental .rental-kpi-red.primary{
  grid-column:auto !important;
}
body.endpoint-rental .rental-kpi-red{
  min-height:104px !important;
  padding:17px !important;
}
body.endpoint-rental .rental-status-row{
  display:grid !important;
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  gap:12px !important;
  margin-top:16px !important;
}
body.endpoint-rental .rental-status-card{
  min-height:92px !important;
  border-radius:20px !important;
  box-shadow:0 14px 34px rgba(26,26,46,.055) !important;
}
body.endpoint-rental .rental-filter-card,
body.endpoint-rental .rental-results-title-red,
body.endpoint-rental .rental-card-grid-red{
  width:100% !important;
}
body.endpoint-rental .rental-filter-red{
  padding:18px !important;
  border-radius:24px !important;
}
body.endpoint-rental .rental-results-title-red{
  margin-top:0 !important;
}
body.endpoint-rental .rental-card-grid-red{
  display:grid !important;
  grid-template-columns:1fr !important;
  gap:12px !important;
}
body.endpoint-rental .rental-result-card-red{
  border-radius:22px !important;
  min-height:112px !important;
  padding:18px !important;
}
@media (min-width:640px){
  body.endpoint-rental .rental-kpi-grid-red{
    grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  }
}
@media (min-width:900px){
  body.endpoint-rental .rental-kpi-grid-red{
    grid-template-columns:repeat(5,minmax(0,1fr)) !important;
  }
  body.endpoint-rental .rental-status-row{
    grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  }
  body.endpoint-rental .rental-filter-form-red{
    grid-template-columns:minmax(260px,2fr) minmax(150px,1fr) minmax(150px,1fr) auto !important;
    align-items:end !important;
  }
  body.endpoint-rental .rental-filter-actions-red{
    grid-template-columns:auto auto !important;
  }
}
@media (min-width:1100px){
  body.endpoint-rental .rental-red-layout{
    grid-template-columns:1fr !important;
  }
  body.endpoint-rental .rental-result-card-red{
    grid-template-columns:minmax(0,1fr) auto !important;
  }
  body.endpoint-rental .rental-result-side-red{
    min-width:180px !important;
  }
}
@media (max-width:560px){
  body.endpoint-rental .rental-field.compact{
    grid-template-columns:1fr !important;
    gap:8px !important;
    padding:14px !important;
  }
  body.endpoint-rental .rental-kpi-grid-red{
    grid-template-columns:1fr !important;
  }
  body.endpoint-rental .rental-status-row{
    grid-template-columns:1fr !important;
  }
}
/* OPSMANAGER_PATCH_END: fase03_4_1_rental_fullwidth_red_laf */

/* OPSMANAGER_PATCH_START: fase03_4_2 */
/* Fase 03.4.2 · Alquiler con patrón visual Red + ajuste filtros Red */
body.endpoint-rental .app-shell,
body.endpoint-rental_index .app-shell{
  max-width:1180px;
}

.rental-head{
  --rental:#2563eb;
  --rental-2:#1d4ed8;
  --rental-soft:#eff6ff;
  --rental-border:#bfdbfe;
}
.rental-eyebrow{color:#2563eb!important}

.rental-top-summary.rental-kpi-grid-red{
  display:grid;
  gap:14px;
  margin:18px 0 18px;
}
.rental-kpi-card{
  background:rgba(255,255,255,.94);
  border:1px solid #dbeafe;
  border-radius:24px;
  box-shadow:var(--shadow);
  padding:20px;
  min-height:128px;
  display:grid;
  align-content:center;
  gap:10px;
}
.rental-kpi-card span{
  color:#64748b;
  font-size:12px;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.rental-kpi-card strong{
  display:block;
  color:#1d4ed8;
  font-size:clamp(28px,7vw,42px);
  line-height:1;
  letter-spacing:-.04em;
}
.rental-kpi-card .negative,
.rental-amount.negative{color:#dc2626!important}
.rental-kpi-card .positive,
.rental-amount.positive{color:#2563eb!important}

.rental-status-row{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
  margin:0 0 18px;
}
.rental-status-card{
  background:#fff;
  border:1px solid #dbeafe;
  border-radius:20px;
  padding:16px;
  box-shadow:0 14px 34px rgba(15,23,42,.055);
}
.rental-status-card strong{display:block;font-size:24px;color:#1e3a8a;line-height:1}
.rental-status-card span{display:block;margin-top:6px;color:#64748b;font-weight:800;font-size:12px;text-transform:uppercase;letter-spacing:.06em}

.rental-filter-card{
  background:rgba(255,255,255,.94);
  border:1px solid #dbeafe;
  border-radius:24px;
  box-shadow:var(--shadow);
  padding:18px;
  margin:18px 0;
}
.rental-filter-form{
  display:grid;
  gap:12px;
}
.rental-field{display:grid;gap:8px;font-weight:900;color:#64748b;text-transform:uppercase;letter-spacing:.07em;font-size:12px}
.rental-field input,
.rental-field textarea,
.rental-select-control{
  width:100%;
  min-height:58px;
  border:1px solid #bfdbfe;
  border-radius:18px;
  background:#fff;
  color:#172033;
  padding:15px 16px;
  outline:none;
  font-size:16px;
  text-transform:none;
  letter-spacing:0;
  font-weight:800;
}
.rental-field input:focus,
.rental-field textarea:focus,
.rental-select-control:focus{
  border-color:#2563eb;
  box-shadow:0 0 0 4px rgba(37,99,235,.13);
}
.rental-filter-actions,
.rental-form-actions{
  display:grid;
  gap:10px;
}
.rental-primary{
  background:linear-gradient(135deg,#2563eb,#1d4ed8)!important;
  color:#fff!important;
  border-color:transparent!important;
  box-shadow:0 14px 32px rgba(37,99,235,.22)!important;
}
.rental-secondary{
  background:#eff6ff!important;
  color:#1d4ed8!important;
  border:1px solid #bfdbfe!important;
}

.rental-actions-row{display:flex;justify-content:flex-end;margin:12px 0 18px}
.rental-actions-row .rental-primary{width:100%}
.rental-results-title{margin:20px 0 12px}
.rental-results-title .eyebrow,
.rental-results-title p:first-child{color:#2563eb;font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.09em;margin:0 0 6px}
.rental-results-title h2{font-size:clamp(24px,5vw,34px);line-height:1.1;margin:0;color:#172033}
.rental-card-grid{display:grid;gap:12px}
.rental-result-card{
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:14px;
  align-items:center;
  background:#fff;
  border:1px solid #dbeafe;
  border-left:5px solid #60a5fa;
  border-radius:22px;
  box-shadow:0 16px 40px rgba(15,23,42,.06);
  padding:18px;
}
.rental-result-card.is-income{border-left-color:#2563eb}
.rental-result-card.is-expense{border-left-color:#60a5fa}
.rental-date{margin:0 0 6px;color:#64748b;font-size:13px;font-weight:900}
.rental-result-main h2{margin:0;color:#172033;font-size:22px;line-height:1.1;letter-spacing:-.03em}
.rental-notes{margin:8px 0 0;color:#64748b;line-height:1.35}
.rental-result-side{display:grid;justify-items:end;gap:8px;min-width:124px}
.rental-amount{font-size:22px;line-height:1;font-weight:900;white-space:nowrap}
.rental-status-pill,
.rental-edit-text{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:34px;
  padding:8px 13px;
  border-radius:999px;
  font-size:12px;
  font-weight:900;
  letter-spacing:.04em;
  text-transform:uppercase;
  text-decoration:none;
}
.rental-status-pill.status-pagado{background:#eff6ff;color:#1d4ed8;border:1px solid #bfdbfe}
.rental-status-pill.status-pte{background:#fff7ed;color:#c2410c;border:1px solid #fed7aa}
.rental-status-pill.reimbursement-pendiente{background:#fff7ed;color:#c2410c;border:1px solid #fed7aa}
.rental-status-pill.reimbursement-cobrado{background:#ecfdf5;color:#047857;border:1px solid #bbf7d0}
.rental-edit-text{background:#eff6ff;color:#1d4ed8;border:1px solid #bfdbfe}
.rental-reimbursement-line{
  margin-top:10px;
  display:inline-grid;
  gap:2px;
  padding:9px 11px;
  border-radius:14px;
  background:#f8fafc;
  border:1px solid #e5e7eb;
}
.rental-reimbursement-line span{font-size:11px;font-weight:900;letter-spacing:.06em;text-transform:uppercase;color:#64748b}
.rental-reimbursement-line strong{font-size:15px;color:#172033}.rental-reimbursement-line small{font-size:12px;color:#64748b}
.rental-reimbursement-line.is-pending{background:#fff7ed;border-color:#fed7aa}.rental-reimbursement-line.is-pending span,.rental-reimbursement-line.is-pending strong{color:#c2410c}
.rental-empty-card{background:#fff;border:1px solid #dbeafe;border-radius:24px;box-shadow:var(--shadow);padding:22px}

/* Red: Nuevo dispositivo junto a Buscar */
.network-filter-actions{
  display:grid;
  gap:12px;
}
.network-new-inline{
  background:linear-gradient(135deg,#059669,#047857)!important;
  color:#fff!important;
  border-color:transparent!important;
  box-shadow:0 14px 32px rgba(5,150,105,.20)!important;
}

@media (min-width:760px){
  .rental-top-summary.rental-kpi-grid-red{grid-template-columns:repeat(5,minmax(0,1fr))}
  .rental-filter-form{grid-template-columns:minmax(260px,1.5fr) minmax(160px,.7fr) minmax(160px,.7fr);align-items:end}
  .rental-filter-actions{grid-column:1 / -1;grid-template-columns:1fr 1fr}
  .rental-actions-row .rental-primary{width:auto;min-width:220px}
  .rental-card-grid{grid-template-columns:1fr}
  .network-filter-actions{grid-template-columns:1fr 1fr 1fr;align-items:center}
}
@media (max-width:759px){
  .rental-top-summary.rental-kpi-grid-red{grid-template-columns:1fr}
  .rental-status-row{grid-template-columns:1fr}
  .rental-result-card{grid-template-columns:1fr;align-items:start}
  .rental-result-side{justify-items:start;min-width:0}
  .rental-actions-row{display:grid}.rental-actions-row .rental-primary{width:100%}
}
/* OPSMANAGER_PATCH_END: fase03_4_2 */


/* OPSMANAGER_PATCH_03_4_3_START */
/* Fase 03.4.3 · Alquiler siguiendo patrón visual de Red, sin tocar lógica */
body.endpoint-rental .app-shell{
  max-width:1180px;
}
body.endpoint-rental .rental-head{
  --rental:#2563eb;
  --rental-2:#1d4ed8;
  --rental-soft:#eff6ff;
  --rental-border:#bfdbfe;
}
body.endpoint-rental .rental-top-summary.rental-kpi-grid-red{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
  gap:14px;
  margin:18px 0 18px;
}
body.endpoint-rental .rental-kpi-card{
  min-height:118px;
  border-radius:22px;
  border:1px solid var(--rental-border,#bfdbfe);
  background:linear-gradient(180deg,#fff,#f8fbff);
  box-shadow:0 16px 38px rgba(37,99,235,.08);
  padding:18px;
}
body.endpoint-rental .rental-kpi-card span{
  display:block;
  color:#64748b;
  font-weight:900;
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:.08em;
  margin-bottom:12px;
}
body.endpoint-rental .rental-kpi-card strong{
  display:block;
  color:#172554;
  font-size:clamp(24px,5vw,34px);
  letter-spacing:-.04em;
}
body.endpoint-rental .rental-kpi-card strong.positive{color:#2563eb}
body.endpoint-rental .rental-kpi-card strong.negative{color:#dc2626}
body.endpoint-rental .rental-status-row{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(160px,1fr));
  gap:12px;
  margin:0 0 18px;
}
body.endpoint-rental .rental-status-card{
  border-radius:18px;
  border:1px solid var(--rental-border,#bfdbfe);
  background:#fff;
  padding:14px 16px;
  box-shadow:0 12px 28px rgba(15,23,42,.05);
}
body.endpoint-rental .rental-filter-card.rental-filter-card-red,
body.endpoint-rental .rental-filter-card{
  border-radius:24px;
  border:1px solid var(--rental-border,#bfdbfe);
  background:rgba(255,255,255,.92);
  box-shadow:var(--shadow);
  padding:18px;
  margin-bottom:18px;
}
body.endpoint-rental .rental-filter-form{
  display:grid;
  gap:12px;
}
body.endpoint-rental .rental-field span{
  color:#64748b;
  font-weight:900;
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:.08em;
}
body.endpoint-rental .rental-field input,
body.endpoint-rental .rental-field textarea,
body.endpoint-rental .rental-select-control{
  border-color:var(--rental-border,#bfdbfe);
  background:#fff;
}
body.endpoint-rental .rental-field input:focus,
body.endpoint-rental .rental-field textarea:focus,
body.endpoint-rental .rental-select-control:focus{
  border-color:#2563eb;
  box-shadow:0 0 0 4px rgba(37,99,235,.13);
}
body.endpoint-rental .rental-primary{
  background:linear-gradient(135deg,#2563eb,#1d4ed8) !important;
  color:#fff !important;
  border-color:transparent !important;
}
body.endpoint-rental .rental-secondary{
  background:#eff6ff !important;
  color:#1d4ed8 !important;
  border:1px solid #bfdbfe !important;
}
body.endpoint-rental .rental-results-title{
  margin:18px 0 12px;
}
body.endpoint-rental .rental-results-title .muted,
body.endpoint-rental .rental-results-title p{
  color:#64748b;
}
body.endpoint-rental .rental-card-grid{
  display:grid;
  gap:14px;
}
body.endpoint-rental .rental-result-card{
  border-radius:22px;
  border:1px solid var(--rental-border,#bfdbfe);
  background:#fff;
  box-shadow:0 16px 38px rgba(15,23,42,.06);
  padding:16px;
  display:grid;
  gap:14px;
}
body.endpoint-rental .rental-result-card.is-income{border-left:5px solid #2563eb}
body.endpoint-rental .rental-result-card.is-expense{border-left:5px solid #60a5fa}
body.endpoint-rental .rental-status-pill,
body.endpoint-rental .rental-edit-text{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:30px;
  padding:7px 12px;
  border-radius:999px;
  font-size:12px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.04em;
  text-decoration:none;
}
body.endpoint-rental .rental-edit-text{
  border:1px solid #bfdbfe;
  color:#2563eb;
  background:#eff6ff;
}
body.endpoint-rental .rental-amount.positive{color:#2563eb}
body.endpoint-rental .rental-amount.negative{color:#dc2626}
@media (min-width:760px){
  body.endpoint-rental .rental-filter-form{
    grid-template-columns:minmax(260px,1fr) minmax(150px,180px) minmax(150px,180px);
    align-items:end;
  }
  body.endpoint-rental .rental-filter-actions{
    grid-column:1 / -1;
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:12px;
  }
  body.endpoint-rental .rental-result-card{
    grid-template-columns:minmax(0,1fr) auto;
    align-items:center;
  }
  body.endpoint-rental .rental-result-side{
    min-width:210px;
    align-items:flex-end;
  }
}
@media (max-width:759px){
  body.endpoint-rental .rental-top-summary.rental-kpi-grid-red{
    grid-template-columns:1fr;
  }
}

/* Red: colocar Nuevo dispositivo junto a Buscar sin romper móvil */
.network-new-inline{
  background:linear-gradient(135deg,#059669,#047857) !important;
  color:#fff !important;
  border-color:transparent !important;
}
.network-actions-fallback{display:grid;gap:10px;margin:10px 0}
@media (min-width:760px){
  .network-filter-actions,
  .network-actions-row{
    display:grid;
    grid-template-columns:1fr 1fr 1fr;
    gap:12px;
    align-items:center;
  }
}
@media (max-width:759px){
  .network-filter-actions,
  .network-actions-row{
    display:grid;
    grid-template-columns:1fr;
    gap:10px;
  }
}
/* OPSMANAGER_PATCH_03_4_3_END */

/* OPSMANAGER_PATCH_03_4_4_RENTAL_RED_LAYOUT_START */
/* Fase 03.4.4 · Alquiler: mismo patrón de anchura y colocación que Red */
body.endpoint-rental .app-shell{
  width:min(100%,1180px) !important;
  max-width:1180px !important;
  margin-left:auto !important;
  margin-right:auto !important;
}
body.endpoint-rental main,
body.endpoint-rental .page,
body.endpoint-rental .content,
body.endpoint-rental .page-content{
  width:100% !important;
  max-width:1180px !important;
  margin-left:auto !important;
  margin-right:auto !important;
}
body.endpoint-rental .rental-head,
body.endpoint-rental .rental-dashboard-head{
  width:100% !important;
  max-width:none !important;
  margin-left:0 !important;
  margin-right:0 !important;
}
body.endpoint-rental .rental-dashboard-layout,
body.endpoint-rental .rental-dashboard-grid,
body.endpoint-rental .rental-layout,
body.endpoint-rental .rental-red-layout,
body.endpoint-rental .rental-content-layout{
  display:grid !important;
  grid-template-columns:1fr !important;
  gap:22px !important;
  align-items:start !important;
  width:100% !important;
  max-width:none !important;
  margin:0 !important;
}
body.endpoint-rental .rental-summary-panel,
body.endpoint-rental .rental-main-panel,
body.endpoint-rental .rental-left,
body.endpoint-rental .rental-right,
body.endpoint-rental .rental-sidebar,
body.endpoint-rental .rental-content,
body.endpoint-rental .rental-panel{
  width:100% !important;
  max-width:none !important;
  min-width:0 !important;
  margin:0 !important;
}
body.endpoint-rental .rental-top-summary,
body.endpoint-rental .rental-kpi-grid-red{
  display:grid !important;
  grid-template-columns:repeat(auto-fit,minmax(205px,1fr)) !important;
  gap:14px !important;
  width:100% !important;
  max-width:none !important;
  margin:0 0 18px 0 !important;
}
body.endpoint-rental .rental-kpi-card{
  min-height:126px !important;
}
body.endpoint-rental .rental-status-row{
  display:grid !important;
  grid-template-columns:repeat(auto-fit,minmax(180px,1fr)) !important;
  gap:14px !important;
  width:100% !important;
  margin:0 0 18px 0 !important;
}
body.endpoint-rental .rental-filter-card{
  width:100% !important;
  max-width:none !important;
  margin:0 0 22px 0 !important;
}
body.endpoint-rental .rental-filter-form{
  display:grid !important;
  grid-template-columns:1fr !important;
  gap:14px !important;
  width:100% !important;
}
body.endpoint-rental .rental-filter-actions{
  display:grid !important;
  grid-template-columns:1fr !important;
  gap:12px !important;
}
body.endpoint-rental .rental-actions-row{
  display:flex !important;
  justify-content:flex-end !important;
  margin:0 0 18px 0 !important;
}
body.endpoint-rental .rental-actions-row .rental-primary{
  width:100% !important;
}
body.endpoint-rental .rental-results-title{
  margin-top:6px !important;
}
body.endpoint-rental .rental-card-grid{
  display:grid !important;
  grid-template-columns:1fr !important;
  gap:14px !important;
  width:100% !important;
}
body.endpoint-rental .rental-result-card{
  width:100% !important;
}
@media (min-width:760px){
  body.endpoint-rental .rental-filter-form{
    grid-template-columns:minmax(280px,2fr) minmax(160px,1fr) minmax(160px,1fr) !important;
    align-items:end !important;
  }
  body.endpoint-rental .rental-filter-actions{
    grid-column:1 / -1 !important;
    grid-template-columns:1fr 1fr !important;
  }
  body.endpoint-rental .rental-actions-row .rental-primary{
    width:auto !important;
    min-width:220px !important;
  }
}
@media (min-width:1040px){
  body.endpoint-rental .rental-top-summary,
  body.endpoint-rental .rental-kpi-grid-red{
    grid-template-columns:repeat(5,minmax(0,1fr)) !important;
  }
}
/* OPSMANAGER_PATCH_03_4_4_RENTAL_RED_LAYOUT_END */

/* OPSMANAGER_PATCH_START: fase03_4_5_rental_same_frame */
/* Fase 03.4.5 · Alquiler: mismo encuadre horizontal que Red */
body.endpoint-rental .app-shell,
body.endpoint-rental main.app-shell,
body.endpoint-rental .page-shell,
body.endpoint-rental .content-shell{
  width:min(1180px, calc(100vw - 48px)) !important;
  max-width:1180px !important;
  margin-left:auto !important;
  margin-right:auto !important;
}

body.endpoint-rental .rental-dashboard-layout,
body.endpoint-rental .rental-layout,
body.endpoint-rental .rental-layout-red,
body.endpoint-rental .rental-page-grid,
body.endpoint-rental .rental-dashboard-grid,
body.endpoint-rental .rental-content-grid{
  display:grid !important;
  grid-template-columns:1fr !important;
  gap:22px !important;
  width:100% !important;
  max-width:none !important;
  margin-left:0 !important;
  margin-right:0 !important;
}

body.endpoint-rental .rental-summary-panel,
body.endpoint-rental .rental-main-panel,
body.endpoint-rental .rental-left-panel,
body.endpoint-rental .rental-right-panel,
body.endpoint-rental .rental-sidebar,
body.endpoint-rental .rental-content{
  width:100% !important;
  max-width:none !important;
  min-width:0 !important;
  margin-left:0 !important;
  margin-right:0 !important;
}

body.endpoint-rental .rental-head,
body.endpoint-rental .rental-dashboard-head,
body.endpoint-rental .rental-top-summary,
body.endpoint-rental .rental-status-row,
body.endpoint-rental .rental-filter-card,
body.endpoint-rental .rental-actions-row,
body.endpoint-rental .rental-results-title,
body.endpoint-rental .rental-card-grid{
  width:100% !important;
  max-width:none !important;
}

body.endpoint-rental .rental-top-summary{
  display:grid !important;
  grid-template-columns:repeat(auto-fit, minmax(210px, 1fr)) !important;
  gap:16px !important;
}

body.endpoint-rental .rental-status-row{
  display:grid !important;
  grid-template-columns:repeat(auto-fit, minmax(180px, 1fr)) !important;
  gap:14px !important;
}

body.endpoint-rental .rental-filter-form{
  display:grid !important;
  grid-template-columns:minmax(260px, 1.4fr) minmax(160px,.55fr) minmax(160px,.55fr) !important;
  gap:14px !important;
  align-items:end !important;
}

body.endpoint-rental .rental-filter-actions{
  grid-column:1 / -1 !important;
  display:grid !important;
  grid-template-columns:1fr 1fr !important;
  gap:12px !important;
}

body.endpoint-rental .rental-actions-row{
  display:flex !important;
  justify-content:flex-end !important;
  margin:6px 0 16px !important;
}

body.endpoint-rental .rental-actions-row .rental-primary,
body.endpoint-rental .rental-actions-row .primary-btn{
  width:auto !important;
  min-width:220px !important;
}

body.endpoint-rental .rental-card-grid{
  display:grid !important;
  grid-template-columns:1fr !important;
  gap:14px !important;
}

@media (max-width: 679px){
  body.endpoint-rental .app-shell,
  body.endpoint-rental main.app-shell,
  body.endpoint-rental .page-shell,
  body.endpoint-rental .content-shell{
    width:calc(100vw - 28px) !important;
    max-width:none !important;
  }
  body.endpoint-rental .rental-filter-form{
    grid-template-columns:1fr !important;
  }
  body.endpoint-rental .rental-filter-actions{
    grid-template-columns:1fr !important;
  }
  body.endpoint-rental .rental-actions-row{
    display:grid !important;
  }
  body.endpoint-rental .rental-actions-row .rental-primary,
  body.endpoint-rental .rental-actions-row .primary-btn{
    width:100% !important;
    min-width:0 !important;
  }
}
/* OPSMANAGER_PATCH_END: fase03_4_5_rental_same_frame */

/* Alquiler: mismo encuadre que Red. Sin layout lateral. */
body:has(.rental-red-layout) .app-shell,
body:has(.rental-red-layout) main,
body:has(.rental-red-layout) .page,
body:has(.rental-red-layout) .content,
body:has(.rental-red-layout) .page-content,
body.endpoint-rental .app-shell,
body.endpoint-rental main,
body.endpoint-rental .page,
body.endpoint-rental .content,
body.endpoint-rental .page-content{
  width:min(1180px, calc(100vw - 48px)) !important;
  max-width:1180px !important;
  margin-left:auto !important;
  margin-right:auto !important;
}
.rental-red-layout,
body.endpoint-rental .rental-red-layout,
body:has(.rental-red-layout) .rental-red-layout{
  display:grid !important;
  grid-template-columns:1fr !important;
  gap:22px !important;
  width:100% !important;
  max-width:none !important;
  margin:0 !important;
  align-items:start !important;
}
.rental-red-summary,
body.endpoint-rental .rental-red-summary,
body:has(.rental-red-layout) .rental-red-summary{
  position:static !important;
  top:auto !important;
  display:grid !important;
  grid-template-columns:1fr !important;
  gap:16px !important;
  width:100% !important;
  max-width:none !important;
  min-width:0 !important;
  margin:0 !important;
  padding:18px !important;
}
.rental-red-main,
body.endpoint-rental .rental-red-main,
body:has(.rental-red-layout) .rental-red-main{
  display:grid !important;
  grid-template-columns:1fr !important;
  gap:16px !important;
  width:100% !important;
  max-width:none !important;
  min-width:0 !important;
  margin:0 !important;
}
.rental-kpi-grid,
.rental-kpi-grid-blue,
.rental-kpi-grid-red,
body.endpoint-rental .rental-kpi-grid,
body.endpoint-rental .rental-kpi-grid-blue,
body.endpoint-rental .rental-kpi-grid-red{
  display:grid !important;
  grid-template-columns:repeat(auto-fit, minmax(205px, 1fr)) !important;
  gap:14px !important;
  width:100% !important;
  max-width:none !important;
}
.rental-kpi-card.is-main,
body.endpoint-rental .rental-kpi-card.is-main{
  grid-column:auto !important;
}
.rental-filter-form,
body.endpoint-rental .rental-filter-form{
  display:grid !important;
  grid-template-columns:1fr !important;
  gap:14px !important;
  width:100% !important;
}
.rental-filter-actions,
body.endpoint-rental .rental-filter-actions{
  display:grid !important;
  grid-template-columns:1fr 1fr !important;
  gap:12px !important;
}
.rental-card-grid,
body.endpoint-rental .rental-card-grid{
  display:grid !important;
  grid-template-columns:1fr !important;
  gap:14px !important;
  width:100% !important;
}
@media (min-width:760px){
  .rental-filter-form,
  body.endpoint-rental .rental-filter-form{
    grid-template-columns:minmax(280px,2fr) minmax(160px,1fr) minmax(160px,1fr) !important;
    align-items:end !important;
  }
  .rental-filter-actions,
  body.endpoint-rental .rental-filter-actions{
    grid-column:1 / -1 !important;
    grid-template-columns:1fr 1fr !important;
  }
}
@media (min-width:1040px){
  .rental-kpi-grid,
  .rental-kpi-grid-blue,
  .rental-kpi-grid-red,
  body.endpoint-rental .rental-kpi-grid,
  body.endpoint-rental .rental-kpi-grid-blue,
  body.endpoint-rental .rental-kpi-grid-red{
    grid-template-columns:repeat(5, minmax(0, 1fr)) !important;
  }
}
@media (max-width:679px){
  body:has(.rental-red-layout) .app-shell,
  body:has(.rental-red-layout) main,
  body.endpoint-rental .app-shell,
  body.endpoint-rental main{
    width:calc(100vw - 28px) !important;
    max-width:none !important;
  }
  .rental-filter-actions,
  body.endpoint-rental .rental-filter-actions{
    grid-template-columns:1fr !important;
  }
}

/* Red: Buscar, Nuevo dispositivo y Limpiar en una misma línea, más pequeños. */
.network-header-actions{display:none !important;}
.network-filter-actions{
  display:grid !important;
  grid-template-columns:repeat(3, minmax(0, 1fr)) !important;
  gap:10px !important;
  align-items:stretch !important;
}
.network-filter-actions .primary-btn,
.network-filter-actions .secondary-btn,
.network-filter-actions .network-new-inline{
  min-height:46px !important;
  height:46px !important;
  padding:0 10px !important;
  border-radius:14px !important;
  font-size:.88rem !important;
  font-weight:900 !important;
  white-space:nowrap !important;
  text-align:center !important;
}
.network-filter-actions .network-new-inline{
  background:#ecfdf5 !important;
  color:#047857 !important;
  border:1px solid #bbf7d0 !important;
  box-shadow:none !important;
}
@media (max-width:420px){
  .network-filter-actions .primary-btn,
  .network-filter-actions .secondary-btn,
  .network-filter-actions .network-new-inline{
    font-size:.76rem !important;
    padding:0 6px !important;
  }
}

/* OPSMANAGER_PATCH_START: fase03_5_1_rental_kpi_safe_fix */
body.endpoint-rental .rental-kpi-grid,
body.endpoint-rental .rental-kpi-grid-blue,
body.endpoint-rental .rental-kpi-grid-red{
  display:grid !important;
  grid-template-columns:repeat(auto-fit, minmax(205px, 1fr)) !important;
  gap:14px !important;
  width:100% !important;
}
body.endpoint-rental .rental-kpi-card span{
  text-transform:uppercase;
  letter-spacing:.08em;
}
body.endpoint-rental .rental-kpi-card strong.positive,
body.endpoint-rental .rental-amount.positive{color:#2563eb !important;}
body.endpoint-rental .rental-kpi-card strong.negative,
body.endpoint-rental .rental-amount.negative{color:#dc2626 !important;}
@media (min-width:1040px){
  body.endpoint-rental .rental-kpi-grid,
  body.endpoint-rental .rental-kpi-grid-blue,
  body.endpoint-rental .rental-kpi-grid-red{
    grid-template-columns:repeat(5, minmax(0, 1fr)) !important;
  }
}
@media (max-width:680px){
  body.endpoint-rental .rental-kpi-grid,
  body.endpoint-rental .rental-kpi-grid-blue,
  body.endpoint-rental .rental-kpi-grid-red{
    grid-template-columns:1fr !important;
  }
}
/* OPSMANAGER_PATCH_END: fase03_5_1_rental_kpi_safe_fix */

/* OPSMANAGER_PATCH_START: fase03_5_4_kpi_autofit */
/* Ajuste definitivo de importes en KPIs del módulo Alquiler.
   Mantiene el importe en una sola línea y JS reduce el tamaño si no cabe. */
.rental-kpi-card,
.rental-summary-card,
.rental-kpi-box,
.rental-stat-card {
  min-width: 0;
  overflow: hidden;
}

.rental-kpi-card strong,
.rental-summary-card strong,
.rental-kpi-box strong,
.rental-stat-card strong {
  min-width: 0;
}

.money-fit,
.rental-money-fit {
  display: block;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: clip;
  line-height: .95;
  letter-spacing: -0.055em;
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1;
  will-change: font-size;
}

.rental-kpi-card .money-fit,
.rental-summary-card .money-fit,
.rental-kpi-box .money-fit,
.rental-stat-card .money-fit {
  font-size: clamp(2rem, 2.35vw, 3.55rem);
}

@media (min-width: 1280px) {
  .rental-kpi-card .money-fit,
  .rental-summary-card .money-fit,
  .rental-kpi-box .money-fit,
  .rental-stat-card .money-fit {
    font-size: clamp(1.7rem, 1.85vw, 3.05rem);
  }
}

@media (max-width: 720px) {
  .rental-kpi-card .money-fit,
  .rental-summary-card .money-fit,
  .rental-kpi-box .money-fit,
  .rental-stat-card .money-fit {
    font-size: clamp(2rem, 8vw, 3.15rem);
  }
}
/* OPSMANAGER_PATCH_END: fase03_5_4_kpi_autofit */



/* OPSMANAGER_PATCH_START: fase03_5_4_1_kpi_autofit */
/* KPI de Alquiler: importes en una sola línea, preparados para 7+ dígitos. */
.rental-kpi-card,
.rental-summary-card,
.rental-kpi-box,
.rental-stat-card {
  min-width: 0;
  overflow: hidden;
}

.rental-kpi-card strong,
.rental-summary-card strong,
.rental-kpi-box strong,
.rental-stat-card strong,
.rental-kpi-value,
.rental-kpi-amount,
.kpi-value,
.metric-value,
.summary-value {
  max-width: 100%;
  min-width: 0;
}

.rental-money-autofit {
  display: block !important;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: clip !important;
  line-height: 0.95;
  letter-spacing: -0.055em;
  font-variant-numeric: tabular-nums;
  transform-origin: left center;
}

@media (min-width: 900px) {
  .rental-money-autofit {
    font-size: clamp(1.45rem, 2.05vw, 3.15rem) !important;
  }
}

@media (max-width: 899px) {
  .rental-money-autofit {
    font-size: clamp(1.75rem, 7vw, 3rem) !important;
  }
}
/* OPSMANAGER_PATCH_END: fase03_5_4_1_kpi_autofit */


/* OPSMANAGER_PATCH_START: fase03_5_5_rental_kpi_strong_fit */
.rental-kpi-grid,
.rental-kpi-grid-blue,
.rental-kpi-grid-red {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
  align-items: stretch;
}

.rental-kpi-card {
  min-width: 0;
  overflow: hidden;
}

.rental-kpi-card strong {
  display: block;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  white-space: nowrap !important;
  overflow: hidden;
  text-overflow: clip;
  line-height: .95;
  letter-spacing: -.055em;
  font-variant-numeric: tabular-nums;
  font-size: clamp(2rem, 2.35vw, 3.35rem);
  transform-origin: left center;
}

.rental-kpi-card span {
  display: block;
  max-width: 100%;
}

@media (min-width: 1200px) {
  .rental-kpi-card strong {
    font-size: clamp(1.9rem, 2.05vw, 3.1rem);
  }
}

@media (max-width: 760px) {
  .rental-kpi-grid,
  .rental-kpi-grid-blue,
  .rental-kpi-grid-red {
    grid-template-columns: 1fr;
  }

  .rental-kpi-card strong {
    font-size: clamp(2.2rem, 10vw, 3.4rem);
  }
}
/* OPSMANAGER_PATCH_END: fase03_5_5_rental_kpi_strong_fit */


/* OPSMANAGER_PATCH_START: fase03_6_rental_reimburse_inline */
.rental-status-reimburse-row{
  display:grid;
  grid-template-columns:1fr;
  gap:14px;
  align-items:stretch;
}

.rental-status-reimburse-row > .rental-field,
.rental-status-reimburse-row > .rental-reimbursement-card{
  margin:0;
  min-width:0;
}

.rental-status-reimburse-row .rental-reimbursement-card{
  padding:0;
  border:0;
  background:transparent;
  box-shadow:none;
}

.rental-status-reimburse-row .rental-check-row{
  min-height:100%;
  height:100%;
  padding:16px 18px;
  border:1px solid var(--rental-border,#bfdbfe);
  border-radius:18px;
  background:var(--rental-soft,#eff6ff);
  display:flex;
  align-items:center;
  gap:14px;
}

.rental-status-reimburse-row .rental-check-row strong{
  line-height:1.15;
}

.rental-status-reimburse-row .rental-check-row input{
  width:32px;
  height:32px;
  min-height:32px;
  flex:0 0 32px;
}

.rental-status-reimburse-row .rental-reimbursement-fields{
  grid-column:1 / -1;
  margin-top:14px;
}

@media (min-width:700px){
  .rental-status-reimburse-row{
    grid-template-columns:minmax(0,1fr) minmax(0,1fr);
    gap:16px;
  }

  .rental-status-reimburse-row .rental-reimbursement-fields{
    grid-column:1 / -1;
  }
}
/* OPSMANAGER_PATCH_END: fase03_6_rental_reimburse_inline */




/* OPSMANAGER_PATCH_START: fase03_7_1_rental_pwa_frame_hardfix */
/* Alquiler · encuadre mobile/PWA: evita overflow horizontal y centra el mismo frame que Red */
html,
body {
  max-width: 100%;
  overflow-x: hidden;
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

body.endpoint-rental {
  width: 100%;
  max-width: 100%;
  overflow-x: hidden;
}

body.endpoint-rental .app-shell,
body.endpoint-rental main,
body.endpoint-rental .page,
body.endpoint-rental .page-frame,
body.endpoint-rental .content-frame,
body.endpoint-rental .rental-page,
body.endpoint-rental .rental-index,
body.endpoint-rental .rental-dashboard,
body.endpoint-rental .rental-layout,
body.endpoint-rental .rental-red-layout,
body.endpoint-rental .rental-dashboard-layout,
body.endpoint-rental .rental-main-panel,
body.endpoint-rental .rental-summary-panel {
  width: 100%;
  max-width: 1180px;
  min-width: 0;
  margin-left: auto;
  margin-right: auto;
  overflow-x: hidden;
}

body.endpoint-rental .rental-head,
body.endpoint-rental .rental-dashboard-head,
body.endpoint-rental .rental-year-panel,
body.endpoint-rental .rental-summary-panel,
body.endpoint-rental .rental-kpi-grid,
body.endpoint-rental .rental-kpi-grid-blue,
body.endpoint-rental .rental-kpi-grid-red,
body.endpoint-rental .rental-filter-card,
body.endpoint-rental .rental-filter-form,
body.endpoint-rental .rental-card-grid,
body.endpoint-rental .rental-result-card,
body.endpoint-rental .rental-actions-row {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  margin-left: 0;
  margin-right: 0;
}

body.endpoint-rental .rental-dashboard-layout,
body.endpoint-rental .rental-red-layout,
body.endpoint-rental .rental-layout {
  display: grid;
  grid-template-columns: 1fr;
  gap: 18px;
}

body.endpoint-rental .rental-kpi-grid,
body.endpoint-rental .rental-kpi-grid-blue,
body.endpoint-rental .rental-kpi-grid-red {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(220px, 100%), 1fr));
  gap: 14px;
}

body.endpoint-rental .rental-filter-form {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(170px, .28fr) minmax(170px, .28fr);
  gap: 14px;
  align-items: end;
}

body.endpoint-rental .rental-filter-actions,
body.endpoint-rental .rental-form-actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

body.endpoint-rental .rental-field,
body.endpoint-rental .rental-field input,
body.endpoint-rental .rental-field select,
body.endpoint-rental .rental-field textarea,
body.endpoint-rental .rental-select-control,
body.endpoint-rental .primary-btn,
body.endpoint-rental .secondary-btn {
  min-width: 0;
  max-width: 100%;
}

body.endpoint-rental .rental-result-card {
  overflow: hidden;
}

body.endpoint-rental .rental-result-main,
body.endpoint-rental .rental-result-side {
  min-width: 0;
}

@media (max-width: 760px) {
  body.endpoint-rental .app-shell,
  body.endpoint-rental main,
  body.endpoint-rental .page,
  body.endpoint-rental .page-frame,
  body.endpoint-rental .content-frame,
  body.endpoint-rental .rental-page,
  body.endpoint-rental .rental-index,
  body.endpoint-rental .rental-dashboard,
  body.endpoint-rental .rental-layout,
  body.endpoint-rental .rental-red-layout,
  body.endpoint-rental .rental-dashboard-layout,
  body.endpoint-rental .rental-main-panel,
  body.endpoint-rental .rental-summary-panel {
    width: 100%;
    max-width: 100%;
    margin-left: auto;
    margin-right: auto;
    padding-left: 0;
    padding-right: 0;
    overflow-x: hidden;
  }

  body.endpoint-rental .rental-kpi-grid,
  body.endpoint-rental .rental-kpi-grid-blue,
  body.endpoint-rental .rental-kpi-grid-red,
  body.endpoint-rental .rental-filter-form,
  body.endpoint-rental .rental-filter-actions,
  body.endpoint-rental .rental-form-actions {
    grid-template-columns: 1fr;
  }

  body.endpoint-rental .rental-filter-card,
  body.endpoint-rental .rental-summary-panel,
  body.endpoint-rental .rental-year-panel,
  body.endpoint-rental .rental-result-card,
  body.endpoint-rental .rental-actions-row {
    border-radius: 24px;
  }
}
/* OPSMANAGER_PATCH_END: fase03_7_1_rental_pwa_frame_hardfix */

/* OPSMANAGER_PATCH_START: rental_mobile_overflow_guard */
html, body {
  max-width: 100%;
  overflow-x: hidden;
}

body {
  position: relative;
}

.app-shell {
  box-sizing: border-box;
  max-width: min(1180px, calc(100vw - 24px));
  margin-left: auto;
  margin-right: auto;
}

.rental-head,
.rental-dashboard-head,
.rental-filter-card,
.rental-form-card,
.rental-card-grid,
.rental-kpi-grid,
.rental-kpi-grid-blue,
.rental-kpi-grid-red,
.rental-results-title,
.rental-actions-row {
  box-sizing: border-box;
  max-width: 100%;
}

@media (max-width: 760px) {
  .app-shell {
    width: 100%;
    max-width: 100%;
    margin-left: 0;
    margin-right: 0;
    padding-left: 14px;
    padding-right: 14px;
  }

  .rental-head,
  .rental-dashboard-head,
  .rental-filter-card,
  .rental-form-card,
  .rental-card-grid,
  .rental-kpi-grid,
  .rental-kpi-grid-blue,
  .rental-kpi-grid-red,
  .rental-results-title,
  .rental-actions-row {
    width: 100%;
    margin-left: 0;
    margin-right: 0;
  }
}
/* OPSMANAGER_PATCH_END: rental_mobile_overflow_guard */


/* OPSMANAGER_PATCH_START: fase03_7_2_rental_same_frame_final */
html,
body {
  max-width: 100%;
  overflow-x: hidden;
}

body.endpoint-rental .app-shell {
  width: min(1180px, calc(100% - 32px)) !important;
  max-width: 1180px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  box-sizing: border-box !important;
}

body.endpoint-rental main {
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  box-sizing: border-box !important;
  overflow-x: hidden !important;
}

body.endpoint-rental .rental-head,
body.endpoint-rental .rental-red-layout,
body.endpoint-rental .rental-red-summary,
body.endpoint-rental .rental-red-main,
body.endpoint-rental .rental-year-card,
body.endpoint-rental .rental-kpi-grid,
body.endpoint-rental .rental-kpi-grid-blue,
body.endpoint-rental .rental-kpi-grid-red,
body.endpoint-rental .rental-filter-card,
body.endpoint-rental .rental-filter-form,
body.endpoint-rental .rental-filter-actions,
body.endpoint-rental .rental-results-title,
body.endpoint-rental .rental-card-grid,
body.endpoint-rental .rental-result-card,
body.endpoint-rental .rental-actions-row {
  box-sizing: border-box !important;
  min-width: 0 !important;
  max-width: 100% !important;
}

body.endpoint-rental .rental-red-layout {
  display: grid !important;
  grid-template-columns: 1fr !important;
  width: 100% !important;
  max-width: 1180px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  gap: 22px !important;
  overflow-x: hidden !important;
}

body.endpoint-rental .rental-red-summary,
body.endpoint-rental .rental-red-main {
  width: 100% !important;
  max-width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  overflow-x: hidden !important;
}

body.endpoint-rental .rental-red-summary {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 18px !important;
}

body.endpoint-rental .rental-kpi-grid,
body.endpoint-rental .rental-kpi-grid-blue,
body.endpoint-rental .rental-kpi-grid-red {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(min(210px, 100%), 1fr)) !important;
  gap: 16px !important;
  width: 100% !important;
}

body.endpoint-rental .rental-filter-form {
  display: grid !important;
  grid-template-columns: minmax(0, 2fr) minmax(150px, .7fr) minmax(150px, .7fr) !important;
  gap: 14px !important;
  align-items: end !important;
  width: 100% !important;
}

body.endpoint-rental .rental-filter-actions {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 12px !important;
  grid-column: 1 / -1 !important;
  width: 100% !important;
}

body.endpoint-rental .rental-new-wide {
  width: 100% !important;
}

body.endpoint-rental .rental-result-card {
  width: 100% !important;
  overflow: hidden !important;
}

body.endpoint-rental .rental-result-main,
body.endpoint-rental .rental-result-side {
  min-width: 0 !important;
}

@media (max-width: 760px) {
  body.endpoint-rental .app-shell {
    width: 100% !important;
    max-width: 100% !important;
    padding-left: 14px !important;
    padding-right: 14px !important;
  }

  body.endpoint-rental .rental-red-layout,
  body.endpoint-rental .rental-red-summary,
  body.endpoint-rental .rental-red-main {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }

  body.endpoint-rental .rental-kpi-grid,
  body.endpoint-rental .rental-kpi-grid-blue,
  body.endpoint-rental .rental-kpi-grid-red,
  body.endpoint-rental .rental-filter-form,
  body.endpoint-rental .rental-filter-actions {
    grid-template-columns: 1fr !important;
  }

  body.endpoint-rental .rental-filter-card,
  body.endpoint-rental .rental-year-card,
  body.endpoint-rental .rental-kpi-card,
  body.endpoint-rental .rental-result-card,
  body.endpoint-rental .rental-results-title {
    width: 100% !important;
  }
}
/* OPSMANAGER_PATCH_END: fase03_7_2_rental_same_frame_final */

/* OPSMANAGER_PATCH_START: fase03_8_rental_shared_kpis */
/* Alquiler · KPIs totales/personales y gasto compartido */
.rental-kpi-section{
  display:grid;
  gap:10px;
  margin-top:16px;
}

.rental-section-title{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  min-width:0;
}

.rental-section-title .eyebrow{
  margin:0;
}

.rental-kpi-grid.rental-money-grid,
.rental-kpi-grid-blue.rental-money-grid,
.rental-kpi-grid-red.rental-money-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(min(225px,100%),1fr));
  gap:14px;
  align-items:stretch;
  width:100%;
  min-width:0;
}

.rental-personal-grid{
  grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr));
}

.rental-kpi-card{
  min-width:0;
  overflow:hidden;
}

.rental-kpi-card strong,
.rental-kpi-card .rental-money-autofit{
  display:block;
  width:100%;
  max-width:100%;
  min-width:0;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:clip!important;
  line-height:.95;
  letter-spacing:-.055em;
  font-variant-numeric:tabular-nums;
  font-size:clamp(1.7rem,2vw,3rem);
}

.rental-kpi-card span{
  display:block;
  max-width:100%;
}

.rental-status-pill.shared-expense-pill{
  background:#dbeafe;
  border-color:#bfdbfe;
  color:#1d4ed8;
}

.rental-status-shared-row{
  display:grid;
  grid-template-columns:1fr;
  gap:14px;
  align-items:stretch;
}

.rental-status-shared-row > .rental-field,
.rental-status-shared-row > .rental-reimbursement-card{
  margin:0;
  min-width:0;
}

.rental-shared-card .rental-check-row{
  border-color:var(--rental-border,#bfdbfe);
  background:var(--rental-soft,#eff6ff);
}

@media (min-width:700px){
  .rental-status-shared-row{
    grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1fr);
  }
}

@media (min-width:1100px){
  .rental-kpi-grid.rental-money-grid,
  .rental-kpi-grid-blue.rental-money-grid,
  .rental-kpi-grid-red.rental-money-grid{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
  .rental-personal-grid{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
}

@media (max-width:760px){
  .rental-kpi-grid.rental-money-grid,
  .rental-kpi-grid-blue.rental-money-grid,
  .rental-kpi-grid-red.rental-money-grid,
  .rental-personal-grid{
    grid-template-columns:1fr;
  }
  .rental-kpi-card strong,
  .rental-kpi-card .rental-money-autofit{
    font-size:clamp(2rem,8vw,3.15rem);
  }
}
/* OPSMANAGER_PATCH_END: fase03_8_rental_shared_kpis */


/* OPSMANAGER_PATCH_START: fase03_8_2_rental_badges_css_only */
/* Alquiler · etiquetas horizontales sin depender de cambios HTML */
.rental-result-side {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  justify-content: flex-end !important;
  align-content: flex-start !important;
  gap: 8px !important;
  min-width: 0 !important;
}

.rental-result-side .rental-amount {
  flex: 0 0 100% !important;
  width: 100% !important;
  text-align: right !important;
  margin: 0 0 2px 0 !important;
  white-space: nowrap !important;
}

.rental-result-side .rental-status-pill,
.rental-result-side .rental-edit-text {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 34px !important;
  padding: 8px 13px !important;
  border-radius: 999px !important;
  font-size: 12px !important;
  line-height: 1 !important;
  font-weight: 900 !important;
  letter-spacing: .035em !important;
  text-transform: uppercase !important;
  white-space: nowrap !important;
  text-decoration: none !important;
  border: 1px solid transparent !important;
  margin: 0 !important;
}

.rental-result-side .status-pagado {
  background: #ecfdf5 !important;
  color: #059669 !important;
  border-color: #bbf7d0 !important;
}

.rental-result-side .status-pte {
  background: #fff7ed !important;
  color: #d97706 !important;
  border-color: #fed7aa !important;
}

.rental-result-side .shared-expense {
  background: #eff6ff !important;
  color: #2563eb !important;
  border-color: #bfdbfe !important;
}

.rental-result-side .reimbursement-cobrado {
  background: #f0fdf4 !important;
  color: #047857 !important;
  border-color: #bbf7d0 !important;
}

.rental-result-side .reimbursement-pendiente {
  background: #fff7ed !important;
  color: #d97706 !important;
  border-color: #fed7aa !important;
}

.rental-result-side .rental-edit-text {
  background: #f8fbff !important;
  color: #2563eb !important;
  border-color: #bfdbfe !important;
}

.rental-result-side .rental-edit-text:hover,
.rental-result-side .rental-edit-text:focus {
  background: #eff6ff !important;
  border-color: #93c5fd !important;
}

@media (max-width: 760px) {
  .rental-result-side {
    width: 100% !important;
    justify-content: flex-start !important;
    align-items: flex-start !important;
  }

  .rental-result-side .rental-amount {
    text-align: left !important;
  }
}

@media (max-width: 420px) {
  .rental-result-side .rental-status-pill,
  .rental-result-side .rental-edit-text {
    flex: 1 1 calc(50% - 6px) !important;
    min-width: 0 !important;
    padding-left: 9px !important;
    padding-right: 9px !important;
  }
}
/* OPSMANAGER_PATCH_END: fase03_8_2_rental_badges_css_only */

/* OPSMANAGER_PATCH_START: fase04_2_1_scripts_layout_coherent */
.module-scripts{
  --module-accent:#dc2626!important;
  --module-accent-2:#b91c1c!important;
}
.module-scripts::before{background:var(--module-accent)!important}
.module-scripts::after{background:color-mix(in srgb,var(--module-accent) 14%,transparent)!important}
.module-icon-scripts{background:linear-gradient(135deg,#dc2626,#b91c1c)!important}
.module-scripts .module-primary{background:linear-gradient(135deg,#dc2626,#b91c1c)!important;color:#fff!important}
.module-scripts .module-status.active{background:#fef2f2!important;color:#b91c1c!important;border-color:#fecaca!important}

body.endpoint-scripts{
  --scripts:#dc2626;
  --scripts-2:#b91c1c;
  --scripts-soft:#fef2f2;
  --scripts-border:#fecaca;
  --scripts-ring:rgba(220,38,38,.14);
}
body.endpoint-scripts .app-shell{max-width:1320px;margin-left:auto;margin-right:auto}
body.endpoint-scripts main{width:100%;max-width:100%;min-width:0;overflow-x:hidden}
body.endpoint-scripts *{box-sizing:border-box}
.scripts-eyebrow{color:var(--scripts)!important}
.scripts-redstyle-head{max-width:100%;margin-bottom:18px}
.scripts-redstyle-head h1{letter-spacing:-.045em}
.scripts-layout-alert{margin-bottom:16px}
.scripts-alert{
  padding:16px 18px;border:1px solid #fecaca;background:#fff7f7;color:#991b1b;
  border-radius:24px;box-shadow:0 14px 36px rgba(127,29,29,.06);display:grid;gap:8px
}
.scripts-alert p{margin:0}

.scripts-shell-layout{
  display:grid;gap:18px;width:100%;max-width:100%;min-width:0;align-items:start
}
.scripts-left-stack{display:grid;gap:16px;min-width:0;max-width:100%}
.scripts-preview-column{min-width:0;max-width:100%}
.scripts-panel-card,
.scripts-preview-card,
.scripts-option-card{
  border:1px solid rgba(254,202,202,.78);background:linear-gradient(135deg,rgba(255,255,255,.98),rgba(255,247,247,.76));
  border-radius:26px;box-shadow:0 18px 46px rgba(127,29,29,.055);min-width:0;max-width:100%;overflow:hidden
}
.scripts-panel-card,.scripts-preview-card{padding:18px}
.scripts-warning-card{background:linear-gradient(135deg,#fff,#fff7ed);border-color:#fed7aa}
.scripts-section-head,.scripts-preview-head{
  display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px;min-width:0
}
.scripts-section-head h2,.scripts-preview-head h2{margin:0;font-size:clamp(1.08rem,1.8vw,1.45rem);letter-spacing:-.035em;color:var(--text);line-height:1.1}
.scripts-preview-head h2{word-break:break-word}

.scripts-general-grid{display:grid;grid-template-columns:1fr;gap:12px;min-width:0}
.scripts-field{display:grid;gap:8px;min-width:0}
.scripts-field span{color:var(--muted);font-weight:850;font-size:13px}
.scripts-field input,.scripts-select{
  width:100%;min-width:0;min-height:52px;border:1px solid var(--border);border-radius:16px;background:#fff;color:var(--text);
  padding:13px 14px;outline:none;font:inherit
}
.scripts-field input:focus,.scripts-select:focus{border-color:var(--scripts);box-shadow:0 0 0 4px var(--scripts-ring)}

.scripts-action-grid{display:grid;grid-template-columns:1fr;gap:12px;min-width:0}
.scripts-option-card{
  display:flex;align-items:flex-start;gap:12px;padding:14px;text-decoration:none;background:#fff;cursor:pointer;
  transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease
}
.scripts-option-card:hover{transform:translateY(-1px);border-color:#fca5a5;box-shadow:0 16px 38px rgba(127,29,29,.08)}
.scripts-option-card input,.scripts-inline-option input,.scripts-confirm-pill input{
  width:22px;height:22px;flex:0 0 22px;margin:2px 0 0;accent-color:var(--scripts)
}
.scripts-option-body,.scripts-inline-option span{display:grid;gap:4px;min-width:0}
.scripts-option-body strong,.scripts-inline-option strong{font-size:15.5px;line-height:1.18;color:var(--text)}
.scripts-option-body small,.scripts-inline-option small{color:var(--muted);line-height:1.32;font-size:13px}
.scripts-inline-option{display:flex;align-items:flex-start;gap:12px;cursor:pointer;min-width:0}
.scripts-main-toggle{padding:13px 14px;border:1px solid rgba(254,202,202,.78);background:#fff;border-radius:18px}

.scripts-color-chip-grid{display:grid;grid-template-columns:1fr;gap:10px;margin-top:12px;min-width:0}
.scripts-color-chip{
  display:flex;align-items:center;gap:10px;min-width:0;padding:11px 12px;border:1px solid #e5e7eb;border-radius:16px;background:#fff;
  cursor:pointer;font-weight:800;color:var(--text);line-height:1.1
}
.scripts-color-chip input{width:18px;height:18px;flex:0 0 18px;accent-color:var(--scripts);margin:0}
.scripts-color-chip span:last-child{display:grid;gap:2px;min-width:0}
.scripts-color-chip strong{font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.scripts-color-chip small{font-size:11px;color:var(--muted);font-weight:850;text-transform:uppercase;letter-spacing:.05em}
.scripts-color-dot{width:12px;height:12px;border-radius:99px;flex:0 0 12px;background:#dc2626;box-shadow:0 0 0 4px rgba(220,38,38,.12)}
.scripts-color-chip.is-yellow .scripts-color-dot{background:#ca8a04;box-shadow:0 0 0 4px rgba(202,138,4,.14)}
.scripts-color-chip.is-blue .scripts-color-dot{background:#2563eb;box-shadow:0 0 0 4px rgba(37,99,235,.14)}
.scripts-color-chip:has(input:checked){border-color:#fca5a5;background:#fff7f7;box-shadow:0 0 0 4px var(--scripts-ring)}
.scripts-color-chip.is-yellow:has(input:checked){border-color:#fde68a;background:#fffbeb;box-shadow:0 0 0 4px rgba(202,138,4,.12)}
.scripts-color-chip.is-blue:has(input:checked){border-color:#bfdbfe;background:#eff6ff;box-shadow:0 0 0 4px rgba(37,99,235,.12)}

.scripts-confirm-pill{
  margin-top:12px;padding:13px 14px;border-radius:18px;background:#fff;border:1px solid #fed7aa;color:#92400e;
  display:flex;align-items:center;gap:10px;font-weight:850;min-width:0
}
.scripts-confirm-pill span{min-width:0;line-height:1.25}

.scripts-preview-card{display:grid;gap:12px;position:sticky;top:18px;background:linear-gradient(135deg,#fff,#fff7f7)}
.scripts-preview-head{margin-bottom:0}
.scripts-preview{
  margin:0;background:#0f172a;color:#e5e7eb;border-radius:20px;padding:17px;overflow:auto;max-width:100%;
  min-height:420px;max-height:calc(100vh - 260px);font-size:12.5px;line-height:1.45;white-space:pre;
  font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace
}
.scripts-preview code{font:inherit;color:inherit}
.scripts-empty-preview{
  border:1px dashed #fecaca;border-radius:20px;background:#fff;padding:22px;min-height:260px;display:grid;align-content:center;gap:8px;color:var(--text)
}
.scripts-empty-preview strong{font-size:18px;letter-spacing:-.02em}
.scripts-empty-preview p{margin:0;color:var(--muted);line-height:1.45}
.scripts-button-row{display:grid;grid-template-columns:1fr;gap:10px;min-width:0}
.scripts-primary{background:linear-gradient(135deg,#dc2626,#b91c1c)!important;color:#fff!important;border-color:transparent!important}
.scripts-secondary{color:#7f1d1d!important;background:#fff!important;border:1px solid #fecaca!important}
.scripts-primary,.scripts-secondary{min-height:50px;border-radius:16px;font-weight:900}

@media (min-width:720px){
  .scripts-general-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .scripts-field-wide{grid-column:span 2}
  .scripts-action-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .scripts-color-chip-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .scripts-button-row{grid-template-columns:1fr 1fr}
}
@media (min-width:1120px){
  .scripts-shell-layout{grid-template-columns:minmax(0,1.38fr) minmax(410px,.82fr);gap:20px}
  .scripts-general-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
  .scripts-field-wide{grid-column:span 2}
  .scripts-action-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (min-width:1360px){
  .scripts-shell-layout{grid-template-columns:minmax(0,1.45fr) minmax(470px,.9fr)}
  .scripts-action-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (max-width:719px){
  body.endpoint-scripts .app-shell{width:100%;max-width:100%;padding-left:14px;padding-right:14px;overflow-x:hidden}
  .scripts-shell-layout,.scripts-left-stack,.scripts-preview-column,.scripts-panel-card,.scripts-preview-card,.scripts-option-card{max-width:100%;min-width:0}
  .scripts-panel-card,.scripts-preview-card{padding:16px;border-radius:22px}
  .scripts-option-card{border-radius:20px}
  .scripts-section-head,.scripts-preview-head{display:grid;gap:10px}
  .scripts-preview-card{position:static;top:auto}
  .scripts-preview{font-size:11.5px;min-height:300px;max-height:430px;border-radius:18px}
  .scripts-empty-preview{min-height:180px}
  .scripts-color-chip strong{white-space:normal}
}
/* OPSMANAGER_PATCH_END: fase04_2_1_scripts_layout_coherent */


/* OPSMANAGER_PATCH_START: fase04_2_2_scripts_fullwidth */
body.endpoint-scripts {
  overflow-x: hidden;
}

body.endpoint-scripts .app-shell {
  width: 100%;
  max-width: min(1680px, calc(100vw - 56px)) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: 0;
  padding-right: 0;
}

body.endpoint-scripts main {
  width: 100%;
  max-width: 100%;
  min-width: 0;
}

body.endpoint-scripts .scripts-head,
body.endpoint-scripts .scripts-redstyle-head,
body.endpoint-scripts .scripts-page-head {
  width: 100%;
  max-width: 100%;
}

body.endpoint-scripts .scripts-red-frame,
body.endpoint-scripts .scripts-shell,
body.endpoint-scripts .scripts-shell-layout,
body.endpoint-scripts .scripts-main-layout,
body.endpoint-scripts .scripts-layout,
body.endpoint-scripts .scripts-form,
body.endpoint-scripts .scripts-left-column,
body.endpoint-scripts .scripts-preview-column,
body.endpoint-scripts .scripts-preview-panel,
body.endpoint-scripts .scripts-panel-card,
body.endpoint-scripts .scripts-preview-card,
body.endpoint-scripts .scripts-option-grid,
body.endpoint-scripts .scripts-general-grid,
body.endpoint-scripts .scripts-two-column,
body.endpoint-scripts .scripts-button-row {
  box-sizing: border-box;
  min-width: 0;
  max-width: 100%;
}

/* Layout principal: más ancho real en escritorio */
@media (min-width: 1180px) {
  body.endpoint-scripts .scripts-red-frame,
  body.endpoint-scripts .scripts-shell-layout,
  body.endpoint-scripts .scripts-main-layout,
  body.endpoint-scripts .scripts-layout {
    display: grid !important;
    grid-template-columns: minmax(680px, 0.95fr) minmax(620px, 1.05fr) !important;
    gap: 22px !important;
    align-items: start !important;
    width: 100% !important;
  }

  body.endpoint-scripts .scripts-form,
  body.endpoint-scripts .scripts-left-column {
    grid-column: 1 !important;
    width: 100% !important;
    min-width: 0 !important;
  }

  body.endpoint-scripts .scripts-preview-card,
  body.endpoint-scripts .scripts-preview-column,
  body.endpoint-scripts .scripts-preview-panel {
    grid-column: 2 !important;
    grid-row: 1 / span 8 !important;
    width: 100% !important;
    min-width: 0 !important;
    align-self: start !important;
    position: sticky;
    top: 18px;
  }

  body.endpoint-scripts .scripts-button-row,
  body.endpoint-scripts .scripts-actions-row {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

/* En la columna izquierda no caben 4 campos. Se fuerza 2 columnas estables. */
@media (min-width: 700px) {
  body.endpoint-scripts .scripts-general-grid,
  body.endpoint-scripts .scripts-filter-form.scripts-general-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 14px !important;
  }

  body.endpoint-scripts .scripts-field-wide {
    grid-column: span 2 !important;
  }

  body.endpoint-scripts .scripts-option-grid,
  body.endpoint-scripts .scripts-option-grid-red {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 14px !important;
  }

  body.endpoint-scripts .scripts-two-column {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 14px !important;
  }
}

/* Tarjetas de opciones: evitar columnas estrechas tipo píldora vertical */
body.endpoint-scripts .scripts-option-card {
  min-height: 104px;
  display: flex !important;
  align-items: center !important;
  gap: 14px !important;
  padding: 18px !important;
  overflow: hidden;
}

body.endpoint-scripts .scripts-option-card input,
body.endpoint-scripts .scripts-inline-option input,
body.endpoint-scripts .scripts-confirm-pill input {
  flex: 0 0 24px !important;
  width: 24px !important;
  height: 24px !important;
}

body.endpoint-scripts .scripts-option-body,
body.endpoint-scripts .scripts-inline-option span {
  min-width: 0;
  overflow-wrap: anywhere;
}

body.endpoint-scripts .scripts-option-body strong,
body.endpoint-scripts .scripts-inline-option strong {
  line-height: 1.18;
}

body.endpoint-scripts .scripts-option-body small,
body.endpoint-scripts .scripts-inline-option small {
  line-height: 1.35;
}

/* Selector color consola compacto y sin radios gigantes */
body.endpoint-scripts .scripts-radio-grid,
body.endpoint-scripts .scripts-color-grid {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 10px !important;
  margin-top: 14px !important;
}

body.endpoint-scripts .scripts-radio-grid label,
body.endpoint-scripts .scripts-color-chip {
  min-width: 0;
  min-height: 48px;
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  padding: 10px 12px !important;
  border: 1px solid #fecaca !important;
  border-radius: 16px !important;
  background: #fff !important;
  color: #111827 !important;
  font-size: 13px !important;
  font-weight: 850 !important;
  line-height: 1.1 !important;
  overflow: hidden;
}

body.endpoint-scripts .scripts-radio-grid input[type="radio"],
body.endpoint-scripts .scripts-color-chip input[type="radio"] {
  flex: 0 0 16px !important;
  width: 16px !important;
  height: 16px !important;
  margin: 0 !important;
  accent-color: #dc2626;
}

body.endpoint-scripts .scripts-radio-grid label:has(input:checked),
body.endpoint-scripts .scripts-color-chip:has(input:checked) {
  border-color: #dc2626 !important;
  background: #fef2f2 !important;
  box-shadow: 0 0 0 4px rgba(220, 38, 38, .08);
}

/* Previsualización: grande, contenida y con scroll interno */
body.endpoint-scripts .scripts-preview-card,
body.endpoint-scripts .scripts-preview-panel {
  overflow: hidden;
}

body.endpoint-scripts .scripts-preview,
body.endpoint-scripts pre.scripts-preview,
body.endpoint-scripts .scripts-code-preview {
  width: 100%;
  max-width: 100%;
  min-height: 520px;
  max-height: min(72vh, 760px);
  overflow: auto !important;
  white-space: pre !important;
}

body.endpoint-scripts .scripts-empty-preview,
body.endpoint-scripts .scripts-preview-empty {
  min-height: 360px;
}

/* Botones sin solapes */
body.endpoint-scripts .scripts-button-row,
body.endpoint-scripts .scripts-actions-row {
  display: grid !important;
  gap: 14px !important;
  width: 100% !important;
}

body.endpoint-scripts .scripts-primary,
body.endpoint-scripts .scripts-secondary {
  width: 100%;
  min-width: 0;
  white-space: nowrap;
}

/* Móvil/PWA: una columna real y sin overflow */
@media (max-width: 1179px) {
  body.endpoint-scripts .app-shell {
    max-width: min(100%, calc(100vw - 28px)) !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  body.endpoint-scripts .scripts-red-frame,
  body.endpoint-scripts .scripts-shell-layout,
  body.endpoint-scripts .scripts-main-layout,
  body.endpoint-scripts .scripts-layout {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 16px !important;
    width: 100% !important;
  }

  body.endpoint-scripts .scripts-preview-card,
  body.endpoint-scripts .scripts-preview-column,
  body.endpoint-scripts .scripts-preview-panel {
    position: static !important;
    grid-column: auto !important;
    grid-row: auto !important;
  }
}

@media (max-width: 760px) {
  body.endpoint-scripts .scripts-general-grid,
  body.endpoint-scripts .scripts-filter-form.scripts-general-grid,
  body.endpoint-scripts .scripts-option-grid,
  body.endpoint-scripts .scripts-option-grid-red,
  body.endpoint-scripts .scripts-two-column,
  body.endpoint-scripts .scripts-radio-grid,
  body.endpoint-scripts .scripts-color-grid,
  body.endpoint-scripts .scripts-button-row,
  body.endpoint-scripts .scripts-actions-row {
    grid-template-columns: 1fr !important;
  }

  body.endpoint-scripts .scripts-field-wide {
    grid-column: auto !important;
  }

  body.endpoint-scripts .scripts-preview,
  body.endpoint-scripts pre.scripts-preview,
  body.endpoint-scripts .scripts-code-preview {
    min-height: 360px;
    max-height: 58vh;
  }
}
/* OPSMANAGER_PATCH_END: fase04_2_2_scripts_fullwidth */

/* OPSMANAGER_PATCH_START: fase05_0_1_entreno_module */
.module-training{
  --module-accent:#111827!important;
  --module-accent-2:#374151!important;
}
.module-training::before{background:linear-gradient(135deg,#111827,#374151)!important}
.module-training::after{background:rgba(17,24,39,.10)!important}
.module-icon-training{background:linear-gradient(135deg,#111827,#374151)!important;color:#fff!important}
.module-training .module-primary{background:linear-gradient(135deg,#111827,#374151)!important;color:#fff!important}
.module-training .module-status.active{background:#f3f4f6!important;color:#111827!important;border-color:#d1d5db!important}

body.endpoint-entreno{
  --training:#111827;
  --training-2:#374151;
  --training-soft:#f3f4f6;
  --training-border:#d1d5db;
}
body.endpoint-entreno .app-shell{max-width:min(1540px,calc(100vw - 32px));width:100%;margin-left:auto;margin-right:auto}
body.endpoint-entreno main{width:100%;max-width:100%;min-width:0}
.training-eyebrow{color:var(--training)!important}
.training-head{max-width:100%}
.training-frame{display:grid;gap:16px;width:100%;max-width:100%;min-width:0}
.training-kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;min-width:0}
.training-kpi-card,.training-card{
  border:1px solid rgba(209,213,219,.9);
  background:linear-gradient(135deg,rgba(255,255,255,.98),rgba(249,250,251,.9));
  border-radius:24px;
  box-shadow:0 18px 44px rgba(15,23,42,.07);
  overflow:hidden;
  min-width:0;
}
.training-kpi-card{padding:18px;display:grid;gap:8px;position:relative;isolation:isolate}
.training-kpi-card::before{content:"";position:absolute;inset:0 0 auto 0;height:4px;background:linear-gradient(135deg,#111827,#374151)}
.training-kpi-card span{display:block;color:var(--muted);font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.08em}
.training-kpi-card strong{display:block;color:var(--text);font-size:clamp(1.1rem,1.8vw,1.8rem);letter-spacing:-.04em;line-height:1.05;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.training-layout{display:grid;grid-template-columns:minmax(360px,420px) minmax(0,1fr);gap:16px;align-items:start;min-width:0}
.training-left,.training-main{display:grid;gap:16px;min-width:0}
.training-card{padding:18px}
.training-section-title,.training-detail-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px}
.training-section-title h2,.training-detail-head h2{margin:0;font-size:22px;letter-spacing:-.03em;color:var(--text)}
.training-new-form{display:grid;gap:12px}.training-field{display:grid;gap:8px;min-width:0}.training-field span,.training-status-select span{font-size:13px;font-weight:900;color:var(--muted)}
.training-field input,.training-field select,.training-field textarea,.training-status-select select,
.training-set-grid input{
  width:100%;min-width:0;border:1px solid var(--border);background:#fff;border-radius:16px;padding:13px 14px;color:var(--text);font:inherit;outline:none;
}
.training-field input,.training-field select,.training-status-select select{min-height:50px}
.training-field textarea{resize:vertical}
.training-field input:focus,.training-field select:focus,.training-field textarea:focus,.training-status-select select:focus,.training-set-grid input:focus{border-color:#374151;box-shadow:0 0 0 4px rgba(17,24,39,.12)}
.training-primary{background:linear-gradient(135deg,#111827,#374151)!important;color:#fff!important;min-height:50px}
.training-session-list,.training-program-list{display:grid;gap:10px}
.training-session-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center;text-decoration:none;color:var(--text);padding:12px;border-radius:18px;border:1px solid #e5e7eb;background:#fff;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}
.training-session-row:hover,.training-session-row.is-active{transform:translateY(-1px);border-color:#9ca3af;box-shadow:0 16px 34px rgba(15,23,42,.08)}
.training-session-date{font-weight:950;color:#111827;background:#f3f4f6;border:1px solid #e5e7eb;border-radius:14px;padding:8px 10px;white-space:nowrap}
.training-session-main{display:grid;gap:2px;min-width:0}.training-session-main strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.training-session-main small{color:var(--muted);font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.training-session-status{font-size:11px;font-weight:950;letter-spacing:.06em;border-radius:999px;padding:7px 9px;border:1px solid #d1d5db;background:#f9fafb;color:#374151;white-space:nowrap}.status-completada{background:#ecfdf5!important;border-color:#bbf7d0!important;color:#166534!important}
.training-program-pill{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px;border:1px solid #e5e7eb;border-radius:16px;background:#fff}.training-program-pill span{color:var(--muted);font-weight:800;font-size:13px}
.training-empty{margin:0}.training-empty-detail{min-height:360px;display:grid;align-content:center;text-align:center;padding:28px}.training-empty-detail h2{margin:0 0 8px;font-size:30px;letter-spacing:-.04em}
.training-detail-card{display:grid;gap:16px}.training-status-select{display:grid;gap:7px;min-width:180px}.training-exercise-list{display:grid;gap:14px}.training-block-title{font-size:12px;font-weight:950;text-transform:uppercase;letter-spacing:.08em;color:#4b5563;background:#f3f4f6;border:1px solid #e5e7eb;border-radius:999px;padding:8px 12px;width:max-content;max-width:100%}
.training-exercise-card{border:1px solid #e5e7eb;border-radius:22px;background:#fff;padding:14px;display:grid;gap:12px;min-width:0}.training-exercise-head h3{margin:0;font-size:17px;letter-spacing:-.02em}.training-exercise-head p{margin:5px 0 0;color:var(--muted);font-weight:800;font-size:13px}.training-set-grid{display:grid;grid-template-columns:60px minmax(82px,1fr) minmax(74px,1fr) minmax(74px,1fr) minmax(160px,2fr);gap:8px;align-items:center;min-width:0}.training-set-grid>span{font-size:11px;font-weight:950;text-transform:uppercase;letter-spacing:.07em;color:var(--muted)}.training-set-grid>strong{justify-self:center;color:#111827}.training-set-grid input{min-height:42px;border-radius:13px;padding:10px 11px}.training-notes{margin-top:2px}.training-actions-row{display:grid;grid-template-columns:minmax(0,1fr);gap:10px}.training-delete-form{margin-top:-8px}.training-delete-form .danger-btn{max-width:260px;margin-left:auto;display:block}
@media (max-width:1100px){.training-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.training-layout{grid-template-columns:1fr}.training-left{grid-template-columns:repeat(2,minmax(0,1fr))}.training-left .training-card:nth-child(2){grid-column:span 2}.training-main{grid-column:1}}
@media (max-width:720px){body.endpoint-entreno .app-shell{width:100%;max-width:100%;padding-left:14px;padding-right:14px}.training-kpi-grid,.training-left{grid-template-columns:1fr}.training-left .training-card:nth-child(2){grid-column:auto}.training-card,.training-kpi-card{border-radius:22px;padding:16px}.training-detail-head{display:grid}.training-status-select{min-width:0}.training-session-row{grid-template-columns:1fr;align-items:start}.training-session-date{width:max-content}.training-session-status{width:max-content}.training-set-grid{grid-template-columns:42px 1fr 1fr 1fr}.training-set-grid>span:nth-child(5),.training-set-grid input:nth-of-type(4n){grid-column:1 / -1}.training-set-grid input[placeholder="nota"]{grid-column:1 / -1}.training-empty-detail{min-height:260px}.training-delete-form .danger-btn{max-width:none;width:100%}}
@media (max-width:420px){.training-kpi-grid{gap:10px}.training-kpi-card strong{font-size:clamp(1.05rem,6vw,1.45rem)}.training-set-grid{grid-template-columns:36px 1fr 1fr}.training-set-grid>span:nth-child(4),.training-set-grid input[placeholder="rpe"]{grid-column:auto}.training-set-grid>span:nth-child(5),.training-set-grid input[placeholder="nota"]{grid-column:1 / -1}}
/* OPSMANAGER_PATCH_END: fase05_0_1_entreno_module */

/* OPSMANAGER_PATCH_START: fase05_0_3_entreno_pwa_layout */
.training-set-list{
  display:grid;
  gap:9px;
  min-width:0;
}
.training-set-header{
  display:grid;
  grid-template-columns:58px minmax(86px,1fr) minmax(78px,1fr) minmax(78px,1fr) minmax(160px,2fr);
  gap:8px;
  align-items:center;
  min-width:0;
}
.training-set-header span{
  font-size:11px;
  font-weight:950;
  text-transform:uppercase;
  letter-spacing:.07em;
  color:var(--muted);
}
.training-set-row{
  display:grid;
  grid-template-columns:58px minmax(86px,1fr) minmax(78px,1fr) minmax(78px,1fr) minmax(160px,2fr);
  gap:8px;
  align-items:center;
  min-width:0;
}
.training-set-number{
  display:grid;
  place-items:center;
  min-width:0;
}
.training-set-number span,
.training-set-input span{
  display:none;
}
.training-set-number strong{
  color:#111827;
  font-weight:950;
  font-size:16px;
}
.training-set-input{
  display:grid;
  gap:6px;
  min-width:0;
}
.training-set-input input{
  width:100%;
  min-width:0;
  min-height:42px;
  border-radius:13px;
  padding:10px 11px;
}
.training-set-note input{
  min-width:0;
}

@media (max-width:720px){
  .training-exercise-card{
    padding:14px;
    overflow:hidden;
  }
  .training-set-list{
    gap:12px;
  }
  .training-set-header{
    display:none !important;
  }
  .training-set-row{
    grid-template-columns:1fr 1fr 1fr;
    gap:10px;
    padding:12px;
    border:1px solid #e5e7eb;
    border-radius:18px;
    background:#f9fafb;
    box-shadow:0 8px 20px rgba(15,23,42,.035);
  }
  .training-set-number{
    grid-column:1 / -1;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    padding-bottom:2px;
  }
  .training-set-number span,
  .training-set-input span{
    display:block;
    font-size:11px;
    font-weight:950;
    text-transform:uppercase;
    letter-spacing:.07em;
    color:#6b7280;
  }
  .training-set-number strong{
    font-size:22px;
    line-height:1;
  }
  .training-set-input input{
    min-height:48px;
    border-radius:15px;
    background:#fff;
  }
  .training-set-note{
    grid-column:1 / -1;
  }
}

@media (max-width:420px){
  .training-set-row{
    grid-template-columns:1fr 1fr;
  }
  .training-set-input:nth-of-type(3){
    grid-column:auto;
  }
  .training-set-note{
    grid-column:1 / -1;
  }
}
/* OPSMANAGER_PATCH_END: fase05_0_3_entreno_pwa_layout */


/* OPSMANAGER_PATCH_START: fase05_0_5_entreno_stats */
.training-secondary{
  color:#111827!important;
  background:#fff!important;
  border:1px solid #d1d5db!important;
}
.training-small-action{
  min-height:38px!important;
  padding:8px 12px!important;
  border-radius:999px!important;
  font-size:13px!important;
  white-space:nowrap!important;
}
.training-stats-actions{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin-top:14px;
}
.training-stats-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:14px;
  min-width:0;
}
.training-stats-layout{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px;
  align-items:start;
  min-width:0;
}
.training-stats-card{
  min-width:0;
}
.training-stat-list{
  display:grid;
  gap:10px;
}
.training-stat-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:12px;
  align-items:center;
  padding:12px;
  border:1px solid #e5e7eb;
  background:#fff;
  border-radius:16px;
}
.training-stat-row strong{
  display:block;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:#111827;
}
.training-stat-row small{
  display:block;
  color:var(--muted);
  font-weight:800;
  margin-top:2px;
}
.training-stat-row > span:last-child{
  font-weight:950;
  color:#111827;
  white-space:nowrap;
}
.training-stat-empty{
  padding:14px;
  border:1px dashed #d1d5db;
  background:#fff;
  border-radius:16px;
  color:var(--muted);
  font-weight:800;
}
@media (max-width:1100px){
  .training-stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .training-stats-layout{grid-template-columns:1fr}
}
@media (max-width:720px){
  .training-stats-grid{grid-template-columns:1fr}
  .training-small-action{width:max-content;max-width:100%}
  .training-stat-row{grid-template-columns:1fr;align-items:start}
  .training-stat-row > span:last-child{justify-self:start}
  .training-stats-actions{display:grid}
}
/* OPSMANAGER_PATCH_END: fase05_0_5_entreno_stats */



/* OPSMANAGER_PATCH_START: fase05_0_7_entreno_kpi_adherence */
.training-kpi-card small{
  display:block;
  color:var(--muted);
  font-size:12px;
  font-weight:900;
  margin-top:3px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.training-goal-form{
  margin-top:14px;
  padding-top:14px;
  border-top:1px solid #e5e7eb;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:10px;
  align-items:end;
}
.training-secondary{
  min-height:50px;
  color:#111827!important;
  background:#f9fafb!important;
  border:1px solid #d1d5db!important;
}
@media (max-width:720px){
  .training-goal-form{
    grid-template-columns:1fr;
  }
  .training-kpi-card small{
    font-size:11.5px;
  }
}
/* OPSMANAGER_PATCH_END: fase05_0_7_entreno_kpi_adherence */


/* OPSMANAGER_PATCH_START: fase05_0_7_3_entreno_adherence_duration_routefix */
.training-detail-controls{
  display:grid;
  grid-template-columns:minmax(160px,1fr) minmax(130px,.75fr);
  gap:10px;
  align-items:end;
  min-width:260px;
}
.training-duration-field input{
  width:100%;
  min-width:0;
  min-height:50px;
  border:1px solid var(--border);
  background:#fff;
  border-radius:16px;
  padding:13px 14px;
  color:var(--text);
  font:inherit;
  outline:none;
}
.training-duration-field input:focus{
  border-color:#374151;
  box-shadow:0 0 0 4px rgba(17,24,39,.12);
}
.training-new-card .training-section-title{margin-bottom:14px;}
.training-new-card .training-section-title .eyebrow{display:none;}
@media (max-width:720px){
  .training-detail-controls{
    min-width:0;
    grid-template-columns:1fr;
  }
}
/* OPSMANAGER_PATCH_END: fase05_0_7_3_entreno_adherence_duration_routefix */


/* OPSMANAGER_PATCH_START: fase05_0_7_5_entreno_weekly_adherence_fix */
.training-goal-form::before{
  content:"Objetivo semanal";
  display:none;
}
/* OPSMANAGER_PATCH_END: fase05_0_7_5_entreno_weekly_adherence_fix */


/* OPSMANAGER_PATCH_START: fase05_0_7_7_entreno_previous_copy */
.training-detail-controls{
  display:grid!important;
  grid-template-columns:minmax(180px,1fr) minmax(150px,220px)!important;
  gap:12px!important;
  align-items:end!important;
  min-width:0!important;
}
.training-duration-field{
  min-width:0!important;
  width:100%!important;
}
.training-duration-field input{
  box-sizing:border-box!important;
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
}
.training-copy-prev-set{
  grid-column:5 / -1;
  justify-self:end;
  min-height:34px;
  border:1px solid #d1d5db;
  border-radius:999px;
  background:#f9fafb;
  color:#111827;
  font-weight:900;
  font-size:12px;
  padding:7px 11px;
  cursor:pointer;
}
.training-copy-prev-set:active{transform:translateY(1px)}
.training-copy-prev-set.is-copied{
  background:#ecfdf5;
  border-color:#bbf7d0;
  color:#166534;
}
@media (max-width:720px){
  .training-detail-controls{grid-template-columns:1fr!important}
  .training-copy-prev-set{grid-column:1 / -1;justify-self:stretch;width:100%;}
}
/* OPSMANAGER_PATCH_END: fase05_0_7_7_entreno_previous_copy */

/* OPSMANAGER_PATCH_START: red_top_summary_4_kpis_no_total */
@media (min-width: 1040px) {
  .network-top-summary {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 12px !important;
  }
}
/* OPSMANAGER_PATCH_END: red_top_summary_4_kpis_no_total */


/* OPSMANAGER_PATCH_START: fase05_1_entreno_session_ux */
.training-set-count-actions{display:flex;gap:8px;align-items:flex-start}
.training-set-count-btn{border:1px solid rgba(15,23,42,.18);background:#fff;border-radius:10px;padding:6px 10px;font-size:.78rem;font-weight:600;color:#0f172a;cursor:pointer;white-space:nowrap}
.training-set-count-btn:active{transform:scale(.97)}
.training-set-tools{grid-column:1/-1;display:flex;gap:8px;align-items:center;justify-content:flex-end;flex-wrap:wrap}
.training-set-saved{font-size:.74rem;font-weight:600;margin-right:auto;min-height:1em}
.training-set-saved.is-saving{color:#92702a}
.training-set-saved.is-saved{color:#15803d}
.training-set-saved.is-error{color:#b91c1c}
.training-sticky-bar{position:sticky;bottom:10px;z-index:30;display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:rgba(255,255,255,.96);border:1px solid rgba(15,23,42,.12);border-radius:14px;padding:10px 14px;box-shadow:0 8px 24px rgba(15,23,42,.14);backdrop-filter:blur(6px)}
.training-rest-timer{font-size:.82rem;color:#475569}
.training-rest-timer strong{font-variant-numeric:tabular-nums;color:#0f172a;font-size:1rem;margin-left:4px}
.training-autosave-hint{font-size:.74rem;color:#94a3b8}
.training-sticky-actions{display:flex;gap:10px;margin-left:auto}
@media (max-width:640px){
  .training-sticky-bar{bottom:6px;padding:8px 10px}
  .training-autosave-hint{display:none}
  .training-sticky-actions{margin-left:auto}
}
/* OPSMANAGER_PATCH_END: fase05_1_entreno_session_ux */

/* OPSMANAGER_PATCH_START: fase06_0_checklist_toggle_fetch */
.inline-head-actions{display:flex;gap:10px;align-items:center}
.small-secondary{padding:8px 14px;border-radius:12px;font-size:.85rem;text-decoration:none}
[data-complete-btn].is-ready{animation:omPulse 1.2s ease-in-out infinite;box-shadow:0 0 0 0 rgba(34,197,94,.5)}
@keyframes omPulse{0%{box-shadow:0 0 0 0 rgba(34,197,94,.45)}70%{box-shadow:0 0 0 12px rgba(34,197,94,0)}100%{box-shadow:0 0 0 0 rgba(34,197,94,0)}}
/* OPSMANAGER_PATCH_END: fase06_0_checklist_toggle_fetch */

/* OPSMANAGER_PATCH_START: fase06_1_network_scan */
.network-scan-summary{margin:12px 0;padding:12px 16px;border:1px solid rgba(15,23,42,.12);border-radius:12px;background:#fff;font-size:.85rem;line-height:1.6}
.scan-drift-bad{color:#b91c1c;font-weight:600}
.scan-drift-warn{color:#92702a;font-weight:600}
.scan-drift-ok{color:#15803d;font-weight:600}
.network-scan-pill{padding:3px 9px;border-radius:999px;font-size:.68rem;font-weight:700;letter-spacing:.04em}
.network-scan-pill.is-alive{background:#dcfce7;color:#15803d}
.network-scan-pill.is-down{background:#fee2e2;color:#b91c1c}
.network-release-form{margin-top:14px;display:flex;justify-content:flex-end}
/* OPSMANAGER_PATCH_END: fase06_1_network_scan */

/* OPSMANAGER_PATCH_START: fase06_2_scripts_new_blocks */
.scripts-field-inline{display:flex;flex-direction:column;gap:4px;margin:6px 0 14px 34px;font-size:.82rem}
.scripts-field-inline span{color:#64748b;font-weight:600}
.scripts-field-inline input{border:1px solid rgba(15,23,42,.18);border-radius:10px;padding:8px 12px;font-size:.9rem;font-family:inherit}
/* OPSMANAGER_PATCH_END: fase06_2_scripts_new_blocks */

/* OPSMANAGER_PATCH_START: fase06_3_entreno_session_focus */
.training-back-link{display:none;width:max-content;align-items:center;gap:6px;font-size:.9rem;font-weight:700;color:#0f172a;text-decoration:none;padding:8px 14px;border:1px solid rgba(15,23,42,.16);border-radius:12px;background:#fff}
@media (max-width:1100px){
  .training-frame.is-session-view .training-kpi-grid{display:none}
  .training-frame.is-session-view .training-left{display:none}
  .training-back-link{display:inline-flex}
  body.endpoint-entreno .page-head.training-head:has(+ .training-frame.is-session-view){display:none}
}
/* OPSMANAGER_PATCH_END: fase06_3_entreno_session_focus */

/* OPSMANAGER_PATCH_START: fase07_0_nutricion_module */
:root{--nutrition:#2563eb;--nutrition-2:#1d4ed8}
.nutrition-eyebrow{color:var(--nutrition)!important}
.module-nutrition{--module-accent:#2563eb;--module-accent-2:#1d4ed8}
.module-nutrition .module-primary{background:linear-gradient(135deg,#2563eb,#1d4ed8)!important;box-shadow:0 10px 26px rgba(37,99,235,.22)!important;color:#fff!important}
.nutrition-frame{display:grid;gap:16px;width:100%;max-width:100%;min-width:0}
.nutrition-top-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.nutrition-top-actions .secondary-btn{min-height:44px;padding:10px 14px;font-size:14px}
.nutrition-kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;min-width:0}
.nutrition-kpi-card,.nutrition-card{
  border:1px solid rgba(209,213,219,.9);
  background:linear-gradient(135deg,rgba(255,255,255,.98),rgba(249,250,251,.9));
  border-radius:24px;
  box-shadow:0 18px 44px rgba(15,23,42,.07);
  overflow:hidden;
  min-width:0;
}
.nutrition-kpi-card{padding:18px;display:grid;gap:8px;position:relative;isolation:isolate}
.nutrition-kpi-card::before{content:"";position:absolute;inset:0 0 auto 0;height:4px;background:linear-gradient(135deg,var(--nutrition),var(--nutrition-2))}
.nutrition-kpi-card span{display:block;color:var(--muted);font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.08em}
.nutrition-kpi-card strong{display:block;color:var(--text);font-size:clamp(1.05rem,1.8vw,1.7rem);letter-spacing:-.04em;line-height:1.05;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nutrition-kpi-card strong small{font-size:.62em;color:var(--muted);font-weight:800}
.nutrition-kpi-card .progress span{background:linear-gradient(90deg,var(--nutrition),var(--nutrition-2))}
.nutrition-bar-protein span{background:linear-gradient(90deg,#7c3aed,#6d28d9)!important}
.nutrition-bar-carbs span{background:linear-gradient(90deg,#d97706,#b45309)!important}
.nutrition-bar-fat span{background:linear-gradient(90deg,#dc2626,#b91c1c)!important}
.nutrition-card{padding:18px}
.nutrition-section-title{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px}
.nutrition-section-title h2{margin:0;font-size:22px;letter-spacing:-.03em;color:var(--text)}
.nutrition-field{display:grid;gap:8px;min-width:0}
.nutrition-field span{font-size:13px;font-weight:900;color:var(--muted)}
.nutrition-field input,.nutrition-field select{width:100%;min-width:0;border:1px solid var(--border);background:#fff;border-radius:16px;padding:13px 14px;color:var(--text);font:inherit;outline:none;min-height:50px}
.nutrition-field input:focus,.nutrition-field select:focus{border-color:var(--nutrition);box-shadow:0 0 0 4px rgba(37,99,235,.15)}
.nutrition-primary{background:linear-gradient(135deg,var(--nutrition),var(--nutrition-2))!important;color:#fff!important;min-height:50px}
.nutrition-secondary{min-height:50px}
.nutrition-small-action{min-height:42px;padding:9px 13px;font-size:14px}
.nutrition-empty{margin:0}
/* Navegación de día */
.nutrition-daynav{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:12px 14px}
.nutrition-daynav-btn{display:grid;place-items:center;width:46px;height:46px;border-radius:14px;border:1px solid var(--border);background:#fff;text-decoration:none;font-size:22px;font-weight:900;color:var(--text)}
.nutrition-daynav-label{text-align:center;display:grid;gap:2px}
.nutrition-daynav-label strong{font-size:17px;letter-spacing:-.02em}
.nutrition-daynav-label a,.nutrition-daynav-label span{font-size:12px;font-weight:800;color:var(--nutrition);text-decoration:none}
.nutrition-daynav-label span{color:var(--muted)}
/* Seguimiento diario */
.nutrition-daily-card{display:grid;gap:14px}
.nutrition-daily-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.nutrition-daily-toggles{grid-template-columns:3fr 2fr}
.nutrition-segmented{display:flex;gap:6px}
.nutrition-seg-btn{flex:1;min-height:46px;border:1px solid var(--border);background:#fff;border-radius:14px;font-weight:900;font-size:13px;cursor:pointer;color:var(--muted)}
.nutrition-seg-btn.seg-verde.is-on{background:#ecfdf5;border-color:#34d399;color:#065f46}
.nutrition-seg-btn.seg-amarillo.is-on{background:#fffbeb;border-color:#fbbf24;color:#92400e}
.nutrition-seg-btn.seg-rojo.is-on{background:#fef2f2;border-color:#f87171;color:#991b1b}
.nutrition-save-state{font-size:12px;font-weight:900;color:var(--nutrition)}
.nutrition-week-line{font-size:13px}
/* Comidas */
.nutrition-meals{display:grid;gap:14px}
.nutrition-meal-card{display:grid;gap:10px}
.nutrition-meal-kcal{font-size:19px!important}
.nutrition-entry-list{display:grid;gap:8px}
.nutrition-entry-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto auto;gap:10px;align-items:center;padding:10px 12px;border:1px solid #e5e7eb;border-radius:16px;background:#fff}
.nutrition-entry-edit{width:34px;height:34px;display:grid;place-items:center;border-radius:10px;border:1px solid var(--border);background:#fff;color:var(--nutrition);text-decoration:none;font-size:15px}
.nutrition-entry-edit-form{display:grid;gap:10px;padding:14px;border:1px dashed var(--nutrition);border-radius:16px;background:#eff6ff;margin-top:-4px}
.nutrition-entry-edit-form select{width:100%;border:1px solid var(--border);border-radius:14px;padding:11px 12px;min-height:46px;background:#fff;font-family:inherit}
.nutrition-edit-hint{margin:0;font-size:13px}
.nutrition-entry-edit-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.nutrition-measure-actions{display:grid;gap:4px;text-align:right;font-size:13px;font-weight:800}
.nutrition-measure-actions a{color:var(--muted);text-decoration:none}
.nutrition-measure-actions form{margin:0}
.nutrition-measure-actions .danger-link{padding:0;font-size:13px}
.nutrition-entry-main{display:grid;gap:2px;min-width:0}
.nutrition-entry-main strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:15px}
.nutrition-entry-main small{color:var(--muted);font-weight:700}
.nutrition-entry-kcal{font-weight:950;white-space:nowrap;color:var(--text);font-size:14px}
.nutrition-entry-delete{margin:0}
.nutrition-entry-delete button{width:34px;height:34px;border-radius:10px;border:1px solid var(--border);background:#fff;color:var(--danger);font-weight:900;font-size:16px;cursor:pointer}
/* Picker de alimentos */
.nutrition-picker{display:grid;gap:10px;border-top:1px dashed var(--border);padding-top:12px}
.nutrition-picker-search{display:flex;gap:8px;align-items:stretch}
.nutrition-picker-search input{width:100%;border:1px solid var(--border);border-radius:16px;padding:13px 14px;min-height:50px;outline:none}
.nutrition-picker-search input:focus{border-color:var(--nutrition);box-shadow:0 0 0 4px rgba(37,99,235,.15)}
.nutrition-scan-btn{flex:0 0 50px;display:grid;place-items:center;border:1px solid var(--border);border-radius:16px;background:#fff;color:var(--nutrition);cursor:pointer;min-height:50px}
.nutrition-scan-btn svg{width:24px;height:24px}
.nutrition-scan-btn:active{background:#eff6ff;border-color:var(--nutrition)}
.nutrition-scan-overlay{position:fixed;inset:0;z-index:60;display:grid;place-items:center;padding:18px;background:rgba(15,23,42,.55);backdrop-filter:blur(3px)}
.nutrition-scan-overlay[hidden]{display:none}
.nutrition-scan-video-wrap[hidden]{display:none}
.nutrition-scan-dialog{width:min(440px,100%);background:#fff;border-radius:22px;padding:18px;display:grid;gap:12px;box-shadow:0 24px 60px rgba(15,23,42,.3)}
.nutrition-scan-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.nutrition-scan-head strong{font-size:17px;letter-spacing:-.02em}
.nutrition-scan-head button{border:0;background:var(--surface-alt);border-radius:999px;width:36px;height:36px;font-size:20px;font-weight:800;cursor:pointer;color:var(--muted)}
.nutrition-scan-video-wrap{position:relative;border-radius:16px;overflow:hidden;background:#0f172a;aspect-ratio:4/3}
.nutrition-scan-video-wrap video{width:100%;height:100%;object-fit:cover;display:block}
.nutrition-scan-frame{position:absolute;inset:18% 10%;border:2px solid rgba(255,255,255,.85);border-radius:12px;box-shadow:0 0 0 999px rgba(15,23,42,.28);pointer-events:none}
.nutrition-scan-status{margin:0;color:var(--muted);font-size:14px;line-height:1.4;min-height:20px}
.nutrition-scan-torch{position:absolute;right:10px;bottom:10px;width:42px;height:42px;display:grid;place-items:center;border:0;border-radius:999px;background:rgba(15,23,42,.55);color:#fff;cursor:pointer}
.nutrition-scan-torch svg{width:22px;height:22px}
.nutrition-scan-torch.is-on{background:#fbbf24;color:#1f2937}
.nutrition-scan-torch[hidden]{display:none}
.nutrition-scan-zoom{display:flex;align-items:center;gap:10px;color:var(--muted);font-weight:900;font-size:18px}
.nutrition-scan-zoom[hidden]{display:none}
.nutrition-scan-zoom input[type=range]{flex:1;min-height:32px;accent-color:var(--nutrition);padding:0;border:0;background:none}
.nutrition-scan-manual{display:flex;gap:8px}
.nutrition-scan-manual input{flex:1;border:1px solid var(--border);border-radius:16px;padding:13px 14px;min-height:50px;outline:none}
.nutrition-scan-manual input:focus{border-color:var(--nutrition);box-shadow:0 0 0 4px rgba(37,99,235,.15)}
.nutrition-scan-manual .primary-btn{min-height:50px;padding:12px 16px}
.nutrition-picker-results{display:grid;gap:6px;max-height:280px;overflow:auto}
.nutrition-picker-result{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;text-align:left;padding:10px 12px;border:1px solid #e5e7eb;border-radius:14px;background:#fff;cursor:pointer;font:inherit}
.nutrition-picker-result:hover{border-color:var(--nutrition)}
.nutrition-picker-result .npr-name{display:grid;gap:1px;min-width:0}
.nutrition-picker-result .npr-name strong{font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.nutrition-picker-result .npr-name small{color:var(--muted);font-weight:700;font-size:12px}
.nutrition-picker-result .npr-kcal{font-weight:900;font-size:13px;white-space:nowrap;color:var(--muted)}
.nutrition-picker-selected{display:grid;gap:10px;border:1px solid #bfdbfe;background:#eff6ff;border-radius:16px;padding:12px}
.nutrition-picker-selected-name{font-weight:900}
.nutrition-picker-selected-name small{display:block;color:var(--muted);font-weight:700}
.nutrition-picker-amount{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:end}
.nutrition-picker-error{margin:0;color:var(--danger);font-weight:800;font-size:13px}
.nutrition-off-search{width:100%;border:1px dashed var(--nutrition);background:#eff6ff;color:var(--nutrition-2);border-radius:14px;padding:11px 12px;font-weight:800;font-size:13px;cursor:pointer;font-family:inherit}
.nutrition-picker-result.is-off{border-style:dashed;border-color:#bfdbfe}
.nutrition-picker-result.is-off .npr-name em{font-style:normal;color:var(--nutrition);font-weight:800}
.nutrition-manual summary{cursor:pointer;font-weight:800;color:var(--muted);font-size:13px}
.nutrition-manual-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:10px 0}
.nutrition-manual-name{grid-column:1 / -1}
.nutrition-manual .nutrition-primary{margin-top:2px}
/* Alimentos */
.nutrition-filter-form{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:10px}
.nutrition-filter-form input,.nutrition-filter-form select{border:1px solid var(--border);border-radius:16px;padding:13px 14px;min-height:50px;outline:none;background:#fff;font:inherit}
.nutrition-filter-links{margin-top:10px;font-size:13px;font-weight:800}
.nutrition-filter-links a{color:var(--muted)}
.nutrition-food-form{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.nutrition-food-name{grid-column:span 2}
.nutrition-food-submit{grid-column:1 / -1}
.nutrition-food-list{display:grid;gap:8px}
.nutrition-food-row{display:grid;grid-template-columns:auto minmax(0,1.6fr) minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px 12px;border:1px solid #e5e7eb;border-radius:16px;background:#fff}
.nutrition-fav-form{margin:0}
.nutrition-fav-btn{width:38px;height:38px;border-radius:12px;border:1px solid var(--border);background:#fff;font-size:18px;cursor:pointer;color:var(--dim)}
.nutrition-fav-btn.is-fav{color:#d97706;border-color:#fcd34d;background:#fffbeb}
.nutrition-food-main{display:grid;gap:2px;min-width:0}
.nutrition-food-main strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:15px}
.nutrition-food-main small{color:var(--muted);font-weight:700}
.nutrition-food-macros{display:grid;gap:2px;text-align:right}
.nutrition-food-macros small{color:var(--muted);font-weight:700;white-space:nowrap}
.nutrition-food-actions{display:grid;gap:4px;text-align:right;font-size:13px;font-weight:800}
.nutrition-food-actions a{color:var(--muted);text-decoration:none}
.nutrition-food-actions form{margin:0}
.nutrition-food-actions .danger-link{padding:0;font-size:13px}
/* Plan */
.nutrition-plan-pills{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}
.nutrition-plan-pill{text-decoration:none;border:1px solid var(--border);border-radius:999px;padding:10px 14px;font-weight:800;font-size:14px;background:#fff;color:var(--text)}
.nutrition-plan-pill.is-selected{border-color:var(--nutrition);background:#eff6ff;color:#1e40af}
.nutrition-plan-active-dot{color:var(--nutrition);font-size:11px}
.nutrition-plan-activate{margin-top:12px}
.nutrition-daytype-tabs{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.nutrition-daytype-tab{text-align:center;text-decoration:none;border:1px solid var(--border);border-radius:16px;padding:13px;font-weight:900;background:#fff;color:var(--muted)}
.nutrition-daytype-tab.is-on{border-color:var(--nutrition);background:linear-gradient(135deg,var(--nutrition),var(--nutrition-2));color:#fff}
.nutrition-daytype-chip{font-size:11px;font-weight:950;letter-spacing:.06em;text-transform:uppercase;border-radius:999px;padding:7px 10px;border:1px solid #bfdbfe;background:#eff6ff;color:#1e40af;white-space:nowrap}
.nutrition-plan-meal{display:grid;gap:6px}
.nutrition-plan-group h3{margin:8px 0 4px;font-size:14px;color:var(--nutrition);text-transform:uppercase;letter-spacing:.04em}
.nutrition-plan-group ul,.nutrition-plan-notes ul{margin:0;padding-left:20px;display:grid;gap:5px;color:var(--text);line-height:1.4}
.nutrition-plan-notes ul{color:var(--muted);font-size:14px}
/* Medidas */
.nutrition-measure-form{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.nutrition-measure-date,.nutrition-measure-notes,.nutrition-measure-submit{grid-column:1 / -1}
.nutrition-measure-hint{margin-top:12px;font-size:13px}
.nutrition-measure-chips{display:flex;flex-wrap:wrap;gap:8px}
.nutrition-measure-chip{display:inline-flex;align-items:center;gap:5px;border:1px solid #e5e7eb;border-radius:999px;padding:8px 12px;background:#fff;font-size:13px;font-weight:700;color:var(--muted)}
.nutrition-measure-chip strong{color:var(--text)}
.nutrition-measure-chip em{font-style:normal;font-weight:900;font-size:12px}
.nutrition-measure-chip .delta-down{color:var(--success)}
.nutrition-measure-chip .delta-up{color:var(--danger)}
/* Stats */
.nutrition-stats-layout{display:grid;gap:14px}
.nutrition-stat-list{display:grid;gap:8px}
.nutrition-stat-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border:1px solid #e5e7eb;border-radius:16px;background:#fff}
.nutrition-stat-row>div{display:grid;gap:2px;min-width:0}
.nutrition-stat-row small{color:var(--muted);font-weight:700}
.nutrition-stat-row>span{font-weight:900;text-align:right;font-size:14px}
.nutrition-targets-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.nutrition-targets-submit{grid-column:1 / -1}
@media (min-width:680px){
  .nutrition-stats-layout{grid-template-columns:repeat(2,minmax(0,1fr))}
  .nutrition-targets-form{grid-template-columns:repeat(4,minmax(0,1fr))}
}
@media (max-width:720px){
  body.endpoint-nutricion .app-shell{width:100%;max-width:100%;padding-left:14px;padding-right:14px}
  .nutrition-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .nutrition-card,.nutrition-kpi-card{border-radius:22px;padding:16px}
  .nutrition-daily-grid,.nutrition-daily-toggles{grid-template-columns:1fr 1fr}
  .nutrition-daily-grid .nutrition-field:first-child{grid-column:auto}
  .nutrition-daily-toggles{grid-template-columns:1fr}
  .nutrition-filter-form{grid-template-columns:1fr;gap:8px}
  .nutrition-food-form,.nutrition-measure-form{grid-template-columns:repeat(2,minmax(0,1fr))}
  .nutrition-food-name{grid-column:1 / -1}
  .nutrition-food-row{grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"fav main actions" "fav macros actions"}
  .nutrition-fav-form{grid-area:fav}
  .nutrition-food-main{grid-area:main}
  .nutrition-food-macros{grid-area:macros;text-align:left}
  .nutrition-food-actions{grid-area:actions}
  .nutrition-manual-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:420px){
  .nutrition-kpi-grid{gap:10px}
  .nutrition-kpi-card strong{font-size:clamp(1rem,5.6vw,1.35rem)}
  .nutrition-daily-grid{grid-template-columns:1fr}
}
/* OPSMANAGER_PATCH_END: fase07_0_nutricion_module */

/* OPSMANAGER_PATCH_START: fase07_7_brand_icon */
.brand-mark.brand-mark-app{background:none;box-shadow:none;border-radius:0}
.brand-mark.brand-mark-app img{width:36px;height:36px;display:block}
.hero-icon.hero-icon-app{background:none;box-shadow:none;border-radius:0}
.hero-icon.hero-icon-app img{width:64px;height:64px;display:block}
/* OPSMANAGER_PATCH_END: fase07_7_brand_icon */
