/* StatusFlow — Panel público */
:root{
  --accent:#5b8def;
  --nodata:#3a3f4b;
  --radius:16px;
}
[data-theme="dark"]{
  --bg:#0b0d12;
  --bg-soft:#12151c;
  --card:#13161e;
  --card-2:#161a23;
  --border:rgba(255,255,255,.07);
  --border-strong:rgba(255,255,255,.12);
  --text:#e9edf5;
  --muted:#8a92a6;
  --faint:#5b6478;
  --nodata:#2a2f3a;
}
[data-theme="light"]{
  --bg:#f4f6fb;
  --bg-soft:#eef1f7;
  --card:#ffffff;
  --card-2:#f7f9fd;
  --border:rgba(10,15,30,.08);
  --border-strong:rgba(10,15,30,.14);
  --text:#141925;
  --muted:#5a6478;
  --faint:#9aa3b5;
  --nodata:#dfe4ee;
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:'Sora',system-ui,sans-serif;
  background:var(--bg);
  color:var(--text);
  line-height:1.5;
  min-height:100vh;
  -webkit-font-smoothing:antialiased;
  position:relative;
  overflow-x:hidden;
}

/* fondo atmosférico */
.ambient{
  position:fixed;inset:0;z-index:0;pointer-events:none;
  background:
    radial-gradient(60vw 50vh at 80% -10%, color-mix(in srgb, var(--accent) 22%, transparent), transparent 70%),
    radial-gradient(50vw 40vh at -10% 10%, color-mix(in srgb, var(--accent) 12%, transparent), transparent 70%);
  opacity:.7;
}

.wrap{max-width:880px;margin:0 auto;padding:0 22px 80px;position:relative;z-index:1}

/* Topbar */
.topbar{
  max-width:880px;margin:0 auto;padding:26px 22px 14px;
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  position:relative;z-index:1;
}
.brand{display:flex;align-items:center;gap:14px}
.brand-logo{height:46px;width:auto;border-radius:10px}
.brand-mark{
  display:grid;place-items:center;width:46px;height:46px;border-radius:12px;
  background:linear-gradient(135deg,var(--accent),color-mix(in srgb,var(--accent) 40%, #000));
  color:#fff;font-size:20px;box-shadow:0 8px 24px -8px var(--accent);
}
.brand-text h1{font-size:19px;font-weight:700;letter-spacing:-.02em}
.brand-text p{font-size:13px;color:var(--muted)}
.topbar-actions{display:flex;gap:8px;align-items:center}
.ghost-btn{
  border:1px solid var(--border);background:var(--card);color:var(--muted);
  padding:8px 14px;border-radius:10px;font-size:13px;font-weight:600;
  cursor:pointer;text-decoration:none;transition:.18s;
}
.ghost-btn:hover{color:var(--text);border-color:var(--border-strong);transform:translateY(-1px)}

/* Banner global */
.hero-banner{
  margin-top:18px;display:flex;align-items:center;gap:18px;
  padding:26px 28px;border-radius:var(--radius);
  background:
    linear-gradient(135deg, color-mix(in srgb, var(--banner) 16%, var(--card)), var(--card));
  border:1px solid color-mix(in srgb, var(--banner) 30%, var(--border));
  box-shadow:0 20px 50px -30px var(--banner);
}
.pulse-dot{
  width:14px;height:14px;border-radius:50%;background:var(--banner);flex:none;
  box-shadow:0 0 0 0 color-mix(in srgb, var(--banner) 60%, transparent);
  animation:pulse 2.2s infinite;
}
@keyframes pulse{
  0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--banner) 55%, transparent)}
  70%{box-shadow:0 0 0 14px transparent}
  100%{box-shadow:0 0 0 0 transparent}
}
.hero-text h2{font-size:22px;font-weight:700;letter-spacing:-.02em}
.hero-sub{font-size:13px;color:var(--muted)}

/* Etiquetas de sección */
.section-label{
  display:block;font-size:12px;font-weight:600;letter-spacing:.08em;
  text-transform:uppercase;color:var(--faint);margin:36px 0 14px;
}

