/* Portal Brazilian Color — estilos do shell (base herdada do AST). */
:root { --brand:#ffd60a; --sidebar:#000000; --sidebar-2:#161616; --ink:#283142; }
body { background:#eef1f6; font-family:'Inter',system-ui,-apple-system,sans-serif; color:var(--ink); }
h1,h2,h3,.fw-bold { letter-spacing:-.01em; }
/* Botões/realces da marca */
.btn-dark { --bs-btn-bg:#0e1014; --bs-btn-border-color:#0e1014; --bs-btn-hover-bg:#1b1f28; --bs-btn-hover-border-color:#1b1f28; }
.btn-warning { --bs-btn-bg:var(--brand); --bs-btn-border-color:var(--brand); --bs-btn-hover-bg:#e6c200; --bs-btn-hover-border-color:#e6c200; --bs-btn-color:#1a1400; --bs-btn-hover-color:#1a1400; font-weight:600; }
.form-control:focus,.form-select:focus { border-color:#c9a900; box-shadow:0 0 0 .2rem rgba(255,214,10,.25); }
.card { border-radius:.7rem; }
.table > :not(caption) > * > * { padding:.7rem .75rem; }
a { text-decoration:none; }
/* Sidebar do admin (mesmo padrão do AST: offcanvas no mobile, fixa em md+) */
.ast-sidebar { background:var(--sidebar) !important; --bs-offcanvas-bg:var(--sidebar); --bs-offcanvas-width:260px; }
@media (min-width: 768px) { .ast-sidebar { width:250px; min-height:100vh; position:sticky; top:0; } }
.brand-mark { height:36px; width:36px; flex:0 0 auto; }
.ast-sidebar .brand { color:#fff; font-weight:800; letter-spacing:.04em; }
.ast-sidebar .nav-link { color:#b8c1cf; border-radius:.4rem; padding:.55rem .75rem; }
.ast-sidebar .nav-link:hover { background:var(--sidebar-2); color:#fff; }
.ast-sidebar .nav-link.active { background:var(--sidebar-2); color:#fff; border-left:3px solid var(--brand); }
.ast-group { color:#6a7280; font-size:.7rem; font-weight:700; text-transform:uppercase; letter-spacing:.08em; padding:1rem .75rem .25rem; }
.ast-topbar { background:#fff; border-bottom:1px solid #e3e8ef; border-left:4px solid var(--brand); position:sticky; top:0; z-index:1020; }
/* Ícone circular dos cards (herdado do AST) */
.rpt-ico { flex:0 0 auto; width:46px; height:46px; border-radius:50%; background:var(--brand);
           display:flex; align-items:center; justify-content:center; }
.rpt-ico i { font-size:1.35rem; color:#1a1400; }
/* ── Home pública do portal ── */
body.portal-public { background:#0d0d0d; color:#e8e8e8; }
.portal-hero { background:#000; text-align:center; padding:2.6rem 1rem 2.1rem; border-bottom:3px solid var(--brand); }
.portal-logo { height:52px; max-width:86vw; }
.portal-tagline { color:var(--brand); font-size:.78rem; letter-spacing:.32em; font-weight:700; margin-top:.55rem; }
.portal-main { max-width:1080px; padding-top:2rem; }
.portal-group { color:#9aa0a6; font-size:.78rem; font-weight:700; text-transform:uppercase; letter-spacing:.14em; margin:.5rem 0 1rem; }
.portal-card { background:#161616; border:1px solid #262626; color:#e8e8e8; transition:transform .08s, border-color .12s; }
.portal-card:hover { border-color:var(--brand); color:#fff; transform:translateY(-2px); }
.portal-card:active { transform:scale(.98); }
.portal-card-title { font-weight:700; color:#fff; }
.portal-card-desc { color:#9aa0a6; font-size:.85rem; margin-top:.15rem; }
.portal-card-url { color:var(--brand); font-size:.78rem; margin-top:.4rem; }
.portal-footer { color:#6a7280; border-top:1px solid #1f1f1f; }
.portal-footer a { color:#9aa0a6; }
.portal-footer a:hover { color:var(--brand); }
