@import url("https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600;700;800&display=swap");

/* i3dCerto — padrão visual global. Somente navegação, identidade e controles compartilhados. */
* { box-sizing: border-box; }

/* Barra superior padrão fixa em todas as páginas internas do sistema. */
.site-header,
.top,
.topbar,
.topo {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    z-index: 1000 !important;
}

.site-header {
    height: 70px !important;
    min-height: 70px !important;
    width: 100% !important;
    background: #fff !important;
    border-bottom: 1px solid #e7ddff !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    padding: 0 30px !important;
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    z-index: 1000 !important;
}

.site-header .site-brand {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    width: auto !important;
    height: 46px !important;
    margin: 0 !important;
    padding: 0 !important;
    text-decoration: none !important;
    flex: 0 0 auto !important;
}

.site-header .site-brand img {
    display: block !important;
    width: auto !important;
    height: 40px !important;
    max-width: 190px !important;
    object-fit: contain !important;
    object-position: left center !important;
    margin: 0 !important;
    padding: 0 !important;
}

.site-header .site-user {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    gap: 14px !important;
    min-width: 0 !important;
    font-size: 14px !important;
    white-space: nowrap !important;
}

.site-header .site-user > span {
    display: inline-flex !important;
    align-items: center !important;
    min-width: 0 !important;
}

.site-header .site-user a {
    text-decoration: none !important;
}

.site-header .site-back,
.site-header .btn-voltar-painel {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: 36px !important;
    padding: 8px 13px !important;
    border: 1px solid #ded5ff !important;
    border-radius: 8px !important;
    background: #f7f4ff !important;
    color: #6338f5 !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    line-height: 1.2 !important;
    text-decoration: none !important;
    transition: .15s ease !important;
}

.site-header .site-back:hover,
.site-header .btn-voltar-painel:hover {
    background: #6338f5 !important;
    border-color: #6338f5 !important;
    color: #fff !important;
}

.site-header .sair,
.site-header .logout,
.site-header .btn-sair {
    color: #d93025 !important;
    font-weight: 600 !important;
}

.site-header .sair:hover,
.site-header .logout:hover,
.site-header .btn-sair:hover {
    text-decoration: underline !important;
}

/* Compatibilidade para links de retorno ainda existentes dentro de conteúdo. */
a.site-back,
a.voltar.site-back,
a.back.site-back,
a.btn-voltar-painel.site-back {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: 36px !important;
    padding: 8px 13px !important;
    border: 1px solid #ded5ff !important;
    border-radius: 8px !important;
    background: #f7f4ff !important;
    color: #6338f5 !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    line-height: 1.2 !important;
    text-decoration: none !important;
}

a.site-back:hover,
a.voltar.site-back:hover,
a.back.site-back:hover,
a.btn-voltar-painel.site-back:hover {
    background: #6338f5 !important;
    border-color: #6338f5 !important;
    color: #fff !important;
}

.auth-logo {
    display: block !important;
    width: auto !important;
    height: 52px !important;
    max-width: 230px !important;
    object-fit: contain !important;
    margin: 0 auto 12px !important;
}

@media (max-width: 700px) {
    .site-header {
        height: 64px !important;
        min-height: 64px !important;
        padding: 0 15px !important;
    }
    .site-header .site-brand { height: 42px !important; }
    .site-header .site-brand img { height: 34px !important; max-width: 165px !important; }
    .site-header .site-user { gap: 8px !important; font-size: 12px !important; }
    .site-header .site-user > span { max-width: 180px !important; overflow: hidden !important; text-overflow: ellipsis !important; }
    .site-header .site-back { min-height: 32px !important; padding: 7px 9px !important; font-size: 12px !important; }
}


/* Compatibilidade dos cabeçalhos internos legados: mesma barra, mesma altura e fixação. */
.site-header, .top, .topbar, .topo {
    box-sizing: border-box !important;
    height: 70px !important;
    min-height: 70px !important;
    background: #fff !important;
    border-bottom: 1px solid #e7ddff !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    padding: 0 30px !important;
}

.site-header + *, body:has(> .site-header), body:has(> .top), body:has(> .topbar), body:has(> .topo) {
    scroll-padding-top: 70px;
}

body:has(> .site-header), body:has(> .top), body:has(> .topbar), body:has(> .topo) {
    padding-top: 70px !important;
}

.top img, .topbar .logo img, .topo .logo img {
    max-height: 40px !important;
    object-fit: contain !important;
}

