/* ── identidade cromática do painel: ciano/azul técnico, separado do
   violeta-rosa do site principal (aurora herdada de styles.css) ──── */
.aurora::before{ background:radial-gradient(circle, #06b6d4 0%, transparent 70%); }
.aurora::after{ background:radial-gradient(circle, #3b82f6 0%, transparent 70%); }
.aurora .blob3{ background:radial-gradient(circle, #2dd4bf 0%, transparent 70%); }

/* ── painel /adm — app shell de altura cheia ────────────────────── */
.adm-app{
  display:flex;
  align-items:stretch;
  min-height:100vh;
}

.adm-sidebar{
  width:264px;
  flex-shrink:0;
  position:sticky;
  top:0;
  align-self:flex-start;
  height:100vh;
  overflow-y:auto;
  display:flex;
  flex-direction:column;
  background:linear-gradient(180deg, rgba(13,13,21,0.98), rgba(7,7,12,0.99));
  border-right:1px solid var(--card-border);
  padding:20px 16px 18px;
  transition:width .25s ease, padding .25s ease;
}
.adm-sidebar.collapsed{ width:80px; padding:20px 12px 18px; }

.adm-brand{
  position:relative;
  display:flex;
  align-items:center;
  gap:10px;
  padding:0 2px 18px;
  margin-bottom:14px;
  border-bottom:1px solid rgba(255,255,255,0.07);
}
.adm-sidebar.collapsed .adm-brand{ justify-content:center; }
.adm-brand-mark{
  display:flex; align-items:center; justify-content:center; flex-shrink:0;
  width:34px; height:34px; border-radius:10px;
  background:linear-gradient(135deg,#06b6d4,#3b82f6);
  box-shadow:0 4px 14px -4px rgba(59,130,246,0.55);
  color:#fff; font-family:'Space Grotesk',sans-serif; font-weight:800; font-size:1rem;
  text-decoration:none;
}
.adm-brand-text{ min-width:0; }
.adm-sidebar.collapsed .adm-brand-text{ display:none; }
.adm-brand-name{ margin:0; font-size:0.92rem; font-weight:700; color:var(--ink); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.adm-brand-sub{ margin:0; font-size:0.72rem; color:var(--ink-faint); white-space:nowrap; }

.adm-collapse-btn{
  display:flex; align-items:center; justify-content:center;
  width:24px; height:24px; border-radius:8px; flex-shrink:0;
  background:rgba(255,255,255,0.05); border:none; color:var(--ink-faint);
  cursor:pointer; transition:background .2s, color .2s;
  margin-left:auto;
}
.adm-collapse-btn:hover{ background:rgba(255,255,255,0.09); color:var(--ink); }
.adm-collapse-btn svg{ display:block; transition:transform .25s ease; }
.adm-sidebar.collapsed .adm-collapse-btn svg{ transform:rotate(180deg); }
.adm-sidebar.collapsed .adm-collapse-btn{
  position:absolute; top:5px; right:-12px; margin-left:0;
  background:#0d0d14; border:1px solid var(--card-border);
}

.adm-eyebrow{
  margin:0 0 8px 2px;
  font-size:0.68rem;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:0.09em;
  color:var(--ink-faint);
  white-space:nowrap;
}
.adm-sidebar.collapsed .adm-eyebrow{ display:none; }

.adm-sidebar nav{ display:flex; flex-direction:column; gap:2px; margin-bottom:auto; }
.adm-sidebar nav a{
  position:relative;
  display:flex;
  align-items:center;
  gap:12px;
  padding:9px 10px 9px 14px;
  border-radius:12px;
  color:var(--ink-dim);
  text-decoration:none;
  font-size:0.91rem;
  font-weight:600;
  transition:background .2s, color .2s;
}
.adm-sidebar nav a::before{
  content:'';
  position:absolute; left:0; top:50%; translate:0 -50%;
  width:3px; height:0; border-radius:999px;
  background:var(--nav-accent, var(--ink));
  transition:height .2s ease;
}
.adm-sidebar nav a.active::before{ height:20px; }
.adm-sidebar nav a:hover{ background:rgba(255,255,255,0.05); color:var(--ink); }
.adm-sidebar nav a.active{
  color:#fff;
  background:linear-gradient(135deg, rgba(6,182,212,0.32), rgba(59,130,246,0.22));
  box-shadow:inset 0 0 0 1px rgba(255,255,255,0.08), 0 6px 18px -6px rgba(59,130,246,0.45);
}
.adm-nav-icon{
  display:flex; align-items:center; justify-content:center;
  width:30px; height:30px; border-radius:10px;
  font-size:0.94rem;
  background:rgba(255,255,255,0.06);
  flex-shrink:0;
  transition:background .2s, transform .2s;
}
.adm-sidebar nav a.active .adm-nav-icon{ background:rgba(255,255,255,0.18); }
.adm-sidebar nav a:hover .adm-nav-icon{ transform:translateY(-1px); }
.adm-nav-label{ white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }

.nav-cpu{ --nav-accent:#06b6d4; }
.nav-net{ --nav-accent:#3b82f6; }
.nav-mail{ --nav-accent:#f59e0b; }
.nav-user{ --nav-accent:#22c55e; }

.adm-sidebar.collapsed nav a{ justify-content:center; padding:9px 0; gap:0; }
.adm-sidebar.collapsed nav a::before{ display:none; }
.adm-sidebar.collapsed .adm-nav-label{ display:none; }

.adm-sidebar-footer{
  display:flex;
  flex-direction:column;
  gap:10px;
  padding-top:16px;
  margin-top:16px;
  border-top:1px solid rgba(255,255,255,0.07);
}
.adm-admin-chip{
  display:flex; align-items:center; gap:10px; padding:6px; border-radius:11px;
  text-decoration:none; transition:background .2s;
}
.adm-admin-chip:hover{ background:rgba(255,255,255,0.05); }
.adm-admin-avatar{
  display:flex; align-items:center; justify-content:center; flex-shrink:0;
  width:28px; height:28px; border-radius:50%;
  background:linear-gradient(135deg, #06b6d4, #3b82f6);
  color:#fff; font-size:0.72rem; font-weight:700;
}
.adm-admin-email{ font-size:0.8rem; color:var(--ink-dim); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.adm-sidebar.collapsed .adm-admin-chip{ justify-content:center; padding:6px 0; }
.adm-sidebar.collapsed .adm-admin-email{ display:none; }

.adm-logout{ width:100%; }
.adm-sidebar.collapsed .adm-logout{ padding:8px 4px; font-size:0.74rem; }

.adm-main{ flex:1; min-width:0; padding:34px 40px 100px; }

.adm-profile-card{
  max-width:480px;
  border-radius:var(--radius);
  background:var(--card);
  border:1px solid var(--card-border);
  padding:28px 30px;
}
.adm-profile-subhead{
  font-size:0.8rem; text-transform:uppercase; letter-spacing:0.05em;
  color:var(--ink-faint); font-weight:700; margin:26px 0 4px;
}
.adm-profile-hint{ font-size:0.82rem; color:var(--ink-dim); margin:0 0 14px; }

.adm-section-head{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:12px;
  flex-wrap:wrap;
  margin-bottom:24px;
}
.adm-section-head h1{ font-size:1.6rem; margin:0; font-weight:700; letter-spacing:-0.01em; }
.adm-refresh-note{
  display:inline-flex; align-items:center; gap:7px;
  font-size:0.78rem; color:var(--ink-faint);
}
.adm-live-dot{
  width:7px; height:7px; border-radius:50%;
  background:#4ade80;
  box-shadow:0 0 0 0 rgba(74,222,128,0.55);
  animation:adm-pulse 2s ease-out infinite;
}
@keyframes adm-pulse{
  0%{ box-shadow:0 0 0 0 rgba(74,222,128,0.45); }
  70%{ box-shadow:0 0 0 6px rgba(74,222,128,0); }
  100%{ box-shadow:0 0 0 0 rgba(74,222,128,0); }
}

.adm-subhead{
  font-family:'Inter',sans-serif;
  font-size:0.8rem;
  text-transform:uppercase;
  letter-spacing:0.05em;
  color:var(--ink-faint);
  font-weight:700;
  margin:36px 0 14px;
}

/* ── cards de métrica (mesma linguagem dos cards da home) ───────── */
.metrics-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(230px, 1fr));
  gap:16px;
}
.metric-card{
  position:relative;
  overflow:hidden;
  border-radius:var(--radius);
  background:var(--card);
  border:1px solid var(--card-border);
  padding:24px 26px;
  transition:transform .3s cubic-bezier(.2,.8,.2,1), border-color .3s;
}
.metric-card::before{
  content:'';
  position:absolute; inset:0; border-radius:inherit;
  opacity:0; transition:opacity .4s;
  background:radial-gradient(420px circle at var(--mx,50%) var(--my,50%), var(--glow), transparent 65%);
  pointer-events:none;
}
.metric-card:hover::before{ opacity:0.16; }
.metric-card:hover{ transform:translateY(-4px); border-color:rgba(255,255,255,0.2); }

.metric-card-top{ display:flex; align-items:center; gap:12px; margin-bottom:18px; position:relative; }
.metric-icon{
  width:40px; height:40px; border-radius:12px;
  display:flex; align-items:center; justify-content:center;
  font-size:1.2rem;
  flex-shrink:0;
}
.metric-card h3{
  font-size:0.78rem;
  text-transform:uppercase;
  letter-spacing:0.05em;
  color:var(--ink-faint);
  margin:0;
  font-weight:700;
}
.metric-value{
  font-family:'Space Grotesk',sans-serif;
  font-size:2.1rem;
  font-weight:700;
  line-height:1.1;
  margin-bottom:6px;
  position:relative;
}
.metric-sub{ font-size:0.82rem; color:var(--ink-dim); position:relative; }

.progress-track{
  margin-top:16px;
  height:7px;
  border-radius:999px;
  background:rgba(255,255,255,0.08);
  overflow:hidden;
  position:relative;
}
.progress-fill{
  height:100%;
  border-radius:999px;
  background:var(--metric-color, var(--accent-gestao));
  transition:width .5s ease;
}
.progress-fill.warn{ background:#f59e0b; }
.progress-fill.danger{ background:#f87171; }

/* ── tabela de processos pm2 ───────────────────────────────────── */
.adm-table-wrap{
  border-radius:var(--radius);
  background:var(--card);
  border:1px solid var(--card-border);
  overflow-x:auto;
}
.proc-table{ width:100%; border-collapse:collapse; font-size:0.88rem; white-space:nowrap; }
.proc-table th{
  text-align:left;
  padding:13px 16px;
  color:var(--ink-faint);
  font-size:0.72rem;
  text-transform:uppercase;
  letter-spacing:0.04em;
  border-bottom:1px solid var(--card-border);
}
.proc-table td{
  padding:13px 16px;
  border-bottom:1px solid rgba(255,255,255,0.05);
  color:var(--ink);
}
.proc-table tr:last-child td{ border-bottom:none; }
.proc-table tbody tr{ transition:background .15s; }
.proc-table tbody tr:hover{ background:rgba(255,255,255,0.03); }
.proc-name{ font-weight:600; }

.proc-status{
  display:inline-flex;
  align-items:center;
  gap:6px;
  font-size:0.72rem;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:0.03em;
  padding:4px 10px 4px 8px;
  border-radius:999px;
  background:rgba(255,255,255,0.05);
}
.proc-status::before{ content:''; width:6px; height:6px; border-radius:50%; background:var(--ink-faint); }
.proc-status.online{ color:#4ade80; }
.proc-status.online::before{ background:#4ade80; }
.proc-status.stopped,
.proc-status.errored{ color:#f87171; }
.proc-status.stopped::before,
.proc-status.errored::before{ background:#f87171; }

.proc-restarts{ font-variant-numeric:tabular-nums; }
.proc-restarts.flag{
  color:#f59e0b;
  font-weight:700;
}

/* ── acessos (log do nginx + geoip) ─────────────────────────────── */
.access-stats{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(150px, 1fr));
  gap:14px;
  margin-bottom:8px;
}
.stat-tile{
  border-radius:16px;
  background:var(--card);
  border:1px solid var(--card-border);
  padding:16px 20px;
  display:flex;
  flex-direction:column;
  gap:4px;
}
.stat-label{ font-size:0.74rem; text-transform:uppercase; letter-spacing:0.05em; color:var(--ink-faint); font-weight:700; }
.stat-value{ font-family:'Space Grotesk',sans-serif; font-size:1.6rem; font-weight:700; }

.country-list{
  border-radius:var(--radius);
  background:var(--card);
  border:1px solid var(--card-border);
  padding:8px 22px;
}
.country-row{
  display:flex;
  align-items:center;
  gap:12px;
  padding:11px 0;
  border-bottom:1px solid rgba(255,255,255,0.05);
}
.country-row:last-child{ border-bottom:none; }
.country-flag{ font-size:1.1rem; flex-shrink:0; }
.country-name{ font-size:0.88rem; color:var(--ink); width:150px; flex-shrink:0; }
.country-bar-track{ flex:1; height:6px; border-radius:999px; background:rgba(255,255,255,0.08); overflow:hidden; }
.country-bar-fill{ height:100%; border-radius:999px; background:#3b82f6; }
.country-count{ font-size:0.84rem; color:var(--ink-dim); font-variant-numeric:tabular-nums; width:36px; text-align:right; flex-shrink:0; }

.access-path{
  max-width:220px;
  overflow:hidden;
  text-overflow:ellipsis;
  font-family:ui-monospace, 'SF Mono', Menlo, monospace;
  font-size:0.82rem;
  color:var(--ink-dim);
}

.status-pill{
  display:inline-block;
  padding:3px 9px;
  border-radius:999px;
  font-size:0.76rem;
  font-weight:700;
  font-variant-numeric:tabular-nums;
  background:rgba(255,255,255,0.05);
}
.status-pill.ok{ color:#4ade80; }
.status-pill.info{ color:#3b82f6; }
.status-pill.warn{ color:#f59e0b; }
.status-pill.danger{ color:#f87171; }

@media (max-width:900px){
  .adm-app{ flex-direction:column; min-height:auto; }
  .adm-sidebar,
  .adm-sidebar.collapsed{
    width:100%;
    height:auto;
    min-height:0;
    position:static;
    flex-direction:row;
    align-items:center;
    padding:12px 16px;
    border-right:none;
    border-bottom:1px solid var(--card-border);
    gap:16px;
  }
  .adm-brand{ border-bottom:none; padding-bottom:0; margin-bottom:0; flex-shrink:0; }
  .adm-brand-sub{ display:none; }
  .adm-collapse-btn{ display:none; }
  .adm-eyebrow{ display:none; }
  .adm-sidebar nav{ flex-direction:row; margin-bottom:0; flex:1; overflow-x:auto; }
  .adm-sidebar nav a{ padding:8px 10px; flex-shrink:0; }
  .adm-sidebar-footer{
    flex-direction:row;
    align-items:center;
    gap:10px;
    border-top:none;
    padding-top:0;
    margin-top:0;
    flex-shrink:0;
  }
  .adm-admin-email{ display:none; }
  .adm-logout{ width:auto; flex-shrink:0; }
  .adm-main{ padding:26px 18px 80px; }
  .country-name{ width:110px; }
}

@media (max-width:600px){
  .metrics-grid{ grid-template-columns:1fr; }
  .adm-nav-label{ display:none; }
  .adm-admin-chip{ display:none; }
  .adm-brand-text{ display:none; }
  .country-name{ display:none; }
}
