/* Classificador de Extratos v3.3.1.012.011.006 — UI Consistency / Component Standard */

/*
  This layer is deliberately last. It does not redesign individual pages;
  it enforces one component grammar across every historical screen.
*/
:root{
  /* Type scale */
  --km-text-xs:max(12px,calc(var(--km-user-font-size) - 2px));
  --km-text-sm:max(13px,calc(var(--km-user-font-size) - 1px));
  --km-text-md:var(--km-user-font-size);
  --km-text-lg:calc(var(--km-user-font-size) + 2px);
  --km-text-xl:calc(var(--km-user-font-size) + 5px);
  --km-title-sm:calc(var(--km-user-font-size) + 8px);
  --km-title-lg:calc(var(--km-user-font-size) + 16px);
  --km-hero-size:calc(var(--km-user-font-size) + 24px);

  /* One visual grammar */
  --km-border-size:1px;
  --km-ui-border:#d6e1e8;
  --km-ui-border-soft:#e5ebef;
  --km-ui-surface:#ffffff;
  --km-ui-surface-soft:#f7fafc;
  --km-ui-label:#536b7e;
  --km-ui-muted:#728697;
  --km-ui-ink:#172b3c;
  --km-ui-shadow:0 8px 24px rgba(8,31,49,.055);
  --km-ui-shadow-hover:0 12px 30px rgba(8,31,49,.08);
}

/* User-requested font stacks. Montserrat and Poppins are loaded on demand by JS when online. */
html[data-km-font="montserrat"]{--km-user-font-family:Montserrat,"Avenir Next",Avenir,system-ui,-apple-system,"Segoe UI",sans-serif}
html[data-km-font="poppins"]{--km-user-font-family:Poppins,Montserrat,system-ui,-apple-system,"Segoe UI",sans-serif}
html[data-km-font="lucida"]{--km-user-font-family:"Lucida Sans Unicode","Lucida Grande","Lucida Sans",Geneva,Verdana,sans-serif}
html[data-km-font="sf"]{--km-user-font-family:"SF Pro Text","SF Pro Display","San Francisco",-apple-system,BlinkMacSystemFont,system-ui,sans-serif}
html[data-km-font="consolas"]{--km-user-font-family:Consolas,"Liberation Mono","Courier New",monospace}
html[data-km-font="verdana"]{--km-user-font-family:Verdana,Geneva,sans-serif}
html[data-km-font="tahoma"]{--km-user-font-family:Tahoma,Verdana,Geneva,sans-serif}

