@font-face { font-family: Inter; font-weight: 100 900; font-style: normal; font-display: swap; src: url("../fonts/inter-latin-wght-normal.woff2") format("woff2"); }
:root {
  --bs-primary: #2F5F70; --bs-primary-rgb: 47,95,112;
  --bs-link-color: #2F5F70; --bs-link-hover-color: #264E5C;
  --bs-body-bg: #F4F7F8; --bs-tertiary-bg: #F4F7F8; --bs-body-color: #1B2530;
  --bs-border-color: #E1E8EB; --bs-border-radius: .6rem; --bs-border-radius-lg: .9rem;
  --bs-body-font-family: Inter, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --lateral: #23224A;
}
.btn-primary { --bs-btn-bg: #2F5F70; --bs-btn-border-color: #2F5F70; --bs-btn-hover-bg: #264E5C; --bs-btn-hover-border-color: #264E5C; --bs-btn-active-bg: #1E3F4A; --bs-btn-active-border-color: #1E3F4A; }
.btn-outline-primary { --bs-btn-color: #2F5F70; --bs-btn-border-color: #2F5F70; --bs-btn-hover-bg: #2F5F70; --bs-btn-hover-border-color: #2F5F70; --bs-btn-active-bg: #264E5C; }
.btn { font-weight: 500; transition: background-color .15s, border-color .15s, transform .1s; }
.btn:active { transform: scale(.98); }
.card { border-color: var(--bs-border-color); border-radius: var(--bs-border-radius-lg); transition: box-shadow .2s, transform .2s; }
.card.shadow-sm { box-shadow: 0 1px 2px rgba(35,34,74,.04) !important; }
.row > * > .card.h-100:hover { box-shadow: 0 6px 20px rgba(35,34,74,.08) !important; transform: translateY(-2px); }
.table-responsive.shadow-sm { border: 1px solid var(--bs-border-color); border-radius: var(--bs-border-radius-lg); }
.table { --bs-table-hover-bg: #EAF0F2; }
.badge { font-weight: 500; border-radius: 99px; padding: .35em .7em; }
h1.h3 { font-weight: 600; letter-spacing: -.01em; }
.form-control:focus, .form-select:focus { border-color: #7FA5B3; box-shadow: 0 0 0 .2rem rgba(47,95,112,.15); }

.app { min-height: 100vh; }
.app-topo { display: flex; justify-content: space-between; align-items: center; padding: .6rem 1rem; background: var(--lateral); }
.app-lateral { flex-direction: column; background: var(--lateral); color: #C9CBE0; padding: 1rem .75rem; }
.app-marca { display: flex; align-items: center; gap: .6rem; color: #fff; font-weight: 600; font-size: 1.05rem; text-decoration: none; padding: .25rem .5rem 1rem; }
.app-logo { width: 22px; height: 22px; border-radius: 7px; background: #4E7F8F; }
.app-nav { display: flex; flex-direction: column; gap: 2px; flex: 1; }
.app-nav a { color: #C9CBE0; text-decoration: none; padding: .45rem .75rem; border-radius: .5rem; font-size: .9rem; transition: background-color .15s, color .15s; }
.app-nav a:hover { background: #2D2C5C; color: #fff; }
.app-nav a.ativo { background: #33326A; color: #fff; font-weight: 500; }
.app-nav small { text-transform: uppercase; letter-spacing: .06em; font-size: .68rem; color: #8F93B8; padding: 1rem .75rem .3rem; }
.app-usuario { display: flex; justify-content: space-between; align-items: center; gap: .5rem; padding: .75rem .5rem 0; margin-top: 1rem; border-top: 1px solid #38376A; color: #e4e5f2; }
.app-conteudo { padding: 1.25rem; max-width: 1200px; }
@media (min-width: 992px) {
  .app { display: grid; grid-template-columns: 250px minmax(0, 1fr); }
  .app-lateral { position: sticky; top: 0; height: 100vh; overflow-y: auto; }
  .app-conteudo { padding: 1.75rem 2rem; }
}

.card-demanda { border-left: .35rem solid var(--bs-secondary); }
.card-demanda.status-EM_ANDAMENTO { border-left-color: var(--bs-primary); }
.card-demanda.status-CONCLUIDA { border-left-color: var(--bs-success); }
.card-demanda.status-NAO_CONCLUIDA { border-left-color: var(--bs-danger); }
.sem-justificativa { background-color: #f8d7da !important; }
.texto-quebrado { white-space: pre-wrap; word-break: break-word; }
.tabela-compacta td, .tabela-compacta th { vertical-align: middle; }
.amostra-pequena { color: var(--bs-warning-text-emphasis); }
.avatar { width: 2.25rem; height: 2.25rem; border-radius: 50%; background: #DCE9ED; color: #264E5C; display: inline-flex; align-items: center; justify-content: center; font-size: .8rem; font-weight: 600; flex-shrink: 0; }
.progress-stacked { --bs-progress-height: .4rem; --bs-progress-bg: #E6ECEF; gap: 2px; }

/* tabelas: cabeçalho discreto, sem grade vertical, cantos arredondados */
.table > :not(caption) > * > * { padding: .65rem .85rem; }
.table thead th { font-size: .72rem; text-transform: uppercase; letter-spacing: .05em; color: #6b6f85; font-weight: 600; background: #F8FAFB; border-bottom-color: var(--bs-border-color); }
.table-bordered { border-color: var(--bs-border-color); border-collapse: separate; border-spacing: 0; border-radius: var(--bs-border-radius-lg); overflow: hidden; }
.table-bordered > :not(caption) > * > * { border-width: 0 0 1px; }
.table-bordered > :not(caption) > :last-child > * { border-bottom-width: 0; }
.table-bordered.table-sm > :not(caption) > * > * { padding: .45rem .7rem; }
/* alertas e blocos internos */
.alert { border-radius: var(--bs-border-radius-lg); border-width: 1px; }
.alert-light { background: #fff; }
.border.rounded.bg-white { border-radius: var(--bs-border-radius-lg) !important; border-color: var(--bs-border-color) !important; }
.badge.text-bg-light { background: #f1f2f8 !important; color: #444a63 !important; border-color: transparent !important; }
.btn-group > .btn { font-size: .85rem; }
.list-group { border-radius: var(--bs-border-radius-lg); overflow: hidden; border: 1px solid var(--bs-border-color); }
.list-group-item { border-color: var(--bs-border-color); }
.card-demanda { border-left-width: .3rem; }
.card-demanda:hover { box-shadow: 0 6px 20px rgba(35,34,74,.08) !important; }
/* login */
body:not(:has(.app)) { background: url("../img/login-bg.png") center / cover no-repeat fixed, linear-gradient(160deg, #23224A, #33326A) fixed; }
body:not(:has(.app)) .card { box-shadow: 0 20px 50px rgba(0,0,0,.3) !important; }

/* Relatório diário (web): demandas à esquerda, resumo lateral, análise por tipo embaixo */
.diario-painel { display: grid; grid-template-columns: minmax(0, 2fr) minmax(240px, 1fr); gap: 1rem; align-items: start; }
.diario-painel h2 { font-size: .8rem; text-transform: uppercase; letter-spacing: .05em; color: #6b6f85; font-weight: 600; margin: 0 0 .5rem !important; }
.diario-painel .diario-demandas, .diario-painel .diario-resumo, .diario-painel .diario-tipos { background: #fff; border: 1px solid var(--bs-border-color); border-radius: var(--bs-border-radius-lg); padding: 1rem; }
.diario-painel .diario-tipos { grid-column: 1 / -1; }
.diario-painel .table { margin-bottom: 0; }
.diario-painel .table-bordered, .diario-painel .table-bordered > :not(caption) > * > * { border: 0; border-radius: 0; }
.diario-painel .table > tbody > tr > * { border-bottom: 1px solid var(--bs-border-color); }
.diario-painel .resumo th { font-weight: 500; }
.diario-painel .resumo td { text-align: right; }
.diario-painel .resumo tr:last-child td { font-size: 1.4rem; color: var(--bs-primary); }
@media (max-width: 991px) { .diario-painel { grid-template-columns: minmax(0, 1fr); } }
.demanda-card { border: 1px solid var(--bs-border-color); border-left: .3rem solid var(--bs-secondary); border-radius: var(--bs-border-radius); padding: .75rem 1rem; }
.demanda-card.status-CONCLUIDA { border-left-color: var(--bs-success); }
.demanda-card.status-NAO_CONCLUIDA { border-left-color: var(--bs-danger); }
.demanda-meta { display: flex; flex-wrap: wrap; gap: .25rem 1.25rem; margin-top: .4rem; }

/* Relatório diário: tipografia mais leve */
.diario-painel { font-size: .875rem; color: #3d4152; }
.diario-painel strong, .diario-painel .fw-semibold, .diario-painel .fw-bold, .diario-painel .resumo th { font-weight: 500 !important; }
.diario-painel .demanda-card .fw-semibold { font-size: .95rem; color: #1B2530; }
.diario-painel .demanda-meta, .diario-painel .text-body-secondary, .diario-painel .nota { color: #6b6f85 !important; font-size: .8rem; }
.diario-painel h2 { letter-spacing: .03em; font-weight: 500; }
.diario-painel .table thead th { font-weight: 500; letter-spacing: .03em; }
.diario-painel .destaques { color: #3d4152; }
.diario-painel .resumo tr:last-child td { font-weight: 500 !important; }

/* Tipografia mais leve no sistema todo */
:root { --bs-body-color: #3d4152; --bs-secondary-color: #6b6f85; }
main { font-size: .875rem; }
main strong, main b, main .fw-semibold, main .fw-bold, main th { font-weight: 500 !important; }
main h1, main h2, main h3, main h4, main h5, main h6, h1.h3 { font-weight: 500; color: #1B2530; }
main .text-body-secondary, main .small, main small { color: #6b6f85; }
main .table thead th { letter-spacing: .03em; }

/* Nota em estrelas: radios na ordem 5→1 com row-reverse; "~" pinta as estrelas à esquerda da marcada/sob o mouse */
.estrelas-input { display: inline-flex; flex-direction: row-reverse; justify-content: flex-end; }
.estrelas-input input { position: absolute; opacity: 0; pointer-events: none; }
.estrelas-input label { font-size: 2rem; line-height: 1; color: var(--bs-gray-400); cursor: pointer; padding: 0 .1rem; }
.estrelas-input input:checked ~ label,
.estrelas-input label:hover,
.estrelas-input label:hover ~ label { color: #f5b301; }
.estrelas-input input:focus-visible + label { outline: 2px solid var(--bs-primary); border-radius: .25rem; }

/* Dashboard de desempenho */
.kpi { background: #fff; border: 1px solid var(--bs-border-color); border-radius: var(--bs-border-radius-lg); padding: .85rem 1rem; height: 100%; }
.kpi .valor { display: block; font-size: 1.6rem; font-weight: 500; color: #1B2530; line-height: 1.2; }
.kpi .valor.destaque { color: var(--bs-primary); }
.barra-nota { display: flex; align-items: center; gap: .5rem; min-width: 7rem; }
.barra-nota .progress { flex: 1; --bs-progress-height: .4rem; --bs-progress-bg: #E6ECEF; }
