/* ============================================================
   DMB — Gestão de Material Bélico
   Tema tático/militar premium (grafite + oliva + dourado)
   ============================================================ */
:root{
  /* Tema CLARO — paleta do brasão DMB: cinza (engrenagem) + dourado + azul.
     Os nomes --olive/--khaki são mantidos por compatibilidade:
     --olive carrega o DOURADO; --khaki carrega o AZUL (destaques). */
  --bg:#e7eaef;           /* cinza claro de fundo (engrenagem) */
  --bg-soft:#eef1f500;
  --panel:#ffffff;        /* cartões / superfícies */
  --panel-2:#f4f6fa;
  --panel-3:#eaeef4;
  --line:#d3d9e2;         /* bordas */
  --line-soft:#e4e8ee;
  --ink:#163556;          /* títulos (azul-marinho do brasão) */
  --olive:#bf941f;        /* dourado (accent primário) */
  --olive-bright:#e3b53c; /* dourado claro (gradientes) */
  --khaki:#1d4e84;        /* azul (números/títulos de destaque) */
  --gold:#a9821b;         /* dourado escuro (selos) */
  --steel:#1763a6;        /* azul (brasão) */
  --steel-deep:#0e3a6b;   /* azul escuro */
  --text:#1c2a3a;         /* texto principal */
  --muted:#5b6776;        /* texto secundário */
  --muted-2:#8893a2;      /* texto terciário */
  --danger:#c43d2e;
  --warn:#bd8214;
  --info:#1763a6;
  --ok:#1c8a60;
  --radius:14px;
  --radius-sm:10px;
  --shadow:0 14px 40px rgba(22,53,86,.14);
  --shadow-sm:0 4px 16px rgba(22,53,86,.10);
  --ease:.18s cubic-bezier(.4,0,.2,1);
}
*{box-sizing:border-box}
/* garante que o atributo hidden sempre oculte, mesmo com display:flex de autor
   (corrige modais/sub-abas aparecendo sozinhos sobre o painel) */
