/* fda-gestao — identidade FDA portada do site institucional (_src/site.css):
   chrome navy com faixas BR + área de trabalho CLARA (uso diário, densidade). */

@font-face{font-family:'Barlow';font-style:normal;font-weight:400;font-display:swap;
  src:url('/static/fontes/barlow-400.woff2') format('woff2')}
@font-face{font-family:'Barlow';font-style:normal;font-weight:700;font-display:swap;
  src:url('/static/fontes/barlow-700.woff2') format('woff2')}
@font-face{font-family:'Barlow';font-style:normal;font-weight:900;font-display:swap;
  src:url('/static/fontes/barlow-900.woff2') format('woff2')}

:root{
  --navy:#0a2342; --painel:#12386b; --verde:#00923F; --amarelo:#F8C300;
  --branco:#fff; --cinza:#C9D4E5; --fundo-navy:#05122a;
  --claro:#F5F7FB; --cartao:#fff; --borda:#dde3ee; --borda-suave:#eef2f7;
  --texto:#1a2342; --texto-suave:#5a6478;
  --ok-bg:#d4edd9; --ok-fg:#0d5c2c; --warn-bg:#fff2c7; --warn-fg:#7a5a00;
  --err-bg:#fad6d6; --err-fg:#8a1818; --info-bg:#d4e0f5; --info-fg:#0a2342;
}
*{margin:0;padding:0;box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{font-family:'Barlow',system-ui,sans-serif;background:var(--claro);
  color:var(--texto);min-height:100svh;font-size:15px;line-height:1.5}
a{color:inherit}

/* faixas bandeira BR (discretas no app) */
.flag-top{display:block;width:100%;height:6px;
  background:linear-gradient(90deg,var(--verde) 0 50%,var(--amarelo) 50% 100%)}

/* ===== layout com sidebar ===== */
.app{display:flex;min-height:calc(100svh - 6px)}
.sidebar{width:232px;flex-shrink:0;background:var(--navy);color:var(--branco);
  display:flex;flex-direction:column;padding:18px 0 14px}
.sidebar .marca{display:flex;align-items:center;gap:10px;padding:0 18px 16px;
  border-bottom:1px solid rgba(255,255,255,.12);text-decoration:none}
.sidebar .marca img{width:34px;height:auto}
.sidebar .marca b{font-weight:900;font-size:.98rem;line-height:1.15}
.sidebar .marca small{display:block;font-weight:600;font-size:.56rem;
  color:var(--cinza);letter-spacing:.13em;text-transform:uppercase}
.sidebar nav{display:flex;flex-direction:column;gap:2px;padding:14px 10px;flex:1}
.sidebar nav a{display:block;text-decoration:none;font-weight:700;font-size:.9rem;
  color:var(--cinza);padding:10px 12px;border-radius:9px;min-height:44px;
  display:flex;align-items:center;gap:8px}
.sidebar nav a:hover{color:var(--branco);background:rgba(255,255,255,.07)}
.sidebar nav a.ativo{color:var(--navy);background:var(--amarelo)}
.sidebar nav a:focus-visible{outline:3px solid var(--amarelo);outline-offset:2px}
.sidebar .rodape-side{padding:12px 18px 0;border-top:1px solid rgba(255,255,255,.12);
  font-size:.78rem;color:var(--cinza)}
.sidebar .rodape-side .quem{font-weight:700;color:var(--branco)}
.sidebar .rodape-side .creds{font-size:.72rem;line-height:1.35;display:inline-block;
  margin:2px 0 4px}
.sidebar .rodape-side a{color:var(--cinza)}

.conteudo{flex:1;min-width:0;padding:26px 30px 60px;max-width:1180px}
.conteudo h1{font-weight:900;font-size:1.5rem;letter-spacing:.01em;margin-bottom:4px}
.conteudo .sub{color:var(--texto-suave);margin-bottom:22px;font-size:.92rem}
.conteudo h2{font-weight:900;font-size:1.05rem;margin:26px 0 10px}

/* ===== cartões, tabelas, chips ===== */
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));
  gap:14px;margin:16px 0 8px}
