:root{
  --p:#237A53;--pd:#145238;--pl:#A5D7B8;--bg:#F4F5F7;--w:#FFFFFF;--b:#D9DCE1;
  --ok:#007D61;--err:#B61932;--ink:#142F21;--muted:#6E6874;--warn:#A15C00;--soft:#F4FBF7;
}
*{box-sizing:border-box}html,body{margin:0;padding:0;font-family:Inter,Segoe UI,Arial,sans-serif;background:var(--bg);color:var(--ink)}
button,input,select{font:inherit}.app{display:flex;min-height:100vh}.sidebar{width:224px;background:linear-gradient(180deg,var(--p),#299F60);color:#fff;position:fixed;inset:0 auto 0 0;padding:24px 14px;display:flex;flex-direction:column;z-index:5;box-shadow:4px 0 18px #0D452714}.brand{padding:0 12px 26px;font-size:12px;color:#E5F4EC}.shots-brand{font-size:29px;font-weight:900;letter-spacing:-3px;color:#fff;margin-bottom:8px}.sidebar nav{display:flex;flex-direction:column;gap:5px}.nav{border:0;background:transparent;color:#DBEFE4;text-align:left;padding:12px 14px;border-radius:10px;cursor:pointer;display:flex;gap:11px;align-items:center}.nav:hover,.nav.active{background:rgba(255,255,255,.16);color:#fff;box-shadow:inset 3px 0 0 #fff}.nav-sep{font-size:9px;letter-spacing:1.5px;color:#DDF1E6;margin:20px 12px 6px}.side-footer{margin-top:auto;padding:12px;font-size:11px;color:#D7EEE2}.dot{display:inline-block;width:7px;height:7px;background:#50D4AC;border-radius:50%;margin-right:6px}
main{margin-left:224px;width:calc(100% - 224px);min-height:100vh;display:flex;flex-direction:column}header{min-height:106px;padding:22px 36px;background:#fff;border-bottom:1px solid #E8EFEB;display:flex;align-items:center;justify-content:space-between;gap:20px;position:sticky;top:0;z-index:30;box-shadow:0 3px 12px rgba(36,20,47,.05)}.header-title{min-width:210px}.header-tools{display:flex;align-items:center;gap:14px}.context-select,.role-switch{display:flex;flex-direction:column;gap:4px}.context-select span,.role-switch span{font-size:10px;color:var(--muted);font-weight:700;text-transform:uppercase;letter-spacing:.5px}.context-select select,.role-switch select{border:1px solid var(--b);border-radius:9px;background:#fff;padding:8px 10px}.eyebrow{font-size:10px;letter-spacing:1.6px;color:var(--p);font-weight:800}h1{font-size:27px;margin:4px 0 0}.user{display:flex;align-items:center;gap:9px;border-left:1px solid var(--b);padding-left:14px}.user small{display:block;color:var(--muted);font-size:11px}.avatar{width:36px;height:36px;border-radius:50%;background:#E5F6ED;color:var(--pd);display:grid;place-items:center;font-weight:800}
#content{padding:28px 36px 42px;flex:1;max-width:1580px;width:100%;margin:auto}footer{padding:15px 36px;background:#fff;border-top:1px solid var(--b);font-size:11px;color:var(--muted)}footer b{color:var(--p)}
.historic-banner{margin:0 36px;background:#FFF4E5;border:1px solid #F1D5A6;color:#7A4C00;padding:10px 14px;border-radius:0 0 10px 10px;font-size:12px}.hidden{display:none!important}.hero{display:flex;justify-content:space-between;gap:20px;align-items:flex-end;margin-bottom:22px}.hero h2{font-size:29px;margin:0 0 7px}.hero p{margin:0;color:var(--muted)}
.btn{border:1px solid var(--b);background:#fff;border-radius:8px;padding:10px 14px;cursor:pointer;font-weight:700;color:var(--ink)}.btn:hover{border-color:#BEB7C3;background:#FBFDFC}.btn.primary{background:var(--p);color:#fff;border-color:var(--p)}.btn.primary:hover{background:#2AA563}.btn.dark{background:var(--pd);color:#fff;border-color:var(--pd)}.btn.sm{padding:7px 10px;font-size:12px}.btn.ghost{background:transparent}.btn.link{border:0;padding:0;background:transparent;color:var(--p)}
.cards{display:grid;grid-template-columns:repeat(6,1fr);gap:12px;margin:16px 0 20px}.card,.panel{background:#fff;border:1px solid var(--b);border-radius:13px;padding:17px;box-shadow:0 3px 12px #17382608}.card.kpi{position:relative;overflow:hidden}.card.kpi:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--p)}.card.kpi.err:before{background:var(--err)}.card.kpi.warn:before{background:#D58A16}.card.kpi.ok:before{background:var(--ok)}.metric{font-size:28px;font-weight:850;margin:7px 0}.label{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.55px;font-weight:750}.sub{font-size:12px;color:var(--muted)}.ok{color:var(--ok)}.err{color:var(--err)}.warn{color:var(--warn)}
.grid2{display:grid;grid-template-columns:1.35fr .65fr;gap:16px}.grid3{display:grid;grid-template-columns:1.1fr 1fr .9fr;gap:16px}.grid4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.panel h3{margin:0 0 14px;font-size:15px}.panel-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.panel-title h3{margin:0}.filters{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:16px}.filters input,.filters select,.field input,.field select{background:#fff;border:1px solid var(--b);border-radius:8px;padding:10px 11px;min-width:150px}.filter-chip{display:inline-flex;align-items:center;gap:6px;border:1px solid #C9E3D5;background:#F6FCF9;color:var(--pd);border-radius:99px;padding:7px 10px;font-size:11px}
.table-wrap{overflow:auto;border:1px solid var(--b);border-radius:11px;background:#fff;max-height:600px}table{border-collapse:collapse;width:100%;font-size:12px;background:#fff}thead th{position:sticky;top:0;z-index:1}th{text-align:left;background:#F9FBFA;color:#655D6A;font-size:10px;text-transform:uppercase;letter-spacing:.45px;padding:11px;border-bottom:1px solid var(--b);white-space:nowrap}td{padding:12px 11px;border-bottom:1px solid #EEE;vertical-align:middle}tr:last-child td{border-bottom:0}tbody tr:hover{background:#FAFDFB}.clickrow{cursor:pointer}.client-cell small,.table-sub{display:block;color:var(--muted);margin-top:3px;font-size:10px}
.badge{display:inline-flex;align-items:center;border-radius:99px;padding:5px 8px;font-size:10px;font-weight:800;background:#EEE;white-space:nowrap}.badge.ok{background:#E4F4EF;color:var(--ok)}.badge.err{background:#FAE8EC;color:var(--err)}.badge.warn{background:#FFF1DD;color:#9A5B00}.badge.purple{background:#E7F7EE;color:var(--pd)}.badge.neutral{background:#EEF0F2;color:#5A5D63}.badge.blue{background:#E8F1FA;color:#2D5F88}
.progress{height:8px;background:#EEE;border-radius:99px;overflow:hidden}.progress span{display:block;height:100%;background:var(--p)}.progress.ok span{background:var(--ok)}.progress.warn span{background:#D58A16}.progress.err span{background:var(--err)}
.team-card{padding:12px 0;border-bottom:1px solid #EEE}.team-card:last-child{border-bottom:0}.team-top{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;margin-bottom:7px}.team-meta{display:flex;gap:12px;color:var(--muted);font-size:11px;margin-top:7px}.owner{display:flex;align-items:center;gap:8px}.owner i{width:26px;height:26px;border-radius:50%;background:#E5F6ED;color:var(--pd);display:grid;place-items:center;font-style:normal;font-size:10px;font-weight:800}.owner small{display:block;color:var(--muted)}
.attention{display:flex;flex-direction:column;gap:9px}.att{padding:12px;border:1px solid var(--b);border-radius:10px;display:flex;justify-content:space-between;align-items:center;gap:10px;background:#fff}.att.hot{border-color:#EDB4BF;background:#FFF8FA}.att.warn{border-color:#F0D4AA;background:#FFFBF4}.att b{font-size:12px}.att small{display:block;color:var(--muted);margin-top:3px}.severity-bar{width:5px;border-radius:5px;height:32px;display:inline-block}.severity-bar.err{background:var(--err)}.severity-bar.warn{background:#D68A13}.severity-bar.ok{background:var(--ok)}
.chart-box{height:230px;display:flex;align-items:end;gap:12px;padding-top:18px}.month-bar{flex:1;text-align:center}.month-bar .bar{height:150px;background:#EEE;border-radius:8px 8px 3px 3px;display:flex;align-items:end;position:relative;overflow:hidden}.month-bar .bar span{display:block;width:100%;background:linear-gradient(180deg,#69CF99,var(--p));border-radius:8px 8px 3px 3px}.month-bar small{display:block;margin-top:6px;color:var(--muted)}.month-bar b{font-size:11px}.line-legend{display:flex;gap:16px;font-size:11px;color:var(--muted);margin-top:6px}.legend-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:4px}.legend-dot.p{background:var(--p)}.legend-dot.g{background:var(--ok)}
.gargalo-row{display:grid;grid-template-columns:170px 1fr 40px;gap:10px;align-items:center;margin:11px 0}.gargalo-row span{font-size:12px}.gargalo-row b{text-align:right}.mini-track{height:9px;background:#EEE;border-radius:99px;overflow:hidden}.mini-track i{display:block;height:100%;background:#91D3B0}
.timeline{position:relative;margin:8px 0 4px 12px;padding-left:24px}.timeline:before{content:"";position:absolute;left:5px;top:8px;bottom:8px;width:2px;background:#D9E8E0}.timeline-item{position:relative;padding:0 0 18px}.timeline-item:last-child{padding-bottom:0}.timeline-item:before{content:"";position:absolute;left:-24px;top:4px;width:11px;height:11px;border-radius:50%;background:#fff;border:3px solid var(--p)}.timeline-item.ok:before{border-color:var(--ok)}.timeline-item.warn:before{border-color:#D58A16}.timeline-item.err:before{border-color:var(--err)}.timeline-item b{display:block;font-size:12px}.timeline-item small{color:var(--muted)}
.client-hero{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:16px}.client-hero h2{margin:0 0 6px;font-size:28px}.client-meta{display:flex;gap:8px;flex-wrap:wrap}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--b);margin-bottom:18px}.tab{padding:10px 13px;border:0;background:transparent;cursor:pointer;border-bottom:2px solid transparent;color:var(--muted)}.tab.active{border-color:var(--p);color:var(--pd);font-weight:800}.tab-pane{display:none}.tab-pane.active{display:block}.formgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.field{display:flex;flex-direction:column;gap:6px}.field label{font-size:11px;font-weight:800}.field input,.field select{width:100%}.notice{border-left:4px solid var(--p);background:#EFFAF4;padding:12px 14px;border-radius:7px;font-size:12px;margin:12px 0}.notice.warn{border-left-color:#D58A16;background:#FFF8ED}.notice.err{border-left-color:var(--err);background:#FFF2F5}
.source-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.source{border:1px solid var(--b);border-radius:10px;padding:14px}.source.on{border-color:#A7D5C9;background:#F5FBF9}.source h4{margin:0 0 8px}.steps{display:flex;gap:5px;margin:8px 0 22px}.step{flex:1;padding:10px;border-bottom:3px solid var(--b);font-size:11px;color:var(--muted)}.step.active{border-color:var(--p);color:var(--pd);font-weight:800}.step.done{border-color:var(--ok);color:var(--ok)}.actions{display:flex;justify-content:flex-end;gap:8px;margin-top:20px}.maprow{display:grid;grid-template-columns:1.2fr 40px 1.2fr 115px;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid #EEE}.switch{display:flex;align-items:center;gap:8px}.check{accent-color:var(--p)}
.modal{position:fixed;inset:0;background:#102218AA;z-index:20;display:grid;place-items:center;padding:30px}.modal-card{background:#fff;border-radius:14px;padding:26px;width:min(980px,96vw);max-height:92vh;overflow:auto;position:relative;box-shadow:0 20px 70px #0005}.x{position:absolute;right:14px;top:10px;border:0;background:transparent;font-size:25px;cursor:pointer}.modal h2{margin-top:6px}.modal-wide{width:min(1180px,96vw)}
.date-rule{display:flex;align-items:center;gap:8px}.date-rule input{min-width:90px;width:90px}.pagination{display:flex;justify-content:space-between;align-items:center;margin-top:10px;color:var(--muted);font-size:11px}.status-dot{width:8px;height:8px;border-radius:50%;display:inline-block;margin-right:5px}.status-dot.ok{background:var(--ok)}.status-dot.warn{background:#D58A16}.status-dot.err{background:var(--err)}
@media(max-width:1180px){.cards{grid-template-columns:repeat(3,1fr)}.grid3,.grid2{grid-template-columns:1fr}.header-tools{flex-wrap:wrap;justify-content:flex-end}.source-grid{grid-template-columns:repeat(2,1fr)}}

.layout-summary{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;padding:16px 18px;border:1px solid #D9DCE1;border-radius:12px;background:linear-gradient(180deg,#fff,#FAFDFB);margin-bottom:12px}.layout-summary h3{margin:5px 0 4px;font-size:19px}.actions.left{justify-content:flex-start;margin:10px 0 16px}.compact-grid{grid-template-columns:1fr 1fr}.panel.inset{box-shadow:none;background:#FBFDFC}.match-flow{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.match-step{display:flex;align-items:center;gap:9px;border:1px solid #CEE7DA;background:#fff;border-radius:10px;padding:10px 12px;min-width:135px}.match-step>b{display:grid;place-items:center;width:25px;height:25px;border-radius:50%;background:#237A53;color:#fff;font-size:11px}.match-step span{font-weight:800;font-size:12px}.match-step small{display:block;font-weight:400;color:#746C78;font-size:10px;margin-top:2px}.match-arrow{font-size:10px;color:#746C78}.vertical-flow{display:grid;grid-template-columns:1fr;gap:8px}.vertical-flow .match-step{width:100%}.check-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.short-table{max-height:280px}.layout-recognized{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:15px 17px;border:1px solid #A7D5C9;background:#F4FBF8;border-radius:12px;margin-bottom:16px}.layout-recognized h3{margin:7px 0 2px}.enrich-tags{display:flex;flex-wrap:wrap;gap:8px}.enrich-tags span{padding:7px 10px;border-radius:99px;background:#E7F7EE;color:#145238;font-size:11px;font-weight:800}.upload-zone{border:2px dashed #B8DDC9;border-radius:14px;padding:34px;text-align:center;background:#FAFDFB;display:flex;flex-direction:column;align-items:center;gap:9px}.upload-zone span{color:#746C78;font-size:12px}.upload-zone .btn{margin-top:6px}
@media(max-width:900px){.compact-grid{grid-template-columns:1fr}.check-grid{grid-template-columns:1fr}}


/* ===== v0.8 | Bradesco - Geração de faturamento ===== */
.generation-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:16px;align-items:start}
.generation-main{padding:22px}
.generation-header{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;padding-bottom:16px;border-bottom:1px solid var(--b)}
.generation-header h3{font-size:23px;margin:4px 0 8px}
.generation-fields{margin:18px 0}.full-field{grid-column:1/-1}
.section-heading{display:flex;align-items:end;justify-content:space-between;gap:16px;margin:24px 0 11px}
.section-heading h3{margin:0 0 3px;font-size:16px}.section-heading p{margin:0;color:var(--muted);font-size:11px}
.generation-sources{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.generation-source{padding:13px;border:1px solid var(--b);border-radius:11px;background:#fff}
.generation-source.ok{background:#F5FBF9;border-color:#A7D5C9}
.generation-source-top{display:flex;align-items:center;justify-content:space-between;gap:6px;font-size:11px;font-weight:800}
.generation-source>b{display:block;font-size:18px;margin:10px 0 3px}.generation-source small{color:var(--muted);font-size:10px}
.generation-table{max-height:none}.generation-table td:nth-child(n+2){font-variant-numeric:tabular-nums}
.generation-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:14px}
.generation-summary>div{border:1px solid var(--b);border-radius:10px;padding:12px;background:#FBFDFC}
.generation-summary span,.mini-info span{display:block;font-size:9px;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);font-weight:800}
.generation-summary b{display:block;font-size:18px;margin:5px 0}.generation-summary small{color:var(--muted);font-size:10px}
.destination-box{margin-top:14px;border:1px dashed #B8DDC9;background:#FAFDFB;border-radius:11px;padding:13px 14px;display:flex;justify-content:space-between;gap:15px;align-items:center}
.destination-box b{display:block;font-size:11px;margin:5px 0;word-break:break-all}.destination-box small{color:var(--muted)}
.generation-actions{padding-top:4px}.sticky-side{position:sticky;top:128px}
.check-item{display:flex;gap:10px;padding:10px 0;border-bottom:1px solid #EEE}.check-item:last-of-type{border-bottom:0}.check-icon{width:23px;height:23px;border-radius:50%;background:#E4F4EF;color:var(--ok);display:grid;place-items:center;font-weight:900;flex:0 0 auto}.check-item b{font-size:11px;display:block}.check-item small{display:block;color:var(--muted);font-size:10px;margin-top:2px}.divider{height:1px;background:var(--b);margin:14px 0}.mini-info{display:flex;justify-content:space-between;align-items:center;padding:6px 0}.mini-info span{display:inline}.mini-info b{font-size:11px}
.generation-result{margin-top:16px;border-color:#9BCDBC;background:linear-gradient(135deg,#F3FBF8,#fff);display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:15px}.result-icon{width:44px;height:44px;border-radius:50%;background:var(--ok);color:#fff;display:grid;place-items:center;font-size:23px;font-weight:900}.result-copy h3{margin:4px 0}.result-copy p{margin:0;color:var(--muted);font-size:11px}.result-actions{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}
.refaturamento-box{display:grid;grid-template-columns:.7fr 1.3fr;gap:16px;border:1px solid #E2C28F;background:#FFF9EF;padding:14px;border-radius:11px;margin-bottom:16px}.refaturamento-box b{display:block}.refaturamento-box small{display:block;color:var(--muted);margin-top:4px}
.empty-state{display:flex;flex-direction:column;align-items:center;gap:5px;padding:24px;color:var(--muted)}.empty-state b{color:var(--ink)}
.pdf-preview{padding:3px}.pdf-exec-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:15px 0}.pdf-exec-grid>div{border:1px solid var(--b);border-radius:9px;padding:10px}.pdf-exec-grid span{font-size:9px;color:var(--muted);text-transform:uppercase;font-weight:800;display:block}.pdf-exec-grid b{font-size:12px;display:block;margin-top:4px}
.toast{position:fixed;right:24px;bottom:24px;background:#142F21;color:#fff;padding:12px 16px;border-radius:9px;box-shadow:0 10px 30px #0004;z-index:99;opacity:0;transform:translateY(10px);pointer-events:none;transition:.2s;font-size:12px}.toast.show{opacity:1;transform:none}.toast.error{background:var(--err)}
@media(max-width:1180px){.generation-layout{grid-template-columns:1fr}.sticky-side{position:static}.generation-sources,.generation-summary{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.generation-sources,.generation-summary,.pdf-exec-grid{grid-template-columns:1fr}.generation-result{grid-template-columns:1fr}.result-actions{justify-content:flex-start}.refaturamento-box{grid-template-columns:1fr}}


/* ===== v0.9 | Ajustes UX Central de geração ===== */
.modal-close-top{
  position:absolute!important;
  top:16px!important;
  right:18px!important;
  z-index:50!important;
  width:36px!important;
  height:36px!important;
  min-width:36px!important;
  border-radius:10px!important;
  border:1px solid #D9DCE1!important;
  background:#FFFFFF!important;
  color:#142F21!important;
  display:grid!important;
  place-items:center!important;
  font-size:24px!important;
  line-height:1!important;
  cursor:pointer!important;
  box-shadow:0 2px 8px rgba(36,20,47,.08)!important;
}
.modal-close-top:hover{background:#F4F5F7!important;color:#237A53!important}
.modal-card,.modal-box,.modal-content{position:relative}

.purpose-strip{
  display:grid;
  grid-template-columns:1.1fr .9fr;
  gap:18px;
  align-items:center;
  border:1px solid #D9DCE1;
  border-left:4px solid #237A53;
  background:#FFFFFF;
  border-radius:12px;
  padding:14px 16px;
  margin-bottom:16px;
}
.purpose-strip b{display:block;color:#142F21;font-size:12px;margin-bottom:4px}
.purpose-strip span{color:#6F6878;font-size:11px;line-height:1.45}
.purpose-flow{display:flex;gap:6px;justify-content:flex-end;flex-wrap:wrap}
.purpose-flow span{
  background:#EAF9F1;
  border:1px solid #D2F1E0;
  color:#1D7A48;
  padding:7px 9px;
  border-radius:999px;
  font-weight:800;
  white-space:nowrap;
}
.generation-empty{border:1px dashed #D9DCE1;border-radius:10px;background:#FBFDFC}
@media(max-width:900px){.purpose-strip{grid-template-columns:1fr}.purpose-flow{justify-content:flex-start}}


/* ===== v1.0 | Menu por fluxo operacional ===== */
.nav-section-label{
  margin:18px 18px 7px;
  font-size:9px;
  font-weight:900;
  letter-spacing:1.2px;
  color:rgba(255,255,255,.65);
  text-transform:uppercase;
}
#nav .nav{position:relative}
#nav .nav[data-page="bases"] span::after,
#nav .nav[data-page="processamentos"] span::after,
#nav .nav[data-page="validacoes"] span::after,
#nav .nav[data-page="gerar"] span::after,
#nav .nav[data-page="relatorios"] span::after{
  position:absolute;
  right:15px;
  top:50%;
  transform:translateY(-50%);
  color:rgba(255,255,255,.35);
  font-size:12px;
}
#nav .nav[data-page="bases"] span::after{content:"1"}
#nav .nav[data-page="processamentos"] span::after{content:"2"}
#nav .nav[data-page="validacoes"] span::after{content:"3"}
#nav .nav[data-page="gerar"] span::after{content:"4"}
#nav .nav[data-page="relatorios"] span::after{content:"5"}

.workflow-strip{
  display:flex;
  align-items:center;
  gap:7px;
  background:#fff;
  border:1px solid #D9DCE1;
  border-radius:12px;
  padding:10px 12px;
  margin-bottom:18px;
  overflow-x:auto;
}
.workflow-step{display:flex;align-items:center;gap:8px;min-width:145px}
.workflow-step>span{
  width:24px;height:24px;border-radius:50%;
  background:#E4F8ED;color:#228F55;font-weight:900;
  display:grid;place-items:center;font-size:10px;flex:0 0 auto
}
.workflow-step b{font-size:10px;display:block;color:#142F21}
.workflow-step small{font-size:9px;color:#756E7D;display:block;margin-top:2px}
.workflow-arrow{color:#9AC3AD;font-weight:900}
@media(max-width:900px){.workflow-strip{align-items:flex-start}.workflow-arrow{padding-top:5px}}


/* ===== v1.1 | Correções verificadas ===== */
.workflow-step{
  border:0;
  background:transparent;
  padding:3px 5px;
  border-radius:9px;
  cursor:pointer;
  text-align:left;
  color:inherit;
  font-family:inherit;
}
.workflow-step:hover{background:#F1FAF5}
#nav .nav[data-page="bases"] span::after,
#nav .nav[data-page="processamentos"] span::after,
#nav .nav[data-page="validacoes"] span::after,
#nav .nav[data-page="gerar"] span::after,
#nav .nav[data-page="relatorios"] span::after{
  pointer-events:none;
}


/* ===== v1.2 | Correção pontual do modal de cliente ===== */
.client-hero-modal{
  padding-right:64px; /* reserva fixa para o botão X */
}
.client-hero-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
  flex-wrap:wrap;
}
.modal-card:has(.client-hero-modal) .modal-close-top{
  top:18px!important;
  right:18px!important;
}
@media(max-width:760px){
  .client-hero-modal{
    padding-right:54px;
    align-items:flex-start;
  }
  .client-hero-actions{
    width:100%;
    justify-content:flex-start;
    margin-top:10px;
  }
}

.btn:disabled{
  opacity:.5;
  cursor:not-allowed;
  background:#ECEDEF!important;
  border-color:#D9DCE1!important;
  color:#777!important;
}
.check-icon.pending{
  background:#FFF1DB;
  color:#A46100;
}

/* ===== v1.4 | Backend real ===== */
.loading-card{
  border:1px dashed #D9DCE1;
  border-radius:10px;
  padding:18px;
  color:#6F6878;
  background:#FBFDFC;
  font-size:11px;
}
.error-notice{
  border-color:#E7A5AE!important;
  background:#FFF5F6!important;
  color:#8F1024!important;
  margin-bottom:16px;
}
.table-sub{display:block;color:#756E7D;font-size:9px;margin-top:2px}

/* ===== v1.5 | Dados reais somente ===== */
.path-cell{max-width:330px;word-break:break-all;font-size:10px;color:#655D6D}
.progress{height:7px;background:#ECEDEF;border-radius:999px;overflow:hidden;min-width:100px}
.progress i{display:block;height:100%;background:#237A53;border-radius:999px}
.loading-card{border:1px dashed #D9DCE1;border-radius:10px;padding:18px;background:#FBFDFC;color:#6F6878}
.error-notice{border-color:#E8A6AF!important;background:#FFF5F6!important;color:#8F1024!important}

/* ===== v1.6 | Cadastro completo restaurado ===== */
.config-tabs{margin-top:14px}
textarea{width:100%;border:1px solid #D9DCE1;border-radius:9px;padding:10px 12px;font-family:inherit;resize:vertical}
.layout-summary{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:14px;border:1px solid #D9DCE1;border-radius:10px;background:#FBFDFC;margin:12px 0}
.layout-summary h3{margin:4px 0}
.check-grid{display:grid;grid-template-columns:repeat(5,minmax(100px,1fr));gap:8px;padding:10px;border:1px solid #E6E7EA;border-radius:9px;background:#FBFDFC}
.switch{display:flex;gap:7px;align-items:center;font-size:11px;font-weight:700}
@media(max-width:900px){.check-grid{grid-template-columns:repeat(2,1fr)}}

/* ===== v1.7 | Feedback e diagnóstico ===== */
.diagnostic-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:14px}
.diagnostic-summary>div{border:1px solid #D9DCE1;border-radius:10px;padding:12px;background:#FBFDFC}
.diagnostic-summary span{display:block;font-size:9px;text-transform:uppercase;letter-spacing:.5px;color:#756E7D;font-weight:800}
.diagnostic-summary b{display:block;margin-top:5px;font-size:13px}
.btn[disabled]{cursor:not-allowed;opacity:.55}
@media(max-width:760px){.diagnostic-summary{grid-template-columns:1fr}}

/* ===== v1.9 | Grupos de geração e artefatos ===== */
.subcontract-grid{display:grid;grid-template-columns:repeat(5,minmax(90px,1fr));gap:8px;margin-top:6px}
.subcontract-option{display:flex;align-items:center;gap:8px;border:1px solid #D9DCE1;border-radius:9px;padding:9px 10px;background:#FBFDFC;cursor:pointer;font-size:11px;font-weight:800}
.subcontract-option:has(input:checked){border-color:#237A53;background:#ECFAF3;color:#145238}.subcontract-option input{accent-color:#237A53}
.generation-groups{margin-top:14px}.group-output-row{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:9px 0;border-bottom:1px solid #ECEDEF;font-size:11px}.group-output-row:last-child{border-bottom:0}.group-output-row span{color:#6F6878}
.file-actions{display:flex;gap:5px;flex-wrap:wrap}.comment-cell{min-width:180px;max-width:300px;white-space:normal;color:#5F5865;font-size:10px}
@media(max-width:900px){.subcontract-grid{grid-template-columns:repeat(3,1fr)}}

/* ===== v1.9.2 | Grupos: exclusão + seleção de subs ===== */
.subcontract-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(120px,1fr));
  gap:10px;
  width:100%;
  margin-top:8px;
}
.subcontract-option{
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:10px;
  min-height:44px;
  padding:10px 12px;
  border:1px solid #D9DCE1;
  border-radius:9px;
  background:#FFFFFF;
  cursor:pointer;
  overflow:hidden;
}
.subcontract-option input[type="checkbox"]{
  width:16px;
  height:16px;
  flex:0 0 16px;
  margin:0;
  accent-color:#237A53;
}
.subcontract-code{
  display:block;
  min-width:0;
  font-size:12px;
  font-weight:800;
  color:#142F21;
  letter-spacing:.2px;
  white-space:nowrap;
}
.subcontract-option:has(input:checked){
  border-color:#237A53;
  background:#EEFAF4;
}
.subcontract-option:has(input:disabled){
  opacity:.5;
  cursor:not-allowed;
}
.danger-outline{
  border-color:#E3A8B0!important;
  color:#A9152B!important;
  background:#FFF!important;
}
.danger-outline:hover{
  background:#FFF3F5!important;
  border-color:#B61932!important;
}
@media(max-width:760px){
  .subcontract-grid{grid-template-columns:repeat(2,minmax(100px,1fr))}
}

/* ===== v2.0 | Feedback visual e carregamento ===== */
.content-enter{animation:contentEnter .28s ease both}
@keyframes contentEnter{from{opacity:.25;transform:translateY(4px)}to{opacity:1;transform:none}}
.system-loading-card{position:relative;overflow:hidden;display:flex;align-items:center;gap:14px;min-height:96px;padding:20px 22px;border:1px solid #D9DCE1;border-radius:14px;background:#fff;box-shadow:0 8px 28px rgba(36,20,47,.05)}
.system-loading-card b{display:block;color:#142F21;font-size:14px}.system-loading-card small{display:block;color:#756E7D;margin-top:4px}
.loading-orb{display:flex;gap:4px}.loading-orb span{width:8px;height:8px;border-radius:50%;background:#237A53;animation:orbPulse 1.1s infinite ease-in-out}.loading-orb span:nth-child(2){animation-delay:.12s}.loading-orb span:nth-child(3){animation-delay:.24s}
@keyframes orbPulse{0%,70%,100%{transform:scale(.65);opacity:.35}35%{transform:scale(1);opacity:1}}
.loading-shimmer{position:absolute;left:-40%;bottom:0;width:40%;height:3px;background:linear-gradient(90deg,transparent,#237A53,transparent);animation:shimmerMove 1.25s infinite}@keyframes shimmerMove{to{left:110%}}
.process-overlay{position:fixed;inset:0;z-index:5000;background:rgba(28,17,36,.58);backdrop-filter:blur(3px);display:grid;place-items:center;opacity:0;pointer-events:none;transition:opacity .2s}.process-overlay.show{opacity:1;pointer-events:auto}
.process-overlay-card{width:min(480px,calc(100vw - 32px));padding:30px 32px;border-radius:20px;background:#fff;box-shadow:0 24px 80px rgba(20,10,28,.30);text-align:center}
.process-overlay-card h3{margin:8px 0 6px;color:#142F21;font-size:21px}.process-overlay-card p{margin:0;color:#6F6878;font-size:12px;min-height:18px}.process-overlay-card small{display:block;margin-top:9px;color:#7B7381;font-weight:700}
.process-spinner{width:46px;height:46px;margin:0 auto 14px;border-radius:50%;border:4px solid #E6F3EC;border-top-color:#237A53;animation:spin .85s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
.process-progress{height:7px;margin-top:20px;background:#E9F1ED;border-radius:999px;overflow:hidden}.process-progress i{display:block;width:38%;height:100%;background:linear-gradient(90deg,#237A53,#A5D7B8,#237A53);border-radius:999px;animation:progressIndeterminate 1.3s infinite ease-in-out}@keyframes progressIndeterminate{0%{transform:translateX(-110%)}100%{transform:translateX(300%)}}
.system-messages{position:fixed;right:22px;top:22px;z-index:6000;display:flex;flex-direction:column;gap:10px;width:min(410px,calc(100vw - 30px))}
.system-message{position:relative;display:grid;grid-template-columns:38px 1fr 24px;gap:11px;align-items:start;padding:14px 14px 11px;border:1px solid #D9DCE1;border-radius:14px;background:#fff;box-shadow:0 16px 46px rgba(28,17,36,.18);opacity:0;transform:translateX(20px);transition:.25s;overflow:hidden}
.system-message.visible{opacity:1;transform:none}.system-message.success{border-left:4px solid #007D61}.system-message.error{border-left:4px solid #B61932}
.system-message-icon{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;font-size:16px;font-weight:900;background:#E9F8F0;color:#218E54}.system-message.success .system-message-icon{background:#E7F5F0;color:#007D61}.system-message.error .system-message-icon{background:#FBECEF;color:#B61932}
.system-message-copy b{display:block;color:#142F21;font-size:12px}.system-message-copy span{display:block;color:#5F5865;font-size:11px;line-height:1.4;margin-top:3px}.system-message-copy small{display:block;color:#8B8490;font-size:9px;margin-top:4px}
.system-message>button{border:0;background:transparent;color:#817989;font-size:19px;cursor:pointer}.system-message-timer{position:absolute;left:0;bottom:0;height:3px;width:100%;background:#237A53;transform-origin:left;animation:messageTimer 5.2s linear forwards}.system-message.success .system-message-timer{background:#007D61}.system-message.error .system-message-timer{background:#B61932}@keyframes messageTimer{from{transform:scaleX(1)}to{transform:scaleX(0)}}

/* ===== v2.1 | Dashboard executivo restaurado ===== */

/* Garantia visual: qualquer texto do menu lateral permanece branco */
.sidebar,
.sidebar .brand,
.sidebar .brand b,
.sidebar .shots-brand,
.sidebar .nav,
.sidebar .nav span,
.sidebar .nav-section-label,
.sidebar .side-footer,
.sidebar .side-footer small{
  color:#FFFFFF !important;
}
.sidebar .nav{opacity:.92}
.sidebar .nav:hover,.sidebar .nav.active{opacity:1;color:#FFFFFF!important}

/* KPI cards */
.executive-kpis .card.kpi{
  min-height:112px;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.executive-kpis .metric{
  font-size:28px;
  line-height:1;
  margin:10px 0 7px;
}
.executive-kpis .card.kpi small{color:#746C78}

/* Dashboard */
.executive-grid{margin-bottom:16px}
.dashboard-panel{min-height:300px}
.executive-chart{height:205px;gap:10px;padding-top:8px}
.executive-chart .month-bar{min-width:0}
.executive-chart .month-bar .bar{height:130px}
.executive-chart .month-bar em{
  display:block;
  margin-top:4px;
  font-size:9px;
  color:#918A95;
  font-style:normal;
}
.chart-note{
  margin-top:6px;
  font-size:9px;
  color:#8B8490;
  line-height:1.35;
}
.bottleneck-list{padding-top:4px}
.gargalo-row.zero{opacity:.55}
.gargalo-row.zero .mini-track i{width:0!important}
.gargalo-row .mini-track i{background:linear-gradient(90deg,#A5D7B8,#237A53)}
.attention-action{
  font-size:9px;
  font-weight:800;
  color:#145238;
  background:#E7F7EE;
  padding:5px 8px;
  border-radius:99px;
  white-space:nowrap;
}
.snapshot-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:10px;
}
.snapshot-grid>div{
  min-height:86px;
  padding:13px;
  border:1px solid #E1E3E7;
  border-radius:11px;
  background:linear-gradient(180deg,#FFFFFF,#FBFDFC);
}
.snapshot-grid span{
  display:block;
  color:#746C78;
  font-size:9px;
  text-transform:uppercase;
  letter-spacing:.4px;
  font-weight:800;
}
.snapshot-grid b{
  display:block;
  margin-top:10px;
  font-size:23px;
  color:#142F21;
}
.situation-panel{margin-top:2px}
@media(max-width:1180px){
  .snapshot-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:760px){
  .snapshot-grid{grid-template-columns:1fr}
}

/* ===== v2.2 | Histórico operacional por competência ===== */
.history-legend{
  display:flex;flex-wrap:wrap;gap:13px;margin:4px 0 10px;
  font-size:9px;color:#69616E;font-weight:700
}
.history-legend span{display:flex;align-items:center;gap:5px}
.history-legend i{width:9px;height:9px;border-radius:50%;display:block}
.history-legend i.done{background:#007D61}
.history-legend i.ready{background:#237A53}
.history-legend i.partial{background:#E09A00}
.history-legend i.critical{background:#B61932}
.history-legend i.no-data{background:#C9CDD2}

.history-chart{overflow:visible!important}
.history-month{
  position:relative;border:0;background:transparent;padding:0;
  font:inherit;color:inherit;text-align:center;cursor:pointer;
  min-width:0
}
.history-month .bar{
  position:relative;overflow:visible;
  border:1px solid #E0E2E6;
  background:#EEF0F2;
}
.history-month .history-state-bg{
  position:absolute;inset:0;border-radius:inherit;opacity:.18
}
.history-month .generated-bar{
  position:absolute!important;left:0!important;right:0!important;bottom:0!important;
  width:100%!important;border-radius:8px 8px 3px 3px!important;
  background:#007D61!important;z-index:2
}
.history-month .history-state-dot{
  position:absolute;right:8px;top:8px;width:9px;height:9px;border-radius:50%;
  z-index:3;box-shadow:0 0 0 3px rgba(255,255,255,.75)
}
.history-month-status{
  display:inline-block;margin-top:4px;padding:3px 6px;border-radius:99px;
  font-size:8px;line-height:1.1;font-weight:900;white-space:nowrap
}
.history-month.done .history-state-bg,.history-month.done .history-state-dot{background:#007D61}
.history-month.done .history-month-status{background:#E3F3EE;color:#007D61}
.history-month.ready .history-state-bg,.history-month.ready .history-state-dot{background:#237A53}
.history-month.ready .history-month-status{background:#E4F6EC;color:#167F47}
.history-month.partial .history-state-bg,.history-month.partial .history-state-dot{background:#E09A00}
.history-month.partial .history-month-status{background:#FFF1D8;color:#9D6100}
.history-month.critical .history-state-bg,.history-month.critical .history-state-dot{background:#B61932}
.history-month.critical .history-month-status{background:#FBE6EA;color:#A41329}
.history-month.no-data .history-state-bg,.history-month.no-data .history-state-dot{background:#AEB3B9}
.history-month.no-data .history-month-status{background:#EEF0F2;color:#646A70}
.history-month.mixed .history-state-bg,.history-month.mixed .history-state-dot{background:#6C78A8}
.history-month.mixed .history-month-status{background:#E9EBF5;color:#46527F}
.history-month:hover .bar{box-shadow:0 0 0 2px rgba(127,53,178,.13),0 8px 20px rgba(36,20,47,.08)}
.history-month.ready .history-state-dot{animation:historyPulse 1.5s infinite}
@keyframes historyPulse{0%,100%{box-shadow:0 0 0 3px rgba(255,255,255,.8),0 0 0 3px rgba(127,53,178,0)}50%{box-shadow:0 0 0 3px rgba(255,255,255,.8),0 0 0 8px rgba(127,53,178,.15)}}

.history-tooltip{
  position:absolute;z-index:100;left:50%;bottom:calc(100% + 12px);
  transform:translate(-50%,8px);width:285px;padding:14px;
  border:1px solid #D9DCE1;border-radius:13px;background:#FFFFFF;
  box-shadow:0 18px 50px rgba(32,20,39,.20);text-align:left;
  opacity:0;visibility:hidden;pointer-events:none;transition:.18s ease
}
.history-month:hover .history-tooltip,.history-month:focus-visible .history-tooltip{
  opacity:1;visibility:visible;transform:translate(-50%,0)
}
.history-tooltip:after{
  content:"";position:absolute;left:50%;bottom:-7px;width:12px;height:12px;
  background:#fff;border-right:1px solid #D9DCE1;border-bottom:1px solid #D9DCE1;
  transform:translateX(-50%) rotate(45deg)
}
.history-tooltip-head{display:flex;justify-content:space-between;align-items:flex-start;gap:8px;padding-bottom:10px;border-bottom:1px solid #ECEDEF}
.history-tooltip-head b{display:block;font-size:13px;color:#142F21}
.history-tooltip-head small{display:block;margin-top:2px;font-size:8px;color:#8B8490}
.history-status-chip{font-size:8px;font-weight:900;padding:4px 6px;border-radius:99px;white-space:nowrap}
.history-status-chip.done{background:#E3F3EE;color:#007D61}
.history-status-chip.ready{background:#E4F6EC;color:#167F47}
.history-status-chip.partial{background:#FFF1D8;color:#9D6100}
.history-status-chip.critical{background:#FBE6EA;color:#A41329}
.history-status-chip.no-data{background:#EEF0F2;color:#646A70}
.history-status-chip.mixed{background:#E9EBF5;color:#46527F}
.history-tooltip-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin:10px 0}
.history-tooltip-grid>div,.history-tooltip-sources>div,.history-tooltip-clients>div{display:flex;justify-content:space-between;gap:8px}
.history-tooltip span{font-size:8.5px;color:#746C78}
.history-tooltip strong,.history-tooltip-grid b{font-size:9px;color:#142F21}
.history-tooltip-sources,.history-tooltip-clients{border-top:1px solid #ECEDEF;padding-top:8px;margin-top:8px}
.history-tooltip-sources>b,.history-tooltip-clients>b{display:block;font-size:9px;color:#145238;margin-bottom:5px}
.history-tooltip-action{margin-top:10px;padding:7px 8px;border-radius:8px;background:#F0F9F4;color:#167F47;font-size:8.5px;font-weight:900;text-align:center}

.historical-backlog{
  display:flex;align-items:center;justify-content:space-between;gap:18px;
  margin:0 0 16px;padding:13px 15px;border:1px solid #D7EDE1;
  border-left:4px solid #237A53;border-radius:12px;background:#F8FDFA
}
.historical-backlog-copy{display:flex;align-items:center;gap:10px}
.historical-backlog-icon{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:#E2F5EB;color:#218E54;font-weight:900}
.historical-backlog-copy b{display:block;color:#142F21;font-size:11px}
.historical-backlog-copy small{display:block;margin-top:2px;color:#776F7B;font-size:9px}
.historical-backlog-months{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.history-backlog-chip{border:1px solid #D9DCE1;border-radius:9px;padding:6px 8px;background:#fff;cursor:pointer;text-align:left}
.history-backlog-chip b{display:block;font-size:9px;color:#142F21}
.history-backlog-chip span{display:block;font-size:7.5px;margin-top:1px}
.history-backlog-chip.ready{border-color:#A6DEC0;background:#F0FAF5;color:#167F47}
.history-backlog-chip.partial{border-color:#F0CF91;background:#FFF9EE;color:#9D6100}
.history-backlog-chip.critical{border-color:#E5AAB3;background:#FFF5F6;color:#A41329}
.history-backlog-chip.mixed{border-color:#BFC5DE;background:#F5F6FB;color:#46527F}

.history-loading .system-loading-card{min-height:205px}
@media(max-width:900px){
  .historical-backlog{align-items:flex-start;flex-direction:column}
  .historical-backlog-months{justify-content:flex-start}
  .history-tooltip{width:250px}
}
/* ===== v2.3 | Importação manual por cliente ===== */
.row-actions{display:flex;align-items:center;gap:6px;justify-content:flex-end;white-space:nowrap}
.primary-soft{border-color:#B6E7CD!important;background:#EEFAF4!important;color:#187F48!important}.primary-soft:hover{background:#E0F4E9!important}
.import-header{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:16px}.import-header h2{margin:3px 0 4px}
.import-context-grid,.import-review-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin:12px 0 18px}.import-review-grid{grid-template-columns:repeat(3,1fr)}
.import-context-grid>div,.import-review-grid>div{border:1px solid #E0E2E6;border-radius:10px;padding:10px;background:#FBFDFC;min-width:0}.import-context-grid span,.import-review-grid span{display:block;font-size:8px;text-transform:uppercase;letter-spacing:.4px;color:#817A85;font-weight:800}.import-context-grid b,.import-review-grid b{display:block;margin-top:5px;font-size:11px;color:#142F21;overflow:hidden;text-overflow:ellipsis}
.import-form{margin-top:5px}.file-picker{border:1px dashed #C9CBD1;border-radius:10px;padding:11px;background:#FBFDFC}.file-picker input{width:100%}.file-picker span{display:block;margin-top:6px;font-size:8.5px;color:#817A85}
.reprocess-warning{display:flex;gap:10px;align-items:flex-start;padding:11px 12px;margin:12px 0;border-left:4px solid #E09A00;background:#FFF8EA;border-radius:9px}.reprocess-warning b{font-size:10px;color:#8C5700;white-space:nowrap}.reprocess-warning span{font-size:9px;color:#6D6251;line-height:1.45}
.hash-text{font-family:Consolas,monospace;font-size:9px!important}.technical-details{border:1px solid #E0E2E6;border-radius:9px;padding:9px 11px;margin-top:10px}.technical-details summary{cursor:pointer;font-weight:800;font-size:9px;color:#145238}.technical-details pre{white-space:pre-wrap;font-size:8px;color:#5F5865;max-height:150px;overflow:auto}
@media(max-width:900px){.import-context-grid,.import-review-grid{grid-template-columns:repeat(2,1fr)}.row-actions{flex-direction:column;align-items:stretch}}

/* ===== v2.3.2 | Correção definitiva do cabeçalho dos modais ===== */
.modal-card{padding-top:30px!important;}
.import-header{position:relative;padding-right:70px!important;min-height:48px;}
.import-header > .badge{margin-right:0!important;max-width:180px;}
.modal-close-top{top:16px!important;right:18px!important;}
@media(max-width:760px){.import-header{padding-right:58px!important;flex-direction:column;gap:8px}.import-header > .badge{align-self:flex-start}}

/* ===== v2.3.3 | Substituição explícita da carga ativa ===== */
.field-help{
  display:block;
  margin-top:5px;
  color:#7B7381;
  font-size:9px;
}
.replace-active-warning{
  border-left-color:#237A53!important;
  background:#F2FBF6!important;
}
.replace-active-warning b{
  color:#167C46!important;
}

/* ===== v2.4.3 | Validação detalhada sob demanda ===== */
.validation-modal-head{
  display:flex;justify-content:space-between;gap:20px;align-items:flex-start;
  padding-right:64px;margin-bottom:16px
}
.validation-modal-head h2{margin:3px 0 4px}
.validation-modal-head p{margin:0;color:#746C78;font-size:10px}
.validation-summary-cards{
  display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:16px
}
.validation-summary-cards>div{
  padding:12px 13px;border:1px solid #D9DCE1;border-radius:10px;background:#FBFDFC
}
.validation-summary-cards span{
  display:block;font-size:8px;text-transform:uppercase;font-weight:800;color:#77707C
}
.validation-summary-cards b{display:block;margin-top:5px;font-size:18px;color:#142F21}
.text-error{color:#B61932!important}
.validation-section-title{margin-top:18px}
.validation-detail-list{display:flex;flex-direction:column;gap:12px}
.validation-sub-card{
  border:1px solid #D9DCE1;border-radius:12px;padding:14px;background:#FFFFFF
}
.validation-sub-card.divergent{border-left:4px solid #B61932}
.validation-sub-card.ok{border-left:4px solid #007D61}
.validation-sub-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.validation-sub-head h3{margin:4px 0 0;font-size:13px;color:#142F21}
.validation-comparison-grid{
  display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px
}
.comparison-block{
  border:1px solid #ECEDEF;border-radius:9px;padding:10px;background:#FAFAFB
}
.comparison-block>span{
  display:block;margin-bottom:7px;font-size:9px;font-weight:900;color:#145238
}
.comparison-block>div{
  display:flex;justify-content:space-between;gap:10px;padding:4px 0;
  border-bottom:1px dashed #E3E4E7
}
.comparison-block>div:last-child{border-bottom:0}
.comparison-block small{font-size:8.5px;color:#77707C}
.comparison-block b{font-size:9.5px;color:#142F21}
.comparison-diff{align-items:center}
.adjustment-details{margin-top:12px}
.adjustment-detail-card{
  padding:12px;border-radius:10px;background:#F2FBF6;border:1px solid #D4ECDF
}
.adjustment-detail-head{display:flex;justify-content:space-between;gap:10px}
.adjustment-detail-head b{display:block;font-size:10px}
.adjustment-detail-head small{display:block;font-size:8px;color:#786F7D;margin-top:2px}
.adjustment-values{
  display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:10px
}
.adjustment-values>div,.candidate-grid>div{
  padding:8px;border-radius:8px;background:#FFFFFF;border:1px solid #E5E1E7
}
.adjustment-values span,.candidate-grid span{
  display:block;font-size:7.5px;color:#817988;text-transform:uppercase;font-weight:800
}
.adjustment-values b,.candidate-grid b{display:block;margin-top:3px;font-size:9px;color:#142F21}
.candidate-box{margin-top:10px}
.candidate-title{display:block;font-size:8.5px;font-weight:900;color:#167F47;margin-bottom:6px}
.candidate-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}
.candidate-grid .wide{grid-column:span 2}
.adjustment-note{margin-top:8px;font-size:8.5px}
.adjustment-note b{display:block;color:#145238;margin-bottom:2px}
.adjustment-note span{color:#68606D}
.validation-diagnosis{margin-top:12px}
.validation-diagnosis span{display:block;margin-top:3px;font-size:9px}
.validation-pdf-meta{
  margin-top:16px;padding:11px 12px;border-radius:9px;background:#F4F5F7;
  display:grid;grid-template-columns:auto 1fr;column-gap:12px;row-gap:3px
}
.validation-pdf-meta span{font-size:8px;color:#77707C;text-transform:uppercase;font-weight:800}
.validation-pdf-meta b{font-size:9px;color:#142F21}
.validation-pdf-meta small{grid-column:2;font-size:8px;color:#77707C}
@media(max-width:850px){
  .validation-summary-cards{grid-template-columns:repeat(2,1fr)}
  .validation-comparison-grid{grid-template-columns:1fr}
  .adjustment-values,.candidate-grid{grid-template-columns:repeat(2,1fr)}
}

/* ===== v2.4.4 | Consolidação + aprovação dos ajustes ===== */
.validation-consolidated{
  margin-top:16px;
  padding:16px;
  border:1px solid #CFE7DA;
  border-left:4px solid #237A53;
  border-radius:12px;
  background:linear-gradient(180deg,#F9FDFB,#F2FBF6)
}
.validation-consolidated.ready{border-left-color:#007D61;background:linear-gradient(180deg,#F8FCFB,#EFF8F5)}
.validation-consolidated.success{border-left-color:#007D61;background:#F3FAF7}
.validation-consolidated-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}
.validation-consolidated-head h3{margin:4px 0 3px;font-size:15px;color:#142F21}
.validation-consolidated-head p{margin:0;font-size:9px;color:#746C78}
.consolidated-metrics{
  display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin-top:13px
}
.consolidated-metrics>div{
  padding:10px 11px;border:1px solid #D9E4DE;border-radius:9px;background:#FFF
}
.consolidated-metrics span{display:block;font-size:7.5px;color:#77707C;text-transform:uppercase;font-weight:900}
.consolidated-metrics b{display:block;margin-top:4px;font-size:15px;color:#142F21}
.consolidated-metrics small{display:block;margin-top:2px;font-size:7.5px;color:#817988}
.text-success{color:#007D61!important}
.consolidated-reading{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  margin-top:11px;padding:11px 12px;border-radius:9px
}
.consolidated-reading.ok{background:#E8F5F0;border:1px solid #BBDDD1}
.consolidated-reading.warn{background:#FFF6E7;border:1px solid #F1D49B}
.consolidated-reading b{display:block;font-size:9.5px;color:#142F21}
.consolidated-reading span{display:block;margin-top:2px;font-size:8.5px;color:#69616E}
.adjustment-actions{
  display:flex;justify-content:flex-end;gap:7px;margin-top:10px;
  padding-top:10px;border-top:1px solid #D7E8DF
}
@media(max-width:850px){
  .consolidated-metrics{grid-template-columns:repeat(2,1fr)}
  .consolidated-reading{align-items:stretch;flex-direction:column}
}

/* ===== v2.4.5 | Consolidação correta por ajuste/candidato ===== */
.consolidated-metrics.five{grid-template-columns:repeat(5,1fr)}
.consolidated-inconsistency{margin-top:10px}
.candidate-list{display:flex;flex-direction:column;gap:6px}
.candidate-row{
  display:grid;grid-template-columns:24px 1.5fr 1fr 1fr .8fr;
  gap:7px;align-items:center;padding:8px;border:1px solid #E5E1E7;
  border-radius:8px;background:#FFF
}
.candidate-index{
  width:20px;height:20px;border-radius:50%;display:grid;place-items:center;
  background:#E4F6EC;color:#167F47;font-size:8px;font-weight:900
}
.candidate-row small{
  display:block;font-size:7px;text-transform:uppercase;font-weight:800;color:#817988
}
.candidate-row b{display:block;margin-top:2px;font-size:8.5px;color:#142F21}
.candidate-total{
  display:flex;justify-content:flex-end;align-items:center;gap:12px;
  margin-top:7px;padding-top:7px;border-top:1px dashed #CFE4D9
}
.candidate-total span{font-size:8px;color:#746C78}
.candidate-total b{font-size:10px;color:#145238}
@media(max-width:1000px){
  .consolidated-metrics.five{grid-template-columns:repeat(2,1fr)}
  .candidate-row{grid-template-columns:24px 1fr 1fr}
}

/* ===== v2.4.6 | Modal corporativo de confirmação ===== */
.decision-overlay{
  position:fixed;
  inset:0;
  z-index:9000;
  display:grid;
  place-items:center;
  padding:24px;
  background:rgba(25,14,33,.58);
  backdrop-filter:blur(4px);
  opacity:0;
  pointer-events:none;
  transition:opacity .18s ease;
}
.decision-overlay.show{
  opacity:1;
  pointer-events:auto;
}
.decision-dialog{
  position:relative;
  width:min(610px,calc(100vw - 32px));
  padding:26px;
  border:1px solid #DCE4E0;
  border-radius:20px;
  background:#FFFFFF;
  box-shadow:0 28px 90px rgba(25,14,33,.30);
  transform:translateY(10px) scale(.985);
  transition:transform .18s ease;
}
.decision-overlay.show .decision-dialog{
  transform:none;
}
.decision-close{
  position:absolute;
  top:16px;
  right:16px;
  width:38px;
  height:38px;
  border:1px solid #D9DCE1;
  border-radius:10px;
  background:#FFFFFF;
  color:#142F21;
  font-size:21px;
  line-height:1;
  cursor:pointer;
  box-shadow:0 4px 12px rgba(36,20,47,.08);
}
.decision-close:hover{background:#F4F8F6}
.decision-hero{
  display:grid;
  grid-template-columns:48px 1fr;
  gap:14px;
  align-items:start;
  padding-right:48px;
}
.decision-icon{
  width:46px;
  height:46px;
  display:grid;
  place-items:center;
  border-radius:14px;
  background:#E4F6EC;
  color:#218E54;
  font-size:20px;
  font-weight:900;
}
.decision-dialog.success .decision-icon{
  background:#E4F4EE;
  color:#007D61;
}
.decision-dialog.danger .decision-icon{
  background:#FBE8EB;
  color:#B61932;
}
.decision-hero h3{
  margin:5px 0 5px;
  color:#142F21;
  font-size:22px;
  line-height:1.15;
}
.decision-hero p{
  margin:0;
  max-width:470px;
  color:#706976;
  font-size:11px;
  line-height:1.5;
}
.decision-metrics{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:10px;
  margin-top:20px;
}
.decision-metrics>div{
  min-height:82px;
  padding:12px 13px;
  border:1px solid #E1E3E7;
  border-radius:11px;
  background:#FAFCFB;
}
.decision-metrics>div.highlight{
  border-color:#B3DCC6;
  background:#F0FAF5;
}
.decision-dialog.success .decision-metrics>div.highlight{
  border-color:#B6DDD0;
  background:#EFF8F5;
}
.decision-metrics span{
  display:block;
  color:#79717F;
  font-size:8px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.4px;
}
.decision-metrics b{
  display:block;
  margin-top:7px;
  color:#142F21;
  font-size:17px;
  line-height:1.1;
}
.decision-metrics small{
  display:block;
  margin-top:5px;
  color:#817988;
  font-size:8px;
}
.decision-note{
  display:flex;
  gap:10px;
  align-items:flex-start;
  margin-top:14px;
  padding:11px 12px;
  border:1px solid #DDEEE5;
  border-radius:10px;
  background:#F6FCF9;
}
.decision-dialog.success .decision-note{
  border-color:#CDE5DC;
  background:#F4FAF7;
}
.decision-note-icon{
  flex:0 0 24px;
  width:24px;
  height:24px;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:#E2F5EB;
  color:#208750;
  font-size:11px;
  font-weight:900;
}
.decision-dialog.success .decision-note-icon{
  background:#DFF1EA;
  color:#007D61;
}
.decision-note b{
  display:block;
  color:#142F21;
  font-size:9px;
}
.decision-note div>span{
  display:block;
  margin-top:2px;
  color:#706976;
  font-size:8.5px;
  line-height:1.45;
}
.decision-actions{
  display:flex;
  justify-content:flex-end;
  gap:9px;
  margin-top:20px;
  padding-top:16px;
  border-top:1px solid #ECEDEF;
}
.decision-confirm{
  min-width:190px;
}
.decision-confirm.danger{
  background:#B61932!important;
  border-color:#B61932!important;
}
.decision-confirm.danger:hover{
  background:#951327!important;
}
@media(max-width:620px){
  .decision-dialog{padding:22px 18px}
  .decision-hero{grid-template-columns:40px 1fr}
  .decision-icon{width:40px;height:40px}
  .decision-metrics{grid-template-columns:1fr}
  .decision-actions{flex-direction:column-reverse}
  .decision-actions .btn{width:100%}
}

/* ===== v2.4.7 | Competência única na Central de geração ===== */
.generation-hero-status{
  display:flex;
  align-items:center;
  gap:7px;
  flex-wrap:wrap;
  justify-content:flex-end;
}
.generation-competence-field input:disabled{
  font-weight:900;
  color:#145238;
  background:#F5FAF7;
  border-color:#CFE5D9;
  opacity:1;
}
.generation-competence-field .field-help{
  color:#77707C;
}
.generation-sync-alert{
  margin-bottom:14px;
}
.badge.purple{
  background:#E4F6EC;
  color:#167F47;
}

/* ===== v2.5.1 | Usuários, hierarquia e RBAC ===== */
.permission-hidden{display:none!important}
.security-mode-banner{
  margin:12px 20px 0;
  padding:10px 14px;
  border:1px solid #E4C77A;
  border-radius:10px;
  background:#FFF8E6;
  color:#6F5611;
  font-size:11px;
}
.security-mode-banner b{display:inline-block;margin-right:4px}
.user-kpis{margin-bottom:16px}
.profile-chip{
  display:inline-flex;
  align-items:center;
  padding:5px 9px;
  border-radius:999px;
  font-size:9px;
  font-weight:900;
  border:1px solid transparent;
}
.profile-admin{background:#E5F7ED;color:#167F47;border-color:#C4EAD6}
.profile-adminop{background:#E8F6EF;color:#145238;border-color:#C9E5D6}
.profile-coord{background:#E9F0FA;color:#305B87;border-color:#CAD9EB}
.profile-analyst{background:#E9F6F1;color:#007D61;border-color:#C6E6DA}
.profile-view{background:#F2F3F5;color:#666D75;border-color:#D9DCE1}
.hierarchy-flow{
  display:flex;
  flex-direction:column;
  align-items:stretch;
  max-width:720px;
  margin:0 auto;
}
.hierarchy-level{
  display:grid;
  grid-template-columns:42px 1fr;
  gap:12px;
  align-items:center;
  border:1px solid #E0E2E6;
  border-radius:12px;
  background:#FFF;
  padding:11px 13px;
}
.hierarchy-level>span{
  width:36px;height:36px;border-radius:10px;
  display:grid;place-items:center;
  background:#E4F6EC;color:#167F47;font-weight:900
}
.hierarchy-level b{display:block;color:#142F21}
.hierarchy-level small{display:block;margin-top:2px;color:#7A737F}
.hierarchy-arrow{text-align:center;color:#63A180;font-size:18px;line-height:22px}
.user-modal-head{
  display:flex;
  justify-content:space-between;
  gap:18px;
  align-items:flex-start;
  padding-right:45px;
  margin-bottom:16px;
}
.user-modal-head h2{margin:5px 0 4px}
.client-permission-grid,.permission-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
  max-height:290px;
  overflow:auto;
  padding:2px;
}
.permission-option{
  display:flex;
  gap:9px;
  align-items:flex-start;
  border:1px solid #E1E3E7;
  border-radius:10px;
  padding:10px;
  background:#FAFCFB;
  cursor:pointer;
}
.permission-option:hover{border-color:#B3DCC6;background:#F3FAF6}
.permission-option input{margin-top:3px}
.permission-option span b{display:block;font-size:10px;color:#203429}
.permission-option span small{display:block;margin-top:2px;color:#77707C;font-size:8px}
.access-explainer{
  margin-top:15px;
  display:flex;
  gap:8px;
  align-items:flex-start;
}
.access-explainer b{white-space:nowrap}
.profile-manager{
  display:grid;
  grid-template-columns:repeat(5,minmax(120px,1fr));
  gap:8px;
  margin:14px 0;
}
.profile-selector{
  text-align:left;
  border:1px solid #E1E3E7;
  background:#FFF;
  border-radius:10px;
  padding:10px;
  cursor:pointer;
}
.profile-selector:hover{border-color:#237A53;box-shadow:0 5px 16px rgba(75,8,111,.08)}
.profile-selector span{display:block;font-size:8px;color:#237A53;font-weight:900}
.profile-selector b{display:block;margin-top:3px;font-size:10px;color:#203429}
.profile-selector small{display:block;margin-top:3px;font-size:7.5px;color:#7A737F}
.profile-editor-panel{margin-top:12px}
.profile-level-badge{
  padding:5px 8px;border-radius:8px;background:#E4F6EC;color:#167F47;
  font-size:9px;font-weight:900
}
.permission-category{margin-top:14px}
.permission-category>b{
  display:block;margin-bottom:7px;color:#145238;font-size:9px;
  text-transform:uppercase;letter-spacing:.35px
}
.access-denied-card{
  max-width:660px;
  margin:70px auto;
  padding:34px;
  border:1px solid #DCE4E0;
  border-radius:18px;
  background:#FFF;
  text-align:center;
  box-shadow:0 20px 60px rgba(36,20,47,.12);
}
.access-denied-icon{
  width:54px;height:54px;margin:0 auto 12px;border-radius:16px;
  display:grid;place-items:center;background:#FBE8EB;color:#B61932;
  font-size:25px;font-weight:900
}
.access-denied-card h2{margin:8px 0;color:#142F21}
.access-denied-card p{color:#5F5865}
.access-denied-card small{color:#817988}
code{
  padding:3px 6px;border-radius:6px;background:#F4F5F7;color:#145238;font-size:9px
}
@media(max-width:900px){
  .profile-manager{grid-template-columns:repeat(2,minmax(0,1fr))}
  .client-permission-grid,.permission-grid{grid-template-columns:1fr}
}

/* ===== v2.5.2 | Diagnóstico de segurança ===== */
.link-button{
  border:0;background:transparent;color:#167F47;text-decoration:underline;
  font:inherit;font-weight:900;cursor:pointer;padding:0 2px
}
.info-card{
  border:1px solid #E1E3E7;border-radius:10px;padding:11px;background:#FAFCFB
}
.info-card span{display:block;color:#77707C;font-size:8px;text-transform:uppercase;font-weight:900}
.info-card b{display:block;margin-top:5px;color:#142F21;font-size:10px;word-break:break-word}
\n/* ===== v2.6.0 | Fila, concorrência e linhagem ===== */\n.queue-progress{width:120px;height:7px;background:#ECEDEF;border-radius:999px;overflow:hidden;display:inline-block;vertical-align:middle;margin-right:5px}.queue-progress span{display:block;height:100%;background:#237A53;border-radius:999px;transition:width .25s ease}.badge.processing,.badge.processando{background:#E4F6EC;color:#167F47}.badge.pendente{background:#FFF5D6;color:#775A00}.badge.concluido{background:#E5F5EF;color:#007D61}.badge.erro{background:#FBE8EB;color:#B61932}\n

/* v2.7.0 | PDF multi-documento */
.pdf-batch-summary{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px;
  margin:14px 0;
}
.pdf-batch-summary>div{
  border:1px solid #D9DCE1;
  border-radius:10px;
  background:#F8F8FA;
  padding:10px 12px;
}
.pdf-batch-summary span{
  display:block;
  font-size:11px;
  color:#6B6870;
  margin-bottom:4px;
}
.pdf-batch-summary b{font-size:15px;color:#132F20}
.pdf-batch-table{max-height:280px;overflow:auto;margin:8px 0 14px}
.pdf-batch-table table{min-width:930px}
@media (max-width:900px){
  .pdf-batch-summary{grid-template-columns:repeat(2,minmax(0,1fr))}
}


/* v2.8.2 | Filtros - Materiais gerados */
.materials-filter-panel{
  background:#FFFFFF;
  border:1px solid #D9DCE1;
  border-radius:12px;
  padding:14px 16px;
  margin:0 0 14px 0;
}
.materials-filter-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  margin-bottom:12px;
}
.materials-filter-head>div:first-child{
  display:flex;
  flex-direction:column;
  gap:2px;
}
.materials-filter-head b{
  color:#163A27;
  font-size:14px;
}
.materials-filter-head span{
  color:#6D6873;
  font-size:12px;
}
.materials-filter-result{
  font-size:12px;
  font-weight:700;
  color:#145238;
  background:#EAF9F1;
  border-radius:999px;
  padding:6px 10px;
  white-space:nowrap;
}
.materials-filter-grid{
  display:grid;
  grid-template-columns:minmax(150px,.8fr) minmax(220px,1.2fr) minmax(220px,1.2fr) minmax(160px,.8fr) auto;
  gap:10px;
  align-items:end;
}
.materials-filter-grid .field{
  margin:0;
}
.materials-filter-grid label{
  display:block;
  margin:0 0 5px 0;
  font-size:11px;
  font-weight:700;
  color:#6D6873;
  text-transform:uppercase;
  letter-spacing:.04em;
}
.materials-filter-grid select,
.materials-filter-grid input{
  width:100%;
  min-height:40px;
  box-sizing:border-box;
}
.materials-filter-actions{
  display:flex;
  gap:8px;
  align-items:center;
  padding-bottom:1px;
}
@media (max-width:1200px){
  .materials-filter-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .materials-filter-actions{
    grid-column:1/-1;
  }
}


/* v2.8.6 | Estado transitório da geração automática */
.processing-inline{
  display:inline-flex;
  align-items:center;
  gap:7px;
  min-height:32px;
  padding:0 10px;
  border-radius:999px;
  background:#EAF9F1;
  color:#145238;
  font-size:12px;
  font-weight:700;
  white-space:nowrap;
}
.processing-dot{
  width:7px;
  height:7px;
  border-radius:50%;
  background:currentColor;
  animation:shots-processing-pulse 1.4s ease-in-out infinite;
}
@keyframes shots-processing-pulse{
  0%,100%{opacity:.35;transform:scale(.9)}
  50%{opacity:1;transform:scale(1.1)}
}


/* v2.8.7 | Metadados de conclusão */
.status-stack{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:5px;
}
.status-stack small{
  color:#6D6873;
  font-size:10px;
  line-height:1.3;
  max-width:220px;
}


/* v2.9.3 | banho de loja dos informativos */
.confirm-shell{display:flex;flex-direction:column;gap:14px}
.confirm-tag{display:inline-flex;align-items:center;align-self:flex-start;padding:6px 10px;border-radius:999px;font-size:12px;font-weight:800;letter-spacing:.02em;background:#EFFAF4;color:#237A53}
.confirm-shell.danger .confirm-tag{background:#FFF2F5;color:#B61932}
.confirm-message{margin:0;color:var(--muted);line-height:1.55}
.confirm-impact{border:1px solid var(--b);background:#FAFAFC;border-radius:12px;padding:14px 16px}
.confirm-impact b{display:block;margin-bottom:8px}
.confirm-impact ul{margin:0;padding-left:18px;color:#4D4355}
.confirm-impact li+li{margin-top:6px}
.confirm-actions{display:flex;justify-content:flex-end;gap:10px;padding-top:4px}
.modal-card .confirm-actions .btn{min-width:142px}


/* ============================================================
   v2.9.4 | UX Writing + acabamento visual corporativo
   ============================================================ */
body.modal-open{overflow:hidden}

.modal{
  backdrop-filter:blur(3px);
  background:rgba(27,16,34,.58);
}
.modal-card{
  border:1px solid rgba(127,53,178,.10);
  border-radius:18px;
  padding:30px;
  box-shadow:0 28px 90px rgba(35,15,47,.26);
}
.modal-card h2{
  margin:2px 44px 8px 0;
  font-size:23px;
  line-height:1.2;
  letter-spacing:-.25px;
}
.modal-card .sub{
  line-height:1.5;
}
.modal-close-top{
  position:absolute;
  right:18px;
  top:16px;
  width:34px;
  height:34px;
  display:grid;
  place-items:center;
  border:1px solid transparent;
  border-radius:10px;
  background:transparent;
  color:var(--muted);
  font-size:22px;
  line-height:1;
  cursor:pointer;
}
.modal-close-top:hover{
  background:#F1F7F4;
  color:var(--pd);
  border-color:#DDEEE5;
}
.btn{
  min-height:38px;
  transition:background .15s ease,border-color .15s ease,box-shadow .15s ease,transform .05s ease;
}
.btn:active{transform:translateY(1px)}
.btn:focus-visible,
input:focus-visible,
select:focus-visible{
  outline:3px solid rgba(127,53,178,.16);
  outline-offset:2px;
  border-color:var(--p);
}
.btn.primary{
  box-shadow:0 3px 10px rgba(127,53,178,.16);
}
.actions{
  padding-top:4px;
}
.notice{
  line-height:1.5;
  border-radius:10px;
}
.notice b{display:block;margin-bottom:3px}
.empty-state{
  border:1px dashed #D9DCE1;
  border-radius:12px;
  padding:22px;
  background:#FBFDFC;
  color:var(--muted);
}
.empty-state b{
  display:block;
  color:var(--ink);
  margin-bottom:5px;
}
.system-message{
  border-radius:13px;
  box-shadow:0 14px 38px rgba(35,15,47,.16);
  border:1px solid rgba(127,53,178,.08);
}
.system-message-copy span{line-height:1.4}
.system-message-copy small{
  display:block;
  margin-top:5px;
  line-height:1.35;
}
.confirm-shell h2{margin-bottom:0}
.confirm-message{font-size:13px}
.confirm-impact{
  background:linear-gradient(180deg,#FBFDFC,#F5FAF7);
}
.confirm-actions{
  border-top:1px solid #E8F1EC;
  margin-top:4px;
  padding-top:16px;
}
.reprocess-warning.replace-active-warning{
  border:1px solid #D6EEE1;
  border-left:4px solid var(--p);
  background:#F7FDFA;
  border-radius:10px;
  padding:13px 15px;
}
.reprocess-warning.replace-active-warning b{
  display:block;
  margin-bottom:4px;
}
.user-modal-head{
  padding-right:34px;
}
.eyebrow{
  letter-spacing:.75px;
}
.table-wrap{
  border-radius:10px;
}
@media(max-width:720px){
  .modal{padding:12px}
  .modal-card{padding:22px 18px;width:100%;max-height:96vh}
  .confirm-actions,.actions{flex-direction:column-reverse}
  .confirm-actions .btn,.actions .btn{width:100%}
}


/* ===== v2.9.5 | Pesquisa em configurações + auditoria gerencial ===== */
.filters-tight{margin-bottom:0}
.search-input{min-width:320px;width:min(420px,100%)}
.path-cell{word-break:break-all;max-width:380px}
.audit-grid .panel,.audit-kpis .card{min-height:100%}
.audit-mini-row{display:grid;grid-template-columns:minmax(120px,1fr) 1.4fr 36px;gap:10px;align-items:center;margin:10px 0}
.audit-mini-row span{font-size:12px}
.audit-mini-row b{text-align:right;font-size:12px}
.short-table{max-height:360px}
.user-kpis .card.kpi{padding:14px 16px;min-height:auto}
.user-kpis .metric,.audit-kpis .metric{font-size:24px}
@media(max-width:1180px){.grid4{grid-template-columns:repeat(2,1fr)}.audit-grid{grid-template-columns:1fr}.search-input{width:100%}}
@media(max-width:760px){.grid4{grid-template-columns:1fr}.audit-mini-row{grid-template-columns:1fr}.audit-mini-row b{text-align:left}}


/* ===== v2.9.6 | Auditoria filtrada + linha do tempo ===== */
.audit-filter-panel{margin-bottom:16px}
.audit-filter-grid{
  display:grid;
  grid-template-columns:1.2fr 1.2fr 1fr 1fr auto;
  gap:12px;
  align-items:end;
}
.audit-filter-actions{display:flex;align-items:end;padding-bottom:1px}
.audit-timeline{display:flex;flex-direction:column;gap:0;max-height:520px;overflow:auto;padding-right:4px}
.audit-timeline-item{display:grid;grid-template-columns:18px 1fr;gap:10px;position:relative;padding:0 0 16px}
.audit-timeline-item:not(:last-child):before{
  content:"";
  position:absolute;
  left:6px;
  top:16px;
  bottom:0;
  width:2px;
  background:#E0EAE5;
}
.audit-timeline-dot{
  width:14px;height:14px;border-radius:50%;
  margin-top:4px;background:#D9DCE1;border:3px solid #fff;
  box-shadow:0 0 0 2px #D9DCE1;z-index:1
}
.audit-timeline-dot.blue{background:#2D5F88;box-shadow:0 0 0 2px #C8DAEA}
.audit-timeline-dot.purple{background:var(--p);box-shadow:0 0 0 2px #C9ECD9}
.audit-timeline-copy{padding:0 0 2px}
.audit-timeline-head{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:2px}
.audit-timeline-head b{font-size:12px}
.audit-timeline-head span{font-size:10px;color:var(--muted)}
.audit-timeline-copy strong{display:block;font-size:11px;margin-bottom:3px;color:var(--pd)}
.audit-timeline-copy small{display:block;color:var(--muted);line-height:1.4}
.audit-bottom-grid{grid-template-columns:1.35fr .65fr}
@media(max-width:1180px){
  .audit-filter-grid{grid-template-columns:repeat(2,1fr)}
  .audit-filter-actions{grid-column:1/-1}
  .audit-bottom-grid{grid-template-columns:1fr}
}
@media(max-width:700px){
  .audit-filter-grid{grid-template-columns:1fr}
}


/* ===== v2.9.8 | Filtros estratégicos e paginação operacional ===== */
.operational-filter-panel{margin-bottom:14px;padding:14px 16px}
.operational-filter-head{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:12px}
.operational-filter-head b,.materials-filter-head b{display:block;font-size:13px}
.operational-filter-head span:not(.filter-chip),.materials-filter-head span{font-size:11px;color:var(--muted);display:block;margin-top:3px}
.operational-filter-grid{display:grid;grid-template-columns:1.6fr repeat(5,minmax(120px,.7fr)) auto;gap:10px;align-items:end}
.operational-filter-grid .field label,.materials-filter-grid .field label{font-size:9px;text-transform:uppercase;letter-spacing:.45px;color:var(--muted)}
.operational-filter-grid .field input,.operational-filter-grid .field select,.materials-filter-grid .field input,.materials-filter-grid .field select{min-width:0;width:100%;padding:9px 10px}
.operational-filter-actions{display:flex;align-items:end}
.filter-search-wide{min-width:220px}
.list-pagination{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:12px 4px 0;color:var(--muted);font-size:11px}
.list-pagination>div{display:flex;align-items:center;gap:8px}
.page-indicator{min-width:92px;text-align:center;color:var(--ink);font-weight:700}
.btn:disabled{opacity:.45;cursor:not-allowed;transform:none}
.validation-kpis{grid-template-columns:repeat(4,minmax(0,1fr));max-width:1000px}
.materials-filter-grid-v298{grid-template-columns:1.45fr repeat(5,minmax(120px,.75fr)) auto!important}
@media(max-width:1350px){.operational-filter-grid,.materials-filter-grid-v298{grid-template-columns:repeat(3,minmax(0,1fr))!important}.filter-search-wide{grid-column:span 2}.operational-filter-actions,.materials-filter-actions{grid-column:auto}}
@media(max-width:850px){.operational-filter-grid,.materials-filter-grid-v298{grid-template-columns:1fr!important}.filter-search-wide{grid-column:auto}.list-pagination{align-items:flex-start;flex-direction:column}.validation-kpis{grid-template-columns:repeat(2,1fr)}}


/* ===== v2.9.9 | Abas configuráveis do Excel de saída ===== */
.output-sheet-config{margin-top:4px}
.output-sheet-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:9px}
.output-sheet-option{display:flex;gap:10px;align-items:flex-start;border:1px solid var(--b);background:#fff;border-radius:11px;padding:12px;cursor:pointer;transition:.15s}
.output-sheet-option:hover{border-color:#ADD9C2;background:#FAFDFB}
.output-sheet-option input{margin-top:3px}
.output-sheet-option b{display:block;font-size:12px}
.output-sheet-option small{display:block;margin-top:4px;color:var(--muted);line-height:1.35}
@media(max-width:760px){.output-sheet-grid{grid-template-columns:1fr}}


/* ===== v2.10.0 | Portal de módulos ===== */
.module-landing-mode .sidebar,
.module-landing-mode main>header,
.module-landing-mode main>footer,
.module-landing-mode .security-mode-banner,
.module-landing-mode .historic-banner{display:none!important}
.module-landing-mode main{margin-left:0;width:100%;min-height:100vh;background:#F4F5F7}
.module-landing-mode #content{max-width:none;padding:0;margin:0;display:block}
.module-landing-shell{min-height:100vh;padding:70px clamp(36px,6vw,100px) 30px;display:flex;flex-direction:column;background:linear-gradient(135deg,#F8F9FB 0%,#F2F3F6 100%)}
.module-landing-top{display:flex;justify-content:space-between;align-items:flex-start;gap:30px;max-width:1450px;width:100%;margin:0 auto}
.module-kicker{font-size:10px;letter-spacing:1.7px;color:var(--p);font-weight:900}.module-landing-top h2{font-size:58px;line-height:1.02;letter-spacing:-2px;color:var(--pd);margin:18px 0 14px}.module-landing-top p{font-size:18px;color:#6B6C78;margin:0}.module-user{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid var(--b);border-radius:12px;padding:10px 14px;box-shadow:0 4px 14px rgba(36,20,47,.05)}.module-user small{display:block;color:var(--muted);font-size:10px;margin-top:2px}
.module-card-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;max-width:1450px;width:100%;margin:auto auto 50px}.module-card{min-height:330px;border:1px solid #D9DCE1;border-radius:14px;background:#fff;padding:28px 28px 24px;box-shadow:0 7px 22px rgba(36,20,47,.06);display:flex;flex-direction:column;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.module-card:hover{transform:translateY(-3px);box-shadow:0 14px 32px rgba(36,20,47,.11);border-color:#B8DDC9}.module-card.primary{background:linear-gradient(145deg,#145238 0%,#237A53 100%);color:#fff;border-color:#229759}.module-card.restricted{opacity:.68}.module-number{font-size:13px;font-weight:900;color:var(--p);margin-bottom:30px}.module-card.primary .module-number{color:#fff}.module-card h3{font-size:23px;margin:0 0 14px;color:var(--pd)}.module-card.primary h3{color:#fff}.module-card p{font-size:14px;line-height:1.55;color:#626575;margin:0 0 24px}.module-card.primary p{color:#EAF6F0}.module-card strong{font-size:12px;color:var(--p)}.module-card.primary strong{color:#fff}.module-card-footer{margin-top:auto;padding-top:26px}.module-link{border:0;background:transparent;padding:0;color:var(--p);font-weight:900;cursor:pointer;font-size:13px}.module-card.primary .module-link{color:#fff}.module-link span{margin-left:5px}.module-unavailable{font-size:11px;font-weight:800;color:#8C8892}.module-card.primary .module-unavailable{color:#DCEFE5}.module-landing-foot{max-width:1450px;width:100%;margin:0 auto;color:var(--muted);font-size:10px}.module-landing-foot b{color:var(--p)}.module-chip-list{display:flex;gap:5px;flex-wrap:wrap}.module-permission-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.module-back-btn{white-space:nowrap}
@media(max-width:1100px){.module-card-grid{grid-template-columns:repeat(2,1fr)}.module-landing-top h2{font-size:48px}}
@media(max-width:700px){.module-landing-shell{padding:35px 20px 24px}.module-landing-top{flex-direction:column}.module-landing-top h2{font-size:40px}.module-card-grid{grid-template-columns:1fr;margin-top:45px}.module-card{min-height:280px}.module-permission-grid{grid-template-columns:1fr}}


/* ===== v2.10.1 | Administração de módulos ===== */
.module-admin-panel{margin-bottom:16px}
.module-admin-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.module-admin-card{border:1px solid var(--b);border-radius:13px;padding:16px;background:#fff;display:flex;flex-direction:column;gap:12px;min-height:235px}
.module-admin-card.is-open{border-top:3px solid var(--p)}
.module-admin-card.is-closed{background:#FBFDFC}
.module-admin-index{font-size:11px;font-weight:900;color:var(--p)}
.module-admin-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}
.module-admin-head h4{margin:0 0 3px;font-size:16px;color:var(--ink)}
.module-admin-head span:not(.badge){font-size:11px;color:var(--muted)}
.module-admin-card p{font-size:12px;color:var(--muted);line-height:1.45;margin:0;min-height:50px}
.module-admin-meta{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:auto}
.module-admin-meta>div{background:#F4F9F6;border-radius:9px;padding:9px}
.module-admin-meta b{display:block;font-size:15px;color:var(--pd)}
.module-admin-meta span{font-size:10px;color:var(--muted)}
.module-user-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:10px}
.module-user-grid{max-height:300px;overflow:auto;padding-right:4px}
.module-chip-list{display:flex;gap:5px;flex-wrap:wrap}
@media(max-width:1250px){.module-admin-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.module-admin-grid{grid-template-columns:1fr}}


/* ===== v2.10.2 | Administração de módulos na entrada ===== */
.module-admin-entry{
  margin-top:18px;
  padding:16px 18px;
  border:1px solid #D6E7DE;
  background:#FFFFFF;
  border-radius:14px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  box-shadow:0 8px 22px rgba(67,28,86,.06);
}
.module-admin-entry>div{display:flex;flex-direction:column;gap:3px;min-width:0}
.module-admin-entry-kicker{font-size:9px;font-weight:900;letter-spacing:1.2px;color:#237A53}
.module-admin-entry b{font-size:13px;color:#173A27}
.module-admin-entry small{font-size:10px;color:#766E7B;line-height:1.4}
.module-admin-entry-btn{white-space:nowrap}
@media(max-width:760px){.module-admin-entry{align-items:stretch;flex-direction:column}.module-admin-entry-btn{width:100%}}

/* v2.10.3 | Governança de acesso no Portal Home */
.module-admin-entry-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}.module-admin-entry-actions .btn{min-width:180px}@media(max-width:800px){.module-admin-entry-actions{width:100%}.module-admin-entry-actions .btn{width:100%}}

/* v2.10.4 | dupla camada de acesso */
#usrName[readonly],#usrLogin[readonly],#usrEmail[readonly]{background:#F5F5F7;color:#777;cursor:not-allowed}


/* ===== v2.11.0 | Telemetria & ROI ===== */
.roi-kpis .card{min-height:118px}
.roi-stat-list{display:flex;flex-direction:column;gap:0}
.roi-stat-list>div{display:flex;justify-content:space-between;gap:18px;padding:13px 0;border-bottom:1px solid #E8F1EC}
.roi-stat-list>div:last-child{border-bottom:0}
.roi-stat-list span{color:var(--muted);font-size:12px}.roi-stat-list b{font-size:14px;text-align:right}
.roi-param-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.roi-save-field{justify-content:end;display:flex;align-items:end}
.roi-table-input{width:120px}.roi-table-note{min-width:260px;width:100%}
@media(max-width:1100px){.roi-param-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:700px){.roi-param-grid{grid-template-columns:1fr}}

/* v2.11.1 | filtros de telemetria ROI */
.roi-filter-grid{grid-template-columns:repeat(5,minmax(150px,1fr));gap:12px}.roi-filter-panel{border-top:3px solid var(--purple,#237A53)}@media(max-width:1180px){.roi-filter-grid{grid-template-columns:repeat(3,minmax(160px,1fr))}}@media(max-width:760px){.roi-filter-grid{grid-template-columns:1fr}}


/* ===== v2.11.6 | Sticky exclusivo da página ROI ===== */
.global-refresh-btn{white-space:nowrap}
/* Nas demais páginas o cabeçalho acompanha o fluxo normal da tela. */
main>header{position:relative;top:auto;z-index:4}
.operational-filter-panel,
.materials-filter-panel,
.audit-filter-panel{position:relative;top:auto;z-index:auto;box-shadow:none}

/* Somente Indicadores ROI mantém cabeçalho e filtros visíveis durante a rolagem. */
.roi-sticky-page main>header{position:sticky;top:0;z-index:30}
.roi-sticky-page .roi-filter-panel{
  position:sticky;
  top:116px;
  z-index:20;
  box-shadow:0 8px 22px rgba(36,20,47,.08);
}
@media(max-width:1180px){
  .roi-sticky-page .roi-filter-panel{top:128px}
}
@media(max-width:760px){
  .roi-sticky-page main>header{position:sticky;top:0}
  .roi-sticky-page .roi-filter-panel{position:relative;top:auto}
  .global-refresh-btn{padding:8px 10px;font-size:12px}
}


/* ===== v2.11.7 | Cabeçalho normal por padrão; sticky somente no ROI ===== */
body:not(.roi-sticky-page) main>header{
  position:relative !important;
  top:auto !important;
  z-index:20;
}
body:not(.roi-sticky-page) .roi-filter-panel{
  position:relative !important;
  top:auto !important;
}
.roi-sticky-page main>header{
  position:sticky !important;
  top:0 !important;
  z-index:30 !important;
}
.roi-sticky-page .roi-filter-panel{
  position:sticky !important;
  top:106px !important;
  z-index:25 !important;
}
@media(max-width:900px){
  .roi-sticky-page main>header,
  .roi-sticky-page .roi-filter-panel{
    position:relative !important;
    top:auto !important;
  }
}

/* ===== v2.12.0 | Extrações dinâmicas ===== */
.extraction-layout{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:18px;align-items:start}
.extraction-field-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 12px}
.extraction-field-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:12px;align-items:center;padding:10px 12px;border:1px solid var(--border,#D9DCE1);border-radius:10px;background:#fff}
.extraction-field-row label{display:flex;align-items:center;gap:6px;font-size:12px;color:#5e5965;white-space:nowrap}
.extraction-calcs{display:flex;flex-direction:column;gap:8px}
.extraction-calc-row{display:grid;grid-template-columns:1.15fr .8fr 1.25fr auto;gap:8px;align-items:center}
.extraction-calc-row select,.extraction-calc-row input{width:100%}
.saved-extractions{display:flex;flex-direction:column;gap:10px}
.saved-extraction{padding:12px;border:1px solid #e2e3e8;border-radius:12px;background:#fff}
.saved-extraction>div:first-child{display:flex;flex-direction:column;gap:4px}.saved-extraction small{color:#77717f}
.saved-extraction-actions{display:flex;gap:8px;margin-top:10px}
.extraction-preview{margin-top:16px}.extraction-preview .table-wrap{max-height:460px;overflow:auto}
.checkbox-field>label{display:flex;align-items:center;gap:8px;min-height:42px}.checkbox-field small{display:block;margin-top:4px;color:#77717f}
.empty-state.compact{padding:24px 18px;min-height:0}
@media(max-width:1180px){.extraction-layout{grid-template-columns:1fr}.extraction-field-grid{grid-template-columns:1fr}.extraction-calc-row{grid-template-columns:1fr 1fr}.extraction-calc-row input{grid-column:1/-1}}

/* ===== v2.12.1 | Pivot dinâmica controlada ===== */
.pivot-config-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.pivot-example{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:14px;padding:12px 14px;background:#F3FBF7;border:1px solid #DFF3E8;border-radius:12px;color:#5e5664}
.pivot-example b{color:#145238}.pivot-preview-wrap{max-height:620px;overflow:auto}.pivot-preview-wrap table{min-width:max-content}.pivot-preview-wrap thead th{position:sticky;top:0;z-index:2;background:#F5F8F6}.extraction-calc-title{margin-top:18px;padding-top:16px;border-top:1px solid #E8EFEB}
@media(max-width:1180px){.pivot-config-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* v2.12.2 | escopo compartilhado das extrações */
.extraction-scope-row{margin-top:14px}
.extraction-scope-row .span2{grid-column:span 2}
.client-scope-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;max-height:190px;overflow:auto;padding:10px;border:1px solid var(--border,#d9dce1);border-radius:12px;background:#fafafa}
.client-scope-grid label{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:9px;background:#fff;border:1px solid #ececf1;font-size:13px}
.client-scope-grid label small{margin-left:auto;color:#777}
.scope-summary{padding:12px 14px;border-radius:10px;background:#F2FBF6;border:1px solid #D2EFE0;color:#145238;min-height:44px}
@media(max-width:900px){.extraction-scope-row .span2{grid-column:span 1}.client-scope-grid{grid-template-columns:1fr}}

/* ===== v2.12.3 | Materiais compactos + layouts dinâmicos escaláveis ===== */
.generation-files-summary{display:flex;align-items:center;gap:7px;flex-wrap:nowrap;min-width:210px}
.file-count-chip{display:inline-flex;align-items:center;justify-content:center;min-width:78px;padding:7px 10px;border-radius:999px;background:#EDF8F2;color:#117F44;font-weight:800;font-size:10px;white-space:nowrap}
.btn.icon-only{min-width:34px;padding-left:10px;padding-right:10px;font-size:16px;line-height:1}
.generation-file-group{border:1px solid #E2E3E8;border-radius:12px;background:#fff;margin:10px 0;overflow:hidden}
.generation-file-group summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;cursor:pointer;background:#F9FBFA;font-weight:800;color:#162D21}
.generation-file-group summary b{display:inline-flex;align-items:center;justify-content:center;min-width:26px;height:26px;padding:0 8px;border-radius:999px;background:#E5F5EC;color:#158D4D;font-size:10px}
.generation-file-list{display:flex;flex-direction:column}
.generation-file-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:11px 14px;border-top:1px solid #ECECF0}
.generation-file-row>div{display:flex;flex-direction:column;gap:3px;min-width:0}
.generation-file-row b{font-size:12px;white-space:normal}
.generation-file-row small{font-size:10px;color:var(--muted);word-break:break-word}
.generation-action-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:16px}

.dynamic-output-summary{margin-top:12px;border:1px dashed #B8DAC8;border-radius:12px;background:#FAFDFB;padding:13px 14px}
.dynamic-output-summary-main{display:flex;align-items:center;justify-content:space-between;gap:16px}
.dynamic-output-summary-main>div:first-child{display:flex;flex-direction:column;gap:3px;min-width:0}
.dynamic-output-summary-main b{font-size:12px;color:#173023}
.dynamic-output-summary-main small{color:var(--muted);font-size:10px;line-height:1.4}
.dynamic-output-kicker{font-size:9px;letter-spacing:.7px;font-weight:900;color:#237A53}
.dynamic-output-actions{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}
.dynamic-output-chips{display:flex;gap:7px;flex-wrap:wrap;margin-top:10px}
.dynamic-output-chip{display:inline-flex;align-items:center;padding:6px 9px;border-radius:999px;background:#E7F7EE;color:#197D48;font-weight:700;font-size:10px;max-width:240px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dynamic-output-chip.more{background:#E8E9EE;color:#615B68}
.dynamic-output-empty{margin-top:9px;color:var(--muted);font-size:10px}

.saved-model-summary{display:flex;flex-direction:column;gap:8px}
.saved-model-summary-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 0;border-bottom:1px solid #ECECF0}
.saved-model-summary-row:last-child{border-bottom:0}
.saved-model-summary-row>div{display:flex;flex-direction:column;gap:3px;min-width:0}
.saved-model-summary-row b{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.saved-model-summary-row small{font-size:9px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.saved-model-more{padding:9px 10px;border-radius:9px;background:#F4F9F6;color:#6B5D72;font-size:10px;font-weight:700;text-align:center}

.compact-model-table{border:1px solid #E1E2E7;border-radius:12px;overflow:hidden;margin-top:14px}
.compact-model-table-head,.compact-model-row{display:grid;grid-template-columns:minmax(220px,1.4fr) minmax(160px,1fr) minmax(120px,.6fr);align-items:center;gap:14px;padding:10px 12px}
.compact-model-table-head{background:#F6F8F7;font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.5px;color:#716A77}
.compact-model-row{border-top:1px solid #ECECF0;background:#fff}
.compact-model-row>div{display:flex;flex-direction:column;gap:3px;min-width:0}
.compact-model-row b{font-size:11px}
.compact-model-row small{font-size:9px;color:var(--muted);line-height:1.35}
.model-manager-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:14px}
.model-manager-toolbar input{flex:1;min-width:0}
.model-manager-toolbar span{font-size:10px;color:var(--muted);white-space:nowrap}
.model-manager-head,.model-manager-row{grid-template-columns:minmax(220px,1.25fr) minmax(180px,1fr) minmax(230px,.9fr)}
.model-manager-actions{display:flex;gap:6px;justify-content:flex-end;flex-wrap:wrap}
.compact-pagination{margin-top:12px}

@media(max-width:900px){
  .generation-action-grid{grid-template-columns:1fr}
  .dynamic-output-summary-main{align-items:flex-start;flex-direction:column}
  .dynamic-output-actions{justify-content:flex-start}
  .compact-model-table-head{display:none}
  .compact-model-row,.model-manager-row{grid-template-columns:1fr;gap:8px}
  .model-manager-actions{justify-content:flex-start}
}


/* v2.12.5 | Materiais separados + acompanhamento de análise dinâmica */
.materials-tabs{display:flex;gap:8px;margin:0 0 16px;padding:5px;background:#EAF2EE;border:1px solid #D5E4DC;border-radius:14px;width:max-content}.materials-tabs button{border:0;background:transparent;padding:10px 18px;border-radius:10px;font-weight:800;color:#5f5965;cursor:pointer}.materials-tabs button.active{background:#fff;color:#145238;box-shadow:0 2px 10px rgba(75,8,111,.08)}
.dynamic-job-progress{padding:18px 0}.dynamic-job-progress-bar{height:10px;background:#E8F2ED;border-radius:999px;overflow:hidden}.dynamic-job-progress-bar span{display:block;height:100%;background:#237A53;transition:width .25s ease}.dynamic-job-progress-meta{display:flex;justify-content:space-between;margin-top:10px;color:#5f5965}.dynamic-job-progress-meta b{color:#145238}.success-note{border-left-color:#007d61!important}.error-note{border-left-color:#b61932!important}.text-danger{color:#b61932;font-size:12px}.muted{color:#77707d}

/* ===== v2.14.2 | ROI executivo, sidebar alinhada e custos ===== */
.sidebar{padding-top:14px}
.sidebar .brand{padding-bottom:12px}
.sidebar .nav-section-label{margin-top:10px!important;margin-bottom:4px!important}
.sidebar nav{gap:3px}
.sidebar .nav{padding-top:10px;padding-bottom:10px}

.roi-quality-split{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px}
.roi-quality-split>div{border:1px solid var(--b);border-radius:11px;padding:14px;background:#FBFDFC}
.roi-quality-split .direct{border-color:#A7D5C9;background:#F5FBF9}
.roi-quality-split .treated{border-color:#E5C795;background:#FFF9EF}
.roi-quality-split b{display:block;font-size:25px;margin-bottom:3px}
.roi-quality-split span{display:block;font-weight:800;font-size:11px}
.roi-quality-split small{display:block;margin-top:4px;color:var(--muted);font-size:10px}
.roi-stat-list.compact>div{padding:7px 0}

.roi-cost-panel{overflow:hidden}
.roi-saving-badge{min-width:122px;border-radius:12px;background:#E8F5F1;color:var(--ok);padding:10px 14px;text-align:center;border:1px solid #B9DED3}
.roi-saving-badge strong{display:block;font-size:24px;line-height:1}
.roi-saving-badge span{display:block;font-size:10px;font-weight:800;margin-top:4px;text-transform:uppercase;letter-spacing:.4px}
.roi-cost-chart{display:grid;gap:16px;padding:7px 0 3px}
.roi-cost-label{display:flex;justify-content:space-between;gap:18px;align-items:end;margin-bottom:7px}
.roi-cost-label span{font-size:12px;font-weight:750}
.roi-cost-label b{font-size:14px;font-variant-numeric:tabular-nums}
.roi-cost-track{height:20px;background:#EEE;border-radius:99px;overflow:hidden;position:relative}
.roi-cost-track i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#8D9199,#B6BAC0)}
.roi-cost-row.automatic .roi-cost-track i{background:linear-gradient(90deg,#237A53,#6CCC99)}
.roi-cost-row.saving .roi-cost-track i{background:linear-gradient(90deg,#007D61,#42A88F)}
.roi-cost-row.saving .roi-cost-label b{color:var(--ok)}
.roi-cost-note{margin-top:12px;padding-top:12px;border-top:1px solid #EEE;color:var(--muted);font-size:10px;line-height:1.5}
@media(max-width:760px){.roi-quality-split{grid-template-columns:1fr}.roi-cost-label{align-items:flex-start;flex-direction:column;gap:3px}}

/* v2.15.2 | acessibilidade de homologação */
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}

/* ===== v2.15.4 | Home executiva e acionável ===== */
.workflow-step{position:relative;padding-right:34px}
.workflow-count{
  position:absolute;right:8px;top:50%;transform:translateY(-50%);
  min-width:22px;height:22px;padding:0 6px;border-radius:999px;
  display:grid;place-items:center;background:#EEF3F0;color:#554D59;
  font-style:normal;font-size:9px;font-weight:900
}
.workflow-step.warn .workflow-count{background:#FFF3DF;color:#9B5C00}
.workflow-step.hot .workflow-count{background:#FCE7EB;color:#B61932}
.workflow-step.ready .workflow-count{background:#E3F3ED;color:#007D61}
.workflow-step.ok .workflow-count{background:#EAF5F1;color:#007D61}
.bottleneck-section-label{font-size:9px;text-transform:uppercase;letter-spacing:.55px;color:var(--muted);font-weight:900;margin:2px 0 8px}
.ready-action-card{margin-top:14px;border:1px solid #D9DCE1;border-radius:11px;padding:11px 12px;display:flex;align-items:center;justify-content:space-between;gap:12px;background:#FAFAFB}
.ready-action-card.has-ready{background:#F1F8F5;border-color:#B8D8CD}
.ready-action-card span{display:block;font-size:9px;text-transform:uppercase;letter-spacing:.45px;color:var(--muted);font-weight:800}
.ready-action-card b{display:block;margin-top:3px;font-size:12px;color:#142F21}
.attention-copy{display:flex;align-items:center;gap:10px;min-width:0}
.attention-priority{font-size:8px;font-weight:900;letter-spacing:.45px;border-radius:999px;padding:4px 7px;flex:0 0 auto}
.attention-priority.alta{background:#FCE7EB;color:#B61932}
.attention-priority.media{background:#FFF3DF;color:#9B5C00}
.attention-priority.normal{background:#EEF3F0;color:#665F6A}
button.attention-action{border:0;cursor:pointer;font-family:inherit;transition:.15s}
button.attention-action:hover{background:#D4EFE1;transform:translateY(-1px)}
.stage-distribution{display:grid;gap:13px;padding-top:4px}
.stage-head{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:10px}
.stage-head span{color:#544D58;font-weight:800}
.stage-head b{color:#142F21;font-size:11px}
.stage-head small{color:var(--muted);font-size:9px;margin-left:4px}
.stage-track{height:8px;border-radius:999px;background:#EEEFF2;overflow:hidden;margin-top:5px}
.stage-track i{display:block;height:100%;border-radius:inherit;background:#237A53}
.stage-row.done .stage-track i{background:#007D61}
.stage-row.ready .stage-track i{background:#237A53}
.stage-row.validation .stage-track i{background:#8AD0AB}
.stage-row.pending .stage-track i{background:#C58B31}
.stage-row.critical .stage-track i{background:#B61932}
.home-filter-bar{border:1px solid #E1E3E7;background:#FAFAFB;border-radius:11px;padding:11px 12px;margin:2px 0 12px}
.home-filter-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.home-filter-title b{font-size:10px;color:#142F21}
.home-filter-title span{font-size:9px;color:var(--muted)}
.home-filter-grid{display:grid;grid-template-columns:1.35fr 1fr .8fr 1fr auto;gap:8px;align-items:end}
.home-filter-grid .field label{font-size:8px;text-transform:uppercase;letter-spacing:.45px;color:var(--muted)}
.home-filter-grid .field select{width:100%;min-width:0;padding:8px 9px}
@media(max-width:1100px){.home-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.home-filter-grid>.btn{align-self:end}}
@media(max-width:700px){.home-filter-grid{grid-template-columns:1fr}.ready-action-card{align-items:flex-start;flex-direction:column}.attention-copy{align-items:flex-start;flex-direction:column;gap:5px}}


/* ===== v2.15.5 | Bases disponíveis — automação x operação ===== */
.bases-flow-note{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:0 0 16px}.bases-flow-note>div{background:#fff;border:1px solid var(--border);border-radius:12px;padding:13px 15px;display:flex;flex-direction:column;gap:3px}.bases-flow-note b{font-size:12px;text-transform:uppercase;letter-spacing:.04em}.bases-flow-note span{font-size:12px;color:var(--muted);line-height:1.45}.bases-flow-note>div:first-child{border-left:4px solid #237A53}.bases-flow-note>div:last-child{border-left:4px solid #007D61}.bases-kpis{margin-bottom:14px}.bases-table .source-group-head th{vertical-align:middle}.bases-table .source-group{text-align:center;font-size:11px;text-transform:uppercase;letter-spacing:.035em}.bases-table .source-group.automatic{background:rgba(127,53,178,.07);color:#145238}.bases-table .source-group.manual{background:rgba(0,125,97,.07);color:#007D61}.source-origin{font-weight:600}.source-origin.automatic{color:#4A8566}.source-origin.manual{color:#007D61}.source-unused{font-size:12px;color:#9ca3af}.bases-actions{min-width:150px}.bases-actions .btn{white-space:nowrap}.bases-auto-note{margin-top:10px}
@media(max-width:1100px){.bases-flow-note{grid-template-columns:1fr}.bases-table-wrap{overflow-x:auto}.bases-table{min-width:1180px}}


/* ===== v2.15.6 | Processamentos — acompanhamento operacional ===== */
.process-hero{align-items:center}.hero-context{min-width:150px;padding:10px 14px;border:1px solid var(--border);background:#fff;border-radius:12px;text-align:right}.hero-context span{display:block;font-size:9px;text-transform:uppercase;letter-spacing:.55px;color:var(--muted);font-weight:800}.hero-context b{font-size:17px;color:var(--purple-dark)}
.process-kpis{grid-template-columns:repeat(5,minmax(0,1fr));margin-bottom:14px}.process-pipeline-panel{margin-bottom:14px}.process-pipeline{display:flex;align-items:stretch;gap:8px}.process-pipeline-step{flex:1;min-width:0;display:grid;grid-template-columns:auto 1fr auto;gap:9px;align-items:center;padding:12px;border:1px solid var(--border);border-radius:12px;background:#fbfbfc}.process-pipeline-step b{display:block;font-size:11px;color:#25362D}.process-pipeline-step small{display:block;margin-top:2px;font-size:9px;color:var(--muted)}.process-pipeline-step strong{font-size:20px;color:var(--purple-dark)}.process-step-number{width:25px;height:25px;display:grid;place-items:center;border-radius:999px;background:#E4F6EC;color:var(--purple-dark);font-size:10px;font-weight:900}.process-pipeline-arrow{align-self:center;color:#A9BFB3;font-weight:900}.process-active-panel{margin-bottom:14px}.process-active-empty{padding:13px 16px}.process-active-empty>div{display:flex;align-items:center;gap:9px}.process-active-empty b{font-size:11px}.process-active-empty small{font-size:10px;color:var(--muted)}.status-dot{width:9px;height:9px;border-radius:50%;display:inline-block}.ok-dot{background:var(--success)}.process-active-list{display:grid;gap:7px}.process-active-item{display:grid;grid-template-columns:minmax(220px,1fr) 180px auto;gap:14px;align-items:center;padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:#fbfbfc}.process-active-main b{display:block;font-size:11px}.process-active-main span{display:block;margin-top:2px;font-size:9px;color:var(--muted)}.process-active-progress{display:flex;align-items:center;gap:7px}.process-active-progress .queue-progress{width:130px;margin:0}.process-active-progress small{font-size:9px;font-weight:800;color:var(--muted)}.process-stage{display:inline-flex;align-items:center;border-radius:999px;padding:5px 8px;font-size:9px;font-weight:850;white-space:nowrap}.process-stage-purple{background:#E4F6EC;color:#167F47}.process-stage-ok{background:#e5f5ef;color:#007d61}.process-stage-warn{background:#fff5d6;color:#775a00}.process-stage-err{background:#fbe8eb;color:#b61932}.process-stage-neutral{background:#eef0f3;color:#5f6268}.process-next-action{display:block;max-width:230px;font-size:10px;line-height:1.35;color:#4e4654}.process-table td{vertical-align:middle}
@media(max-width:1350px){.process-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.process-pipeline{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.process-pipeline-arrow{display:none}}
@media(max-width:850px){.process-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.process-pipeline{grid-template-columns:1fr}.process-active-item{grid-template-columns:1fr}.hero-context{display:none}}


/* ===== v2.15.7 | Validações — diagnóstico e ação ===== */
.validation-hero .eyebrow{display:block;margin-bottom:4px}
.validation-guidance{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0 0 14px}
.validation-guidance>div{background:#fff;border:1px solid #E2E3E8;border-radius:12px;padding:12px 14px;box-shadow:0 2px 8px rgba(35,18,47,.04)}
.validation-guidance b{display:block;color:#145238;font-size:10px;margin-bottom:4px}
.validation-guidance span{display:block;color:#746C78;font-size:9px;line-height:1.45}
.validation-list-table tr.validation-row.divergente{background:linear-gradient(90deg,rgba(182,25,50,.045),transparent 24%)}
.validation-list-table tr.validation-row.ok{background:linear-gradient(90deg,rgba(0,125,97,.035),transparent 24%)}
.validation-row-action{display:flex;align-items:flex-start;flex-direction:column;gap:5px;min-width:145px}
.validation-row-action>span:first-child{font-size:8px;color:#746C78;line-height:1.3}
.validation-row-action .btn{white-space:nowrap}
.validation-summary-cards{grid-template-columns:repeat(5,minmax(0,1fr))}
.validation-next-step{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:14px 0;padding:13px 14px;border-radius:12px;border:1px solid #E2E3E8;background:#FAFCFB}
.validation-next-step.warn{border-left:4px solid #B97800;background:#FFF9EC}
.validation-next-step.ok{border-left:4px solid #007D61;background:#F2FAF7}
.validation-next-step b{display:block;margin:3px 0;color:#142F21;font-size:11px}
.validation-next-step small{display:block;color:#746C78;font-size:8.5px}
@media(max-width:1050px){.validation-guidance{grid-template-columns:1fr}.validation-summary-cards{grid-template-columns:repeat(2,1fr)}}
@media(max-width:700px){.validation-summary-cards{grid-template-columns:1fr}.validation-next-step{align-items:flex-start;flex-direction:column}}

/* v2.15.8 | Central de geração - liberação segura */
.generation-release-header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding-bottom:16px;border-bottom:1px solid var(--b);margin-bottom:16px}.generation-release-header h3{margin:4px 0 6px;font-size:20px}.generation-release-header p{margin:0;color:var(--muted);font-size:11px}.generation-readiness{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin:10px 0 18px}.generation-check{display:flex;align-items:flex-start;gap:10px;border:1px solid var(--b);border-radius:11px;padding:11px 12px;background:#FBFDFC}.generation-check.ok{background:#F5FBF9;border-color:#B9DCCF}.generation-check.pending{background:#FFF9F3;border-color:#E9C8A6}.generation-check-icon{width:23px;height:23px;border-radius:50%;display:grid;place-items:center;font-weight:900;flex:0 0 23px}.generation-check.ok .generation-check-icon{background:#DDF2EA;color:#007D61}.generation-check.pending .generation-check-icon{background:#F7E4CF;color:#8A4F13}.generation-check b{display:block;font-size:11px}.generation-check small{display:block;color:var(--muted);font-size:10px;margin-top:3px;line-height:1.35}.generation-source.missing{background:#FFF7F7;border-color:#E6B8C0}.generation-destination{display:flex;align-items:center;justify-content:space-between;gap:14px}.generation-destination small{display:block;color:var(--muted);font-size:10px;margin-top:4px}.refaturamento-warning{border-color:#E3BE91;background:#FFF9F2}.generation-side-status{margin-top:14px;border-radius:10px;padding:12px;border:1px solid var(--b)}.generation-side-status.ok{background:#F5FBF9;border-color:#B9DCCF}.generation-side-status.pending{background:#FFF9F3;border-color:#E9C8A6}.generation-side-status b,.generation-side-status small{display:block}.generation-side-status small{color:var(--muted);font-size:10px;margin-top:4px}.badge.warn{background:#FFF0DE;color:#8A4F13;border-color:#E7C59D}
@media(max-width:760px){.generation-readiness{grid-template-columns:1fr}.generation-release-header,.generation-destination{align-items:flex-start;flex-direction:column}}

/* v2.15.9 | Materiais gerados - leitura executiva e histórico de versões */
.materials-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}
.materials-history-table tr.material-current td:first-child{box-shadow:inset 4px 0 0 #007D61}
.materials-history-table tr.material-history{opacity:.82}
.materials-history-table tr.material-history:hover{opacity:1}
.material-reason{max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.material-detail-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:14px 0}
.material-detail-grid>div,.material-meta-card>div{background:#F4F5F7;border:1px solid #D9DCE1;border-radius:12px;padding:12px}
.material-detail-grid span,.material-meta-card span{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.45px;color:var(--muted);margin-bottom:4px}
.material-detail-grid b{font-size:17px;color:#26332C}.material-meta-card{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:12px 0}
@media(max-width:1050px){.materials-kpis,.material-detail-grid,.material-meta-card{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.materials-kpis,.material-detail-grid,.material-meta-card{grid-template-columns:1fr}}

/* v2.15.10 | Extrações dinâmicas - clareza operacional e separação financeira */
.analysis-safety-note{display:flex;align-items:flex-start;gap:10px;margin:14px 0 16px;border-left:4px solid #237A53;background:#F4FBF7}
.analysis-safety-note b{color:#145238}.analysis-safety-note span{line-height:1.5}
.extraction-kpis{margin-bottom:16px}
.hero-status-chip{min-width:220px;padding:12px 14px;border-radius:12px;background:rgba(255,255,255,.78);border:1px solid rgba(127,53,178,.16);display:flex;flex-direction:column;gap:3px;align-self:center}
.hero-status-chip b{color:#145238;font-size:12px}.hero-status-chip span{font-size:10px;color:#6C6470}
.editing-banner{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:14px 0;padding:12px 14px;border:1px solid #A5D7B8;background:#F4FBF7;border-radius:12px}
.editing-banner>div{display:flex;flex-direction:column;gap:3px}.editing-banner b{color:#145238}.editing-banner span{font-size:10px;color:#6C6470}
.analysis-auto-toggle{padding:10px 12px;border:1px solid #D6EADF;border-radius:10px;background:#F9FCFA}
.analysis-source-note{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:0 0 10px;padding:8px 10px;border-radius:8px;background:#F6F8F7;color:#655E69;font-size:10px}
.analysis-source-note b{color:#145238}.analysis-source-note span{color:#7A737D}
.saved-model-flags{display:flex;gap:5px;flex-wrap:wrap;margin-top:4px}
.mini-status{display:inline-flex;align-items:center;padding:3px 6px;border-radius:999px;font-size:8px;font-weight:800;text-transform:uppercase;letter-spacing:.25px;background:#EEF2F0;color:#685F6C}
.mini-status.ok{background:#EAF5F1;color:#007D61}.mini-status.neutral{background:#EEF2F0;color:#685F6C}
@media(max-width:900px){.hero-status-chip{min-width:0;width:100%}.analysis-safety-note,.editing-banner{flex-direction:column;align-items:flex-start}}


/* v2.15.11 | Clientes - governança cadastral e saúde de configuração */
.client-admin-hero{align-items:flex-start}.client-admin-kpis{margin-bottom:14px}.client-governance-note{margin-bottom:14px}.client-admin-table .path-cell{max-width:260px}.client-admin-table td{vertical-align:middle}.client-config-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;margin-bottom:12px}.client-config-head h2{margin:3px 0 2px}.client-config-head-status{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.client-config-alert{display:flex;flex-direction:column;gap:4px;padding:12px 14px;border:1px solid #e5c76b;border-radius:10px;background:#fffaf0;margin-bottom:14px}.client-config-alert b{color:#5e3f00}.client-config-alert span{font-size:13px;color:#655}.config-tabs{margin-top:4px}.field-help{display:block;margin-top:6px;font-size:12px;color:#6b7280}@media(max-width:900px){.client-config-head{flex-direction:column}.client-config-head-status{justify-content:flex-start}.client-admin-table .path-cell{max-width:180px}}

/* v2.15.12 | Usuários e permissões - governança de acesso e prevenção de auto-bloqueio */
.user-admin-hero{align-items:flex-start}.user-security-note{margin:0 0 14px;border-left:4px solid #237A53;background:#F4FBF7}.user-security-note span{line-height:1.45}.user-filter-panel{margin-bottom:14px}.user-admin-table td{vertical-align:middle}.access-health{display:inline-flex;align-items:center;padding:4px 8px;border-radius:999px;font-size:9px;font-weight:850;text-transform:uppercase;letter-spacing:.3px;border:1px solid transparent}.access-health.ok{background:#E8F5F0;color:#007D61;border-color:#C4E4D9}.access-health.warn{background:#FFF5DF;color:#7A5600;border-color:#EBD49A}.access-health.err{background:#FBEAEC;color:#B61932;border-color:#E6B8C0}.access-health.neutral{background:#F0F1F3;color:#666B73;border-color:#D9DCE1}.user-audit-table{max-height:520px;overflow:auto}.user-audit-table table{min-width:900px}.user-audit-table td small{display:block;max-width:460px;white-space:normal;line-height:1.35}.profile-editor-panel .permission-category{margin-bottom:14px}.profile-level-badge{display:inline-flex;padding:5px 8px;border-radius:999px;background:#E4F6EC;color:#145238;font-size:9px;font-weight:850}.self-access-warning{border-left:4px solid #B97800;background:#FFF9EC;margin:10px 0}.user-scope-summary{display:flex;gap:7px;flex-wrap:wrap;margin-top:8px}
@media(max-width:900px){.user-admin-hero{flex-direction:column}.user-filter-panel .formgrid.four{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.user-filter-panel .formgrid.four{grid-template-columns:1fr}}


/* v2.15.13 | Configurações + padrão obrigatório de paginação */
.config-admin-hero{align-items:flex-start}
.config-governance-note{margin-bottom:16px}
.config-kpis{margin-bottom:16px}
.config-filter-panel{margin-bottom:16px}
.audit-modal-meta{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.audit-modal-meta select{min-width:130px}
@media (max-width:1180px){.formgrid.five{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:720px){.formgrid.five{grid-template-columns:1fr}.audit-modal-meta{align-items:flex-start}}

/* v2.15.14 | Auditoria paginada */
.audit-filter-grid-paged{grid-template-columns:1.15fr 1.15fr .8fr .8fr .75fr auto}
.audit-pagination{margin-top:12px;padding-top:12px;border-top:1px solid var(--border)}
.audit-bottom-grid .audit-timeline{max-height:none;overflow:visible;padding-right:0}
@media(max-width:1180px){.audit-filter-grid-paged{grid-template-columns:repeat(3,1fr)}}
@media(max-width:760px){.audit-filter-grid-paged{grid-template-columns:1fr}}


/* v2.15.15 | ROI auditado + paginação server-side */
.roi-method-note{margin:0 0 16px;border-left:4px solid var(--purple,#237A53)}
.roi-method-note span{line-height:1.55}
.roi-filter-panel .compact-select,.roi-sticky-page .compact-select{min-width:132px}
.roi-cost-label span{max-width:72%}
@media(max-width:760px){.roi-cost-label span{max-width:100%}}


/* ===== v2.15.16 | Menu lateral responsivo + modo tela inteira ===== */
.sidebar{
  height:100vh;
  height:100dvh;
  min-height:0;
  overflow:hidden;
  padding-top:10px;
}
.sidebar nav{
  flex:1 1 auto;
  min-height:0;
  overflow-y:auto;
  overflow-x:hidden;
  padding:0 2px 8px 0;
  scrollbar-width:thin;
  scrollbar-color:rgba(255,255,255,.30) transparent;
}
.sidebar nav::-webkit-scrollbar{width:6px}
.sidebar nav::-webkit-scrollbar-track{background:transparent}
.sidebar nav::-webkit-scrollbar-thumb{background:rgba(255,255,255,.30);border-radius:99px}
.sidebar .brand{flex:0 0 auto;padding-top:4px}
.sidebar .side-footer{flex:0 0 auto;margin-top:8px;padding-top:10px;border-top:1px solid rgba(255,255,255,.14)}
.sidebar-hide-btn{
  flex:0 0 auto;
  align-self:flex-end;
  border:1px solid rgba(255,255,255,.20);
  background:rgba(255,255,255,.09);
  color:#fff;
  height:30px;
  border-radius:8px;
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:0 9px;
  margin:0 2px 6px;
  cursor:pointer;
  font-size:10px;
}
.sidebar-hide-btn:hover{background:rgba(255,255,255,.16)}
.sidebar-hide-btn span{font-size:19px;line-height:1;font-weight:400}.sidebar-hide-btn b{font-size:10px}
.sidebar-restore-btn{
  position:fixed;
  left:12px;
  top:12px;
  z-index:55;
  display:none;
  align-items:center;
  gap:7px;
  border:1px solid #D9DCE1;
  background:#fff;
  color:#145238;
  border-radius:9px;
  padding:8px 11px;
  box-shadow:0 4px 16px rgba(36,20,47,.13);
  font-weight:800;
  cursor:pointer;
}
.sidebar-restore-btn:hover{border-color:#A5D7B8;background:#F6FCF9}
body.sidebar-collapsed .sidebar{transform:translateX(-100%);pointer-events:none}
body.sidebar-collapsed main{margin-left:0;width:100%}
body.sidebar-collapsed .sidebar-restore-btn{display:inline-flex}
.sidebar,main{transition:transform .20s ease,margin-left .20s ease,width .20s ease}
body.module-landing-mode .sidebar-restore-btn{display:none!important}
@media(max-height:820px){
  .sidebar{padding-top:7px;padding-bottom:8px}
  .sidebar .brand{padding-bottom:7px}
  .sidebar .shots-brand{font-size:25px;margin-bottom:4px}
  .sidebar .nav-section-label{margin-top:7px!important;margin-bottom:3px!important}
  .sidebar .nav{padding-top:8px;padding-bottom:8px}
  .sidebar .side-footer{font-size:10px;padding-bottom:3px}
}
@media(max-height:680px){
  .sidebar .brand>div:not(.shots-brand){display:none}
  .sidebar .brand{padding-bottom:4px}
  .sidebar .nav{padding-top:7px;padding-bottom:7px}
  .sidebar .nav-section-label{font-size:8px}
  .sidebar-hide-btn b{display:none}
}
@media(max-width:900px){
  body:not(.module-landing-mode):not(.sidebar-collapsed) .sidebar{width:210px}
  body:not(.module-landing-mode):not(.sidebar-collapsed) main{margin-left:210px;width:calc(100% - 210px)}
}
@media(max-width:720px){
  body:not(.module-landing-mode):not(.sidebar-collapsed) .sidebar{width:min(86vw,300px);box-shadow:8px 0 30px rgba(36,20,47,.22)}
  body:not(.module-landing-mode):not(.sidebar-collapsed) main{margin-left:0;width:100%;min-width:0}
  body:not(.module-landing-mode):not(.sidebar-collapsed) .sidebar{transform:translateX(0)}
  body:not(.module-landing-mode).sidebar-collapsed .sidebar{transform:translateX(-100%)}
  body:not(.module-landing-mode).sidebar-collapsed .sidebar-restore-btn{display:inline-flex}
  header{align-items:stretch;flex-direction:column;gap:10px;padding:64px 16px 14px}
  .header-title{min-width:0;width:100%}
  .header-tools{width:100%;justify-content:flex-start;flex-wrap:wrap;gap:8px}
  #content{padding:18px 16px 28px}
  footer{padding:14px 16px}
  .formgrid{grid-template-columns:minmax(0,1fr)}
}


/* ===== v2.15.17 | Regressão transversal e limites visuais ===== */
.history-table-tools{margin:0 0 10px 0;align-items:center}
.client-permission-grid,.module-user-grid,.permission-grid{max-height:360px;overflow-y:auto;overscroll-behavior:contain;padding-right:4px}
@media (max-height:760px){.client-permission-grid,.module-user-grid,.permission-grid{max-height:260px}}

/* ===== v2.15.18 | Alinhamento da entrada do Portal ===== */
.module-landing-shell{
  min-height:100vh;
  padding:36px clamp(28px,4vw,64px) 22px;
  display:flex;
  flex-direction:column;
  justify-content:flex-start;
}
.module-landing-top,
.module-card-grid,
.module-admin-entry,
.module-landing-foot{
  width:100%;
  max-width:1180px;
  margin-left:auto;
  margin-right:auto;
  box-sizing:border-box;
}
.module-landing-top{
  align-items:flex-start;
}
.module-landing-top h2{
  margin:14px 0 10px;
}
.module-card-grid{
  margin-top:48px;
  margin-bottom:28px;
  align-items:stretch;
}
.module-card{
  min-height:300px;
}
.module-admin-entry{
  margin-top:0;
  margin-bottom:12px;
  min-height:0;
  padding:14px 16px;
  align-items:center;
}
.module-admin-entry>div:first-child{
  max-width:760px;
}
.module-admin-entry-actions{
  flex:0 0 auto;
  align-items:stretch;
}
.module-admin-entry-actions .btn{
  min-width:176px;
}
.module-landing-foot{
  margin-top:0;
  padding-top:0;
  text-align:left;
}
@media(max-width:1100px){
  .module-landing-top,.module-card-grid,.module-admin-entry,.module-landing-foot{max-width:920px}
  .module-card-grid{margin-top:38px}
}
@media(max-width:800px){
  .module-landing-shell{padding:28px 20px 20px}
  .module-card-grid{margin-top:30px;margin-bottom:22px}
  .module-admin-entry{align-items:stretch}
  .module-admin-entry-actions{width:100%}
}

/* ===== v2.15.20 | Auditoria - cards compactos e alinhados ===== */
.audit-kpis{
  margin-bottom:14px;
}
.audit-kpis .card{
  min-height:0;
  padding:15px 17px;
}
.audit-grid{
  align-items:start;
  gap:14px;
  margin-top:0;
  margin-bottom:14px;
}
.audit-grid .panel{
  min-height:0;
  height:auto;
  align-self:start;
  padding:16px 17px;
}
.audit-grid .panel-title{
  margin-bottom:8px;
}
.audit-grid .panel-title h3{
  margin-bottom:3px;
}
.audit-grid .audit-mini-row{
  margin:8px 0;
}
.audit-grid .audit-mini-row:first-of-type{
  margin-top:4px;
}
.audit-grid .audit-mini-row:last-child{
  margin-bottom:2px;
}
.audit-bottom-grid{
  align-items:start;
}
.audit-bottom-grid>.panel{
  align-self:start;
}
@media(max-width:1180px){
  .audit-grid{gap:12px}
}

/* v2.15.21 | Hierarquia de visualização de páginas */
.page-visibility-category{border:1px solid #B7DFCA;border-radius:14px;padding:14px;background:#F8FEFB;margin:14px 0}
.page-visibility-category>b{color:#177D47;display:block;margin-bottom:10px}
.nav-section-label.permission-hidden{display:none!important}


/* v2.16.0 | Concilia */
.concilia-hero{border-left:4px solid #237A53}.concilia-principle{margin-top:18px}.concilia-step-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:18px 0}.concilia-step-grid>div{border:1px solid #e3e5e8;border-radius:14px;padding:14px;background:#fff;display:flex;gap:10px;align-items:center}.concilia-step-grid b{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#E8F7EF;color:#145238}.concilia-step-grid span{font-weight:700;font-size:13px}.concilia-file-list{display:grid;gap:10px}.concilia-file-card{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(260px,.8fr);gap:18px;align-items:center;border:1px solid #e2e4e8;border-radius:14px;padding:14px 16px;background:#fff}.concilia-file-card>div{display:flex;flex-direction:column;gap:4px}.concilia-file-card .badge,.concilia-file-card .btn{width:max-content}.concilia-compatible{margin-top:18px;border-top:1px solid #eceef1;padding-top:16px}@media(max-width:900px){.concilia-step-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.concilia-file-card{grid-template-columns:1fr}}

/* v2.16.1 | Concilia Fase 2 */
.concilia-editor-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;margin:0 0 16px}.concilia-rule-section{margin-top:16px}.compact-actions{display:flex;gap:8px;align-items:center}.concilia-result{margin-top:20px;padding-top:18px;border-top:1px solid var(--border,#d9dce1)}.concilia-result-kpis{margin:14px 0}.version-chips{display:flex;gap:8px;flex-wrap:wrap}.danger-soft{border-color:#efc9cf;color:#8e1428;background:#fff7f8}.danger-soft:hover{background:#fff0f2}

/* v2.16.2 | Concilia — receitas prontas de transformação */
.concilia-preset-box{margin:0 0 16px;padding:14px 16px;border:1px solid #D8F2E4;border-radius:14px;background:#F8FDFA}
.concilia-preset-box .field{margin:0}
.concilia-preset-box label{font-weight:700;color:#145238}
.concilia-preset-box .field-help{display:block;margin-top:6px;line-height:1.4}


/* ===== v2.16.3 | Concilia UX: ordem, jornada e menu retrátil sem sobreposição ===== */
.nav-module-label{margin-top:0!important;color:#fff!important;font-weight:900}.nav-step{width:20px;height:20px;min-width:20px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.15);font-size:10px;color:#fff}.nav.active .nav-step{background:#fff;color:#299F60}.concilia-journeys{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:16px 0}.concilia-journey{border:1px solid var(--b);border-radius:14px;padding:16px;background:#fff}.concilia-journey h4{margin:10px 0 12px;font-size:16px}.concilia-flow-line{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:14px;color:var(--muted);font-size:11px}.concilia-flow-line b{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;background:#E7F7EE;color:var(--pd);font-size:10px}.concilia-flow-line i{font-style:normal;color:#A9A2AD}.concilia-editor-guide{display:flex;gap:10px;align-items:center;border:1px solid #C7E5D5;background:#F6FCF9;border-radius:12px;padding:12px 14px;margin-bottom:14px}.concilia-editor-guide b{color:var(--pd);white-space:nowrap}.concilia-editor-guide span{font-size:11px;color:var(--muted);line-height:1.45}body.sidebar-collapsed:not(.module-landing-mode) main>header{padding-left:150px}body.sidebar-collapsed:not(.module-landing-mode) .sidebar-restore-btn{top:34px;left:22px}@media(max-width:900px){.concilia-journeys{grid-template-columns:1fr}}@media(max-width:720px){body.sidebar-collapsed:not(.module-landing-mode) main>header{padding-left:96px}body.sidebar-collapsed:not(.module-landing-mode) .sidebar-restore-btn{top:24px;left:12px;padding:7px 9px}body.sidebar-collapsed:not(.module-landing-mode) .sidebar-restore-btn span{display:none}}

/* v2.16.3 ajuste definitivo: o botão Menu participa do layout do cabeçalho, nunca flutua sobre o conteúdo. */
main>header .sidebar-restore-btn{position:static!important;left:auto!important;top:auto!important;z-index:auto!important;flex:0 0 auto;margin-right:2px}
body.sidebar-collapsed:not(.module-landing-mode) main>header{padding-left:36px!important}
@media(max-width:720px){body.sidebar-collapsed:not(.module-landing-mode) main>header{padding-left:20px!important}main>header .sidebar-restore-btn span{display:none}}


/* ===== v2.16.4 | Concilia — fluxo direto reconhecimento -> cruzamento ===== */
.concilia-next-action{display:flex;align-items:center;justify-content:space-between;gap:18px;border:1px solid #C7E5D5;background:#F6FCF9;border-radius:14px;padding:16px 18px;margin-bottom:18px}
.concilia-next-action.success{border-color:#B9DDD4;background:#F5FBF9}.concilia-next-action.warn{border-color:#E8D8B7;background:#FFFBF4}
.concilia-next-action h3{margin:4px 0 4px;font-size:17px}.concilia-next-action p{margin:0;color:var(--muted);font-size:12px;line-height:1.45}
.concilia-next-step{font-size:11px;font-weight:900;color:var(--pd);background:#E3F7EC;border-radius:999px;padding:8px 10px;white-space:nowrap}
.concilia-model-choice{border:1px solid #E5E7EA;border-radius:12px;padding:12px 14px;background:#fff;margin-top:8px}
main>header .header-title h1#pageTitle{white-space:nowrap}
@media(max-width:760px){.concilia-next-action{align-items:flex-start;flex-direction:column}.concilia-next-action .btn{width:100%}}


/* v2.16.5 | Concilia - escolha clara entre bate cadastral e unificador */
.concilia-type-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:0 0 16px}
.concilia-type-card{appearance:none;text-align:left;border:1px solid var(--border,#d9dce1);background:#fff;border-radius:16px;padding:18px;display:flex;flex-direction:column;gap:8px;cursor:pointer;min-height:142px;transition:.16s ease;box-shadow:0 5px 16px rgba(41,23,57,.035)}
.concilia-type-card b{font-size:16px;color:#143A26}.concilia-type-card small{font-size:12px;line-height:1.55;color:#6e6675}.concilia-type-card:hover{border-color:#A5D7B8;transform:translateY(-1px)}
.concilia-type-card.selected{border:2px solid #237A53;background:linear-gradient(180deg,#fff 0%,#F6FDF9 100%);padding:17px;box-shadow:0 7px 18px rgba(127,53,178,.11)}
@media(max-width:850px){.concilia-type-grid{grid-template-columns:1fr}}

/* ===== v2.16.6 | Concilia UX guiado ===== */
.con-key-bases-grid,.con-output-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:16px}.con-key-base-card,.con-output-base{border:1px solid var(--border,#d9dce1);border-radius:14px;padding:16px;background:#fff;min-width:0}.con-key-base-head{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;margin-bottom:12px}.con-key-base-head h4{margin:6px 0 2px;font-size:16px}.con-key-base-head small{color:#667085}.con-key-base-card select[multiple]{width:100%;min-height:150px}.con-preview-wrap{margin-top:12px;border-top:1px solid #ececf0;padding-top:10px}.con-preview-caption{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:8px}.con-preview-caption span{font-size:12px;color:#667085}.con-preview-table{max-height:230px}.con-preview-table table{font-size:12px}.con-preview-table th,.con-preview-table td{white-space:nowrap;max-width:180px;overflow:hidden;text-overflow:ellipsis}.con-preview-empty{margin-top:10px;padding:14px;border:1px dashed #d9dce1;border-radius:10px;display:flex;flex-direction:column;gap:4px;color:#667085}.con-hierarchy-note{margin:12px 0 16px}.readonly-field{min-height:48px;border:1px solid #d9dce1;border-radius:10px;padding:9px 12px;display:flex;flex-direction:column;justify-content:center}.readonly-field span{font-size:12px;color:#667085}.sticky-actions{position:sticky;bottom:-20px;background:#fff;padding-top:14px;margin-top:16px;border-top:1px solid #ececf0;z-index:2}.con-wizard-back{margin-bottom:14px}.con-transform-preview{margin-top:16px;max-height:330px}.con-output-checks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:10px 0 14px;max-height:260px;overflow:auto;padding-right:4px}.con-output-check{display:flex;align-items:center;gap:8px;padding:8px 10px;border:1px solid #e1e3e8;border-radius:9px;font-size:13px}.con-output-check.is-saved{background:#F1FAF5}.con-output-check small{margin-left:auto;color:#237A53}.con-key-hierarchy{display:flex;flex-direction:column;gap:10px}.con-key-rule{display:grid;grid-template-columns:36px minmax(0,1fr) auto;gap:12px;align-items:center;border:1px solid #e5e7eb;border-radius:12px;padding:12px}.con-rule-number{width:30px;height:30px;border-radius:50%;background:#E6F8EE;color:#145238;display:inline-flex;align-items:center;justify-content:center;font-weight:800}.con-key-rule small{display:block;color:#667085;margin-top:3px}.primary-step{border-color:#A9E3C4;box-shadow:0 0 0 1px rgba(127,53,178,.06)}.con-stepper{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:10px 0 4px}.con-stepper span{display:inline-flex;align-items:center;gap:6px;padding:8px 10px;border-radius:999px;background:#f3f4f6;color:#667085;font-size:13px}.con-stepper span b{width:22px;height:22px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:#fff}.con-stepper span.active{background:#E6F8EE;color:#145238;font-weight:700}.con-stepper span.done{background:#e6f5f0;color:#007d61}.con-stepper i{font-style:normal;color:#98a2b3}.con-advanced{padding:0;overflow:hidden}.con-advanced>summary{cursor:pointer;padding:18px 20px;display:flex;justify-content:space-between;gap:12px}.con-advanced>summary span{font-size:12px;color:#667085}.con-advanced>.panel{border:0;border-top:1px solid #ececf0;border-radius:0;box-shadow:none;margin:0}.con-diagnostic-grid{display:flex;flex-direction:column;gap:12px}.con-diagnostic-row{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:12px;align-items:center;padding:12px;border:1px solid #e5e7eb;border-radius:12px}.con-diagnostic-row>strong{font-size:18px;text-align:right}.con-diagnostic-row>small{grid-column:3;font-size:11px;color:#667085;margin-top:-10px}.con-diagnostic-bar{height:6px;background:#ececf0;border-radius:999px;overflow:hidden;margin-top:8px}.con-diagnostic-bar i{display:block;height:100%;background:#237A53;border-radius:999px}.con-key-diagnostic{margin-top:16px}.con-test-panel{margin-top:16px}
@media(max-width:1050px){.con-key-bases-grid,.con-output-grid{grid-template-columns:1fr}.con-output-checks{grid-template-columns:1fr}}

/* ===== v2.16.7 | Concilia preview completo + pipeline de tratamento ===== */
.con-preview-scroll-hint{font-size:11px;color:#7b6f82;margin:0 0 7px;text-align:right;font-weight:700}
.con-preview-table{overflow-x:auto!important;overflow-y:auto!important;max-height:300px;scrollbar-gutter:stable both-edges}
.con-preview-table table{width:max-content!important;min-width:100%;table-layout:auto!important}
.con-preview-table th,.con-preview-table td{white-space:nowrap!important;max-width:none!important;overflow:visible!important;text-overflow:clip!important;padding-left:12px;padding-right:12px}
.con-preview-table th:first-child,.con-preview-table td:first-child{position:sticky;left:0;background:#fff;z-index:1}
.con-pipeline-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:18px 0 10px}.con-pipeline-head div{display:flex;flex-direction:column;gap:2px}.con-pipeline-head span{font-size:12px;color:#667085}.con-pipeline-list{display:flex;flex-direction:column;gap:10px}.con-pipeline-step{display:grid;grid-template-columns:36px minmax(170px,.8fr) minmax(220px,1fr) minmax(180px,.8fr) auto;gap:10px;align-items:end;padding:12px;border:1px solid #D6EADF;border-radius:12px;background:#F9FDFB}.con-pipeline-step-no{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:#237A53;color:#fff;font-weight:800;align-self:center}.con-pipeline-remove{margin-bottom:2px}.con-transform-preview table{width:100%}.con-transform-preview td:last-child{font-weight:700;color:#145238}
@media(max-width:1000px){.con-pipeline-step{grid-template-columns:36px 1fr 1fr}.con-pipeline-remove{grid-column:3}.con-preview-scroll-hint{text-align:left}}


/* ===== v2.16.8 | Concilia UX seguro + campos derivados ===== */
.con-derived-chip{display:inline-flex;align-items:center;padding:2px 5px;border-radius:999px;background:#E3F8ED;color:#145238;font-size:9px;font-weight:800;letter-spacing:.04em;vertical-align:middle}
.con-derived-col{background:#F7FEFA!important;color:#145238}
.con-pipeline-step.con-pipeline-transform{grid-template-columns:36px minmax(190px,.9fr) minmax(300px,1.4fr) auto}
.con-key-base-card .conKeyMapField option{padding:3px 5px}
.modal{cursor:default}
@media(max-width:1000px){.con-pipeline-step.con-pipeline-transform{grid-template-columns:36px 1fr}.con-pipeline-step.con-pipeline-transform .con-pipeline-remove{grid-column:2}}


/* ===== v2.16.9 | Concilia UX de saída, campos ordenados e edição ===== */
.con-output-grid.con-output-stacked{display:flex!important;flex-direction:column!important;gap:18px!important}
.con-output-stacked .con-output-base{width:100%;min-width:0}
.con-output-stacked .con-output-checks{grid-template-columns:repeat(3,minmax(0,1fr));max-height:300px}
.con-output-check.is-created{border-color:#e7c84c;background:#fffbea}
.con-output-check.is-created span{font-weight:800;color:#5b4700}
.con-derived-chip{display:inline-flex;align-items:center;padding:2px 6px;border-radius:999px;background:#fff1a8;color:#665000;font-size:10px;font-weight:900;margin-right:4px}
.con-pipeline-step{align-items:center!important}
.con-pipeline-step .field{align-self:stretch;display:flex;flex-direction:column;justify-content:center}
.con-pipeline-step .field label{margin-bottom:6px}
.con-pipeline-step .field-help{min-height:16px}
.con-rule-actions{display:flex;gap:6px;align-items:center;justify-content:flex-end;grid-column:4}
.con-key-rule{grid-template-columns:36px minmax(0,1fr) auto auto!important}
.row-actions{display:flex;gap:6px;flex-wrap:wrap}
@media(max-width:1100px){.con-output-stacked .con-output-checks{grid-template-columns:repeat(2,minmax(0,1fr))}.con-rule-actions{grid-column:2/-1;justify-content:flex-start}}
@media(max-width:700px){.con-output-stacked .con-output-checks{grid-template-columns:1fr}}

/* v2.16.10 | Concilia | fluxo direto e resultado executivo */
.con-layout-filters{margin-bottom:16px}.con-filter-grid{grid-template-columns:1.5fr 1fr 1fr auto}.con-filter-actions .actions{margin:0;align-items:center}.con-process-description{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:16px}.con-process-description p{margin:6px 0 0;line-height:1.55;max-width:920px}.con-result-shell{margin-top:20px;padding:20px;border-top:1px solid var(--b)}.con-result-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:16px}.con-result-head h3{margin:4px 0 6px;font-size:22px}.con-result-head p{margin:0;color:var(--muted);font-size:13px}.concilia-result-cards{grid-template-columns:repeat(4,minmax(0,1fr));margin:0 0 18px}.concilia-result-cards .card.kpi{min-height:118px}.result-preview-title{margin-top:18px;padding-top:16px;border-top:1px solid var(--b)}
@media(max-width:1000px){.con-filter-grid{grid-template-columns:1fr 1fr}.concilia-result-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.con-filter-grid{grid-template-columns:1fr}.con-process-description,.con-result-head{flex-direction:column}.concilia-result-cards{grid-template-columns:1fr}}
/* v2.16.11 | análise automática do Concilia */
.con-generate-ready{margin-top:22px;padding:20px 22px;border:1px solid #c8e5dc;background:#f3fbf8;border-radius:16px;display:flex;align-items:center;justify-content:space-between;gap:24px}.con-generate-ready h3{margin:4px 0 6px}.con-generate-ready p{margin:0;color:#5f6170}.con-final-preview{max-height:440px}.con-key-diagnostic .con-diagnostic-row small strong{color:#145238}.con-result-shell .result-preview-title{margin-top:22px}@media(max-width:900px){.con-generate-ready{align-items:flex-start;flex-direction:column}.con-generate-ready .btn{width:100%}}

/* v2.16.12 | diagnóstico visual de chaves */
.con-key-diagnostic-v2{padding:20px;margin-top:20px}.con-key-diagnostic-head{align-items:center}.con-overall-match{min-width:170px;border-left:1px solid var(--b);padding-left:20px;text-align:right;display:flex;flex-direction:column}.con-overall-match b{font-size:30px;line-height:1;color:var(--purple,#237A53)}.con-overall-match span{font-weight:800;margin-top:6px}.con-overall-match small{color:var(--muted);margin-top:3px}.con-rule-performance-list{display:flex;flex-direction:column;gap:14px}.con-rule-performance{border:1px solid var(--b);border-radius:14px;padding:16px;background:#fff}.con-rule-performance-head{display:grid;grid-template-columns:38px minmax(0,1fr) auto;gap:12px;align-items:center}.con-rule-performance-title small{font-size:10px;font-weight:800;letter-spacing:.08em;color:var(--purple,#237A53)}.con-rule-performance-title h4{margin:2px 0 0;font-size:17px}.con-rule-effect{min-width:150px;text-align:right;border-radius:10px;padding:8px 10px;background:#f7f7f9}.con-rule-effect b{display:block;font-size:20px}.con-rule-effect small{font-size:10px;color:var(--muted)}.con-rule-effect.good{background:#eaf7f2;color:#007d61}.con-rule-effect.mid{background:#fff7e8;color:#946000}.con-rule-effect.low{background:#fff0f2;color:#9d1730}.con-rule-fields{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:14px 0;padding:12px;background:#F6FBF8;border-radius:10px}.con-rule-field-side{display:flex;align-items:center;gap:8px;min-width:0}.con-rule-field-side>span{font-size:10px;font-weight:800;color:#667085}.con-rule-field-side>div{display:flex;align-items:center;gap:5px;flex-wrap:wrap}.con-rule-field-side b{font-size:12px;padding:5px 8px;border:1px solid #CBE9D9;background:#fff;border-radius:7px;color:#145238}.con-rule-field-side i{font-style:normal;color:#98a2b3}.con-rule-arrow{font-weight:900;color:#237A53}.con-rule-performance-metrics{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.con-rule-performance-metrics>div{padding:9px 10px;border-left:1px solid #ececf0}.con-rule-performance-metrics>div:first-child{border-left:0}.con-rule-performance-metrics span,.con-rule-performance-metrics small{display:block;font-size:10px;color:var(--muted)}.con-rule-performance-metrics b{display:block;font-size:18px;margin:2px 0}.con-rule-progress{height:7px;background:#ececf0;border-radius:99px;overflow:hidden;margin-top:12px}.con-rule-progress i{display:block;height:100%;background:#237A53;border-radius:99px}.con-duplicate-note{margin-top:16px}.con-five-cards{grid-template-columns:repeat(5,minmax(0,1fr))}.con-critica-cell{background:#fff8e8;font-weight:600;color:#6f4c00;min-width:260px}@media(max-width:1100px){.con-rule-performance-metrics{grid-template-columns:repeat(3,1fr)}.con-five-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:700px){.con-rule-performance-head{grid-template-columns:34px 1fr}.con-rule-effect{grid-column:2;text-align:left}.con-rule-performance-metrics{grid-template-columns:1fr 1fr}.con-overall-match{border-left:0;padding-left:0;text-align:left}.con-key-diagnostic-head{align-items:flex-start}.con-five-cards{grid-template-columns:1fr}}

/* v2.16.15 - Bate cadastral guiado */
.con-comparison-step{border:1px solid #C5EED8;background:linear-gradient(180deg,#fff 0,#F9FFFC 100%)}
.con-compare-summary{display:grid;gap:10px}.con-compare-card{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center;border:1px solid var(--border,#d9dce1);border-radius:14px;padding:14px;background:#fff}.con-compare-card-main{display:grid;gap:6px}.con-compare-card-main>small{color:#687083}.con-compare-map{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.con-compare-map span{display:grid;gap:2px;background:#F4FAF7;border-radius:10px;padding:8px 12px}.con-compare-map em{font-size:11px;font-style:normal;font-weight:800;color:#237A53}.con-compare-map strong{font-size:13px}.con-compare-map i{font-style:normal;font-weight:900;color:#237A53}.con-compare-intro{display:grid;grid-template-columns:1fr minmax(260px,360px);gap:18px;align-items:end;padding:16px;border:1px solid #D4EFE1;border-radius:14px;background:#F8FEFB;margin-bottom:14px}.con-compare-intro>div:first-child{display:grid;gap:5px}.con-compare-editor{display:grid;gap:10px;margin:12px 0}.con-compare-editor-row{display:grid;grid-template-columns:auto minmax(170px,.8fr) minmax(220px,1fr) auto minmax(220px,1fr) minmax(130px,.55fr) auto;gap:10px;align-items:end;padding:14px;border:1px solid #e0e2e7;border-radius:14px;background:#fff}.con-compare-arrow{font-size:22px;font-weight:900;color:#237A53;padding-bottom:16px}.con-compare-tol{max-width:120px}.con-compare-previews{display:grid;gap:16px;margin-top:18px}.con-compare-previews section{border:1px solid #e0e2e7;border-radius:14px;padding:14px;background:#fff}.con-compare-diagnostic{margin-top:16px}.con-compare-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}.con-compare-metric{display:grid;grid-template-columns:1fr auto;gap:5px 12px;border:1px solid #e0e2e7;border-radius:14px;padding:14px;background:#fff}.con-compare-metric>div:first-child{display:grid}.con-compare-metric>div:first-child small{color:#687083;margin-top:3px}.con-compare-metric>strong{font-size:24px;color:#145238}.con-compare-metric>span{grid-column:1/-1;font-size:12px;color:#687083}.con-quality-bar{grid-column:1/-1;height:7px;border-radius:999px;background:#ececf0;overflow:hidden}.con-quality-bar i{display:block;height:100%;background:#237A53;border-radius:999px}@media(max-width:1100px){.con-compare-editor-row{grid-template-columns:auto 1fr 1fr}.con-compare-arrow{display:none}.con-compare-type,.con-compare-tol{max-width:none}.con-compare-intro{grid-template-columns:1fr}}

/* ===== v2.16.16 | Bate cadastral - base principal + de/para ===== */
.con-primary-selector{border:1px solid #C5EBD7;background:linear-gradient(180deg,#fff 0,#F8FEFB 100%)}
.con-primary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}.con-primary-card{border:1px solid #dfe2e7;border-radius:14px;padding:16px;background:#fff;display:flex;align-items:center;justify-content:space-between;gap:14px}.con-primary-card.selected{border:2px solid #237A53;box-shadow:0 8px 24px rgba(75,8,111,.08)}.con-primary-card>div{display:grid;gap:5px}.con-primary-card>div>b{font-size:17px}.con-primary-card small{color:#687083}.con-primary-card>strong{font-size:12px;color:#145238;text-align:right}.con-primary-rule{border:1px solid #C5EBD7;background:#F8FEFB;border-radius:14px;padding:16px;margin-bottom:14px}.con-primary-rule h3{margin:6px 0}.con-primary-rule p{margin:0;color:#5f6170}.con-auto-output{display:flex;align-items:center;justify-content:space-between;gap:24px;border:1px solid #cbe4db;background:#f4fbf8}.con-auto-output h3{margin:5px 0}.con-auto-output p{margin:0;color:#5f6170}.con-output-auto-note{margin-top:16px}.con-compare-map span.principal{border:1px solid #C5EBD7;background:#F8FEFB}.con-compare-editor-row-v2{grid-template-columns:auto minmax(150px,.7fr) minmax(190px,1fr) auto minmax(150px,.7fr) minmax(190px,1fr) minmax(110px,.45fr) auto}
@media(max-width:1200px){.con-compare-editor-row-v2{grid-template-columns:auto 1fr 1fr}.con-compare-editor-row-v2 .con-compare-arrow{display:none}.con-auto-output{align-items:flex-start;flex-direction:column}}

/* ===== v2.16.17 | Concilia Bate Cadastral - ajustes UX ===== */
.con-created-fields{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:10px 0 12px;padding:10px 12px;border:1px solid #DFF3E8;border-radius:12px;background:#F8FEFB}
.con-created-fields>span{font-size:11px;font-weight:800;color:#6c6572;text-transform:uppercase;letter-spacing:.04em;margin-right:2px}
.con-created-field-chip{appearance:none;border:1px solid #C5EBD7;background:#fff;border-radius:999px;padding:7px 10px;display:inline-flex;align-items:center;gap:8px;cursor:pointer;color:#145238;max-width:100%}
.con-created-field-chip b{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:230px}.con-created-field-chip em{font-size:11px;font-style:normal;font-weight:800;color:#237A53}.con-created-field-chip:hover{border-color:#237A53;background:#F0FBF5}
.con-compare-editor-row-v2{grid-template-columns:42px minmax(145px,.72fr) minmax(185px,1fr) 36px minmax(145px,.72fr) minmax(185px,1fr) minmax(105px,.48fr) 92px;column-gap:10px;row-gap:10px;overflow:visible}
.con-compare-editor-row-v2>.btn.danger-soft{position:static!important;justify-self:end;align-self:end;min-width:82px;white-space:nowrap;margin:0}
.con-compare-editor-row-v2 .field{min-width:0}.con-compare-editor-row-v2 select,.con-compare-editor-row-v2 input{width:100%;min-width:0}
@media(max-width:1350px){.con-compare-editor-row-v2{grid-template-columns:42px repeat(2,minmax(220px,1fr));}.con-compare-editor-row-v2 .con-compare-arrow{display:none}.con-compare-editor-row-v2>.btn.danger-soft{grid-column:auto;justify-self:start}}
.con-compare-editor-row-v2{grid-template-columns:42px minmax(145px,.72fr) minmax(185px,1fr) 36px minmax(140px,.72fr) minmax(185px,1fr) minmax(105px,.48fr) minmax(90px,.42fr) 82px}
.con-compare-tol.is-inactive{opacity:.45}.con-compare-delete{grid-column:auto!important}
.con-destination-box{display:grid;gap:4px;padding:13px 14px;border:1px solid #dedfe5;border-radius:12px;background:#f8f9fb}.con-destination-box b{font-size:13px;word-break:break-all}.con-destination-box small{color:#687083}
@media(max-width:1350px){.con-compare-editor-row-v2{grid-template-columns:42px repeat(2,minmax(220px,1fr));}.con-compare-delete{justify-self:start!important}.con-compare-tol{max-width:none}}


/* ===== v2.16.19 | Bate cadastral - referência visual de todas as bases ===== */
.con-reference-zone{margin-top:18px;padding-top:18px;border-top:1px solid #E1E8E4}
.con-reference-zone-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:12px}
.con-reference-zone-head h3{margin:4px 0 5px;font-size:18px}
.con-reference-zone-head p{margin:0;color:#687083;max-width:920px}
.con-compare-previews-all{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;align-items:start}
.con-base-preview-card{min-width:0;border:1px solid #dfe2e7;border-radius:15px;background:#fff;padding:14px;overflow:hidden}
.con-base-preview-card.is-principal{border:2px solid #237A53;background:linear-gradient(180deg,#fff 0,#F9FEFB 100%)}
.con-base-preview-card .con-key-base-head{margin-bottom:8px}
.con-base-preview-card .con-key-base-head h4{margin:5px 0 2px;font-size:17px}
.con-base-preview-card .con-key-base-head small{color:#687083}
.con-base-preview-card .table-wrap{max-width:100%;overflow:auto}
.con-base-preview-card table{min-width:max-content}
@media(max-width:1150px){
  .con-compare-previews-all{grid-template-columns:1fr}
  .con-reference-zone-head{flex-direction:column}
}


/* v2.16.31 | ajuste pontual solicitado: cards de qualidade mais compactos */
.con-compare-metrics{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}
.con-compare-metric{padding:11px 12px;gap:4px 9px;min-width:0}
.con-compare-metric>div:first-child{min-width:0}
.con-compare-metric>div:first-child b{font-size:13px;line-height:1.2;overflow-wrap:anywhere}
.con-compare-metric>div:first-child small{font-size:10px;line-height:1.25;overflow-wrap:anywhere}
.con-compare-metric>strong{font-size:20px;line-height:1.1;white-space:nowrap}
.con-compare-metric>span{font-size:10px;line-height:1.25}


/* v2.16.33 | Faturamento: fonte não aplicável */
.generation-source.not-applicable{background:#F4F5F7;border-color:#D9DCE1;color:#77707E}
.generation-source.not-applicable .generation-source-top>span:first-child{color:#77707E}
.generation-source.not-applicable>b{color:#8B8790}
.generation-source.not-applicable small{color:#8B8790}


/* ===== v2.16.35 | Administração dinâmica de módulos e identidade ===== */
.module-card.primary{background:linear-gradient(145deg,var(--module-card-secondary,var(--pd)) 0%,var(--module-card-primary,var(--p)) 100%)}
.module-admin-card{border-top:3px solid var(--admin-module-color,var(--p))}
.module-admin-card.is-inactive{opacity:.65;background:#F3F3F5;border-style:dashed}
.module-admin-index{display:flex;justify-content:space-between;gap:8px}.module-admin-index small{font-size:9px;color:var(--muted);font-weight:700}
.module-admin-tags{display:flex;gap:5px;flex-wrap:wrap}.module-admin-tags span{font-size:9px;border:1px solid var(--b);background:#F6FAF8;padding:4px 6px;border-radius:999px;color:var(--muted);font-weight:700}
.module-admin-top-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-right:44px}
.color-field{display:grid;grid-template-columns:48px 1fr;gap:8px}.color-field input[type=color]{padding:2px;height:42px;cursor:pointer}
.portal-brand-logo{max-width:150px;max-height:58px;object-fit:contain;display:block;margin-bottom:8px;filter:brightness(0) invert(1)}
.brand>div:last-child{line-height:1.2;font-weight:700}
@media(max-width:760px){.module-admin-top-actions{margin-right:0;width:100%}.module-admin-top-actions .btn{flex:1}}
