/* Painel pkg2 — identidade CABARE HOST.
   Tokens retirados do sistema real (database.13371666.xyz, prefixo --ch-).
   Sem fontes externas: a CSP e 'self', entao so pilha do sistema. */
:root{
  /* superficies */
  --deep:#060608; --bg:#0a0a0d; --surface:#111115; --raised:#19191f;
  --input:#141419; --hover:#21171a; --head:#181316;
  /* linhas */
  --border:#231d20; --border-soft:#30272a;
  /* texto */
  --ink:#f4f4f5; --ink-dim:#a5a5ad; --ink-mute:#787880;
  /* vermelho da marca */
  --red:#e11d2e; --red-d1:#c81426; --red-d2:#a80f20; --red-d3:#7e0a18;
  --red-l1:#f02a3b; --red-l2:#ff4d5b; --red-l3:#ff8790;
  --glow:#e11d2e30; --sel:#3a141a;
  /* semanticos: erro NAO compete com o vermelho da marca */
  --ok:#22c55e; --info:#4d8dff; --gold:#e5bd62; --bad:#ff4d5b;
  --r:4px;
  --f-display:'Bahnschrift SemiBold','Arial Black',Tahoma,Arial,sans-serif;
  --f-body:Tahoma,Verdana,Arial,sans-serif;
  --f-mono:Consolas,'Courier New',monospace;
}
*{margin:0;padding:0;box-sizing:border-box;}
body{background:var(--bg);color:var(--ink);font-family:var(--f-body);font-size:14px;line-height:1.55;min-height:100vh;position:relative;}
::selection{background:var(--sel);color:var(--ink);}
.wrap{position:relative;z-index:1;max-width:980px;margin:0 auto;padding:22px 16px 56px;}
h1,h2,h3,.display{font-family:var(--f-display);font-weight:600;letter-spacing:.02em;line-height:1.2;}
h2{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-mute);margin-bottom:12px;}
h3{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-mute);margin:16px 0 8px;}
.tagline{color:var(--ink-mute);font-size:13px;}

.card{position:relative;background:var(--surface);border:1px solid var(--border);border-radius:var(--r);padding:20px;margin-bottom:14px;}

.top{display:flex;align-items:center;gap:12px;margin-bottom:18px;padding-bottom:14px;border-bottom:1px solid var(--border);}
.top h1{font-size:18px;flex:1;}
.who{display:flex;align-items:center;gap:8px;}

.badge{font-family:var(--f-body);font-size:11px;letter-spacing:.04em;text-transform:uppercase;padding:3px 9px;border:1px solid var(--border-soft);border-radius:var(--r);color:var(--ink-dim);background:var(--raised);}
.lit{color:var(--red-l2);border-color:var(--red-d2);}

.divider{display:flex;align-items:center;gap:12px;margin:16px 0;}
.divider::before,.divider::after{content:'';flex:1;height:1px;background:var(--border);}
.lozenge{display:inline-block;width:6px;height:6px;background:var(--red);border-radius:1px;}

.field{margin-bottom:14px;}
.field label{display:block;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-mute);margin-bottom:6px;}
input[type=text],input[type=password]{width:100%;background:var(--input);border:1px solid var(--border-soft);border-radius:var(--r);color:var(--ink);padding:9px 12px;font-family:var(--f-body);font-size:14px;outline:none;transition:.15s;}
input.code{letter-spacing:.35em;text-align:center;font-variant-numeric:tabular-nums;}
input:focus{border-color:var(--red);box-shadow:0 0 0 3px var(--glow);}

