/* ============================================================================
   RA.SMPP.WWW — Tema espacial basado en XENESIS / llab.vstelecom.cl
   ============================================================================ */

@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=Space+Grotesk:wght@500;600;700;800&display=swap');

:root {
  --bg:     #04070e;
  --bg2:    #070c17;
  --panel:  rgba(15,23,42,.55);
  --panel2: rgba(10,16,28,.7);
  --border:  rgba(125,211,252,.14);
  --border2: rgba(34,197,94,.25);
  --text:   #eaf2fb;
  --muted:  #8aa0b8;
  --dim:    #5b6c81;
  --green:  #22c55e;
  --green2: #16a34a;
  --cyan:   #06b6d4;
  --cyan2:  #22d3ee;
  --sky:    #7dd3fc;
  --violet: #a78bfa;
  --magenta:#e879f9;
  --blue:   #2563eb;
  --red:    #ef4444;
  --orange: #f97316;
  --brand:  linear-gradient(120deg,#16a34a,#06b6d4 60%,#22d3ee);
  --glow-c: rgba(34,211,238,.5);
  --glow-g: rgba(34,197,94,.45);
  --maxw:   1340px;
}

/* ===== RESET ===== */
*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{
  background:var(--bg);
  color:var(--text);
  min-height:100vh;
  overflow-x:hidden;
  font-family:Inter,"Segoe UI",system-ui,sans-serif;
  -webkit-font-smoothing:antialiased;
  line-height:1.6;
  background-image:
    radial-gradient(1200px 700px at 78% -8%, rgba(34,197,94,.10), transparent 60%),
    radial-gradient(1000px 700px at 6% 8%,  rgba(6,182,212,.11), transparent 55%),
    radial-gradient(900px 800px at 50% 120%,rgba(167,139,250,.08),transparent 55%),
    linear-gradient(180deg,#04070e 0%,#060b16 60%,#04060d 100%);
}
a{color:inherit;text-decoration:none;}

/* ===== COSMOS BACKDROP ===== */
.cosmos{position:fixed;inset:0;z-index:-2;pointer-events:none;overflow:hidden;}
.stars{
  position:absolute;inset:-50%;
  background-image:
    radial-gradient(1.6px 1.6px at 20% 30%,#dff1ff,transparent),
    radial-gradient(1.4px 1.4px at 75% 65%,#bfe3ff,transparent),
    radial-gradient(1.2px 1.2px at 42% 80%,#a7d8ff,transparent),
    radial-gradient(1.7px 1.7px at 88% 22%,#eaf6ff,transparent),
    radial-gradient(1.1px 1.1px at 60% 12%,#cfeaff,transparent),
    radial-gradient(1.3px 1.3px at 12% 70%,#bfe3ff,transparent);
  background-repeat:repeat;background-size:540px 540px;opacity:.5;
  animation:drift 140s linear infinite;
}
.stars.two{background-size:340px 340px;opacity:.28;animation-duration:90s;animation-direction:reverse;}
.grid-floor{
  position:fixed;left:0;right:0;bottom:-10%;height:46vh;z-index:-2;pointer-events:none;
  background:
    linear-gradient(transparent,rgba(6,182,212,.04)),
    repeating-linear-gradient(90deg,rgba(34,211,238,.08) 0 1px,transparent 1px 64px),
    repeating-linear-gradient(0deg, rgba(34,211,238,.06) 0 1px,transparent 1px 64px);
  transform:perspective(420px) rotateX(72deg);transform-origin:bottom;
  mask-image:linear-gradient(transparent,#000 60%);
}
@keyframes drift{to{transform:translate3d(-540px,-260px,0);}}

/* ===== NAVBAR ===== */
.navbar-smpp{
  position:sticky;top:0;z-index:100;
  backdrop-filter:blur(16px);
  background:linear-gradient(180deg,rgba(4,7,14,.88),rgba(4,7,14,.45));
  border-bottom:1px solid var(--border);
  padding:0 24px;
  height:64px;
  display:flex;align-items:center;justify-content:space-between;
}
.brand{display:flex;align-items:center;gap:12px;font-family:"Space Grotesk",Inter,sans-serif;}
.brand-mark{
  width:36px;height:36px;border-radius:10px;
  background:var(--brand);
  position:relative;
  box-shadow:0 0 22px -4px var(--glow-c);
  display:grid;place-items:center;
}
.brand-mark i{color:#04130c;font-size:18px;}
.brand b{font-size:19px;font-weight:800;letter-spacing:2px;background:var(--brand);-webkit-background-clip:text;background-clip:text;color:transparent;}
.brand small{color:var(--muted);font-size:10px;letter-spacing:3px;display:block;margin-top:-3px;}
.nav-status{display:flex;align-items:center;gap:18px;}
.badge-live-inline{display:inline-flex;align-items:center;gap:7px;font-size:12px;color:var(--green);}
.badge-live-inline::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 10px var(--green);animation:pulse 1.8s infinite;}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(34,197,94,.5);}70%{box-shadow:0 0 0 9px rgba(34,197,94,0);}100%{box-shadow:0 0 0 0;}}
.btn-nav{
  display:inline-flex;align-items:center;gap:8px;
  background:rgba(34,211,238,.06);
  border:1px solid var(--border2);
  color:var(--text);
  border-radius:10px;padding:8px 15px;font-size:13px;font-weight:600;
  cursor:pointer;font-family:inherit;transition:.18s;
}
.btn-nav:hover{border-color:var(--cyan2);box-shadow:0 0 22px -8px var(--glow-c);}

/* ===== LAYOUT ===== */
.layout{display:flex;min-height:calc(100vh - 64px);}

/* ===== SIDEBAR ===== */
.sidebar{
  width:220px;min-width:220px;
  border-right:1px solid var(--border);
  background:linear-gradient(180deg,rgba(4,7,14,.6),rgba(4,7,14,.4));
  backdrop-filter:blur(8px);
  padding:20px 12px;
  display:flex;flex-direction:column;gap:4px;
}
.sidebar-label{
  font-size:10px;letter-spacing:2.5px;text-transform:uppercase;
  color:var(--dim);padding:14px 10px 6px;
}
.sidebar-link{
  display:flex;align-items:center;gap:10px;
  color:var(--muted);font-size:13.5px;font-weight:500;
  padding:9px 12px;border-radius:10px;
  transition:.15s;position:relative;
}
.sidebar-link:hover{color:var(--text);background:rgba(34,211,238,.06);}
.sidebar-link.active{color:var(--cyan2);background:rgba(34,211,238,.1);}
.sidebar-link.active::before{
  content:"";position:absolute;left:0;top:20%;bottom:20%;
  width:2px;border-radius:2px;background:var(--brand);
}
.sidebar-link i{font-size:16px;}
.sidebar-link .badge-count{
  margin-left:auto;background:rgba(34,197,94,.15);
  color:var(--green);font-size:11px;font-weight:700;
  padding:1px 7px;border-radius:20px;
}
.sidebar-divider{border:none;border-top:1px solid var(--border);margin:8px 0;}

/* ===== MAIN CONTENT ===== */
.main{flex:1;min-width:0;padding:28px 32px;overflow-y:auto;}

/* ===== PAGE HEADER ===== */
.page-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:28px;gap:16px;flex-wrap:wrap;}
.page-title{font-family:"Space Grotesk",Inter,sans-serif;font-size:26px;font-weight:800;letter-spacing:-.5px;margin-bottom:4px;}
.page-sub{color:var(--muted);font-size:13.5px;}
.eyebrow{
  display:inline-flex;align-items:center;gap:9px;
  font-family:"Space Grotesk",Inter,sans-serif;
  font-size:11px;letter-spacing:3px;text-transform:uppercase;color:var(--cyan2);
  border:1px solid var(--border);background:rgba(34,211,238,.06);
  border-radius:30px;padding:5px 13px;margin-bottom:8px;
}
.eyebrow::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--green);box-shadow:0 0 8px var(--green);}

/* ===== BTN PRIMARY ===== */
.btn-primary-smpp{
  display:inline-flex;align-items:center;gap:9px;
  font-weight:700;font-size:13.5px;
  border-radius:11px;padding:11px 22px;
  cursor:pointer;border:none;font-family:inherit;transition:.18s;
  background:var(--brand);color:#04130c;
  box-shadow:0 8px 30px -10px var(--glow-c);
  white-space:nowrap;
}
.btn-primary-smpp:hover{filter:brightness(1.1);transform:translateY(-2px);box-shadow:0 14px 40px -10px var(--glow-c);}

/* ===== KPI CARDS ===== */
.kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:16px;}
.kpi-grid-sm{display:flex;gap:12px;margin-bottom:24px;}
.kpi-sm{flex:0 0 calc(12.5% - 6px);min-width:120px;padding:12px 14px !important;border-radius:14px !important;}
.kpi-sm .kpi-icon{width:26px;height:26px;border-radius:8px;font-size:13px;margin-bottom:8px;}
.kpi-sm .kpi-label{font-size:10px;letter-spacing:1.5px;margin-bottom:4px;}
.kpi-sm .kpi-value{font-size:22px;margin-bottom:3px;}
.kpi-sm .kpi-trend{font-size:10px;}
.kpi{
  position:relative;
  background:var(--panel);border:1px solid var(--border);
  border-radius:18px;padding:20px 22px;
  backdrop-filter:blur(8px);overflow:hidden;
  transition:.2s;
}
.kpi::before{
  content:"";position:absolute;inset:0 auto 0 0;width:3px;
  background:var(--kpi-color,var(--cyan2));opacity:.9;
}
.kpi:hover{transform:translateY(-4px);border-color:var(--kpi-color,var(--cyan2));box-shadow:0 18px 40px -18px rgba(0,0,0,.6);}
.kpi-icon{
  width:44px;height:44px;border-radius:12px;display:grid;place-items:center;
  background:rgba(34,211,238,.07);border:1px solid var(--border);
  font-size:20px;margin-bottom:14px;
}
.kpi-label{font-size:11px;text-transform:uppercase;letter-spacing:2px;color:var(--muted);margin-bottom:6px;}
.kpi-value{font-family:"Space Grotesk",Inter;font-size:30px;font-weight:800;line-height:1;margin-bottom:6px;}
.kpi-trend{font-size:12px;display:flex;align-items:center;gap:5px;}
.trend-up{color:var(--green);}
.trend-down{color:var(--red);}
.trend-warn{color:var(--orange);}
.gradient-text{background:var(--brand);-webkit-background-clip:text;background-clip:text;color:transparent;}

/* ===== CARDS ===== */
.card-smpp{
  background:var(--panel);
  border:1px solid var(--border);
  border-radius:18px;
  backdrop-filter:blur(8px);
  overflow:hidden;
}
.card-header-smpp{
  display:flex;align-items:center;justify-content:space-between;
  padding:14px 20px;
  border-bottom:1px solid var(--border);
  background:rgba(4,7,14,.3);
}
.card-title{font-family:"Space Grotesk",Inter;font-size:14px;font-weight:700;display:flex;align-items:center;gap:8px;}
.card-title i{color:var(--cyan2);}
.card-body-smpp{padding:20px;}

/* ===== TABLES ===== */
.table-smpp{width:100%;border-collapse:collapse;font-size:13px;}
.table-smpp thead tr{background:rgba(4,7,14,.5);}
.table-smpp th{
  padding:10px 14px;text-align:left;
  font-size:11px;text-transform:uppercase;letter-spacing:1.5px;
  color:var(--muted);font-weight:600;
  border-bottom:1px solid var(--border);
}
.table-smpp td{
  padding:11px 14px;border-bottom:1px solid rgba(125,211,252,.06);
  color:var(--text);vertical-align:middle;
}
.table-smpp tr:last-child td{border-bottom:none;}
.table-smpp tbody tr{transition:.12s;}
.table-smpp tbody tr:hover{background:rgba(34,211,238,.04);}
code.ip{background:rgba(34,211,238,.08);color:var(--sky);border-radius:6px;padding:2px 8px;font-size:12px;}

/* ===== BADGES ===== */
.badge-smpp{
  display:inline-flex;align-items:center;gap:5px;
  font-size:11.5px;font-weight:600;border-radius:20px;padding:3px 10px;
}
.badge-ok    {background:rgba(34,197,94,.15); color:var(--green);}
.badge-warn  {background:rgba(249,115,22,.15);color:var(--orange);}
.badge-err   {background:rgba(239,68,68,.15); color:var(--red);}
.badge-info  {background:rgba(34,211,238,.12);color:var(--cyan2);}
.badge-smpp i{font-size:7px;}

/* ===== LOG PANEL ===== */
.log-wrap{height:300px;overflow-y:auto;background:rgba(4,7,14,.7);font-family:'Courier New',monospace;font-size:12px;line-height:1.8;padding:14px 16px;}
.log-line{border-bottom:1px solid rgba(125,211,252,.04);padding:1px 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.log-wrap::-webkit-scrollbar{width:4px;}
.log-wrap::-webkit-scrollbar-track{background:transparent;}
.log-wrap::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px;}
.log-ts{color:var(--dim);}
.log-ok   {color:var(--green);}
.log-warn {color:var(--orange);}
.log-err  {color:var(--red);}
.log-dbg  {color:var(--sky);}

/* ===== CHART CONTAINER ===== */
.chart-area{padding:8px 16px 4px;}

/* ===== GRID LAYOUTS ===== */
.row-grid{display:grid;gap:20px;margin-bottom:20px;}
.col-7-5{grid-template-columns:7fr 5fr;}
.col-2{grid-template-columns:1fr 1fr;}
.col-3{grid-template-columns:1fr 1fr 1fr;}

/* ===== SEARCH / FILTER BAR ===== */
.filter-bar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;}
.input-smpp{
  background:rgba(4,7,14,.8);border:1px solid var(--border);
  color:var(--text);border-radius:10px;padding:8px 13px;
  font-family:inherit;font-size:13px;outline:none;transition:.15s;
}
.input-smpp:focus{border-color:var(--cyan2);box-shadow:0 0 0 3px rgba(34,211,238,.1);}
.btn-outline-smpp{
  background:rgba(34,211,238,.05);border:1px solid var(--border);
  color:var(--muted);border-radius:10px;padding:8px 14px;
  font-size:13px;font-weight:500;cursor:pointer;font-family:inherit;transition:.15s;
  display:inline-flex;align-items:center;gap:7px;
}
.btn-outline-smpp:hover{border-color:var(--cyan2);color:var(--cyan2);}

/* ===== PAGINATION ===== */
.pagination-smpp{display:flex;gap:4px;align-items:center;}
.page-btn{
  width:32px;height:32px;border-radius:8px;border:1px solid var(--border);
  background:transparent;color:var(--muted);font-size:13px;cursor:pointer;
  display:grid;place-items:center;transition:.15s;font-family:inherit;
}
.page-btn:hover{border-color:var(--cyan2);color:var(--cyan2);}
.page-btn.active{background:var(--brand);border-color:transparent;color:#04130c;font-weight:700;}

/* ===== FOOTER ===== */
.footer-smpp{
  border-top:1px solid var(--border);
  background:linear-gradient(180deg,transparent,rgba(4,7,14,.6));
  padding:14px 32px;
  display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px;
}
.footer-smpp span{color:var(--dim);font-size:12.5px;}

/* ===== SCROLLBAR GLOBAL ===== */
*{scrollbar-width:thin;scrollbar-color:var(--border) transparent;}

/* ===== RESPONSIVE ===== */
@media(max-width:1100px){
  .kpi-grid{grid-template-columns:repeat(2,1fr);}
  .col-7-5{grid-template-columns:1fr;}
}
@media(max-width:768px){
  .sidebar{display:none;}
  .main{padding:16px;}
  .kpi-grid{grid-template-columns:1fr 1fr;}
  .col-2,.col-3{grid-template-columns:1fr;}
}
@media(max-width:480px){
  .kpi-grid{grid-template-columns:1fr;}
}