.card-stat{background:var(--cartao);border:1px solid var(--borda);
  border-radius:12px;padding:16px 18px}
.card-stat .num{font-weight:900;font-size:1.9rem;font-variant-numeric:tabular-nums}
.card-stat .rot{color:var(--texto-suave);font-size:.82rem;font-weight:700;
  text-transform:uppercase;letter-spacing:.06em}

.cartao{background:var(--cartao);border:1px solid var(--borda);
  border-radius:12px;padding:18px 20px;margin:14px 0}
.tabela-wrap{overflow-x:auto;background:var(--cartao);border:1px solid var(--borda);
  border-radius:12px;margin:14px 0}
table{width:100%;border-collapse:collapse;font-size:.9rem}
th{font-size:.74rem;text-transform:uppercase;letter-spacing:.07em;
  color:var(--texto-suave);text-align:left;padding:11px 14px;
  border-bottom:2px solid var(--borda);white-space:nowrap}
td{padding:10px 14px;border-bottom:1px solid var(--borda-suave);vertical-align:top;
  font-variant-numeric:tabular-nums}
tr:last-child td{border-bottom:none}
tr:hover td{background:var(--claro)}
td .mini{display:block;color:var(--texto-suave);font-size:.8rem}

.pill{display:inline-block;padding:3px 11px;border-radius:99px;font-weight:700;
  font-size:.74rem;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap}
.pill-ok{background:var(--ok-bg);color:var(--ok-fg)}
.pill-warn{background:var(--warn-bg);color:var(--warn-fg)}
.pill-err{background:var(--err-bg);color:var(--err-fg)}
.pill-info{background:var(--info-bg);color:var(--info-fg)}
.pill-neutra{background:var(--borda-suave);color:var(--texto-suave)}

/* ===== botões / formulários ===== */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;
  min-height:44px;padding:10px 20px;border-radius:10px;border:none;cursor:pointer;
  font-family:inherit;font-weight:700;font-size:.92rem;text-decoration:none}
.btn-amarelo{background:var(--amarelo);color:var(--navy)}
.btn-amarelo:hover{background:#ffd93d}
.btn-navy{background:var(--navy);color:var(--branco)}
.btn-navy:hover{background:var(--painel)}
.btn-borda{background:transparent;border:1.5px solid var(--borda);color:var(--texto)}
.btn-borda:hover{border-color:var(--navy)}
.btn-mini{min-height:34px;padding:5px 13px;font-size:.8rem;border-radius:8px}
.btn:focus-visible{outline:3px solid var(--amarelo);outline-offset:2px}

form .campo{margin-bottom:14px}
label{display:block;font-weight:700;font-size:.82rem;margin-bottom:5px;
  color:var(--texto)}
label .opt{font-weight:400;color:var(--texto-suave)}
input[type=text],input[type=email],input[type=password],input[type=date],
input[type=number],select,textarea{
  width:100%;padding:10px 12px;border:1.5px solid var(--borda);border-radius:10px;
  font-family:inherit;font-size:.95rem;background:var(--branco);color:var(--texto);
  min-height:44px}
textarea{min-height:88px;resize:vertical}
input:focus,select:focus,textarea:focus{outline:3px solid var(--amarelo);
  outline-offset:0;border-color:var(--navy)}
.campos-2{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}
.campos-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:0 16px}
@media(max-width:640px){.campos-2,.campos-3{grid-template-columns:1fr}}

.aviso{border-radius:10px;padding:12px 15px;margin:12px 0;font-size:.9rem}
.aviso-erro{background:var(--err-bg);color:var(--err-fg)}
.aviso-info{background:var(--info-bg);color:var(--info-fg)}
.aviso-warn{background:var(--warn-bg);color:var(--warn-fg)}

