/*
 * Identidade visual ProBI (direção "Contraste com cor" + cores da logo).
 * Carregado em todas as páginas depois do style.css: menu lateral, topo, login e componentes globais.
 * Paleta da marca: marinho (fundo da logo), teal (anel) e laranja (destaques).
 */
:root {
    --pb-navy-950: #071530;
    --pb-navy-900: #0B1F3A;
    --pb-navy-800: #14284B;
    --pb-navy-700: #1D3A66;
    --pb-teal-700: #136F85;
    --pb-teal-600: #1B8CA6;
    --pb-teal-500: #26A6BF;
    --pb-teal-100: #DDF2F6;
    --pb-teal-50: #EFF8FA;
    --pb-orange-600: #D9561A;
    --pb-orange-500: #F26B21;
    --pb-orange-100: #FDE9DA;

    /* variáveis do style.css apontando para a marca */
    --primary-color: var(--pb-teal-600);
    --secondary-color: var(--pb-navy-800);
    --accent-color: var(--pb-orange-500);
}

/* ---------- Menu lateral ---------- */
.sidebar-logo { padding: 0 1.25rem; }
.logo-icon.logo-marca { background: var(--pb-navy-900); padding: 3px; overflow: hidden; box-shadow: 0 4px 10px rgba(11, 31, 58, .25); }
.logo-icon.logo-marca img { width: 100%; height: 100%; object-fit: cover; border-radius: 8px; }
.logo-text { color: var(--pb-navy-900); letter-spacing: -.01em; }
.logo-text small { display: block; font-size: .62rem; font-weight: 600; letter-spacing: .18em; color: var(--pb-teal-600); text-transform: uppercase; margin-top: -2px; }

