:root {
  color-scheme: light;
  font-family: Arial, sans-serif;
  color: #273251;
  background: #F7F5F0;
  --kpco-blue: #202C58;
  --kpco-peach: #EFC6A4;
  --kpco-text: #273251;
  --kpco-muted: #647087;
  --kpco-paper: #F7F5F0;
  --kpco-line: #DDDDE2;
  --kpco-white: #FFFFFF;
}
* { box-sizing: border-box; }
body { margin: 0; color: var(--kpco-text); background: var(--kpco-paper); }
header { padding: 18px max(5vw, 24px); border-bottom: 1px solid var(--kpco-line); background: var(--kpco-white); display: flex; justify-content: space-between; gap: 20px; align-items: center; }
header span, footer { color: var(--kpco-muted); font-size: .9rem; }
.brand { color: var(--kpco-blue); text-decoration: none; font-weight: 700; font-size: 1.5rem; letter-spacing: -.04em; }
.app-brand, .session-actions, .secondary-nav { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }
.edition-badge { background: #F7E8DC; color: var(--kpco-blue); padding: 5px 9px; border-radius: 5px; font-weight: 700; }
.primary-nav a[aria-current="page"] { border-bottom: 2px solid var(--kpco-blue); padding-bottom: 5px; }
.nav-group { position: relative; padding: 0; border: 0; }
.nav-group summary { cursor: pointer; font-weight: 600; padding: 10px 0; }
.nav-group summary:focus-visible { outline: 3px solid var(--kpco-peach); outline-offset: 3px; }
.nav-group nav { position: absolute; z-index: 5; top: 100%; right: 0; width: 245px; display: flex; flex-direction: column; align-items: stretch; gap: 0; background: var(--kpco-white); border: 1px solid var(--kpco-line); border-radius: 8px; padding: 8px; box-shadow: 0 8px 24px #202c581a; }
.nav-group nav a { padding: 10px; overflow-wrap: anywhere; }
.organization-context { padding: 12px max(5vw, 24px); background: #F1F1F3; font-size: .9rem; overflow-wrap: anywhere; }
.session-actions { margin-left: auto; }
@media (max-width: 760px) {
  .app-header .session-actions { margin-left: 0; }
  .secondary-nav { width: 100%; align-items: flex-start; }
  .nav-group { flex: 1; min-width: 0; }
  .nav-group nav { position: static; width: 100%; box-shadow: none; }
  .organization-context { padding: 12px 18px; }
}
main { max-width: 1200px; padding: 38px 24px; margin: auto; }
.intro { margin-bottom: 28px; }
.eyebrow { letter-spacing: .08em; font-size: .75rem; font-weight: 700; color: var(--kpco-muted); }
h1 { color: var(--kpco-blue); font-size: clamp(1.85rem, 3.2vw, 2.5rem); line-height: 1.15; max-width: 850px; margin: 16px 0; }
h2 { color: var(--kpco-blue); font-size: 1.25rem; margin-top: 0; }
h3 { color: var(--kpco-blue); }
p, dd { line-height: 1.6; }
.lead { font-size: 1.08rem; }
.status { display: inline-block; color: var(--kpco-blue); background: #F7E8DC; padding: 8px 14px; border-radius: 7px; }
.panel { background: var(--kpco-white); border: 1px solid var(--kpco-line); border-radius: 10px; padding: 24px; margin-top: 18px; }
dl { margin-bottom: 0; }
dt { font-weight: 700; margin-top: 18px; }
dd { margin: 5px 0 0; color: var(--kpco-muted); }
footer { padding: 24px; text-align: center; }
.skip-link { position: absolute; top: -100px; padding: 12px; background: var(--kpco-white); color: var(--kpco-blue); }
.skip-link:focus { top: 0; z-index: 10; }
a { color: var(--kpco-blue); }
a:hover { color: #35477F; }
a:focus-visible, input:focus-visible, select:focus-visible, button:focus-visible { outline: 3px solid var(--kpco-peach); outline-offset: 3px; }
nav, .actions { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; }
header { flex-wrap: wrap; }
header form { margin: 0; }
header nav a { text-decoration: none; font-size: .92rem; font-weight: 600; }
header nav a:hover { text-decoration: underline; text-underline-offset: 4px; }
.login-grid { display: grid; grid-template-columns: 1.1fr 1fr; gap: 36px; align-items: center; }
.login-panel { margin: 0; }
.login-tabs { display: grid; grid-template-columns: 1fr 1fr; gap: 0; border-bottom: 1px solid #9bae9f; margin: 20px 0 16px; }
.login-tabs a { padding: 12px; text-align: center; text-decoration: none; border-bottom: 3px solid transparent; }
.login-tabs a.selected { background: #edf3ed; border-bottom-color: #235a40; font-weight: 700; }
.login-grid h1 { font-size: clamp(2rem, 3.8vw, 3rem); }
label { display: block; font-weight: 700; margin: 18px 0 7px; }
input:not([type=checkbox]):not([type=hidden]), select { width: 100%; padding: 11px 12px; border: 1px solid #BFC4D0; border-radius: 6px; background: var(--kpco-white); color: var(--kpco-text); font: inherit; }
input[readonly] { background: #F0F0F2 !important; }
input[type=checkbox] { width: 18px; height: 18px; accent-color: var(--kpco-blue); }
.check { display: flex; align-items: center; gap: 10px; }
button, .button { display: inline-block; background: var(--kpco-blue); color: var(--kpco-white); border: 1px solid var(--kpco-blue); border-radius: 6px; padding: 11px 18px; font: inherit; font-weight: 700; cursor: pointer; text-decoration: none; }
button:hover, .button:hover { background: #182247; color: var(--kpco-white); }
form button { margin-top: 18px; }
header button { margin: 0; }
.secondary { background: transparent; color: var(--kpco-blue); }
.secondary:hover { background: #F7F5F0; color: var(--kpco-blue); }
.hint { color: var(--kpco-muted); font-size: .9rem; }
.validation-summary-errors { background: #FFF0EC; border-left: 4px solid #A33A32; padding: 10px 18px; color: #7B2822; margin-bottom: 16px; }
.validation-summary-valid { display: none; }
.input-validation-error { border-color: #A33A32 !important; }
.table-scroll { overflow-x: auto; }
table { border-collapse: collapse; width: 100%; text-align: left; background: var(--kpco-white); }
td, th { padding: 13px 12px; border-bottom: 1px solid var(--kpco-line); }
th { color: var(--kpco-blue); background: #F1F1F3; font-weight: 700; }
fieldset { border: 1px solid var(--kpco-line); border-radius: 8px; margin-top: 24px; padding: 18px; }
legend { color: var(--kpco-blue); padding: 0 8px; font-weight: 700; }
details { padding: 12px 0; border-bottom: 1px solid var(--kpco-line); }
pre { white-space: pre-wrap; overflow-wrap: anywhere; }
.narrow { max-width: 540px; }
.config-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.notice { background: #FBF1E8; border-left: 4px solid var(--kpco-peach); padding: 12px 16px; border-radius: 4px; }
.organization-card { border-top: 1px solid var(--kpco-line); padding: 16px 0; }
.organization-card h3 { margin: 8px 0; }
.organization-card li { margin: 10px 0; }
.empty-state { padding: 20px; background: #F0F0F2; border-radius: 8px; }
.section-nav { margin: 24px 0; }
.account-group { background: #F7E8DC; color: var(--kpco-blue); font-weight: 700; }
.budget-grid { min-width: 1500px; font-size: .9rem; }
.budget-grid td { text-align: right; white-space: nowrap; }
.budget-grid thead th, .budget-grid tfoot th, .budget-grid tfoot td { background: #F1F1F3; font-weight: 700; }
.budget-grid th:first-child { min-width: 210px; position: sticky; left: 0; background: #F7F5F0; z-index: 1; }
.monthly-inputs { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px 18px; }
.planning-steps { margin: 24px 0; }
.planning-steps ol { display: flex; flex-wrap: wrap; gap: 12px; padding: 0; margin: 0; list-style: none; }
.planning-steps li { padding: 10px 12px; border: 1px solid var(--kpco-line); border-radius: 6px; background: var(--kpco-white); font-size: .9rem; }
.planning-steps li[aria-current="step"] { border-color: var(--kpco-blue); background: #F7E8DC; font-weight: 700; }
.planning-steps li span { font-weight: 700; margin-right: 4px; }
.planning-summary { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.planning-summary dt { margin-top: 0; }
.planning-summary dd { font-size: 1.15rem; font-weight: 700; overflow-wrap: anywhere; }
.planning-preview { padding: 16px; background: #F7E8DC; border-radius: 6px; }
.field-error { color: #7B2822; font-size: .9rem; }
@media (max-width: 640px) { .planning-summary { grid-template-columns: 1fr; } .planning-steps li { flex: 1 1 160px; } }
.movement-tabs { display: flex; gap: 8px; margin: 24px 0; border-bottom: 1px solid #9bae9f; }
.movement-tabs a { padding: 12px 18px; text-decoration: none; border-bottom: 3px solid transparent; }
.movement-tabs a.selected { background: #edf3ed; border-bottom-color: #235a40; font-weight: 700; }
.movement-summary { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.movement-summary div { padding: 16px; background: #f4f6f3; border-radius: 8px; }
.movement-summary span, .movement-summary strong { display: block; }
.movement-summary span { color: #52675e; font-size: .85rem; }
.movement-summary strong { margin-top: 8px; font-size: 1.2rem; }
.movement-table { min-width: 1500px; font-size: .88rem; }
.movement-table td, .movement-table th { vertical-align: top; }
.movement-table td { min-width: 140px; }
.movement-table details { min-width: 240px; }
.money { white-space: nowrap; text-align: right; }
.dashboard-filters { display: grid; grid-template-columns: minmax(200px, 2fr) minmax(140px, 1fr) auto; align-items: end; gap: 18px; }
.dashboard-period-selector { grid-template-columns: minmax(200px, 2fr) minmax(130px, 1fr) minmax(160px, 1fr) auto; }
.dashboard-followup { border-left: 4px solid var(--kpco-blue); }
.dashboard-context { margin: 20px 0; border: 1px solid var(--kpco-line); background: var(--kpco-white); border-radius: 8px; padding: 14px 18px; }
.dashboard-context > summary { cursor: pointer; font-weight: 700; line-height: 1.6; overflow-wrap: anywhere; }
.dashboard-context > summary:focus-visible { outline: 3px solid var(--kpco-peach); outline-offset: 3px; }
.dashboard-followup[data-estado-execucao="parcial"], .dashboard-followup[data-estado-execucao="desconhecida"], .dashboard-followup[data-estado-execucao="defasada"] { border-left-color: #ac614d; }
section[id] { scroll-margin-top: 18px; }
.dashboard-cards { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.dashboard-cards > div { padding: 18px; background: #f4f6f3; border-radius: 8px; }
.dashboard-cards dt { color: var(--kpco-muted); font-size: .9rem; }
.dashboard-cards dd { margin: 10px 0 0; font-size: 1.3rem; font-weight: 700; overflow-wrap: anywhere; }
.dashboard-excess { background: #fff0ec !important; color: #7b2822; }
.dashboard-evolution { min-width: 730px; }
.dashboard-bars { min-width: 140px; display: grid; gap: 5px; }
.dashboard-bars > div { height: 9px; border-radius: 3px; }
.dashboard-bar-budget { background: var(--kpco-blue); }
.dashboard-bar-consumed { background: #ac614d; }
@media (max-width: 900px) { .dashboard-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); } .dashboard-filters { grid-template-columns: 1fr; gap: 0; } }
@media (max-width: 420px) { .dashboard-cards { grid-template-columns: 1fr; } }
.pagination { margin-top: 20px; }
textarea { width: 100%; padding: 12px; border: 1px solid #9bae9f; border-radius: 6px; font: inherit; }
@media (max-width: 760px) { .movement-summary { grid-template-columns: 1fr 1fr; } .movement-tabs a { padding: 12px 8px; } }
.visually-hidden { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
@media (max-width: 760px) { .login-grid { grid-template-columns: 1fr; gap: 12px; } nav { width: 100%; } header { align-items: flex-start; } main { padding-top: 28px; } }
@media (max-width: 640px) { .monthly-inputs, .config-grid { grid-template-columns: 1fr; gap: 8px; } }
@media (max-width: 540px) { header { flex-direction: column; } main { padding: 26px 18px; } .panel { padding: 18px; } }

/* Acompanhamento compartilhado das integrações. */
.integration-filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;align-items:end}
.integration-filters label{display:block}
.integration-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.integration-summary strong{display:block;font-size:1.8rem;margin-top:8px}
.integration-history{min-width:1050px}
.integration-history td{vertical-align:top;overflow-wrap:anywhere}
.integration-connection{overflow-wrap:anywhere;min-width:0}
.integration-history details{max-width:360px;overflow-wrap:anywhere}
@media(max-width:640px){.integration-summary{grid-template-columns:1fr}.integration-filters{grid-template-columns:1fr}}