/* estado vazio que ensina */
.vazio{background:var(--cartao);border:1.5px dashed var(--borda);border-radius:12px;
  padding:28px 24px;text-align:center;color:var(--texto-suave);margin:14px 0}
.vazio b{display:block;color:var(--texto);font-size:1rem;margin-bottom:6px}

.barra-acoes{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:14px 0}
.barra-acoes form{display:flex;gap:8px;flex:1;min-width:220px}
.barra-acoes input[type=text]{flex:1}

.link-copia{font-family:ui-monospace,Menlo,monospace;font-size:.8rem;
  background:var(--claro);border:1px solid var(--borda);border-radius:8px;
  padding:6px 10px;word-break:break-all;display:block;margin-top:6px}

/* ===== responsivo: sidebar vira topo no mobile ===== */
@media(max-width:820px){
  .app{flex-direction:column}
  .sidebar{width:100%;flex-direction:column;padding:12px 0 0}
  .sidebar nav{flex-direction:row;flex-wrap:wrap;padding:10px}
  .sidebar nav a{min-height:44px}
  .sidebar .rodape-side{padding-bottom:10px}
  .conteudo{padding:20px 16px 50px}
}

/* ===== login / convite (tela cheia navy) ===== */
body.tela-navy{background:var(--fundo-navy);display:flex;flex-direction:column;
  min-height:100svh}
.tela-navy .flag-top{height:14px;
  background:linear-gradient(180deg,var(--verde) 0 8px,var(--amarelo) 8px 14px)}
.tela-navy main{flex:1;display:flex;align-items:center;justify-content:center;
  padding:30px 16px}
.card-login{background:var(--branco);border-radius:16px;max-width:420px;width:100%;
  padding:34px 32px;box-shadow:0 24px 60px rgba(0,0,0,.45)}
.card-login .logo{display:flex;align-items:center;gap:12px;margin-bottom:20px}
.card-login .logo img{width:44px;height:auto;
  filter:brightness(0) saturate(100%) invert(11%) sepia(41%) saturate(2276%)
  hue-rotate(196deg) brightness(94%) contrast(97%)}
.card-login h1{font-size:1.15rem;font-weight:900;line-height:1.25}
.card-login h1 small{display:block;font-weight:600;font-size:.62rem;
  color:var(--texto-suave);letter-spacing:.13em;text-transform:uppercase}
.card-login .btn{width:100%;margin-top:6px}
.rodape-navy{color:var(--cinza);text-align:center;font-size:.72rem;
  padding:0 16px 22px;letter-spacing:.06em;text-transform:uppercase}

/* ===== portal do árbitro (mobile-first) ===== */
body.portal{background:var(--claro)}
.portal-topo{background:var(--navy);color:var(--branco);padding:14px 18px;
  display:flex;align-items:center;gap:10px}
.portal-topo img{width:30px}
.portal-topo b{font-weight:900;font-size:.95rem}
.portal-topo small{display:block;font-weight:600;font-size:.55rem;
  color:var(--cinza);letter-spacing:.12em;text-transform:uppercase}
.portal-topo .sair{margin-left:auto;color:var(--cinza);font-size:.82rem;
  font-weight:700;text-decoration:none;padding:10px;min-height:44px;
  display:flex;align-items:center}
.portal-main{padding:18px 16px 90px;max-width:640px;margin:0 auto}
.portal-nav{position:fixed;bottom:0;left:0;right:0;background:var(--navco,#0a2342);
  background:var(--navy);display:flex;justify-content:space-around;
  border-top:1px solid rgba(255,255,255,.14);padding:4px 0 max(6px,env(safe-area-inset-bottom))}
.portal-nav a{color:var(--cinza);text-decoration:none;font-size:.72rem;
  font-weight:700;text-align:center;padding:8px 14px;min-height:44px;min-width:44px;
  border-radius:9px;display:flex;flex-direction:column;align-items:center;
  justify-content:center;gap:2px}
.portal-nav a.ativo{color:var(--amarelo)}
.portal-nav a .ico{font-size:1.1rem;line-height:1}