.nav-link:hover { color: var(--pb-teal-700); background: var(--pb-teal-50); }
.nav-link.active {
    background: linear-gradient(135deg, var(--pb-navy-800), var(--pb-navy-700));
    box-shadow: 0 6px 16px rgba(11, 31, 58, .28);
}
.nav-link.active .nav-icon { color: var(--pb-teal-500); }
.nav-link.active::before { background: var(--pb-orange-500); }
.nav-section-title { color: #8A9AB3; }
.user-avatar { background: linear-gradient(135deg, var(--pb-teal-600), var(--pb-navy-800)); }

/* Entrada suave do conteúdo */
@keyframes pb-surgir { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
.animate-slide-in { animation: pb-surgir .28s ease-out both; }

/* ---------- Seletor de visão (Kanban | Lista, Cards | Lista) ---------- */
.pb-visoes { display: inline-flex; gap: 4px; padding: 4px; background: #EEF2F7; border-radius: 12px; }
.pb-visoes a {
    display: inline-flex; align-items: center; gap: .45rem; padding: .45rem .9rem; border-radius: 9px;
    font-size: .85rem; font-weight: 600; color: #475569; text-decoration: none;
    transition: background .18s ease, color .18s ease, box-shadow .18s ease;
}
.pb-visoes a:hover { color: var(--pb-navy-800); background: rgba(255, 255, 255, .7); }
.pb-visoes a.ativo { background: var(--pb-navy-800); color: #fff; box-shadow: 0 4px 10px rgba(11, 31, 58, .25); }
.pb-visoes a.ativo i { color: var(--pb-teal-500); }

/* ---------- Login em dois lados ---------- */
.pb-login { min-height: 100vh; display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); background: #fff; }
.pb-login-marca {
    position: relative; overflow: hidden; color: #E6EEF8;
    background: radial-gradient(circle at 30% 20%, var(--pb-navy-700) 0%, var(--pb-navy-900) 55%, var(--pb-navy-950) 100%);
    display: flex; flex-direction: column; justify-content: space-between; padding: 3rem 3.5rem;
}
.pb-login-marca::after {
    content: ''; position: absolute; right: -120px; bottom: -120px; width: 360px; height: 360px; border-radius: 50%;
    border: 38px solid rgba(38, 166, 191, .12); border-top-color: rgba(242, 107, 33, .22);
}
.pb-login-logo { width: min(420px, 80%); aspect-ratio: 1; margin: 0 auto; border-radius: 28px; overflow: hidden; box-shadow: 0 30px 60px rgba(0, 0, 0, .35); animation: pb-surgir .5s ease-out both; }
.pb-login-logo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.pb-login-topo { display: flex; align-items: center; gap: .6rem; font-weight: 700; letter-spacing: .02em; }
.pb-login-topo img { width: 34px; height: 34px; border-radius: 9px; }
.pb-login-texto h2 { font-size: 1.6rem; font-weight: 700; color: #fff; margin: 0 0 .5rem; }
.pb-login-texto p { color: #A9BBD3; margin: 0 0 1.25rem; max-width: 460px; }
.pb-login-itens { display: flex; flex-wrap: wrap; gap: .5rem; }
.pb-login-itens span { font-size: .8rem; padding: .35rem .75rem; border-radius: 99px; background: rgba(255, 255, 255, .08); border: 1px solid rgba(255, 255, 255, .12); }
.pb-login-itens i { color: var(--pb-orange-500); margin-right: .35rem; }

.pb-login-form { display: flex; align-items: center; justify-content: center; padding: 3rem 1.5rem; background: #F7F9FC; }
.pb-login-caixa { width: 100%; max-width: 420px; animation: pb-surgir .4s ease-out both; }
.pb-login-caixa h1 { font-size: 1.75rem; font-weight: 700; color: var(--pb-navy-900); margin: 0 0 .35rem; }
.pb-login-caixa .pb-sub { color: #64748B; margin: 0 0 2rem; }
.pb-login-caixa .form-group { margin-bottom: 1.25rem; }
.pb-login-caixa .form-label { font-weight: 600; font-size: .85rem; color: #334155; margin-bottom: .4rem; display: block; }
.pb-login-caixa .input-group { position: relative; display: flex; align-items: center; }
.pb-login-caixa .input-icon { position: absolute; left: 14px; color: #94A3B8; z-index: 2; }
.pb-login-caixa .form-input {
    width: 100%; height: 48px; padding: 0 44px; border: 1.5px solid #E2E8F0; border-radius: 12px; background: #fff;
    font-size: .95rem; transition: border-color .15s ease, box-shadow .15s ease;
}
.pb-login-caixa .form-input:focus { outline: none; border-color: var(--pb-teal-600); box-shadow: 0 0 0 4px rgba(27, 140, 166, .15); }
.pb-login-caixa .password-toggle { position: absolute; right: 10px; border: 0; background: none; color: #94A3B8; padding: 6px; }
.pb-login-caixa .login-button {
    width: 100%; height: 50px; border: 0; border-radius: 12px; font-weight: 700; font-size: .95rem; color: #fff;
    background: linear-gradient(135deg, var(--pb-navy-800), var(--pb-teal-700)); box-shadow: 0 10px 22px rgba(19, 111, 133, .3);
    transition: transform .15s ease, box-shadow .15s ease;
}
.pb-login-caixa .login-button:hover { transform: translateY(-1px); box-shadow: 0 14px 28px rgba(19, 111, 133, .38); }
.pb-login-caixa .alert { border-radius: 12px; display: flex; gap: .6rem; align-items: center; font-size: .9rem; }
.pb-login-caixa a { color: var(--pb-teal-700); font-weight: 600; }
.pb-login-rodape { margin-top: 2rem; font-size: .78rem; color: #94A3B8; text-align: center; }

@media (max-width: 900px) {
    .pb-login { grid-template-columns: 1fr; }
    .pb-login-marca { padding: 1.5rem; flex-direction: row; align-items: center; gap: 1rem; }
    .pb-login-marca::after, .pb-login-texto p, .pb-login-itens { display: none; }
    .pb-login-logo { width: 72px; border-radius: 16px; margin: 0; box-shadow: none; order: -1; }
    .pb-login-topo { display: none; }
    .pb-login-texto h2 { font-size: 1.1rem; margin: 0; }
}

/* Área principal não cresce com conteúdos largos (ex.: kanban): só o próprio quadro rola na horizontal */
.main-content { min-width: 0; }
.page-content { min-width: 0; max-width: 100%; }
