/* Execuções — console de leitura. CSS dono da aba; nenhum cálculo vive aqui.
   Linhas contínuas, detalhes nativos e valores conferidos/projetados separados. */
body{
 --exc-bg:#f7f9fc;--exc-text:#172b3d;--exc-muted:#5b6f81;--exc-line:#d9e3eb;--exc-surface:#fff;--exc-raised:#f2f6f8;--exc-accent:#086e64;
 --exc-blue:#265da3;--exc-danger:#bd2538;--exc-warn:#92520b;--exc-soft:#edf7f4;
 --xm-ink:var(--exc-accent);--xm-line:#9fc7bc;--xm-wash:var(--exc-soft);--xm-btn-bg:#086e64;--xm-btn-ink:#fff;
}
body.dark{
 --exc-bg:#060b14;--exc-text:#e0e9f3;--exc-muted:#a1b2c6;--exc-line:#2a3d51;--exc-surface:#0d1726;--exc-raised:#121f33;--exc-accent:#2dd4a7;
 --exc-blue:#3d7dfb;--exc-danger:#ff8996;--exc-warn:#efbf79;--exc-soft:#10302a;--xm-line:#386c62;--xm-btn-bg:#2dd4a7;--xm-btn-ink:#071c23;
}
#execucoesBody,.exec-vmodal{color:var(--exc-text);font-family:Manrope,sans-serif}
#viewExecucoes{background:var(--exc-bg)}
#execucoesBody .exec-wrap{display:grid;gap:14px;min-width:0;padding:20px 28px 32px}
#execucoesBody .exec-wrap *{box-sizing:border-box}
#execucoesBody .exec-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;padding:0 0 14px;border-bottom:1px solid var(--exc-line)}
#execucoesBody .exec-heading>div{min-width:0}
#execucoesBody .exec-eyebrow{display:block;margin-bottom:8px;color:var(--exc-accent);font:500 10px/1.5 'JetBrains Mono',monospace;letter-spacing:.14em}
#execucoesBody .exec-heading h2{margin:0 0 8px;color:var(--exc-text);font:600 clamp(28px,3vw,40px)/1.08 Archivo,Manrope,sans-serif;letter-spacing:-.045em}
#execucoesBody .exec-heading p{margin:0 0 5px;max-width:690px;color:var(--exc-muted);font-size:13px;line-height:1.65}
#execucoesBody .exec-heading small{font-size:11px;line-height:1.6;color:var(--exc-muted)}
#execucoesBody .exec-heading-tools{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
#execucoesBody button{font-family:inherit;cursor:pointer}
#execucoesBody .exec-heading-tools button,#execucoesBody .xc-open,#execucoesBody .xm-start,#execucoesBody .exec-empty button{
 display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:44px;padding:10px 14px;
 border:1px solid var(--exc-line);border-radius:9px;background:var(--exc-surface);color:var(--exc-text);font-size:11px;font-weight:600;
}
#execucoesBody .ic{width:16px;height:16px;flex-shrink:0}
#execucoesBody :is(button,summary,input,select):focus-visible,.exec-vmodal :is(button,input,select):focus-visible{outline:3px solid var(--exc-blue);outline-offset:3px}
#execucoesBody button:hover{border-color:var(--exc-accent)}
#execucoesBody .exec-money{display:grid;grid-template-columns:minmax(170px,1fr) minmax(150px,1fr) minmax(160px,1fr) auto;align-items:center;gap:20px;padding:0 0 14px;border-bottom:1px solid var(--exc-line)}
#execucoesBody .xm-main,#execucoesBody .xm-proj{min-width:0;display:grid;gap:6px}
#execucoesBody .xm-main>span,#execucoesBody .xm-proj>span{font:500 9px/1.5 'JetBrains Mono',monospace;letter-spacing:.08em;color:var(--exc-accent)}
#execucoesBody .xm-main>b{font:400 clamp(21px,2.1vw,28px)/1.2 'JetBrains Mono',monospace;color:var(--exc-text);font-variant-numeric:tabular-nums;letter-spacing:-.04em;overflow-wrap:anywhere}
#execucoesBody .xm-main>small,#execucoesBody .xm-proj>small{font-size:10px;line-height:1.6;color:var(--exc-muted)}
#execucoesBody .xm-proj{border-left:1px dashed var(--exc-line);padding-left:20px}
#execucoesBody .xm-proj>span{color:var(--exc-muted)}
#execucoesBody .xm-proj>b{font:400 20px/1.3 'JetBrains Mono',monospace;color:var(--exc-muted);font-variant-numeric:tabular-nums;letter-spacing:-.04em;overflow-wrap:anywhere}
#execucoesBody .xm-tipos{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 20px}
#execucoesBody .xm-tipos>span{display:grid;grid-template-columns:6px minmax(0,1fr);gap:3px 7px;min-width:0}
#execucoesBody .xm-tipos i{width:5px;height:5px;border-radius:50%;background:var(--xcv);margin-top:4px}
#execucoesBody .xm-tipos b{font-size:10px;line-height:1.4;color:var(--exc-muted);font-weight:500}
#execucoesBody .xm-tipos u{grid-column:2;text-decoration:none;font:500 13px/1.4 'JetBrains Mono',monospace;color:var(--exc-text);overflow-wrap:anywhere}
#execucoesBody .xm-tipos small{grid-column:2;font-size:9px;line-height:1.4;color:var(--exc-muted)}
#execucoesBody .exec-composition{min-width:0}
#execucoesBody .exec-composition>summary{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:44px;padding:10px;border:1px solid var(--exc-line);border-radius:8px;color:var(--exc-muted);font-size:11px;list-style:none;cursor:pointer}
#execucoesBody .exec-composition>summary::-webkit-details-marker{display:none}
#execucoesBody .exec-composition>.xm-tipos{margin-top:15px}
#execucoesBody .exec-composition[open]>summary .ic{transform:rotate(180deg)}
#execucoesBody .xm-gap{display:grid;gap:4px;text-align:left;min-width:0;max-width:160px;padding:10px;border:1px dashed var(--exc-line);border-radius:9px;background:transparent;color:var(--exc-muted)}
#execucoesBody .xm-gap b{font:400 25px/1 'JetBrains Mono',monospace;color:var(--exc-text)}
#execucoesBody .xm-gap span{font-size:11px}.exec-money .xm-gap small{font-size:10px;line-height:1.5}
#execucoesBody .exec-money.vazia{grid-template-columns:minmax(0,1fr) auto}
#execucoesBody .exec-money.exec-money-unavailable{grid-template-columns:minmax(0,1fr) auto;color:var(--exc-muted)}
#execucoesBody .exec-money-unavailable b{color:var(--exc-text)}
#execucoesBody .exec-money-unavailable p{margin:5px 0;font-size:12px;line-height:1.6}
#execucoesBody .exec-read-status{display:flex;flex-wrap:wrap;align-items:center;gap:8px 20px;margin-block:-4px;font-size:10px;color:var(--exc-muted)}
#execucoesBody .exec-read-status button,#execucoesBody .exec-money-unavailable button{padding:8px 12px;min-height:36px;border:1px solid var(--exc-line);border-radius:8px;background:var(--exc-surface);color:var(--exc-text)}
#execucoesBody button:disabled{cursor:wait;opacity:.65}
#execucoesBody .xm-conv{display:flex;align-items:flex-start;gap:12px;min-width:0}
#execucoesBody .xm-conv>.ic{color:var(--exc-accent);margin-top:3px}
#execucoesBody .xm-conv b{font-size:13px}.exec-money .xm-conv p{margin:5px 0 0;font-size:11px;line-height:1.6;color:var(--exc-muted);max-width:760px}
#execucoesBody .xm-start{max-width:240px;white-space:normal;text-align:left}
#execucoesBody .exec-metrics{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:0;border-bottom:1px solid var(--exc-line);padding-bottom:18px}
#execucoesBody .exec-kpi{position:relative;display:grid;gap:5px;align-content:start;min-width:0;padding:8px 14px;border:0;border-left:1px solid var(--exc-line);background:transparent;text-align:left;color:var(--exc-text)}
#execucoesBody .exec-kpi:first-child{border-left:0;padding-left:0}
#execucoesBody .exec-kpi b{font:400 29px/1.15 'JetBrains Mono',monospace;letter-spacing:-.06em;font-variant-numeric:tabular-nums}
#execucoesBody .exec-kpi span{font-size:11px;line-height:1.4;font-weight:600}
#execucoesBody .exec-kpi small{font-size:10px;line-height:1.5;color:var(--exc-muted)}
#execucoesBody .exec-kpi.active{background:var(--exc-raised);border-radius:7px;box-shadow:inset 0 -2px var(--exc-accent)}
#execucoesBody .exec-kpi.danger b{color:var(--exc-danger)}
#execucoesBody .exec-kpi.danger.active{background:color-mix(in srgb,var(--exc-danger) 8%,var(--exc-surface));box-shadow:inset 0 -2px var(--exc-danger)}
#execucoesBody .exec-kpi.teal b{color:var(--exc-accent)}
#execucoesBody .exec-kpi.violet b{color:var(--exc-blue)}
#execucoesBody .exec-kpi.muted b{color:var(--exc-muted)}
#execucoesBody .exec-toolbar{display:grid;grid-template-columns:minmax(200px,1fr) auto;align-items:center;gap:10px}
#execucoesBody .exec-search{display:flex;align-items:center;gap:10px;min-width:0;max-width:560px;border:1px solid var(--exc-line);background:var(--exc-surface);border-radius:9px;padding-left:13px;color:var(--exc-muted)}
#execucoesBody .exec-search input{width:100%;min-width:0;min-height:44px;border:0;background:transparent;color:var(--exc-text);font:400 12px Manrope,sans-serif;outline-offset:-3px}
#execucoesBody .exec-search button{display:grid;place-items:center;flex-shrink:0;width:44px;height:44px;border:0;background:transparent;color:var(--exc-muted);border-radius:8px}
#execucoesBody .exec-search input::placeholder{color:var(--exc-muted)}
#execucoesBody .exec-sort{display:flex;align-items:center;gap:8px;color:var(--exc-muted);font-size:11px;min-width:0}
#execucoesBody .exec-sort select{min-width:0;max-width:100%;min-height:44px;padding:9px 12px;border:1px solid var(--exc-line);border-radius:9px;background:var(--exc-surface);color:var(--exc-text);font:500 11px Manrope,sans-serif}
#execucoesBody .exec-recortes{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:6px}
#execucoesBody .exec-recortes button{display:inline-flex;align-items:center;gap:7px;min-height:36px;padding:8px 10px;border:1px solid transparent;border-radius:7px;background:transparent;color:var(--exc-muted);font:500 11px Manrope,sans-serif}
#execucoesBody .exec-recortes button b{font:400 10px 'JetBrains Mono',monospace;color:inherit}
#execucoesBody .exec-recortes button.active{border-color:var(--exc-line);background:var(--exc-surface);color:var(--exc-accent)}
#execucoesBody .exec-workspace{display:grid;grid-template-columns:minmax(0,1fr);gap:16px}
#execucoesBody .legal-phase-details{margin:0;border:1px solid var(--exc-line);border-radius:10px;background:transparent;box-shadow:none;overflow:visible}
#execucoesBody .legal-phase-details>summary{min-height:52px;padding:9px 16px;color:var(--exc-text)}
#execucoesBody .legal-phase-details summary small{font-size:11px;color:var(--exc-muted)}
#execucoesBody .legal-phase-details summary b{font-size:12px}
#execucoesBody .legal-phase-details>summary:after{color:var(--exc-accent)}
#execucoesBody .legal-disclosure-label{font-size:10px;color:var(--exc-muted)}
#execucoesBody .exec-overdue-count{font:500 10px/1.5 'JetBrains Mono',monospace;color:var(--exc-danger);padding:5px 8px;border:1px solid var(--exc-danger);border-radius:5px}
#execucoesBody .legal-phase-details>.exec-metrics{margin:16px 18px 0}
#execucoesBody .exec-rail{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;padding:18px}
#execucoesBody .exec-rail-head,#execucoesBody .exec-rail>details{grid-column:1/-1;color:var(--exc-muted);font-size:11px}
#execucoesBody .exec-rail-head{display:flex;gap:10px;flex-wrap:wrap}
#execucoesBody .exec-rail-head span{font:500 9px 'JetBrains Mono',monospace;letter-spacing:.09em}
#execucoesBody .exec-rail-head b{font-weight:500}
#execucoesBody .exec-stage-col{display:grid;align-content:start;gap:5px;min-width:0}
#execucoesBody .exec-stage-group{display:flex;justify-content:space-between;align-items:center;gap:10px;min-height:42px;padding:8px 10px;border:0;border-bottom:1px solid var(--exc-line);background:transparent;color:var(--exc-text);text-align:left;font:500 10px/1.5 'JetBrains Mono',monospace}
#execucoesBody .exec-stage-group em{font-size:15px;font-style:normal}
#execucoesBody .exec-stage{display:grid;grid-template-columns:7px minmax(0,1fr) auto;gap:8px;text-align:left;padding:10px;border:1px solid transparent;border-radius:7px;background:transparent;color:var(--exc-text)}
#execucoesBody .exec-stage>i{width:5px;height:5px;border-radius:50%;background:var(--stage);margin-top:6px}
#execucoesBody .exec-stage>span{display:grid;gap:4px;min-width:0}
#execucoesBody .exec-stage b{font-size:11px;font-weight:600}
#execucoesBody .exec-stage small{font-size:10px;line-height:1.6;color:var(--exc-muted)}
#execucoesBody .exec-stage em{font:500 12px 'JetBrains Mono',monospace}
#execucoesBody .exec-stage.zero{opacity:.7}
#execucoesBody .exec-stage.active,#execucoesBody .exec-stage-group.active{background:var(--exc-raised);border-color:var(--exc-accent)}
#execucoesBody .exec-stage-slow{color:var(--exc-warn);font-size:10px;text-decoration:none}
#execucoesBody .exec-rail>details summary{cursor:pointer;display:flex;align-items:center;gap:7px;padding:10px 0}
#execucoesBody .exec-rail>details p{max-width:850px;line-height:1.8;margin:6px 0}
#execucoesBody .exec-queue{min-width:0}
#execucoesBody .exec-queue>header{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;padding:0 0 12px}
#execucoesBody .exec-queue>header>div{min-width:0;flex:1}
#execucoesBody .exec-queue>header>div>span{color:var(--exc-muted);font:500 9px/1.5 'JetBrains Mono',monospace;letter-spacing:.1em}
#execucoesBody .exec-queue h3{margin:6px 0 0;color:var(--exc-text);font:600 21px/1.3 Archivo,sans-serif}
#execucoesBody .exec-queue>header>small{color:var(--exc-muted);font-size:10px}
#execucoesBody .exec-first{align-self:flex-end;max-width:360px;min-width:0}
#execucoesBody .exec-first>summary{display:flex;align-items:center;justify-content:flex-end;gap:7px;min-height:44px;list-style:none;cursor:pointer;color:var(--exc-muted);font-size:10px}
#execucoesBody .exec-first>summary::-webkit-details-marker{display:none}
#execucoesBody .exec-first>div{display:grid;gap:8px;padding:14px;border:1px solid var(--exc-line);border-radius:8px;background:var(--exc-surface)}
#execucoesBody .exec-first>div>span{font:500 9px 'JetBrains Mono',monospace;color:var(--exc-muted)}
#execucoesBody .exec-first b{font:600 13px/1.5 Archivo,sans-serif;overflow-wrap:anywhere}
#execucoesBody .exec-first small{font-size:11px;line-height:1.6;color:var(--exc-muted)}
#execucoesBody .exec-first button{justify-self:start;min-height:44px;padding:9px 12px;border:1px solid var(--exc-line);border-radius:7px;background:var(--exc-raised);color:var(--exc-text);font-size:11px}
#execucoesBody .exec-gargalo{margin-top:15px;padding:14px;border-left:2px solid var(--exc-accent);background:var(--exc-raised);font-size:11px;line-height:1.6}
#execucoesBody .exec-gargalo>b{font-size:12px}
#execucoesBody .exec-gargalo p{margin:5px 0;color:var(--exc-muted)}
#execucoesBody .exec-gargalo-stats{display:flex;flex-wrap:wrap;gap:12px;margin:10px 0}
#execucoesBody .exec-gargalo-stats u{text-decoration:none;font-weight:700}
#execucoesBody .exec-gargalo-stats .crit{color:var(--exc-danger)}
#execucoesBody .exec-list{border-top:1px solid var(--exc-line)}
#execucoesBody .exec-card{margin:0;border:0;border-bottom:1px solid var(--exc-line);background:transparent;min-width:0;overflow:visible}
#execucoesBody .xc-summary{display:grid;grid-template-columns:28px minmax(200px,1.45fr) minmax(180px,1.1fr) minmax(150px,.8fr) 68px;align-items:center;gap:18px;padding:18px 10px;min-height:105px;list-style:none;cursor:pointer}
#execucoesBody .xc-summary::-webkit-details-marker{display:none}
#execucoesBody .xc-summary>*{min-width:0}
#execucoesBody .xc-summary:hover,#execucoesBody .exec-card[open]>.xc-summary{background:var(--exc-raised)}
#execucoesBody .exec-card[open]>.xc-summary{box-shadow:inset 2px 0 var(--exc-accent)}
#execucoesBody .xc-rank{font:400 11px 'JetBrains Mono',monospace;color:var(--exc-muted)}
#execucoesBody .xc-main{display:grid;gap:5px}
#execucoesBody .xc-client{color:var(--exc-text);font:600 14px/1.45 Archivo,sans-serif;overflow-wrap:anywhere}
#execucoesBody .xc-cnj{color:var(--exc-muted);font:400 10px/1.5 'JetBrains Mono',monospace;overflow-wrap:anywhere}
#execucoesBody .xc-owner{color:var(--exc-muted);font-size:10px;line-height:1.5}
#execucoesBody .xc-state{display:grid;gap:8px}
#execucoesBody .xc-fase{display:flex;align-items:center;gap:7px;font-size:11px;font-weight:600;line-height:1.5;color:var(--exc-text)}
#execucoesBody .xc-fase i{width:5px;height:5px;border-radius:50%;flex-shrink:0}
#execucoesBody .xc-signals{display:flex;flex-wrap:wrap;align-items:center;gap:5px}
#execucoesBody .xc-parado{color:var(--exc-muted);font:400 10px/1.5 'JetBrains Mono',monospace}
#execucoesBody .xc-parado.warn{color:var(--exc-warn)}
#execucoesBody .xc-parado.crit{color:var(--exc-danger)}
#execucoesBody .xc-flag{display:inline-flex;align-items:center;gap:4px;padding:2px 5px;border:1px solid var(--exc-line);border-radius:4px;font-size:9px;line-height:1.5;color:var(--exc-muted)}
#execucoesBody .xc-flag .ic{width:11px;height:11px}
#execucoesBody .xc-flag.adversa{color:var(--exc-danger);border-color:var(--exc-danger)}
#execucoesBody .xc-flag.multa,#execucoesBody .xc-flag.suc{color:var(--exc-warn)}
#execucoesBody .xc-flag.prov{color:var(--exc-blue)}
#execucoesBody .xc-value{display:grid;gap:4px;text-align:right;font-variant-numeric:tabular-nums}
#execucoesBody .xc-value>b{font:500 15px/1.4 'JetBrains Mono',monospace;color:var(--exc-text);overflow-wrap:anywhere}
#execucoesBody .xc-value>small{font-size:9px;line-height:1.5;color:var(--exc-muted)}
#execucoesBody .xc-value .projected,#execucoesBody .xc-value .unavailable{color:var(--exc-muted)}
#execucoesBody .xc-disclose{display:flex;align-items:center;justify-content:flex-end;gap:5px;color:var(--exc-accent);font-size:10px}
#execucoesBody .xc-disclose .ic{width:14px;height:14px;transition:transform .15s}
#execucoesBody .exec-card[open] .xc-disclose .ic{transform:rotate(180deg)}
#execucoesBody .xc-detail{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px;padding:22px 24px 24px 56px;background:var(--exc-surface);border-top:1px solid var(--exc-line)}
#execucoesBody .xc-detail>*{min-width:0}
#execucoesBody .xc-context,#execucoesBody .xc-meta,#execucoesBody .xc-verbas,#execucoesBody .xc-evid,#execucoesBody .xc-no-evidence,#execucoesBody .xc-actions,#execucoesBody .caso-prov{grid-column:1/-1}
#execucoesBody .xc-context{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:11px}
#execucoesBody .xc-context>span:last-child{color:var(--exc-muted)}
#execucoesBody .xc-etapa{padding:4px 7px;border:1px solid var(--exc-line);border-radius:5px;font:500 9px 'JetBrains Mono',monospace;color:var(--exc-muted)}
#execucoesBody .xc-urg{font:500 10px/1.5 'JetBrains Mono',monospace;color:var(--exc-muted)}
#execucoesBody .xc-urg.danger{color:var(--exc-danger)}
#execucoesBody .xc-urg.warn{color:var(--exc-warn)}
#execucoesBody .xc-urg.blue,#execucoesBody .xc-urg.violet{color:var(--exc-blue)}
#execucoesBody .xc-urg.teal{color:var(--exc-accent)}
#execucoesBody .xc-meta{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px}
#execucoesBody .xc-meta>span{font-size:11px;line-height:1.6;color:var(--exc-text);overflow-wrap:anywhere}
#execucoesBody .xc-meta b{display:block;font:500 9px/1.5 'JetBrains Mono',monospace;color:var(--exc-muted);margin-bottom:5px}
#execucoesBody .xc-meta .is-missing{color:var(--exc-warn)}
#execucoesBody .xc-linha{display:flex;gap:9px;align-items:flex-start;padding:14px;background:var(--exc-raised);border-radius:8px}
#execucoesBody .xc-linha span{display:grid;gap:5px}
#execucoesBody .xc-linha small,#execucoesBody .xc-action small{color:var(--exc-muted);font-size:10px}
#execucoesBody .xc-linha b{font-size:12px;color:var(--exc-text)}
#execucoesBody .xc-action{display:grid;gap:5px;border-left:2px solid var(--exc-line);padding-left:15px}
#execucoesBody .xc-action b{font-size:12px;color:var(--exc-text);line-height:1.5}
#execucoesBody .xc-action span{font-size:10px;color:var(--exc-muted);line-height:1.5}
#execucoesBody .xc-evid{padding:16px;border:1px solid var(--exc-line);border-radius:9px}
#execucoesBody .xc-evid>span{font:500 9px/1.6 'JetBrains Mono',monospace;color:var(--exc-muted)}
#execucoesBody .xc-evid p{font-size:12px;line-height:1.8;margin:9px 0 0;white-space:pre-line;overflow-wrap:anywhere;color:var(--exc-text)}
#execucoesBody .xc-no-evidence{margin:0;color:var(--exc-muted);font-size:11px}
#execucoesBody .xc-actions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap}
#execucoesBody .xc-open.xc-task{background:var(--exc-accent);border-color:var(--exc-accent);color:var(--exc-surface)}
#execucoesBody .xc-open.review{color:var(--exc-warn)}
#execucoesBody .caso-prov{margin:0;padding:12px 14px;border:1px solid var(--exc-line);border-radius:8px;background:var(--exc-raised);color:var(--exc-muted);font-size:11px;line-height:1.6}
#execucoesBody .caso-prov .caso-prov-tag.ok{background:transparent;color:var(--exc-muted)}
#execucoesBody .caso-prov.is-atraso{border-color:var(--exc-danger);background:color-mix(in srgb,var(--exc-danger) 7%,var(--exc-surface));color:var(--exc-danger)}
#execucoesBody .caso-prov.is-atraso .caso-prov-tag.atraso{color:var(--exc-danger);background:transparent}
#execucoesBody .exec-load-more{display:block;width:100%;min-height:48px;margin-top:16px;padding:12px;border:1px dashed var(--exc-line);border-radius:8px;background:transparent;color:var(--exc-text);font-size:12px}
#execucoesBody .exec-load-more small{margin-left:10px;color:var(--exc-muted);font-size:10px}
#execucoesBody .exec-loading,#execucoesBody .exec-empty{display:grid;justify-items:start;gap:12px;padding:36px 20px;color:var(--exc-muted)}
#execucoesBody .exec-loading b,#execucoesBody .exec-empty b{color:var(--exc-text);font:600 20px Archivo,sans-serif}
#execucoesBody .exec-loading small,#execucoesBody .exec-empty small{font-size:12px;line-height:1.8}
#execucoesBody .xc-verbas{display:flex;align-items:center;gap:16px;padding:14px;text-align:left;border:1px solid var(--exc-line);border-radius:8px;background:var(--exc-raised);color:var(--exc-text)}
#execucoesBody .xc-verbas.empty>span{display:grid;gap:4px;flex:1}
#execucoesBody .xc-verbas.empty b{font-size:12px}
#execucoesBody .xc-verbas.empty small{font-size:10px;line-height:1.6;color:var(--exc-muted)}
#execucoesBody .xc-verbas .xcv-top{display:grid;grid-template-columns:16px minmax(0,1fr);gap:3px 9px;min-width:0}
#execucoesBody .xcv-top>.ic{grid-row:1/4;color:var(--exc-accent)}
#execucoesBody .xcv-top>b{font:500 16px/1.4 'JetBrains Mono',monospace;color:var(--exc-text)}
#execucoesBody .xcv-top>small,#execucoesBody .xcv-top>i{grid-column:2;font-size:10px;font-style:normal;color:var(--exc-muted);line-height:1.6}
#execucoesBody .xcv-top>b.proj{color:var(--exc-muted)}
#execucoesBody .xcv-chips{display:flex;flex-wrap:wrap;gap:7px;min-width:0}
#execucoesBody .xcv-chip{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap;padding:6px 8px;border:1px solid var(--exc-line);border-radius:5px;font-size:10px;color:var(--exc-muted)}
#execucoesBody .xcv-chip i{width:5px;height:5px;border-radius:50%;background:var(--xcv)}
#execucoesBody .xcv-chip b{font-weight:600;color:var(--exc-text)}
#execucoesBody .xcv-chip.proj{border-style:dashed}
@media(max-width:1200px){
 #execucoesBody .exec-money{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(130px,.8fr) auto}
 #execucoesBody .exec-composition>.xm-tipos{grid-template-columns:minmax(0,1fr)}
 #execucoesBody .exec-metrics{grid-template-columns:repeat(4,minmax(0,1fr));row-gap:15px}
 #execucoesBody .exec-kpi:nth-child(5){border-left:0;padding-left:0}
 #execucoesBody .xc-summary{grid-template-columns:24px minmax(160px,1.4fr) minmax(150px,1fr) minmax(130px,.8fr) 20px;gap:12px}
 #execucoesBody .xc-disclose>span{display:none}
}
@media(max-width:820px){
 #execucoesBody .exec-wrap{padding:20px}
 #execucoesBody .exec-heading{flex-direction:column;gap:16px}
 #execucoesBody .exec-heading-tools{justify-content:flex-start}
 #execucoesBody .exec-rail{grid-template-columns:minmax(0,1fr)}
 #execucoesBody .xc-summary{grid-template-columns:22px minmax(0,1fr) minmax(140px,.7fr) 18px}
 #execucoesBody .xc-main{grid-column:2;grid-row:1}
 #execucoesBody .xc-rank{grid-column:1;grid-row:1;align-self:start;padding-top:4px}
 #execucoesBody .xc-state{grid-column:2;grid-row:2}
 #execucoesBody .xc-value{grid-column:3;grid-row:1/3}
 #execucoesBody .xc-disclose{grid-column:4;grid-row:1}
 #execucoesBody .xc-detail{padding:20px}
 #execucoesBody .xc-meta{grid-template-columns:repeat(2,minmax(0,1fr))}
 #execucoesBody .exec-queue>header>small{display:none}
 #execucoesBody .exec-first{max-width:260px}
}
@media(max-width:560px){
 #execucoesBody .exec-wrap{gap:18px;padding:20px 14px}
 #execucoesBody .exec-heading h2{font-size:30px}
 #execucoesBody .exec-money{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:15px}
 #execucoesBody .exec-money.vazia{grid-template-columns:minmax(0,1fr)}
 #execucoesBody .xm-main>b{font-size:21px}
 #execucoesBody .xm-proj{border-left:1px dashed var(--exc-line);border-top:0;padding:0 0 0 12px}
 #execucoesBody .xm-proj>b{font-size:18px}
 #execucoesBody .exec-composition{grid-column:1/-1}
 #execucoesBody .exec-composition>.xm-tipos{grid-template-columns:repeat(2,minmax(0,1fr))}
 #execucoesBody .xm-gap{grid-column:1/-1;grid-row:auto;max-width:none;grid-template-columns:auto 1fr;align-items:center}
 #execucoesBody .xm-gap>b{grid-row:1/3}
 #execucoesBody .xm-gap>small{grid-column:2}
 #execucoesBody .xm-tipos{grid-template-columns:repeat(2,minmax(0,1fr));grid-row:auto}
 #execucoesBody .xm-start{max-width:none;width:100%}
 #execucoesBody .exec-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}
 #execucoesBody .exec-kpi:nth-child(odd){border-left:0;padding-left:0}
 #execucoesBody .exec-kpi:last-child{grid-column:1/-1}
 #execucoesBody .exec-toolbar{grid-template-columns:minmax(0,1fr);gap:12px}
 #execucoesBody .exec-sort{justify-content:space-between}
 #execucoesBody .exec-sort select{flex:1}
 #execucoesBody .exec-queue>header{align-items:stretch;flex-direction:column;gap:5px}
 #execucoesBody .exec-first{align-self:stretch;max-width:none}
 #execucoesBody .exec-first>summary{justify-content:flex-start}
 #execucoesBody .exec-search{max-width:none}
 #execucoesBody .exec-recortes button{min-height:40px}
 #execucoesBody .legal-disclosure-label{display:none}
 #execucoesBody .legal-phase-details>summary{flex-wrap:wrap;gap:10px}
 #execucoesBody .exec-overdue-count{flex-shrink:0;font-size:9px}
 #execucoesBody .xc-summary{grid-template-columns:18px minmax(0,1fr) 18px;gap:10px;padding:17px 6px}
 #execucoesBody .xc-main{grid-column:2;grid-row:1}
 #execucoesBody .xc-state{grid-column:2/4;grid-row:2}
 #execucoesBody .xc-value{grid-column:2/4;grid-row:3;text-align:left}
 #execucoesBody .xc-value>b{font-size:14px}
 #execucoesBody .xc-disclose{grid-column:3;grid-row:1}
 #execucoesBody .xc-detail{grid-template-columns:minmax(0,1fr);padding:18px 12px}
 #execucoesBody .xc-meta{grid-template-columns:minmax(0,1fr);gap:12px}
 #execucoesBody .xc-verbas{align-items:flex-start;flex-direction:column}
 #execucoesBody .xc-verbas.empty{display:grid;grid-template-columns:16px minmax(0,1fr)}
 #execucoesBody .xc-verbas.empty>.ic:last-child{display:none}
 #execucoesBody .xc-actions{flex-direction:column}
 #execucoesBody .exec-load-more small{display:block;margin:4px 0 0}
}
@media(prefers-reduced-motion:reduce){#execucoesBody *{scroll-behavior:auto;transition:none!important;animation:none!important}}
/* ===== Modal de anotacao das verbas =====
   SEM o prefixo #execucoesBody de proposito: este no mora em document.body, porque
   `renderExecucoes()` reescreve o innerHTML da aba e levaria o modal junto (veja o comentario
   em execVerbaRender). O prefixo `exec-vmodal`/`xv-` ja garante o isolamento. */
.exec-vmodal-backdrop {
  position: fixed; inset: 0; z-index: var(--alos-layer-modal, 13000);
  display: grid; place-items: center; padding: 20px; overscroll-behavior: contain;
  background: rgba(8, 20, 30, .62); -webkit-backdrop-filter: blur(5px); backdrop-filter: blur(5px);
}
.exec-vmodal {
  display: grid; align-content: start;
  width: min(620px, 100%); max-height: min(88vh, 860px); overflow: auto;
  border: 1px solid var(--border); border-radius: 18px; background: var(--card); color: var(--text);
  /* o modal esta FORA de .main, onde vive a regra global de fonte dos titulos */
  font-family: 'Manrope', sans-serif;
  box-shadow: 0 34px 90px -28px rgba(2, 12, 20, .7);
  animation: execVModalIn .2s cubic-bezier(.2, .8, .2, 1);
}
@keyframes execVModalIn { from { opacity: 0; transform: translateY(10px) scale(.99); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .exec-vmodal { animation: none; } }

.exec-vmodal > header {
  position: sticky; top: 0; z-index: 2;
  display: flex; align-items: flex-start; justify-content: space-between; gap: 12px;
  padding: 17px 19px; border-bottom: 1px solid var(--border); background: var(--card);
}
.exec-vmodal > header > div { min-width: 0; }
.exec-vmodal > header small { display: block; color: var(--xm-ink); font-size: 11px; font-weight: 900; letter-spacing: .13em; }
.exec-vmodal > header h3 { margin: 4px 0 0; color: var(--text-bright); font: 800 19px/1.2 'Manrope', sans-serif; letter-spacing: -.02em; }
.exec-vmodal > header p { margin: 3px 0 0; color: var(--muted); font-size: 11.5px; font-variant-numeric: tabular-nums; }
.exec-vmodal .xv-close {
  display: grid; place-items: center; width: 34px; height: 34px; flex: none;
  border: 1px solid var(--border); border-radius: 10px; background: var(--bg2); color: var(--muted); cursor: pointer;
}
.exec-vmodal .xv-close:hover { border-color: var(--primary); color: var(--text-bright); }
.exec-vmodal .xv-close .ic { width: 15px; height: 15px; }

/* Mesma regra da faixa: conferido solido e grande, projetado subordinado atras do tracejado. */
.exec-vmodal .xv-totais {
  display: grid; grid-template-columns: auto auto minmax(0, 1fr); align-items: center; gap: 8px 16px;
  padding: 15px 19px; border-bottom: 1px solid var(--border); background: var(--bg2);
}
.exec-vmodal .xv-totais > div { display: grid; gap: 1px; min-width: 0; }
.exec-vmodal .xv-totais small { font-size: 11px; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.exec-vmodal .xv-totais .ef small { color: var(--xm-ink); }
.exec-vmodal .xv-totais .ef b { color: var(--text-bright); font: 800 24px/1.05 'Manrope', sans-serif; letter-spacing: -.03em; font-variant-numeric: tabular-nums; }
.exec-vmodal .xv-totais .pj { padding-left: 16px; border-left: 1px dashed var(--muted2); }
.exec-vmodal .xv-totais .pj small { color: var(--muted); }
.exec-vmodal .xv-totais .pj b { color: var(--text-soft); font: 750 17px/1.15 'Manrope', sans-serif; font-variant-numeric: tabular-nums; }
.exec-vmodal .xv-totais > p { margin: 0; min-width: 0; color: var(--muted); font-size: 10.5px; line-height: 1.45; }
.exec-vmodal .xv-totais > p b { color: var(--text); font-weight: 800; }

.exec-vmodal .xv-lista { display: grid; gap: 7px; margin: 0; padding: 15px 19px; list-style: none; }
.exec-vmodal .xv-lista > li {
  display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: start; gap: 4px 12px;
  padding: 10px 12px; border: 1px solid var(--border); border-left: 3px solid var(--xcv, var(--muted));
  border-radius: 11px; background: var(--bg2);
}
/* Mesma lingua do chip: tracejado = projetado. Aqui so o filete da esquerda. */
.exec-vmodal .xv-lista > li.pj { border-left-style: dashed; }
.exec-vmodal .xv-lista > li.editing { border-color: var(--primary); box-shadow: 0 0 0 2px var(--primary-ring); }
.exec-vmodal .xv-lista > li.vazia {
  display: block; padding: 16px; border: 1px dashed var(--border);
  color: var(--muted); font-size: 12px; line-height: 1.55; text-align: center;
}
.exec-vmodal .xv-lista > li.vazia b { color: var(--text); }
.exec-vmodal .xvl-tipo { grid-column: 1; grid-row: 1; display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 1px 8px; min-width: 0; }
.exec-vmodal .xvl-tipo > i { grid-column: 1; grid-row: 1; width: 8px; height: 8px; align-self: center; border-radius: 50%; background: var(--xcv, var(--muted)); }
.exec-vmodal .xvl-tipo > b { grid-column: 2; grid-row: 1; color: var(--text-bright); font-size: 12.5px; font-weight: 800; }
.exec-vmodal .xvl-tipo > small { grid-column: 2; grid-row: 2; color: var(--muted); font-size: 10.5px; }
.exec-vmodal .xvl-tipo > em { grid-column: 2; grid-row: 3; margin-top: 3px; color: var(--text); font-size: 11.5px; line-height: 1.45; }
.exec-vmodal .xvl-val { grid-column: 2; grid-row: 1; color: var(--text-bright); font: 800 15px 'Manrope', sans-serif; font-variant-numeric: tabular-nums; white-space: nowrap; }
.exec-vmodal .xv-lista > li.pj .xvl-val { color: var(--text-soft); font-weight: 750; }
.exec-vmodal .xvl-acoes { grid-column: 1 / -1; grid-row: 2; display: flex; flex-wrap: wrap; gap: 6px; margin-top: 4px; }
.exec-vmodal .xvl-acoes button {
  padding: 5px 9px; border: 1px solid var(--border); border-radius: 8px; background: var(--card);
  color: var(--text); font: 800 10.5px 'Manrope', sans-serif; cursor: pointer;
}
.exec-vmodal .xvl-acoes button:hover { border-color: var(--primary); color: var(--text-bright); }
.exec-vmodal .xvl-acoes button.danger { color: #b91c1c; }
.exec-vmodal .xvl-acoes button.danger:hover { border-color: #dc2626; background: rgba(220, 38, 38, .08); }

.exec-vmodal .xv-form { display: grid; gap: 10px; padding: 16px 19px; border-top: 1px solid var(--border); background: var(--bg2); }
.exec-vmodal .xv-form h4 { margin: 0; color: var(--text-bright); font: 800 13px 'Manrope', sans-serif; }
.exec-vmodal .xv-grid { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 10px; }
.exec-vmodal .xv-form label {
  display: grid; gap: 4px; min-width: 0;
  color: var(--muted); font-size: 10px; font-weight: 900; letter-spacing: .08em; text-transform: uppercase;
}
.exec-vmodal .xv-form select, .exec-vmodal .xv-form input[type="text"] {
  width: 100%; min-width: 0; min-height: 40px; padding: 0 11px;
  border: 1px solid var(--border); border-radius: 10px; background: var(--input-bg, var(--card));
  color: var(--text-bright); font: 700 13px 'Manrope', sans-serif;
}
.exec-vmodal .xv-form select:focus, .exec-vmodal .xv-form input:focus { outline: 0; border-color: var(--primary); box-shadow: 0 0 0 3px var(--primary-ring); }
.exec-vmodal .xv-valor input { font-weight: 800; font-variant-numeric: tabular-nums; }
.exec-vmodal .xv-obs input::placeholder { color: var(--muted); font-weight: 600; }

/* Os dois radios DEPOIS de `.xv-form label` (mesma especificidade: quem vem depois vence) --
   senao o rotulo do cartao herdava caixa alta e letter-spacing do formulario. */
.exec-vmodal .xv-nat { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.exec-vmodal .xv-nat > label {
  position: relative; display: grid; gap: 2px; padding: 10px 12px;
  border: 1px solid var(--border); border-radius: 11px; background: var(--card);
  letter-spacing: normal; text-transform: none; cursor: pointer;
}
.exec-vmodal .xv-nat > label > input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.exec-vmodal .xv-nat > label > b { color: var(--text); font-size: 12.5px; font-weight: 800; }
.exec-vmodal .xv-nat > label > small { color: var(--muted); font-size: 10.5px; font-weight: 650; line-height: 1.45; letter-spacing: normal; text-transform: none; }
.exec-vmodal .xv-nat > label:focus-within { box-shadow: 0 0 0 3px var(--primary-ring); }
/* Verde SOLIDO so no efetivo; `projetado` escolhido fica tracejado e neutro. */
.exec-vmodal .xv-nat > label.nat-efetivo.on { border-color: var(--xm-line); background: var(--xm-wash); }
.exec-vmodal .xv-nat > label.nat-efetivo.on > b { color: var(--xm-ink); }
.exec-vmodal .xv-nat > label.nat-projetado.on { border-style: dashed; border-color: var(--muted2); background: var(--card-hover); }
.exec-vmodal .xv-nat > label.nat-projetado.on > b { color: var(--text-bright); }

.exec-vmodal .xv-acoes { display: flex; justify-content: flex-end; gap: 8px; margin-top: 2px; }
.exec-vmodal .xv-acoes button {
  min-height: 40px; padding: 0 15px; border: 1px solid var(--border); border-radius: 10px;
  background: var(--card); color: var(--text); font: 800 12px 'Manrope', sans-serif; cursor: pointer;
}
.exec-vmodal .xv-acoes button.primary { border-color: var(--xm-btn-bg); background: var(--xm-btn-bg); color: var(--xm-btn-ink); }
.exec-vmodal .xv-acoes button:hover:not(:disabled) { filter: brightness(.95); }
.exec-vmodal .xv-acoes button:disabled { opacity: .6; cursor: wait; }

.exec-vmodal .xv-ajuda { display: grid; gap: 7px; padding: 14px 19px 18px; border-top: 1px solid var(--border); }
.exec-vmodal .xv-ajuda > small { color: var(--muted); font-size: 11px; font-weight: 900; letter-spacing: .12em; }
/* Bloco, nao grid: depois do <b> vem TEXTO SOLTO, que num grid viraria item anonimo e caia
   para a linha de baixo. O ponto colorido fica absoluto. */
.exec-vmodal .xv-ajuda > span { position: relative; display: block; padding-left: 15px; color: var(--muted); font-size: 11.5px; line-height: 1.5; }
.exec-vmodal .xv-ajuda > span > i { position: absolute; left: 0; top: 6px; width: 7px; height: 7px; border-radius: 50%; background: var(--xcv, var(--muted)); }
.exec-vmodal .xv-ajuda > span > b { color: var(--text); font-weight: 800; }


/* Modal remains the existing editor, with scoped accessibility/reflow polish. */
.exec-vmodal{--card:var(--exc-surface);--bg2:var(--exc-raised);--border:var(--exc-line);--text:var(--exc-text);--text-bright:var(--exc-text);--muted:var(--exc-muted);background:var(--exc-surface);color:var(--exc-text);max-height:calc(100dvh - 40px);min-width:0}
.exec-vmodal *{box-sizing:border-box}
.exec-vmodal :is(h3,h4){color:var(--exc-text);font-family:Archivo,Manrope,sans-serif}
.exec-vmodal :is(input,select,button){min-height:44px}
.exec-vmodal .xv-close{width:44px;height:44px}
.exec-vmodal .xv-totais b,.exec-vmodal .xvl-val{font-family:'JetBrains Mono',monospace;font-variant-numeric:tabular-nums}
.exec-vmodal .xvl-tipo,.exec-vmodal .xv-lista>li,.exec-vmodal .xv-ajuda>span,.exec-vmodal header p{overflow-wrap:anywhere;min-width:0}
body.dark .exec-vmodal .xvl-acoes button.danger{color:var(--exc-danger)}
@media(max-width:560px){
 .exec-vmodal-backdrop{padding:10px}
 .exec-vmodal{max-height:calc(100dvh - 20px)}
 .exec-vmodal .xv-totais,.exec-vmodal .xv-grid,.exec-vmodal .xv-nat{grid-template-columns:minmax(0,1fr)}
 .exec-vmodal .xv-totais .pj{padding-left:0;padding-top:10px;border-left:0;border-top:1px dashed var(--exc-line)}
 .exec-vmodal .xv-acoes{flex-direction:column-reverse}
 .exec-vmodal .xv-acoes button{width:100%}
 .exec-vmodal .xv-lista>li{grid-template-columns:minmax(0,1fr)}
 .exec-vmodal .xvl-val{grid-column:1;grid-row:2}
 .exec-vmodal .xvl-acoes{grid-column:1;grid-row:3}
 .exec-vmodal>header,.exec-vmodal .xv-totais,.exec-vmodal .xv-lista,.exec-vmodal .xv-form,.exec-vmodal .xv-ajuda{padding-left:14px;padding-right:14px}
}
