/* =========================================================
   PontoGestor Stability CSS - etapa 10/10
   Carregado por último. Corrige padrões visuais sem mexer na regra de negócio.
========================================================= */

:root{
    --pg-bg:#f6f7f9;
    --pg-surface:#ffffff;
    --pg-border:#e6ebf2;
    --pg-text:#101828;
    --pg-muted:#667085;
    --pg-green:#16a34a;
    --pg-green-dark:#166534;
    --pg-red:#e53935;
    --pg-shadow-sm:0 8px 20px rgba(15,23,42,.045);
    --pg-shadow-md:0 14px 34px rgba(15,23,42,.07);
}

/* Topbar institucional estável */
.topbar{
    min-height:64px!important;
    padding:0 4vw!important;
    background:linear-gradient(180deg,rgba(18,18,18,.99),rgba(10,10,10,.985))!important;
    border-bottom:1px solid rgba(255,255,255,.08)!important;
    box-shadow:0 12px 30px rgba(0,0,0,.18)!important;
}
.topbar .brand-logo,
.topbar .brand-logo img,
.brand-logo,
.brand-logo img{
    background:transparent!important;
}
.topbar .brand-logo img,
.brand-logo img{
    height:52px!important;
    width:auto!important;
    max-width:220px!important;
    display:block!important;
    object-fit:contain!important;
}
.topbar nav{
    gap:10px!important;
    color:rgba(255,255,255,.82)!important;
}
.topbar nav a:not(.btn){
    color:rgba(255,255,255,.84)!important;
    border-radius:10px!important;
    padding:9px 10px!important;
}
.topbar nav a:not(.btn):hover{
    color:#fff!important;
    background:rgba(255,255,255,.08)!important;
}
.topbar .btn-dark{
    background:#050505!important;
    color:#fff!important;
    border:1px solid rgba(255,255,255,.14)!important;
    min-height:40px!important;
    padding:0 16px!important;
    border-radius:14px!important;
}

/* Cards e tabelas: base premium e menos exagerada */
.dashboard{
    max-width:1220px;
}
.panel-card,
.form-card,
.login-card,
.table-wrap{
    border:1px solid var(--pg-border)!important;
    box-shadow:var(--pg-shadow-sm)!important;
}
.panel-card,
.form-card,
.login-card{
    border-radius:18px!important;
}
.table-wrap{
    border-radius:14px!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
    -webkit-overflow-scrolling:touch;
}
.table-wrap table{
    width:100%;
    border-collapse:collapse;
}
.table-wrap th{
    background:#05070b;
    color:#fff;
    letter-spacing:.07em;
    text-transform:uppercase;
}
.table-wrap td,
.table-wrap th{
    vertical-align:middle;
}
.btn,
button,
a.btn{
    border-radius:14px;
}

/* Status legíveis e consistentes */
.status,
.badge,
.pgf-badge{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border-radius:999px;
    font-weight:800;
}

/* Footer slim corporativo */
.footer{
    padding:12px 3vw 10px!important;
    margin-top:18px!important;
}
.footer-inner{
    gap:6px!important;
}
.footer-slim-bar{
    display:grid!important;
    grid-template-columns:auto minmax(240px,1fr) auto!important;
    align-items:center!important;
    gap:16px!important;
    padding-bottom:8px!important;
}
.footer-logo img{
    height:32px!important;
    max-width:190px!important;
}
.footer-tagline{
    margin:0!important;
    font-size:.8rem!important;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}
.footer-links{
    gap:12px!important;
}
.footer-links a{
    font-size:.76rem!important;
}
.footer-access{
    min-height:32px!important;
    padding:0 10px!important;
    border-radius:10px!important;
}
.footer-bottom{
    font-size:.72rem!important;
}

