/* Painel Caroline Gurgel Advocacia — camada de marca sobre o AdminLTE 4 (Bootstrap 5.3).
   Tokens: marinho e dourado do escritório, Marcellus nos títulos e números, Figtree no resto. */

:root, [data-bs-theme="light"] {
  --cg-navy: #1B2A4A;
  --cg-navy-2: #2A3D66;
  --cg-gold: #B8913A;
  --cg-gold-soft: #F3E9D0;
  --cg-bg: #EEF1F6;
  --cg-surface: #FFFFFF;
  --cg-ink: #16203A;
  --cg-muted: #55617D;
  --cg-line: #D9DEE8;
  --cg-ok: #2F7D5B;
  --cg-warn: #A8700F;
  --cg-bad: #B2432F;
  --cg-serie-a: #3466B5;
  --cg-serie-b: #BC7F12;
  --cg-s-triagem: #8A94AB;
  --cg-s-confirmar: #C9A24A;
  --cg-s-contratado: #3B6FB6;
  --cg-s-elaboracao: #B8913A;
  --cg-s-protocolado: #2F7D5B;
  --cg-s-aguardando: #2A8C8C;
  --cg-s-recurso: #7A5AA6;
  --cg-s-cumprimento: #4C5C8A;
  --cg-s-encerrado: #9AA3B5;
  --cg-display: "Marcellus", "Palatino Linotype", Georgia, serif;
  --cg-body: "Figtree", system-ui, -apple-system, "Segoe UI", sans-serif;

  --bs-body-font-family: var(--cg-body);
  --bs-body-bg: var(--cg-bg);
  --bs-body-color: var(--cg-ink);
  --bs-secondary-color: var(--cg-muted);
  --bs-border-color: var(--cg-line);
  --bs-link-color: var(--cg-navy-2);
  --bs-link-hover-color: var(--cg-navy);
  --bs-primary: var(--cg-navy);
  --bs-primary-rgb: 27, 42, 74;
}

[data-bs-theme="dark"] {
  --cg-navy: #0A1226;
  --cg-navy-2: #1B2A4A;
  --cg-gold: #D2AB55;
  --cg-gold-soft: #2F2A1C;
  --cg-bg: #0E1630;
  --cg-surface: #17223F;
  --cg-ink: #E8ECF5;
  --cg-muted: #A3AECA;
  --cg-line: #2B3858;
  --cg-ok: #4FB488;
  --cg-warn: #E0AE55;
  --cg-bad: #E27B66;
  --cg-serie-a: #4F86DE;
  --cg-serie-b: #C28618;
  --bs-body-bg: var(--cg-bg);
  --bs-body-color: var(--cg-ink);
  --bs-secondary-color: var(--cg-muted);
  --bs-border-color: var(--cg-line);
  --bs-link-color: #8DB3EC;
  --bs-link-hover-color: #B5CDF3;
}

body { font-family: var(--cg-body); background: var(--cg-bg); color: var(--cg-ink); }
:focus-visible { outline: 2px solid var(--cg-gold); outline-offset: 2px; }
.bi { line-height: 1; }

