:root{
  --bg:#05080d;
  --bg2:#07111a;
  --panel:#0b121c;
  --panel2:#0e1824;
  --line:#182b3d;
  --cyan:#19c8df;
  --cyan2:#6de9f7;
  --green:#4be3ad;
  --text:#f2f7fb;
  --muted:#8192a5;
  --danger:#ff6577;
  --warning:#ffc857;
  --shadow:0 24px 70px rgba(0,0,0,.42);
}

*{box-sizing:border-box}

html,body{
  margin:0;
  min-height:100%;
  background:
    radial-gradient(circle at 15% 10%,rgba(25,200,223,.11),transparent 28%),
    radial-gradient(circle at 90% 90%,rgba(75,227,173,.07),transparent 30%),
    var(--bg);
  color:var(--text);
  font-family:Inter,Segoe UI,Arial,sans-serif;
}

a{text-decoration:none;color:inherit}

.pulse-login-shell{
  min-height:100vh;
  display:grid;
  place-items:center;
  padding:28px;
  position:relative;
  overflow:hidden;
}

.pulse-login-shell:before,
.pulse-login-shell:after{
  content:"";
  position:absolute;
  border-radius:999px;
  filter:blur(70px);
  pointer-events:none;
}

.pulse-login-shell:before{
  width:360px;height:360px;
  background:rgba(25,200,223,.11);
  left:-130px;top:-100px;
}

.pulse-login-shell:after{
  width:320px;height:320px;
  background:rgba(75,227,173,.07);
  right:-100px;bottom:-100px;
}

.pulse-login{
  width:min(460px,100%);
  background:linear-gradient(180deg,rgba(14,24,36,.96),rgba(8,14,22,.98));
  border:1px solid rgba(109,233,247,.16);
  border-radius:26px;
  padding:38px;
  box-shadow:var(--shadow);
  position:relative;
  z-index:2;
}

.pulse-mark{
  width:58px;height:58px;
  border-radius:18px;
  display:grid;
  place-items:center;
  font-size:24px;
  font-weight:900;
  color:#031116;
  background:linear-gradient(135deg,var(--cyan2),var(--green));
  box-shadow:0 0 38px rgba(25,200,223,.25);
  margin-bottom:24px;
}

.pulse-eyebrow{
  color:var(--cyan);
  font-size:11px;
  letter-spacing:2.2px;
  font-weight:800;
  text-transform:uppercase;
}

.pulse-login h1{
  margin:8px 0 8px;
  font-size:30px;
  letter-spacing:-1px;
}

.pulse-login p{
  margin:0 0 28px;
  color:var(--muted);
  line-height:1.6;
}

.pulse-field{margin:15px 0}

.pulse-field label{
  display:block;
  color:#a9b7c6;
  font-size:12px;
  font-weight:700;
  margin-bottom:8px;
}

.pulse-field input,
.pulse-field select,
.pulse-field textarea,
.pulse-input{
  width:100%;
  border:1px solid var(--line);
  background:#07101a;
  color:var(--text);
  border-radius:12px;
  padding:13px 14px;
  outline:none;
  transition:.2s;
}

.pulse-field input:focus,
.pulse-field select:focus,
.pulse-field textarea:focus,
.pulse-input:focus{
  border-color:var(--cyan);
  box-shadow:0 0 0 3px rgba(25,200,223,.08);
}