/* Density = component geometry. The same level now means the same size everywhere. */
html[data-km-density="d1"]{--km-control-h:34px;--km-control-pad-x:9px;--km-control-pad-y:6px;--km-row-h:38px;--km-card-pad:11px;--km-panel-pad:13px;--km-ui-gap:7px;--km-ui-gap-lg:10px;--km-nav-row-h:44px;--km-symbol-size:42px;--km-radius-control:9px;--km-radius-card:13px;--km-radius-panel:17px}
html[data-km-density="d2"]{--km-control-h:36px;--km-control-pad-x:10px;--km-control-pad-y:7px;--km-row-h:40px;--km-card-pad:12px;--km-panel-pad:14px;--km-ui-gap:8px;--km-ui-gap-lg:11px;--km-nav-row-h:46px;--km-symbol-size:44px;--km-radius-control:9px;--km-radius-card:14px;--km-radius-panel:18px}
html[data-km-density="d3"]{--km-control-h:38px;--km-control-pad-x:10px;--km-control-pad-y:7px;--km-row-h:42px;--km-card-pad:13px;--km-panel-pad:15px;--km-ui-gap:9px;--km-ui-gap-lg:12px;--km-nav-row-h:48px;--km-symbol-size:46px;--km-radius-control:10px;--km-radius-card:14px;--km-radius-panel:19px}
html[data-km-density="d4"]{--km-control-h:40px;--km-control-pad-x:11px;--km-control-pad-y:8px;--km-row-h:44px;--km-card-pad:14px;--km-panel-pad:16px;--km-ui-gap:10px;--km-ui-gap-lg:14px;--km-nav-row-h:50px;--km-symbol-size:48px;--km-radius-control:10px;--km-radius-card:15px;--km-radius-panel:20px}
html[data-km-density="d5"]{--km-control-h:42px;--km-control-pad-x:12px;--km-control-pad-y:8px;--km-row-h:46px;--km-card-pad:15px;--km-panel-pad:18px;--km-ui-gap:11px;--km-ui-gap-lg:16px;--km-nav-row-h:52px;--km-symbol-size:50px;--km-radius-control:11px;--km-radius-card:16px;--km-radius-panel:21px}
html[data-km-density="d6"]{--km-control-h:44px;--km-control-pad-x:13px;--km-control-pad-y:9px;--km-row-h:48px;--km-card-pad:16px;--km-panel-pad:20px;--km-ui-gap:12px;--km-ui-gap-lg:18px;--km-nav-row-h:54px;--km-symbol-size:50px;--km-radius-control:11px;--km-radius-card:16px;--km-radius-panel:22px}
html[data-km-density="d7"]{--km-control-h:46px;--km-control-pad-x:14px;--km-control-pad-y:10px;--km-row-h:50px;--km-card-pad:18px;--km-panel-pad:22px;--km-ui-gap:14px;--km-ui-gap-lg:20px;--km-nav-row-h:57px;--km-symbol-size:53px;--km-radius-control:12px;--km-radius-card:17px;--km-radius-panel:23px}
html[data-km-density="d8"]{--km-control-h:48px;--km-control-pad-x:15px;--km-control-pad-y:11px;--km-row-h:52px;--km-card-pad:20px;--km-panel-pad:24px;--km-ui-gap:16px;--km-ui-gap-lg:22px;--km-nav-row-h:60px;--km-symbol-size:56px;--km-radius-control:12px;--km-radius-card:18px;--km-radius-panel:24px}
html[data-km-density="d9"]{--km-control-h:52px;--km-control-pad-x:16px;--km-control-pad-y:12px;--km-row-h:56px;--km-card-pad:23px;--km-panel-pad:27px;--km-ui-gap:18px;--km-ui-gap-lg:25px;--km-nav-row-h:64px;--km-symbol-size:59px;--km-radius-control:13px;--km-radius-card:19px;--km-radius-panel:26px}
html[data-km-density="d10"]{--km-control-h:56px;--km-control-pad-x:18px;--km-control-pad-y:13px;--km-row-h:60px;--km-card-pad:26px;--km-panel-pad:30px;--km-ui-gap:20px;--km-ui-gap-lg:28px;--km-nav-row-h:68px;--km-symbol-size:62px;--km-radius-control:14px;--km-radius-card:20px;--km-radius-panel:28px}

/* Typography baseline — same semantic role, same size on every page. */
html,body,button,input,select,textarea,table{font-family:var(--km-user-font-family)!important}
body.km-redesign{font-size:var(--km-text-md)!important;line-height:1.5!important;color:var(--km-ui-ink)}
body.km-redesign :where(p,td,.meta,.muted){font-size:var(--km-text-md)!important;line-height:1.5!important}
body.km-redesign :where(.small,small,.field-help,.km-field-help,.component-help,.hint,.privacy){font-size:var(--km-text-xs)!important;line-height:1.45!important}
body.km-redesign :where(.eyebrow,.km-page-kicker){font-size:var(--km-text-xs)!important;line-height:1.2!important;letter-spacing:.10em!important;font-weight:850!important;text-transform:uppercase}
body.km-redesign :where(.field>label,.field label,.field>span,.km-c360-field>span,.km-appearance-field>span){font-size:var(--km-text-sm)!important;line-height:1.3!important;font-weight:800!important;letter-spacing:.025em!important;color:var(--km-ui-label)!important}
body.km-redesign :where(.km-page-head h2){font-size:var(--km-title-lg)!important;line-height:1.08!important;letter-spacing:-.035em!important;font-weight:800!important}
body.km-redesign :where(.sectiontitle h2,.rule-suite-head h3,.ops-head h2,.km-client-detail-head h3,.km-intel-title h3,.km-exc-hero h3,.km-recon-title h3,.km-closing-head h3){font-size:var(--km-title-sm)!important;line-height:1.15!important;letter-spacing:-.025em!important;font-weight:800!important}
body.km-redesign :where(.km-c360-grid h4,.km-c360-section h4,.km-wm-section h4,.km-appearance-card-head h4){font-size:var(--km-text-xl)!important;line-height:1.2!important;font-weight:780!important}

