/*
 * GCS Agent — identidade visual (By: GcunhaSolutions)
 * Base institucional: azul-noite + azul cobalto. Acentos da coruja: rosa, laranja, amarelo, verde, turquesa, azul e roxo.
 * Sobrescreve as variáveis do Bootstrap 5.3 (sem Sass), nos temas claro e escuro.
 */

:root {
    --gcs-noite: #0b1026;
    --gcs-noite-2: #141a3d;
    --gcs-cobalto: #2b44ff;
    --gcs-rosa: #ff2d7a;
    --gcs-laranja: #ff8a00;
    --gcs-amarelo: #ffd400;
    --gcs-verde: #00c46a;
    --gcs-turquesa: #00b8ae;
    --gcs-azul: #1f5cff;
    --gcs-roxo: #7b2ff7;
    --gcs-gradiente: linear-gradient(125deg, #7b2ff7 0%, #2b44ff 48%, #00b8ae 100%);
    --gcs-faixa: linear-gradient(90deg, #ff2d7a 0 16.6%, #ff8a00 16.6% 33.3%, #ffd400 33.3% 50%, #00c46a 50% 66.6%, #1f5cff 66.6% 83.3%, #7b2ff7 83.3% 100%);
    --gcs-sidebar-largura: 264px;
    --gcs-raio: 14px;
    --gcs-sombra: 0 1px 2px rgba(11, 16, 38, .06), 0 8px 24px -10px rgba(11, 16, 38, .16);
    --gcs-sombra-forte: 0 22px 50px -16px rgba(43, 68, 255, .45);
}

:root,
[data-bs-theme="light"] {
    --bs-font-sans-serif: "Inter", "Segoe UI", system-ui, -apple-system, Roboto, "Helvetica Neue", Arial, sans-serif;
    --bs-body-bg: #f2f4fa;
    --bs-body-bg-rgb: 242, 244, 250;
    --bs-body-color: #161b3a;
    --bs-secondary-color: rgba(22, 27, 58, .62);
    --bs-tertiary-bg: #eceff8;
    --bs-border-color: #dfe3ef;
    --bs-border-radius: .55rem;
    --bs-border-radius-lg: .8rem;
    --bs-primary: #2b44ff;
    --bs-primary-rgb: 43, 68, 255;
    --bs-primary-text-emphasis: #1a2bb3;
    --bs-primary-bg-subtle: #e8ebff;
    --bs-primary-border-subtle: #c3cbff;
    --bs-info: #00a59c;
    --bs-info-rgb: 0, 165, 156;
    --bs-success: #0f9d5a;
    --bs-success-rgb: 15, 157, 90;
    --bs-warning: #f59e0b;
    --bs-warning-rgb: 245, 158, 11;
    --bs-danger: #e11d58;
    --bs-danger-rgb: 225, 29, 88;
    --bs-link-color: #2b44ff;
    --bs-link-color-rgb: 43, 68, 255;
    --bs-link-hover-color: #1a2bb3;
    --bs-link-hover-color-rgb: 26, 43, 179;
    --bs-focus-ring-color: rgba(43, 68, 255, .22);
    --gcs-superficie: #ffffff;
}

[data-bs-theme="dark"] {
    --bs-body-bg: #080c1f;
    --bs-body-bg-rgb: 8, 12, 31;
    --bs-body-color: #e2e6f6;
    --bs-secondary-color: rgba(226, 230, 246, .6);
    --bs-tertiary-bg: #121838;
    --bs-secondary-bg: #161d44;
    --bs-border-color: #242c58;
    --bs-primary: #7d8cff;
    --bs-primary-rgb: 125, 140, 255;
    --bs-primary-text-emphasis: #bcc4ff;
    --bs-primary-bg-subtle: #1b2260;
    --bs-primary-border-subtle: #36409a;
    --bs-link-color: #93a0ff;
    --bs-link-color-rgb: 147, 160, 255;
    --bs-link-hover-color: #c7cdff;
    --bs-link-hover-color-rgb: 199, 205, 255;
    --bs-focus-ring-color: rgba(125, 140, 255, .3);
    --gcs-superficie: #0f1434;
    --gcs-sombra: 0 1px 2px rgba(0, 0, 0, .3), 0 8px 28px -10px rgba(0, 0, 0, .6);
}

body.gcs { -webkit-font-smoothing: antialiased; min-height: 100vh; }

/* ---------- Bootstrap na cor da marca ---------- */
.btn { --bs-btn-border-radius: .6rem; font-weight: 500; }
.btn-sm { --bs-btn-border-radius: .5rem; }
.btn-primary {
    --bs-btn-bg: #2b44ff; --bs-btn-border-color: #2b44ff;
    --bs-btn-hover-bg: #1f36e6; --bs-btn-hover-border-color: #1f36e6;
    --bs-btn-active-bg: #1a2ec7; --bs-btn-active-border-color: #1a2ec7;
    --bs-btn-disabled-bg: #2b44ff; --bs-btn-disabled-border-color: #2b44ff;
    box-shadow: 0 6px 16px -8px rgba(43, 68, 255, .85);
}
.btn-outline-primary {
    --bs-btn-color: var(--bs-primary); --bs-btn-border-color: var(--bs-primary-border-subtle);
    --bs-btn-hover-bg: var(--bs-primary); --bs-btn-hover-border-color: var(--bs-primary); --bs-btn-hover-color: #fff;
    --bs-btn-active-bg: var(--bs-primary); --bs-btn-active-border-color: var(--bs-primary);
}
.btn-marca { background: var(--gcs-gradiente); color: #fff; border: 0; box-shadow: 0 10px 24px -10px rgba(43, 68, 255, .9); }
.btn-marca:hover, .btn-marca:focus { color: #fff; filter: brightness(1.08); }
.pagination { --bs-pagination-active-bg: var(--bs-primary); --bs-pagination-active-border-color: var(--bs-primary); --bs-pagination-color: var(--bs-primary); }
.dropdown-menu { --bs-dropdown-link-active-bg: var(--bs-primary); --bs-dropdown-border-radius: .8rem; box-shadow: var(--gcs-sombra); }
.nav-tabs { --bs-nav-tabs-border-color: var(--bs-border-color); }
.nav-tabs .nav-link { color: var(--bs-secondary-color); font-weight: 500; border: 0; border-bottom: 3px solid transparent; }
.nav-tabs .nav-link.active { color: var(--bs-primary); background: transparent; border-bottom-color: var(--bs-primary); }
.nav-tabs .nav-link:hover { color: var(--bs-body-color); }
.form-control:focus, .form-select:focus { border-color: var(--bs-primary-border-subtle); box-shadow: 0 0 0 .25rem var(--bs-focus-ring-color); }
.form-check-input:checked { background-color: var(--bs-primary); border-color: var(--bs-primary); }
.badge { font-weight: 600; letter-spacing: .01em; }
.alert { border-radius: .8rem; border-width: 0; }
.modal-content { border-radius: 1rem; border: 0; box-shadow: var(--gcs-sombra-forte); }
h1, .h1, h2, .h2, h3, .h3, h4, .h4, h5, .h5 { letter-spacing: -.015em; font-weight: 700; }

.card {
    --bs-card-border-radius: var(--gcs-raio);
    --bs-card-inner-border-radius: calc(var(--gcs-raio) - 1px);
    --bs-card-bg: var(--gcs-superficie);
    --bs-card-cap-bg: transparent;
    --bs-card-border-color: var(--bs-border-color);
    box-shadow: var(--gcs-sombra);
}
.card-header { padding-top: .85rem; padding-bottom: .7rem; font-size: .95rem; }
.card-header strong i, .card-header .bi:first-child { color: var(--bs-primary); margin-right: .25rem; }
.list-group { --bs-list-group-bg: transparent; }
.table { --bs-table-bg: transparent; }
.table > thead th, .table-light > tr > th, thead.table-light th {
    font-size: .72rem; text-transform: uppercase; letter-spacing: .05em;
    color: var(--bs-secondary-color); font-weight: 600; background: var(--bs-tertiary-bg);
}
.table-light { --bs-table-bg: var(--bs-tertiary-bg); --bs-table-color: var(--bs-body-color); }
.table-hover > tbody > tr:hover > * { --bs-table-bg-state: rgba(var(--bs-primary-rgb), .04); }

/* ---------- Casca: navegação lateral + conteúdo ---------- */
.gcs-shell { display: flex; min-height: 100vh; }
.gcs-sidebar {
    --bs-offcanvas-width: var(--gcs-sidebar-largura);
    --bs-offcanvas-bg: var(--gcs-noite);
    --bs-offcanvas-color: #c6cbe8;
    width: var(--gcs-sidebar-largura);
    background-image:
        radial-gradient(120% 55% at 0% 0%, rgba(123, 47, 247, .30), transparent 60%),
        radial-gradient(90% 45% at 100% 100%, rgba(0, 184, 174, .16), transparent 60%),
        linear-gradient(var(--gcs-noite), var(--gcs-noite));
    color: #c6cbe8;
    flex-shrink: 0;
    border-top: 4px solid transparent;
    border-image: var(--gcs-faixa) 1;
}
@media (min-width: 992px) {
    .gcs-sidebar { position: sticky; top: 0; height: 100vh; display: flex; flex-direction: column; overflow-y: auto; }
    .gcs-sidebar .offcanvas-body { display: flex; flex-direction: column; flex: 1; }
}
.gcs-sidebar .offcanvas-body { display: flex; flex-direction: column; padding: 0; }
.gcs-marca { display: flex; align-items: center; gap: .75rem; padding: 1.25rem 1.2rem 1rem; color: #fff; text-decoration: none; }
.gcs-marca img { width: 46px; height: 46px; transition: transform .45s cubic-bezier(.2, .9, .3, 1.4); }
.gcs-marca:hover img { transform: rotate(-8deg) scale(1.08); }
.gcs-marca strong { display: block; font-size: 1.28rem; font-weight: 800; letter-spacing: .02em; line-height: 1; color: #fff; }
.gcs-marca small { display: block; font-size: .7rem; color: #8f97c9; margin-top: .25rem; letter-spacing: .02em; }
.gcs-nav { padding: .25rem .75rem 1rem; }
.gcs-nav-titulo { font-size: .66rem; text-transform: uppercase; letter-spacing: .12em; color: #6b73a8; padding: 1rem .75rem .4rem; font-weight: 700; }
.gcs-nav a {
    display: flex; align-items: center; gap: .75rem; padding: .55rem .75rem; border-radius: .7rem;
    color: #c6cbe8; text-decoration: none; font-weight: 500; font-size: .92rem; position: relative;
    transition: background .15s, color .15s;
}
.gcs-nav a i { font-size: 1.08rem; opacity: .85; width: 1.25rem; text-align: center; }
.gcs-nav a:hover { background: rgba(255, 255, 255, .06); color: #fff; }
.gcs-nav a.ativo { background: linear-gradient(90deg, rgba(43, 68, 255, .42), rgba(43, 68, 255, .08)); color: #fff; }
.gcs-nav a.ativo::before {
    content: ""; position: absolute; left: -.75rem; top: 20%; bottom: 20%; width: 4px; border-radius: 0 4px 4px 0;
    background: linear-gradient(#ff2d7a, #ff8a00, #ffd400, #00c46a, #1f5cff, #7b2ff7);
}
.gcs-nav .gcs-contador { margin-left: auto; font-size: .68rem; background: rgba(255, 138, 0, .2); color: #ffb35c; border-radius: 2rem; padding: .1rem .5rem; font-weight: 700; }
.gcs-sidebar-rodape { margin: auto .9rem 1rem; padding: .9rem 1rem; border-radius: 1rem; background: rgba(255, 255, 255, .05); border: 1px solid rgba(255, 255, 255, .08); font-size: .74rem; color: #8f97c9; }
.gcs-sidebar-rodape strong { color: #fff; }

.gcs-main { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.gcs-topbar {
    position: sticky; top: 0; z-index: 1020; display: flex; align-items: center; gap: .75rem; padding: .65rem 1.5rem;
    background: rgba(var(--bs-body-bg-rgb), .8);
    backdrop-filter: saturate(1.6) blur(14px); -webkit-backdrop-filter: saturate(1.6) blur(14px);
    border-bottom: 1px solid var(--bs-border-color);
}
.gcs-saudacao { line-height: 1.2; min-width: 0; }
.gcs-saudacao strong { display: block; font-size: 1rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.gcs-saudacao span { font-size: .78rem; color: var(--bs-secondary-color); }
.gcs-icone-btn {
    width: 38px; height: 38px; border-radius: .7rem; display: inline-flex; align-items: center; justify-content: center;
    border: 1px solid var(--bs-border-color); background: var(--gcs-superficie); color: var(--bs-body-color); text-decoration: none;
}
.gcs-icone-btn:hover { color: var(--bs-primary); border-color: var(--bs-primary-border-subtle); }
.gcs-avatar {
    width: 36px; height: 36px; border-radius: 50%; background: var(--gcs-gradiente); color: #fff;
    display: inline-flex; align-items: center; justify-content: center; font-weight: 700; font-size: .85rem;
    box-shadow: 0 6px 14px -6px rgba(43, 68, 255, .9);
}
.gcs-conteudo { flex: 1; padding: 1.75rem 1.75rem 2rem; width: 100%; max-width: 1680px; margin: 0 auto; }
@media (max-width: 575.98px) { .gcs-conteudo { padding: 1.1rem .85rem 1.5rem; } .gcs-topbar { padding: .6rem .85rem; } }

/* Cabeçalho de página */
.gcs-pagina { display: flex; flex-wrap: wrap; gap: .75rem 1rem; align-items: flex-end; justify-content: space-between; margin-bottom: 1.25rem; }
.gcs-pagina h1 { font-size: 1.55rem; margin: 0; }
.gcs-pagina .sub { color: var(--bs-secondary-color); font-size: .88rem; margin-top: .2rem; }
.gcs-voltar { font-size: .82rem; text-decoration: none; color: var(--bs-secondary-color); }
.gcs-voltar:hover { color: var(--bs-primary); }

/* ---------- Rodapé + assinatura ---------- */
.gcs-rodape {
    border-top: 1px solid var(--bs-border-color); padding: 1rem 1.75rem; font-size: .8rem; color: var(--bs-secondary-color);
    display: flex; flex-wrap: wrap; gap: .5rem 1.25rem; align-items: center;
}
.gcs-rodape a { color: inherit; text-decoration: none; font-weight: 600; }
.gcs-rodape a:hover { color: var(--bs-primary); }
.gcs-by { font-weight: 700; letter-spacing: .01em; }
.gcs-by b {
    background: linear-gradient(90deg, #ff2d7a, #ff8a00 30%, #1f5cff 70%, #7b2ff7);
    -webkit-background-clip: text; background-clip: text; color: transparent; font-weight: 800;
}
.gcs-faixa { height: 4px; border-radius: 4px; background: var(--gcs-faixa); }

/* ---------- Componentes ---------- */
.gcs-hero {
    position: relative; overflow: hidden; border-radius: 1.25rem; padding: 1.6rem 1.9rem; color: #fff;
    background: radial-gradient(80% 120% at 100% 0%, rgba(0, 184, 174, .45), transparent 60%), var(--gcs-gradiente);
    box-shadow: var(--gcs-sombra-forte);
}
.gcs-hero::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 5px; background: var(--gcs-faixa); }
.gcs-hero img.coruja { position: absolute; right: 1.5rem; bottom: -8px; width: 150px; filter: drop-shadow(0 18px 30px rgba(0, 0, 0, .35)); }
.gcs-hero h1 { font-size: 1.6rem; margin-bottom: .25rem; }
.gcs-hero p { opacity: .88; margin: 0; max-width: 60ch; }
@media (max-width: 767.98px) { .gcs-hero img.coruja { display: none; } }

.gcs-stat { display: flex; align-items: center; gap: .9rem; padding: 1rem 1.1rem; height: 100%; text-decoration: none; color: inherit; }
.gcs-stat .icone { width: 46px; height: 46px; border-radius: .9rem; display: flex; align-items: center; justify-content: center; font-size: 1.35rem; flex-shrink: 0; }
.gcs-stat .valor { font-size: 1.55rem; font-weight: 800; line-height: 1; letter-spacing: -.02em; }
.gcs-stat .rotulo { font-size: .8rem; color: var(--bs-secondary-color); margin-top: .25rem; }
a.card:hover { border-color: var(--bs-primary-border-subtle); transform: translateY(-1px); transition: .15s; }
.cor-rosa { background: rgba(255, 45, 122, .12); color: #e0115f; }
.cor-laranja { background: rgba(255, 138, 0, .14); color: #d96f00; }
.cor-amarelo { background: rgba(255, 212, 0, .2); color: #a78400; }
.cor-verde { background: rgba(0, 196, 106, .14); color: #00975a; }
.cor-turquesa { background: rgba(0, 184, 174, .14); color: #00877f; }
.cor-azul { background: rgba(31, 92, 255, .12); color: #1f4fe0; }
.cor-roxo { background: rgba(123, 47, 247, .12); color: #6a22e0; }
[data-bs-theme="dark"] .cor-rosa { color: #ff6fa3; } [data-bs-theme="dark"] .cor-laranja { color: #ffaa4d; }
[data-bs-theme="dark"] .cor-amarelo { color: #ffe066; } [data-bs-theme="dark"] .cor-verde { color: #4ee39a; }
[data-bs-theme="dark"] .cor-turquesa { color: #4fdcd3; } [data-bs-theme="dark"] .cor-azul { color: #7fa2ff; }
[data-bs-theme="dark"] .cor-roxo { color: #b58cff; }

.gcs-preco { font-size: 2rem; font-weight: 800; letter-spacing: -.02em; line-height: 1; }
.gcs-preco small { font-size: .85rem; font-weight: 500; color: var(--bs-secondary-color); }
.gcs-codigo { font-family: var(--bs-font-monospace); font-size: .8rem; background: var(--bs-tertiary-bg); border-radius: .5rem; padding: .35rem .5rem; word-break: break-all; }

/* ---------- Login ---------- */
.gcs-login { min-height: 100vh; display: grid; grid-template-columns: 1.1fr 1fr; }
.gcs-login .lado-marca {
    position: relative; overflow: hidden; color: #fff; padding: 3rem; display: flex; flex-direction: column; justify-content: space-between;
    background: radial-gradient(70% 60% at 0% 0%, rgba(123, 47, 247, .55), transparent 60%),
                radial-gradient(60% 60% at 100% 100%, rgba(0, 184, 174, .35), transparent 60%), var(--gcs-noite);
}
.gcs-login .lado-marca::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 6px; background: var(--gcs-faixa); }
.gcs-login .lado-marca img { width: min(360px, 70%); align-self: center; filter: drop-shadow(0 30px 40px rgba(0, 0, 0, .45)); }
.gcs-login .lado-form { display: flex; align-items: center; justify-content: center; padding: 2rem; }
.gcs-login .lado-form > div { width: 100%; max-width: 380px; }
@media (max-width: 991.98px) { .gcs-login { grid-template-columns: 1fr; } .gcs-login .lado-marca { display: none; } }

@media print {
    .gcs-sidebar, .gcs-topbar, .gcs-rodape, .no-print { display: none !important; }
    body { background: #fff !important; }
    .card { box-shadow: none; }
}