.top .user, .topbar .user, .topo .topo-acoes {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    gap: 14px !important;
    min-width: 0 !important;
    white-space: nowrap !important;
}

.top a:not(.sair):not(.logout), .topbar a:not(.logout), .topo .btn-voltar-painel {
    text-decoration: none !important;
}

@media (max-width: 700px) {
    .site-header, .top, .topbar, .topo {
        height: 64px !important;
        min-height: 64px !important;
        padding: 0 15px !important;
    }
    body:has(> .site-header), body:has(> .top), body:has(> .topbar), body:has(> .topo) {
        padding-top: 64px !important;
    }
}

.site-header.site-header-admin{
    height:70px!important;
    min-height:70px!important;
    background:#fff!important;
    border-bottom:1px solid #e7ddff!important;
    padding:0 68px!important;
}

.site-header-admin .site-brand{
    height:48px!important;
}

.site-header-admin .site-brand img{
    width:170px!important;
    height:48px!important;
    object-fit:contain!important;
}

.admin-userbar{
    display:flex;
    align-items:center;
    gap:14px;
    min-width:0;
    white-space:nowrap;
}

.admin-plan{
    display:inline-flex;
    align-items:center;
    gap:7px;
    height:38px;
    padding:0 15px;
    border:1px solid #e7ddff;
    border-radius:20px;
    background:#f8f5ff;
    color:#3f2a9c;
    font-size:13px;
    font-weight:700;
}

.admin-plan svg,
.admin-settings svg,
.admin-logout svg{
    width:17px;
    height:17px;
    stroke:currentColor;
    fill:none;
    stroke-width:2;
    stroke-linecap:round;
    stroke-linejoin:round;
}

.admin-divider{
    width:1px;
    height:27px;
    background:#e2daf5;
}

.admin-profile{
    display:flex;
    align-items:center;
    gap:9px;
}

.admin-avatar{
    width:36px;
    height:36px;
    border-radius:50%;
    display:flex;
    align-items:center;
    justify-content:center;
    background:#e9e3ff;
    color:#5b35e9;
}

.admin-avatar svg{
    width:20px;
    height:20px;
    stroke:currentColor;
    fill:none;
    stroke-width:1.9;
    stroke-linecap:round;
    stroke-linejoin:round;
}

.admin-profile-text{
    line-height:1.15;
}

.admin-profile-name{
    color:#292431;
    font-size:12px;
    font-weight:800;
}

.admin-profile-role{
    margin-top:4px;
    color:#8b8493;
    font-size:11px;
}

.admin-settings{
    width:38px;
    height:38px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border:1px solid #e7ddff;
    border-radius:50%;
    background:#f8f5ff;
    color:#6338f5;
    text-decoration:none;
}

.admin-logout{
    display:inline-flex;
    align-items:center;
    gap:5px;
    color:#d92d20!important;
    font-size:13px;
    font-weight:700;
    text-decoration:none;
}

@media(max-width:1300px){
    .site-header.site-header-admin{padding:0 30px!important}
}

@media(max-width:700px){
    .site-header.site-header-admin{height:64px!important;min-height:64px!important;padding:0 15px!important}
    .site-header-admin .site-brand img{width:145px!important;height:42px!important}
    .admin-userbar{gap:7px}
    .admin-plan{display:none}
    .admin-divider,.admin-settings{display:none}
    .admin-profile-name{font-size:10px}
    .admin-profile-role{font-size:9px}
    .admin-avatar{width:31px;height:31px}
    .admin-logout{font-size:11px}
}


/* MODO CIRÚRGICO — ícones dos títulos: sem caixa e na cor do título */
.page-title-icon,
.header-icon,
.cons-icon {
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    border-radius: 0 !important;
    color: inherit !important;
}

.page-title-icon > svg,
.header-left > .header-icon > svg,
.cons-title > .cons-icon > svg {
    color: inherit !important;
    stroke: currentColor !important;
    fill: none !important;
}

.page-title-icon > svg *,
.header-left > .header-icon > svg *,
.cons-title > .cons-icon > svg * {
    stroke: currentColor !important;
}

/* i3dCerto — tipografia global
   MODO CIRÚRGICO: somente padronização da família tipográfica.
   Demais dimensões, cores, espaçamentos e funcionalidades permanecem inalterados. */
html,
body,
body *{
    font-family:"Poppins", sans-serif !important;
}



/* i3dCerto — ajuste global de legibilidade tipográfica */
html, body, body * {
    font-family: "Poppins", sans-serif !important;
}