[hidden]{display:none!important}
html,body{margin:0;height:100%}
body{
  font-family:"Inter",system-ui,Roboto,Arial,sans-serif;
  background:var(--bg);color:var(--text);font-size:14px;-webkit-font-smoothing:antialiased;
}
h1,h2,h3,.font-tac{font-family:"Oxanium","Inter",system-ui,sans-serif}
a{color:inherit;text-decoration:none}
button{font-family:inherit;cursor:pointer;color:inherit}
svg{width:1.15em;height:1.15em;display:inline-block;vertical-align:-.18em;flex:none}
::-webkit-scrollbar{width:10px;height:10px}
::-webkit-scrollbar-thumb{background:#c2c9d4;border-radius:8px;border:2px solid var(--bg)}
::-webkit-scrollbar-thumb:hover{background:#a9b2c0}

/* ---------- Botões ---------- */
.btn-primario{
  display:inline-flex;align-items:center;gap:7px;background:linear-gradient(180deg,var(--olive-bright),var(--olive));
  color:#23190a;border:1px solid #d3b24e;border-radius:var(--radius-sm);padding:10px 16px;font-weight:700;
  box-shadow:0 2px 0 rgba(0,0,0,.3),inset 0 1px 0 rgba(255,255,255,.35);transition:var(--ease);
}
.btn-primario:hover{filter:brightness(1.1);transform:translateY(-1px)}
.btn-primario:active{transform:translateY(0)}
.btn-bloco{width:100%;justify-content:center;margin-top:24px;padding:13px}
.btn-ghost{
  display:inline-flex;align-items:center;gap:6px;background:transparent;color:var(--muted);
  border:1px solid var(--line);border-radius:var(--radius-sm);padding:9px 14px;font-weight:600;transition:var(--ease);
}
.btn-ghost:hover{border-color:var(--olive-bright);color:var(--text)}
.btn-perigo{
  display:inline-flex;align-items:center;gap:7px;background:#c0392b;color:#fff;
  border:1px solid #a5281b;border-radius:var(--radius-sm);padding:9px 15px;font-weight:600;
  font-family:inherit;cursor:pointer;transition:var(--ease);
}
.btn-perigo:hover{background:#a5281b;transform:translateY(-1px)}
.btn-perigo svg{width:17px;height:17px}
.alerta{padding:11px 13px;border-radius:var(--radius-sm);font-size:13px;margin:4px 0}
.alerta.erro{background:rgba(196,61,46,.10);border:1px solid rgba(196,61,46,.4);color:#a3271a}

/* ============================================================
   LOGIN
   ============================================================ */
.tela-login{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:20px;position:relative;overflow:hidden}
.login-fundo{
  position:fixed;inset:0;z-index:0;
  background:
    radial-gradient(900px 500px at 15% -10%,rgba(23,99,166,.16),transparent 60%),
    radial-gradient(700px 500px at 110% 110%,rgba(216,183,92,.16),transparent 55%),
    repeating-linear-gradient(135deg,rgba(22,53,86,.022) 0 2px,transparent 2px 22px),
    #dfe4ea;
}
.login-painel{
  position:relative;z-index:1;display:flex;width:780px;max-width:100%;background:var(--panel);
  border:1px solid var(--line);border-radius:20px;overflow:hidden;box-shadow:var(--shadow);
}
.login-marca{
  width:300px;padding:42px 34px;background:
    linear-gradient(160deg,rgba(23,99,166,.10),rgba(216,183,92,.06)),var(--panel-2);
  border-right:1px solid var(--line);display:flex;flex-direction:column;justify-content:center;
  align-items:center;text-align:center;
}
.login-brasao{font-size:60px;line-height:0;color:var(--olive-bright)}
.login-brasao svg{width:62px;height:62px}
.login-marca h1{margin:16px 0 0;font-size:34px;letter-spacing:1px;color:var(--ink);font-weight:800}
.login-marca-sub{margin:18px 0 0;color:var(--khaki);font-size:15px;font-weight:600;line-height:1.5;letter-spacing:.5px}
.login-tags{margin-top:30px;display:flex;flex-direction:column;gap:9px;font-size:11.5px;color:var(--muted)}
.login-tags span{letter-spacing:.3px}
.login-card{flex:1;padding:42px 38px}
.login-card h2{margin:0;font-size:22px;color:var(--ink)}
.login-card-sub{margin:4px 0 22px;color:var(--muted);font-size:13px}
.login-card label{display:block;font-size:11px;color:var(--muted);margin:14px 0 6px;text-transform:uppercase;letter-spacing:1.5px;font-weight:600}
.login-card input{
  width:100%;padding:12px 14px;background:#f4f7fb;border:1px solid var(--line);
  border-radius:var(--radius-sm);color:var(--text);font-size:15px;transition:var(--ease);
}
.login-card input:focus{outline:none;border-color:var(--olive-bright);box-shadow:0 0 0 3px rgba(214,175,55,.15)}
.login-rodape{margin-top:22px;font-size:11px;color:var(--muted-2);text-align:center;letter-spacing:.5px}
/* Crédito do desenvolvedor — flutuante, no rodapé bem no final da tela */
.dev-credito{position:fixed;left:0;right:0;bottom:10px;text-align:center;font-size:11px;
  letter-spacing:.6px;color:var(--muted-2);z-index:3;pointer-events:none}
.dev-credito b{color:var(--khaki);font-weight:600}
/* Busca na Gestão de Usuários */
.busca-usuario{width:100%;margin:0 0 14px;padding:11px 14px;background:var(--panel-2);
  border:1px solid var(--line);border-radius:var(--radius-sm);color:var(--text);font-size:14px}
.busca-usuario:focus{outline:none;border-color:var(--olive-bright);box-shadow:0 0 0 3px rgba(214,175,55,.12)}

/* ============================================================
   APP — topo
   ============================================================ */
.tela-app{display:flex;flex-direction:column;height:100vh;overflow:hidden}
.topo{
  display:flex;align-items:center;justify-content:space-between;gap:18px;height:62px;flex:none;
  background:linear-gradient(180deg,var(--panel-2),var(--panel));border-bottom:1px solid var(--line);
  padding:0 20px;box-shadow:0 2px 12px rgba(22,53,86,.10);z-index:10;
}
.topo-brand{display:flex;align-items:center;gap:11px;cursor:pointer}
.topo-brasao{color:var(--olive-bright);font-size:28px;line-height:0}
.topo-brasao svg{width:30px;height:30px}
.topo-brand-txt strong{display:block;font-family:"Oxanium";font-size:20px;letter-spacing:4px;color:var(--ink);line-height:1}
.topo-brand-txt small{color:var(--muted);font-size:10.5px;letter-spacing:1px}
.topo-meio{display:flex;align-items:center;gap:18px;color:var(--muted);font-size:12.5px;font-variant-numeric:tabular-nums}
.status-sync{display:flex;align-items:center;gap:7px}
.pulso{width:9px;height:9px;border-radius:50%;background:var(--ok);box-shadow:0 0 0 0 rgba(63,174,138,.6);animation:pulso 2.2s infinite}
.pulso.off{background:var(--danger);animation:none}
@keyframes pulso{0%{box-shadow:0 0 0 0 rgba(63,174,138,.55)}70%{box-shadow:0 0 0 7px rgba(63,174,138,0)}100%{box-shadow:0 0 0 0 rgba(63,174,138,0)}}
.topo-relogio{color:var(--khaki)}
.topo-user{display:flex;align-items:center;gap:12px}
.topo-user-info{text-align:right}
.topo-user-info strong{display:block;font-size:13px}
.topo-user-info small{color:var(--muted);font-size:11px}
.avatar{
  width:38px;height:38px;border-radius:11px;display:grid;place-items:center;font-weight:700;
  background:linear-gradient(160deg,var(--olive-bright),var(--olive));color:#23190a;border:1px solid #d3b24e;font-family:"Oxanium"
}
.btn-sair{width:38px;height:38px;display:grid;place-items:center;border:1px solid var(--line);border-radius:11px;color:var(--muted);transition:var(--ease)}
.btn-sair:hover{border-color:var(--danger);color:var(--danger)}

#app{flex:1;overflow:auto}
.view{padding:26px 28px;max-width:1500px;margin:0 auto;animation:surge .3s ease}
@keyframes surge{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

/* ============================================================
   PORTAL (HOME)
   ============================================================ */
.hero{display:flex;align-items:center;gap:20px;margin-bottom:30px}
.hero-brasao{
  width:74px;height:74px;border-radius:18px;display:grid;place-items:center;color:var(--olive-bright);
  background:linear-gradient(160deg,rgba(94,147,218,.25),rgba(0,0,0,.15));border:1px solid var(--line);flex:none
}
.hero-brasao svg{width:40px;height:40px}
.hero h1{margin:0;font-size:30px;color:var(--ink);letter-spacing:.5px}
.hero p{margin:5px 0 0;color:var(--muted);font-size:14px}
.secao-titulo{display:flex;align-items:baseline;justify-content:space-between;border-bottom:1px solid var(--line);padding-bottom:11px;margin-bottom:22px}
.secao-titulo span{font-family:"Oxanium";font-size:14px;letter-spacing:2px;text-transform:uppercase;color:var(--khaki)}
.secao-titulo small{color:var(--muted-2);font-size:11.5px}
.secao-titulo small b{color:var(--muted);font-variant-numeric:tabular-nums}

.grid-sessoes{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:18px}
.carregando{color:var(--muted);padding:40px}
.sessao-card{
  position:relative;background:linear-gradient(165deg,var(--panel-2),var(--panel));border:1px solid var(--line);
  border-radius:var(--radius);padding:22px 22px 44px;cursor:pointer;transition:var(--ease);overflow:hidden;
}
.sessao-card::before{content:"";position:absolute;inset:0 0 auto 0;height:3px;background:linear-gradient(90deg,var(--olive),var(--olive-bright));opacity:.7}
.sessao-card:hover{transform:translateY(-3px);border-color:var(--olive);box-shadow:var(--shadow-sm)}
.sessao-card-topo{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}
.sessao-icone{
  width:56px;height:56px;border-radius:14px;display:grid;place-items:center;color:var(--olive-bright);
  background:rgba(94,147,218,.14);border:1px solid var(--line)
}
.sessao-icone svg{width:30px;height:30px}
.badge-vigente{display:inline-flex;align-items:center;gap:6px;font-size:10.5px;font-weight:600;color:var(--gold);
  background:rgba(220,187,99,.12);border:1px solid rgba(220,187,99,.34);padding:4px 9px;border-radius:20px;letter-spacing:.5px}
.badge-vigente .dot{width:6px;height:6px;border-radius:50%;background:var(--gold);box-shadow:0 0 6px var(--gold)}
.sessao-card h3{margin:0;font-size:19px;color:var(--ink);letter-spacing:.5px}
.sessao-card-desc{margin:3px 0 0;color:var(--muted);font-size:12.5px}
.sessao-stats{display:flex;gap:22px;margin-top:18px;padding-top:16px;border-top:1px solid var(--line-soft)}
.sessao-stats div{display:flex;flex-direction:column}
.sessao-stats .n{font-family:"Oxanium";font-size:22px;font-weight:700;color:var(--khaki);line-height:1}
.sessao-stats .n.crit{color:var(--warn)}
.sessao-stats .l{font-size:10.5px;color:var(--muted-2);text-transform:uppercase;letter-spacing:.8px;margin-top:4px}
.sessao-entrar{position:absolute;right:18px;bottom:18px;color:var(--muted-2);transition:var(--ease)}
.sessao-card:hover .sessao-entrar{color:var(--olive-bright);transform:translateX(3px)}

/* ============================================================
   DETALHE DA SESSÃO
   ============================================================ */
.sala-topo{display:flex;align-items:center;gap:18px;margin-bottom:22px}
.btn-voltar{display:inline-flex;align-items:center;gap:5px;background:var(--panel-2);border:1px solid var(--line);
  border-radius:var(--radius-sm);padding:9px 14px;color:var(--muted);font-weight:600;transition:var(--ease)}
.btn-voltar:hover{border-color:var(--olive-bright);color:var(--text)}
.sala-ident{display:flex;align-items:center;gap:14px}
.sala-icone{width:50px;height:50px;border-radius:13px;display:grid;place-items:center;color:var(--olive-bright);
  background:rgba(94,147,218,.14);border:1px solid var(--line)}
.sala-icone svg{width:28px;height:28px}
.sala-ident h2{margin:0;font-size:24px;color:var(--ink);letter-spacing:.5px}
.sala-ident small{color:var(--muted);font-size:12.5px}

.subabas{display:flex;gap:8px;margin-bottom:18px;flex-wrap:wrap}
.subaba{padding:8px 16px;border:1px solid var(--line);border-radius:22px;background:var(--panel-2);
  color:var(--muted);font-size:13px;font-weight:600;transition:var(--ease)}
.subaba:hover{color:var(--text);border-color:var(--olive)}
.subaba.ativa{background:linear-gradient(180deg,var(--olive-bright),var(--olive));color:#23190a;border-color:#d3b24e;font-weight:700}
.subabas-centro{justify-content:center;gap:16px;margin-top:10px;margin-bottom:26px}
.subabas-centro .subaba{padding:16px 46px;font-size:17px;border-radius:16px;min-width:220px;text-align:center}

.cards-resumo{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:14px;margin-bottom:20px}
.card{background:linear-gradient(165deg,var(--panel-2),var(--panel));border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px;position:relative;overflow:hidden}
.card .num{font-family:"Oxanium";font-size:30px;font-weight:700;color:var(--khaki);line-height:1}
.card .rot{font-size:11px;color:var(--muted-2);text-transform:uppercase;letter-spacing:1px;margin-top:7px}
.card.ok-card .num{color:var(--ok)}
.card.alerta-card .num{color:var(--warn)}
.card.critico-card .num{color:var(--danger)}

.conteudo-sala{display:flex;gap:18px;align-items:flex-start}
.painel{flex:1;min-width:0}
.barra-acoes{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;flex-wrap:wrap}
.busca-wrap{display:flex;align-items:center;gap:9px;flex:1;min-width:220px;max-width:400px;
  background:var(--panel-2);border:1px solid var(--line);border-radius:var(--radius-sm);padding:0 12px;color:var(--muted);transition:var(--ease)}
.busca-wrap:focus-within{border-color:var(--olive-bright);box-shadow:0 0 0 3px rgba(214,175,55,.12)}
.busca-wrap input{flex:1;background:none;border:none;padding:11px 0;color:var(--text);font-size:14px}
.busca-wrap input:focus{outline:none}
.barra-dir{display:flex;align-items:center;gap:9px}

.tabela-wrap{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
.tabela{width:100%;border-collapse:collapse}
.tabela thead th{position:sticky;top:0;background:var(--panel-3);color:var(--muted);text-align:left;
  font-size:10.5px;text-transform:uppercase;letter-spacing:1.2px;font-weight:600;padding:13px 16px;border-bottom:1px solid var(--line);z-index:1}
.tabela td{padding:13px 16px;border-bottom:1px solid var(--line-soft)}
.tabela tbody tr:last-child td{border-bottom:none}
.tabela tbody tr{transition:background var(--ease)}
.tabela tbody tr:hover{background:rgba(214,175,55,.05)}
.tabela td strong{font-weight:600}
.col-qtd{text-align:right}
.col-acoes{text-align:right;white-space:nowrap}
.qtd-val{font-family:"Oxanium";font-weight:700;font-size:16px}
.qtd-baixa{color:var(--warn)}
.qtd-zero{color:var(--danger)}
.flash{animation:flash 1.1s ease}
@keyframes flash{0%{color:var(--olive-bright)}40%{color:var(--olive-bright);text-shadow:0 0 12px rgba(214,175,55,.6)}100%{}}

.tag{display:inline-flex;align-items:center;gap:5px;padding:4px 11px;border-radius:20px;font-size:11px;font-weight:600}
.tag::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.tag.disponivel{background:rgba(63,174,138,.15);color:var(--ok)}
.tag.em_uso{background:rgba(95,163,214,.15);color:var(--info)}
.tag.manutencao{background:rgba(216,169,63,.15);color:var(--warn)}
.tag.baixado{background:rgba(214,88,67,.15);color:var(--danger)}

.acao-mini{border:1px solid var(--line);background:var(--panel-2);border-radius:8px;width:32px;height:32px;
  font-size:13px;color:var(--muted);margin-left:4px;transition:var(--ease)}
.acao-mini:hover{border-color:var(--olive-bright);color:var(--text);transform:translateY(-1px)}
.acao-mini.entrada:hover{border-color:var(--ok);color:var(--olive-bright)}
.acao-mini.saida:hover{border-color:var(--danger);color:var(--danger)}
.vazio{padding:46px;text-align:center;color:var(--muted)}
.cust-secao{font-size:13px;color:var(--khaki);text-transform:uppercase;letter-spacing:1px;margin:0 0 10px;padding-bottom:4px;border-bottom:1px solid var(--line)}

/* ---------- Feed ---------- */
.feed{width:300px;flex:none;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
  padding:16px;display:flex;flex-direction:column;max-height:560px}
.feed h3{margin:0 0 12px;font-size:12px;color:var(--khaki);text-transform:uppercase;letter-spacing:1.5px;display:flex;align-items:center;gap:7px}
.feed h3 svg{color:var(--olive-bright)}
#feed-lista{list-style:none;margin:0;padding:0;overflow:auto;flex:1}
#feed-lista li{padding:11px 0;border-bottom:1px solid var(--line-soft);font-size:12.5px}
#feed-lista li:last-child{border:none}
.mov-linha{display:flex;align-items:center;gap:8px}
.mov-tipo{font-weight:700;text-transform:uppercase;font-size:9.5px;letter-spacing:1px;padding:3px 7px;border-radius:6px}
.mov-tipo.mov-entrada{background:rgba(63,174,138,.16);color:var(--olive-bright)}
.mov-tipo.mov-saida{background:rgba(214,88,67,.16);color:var(--danger)}
.mov-tipo.mov-ajuste,.mov-tipo.mov-cadastro{background:rgba(95,163,214,.16);color:var(--info)}
.mov-tipo.mov-baixa{background:rgba(216,169,63,.16);color:var(--warn)}
.mov-corpo{flex:1;min-width:0}
.mov-corpo b{color:var(--text)}
.mov-delta{font-family:"Oxanium";font-weight:700}
.mov-meta{color:var(--muted-2);font-size:11px;margin-top:3px}

/* ============================================================
   MODAIS
   ============================================================ */
.modal{position:fixed;inset:0;background:rgba(15,25,40,.55);display:flex;align-items:center;justify-content:center;z-index:60;padding:16px;animation:surge .15s ease}
.modal-box{background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:26px;width:580px;max-width:100%;box-shadow:var(--shadow);max-height:calc(100vh - 32px);overflow-y:auto}
.modal-box.pequeno{width:400px}
.modal-box h2{margin:0 0 20px;font-size:19px;color:var(--ink)}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.grid2 .span2{grid-column:1/3}
.modal label{display:block;font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:1px;font-weight:600}
.modal input,.modal select{width:100%;margin-top:6px;padding:10px 12px;background:#f4f7fb;border:1px solid var(--line);
  border-radius:var(--radius-sm);color:var(--text);font-size:14px;transition:var(--ease)}
.modal input:focus,.modal select:focus{outline:none;border-color:var(--olive-bright);box-shadow:0 0 0 3px rgba(214,175,55,.12)}
.modal-acoes{display:flex;justify-content:flex-end;gap:10px;margin-top:24px}
.mov-item{background:#f4f7fb;border:1px solid var(--line);border-radius:var(--radius-sm);padding:12px;font-weight:600;margin:0 0 16px;color:var(--khaki)}

/* ---------- Toast ---------- */
.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:linear-gradient(180deg,var(--olive-bright),var(--olive));
  color:#23190a;padding:13px 24px;border-radius:12px;box-shadow:var(--shadow);z-index:90;font-weight:700;border:1px solid #d3b24e}
.toast.erro{background:linear-gradient(180deg,var(--danger),#b8402d);border-color:#d65843}

/* ============================================================
   RESERVA CENTRAL — interface com menu lateral (PMRR)
   ============================================================ */
.view-reserva{max-width:1600px}
.rc-layout{display:flex;gap:20px;align-items:flex-start}

/* ---- Sidebar ---- */
.rc-sidebar{width:264px;flex:none;position:sticky;top:0;background:linear-gradient(180deg,var(--panel-2),var(--panel));
  border:1px solid var(--line);border-radius:var(--radius);padding:14px;display:flex;flex-direction:column;gap:14px}
.rc-side-head{display:flex;flex-direction:column;gap:12px;padding-bottom:14px;border-bottom:1px solid var(--line)}
.rc-voltar{align-self:flex-start}
.rc-side-brand{display:flex;align-items:center;gap:11px}
.rc-side-brasao{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;color:var(--olive-bright);
  background:rgba(94,147,218,.14);border:1px solid var(--line);flex:none}
.rc-side-brasao svg{width:24px;height:24px}
.rc-side-brand strong{display:block;font-family:"Oxanium";font-size:18px;color:var(--ink);letter-spacing:.5px;line-height:1.1}
.rc-side-brand small{color:var(--khaki);font-size:11px;letter-spacing:2px}
.rc-nav{display:flex;flex-direction:column;gap:4px}
.rc-nav-item{display:flex;align-items:center;gap:11px;width:100%;text-align:left;padding:10px 11px;border-radius:var(--radius-sm);
  border:1px solid transparent;background:transparent;color:var(--muted);transition:var(--ease)}
.rc-nav-item:hover{background:var(--panel-3);color:var(--text)}
.rc-nav-item.ativa{background:rgba(94,147,218,.16);border-color:var(--olive);color:var(--ink);box-shadow:inset 3px 0 0 var(--olive-bright)}
.rc-nav-ic{width:32px;height:32px;flex:none;display:grid;place-items:center;border-radius:9px;background:rgba(23,99,166,.10);color:var(--steel)}
.rc-nav-ic svg{width:19px;height:19px}
.rc-nav-txt{display:flex;flex-direction:column;min-width:0}
.rc-nav-txt strong{font-size:13.5px;font-weight:600;line-height:1.2}
.rc-nav-txt small{font-size:11px;color:var(--muted-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rc-nav-item.ativa .rc-nav-txt small{color:var(--khaki)}

/* ---- Main ---- */
.rc-main{flex:1;min-width:0}
.rc-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:20px}
.rc-head-ident{display:flex;align-items:center;gap:14px}
.rc-head-icone{width:52px;height:52px;flex:none;display:grid;place-items:center;border-radius:13px;color:var(--olive-bright);
  background:rgba(94,147,218,.14);border:1px solid var(--line)}
.rc-head-icone svg{width:28px;height:28px}
.rc-head-ident h1{margin:0;font-size:26px;color:var(--ink);letter-spacing:.5px}
.rc-head-ident p{margin:3px 0 0;color:var(--muted);font-size:13px}
.rc-head-acoes{display:flex;gap:9px;flex-wrap:wrap}
.rc-barra{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;flex-wrap:wrap}
.rc-sec-rotulo{font-family:"Oxanium";font-size:12px;letter-spacing:2px;text-transform:uppercase;color:var(--khaki);
  margin:2px 0 12px}

/* ---- Acordeão (granel / calibres) ---- */
.rc-acc{display:flex;flex-direction:column;gap:10px}
.rc-acc-item{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;transition:var(--ease)}
.rc-acc-item.aberto{border-color:var(--olive)}
.rc-acc-head{display:flex;align-items:center;gap:14px;width:100%;padding:16px 18px;background:transparent;
  color:var(--text);transition:var(--ease)}
.rc-acc-head:hover{background:rgba(214,175,55,.05)}
.rc-acc-nome{font-weight:600;font-size:15px;flex:1;text-align:left}
.rc-acc-nome small{color:var(--muted-2);font-weight:500;font-size:12px;margin-left:7px;font-family:"Inter"}
.rc-acc-qtd{font-size:13px;color:var(--muted);white-space:nowrap}
.rc-acc-qtd b{font-family:"Oxanium";font-size:19px;color:var(--khaki)}
.rc-acc-qtd b.qtd-baixa{color:var(--warn)}
.rc-acc-qtd b.qtd-zero{color:var(--danger)}
.rc-acc-qtd i{font-style:normal;color:var(--muted-2);font-size:12px}
.rc-acc-chev{color:var(--muted-2);transition:var(--ease);display:grid;place-items:center}
.rc-acc-item.aberto .rc-acc-chev{transform:rotate(180deg);color:var(--olive-bright)}
.rc-acc-body{padding:0 18px 18px;border-top:1px solid var(--line-soft)}
.rc-acc-info{display:flex;flex-wrap:wrap;gap:8px 22px;padding:14px 0;color:var(--muted);font-size:12.5px}
.rc-acc-info b{color:var(--text);font-weight:600}
.rc-acc-acoes{display:flex;gap:9px;flex-wrap:wrap}
.btn-mov{display:inline-flex;align-items:center;gap:6px;background:var(--panel-2);border:1px solid var(--line);
  border-radius:var(--radius-sm);padding:9px 14px;color:var(--muted);font-weight:600;font-size:13px;transition:var(--ease)}
.btn-mov:hover{color:var(--text);border-color:var(--olive-bright);transform:translateY(-1px)}
.btn-mov.entrada:hover{border-color:var(--ok);color:var(--olive-bright)}
.btn-mov.saida:hover{border-color:var(--danger);color:var(--danger)}

.rc-serie-num{font-family:"Oxanium";letter-spacing:.5px;color:var(--khaki)}

/* ---- Paiol de Munições: Treinamento / Operacional ---- */
.mun-grid{display:grid;gap:12px;margin:4px 0 14px}
.mun-grid.mun-cols-2{grid-template-columns:1fr 1fr}
.mun-grid.mun-cols-3{grid-template-columns:1fr 1fr 1fr}
.mun-card{border-radius:var(--radius-sm);padding:14px 16px;border:1px solid var(--line)}
.mun-card-tit{font-size:11px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;margin-bottom:7px}
.mun-card-tit small{font-weight:600;opacity:.85;letter-spacing:0;text-transform:none}
.mun-card-num{font-family:"Oxanium";font-size:30px;font-weight:700;line-height:1}
.mun-card-un{font-size:11px;color:var(--muted-2);margin-top:5px;text-transform:lowercase}
.mun-lotes{display:flex;flex-direction:column;gap:3px;margin-top:9px;font-size:11.5px;color:var(--muted);font-variant-numeric:tabular-nums}
.mun-treino{background:rgba(94,147,218,.08);border-color:rgba(94,147,218,.32)}
.mun-treino .mun-card-tit,.mun-treino .mun-card-num{color:var(--steel)}
.mun-oper{background:rgba(63,174,138,.08);border-color:rgba(63,174,138,.32)}
.mun-oper .mun-card-tit,.mun-oper .mun-card-num{color:var(--ok)}
.mun-festim{background:rgba(230,126,34,.09);border-color:rgba(230,126,34,.34)}
.mun-festim .mun-card-tit,.mun-festim .mun-card-num{color:#c96a10}
.mun-acts{display:flex;flex-direction:column;gap:8px}
.mun-acts-lbl{text-align:center;font-size:11px;font-weight:700;letter-spacing:.8px;text-transform:uppercase;margin-bottom:1px}
.mun-c-treino .mun-acts-lbl{color:var(--steel)}
.mun-c-oper .mun-acts-lbl{color:var(--ok)}
.mun-c-festim .mun-acts-lbl{color:#c96a10}
.btn-mun{padding:11px;border-radius:var(--radius-sm);font-weight:700;font-size:13.5px;background:transparent;
  border:1px solid var(--line);transition:var(--ease)}
.btn-mun:hover{transform:translateY(-1px);filter:brightness(1.08)}
.mun-c-treino .btn-mun.ent{background:linear-gradient(180deg,#6ba3e4,var(--steel));color:#0b1018;border:none}
.mun-c-treino .btn-mun.sai{color:var(--steel);border-color:rgba(94,147,218,.45)}
.mun-c-oper .btn-mun.ent{background:linear-gradient(180deg,#54c79c,var(--ok));color:#06120d;border:none}
.mun-c-oper .btn-mun.sai{color:var(--ok);border-color:rgba(63,174,138,.45)}
.mun-c-festim .btn-mun.ent{background:linear-gradient(180deg,#f0962e,#e07b16);color:#160c02;border:none}
.mun-c-festim .btn-mun.sai{color:#c96a10;border-color:rgba(230,126,34,.45)}
.mun-hist{width:100%;justify-content:center}
/* Equipamentos Diversos: card único (dourado) no layout das munições */
.mun-grid.mun-cols-1{grid-template-columns:1fr}
.mun-equip .mun-card-tit,.mun-equip .mun-card-num{color:var(--gold)}
.mun-equip .mun-card-un{text-transform:none}
.mun-c-equip{flex-direction:row;gap:10px}
.mun-c-equip .btn-mun{flex:1}
.mun-c-equip .btn-mun.ent{background:linear-gradient(180deg,#2faa6f,#138a52);color:#fff;border:none}
.mun-c-equip .btn-mun.sai{color:var(--danger);border-color:rgba(214,90,77,.5)}
/* Reserva IMPO: subgrupos aninhados (Granadas → Explosivas/Emissão → Indoor/Outdoor) */
.impo-node{margin:8px 0 0;border-color:var(--line-soft);background:rgba(22,53,86,.022)}
.impo-node:first-child{margin-top:0}
.impo-node>.rc-acc-head .rc-acc-nome{font-size:13.5px;letter-spacing:.3px}
.impo-node>.rc-acc-body{padding-left:10px;padding-right:8px}
/* Subgrupos lado a lado (Indoor/Outdoor, Max/Médio/Mini) — grid só quando aberto */
.rc-acc-body.impo-cols:not([hidden]){display:grid;grid-template-columns:repeat(auto-fit,minmax(185px,1fr));gap:10px;align-items:start}
.rc-acc-body.impo-cols>.impo-node{margin-top:0}
/* Folhas em caixas (quadrados): saldo + Entrada/Saída sempre visíveis */
.impo-boxes{display:grid;grid-template-columns:repeat(auto-fit,minmax(105px,1fr));gap:8px;margin-bottom:8px}
/* Caixa única (ex.: Cartuchos só com Operacional) ocupa a linha inteira. */
.impo-boxes>.impo-box:only-child{grid-column:1/-1}
.impo-box{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel);overflow:hidden;align-self:start}
.impo-box-head{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:12px 10px;background:transparent;color:var(--text);font-weight:700;cursor:pointer;transition:var(--ease)}
.impo-box-head:hover{background:rgba(22,53,86,.04)}
.impo-box-chev{color:var(--muted-2);display:grid;place-items:center;transition:var(--ease)}
.impo-box-chev svg{width:14px;height:14px}
.impo-box.aberto .impo-box-chev{transform:rotate(180deg)}
.impo-box-body{padding:0 10px 12px;text-align:center;display:flex;flex-direction:column;gap:9px}
.impo-box-tit{font-size:12.5px}
.impo-box-num{font-family:"Oxanium";font-weight:700;font-size:24px;color:var(--gold);line-height:1}
.impo-box-num span{font-size:10px;color:var(--muted-2);font-family:inherit}
.impo-box-acts{display:flex;flex-direction:column;gap:6px}
.impo-box-acts .btn-mun{padding:8px;font-size:12px}
.impo-box-acts .btn-mun.ent{background:linear-gradient(180deg,#2faa6f,#138a52);color:#fff;border:none}
.impo-box-acts .btn-mun.sai{color:var(--danger);border-color:rgba(214,90,77,.5)}
.impo-rel{margin-top:2px}
.outros-add{margin-top:8px;width:100%;justify-content:center}
.outros-lista>.rc-acc-item{margin-bottom:8px}
@media(max-width:620px){.rc-acc-body.impo-cols:not([hidden]){grid-template-columns:1fr}}
@media(max-width:680px){.mun-grid.mun-cols-3{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.mun-grid{grid-template-columns:1fr!important}}

/* ---- Depósito de Armamento: categorias e modelos ---- */
.arm-cat-nome{display:inline-flex;align-items:center;gap:10px}
.arm-cat-nome svg{width:20px;height:20px;color:var(--olive-bright);flex:none}
.arm-lista{display:flex;flex-direction:column;gap:10px}
.arm-modelo{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-sm);padding:13px 15px}
.arm-modelo-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:11px}
.arm-modelo-nome{font-weight:600;font-size:15px}
.arm-modelo-qtd{color:var(--muted-2);font-size:12.5px;white-space:nowrap}
.arm-modelo-qtd b{font-family:"Oxanium";font-size:18px;color:var(--khaki);margin-right:3px}
.arm-modelo-qtd b.qtd-zero{color:var(--muted-2)}
.arm-acts{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.arm-acts .btn-mun.ent{background:linear-gradient(180deg,#2faa6f,#138a52);color:#fff;border:none}
.arm-acts .btn-mun.sai{color:var(--danger);border-color:rgba(214,90,77,.5);background:transparent}
@media(max-width:520px){.arm-acts{grid-template-columns:1fr}}

/* ---- Armas de Cerimonial: cards com contadores Entradas/Saídas ---- */
.cer-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.cer-card{background:linear-gradient(165deg,var(--panel-2),var(--panel));border:1px solid var(--line);border-radius:var(--radius);padding:18px}
.cer-card-head{display:flex;align-items:center;gap:10px;font-weight:600;font-size:16px;margin-bottom:16px}
.cer-card-head svg{width:20px;height:20px;color:var(--olive-bright);flex:none}
.cer-counters{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:14px}
.cer-counter{border-radius:var(--radius-sm);padding:14px;text-align:center;border:1px solid var(--line)}
.cer-counter-lbl{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.6px;margin-bottom:6px}
.cer-counter-num{display:block;font-family:"Oxanium";font-size:26px;font-weight:700}
.cer-ent{background:rgba(94,147,218,.1);border-color:rgba(94,147,218,.3)}
.cer-ent .cer-counter-lbl,.cer-ent .cer-counter-num{color:var(--steel)}
.cer-sai{background:rgba(214,90,77,.1);border-color:rgba(214,90,77,.3)}
.cer-sai .cer-counter-lbl,.cer-sai .cer-counter-num{color:var(--danger)}
.cer-acts{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.cer-acts .cer-btn-ent{color:var(--steel);border-color:rgba(94,147,218,.45);background:transparent}
.cer-acts .cer-btn-sai{color:var(--danger);border-color:rgba(214,90,77,.45);background:transparent}
.cer-sub{margin:-12px 0 18px;color:var(--muted);font-size:13px}
.cer-datahora{display:flex;align-items:center;gap:8px;background:rgba(94,147,218,.1);border:1px solid rgba(94,147,218,.25);
  border-radius:var(--radius-sm);padding:10px 12px;font-size:12px;color:var(--muted);margin-top:4px}
.cer-datahora svg{color:var(--steel);flex:none}
.cer-datahora b{color:var(--text)}
.modal textarea{width:100%;margin-top:6px;padding:10px 12px;background:#f4f7fb;border:1px solid var(--line);border-radius:var(--radius-sm);
  color:var(--text);font-size:14px;font-family:inherit;resize:vertical;transition:var(--ease)}
.modal textarea:focus{outline:none;border-color:var(--olive-bright);box-shadow:0 0 0 3px rgba(214,175,55,.12)}
@media(max-width:620px){.cer-grid{grid-template-columns:1fr}}

/* ---- Armas de Treinamento: controle individual (Disponível / Em Treinamento) ---- */
.trn-resumo{margin-bottom:14px}
.trn-num-treino{color:var(--steel)!important}
.trn-modelo{padding:2px 0 4px}
.trn-modelo-nome{font-weight:700;font-size:12.5px;color:var(--khaki);margin:10px 0 9px;display:flex;align-items:center;gap:9px;text-transform:uppercase;letter-spacing:.5px}
.trn-cont{font-size:11px;color:var(--muted);background:rgba(23,99,166,.10);border-radius:20px;padding:1px 9px;font-weight:700;letter-spacing:0}
.trn-vazio{padding:14px 2px;color:var(--muted-2);font-size:13px}
.trn-arma{display:flex;align-items:center;gap:12px;padding:9px 13px;background:var(--panel);border:1px solid var(--line-soft);border-radius:var(--radius-sm);margin-bottom:7px}
.trn-arma-num{font-family:"Oxanium";font-weight:700;color:var(--khaki);min-width:88px}
.trn-arma-status{font-size:10.5px;font-weight:700;padding:3px 10px;border-radius:20px;flex:none;text-transform:uppercase;letter-spacing:.4px}
.trn-st-disp{background:rgba(63,174,138,.16);color:var(--ok)}
.trn-st-treino{background:rgba(94,147,218,.16);color:var(--steel)}
.trn-arma-acts{margin-left:auto;display:flex;align-items:center;gap:8px}
.trn-arma-acts .btn-mun{padding:8px 13px;font-size:12.5px}
.trn-enviar{color:var(--steel);border-color:rgba(94,147,218,.45)}
.trn-devolver{color:var(--ok);border-color:rgba(63,174,138,.45)}
@media(max-width:520px){.trn-arma{flex-wrap:wrap}.trn-arma-acts{margin-left:0;width:100%}}

/* ---- Descarga/Destruição: modelo com botões Aguardando / Destruída ---- */
.dsc-modelo{border:1px solid var(--line);border-radius:var(--radius-sm);margin-bottom:10px;padding:13px 15px;background:var(--panel)}
.dsc-modelo-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:11px}
.dsc-modelo-nome{font-weight:600;font-size:15px}
.dsc-modelo-tot{font-size:12px;color:var(--muted-2)}
.dsc-modelo-btns{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.dsc-ver{display:flex;align-items:center;justify-content:center;gap:8px;padding:11px 12px;border-radius:var(--radius-sm);font-weight:700;font-size:13px;border:1px solid var(--line);background:transparent;cursor:pointer;transition:var(--ease)}
.dsc-ver b{font-family:"Oxanium";font-size:15px}
.dsc-ver:hover{transform:translateY(-1px)}
.dsc-ver-aguard{color:var(--warn);border-color:rgba(227,179,67,.4)}
.dsc-ver-aguard:hover,.dsc-ver-aguard.ativo{background:rgba(227,179,67,.14)}
.dsc-ver-destr{color:var(--danger);border-color:rgba(214,90,77,.4)}
.dsc-ver-destr:hover,.dsc-ver-destr.ativo{background:rgba(214,90,77,.14)}
/* Treinamento / Cerimonial: Disponíveis (verde) / Em uso (azul) */
.dsc-ver-disp{color:var(--ok);border-color:rgba(63,174,138,.4)}
.dsc-ver-disp:hover,.dsc-ver-disp.ativo{background:rgba(63,174,138,.14)}
.dsc-ver-uso{color:var(--info);border-color:rgba(94,147,218,.4)}
.dsc-ver-uso:hover,.dsc-ver-uso.ativo{background:rgba(94,147,218,.14)}
.dsc-ver.ativo{box-shadow:inset 0 0 0 1px currentColor}
.dsc-lista{margin-top:11px;padding-top:11px;border-top:1px solid var(--line-soft)}
.dsc-vazio{padding:8px 2px;color:var(--muted-2);font-size:12.5px}
.dsc-destruida{opacity:.72}
.dsc-info{font-size:11.5px;color:var(--muted);font-variant-numeric:tabular-nums}
.dsc-destruir{color:var(--danger);border-color:rgba(214,90,77,.45)}
@media(max-width:480px){.dsc-modelo-btns{grid-template-columns:1fr}}

/* ---- Modal de histórico (grande) ---- */
.modal-box.grande{width:920px;max-width:100%}
.hist-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}
.hist-head h2{margin:0}
.hist-wrap{max-height:60vh;overflow:auto;border:1px solid var(--line);border-radius:var(--radius)}
.hist-tabela{font-size:12.5px}
.hist-tabela td{padding:10px 14px}

/* ---- Gerenciamento de usuários / permissões por sessão ---- */
.tag-papel{display:inline-block;padding:3px 10px;border-radius:20px;font-size:11px;font-weight:700;
  background:rgba(220,187,99,.12);color:var(--gold);border:1px solid rgba(220,187,99,.3)}
.lbl-check{display:flex!important;flex-direction:row!important;align-items:center;gap:9px;text-transform:none!important;letter-spacing:0!important}
.lbl-check input{width:auto!important;margin:0!important}
.perm-titulo{font-family:"Oxanium";font-size:12px;letter-spacing:1.5px;text-transform:uppercase;color:var(--khaki);
  margin:20px 0 4px;border-top:1px solid var(--line);padding-top:16px}
.perm-ajuda{margin:0 0 12px;color:var(--muted);font-size:12px}
.perm-grid{display:flex;flex-direction:column;gap:8px;max-height:42vh;overflow:auto}
.perm-row{display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--panel-2);
  border:1px solid var(--line);border-radius:var(--radius-sm);padding:9px 13px}
.perm-sala{display:flex;flex-direction:column;font-weight:600;font-size:13.5px;min-width:0}
.perm-sala small{font-weight:500;color:var(--muted-2);font-size:11px}
.perm-opts{display:flex;gap:6px;flex:none}
.perm-opt{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:600;color:var(--muted);
  border:1px solid var(--line);border-radius:8px;padding:6px 10px;cursor:pointer;text-transform:none;letter-spacing:0;margin:0;transition:var(--ease)}
.perm-opt input{width:auto!important;margin:0!important}
.perm-opt:hover{border-color:var(--olive-bright);color:var(--text)}
.perm-opt.perm-ver:has(input:checked){border-color:var(--steel);background:rgba(94,147,218,.16);color:var(--steel)}
.perm-opt.perm-editar:has(input:checked){border-color:var(--ok);background:rgba(63,174,138,.16);color:var(--ok)}
.perm-opt.perm-nenhum:has(input:checked){border-color:var(--muted-2);background:rgba(22,53,86,.05);color:var(--text)}
@media(max-width:600px){.perm-row{flex-direction:column;align-items:flex-start;gap:8px}}

@media(max-width:920px){
  .conteudo-sala{flex-direction:column}.feed{width:100%;max-height:340px}
  .login-painel{flex-direction:column;width:420px}.login-marca{width:auto;border-right:none;border-bottom:1px solid var(--line)}
  .grid2{grid-template-columns:1fr}.grid2 .span2{grid-column:1}
  .topo-meio{display:none}
  .rc-layout{flex-direction:column}.rc-sidebar{width:100%;position:static}
  .rc-nav{flex-direction:row;flex-wrap:wrap}.rc-nav-item{width:auto}
}

/* ============================================================
   Logo / Brasão da DMB (imagem)
   ============================================================ */
.brasao-img{display:block;object-fit:contain}
/* Cabeçalho */
.topo-brasao{width:36px;height:36px;font-size:0;line-height:0}
.topo-brasao .brasao-img{width:36px;height:36px}
/* Portal (hero) — sem a "caixa", só o brasão */
.hero-brasao{width:auto;height:auto;background:none;border:none;border-radius:0;display:block}
.hero-brasao .brasao-img{width:78px;height:78px}
/* Login */
.login-brasao{font-size:0;line-height:0;text-align:center}
.login-brasao .brasao-img{width:140px;height:140px;margin:0 auto}