.cta{display:inline-block;padding:10px 20px;background:var(--red-d1);border:1px solid var(--red);border-radius:var(--r);color:#fff;font-family:var(--f-display);font-size:12px;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;transition:.15s;}
.login .cta{width:100%;padding:12px;}
.cta:hover:not(:disabled){background:var(--red-l1);border-color:var(--red-l1);box-shadow:0 0 0 3px var(--glow);}
.btn-ghost{display:inline-block;padding:8px 16px;background:var(--raised);border:1px solid var(--border-soft);border-radius:var(--r);color:var(--ink-dim);font-family:var(--f-body);font-size:12px;letter-spacing:.04em;text-transform:uppercase;cursor:pointer;transition:.15s;}
.btn-ghost:hover:not(:disabled){color:var(--ink);border-color:var(--red-d2);background:var(--hover);}
button:disabled{opacity:.4;cursor:not-allowed;}

.tabs{display:flex;gap:6px;margin-bottom:12px;}
.tab.on{color:#fff;background:var(--red-d2);border-color:var(--red-d1);}

.msg{color:var(--ink-dim);margin-bottom:10px;min-height:1.55em;}
.msg.bad,.err{color:var(--bad);}
.err{margin-bottom:12px;}

.kv{display:grid;grid-template-columns:130px 1fr;gap:4px 12px;}
.kv dt{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-mute);align-self:center;}
/* Teto de ~5 itens: com dezenas de releases a lista empurrava o resto da
   pagina para fora da tela. Daqui em diante rola dentro do proprio container. */
.rels{list-style:none;max-height:210px;overflow-y:auto;padding-right:6px;}
.rels li{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:7px 0;border-bottom:1px solid var(--border);}
.rels li span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.rels li button{flex:none;}
.rels li:last-child{border-bottom:none;}
.row{display:flex;gap:10px;align-items:flex-start;flex-wrap:wrap;}
.row .field{flex:1;min-width:200px;margin:0;}

.events{list-style:none;font-size:13px;}
.events li{padding:2px 0;color:var(--ink-dim);white-space:pre-wrap;}
.events .ev-ok{color:var(--ok);}
.events .ev-error{color:var(--bad);}
.log{background:var(--deep);border:1px solid var(--border);border-radius:var(--r);padding:11px;font-family:var(--f-mono);font-size:12px;line-height:1.45;max-height:320px;overflow:auto;white-space:pre-wrap;word-break:break-all;color:var(--ink-dim);}

.login{max-width:400px;padding-top:10vh;text-align:center;}
.login .card{padding:28px 24px;}
.login .crest{display:block;margin:0 auto 10px;}
.login .display{font-size:20px;}
.login form{text-align:left;margin-top:6px;}

/* ---------- aba "Servidores" (servidores do jogo) ---------- */
[hidden]{display:none!important;}
.srv h2{color:var(--ink-dim);}
.procs-wrap{overflow-x:auto;margin-bottom:12px;}
.procs{width:100%;border-collapse:collapse;font-size:13px;}
.procs th{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-mute);font-weight:normal;text-align:left;padding:6px 10px;border-bottom:1px solid var(--border-soft);}
.procs td{padding:7px 10px;border-bottom:1px solid var(--border);vertical-align:middle;}
.procs tr:last-child td{border-bottom:none;}
.procs .name span{margin-left:8px;}
.procs .num{font-family:var(--f-mono);font-size:12px;color:var(--ink-dim);white-space:nowrap;}
.procs .acts{text-align:right;white-space:nowrap;}
.procs .acts button{padding:5px 10px;font-size:11px;margin-left:4px;}
.procs.dim{opacity:.55;}
.dot{display:inline-block;width:10px;height:10px;border-radius:50%;vertical-align:middle;border:1px solid transparent;}
.dot.on{background:var(--ok);box-shadow:0 0 6px #22c55e66;}
.dot.off{background:var(--bad);}
.dot.unk{background:var(--ink-mute);}
.live{color:var(--ok);}
.down{color:var(--bad);}
.warn{border:1px solid var(--gold);background:#2a2110;color:var(--gold);border-radius:var(--r);padding:10px 14px;margin:12px 0;}
.warn ul{list-style:none;margin-top:6px;font-family:var(--f-mono);font-size:12px;color:var(--ink-dim);}
.warn li{padding:1px 0;word-break:break-all;}
.srv-actions{margin:14px 0 4px;}

/* Alvo de PRODUCAO na secao Servidores: selo e borda vermelhos para o operador
   nunca confundir com o teste (pedido do dono, 19/10/2026). */
.badge.prod{margin-left:10px;color:#fff;background:var(--red-d1);border-color:var(--red);letter-spacing:.06em;}
.card.srv.prod{border-color:var(--red-d2);box-shadow:inset 3px 0 0 var(--red);}

/* Aba do servidor de PRODUCAO: vermelha, para separar do teste no topo. */
.tab.srv-tab.prod{border-color:var(--red-d2);}
.tab.srv-tab.prod.on{background:var(--red-d2);border-color:var(--red-d1);color:#fff;}