/* Uptime head + leyenda */
.uptime-head{display:flex;align-items:flex-end;justify-content:space-between;flex-wrap:wrap;gap:10px}
.uptime-head .section-label{margin-bottom:6px}
.legend{display:flex;flex-wrap:wrap;gap:14px;margin-bottom:6px}
.legend-item{display:flex;align-items:center;gap:6px;font-size:11.5px;color:var(--muted)}
.legend-item i{width:9px;height:9px;border-radius:3px;display:inline-block}

/* Componentes */
.group-title{font-size:15px;font-weight:700;margin:26px 0 8px;color:var(--text)}
.component-row{
  background:var(--card);border:1px solid var(--border);border-radius:var(--radius);
  padding:18px 20px;margin-bottom:12px;transition:.2s;
}
.component-row:hover{border-color:var(--border-strong)}
.component-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}
.component-name{display:flex;align-items:center;gap:10px;font-weight:600;font-size:15px;flex-wrap:wrap}
.status-dot{width:9px;height:9px;border-radius:50%;flex:none}
.comp-desc{font-size:12.5px;color:var(--faint);font-weight:400}
.component-status{font-size:13px;font-weight:600;white-space:nowrap}

/* Barra de uptime */
.uptime-bar{display:flex;gap:2px;height:34px;align-items:stretch}
.tick{
  flex:1 1 0;min-width:0;border-radius:2px;background:var(--tc);
  opacity:.92;transition:transform .12s, opacity .12s;position:relative;cursor:default;
}
.tick:hover{transform:scaleY(1.12);opacity:1}
.tick[data-tip]:hover::after{
  content:attr(data-tip);
  position:absolute;bottom:calc(100% + 8px);left:50%;transform:translateX(-50%);
  background:#000;color:#fff;font-size:11px;font-family:'JetBrains Mono',monospace;
  padding:6px 9px;border-radius:7px;white-space:nowrap;z-index:5;
  box-shadow:0 8px 20px -6px rgba(0,0,0,.5);
}
.uptime-foot{
  display:flex;justify-content:space-between;align-items:center;
  margin-top:9px;font-size:11.5px;color:var(--faint);font-family:'JetBrains Mono',monospace;
}
.uptime-pct{color:var(--muted);font-weight:500}

/* Incidentes */
.incident-card{
  background:var(--card);border:1px solid var(--border);border-radius:var(--radius);
  padding:18px 20px;margin-bottom:12px;
}
.incident-card.live{border-color:color-mix(in srgb,#e67e22 35%,var(--border))}
.incident-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:6px}
.incident-head h4{font-size:16px;font-weight:700;flex:1;min-width:160px}
.impact-pill{
  font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;
  padding:4px 10px;border-radius:20px;color:#fff;background:var(--c,#888);
}
.resolved-pill{background:#2ecc71}
.incident-state{font-size:12.5px;color:var(--muted);font-weight:600}
.affected{font-size:12.5px;color:var(--muted);margin:8px 0;display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.chip{background:var(--card-2);border:1px solid var(--border);padding:3px 9px;border-radius:8px;font-size:11.5px}
.timeline{list-style:none;margin-top:12px;border-left:2px solid var(--border);padding-left:16px;display:flex;flex-direction:column;gap:14px}
.timeline li{position:relative}
.timeline li::before{content:"";position:absolute;left:-22px;top:5px;width:8px;height:8px;border-radius:50%;background:var(--accent)}
.t-status{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--accent)}
.timeline p{font-size:14px;margin:3px 0;color:var(--text)}
.timeline time{font-size:11.5px;color:var(--faint);font-family:'JetBrains Mono',monospace}
.resolved-body{font-size:14px;color:var(--muted);margin-top:6px}
.incident-card.resolved time{font-size:11.5px;color:var(--faint);font-family:'JetBrains Mono',monospace}

.empty{
  background:var(--card);border:1px dashed var(--border-strong);border-radius:var(--radius);
  padding:40px;text-align:center;color:var(--muted)
}
.empty a{color:var(--accent)}

.page-footer{
  margin-top:50px;padding-top:24px;border-top:1px solid var(--border);
  display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px;
  font-size:12.5px;color:var(--faint)
}
.powered strong{color:var(--muted)}

@media(max-width:560px){
  .hero-text h2{font-size:18px}
  .component-status{font-size:12px}
  .uptime-bar{height:30px}
}