.app-header { background: var(--cg-surface); border-bottom: 1px solid var(--cg-line); }
.app-header .nav-link { color: var(--cg-ink); background: none; border: 0; }
.app-sidebar { background: var(--cg-navy) !important; border-right: 3px solid var(--cg-gold); }
.app-sidebar .sidebar-brand { border-bottom: 1px solid rgba(255, 255, 255, .12); height: 4rem; }
.brand-link { display: flex; align-items: center; gap: .7rem; padding: 0 1rem; height: 100%; color: #fff; text-decoration: none; }
.brand-text { display: grid; line-height: 1.1; }
.brand-text b { font-family: var(--cg-display); font-weight: 400; font-size: 1.2rem; letter-spacing: .01em; }
.brand-text small { color: #C9D2E6; font-size: .78rem; }
.cg-mark-sm { width: 34px; height: 34px; flex: none; }
.app-sidebar .nav-link { color: #D5DCEC; border-radius: 6px; }
.app-sidebar .nav-link:hover { background: rgba(255, 255, 255, .08); color: #fff; }
.app-sidebar .nav-link.active { background: var(--cg-gold) !important; color: #16203A !important; font-weight: 600; }
.app-footer { background: transparent; color: var(--cg-muted); border-top: 1px solid var(--cg-line); font-size: .85rem; }
.app-content-header { padding: 1.4rem 0 .4rem; }
.cg-titulo { font-family: var(--cg-display); font-weight: 400; font-size: clamp(1.6rem, 3vw, 2.2rem); margin: 0; letter-spacing: .01em; }
.cg-subtitulo { margin: .2rem 0 0; color: var(--cg-muted); }
.cg-atualizado { color: var(--cg-muted); font-size: .88rem; }

.cg-btn-ouro { background: var(--cg-gold); border-color: var(--cg-gold); color: #16203A; font-weight: 600; }
.cg-btn-ouro:hover, .cg-btn-ouro:focus-visible { background: #C9A24A; border-color: #C9A24A; color: #16203A; }
[data-bs-theme="dark"] .cg-btn-ouro { color: #14203D; }

.card { background: var(--cg-surface); border: 1px solid var(--cg-line); border-radius: 8px; box-shadow: none; margin-bottom: 1.25rem; }
.card-header { background: transparent; border-bottom: 0; padding: 1rem 1.2rem .2rem; }
.card-title { font-family: var(--cg-display); font-weight: 400; font-size: 1.2rem; float: none; margin: 0; }
.card-sub { color: var(--cg-muted); font-size: .85rem; margin: .1rem 0 0; }
.card-body { padding: 1rem 1.2rem 1.2rem; }

.cg-vazio { color: var(--cg-muted); padding: 1.2rem; border: 1px dashed var(--cg-line); border-radius: 8px; text-align: center; }

.cg-kpi { background: var(--cg-surface); border: 1px solid var(--cg-line); border-radius: 8px; padding: 1rem 1.2rem; height: 100%; }
.cg-kpi b { display: block; font-family: var(--cg-display); font-weight: 400; font-size: 2.6rem; line-height: 1; font-variant-numeric: tabular-nums; }
.cg-kpi span { color: var(--cg-muted); font-size: .92rem; }
.cg-kpi.destaque { background: var(--cg-gold-soft); border-color: var(--cg-gold); }
.cg-kpi.alerta b { color: var(--cg-bad); }

.cg-esteira { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(165px, 1fr); gap: .6rem; overflow-x: auto; padding-bottom: .4rem; }
.cg-fase { min-width: 0; border-top: 4px solid var(--fase, var(--cg-line)); background: color-mix(in srgb, var(--cg-surface) 70%, var(--cg-bg)); border-radius: 0 0 6px 6px; padding: .55rem .5rem .6rem; }
.cg-fase.vazia { opacity: .55; }
.cg-fase h3 { font-size: .86rem; font-weight: 600; margin: 0 0 .5rem; display: flex; justify-content: space-between; gap: .4rem; align-items: baseline; }
.cg-fase h3 em { font-style: normal; font-family: var(--cg-display); font-size: 1.35rem; font-variant-numeric: tabular-nums; }
.cg-chips { display: grid; gap: .4rem; }
.cg-chip { text-align: left; width: 100%; background: var(--cg-surface); border: 1px solid var(--cg-line); border-left: 5px solid var(--cor, var(--cg-line)); border-radius: 5px; padding: .35rem .5rem; color: inherit; cursor: pointer; }
.cg-chip:hover { border-color: var(--cg-gold); border-left-color: var(--cor); }
.cg-chip b { display: block; font-size: .88rem; line-height: 1.2; overflow-wrap: anywhere; }
.cg-chip span { display: flex; justify-content: space-between; gap: .4rem; color: var(--cg-muted); font-size: .76rem; line-height: 1.3; }
.cg-chip span i { font-style: normal; font-weight: 700; color: var(--cor); font-variant-numeric: tabular-nums; }
.cg-chip .cg-trunc { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cg-legenda { display: flex; flex-wrap: wrap; gap: .3rem 1.1rem; margin: .8rem 0 0; color: var(--cg-muted); font-size: .85rem; }
.cg-legenda i { display: inline-block; width: 10px; height: 10px; border-radius: 2px; margin-right: .4rem; vertical-align: -1px; }

.cg-grafico { position: relative; width: 100%; }
.cg-grafico canvas { max-width: 100%; }

.cg-ferramentas { display: flex; flex-wrap: wrap; gap: .6rem; margin-bottom: 1rem; }
.cg-ferramentas input, .cg-ferramentas select { background: var(--cg-bg); border: 1px solid var(--cg-line); color: var(--cg-ink); }
.cg-ferramentas input { flex: 1; min-width: 200px; }
.table { --bs-table-bg: transparent; --bs-table-color: var(--cg-ink); --bs-table-border-color: var(--cg-line); min-width: 860px; margin: 0; }
.table th { font-size: .82rem; font-weight: 600; color: var(--cg-muted); white-space: nowrap; }
.table td { vertical-align: middle; }
.table tr.cg-linha { cursor: pointer; }
.table tr.cg-linha:hover td { background: var(--cg-bg); }
.cg-cli b { display: block; }
.cg-cli small { color: var(--cg-muted); }
.cg-pilula { display: inline-block; padding: .12rem .6rem; border-radius: 999px; color: #fff; font-size: .78rem; font-weight: 600; white-space: nowrap; background: var(--cor, var(--cg-s-triagem)); }
.cg-pilula.clara { color: #16203A; }
.cg-medidor { display: flex; align-items: center; gap: .5rem; min-width: 130px; }
.cg-medidor i { flex: 1; height: 8px; background: var(--cg-line); border-radius: 4px; overflow: hidden; }
.cg-medidor u { display: block; height: 100%; text-decoration: none; border-radius: 4px; background: var(--cor); }
.cg-medidor em { font-style: normal; font-variant-numeric: tabular-nums; width: 2.6rem; text-align: right; font-size: .85rem; }
.cg-sinal { color: var(--cg-bad); font-weight: 700; }

.cg-conferir { display: grid; gap: .8rem; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); }
.cg-conferir .card { margin: 0; }
.cg-conferir ul { margin: .5rem 0 0; padding-left: 1.1rem; }
.cg-conferir li { margin-bottom: .3rem; }

.modal-content { background: var(--cg-surface); border: 1px solid var(--cg-line); border-top: 4px solid var(--cg-gold); }
.modal-title { font-family: var(--cg-display); font-weight: 400; font-size: 1.5rem; }
.cg-dados { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: .8rem 1.2rem; margin-bottom: 1rem; }
.cg-dados dt { font-size: .8rem; font-weight: 500; color: var(--cg-muted); }
.cg-dados dd { margin: 0; font-weight: 600; }
.cg-docs { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
@media (max-width: 640px) { .cg-docs { grid-template-columns: 1fr; } }
.cg-docs h3 { font-size: .95rem; font-weight: 600; margin: 0 0 .4rem; }
.cg-docs ul { list-style: none; padding: 0; margin: 0; display: grid; gap: .3rem; }
.cg-docs li { display: flex; gap: .5rem; align-items: baseline; }
.cg-docs li i { flex: none; }
.cg-docs .ok i { color: var(--cg-ok); }
.cg-docs .falta i { color: var(--cg-warn); }
.cg-aviso { background: var(--cg-gold-soft); border-left: 3px solid var(--cg-gold); padding: .5rem .75rem; border-radius: 4px; margin-bottom: .5rem; }

.cg-login { min-height: 100vh; background: var(--cg-navy); color: #fff; display: grid; place-items: center; border-top: 4px solid var(--cg-gold); padding: 1.5rem; }
.cg-login .login-box { width: min(420px, 100%); margin: 0; }
.cg-login-brand { text-align: center; margin-bottom: 1.4rem; }
.cg-mark { width: 64px; height: 64px; }
.cg-login-brand h1 { font-family: var(--cg-display); font-weight: 400; font-size: 1.9rem; margin: .7rem 0 .1rem; }
.cg-login-brand p { margin: 0; color: #C9D2E6; }
.cg-login-card { background: #fff; color: #16203A; border: 0; border-radius: 10px; }
.cg-login-card .form-label { font-weight: 600; color: #16203A; }
.cg-login-card .form-control { background: #fff; color: #16203A; border-color: #C9D0DE; }
.cg-login-card .btn-outline-secondary { color: #55617D; border-color: #C9D0DE; }
.cg-erro { color: #9B2C1B; background: #FBE9E5; border-radius: 6px; padding: .55rem .75rem; font-size: .92rem; }
.cg-login-nota { text-align: center; color: #AEB9D3; font-size: .85rem; margin: 1.1rem 0 0; }

.cg-tv { position: fixed; inset: 0; z-index: 2000; background: radial-gradient(1200px 700px at 85% -10%, #1B2A4A 0%, #0A1226 60%); color: #E8ECF5; display: grid; grid-template-rows: auto 1fr auto; padding: 1.6vw 2.4vw 1.2vw; --cg-ink: #E8ECF5; --cg-muted: #A3AECA; --cg-line: #2B3858; --cg-surface: #131D38; --cg-serie-a: #4F86DE; --cg-serie-b: #C28618; --cg-gold: #D2AB55; --cg-bg: #0E1630; }
.cg-tv[hidden] { display: none; }
.cg-tv-topo { display: flex; align-items: center; justify-content: space-between; gap: 2vw; border-bottom: 2px solid var(--cg-gold); padding-bottom: .9vw; }
.cg-tv-marca { display: flex; align-items: center; gap: .9vw; font-family: var(--cg-display); font-size: clamp(1.1rem, 1.9vw, 2rem); }
.cg-tv-marca .cg-mark-sm { width: 2.8vw; height: 2.8vw; min-width: 32px; min-height: 32px; }
.cg-tv-titulo { font-family: var(--cg-display); font-size: clamp(1.2rem, 2.1vw, 2.3rem); color: var(--cg-gold); text-align: center; flex: 1; }
.cg-tv-relogio { text-align: right; line-height: 1.1; }
.cg-tv-relogio b { display: block; font-family: var(--cg-display); font-weight: 400; font-size: clamp(1.6rem, 3vw, 3.4rem); font-variant-numeric: tabular-nums; }
.cg-tv-relogio span { color: var(--cg-muted); font-size: clamp(.8rem, 1.1vw, 1.2rem); }
.cg-tv-palco { position: relative; min-height: 0; padding: 1.4vw 0; }
.cg-tv-tela { position: absolute; inset: 1.4vw 0; opacity: 0; visibility: hidden; transition: opacity .7s ease; display: grid; gap: 1.4vw; min-height: 0; }
.cg-tv-tela.ativa { opacity: 1; visibility: visible; }
.cg-tv-rodape { display: flex; align-items: center; justify-content: space-between; }
.cg-tv-pontos { display: flex; gap: .6rem; }
.cg-tv-pontos button { width: 2.2vw; min-width: 22px; height: 6px; border: 0; border-radius: 3px; background: #2B3858; padding: 0; }
.cg-tv-pontos button.ativo { background: var(--cg-gold); }
.cg-tv-kpis { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.4vw; }
.cg-tv .cg-kpi { background: #131D38; padding: 1.3vw 1.6vw; }
.cg-tv .cg-kpi b { font-size: clamp(2.6rem, 5.6vw, 6.4rem); }
.cg-tv .cg-kpi span { font-size: clamp(.9rem, 1.35vw, 1.5rem); }
.cg-tv .cg-kpi.destaque { background: #2F2A1C; }
.cg-tv .cg-esteira { grid-auto-columns: minmax(0, 1fr); overflow: hidden; align-content: start; }
.cg-tv .cg-fase { background: #131D38; }
.cg-tv .cg-fase h3 { font-size: clamp(.7rem, 1vw, 1.1rem); }
.cg-tv .cg-fase h3 em { font-size: clamp(1.1rem, 2vw, 2.2rem); }
.cg-tv .cg-chip { background: #1A2748; border-color: #2B3858; border-left-color: var(--cor); padding: .3vw .5vw; }
.cg-tv .cg-chip b { font-size: clamp(.7rem, .95vw, 1.05rem); }
.cg-tv .cg-chip span { font-size: clamp(.6rem, .8vw, .9rem); }
.cg-tv .card { background: #131D38; border-color: #2B3858; margin: 0; display: flex; flex-direction: column; min-height: 0; }
.cg-tv .card-title { font-size: clamp(1.1rem, 1.7vw, 1.9rem); }
.cg-tv .card-body { flex: 1; min-height: 0; }
.cg-tv .cg-grafico { height: 100%; }
.cg-tv-duas { grid-template-columns: 1fr 1fr; }
.cg-tv-lista { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1vw 1.6vw; align-content: start; }
.cg-tv-lista .cg-aviso { background: #2F2A1C; font-size: clamp(.85rem, 1.25vw, 1.4rem); margin: 0; }
.cg-tv-lista .cg-aviso b { display: block; color: var(--cg-gold); font-family: var(--cg-display); font-weight: 400; }

@media (prefers-reduced-motion: reduce) { .cg-tv-tela { transition: none; } }
@media (max-width: 767.98px) { .cg-kpi b { font-size: 2.1rem; } }