/* Financeiro da empresa - escopo específico */
.pg-financeiro-v3{
    max-width:1180px;
    margin:0 auto;
    padding-top:20px!important;
    padding-bottom:36px!important;
}
.pg-financeiro-v3 *{box-sizing:border-box}
.pgf-hero{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    align-items:center;
    gap:16px;
    padding:16px 18px;
    border:1px solid var(--pg-border);
    border-radius:14px;
    background:linear-gradient(135deg,rgba(255,255,255,.97),rgba(246,250,247,.92));
    box-shadow:var(--pg-shadow-sm);
    margin-bottom:14px;
}
.pgf-kicker{
    display:inline-flex;
    align-items:center;
    height:28px;
    padding:0 11px;
    border-radius:999px;
    background:#effaf2;
    border:1px solid #cfead6;
    color:var(--pg-green-dark);
    font-size:.72rem;
    font-weight:900;
    text-transform:uppercase;
    letter-spacing:.07em;
}
.pgf-hero h1{
    margin:7px 0 5px;
    color:var(--pg-text);
    font-size:clamp(1.72rem,2.5vw,2.18rem);
    line-height:1.08;
    letter-spacing:-.035em;
}
.pgf-hero p{
    margin:0;
    color:#5c6675;
    font-size:.94rem;
    line-height:1.48;
}
.pgf-hero .btn{
    min-height:38px!important;
    padding:8px 13px!important;
    border-radius:12px!important;
    white-space:nowrap;
}
.pgf-kpis{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:12px;
    margin-bottom:14px;
}
.pgf-kpi{
    position:relative;
    min-height:72px;
    padding:12px 14px 11px 16px;
    border:1px solid var(--pg-border);
    border-radius:14px;
    background:#fff;
    box-shadow:var(--pg-shadow-sm);
    overflow:hidden;
}
.pgf-kpi:before{
    content:"";
    position:absolute;
    left:0;top:0;bottom:0;width:4px;
    background:var(--pg-green);
}
.pgf-kpi.warn:before{background:#f59e0b}
.pgf-kpi.danger:before{background:#ef4444}
.pgf-kpi span{
    display:block;
    color:var(--pg-muted);
    font-size:.7rem;
    font-weight:900;
    text-transform:uppercase;
    letter-spacing:.06em;
}
.pgf-kpi strong{
    display:block;
    margin-top:7px;
    color:var(--pg-text);
    font-size:1.22rem;
    line-height:1.05;
    font-weight:900;
}
.pgf-kpi.money strong{font-size:1.32rem}
.pgf-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:14px;
    align-items:start;
}
.pgf-card{
    min-width:0;
    border:1px solid var(--pg-border);
    border-radius:14px;
    background:#fff;
    box-shadow:var(--pg-shadow-sm);
    padding:14px;
    overflow:hidden;
}
.pgf-card.full{grid-column:1 / -1}
.pgf-card h2{
    margin:0 0 11px;
    color:var(--pg-text);
    font-size:1.02rem;
    line-height:1.2;
    letter-spacing:-.015em;
}
.pgf-table-scroll{
    width:100%;
    max-width:100%;
    overflow-x:auto;
    overflow-y:hidden;
    border:1px solid #edf1f5;
    border-radius:12px;
    -webkit-overflow-scrolling:touch;
}
.pgf-table{
    width:100%;
    min-width:560px;
    border-collapse:collapse;
    table-layout:fixed;
}
.pgf-table th{
    background:#05070b;
    color:#fff;
    padding:10px 9px;
    font-size:.66rem;
    line-height:1.15;
    font-weight:900;
    letter-spacing:.075em;
    text-transform:uppercase;
    text-align:left;
}
.pgf-table td{
    padding:10px 9px;
    border-bottom:1px solid #edf1f5;
    color:var(--pg-text);
    font-size:.78rem;
    line-height:1.25;
    vertical-align:middle;
}
.pgf-table tr:last-child td{border-bottom:0}
.pgf-table tbody tr:nth-child(even){background:#fafbfc}
.pgf-table .col-id{width:8%}
.pgf-table .col-terc{width:33%}
.pgf-table .col-periodo{width:20%}
.pgf-table .col-valor{width:13%}
.pgf-table .col-status{width:17%}
.pgf-table .col-acao{width:9%;text-align:right}
.pgf-table .col-venc{width:16%}
.pgf-table .terc-nome{
    max-width:100%;
    overflow:hidden;
    text-overflow:ellipsis;
    display:-webkit-box;
    -webkit-line-clamp:2;
    -webkit-box-orient:vertical;
}
.pgf-table .valor{
    white-space:normal;
    font-weight:800;
}
.pgf-badge{
    max-width:100%;
    min-height:26px;
    padding:5px 8px;
    font-size:.68rem;
    line-height:1.05;
    white-space:normal;
}
.pgf-badge.ok{background:#dcfce7;color:#166534}
.pgf-badge.warn{background:#fef3c7;color:#92400e}
.pgf-badge.bad{background:#fee2e2;color:#991b1b}
.pgf-badge.info{background:#eef2f7;color:#334155}
.pgf-action{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:32px;
    padding:6px 10px;
    border-radius:999px;
    border:1px solid #d8e0ea;
    background:#fff;
    color:var(--pg-text);
    font-size:.72rem;
    font-weight:900;
    text-decoration:none;
    white-space:nowrap;
}
.pgf-empty{
    padding:16px;
    color:var(--pg-muted);
    font-size:.9rem;
}

@media screen and (max-width:1024px){
    .topbar{
        min-height:60px!important;
        padding:0 16px!important;
    }
    .topbar .brand-logo img,
    .brand-logo img{
        height:44px!important;
        max-width:185px!important;
    }
    .topbar nav{
        overflow-x:auto;
        scrollbar-width:none;
    }
    .topbar nav::-webkit-scrollbar{display:none}
    .pgf-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
    .pgf-grid{grid-template-columns:1fr}
    .footer-slim-bar{
        grid-template-columns:1fr!important;
        align-items:flex-start!important;
    }
    .footer-tagline{
        white-space:normal!important;
    }
}
@media screen and (max-width:768px){
    .topbar{
        min-height:58px!important;
    }
    .topbar nav a:not(.btn){
        padding:8px 9px!important;
    }
    .topbar .btn-dark{
        min-height:38px!important;
        padding:0 12px!important;
    }
    .pg-financeiro-v3{
        padding-top:14px!important;
    }
    .pgf-hero{
        grid-template-columns:1fr;
        padding:14px;
    }
    .pgf-hero h1{
        font-size:1.56rem;
    }
    .pgf-kpis{
        grid-template-columns:1fr;
    }
    .pgf-kpi{
        min-height:66px;
    }
    .pgf-card{
        padding:12px;
    }
    .pgf-table{
        min-width:620px;
    }
    .footer-bottom,
    .footer-links{
        justify-content:flex-start!important;
    }
}