.pulse-btn{
  border:0;
  border-radius:12px;
  padding:13px 18px;
  font-weight:800;
  cursor:pointer;
  background:linear-gradient(135deg,var(--cyan),#2ad7c5);
  color:#031116;
  transition:.2s;
}

.pulse-btn:hover{transform:translateY(-1px)}

.pulse-btn.block{width:100%;margin-top:8px}

.pulse-security{
  display:flex;
  gap:9px;
  align-items:center;
  margin-top:22px;
  color:#72859a;
  font-size:11px;
}

.admin-shell{
  min-height:100vh;
  display:grid;
  grid-template-columns:260px minmax(0,1fr);
}

.admin-side{
  position:sticky;
  top:0;
  height:100vh;
  border-right:1px solid var(--line);
  background:rgba(6,11,17,.96);
  padding:24px 17px;
  overflow:auto;
}

.admin-logo{
  display:flex;
  gap:12px;
  align-items:center;
  padding:4px 8px 24px;
}

.admin-logo .icon{
  width:42px;height:42px;
  border-radius:13px;
  display:grid;
  place-items:center;
  font-weight:900;
  color:#031116;
  background:linear-gradient(135deg,var(--cyan2),var(--green));
}

.admin-logo strong{display:block}
.admin-logo small{color:var(--muted)}

.admin-nav-title{
  color:#526579;
  font-size:10px;
  font-weight:800;
  letter-spacing:1.6px;
  margin:18px 10px 8px;
}

.admin-nav a{
  display:flex;
  align-items:center;
  gap:11px;
  padding:11px 12px;
  margin:4px 0;
  border-radius:11px;
  color:#93a4b6;
  font-size:13px;
  font-weight:650;
}

.admin-nav a:hover,
.admin-nav a.active{
  background:rgba(25,200,223,.08);
  color:var(--cyan2);
}

.admin-main{
  min-width:0;
  padding:26px 30px 50px;
}

.admin-top{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:20px;
  margin-bottom:26px;
}

.admin-top h1{
  margin:0;
  font-size:26px;
}

.admin-top p{
  margin:6px 0 0;
  color:var(--muted);
  font-size:13px;
}

.admin-status{
  display:flex;
  gap:8px;
  align-items:center;
  color:var(--green);
  font-size:12px;
  font-weight:700;
}

.admin-status:before{
  content:"";
  width:8px;height:8px;
  border-radius:50%;
  background:var(--green);
  box-shadow:0 0 14px var(--green);
}

.stat-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:14px;
  margin-bottom:22px;
}

.stat-card,
.pulse-card{
  background:linear-gradient(180deg,rgba(14,24,36,.95),rgba(9,16,25,.96));
  border:1px solid var(--line);
  border-radius:17px;
  box-shadow:0 12px 32px rgba(0,0,0,.18);
}

.stat-card{padding:18px}

.stat-label{
  color:var(--muted);
  font-size:11px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.7px;
}

.stat-value{
  font-size:27px;
  font-weight:850;
  margin-top:8px;
}

.pulse-card{
  padding:20px;
  margin-bottom:18px;
}

.pulse-card h2{
  font-size:15px;
  margin:0 0 17px;
}

.pulse-table-wrap{
  overflow:auto;
  border:1px solid var(--line);
  border-radius:13px;
}

.pulse-table{
  width:100%;
  border-collapse:collapse;
  min-width:720px;
}

.pulse-table th{
  text-align:left;
  padding:12px;
  color:#718398;
  font-size:10px;
  text-transform:uppercase;
  letter-spacing:.7px;
  border-bottom:1px solid var(--line);
}

.pulse-table td{
  padding:13px 12px;
  border-bottom:1px solid rgba(24,43,61,.65);
  color:#d9e4ed;
  font-size:12px;
}

.pulse-table tr:last-child td{border-bottom:0}

.badge{
  display:inline-flex;
  align-items:center;
  border-radius:999px;
  padding:5px 9px;
  font-size:10px;
  font-weight:800;
}

.badge.ok{
  color:var(--green);
  background:rgba(75,227,173,.09);
}

.badge.off{
  color:#8b9aac;
  background:rgba(139,154,172,.08);
}

.badge.warn{
  color:var(--warning);
  background:rgba(255,200,87,.08);
}

.client-setting-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
}

.client-setting-grid .wide{
  grid-column:1/-1;
}

