
:root{--bg:#060b14;--panel:#0a1424;--panel2:#0c182b;--line:#183456;--text:#f7fbff;--muted:#91a4bd;--blue:#0ea5ff;--cyan:#00d9ff;--green:#16e58f;--orange:#a259ff;--red:#ff4040;--purple:#8b5cf6}*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at 25% 10%,#102141 0,#060b14 38%,#03060c 100%);font-family:Inter,Segoe UI,Arial,sans-serif;color:var(--text)}.app{display:grid;grid-template-columns:250px 1fr;min-height:100vh}.sidebar{background:linear-gradient(180deg,#081220,#050a13);border-right:1px solid #183456;padding:22px;position:relative;overflow:hidden}.sidebar:after{content:"";position:absolute;bottom:-90px;left:-70px;width:260px;height:260px;border:1px solid #0a64ff;border-radius:50%;box-shadow:0 0 40px #0a64ff55}.brand{display:flex;gap:13px;align-items:center;margin-bottom:34px}.brand-icon{font-size:34px;color:#4db8ff}.brand h1{margin:0;font-size:24px}.brand p{margin:3px 0 0;color:#83a5cf;font-size:12px}nav{display:grid;gap:9px}nav a{padding:13px 14px;border-radius:10px;color:#dbeafe;text-decoration:none;display:flex;justify-content:space-between;align-items:center}nav a.active{background:linear-gradient(90deg,#0b63ff,#09204a);box-shadow:0 0 18px #0b63ff99;border:1px solid #1c8cff}nav span{background:#ef4444;color:white;border-radius:999px;padding:2px 8px}.side-card{position:absolute;bottom:34px;left:20px;right:20px;background:#0b1729;border:1px solid #1b3c65;border-radius:14px;padding:16px;z-index:1}.side-card p{display:flex;justify-content:space-between;color:#dceafe}.dot{width:11px;height:11px;border-radius:50%;display:inline-block;margin-right:8px}.ok{background:var(--green)}.warn{background:var(--orange)}.bad{background:var(--red)}.content{padding:22px}.topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px;gap:20px}.search{width:420px;background:#0b1729;border:1px solid #244668;border-radius:12px;padding:0 12px;display:flex;align-items:center;gap:10px}.search input{width:100%;background:transparent;border:0;outline:0;color:#fff;padding:13px;font-size:14px}.top-actions{display:flex;align-items:center;gap:13px;color:#dbeafe}.live,.time,.user,.refresh{background:#08192b;border:1px solid #1c385c;border-radius:999px;padding:10px 16px;color:#fff;text-decoration:none}.live i{display:inline-block;width:10px;height:10px;border-radius:50%;background:var(--green);margin-right:8px;box-shadow:0 0 14px var(--green)}.refresh{background:#0b63ff}.metrics{display:grid;grid-template-columns:1fr 1fr 1fr 1.55fr;gap:16px;margin-bottom:16px}.metric{background:linear-gradient(180deg,#0b1729,#08111f);border:1px solid #1a3a5f;border-radius:16px;min-height:130px;padding:24px;display:flex;gap:22px;align-items:center;box-shadow:0 0 24px #001a3a55}.metric span{font-weight:800;font-size:13px;color:#cfe8ff}.metric strong{display:block;font-size:42px;margin-top:10px}.metric p{margin:6px 0 0;color:#dbeafe}.metric-icon{width:70px;height:70px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:34px;border:1px solid #16466e;background:#082448;box-shadow:0 0 26px #008cff88}.purple{box-shadow:0 0 30px #8b5cf688;color:#ad7cff}.cyan{box-shadow:0 0 30px #00d9ff88;color:#00d9ff}.alerts-ring{justify-content:space-around}.ring{width:90px;height:90px;border-radius:50%;background:conic-gradient(var(--red) 0 20deg,var(--orange) 20deg 285deg,#153050 285deg);display:flex;align-items:center;justify-content:center;position:relative;box-shadow:0 0 24px #a259ff66}.ring:after{content:"";position:absolute;inset:12px;background:#0b1729;border-radius:50%}.ring b{z-index:1;font-size:34px}.main-grid{display:grid;grid-template-columns:1.7fr 1fr;gap:16px;margin-bottom:16px}.lower-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.panel{background:linear-gradient(180deg,#0a1424,#07101e);border:1px solid #1a3a5f;border-radius:16px;padding:18px;box-shadow:0 0 22px #001a3a66}.panel-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.panel h2{font-size:18px;margin:0}.panel a{color:#36a8ff}.topo-map{height:330px;position:relative;background:radial-gradient(circle at 35% 55%,#0c2342 0,#08111f 46%,#07101e 100%);border-radius:14px;overflow:hidden}.topo-map:before{content:"";position:absolute;inset:0;background-image:linear-gradient(#1a3a5f44 1px,transparent 1px),linear-gradient(90deg,#1a3a5f44 1px,transparent 1px);background-size:48px 48px;opacity:.28}.nodes-left{position:absolute;left:26px;top:22px;display:grid;gap:14px;z-index:2}.node{width:245px;height:62px;border:1px solid #008cff;border-radius:12px;background:#0b1b30;display:flex;align-items:center;gap:12px;padding:10px 14px;box-shadow:0 0 14px #0ea5ff66}.node.online{border-color:#00dc8a}.node.offline{border-color:#ff4040}.node small,.node em{display:block;color:#9eb6d3;font-style:normal;font-size:12px}.node em{color:#0df0a0}.srv-icon,.switch-icon,.storage-big{width:36px;height:36px;border-radius:8px;background:#082448;border:1px solid #1269ad;display:inline-block;box-shadow:inset 0 0 12px #0ea5ff88}.center-switch,.right-storage{position:absolute;z-index:2;top:132px;background:#0b1729;border:1px solid #2a5d8a;border-radius:14px;padding:18px 28px;text-align:center;box-shadow:0 0 18px #0ea5ff55}.center-switch{left:50%;transform:translateX(-50%)}.right-storage{right:34px}.center-switch b,.right-storage b{display:block;font-size:19px}.center-switch small,.right-storage small{color:#c9ddf5}.wires{position:absolute;left:285px;right:200px;top:0;width:calc(100% - 520px);height:100%;z-index:1;filter:drop-shadow(0 0 8px #0ea5ff)}.wires path{fill:none;stroke:#0ea5ff;stroke-width:3}.alert-item{display:grid;grid-template-columns:54px 1fr 65px 92px;gap:10px;align-items:center;background:#101826;border:1px solid #3a2a6b;border-radius:12px;padding:15px;margin-bottom:10px}.alert-item i{width:48px;height:48px;border-radius:50%;background:#241047;color:var(--orange);display:flex;align-items:center;justify-content:center;font-style:normal}.alert-item small{display:block;color:#b6c8df}.alert-item em{display:inline-block;background:#7c3aed;color:white;border-radius:6px;padding:4px 8px;font-style:normal;font-size:12px;margin-top:6px}.alert-item strong{color:var(--orange);font-size:28px}.alert-item.critico{border-color:#7a2330}.alert-item.critico i{background:#3a0d12;color:#ff5252}.alert-item.critico em{background:#c62828;color:#fff}.alert-item.critico strong{color:#ff5252}.alert-ok{background:#052b25;border:1px solid #0f6f59;border-radius:12px;padding:16px;color:#0df0a0}.table-panel{overflow:auto}table{width:100%;border-collapse:collapse}th,td{text-align:left;border-bottom:1px solid #183456;padding:12px;color:#dceafe;font-size:13px}th{color:#9fb7d4;font-size:12px}.pill{padding:5px 10px;border-radius:7px}.pill.online{background:#063d2e;color:#17e58f}.pill.error{background:#3d1010;color:#ff7777}.bar{display:inline-block;width:90px;height:9px;background:#132943;border-radius:999px;overflow:hidden;margin-right:8px}.bar i{display:block;height:100%;background:linear-gradient(90deg,#16e58f,#ff9f1a);border-radius:999px}.bajo,.warn{color:var(--orange)!important}.critico,.bad{color:var(--red)!important}.normal{color:var(--green)!important}.status-ring{width:22px;height:22px;border-radius:50%;display:inline-block;border:5px solid var(--green)}.status-ring.bajo{border-color:var(--orange)}.status-ring.critico{border-color:var(--red)}.capacity{display:flex;justify-content:space-around;background:#08192b;border-radius:12px;margin-top:14px;padding:14px;color:#aac4e2}.capacity b{display:block;color:white;font-size:20px}.admin-page{background:#08111f}.admin-wrap{padding:30px}.admin-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:16px;margin-top:22px}.admin-card{background:#0a1424;border:1px solid #1a3a5f;border-radius:16px;padding:18px;display:grid;gap:10px}.admin-card input{background:#07101e;border:1px solid #244668;color:#fff;border-radius:10px;padding:12px}.admin-card button{background:#0b63ff;color:white;border:0;border-radius:10px;padding:12px;font-weight:800}.cred{font-weight:800}.cred.ok{color:#16e58f}.cred.bad{color:#ff4040}@media(max-width:1200px){.app{grid-template-columns:1fr}.sidebar{display:none}.metrics,.main-grid,.lower-grid{grid-template-columns:1fr}.topbar{flex-direction:column;align-items:stretch}.search{width:100%}}


/* V9 - Topología detallada por storage */
.detailed-main{grid-template-columns:1.55fr .9fr}
.topology-detailed{overflow:visible}
.storage-topology-list{display:grid;gap:14px}
.storage-detail-card{
  background:linear-gradient(180deg,#0b1729,#08111f);
  border:1px solid #1a3a5f;
  border-radius:16px;
  padding:14px;
  box-shadow:0 0 18px #001a3a66;
}
.storage-detail-head{
  display:grid;
  grid-template-columns:54px 1fr;
  align-items:center;
  gap:12px;
  margin-bottom:12px;
}
.storage-detail-head h3{margin:0;font-size:20px;color:#fff}
.storage-detail-head small{color:#93b4d7;font-size:13px}
.storage-detail-head p{margin:5px 0 0;color:#9eb6d3;font-size:13px}
.storage-detail-head a{margin-left:10px;color:#38bdf8}
.storage-icon-ui{
  width:46px;height:36px;border-radius:6px;
  background:linear-gradient(180deg,#2b2b2b,#0b0b0b);
  border:1px solid #111;
  box-shadow:inset 0 0 12px #ffffff18,0 0 18px #0ea5ff55;
  position:relative;
}
.storage-icon-ui:before{
  content:"";position:absolute;left:8px;top:9px;width:6px;height:14px;background:#343434;border:1px solid #555;
  box-shadow:10px 0 #343434,20px 0 #343434,30px 0 #343434;
}
.storage-links{display:grid;gap:8px}
.storage-link-row{
  display:grid;
  grid-template-columns:145px minmax(240px,1fr) 230px;
  gap:12px;
  align-items:center;
  min-height:50px;
}
.eth-box{
  display:flex;justify-content:space-between;gap:10px;
  background:#07101e;border:1px solid #1a3a5f;border-radius:10px;
  padding:10px 12px;color:#dceafe;
}
.eth-box b{color:#fff}
.eth-box span{color:#c6d9f2;font-weight:700}
.line-box{height:34px;position:relative;display:flex;align-items:center}
/* Línea con efecto de energía azul (rayo/neón) fluyendo en continuo.
   Todas las líneas usan el mismo tono azul (se reemplaza el color por enlace
   var(--line) por el azul neón, decisión confirmada). El destello blanco
   recorre la línea de un extremo al otro; la línea base "respira" suave.
   Se usa !important porque más abajo en el CSS hay reglas .line-box i que
   de otro modo pisarían el efecto. */
.line-box i{
  width:100% !important;height:3px !important;border-top:none !important;border-radius:3px;
  background:#1f5fa8 !important;
  box-shadow:0 0 6px #2f7bd6,0 0 13px #1a5fb4;
  position:relative !important;overflow:visible !important;
  animation:san-breathe 2.4s ease-in-out infinite !important;
}
/* Pulso de energía que viaja sobre la línea (destello principal) */
.line-box i:before{
  content:"" !important;position:absolute;top:50%;left:0;
  width:120px;height:3px;border-radius:3px;transform:translateY(-50%);
  background:linear-gradient(90deg,rgba(143,208,255,0) 0%,#8fd0ff 35%,#ffffff 50%,#8fd0ff 65%,rgba(143,208,255,0) 100%);
  box-shadow:0 0 12px #ffffff,0 0 22px #6fc4ff;
  animation:san-flow 2.3s linear infinite !important;
  z-index:3;
}
/* Segundo destello, desfasado, para que casi siempre haya luz moviéndose */
.line-box i:after{
  content:"" !important;position:absolute;top:50%;left:0;
  width:120px;height:3px;border-radius:3px;transform:translateY(-50%);
  background:linear-gradient(90deg,rgba(143,208,255,0) 0%,#8fd0ff 35%,#ffffff 50%,#8fd0ff 65%,rgba(143,208,255,0) 100%);
  box-shadow:0 0 12px #ffffff,0 0 22px #6fc4ff;
  animation:san-flow 2.3s linear infinite !important;
  animation-delay:1.15s;
  z-index:3;
}
/* Puntos luminosos en los extremos */
.line-box:before,.line-box:after{
  content:"";position:absolute;width:10px;height:10px;border-radius:50%;
  background:#cfeaff;top:12px;box-shadow:0 0 8px #8fd0ff,0 0 14px #4aa8ff
}
.line-box:before{left:0}.line-box:after{right:0}
@keyframes san-flow{
  0%{left:-120px;opacity:0}
  8%{opacity:1}
  92%{opacity:1}
  100%{left:100%;opacity:0}
}
@keyframes san-breathe{
  0%,100%{box-shadow:0 0 6px #2f7bd6,0 0 13px #1a5fb4}
  50%{box-shadow:0 0 10px #4aa8ff,0 0 22px #2f7bd6}
}
/* Nota: el efecto se anima SIEMPRE, sin importar la preferencia
   "reducir movimiento" del sistema operativo. Decisión tomada porque el dash
   se abre desde muchas PCs cliente cuya configuración no se controla, y el
   efecto debe verse igual en todas. */
.line-box em{
  position:absolute;left:50%;transform:translateX(-50%);
  top:-1px;background:#08111f;padding:0 8px;
  color:#e5f2ff;font-style:normal;font-size:12px;font-weight:700;
  white-space:nowrap;
}
.target-box{
  display:grid;grid-template-columns:34px 1fr;gap:10px;align-items:center;
  background:#0b1b30;border:1px solid #26537e;border-radius:12px;
  padding:8px 10px;box-shadow:0 0 12px #0ea5ff44;
}
.target-box b{display:block;color:#fff}
.target-box span{font-size:12px;color:#9eb6d3}
.switch-box{border-color:#16e58f55;background:#082116}
.server-mini{
  width:24px;height:34px;border-radius:4px;background:linear-gradient(180deg,#2b2b2b,#101010);
  border:1px solid #111;box-shadow:inset 0 0 8px #ffffff20;
}
.switch-mini{
  width:32px;height:22px;border-radius:4px;background:linear-gradient(180deg,#2c2c2c,#111);
  border:1px solid #111;box-shadow:inset 0 0 8px #ffffff20;
}
@media(max-width:1200px){
  .detailed-main{grid-template-columns:1fr}
  .storage-link-row{grid-template-columns:1fr}
  .line-box{height:24px}
}


/* FIX líneas sobre números */
.eth-box{
  position:relative;
  z-index:20;
  background:#07101e;
}

.line-box{
  position:relative;
  z-index:1;
  margin-left:-6px;
}

.line-box i{
  position:relative;
  z-index:1;
}

.line-box:before,
.line-box:after{
  z-index:2;
}

.storage-link-row{
  overflow:visible;
}



/* V9.2 - Corrección definitiva: las líneas no pisan ETH/IP */
.storage-link-row{
  grid-template-columns:260px minmax(280px,1fr) 260px !important;
  column-gap:18px !important;
  overflow:visible !important;
}

.eth-box{
  position:relative !important;
  z-index:50 !important;
  background:#07101e !important;
  min-width:260px !important;
  padding:12px 18px !important;
  border:1px solid #1a3a5f !important;
}

.eth-box b,
.eth-box span{
  position:relative !important;
  z-index:60 !important;
  background:#07101e !important;
}

.line-box{
  position:relative !important;
  z-index:1 !important;
  margin-left:0 !important;
  padding-left:18px !important;
  padding-right:18px !important;
}

.line-box i{
  width:100% !important;
  position:relative !important;
  z-index:1 !important;
}

.line-box:before{
  left:18px !important;
  z-index:2 !important;
}

.line-box:after{
  right:18px !important;
  z-index:2 !important;
}

.line-box em{
  z-index:3 !important;
}

@media(max-width:1200px){
  .storage-link-row{
    grid-template-columns:1fr !important;
  }
  .eth-box{
    min-width:0 !important;
  }
}

.page-title{margin:0;font-size:28px}.page-sub{margin:6px 0 0;color:#9eb6d3}.sidebar nav a[href]{cursor:pointer}.sidebar nav a:hover{background:#0b1b30;border:1px solid #1a3a5f}

/* V11 - Consola NOC: accesos RDP / Ping / WinRM / Explorer / SSH */
.ip-link{
  color:#38bdf8;
  font-weight:800;
  text-decoration:none;
}
.ip-link:hover{text-decoration:underline}
.tool-buttons{
  display:flex;
  flex-wrap:wrap;
  gap:5px;
  margin-top:6px;
}
.tool{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:38px;
  height:22px;
  padding:0 7px;
  border-radius:7px;
  font-size:11px;
  line-height:1;
  font-weight:800;
  text-decoration:none;
  border:1px solid #1a3a5f;
  background:#08192b;
  color:#dceafe;
}
.tool:hover{
  border-color:#38bdf8;
  box-shadow:0 0 10px #0ea5ff66;
}
.tool.rdp{background:#0b2b57;color:#7dd3fc}
.tool.ping{background:#092b20;color:#16e58f}
.tool.winrm{background:#2b1b08;color:#ffb84d}
.tool.explorer{background:#182033;color:#dbeafe}
.tool.ssh{background:#271347;color:#c4b5fd}
.target-box .tool-buttons{margin-top:5px}
.terminal-output{
  white-space:pre-wrap;
  background:#020617;
  border:1px solid #1a3a5f;
  border-radius:14px;
  padding:18px;
  color:#dbeafe;
  box-shadow:0 0 20px #001a3a;
  font-family:Consolas, monospace;
  font-size:14px;
}


/* V12 - botones launcher local */
.tool.rdp::after{content:"";}
.tool.ping::after{content:"";}
.launcher-note{
  background:#2b1b08;
  border:1px solid #ff9f1a;
  color:#ffd28a;
  padding:12px 14px;
  border-radius:12px;
  margin:12px 0;
}

/* V13 - Detalle servidor / storage */
.detail-link{color:#7dd3fc;text-decoration:none;font-weight:800}
.detail-link:hover{text-decoration:underline}
.detail-hero{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:16px;margin-bottom:16px}
.detail-card{background:linear-gradient(180deg,#0b1729,#08111f);border:1px solid #1a3a5f;border-radius:16px;padding:18px;box-shadow:0 0 22px #001a3a66}
.detail-card.big{border-color:#0ea5ff;box-shadow:0 0 24px #0ea5ff44}
.detail-card h2{margin:0 0 12px;font-size:20px}
.detail-card p{color:#cfe8ff}
.kpi-row{display:flex;justify-content:space-between;border-bottom:1px solid #183456;padding:9px 0;color:#cfe8ff}
.kpi-row b{color:#fff}
.ok-text{color:#16e58f!important;font-weight:800}
.mini-error{white-space:pre-wrap;max-height:180px;overflow:auto;background:#2a0b0b;border:1px solid #7f1d1d;border-radius:12px;padding:12px;color:#ffb4b4;font-size:12px}
@media(max-width:1200px){.detail-hero{grid-template-columns:1fr}}

/* V16 - Storage 200 Health estable */
.health-disabled{
  border-color:#ff9f1a!important;
  background:linear-gradient(180deg,#241607,#0a1424)!important;
  color:#ffd28a;
  margin-bottom:16px;
}
.health-card.health-ok{border-color:#16e58f;box-shadow:0 0 22px #16e58f33}
.health-card.health-warn{border-color:#ff9f1a;box-shadow:0 0 22px #ff9f1a33}
.normal{color:#16e58f!important;font-weight:800}
.critico{color:#ff4040!important;font-weight:800}

/* V19 - Simple Storage Alert */
.alert-item.critico{
  border-color:#ff4040!important;
  box-shadow:0 0 18px #ff404044;
}

.top-actions .update-form{display:inline-flex;margin:0}
.top-actions .update-form button.refresh{font:inherit;cursor:pointer}


/* Professional report/history cards */
.report-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:16px}.report-card{background:linear-gradient(180deg,#0b1729,#08111f);border:1px solid #1a3a5f;border-radius:16px;padding:20px;box-shadow:0 0 22px #001a3a55}.report-card span{display:block;color:#9fb7d4;font-size:12px;font-weight:800;text-transform:uppercase}.report-card strong{display:block;color:#fff;font-size:34px;margin:8px 0}.report-card p{margin:0;color:#b9cce2}@media(max-width:1200px){.report-grid{grid-template-columns:1fr 1fr}}@media(max-width:720px){.report-grid{grid-template-columns:1fr}}


/* Table filters */
.table-filter input{min-width:260px;background:#061326;color:#eaf4ff;border:1px solid #21496d;border-radius:10px;padding:9px 12px;font-size:13px;outline:0}.table-filter input:focus{border-color:#38bdf8;box-shadow:0 0 0 3px rgba(56,189,248,.12)}@media(max-width:900px){.panel-head{align-items:flex-start;gap:10px}.table-filter,.table-filter input{width:100%;min-width:0}}

/* Sidebar estable: todos los modulos usan el mismo menu, con scroll propio. */
.app{
  grid-template-columns:250px minmax(0,1fr);
}
.sidebar{
  position:sticky !important;
  top:0;
  height:100vh;
  display:flex;
  flex-direction:column;
  overflow:hidden !important;
  padding:18px 20px !important;
}
.sidebar:after{
  pointer-events:none;
  z-index:0;
}
.sidebar .brand,
.sidebar nav,
.sidebar .side-card{
  position:relative;
  z-index:1;
}
.sidebar .brand{
  flex:0 0 auto;
  margin-bottom:24px !important;
  min-width:0;
}
.sidebar .brand-icon{
  flex:0 0 auto;
  line-height:1;
}
.sidebar .brand h1{
  line-height:1.18;
  word-break:normal;
}
.sidebar .brand p{
  line-height:1.35;
}
.sidebar nav{
  flex:1 1 auto;
  min-height:0;
  display:flex !important;
  flex-direction:column;
  gap:8px !important;
  overflow-y:auto;
  overflow-x:hidden;
  padding-right:4px;
  padding-bottom:10px;
}
.sidebar nav::-webkit-scrollbar{
  width:7px;
}
.sidebar nav::-webkit-scrollbar-thumb{
  background:#17385a;
  border-radius:999px;
}
.sidebar nav a{
  width:100%;
  min-height:46px;
  flex:0 0 auto;
  justify-content:space-between;
  gap:10px;
  padding:12px 13px !important;
  border:1px solid transparent;
  line-height:1.25;
}
.sidebar nav a:hover{
  background:#0b1b30;
  border-color:#1a3a5f;
}
.sidebar nav a.active{
  border-color:#1c8cff;
}
.sidebar .side-card{
  position:relative !important;
  left:auto !important;
  right:auto !important;
  bottom:auto !important;
  flex:0 0 auto;
  margin-top:14px;
}
.dig-subnav{
  display:flex !important;
  flex-direction:column;
  gap:4px;
  margin:-2px 0 4px 18px !important;
  padding-left:10px;
  border-left:1px solid #17385a;
  flex:0 0 auto;
}
.dig-subnav a{
  min-height:30px !important;
  padding:7px 10px !important;
  border-radius:7px !important;
  background:transparent !important;
  border:1px solid transparent !important;
  box-shadow:none !important;
  color:#9fb6d3 !important;
  font-size:12px !important;
  font-weight:600;
}
.dig-subnav a:hover,
.dig-subnav a.active{
  background:#0b2238 !important;
  border-color:#235178 !important;
  color:#fff !important;
}

/* Digifort operational status */
.digifort-panel{margin-top:16px;background:linear-gradient(180deg,#0b1729,#08111f);border:1px solid #1a3a5f;border-radius:14px;padding:14px;box-shadow:0 0 18px #001a3a55}.digifort-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:10px}.digifort-head h2{margin:0;font-size:16px}.digifort-head p{margin:4px 0 0;color:#9fb7d4;font-size:12px}.digifort-head span{border-radius:999px;padding:4px 10px;font-size:12px;font-weight:800;background:#082116;color:#16e58f;border:1px solid #0f6b4c;white-space:nowrap}.digifort-head span.bad{background:#3d1010;color:#ff7777;border-color:#7f1d1d}.digifort-row{display:grid;grid-template-columns:16px 1fr auto;gap:10px;align-items:center;border:1px solid #7f1d1d;background:#190f16;border-radius:10px;padding:10px;margin-top:8px}.digifort-row i{width:12px;height:12px;border-radius:50%;background:#ff4040;box-shadow:0 0 12px #ff404088}.digifort-row b{color:#fff}.digifort-row small{display:block;color:#ffb4b4;margin-top:3px}.digifort-ok{border:1px solid #0f6b4c;background:#052b25;border-radius:10px;padding:11px;color:#16e58f}.digifort-ok p{margin:4px 0 0;color:#bdebd6;font-size:12px}.digifort-mini{color:#ffb4b4;font-size:11px;display:block;margin-top:4px;max-width:230px}