/* Form controls — one height, one radius, one type size. */
body.km-redesign :where(
  input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
  select,
  .btn,
  .iconbtn,
  .km-wm-icon-btn
){
  min-height:var(--km-control-h)!important;
  height:auto;
  box-sizing:border-box!important;
  border-width:var(--km-border-size)!important;
  border-radius:var(--km-radius-control)!important;
  padding:var(--km-control-pad-y) var(--km-control-pad-x)!important;
  font-size:var(--km-text-md)!important;
  line-height:1.2!important;
}
body.km-redesign textarea{box-sizing:border-box!important;border-width:var(--km-border-size)!important;border-radius:var(--km-radius-control)!important;padding:var(--km-control-pad-y) var(--km-control-pad-x)!important;font-size:var(--km-text-md)!important;line-height:1.45!important}
body.km-redesign .btn{font-weight:800!important;letter-spacing:0!important}
body.km-redesign .btn.tiny{min-height:max(34px,calc(var(--km-control-h) - 8px))!important;padding:max(6px,calc(var(--km-control-pad-y) - 2px)) max(9px,calc(var(--km-control-pad-x) - 2px))!important;font-size:var(--km-text-sm)!important}
body.km-redesign :where(input,select,textarea){border-color:var(--km-ui-border)!important}
body.km-redesign :where(input,select,textarea):focus{border-color:#7399b4!important;box-shadow:0 0 0 3px rgba(54,111,151,.10)!important}

/* Tabs and segmented navigation share the same compact-control grammar. */
body.km-redesign :where(.km-subnav,.rule-suite-tabs,.km-c360-tabs){gap:6px!important}
body.km-redesign :where(.km-subnav button,.rule-suite-tabs button,.km-c360-tabs button,.dc-tab){
  min-height:max(36px,calc(var(--km-control-h) - 6px))!important;
  border-radius:var(--km-radius-control)!important;
  padding:max(6px,calc(var(--km-control-pad-y) - 2px)) var(--km-control-pad-x)!important;
  font-size:var(--km-text-sm)!important;
  line-height:1.2!important;
  font-weight:800!important;
}

/* Surface language — same border/radius/shadow on equivalent containers. */
body.km-redesign :where(
 .card,.rule-suite-head,.rule-builder-card,.rule-library-card,.simulator-card,.export-editor-card,.export-library-card,
 .client-card,.km-client-360-detail,.km-c360-grid>section,.km-c360-section,.km-recon-card,.km-dest-card,.km-intel-section,
 .settings-grid-v33>.field,.settings-grid-v33>.toggle-field,.km-simple-config-intro,.scopebar,.ops-toolbar,.account-admin>summary
){
  border-width:var(--km-border-size)!important;
  border-radius:var(--km-radius-card)!important;
  border-color:var(--km-ui-border)!important;
  box-shadow:var(--km-ui-shadow)!important;
  box-sizing:border-box!important;
}
body.km-redesign :where(.rule-builder-card,.rule-library-card,.simulator-card,.export-editor-card,.export-library-card,.km-client-360-detail,.km-c360-grid>section,.km-c360-section){padding:var(--km-card-pad)!important}

/* Badges/chips/status — no more 8px/9px islands. */
body.km-redesign :where(.badge,.mini-tag,.status-chip,.km-identity-badge,.km-description-chips span,.km-c360-pairs>div,.km-c360-rule,.km-metric-pill,.km-workspace-pill){font-size:var(--km-text-xs)!important;line-height:1.25!important}
body.km-redesign :where(.badge,.mini-tag,.status-chip,.km-identity-badge){padding:5px 8px!important}

/* Tables/data rows. */
body.km-redesign table th{height:var(--km-row-h)!important;padding:8px var(--km-control-pad-x)!important;font-size:var(--km-text-sm)!important;line-height:1.25!important}
body.km-redesign table td{min-height:var(--km-row-h)!important;padding:8px var(--km-control-pad-x)!important;font-size:var(--km-text-md)!important;line-height:1.4!important}
body.km-redesign :where(.tablewrap,.mini-table){border-radius:var(--km-radius-card)!important;border-width:var(--km-border-size)!important}

/* IMPORTAR — remove the extreme contrast between hero text and microcopy. */
body.km-redesign #uploadCard{border-radius:var(--km-radius-panel)!important}
body.km-redesign .hero-shell{min-height:0!important}
body.km-redesign .hero-copy,body.km-redesign .hero-upload{padding:calc(var(--km-panel-pad) + 4px)!important}
body.km-redesign .hero-logo{gap:var(--km-ui-gap)!important}
body.km-redesign .hero-logo-badge{width:calc(var(--km-symbol-size) + 8px)!important;height:calc(var(--km-symbol-size) + 8px)!important;border-radius:var(--km-radius-card)!important}
body.km-redesign .hero-brandtext strong{font-size:var(--km-text-lg)!important;line-height:1.25!important}
body.km-redesign .hero-brandtext span{font-size:var(--km-text-sm)!important;line-height:1.45!important}
body.km-redesign .hero-copy h2{font-size:calc(var(--km-title-sm) + 3px)!important;line-height:1.1!important;letter-spacing:-.03em!important;margin:var(--km-ui-gap-lg) 0 6px!important}
body.km-redesign .hero-copy>p{font-size:var(--km-text-md)!important;line-height:1.55!important;margin:0 0 var(--km-ui-gap-lg)!important}
body.km-redesign .quick-points{gap:var(--km-ui-gap)!important}
body.km-redesign .quick-points .point{padding:var(--km-card-pad)!important;border-radius:var(--km-radius-card)!important}
body.km-redesign .quick-points .point b{font-size:var(--km-text-sm)!important;line-height:1.3!important}
body.km-redesign .quick-points .point span{font-size:var(--km-text-xs)!important;line-height:1.45!important;margin-top:5px!important}
body.km-redesign .subtle-brand{font-size:var(--km-text-xs)!important;line-height:1.45!important;margin-top:var(--km-ui-gap-lg)!important}
body.km-redesign .subtle-brand span{font-size:var(--km-text-xs)!important;line-height:1.45!important}
body.km-redesign .hero-upload .drop{padding:calc(var(--km-panel-pad) + 2px)!important;border-radius:var(--km-radius-panel)!important}
body.km-redesign .hero-upload .drop h2{font-size:var(--km-title-sm)!important;line-height:1.15!important}
body.km-redesign .hero-upload .drop p{font-size:var(--km-text-sm)!important;line-height:1.5!important}
body.km-redesign .hero-upload .privacy{font-size:var(--km-text-xs)!important;line-height:1.45!important;margin-top:var(--km-ui-gap)!important}

/* CLIENTES / Cliente 360 — one readable hierarchy. */
body.km-redesign .km-client-toolbar{padding:var(--km-card-pad)!important;border-radius:var(--km-radius-card)!important}
body.km-redesign .km-client-toolbar>div:first-child strong{font-size:var(--km-text-md)!important}
body.km-redesign .km-client-toolbar>div:first-child span{font-size:var(--km-text-sm)!important;line-height:1.45!important}
body.km-redesign .client-card{padding:var(--km-card-pad)!important;border-radius:var(--km-radius-card)!important}
body.km-redesign .client-card strong{font-size:var(--km-text-lg)!important;line-height:1.25!important}
body.km-redesign .client-meta{font-size:var(--km-text-sm)!important;line-height:1.45!important}
body.km-redesign .client-tags{gap:6px!important}.client-tags .badge{font-size:var(--km-text-xs)!important}
body.km-redesign .km-client-detail-head h3{font-size:var(--km-title-sm)!important}
body.km-redesign .km-client-detail-head p{font-size:var(--km-text-md)!important}
body.km-redesign .km-c360-kpis{gap:var(--km-ui-gap)!important;margin:var(--km-ui-gap-lg) 0!important}
body.km-redesign .km-c360-kpis>div{padding:max(10px,calc(var(--km-card-pad) - 4px))!important;border-radius:var(--km-radius-control)!important}
body.km-redesign .km-c360-kpis b{font-size:var(--km-text-xl)!important}
body.km-redesign .km-c360-kpis span{font-size:var(--km-text-xs)!important}
body.km-redesign .km-c360-grid{gap:var(--km-ui-gap)!important}
body.km-redesign .km-c360-lines>div,body.km-redesign .km-c360-line{font-size:var(--km-text-sm)!important;padding:9px 0!important}
body.km-redesign .km-identity-badge{font-size:var(--km-text-xs)!important}
body.km-redesign .km-identity-row strong{font-size:var(--km-text-sm)!important}
body.km-redesign .km-identity-row small{font-size:var(--km-text-xs)!important}

/* REGRAS — builder and library now use the exact same controls/cards as Settings and Clients. */
body.km-redesign .rule-suite-head{padding:var(--km-card-pad)!important;margin-bottom:var(--km-ui-gap)!important}
body.km-redesign .rule-suite-head p{font-size:var(--km-text-md)!important;line-height:1.45!important}
body.km-redesign .rule-layout{gap:var(--km-ui-gap)!important}
body.km-redesign .rule-form-grid,body.km-redesign .library-filters{gap:var(--km-ui-gap)!important}
body.km-redesign .condition-head{min-height:var(--km-control-h)!important;align-items:center!important}
body.km-redesign .condition-head>strong,body.km-redesign .then-block>strong{font-size:var(--km-text-sm)!important;line-height:1.2!important}
body.km-redesign .condition-row{gap:var(--km-ui-gap)!important;border-radius:var(--km-radius-control)!important}
body.km-redesign .field-help{font-size:var(--km-text-xs)!important;line-height:1.45!important}
body.km-redesign .library-bottom-actions{gap:var(--km-ui-gap)!important}

/* CONFIGURAÇÕES — same field card geometry and typography. */
body.km-redesign .scopebar{padding:var(--km-card-pad)!important;gap:var(--km-ui-gap)!important;align-items:end!important}
body.km-redesign .km-simple-config-intro{padding:var(--km-card-pad)!important}
body.km-redesign .km-simple-config-intro strong{font-size:var(--km-text-lg)!important;line-height:1.25!important}
body.km-redesign .km-simple-config-intro p{font-size:var(--km-text-md)!important;line-height:1.45!important}
body.km-redesign .settings-grid-v33{gap:var(--km-ui-gap)!important;margin-top:var(--km-ui-gap)!important}
body.km-redesign .settings-grid-v33>.field,body.km-redesign .settings-grid-v33>.toggle-field{padding:var(--km-card-pad)!important;border-radius:var(--km-radius-card)!important}
body.km-redesign .settings-grid-v33>.field:before{margin-bottom:var(--km-ui-gap)!important}
body.km-redesign .toggle-field strong{font-size:var(--km-text-md)!important;line-height:1.3!important}
body.km-redesign .toggle-field span{font-size:var(--km-text-sm)!important;line-height:1.45!important}
body.km-redesign .client-config-copy{padding:var(--km-card-pad)!important;border-radius:var(--km-radius-card)!important}

/* Help buttons — one size everywhere. */
body.km-redesign :where(.km-help-btn,.km-recon-help,.km-exc-help,.km-dest-help){
  width:20px!important;height:20px!important;min-width:20px!important;min-height:20px!important;padding:0!important;border-radius:50%!important;font-size:12px!important;line-height:20px!important;display:inline-grid!important;place-items:center!important;vertical-align:middle!important
}

/* Modal typography and geometry. */
body.km-redesign :where(.modal,.km-merge-modal,.km-wm-sheet,.km-help-card,.km-onboarding-card){border-radius:var(--km-radius-panel)!important;padding:var(--km-panel-pad)!important}
body.km-redesign :where(.modal h3,.km-merge-modal h3,.km-wm-sheet h3,.km-help-card h2,.km-onboarding-card h2){font-size:var(--km-title-sm)!important;line-height:1.15!important}
body.km-redesign :where(.modal .subtitle,.km-merge-modal>p,.km-wm-sheet>p,.km-help-card p,.km-onboarding-card p){font-size:var(--km-text-md)!important;line-height:1.5!important}

/* Dark mode keeps the same geometry; only surfaces/colors differ. */
body.theme-dark{--km-ui-border:#294154;--km-ui-border-soft:#20384a;--km-ui-surface:#0d1f2e;--km-ui-surface-soft:#102636;--km-ui-label:#b5c5d1;--km-ui-muted:#9fb2c0;--km-ui-ink:#edf4f8;--km-ui-shadow:0 8px 24px rgba(0,0,0,.16)}

/* Responsive consistency. */
@media(max-width:900px){
  body.km-redesign .hero-copy,body.km-redesign .hero-upload{padding:var(--km-panel-pad)!important}
  body.km-redesign .km-page-head h2{font-size:calc(var(--km-title-sm) + 2px)!important}
  body.km-redesign .rule-layout,body.km-redesign .km-client-360-layout{grid-template-columns:1fr!important}
}
@media(max-width:620px){
  body.km-redesign .quick-points{grid-template-columns:1fr!important}
  body.km-redesign .settings-grid-v33{grid-template-columns:1fr!important}
  body.km-redesign :where(.sectiontitle h2,.rule-suite-head h3,.km-client-detail-head h3){font-size:var(--km-title-sm)!important}
}

/* Remaining high-visibility legacy islands seen in Rules / Clients / Settings screenshots. */
body.km-redesign .rule-suite-kpis{gap:6px!important}
body.km-redesign .rule-suite-kpis span{font-size:var(--km-text-xs)!important;padding:6px 9px!important;border-radius:999px!important}
body.km-redesign .rule-suite-kpis b{font-size:var(--km-text-sm)!important}
body.km-redesign .visual-rule-item,body.km-redesign .export-profile-item{padding:var(--km-card-pad)!important;border-radius:var(--km-radius-card)!important}
body.km-redesign .visual-rule-top strong,body.km-redesign .export-profile-top strong{font-size:var(--km-text-md)!important;line-height:1.3!important}
body.km-redesign .visual-rule-meta,body.km-redesign .export-profile-meta,body.km-redesign .rule-condition-summary{font-size:var(--km-text-sm)!important;line-height:1.45!important}
body.km-redesign .rule-tag{font-size:var(--km-text-xs)!important;padding:5px 7px!important}
body.km-redesign .visual-rule-actions button,body.km-redesign .export-profile-actions button{min-height:max(34px,calc(var(--km-control-h) - 8px))!important;font-size:var(--km-text-sm)!important;padding:6px 9px!important}
body.km-redesign .then-block{padding:var(--km-card-pad)!important;border-radius:var(--km-radius-card)!important}
body.km-redesign .rule-overlap,body.km-redesign .notice{font-size:var(--km-text-sm)!important;line-height:1.45!important;border-radius:var(--km-radius-control)!important}

body.km-redesign .searchline input[type="search"]{width:100%!important;min-height:var(--km-control-h)!important;font-size:var(--km-text-md)!important}
body.km-redesign .km-clients-360 #clientList{gap:var(--km-ui-gap)!important}
body.km-redesign .km-client-card-actions{gap:var(--km-ui-gap)!important}
body.km-redesign .km-c360-tabs{margin-bottom:var(--km-ui-gap)!important}
body.km-redesign .km-c360-grid h4,body.km-redesign .km-c360-section h4{margin-bottom:var(--km-ui-gap)!important}

/* Prevent old page-specific rules from shrinking text below the semantic floor. */
body.km-redesign :where(
 .quick-points .point span,.quick-points .point b,.subtle-brand,.hero-brandtext span,.hero-upload .drop p,.hero-upload .privacy,
 .km-c360-kpis span,.km-c360-tabs button,.km-c360-grid h4,.km-c360-section h4,.km-c360-lines,.km-identity-row strong,.km-identity-row small,
 .rule-suite-kpis span,.rule-suite-kpis b,.visual-rule-meta,.export-profile-meta,.rule-tag,.rule-condition-summary,
 .km-simple-config-intro p,.toggle-field span,.field-help,.km-field-help,.notice,.ops-head p,.ops-kpi span
){font-size:max(12px,var(--km-text-xs))!important}