.pulse-note{
  padding:12px 14px;
  border:1px solid rgba(25,200,223,.16);
  background:rgba(25,200,223,.05);
  color:#9db0c1;
  border-radius:12px;
  font-size:12px;
  line-height:1.5;
}

@media(max-width:1000px){
  .stat-grid{grid-template-columns:repeat(2,1fr)}
}

@media(max-width:760px){
  .admin-shell{grid-template-columns:1fr}
  .admin-side{
    position:relative;
    height:auto;
    border-right:0;
    border-bottom:1px solid var(--line);
  }
  .admin-nav{
    display:flex;
    overflow:auto;
    gap:5px;
  }
  .admin-nav-title{display:none}
  .admin-nav a{white-space:nowrap}
  .admin-main{padding:20px 14px 40px}
  .client-setting-grid{grid-template-columns:1fr}
  .stat-grid{grid-template-columns:1fr 1fr}
}

@media(max-width:480px){
  .pulse-login{padding:26px 20px}
  .stat-grid{grid-template-columns:1fr}
}


/* ==========================================================
   PULSE.AI SIDEBAR ISOLATED V6
   NO modifica el dashboard.
   ========================================================== */

.pulse-sidebar{
    position:fixed;
    top:0;
    left:0;
    bottom:0;

    width:280px;
    height:100vh;

    box-sizing:border-box;

    display:flex;
    flex-direction:column;

    padding:22px 16px 17px;

    background:
        radial-gradient(
            circle at 15% 0%,
            rgba(32,199,216,.09),
            transparent 30%
        ),
        linear-gradient(
            180deg,
            #07131b 0%,
            #050b11 100%
        );

    border-right:1px solid #172735;

    box-shadow:
        12px 0 35px rgba(0,0,0,.20);

    z-index:1000;

    overflow:hidden;
}

.pulse-sidebar,
.pulse-sidebar *{
    box-sizing:border-box;
}


/* LOGO */

.pulse-sidebar .sidebar-brand{
    display:flex;
    align-items:center;
    gap:13px;

    padding:0 6px 19px;

    margin:0 0 14px;

    border-bottom:
        1px solid rgba(120,160,185,.13);
}

.pulse-sidebar .sidebar-logo{
    flex:0 0 44px;

    width:44px;
    height:44px;

    display:flex;
    align-items:center;
    justify-content:center;

    border-radius:13px;

    background:
        linear-gradient(
            135deg,
            #28d1dc,
            #159db7
        );

    color:#031116;

    font-size:21px;
    font-weight:900;

    box-shadow:
        0 8px 23px rgba(31,199,216,.20);
}

.pulse-sidebar .sidebar-brand-text{
    min-width:0;
}

.pulse-sidebar .sidebar-brand strong{
    display:block;

    color:#f4f9fc;

    font-size:17px;
    font-weight:800;

    line-height:1.1;

    letter-spacing:.2px;
}

.pulse-sidebar .sidebar-brand small{
    display:block;

    margin-top:5px;

    color:#668399;

    font-size:9px;
    font-weight:800;

    letter-spacing:1.7px;
}


/* CAPTION */

.pulse-sidebar .sidebar-caption{
    padding:4px 10px 10px;

    color:#5d788d;

    font-size:9px;
    font-weight:800;

    letter-spacing:1.6px;
}


/* SCROLL MENU */

.pulse-sidebar .sidebar-nav{
    flex:1 1 auto;

    min-height:0;

    display:flex;
    flex-direction:column;

    gap:5px;

    padding:0 2px 12px;

    margin:0;

    overflow-x:hidden;
    overflow-y:auto;

    scrollbar-width:thin;
    scrollbar-color:#1c3a4c transparent;
}

.pulse-sidebar .sidebar-nav::-webkit-scrollbar{
    width:5px;
}

.pulse-sidebar .sidebar-nav::-webkit-scrollbar-track{
    background:transparent;
}

.pulse-sidebar .sidebar-nav::-webkit-scrollbar-thumb{
    background:#1c3a4c;
    border-radius:20px;
}


