/* ===== Portal SSP — Secretaria de Segurança Pública · Elite SP ===== */
/* color-scheme:dark SÓ nos controles nativos (deixa o dropdown/opções/scrollbar
   do <select> escuros). NÃO pôr no :root/html: lá o Chromium pinta o CANVAS opaco
   e, no modo in-game (NUI com html/body transparentes p/ o jogo aparecer atrás),
   isso vira um "fundo cinza em tela cheia" tapando o jogo. No site o body é opaco,
   então é indiferente. */
select, input, textarea, .ssp-select { color-scheme: dark; }
:root {
  --bg:#080b12; --bg2:#0c111c; --panel:#111a2b; --panel2:#16223a;
  --line:#22304c; --line2:#33446a; --blue:#3d7dff; --blue-soft:#82acff;
  --text:#e9eef8; --dim:#9babc8; --mute:#5e6e8e; --gold:#e0b04a;
  --ok:#2bd47e; --bad:#ff5468; --warn:#e0b04a;
}
* { margin:0; padding:0; box-sizing:border-box; }
/* Scrollbar tema SSP — página + listas internas (evita barra “java puro” do SO) */
html {
  scrollbar-width:thin; scrollbar-color:var(--line2) transparent;
}
html::-webkit-scrollbar { width:10px; }
html::-webkit-scrollbar-track { background:transparent; }
html::-webkit-scrollbar-thumb { background:var(--line2); border-radius:8px; }
html::-webkit-scrollbar-thumb:hover { background:var(--blue); }
html::-webkit-scrollbar-button { display:none; height:0; width:0; }
body {
  background:radial-gradient(900px 480px at 50% -12%, rgba(61,125,255,.11), transparent 70%), var(--bg);
  color:var(--text); min-height:100vh;
  font-family:'Segoe UI',system-ui,-apple-system,Roboto,sans-serif;
  scrollbar-width:thin; scrollbar-color:var(--line2) transparent;
}
body::-webkit-scrollbar { width:10px; }
body::-webkit-scrollbar-track { background:transparent; }
body::-webkit-scrollbar-thumb { background:var(--line2); border-radius:8px; }
body::-webkit-scrollbar-thumb:hover { background:var(--blue); }
body::-webkit-scrollbar-button { display:none; height:0; width:0; }
.ssp-scrollbar {
  scrollbar-width:thin; scrollbar-color:var(--line2) transparent;
}
.ssp-scrollbar::-webkit-scrollbar { width:8px; height:8px; }
.ssp-scrollbar::-webkit-scrollbar-track { background:transparent; }
.ssp-scrollbar::-webkit-scrollbar-thumb { background:var(--line2); border-radius:8px; }
.ssp-scrollbar::-webkit-scrollbar-thumb:hover { background:var(--blue); }
.ssp-scrollbar::-webkit-scrollbar-button { display:none; height:0; width:0; }
a { color:inherit; text-decoration:none; }
b { color:#f3f6fc; }

/* ----- Cabeçalho ----- */
.ssp-top {
  display:flex; align-items:center; gap:18px;
  padding:13px clamp(14px,3vw,36px); border-bottom:1px solid var(--line);
  background:rgba(8,11,18,.92); backdrop-filter:blur(8px);
  position:sticky; top:0; z-index:20;
}
.ssp-brand { display:flex; align-items:center; gap:11px; flex:none; }
.ssp-shield {
  width:40px; height:40px; display:flex; align-items:center; justify-content:center;
  border-radius:9px; background:linear-gradient(160deg,var(--panel2),var(--panel));
  border:1px solid var(--line2); color:var(--blue);
}
.ssp-shield svg { width:22px; height:22px; }
.ssp-brand b { font-size:1.05rem; font-weight:800; letter-spacing:.15em; display:block; line-height:1.05; }
.ssp-brand small { color:var(--mute); font-size:.66rem; letter-spacing:.03em; }
.ssp-busca { display:flex; align-items:center; gap:0; margin-left:auto; max-width:480px; flex:1; }
.ssp-busca input {
  flex:1; min-width:90px; background:var(--bg2); color:var(--text); border:1px solid var(--line2);
  border-radius:9px 0 0 9px; padding:9px 12px; font-size:.9rem; font-family:inherit; outline:none;
}
.ssp-busca input:focus { border-color:var(--blue); }
.ssp-busca button {
  background:linear-gradient(160deg,var(--blue),#2b5fd0); color:#fff; border:1px solid #4f86ff;
  border-radius:0 9px 9px 0; padding:9px 16px; font-size:.84rem; font-weight:700; cursor:pointer;
}
.ssp-busca button:hover { filter:brightness(1.1); }
.ssp-user { display:flex; align-items:center; gap:9px; font-size:.86rem; font-weight:600; flex:none; }
.ssp-user img { width:28px; height:28px; border-radius:50%; border:1px solid var(--line2); }
.ssp-user .nm { max-width:130px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.ssp-sair {
  padding:6px 12px; border-radius:7px; font-size:.78rem; font-weight:600;
  border:1px solid var(--line2); color:var(--dim);
}
.ssp-sair:hover { border-color:var(--bad); color:#ffd0d6; }

/* ----- Navegação ----- */
.ssp-nav {
  display:flex; gap:4px; padding:0 clamp(14px,3vw,36px); border-bottom:1px solid var(--line);
  background:var(--bg2); overflow-x:auto;
}
.ssp-nav a {
  padding:13px 16px; font-size:.86rem; font-weight:600; color:var(--dim);
  border-bottom:2px solid transparent; white-space:nowrap;
}
.ssp-nav a:hover { color:var(--text); }
.ssp-nav a.on { color:var(--blue-soft); border-bottom-color:var(--blue); }
.ssp-nav .ssp-badge {
  display:inline-block; min-width:18px; height:18px; padding:0 6px; margin-left:6px;
  border-radius:999px; background:#e23b3b; color:#fff; font-size:11px; font-weight:700;
  line-height:18px; text-align:center; vertical-align:middle;
}
/* Dropdown "Chat" unificado na navegação (Geral / Grupo / Privado / Msg. Staff) */
.ssp-navdrop { position:relative; display:inline-flex; align-items:stretch; }
.ssp-navdrop-btn {
  display:inline-flex; align-items:center; gap:6px; cursor:pointer; font-family:inherit;
  padding:13px 16px; font-size:.86rem; font-weight:600; color:var(--dim);
  background:none; border:0; border-bottom:2px solid transparent; white-space:nowrap;
}
.ssp-navdrop-btn:hover { color:var(--text); }
.ssp-navdrop.on .ssp-navdrop-btn { color:var(--blue-soft); border-bottom-color:var(--blue); }
.ssp-navdrop-btn .ssp-badge { margin-left:0; }
.ssp-navdrop-arrow { width:14px; height:14px; color:var(--mute); flex:none; transition:transform .15s ease; }
.ssp-navdrop.open .ssp-navdrop-arrow { transform:rotate(180deg); }
.ssp-navdrop-menu {
  display:none; position:fixed; z-index:90; min-width:210px;
  background:var(--panel2); border:1px solid var(--line2); border-radius:8px; padding:4px;
  box-shadow:0 12px 30px rgba(0,0,0,.5);
}
.ssp-navdrop.open .ssp-navdrop-menu { display:block; }
.ssp-navdrop-item {
  display:flex; align-items:center; justify-content:space-between; gap:14px;
  padding:9px 12px; border-radius:6px; color:var(--text);
  font-size:.85rem; font-weight:600; text-decoration:none; white-space:nowrap;
}
.ssp-navdrop-item:hover { background:rgba(61,125,255,.12); color:var(--blue-soft); }
.ssp-navdrop-item.on { background:rgba(61,125,255,.18); color:var(--blue-soft); }
.ssp-navdrop-item .ssp-badge { margin-left:0; }

/* ----- Conteúdo ----- */
.ssp-main { max-width:1320px; margin:0 auto; padding:clamp(20px,4vw,38px) clamp(14px,3vw,36px) 80px; }
.ssp-h1 {
  font-size:1.18rem; font-weight:800; letter-spacing:.04em; text-transform:uppercase; margin-bottom:4px;
}
.ssp-h1 em { font-style:normal; color:var(--blue-soft); }
.ssp-sub { color:var(--mute); font-size:.85rem; margin-bottom:20px; }
.ssp-flash {
  margin-bottom:18px; padding:12px 15px; border-radius:9px; font-size:.9rem;
  background:rgba(61,125,255,.1); border:1px solid var(--line2); color:var(--blue-soft);
}
.ssp-sec {
  margin:26px 0 12px; font-size:.74rem; font-weight:700; letter-spacing:.15em;
  text-transform:uppercase; color:var(--mute);
}

/* ----- Identidade do agente ----- */
.ssp-ident {
  display:flex; align-items:center; gap:14px; padding:16px 20px;
  background:linear-gradient(170deg,var(--panel2),var(--panel));
  border:1px solid var(--line2); border-radius:13px;
}
.ssp-ident .bdg {
  width:46px; height:46px; flex:none; border-radius:10px; color:var(--blue);
  display:flex; align-items:center; justify-content:center;
  background:rgba(61,125,255,.1); border:1px solid var(--line2);
}
.ssp-ident .bdg svg { width:24px; height:24px; }
.ssp-ident h2 { font-size:1.05rem; font-weight:800; }
.ssp-ident .corp { color:var(--gold); font-size:.84rem; font-weight:600; margin-top:2px; }
.ssp-ident .caps { display:flex; flex-wrap:wrap; gap:6px; margin-left:auto; }
.ssp-ident .caps span {
  font-size:.68rem; font-weight:700; padding:4px 9px; border-radius:5px;
  background:rgba(61,125,255,.12); border:1px solid var(--line2); color:var(--blue-soft);
}

/* ----- Tiles de estatística ----- */
.ssp-stats { display:grid; gap:13px; grid-template-columns:repeat(auto-fit,minmax(170px,1fr)); margin-top:14px; }
.ssp-tile {
  background:var(--panel); border:1px solid var(--line); border-radius:12px; padding:18px 20px;
}
.ssp-tile .n { font-size:1.9rem; font-weight:800; line-height:1; }
.ssp-tile .l { color:var(--mute); font-size:.78rem; font-weight:600; margin-top:7px;
  text-transform:uppercase; letter-spacing:.06em; }
.ssp-tile.is-bad .n { color:var(--bad); }
.ssp-tile.is-warn .n { color:var(--gold); }
.ssp-tile.is-ok .n { color:var(--ok); }
@keyframes ssp-pulse { 0%,100% { opacity:1; } 50% { opacity:.3; } }

/* ----- Painéis ----- */
.ssp-cols { display:grid; gap:16px; grid-template-columns:repeat(auto-fit,minmax(320px,1fr)); }
.ssp-dash { display:grid; gap:16px; grid-template-columns:1fr 380px; align-items:start; }
.ssp-online-c {
  background:rgba(63,185,80,.15); color:var(--ok); font-size:.78rem; font-weight:700;
  border-radius:20px; padding:1px 9px; min-width:22px; text-align:center;
}
.ssp-online-list { display:flex; flex-direction:column; max-height:560px; overflow-y:auto; }
.ssp-on-row {
  display:flex; align-items:center; gap:9px; padding:8px 4px;
  font-size:.9rem; border-bottom:1px solid var(--line);
}
.ssp-on-row:last-child { border-bottom:0; }
.ssp-on-row .nm { flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.ssp-on-row .dot {
  width:8px; height:8px; border-radius:50%; flex:none; background:var(--ok);
  box-shadow:0 0 6px var(--ok); animation:ssp-pulse 2s ease-in-out infinite;
}
.ssp-on-empty { color:var(--mute); font-size:.86rem; padding:8px 4px; font-style:italic; }
/* ----- Policiais em serviço (efetivo) ----- */
.ssp-ef-busca {
  width:100%; margin-bottom:10px; background:var(--bg2); color:var(--text);
  border:1px solid var(--line2); border-radius:8px; padding:7px 10px;
  font-size:.82rem; outline:none;
}
.ssp-ef-busca::placeholder { color:var(--mute); }
.ssp-ef-busca:focus { border-color:var(--blue); }
.ssp-on-row .grow { flex:1; min-width:0; display:flex; flex-direction:column; gap:2px; }
.ssp-on-row .ttl { display:flex; align-items:center; gap:7px; font-weight:600; font-size:.88rem; }
.ssp-on-row .nm { flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.ssp-on-row .ssp-pp {
  flex:none; font-family:'Consolas',monospace; font-size:.72rem; color:var(--blue-soft);
  background:rgba(61,125,255,.12); border:1px solid var(--line2); border-radius:5px; padding:1px 7px;
}
.ssp-on-row .ssp-pc { flex:none; width:15px; height:15px; color:var(--blue-soft); }
.ssp-on-row .meta {
  color:var(--mute); font-size:.76rem;
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}
.ssp-on-row.is-site { background:rgba(61,125,255,.06); }
.ssp-on-row.is-site .ssp-pp { background:rgba(61,125,255,.22); color:#cfe0ff; }
/* Barra de rolagem temada (azul/dark) */
.ssp-online-list { scrollbar-width:thin; scrollbar-color:var(--line2) transparent; padding-right:4px; }
.ssp-online-list::-webkit-scrollbar { width:8px; }
.ssp-online-list::-webkit-scrollbar-track { background:transparent; }
.ssp-online-list::-webkit-scrollbar-thumb { background:var(--line2); border-radius:8px; }
.ssp-online-list::-webkit-scrollbar-thumb:hover { background:var(--blue); }
/* Cor por corporação: PC=preto · PM=azul · Federal=amarelo · GCM=branco */
.ssp-corp {
  display:inline-block; font-size:.66rem; font-weight:700; letter-spacing:.02em;
  padding:1px 6px; border-radius:4px; border:1px solid transparent; vertical-align:middle;
}
.ssp-corp.corp-pm   { background:rgba(61,125,255,.18); color:#9fc0ff; border-color:rgba(61,125,255,.5); }
.ssp-corp.corp-fed  { background:rgba(224,176,74,.18); color:#f0cd82; border-color:rgba(224,176,74,.55); }
.ssp-corp.corp-gcm  { background:rgba(255,255,255,.92); color:#0a0e16; border-color:#ffffff; }
.ssp-corp.corp-pc   { background:#05070c; color:#e6e9f0; border-color:#33415e; }
.ssp-corp.corp-mute { background:var(--bg); color:var(--mute); border-color:var(--line); }
/* Linha em 2 níveis (Boletins/Prisões): título + data em cima; subtítulo full-width
   embaixo, passando por baixo da data — assim o texto usa a largura toda. */
.ssp-row.ssp-row--stack { display:block; }
.ssp-row.ssp-row--stack .ssp-r1 { display:flex; align-items:center; gap:10px; }
.ssp-row.ssp-row--stack .ssp-r1 .ttl { flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.ssp-row.ssp-row--stack .ssp-r1 .ssp-when,
.ssp-row.ssp-row--stack .ssp-r1 .ssp-tag { flex:none; }
.ssp-row.ssp-row--stack .meta { display:block; margin-top:3px; }
/* Linha do efetivo agora é clicável (abre a ficha) */
a.ssp-on-row { text-decoration:none; color:inherit; cursor:pointer; }
a.ssp-on-row:hover { background:rgba(61,125,255,.08); }
a.ssp-on-row:hover .nm { color:var(--blue-soft); }
/* Bloco "Atuação policial" na ficha */
.fic-pol-head { display:flex; align-items:center; gap:10px; margin-bottom:12px; }
.fic-pol-pat { font-weight:700; font-size:.95rem; color:var(--blue-soft); }
/* Lista longa com rolagem local + busca (ficha) */
.ssp-list.ssp-scroll {
  max-height:520px; overflow-y:auto; padding-right:4px;
  scrollbar-width:thin; scrollbar-color:var(--line2) transparent;
}
.ssp-list.ssp-scroll::-webkit-scrollbar { width:8px; }
.ssp-list.ssp-scroll::-webkit-scrollbar-track { background:transparent; }
.ssp-list.ssp-scroll::-webkit-scrollbar-thumb { background:var(--line2); border-radius:8px; }
.ssp-list.ssp-scroll::-webkit-scrollbar-thumb:hover { background:var(--blue); }
.ssp-filtro-local {
  width:100%; margin-bottom:10px; background:var(--bg2); color:var(--text);
  border:1px solid var(--line2); border-radius:8px; padding:6px 10px; font-size:.8rem; outline:none;
}
.ssp-filtro-local:focus { border-color:var(--blue); }
.ssp-filtro-local::placeholder { color:var(--mute); }
/* RH — botões de gestão (ficha) + aba Gestão */
.fic-pol-acoes { display:flex; gap:8px; flex-wrap:wrap; margin:0 0 14px; }
.fic-pol-acoes form { margin:0; }
.ssp-btn-rh {
  border:1px solid var(--line2); background:var(--bg2); color:var(--text);
  border-radius:8px; padding:6px 14px; font-size:.82rem; font-weight:600; cursor:pointer;
}
.ssp-btn-rh:hover { filter:brightness(1.12); }
.ssp-btn-rh--ok   { border-color:rgba(43,212,126,.5); color:#7ee8b3; }
.ssp-btn-rh--warn { border-color:rgba(224,176,74,.5); color:#f0cd82; }
.ssp-btn-rh--bad  { border-color:rgba(255,84,104,.5); color:#ff9aa6; }
.ssp-btn-rh--hire { background:linear-gradient(160deg,var(--blue),#2b5fd0); color:#fff; border-color:#4f86ff; }
.ssp-btn-rh--pm { background:rgba(61,125,255,.16); border-color:rgba(61,125,255,.5); color:var(--blue-soft); text-decoration:none; display:inline-flex; align-items:center; gap:5px; }
.ssp-btn-rh--pm:hover { background:rgba(61,125,255,.28); }
.ssp-gestao-bar { display:flex; align-items:center; gap:10px; }
.ssp-gestao-lbl { font-size:.8rem; color:var(--mute); }
.ssp-gestao-hire { display:flex; gap:8px; }
.ssp-gestao-hire input {
  flex:1; min-width:0; background:var(--bg2); color:var(--text);
  border:1px solid var(--line2); border-radius:8px; padding:7px 10px; font-size:.85rem; outline:none;
}
.ssp-gestao-hire input:focus { border-color:var(--blue); }
/* Remove as setas nativas do input number (ficavam "padrão do SO") */
.ssp-gestao-hire input[type=number]::-webkit-inner-spin-button,
.ssp-gestao-hire input[type=number]::-webkit-outer-spin-button { -webkit-appearance:none; margin:0; }
.ssp-gestao-hire input[type=number] { -moz-appearance:textfield; appearance:textfield; }
/* Dropdown próprio (no tema) — substitui o <select> nativo e sua barra de rolagem do SO */
.ssp-select { position:relative; display:inline-block; min-width:210px; }
.ssp-select-btn {
  width:100%; display:flex; align-items:center; justify-content:space-between; gap:10px;
  background:var(--bg2); color:var(--text); border:1px solid var(--line2);
  border-radius:8px; padding:7px 12px; font-size:.85rem; cursor:pointer;
}
.ssp-select-btn svg { width:16px; height:16px; color:var(--mute); flex:none; transition:transform .15s ease; }
.ssp-select.open .ssp-select-btn { border-color:var(--blue); }
.ssp-select.open .ssp-select-btn svg { transform:rotate(180deg); }
.ssp-select-list {
  display:none; position:absolute; z-index:30; top:calc(100% + 4px); left:0; right:0;
  max-height:280px; overflow-y:auto;
  background:var(--panel2); border:1px solid var(--line2); border-radius:8px; padding:4px;
  box-shadow:0 12px 30px rgba(0,0,0,.5);
  scrollbar-width:thin; scrollbar-color:var(--line2) transparent;
}
.ssp-select.open .ssp-select-list { display:block; }
.ssp-select-list::-webkit-scrollbar { width:8px; }
.ssp-select-list::-webkit-scrollbar-track { background:transparent; }
.ssp-select-list::-webkit-scrollbar-thumb { background:var(--line2); border-radius:8px; }
.ssp-select-list::-webkit-scrollbar-thumb:hover { background:var(--blue); }
.ssp-select-list::-webkit-scrollbar-button { display:none; height:0; width:0; }
.ssp-select-opt {
  display:block; padding:7px 10px; border-radius:6px; color:var(--text);
  font-size:.85rem; text-decoration:none; white-space:nowrap;
}
.ssp-select-opt:hover { background:rgba(61,125,255,.12); color:var(--blue-soft); }
.ssp-select-opt.on { background:rgba(61,125,255,.18); color:var(--blue-soft); }
/* RH — barra + tabela de gerenciamento de oficiais (estilo CAD) */
.ssp-rh-bar { display:flex; flex-wrap:wrap; align-items:center; gap:12px; margin-bottom:8px; }
.ssp-rh-corp { display:flex; align-items:center; gap:8px; }
.ssp-rh-corp-select {
  min-width:210px; background:var(--bg2); color:var(--text);
  border:1px solid var(--line2); border-radius:8px; padding:7px 32px 7px 12px;
  font-size:.85rem; cursor:pointer; outline:none;
  appearance:none; -webkit-appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%239aa0a6' stroke-width='2'%3E%3Cpath d='M4 6l4 4 4-4'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 10px center;
}
.ssp-rh-corp-select:hover { border-color:rgba(61,125,255,.5); }
.ssp-rh-corp-select:focus { border-color:var(--blue); box-shadow:0 0 0 2px rgba(61,125,255,.2); }
.ssp-rh-corp-select option { background:var(--panel2); color:var(--text); }
.ssp-rh-search {
  flex:1; min-width:160px; background:var(--bg2); color:var(--text);
  border:1px solid var(--line2); border-radius:8px; padding:8px 12px; font-size:.85rem; outline:none;
}
.ssp-rh-search:focus { border-color:var(--blue); }
.ssp-rh-search::placeholder { color:var(--mute); }
.ssp-rh-hire { display:flex; gap:8px; }
.ssp-rh-hire input {
  width:180px; background:var(--bg2); color:var(--text); border:1px solid var(--line2);
  border-radius:8px; padding:8px 10px; font-size:.85rem; outline:none;
}
.ssp-rh-hire input:focus { border-color:var(--blue); }
.ssp-rh-hire input::-webkit-inner-spin-button,
.ssp-rh-hire input::-webkit-outer-spin-button { -webkit-appearance:none; margin:0; }
.ssp-rh-hire input[type=number] { -moz-appearance:textfield; appearance:textfield; }
.ssp-table-wrap { overflow-x:auto; padding:4px 0; }
.ssp-table { width:100%; border-collapse:collapse; font-size:.85rem; }
.ssp-table th {
  text-align:left; color:var(--mute); font-size:.7rem; text-transform:uppercase;
  letter-spacing:.05em; font-weight:700; padding:9px 14px; border-bottom:1px solid var(--line2); white-space:nowrap;
}
.ssp-table th.rt, .ssp-table td.rt { text-align:right; }
.ssp-table td { padding:10px 14px; border-bottom:1px solid var(--line); vertical-align:middle; white-space:nowrap; }
.ssp-table tbody tr:last-child td { border-bottom:0; }
.ssp-table tbody tr:hover { background:rgba(61,125,255,.05); }
.ssp-table .c-id { font-family:'Consolas',monospace; color:var(--mute); }
.ssp-table .c-nome { font-weight:600; }
.ssp-st-serv { color:var(--ok); font-weight:600; }
.ssp-st-off  { color:var(--mute); }
.ssp-st-old  { color:var(--warn); }
.ssp-st-online { color:var(--blue-soft); font-weight:600; }
.ssp-sortable { cursor:pointer; user-select:none; white-space:nowrap; }
.ssp-sortable:hover { color:var(--blue-soft); }
.ssp-sortable.is-sorted { color:var(--blue-soft); }
.ssp-sort-ind { font-size:.7rem; opacity:.55; margin-left:2px; }
.ssp-sortable.is-sorted .ssp-sort-ind { opacity:1; }
.ssp-acts { display:inline-flex; gap:6px; justify-content:flex-end; }
.ssp-acts form { margin:0; }
.ssp-ico {
  display:inline-flex; align-items:center; justify-content:center; width:32px; height:28px;
  border:1px solid var(--line2); background:var(--bg2); border-radius:6px; cursor:pointer; color:var(--text);
}
.ssp-ico svg { width:15px; height:15px; }
.ssp-ico:hover { filter:brightness(1.2); }
.ssp-ico--view { color:var(--blue-soft); border-color:rgba(61,125,255,.4); }
.ssp-ico--up   { color:#7ee8b3; border-color:rgba(43,212,126,.45); }
.ssp-ico--down { color:#f0cd82; border-color:rgba(224,176,74,.45); }
.ssp-ico--del  { color:#ff9aa6; border-color:rgba(255,84,104,.45); }
.ssp-ico.is-off { opacity:.28; cursor:not-allowed; filter:none; }
/* ----- Chat geral da organização (estilo WhatsApp, tema SSP) ----- */
.ssp-chat { display:flex; flex-direction:column; height:min(68vh, 720px); margin-top:8px;
  background:linear-gradient(170deg,var(--panel2),var(--panel)); border:1px solid var(--line2); border-radius:13px; overflow:hidden; }
.ssp-chat-head { display:flex; align-items:center; justify-content:space-between; padding:12px 16px; background:var(--bg2); border-bottom:1px solid var(--line2); }
.ssp-chat-title { display:flex; align-items:center; gap:10px; font-weight:700; font-size:.95rem; }
.ssp-chat-title svg { width:18px; height:18px; color:var(--blue-soft); }
.ssp-chat-online { display:flex; align-items:center; gap:7px; font-size:.78rem; color:var(--mute); }
.ssp-chat-online .dot { width:8px; height:8px; border-radius:50%; background:var(--ok); box-shadow:0 0 6px var(--ok); }
.ssp-chat-mention { color:var(--blue-soft); font-weight:700; }
.ssp-chat-mention-ac {
  position:absolute; left:10px; right:56px; bottom:calc(100% + 4px); z-index:40;
  max-height:220px; overflow-y:auto; background:var(--panel2); border:1px solid var(--line2);
  border-radius:10px; padding:4px; box-shadow:0 10px 28px rgba(0,0,0,.45);
}
.ssp-chat-mention-ac.ssp-scrollbar { scrollbar-width:thin; }
.ssp-chat-mention-opt {
  display:flex; flex-direction:column; align-items:flex-start; gap:2px; width:100%;
  border:0; background:transparent; color:var(--text); text-align:left;
  padding:8px 10px; border-radius:8px; cursor:pointer; font:inherit;
}
.ssp-chat-mention-opt:hover, .ssp-chat-mention-opt.on { background:rgba(61,125,255,.14); }
.ssp-chat-mention-opt .nm { font-weight:700; font-size:.88rem; }
.ssp-chat-mention-opt .pp { color:var(--mute); font-weight:500; }
.ssp-chat-mention-opt .meta { font-size:.75rem; color:var(--mute); }
.ssp-chat-body { flex:1; overflow-y:auto; padding:16px; display:flex; flex-direction:column; gap:8px;
  scrollbar-width:thin; scrollbar-color:var(--line2) transparent; }
.ssp-chat-body::-webkit-scrollbar { width:8px; }
.ssp-chat-body::-webkit-scrollbar-thumb { background:var(--line2); border-radius:8px; }
.ssp-chat-loading, .ssp-chat-empty { color:var(--mute); font-style:italic; text-align:center; margin:auto; }
.ssp-chat-msg { position:relative; max-width:75%; width:fit-content; }
.ssp-chat-msg.is-me { align-self:flex-end; margin-left:auto; }
.ssp-chat-bubble { position:relative; background:var(--bg2); border:1px solid var(--line); border-radius:12px; padding:8px 12px 6px; min-width:130px; }
.ssp-chat-msg.is-me .ssp-chat-bubble { background:rgba(61,125,255,.16); border-color:rgba(61,125,255,.4); }
.ssp-chat-author { display:inline-block; font-weight:700; font-size:.8rem; color:var(--blue-soft); text-decoration:none; position:relative; padding-right:4px; }
.ssp-chat-author .pp { font-family:'Consolas',monospace; font-size:.72rem; color:var(--mute); font-weight:400; }
.ssp-chat-author:hover { text-decoration:underline; }
.ssp-chat-txt { display:block; font-size:.9rem; white-space:pre-wrap; word-break:break-word; margin-top:2px; }
.ssp-chat-time { float:right; font-size:.66rem; color:var(--mute); margin:5px 0 0 10px; font-family:'Consolas',monospace; }
.ssp-chat-quote { display:block; border-left:3px solid var(--blue); background:rgba(61,125,255,.08); border-radius:5px; padding:3px 8px; margin:4px 0; font-size:.78rem; color:var(--mute); }
.ssp-chat-quote b { display:block; color:var(--blue-soft); font-size:.72rem; }
.ssp-chat-acts {
  position:absolute; top:6px; right:6px; display:flex; flex-direction:row; gap:3px; flex:none;
  opacity:0; pointer-events:none; transition:opacity .15s ease; z-index:4;
  background:var(--panel2); border:1px solid var(--line2); border-radius:8px; padding:3px;
  box-shadow:0 4px 14px rgba(0,0,0,.4);
}
.ssp-chat-bubble:hover .ssp-chat-acts,
.ssp-chat-acts:hover,
.ssp-chat-acts:focus-within { opacity:1; pointer-events:auto; }
.ssp-chat-act { width:26px; height:26px; display:inline-flex; align-items:center; justify-content:center;
  background:var(--panel); border:1px solid var(--line2); border-radius:5px; color:var(--mute); cursor:pointer; }
.ssp-chat-act svg { width:13px; height:13px; }
.ssp-chat-act:hover { color:var(--text); border-color:var(--blue); }
.ssp-chat-act.ssp-chat-direct { text-decoration:none; color:inherit; }
.ssp-chat-act.ssp-chat-direct:hover { color:var(--blue-soft); border-color:var(--blue); }
.ssp-chat-act.ssp-chat-del:hover { color:#ff9aa6; border-color:var(--bad); }
.ssp-chat-tip { position:fixed; z-index:200; min-width:180px; max-width:260px;
  background:var(--panel2); border:1px solid var(--line2); border-radius:8px; padding:8px 10px;
  font-size:.74rem; font-weight:400; color:var(--text); box-shadow:0 12px 30px rgba(0,0,0,.55); line-height:1.5; pointer-events:none; }
.ssp-chat-tip[hidden] { display:none; }
.ssp-chat-replybar { display:flex; align-items:center; gap:10px; padding:8px 14px; background:var(--bg2); border-top:1px solid var(--line2); font-size:.8rem; }
.ssp-chat-replybar[hidden] { display:none; }
.ssp-chat-replybar .lbl { color:var(--mute); }
.ssp-chat-replybar b { color:var(--blue-soft); }
.ssp-chat-replybar #chatReplyMsg { color:var(--mute); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.ssp-chat-replybar .grow { flex:1; min-width:0; }
.ssp-chat-replybar button { background:none; border:0; color:var(--mute); font-size:1.3rem; cursor:pointer; line-height:1; }
.ssp-chat-replybar button:hover { color:var(--bad); }
.ssp-chat-input { display:flex; align-items:flex-end; gap:10px; padding:12px 14px; background:var(--bg2); border-top:1px solid var(--line2); }
.ssp-chat-input textarea { flex:1; resize:none; background:var(--bg); color:var(--text); border:1px solid var(--line2);
  border-radius:10px; padding:10px 12px; font-size:.9rem; font-family:inherit; outline:none; max-height:120px; line-height:1.4; }
.ssp-chat-input textarea:focus { border-color:var(--blue); }
.ssp-chat-input textarea::placeholder { color:var(--mute); }
.ssp-chat-input textarea { scrollbar-width:thin; scrollbar-color:var(--line2) transparent; }
.ssp-chat-input textarea::-webkit-scrollbar { width:8px; }
.ssp-chat-input textarea::-webkit-scrollbar-track { background:transparent; }
.ssp-chat-input textarea::-webkit-scrollbar-thumb { background:var(--line2); border-radius:8px; }
.ssp-chat-input textarea::-webkit-scrollbar-thumb:hover { background:var(--blue); }
.ssp-chat-input textarea::-webkit-scrollbar-button { display:none; height:0; width:0; }
.ssp-chat-send { flex:none; width:42px; height:42px; border-radius:50%; border:0; cursor:pointer;
  background:linear-gradient(160deg,var(--blue),#2b5fd0); color:#fff; display:inline-flex; align-items:center; justify-content:center; }
.ssp-chat-send svg { width:20px; height:20px; }
.ssp-chat-send:hover { filter:brightness(1.1); }
.ssp-chat-orgbar {
  margin:0 0 10px; font-size:13px; color:var(--mute);
  display:flex; align-items:center; gap:8px; flex-wrap:wrap;
}
@media (max-width:880px) { .ssp-dash { grid-template-columns:1fr; } }
.ssp-panel {
  background:linear-gradient(170deg,var(--panel2),var(--panel));
  border:1px solid var(--line2); border-radius:13px; padding:18px 20px;
}
.ssp-panel > h3 {
  font-size:.95rem; font-weight:700; margin-bottom:12px;
  display:flex; align-items:center; justify-content:space-between;
}
.ssp-panel > h3 a { font-size:.76rem; font-weight:600; color:var(--blue-soft); }

/* ----- Listas ----- */
.ssp-list { display:flex; flex-direction:column; gap:7px; }
.ssp-row {
  display:flex; align-items:center; gap:11px; padding:10px 13px;
  background:var(--bg2); border:1px solid var(--line); border-radius:9px;
}
a.ssp-row:hover { border-color:var(--line2); background:var(--panel); }
.ssp-row .ttl { font-weight:600; font-size:.9rem; }
.ssp-row .meta { color:var(--mute); font-size:.78rem; margin-top:2px; }
.ssp-row .grow { flex:1; min-width:0; display:flex; flex-direction:column; }
.ssp-row .grow .ttl, .ssp-row .grow .meta { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
/* Dono + data de registro do item (vem da chave, ex.: arma/notepad). Linha
   própria sob o nome; não herda o ellipsis das .ttl/.meta. */
.ssp-row .grow .ssp-item-meta { color:var(--mute); font-size:.72rem; margin-top:1px; font-variant-numeric:tabular-nums; letter-spacing:.2px; white-space:nowrap; opacity:.85; }
.ssp-row .rt { text-align:right; flex:none; }
/* Variante p/ conteúdo que deve aparecer inteiro (ex.: artigos das multas). */
.ssp-row--wrap { align-items:flex-start; }
.ssp-row--wrap .grow .ttl,
.ssp-row--wrap .grow .meta { white-space:normal; overflow:visible; text-overflow:clip; }
/* Linha de procurado: clica para expandir e ler o motivo inteiro. */
.ssp-proc { cursor:pointer; }
.ssp-proc:hover { border-color:var(--line2); }
.ssp-proc.aberto { align-items:flex-start; }
.ssp-proc.aberto .grow .ttl,
.ssp-proc.aberto .grow .meta { white-space:normal; overflow:visible; text-overflow:clip; }
.ssp-exp { flex:none; color:var(--mute); font-size:.95rem; line-height:1; transition:transform .15s ease; }
.ssp-proc.aberto .ssp-exp { transform:rotate(90deg); }
.ssp-qru-code {
  flex:none; min-width:52px; text-align:center; font-family:'Consolas',monospace;
  font-size:.72rem; font-weight:700; letter-spacing:.04em; color:var(--blue);
  background:rgba(59,130,246,.12); border:1px solid rgba(59,130,246,.25);
  border-radius:6px; padding:4px 8px;
}
.ssp-qru-snippet { display:block; opacity:.85; }
.ssp-qru-list .ssp-row { align-items:flex-start; }
.ssp-qru-row--staff { display:flex; align-items:flex-start; gap:8px; }
.ssp-qru-row--staff .ssp-qru-row-link {
  flex:1; min-width:0; display:flex; align-items:flex-start; gap:11px;
  padding:10px 13px; background:var(--bg2); border:1px solid var(--line); border-radius:9px;
  color:inherit; text-decoration:none;
}
.ssp-qru-row--staff .ssp-qru-row-link:hover { border-color:var(--line2); background:var(--panel); }
.ssp-qru-del { flex:none; padding-top:10px; }
.ssp-qru-del .bo-btn--danger { font-size:.75rem; padding:6px 10px; white-space:nowrap; }
/* QRU — chips de categoria (um por tipo/código do histórico) */
.ssp-qru-cats { display:flex; flex-wrap:wrap; gap:7px; margin:0 0 14px; }
.ssp-qru-cat {
  display:inline-flex; align-items:center; gap:7px;
  border:1px solid var(--line2); background:var(--bg2); color:var(--dim);
  border-radius:999px; padding:7px 13px; font-size:.82rem; font-weight:600;
  font-family:inherit; text-decoration:none; transition:.12s; cursor:pointer;
}
.ssp-qru-cat:hover { color:var(--text); border-color:var(--blue); }
.ssp-qru-cat.on { background:rgba(61,125,255,.16); color:var(--blue-soft); border-color:var(--blue); }
.ssp-qru-cat-code { font-family:'Consolas',monospace; letter-spacing:.03em; }
.ssp-qru-cat-n {
  font-family:'Consolas',monospace; font-size:.7rem; font-weight:700; line-height:1;
  background:rgba(148,163,184,.16); color:inherit; border-radius:999px; padding:3px 7px;
}
.ssp-qru-cat.on .ssp-qru-cat-n { background:rgba(255,255,255,.16); }
.ssp-pager {
  display:flex; flex-wrap:wrap; align-items:center; gap:6px;
  margin:0 0 14px; padding:8px 10px;
  background:var(--bg2); border:1px solid var(--line); border-radius:9px;
}
.ssp-pager--foot { margin-top:14px; margin-bottom:0; justify-content:center; }
.ssp-pager-tab, .ssp-pager-btn {
  display:inline-flex; align-items:center; justify-content:center; min-width:34px; height:32px;
  padding:0 10px; border-radius:7px; border:1px solid var(--line2);
  background:var(--panel); color:var(--text); font-size:.8rem; font-weight:600; text-decoration:none;
}
.ssp-pager-tab:hover, .ssp-pager-btn:hover { border-color:var(--blue); color:var(--blue); }
.ssp-pager-tab.on { background:linear-gradient(160deg,var(--blue),#2b5fd0); border-color:#4f86ff; color:#fff; }
.ssp-pager-gap { color:var(--mute); padding:0 4px; font-size:.85rem; }
.ssp-pager-info { color:var(--mute); font-size:.8rem; padding:0 8px; }
.ssp-pp {
  font-family:'Consolas',monospace; font-size:.78rem; color:var(--mute);
  background:var(--bg); border:1px solid var(--line); border-radius:5px; padding:3px 7px; flex:none;
}
.ssp-when {
  flex:none; white-space:nowrap; color:var(--mute);
  font-size:.74rem; font-family:'Consolas',monospace;
}

/* ----- Badges ----- */
.ssp-tag {
  font-size:.68rem; font-weight:700; padding:3px 8px; border-radius:5px;
  text-transform:uppercase; letter-spacing:.04em; white-space:nowrap; flex:none;
}
.ssp-tag--bad  { background:rgba(255,84,104,.16); color:#ff9aa6; border:1px solid rgba(255,84,104,.4); }
.ssp-tag--ok   { background:rgba(43,212,126,.14); color:#7ee8b3; border:1px solid rgba(43,212,126,.36); }
.ssp-tag--warn { background:rgba(224,176,74,.14); color:#f0cd82; border:1px solid rgba(224,176,74,.36); }
.ssp-tag--info { background:rgba(61,125,255,.14); color:var(--blue-soft); border:1px solid var(--line2); }
.ssp-tag--mute { background:var(--bg); color:var(--mute); border:1px solid var(--line); }

/* ----- Estados ----- */
.ssp-empty { color:var(--mute); font-size:.88rem; font-style:italic; padding:14px 4px; }
/* Sentinel do scroll-to-load (Logs / Prisões / Boletins) */
.ssp-more { padding:14px 8px; text-align:center; font-size:.8rem; color:var(--mute); min-height:6px; }
.ssp-more.is-loading { color:var(--dim); }
.ssp-more.ssp-more-end { font-style:italic; opacity:.7; }
/* Ícone de item (Log Baú) — PNG real via junction /ssp/items; fallback 📦 */
.ssp-ic { display:inline-flex; align-items:center; justify-content:center; flex:none; width:30px; height:30px; border-radius:7px; background:rgba(255,255,255,.04); border:1px solid var(--line); overflow:hidden; }
.ssp-ic img { width:100%; height:100%; object-fit:contain; display:block; }
.ssp-ic-none::before { content:"📦"; font-size:15px; line-height:1; opacity:.5; }
.ssp-construcao {
  text-align:center; padding:60px 20px; color:var(--mute);
  background:var(--panel); border:1px dashed var(--line2); border-radius:13px;
}
.ssp-construcao b { display:block; font-size:1.05rem; color:var(--dim); margin-bottom:6px; }

/* ----- Telas de bloqueio (login / negado) ----- */
.ssp-gate-wrap {
  min-height:100vh; display:flex; align-items:center; justify-content:center; padding:24px;
}
.ssp-card {
  max-width:440px; width:100%; text-align:center;
  background:linear-gradient(170deg,var(--panel2),var(--panel));
  border:1px solid var(--line2); border-radius:16px; padding:42px 34px 36px;
  box-shadow:0 30px 70px rgba(0,0,0,.55);
}
.ssp-card .big-shield {
  width:78px; height:78px; margin:0 auto; border-radius:50%;
  display:flex; align-items:center; justify-content:center; color:var(--blue);
  background:radial-gradient(circle at 35% 25%,rgba(61,125,255,.3),rgba(61,125,255,.04));
  border:1px solid var(--line2);
}
.ssp-card .big-shield svg { width:38px; height:38px; }
.ssp-card .big-shield.is-bad  { color:var(--bad);
  background:radial-gradient(circle at 35% 25%,rgba(255,84,104,.28),rgba(255,84,104,.04)); }
.ssp-card .big-shield.is-warn { color:var(--gold);
  background:radial-gradient(circle at 35% 25%,rgba(224,176,74,.26),rgba(224,176,74,.04)); }
.ssp-card h1 { font-size:1.4rem; font-weight:800; letter-spacing:.04em; margin-top:16px; text-transform:uppercase; }
.ssp-card p { color:var(--dim); font-size:.94rem; line-height:1.6; margin-top:12px; }
.ssp-btn {
  display:inline-flex; align-items:center; gap:9px; justify-content:center; width:100%;
  margin-top:22px; padding:13px 20px; border-radius:10px; font-weight:700; font-size:.95rem;
  background:linear-gradient(160deg,var(--blue),#2b5fd0); color:#fff; border:1px solid #4f86ff; cursor:pointer;
}
.ssp-btn:hover { filter:brightness(1.1); }
.ssp-btn svg { width:20px; height:20px; }
.ssp-btn--ghost { background:none; color:var(--dim); border:1px solid var(--line2); }
.ssp-btn--ghost:hover { border-color:var(--bad); color:#ffd0d6; filter:none; }
.ssp-aviso {
  display:flex; gap:10px; align-items:flex-start; text-align:left;
  margin-top:18px; padding:13px 15px; border-radius:10px; font-size:.85rem; line-height:1.55;
  background:rgba(224,176,74,.09); border:1px solid rgba(224,176,74,.35); color:var(--dim);
}
.ssp-aviso svg { width:20px; height:20px; flex:none; color:var(--gold); margin-top:1px; }
.ssp-aviso b { color:var(--gold); }
.ssp-aviso--erro { background:rgba(255,84,104,.1); border-color:rgba(255,84,104,.4); color:#ff9aa6; }
.ssp-aviso--erro b { color:#ff9aa6; }

/* ----- Gerador de BO ----- */
.cb-wrap { display:grid; gap:18px; grid-template-columns:1.05fr .95fr; align-items:start; }
.cb-form { display:flex; flex-direction:column; gap:14px; }
.cb-sec {
  background:linear-gradient(170deg,var(--panel2),var(--panel));
  border:1px solid var(--line2); border-radius:12px; padding:16px 18px;
}
.cb-sec > h3 { font-size:.88rem; font-weight:700; margin-bottom:11px; color:var(--blue-soft); }
.cb-field { margin-bottom:11px; }
.cb-field:last-child { margin-bottom:0; }
.cb-field > label {
  display:block; font-size:.72rem; font-weight:700; letter-spacing:.05em;
  text-transform:uppercase; color:var(--mute); margin-bottom:5px;
}
.cb-inp {
  width:100%; background:var(--bg2); color:var(--text); border:1px solid var(--line2);
  border-radius:8px; padding:9px 12px; font-size:.9rem; font-family:inherit; outline:none;
}
.cb-inp:focus { border-color:var(--blue); }
textarea.cb-inp { min-height:120px; resize:vertical; line-height:1.55; }
.cb-grid2 { display:grid; gap:11px; grid-template-columns:1fr 1fr; }
.cb-rows { display:flex; flex-direction:column; gap:8px; }
.cb-row { display:flex; gap:7px; }
.cb-row .cb-inp { flex:1; min-width:0; }
.cb-row .cb-sm { flex:none; width:140px; }
.cb-del {
  flex:none; width:38px; border:1px solid var(--line2); background:var(--bg2);
  color:var(--mute); border-radius:8px; cursor:pointer; font-size:1.05rem; line-height:1;
}
.cb-del:hover { border-color:var(--bad); color:#ffd0d6; }
.cb-add {
  align-self:flex-start; margin-top:9px; background:none; border:1px dashed var(--line2);
  color:var(--blue-soft); border-radius:8px; padding:8px 14px; font-size:.81rem; font-weight:600; cursor:pointer;
}
.cb-add:hover { border-color:var(--blue); }
.cb-preview { position:sticky; top:80px; }
.cb-saida {
  background:#05070c; border:1px solid var(--line2); border-radius:12px; padding:18px;
  font-family:'Consolas','Courier New',monospace; font-size:.79rem; line-height:1.5;
  color:#cfe0ff; white-space:pre-wrap; word-break:break-word;
  min-height:320px; max-height:64vh; overflow:auto;
}
.cb-acoes { display:flex; gap:9px; margin-top:11px; }
.cb-dica { font-size:.8rem; color:var(--mute); margin-bottom:11px; line-height:1.5; }
.cb-fatos { display:grid; gap:8px 14px; grid-template-columns:repeat(auto-fill,minmax(205px,1fr)); }
.cb-ck { display:flex; align-items:center; gap:8px; font-size:.85rem; color:var(--dim); cursor:pointer; }
.cb-ck input { accent-color:var(--blue); width:15px; height:15px; flex:none; cursor:pointer; }
.cb-regen {
  margin-left:8px; background:none; border:1px solid var(--line2); color:var(--blue-soft);
  border-radius:6px; padding:3px 9px; font-size:.7rem; font-weight:600; cursor:pointer;
  text-transform:none; letter-spacing:0;
}
.cb-regen:hover { border-color:var(--blue); }
.cb-ac-list {
  position:absolute; z-index:60; max-height:240px; overflow:auto;
  background:var(--panel); border:1px solid var(--line2); border-radius:8px;
  box-shadow:0 14px 32px rgba(0,0,0,.55);
}
.cb-ac-item {
  display:flex; justify-content:space-between; align-items:center; gap:10px;
  padding:8px 12px; font-size:.86rem; cursor:pointer;
}
.cb-ac-item b { color:var(--mute); font-family:'Consolas',monospace; font-size:.77rem; font-weight:600; }
.cb-ac-item:hover, .cb-ac-item.on { background:var(--panel2); }
.cb-ac-item:hover b, .cb-ac-item.on b { color:var(--blue-soft); }
.cb-pick-list { max-height:280px; }
.cb-pick-list .cb-ac-item { display:block; white-space:normal; line-height:1.35; }
@media (max-width:880px) { .cb-wrap { grid-template-columns:1fr; } .cb-preview { position:static; } }

/* ----- Ficha do cidadão ----- */
.fic-head {
  display:flex; gap:18px; align-items:center; padding:20px 22px;
  background:linear-gradient(170deg,var(--panel2),var(--panel));
  border:1px solid var(--line2); border-radius:14px;
}
.fic-head.is-wanted { border-color:rgba(255,84,104,.5); }
.fic-foto {
  width:78px; height:78px; border-radius:12px; flex:none;
  border:1px solid var(--line2); background:var(--bg2); object-fit:cover;
}
.fic-foto-vazia { display:flex; align-items:center; justify-content:center; color:var(--mute); }
.fic-foto-vazia svg { width:36px; height:36px; }
.fic-head h1 { font-size:1.32rem; font-weight:800; display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.fic-head h1 .pp {
  font-family:'Consolas',monospace; font-size:.78rem; font-weight:600; color:var(--mute);
  background:var(--bg); border:1px solid var(--line); border-radius:6px; padding:3px 9px;
}
.fic-head .meta { color:var(--dim); font-size:.87rem; margin-top:5px; }
.fic-wanted {
  margin-top:14px; padding:14px 18px; border-radius:11px;
  background:rgba(255,84,104,.1); border:1px solid rgba(255,84,104,.42);
}
.fic-wanted b { color:#ff9aa6; font-size:.8rem; letter-spacing:.09em; }
.fic-wanted p { color:var(--text); font-size:.95rem; margin-top:5px; }
.fic-wanted .sub { color:var(--mute); font-size:.78rem; }
.fic-grid { display:grid; grid-template-columns:auto 1fr; gap:9px 16px; font-size:.87rem; }
.fic-grid dt { color:var(--mute); white-space:nowrap; }
.fic-grid dd { color:var(--text); font-weight:600; text-align:right; }

/* ----- Boletim: detalhe + formulário ----- */
.bo-acoes { display:flex; gap:9px; flex-wrap:wrap; margin-bottom:16px; }
.bo-btn {
  display:inline-flex; align-items:center; gap:7px; padding:9px 16px; border-radius:9px;
  font-size:.85rem; font-weight:700; cursor:pointer; border:1px solid var(--line2);
  background:var(--panel); color:var(--text);
}
.bo-btn:hover { border-color:var(--line2); filter:brightness(1.15); }
.bo-btn--primary { background:linear-gradient(160deg,var(--blue),#2b5fd0); border-color:#4f86ff; color:#fff; }
.bo-btn--danger:hover { border-color:var(--bad); color:#ffd0d6; }
.ssp-filtro { display:flex; align-items:stretch; gap:0; flex:1; max-width:460px; }
.ssp-filtro input {
  flex:1; min-width:0; background:var(--bg2); color:var(--text);
  border:1px solid var(--line2); border-right:0; border-radius:9px 0 0 9px;
  padding:10px 13px; font-size:.9rem; font-family:inherit; outline:none;
}
.ssp-filtro input:focus { border-color:var(--blue); }
.ssp-filtro button {
  flex:none; background:linear-gradient(160deg,var(--blue),#2b5fd0); color:#fff;
  border:1px solid #4f86ff; border-radius:0 9px 9px 0;
  padding:10px 20px; font-size:.85rem; font-weight:700; font-family:inherit; cursor:pointer;
}
.ssp-filtro button:hover { filter:brightness(1.1); }
/* Select no tema (Log Baú) — combina com .ssp-filtro input + seta custom */
.ssp-select {
  background:var(--bg2); color:var(--text); border:1px solid var(--line2); border-radius:9px;
  padding:10px 36px 10px 13px; font-size:.9rem; font-family:inherit; outline:none; cursor:pointer;
  max-width:100%; -webkit-appearance:none; -moz-appearance:none; appearance:none;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%239babc8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M6 9l6 6 6-6'/></svg>");
  background-repeat:no-repeat; background-position:right 12px center;
}
.ssp-select:focus { border-color:var(--blue); }
.ssp-select option { background:var(--panel); color:var(--text); }
/* Log Baú — busca + filtros Depósito/Retirada */
.bau-toolbar { display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin:0 0 14px; }
.bau-toolbar .ssp-filtro-local { flex:1; min-width:200px; max-width:340px; }
.bau-filtros { display:flex; gap:6px; }
.bau-fbtn {
  border:1px solid var(--line2); background:var(--bg2); color:var(--dim); border-radius:8px;
  padding:8px 13px; font-size:.82rem; font-weight:600; font-family:inherit; cursor:pointer; transition:.12s;
}
.bau-fbtn:hover { color:var(--text); border-color:var(--blue); }
.bau-fbtn.on { background:rgba(61,125,255,.16); color:var(--blue-soft); border-color:var(--blue); }
.bo-texto {
  white-space:normal; line-height:1.62; font-size:.94rem; color:var(--text);
  background:var(--bg2); border:1px solid var(--line); border-radius:10px; padding:16px 18px;
}
.bo-pessoas { display:flex; flex-wrap:wrap; gap:7px; }
.bo-pessoas a, .bo-pessoas span {
  font-size:.82rem; padding:5px 10px; border-radius:6px;
  background:var(--bg2); border:1px solid var(--line);
}
.bo-pessoas a:hover { border-color:var(--blue); color:var(--blue-soft); }
.ssp-form { display:flex; flex-direction:column; gap:14px; max-width:680px; }
.ssp-form label { display:block; font-size:.82rem; font-weight:700; color:var(--dim);
  text-transform:uppercase; letter-spacing:.05em; margin-bottom:6px; }
.ssp-form input[type=text], .ssp-form textarea {
  width:100%; background:var(--bg2); color:var(--text); border:1px solid var(--line2);
  border-radius:9px; padding:10px 13px; font-size:.92rem; font-family:inherit; outline:none;
}
.ssp-form input[type=text]:focus, .ssp-form textarea:focus { border-color:var(--blue); }
.ssp-form textarea { min-height:170px; resize:vertical; line-height:1.55; }
.ssp-form .hint { font-size:.78rem; color:var(--mute); margin-top:5px; }
.ssp-form .row2 { display:grid; gap:14px; grid-template-columns:1fr 1fr; }
.ssp-form .ck { display:flex; align-items:center; gap:8px; font-size:.9rem; }
.ssp-form .acoes { display:flex; gap:10px; margin-top:6px; }

/* ----- In-game tablet: chat/PM preenchem área sem rolagem dupla ----- */
#tablet-content {
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

body.ssp-ingame.ssp-embed {
  display: flex;
  flex-direction: column;
  height: 100%;
  overflow: hidden;
}

body.ssp-ingame.ssp-embed .ssp-top,
body.ssp-ingame.ssp-embed .ssp-nav,
#tablet-content > .ssp-top,
#tablet-content > .ssp-nav {
  flex: none;
}

body.ssp-ingame #ssp-tablet-scroll,
body.ssp-ingame.ssp-embed #ssp-tablet-scroll,
#tablet-content #ssp-tablet-scroll {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  width: 100%;
}

body.ssp-ingame #ssp-tablet-scroll:has(.ssp-chat),
body.ssp-ingame #ssp-tablet-scroll:has(.pm-chat),
body.ssp-ingame.ssp-embed #ssp-tablet-scroll:has(.ssp-chat),
body.ssp-ingame.ssp-embed #ssp-tablet-scroll:has(.pm-chat),
#tablet-content #ssp-tablet-scroll:has(.ssp-chat),
#tablet-content #ssp-tablet-scroll:has(.pm-chat) {
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

body.ssp-ingame .ssp-main:has(.ssp-chat),
body.ssp-ingame .ssp-main:has(.pm-wrap:has(.pm-chat)),
body.ssp-ingame.ssp-embed .ssp-main:has(.ssp-chat),
body.ssp-ingame.ssp-embed .ssp-main:has(.pm-wrap:has(.pm-chat)),
#tablet-content .ssp-main:has(.ssp-chat),
#tablet-content .ssp-main:has(.pm-wrap:has(.pm-chat)) {
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 6px 8px 8px !important;
  overflow: hidden;
  width: 100%;
  box-sizing: border-box;
}

body.ssp-ingame .ssp-main:has(.ssp-chat) > .ssp-h1,
body.ssp-ingame.ssp-embed .ssp-main:has(.ssp-chat) > .ssp-h1,
#tablet-content .ssp-main:has(.ssp-chat) > .ssp-h1 {
  display: none;
}

body.ssp-ingame .ssp-main:has(.ssp-chat) .ssp-chat-orgbar,
body.ssp-ingame.ssp-embed .ssp-main:has(.ssp-chat) .ssp-chat-orgbar,
#tablet-content .ssp-main:has(.ssp-chat) .ssp-chat-orgbar {
  flex: none;
  margin: 0 !important;
  font-size: 12px;
}

body.ssp-ingame .ssp-main:has(.ssp-chat) .ssp-aviso,
body.ssp-ingame .ssp-main:has(.ssp-chat) .ssp-flash,
body.ssp-ingame.ssp-embed .ssp-main:has(.ssp-chat) .ssp-aviso,
body.ssp-ingame.ssp-embed .ssp-main:has(.ssp-chat) .ssp-flash,
#tablet-content .ssp-main:has(.ssp-chat) .ssp-aviso,
#tablet-content .ssp-main:has(.ssp-chat) .ssp-flash {
  flex: none;
  margin: 0 !important;
  padding: 8px 10px;
  font-size: 12px;
}

body.ssp-ingame .ssp-chat,
body.ssp-ingame.ssp-embed .ssp-chat,
#tablet-content .ssp-chat {
  flex: 1;
  min-height: 0;
  height: auto !important;
  max-height: none !important;
  margin-top: 0;
  width: 100%;
  border-radius: 12px;
}

body.ssp-ingame .ssp-chat-body,
body.ssp-ingame.ssp-embed .ssp-chat-body,
#tablet-content .ssp-chat-body {
  flex: 1;
  min-height: 0;
  padding: 14px 16px;
}

body.ssp-ingame .ssp-chat-msg,
body.ssp-ingame.ssp-embed .ssp-chat-msg,
#tablet-content .ssp-chat-msg {
  max-width: 82%;
}

body.ssp-ingame .ssp-main:has(.pm-wrap),
body.ssp-ingame.ssp-embed .ssp-main:has(.pm-wrap),
#tablet-content .ssp-main:has(.pm-wrap) {
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 6px 8px 8px !important;
  margin: 0 !important;
  width: 100%;
  overflow: hidden;
  box-sizing: border-box;
}

body.ssp-ingame .ssp-main:has(.pm-wrap) > .ssp-h1,
body.ssp-ingame.ssp-embed .ssp-main:has(.pm-wrap) > .ssp-h1,
#tablet-content .ssp-main:has(.pm-wrap) > .ssp-h1 {
  display: none;
}

body.ssp-ingame .pm-wrap,
body.ssp-ingame.ssp-embed .pm-wrap,
#tablet-content .pm-wrap {
  width: 100% !important;
  max-width: none !important;
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
}

body.ssp-ingame .pm-wrap:not(:has(.pm-chat)),
body.ssp-ingame.ssp-embed .pm-wrap:not(:has(.pm-chat)),
#tablet-content .pm-wrap:not(:has(.pm-chat)) {
  overflow-y: auto;
}

body.ssp-ingame .pm-wrap:has(.pm-chat) .pm-back,
body.ssp-ingame.ssp-embed .pm-wrap:has(.pm-chat) .pm-back,
#tablet-content .pm-wrap:has(.pm-chat) .pm-back {
  margin-bottom: 6px;
}

body.ssp-ingame .pm-wrap:has(.pm-chat),
body.ssp-ingame.ssp-embed .pm-wrap:has(.pm-chat),
#tablet-content .pm-wrap:has(.pm-chat) {
  overflow: hidden;
}

body.ssp-ingame .pm-chat,
body.ssp-ingame.ssp-embed .pm-chat,
#tablet-content .pm-chat {
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  width: 100%;
}

body.ssp-ingame .pm-body,
body.ssp-ingame.ssp-embed .pm-body,
#tablet-content .pm-body {
  flex: 1;
  min-height: 0;
  height: auto !important;
}

body.ssp-ingame .pm-msg,
body.ssp-ingame.ssp-embed .pm-msg,
#tablet-content .pm-msg {
  max-width: 82%;
}

@media (max-width:720px) {
  .ssp-top { flex-wrap:wrap; }
  .ssp-busca { order:3; max-width:none; width:100%; margin-left:0; }
}

/* ================================================================== */
/* Gestão — sub-abas + Dashboard de Patrulhamento                     */
/* ================================================================== */
.ssp-subnav { display:flex; gap:6px; margin:2px 0 18px; border-bottom:1px solid var(--line); }
.ssp-subnav-tab {
  display:inline-flex; align-items:center; gap:8px; padding:9px 16px 11px;
  font-size:.86rem; font-weight:700; color:var(--dim);
  border-bottom:2px solid transparent; margin-bottom:-1px;
}
.ssp-subnav-tab svg { width:16px; height:16px; }
.ssp-subnav-tab:hover { color:var(--text); }
.ssp-subnav-tab.on { color:var(--blue-soft); border-bottom-color:var(--blue); }

/* seletor de janela (pills) */
.ssp-pat-windows { display:inline-flex; gap:4px; margin-left:auto; background:var(--bg2);
  border:1px solid var(--line2); border-radius:10px; padding:3px; }
.ssp-pat-win {
  border:0; background:none; cursor:pointer; font-family:inherit;
  padding:6px 13px; border-radius:7px; font-size:.8rem; font-weight:700; color:var(--dim);
  transition:background .15s ease, color .15s ease;
}
.ssp-pat-win:hover { color:var(--text); }
.ssp-pat-win.on { background:linear-gradient(160deg,var(--blue),#2b5fd0); color:#fff; box-shadow:0 2px 10px rgba(61,125,255,.35); }

.ssp-pat { display:block; }

/* KPIs */
.ssp-pat-kpis { display:grid; gap:12px; grid-template-columns:repeat(auto-fit,minmax(178px,1fr)); margin-bottom:16px; }
.ssp-kpi {
  background:linear-gradient(168deg,var(--panel2),var(--panel)); border:1px solid var(--line);
  border-radius:13px; padding:15px 17px; position:relative; overflow:hidden;
}
.ssp-kpi-top { font-size:.72rem; font-weight:700; letter-spacing:.05em; text-transform:uppercase;
  color:var(--mute); display:flex; align-items:center; gap:7px; }
.ssp-kpi-v { font-size:1.7rem; font-weight:800; line-height:1.1; margin-top:8px; color:var(--text); }
.ssp-kpi-v small { font-size:.9rem; font-weight:700; color:var(--mute); margin-left:4px; }
.ssp-kpi-v.ssp-kpi-name { font-size:1.12rem; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.ssp-kpi-l { font-size:.74rem; color:var(--mute); margin-top:6px; }
.ssp-kpi.is-tempo .ssp-kpi-v { color:var(--blue-soft); }
.ssp-kpi.is-top { border-color:rgba(224,176,74,.4); }
.ssp-kpi.is-top .ssp-kpi-v { color:var(--gold); }
.ssp-kpi.is-live { border-color:rgba(43,212,126,.4); }
.ssp-kpi.is-live .ssp-kpi-v { color:var(--ok); }
.ssp-kpi-dot { width:8px; height:8px; border-radius:50%; background:var(--ok); box-shadow:0 0 7px var(--ok);
  animation:ssp-pulse 2s ease-in-out infinite; }
.ssp-kpi-bar { height:5px; border-radius:3px; background:var(--bg); margin-top:9px; overflow:hidden; }
.ssp-kpi-bar i { display:block; height:100%; border-radius:3px; background:linear-gradient(90deg,var(--blue),var(--blue-soft));
  transition:width .6s cubic-bezier(.2,.7,.2,1); }
.ssp-kpi-v.is-up   { color:var(--ok); }
.ssp-kpi-v.is-down { color:var(--bad); }
.ssp-kpi-v.is-mute { color:var(--dim); }

/* selo de atualização (cache horário) */
.ssp-pat-stamp { font-size:.74rem; color:var(--mute); margin:-4px 0 14px; }
.ssp-pat-stamp b { color:var(--dim); font-weight:700; }

/* grade de gráficos */
.ssp-pat-grid { display:grid; gap:16px; grid-template-columns:1.9fr 1fr; align-items:stretch; margin-bottom:16px; }
.ssp-pat-card { padding:16px 18px; border-radius:14px; }
.ssp-pat-h { display:flex; align-items:center; gap:12px; margin-bottom:12px; }
.ssp-pat-h .t { font-size:.92rem; font-weight:800; letter-spacing:.02em; }
.ssp-pat-h .s { font-size:.74rem; color:var(--mute); font-weight:600; margin-left:auto; text-align:right; }
.ssp-pat-nodata { color:var(--mute); font-style:italic; font-size:.85rem; padding:30px 6px; text-align:center; }

/* SVG genérico */
.ssp-svg { width:100%; height:auto; display:block; overflow:visible; }
.ssp-svg-grid { stroke:var(--line); stroke-width:1; stroke-dasharray:3 4; }
.ssp-svg-ylab { fill:var(--mute); font-size:13px; text-anchor:end; font-family:'Consolas',monospace; }
.ssp-svg-xlab { fill:var(--mute); font-size:13px; text-anchor:middle; }
.ssp-svg-area { stroke:none; }
.ssp-svg-line { fill:none; stroke:var(--blue-soft); stroke-width:2.4; vector-effect:non-scaling-stroke;
  stroke-linejoin:round; stroke-linecap:round; filter:drop-shadow(0 2px 6px rgba(61,125,255,.4)); }
.ssp-svg-dot { fill:#0c111c; stroke:var(--blue-soft); stroke-width:2; vector-effect:non-scaling-stroke; }
.ssp-svg-hit { fill:transparent; cursor:crosshair; }
.ssp-svg-hit:hover { fill:rgba(61,125,255,.07); }

/* donut */
.ssp-donut-wrap { display:flex; align-items:center; gap:16px; flex-wrap:wrap; justify-content:center; padding:6px 0; }
.ssp-donut-svg { width:148px; height:148px; flex:none; }
.ssp-donut-bg { fill:none; stroke:var(--bg); stroke-width:16; }
.ssp-donut-fg { fill:none; stroke:var(--ok); stroke-width:16; stroke-linecap:round;
  transition:stroke-dasharray .7s cubic-bezier(.2,.7,.2,1); filter:drop-shadow(0 0 5px rgba(43,212,126,.4)); }
.ssp-donut-pct { fill:var(--text); font-size:30px; font-weight:800; text-anchor:middle; }
.ssp-donut-cap { fill:var(--mute); font-size:13px; text-anchor:middle; text-transform:uppercase; letter-spacing:.08em; }
.ssp-donut-leg { display:flex; flex-direction:column; gap:9px; min-width:120px; }
.ssp-donut-leg .lg { display:flex; align-items:center; gap:9px; font-size:.82rem; color:var(--dim); }
.ssp-donut-leg .lg b { margin-left:auto; color:var(--text); font-size:.95rem; }
.ssp-donut-leg .d { width:11px; height:11px; border-radius:3px; flex:none; }
.ssp-donut-leg .d.on { background:var(--ok); }
.ssp-donut-leg .d.off { background:var(--line2); }
.ssp-donut-leg .d.live { background:var(--blue); box-shadow:0 0 6px var(--blue); }

/* insights */
.ssp-pat-insights { display:flex; flex-wrap:wrap; gap:10px; margin-bottom:16px; }
.ssp-insight {
  flex:1 1 240px; background:rgba(61,125,255,.07); border:1px solid var(--line2);
  border-left:3px solid var(--blue); border-radius:9px; padding:11px 14px;
  font-size:.84rem; color:var(--text); line-height:1.4;
}
a.ssp-insight-link { text-decoration:none; cursor:pointer; display:block; transition:background .15s,border-color .15s; }
a.ssp-insight-link:hover { background:rgba(61,125,255,.14); border-color:var(--blue); }
.ssp-insight-go { display:inline-block; margin-left:4px; font-weight:700; color:var(--blue); white-space:nowrap; }
.ssp-sempat-banner {
  display:flex; align-items:center; gap:10px; flex-wrap:wrap;
  background:rgba(255,196,61,.09); border:1px solid rgba(255,196,61,.4);
  border-radius:9px; padding:9px 13px; margin:0 0 12px; font-size:.84rem; color:var(--text);
}
.ssp-sempat-clear { margin-left:auto; color:var(--blue); font-weight:700; text-decoration:none; white-space:nowrap; }
.ssp-sempat-clear:hover { text-decoration:underline; }

/* ranking */
.ssp-pat-rank { display:flex; flex-direction:column; gap:7px; }
.ssp-rank-row {
  display:grid; grid-template-columns:26px minmax(120px,1.4fr) 2fr auto; align-items:center; gap:12px;
  padding:6px 6px; border-radius:9px; color:inherit;
}
.ssp-rank-row:hover { background:rgba(61,125,255,.06); }
.ssp-rank-pos { width:24px; height:24px; border-radius:7px; display:flex; align-items:center; justify-content:center;
  font-size:.78rem; font-weight:800; background:var(--bg); color:var(--mute); border:1px solid var(--line); }
.ssp-rank-pos.is-top { color:var(--blue-soft); border-color:var(--line2); }
.ssp-rank-pos.is-1 { background:linear-gradient(160deg,var(--gold),#b9842b); color:#160f00; border-color:var(--gold); }
.ssp-rank-id { min-width:0; display:flex; flex-direction:column; gap:2px; }
.ssp-rank-nm { font-weight:700; font-size:.88rem; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
  display:flex; align-items:center; gap:7px; }
.ssp-rank-pat { font-size:.72rem; color:var(--mute); overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
  display:flex; align-items:center; gap:6px; }
.ssp-rank-track { height:14px; border-radius:7px; background:var(--bg); overflow:hidden; }
.ssp-rank-bar { display:block; height:100%; width:0; border-radius:7px;
  background:linear-gradient(90deg,#2b5fd0,var(--blue-soft)); transition:width .8s cubic-bezier(.2,.7,.2,1); }
.ssp-rank-bar.go { width:var(--w); }
.ssp-rank-v { font-family:'Consolas',monospace; font-size:.82rem; font-weight:700; color:var(--text);
  min-width:64px; text-align:right; }
.ssp-rank-bar.is-1 { background:linear-gradient(90deg,#b9842b,var(--gold)); }
.ssp-rank-bar.corp-fed { background:linear-gradient(90deg,#9a7320,var(--gold)); }
.ssp-rank-bar.corp-gcm { background:linear-gradient(90deg,#7e8aa5,#eef2fb); }
.ssp-rank-bar.corp-pc  { background:linear-gradient(90deg,#2b3650,#7e93c4); }
.ssp-now-pill {
  font-size:.6rem; font-weight:800; letter-spacing:.05em; padding:1px 6px; border-radius:5px;
  background:rgba(43,212,126,.18); color:var(--ok); border:1px solid rgba(43,212,126,.5); flex:none;
}

/* tabela detalhada */
.ssp-pat-tablewrap { padding:16px 18px; border-radius:14px; }
.ssp-pat-search {
  margin-left:auto; background:var(--bg2); color:var(--text); border:1px solid var(--line2);
  border-radius:8px; padding:7px 11px; font-size:.82rem; outline:none; min-width:180px; font-family:inherit;
}
.ssp-pat-search:focus { border-color:var(--blue); }
.ssp-pat-table .ssp-pp { font-family:'Consolas',monospace; font-size:.72rem; color:var(--blue-soft);
  background:rgba(61,125,255,.12); border:1px solid var(--line2); border-radius:5px; padding:1px 6px; }
.ssp-pat-of { font-weight:600; }
.ssp-pat-of:hover { color:var(--blue-soft); }
.ssp-pat-cell { display:inline-flex; flex-direction:column; align-items:flex-end; gap:4px; min-width:120px; }
.ssp-pat-cell b { font-family:'Consolas',monospace; font-weight:700; }
.ssp-pat-mini { width:110px; height:5px; border-radius:3px; background:var(--bg); overflow:hidden; }
.ssp-pat-mini i { display:block; height:100%; border-radius:3px; background:linear-gradient(90deg,#2b5fd0,var(--blue-soft));
  transition:width .5s ease; }
.ssp-pat-mini i.corp-fed { background:linear-gradient(90deg,#9a7320,var(--gold)); }
.ssp-pat-mini i.corp-gcm { background:linear-gradient(90deg,#7e8aa5,#eef2fb); }
.ssp-pat-mini i.corp-pc  { background:linear-gradient(90deg,#2b3650,#7e93c4); }
.ssp-spk-cell { vertical-align:middle; }
.ssp-spk { width:84px; height:26px; display:inline-block; }
.ssp-spk-b { fill:var(--line2); }
.ssp-spk-b.is-today { fill:var(--blue-soft); }

/* tooltip flutuante (gráficos) */
.ssp-pat-tip {
  position:fixed; z-index:100000; pointer-events:none; max-width:240px;
  background:var(--panel2); border:1px solid var(--line2); border-radius:8px;
  padding:8px 11px; font-size:.78rem; color:var(--text); line-height:1.45;
  box-shadow:0 10px 26px rgba(0,0,0,.55);
}
.ssp-pat-tip b { color:var(--blue-soft); }

@media (max-width:880px) {
  .ssp-pat-grid { grid-template-columns:1fr; }
  .ssp-pat-windows { margin-left:0; width:100%; justify-content:space-between; }
  .ssp-rank-row { grid-template-columns:24px 1.3fr 1.6fr auto; }
}
