:root {
  --cfo-bg: #061725;
  --cfo-surface: #0d263a;
  --cfo-surface-2: #102d42;
  --cfo-line: rgba(125, 184, 218, .16);
  --cfo-text: #ecf5fb;
  --cfo-muted: #91adbe;
  --cfo-cyan: #00d0ff;
  --cfo-blue: #00b4ff;
}
body.cfo-dark-page { background: var(--cfo-bg); color: var(--cfo-text); color-scheme: dark; }
/* barras de rolagem escuras e sem setas (no Windows apareciam claras, com setas) */
.cfo-dark-page * { scrollbar-width: thin; scrollbar-color: #2f5d74 transparent; }
.cfo-dark-page ::-webkit-scrollbar { width: 8px; height: 8px; }
.cfo-dark-page ::-webkit-scrollbar-track { background: transparent; }
.cfo-dark-page ::-webkit-scrollbar-thumb { border: 2px solid transparent; border-radius: 8px; background: #2f5d74; background-clip: padding-box; }
.cfo-dark-page ::-webkit-scrollbar-button { display: none; width: 0; height: 0; }
.cfo-dark-page ::-webkit-scrollbar-corner { background: transparent; }
.cfo-frame { min-height: 100vh; overflow: hidden; background: radial-gradient(circle at 96% 0, rgba(0, 143, 220, .13), transparent 34%), linear-gradient(180deg, #071c2d 0, #061725 590px); }
.cfo-header { border-bottom: 1px solid var(--cfo-line); background: rgba(5, 21, 34, .78); backdrop-filter: blur(18px); }
.cfo-header-inner { max-width: 1510px; height: 78px; margin: auto; padding: 0 clamp(22px, 4vw, 62px); display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.cfo-identity, .cfo-header-actions { display: flex; align-items: center; gap: 20px; }
.cfo-identity img { display: block; width: 173px; height: auto; }
.cfo-divider { display: block; height: 30px; width: 1px; background: #6488a43a; }
.cfo-product { font-size: 15px; font-weight: 450; letter-spacing: -.03em; white-space: nowrap; }
.cfo-product b { font-weight: 850; }
.cfo-live { display: inline-flex; align-items: center; gap: 10px; padding: 9px 13px; border-radius: 99px; border: 1px solid #3b8aa34d; background: #0a344452; font-size: 10px; color: #a6dce9; font-weight: 750; white-space: nowrap; }
.cfo-live i { width: 7px; height: 7px; background: #49d8a3; border-radius: 50%; box-shadow: 0 0 0 4px #49d8a31d; }
.cfo-user { font-size: 11px; font-weight: 750; color: #b3cad8; max-width: 160px; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.cfo-exit { display: flex; align-items: center; gap: 8px; border: 0; background: transparent; color: #7799ad; font-weight: 750; font-size: 11px; }
.cfo-exit:hover { color: white; }
.cfo-exit span { color: var(--cfo-cyan); font-size: 16px; }
.cfo-main { max-width: 1510px; margin: auto; padding: 0 clamp(22px, 4vw, 62px) 38px; }
.cfo-hero { min-height: 285px; position: relative; display: grid; grid-template-columns: minmax(0, 1fr) 420px; align-items: center; overflow: hidden; border-bottom: 1px solid var(--cfo-line); }
.cfo-hero-copy { position: relative; z-index: 2; padding: 39px 0 37px; }
.cfo-kicker { display: inline-flex; align-items: center; gap: 10px; color: #45d4f1; font-size: 10px; font-weight: 850; letter-spacing: .19em; }
.cfo-kicker-line { width: 20px; height: 2px; background: var(--cfo-cyan); }
.cfo-kicker-soft { color: #61859f; }
.cfo-hero h1 { font-size: clamp(44px, 4.5vw, 68px); line-height: 1.025; letter-spacing: -.067em; font-weight: 780; margin: 16px 0 15px; }
.cfo-hero h1 em { font-style: normal; color: #65dafa; background: linear-gradient(100deg, #89eafb, #00aaf2); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }
.cfo-hero-copy > p { max-width: 640px; margin: 0; color: #a0b9c9; font-size: 14px; line-height: 1.8; }
.cfo-hero-meta { display: flex; flex-wrap: wrap; gap: 11px; margin-top: 28px; }
.cfo-hero-meta span { padding: 8px 12px; border: 1px solid #5a9ab927; border-radius: 7px; color: #82a7bc; background: #0a293c83; font-size: 10px; }
.cfo-hero-meta b { color: #d5edf7; margin-right: 4px; }
.cfo-hero-art { position: relative; height: 285px; opacity: .92; }
.cfo-hero-art:before { content: ""; position: absolute; inset: -75px -85px -75px -40px; background: radial-gradient(circle at 52% 50%, #008fdc24 0, transparent 54%); }
.cfo-orbit { position: absolute; border-radius: 50%; border: 1px solid #2086b340; left: 50%; top: 50%; transform: translate(-50%, -50%) rotate(-22deg); }
.orbit-one { width: 194px; height: 194px; border-color: #32c6ec64; box-shadow: 0 0 24px #00a4ec1f, inset 0 0 25px #00a4ec0e; }
.orbit-two { width: 300px; height: 220px; border-color: #276e9b48; }
.orbit-three { width: 438px; height: 298px; border-color: #276e9b29; }
.cfo-orbit:after { content: ""; position: absolute; left: 50%; top: -3px; width: 6px; height: 6px; background: #54d7f7; border-radius: 50%; box-shadow: 0 0 16px #54d7f7; }
.cfo-art-core { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); width: 138px; height: 138px; border-radius: 50%; background: radial-gradient(circle at 50% 35%, #134c6a, #0a2e48 66%); box-shadow: 0 0 0 1px #45c9ef51, 0 0 58px #00b4ff2d; display: grid; align-content: center; justify-items: center; gap: 8px; }
.cfo-art-core span { color: #a4edff; font-size: 35px; line-height: 1; }
.cfo-art-core small { font-size: 8px; color: #a5d7e6; letter-spacing: .19em; text-align: center; line-height: 1.5; font-weight: 850; }
.cfo-art-label { position: absolute; color: #6da9c4; letter-spacing: .19em; font-size: 8px; font-weight: 850; }
.label-a { right: 26px; top: 63px; } .label-b { left: 33px; bottom: 64px; }
.cfo-warning, .cfo-empty { padding: 22px; border: 1px solid #dcbe6d50; background: #5948222b; border-radius: 13px; color: #e6cf9a; font-size: 12px; margin-top: 22px; }
.cfo-section-intro { display: flex; justify-content: space-between; align-items: flex-end; gap: 24px; padding: 35px 0 23px; }
.cfo-section-intro h2 { margin: 9px 0 7px; font-size: clamp(25px, 2.6vw, 35px); letter-spacing: -.047em; line-height: 1.1; }
.cfo-section-intro h2 span { color: var(--cfo-cyan); }
.cfo-section-intro p { margin: 0; color: #819fb3; font-size: 11px; }
.cfo-period { display: grid; gap: 7px; text-align: right; white-space: nowrap; }
.cfo-period small { color: #618da4; font-size: 8px; font-weight: 850; letter-spacing: .18em; }
.cfo-period strong { font-size: 12px; color: #cbe8f4; }
.cfo-grid { display: grid; grid-template-columns: minmax(0, 1.46fr) minmax(360px, .86fr); align-items: start; gap: 20px; }
.cfo-opportunities { display: grid; align-content: start; gap: 19px; min-width: 0; }
.cfo-lead-card { position: relative; overflow: hidden; background: radial-gradient(circle at 102% -8%, #125e8330, transparent 42%), linear-gradient(135deg, #11374f, #0c263a 73%); border: 1px solid #3297bb5c; border-radius: 18px; padding: clamp(25px, 3vw, 37px); box-shadow: 0 22px 55px #03101c52; }
.cfo-lead-card:after { content: ""; position: absolute; width: 260px; height: 260px; right: -139px; top: -151px; border-radius: 50%; border: 1px solid #58b9d940; box-shadow: 0 0 0 58px #58b9d910; pointer-events: none; }
.cfo-lead-top { position: relative; z-index: 1; display: flex; align-items: flex-start; justify-content: space-between; gap: 15px; }
.cfo-lead-top > div { display: grid; gap: 7px; }
.cfo-number { color: #67d6f2; font-size: 9px; letter-spacing: .15em; font-weight: 850; }
.cfo-account-code { color: #6c9ab0; font-size: 9px; font-weight: 800; }
.cfo-rise { padding: 8px 10px; border-radius: 7px; background: #a464302e; color: #f1b677; font-size: 10px; font-weight: 850; white-space: nowrap; }
.cfo-lead-card h3 { margin: 30px 0 23px; font-size: clamp(25px, 3vw, 36px); line-height: 1.18; letter-spacing: -.05em; max-width: 600px; }
.cfo-lead-values { display: flex; align-items: center; gap: clamp(20px, 3vw, 47px); flex-wrap: wrap; }
.cfo-lead-values > div { display: grid; gap: 9px; }
.cfo-lead-values small { color: #72a9c0; font-size: 9px; font-weight: 850; letter-spacing: .15em; }
.cfo-lead-values strong { color: #e8f8ff; font-size: clamp(24px, 2.7vw, 37px); letter-spacing: -.055em; }
.cfo-lead-values .cfo-small-value { font-size: clamp(16px, 1.7vw, 23px); color: #b4d5e4; }
.cfo-small-value i { font-size: 11px; color: #6496ae; font-style: normal; font-weight: 500; letter-spacing: 0; }
.cfo-value-separator { width: 1px; height: 52px; background: #62a3c03a; }
.cfo-lead-card p { max-width: 650px; margin: 27px 0 19px; color: #a3c0d0; font-size: 12px; line-height: 1.75; }
.cfo-inspect { display: inline-flex; align-items: center; gap: 13px; border: 0; background: transparent; padding: 0; color: #61d8f5; font-weight: 850; font-size: 11px; }
.cfo-inspect span { font-size: 18px; }
.cfo-inspect:hover { color: #b7f3ff; }
.cfo-list-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 14px; margin: 6px 1px -7px; }
.cfo-list-heading strong { font-size: 13px; }
.cfo-list-heading span { color: #547d94; font-size: 8px; letter-spacing: .14em; font-weight: 850; }
.cfo-opportunity-list { border: 1px solid var(--cfo-line); border-radius: 15px; overflow: hidden; background: #0c2538; }
.cfo-opportunity { display: flex; align-items: center; gap: 16px; width: 100%; min-height: 72px; padding: 14px 18px; border: 0; border-bottom: 1px solid #6aaac01d; background: transparent; color: inherit; text-align: left; transition: background .18s; }
.cfo-opportunity:last-child { border-bottom: 0; }
.cfo-opportunity:hover { background: #15405a; }
.cfo-list-index { color: #5e93aa; font-size: 11px; font-weight: 800; }
.cfo-list-copy { flex: 1; min-width: 0; display: grid; gap: 5px; }
.cfo-list-copy strong { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; color: #e1f2f9; font-size: 12px; }
.cfo-list-copy small { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; color: #7498ac; font-size: 9px; }
.cfo-list-copy small span { color: #376178; padding: 0 3px; }
.cfo-list-value { display: grid; gap: 5px; text-align: right; color: #aeeaf8; font-size: 12px; font-weight: 850; white-space: nowrap; }
.cfo-list-value small { color: #c39f77; font-size: 9px; }
.cfo-list-arrow { color: #51c7e5; font-size: 19px; margin-left: 9px; }
.cfo-integrity { display: flex; gap: 14px; padding: 18px 21px; border: 1px solid #315f7a55; border-radius: 13px; background: #0a283d96; }
.cfo-integrity-icon { display: grid; place-items: center; flex: none; width: 31px; height: 31px; border-radius: 9px; background: #218bb130; color: #6dd8f4; font-size: 20px; }
.cfo-integrity strong { font-size: 11px; color: #cbeaf5; }
.cfo-integrity p { color: #789eaf; font-size: 10px; line-height: 1.7; margin: 5px 0 0; }
.cfo-assistant { position: sticky; top: 20px; overflow: hidden; border: 1px solid #3198b86c; border-radius: 18px; background: radial-gradient(circle at 110% -10%, #13658262, transparent 37%), linear-gradient(160deg, #11344b, #0b263b 78%); box-shadow: 0 24px 70px #020e1e6e; padding: clamp(22px, 2.4vw, 31px); }
.cfo-assistant:before { content: ""; position: absolute; inset: 0 0 auto 0; height: 3px; background: linear-gradient(90deg, #0074ce, #00d0ff, transparent); }
.cfo-assistant-header { display: flex; align-items: center; gap: 13px; }
.cfo-assistant-symbol { display: grid; place-items: center; width: 46px; height: 46px; flex: none; border-radius: 12px; background: #26a7cb3b; color: #9bedff; font-size: 27px; }
.cfo-assistant-header small { color: #65cce9; font-size: 8px; letter-spacing: .16em; font-weight: 900; }
.cfo-assistant h2 { font-size: 25px; letter-spacing: -.05em; margin: 5px 0 0; }
.cfo-assistant-lead { margin: 21px 0; color: #a5c2d1; font-size: 11px; line-height: 1.8; }
.cfo-prompts { display: grid; gap: 8px; margin: 0 0 28px; }
.cfo-suggestion { width: 100%; padding: 11px 13px; border-radius: 8px; border: 1px solid #6aaec044; color: #bedde9; background: #15445a75; text-align: left; font-size: 10px; line-height: 1.4; }
.cfo-suggestion:hover { border-color: #59cef1; background: #1b5369; color: white; }
.cfo-ask-form { display: grid; gap: 9px; }
.cfo-ask-form label { color: #70bed6; font-size: 9px; letter-spacing: .16em; font-weight: 850; }
.cfo-ask-form textarea { width: 100%; min-height: 108px; resize: vertical; border: 1px solid #669fbc52; border-radius: 10px; outline: none; background: #071e30bb; color: #ecf8fd; padding: 14px 15px; font-size: 12px; line-height: 1.5; }
.cfo-ask-form textarea::placeholder { color: #7197aa; }
.cfo-ask-form textarea:focus { border-color: #52c5e9; box-shadow: 0 0 0 3px #00b4ff21; }
.cfo-submit { display: flex; justify-content: space-between; align-items: center; width: 100%; margin-top: 3px; padding: 13px 16px; border: 0; border-radius: 9px; color: #03263b; background: linear-gradient(110deg, #69dcf9, #00b4ff); box-shadow: 0 12px 25px #00a6e52d; font-size: 11px; font-weight: 900; }
.cfo-submit:hover { filter: brightness(1.1); transform: translateY(-1px); }
.cfo-submit:disabled { opacity: .65; cursor: wait; }
.cfo-submit span { font-size: 19px; }
.cfo-assistant-foot { border-top: 1px solid var(--cfo-line); margin-top: 21px; padding-top: 14px; color: #628fa4; font-size: 9px; line-height: 1.6; }
.cfo-answer { margin-top: 21px; padding: 19px; border: 1px solid #409cbd57; border-radius: 10px; background: #071e30bc; }
.cfo-answer-title { color: #81ddf6; font-size: 11px; font-weight: 900; }
.cfo-answer-title span { margin-right: 7px; font-size: 17px; }
.cfo-answer-text { margin-top: 14px; color: #d4e8f1; white-space: pre-wrap; font-size: 11px; line-height: 1.8; }
.cfo-answer-chart { border-top: 1px solid var(--cfo-line); margin-top: 18px; padding-top: 17px; }
.cfo-chart-label { display: flex; justify-content: space-between; gap: 7px; align-items: baseline; }
.cfo-chart-label strong { font-size: 10px; } .cfo-chart-label span { font-size: 8px; color: #7096aa; }
.cfo-answer-chart svg { width: 100%; height: 160px; margin-top: 10px; overflow: visible; }
.cfo-answer-sources { border-top: 1px solid var(--cfo-line); margin-top: 17px; padding-top: 13px; display: flex; flex-wrap: wrap; gap: 6px; }
.cfo-answer-sources span { font-size: 8px; color: #a8d8e9; padding: 6px 7px; border: 1px solid #379fc05a; border-radius: 6px; background: #10415a; word-break: break-all; }
.cfo-bottom-meta { display: flex; flex-wrap: wrap; gap: 14px 28px; padding: 21px 0; margin-top: 25px; border-top: 1px solid var(--cfo-line); color: #628aa1; font-size: 9px; letter-spacing: .06em; }
.cfo-bottom-meta b { color: #b7ddeb; font-size: 11px; margin: 0 4px; }
.cfo-bottom-meta i { font-style: normal; color: #436980; }
.cfo-footer { max-width: 1510px; margin: 0 auto; padding: 24px clamp(22px, 4vw, 62px) 34px; display: flex; justify-content: space-between; gap: 14px; border-top: 1px solid var(--cfo-line); color: #5d7f93; font-size: 9px; }
.cfo-answer-chart .chart-grid { stroke: #5b94af37; } .cfo-answer-chart .chart-label { fill: #6d9aaa; }
.cfo-answer-chart .chart-line { fill: none; stroke: #5ed5f2; stroke-width: 2.5; stroke-linejoin: round; stroke-linecap: round; vector-effect: non-scaling-stroke; }
.cfo-answer-chart .chart-area { fill: #36c2ed2d; }
.cfo-answer-chart .chart-dot { fill: #a9efff; }
.cfo-answer-chart .chart-debit.chart-line { stroke: #56d9f5; }
.cfo-answer-chart .chart-credit.chart-line { stroke: #f2b979; }
.cfo-answer-chart .chart-net.chart-line { stroke: #6c89ff; }
.cfo-answer-chart .chart-debit.chart-dot { fill: #56d9f5; }
.cfo-answer-chart .chart-credit.chart-dot { fill: #f2b979; }
.cfo-answer-chart .chart-net.chart-dot { fill: #6c89ff; }
.cfo-answer-chart .chart-bar { fill: #3bc2ee; }
.cfo-answer-chart .chart-bar:hover { fill: #94e8fc; }
.cfo-admin-link { color: #89dff4; font-size: 11px; font-weight: 750; text-decoration: none; white-space: nowrap; }
.cfo-admin-link:hover { color: white; }
.cfo-access-notice { margin-top: 18px; padding: 13px 17px; border: 1px solid #44bda16b; border-radius: 10px; background: #164e494d; color: #a6f4da; font-size: 12px; }
.cfo-intelligence-strip { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin: 0 0 20px; }
.cfo-intelligence-strip > div { display: grid; gap: 5px; padding: 17px 20px; border: 1px solid #4d9db342; border-radius: 12px; background: linear-gradient(145deg, #11384a, #0c293b); box-shadow: inset 0 1px #b9f5ff0a; }
.cfo-intelligence-strip small { color: #72b9cb; letter-spacing: .13em; font-size: 8px; font-weight: 900; }
.cfo-intelligence-strip strong { color: #effaff; font-size: 26px; line-height: 1.2; letter-spacing: -.05em; }
.cfo-intelligence-strip span { color: #82a6b7; font-size: 10px; }
.cfo-reconciliation-status { display: flex; gap: 11px; align-items: start; padding: 12px 17px; margin: -3px 0 20px; border-radius: 10px; border: 1px solid #a8904a61; background: #594c252b; }
.cfo-reconciliation-status.is-current { border-color: #4aba9b5a; background: #164c4940; }
.cfo-reconciliation-status > span { display: grid; place-items: center; flex: none; width: 20px; height: 20px; border-radius: 50%; background: #baab6b4a; color: #f4d49b; font-size: 12px; font-weight: 900; }
.cfo-reconciliation-status.is-current > span { background: #38ad9071; color: #bbffe5; }
.cfo-reconciliation-status strong { color: #f1dfb5; font-size: 11px; }
.cfo-reconciliation-status.is-current strong { color: #baf4de; }
.cfo-reconciliation-status p { margin: 4px 0 0; color: #a6af9f; font-size: 10px; line-height: 1.55; }
.cfo-reconciliation-status.is-current p { color: #83b6b1; }
.cfo-lead-diagnosis { max-width: 650px; margin: 27px 0 21px; padding-left: 16px; border-left: 2px solid #48cceb; }
.cfo-lead-diagnosis > span { display: inline-block; margin-bottom: 5px; color: #71d9ee; font-size: 9px; font-weight: 900; letter-spacing: .13em; text-transform: uppercase; }
.cfo-lead-card .cfo-lead-diagnosis p { margin: 0; color: #b6d1df; }
.cfo-lead-diagnosis small { display: block; margin-top: 8px; color: #78a9bd; font-size: 9px; }
.cfo-reduction { border: 1px solid #5a9eb240; border-radius: 15px; background: linear-gradient(145deg, #0d2a3d, #0a2234); overflow: hidden; }
.cfo-reduction-heading { display: flex; align-items: end; justify-content: space-between; gap: 12px; padding: 22px 24px 16px; border-bottom: 1px solid #5a9eb22c; }
.cfo-reduction-heading h3 { margin: 8px 0 0; font-size: 19px; letter-spacing: -.035em; }
.cfo-reduction-heading h3 em { color: #6bcce8; font-style: normal; font-weight: 500; }
.cfo-reduction-heading > span { color: #6d98aa; font-size: 9px; white-space: nowrap; }
.cfo-reduction-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.cfo-reduction-item { min-width: 0; padding: 19px 23px; border-right: 1px solid #5a9eb22c; border-bottom: 1px solid #5a9eb22c; }
.cfo-reduction-item:nth-child(2n) { border-right: 0; }
.cfo-reduction-top { display: grid; gap: 8px; }
.cfo-reduction-top strong { color: #e6f4fa; font-size: 12px; overflow-wrap: anywhere; }
.cfo-reduction-top span { color: #7fe1ed; font-size: 9px; text-transform: uppercase; font-weight: 850; letter-spacing: .1em; }
.cfo-reduction-item p { min-height: 63px; margin: 12px 0; color: #9dbcca; font-size: 10px; line-height: 1.65; }
.cfo-reduction-evidence { display: grid; gap: 4px; color: #719bb0; font-size: 9px; }
.cfo-reduction-item button { margin-top: 15px; padding: 0; background: none; border: 0; color: #65d2ee; font-size: 10px; font-weight: 800; text-align: left; }
.cfo-reduction-item button:hover { color: white; }
.cfo-no-reduction { grid-column: 1 / -1; margin: 0; padding: 22px 24px; color: #9bb9c8; font-size: 11px; line-height: 1.7; }
.cfo-access-panel { margin: 24px 0 6px; border: 1px solid #529ab04a; border-radius: 13px; background: #0b2839; }
.cfo-access-panel summary { display: flex; align-items: center; justify-content: space-between; gap: 15px; cursor: pointer; list-style: none; padding: 17px 20px; }
.cfo-access-panel summary::-webkit-details-marker { display: none; }
.cfo-access-panel summary > span:first-child { display: grid; gap: 5px; }
.cfo-access-panel summary b { font-size: 12px; color: #dff1f7; }
.cfo-access-panel summary small { font-size: 9px; color: #749bb0; }
.cfo-access-panel summary > span:last-child { color: #71d7f1; font-size: 19px; }
.cfo-access-body { padding: 0 20px 22px; }
.cfo-access-body > p { color: #7b9bad; font-size: 10px; line-height: 1.6; }
.cfo-access-form { display: flex; align-items: end; gap: 10px; flex-wrap: wrap; margin-top: 5px; }
.cfo-access-form label { width: 100%; color: #88cde0; font-size: 9px; font-weight: 850; letter-spacing: .1em; }
.cfo-access-form input { flex: 1; min-width: 220px; padding: 11px 12px; border: 1px solid #548ca363; border-radius: 8px; background: #071e30; color: #ebf9fd; }
.cfo-access-form button { border: 0; border-radius: 8px; background: #41c8ed; color: #05283a; padding: 12px 16px; font-size: 10px; font-weight: 900; }
.cfo-access-list { display: grid; border-top: 1px solid #529ab039; margin-top: 17px; }
.cfo-access-list > div { display: flex; align-items: center; justify-content: space-between; gap: 15px; border-bottom: 1px solid #529ab028; padding: 11px 0; }
.cfo-access-list > div > span { display: grid; gap: 3px; }
.cfo-access-list strong { color: #d8edf6; font-size: 11px; }
.cfo-access-list small { color: #789eb1; font-size: 9px; }
.cfo-access-list button { background: none; border: 1px solid #a5747770; color: #e5acaa; border-radius: 6px; padding: 6px 9px; font-size: 9px; }
.cfo-access-list button:hover { background: #803b3f33; }
.cfo-history { margin: 33px 0 0; padding: 22px 24px; border: 1px solid #529ab043; border-radius: 15px; background: linear-gradient(135deg, #0d2c3e, #092237); }
.cfo-history-heading { display: flex; justify-content: space-between; align-items: end; gap: 20px; border-bottom: 1px solid #67a7bf35; padding-bottom: 17px; }
.cfo-history-heading h2 { margin: 8px 0 0; font-size: 22px; letter-spacing: -.04em; }
.cfo-history-heading h2 span { color: #64d0ee; }
.cfo-history-heading p { max-width: 300px; margin: 0; color: #789caf; font-size: 10px; line-height: 1.55; text-align: right; }
.cfo-history-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin-top: 17px; }
.cfo-history-item { display: flex; align-items: center; gap: 11px; min-width: 0; padding: 13px 14px; border: 1px solid #6cadc03b; border-radius: 9px; background: #12394b7a; color: #e2f3f8; text-align: left; }
.cfo-history-item:hover { border-color: #72d5eb; background: #16485c; }
.cfo-history-year { display: grid; gap: 3px; color: #74d8ee; font-size: 13px; font-weight: 900; }
.cfo-history-year small { color: #6b9bae; font-size: 8px; font-weight: 600; }
.cfo-history-copy { display: grid; gap: 4px; flex: 1; min-width: 0; }
.cfo-history-copy strong { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; font-size: 10px; }
.cfo-history-copy small { color: #6a93a6; font-size: 8px; }
.cfo-history-delta { color: #d2f5fd; font-size: 11px; font-weight: 850; white-space: nowrap; }
.cfo-history-arrow { color: #61cbe6; }
.cfo-audit-signals, .cfo-catalog { margin-top: 25px; padding: 22px 24px; border: 1px solid #529ab043; border-radius: 15px; background: linear-gradient(135deg, #0d2c3e, #092237); }
.cfo-audit-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 11px; margin-top: 18px; }
.cfo-audit-card { display: grid; align-content: start; gap: 10px; padding: 18px; border: 1px solid #6cadc03b; border-radius: 10px; background: #12394b7a; }
.cfo-audit-card small { color: #73cfe5; font-size: 9px; font-weight: 900; letter-spacing: .12em; }
.cfo-audit-card h3 { margin: 0; font-size: 15px; color: #e6f5fa; }
.cfo-audit-card p { margin: 0; color: #a2c3d1; font-size: 11px; line-height: 1.6; }
.cfo-audit-card p b { color: #a4ecfb; }
.cfo-audit-card > span { color: #729daf; font-size: 10px; line-height: 1.5; }
.cfo-audit-card button { justify-self: start; padding: 0; border: 0; color: #69d9f2; background: transparent; font-size: 10px; font-weight: 850; }
.cfo-catalog label { display: block; margin: 18px 0 8px; color: #72b9cb; font-size: 9px; letter-spacing: .13em; font-weight: 900; }
.cfo-catalog input { width: 100%; padding: 12px 14px; border: 1px solid #548ca363; border-radius: 9px; background: #071e30; color: #ecf9fd; outline: none; }
.cfo-catalog input:focus { border-color: #5bcce9; box-shadow: 0 0 0 3px #00b4ff1d; }
.cfo-account-results { display: grid; margin-top: 11px; border: 1px solid #529ab03b; border-radius: 9px; overflow: hidden; }
.cfo-account-row { display: flex; align-items: center; justify-content: space-between; gap: 15px; width: 100%; padding: 13px 16px; border: 0; border-bottom: 1px solid #529ab02c; background: #12394b55; color: #e1f2f8; text-align: left; }
.cfo-account-row:last-child { border-bottom: 0; }
.cfo-account-row:hover { background: #1a4a60; }
.cfo-account-title, .cfo-account-values { display: grid; gap: 4px; }
.cfo-account-title strong { font-size: 11px; }
.cfo-account-title small, .cfo-account-values small { color: #749caf; font-size: 9px; }
.cfo-account-values { text-align: right; white-space: nowrap; }
.cfo-account-values b { font-size: 11px; }
.cfo-account-values b.up { color: #ecc18c; }
.cfo-account-values b.down { color: #7adbc1; }
.cfo-catalog-footer { display: flex; justify-content: space-between; align-items: center; margin-top: 12px; color: #7ca4b4; font-size: 10px; }
.cfo-catalog-footer button { padding: 8px 10px; border: 1px solid #548ca363; border-radius: 7px; background: #12394b; color: #9be7f8; font-size: 10px; }

/* ========================================================================
   Tela de login (28/09/2026): o robô do CFO (terno, símbolo da Raviera) num fundo escuro
   limpo, com cartões de vidro em volta, e o cartão de entrada de vidro à direita. O robô,
   os cartões e a conversa ficam num "palco" proporcional, para a composição não se
   desmontar em telas maiores ou menores.
   ======================================================================== */
body.login-page { background: #061725; color: #eff8fc; }
.signin { min-height: 100vh; min-height: 100dvh; display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(400px, .9fr);
  background: radial-gradient(circle at 30% 66%, rgba(0, 180, 255, .16), transparent 40%),
              radial-gradient(circle at 88% 16%, rgba(13, 70, 96, .38), transparent 52%),
              linear-gradient(138deg, #072d50 0%, #061b31 58%, #04121f 100%); }
.signin-scene { position: relative; overflow: hidden; min-height: 100vh; min-height: 100dvh; }
.signin-stage { position: absolute; left: 50%; bottom: 0; width: min(780px, 94%, calc((100vh - 40px) * 1.083)); aspect-ratio: 780 / 720; transform: translateX(-50%); }
.signin-ring { position: absolute; left: 53%; top: 49%; aspect-ratio: 1; border-radius: 50%; border: 1px solid rgba(124, 203, 236, .14); transform: translate(-50%, -50%); pointer-events: none; }
.signin-ring-1 { width: 84%; box-shadow: 0 0 0 64px rgba(124, 203, 236, .03), 0 0 0 132px rgba(124, 203, 236, .02); }
.signin-ring-2 { width: 54%; border-color: rgba(104, 219, 248, .2); }
.signin-floor { position: absolute; left: 54%; bottom: -13%; width: 88%; height: 27%; transform: translateX(-50%); border-radius: 50%; background: radial-gradient(ellipse at center, rgba(0, 180, 255, .3), transparent 68%); pointer-events: none; }
.signin-robot { position: absolute; z-index: 2; left: 54%; bottom: 0; width: 72%; height: auto; transform: translateX(-50%); filter: drop-shadow(0 28px 50px rgba(0, 0, 0, .45)); animation: signin-float 6.5s ease-in-out infinite; }
.signin-card { position: absolute; z-index: 3; padding: 14px 16px; border-radius: 16px; border: 1px solid rgba(125, 211, 252, .18); background: linear-gradient(160deg, rgba(23, 78, 105, .5), rgba(8, 32, 52, .64)); backdrop-filter: blur(12px); box-shadow: 0 18px 44px rgba(0, 0, 0, .35), inset 0 1px 0 rgba(255, 255, 255, .06); color: #e2f5fc; }
.signin-card strong { display: block; font-size: 14px; font-weight: 750; letter-spacing: -.01em; }
.signin-card small { display: block; margin-top: 3px; color: #8daabe; font-size: 11px; }
.signin-card-chart { left: 0; top: 11%; width: 28%; min-width: 196px; animation: signin-drift 8s ease-in-out infinite; }
.signin-bars { display: block; width: 100%; height: auto; margin-top: 12px; }
.signin-card-donut { right: 0; top: 2%; display: flex; gap: 13px; align-items: center; width: 31%; min-width: 222px; animation: signin-drift 9s ease-in-out -3s infinite; }
.signin-donut { width: 58px; height: 58px; flex: none; }
.signin-card-donut > div { min-width: 0; }
.signin-legend { display: grid; gap: 5px; margin-top: 9px; }
.signin-legend i { display: block; width: 40%; height: 4px; border-radius: 3px; background: #1d5b7c; }
.signin-legend i:first-child { width: 88%; background: #00b4ff; }
.signin-legend i:nth-child(2) { width: 60%; background: #68dbf8; }
.signin-chat { position: absolute; z-index: 4; left: 0; bottom: 3%; display: grid; gap: 10px; width: 34%; min-width: 250px; }
.signin-bubble { margin: 0; padding: 10px 13px; border-radius: 15px; font-size: 12.5px; line-height: 1.45; box-shadow: 0 14px 34px rgba(0, 0, 0, .32); opacity: 0; animation: signin-pop .5s ease-out forwards; }
.signin-bubble-me { justify-self: start; max-width: 240px; background: linear-gradient(110deg, #68dbf8, #00b4ff); color: #063149; font-weight: 700; border-bottom-left-radius: 5px; animation-delay: .5s; }
.signin-bubble-bot { display: flex; gap: 10px; align-items: flex-start; border: 1px solid rgba(125, 211, 252, .2); background: rgba(8, 32, 52, .86); backdrop-filter: blur(10px); color: #d7eef8; border-top-left-radius: 5px; animation-delay: 1.3s; }
.signin-bubble-bot img { width: 36px; height: 36px; flex: none; border-radius: 11px; background: radial-gradient(circle at 30% 25%, #1c6d93, #0c3149 72%); }
.signin-bubble-bot p { margin: 0; }
.signin-bubble-bot b { display: block; margin-bottom: 2px; color: #72dcf9; font-size: 11px; letter-spacing: .01em; }
.signin-panel { position: relative; z-index: 5; display: grid; place-items: center; align-content: center; padding: 40px clamp(24px, 5vw, 72px); }
.signin-footer { margin: 20px 0 0; color: #6f8fa4; font-size: 11px; text-align: center; }
.signin-footer span { margin: 0 8px; color: #00b4ff; }
.signin-box { width: min(100%, 430px); padding: 38px 36px 30px; border-radius: 26px; border: 1px solid rgba(125, 211, 252, .2); background: linear-gradient(165deg, rgba(20, 64, 94, .45), rgba(6, 23, 37, .72)); backdrop-filter: blur(18px); box-shadow: 0 30px 80px rgba(0, 0, 0, .45), inset 0 1px 0 rgba(255, 255, 255, .07); text-align: center; }
.signin-logo { display: block; width: 184px; height: auto; margin: 0 auto 24px; }
.signin-subtitle { margin: 0; color: #effaff; font-size: clamp(24px, 2.2vw, 30px); font-weight: 750; letter-spacing: -.035em; line-height: 1.12; }
.signin-text { max-width: 330px; margin: 9px auto 26px; color: #8daabe; font-size: 13px; line-height: 1.55; }
.signin-error { margin: 0 0 16px; border-color: rgba(248, 113, 133, .38); background: rgba(167, 42, 57, .18); color: #ffc2cb; text-align: left; }
.signin-form { display: grid; gap: 14px; text-align: left; }
.signin-field { position: relative; display: block; }
.signin-field > svg { position: absolute; left: 16px; top: 50%; width: 20px; height: 20px; transform: translateY(-50%); color: #6a92aa; pointer-events: none; transition: color .15s; }
.signin-field input { width: 100%; height: 52px; padding: 0 50px 0 48px; border: 1px solid rgba(68, 114, 141, .5); border-radius: 13px; background: rgba(12, 41, 61, .8); color: #fff; font-size: 14px; outline: none; transition: border-color .15s, box-shadow .15s; }
.signin-field input::placeholder { color: #6a92aa; }
.signin-field input:focus { border-color: #00a4e4; box-shadow: 0 0 0 4px rgba(0, 180, 255, .14); }
.signin-field:focus-within > svg { color: #72dcf9; }
.signin-eye { position: absolute; right: 7px; top: 50%; display: grid; place-items: center; width: 38px; height: 38px; transform: translateY(-50%); border: 0; border-radius: 10px; background: transparent; color: #6a92aa; }
.signin-eye:hover, .signin-eye:focus-visible { background: rgba(104, 219, 248, .1); color: #cfeefa; outline: none; }
.signin-eye svg { width: 20px; height: 20px; }
.signin-eye .signin-eye-off { display: none; }
.signin-eye[aria-pressed="true"] .signin-eye-off { display: inline; }
.signin-submit { display: flex; align-items: center; justify-content: center; gap: 10px; height: 54px; margin-top: 6px; border: 0; border-radius: 13px; background: linear-gradient(110deg, #68dbf8, #00b4ff); color: #063149; font-size: 15px; font-weight: 800; box-shadow: 0 14px 32px rgba(0, 180, 255, .28); transition: transform .15s, box-shadow .15s; }
.signin-submit span { font-size: 19px; line-height: 1; transition: transform .15s; }
.signin-submit:hover { transform: translateY(-1px); box-shadow: 0 18px 38px rgba(0, 180, 255, .36); }
.signin-submit:hover span { transform: translateX(3px); }
.signin-submit:focus-visible { outline: 2px solid #aef1ff; outline-offset: 3px; }
.signin-help { display: flex; gap: 9px; align-items: flex-start; margin: 22px 0 0; color: #7f9fb3; font-size: 11.5px; line-height: 1.5; text-align: left; }
.signin-help svg { flex: none; width: 18px; height: 18px; margin-top: 1px; color: #4fb8e0; }
.signin-sr { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
@keyframes signin-float { 0%, 100% { transform: translate(-50%, 0); } 50% { transform: translate(-50%, -10px); } }
@keyframes signin-drift { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-7px); } }
@keyframes signin-pop { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
@media (max-width: 1180px) {
  .signin { grid-template-columns: minmax(0, 1fr) minmax(380px, 440px); }
  .signin-card-donut, .signin-chat { display: none; }
}
@media (max-width: 860px) {
  .signin { display: block; }
  .signin-scene { min-height: 0; height: clamp(178px, 31vh, 290px); }
  .signin-stage { inset: env(safe-area-inset-top) 0 0; left: 0; width: auto; aspect-ratio: auto; transform: none; }
  .signin-robot { left: 50%; width: auto; height: calc(100% - 14px); max-width: 80vw; }
  .signin-ring { left: 50%; top: 66%; }
  .signin-ring-1 { width: min(430px, 94vw); box-shadow: 0 0 0 46px rgba(124, 203, 236, .03); }
  .signin-ring-2 { width: min(250px, 58vw); }
  .signin-floor { left: 50%; width: 92vw; height: 150px; bottom: -80px; }
  .signin-card, .signin-chat { display: none; }
  .signin-footer { margin-top: 16px; }
  .signin-panel { display: block; margin-top: -18px; padding: 0 16px calc(28px + env(safe-area-inset-bottom)); }
  .signin-box { margin: 0 auto; padding: 24px 20px 20px; border-radius: 22px; }
  .signin-logo { width: 150px; margin-bottom: 14px; }
  .signin-subtitle { font-size: 23px; }
  .signin-text { margin: 6px auto 18px; font-size: 12.5px; }
  .signin-form { gap: 12px; }
  .signin-help { margin-top: 16px; font-size: 11px; }
}
@media (max-width: 860px) and (max-height: 700px) {
  .signin-scene { height: 150px; }
  .signin-text { display: none; }
  .signin-subtitle { margin-bottom: 16px; }
}
@media (prefers-reduced-motion: reduce) {
  .signin-robot, .signin-card, .signin-bubble { animation: none !important; }
  .signin-bubble { opacity: 1; }
}

@media (max-width: 950px) {
  .cfo-hero { grid-template-columns: minmax(0, 1fr) 290px; }
  .cfo-hero-art { opacity: .55; }
  .cfo-grid { grid-template-columns: minmax(0, 1fr); }
  .cfo-assistant { position: relative; top: auto; }
}
@media (max-width: 700px) {
  .cfo-header-inner { height: 66px; }
  .cfo-identity img { width: 132px; }
  .cfo-divider, .cfo-product, .cfo-live, .cfo-user { display: none; }
  .cfo-hero { min-height: 0; grid-template-columns: 1fr; }
  .cfo-hero-copy { padding: 45px 0; }
  .cfo-hero h1 { font-size: clamp(44px, 10vw, 59px); }
  .cfo-hero-art { position: absolute; right: -153px; top: -45px; width: 330px; opacity: .22; }
  .cfo-hero-copy > p { max-width: 470px; }
  .cfo-section-intro { display: grid; padding-top: 28px; }
  .cfo-period { text-align: left; }
  .cfo-lead-values { align-items: flex-start; gap: 18px; }
  .cfo-value-separator { display: none; }
  .cfo-footer { display: grid; }
  .cfo-admin-link { font-size: 9px; }
  .cfo-intelligence-strip { grid-template-columns: 1fr 1fr; }
  .cfo-intelligence-strip > div:last-child { grid-column: 1 / -1; }
  .cfo-reduction-list { grid-template-columns: 1fr; }
  .cfo-reduction-item { border-right: 0; }
  .cfo-reduction-item p { min-height: 0; }
  .cfo-history-heading { display: grid; }
  .cfo-history-heading p { text-align: left; }
  .cfo-history-list { grid-template-columns: 1fr; }
  .cfo-audit-grid { grid-template-columns: 1fr; }
}
@media (max-width: 480px) {
  .cfo-main { padding-left: 18px; padding-right: 18px; }
  .cfo-hero h1 { font-size: 43px; }
  .cfo-hero-meta { gap: 6px; }
  .cfo-hero-meta span { font-size: 9px; }
  .cfo-lead-card { padding: 23px; }
  .cfo-lead-card h3 { margin-top: 22px; }
  .cfo-list-heading span { display: none; }
  .cfo-opportunity { gap: 10px; padding: 13px; }
  .cfo-list-index, .cfo-list-arrow { display: none; }
  .cfo-list-value { font-size: 10px; }
}

/* O comando vem primeiro; os sinais e a auditoria continuam logo abaixo. */
.cfo-main { padding-top: clamp(22px, 3vw, 42px); }
.cfo-grid { grid-template-columns: minmax(0, 1fr); }
.cfo-assistant {
  position: relative; top: auto; padding: 0; border: 1px solid #3c7b98;
  border-radius: 19px; background: linear-gradient(135deg, #0c2940 0%, #081c2d 58%, #092437 100%);
  box-shadow: 0 28px 80px #020b16a8, inset 0 1px #a5e8ff1b;
}
.cfo-assistant:before { height: 1px; background: linear-gradient(90deg, #04b8f0, transparent 76%); }
.cfo-terminal-top { display: flex; align-items: center; gap: 13px; min-height: 48px; padding: 0 clamp(20px, 3vw, 38px); border-bottom: 1px solid #36708a6b; color: #7aa7bb; font-size: 9px; font-weight: 850; letter-spacing: .15em; }
.cfo-terminal-mark { display: grid; place-items: center; width: 27px; height: 27px; border-radius: 7px; border: 1px solid #67d9f089; background: #133d51; color: #e3faff; font-size: 12px; font-weight: 950; letter-spacing: -.09em; }
.cfo-terminal-mark span { color: #54dafa; }
.cfo-terminal-top > span:nth-child(2) i { color: #42b5d8; font-style: normal; padding: 0 4px; }
.cfo-terminal-status { display: inline-flex; align-items: center; gap: 8px; margin-left: auto; color: #8dcbcb; font-size: 8px; white-space: nowrap; }
.cfo-terminal-status i { width: 6px; height: 6px; border-radius: 50%; background: #53dbad; box-shadow: 0 0 10px #53dbad; }
.cfo-assistant-header { display: flex; align-items: end; justify-content: space-between; gap: 30px; padding: clamp(26px, 3.5vw, 47px) clamp(22px, 3.5vw, 48px) 23px; }
.cfo-assistant-header small { font-size: 9px; }
.cfo-assistant h1 { margin: 10px 0 0; max-width: 800px; font-size: clamp(31px, 4vw, 56px); line-height: 1.08; font-weight: 770; letter-spacing: -.058em; }
.cfo-assistant h1 em { font-style: normal; color: #68d9f6; }
.cfo-assistant-header p { max-width: 310px; margin: 0 0 4px; color: #a0bdcc; font-size: 11px; line-height: 1.7; }
.cfo-ask-form { gap: 0; padding: 0 clamp(22px, 3.5vw, 48px); }
.cfo-ask-form label { display: flex; align-items: center; justify-content: space-between; margin: 0 0 10px; color: #88cfe4; font-size: 9px; }
.cfo-ask-form label span { color: #6797ac; font-size: 16px; }
.cfo-terminal-input { display: flex; align-items: flex-start; gap: 15px; border: 1px solid #5ab7d37c; border-radius: 13px; background: #041522a8; box-shadow: inset 0 2px 16px #010c1769, 0 0 0 4px #35b1d908; transition: border-color .2s, box-shadow .2s; }
.cfo-terminal-input:focus-within { border-color: #69dafa; box-shadow: 0 0 0 4px #35b1d922, 0 10px 35px #00121e55; }
.cfo-terminal-input > span { margin: 22px 0 0 20px; color: #5de0f6; font-family: Consolas, monospace; font-size: 24px; line-height: 1; }
.cfo-ask-form textarea { min-height: 104px; padding: 22px 20px 18px 0; border: 0; background: transparent; border-radius: 0; font-size: 14px; line-height: 1.65; }
.cfo-ask-form textarea:focus { border: 0; box-shadow: none; }
.cfo-ask-form textarea::placeholder { color: #79a0b3; }
.cfo-command-footer { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding-top: 15px; }
.cfo-command-footer > span { color: #668fa4; font-size: 10px; }
.cfo-submit { width: auto; min-width: 220px; gap: 20px; margin: 0; padding: 13px 17px; font-size: 11px; }
.cfo-prompts { display: flex; flex-wrap: wrap; gap: 8px; margin: 19px 0 0; padding: 0 clamp(22px, 3.5vw, 48px); }
.cfo-suggestion { width: auto; border-radius: 99px; padding: 9px 12px; border-color: #5c9fb451; background: #12394b8c; font-size: 10px; }
.cfo-answer { margin: 25px clamp(22px, 3.5vw, 48px) 0; padding: clamp(20px, 2.8vw, 34px); border-radius: 13px; border-color: #4ac8e37b; background: linear-gradient(155deg, #082b3f, #061b2b); }
.cfo-answer-title { font-size: 12px; letter-spacing: .04em; }
.cfo-answer-text { font-size: 13px; line-height: 1.85; max-width: 1050px; }
.cfo-answer-chart svg { height: 240px; }
.cfo-assistant-foot { margin: 25px 0 0; padding: 13px clamp(22px, 3.5vw, 48px); border-top: 1px solid #36708a45; color: #7298aa; background: #061a2a88; font-size: 10px; }
.cfo-section-intro { padding-top: clamp(38px, 5vw, 64px); }
@media (max-width: 760px) {
  .cfo-assistant-header { display: block; }
  .cfo-assistant-header p { max-width: 620px; margin-top: 13px; }
  .cfo-command-footer { flex-direction: column; align-items: stretch; }
  .cfo-submit { width: 100%; }
  .cfo-terminal-top { letter-spacing: .07em; }
  .cfo-terminal-status { display: none; }
}

/* Workspace CFO: navegação persistente, leitura direta e chat em primeiro plano. */
.cfo-frame { display: grid; grid-template-columns: 238px minmax(0, 1fr); overflow: visible; }
.cfo-workspace { min-width: 0; }
.cfo-view { display: none; }
.cfo-view.is-active { display: block; }
.cfo-header-inner { height: 65px; max-width: none; padding-inline: clamp(20px, 3vw, 44px); }
.cfo-main { max-width: 1500px; padding: 30px clamp(20px, 3vw, 44px) 55px; }
.cfo-sidebar { position: sticky; top: 0; height: 100vh; padding: 25px 13px 19px; display: flex; flex-direction: column; gap: 23px; background: linear-gradient(180deg, #071b2c, #061522); border-right: 1px solid #3b769044; box-shadow: 18px 0 70px #02111c47; z-index: 5; }
.cfo-sidebar-brand { padding: 7px 11px 2px; display: grid; gap: 12px; }
.cfo-sidebar-brand img { width: 145px; max-height: 58px; object-fit: contain; object-position: left center; }
.cfo-sidebar-brand span { font-size: 9px; letter-spacing: .3em; color: #71bcd4; font-weight: 850; }
.cfo-new-chat { width: 100%; display: flex; gap: 12px; align-items: center; padding: 12px 14px; border: 1px solid #3ab7df85; border-radius: 10px; background: linear-gradient(120deg, #174b67, #0d344c); color: #f1fbff; font-size: 12px; font-weight: 800; text-align: left; }
.cfo-new-chat span { font-size: 19px; line-height: 10px; color: #7be4fa; }
.cfo-new-chat:hover { border-color: #7de5ff; background: #1b5572; }
.cfo-side-nav { display: grid; gap: 3px; }
.cfo-nav-item { display: flex; align-items: center; gap: 12px; width: 100%; border: 0; border-radius: 9px; padding: 12px 11px; background: transparent; color: #9ab5c4; text-align: left; font-size: 11px; font-weight: 700; }
.cfo-nav-item span { width: 18px; color: #58bcd9; font-size: 17px; text-align: center; }
.cfo-nav-item:hover { color: #fff; background: #17425a; }
.cfo-nav-item.is-active { color: #eafbff; background: #154762; box-shadow: inset 3px 0 #5bdaf5; }
.cfo-sidebar-chats { min-height: 0; display: flex; flex-direction: column; gap: 10px; padding-top: 16px; border-top: 1px solid #497b922f; }
.cfo-sidebar-label { padding: 0 10px; font-size: 9px; font-weight: 850; letter-spacing: .16em; color: #668fa2; }
#chat-list { min-height: 0; overflow-y: auto; display: grid; align-content: start; gap: 2px; }
.cfo-chat-item { display: flex; align-items: center; gap: 2px; min-width: 0; border-radius: 8px; }
.cfo-chat-item:hover, .cfo-chat-item.is-active { background: #12364b; }
.cfo-chat-link { flex: 1; min-width: 0; width: 100%; border: 0; border-radius: 8px; padding: 10px; color: #839eaf; background: transparent; text-align: left; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; font-size: 10px; cursor: pointer; }
.cfo-chat-item:hover .cfo-chat-link, .cfo-chat-item.is-active .cfo-chat-link { color: #e4f8ff; }
.cfo-chat-delete { display: inline-flex; flex: none; align-items: center; justify-content: center; gap: 4px; min-width: 28px; height: 28px; margin-right: 4px; padding: 0 6px; border: 0; border-radius: 7px; background: transparent; color: #7fa3b5; line-height: 1; opacity: 0; cursor: pointer; transition: opacity .12s ease, background .12s ease, color .12s ease; }
.cfo-chat-delete svg { flex: none; width: 15px; height: 15px; }
.cfo-chat-item:hover .cfo-chat-delete, .cfo-chat-item.is-active .cfo-chat-delete, .cfo-chat-delete:focus-visible { opacity: 1; }
.cfo-chat-delete:hover { background: transparent; color: #e4f8ff; }
.cfo-chat-delete.is-armed { opacity: 1; background: transparent; color: #ff5f6d; }

/* janela de confirmação (apagar conversa) */
.cfo-confirm { width: min(92vw, 380px); max-width: none; padding: 0; border: 1px solid #2f5f7a; border-radius: 16px; background: #0b2536; color: #e6f5fb; box-shadow: 0 24px 60px rgba(0, 0, 0, .55); }
.cfo-confirm::backdrop { background: rgba(2, 12, 20, .62); }
.cfo-confirm-body { display: grid; justify-items: center; gap: 10px; padding: 24px 22px 20px; text-align: center; }
.cfo-confirm-icon { display: grid; place-items: center; width: 46px; height: 46px; border-radius: 50%; background: #3a1e27; color: #ff6b78; }
.cfo-confirm-icon svg { width: 22px; height: 22px; }
.cfo-confirm h2 { margin: 4px 0 0; font-size: 16px; font-weight: 760; letter-spacing: -.01em; }
.cfo-confirm p { margin: 0; color: #9fbccb; font-size: 12.5px; line-height: 1.5; overflow-wrap: anywhere; }
.cfo-confirm-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; width: 100%; margin-top: 8px; }
.cfo-confirm-btn { height: 40px; border: 1px solid #2f5f7a; border-radius: 10px; background: transparent; color: #d7ebf4; font-size: 13px; font-weight: 700; cursor: pointer; }
.cfo-confirm-btn:hover { background: #12364b; color: #fff; }
.cfo-confirm-btn.is-danger { border-color: transparent; background: #c43144; color: #fff; }
.cfo-confirm-btn.is-danger:hover { background: #d93a4f; }
.cfo-confirm-btn:focus-visible { outline: 2px solid #5bd3f2; outline-offset: 2px; }
.cfo-chat-none { margin: 0; padding: 4px 10px; color: #5f8698; font-size: 10px; }
@media (hover: none) { .cfo-chat-delete { opacity: .7; } }
.cfo-sidebar-foot { margin-top: auto; padding: 15px 10px 0; border-top: 1px solid #497b922f; display: grid; gap: 7px; color: #7191a4; }
.cfo-sidebar-foot small { font-size: 9px; }
.cfo-sidebar-status { font-size: 10px; font-weight: 750; }
.cfo-sidebar-status i { display: inline-block; width: 7px; height: 7px; margin-right: 6px; border-radius: 50%; background: #58dba9; }
.cfo-chat-messages { margin: 0 clamp(22px, 3.5vw, 48px) 25px; display: grid; gap: 15px; max-height: 57vh; overflow-y: auto; }
.cfo-chat-messages:empty { display: none; }
.cfo-message { max-width: 88%; border-radius: 12px; padding: 16px 19px; border: 1px solid #477d984b; background: #08243a; }
.cfo-message-user { justify-self: end; background: #15435b; border-color: #4f9cbb72; }
.cfo-message-assistant { justify-self: start; background: #0b3043; }
.cfo-message > small:first-child { display: block; color: #72cde7; font-size: 9px; font-weight: 850; letter-spacing: .12em; margin-bottom: 10px; }
.cfo-message-body { white-space: pre-wrap; color: #e1f2fa; font-size: 12px; line-height: 1.7; }
.cfo-message-sources { display: block; margin-top: 14px; color: #79a5b8; overflow-wrap: anywhere; }
.cfo-message .cfo-answer-chart { width: min(700px, 100%); }
.cfo-message .cfo-answer-chart svg { height: 190px; }
.cfo-thinking { margin: 20px clamp(22px, 3.5vw, 48px) 0; padding: 12px 14px; border: 1px solid #4ebbd55c; border-radius: 9px; color: #a2e8f5; background: #0b3749; font-size: 11px; }
.cfo-thinking-pulse { display: inline-block; width: 7px; height: 7px; border-radius: 50%; background: #6be5ee; margin-right: 10px; animation: cfo-pulse 1.2s infinite alternate; }
@keyframes cfo-pulse { to { opacity: .2; transform: scale(.6); } }
.cfo-unit-proxy { display: flex; flex-wrap: wrap; align-items: center; gap: 24px; margin: 0 0 24px; padding: 19px 21px; border: 1px solid #3880a057; border-radius: 12px; background: #0b2a3d; }
.cfo-unit-proxy > div { display: grid; gap: 6px; }
.cfo-unit-proxy small { color: #79aac1; font-size: 9px; letter-spacing: .08em; font-weight: 850; }
.cfo-unit-proxy strong { color: #f1fbff; font-size: 20px; }
.cfo-unit-proxy strong span { color: #658ea1; font-size: 11px; }
.cfo-unit-proxy > div > span, .cfo-unit-proxy p { color: #82a5b7; font-size: 10px; }
.cfo-unit-proxy p { flex-basis: 100%; margin: 0; }
.cfo-account-controls { display: flex; justify-content: space-between; gap: 20px; align-items: end; margin: 16px 0 22px; }
.cfo-account-controls > div { display: grid; gap: 7px; }
.cfo-account-controls label, .cfo-account-controls small { font-size: 9px; color: #75aec7; letter-spacing: .14em; font-weight: 850; }
.cfo-account-controls select { border: 1px solid #5b9eb673; border-radius: 8px; color: #e4f7fb; background: #0c3044; padding: 10px 12px; }
.cfo-account-detail, .cfo-recurring-accounts, .cfo-insight-grid > section { border: 1px solid #3f819e54; border-radius: 13px; padding: 22px; background: #0b283b; margin-top: 20px; }
.cfo-account-detail-kpis { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 16px; }
.cfo-account-detail-kpis span { border-radius: 7px; padding: 10px 12px; background: #16435a; color: #d7eff7; font-size: 11px; }
.cfo-inline-action { border: 1px solid #66cde3; background: #14516a; color: #e6faff; padding: 10px 14px; border-radius: 8px; }
.cfo-company-heading { color: #bde8f5; font-size: 13px; font-weight: 800; margin: 22px 0 10px; }
.cfo-company-list { display: grid; gap: 3px; }
.cfo-company-row { border-bottom: 1px solid #4b809946; padding: 9px 4px; color: #c8e3ec; font-size: 11px; }
.cfo-detail-caveat { color: #83aabd; font-size: 10px; line-height: 1.6; }
.cfo-insight-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.cfo-insight-grid > section { margin: 0; min-width: 0; }
.cfo-insight-wide { grid-column: 1 / -1; }
.cfo-insight-grid h3 { margin: 0 0 8px; font-size: 17px; }
.cfo-insight-grid p { color: #8badbd; font-size: 10px; line-height: 1.6; }
.cfo-insight-list { display: grid; gap: 5px; }
.cfo-insight-row { display: grid; gap: 5px; border: 1px solid #477e9859; border-radius: 8px; padding: 12px; background: #10364b; color: #e3f3f9; text-align: left; width: 100%; }
.cfo-insight-row strong { font-size: 11px; font-weight: 750; }
.cfo-insight-row small { font-size: 9px; color: #8db5c5; }
button.cfo-insight-row:hover { border-color: #62cfe9; background: #174d66; }
.cfo-empty-state { color: #83aabd; font-size: 11px; padding: 10px; }
.cfo-loading { color: #9ac3d2; font-size: 12px; padding: 18px 0; }
.cfo-source-warning { margin: 0 0 20px; }
@media (max-width: 980px) { .cfo-frame { grid-template-columns: 190px minmax(0, 1fr); } .cfo-grid, .cfo-insight-grid { grid-template-columns: 1fr; } .cfo-insight-wide { grid-column: auto; } }
@media (max-width: 720px) { .cfo-frame { display: block; } .cfo-sidebar { position: relative; height: auto; padding: 13px; gap: 12px; } .cfo-sidebar-brand { display: none; } .cfo-side-nav { display: flex; overflow-x: auto; gap: 4px; } .cfo-nav-item { width: auto; white-space: nowrap; padding: 9px; } .cfo-sidebar-chats, .cfo-sidebar-foot { display: none; } .cfo-header-inner { padding-inline: 17px; } .cfo-live { display: none; } .cfo-message { max-width: 98%; } .cfo-account-controls { align-items: start; flex-direction: column; } }

/* ========================================================================
   Revisão 24/09/2026 · IA que abre o razão, gráficos corrigidos, clique para
   evolução mês a mês / ano a ano, lojas, terceiros e duplicidades.
   Cores de dados validadas para a superfície escura (#0b283b): ano atual =
   ciano, ano anterior = laranja, anos antigos = violeta/cinza; alta = vermelho,
   queda = verde-água (sempre com seta e sinal, nunca só cor).
   ======================================================================== */
:root {
  --viz-current: #1f9bd1; --viz-prior: #e0703f; --viz-older1: #9085e9; --viz-older2: #6f8797;
  --viz-up: #e66767; --viz-down: #3fbf9f; --viz-grid: #193a4e; --viz-axis: #33566c;
  --viz-surface: #0b283b; --viz-text: #e8f4fa; --viz-text-2: #a9c4d2; --viz-muted: #8aa0ad;
}
.cfo-terminal-top { justify-content: flex-start; }
.cfo-chat-messages { max-height: max(440px, calc(100vh - 330px)); margin-top: 22px; padding-right: 4px; }
.cfo-message { padding: 16px 20px; }
.cfo-message-assistant { max-width: 100%; width: 100%; }
.cfo-message-assistant .cfo-message-body { white-space: normal; font-size: 13px; line-height: 1.72; color: #d9ecf4; }
.cfo-message-body p { margin: 0 0 10px; }
.cfo-message-body strong { color: #fff; }
.cfo-answer-h { margin: 20px 0 8px; padding-top: 12px; border-top: 1px solid #22495f; font-size: 13.5px; letter-spacing: -.01em; color: #86def6; }
.cfo-answer-h:first-child { margin-top: 0; padding-top: 0; border-top: 0; }
.cfo-answer-list { margin: 0 0 12px; padding-left: 20px; display: grid; gap: 7px; }
.cfo-answer-list li::marker { color: #4fc3e8; }
.cfo-message-sources { font-size: 10px; color: #6f98ab; }
.cfo-ask-form { margin-top: 18px; }
.cfo-command-footer > span { font-size: 10px; color: #5f8aa0; }
.cfo-prompts { margin-bottom: 26px; }

/* gráficos */
.viz { margin: 14px 0; padding: 16px 16px 8px; border: 1px solid #28546b; border-radius: 12px; background: var(--viz-surface); }
.viz figcaption { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 4px 14px; margin: 0 0 8px; }
.viz figcaption strong { font-size: 12.5px; color: var(--viz-text); }
.viz figcaption span { font-size: 10.5px; color: var(--viz-muted); }
.viz-legend { display: flex; flex-wrap: wrap; gap: 6px 16px; margin: 0 0 8px; color: var(--viz-text-2); font-size: 10.5px; }
.viz-legend-item { display: inline-flex; align-items: center; gap: 6px; }
.viz-key { display: inline-block; flex: none; width: 10px; height: 10px; border-radius: 3px; background: var(--viz-muted); }
.viz-key.is-line { width: 16px; height: 3px; border-radius: 2px; }
.viz-key-current { background: var(--viz-current); }
.viz-key-prior { background: var(--viz-prior); }
.viz-key-older1 { background: var(--viz-older1); }
.viz-key-older2 { background: var(--viz-older2); }
.viz-canvas { width: 100%; min-height: 40px; }
.viz-canvas svg { display: block; overflow: visible; }
.viz-grid { stroke: var(--viz-grid); stroke-width: 1; shape-rendering: crispEdges; }
.viz-axis { stroke: var(--viz-axis); stroke-width: 1; shape-rendering: crispEdges; }
.viz-tick { fill: var(--viz-muted); font-size: 10px; font-variant-numeric: tabular-nums; }
.viz-label { fill: var(--viz-text-2); font-size: 10.5px; font-weight: 600; }
.viz-label-strong { fill: var(--viz-text); font-weight: 850; }
.viz-value { fill: var(--viz-text); font-size: 11px; font-weight: 750; font-variant-numeric: tabular-nums; }
.viz-change { fill: var(--viz-muted); font-size: 10px; font-weight: 650; }
.viz-annot { fill: var(--viz-text); font-size: 10.5px; font-weight: 850; }
.viz-fill-current { fill: var(--viz-current); }
.viz-fill-prior { fill: var(--viz-prior); }
.viz-fill-older1 { fill: var(--viz-older1); }
.viz-fill-older2 { fill: var(--viz-older2); }
.viz-line { fill: none; stroke-width: 2; stroke-linejoin: round; stroke-linecap: round; }
.viz-stroke-current { stroke: var(--viz-current); stroke-width: 2.6; }
.viz-stroke-prior { stroke: var(--viz-prior); }
.viz-stroke-older1 { stroke: var(--viz-older1); }
.viz-stroke-older2 { stroke: var(--viz-older2); }
.viz-dot { stroke: var(--viz-surface); stroke-width: 2; }
.viz-cross { stroke: #5f8ea6; stroke-width: 1; shape-rendering: crispEdges; }
.viz-hit { fill: transparent; }
.viz-row-bg { fill: transparent; }
.viz-row:hover .viz-row-bg { fill: #11364b; }
.viz-row.is-link { cursor: pointer; outline: none; }
.viz-row.is-link:focus-visible .viz-row-bg { fill: #11364b; stroke: #5bd3f2; stroke-width: 1.5; }
.viz-row-label { fill: var(--viz-text); font-size: 11.5px; font-weight: 650; }
.viz-row.is-link .viz-row-label { text-decoration: underline; text-decoration-color: #3c7892; }
.viz-row-note { fill: var(--viz-muted); font-size: 10px; font-variant-numeric: tabular-nums; }
.viz-delta { fill: var(--viz-text); font-size: 11.5px; font-weight: 750; font-variant-numeric: tabular-nums; }
.viz-arrow-up { fill: var(--viz-up); color: var(--viz-up); }
.viz-arrow-down { fill: var(--viz-down); color: var(--viz-down); }
.viz-arrow-flat { fill: var(--viz-muted); color: var(--viz-muted); }
/* "Ver todos" do painel de detalhe (gráficos, notas, itens, histórico mensal e itens da NF) */
.viz-more { display: block; width: 100%; margin: 6px 0 2px; padding: 9px 12px; border: 1px solid #2c5a71; border-radius: 9px; background: rgba(15, 50, 71, .55); color: #86def6; font: inherit; font-size: 11px; font-weight: 750; text-align: center; cursor: pointer; }
.viz-more:hover { border-color: #4b8fae; background: #113a52; color: #fff; }
.viz-more:focus-visible { outline: 2px solid #5bd3f2; outline-offset: 2px; }
.viz-more:disabled { cursor: progress; opacity: .8; }
.viz-more.is-table { width: calc(100% - 28px); margin: 10px 14px 12px; }
.viz-more.is-inline { width: auto; margin: 4px 0 0; padding: 6px 12px; justify-self: start; }
.viz-more-note { margin: 0 0 8px; color: var(--viz-muted); font-size: 10.5px; line-height: 1.5; }
.viz-more-count { padding: 8px 14px 0; color: var(--viz-muted); font-size: 10.5px; }
.viz-table tr[hidden], .viz-more[hidden], .viz-more-note[hidden], .viz-more-count[hidden] { display: none !important; }
.viz-numbers-toggle > summary { display: inline-block; padding: 6px 0 4px; color: #6fb7cf; font-size: 10.5px; font-weight: 750; cursor: pointer; list-style: none; }
.viz-numbers-toggle > summary::-webkit-details-marker { display: none; }
.viz-numbers-toggle[open] > summary { color: #b9ecfa; }
.viz-tip { position: fixed; z-index: 90; min-width: 160px; max-width: 320px; padding: 10px 12px; border: 1px solid #3a6f8c; border-radius: 10px; background: rgba(6, 23, 37, .97); box-shadow: 0 14px 40px rgba(0, 0, 0, .55); color: var(--viz-text-2); font-size: 11px; pointer-events: none; }
.viz-tip[hidden] { display: none; }
.viz-tip-title { margin-bottom: 6px; color: var(--viz-text); font-size: 11.5px; font-weight: 800; }
.viz-tip-row { display: flex; align-items: center; gap: 8px; line-height: 1.75; }
.viz-tip-row strong { color: #fff; font-variant-numeric: tabular-nums; }
.viz-tip .viz-key { width: 12px; height: 3px; border-radius: 2px; }
/* comparativo de lojas: o mesmo mês do ano anterior ao passar o mouse no valor */
.viz-tip-sub { margin: -3px 0 7px; color: var(--viz-muted); font-size: 10px; font-weight: 650; }
.viz-tip-row.is-compare strong { min-width: 92px; text-align: right; }
.viz-tip-change { margin-top: 7px; padding-top: 7px; border-top: 1px solid #23485d; font-weight: 750; line-height: 1.45; }
.viz-tip-change.is-up { color: #f6b8b0; }
.viz-tip-change.is-down { color: #9be6cf; }
.viz-tip-change.is-flat { color: var(--viz-text-2); }
.viz-tip-hint { margin-top: 5px; color: #7fcfe3; font-size: 10px; line-height: 1.4; }

/* tabelas */
.viz-table-block { margin: 14px 0; border: 1px solid #28546b; border-radius: 12px; background: var(--viz-surface); overflow: hidden; }
.viz-table-title { padding: 13px 14px 8px; color: var(--viz-text); font-size: 12.5px; font-weight: 800; }
.viz-table-block .cfo-dup-list { padding: 0 10px 10px; }
.viz-table-scroll { overflow-x: auto; }
.viz-table { width: 100%; border-collapse: collapse; color: var(--viz-text-2); font-size: 11px; }
.viz-table th { padding: 8px 12px; border-bottom: 1px solid #244a60; color: var(--viz-muted); font-size: 9.5px; font-weight: 800; letter-spacing: .08em; text-align: left; text-transform: uppercase; white-space: nowrap; }
.viz-table td { padding: 8px 12px; border-bottom: 1px solid #183849; vertical-align: top; }
.viz-table tbody tr:last-child td { border-bottom: 0; }
.viz-table tbody tr:hover td { background: #0f3247; }
.viz-table .is-num { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.viz-table .is-nowrap { white-space: nowrap; }
.viz-table .is-strong { color: var(--viz-text); font-weight: 700; }
.viz-history { min-width: 200px; color: #8fb0c0; }
.viz-muted-text { color: #8fb0c0; }
.viz-numbers { margin-top: 4px; font-size: 10.5px; }
.cfo-link { padding: 0; border: 0; background: none; color: #86def6; font: inherit; font-weight: 700; text-align: left; cursor: pointer; text-decoration: underline; text-decoration-color: #86def655; text-underline-offset: 3px; }
.cfo-link:hover { color: #fff; }
.cfo-more-visuals { margin-top: 14px; padding-top: 10px; border-top: 1px solid #22495f; }
.cfo-more-visuals > summary { color: #86def6; font-size: 11.5px; font-weight: 800; cursor: pointer; list-style: none; }
.cfo-more-visuals > summary::-webkit-details-marker { display: none; }
.cfo-more-visuals > summary::before { content: "+ "; }
.cfo-more-visuals[open] > summary::before { content: "− "; }

/* painel lateral: clique → evolução */
.cfo-drawer { position: fixed; inset: 0; z-index: 60; }
.cfo-drawer[hidden] { display: none; }
.cfo-drawer-backdrop { position: absolute; inset: 0; background: rgba(2, 10, 18, .62); }
.cfo-drawer-panel { position: absolute; top: 0; right: 0; bottom: 0; display: flex; flex-direction: column; width: min(900px, 100%); border-left: 1px solid #2d6480; background: linear-gradient(180deg, #0a2233, #071a29); box-shadow: -30px 0 80px rgba(0, 0, 0, .6); animation: cfo-slide .18s ease-out; }
@keyframes cfo-slide { from { transform: translateX(36px); opacity: .5; } }
.cfo-drawer-head { display: flex; justify-content: space-between; gap: 16px; padding: 22px 26px 16px; border-bottom: 1px solid #25516a; }
.cfo-drawer-head h2 { margin: 6px 0 4px; font-size: 22px; letter-spacing: -.03em; }
.cfo-drawer-head p { margin: 0; color: var(--viz-muted); font-size: 11px; }
.cfo-drawer-close { flex: none; width: 34px; height: 34px; border: 1px solid #3b6f8a; border-radius: 9px; background: #0f3246; color: #cfeaf5; font-size: 14px; }
.cfo-drawer-close:hover { background: #17465f; color: #fff; }
.cfo-drawer-body { flex: 1; overflow-y: auto; padding: 18px 26px 44px; }
.cfo-drawer-ask { width: 100%; margin: 2px 0 6px; padding: 12px 14px; border: 0; border-radius: 10px; background: linear-gradient(110deg, #69dcf9, #00b4ff); color: #03263b; font-size: 12px; font-weight: 900; text-align: left; }
.cfo-drawer-ask:hover { filter: brightness(1.08); }
body.has-drawer { overflow: hidden; }
.cfo-callout { margin: 0 0 12px; padding: 11px 14px; border: 1px solid #b0703f66; border-radius: 10px; background: #5b35192e; color: #f4c9a4; font-size: 11.5px; }

/* KPIs, barra de filtros e listas ordenadas */
.cfo-kpi-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 10px; margin: 0 0 14px; }
.cfo-kpi { display: grid; align-content: start; gap: 4px; padding: 13px 15px; border: 1px solid #28546b; border-radius: 11px; background: #0d2c40; }
.cfo-kpi small { color: #79b3c8; font-size: 9px; font-weight: 850; letter-spacing: .12em; text-transform: uppercase; }
.cfo-kpi strong { color: #f1fbff; font-size: 20px; letter-spacing: -.03em; }
.cfo-kpi strong.is-up { color: #f6b8b0; }
.cfo-kpi strong.is-down { color: #9be6cf; }
.cfo-kpi span { color: #7fa3b5; font-size: 10px; }
.cfo-toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin: 4px 0 12px; }
.cfo-toolbar input[type="search"] { flex: 1; min-width: 220px; padding: 11px 13px; border: 1px solid #548ca363; border-radius: 9px; outline: none; background: #071e30; color: #ecf9fd; }
.cfo-toolbar input[type="search"]:focus { border-color: #5bcce9; box-shadow: 0 0 0 3px #00b4ff1d; }
.cfo-toolbar select { padding: 10px 12px; border: 1px solid #5b9eb673; border-radius: 9px; background: #0c3044; color: #e4f7fb; }
.cfo-toolbar-label { flex: 1; color: #75aec7; font-size: 9px; font-weight: 850; letter-spacing: .14em; }
.cfo-card-chart { margin-bottom: 14px; }
.cfo-card-chart .viz { margin: 0; }
.cfo-rank-list { display: grid; overflow: hidden; border: 1px solid #28546b; border-radius: 12px; background: #0b283b; }
.cfo-rank-list:empty { display: none; }
.cfo-rank-head, .cfo-rank-row { display: grid; grid-template-columns: minmax(0, 1fr) 132px 132px 150px; align-items: center; gap: 12px; padding: 11px 16px; }
.cfo-rank-head { border-bottom: 1px solid #244a60; background: #0a2436; color: #6f9fb4; font-size: 9px; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.cfo-rank-row { width: 100%; border: 0; border-bottom: 1px solid #183849; background: transparent; color: inherit; font: inherit; text-align: left; }
button.cfo-rank-row { cursor: pointer; }
button.cfo-rank-row:hover { background: #11364b; }
.cfo-rank-row:last-child { border-bottom: 0; }
.cfo-rank-row.is-simple { grid-template-columns: minmax(0, 1fr) auto; }
.cfo-rank-copy { display: grid; gap: 4px; min-width: 0; }
.cfo-rank-copy strong { overflow: hidden; color: #e6f5fa; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.cfo-rank-copy small { overflow: hidden; color: #7fa3b5; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.cfo-rank-value { color: #e6f5fa; font-size: 12px; font-weight: 700; }
.cfo-rank-list .is-num { text-align: right; font-variant-numeric: tabular-nums; }
.cfo-rank-value.is-muted { color: #8aa0ad; font-weight: 600; }
.cfo-rank-delta { display: flex; justify-content: flex-end; }
.cfo-delta { display: grid; justify-items: end; gap: 2px; }
.cfo-delta b { color: #e6f5fa; font-size: 12px; font-weight: 800; white-space: nowrap; }
.cfo-delta i { margin-right: 2px; font-size: 9px; font-style: normal; }
.cfo-delta small { color: #8aa0ad; font-size: 10px; font-weight: 600; }
.cfo-catalog-footer { display: flex; justify-content: space-between; align-items: center; margin-top: 12px; color: #7ca4b4; font-size: 10px; }
.cfo-catalog-footer button { padding: 8px 10px; border: 1px solid #548ca363; border-radius: 7px; background: #12394b; color: #9be7f8; font-size: 10px; }

/* duplicidades */
.cfo-dup-list { display: grid; gap: 8px; }
.cfo-dup { overflow: hidden; border: 1px solid #28546b; border-radius: 11px; background: #0b283b; }
.cfo-dup.is-strong { border-color: #b0703f8c; }
.cfo-dup > summary { display: flex; justify-content: space-between; align-items: center; gap: 14px; padding: 13px 16px; cursor: pointer; list-style: none; }
.cfo-dup > summary::-webkit-details-marker { display: none; }
.cfo-dup > summary:hover { background: #0f3247; }
.cfo-dup-main { display: grid; gap: 5px; min-width: 0; }
.cfo-dup-title { color: #e6f5fa; font-size: 12.5px; }
.cfo-dup-main small { color: #7fa3b5; font-size: 10.5px; }
.cfo-dup-values { display: grid; justify-items: end; gap: 3px; text-align: right; }
.cfo-dup-values strong { color: #fff; font-size: 13px; font-variant-numeric: tabular-nums; white-space: nowrap; }
.cfo-dup-values small { color: #f4c9a4; font-size: 10.5px; white-space: nowrap; }
.cfo-tag { padding: 3px 8px; border: 1px solid #3b6f8a; border-radius: 99px; color: #a9c4d2; font-size: 9.5px; font-weight: 800; letter-spacing: .04em; }
.cfo-tag.is-strong { border-color: #b0703f; color: #f4c9a4; }
.cfo-dup .viz-table-scroll { border-top: 1px solid #1f4459; }
.cfo-recurring-accounts .cfo-rank-list { margin-top: 14px; }

@media (max-width: 760px) {
  .cfo-rank-head, .cfo-rank-row { grid-template-columns: minmax(0, 1fr) 104px 118px; gap: 8px; padding: 10px 12px; }
  .is-hide-sm { display: none; }
  .cfo-drawer-head, .cfo-drawer-body { padding-left: 16px; padding-right: 16px; }
  .cfo-dup > summary { flex-direction: column; align-items: flex-start; }
  .cfo-dup-values { justify-items: start; text-align: left; }
  .cfo-chat-messages { max-height: none; }
}

/* ajustes de layout: grid não pode crescer com o SVG; menos vazio acima das seções */
.cfo-chat-messages > *, .cfo-message, .cfo-message-body, .cfo-drawer-body > *, .cfo-view > * { min-width: 0; }
.viz-canvas svg { max-width: 100%; height: auto; }
.cfo-view > .cfo-section-intro:first-child { padding-top: 6px; }
.cfo-view[data-view-panel="reductions"] > .cfo-section-intro:first-child { padding-top: 6px; }

/* ========================================================================
   Revisão 25/09/2026 · custos naturais fora da redução, radar por loja e
   histórico mensal (inspirados no BI da diretoria), nova regra de duplicidade.
   ======================================================================== */
.cfo-excluded { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 14px 0 4px; }
.cfo-excluded.is-compact { margin: 0 0 12px; }
.cfo-excluded-label { color: #6f9fb4; font-size: 9px; font-weight: 850; letter-spacing: .14em; margin-right: 4px; }
.cfo-chip { display: inline-flex; align-items: center; gap: 6px; padding: 5px 10px; border: 1px solid #3b6f8a; border-radius: 99px; background: #0b283b; color: #a9c4d2; font-size: 10.5px; white-space: nowrap; }
.cfo-chip b { color: #d7ebf4; font-weight: 750; font-variant-numeric: tabular-nums; }

/* radar por loja: todas as lojas, com resumo, filtros e mini gráfico (25/09/2026) */
.cfo-store-radar { margin-top: 26px; }
.cfo-radar-summary { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin-top: 16px; }
.cfo-radar-summary > div { display: grid; gap: 3px; min-width: 0; padding: 12px 14px; border: 1px solid #214a60; border-radius: 12px; background: linear-gradient(180deg, #0d2e44, #0a2335); }
.cfo-radar-summary small { color: #6f9fb4; font-size: 9px; font-weight: 850; letter-spacing: .14em; }
.cfo-radar-summary strong { color: #e6f5fa; font-size: 22px; font-weight: 850; line-height: 1.1; font-variant-numeric: tabular-nums; }
.cfo-radar-summary span { overflow: hidden; color: #8aa0ad; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; font-variant-numeric: tabular-nums; }
.cfo-radar-summary .is-up strong, .cfo-radar-summary .is-up span { color: #f6b8b0; }
.cfo-radar-summary .is-down strong, .cfo-radar-summary .is-down span { color: #9be6cf; }
.cfo-radar-summary .is-new strong { color: #9fd8ff; }
.cfo-radar-tools { margin: 14px 0 0; }
.cfo-segmented { display: inline-flex; gap: 3px; max-width: 100%; padding: 4px; overflow-x: auto; border: 1px solid #214a60; border-radius: 99px; background: #08202f; scrollbar-width: none; }
.cfo-segmented::-webkit-scrollbar { display: none; }
.cfo-segmented button { display: inline-flex; flex: none; align-items: center; gap: 6px; padding: 7px 13px; border: 0; border-radius: 99px; background: transparent; color: #a9c4d2; font: inherit; font-size: 11.5px; font-weight: 700; white-space: nowrap; cursor: pointer; }
.cfo-segmented button b { color: #6f9fb4; font-weight: 800; font-variant-numeric: tabular-nums; }
.cfo-segmented button:hover { color: #e6f5fa; }
.cfo-segmented button.is-active { background: #16425a; color: #fff; box-shadow: inset 0 0 0 1px #2f6f8c; }
.cfo-segmented button.is-active b { color: #69d9f2; }
.cfo-segmented button:focus-visible, .cfo-radar-card button:focus-visible { outline: 2px solid #5bcce9; outline-offset: 2px; }

.cfo-radar-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 320px), 1fr)); gap: 12px; margin-top: 14px; }
.cfo-radar-card { position: relative; display: grid; grid-template-columns: minmax(0, 1fr); align-content: start; gap: 9px; min-width: 0; padding: 12px; overflow: hidden; border: 1px solid #28546b; border-radius: 14px; background: #0b283b; transition: border-color .15s ease, transform .15s ease; }
.cfo-radar-card::before { content: ""; position: absolute; inset: 0 auto 0 0; width: 3px; background: #33566c; }
.cfo-radar-card.is-up::before { background: #e66767; }
.cfo-radar-card.is-down::before { background: #3fbf9f; }
.cfo-radar-card.is-up.heat-1::before, .cfo-radar-card.is-down.heat-1::before { opacity: .45; }
.cfo-radar-card.is-up.heat-2::before, .cfo-radar-card.is-down.heat-2::before { opacity: .7; }
.cfo-radar-card.is-up.heat-4 { background: linear-gradient(160deg, #3a1f2a 0%, #0b283b 42%); border-color: #6b3a44; }
.cfo-radar-card.is-down.heat-4 { background: linear-gradient(160deg, #0f3a36 0%, #0b283b 42%); border-color: #2c6b5e; }
.cfo-radar-card:hover { border-color: #3c7892; transform: translateY(-1px); }
.cfo-radar-card.is-selected { border-color: #65cfe4; box-shadow: 0 0 0 1px #65cfe444, 0 12px 30px #00172255; }
.cfo-radar-select { display: block; width: 100%; padding: 8px 10px; border: 1px solid #32718b; border-radius: 9px; background: #123d53; color: #b5e8f2; font: inherit; font-size: 11px; font-weight: 800; text-align: center; cursor: pointer; }
.cfo-radar-select:hover, .cfo-radar-card.is-selected .cfo-radar-select { border-color: #68d9e9; background: #165c70; color: #fff; }
.cfo-radar-select:focus-visible, .cfo-store-compare-clear:focus-visible, .cfo-cost-month-toggle:focus-visible { outline: 2px solid #8ee9f4; outline-offset: 2px; }
.cfo-radar-card[hidden] { display: none; }
.cfo-store-compare { margin-top: 20px; padding: clamp(16px, 2vw, 24px); border: 1px solid #377993; border-radius: 18px; background: radial-gradient(circle at 100% 0, #1687a72e, transparent 42%), linear-gradient(150deg, #10374c, #091f30); box-shadow: 0 18px 38px #03141e55; }
.cfo-store-compare-head { display: flex; align-items: start; justify-content: space-between; gap: 16px; }
.cfo-store-compare-head h3 { margin: 4px 0 5px; color: #f0fbff; font-size: clamp(19px, 2.2vw, 26px); letter-spacing: -.035em; }
.cfo-store-compare-head h3 span { color: #78dcec; }
.cfo-store-compare-head p { max-width: 740px; margin: 0; color: #a8c6d1; font-size: 11.5px; line-height: 1.55; }
.cfo-store-compare-clear { flex: none; padding: 8px 12px; border: 1px solid #36718b; border-radius: 8px; background: #12394e; color: #a9dfee; font: inherit; font-size: 11px; font-weight: 750; cursor: pointer; }
.cfo-store-compare-hint { margin-top: 18px; padding: 16px; border: 1px dashed #3d7790; border-radius: 10px; color: #bad5e0; font-size: 12px; text-align: center; }
.cfo-store-compare-hint.is-ready { padding: 10px 14px; border-style: solid; background: #123a4d; color: #bee5ef; text-align: left; }
.cfo-store-compare-detail { margin-top: 16px; }
.cfo-store-compare-detail-head { display: flex; align-items: end; justify-content: space-between; gap: 18px; }
.cfo-store-compare-detail-head h4 { margin: 5px 0; color: #effaff; font-size: 19px; letter-spacing: -.02em; }
.cfo-store-compare-detail-head h4 span { color: #77d8ea; }
.cfo-store-compare-detail-head p { margin: 0; color: #9dbac8; font-size: 11px; line-height: 1.5; }
.cfo-store-compare-period { flex: none; padding: 7px 11px; border: 1px solid #356e84; border-radius: 99px; background: #123d50; color: #b9e6ed; font-size: 10px; font-weight: 800; white-space: nowrap; }
.cfo-store-compare-scope { margin: 9px 2px 0; color: #91b1c0; font-size: 10.5px; }
.cfo-store-account-scroll { max-height: min(48vh, 430px); margin-top: 16px; overflow: auto; border: 1px solid #315d72; border-radius: 11px; }
.cfo-store-account-table { width: 100%; min-width: 360px; border-collapse: collapse; table-layout: fixed; font-size: 11px; font-variant-numeric: tabular-nums; }
.cfo-store-account-table th:first-child { width: 28%; }
.cfo-store-account-head-name { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cfo-store-account-table th, .cfo-store-account-table td { padding: 9px 12px; border-bottom: 1px solid #285369; text-align: right; white-space: nowrap; }
.cfo-store-account-table th:first-child { position: sticky; left: 0; z-index: 1; background: #0e3549; text-align: left; }
.cfo-store-account-table thead th { position: sticky; top: 0; z-index: 2; background: #0e3549; color: #94bbca; font-size: 9px; font-weight: 850; letter-spacing: .06em; }
.cfo-store-account-table thead th:first-child { z-index: 3; }
.cfo-store-account-table tbody th { color: #a9c6d0; font-weight: 650; }
.cfo-store-account-table tbody td { color: #dceff5; }
.cfo-store-account-table tbody tr.cfo-cost-month:nth-child(even) { background: #ffffff05; }
.cfo-cost-month { cursor: pointer; }
.cfo-cost-month:hover td, .cfo-cost-month:hover th { background: #19465c; color: #fff; }
.cfo-cost-month.is-open td, .cfo-cost-month.is-open th { border-bottom-color: #69c8d788; background: #15516a; color: #fff; font-weight: 850; }
.cfo-cost-month-toggle { display: inline-flex; align-items: center; padding: 3px 4px; border: 0; border-radius: 6px; background: transparent; color: #a6deed; font: inherit; font-weight: 850; cursor: pointer; }
.cfo-cost-month-toggle:hover { color: #fff; text-decoration: underline; }
.cfo-cost-detail-row { background: #092a3c; }
.cfo-cost-detail-row th, .cfo-cost-detail-row td { padding-top: 8px; padding-bottom: 8px; border-bottom-color: #315e705e; }
.cfo-cost-detail-row th:first-child { background: #10384a; color: #d4e9ef; font-size: 10px; font-weight: 650; white-space: normal; overflow-wrap: anywhere; }
.cfo-cost-detail-row th span { display: block; padding-left: 17px; }
.cfo-cost-detail-row td { color: #d7e8ed; }
.cfo-compare-expense-value { display: inline-block; padding: 4px 7px; border: 1px solid transparent; border-radius: 5px; background: transparent; color: #a8edff; font: inherit; font-weight: 750; font-variant-numeric: tabular-nums; text-align: right; cursor: pointer; text-decoration: underline; text-decoration-color: #68d8ef88; text-underline-offset: 3px; }
.cfo-compare-expense-value:hover, .cfo-compare-expense-value:focus-visible { border-color: #68d8ef; background: #15516a; color: #fff; outline: none; }
.cfo-prior-value { display: inline-block; margin: -3px -6px; padding: 3px 6px; border-radius: 5px; }
.cfo-prior-value.has-prior-tip:hover { background: #ffffff14; color: #fff; text-decoration: underline dotted #8ee9f4; text-underline-offset: 3px; }
.cfo-compared-suppliers .cfo-supplier-panel { padding: 10px 0 14px; }
.cfo-cost-mobile-row { display: none; }
.cfo-cost-detail-empty td { padding: 16px; color: #96b7c4; text-align: left; }
.cfo-store-account-table tfoot th, .cfo-store-account-table tfoot td { border-bottom: 0; background: #145169; color: #fff; font-weight: 850; }
/* ACUMULADO (06/10/2026): abre e fecha como um mês; as despesas somadas do ano vêm logo abaixo, no rodapé */
.cfo-store-account-table tfoot tr.cfo-cost-total:hover th, .cfo-store-account-table tfoot tr.cfo-cost-total:hover td { background: #1a6080; color: #fff; }
.cfo-store-account-table tfoot tr.cfo-cost-total.is-open th, .cfo-store-account-table tfoot tr.cfo-cost-total.is-open td { border-bottom: 1px solid #69c8d788; background: #17607e; }
.cfo-cost-total-toggle { color: #fff; letter-spacing: .02em; }
.cfo-cost-total-toggle::after { content: "▸"; margin-left: 6px; color: #8ee9f4; font-size: 9px; }
.cfo-cost-total-toggle[aria-expanded="true"]::after { content: "▾"; }
.cfo-store-account-table tfoot tr.cfo-cost-detail-row th, .cfo-store-account-table tfoot tr.cfo-cost-detail-row td { border-bottom: 1px solid #315e705e; background: #092a3c; color: #d7e8ed; font-weight: 400; }
.cfo-store-account-table tfoot tr.cfo-cost-detail-row th:first-child { background: #10384a; color: #d4e9ef; font-weight: 650; }
.cfo-store-account-table tfoot tr.cfo-cost-detail-empty td { background: #092a3c; color: #96b7c4; font-weight: 400; }
.cfo-store-account-table tfoot tr.cfo-cost-mobile-row td { background: #0b2c3d; font-weight: 400; }
/* painel da despesa mês a mês na loja (valor do ACUMULADO aberto) */
.cfo-drawer-back { display: inline-flex; align-items: center; margin: 0 0 12px; padding: 7px 12px; border: 1px solid #36718b; border-radius: 8px; background: #12394e; color: #a9dfee; font: inherit; font-size: 11px; font-weight: 750; cursor: pointer; }
.cfo-drawer-back:hover, .cfo-drawer-back:focus-visible { border-color: #68d8ef; background: #15516a; color: #fff; outline: none; }
.viz-hit.is-link { cursor: pointer; }
.cfo-steps-facts { line-height: 1.6; }
.cfo-steps-table td { vertical-align: middle; }
.cfo-steps-table tbody tr.is-peak td { background: #0e3045; }
.cfo-steps-table .cfo-compare-expense-value { margin: -4px -7px; }
.cfo-steps-change { display: inline-grid; grid-template-columns: auto auto; justify-content: end; align-items: baseline; gap: 1px 6px; }
.cfo-steps-change b { color: var(--viz-text); font-weight: 750; }
.cfo-steps-change b i { font-style: normal; }
.cfo-steps-change span { color: var(--viz-text-2); font-size: 10px; }
.cfo-steps-change small { grid-column: 1 / -1; justify-self: end; color: var(--viz-muted); font-size: 9.5px; }
.cfo-steps-prior { display: block; color: var(--viz-text); }
.cfo-steps-prior small { margin-right: 6px; color: var(--viz-muted); font-size: 9.5px; }
.cfo-steps-table tfoot td { border-top: 1px solid #2b5a72; background: #0a2334; color: var(--viz-text); font-weight: 700; vertical-align: middle; }
@media (max-width: 520px) {
  .cfo-steps-table { font-size: 10px; }
  .cfo-steps-table th, .cfo-steps-table td { padding: 7px 5px; }
  .cfo-steps-table th { font-size: 8.5px; letter-spacing: .04em; }
  .cfo-steps-table th, .cfo-steps-table th.is-num, .cfo-steps-table td.is-num { white-space: normal; }
  .cfo-steps-table .cfo-compare-expense-value { margin: -3px -4px; padding: 3px 4px; }
  .cfo-steps-change { grid-template-columns: auto; }
  .cfo-steps-change b { white-space: nowrap; }
  .cfo-steps-change small, .cfo-steps-prior small { display: none; }
}
.cfo-radar-head { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: start; gap: 10px; width: 100%; padding: 0; border: 0; background: transparent; color: inherit; font: inherit; text-align: left; cursor: pointer; }
.cfo-radar-rank { display: grid; place-items: center; min-width: 26px; height: 22px; padding: 0 5px; border-radius: 7px; background: #0f3349; color: #7fb1c7; font-size: 10px; font-weight: 850; font-variant-numeric: tabular-nums; }
.cfo-radar-name { display: grid; gap: 3px; min-width: 0; }
.cfo-radar-name strong { overflow: hidden; color: #e6f5fa; font-size: 13.5px; text-overflow: ellipsis; white-space: nowrap; }
.cfo-radar-head:hover .cfo-radar-name strong { text-decoration: underline; text-decoration-color: #3c7892; }
.cfo-radar-name small { color: #7fa3b5; font-size: 10px; }
.cfo-radar-delta { display: grid; justify-items: end; gap: 2px; color: #cfe2ec; font-size: 13.5px; font-weight: 850; white-space: nowrap; font-variant-numeric: tabular-nums; }
.is-up .cfo-radar-delta { color: #f6b8b0; }
.is-down .cfo-radar-delta { color: #9be6cf; }
.cfo-radar-delta small { color: #8aa0ad; font-size: 10px; font-weight: 650; }
.cfo-radar-meter { display: block; width: 100%; height: 4px; }
.cfo-radar-meter .track { fill: #133247; }
.cfo-radar-meter .fill { fill: #5f7f90; }
.is-up .cfo-radar-meter .fill { fill: #e66767; }
.is-down .cfo-radar-meter .fill { fill: #3fbf9f; }
.cfo-radar-badges { display: flex; flex-wrap: wrap; gap: 6px; }
.cfo-badge { display: inline-flex; align-items: center; padding: 3px 8px; border: 1px solid #2f6f8c; border-radius: 99px; background: #0d3147; color: #9fd8ff; font-size: 9.5px; font-weight: 750; letter-spacing: .02em; }
.cfo-badge.is-nova { border-color: #3e7fbf; background: #10304f; color: #a8d4ff; }
.cfo-badge.is-rampa, .cfo-badge.is-expansao { border-color: #6d6a3a; background: #2c2a17; color: #eadc9a; }
.cfo-badge.is-saiu { border-color: #4b5a64; background: #17252e; color: #a5b3bb; }
.cfo-radar-spark { margin: 0; }
.cfo-radar-spark svg { display: block; width: 100%; height: auto; }
.cfo-radar-spark .band-prior, .cfo-radar-spark .band-current { fill: #ffffff06; }
.cfo-radar-spark .baseline { stroke: #1c3e53; stroke-width: 1; shape-rendering: crispEdges; }
.cfo-radar-spark .line { fill: none; stroke: #5f93ab; stroke-width: 1.6; stroke-linejoin: round; stroke-linecap: round; }
.cfo-radar-spark .line-prior { fill: none; stroke: #e0703f; stroke-width: 2.4; stroke-linejoin: round; stroke-linecap: round; }
.cfo-radar-spark .line-current { fill: none; stroke: #7fc4e0; stroke-width: 2.6; stroke-linejoin: round; stroke-linecap: round; }
.is-up .cfo-radar-spark .line-current { stroke: #f08a8a; }
.is-down .cfo-radar-spark .line-current { stroke: #5fd4b4; }
.cfo-radar-spark .area { fill: #1f9bd124; }
.is-up .cfo-radar-spark .area { fill: #e6676724; }
.is-down .cfo-radar-spark .area { fill: #3fbf9f24; }
.cfo-radar-spark .dot { fill: #e6f5fa; stroke: #0b283b; stroke-width: 2; }
.is-up .cfo-radar-spark .dot { fill: #f6b8b0; }
.is-down .cfo-radar-spark .dot { fill: #9be6cf; }
.cfo-radar-spark figcaption { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; margin-top: 4px; color: #6f8fa0; font-size: 9.5px; font-variant-numeric: tabular-nums; }
.cfo-radar-compare { color: #9fb8c6; font-size: 10.5px; white-space: nowrap; }
.cfo-radar-compare i { color: #5f7f90; font-style: normal; }
.cfo-radar-compare em { color: #f0a07a; font-style: normal; }
.cfo-radar-compare b { color: #e6f5fa; font-weight: 800; }
.cfo-radar-card ul { display: grid; grid-template-columns: minmax(0, 1fr); min-width: 0; margin: 0; padding: 0; list-style: none; border-top: 1px solid #183849; }
.cfo-radar-card li { min-width: 0; }
.cfo-radar-card li button { display: flex; align-items: center; justify-content: space-between; gap: 7px; min-width: 0; width: 100%; padding: 6px 0; border: 0; border-bottom: 1px solid #183849; background: transparent; color: #a9c4d2; font: inherit; font-size: 10.5px; text-align: left; cursor: pointer; }
.cfo-radar-card li:last-child button { border-bottom: 0; }
.cfo-radar-card li button span { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cfo-radar-card li button b { flex: 0 0 auto; color: #e6f5fa; font-size: 10.5px; font-variant-numeric: tabular-nums; white-space: nowrap; }
.cfo-radar-card li button b.is-up { color: #f6b8b0; }
.cfo-radar-card li button b.is-down { color: #9be6cf; }
.cfo-radar-card li button:hover span { color: #e6f5fa; }
.cfo-radar-card li button b.is-flat { color: #7f9fb0; font-weight: 600; }
.cfo-radar-accounts li[hidden] { display: none; }
.cfo-radar-accounts.is-open { max-height: 330px; overflow-x: hidden; overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; scrollbar-color: #2c5a72 transparent; }
.cfo-radar-more { justify-self: stretch; padding: 7px 10px; border: 1px solid #214a60; border-radius: 8px; background: rgba(15, 50, 71, .45); color: #86def6; font: inherit; font-size: 10.5px; font-weight: 750; text-align: center; cursor: pointer; }
.cfo-radar-more:hover { border-color: #3c7892; background: #113a52; color: #fff; }
.cfo-store-year { margin-top: 30px; }
.cfo-store-year > .cfo-history-heading { margin-bottom: 16px; }
.cfo-radar-ask { justify-self: start; padding: 0; border: 0; background: transparent; color: #69d9f2; font-size: 10px; font-weight: 850; cursor: pointer; }

.cfo-matrix-section { margin-top: 26px; }
.cfo-matrix-section .viz-table-block { margin-top: 14px; }
.viz-matrix td, .viz-matrix th { padding: 7px 8px; }
.viz-matrix .viz-matrix-label { min-width: 170px; max-width: 250px; }
.viz-matrix th:first-child, .viz-matrix td.viz-matrix-label { position: sticky; left: 0; z-index: 1; background: var(--viz-surface); box-shadow: 1px 0 0 #1f4459; }
.viz-matrix tbody tr:hover td.viz-matrix-label { background: #0f3247; }
.viz-matrix .viz-matrix-label .cfo-link, .viz-matrix .viz-matrix-label > span { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--viz-text); font-weight: 650; text-align: left; }
.viz-matrix .viz-matrix-label small { display: block; margin-top: 2px; color: var(--viz-muted); font-size: 9.5px; white-space: nowrap; }
.viz-matrix td.is-up { color: #f6b8b0; background: #e6676714; font-weight: 700; }
.viz-matrix td.is-down { color: #9be6cf; background: #3fbf9f10; }
.viz-matrix .is-avg { border-left: 1px solid #1f4459; }
.viz-matrix th.is-avg { color: #9fc6d6; }
.viz-matrix td.viz-arrow-up { color: var(--viz-up); }
.viz-matrix td.viz-arrow-down { color: var(--viz-down); }
.viz-table-note { padding: 8px 14px 12px; color: var(--viz-muted); font-size: 10px; line-height: 1.5; border-top: 1px solid #183849; }

@media (max-width: 760px) {
  .cfo-store-compare-detail-head { display: grid; }
  .cfo-store-compare-period { justify-self: start; }
  .cfo-store-account-table.is-two { min-width: 0; font-size: 9.5px; }
  .cfo-store-account-table.is-two th, .cfo-store-account-table.is-two td { padding: 8px 5px; }
  .cfo-store-account-table.is-two th:first-child { width: 76px; }
  .cfo-store-account-table.is-two thead th { font-size: 8px; }
  .cfo-cost-detail-row { display: none; }
  .cfo-cost-mobile-row { display: table-row; }
  .cfo-cost-mobile-row td { padding: 0 !important; background: #0b2c3d; white-space: normal; text-align: left; }
  .cfo-cost-mobile-list { display: grid; gap: 8px; padding: 10px; }
  .cfo-cost-mobile-entry { padding: 11px; border: 1px solid #315e72; border-radius: 9px; background: #10384b; }
  .cfo-cost-mobile-entry > strong { display: block; margin-bottom: 9px; color: #e5f5f9; font-size: 10.5px; line-height: 1.35; }
  .cfo-cost-mobile-values { display: grid; grid-template-columns: repeat(auto-fit, minmax(95px, 1fr)); gap: 7px; }
  .cfo-cost-mobile-value { display: grid; gap: 3px; min-width: 0; padding: 8px; border-radius: 7px; background: #0a2b3b; }
  .cfo-cost-mobile-value small { overflow: hidden; color: #8fb8c7; font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }
  .cfo-cost-mobile-value .cfo-compare-expense-value { justify-self: start; color: #f0fbff; font-size: 11px; }
  .cfo-store-compare-head { align-items: flex-start; }
  .cfo-store-compare-clear { max-width: 108px; white-space: normal; }
  .cfo-radar-grid { grid-template-columns: 1fr; }
  .cfo-radar-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cfo-radar-tools .cfo-segmented { width: 100%; }
  .cfo-radar-tools input[type="search"], .cfo-radar-tools select { flex: 1 1 100%; min-width: 0; }
  .viz-matrix .viz-matrix-label { min-width: 140px; max-width: 170px; }
}

/* ========================================================================
   Revisão 25/09/2026 (rodada 3) · chat no estilo dos apps de IA (celular e
   computador), voz (ditado e conversa ao vivo), ano inteiro com projeção,
   itens da nota, efeito de lojas e fornecedores dentro da conta/loja.
   ======================================================================== */
:root { --cfo-header-h: 60px; --cfo-chat-w: 820px; }
.cfo-visually-hidden { position: absolute !important; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }

/* cabeçalho fixo; menu e novo chat aparecem no celular */
.cfo-header { position: sticky; top: 0; z-index: 30; }
.cfo-header-inner { height: var(--cfo-header-h); gap: 10px; justify-content: flex-start; }
.cfo-header-actions { margin-left: auto; }
.cfo-icon-btn { display: none; place-items: center; flex: none; width: 42px; height: 42px; padding: 0; border: 0; border-radius: 12px; background: transparent; color: #d3e9f4; }
.cfo-icon-btn svg { width: 22px; height: 22px; }
.cfo-icon-btn:hover, .cfo-icon-btn:focus-visible { background: #12364b; color: #fff; outline: none; }
.cfo-sidebar-user { display: none; align-items: center; gap: 10px; margin-top: auto; padding: 14px 8px 2px; border-top: 1px solid #497b922f; }
.cfo-avatar { display: grid; place-items: center; flex: none; width: 32px; height: 32px; border-radius: 50%; background: #1b4d68; color: #e8f8ff; font-size: 13px; font-weight: 800; }
.cfo-sidebar-name { flex: 1; min-width: 0; overflow: hidden; color: #cfe3ee; font-size: 12px; font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }
.cfo-exit-side { padding: 8px 10px; border: 1px solid #3b6f8a; border-radius: 9px; color: #bcd9e7; }
.cfo-sidebar-backdrop[hidden] { display: none; }

/* visão do chat: coluna central, rolagem da página e caixa de pergunta presa no rodapé */
body[data-view="chat"] .cfo-footer { display: none; }
body[data-view="chat"] .cfo-main { padding-top: 0; padding-bottom: 0; }
.cfo-view[data-view-panel="chat"].is-active { display: flex; flex-direction: column; min-height: calc(100vh - var(--cfo-header-h)); min-height: calc(100dvh - var(--cfo-header-h)); }
.cfo-assistant { flex: 1; display: flex; flex-direction: column; width: 100%; max-width: var(--cfo-chat-w); margin: 0 auto; padding: 0; border: 0; border-radius: 0; background: none; box-shadow: none; overflow: visible; }
.cfo-assistant:before { display: none; }

.cfo-chat-empty { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 36px 2px 22px; text-align: center; }
.cfo-chat-empty[hidden] { display: none; }
.cfo-chat-mark { position: relative; display: block; overflow: hidden; flex: none; width: 66px; height: 66px; border-radius: 20px; background: radial-gradient(circle at 30% 25%, #1c6d93, #0c3149 72%); box-shadow: 0 0 0 1px #3fb7dc55, 0 14px 42px #00b4ff26; }
.cfo-chat-mark img { position: absolute; left: 6%; top: 10%; width: 88%; height: auto; }  /* o robô do CFO (28/09) */
.cfo-chat-empty h1 { margin: 18px 0 8px; font-size: clamp(24px, 3.2vw, 32px); font-weight: 760; letter-spacing: -.035em; }
.cfo-chat-empty p { max-width: 520px; margin: 0 0 26px; color: #8fb0c2; font-size: 13px; line-height: 1.6; }
.cfo-prompts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); flex-wrap: nowrap; gap: 10px; width: 100%; margin: 0; padding: 0; }
.cfo-suggestion { display: grid; align-content: start; gap: 3px; width: 100%; min-height: 66px; padding: 12px 14px; border: 1px solid #2a5770; border-radius: 15px; background: #0b2536; color: #e6f5fb; font-size: 12.5px; line-height: 1.35; text-align: left; transition: background .15s, border-color .15s; }
.cfo-suggestion strong { font-size: 12.5px; font-weight: 720; }
.cfo-suggestion span { color: #86a8ba; font-size: 11.5px; }
.cfo-suggestion:hover { border-color: #4fc6ea; background: #10334a; color: #fff; }

.cfo-chat-messages { display: flex; flex-direction: column; gap: 26px; max-height: none; margin: 0; padding: 26px 0 14px; overflow: visible; }
.cfo-chat-messages:empty { display: none; }
.cfo-message, .cfo-message-assistant, .cfo-message-user { max-width: 100%; padding: 0; border: 0; border-radius: 0; background: none; box-shadow: none; }
.cfo-message-user { align-self: flex-end; max-width: min(78%, 640px); padding: 11px 16px; border: 1px solid #25506a; border-radius: 20px 20px 6px 20px; background: #16384e; }
.cfo-message-user .cfo-message-body { color: #eef8fc; font-size: 14px; line-height: 1.55; white-space: pre-wrap; }
.cfo-message-user.is-voice .cfo-message-body::before { content: "VOZ"; display: inline-block; margin-right: 8px; padding: 1px 6px; border: 1px solid #4a8fae; border-radius: 99px; color: #9fe3f6; font-size: 9px; font-weight: 850; letter-spacing: .1em; vertical-align: 2px; }
.cfo-message-assistant { align-self: stretch; width: 100%; }
.cfo-message-assistant .cfo-message-body { color: #dcecf4; font-size: 14.5px; line-height: 1.72; }
.cfo-message.is-failed .cfo-message-body { color: #f1c9a6; }
.cfo-answer-h { font-size: 15px; }
.cfo-message-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 2px; margin-top: 8px; }
.cfo-action { display: grid; place-items: center; width: 34px; height: 34px; padding: 0; border: 0; border-radius: 10px; background: transparent; color: #7ea3b6; }
.cfo-action svg { width: 18px; height: 18px; }
.cfo-action:hover, .cfo-action:focus-visible { background: #12364b; color: #fff; outline: none; }
.cfo-action.is-on { color: #5fd8f6; background: #0f3348; }
.cfo-message-actions .cfo-message-sources { margin: 0 0 0 8px; color: #5f8699; font-size: 10.5px; }
.cfo-followups { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
.cfo-followups-label { flex-basis: 100%; color: #6f98ab; font-size: 10px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.cfo-followup { padding: 9px 13px; border: 1px solid #2d5b74; border-radius: 999px; background: #0b2536; color: #d2e9f3; font-size: 12.5px; line-height: 1.35; text-align: left; }
.cfo-followup:hover { border-color: #5bd0f0; background: #11354b; color: #fff; }
.cfo-thinking { display: flex; align-items: center; gap: 10px; margin: 0 0 16px; padding: 0; border: 0; background: none; color: #8fc9dc; font-size: 13px; }
.cfo-thinking[hidden] { display: none; }
.cfo-thinking-pulse { margin-right: 0; }

.cfo-composer { position: sticky; bottom: 0; z-index: 20; display: grid; gap: 6px; margin: 0; padding: 14px 0 12px; padding-bottom: max(12px, env(safe-area-inset-bottom)); background: linear-gradient(180deg, rgba(6, 23, 37, 0) 0, #061725 30%); }
.cfo-composer-box { display: flex; align-items: flex-end; gap: 8px; padding: 8px 8px 8px 18px; border: 1px solid #2f5f7a; border-radius: 28px; background: #0e2a3e; box-shadow: 0 10px 34px rgba(0, 0, 0, .38); transition: border-color .15s, box-shadow .15s; }
.cfo-composer-box:focus-within { border-color: #58c9ec; box-shadow: 0 0 0 3px #00b4ff1f, 0 10px 34px rgba(0, 0, 0, .38); }
.cfo-composer textarea { flex: 1; min-width: 0; min-height: 24px; margin: 0; padding: 9px 0; overflow-y: hidden; border: 0; border-radius: 0; outline: none; resize: none; background: transparent; box-shadow: none; color: #eef8fc; font-size: 15px; line-height: 1.5; }
.cfo-composer textarea:focus { border: 0; box-shadow: none; }
.cfo-composer textarea::placeholder { color: #7597aa; }
.cfo-composer-actions { display: flex; flex: none; align-items: center; gap: 6px; }
.cfo-round-btn { display: grid; place-items: center; flex: none; width: 40px; height: 40px; padding: 0; border: 0; border-radius: 50%; background: #1a3f56; color: #d9eef7; transition: transform .12s, background .15s, opacity .15s; }
.cfo-round-btn svg { width: 20px; height: 20px; }
.cfo-round-btn:hover { background: #23506b; color: #fff; }
.cfo-round-btn:active { transform: scale(.94); }
.cfo-round-btn:focus-visible { outline: 2px solid #5bd3f2; outline-offset: 2px; }
.cfo-round-btn.is-primary { background: #e9f7fd; color: #062236; }
.cfo-round-btn.is-primary:hover { background: #fff; color: #031a2b; }
.cfo-round-btn.is-ghost { background: transparent; color: #a6c6d6; }
.cfo-round-btn.is-ghost:hover { background: #17405a; color: #fff; }
.cfo-round-btn.is-danger { background: #4d1f27; color: #ffd9d9; }
.cfo-round-btn.is-danger:hover { background: #6a2833; color: #fff; }
.cfo-round-btn.is-large { width: 60px; height: 60px; }
.cfo-round-btn.is-large svg { width: 24px; height: 24px; }
.cfo-round-btn.is-muted { opacity: .45; }
#send-button .cfo-icon-stop { display: none; }
.cfo-composer.is-busy #send-button .cfo-icon-send { display: none; }
.cfo-composer.is-busy #send-button .cfo-icon-stop { display: block; }
.cfo-composer:not(.has-text):not(.is-busy) #send-button { display: none; }
.cfo-composer.has-text #voice-mode, .cfo-composer.is-busy #voice-mode, .cfo-composer.is-busy #mic-button { display: none; }
.cfo-composer-note { margin: 0; color: #56798c; font-size: 10.5px; text-align: center; }

/* ditado: a onda substitui a caixa enquanto grava */
.cfo-dictation { display: flex; align-items: center; gap: 10px; padding: 6px; border: 1px solid #3b7a98; border-radius: 28px; background: #0e2a3e; box-shadow: 0 10px 34px rgba(0, 0, 0, .38); }
.cfo-dictation[hidden] { display: none; }
.cfo-composer.is-dictating .cfo-composer-box { display: none; }
.cfo-wave { flex: 1; display: flex; align-items: center; justify-content: center; gap: 3px; height: 34px; overflow: hidden; }
.cfo-wave i { display: block; width: 3px; height: 100%; border-radius: 2px; background: #79dbf5; transform: scaleY(.12); transition: transform .08s linear; }
.cfo-composer.is-simulated .cfo-wave i, .cfo-composer.is-transcribing .cfo-wave i { animation: cfo-wave 1.1s ease-in-out infinite; }
.cfo-composer.is-simulated .cfo-wave i:nth-child(2n), .cfo-composer.is-transcribing .cfo-wave i:nth-child(2n) { animation-delay: .18s; }
.cfo-composer.is-simulated .cfo-wave i:nth-child(3n), .cfo-composer.is-transcribing .cfo-wave i:nth-child(3n) { animation-delay: .36s; }
.cfo-composer.is-transcribing .cfo-wave i { opacity: .45; }
.cfo-composer.is-transcribing #dictation-done { opacity: .45; pointer-events: none; }
@keyframes cfo-wave { 0%, 100% { transform: scaleY(.15); } 50% { transform: scaleY(.75); } }
.cfo-dictation-status { max-width: 50%; overflow: hidden; color: #a9d7e7; font-size: 12px; font-variant-numeric: tabular-nums; text-overflow: ellipsis; white-space: nowrap; }

/* conversa ao vivo: barra no lugar da caixa de pergunta; o chat continua visível com texto e gráficos */
.cfo-livebar { --level: 0; display: flex; align-items: center; gap: 12px; min-height: 60px; padding: 8px 8px 8px 10px; border: 1px solid #3b7a98; border-radius: 30px; background: #0e2a3e; box-shadow: 0 0 0 3px #00b4ff14, 0 10px 34px rgba(0, 0, 0, .38); }
.cfo-livebar[hidden] { display: none; }
.cfo-composer.is-live .cfo-composer-box, .cfo-composer.is-live .cfo-dictation, .cfo-composer.is-live .cfo-composer-note { display: none; }
.cfo-livebar-orb { position: relative; flex: none; width: 46px; height: 46px; padding: 0; border: 0; border-radius: 50%; background: transparent; cursor: pointer; }
.cfo-livebar-orb:focus-visible { outline: 2px solid #5bd3f2; outline-offset: 4px; }
.cfo-livebar-core { position: absolute; inset: 0; border-radius: 50%; background: radial-gradient(circle at 35% 30%, #c4f5ff 0, #39c7ef 30%, #0a79b8 68%, #064d7d 100%); box-shadow: 0 0 22px #00b4ff66, inset 0 -8px 16px #03324f99; transform: scale(calc(.82 + var(--level) * .36)); transition: transform .09s linear, filter .3s; }
.cfo-livebar[data-phase="listening"] .cfo-livebar-orb::after { content: ""; position: absolute; inset: -6px; border: 2px solid #4fd2f577; border-radius: 50%; animation: cfo-ring 1.8s ease-out infinite; }
.cfo-livebar[data-phase="transcribing"] .cfo-livebar-core, .cfo-livebar[data-phase="thinking"] .cfo-livebar-core { animation: cfo-breathe 1.4s ease-in-out infinite; }
.cfo-livebar[data-phase="speaking"] .cfo-livebar-core { animation: cfo-speak .9s ease-in-out infinite; }
.cfo-livebar[data-phase="idle"] .cfo-livebar-core { filter: saturate(.5) brightness(.78); }
@keyframes cfo-ring { from { transform: scale(.92); opacity: .9; } to { transform: scale(1.28); opacity: 0; } }
@keyframes cfo-breathe { 0%, 100% { transform: scale(.84); } 50% { transform: scale(.95); } }
@keyframes cfo-speak { 0%, 100% { transform: scale(.9); } 30% { transform: scale(1); } 60% { transform: scale(.93); } }
.cfo-livebar-text { flex: 1; min-width: 0; display: grid; gap: 2px; }
.cfo-livebar-status { margin: 0; color: #eaf6fb; font-size: 13.5px; font-weight: 720; }
.cfo-livebar-transcript { display: -webkit-box; margin: 0; overflow: hidden; color: #a9c9d8; font-size: 12.5px; line-height: 1.4; -webkit-box-orient: vertical; -webkit-line-clamp: 2; line-clamp: 2; }
.cfo-livebar-transcript:empty, .cfo-livebar-engine:empty { display: none; }
.cfo-livebar-engine { margin: 0; overflow: hidden; color: #5e8497; font-size: 10.5px; text-overflow: ellipsis; white-space: nowrap; }

.cfo-livebar-voice { flex: none; max-width: 190px; height: 34px; padding: 0 28px 0 10px; border: 1px solid #2f5f7a; border-radius: 999px; background: #0b2536; color: #cfe6f1; font-size: 11.5px; }
.cfo-livebar-voice[hidden], .cfo-livebar-toggle[hidden] { display: none; }
.cfo-livebar-voice:focus-visible { outline: 2px solid #5bd3f2; outline-offset: 2px; }
.cfo-livebar-toggle { display: grid; flex: none; place-items: center; width: 34px; height: 34px; padding: 0; border: 1px solid #2f5f7a; border-radius: 50%; background: #0b2536; color: #7fdcf3; }
.cfo-livebar-toggle svg { width: 17px; height: 17px; }
.cfo-livebar-toggle .cfo-livebar-toggle-off { display: none; }
.cfo-livebar-toggle[aria-pressed="false"] { color: #7c93a0; }
.cfo-livebar-toggle[aria-pressed="false"] .cfo-livebar-toggle-off { display: inline; }
.cfo-livebar-toggle:focus-visible { outline: 2px solid #5bd3f2; outline-offset: 2px; }

/* resposta chegando: a linha em escrita ganha um cursor */
.cfo-answer-live { color: #cfe6f1; }
.cfo-answer-live::after { content: ""; display: inline-block; width: 7px; height: 1.05em; margin-left: 3px; border-radius: 1px; background: #6be5ee; vertical-align: -2px; animation: cfo-caret 1s step-end infinite; }
@keyframes cfo-caret { 50% { opacity: 0; } }
@media (max-width: 520px) { .cfo-livebar { gap: 10px; } .cfo-livebar-engine { display: none; } .cfo-livebar-voice { max-width: 92px; padding: 0 20px 0 8px; font-size: 11px; } .cfo-livebar-status { font-size: 13px; } }
.cfo-toast { position: fixed; left: 50%; bottom: calc(100px + env(safe-area-inset-bottom)); z-index: 95; width: max-content; max-width: min(92vw, 520px); padding: 11px 16px; border: 1px solid #3f7390; border-radius: 12px; background: rgba(8, 30, 46, .97); box-shadow: 0 16px 40px rgba(0, 0, 0, .5); color: #e7f5fb; font-size: 12.5px; line-height: 1.45; transform: translateX(-50%); }
.cfo-toast[hidden] { display: none; }

/* gráfico de ano inteiro e tabelas novas */
.viz-proj { fill: rgba(31, 155, 209, .16); stroke: var(--viz-current); stroke-width: 1.4; stroke-dasharray: 4 3; }
.viz-key-proj { background: rgba(31, 155, 209, .18); border: 1px dashed var(--viz-current); }
.viz-inbar { fill: #eaf7fd; font-size: 10px; font-weight: 750; }
.cfo-tag.is-mini { display: inline-block; margin-left: 6px; padding: 1px 6px; font-size: 9px; font-style: normal; vertical-align: 1px; }
.cfo-tag.is-new { border-color: #3fbf9f; color: #9be6cf; }
.viz-history-item { display: block; margin-top: 3px; color: #b8d3df; font-size: 10.5px; }
.viz-note-toggle { white-space: nowrap; }
.viz-entries > tbody > tr.is-expandable { cursor: pointer; }
.viz-note-row td { background: #09222f; }
.viz-table tbody tr.viz-note-row:hover td { background: #09222f; }
.viz-note { display: grid; gap: 6px; padding: 4px 2px 6px; }
.viz-invoice-detail { display: grid; gap: 12px; }
.viz-allocations { display: grid; gap: 7px; padding-top: 10px; border-top: 1px solid #1f4459; }
.viz-allocation-table { width: 100%; border-collapse: collapse; font-size: 11px; }
.viz-allocation-table th, .viz-allocation-table td { padding: 7px 9px; border-bottom: 1px solid #183849; text-align: left; vertical-align: top; }
.viz-allocation-table th { color: var(--viz-muted); font-size: 9px; text-transform: uppercase; }
.viz-allocation-table .is-num { text-align: right; white-space: nowrap; }
@media (max-width: 760px) {
  .viz-allocation-table, .viz-allocation-table tbody { display: block; width: 100%; }
  .viz-allocation-table thead { display: none; }
  .viz-allocation-table tr { display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "unit amount" "date date" "account account" "history history"; gap: 3px 10px; padding: 9px 0; border-bottom: 1px solid #183849; }
  .viz-allocation-table td { display: block; min-width: 0; padding: 0; border: 0; overflow-wrap: anywhere; }
  .viz-allocation-table td:nth-child(1) { grid-area: date; color: var(--viz-muted); font-size: 10px; }
  .viz-allocation-table td:nth-child(2) { grid-area: unit; font-weight: 650; }
  .viz-allocation-table td:nth-child(3) { grid-area: account; }
  .viz-allocation-table td:nth-child(4) { grid-area: history; color: var(--viz-muted); }
  .viz-allocation-table td:nth-child(5) { grid-area: amount; white-space: nowrap; }
}
.viz-note-head { color: var(--viz-text); font-size: 11.5px; }
.viz-note-obs { margin: 0; color: #9cbccb; font-size: 11px; }
.viz-note-items { display: grid; gap: 4px; margin: 0; padding: 0; list-style: none; }
.viz-note-items li { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: baseline; gap: 12px; padding: 5px 0; border-top: 1px solid #16394b; }
.viz-note-item-name { min-width: 0; color: #d9ecf4; }
.viz-note-item-qty { color: #8fb0c0; font-variant-numeric: tabular-nums; white-space: nowrap; }
.viz-note-items b { color: #fff; font-variant-numeric: tabular-nums; white-space: nowrap; }
.viz-items .viz-item-name strong { display: block; color: var(--viz-text); font-weight: 700; }
.viz-item-tags { display: block; margin-top: 3px; }
.viz-item-tags .cfo-tag.is-mini:first-child { margin-left: 0; }
.viz-items td small { display: block; margin-top: 2px; font-size: 10px; }
.viz-effects span { display: block; }

/* painel: a conta já existia, efeito de lojas e fornecedores dentro da conta/loja */
.cfo-callout.is-info { border-color: #2f6e8d; background: #0d2f43; color: #bfe3f1; }
.cfo-effect { margin: 0 0 14px; padding: 12px 14px; border: 1px solid #28546b; border-radius: 12px; background: #0b283b; }
.cfo-effect-title { margin-bottom: 10px; color: var(--viz-text); font-size: 12.5px; font-weight: 800; }
.cfo-effect-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 8px; }
.cfo-effect-cell { display: grid; gap: 3px; padding: 10px 11px; border: 1px solid #1f4459; border-radius: 10px; background: #0d2c40; }
.cfo-effect-cell small { color: #79b3c8; font-size: 9.5px; font-weight: 850; letter-spacing: .06em; text-transform: uppercase; }
.cfo-effect-cell strong { color: #f1fbff; font-size: 16px; font-variant-numeric: tabular-nums; }
.cfo-effect-cell strong.is-up { color: #f6b8b0; }
.cfo-effect-cell strong.is-down { color: #9be6cf; }
.cfo-effect-cell span { color: #85a9ba; font-size: 10.5px; line-height: 1.4; }
.cfo-kpi-row.is-compact { grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); }
.cfo-kpi-row.is-compact .cfo-kpi strong { font-size: 16px; }
.cfo-drawer-ask.is-secondary { background: #123f57; color: #e2f6fd; border: 1px solid #3b89ab; }
.cfo-suppliers { margin: 8px 0 16px; border: 1px solid #28546b; border-radius: 12px; background: #0b283b; overflow: hidden; }
.cfo-suppliers-head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 4px 12px; padding: 12px 14px; border-bottom: 1px solid #1f4459; }
.cfo-suppliers-head strong { color: var(--viz-text); font-size: 12.5px; }
.cfo-suppliers-head span { color: var(--viz-muted); font-size: 10.5px; }
.cfo-supplier + .cfo-supplier { border-top: 1px solid #183849; }
.cfo-supplier-row { display: grid; grid-template-columns: minmax(0, 1fr) auto 18px; align-items: center; gap: 12px; width: 100%; padding: 11px 14px; border: 0; background: transparent; color: inherit; font: inherit; text-align: left; cursor: pointer; }
.cfo-supplier-row:hover, .cfo-supplier-row[aria-expanded="true"] { background: #0f3247; }
.cfo-supplier-values { display: grid; justify-items: end; gap: 2px; }
.cfo-supplier-values > b { color: #e6f5fa; font-size: 12px; font-variant-numeric: tabular-nums; }
.cfo-chevron { color: #6fc9e4; font-size: 12px; text-align: center; }
.cfo-supplier-panel { padding: 12px 14px 4px; border-top: 1px solid #1f4459; background: #091f2e; }
.cfo-supplier-panel[hidden] { display: none; }
.cfo-suppliers-more { width: 100%; padding: 10px; border: 0; border-top: 1px solid #183849; background: transparent; color: #86def6; font-size: 11px; font-weight: 750; cursor: pointer; }
.cfo-suppliers-more:hover { background: #0f3247; color: #fff; }

/* computador: menu lateral fixo, usuário no cabeçalho */
@media (min-width: 901px) {
  .cfo-sidebar { overflow-y: auto; }
}

/* celular e tablet: cabeçalho de app, menu em gaveta e chat de tela cheia */
@media (max-width: 900px) {
  :root { --cfo-header-h: 56px; }
  .cfo-frame { display: block; overflow: visible; }
  .cfo-sidebar { position: fixed; top: 0; left: 0; bottom: 0; z-index: 70; display: flex; flex-direction: column; gap: 16px; width: min(84vw, 320px); height: 100vh; height: 100dvh; padding: 18px 12px 14px; padding-top: max(18px, env(safe-area-inset-top)); padding-bottom: max(14px, env(safe-area-inset-bottom)); overflow-y: auto; transform: translateX(-104%); transition: transform .22s ease; box-shadow: none; }
  body.sidebar-open { overflow: hidden; }
  body.sidebar-open .cfo-sidebar { transform: none; box-shadow: 24px 0 60px rgba(0, 0, 0, .55); }
  .cfo-sidebar-backdrop { position: fixed; inset: 0; z-index: 65; background: rgba(2, 10, 18, .62); }
  .cfo-sidebar-brand { display: grid; }
  .cfo-side-nav { display: grid; gap: 2px; overflow: visible; }
  .cfo-nav-item { width: 100%; padding: 12px 11px; font-size: 13px; white-space: normal; }
  .cfo-sidebar-chats { display: flex; min-height: 0; }
  .cfo-chat-link { font-size: 12px; }
  .cfo-sidebar-user { display: flex; }
  .cfo-icon-btn { display: grid; }
  .cfo-header { background: rgba(6, 23, 37, .92); }
  .cfo-header-inner { height: calc(var(--cfo-header-h) + env(safe-area-inset-top, 0px)); padding: env(safe-area-inset-top, 0px) 6px 0; }
  .cfo-header-actions { display: none; }
  .cfo-identity { flex: 1; justify-content: center; min-width: 0; }
  .cfo-product { display: block; overflow: hidden; font-size: 15px; text-align: center; text-overflow: ellipsis; white-space: nowrap; }
  .cfo-main { padding: 0 14px 40px; }
  body[data-view="chat"] .cfo-main { padding: 0 12px; }
  .cfo-view > .cfo-section-intro:first-child { padding-top: 18px; }
  .cfo-prompts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cfo-message-user { max-width: 86%; }
  .cfo-message-assistant .cfo-message-body { font-size: 15px; }
  .cfo-drawer-panel { width: 100%; border-left: 0; }
  .cfo-drawer-head { padding-top: max(16px, env(safe-area-inset-top)); }
  .cfo-composer textarea { font-size: 16px; }   /* 16px evita o zoom automático do iPhone */
}
@media (max-width: 520px) {
  .cfo-chat-empty { justify-content: flex-start; padding-top: 12px; padding-bottom: 14px; }
  .cfo-chat-mark { margin-top: auto; }
  .cfo-chat-empty p { margin-bottom: 0; }
  .cfo-chat-empty .cfo-prompts { margin-top: auto; padding-top: 22px; }
  .cfo-prompts { display: flex; flex-wrap: nowrap; gap: 10px; width: calc(100% + 24px); margin: 0 -12px; padding: 0 12px 2px; overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding: 0 12px; scrollbar-width: none; }
  .cfo-prompts::-webkit-scrollbar { display: none; }
  .cfo-suggestion { flex: 0 0 70%; scroll-snap-align: start; }
  .cfo-composer-note { font-size: 10px; }
  .cfo-effect-grid { grid-template-columns: 1fr 1fr; }
  .viz-items thead { display: none; }
  .viz-items, .viz-items tbody, .viz-items tr, .viz-items td { display: block; width: 100%; }
  .viz-items tr { display: grid; grid-template-columns: 1fr 1fr; gap: 6px 12px; padding: 10px 12px; border-bottom: 1px solid #183849; }
  .viz-items td { padding: 0; border: 0; text-align: left; white-space: normal; }
  .viz-items td.viz-item-name { grid-column: 1 / -1; }
  .viz-items td[data-label]::before { content: attr(data-label); display: block; color: var(--viz-muted); font-size: 9px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
  .viz-table.viz-items .is-num { text-align: left; }
  .viz-note-items li { grid-template-columns: 1fr auto; }
  .viz-note-item-qty { grid-column: 1 / -1; order: 3; }
  /* notas em cartões: terceiro e valor em cima, data/NF, loja e histórico abaixo */
  .viz-entries thead { display: none; }
  .viz-entries, .viz-entries > tbody, .viz-entries > tbody > tr, .viz-entries > tbody > tr > td { display: block; width: 100%; }
  .viz-entries > tbody > tr:not(.viz-note-row) { display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "party value" "date nf" "unit unit" "acct acct" "hist hist"; gap: 3px 12px; padding: 11px 12px; border-bottom: 1px solid #183849; }
  .viz-entries > tbody > tr > td { padding: 0; border: 0; }
  .viz-entries .e-party { grid-area: party; font-size: 12.5px; }
  .viz-entries .e-value { grid-area: value; font-size: 13px; }
  .viz-entries .e-date { grid-area: date; color: var(--viz-muted); font-size: 10.5px; }
  .viz-entries .e-nf { grid-area: nf; text-align: right; }
  .viz-entries .e-unit { grid-area: unit; color: var(--viz-muted); font-size: 10.5px; }
  .viz-entries .e-account { grid-area: acct; color: var(--viz-muted); font-size: 10.5px; }
  .viz-entries .e-hist { grid-area: hist; min-width: 0; margin-top: 2px; font-size: 11px; }
  .viz-entries > tbody > tr.viz-note-row > td { padding: 8px 12px 12px; }
  /* pagamentos em duplicidade em cartões */
  .viz-paid thead { display: none; }
  .viz-paid, .viz-paid tbody, .viz-paid tr, .viz-paid td { display: block; width: 100%; }
  .viz-paid tr { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px 12px; padding: 11px 12px; border-bottom: 1px solid #183849; }
  .viz-paid td { padding: 0; border: 0; white-space: normal; text-align: left; }
  .viz-paid td[data-label]::before { content: attr(data-label); display: block; color: var(--viz-muted); font-size: 9px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
  .viz-paid .p-unit, .viz-paid .p-party, .viz-paid .p-note { grid-column: 1 / -1; }
  .viz-table.viz-paid .is-num { text-align: left; }
  .viz-table.viz-entries tbody tr:hover td { background: transparent; }
}
@media (prefers-reduced-motion: reduce) {
  .cfo-livebar-core, .cfo-livebar-orb::after, .cfo-answer-live::after, .cfo-wave i, .cfo-sidebar { animation: none !important; transition: none !important; }
}


/* ========================================================================
   Revisão 25/09/2026 · tabela em árvore de todas as contas 33 e 320104:
   conta → fornecedor (razão) → serviços e itens das notas (preço × quantidade).
   ======================================================================== */
.cfo-tree-tools { display: grid; gap: 12px; margin: 16px 0 10px; padding: 14px; border: 1px solid #245069; border-radius: 14px; background: #092537; }
.cfo-tree-tools-primary { display: grid; grid-template-columns: minmax(0, 1fr) 190px; align-items: end; gap: 14px; min-width: 0; }
.cfo-tree-tools-primary .cfo-segmented { min-width: 0; width: max-content; }
.cfo-tree-tools-scope { display: grid; grid-template-columns: minmax(170px, .9fr) minmax(190px, 1fr) minmax(190px, 1.3fr) auto; align-items: end; gap: 10px; min-width: 0; }
.cfo-tree-control { display: grid; gap: 5px; min-width: 0; }
.cfo-tree-control > span { color: #8fbbce; font-size: 9px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.cfo-tree-tools .cfo-tree-control select, .cfo-tree-tools .cfo-tree-control input[type="search"] { box-sizing: border-box; width: 100%; min-width: 0; height: 42px; margin: 0; }
.cfo-tree-ask-all { height: 42px; padding: 10px 14px; border: 1px solid #2f6f8c; border-radius: 9px; background: #0f3a52; color: #9fe8fb; font: inherit; font-size: 11.5px; font-weight: 800; white-space: nowrap; cursor: pointer; }
.cfo-tree-ask-all:hover { background: #154a66; color: #fff; }
.cfo-tree-summary { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 16px; margin: 0 0 10px; color: #8aa0ad; font-size: 11.5px; font-variant-numeric: tabular-nums; }
.cfo-tree-summary .is-up { color: #f6b8b0; }
.cfo-tree-summary .is-down { color: #9be6cf; }
.cfo-tree-summary .is-warning, .cfo-tree-summary.is-warning { color: #f0c987; }
.cfo-tree-summary .cfo-tree-total { margin-left: auto; color: #cfe2ec; font-weight: 700; }
.cfo-tree { overflow: hidden; border: 1px solid #28546b; border-radius: 14px; background: #0b283b; }
.cfo-tree-head, .cfo-tree-row { display: grid; grid-template-columns: 18px minmax(0, 1fr) 118px 118px 138px 84px; align-items: center; gap: 12px; }
.cfo-tree-head { padding: 10px 16px; border-bottom: 1px solid #1f4459; background: #0a2334; color: #6f9fb4; font-size: 9px; font-weight: 850; letter-spacing: .12em; text-transform: uppercase; }
.cfo-tree-head .cfo-tree-num, .cfo-tree-bar-head { text-align: right; }
.cfo-tree-row { width: 100%; padding: 11px 16px; border: 0; border-bottom: 1px solid #16364a; background: transparent; color: #cfe2ec; font: inherit; text-align: left; }
button.cfo-tree-row { cursor: pointer; }
button.cfo-tree-row:hover { background: #0f3247; }
button.cfo-tree-row:focus-visible { outline: 2px solid #5bcce9; outline-offset: -2px; }
.cfo-tree-row[aria-expanded="true"] { background: #0f3348; }
.cfo-tree-caret { color: #69d9f2; font-size: 11px; text-align: center; }
.is-leaf .cfo-tree-caret { color: #4f7486; }
.cfo-tree-label { display: grid; gap: 3px; min-width: 0; }
.cfo-tree-label strong { overflow: hidden; color: #e6f5fa; font-size: 13px; font-weight: 750; text-overflow: ellipsis; white-space: nowrap; }
.cfo-tree-label small { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; color: #7fa3b5; font-size: 10px; }
.cfo-tree-chip { display: inline-flex; padding: 1px 7px; border: 1px solid #2f5d74; border-radius: 99px; color: #9fc6d6; font-size: 9px; font-weight: 750; white-space: nowrap; }
.cfo-tree-chip.is-natural { border-color: #4b5a64; background: #17252e; color: #a5b3bb; }
.cfo-tree-chip.is-new { border-color: #3e7fbf; background: #10304f; color: #a8d4ff; }
.cfo-tree-chip.is-gone { border-color: #4b5a64; color: #93a4ad; }
.cfo-tree-num { color: #cfe2ec; font-size: 12px; text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.cfo-tree-num.is-prior { color: #8fb0c0; }
.cfo-tree-delta { display: grid; justify-items: end; gap: 1px; white-space: nowrap; font-variant-numeric: tabular-nums; }
.cfo-tree-delta b { font-size: 12.5px; font-weight: 800; }
.cfo-tree-delta small { color: #8aa0ad; font-size: 10px; }
.cfo-tree-delta.is-up b { color: #f6b8b0; }
.cfo-tree-delta.is-down b { color: #9be6cf; }
.cfo-tree-delta.is-flat b { color: #a9c4d2; }
.cfo-tree-bar { display: block; }
.cfo-tree-meter { display: block; width: 100%; height: 6px; }
.cfo-tree-meter .track { fill: #133247; }
.cfo-tree-meter .fill { fill: #5f7f90; }
.cfo-tree-meter.is-up .fill { fill: #e66767; }
.cfo-tree-meter.is-down .fill { fill: #3fbf9f; }
.cfo-tree-node.is-natural > .cfo-tree-row .cfo-tree-label strong { color: #b7c8d1; }
.cfo-tree-node.is-natural > .cfo-tree-row .cfo-tree-meter .fill { fill: #5f7f90; }
.cfo-tree-children { border-bottom: 1px solid #16364a; background: #092131; }
.cfo-tree-children[hidden] { display: none; }
.cfo-tree-node.is-supplier > .cfo-tree-row { padding-left: 38px; background: #092131; }
.cfo-tree-node.is-supplier > button.cfo-tree-row:hover { background: #0d2b3f; }
.cfo-tree-node.is-supplier > .cfo-tree-row[aria-expanded="true"] { background: #0d2c40; }
.cfo-tree-node.is-supplier .cfo-tree-label strong { font-size: 12.5px; font-weight: 700; }
.cfo-tree-node.is-supplier .cfo-tree-children { background: #071b29; }
.cfo-tree-node.is-month > .cfo-tree-row { padding-left: 62px; background: #071b29; }
.cfo-tree-node.is-month > button.cfo-tree-row:hover { background: #0d2b3f; }
.cfo-tree-node.is-month > .cfo-tree-children { background: #061825; }
.cfo-tree-node[hidden] { display: none; }
.cfo-tree-actions { display: flex; flex-wrap: wrap; gap: 8px 18px; padding: 10px 16px 10px 38px; }
.cfo-tree-items .cfo-tree-actions { padding: 10px 0 2px; }
.cfo-tree-link { padding: 0; border: 0; background: transparent; color: #69d9f2; font: inherit; font-size: 10.5px; font-weight: 850; cursor: pointer; }
.cfo-tree-link:hover { color: #b8f1ff; text-decoration: underline; }
.cfo-tree-link.is-ai { color: #9fe8fb; }
.cfo-tree-more { margin: 6px 16px 10px 38px; padding: 6px 12px; border: 1px solid #2f5d74; border-radius: 8px; background: transparent; color: #9fc6d6; font: inherit; font-size: 10.5px; font-weight: 750; cursor: pointer; }
.cfo-tree-note { margin: 0; padding: 8px 16px 12px 38px; color: #8aa0ad; font-size: 10.5px; line-height: 1.5; }
.cfo-loading.is-inline { padding: 12px 16px 12px 38px; font-size: 11px; }
.cfo-tree-children > .cfo-warning { margin: 10px 16px 10px 38px; }
.cfo-tree-items { padding: 10px 16px 12px 62px; }
.cfo-tree-processes { padding: 8px 16px 12px 86px; }
.cfo-tree-process-row { display: grid; grid-template-columns: minmax(0, 1fr) 118px 118px; align-items: center; gap: 12px; padding: 8px 0; border-bottom: 1px solid #13303f; }
.cfo-tree-process-row.is-head { color: #6f9fb4; font-size: 9px; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.cfo-tree-process-row.is-head .cfo-tree-num { color: #6f9fb4; font-size: 9px; }
.cfo-tree-invoice-row { width: 100%; border: 0; background: transparent; color: inherit; font: inherit; text-align: left; cursor: pointer; }
.cfo-tree-invoice-row:hover, .cfo-tree-invoice-row[aria-expanded="true"] { background: #0d2b3f; }
.cfo-tree-invoice-detail { padding: 10px 0 14px 18px; border-bottom: 1px solid #13303f; }
.cfo-tree-invoice-detail[hidden] { display: none; }
.cfo-tree-rateio > .viz-note-head { display: block; margin-bottom: 6px; }
.cfo-tree-process-name { display: grid; gap: 3px; min-width: 0; }
.cfo-tree-process-name strong { color: #dcecf3; font-size: 11.5px; }
.cfo-tree-process-name small { overflow-wrap: anywhere; color: #8aa0ad; font-size: 10px; line-height: 1.4; }
.cfo-tree-items .cfo-empty-state { padding: 4px 0; }
.cfo-tree-items-summary { display: flex; flex-wrap: wrap; gap: 4px 16px; margin-bottom: 8px; color: #8fb0c0; font-size: 10.5px; font-variant-numeric: tabular-nums; }
.cfo-tree-items-summary .is-up { color: #f6b8b0; }
.cfo-tree-items-summary .is-down { color: #9be6cf; }
.cfo-tree-item { display: grid; grid-template-columns: minmax(0, 1fr) 96px 150px 104px 104px 104px 150px; align-items: center; gap: 10px; padding: 7px 0; border-bottom: 1px solid #13303f; }
.cfo-tree-item:last-of-type { border-bottom: 0; }
.cfo-tree-item.is-head { padding-top: 0; color: #5f8fa4; font-size: 9px; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.cfo-tree-item.is-head .cfo-tree-num { color: #5f8fa4; font-size: 9px; }
.cfo-tree-item .cfo-tree-num { font-size: 11px; }
.cfo-tree-item-name { display: grid; gap: 2px; min-width: 0; }
.cfo-tree-item-name strong { overflow: hidden; color: #dcecf3; font-size: 11.5px; font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }
.cfo-tree-item-name small { color: #6f8fa0; font-size: 9.5px; }
.cfo-tree-item-delta.is-up { color: #f6b8b0; font-weight: 800; }
.cfo-tree-item-delta.is-down { color: #9be6cf; font-weight: 800; }
.cfo-tree-effect { display: grid; justify-items: end; gap: 1px; }
.cfo-tree-effect b { font-size: 10px; font-weight: 750; }
.cfo-tree-effect b.is-up { color: #f6b8b0; }
.cfo-tree-effect b.is-down { color: #9be6cf; }
.cfo-tree-effect b.is-flat { color: #8aa0ad; }
.cfo-tree-foot { padding: 8px 4px; color: #7fa3b5; font-size: 10.5px; font-variant-numeric: tabular-nums; }

@media (max-width: 1100px) {
  .cfo-tree-tools-scope { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cfo-tree-tools-scope .cfo-tree-ask-all { width: 100%; }
  .cfo-tree-head, .cfo-tree-row { grid-template-columns: 18px minmax(0, 1fr) 108px 108px 124px; }
  .cfo-tree-bar, .cfo-tree-bar-head { display: none; }
  .cfo-tree-item { grid-template-columns: minmax(0, 1fr) 80px 132px 96px 96px 96px; }
  .cfo-tree-item .cfo-tree-effect, .cfo-tree-item.is-head > :last-child { display: none; }
}
@media (max-width: 760px) {
  .cfo-tree-tools { padding: 10px; }
  .cfo-tree-tools-primary, .cfo-tree-tools-scope { grid-template-columns: minmax(0, 1fr); }
  .cfo-tree-tools-primary .cfo-segmented { width: 100%; }
  .cfo-tree-ask-all { width: 100%; }
  .cfo-tree-summary .cfo-tree-total { margin-left: 0; }
  .cfo-tree-head { display: none; }
  .cfo-tree-row { grid-template-columns: 14px minmax(0, 1fr) auto; grid-template-areas: "caret label delta" ". prior current"; gap: 4px 10px; padding: 11px 12px; }
  .cfo-tree-caret { grid-area: caret; align-self: start; padding-top: 2px; }
  .cfo-tree-label { grid-area: label; }
  .cfo-tree-label strong { white-space: normal; }
  .cfo-tree-delta { grid-area: delta; align-self: start; }
  .cfo-tree-row .cfo-tree-num.is-prior { grid-area: prior; text-align: left; font-size: 10.5px; }
  .cfo-tree-row .cfo-tree-num.is-current { grid-area: current; font-size: 10.5px; }
  .cfo-tree-row .cfo-tree-num::before { content: attr(data-label) " "; color: #6f8fa0; font-size: 9px; }
  .cfo-tree-node.is-supplier > .cfo-tree-row { padding-left: 24px; }
  .cfo-tree-node.is-month > .cfo-tree-row { padding-left: 36px; }
  .cfo-tree-actions, .cfo-tree-note, .cfo-loading.is-inline { padding-left: 24px; }
  .cfo-tree-more, .cfo-tree-children > .cfo-warning { margin-left: 24px; }
  .cfo-tree-items { padding: 8px 12px 12px 24px; }
  .cfo-tree-processes { padding: 8px 12px 12px 36px; }
  .cfo-tree-process-row { grid-template-columns: minmax(0, 1fr) repeat(2, auto); gap: 4px 10px; }
  .cfo-tree-process-row.is-head { display: none; }
  .cfo-tree-process-row .cfo-tree-num::before { content: attr(data-label) " "; display: block; color: #6f8fa0; font-size: 9px; }
  .cfo-tree-item.is-head { display: none; }
  .cfo-tree-item { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px 12px; padding: 10px 0; }
  .cfo-tree-item .cfo-tree-item-name { grid-column: 1 / -1; }
  .cfo-tree-item-name strong { white-space: normal; }
  .cfo-tree-item .cfo-tree-num { text-align: left; }
  .cfo-tree-item .cfo-tree-num::before { content: attr(data-label); display: block; color: #6f8fa0; font-size: 8.5px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
  .cfo-tree-item .cfo-tree-effect { display: grid; justify-items: start; grid-column: 1 / -1; }
}

/* tabela "todas as contas" dentro da resposta da IA */
.viz-accounts .viz-account-name { min-width: 220px; max-width: 360px; }
.viz-accounts .viz-account-name .cfo-link { display: block; overflow: hidden; color: var(--viz-text); font-weight: 650; text-overflow: ellipsis; white-space: nowrap; }
.viz-accounts .viz-account-name small { display: block; margin-top: 2px; color: var(--viz-muted); font-size: 9.5px; }
.viz-accounts tr.is-natural .cfo-link { color: #b7c8d1; }
.viz-accounts td.viz-arrow-up { color: #f6b8b0; font-weight: 700; }
.viz-accounts td.viz-arrow-down { color: #9be6cf; font-weight: 700; }

/* duplicidade: aviso de que está tudo certo */
.cfo-all-clear { display: flex; align-items: flex-start; gap: 14px; padding: 18px 20px; border: 1px solid #2c6b5e; border-radius: 14px; background: linear-gradient(160deg, #0f3a36 0%, #0b283b 60%); }
.cfo-all-clear-icon { display: grid; place-items: center; flex: none; width: 34px; height: 34px; border-radius: 50%; background: #3fbf9f; color: #06221c; font-size: 18px; font-weight: 900; }
.cfo-all-clear strong { display: block; color: #d9fff3; font-size: 15px; }
.cfo-all-clear p { margin: 4px 0 0; color: #9fcfbf; font-size: 12px; line-height: 1.5; }

/* ========================================================================
   Revisão 27/09/2026 · entrega pedida no chat: a lista completa (todos os
   fornecedores ou lojas do escopo), com busca, total que fecha e saída para o Excel.
   ======================================================================== */
.viz-listing-bar { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; padding: 0 14px 10px; }
.viz-listing-meta { color: var(--viz-text-2); font-size: 11px; font-variant-numeric: tabular-nums; }
.viz-listing-meta strong { color: var(--viz-text); font-weight: 800; }
.viz-listing-meta span { color: var(--viz-muted); }
.viz-listing-search { flex: 1 1 200px; min-width: 160px; max-width: 320px; padding: 8px 11px; border: 1px solid #548ca363; border-radius: 9px; outline: none; background: #071e30; color: #ecf9fd; font: inherit; font-size: 11.5px; }
.viz-listing-search:focus { border-color: #5bcce9; box-shadow: 0 0 0 3px #00b4ff1d; }
.viz-listing-found { color: var(--viz-muted); font-size: 10.5px; font-variant-numeric: tabular-nums; }
.viz-listing-actions { display: flex; gap: 6px; margin-left: auto; }
.viz-listing-btn { font: inherit; font-size: 10.5px; font-weight: 700; cursor: pointer; }
.viz-listing-btn:hover { border-color: #5bcce9; color: #fff; }
.viz-listing-scroll { max-height: 560px; overflow: auto; border-top: 1px solid #1f4459; }
.viz-listing-table thead th { position: sticky; top: 0; z-index: 1; background: var(--viz-surface); }
.viz-listing-table .is-rank { width: 34px; padding-right: 4px; color: var(--viz-muted); text-align: right; font-variant-numeric: tabular-nums; }
.viz-listing-name { min-width: 200px; max-width: 420px; }
.viz-listing-name .cfo-link, .viz-listing-name > span { color: var(--viz-text); font-weight: 650; text-decoration-color: #86def633; }
.viz-listing-name small { display: block; margin-top: 2px; color: var(--viz-muted); font-size: 9.5px; }
.viz-listing-table tr.is-gone td { opacity: .72; }
.viz-listing-table td.viz-arrow-up { color: #f6b8b0; }
.viz-listing-table td.viz-arrow-down { color: #9be6cf; }
.viz-listing-more td { padding: 12px; text-align: center; }
.viz-listing-table tfoot td { border-bottom: 1px solid #183849; background: #0a2334; color: var(--viz-text-2); font-weight: 700; }
.viz-listing-table tfoot tr.is-total td { border-top: 1px solid #2b5a72; color: var(--viz-text); font-weight: 800; }
.viz-listing-table tfoot tr.is-extra td { color: var(--viz-muted); font-weight: 600; font-style: italic; }
.viz-listing-table tfoot tr.is-scope td { border-top: 1px solid #2b5a72; color: var(--viz-text); font-weight: 850; }
@media (max-width: 520px) {
  .viz-listing-bar { padding: 0 12px 10px; }
  .viz-listing-search { flex: 1 1 100%; max-width: none; }
  .viz-listing-actions { margin-left: 0; }
  .viz-listing-scroll { max-height: 70vh; }
  .viz-listing-name { min-width: 150px; }
}

/* ------------------------------------------------------------------ Redução mensal e tempo real (29/09/2026) */
/* Selo "ao vivo" nas telas que se atualizam sozinhas (Contas, Lojas, Fornecedores, Duplicidades). */
.cfo-live-stamp { display: inline-flex; align-items: center; justify-self: end; gap: 7px; color: #8fdcc6; font-size: 10px; font-weight: 750; white-space: nowrap; }
.cfo-live-stamp i { width: 7px; height: 7px; flex: none; border-radius: 50%; background: #49d8a3; box-shadow: 0 0 0 0 #49d8a366; animation: cfo-live-pulse 2.4s ease-out infinite; }
.cfo-live-stamp.is-offline { color: #e6cf9a; }
.cfo-live-stamp.is-offline i { background: #e0b25c; animation: none; }
@keyframes cfo-live-pulse { 0% { box-shadow: 0 0 0 0 #49d8a366; } 70% { box-shadow: 0 0 0 7px #49d8a300; } 100% { box-shadow: 0 0 0 0 #49d8a300; } }

/* Faixa da análise mensal: de quando é, a próxima e o histórico. */
.cfo-reducao-meta { display: flex; align-items: center; gap: 14px; margin: 0 0 18px; padding: 13px 17px; border: 1px solid #4aba9b4d; border-radius: 12px; background: linear-gradient(145deg, #0f3a3f5c, #0b283b); }
.cfo-reducao-meta.is-pending { border-color: #a8904a61; background: linear-gradient(145deg, #4a3f1f33, #0b283b); }
.cfo-reducao-dot { width: 9px; height: 9px; flex: none; border-radius: 50%; background: #49d8a3; box-shadow: 0 0 0 4px #49d8a31d; }
.cfo-reducao-meta.is-pending .cfo-reducao-dot { background: #e0b25c; box-shadow: 0 0 0 4px #e0b25c24; animation: cfo-month-blink 1.6s ease-in-out infinite; }
.cfo-reducao-meta-copy { display: grid; gap: 3px; min-width: 0; flex: 1; }
.cfo-reducao-meta-copy strong { color: #d9f4ee; font-size: 12px; }
.cfo-reducao-meta.is-pending .cfo-reducao-meta-copy strong { color: #f1dfb5; }
.cfo-reducao-meta-copy span { color: #8fb3c1; font-size: 10.5px; line-height: 1.5; }
.cfo-reducao-history { display: grid; gap: 5px; flex: none; }
.cfo-reducao-history span { color: #618da4; font-size: 8px; font-weight: 850; letter-spacing: .18em; }
.cfo-reducao-history select { max-width: 260px; padding: 8px 10px; border: 1px solid #5b9eb673; border-radius: 9px; background: #0c3044; color: #e4f7fb; font: inherit; font-size: 11px; }

/* Insights do mês (IA). */
.cfo-month-insights { margin: 0 0 20px; padding: clamp(18px, 2.4vw, 26px); border: 1px solid #3297bb5c; border-radius: 16px; background: radial-gradient(circle at 100% 0, #125e8326, transparent 45%), linear-gradient(145deg, #0f3148, #0b2537); }
.cfo-month-head { display: grid; gap: 9px; margin-bottom: 16px; }
.cfo-month-head h3 { max-width: 980px; margin: 0; color: #eef9ff; font-size: clamp(16px, 1.6vw, 20px); line-height: 1.4; letter-spacing: -.02em; font-weight: 700; }
.cfo-month-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(290px, 1fr)); gap: 12px; }
.cfo-month-card { position: relative; display: grid; align-content: start; gap: 9px; min-width: 0; padding: 17px 18px 15px; overflow: hidden; border: 1px solid #4d8fa84a; border-radius: 12px; background: #0b283bd9; }
.cfo-month-card::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 3px; background: #45d4f1; }
.cfo-month-card.is-cortar::before { background: #f1b677; }
.cfo-month-card.is-renegociar::before { background: #00b4ff; }
.cfo-month-card.is-atencao::before { background: #e0b25c; }
.cfo-month-card.is-melhorou::before { background: #3fbf9f; }
.cfo-month-card.is-piorou::before { background: #e66767; }
.cfo-month-card-top { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; }
.cfo-month-kind { padding: 3px 9px; border: 1px solid #2f6f8c; border-radius: 99px; background: #0d3147; color: #9fd8ff; font-size: 9px; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; white-space: nowrap; }
.cfo-month-kind.is-cortar { border-color: #8a5f33; background: #3b2a1a; color: #f6c48f; }
.cfo-month-kind.is-atencao { border-color: #6d6a3a; background: #2c2a17; color: #eadc9a; }
.cfo-month-kind.is-melhorou { border-color: #2c6b5e; background: #0f3a36; color: #9be6cf; }
.cfo-month-kind.is-piorou { border-color: #6b3a44; background: #3a1f2a; color: #f6b8b0; }
.cfo-month-value { display: grid; justify-items: end; gap: 2px; text-align: right; }
.cfo-month-value b { color: #eef9ff; font-size: 16px; letter-spacing: -.03em; font-variant-numeric: tabular-nums; white-space: nowrap; }
.cfo-month-value small { max-width: 150px; color: #7fa6b8; font-size: 9px; line-height: 1.35; }
.cfo-month-card h4 { margin: 2px 0 0; color: #e6f5fa; font-size: 13.5px; line-height: 1.35; overflow-wrap: anywhere; }
.cfo-month-card p { margin: 0; color: #a3c0d0; font-size: 11px; line-height: 1.65; }
.cfo-month-card .cfo-month-action { color: #c5e2ee; }
.cfo-month-action b { color: #7fe1ed; font-weight: 800; }
.cfo-month-ask { justify-self: start; margin-top: 3px; padding: 0; border: 0; background: none; color: #65d2ee; font: inherit; font-size: 10.5px; font-weight: 800; cursor: pointer; }
.cfo-month-ask:hover { color: #fff; }
.cfo-month-note { margin: 12px 0 0; color: #c9b886; font-size: 10.5px; }
.cfo-month-loading { display: flex; align-items: center; gap: 10px; color: #9ac3d2; font-size: 12px; }
.cfo-month-pulse { width: 9px; height: 9px; flex: none; border-radius: 50%; background: #45d4f1; animation: cfo-month-blink 1.4s ease-in-out infinite; }
@keyframes cfo-month-blink { 50% { opacity: .35; } }

/* Desde a análise anterior: as contas que ela apontou, antes → agora. */
/* (cfo-reducao-followup, e não cfo-followup: esse nome é o das sugestões do chat, em pílula) */
.cfo-reducao-followup { display: grid; gap: 12px; margin: 0 0 22px; }
.cfo-reducao-followup .cfo-list-heading { margin: 0 1px; }
.cfo-followup-list { display: grid; gap: 6px; }
.cfo-followup-row { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; gap: 16px; width: 100%; padding: 11px 15px; border: 1px solid #477e9859; border-radius: 10px; background: #0f3348; color: #e3f3f9; font: inherit; text-align: left; cursor: pointer; }
.cfo-followup-row:hover { border-color: #62cfe9; background: #144360; }
.cfo-followup-name { display: grid; gap: 3px; min-width: 0; }
.cfo-followup-name strong { font-size: 12px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cfo-followup-name small { color: #7fa6b8; font-size: 9.5px; }
.cfo-followup-values { display: inline-flex; align-items: center; gap: 10px; font-size: 11.5px; font-variant-numeric: tabular-nums; white-space: nowrap; }
.cfo-followup-values em, .cfo-followup-values b { display: grid; gap: 1px; font-style: normal; text-align: right; }
.cfo-followup-values em { color: #93b4c4; }
.cfo-followup-values b { color: #eef9ff; }
.cfo-followup-values small { color: #6c93a6; font-size: 8.5px; font-weight: 700; }
.cfo-followup-values i { color: #5f8aa0; font-style: normal; }
.cfo-followup-status { min-width: 82px; padding: 4px 9px; border-radius: 99px; background: #17303d; color: #a9c4d2; font-size: 10px; font-weight: 800; text-align: center; white-space: nowrap; }
.cfo-followup-status.is-melhorou { background: #0f3a36; color: #9be6cf; }
.cfo-followup-status.is-piorou { background: #3a1f2a; color: #f6b8b0; }

@media (max-width: 760px) {
  .cfo-reducao-meta { flex-wrap: wrap; align-items: flex-start; }
  .cfo-reducao-history { flex: 1 1 100%; }
  .cfo-reducao-history select { max-width: none; width: 100%; }
  .cfo-month-grid { grid-template-columns: 1fr; }
  .cfo-followup-row { grid-template-columns: minmax(0, 1fr) auto; gap: 8px 12px; }
  .cfo-followup-values { grid-column: 1 / -1; justify-content: flex-start; }
  .cfo-followup-values em, .cfo-followup-values b { text-align: left; }
  .cfo-followup-status { grid-column: 2; grid-row: 1; }
  .cfo-live-stamp { justify-self: start; }
}
@media (prefers-reduced-motion: reduce) {
  .cfo-live-stamp i, .cfo-reducao-meta.is-pending .cfo-reducao-dot, .cfo-month-pulse { animation: none; }
}

/* ------------------------------------------------------------------ Redução: três bases de cálculo (29/09/2026) */
/* Seletor: acumulado do ano, mês anterior e mesmo mês do ano anterior (cada botão já mostra o resultado). */
.cfo-basis { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin: 0 0 14px; }
.cfo-basis-tab { display: grid; align-content: start; gap: 5px; min-width: 0; padding: 15px 18px 14px; border: 1px solid #4d9db342; border-radius: 12px; background: linear-gradient(145deg, #0f3144, #0b2537); color: inherit; font: inherit; text-align: left; cursor: pointer; box-shadow: inset 0 1px #b9f5ff0a; transition: border-color .18s, background .18s; }
.cfo-basis-tab:hover { border-color: #5bcce98a; background: linear-gradient(145deg, #12394f, #0c293c); }
.cfo-basis-tab.is-active { border-color: #45d4f1; background: radial-gradient(circle at 100% 0, #1b6d9433, transparent 55%), linear-gradient(145deg, #134560, #0d2c40); box-shadow: 0 0 0 1px #45d4f14d, 0 14px 34px #03101c4a; }
.cfo-basis-tab:focus-visible { outline: 2px solid #5bcce9; outline-offset: 2px; }
.cfo-basis-tab small { color: #72b9cb; font-size: 8px; font-weight: 900; letter-spacing: .13em; }
.cfo-basis-tab.is-active small { color: #8fe6f7; }
.cfo-basis-period { color: #92b3c3; font-size: 10.5px; font-variant-numeric: tabular-nums; }
.cfo-basis-tab strong { color: #effaff; font-size: 23px; line-height: 1.2; letter-spacing: -.045em; font-variant-numeric: tabular-nums; white-space: nowrap; }
.cfo-basis-tab strong.is-up { color: #ffc2b8; }
.cfo-basis-tab strong.is-down { color: #9be6cf; }
.cfo-basis-tab em { color: #82a6b7; font-size: 10px; font-style: normal; }
.cfo-basis-summary { margin: 4px 1px 0; color: #8fb3c1; font-size: 11px; line-height: 1.6; }
.cfo-basis-summary b { color: #dff2f9; font-variant-numeric: tabular-nums; }
.cfo-basis-panel[hidden] { display: none; }
.cfo-basis-panel .cfo-grid { margin-top: 14px; }

/* As três leituras de uma conta (a base escolhida em destaque). */
.cfo-cmp { position: relative; z-index: 1; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; max-width: 650px; margin: 22px 0 0; }
.cfo-cmp-item { display: grid; gap: 3px; min-width: 0; padding: 9px 11px; border: 1px solid #3f7f9a45; border-radius: 10px; background: #0a243699; }
.cfo-cmp-item.is-active { border-color: #45d4f1a8; background: #0f3b52; }
.cfo-cmp-item small { overflow: hidden; color: #75a9bd; font-size: 8.5px; font-weight: 850; letter-spacing: .06em; text-overflow: ellipsis; text-transform: uppercase; white-space: nowrap; }
.cfo-cmp-item b { color: #e6f6fc; font-size: 13px; letter-spacing: -.02em; font-variant-numeric: tabular-nums; white-space: nowrap; }
.cfo-cmp-item.is-up b { color: #ffc2b8; }
.cfo-cmp-item.is-down b { color: #9be6cf; }
.cfo-cmp-item i { color: #7c9fb1; font-size: 9.5px; font-style: normal; font-variant-numeric: tabular-nums; }
.cfo-lead-card .cfo-cmp + .cfo-lead-diagnosis { margin-top: 20px; }
.cfo-list-cmp { display: flex; flex-wrap: wrap; gap: 4px 12px; color: #6f95a9; font-size: 9px; }
.cfo-list-cmp em { font-style: normal; font-variant-numeric: tabular-nums; white-space: nowrap; }
.cfo-list-cmp em.is-up { color: #e9a79c; }
.cfo-list-cmp em.is-down { color: #86d3bb; }
.cfo-month-basis { justify-self: start; max-width: 100%; overflow: hidden; color: #7fc9dc; font-size: 9px; font-weight: 800; letter-spacing: .06em; text-overflow: ellipsis; text-transform: uppercase; white-space: nowrap; }

@media (max-width: 760px) {
  .cfo-basis { grid-template-columns: 1fr; gap: 8px; }
  .cfo-basis-tab { grid-template-columns: minmax(0, 1fr) auto; align-items: center; column-gap: 12px; row-gap: 3px; padding: 12px 14px; }
  .cfo-basis-tab small, .cfo-basis-period, .cfo-basis-tab em { grid-column: 1; }
  .cfo-basis-tab strong { grid-column: 2; grid-row: 1 / span 3; font-size: 19px; text-align: right; }
  .cfo-cmp { grid-template-columns: 1fr; gap: 6px; }
  .cfo-cmp-item { grid-template-columns: minmax(0, 1fr) auto auto; align-items: baseline; gap: 10px; padding: 8px 10px; }
}

/* ========================================================================
   Revisão 02/10/2026 · Duplicidades, 2ª visão: fornecedor sem contrato (pago de
   vez em quando) que recebeu mais de um pagamento no mesmo mês, só no ano atual.
   Ranking, faixa jan–dez e os pagamentos de cada mês, em tempo real.
   ======================================================================== */
.cfo-repeat { margin-top: 34px; }
.cfo-view[data-view-panel="duplicates"] > .cfo-repeat:first-child { margin-top: 0; }
.cfo-repeat [hidden] { display: none !important; }
.cfo-repeat > .cfo-history-heading p { max-width: 390px; }
.cfo-repeat-meta { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 16px; margin: 12px 0 14px; color: #8fb3c1; font-size: 11px; }
.cfo-repeat-meta .cfo-live-stamp { justify-self: auto; }
.cfo-repeat .cfo-warning { margin: 0 0 14px; padding: 13px 16px; }
.cfo-repeat-card.has-twin { border-color: #b0703f8c; }
.cfo-repeat-card > summary { display: grid; grid-template-columns: 26px minmax(0, 1fr) max-content 196px; align-items: center; gap: 14px; }
.cfo-repeat-rank { color: #6f9fb4; font-size: 11px; font-weight: 850; font-variant-numeric: tabular-nums; }
.cfo-repeat-card .cfo-dup-main small { line-height: 1.45; }
.cfo-repeat-card .cfo-dup-values strong { font-size: 14px; }
.cfo-repeat-strip { display: grid; grid-template-columns: repeat(12, 27px); gap: 3px; }
.cfo-repeat-month { display: grid; justify-items: center; gap: 3px; min-width: 0; }
.cfo-repeat-month b { display: grid; place-items: center; box-sizing: border-box; width: 27px; height: 24px; border: 1px solid #23485d; border-radius: 6px; background: #0a2232; color: #cfe2ec; font-size: 11px; font-weight: 800; font-variant-numeric: tabular-nums; }
.cfo-repeat-month small { color: #6f8fa1; font-size: 8.5px; font-weight: 700; }
.cfo-repeat-month.is-paid b { border-color: #2f6f8c; background: #12384d; color: #bfe6f3; }
.cfo-repeat-month.is-repeat b { border-color: #d08d4f; background: #6b3f1d; color: #ffe2c6; box-shadow: 0 0 0 2px #d08d4f26; }
.cfo-repeat-month.is-repeat small { color: #f4c9a4; font-weight: 850; }
.cfo-repeat-month.is-future b { border-style: dashed; border-color: #1b3b4d; background: transparent; }
.cfo-repeat-month.is-future small { color: #46677a; }
.cfo-repeat-body { padding: 2px 16px 14px; border-top: 1px solid #1f4459; }
.cfo-repeat-month-head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 4px 14px; margin: 13px 0 7px; }
.cfo-repeat-month-head strong { color: #f4c9a4; font-size: 12px; }
.cfo-repeat-month-head span { color: #7fa3b5; font-size: 10.5px; }
.cfo-repeat-body .viz-table-scroll { border: 1px solid #1f4459; border-radius: 9px; }
.cfo-repeat-body .viz-paid tr.is-twin > td { background: #4a2d1633; }
.cfo-repeat-foot { margin: 10px 0 0; }
.cfo-repeat #repeat-footer { margin: 12px 0 8px; }
@media (max-width: 1180px) {
  .cfo-repeat-card > summary { grid-template-columns: 26px minmax(0, 1fr) 196px; grid-template-areas: "rank main values" ". strip strip"; row-gap: 10px; }
  .cfo-repeat-card .cfo-repeat-rank { grid-area: rank; }
  .cfo-repeat-card .cfo-dup-main { grid-area: main; }
  .cfo-repeat-card .cfo-repeat-strip { grid-area: strip; justify-self: start; }
  .cfo-repeat-card .cfo-dup-values { grid-area: values; }
}
@media (max-width: 760px) {
  .cfo-repeat-card > summary { grid-template-columns: 22px minmax(0, 1fr); grid-template-areas: "rank main" "strip strip" "values values"; gap: 10px; padding: 12px; }
  .cfo-repeat-card .cfo-repeat-strip { grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 2px; justify-self: stretch; width: 100%; }
  .cfo-repeat-month b { width: 100%; height: 22px; font-size: 10px; }
  .cfo-repeat-month small { font-size: 7.5px; }
  .cfo-repeat-card .cfo-dup-values { justify-items: start; text-align: left; }
  .cfo-repeat-body { padding: 2px 10px 12px; }
  .cfo-repeat-meta { justify-content: flex-start; }
}
@media (max-width: 520px) {
  /* pagamentos em cartões: o destaque da mesma NF e valor vai no cartão inteiro */
  .cfo-repeat-body .viz-paid tr.is-twin { background: #4a2d1633; }
  .cfo-repeat-body .viz-paid tr.is-twin > td { background: transparent; }
  .cfo-repeat-body .viz-paid td.p-doc { white-space: normal; }
  .cfo-repeat-body .viz-paid td.p-doc .cfo-tag { display: table; margin: 4px 0 0; }
}

/* Conta contábil dos pagamentos (Duplicidades, 02/10/2026): à vista no cartão fechado e em cada pagamento. */
.cfo-account-line { display: flex; flex-wrap: wrap; align-items: baseline; gap: 3px 8px; margin-top: 3px; color: #9cc7d8; font-size: 10.5px; line-height: 1.45; }
.cfo-account-kicker { color: #6f9fb4; font-size: 8.5px; font-weight: 850; letter-spacing: .12em; text-transform: uppercase; }
.cfo-account { display: inline-flex; flex-wrap: wrap; align-items: baseline; gap: 2px 5px; min-width: 0; }
.cfo-account-name { color: #dff2f9; font-weight: 700; }
button.cfo-account-name { padding: 0; border: 0; background: none; color: #dff2f9; font: inherit; font-weight: 700; text-align: left; text-decoration: underline; text-decoration-color: #86def640; text-underline-offset: 2px; cursor: pointer; }
button.cfo-account-name:hover { color: #9be7f8; }
.cfo-account small { color: #7fa3b5; font-size: 9.5px; font-variant-numeric: tabular-nums; }
.cfo-account-line .cfo-account + .cfo-account::before { content: "·"; margin-right: 3px; color: #4f7486; }
@media (min-width: 521px) {
  /* tabelas de pagamentos da tela Duplicidades: mais justas, para a conta e o valor caberem sem rolar */
  .cfo-dup .viz-paid th, .cfo-dup .viz-paid td { padding-left: 9px; padding-right: 9px; }
  .cfo-dup .viz-paid .viz-history { min-width: 160px; }
  .cfo-dup .viz-paid td.p-doc .cfo-tag { display: table; margin: 4px 0 0; }
}
.cfo-account-more { color: #8aa0ad; font-size: 9.5px; }
.cfo-account-line .is-muted, .cfo-accounts .is-muted { color: #8aa0ad; font-style: italic; }
.cfo-accounts { display: grid; gap: 3px; min-width: 170px; max-width: 260px; }
.viz-paid td.p-account { white-space: normal; }
@media (max-width: 520px) {
  .viz-paid .p-account { grid-column: 1 / -1; }
  .cfo-accounts { min-width: 0; max-width: none; }
}
/* Contas agrupadas e removidas no Painel admin (05/10/2026) */
.cfo-tree-chip.is-merged { border-color: #2d7f99; background: #0e3445; color: #9be3f6; }
.cfo-tree-admin { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; margin: 0 0 10px; padding: 9px 12px; border: 1px solid #2d5f75; border-radius: 10px; background: #0b2a3d; color: #a9cad8; font-size: 11px; line-height: 1.5; }
.cfo-tree-admin strong { color: #d9f3fc; }
.cfo-tree-admin.is-warning { border-color: #8a6a3a; background: #2c2416; color: #ecd5a8; }
.cfo-merged-members { margin: 12px 0; padding: 11px 13px; border: 1px solid #2d5f75; border-radius: 10px; background: #0b2a3d; }
.cfo-merged-members > strong { display: block; margin-bottom: 7px; color: #d9f3fc; font-size: 12px; }
.cfo-merged-members > p { margin: 0 0 8px; color: #93b6c5; font-size: 11px; line-height: 1.5; }
.cfo-merged-row { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 10px; padding: 6px 0; border-top: 1px solid #23495c; color: #bcd6e1; font-size: 11px; }
.cfo-merged-row b { font-variant-numeric: tabular-nums; white-space: nowrap; }
.cfo-merged-row small { display: block; color: #7fa5b6; font-size: 10px; }
.cfo-reducao-accounts { margin: 6px 0 0; padding: 9px 12px; border: 1px solid #8a6a3a; border-radius: 9px; background: #2c241680; color: #ecd5a8; font-size: 11px; line-height: 1.55; }
/* Lançado mais de uma vez (Duplicidades, 3ª visão, 05/10/2026): a mesma NF do mesmo fornecedor, com o mesmo
   valor, lançada mais de uma vez no razão (consulta 2), sem depender de pagamento. */
.cfo-posted { margin-top: 34px; }
.cfo-posted [hidden] { display: none !important; }
.cfo-posted > .cfo-history-heading p { max-width: 390px; }
.cfo-posted #posted-footer { margin: 12px 0 8px; }
.cfo-posted-card .cfo-dup-main small { line-height: 1.45; }
.cfo-dup .viz-posted td.p-note { min-width: 200px; }
@media (max-width: 520px) {
  .viz-posted .p-note { grid-column: 1 / -1; }
  /* no celular a linha tocada não fica com o fundo de "passar o mouse" em pedaços */
  .viz-table.viz-paid tbody tr:hover td { background: transparent; }
}

/* grupo "Despesas" na barra lateral (abre/fecha) */
.cfo-nav-group { display: grid; gap: 3px; }
.cfo-nav-group-toggle { display: flex; align-items: center; gap: 12px; width: 100%; border: 0; border-radius: 9px; padding: 12px 11px; background: transparent; color: #9ab5c4; text-align: left; font-size: 11px; font-weight: 800; letter-spacing: .04em; cursor: pointer; }
.cfo-nav-group-toggle span { width: 18px; color: #58bcd9; font-size: 16px; font-weight: 900; text-align: center; }
.cfo-nav-group-toggle:hover { color: #fff; background: #17425a; }
.cfo-nav-group.has-active > .cfo-nav-group-toggle { color: #eafbff; }
.cfo-nav-caret { margin-left: auto; font-style: normal; font-size: 12px; color: #668fa2; transition: transform .18s ease; transform: rotate(-90deg); }
.cfo-nav-group.is-open .cfo-nav-caret { transform: none; }
.cfo-nav-group-items { display: none; gap: 3px; margin-left: 14px; padding-left: 8px; border-left: 1px solid #1f4d63; }
.cfo-nav-group.is-open .cfo-nav-group-items { display: grid; }
@media (max-width: 900px) { .cfo-nav-group-toggle { padding: 12px 11px; font-size: 13px; } .cfo-nav-group-items { margin-left: 10px; } }