/* BOTONES */

.pulse-sidebar .nav-item{
    flex:0 0 auto;

    width:100%;
    min-height:44px;

    display:flex;
    align-items:center;

    gap:11px;

    padding:7px 10px;

    margin:0;

    border:
        1px solid transparent;

    border-radius:11px;

    background:transparent;

    color:#9eb4c5;

    text-decoration:none;

    font-size:13px;
    font-weight:600;

    line-height:1.2;

    transition:
        background .18s ease,
        border-color .18s ease,
        color .18s ease,
        transform .18s ease;
}

.pulse-sidebar .nav-label{
    display:block;

    min-width:0;

    white-space:normal;
}


/* ICONOS */

.pulse-sidebar .nav-icon{
    flex:0 0 30px;

    width:30px;
    height:30px;

    display:flex;
    align-items:center;
    justify-content:center;

    border-radius:8px;

    border:
        1px solid #193040;

    background:#0c1b26;

    color:#6f94aa;

    font-size:14px;
    font-weight:700;
}


/* HOVER */

.pulse-sidebar .nav-item:hover{
    background:#0c1924;

    border-color:#193447;

    color:#f2f8fb;

    transform:translateX(2px);
}

.pulse-sidebar .nav-item:hover .nav-icon{
    background:#0c2530;

    border-color:#1b5360;

    color:#29ceda;
}


/* ACTIVO */

.pulse-sidebar .nav-item.active{
    background:
        linear-gradient(
            90deg,
            rgba(32,199,216,.18),
            rgba(32,199,216,.05)
        );

    border-color:
        rgba(39,205,218,.28);

    color:#f5fbfd;

    box-shadow:
        inset 3px 0 0 #25cad7;
}

.pulse-sidebar .nav-item.active .nav-icon{
    background:
        linear-gradient(
            135deg,
            #29d1dc,
            #159db6
        );

    border-color:transparent;

    color:#031116;
}


/* LOGOUT */

.pulse-sidebar .sidebar-bottom{
    flex:0 0 auto;

    padding:12px 2px 0;

    border-top:
        1px solid rgba(120,160,185,.13);
}

.pulse-sidebar .logout-item{
    color:#839bab;
}


/*
   FIN SIDEBAR.

   INTENCIONALMENTE NO EXISTEN REGLAS
   PARA EL DASHBOARD DESPUÉS DE ESTE PUNTO.
*/



/* ==========================================================
   PULSE.AI ADMIN GRID FIX V7

   El layout original usa:
   .admin-shell = grid

   Por eso el sidebar DEBE permanecer dentro del grid.
   Conservamos todo el diseño premium del menú,
   pero anulamos únicamente position:fixed.
   ========================================================== */

@media (min-width:761px){

    .pulse-sidebar{
        position:sticky !important;

        top:0 !important;
        left:auto !important;
        right:auto !important;
        bottom:auto !important;

        width:100% !important;
        min-width:0 !important;
        max-width:none !important;

        height:100vh !important;

        align-self:start !important;

        grid-column:1 !important;
        grid-row:1 !important;
    }

    .admin-main{
        grid-column:2 !important;
        grid-row:1 !important;

        min-width:0 !important;

        margin-left:0 !important;

        width:auto !important;
        max-width:none !important;
    }
}


/* MOBILE: recuperar comportamiento responsive original */

@media (max-width:760px){

    .pulse-sidebar{
        position:relative !important;

        top:auto !important;
        left:auto !important;
        right:auto !important;
        bottom:auto !important;

        width:100% !important;
        min-width:0 !important;
        max-width:none !important;

        height:auto !important;

        grid-column:auto !important;
        grid-row:auto !important;
    }

    .admin-main{
        grid-column:auto !important;
        grid-row:auto !important;

        width:100% !important;
        min-width:0 !important;

        margin-left:0 !important;
    }
}

