@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&display=swap');
:root{--brand-primary:#f26852;--brand-dark:#151515;--brand-light:#f6f4ef;--accent:var(--brand-primary);--ink:var(--brand-dark);--paper:var(--brand-light);--white:#fff;--muted:color-mix(in srgb,var(--brand-dark) 62%,#fff);--line:color-mix(in srgb,var(--brand-dark) 14%,transparent);--soft:color-mix(in srgb,var(--brand-light) 68%,#fff);--accent-soft:color-mix(in srgb,var(--brand-primary) 12%,#fff);--accent-mid:color-mix(in srgb,var(--brand-primary) 64%,var(--brand-dark));--display:'DM Sans',sans-serif;--body:'DM Sans',sans-serif}
*{box-sizing:border-box;scrollbar-width:none}*::-webkit-scrollbar{width:0;height:0;display:none}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--body);font-size:18px;line-height:1.62}body.modal-open{overflow:hidden}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}::selection{background:var(--brand-primary);color:#fff}
.shell{min-height:100vh;display:flex;flex-direction:column}
.app-top{background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:60}.nav-shell{min-height:82px;max-width:1440px;margin:auto;padding:0 34px;display:grid;grid-template-columns:310px 1fr auto;align-items:center;gap:30px}.brand{display:flex;align-items:center;gap:14px}.brand-mark{width:42px;height:42px;display:flex;align-items:center;justify-content:center;background:var(--brand-primary);color:#fff;font-family:var(--body);line-height:1;flex:0 0 42px}.brand-mark strong{font-family:'Arial Rounded MT Bold',var(--display);font-size:30px;font-weight:900;letter-spacing:-2.1px;line-height:.86}.brand-mark i{font-family:'Arial Rounded MT Bold',var(--display);font-size:30px;font-style:normal;font-weight:900;color:#fff;margin-left:-1px;line-height:.86;transform:translateY(-.4px)}.brand-copy{display:flex;flex-direction:column;align-items:flex-start}.brand-name{display:flex;align-items:baseline;flex-wrap:nowrap;width:max-content;max-width:100%;white-space:nowrap;font-family:var(--body);line-height:1}.brand-name strong{font-family:var(--display);font-size:22px;font-weight:700;letter-spacing:-1px}.brand-name i{font-family:var(--display);font-size:22px;font-style:normal;font-weight:700;color:var(--brand-primary);margin-left:0}.brand-name em{font-size:16px;font-style:normal;font-weight:200;letter-spacing:-.45px;color:#7f7f7f;margin-left:2px}.brand-version{display:inline-block;margin:0 0 0 7px;text-align:left;font-size:9px;font-weight:600;line-height:1;letter-spacing:0;color:var(--brand-primary)}.brand small{display:block;margin-top:4px;font-size:8px;line-height:1.15;letter-spacing:.12em;color:var(--muted);white-space:nowrap}.main-nav{display:flex;align-items:stretch;justify-content:center;min-height:82px}.side-link{display:flex;align-items:center;padding:0 16px;position:relative;font-size:16px;font-weight:400;color:color-mix(in srgb,var(--brand-dark) 76%,#fff)}.side-link:after{content:"";position:absolute;height:3px;left:16px;right:16px;bottom:0;background:var(--brand-primary);transform:scaleX(0);transform-origin:left;transition:.2s}.side-link:hover,.side-link.active{color:var(--brand-primary)}.side-link.active:after,.side-link:hover:after{transform:scaleX(1)}
.top-actions{display:flex;align-items:center;gap:6px}.top-icon{width:40px;height:40px;border:0;background:transparent;color:var(--ink);display:grid;place-items:center;padding:0;transition:.2s}.top-icon:hover{color:var(--brand-primary);background:var(--accent-soft)}.top-icon svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.main{flex:1;min-width:0}.page{max-width:1440px;margin:auto;padding:0 34px 78px}
.page-intro{position:relative;margin:0 0 38px;height:176px;padding:24px max(34px,calc((100vw - 1440px)/2 + 34px));color:#fff;overflow:hidden;background:var(--brand-dark);display:flex;flex-direction:column;justify-content:center}.page-intro:before{content:"";position:absolute;width:300px;height:300px;border:56px solid color-mix(in srgb,var(--brand-primary) 72%,transparent);border-radius:50%;right:-118px;top:-132px;opacity:.18}.page-intro>*{position:relative;z-index:2}.eyebrow,.section-kicker{display:inline-flex;align-items:center;gap:10px;font-size:13px;letter-spacing:.11em;text-transform:uppercase;font-weight:700;color:var(--brand-primary)}.eyebrow{height:8px;line-height:0;font-size:0}.page-intro h1{font:600 clamp(34px,3.4vw,46px)/1.02 var(--display);letter-spacing:-1.8px;margin:8px 0 9px;max-width:900px}.page-intro h1 em{font-style:normal;color:var(--brand-primary)}.page-intro p{max-width:780px;color:color-mix(in srgb,#fff 78%,var(--brand-dark));line-height:1.45;font-size:16px;margin:0}.page-intro.compact{height:176px;padding-top:24px;padding-bottom:24px}.page-intro.compact h1{font-size:clamp(34px,3.4vw,46px)}.page-intro>.btn{position:absolute;z-index:3;right:34px;top:50%;transform:translateY(-50%)}.page-intro:has(>.btn) h1,.page-intro:has(>.btn) p{max-width:calc(100% - 240px)}
.page-title{display:flex;align-items:flex-end;justify-content:space-between;gap:28px;margin:0 0 26px}.page-title h1,.section-heading{font:600 clamp(28px,3vw,40px)/1.08 var(--display);letter-spacing:-1.35px;margin:7px 0}.page-title h2{font:600 clamp(27px,2.8vw,38px)/1.1 var(--display);letter-spacing:-1.2px;margin:7px 0}.page-title p{margin:0;color:var(--muted);font-size:17px}
.cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;margin:0 0 42px}.cards.mini{grid-template-columns:repeat(3,minmax(0,1fr))}.card{background:#fff;border:1px solid var(--line);padding:34px;box-shadow:0 10px 28px color-mix(in srgb,var(--brand-dark) 5%,transparent)}.kpi{min-height:180px;position:relative;display:flex;flex-direction:column;justify-content:space-between;overflow:hidden;padding:32px}.kpi:after{content:"";position:absolute;width:48px;height:48px;border:1px solid color-mix(in srgb,var(--brand-primary) 35%,transparent);border-radius:50%;right:22px;top:22px}.kpi:first-child{background:var(--brand-primary);border-color:var(--brand-primary);color:#fff}.kpi:first-child:after{border-color:rgba(255,255,255,.5)}.kpi span{font-size:13px;text-transform:uppercase;letter-spacing:.09em;color:var(--muted)}.kpi:first-child span,.kpi:first-child small{color:#fff}.kpi b{font:600 clamp(28px,2.7vw,42px)/1 var(--display);letter-spacing:-1.5px;word-break:break-word}.kpi small{font-size:14px;color:var(--muted)}.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin:0 0 40px}.split-grid{display:grid;grid-template-columns:minmax(300px,.8fr) minmax(0,1.6fr);gap:20px}.grid-3 .card{min-height:225px;padding:36px}.grid-3 h3,.card h3{font:600 25px/1.15 var(--display);letter-spacing:-.8px;margin:18px 0 14px}.card p{margin-bottom:0}.muted{color:var(--muted)}.small{font-size:14px}.table-sub{display:block;color:var(--muted);font-size:13px;margin-top:4px}
.btn{border:0;border-radius:0;padding:14px 22px;display:inline-flex;align-items:center;justify-content:center;gap:8px;background:#fff;cursor:pointer;font-weight:700;font-size:14px;text-transform:uppercase;letter-spacing:.065em;transition:.2s}.btn-primary{background:var(--brand-primary);color:#fff}.btn-dark{background:var(--brand-dark);color:#fff}.btn-outline{border:1px solid var(--line);background:transparent}.btn:hover{transform:translateY(-1px);filter:brightness(.98)}.btn:focus-visible,.field input:focus,.field select:focus,.field textarea:focus,.top-icon:focus-visible{outline:3px solid color-mix(in srgb,var(--brand-primary) 24%,transparent);outline-offset:2px}
.form-card{padding:38px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 26px}.field label{display:block;font-size:14px;letter-spacing:.055em;text-transform:uppercase;font-weight:700;color:color-mix(in srgb,var(--brand-dark) 82%,#fff);margin-bottom:9px}.field input,.field select,.field textarea{width:100%;border:1px solid color-mix(in srgb,var(--brand-dark) 18%,transparent);background:#fff;padding:15px 16px;outline:none;border-radius:0;color:var(--ink);font-size:16px}.field textarea{min-height:120px;resize:vertical}.field small{display:block;color:var(--muted);font-size:13px;margin-top:7px;line-height:1.5}.section-head{display:grid;grid-template-columns:54px 1fr;gap:18px;align-items:center;margin:42px 0 25px;padding-top:30px;border-top:1px solid var(--line)}.section-head:first-of-type{border-top:0;padding-top:0}.section-head>span{font:600 28px var(--display);color:var(--brand-primary)}.section-head small{font-size:12px;letter-spacing:.11em;text-transform:uppercase;color:var(--muted)}.section-head h2{font:600 29px var(--display);letter-spacing:-.9px;margin:2px 0}.form-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:30px}.module-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.module-grid.one{grid-template-columns:1fr}.module-check{display:flex;gap:13px;align-items:flex-start;border:1px solid var(--line);background:#fff;padding:20px}.module-check input{accent-color:var(--brand-primary);margin-top:5px}.module-check b{display:block;font-size:16px}.module-check small{display:block;font-size:13px;color:var(--muted);margin-top:4px}
.table-card{padding:0;overflow:hidden}.table-card>.table-card>h3{padding:0 34px;margin-top:12px}.table-card>.page-title{padding:30px 34px 0}.table{width:100%;border-collapse:collapse;background:#fff;font-size:16px}.table th,.table td{padding:20px 22px;text-align:left;border-bottom:1px solid var(--line);vertical-align:middle}.table th{font-size:13px;letter-spacing:.075em;text-transform:uppercase;color:var(--muted);font-weight:700;background:color-mix(in srgb,var(--brand-light) 56%,#fff)}.table tbody tr:hover{background:color-mix(in srgb,var(--brand-primary) 5%,#fff)}.table a{color:var(--brand-primary);font-weight:700}.table code{font-size:13px}.badge{display:inline-flex;align-items:center;padding:8px 11px;background:var(--accent-soft);color:var(--accent-mid);font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.06em}.badge.warn{background:color-mix(in srgb,var(--brand-primary) 14%,#fff);color:var(--accent-mid)}.flash,.notice{padding:17px 20px;margin:20px 0;border-left:4px solid var(--brand-primary);background:var(--accent-soft);font-size:16px}.flash.error{border-left-color:var(--brand-primary);background:color-mix(in srgb,var(--brand-primary) 9%,#fff);color:var(--ink)}.backup-seal b,.backup-seal small{display:block}.backup-seal small{color:var(--muted);margin-top:3px}.tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:24px}.tabs a{padding:11px 15px;border:1px solid var(--line);font-size:15px;background:#fff}.tabs a:hover,.tabs a.active{background:var(--brand-primary);border-color:var(--brand-primary);color:#fff}.color-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.color-field{padding:18px;border:1px solid var(--line);background:#fff}.color-field span,.color-field b{display:block;font-size:14px}.color-field input[type=color]{width:100%;height:64px;border:0;background:transparent;margin:10px 0;padding:0;cursor:pointer}.settings-section{margin-bottom:26px}
.app-footer{max-width:none;background:var(--brand-dark);color:#fff;padding:34px max(34px,calc((100vw - 1440px)/2 + 34px));display:flex;justify-content:space-between;align-items:end;gap:30px}.app-footer b,.app-footer span{display:block}.app-footer b{font:600 22px var(--display)}.app-footer span,.app-footer small{font-size:13px;color:#b6b6b6}
/* Perfil no topo */
.profile-modal[hidden]{display:none}.profile-modal{position:fixed;inset:0;z-index:1000}.profile-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.58);backdrop-filter:blur(3px)}.profile-dialog{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:min(560px,calc(100% - 32px));max-height:calc(100vh - 48px);overflow:auto;background:#fff;padding:38px;box-shadow:0 25px 80px rgba(0,0,0,.24)}.profile-dialog h2{font:600 34px/1.05 var(--display);letter-spacing:-1.2px;margin:12px 0 8px}.profile-dialog .field{margin-top:18px}.modal-close{position:absolute;right:18px;top:14px;border:0;background:transparent;font-size:32px;line-height:1;color:var(--brand-primary)}.modal-actions{display:flex;justify-content:space-between;gap:12px;margin-top:28px}
/* Telas independentes */
.login-page{min-height:100vh;background:var(--brand-light);padding:32px;display:grid;place-items:center}.login-card{width:min(1120px,100%);min-height:610px;display:grid;grid-template-columns:1fr .9fr;background:#fff;overflow:hidden;border:1px solid var(--line)}.login-card-compact{min-height:650px}.login-art{position:relative;background:var(--brand-dark);color:#fff;padding:58px;display:flex;align-items:flex-end;overflow:hidden}.login-art:before{content:"";position:absolute;width:360px;height:360px;border:78px solid var(--brand-primary);border-radius:50%;right:-185px;top:-185px}.login-art>div{position:relative;z-index:2}.login-art h1{font:600 clamp(40px,4.3vw,58px)/1.02 var(--display);letter-spacing:-2.2px;margin:15px 0 18px}.login-art p{font-size:18px;line-height:1.65;color:#c4c4c4;max-width:600px}.login-panel{padding:54px 52px;display:flex;align-items:center;background:#fff}.login-box{width:100%}.login-box h2{font:600 clamp(34px,3.5vw,46px)/1.04 var(--display);letter-spacing:-1.6px;margin:14px 0}.login-box .field{margin-top:18px}.login-box>.btn{width:100%;margin-top:24px}.login-note{font-size:14px;color:var(--muted);margin-top:18px;line-height:1.65}.login-links{display:flex;justify-content:space-between;gap:14px;margin-top:14px;font-size:14px}.login-links a,.login-back{color:var(--brand-primary);font-weight:700}.login-back{display:inline-block;margin-top:18px}.install-wrap{width:min(980px,calc(100% - 36px));margin:44px auto 72px}.install-wrap>.brand{margin-bottom:24px}.install-wrap>.card{padding:40px}.install-wrap h1{font:600 clamp(34px,4vw,48px)/1.05 var(--display);letter-spacing:-1.6px;margin:13px 0 17px}.install-wrap h2,.install-wrap h3{font-family:var(--display)}.steps{display:flex;gap:8px;margin:18px 0}.step{width:42px;height:5px;background:color-mix(in srgb,var(--brand-dark) 14%,transparent)}.step.on{background:var(--brand-primary)}.recovery-zone{background:#fff;border:1px solid var(--line);padding:30px}.install-wrap hr{border:0!important;border-top:1px solid var(--line)!important}.install-wrap .cards{margin-top:22px}
@media(max-width:1120px){.nav-shell{grid-template-columns:280px 1fr auto;gap:14px}.side-link{padding:0 10px;font-size:14px}.cards{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:repeat(2,1fr)}}
@media(max-width:850px){body{font-size:17px}.app-top{position:static}.nav-shell{display:flex;flex-wrap:wrap;height:auto;padding:18px 22px}.brand-mark{width:38px;height:38px;flex-basis:38px}.brand-mark strong,.brand-mark i{font-size:26px}.main-nav{order:3;width:100%;min-height:0;overflow-x:auto;justify-content:flex-start;border-top:1px solid var(--line);margin-top:12px}.side-link{min-height:50px;white-space:nowrap}.top-actions{margin-left:auto}.page{padding:0 22px 58px}.page-intro{margin-left:0;margin-right:0;height:auto;min-height:160px;padding:24px 22px}.page-title{align-items:flex-start;flex-direction:column}.split-grid,.form-grid{grid-template-columns:1fr}.module-grid,.color-grid{grid-template-columns:1fr}.login-card{grid-template-columns:1fr}.login-art{min-height:300px;padding:40px}.login-panel{padding:42px}.app-footer{padding:30px 22px;flex-direction:column;align-items:flex-start}}
@media(max-width:580px){.cards,.cards.mini,.grid-3{grid-template-columns:1fr}.card,.form-card{padding:28px}.page-intro h1{font-size:34px;letter-spacing:-1.4px}.page-intro.compact h1{font-size:34px}.page-intro{height:auto;min-height:150px;padding-top:24px;padding-bottom:24px;margin-bottom:28px}.page-intro:before{width:220px;height:220px;border-width:48px;right:-120px;top:-135px}.table-card{overflow:visible}.table{min-width:720px}.login-page{padding:0;background:#fff}.login-card{min-height:100vh;border:0}.login-art{min-height:260px;padding:28px 24px}.login-art h1{font-size:38px;letter-spacing:-1.4px}.login-panel{padding:32px 24px}.install-wrap{margin-top:24px}.install-wrap>.card{padding:26px}.btn{width:100%}.form-actions,.modal-actions{flex-direction:column}.profile-dialog{padding:30px 24px}}
.section-rule{border:0;border-top:1px solid var(--line);margin:28px 0}

/* 1.0.13 — ajustes cirúrgicos solicitados para login e recuperação */
.login-brand{gap:8px;align-items:baseline;margin-bottom:10px;pointer-events:none}

.login-box .field input{min-height:52px}
.login-box .btn{min-height:52px;width:100%;margin-top:24px}
.login-box form .btn{margin-top:24px}
.login-links,.login-back{font-size:14px;line-height:1.5}
.login-links-right{justify-content:flex-end}
.login-copyright{text-align:center;width:100%;margin-top:24px}
.login-back{margin-top:18px}

/* 1.0.14 — ajustes cirúrgicos de marca e proporção em login/recuperação */
.login-page{height:100svh;min-height:0;padding:20px;overflow:hidden;place-items:center}
.login-card{width:min(1040px,100%);height:min(560px,calc(100svh - 40px));min-height:0;grid-template-columns:1fr .9fr}
.login-art{padding:46px;min-height:0}
.login-panel{padding:42px 46px;min-height:0;overflow:auto}
.login-brand{gap:12px;align-items:center;margin-bottom:12px;pointer-events:none}.login-brand .brand-copy>small{display:block;margin-top:4px;font-size:8px;line-height:1.15;letter-spacing:.12em;color:var(--muted);white-space:nowrap}
.login-brand-name{display:flex;align-items:baseline;flex-wrap:nowrap;width:max-content;max-width:100%;white-space:nowrap;font-family:var(--body);line-height:1}
.login-brand-name strong{font-family:var(--display);font-size:27px;font-weight:700;letter-spacing:-1.25px}
.login-brand-name i{font-family:var(--display);font-size:27px;font-style:normal;font-weight:700;color:var(--brand-primary);margin-left:0}
.login-brand-name em{font-size:20px;font-style:normal;font-weight:200;letter-spacing:-.7px;color:#8a8a8a;margin-left:2px}
.login-brand-name .brand-version{display:inline-block;flex:0 0 auto;text-align:left;margin:0 0 0 7px}
.login-box .field input,.login-box .btn{height:50px;min-height:50px}
.login-box>.btn,.login-box form .btn{margin-top:22px}
.login-links{margin-top:13px}
.login-back{margin-top:13px}
.login-copyright{margin-top:20px}
@media(max-height:650px) and (min-width:851px){.login-page{padding:12px}.login-card{height:calc(100svh - 24px);width:min(980px,100%)}.login-art{padding:34px}.login-panel{padding:30px 40px}.login-art h1{font-size:40px;margin:10px 0}.login-brand{margin-bottom:8px}.login-box .field{margin-top:12px}.login-box>.btn,.login-box form .btn{margin-top:16px}.login-copyright{margin-top:14px}}
@media(max-width:850px){.login-page{height:auto;min-height:100svh;overflow:auto;padding:20px}.login-card{height:auto;min-height:calc(100svh - 40px)}.login-panel{overflow:visible}.login-art{min-height:220px}}
@media(max-width:580px){.login-page{padding:0}.login-card{min-height:100svh;height:auto}.login-art{min-height:210px}.login-brand-name strong,.login-brand-name i{font-size:25px}.login-brand-name em{font-size:18px}}

/* 1.0.17 — ajustes solicitados de cabeçalho, marca e banners */
@media(max-width:850px){.page-intro>.btn{position:static;transform:none;margin-top:14px;align-self:flex-start}.page-intro:has(>.btn) h1,.page-intro:has(>.btn) p{max-width:100%}.brand-version{font-size:9px;margin-left:0}}

/* 1.0.18 — ajustes solicitados de banners, rodapé, clientes e restauração */
.page-intro{margin-top:24px}
.page-intro:before{opacity:.08}
.app-footer{align-items:center}
.footer-brand{display:flex;flex-direction:column;align-items:flex-start;gap:5px}
.footer-brand-name{display:inline-flex;align-items:baseline;white-space:nowrap;line-height:1}
.footer-brand-name strong{font-family:var(--display);font-size:21px;font-weight:700;letter-spacing:-1px}
.footer-brand-name i{font-family:var(--display);font-size:21px;font-style:normal;font-weight:700;color:var(--brand-primary);margin-left:0}
.footer-brand-name em{font-size:15px;font-style:normal;font-weight:200;color:#a4a4a4;margin-left:2px}
.footer-brand small{font-size:9px;letter-spacing:.13em;color:#b6b6b6}
.footer-copy{font-size:13px;color:#b6b6b6;text-align:right}
.client-details{margin-bottom:20px}
.detail-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px 28px}
.detail-grid small,.detail-grid b{display:block}
.detail-grid small{font-size:12px;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);margin-bottom:5px}
.detail-grid b{font-size:16px;line-height:1.45;word-break:break-word}
.restore-version-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:18px 0}
.restore-version-grid>div{border:1px solid var(--line);padding:18px;background:#fff}
.restore-version-grid small,.restore-version-grid b{display:block}
.restore-version-grid small{font-size:12px;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);margin-bottom:5px}
.restore-version-grid b{font:600 24px/1.1 var(--display)}
@media(max-width:850px){.page-intro{margin-top:18px}.detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.app-footer{align-items:flex-start}.footer-copy{text-align:left}}
@media(max-width:580px){.detail-grid,.restore-version-grid{grid-template-columns:1fr}}
/* 1.0.19 — ajustes solicitados */
.page{padding-top:28px}.page-intro{margin-top:18px}.page-intro>.btn{transition:filter .2s}.page-intro>.btn:hover{transform:translateY(-50%)}
.form-card>.btn,form.card>.btn,.split-grid form.card>.btn{margin-top:24px}.form-actions .btn,.modal-actions .btn{margin-top:0}.field+.btn{margin-top:24px}
.system-modal[hidden]{display:none}.system-modal{position:fixed;inset:0;z-index:1600;display:grid;place-items:center;padding:24px}.system-modal-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.58);backdrop-filter:blur(3px)}.system-modal-dialog{position:relative;z-index:1;width:min(560px,100%);max-height:calc(100vh - 48px);overflow:auto;background:#fff;padding:36px;box-shadow:0 28px 90px rgba(0,0,0,.28);overscroll-behavior:contain}.system-modal-wide{width:min(1120px,100%);padding:38px}.system-modal-alert h2{margin:0 0 10px;font:600 28px/1.1 var(--display)}.system-modal-alert p{margin:0;color:var(--muted)}.system-modal-alert .modal-actions{justify-content:flex-end}.client-modal .form-card{padding:0;border:0;box-shadow:none}.client-modal .section-head:first-of-type{margin-top:24px}
.payment-output{margin-top:20px;padding:22px;border:1px solid var(--line);display:grid;gap:12px}.payment-output img{width:220px;max-width:100%}.payment-output textarea{width:100%;min-height:90px;padding:12px;border:1px solid var(--line)}
.form-grid+.btn,.form-grid+p,.field+p,.module-grid+.btn{margin-top:24px}.system-modal-dialog .form-actions{padding-top:4px}


/* 1.0.20 — ajustes estritamente solicitados */
.brand-name i,.login-brand-name i,.footer-brand-name i{color:var(--brand-primary)!important}
.app-footer{background:var(--brand-dark)!important;color:#fff!important}
.page-intro:before{background:transparent!important;border-radius:50%!important}
.page-intro>.banner-action,.page-intro>.banner-action:hover,.page-intro>.banner-action:focus{position:absolute;right:34px;top:50%;transform:translateY(-50%)!important;margin:0}





@media(max-width:580px){}

/* 1.0.26 — modal padronizado com cabeçalho no padrão dos banners */
.modal-banner-head{position:sticky;top:0;z-index:30;overflow:hidden;background:var(--brand-dark);color:#fff;margin:-36px -36px 28px;padding:18px 64px 20px 28px;min-height:92px;display:flex;align-items:flex-end}
.modal-banner-head:after{content:"";position:absolute;width:150px;height:150px;border:28px solid rgba(255,255,255,.42);border-radius:50%;right:-62px;top:-82px;opacity:.20}
.modal-banner-head h2{position:relative;z-index:1;margin:0!important;font:600 28px/1.05 var(--display);letter-spacing:-.9px}.modal-banner-head h2:before{content:"";display:block;width:24px;height:2px;background:var(--brand-primary);margin:0 0 10px}
.modal-banner-head .modal-close{z-index:3;top:50%;right:20px;transform:translateY(-50%);color:#fff}
.system-modal-wide .modal-banner-head{margin:-38px -38px 30px}
.client-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.client-actions form{margin:0}
.client-actions .btn{margin:0!important;padding:10px 13px;font-size:12px}
.btn-danger{background:#a82828;color:#fff}
.module-block{margin-top:24px}
.module-block>h3{margin:0 0 6px;font:600 22px/1.15 var(--display)}
.module-block>p{margin:0 0 16px}
.module-grid-empty{padding:18px;border:1px dashed var(--line);color:var(--muted)}
.client-modal .system-modal-dialog{padding-top:38px}
@media(max-width:580px){.modal-banner-head{margin:-30px -24px 24px;padding:20px 58px 20px 24px}.system-modal-wide .modal-banner-head{margin:-38px -38px 26px}.client-actions{align-items:stretch}.client-actions .btn{width:100%}}

input::placeholder,textarea::placeholder{color:color-mix(in srgb,var(--brand-dark) 42%,#fff);opacity:1;font-weight:400}

.plan-editor{display:grid;gap:14px;margin-bottom:18px}.plan-row{display:grid;grid-template-columns:1fr 220px auto;gap:16px;align-items:end;padding:18px;border:1px solid var(--line);background:#fff}.plan-row .field{margin:0}.plan-row .btn{margin:0 0 1px}
.back-to-top{position:fixed;right:24px;bottom:24px;z-index:1200;width:44px;height:44px;border:0;background:var(--brand-primary);color:#fff;display:grid;place-items:center;font-size:22px;line-height:1;box-shadow:0 12px 30px rgba(0,0,0,.18);opacity:0;visibility:hidden;transform:translateY(10px);transition:.2s}.back-to-top.show{opacity:1;visibility:visible;transform:none}.back-to-top:hover{filter:brightness(.95)}
@media(max-width:850px){.plan-row{grid-template-columns:1fr}.back-to-top{right:16px;bottom:16px}}

.page-intro .eyebrow{color:var(--brand-primary)}.page-intro .eyebrow:before{background:var(--brand-primary)}

/* 1.0.28 — alerts em primeiro plano por 3 segundos */
.flash-stack{position:fixed;top:18px;right:18px;z-index:3000;width:min(420px,calc(100vw - 36px));display:grid;gap:10px;pointer-events:none}
.flash-floating{margin:0!important;background:#fff!important;color:var(--ink)!important;border:1px solid var(--line);border-left:4px solid var(--brand-primary)!important;box-shadow:0 18px 50px rgba(0,0,0,.18);opacity:0;transform:translateY(-10px);transition:opacity .2s,transform .2s;pointer-events:auto}
.flash-floating.error{border-left-color:#a82828!important}
.flash-floating.show{opacity:1;transform:none}

/* Banners: contraste com risco na cor principal */
.page-intro{background:var(--brand-dark)!important}
.page-intro .eyebrow,.page-intro .eyebrow:before{color:var(--brand-primary)!important;background:var(--brand-primary)!important}
.modal-banner-head{background:var(--brand-dark)!important}
.modal-banner-head h2:before{background:var(--brand-primary)!important}

/* Espaçamento uniforme entre botões */
.form-actions,.modal-actions,.client-actions,.top-actions{gap:12px}
form>.btn+ .btn,.card>.btn+ .btn,.settings-section>.btn+ .btn,.plan-row>.btn+ .btn{margin-left:12px}
.btn+form,form+.btn,.btn+.btn{margin-left:12px}
.client-actions form+.btn,.client-actions .btn+form,.client-actions form+form{margin-left:0}
@media(max-width:580px){form>.btn+.btn,.card>.btn+.btn,.settings-section>.btn+.btn,.plan-row>.btn+.btn,.btn+form,form+.btn,.btn+.btn{margin-left:0;margin-top:12px}}

/* 1.0.29 — refinamentos solicitados */
.page-intro .eyebrow{display:block!important;width:24px!important;height:2px!important;min-height:2px!important;line-height:0!important;font-size:0!important;background:var(--brand-primary)!important;color:var(--brand-primary)!important;margin:0 0 8px}
.page-intro .eyebrow:before{display:none!important}

/* Cabeçalho do modal encostado no topo; conteúdo mantém respiro abaixo. */
.system-modal-dialog{padding:0 36px 36px!important}
.system-modal-wide{padding:0 38px 38px!important}
.profile-dialog{padding:0 38px 38px!important}
.modal-banner-head{top:0!important;margin:0 -36px 28px!important;position:sticky!important;z-index:40!important;background:var(--brand-dark)!important}
.system-modal-wide .modal-banner-head,.profile-dialog .modal-banner-head{margin:0 -38px 30px!important}
.modal-banner-head h2:before{width:24px!important;height:2px!important;background:var(--brand-primary)!important;margin-bottom:10px!important}
.client-modal .system-modal-dialog{padding-top:0!important}

/* Alertas um pouco abaixo do menu fixo. */
.flash-stack{top:100px!important}

/* Todos os grupos de botões mantêm separação uniforme. */
.banner-actions,.form-actions,.modal-actions,.client-actions,.top-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.banner-actions{position:absolute;right:34px;top:50%;transform:translateY(-50%);z-index:4}
.banner-actions .btn{margin:0!important}
.banner-light{border-color:rgba(255,255,255,.55)!important;color:#fff!important;background:transparent!important}
form .btn+ .btn,.card .btn+ .btn{margin-left:12px}

/* Central de notificações. */
.top-icon{position:relative}
.notification-badge{position:absolute;right:1px;top:1px;min-width:17px;height:17px;padding:0 4px;border-radius:9px;background:var(--brand-primary);color:#fff;font-size:10px;line-height:17px;text-align:center;font-weight:700}
.notification-dialog{width:min(680px,calc(100% - 32px))}
.notification-list{display:grid;gap:0}
.notification-item{display:flex;justify-content:space-between;gap:18px;padding:16px 0;border-bottom:1px solid var(--line)}
.notification-item.unread{border-left:3px solid var(--brand-primary);padding-left:14px}
.notification-item p{margin:4px 0 0;color:var(--muted);font-size:14px}
.notification-item small{white-space:nowrap;color:var(--muted);font-size:12px}

/* Financeiro e pagamento. */
.payment-methods{margin:28px 0 18px}.payment-methods h2{font:600 24px/1.1 var(--display);margin:0 0 14px}
.payment-method-list{display:flex;gap:10px;flex-wrap:wrap}.payment-method-chip{display:inline-flex;padding:9px 12px;border:1px solid var(--line);background:#fff;font-size:13px}
.pix-quick{margin:0 0 20px}
.report-filters{margin-bottom:24px}.client-history{margin-top:24px}

@media(max-width:850px){
 .flash-stack{top:18px!important}
 .banner-actions{position:static;transform:none;margin-top:14px;align-self:flex-start}
 .system-modal-dialog,.system-modal-wide,.profile-dialog{padding-left:24px!important;padding-right:24px!important;padding-bottom:28px!important}
 .modal-banner-head,.system-modal-wide .modal-banner-head,.profile-dialog .modal-banner-head{margin-left:-24px!important;margin-right:-24px!important}
}
@media(max-width:580px){
 form .btn+.btn,.card .btn+.btn{margin-left:0}
}

/* 1.0.30 — segredos, menu e padronização visual */
.secret-input{position:relative;display:flex;align-items:center;width:100%}
.secret-input>input{width:100%;padding-right:48px!important}
.secret-toggle{position:absolute;right:8px;top:50%;transform:translateY(-50%);width:34px;height:34px;border:0;background:transparent;color:var(--muted);display:grid;place-items:center;cursor:pointer;font-size:18px;line-height:1}
.secret-toggle:hover{color:var(--brand-primary)}
.menu-order-list{display:grid;gap:10px;margin:0 0 18px}
.menu-order-row{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px 16px;border:1px solid var(--line);background:#fff}
.menu-order-actions{display:flex;gap:8px}
.menu-order-actions .btn{margin:0!important;min-width:42px;padding:9px 12px}

.secret-toggle svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7}.secret-toggle.showing svg{opacity:.55}

/* 1.0.31 — listas compactas e ícones responsivos */
.btn{white-space:nowrap}
.btn-icon,.nav-icon{display:inline-grid;place-items:center;flex:0 0 auto}
.btn-icon svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.nav-icon svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.side-link{display:inline-flex;align-items:center;gap:7px;white-space:nowrap}
.action-table th,.action-table td{white-space:nowrap}
.action-table td:first-child{min-width:170px}
.action-table td:last-child{width:1%;min-width:max-content}
.action-table .client-actions{flex-wrap:nowrap;gap:7px}
.action-table .client-actions form{display:inline-flex;flex:0 0 auto}
.action-table .client-actions .btn{min-height:38px;padding:9px 11px}
.table-sub{display:block;white-space:nowrap}
@media(max-width:1320px) and (min-width:851px){
 .action-table .client-actions .btn-icon svg{width:18px;height:18px}
 .table{font-size:14px}
 .table th,.table td{padding:15px 14px}
}
@media(max-width:1100px) and (min-width:851px){
 .nav-shell{grid-template-columns:250px 1fr auto}
 .side-link{padding-left:8px;padding-right:8px}
 .nav-icon svg{width:16px;height:16px}
 .nav-label{font-size:13px}
}
@media(max-width:850px){
 .action-table{min-width:760px}
 .main-nav .nav-icon{display:inline-grid}
}

/* 1.0.32 — contexto do cliente, filtros compactos, manutenção e integridade visual */
.client-context-bar{height:28px;background:var(--brand-dark);color:#fff;display:flex;align-items:center;justify-content:center;font-size:12px;letter-spacing:.08em;text-transform:uppercase}.client-context-bar span{opacity:.86}
.report-filters{padding:18px 20px!important}.report-filters .form-grid{grid-template-columns:repeat(6,minmax(120px,1fr));gap:10px}.report-filters .field label{font-size:11px}.report-filters .field input,.report-filters .field select{min-height:42px;padding:8px 10px}.report-filters .form-actions{margin-top:12px}
.table-tools{display:flex;align-items:end;gap:10px;padding:14px 18px;border-bottom:1px solid var(--line);background:#fff}.table-tools .field{margin:0;flex:1}.table-tools .field label{font-size:11px}.table-tools input,.table-tools select{min-height:40px;padding:8px 10px}.table-page-info{font-size:12px;color:var(--muted);white-space:nowrap}.table-pager{display:flex;gap:6px}.table-pager button{width:36px;height:36px;padding:0}.table td{max-width:300px;overflow:hidden;text-overflow:ellipsis}.table td .client-actions{overflow:visible}
.health-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:18px 0}.health-item{display:flex;align-items:center;gap:10px;border:1px solid var(--line);padding:12px}.health-item>span{width:30px;height:30px;display:grid;place-items:center;background:var(--brand-primary);color:#fff;font-weight:800}.health-item.fail>span{background:var(--brand-dark)}.health-item b,.health-item small{display:block}.health-item small{font-size:11px;color:var(--muted)}.recovery-update-card{padding-top:24px}
.maintenance-settings{display:grid;gap:18px}.switch-line{display:flex;align-items:center;gap:10px;font-weight:700}.switch-line input{width:20px;height:20px;accent-color:var(--brand-primary)}.maintenance-card{width:min(720px,calc(100% - 32px));background:#fff;border:1px solid var(--line);padding:54px;text-align:center}.maintenance-card .brand-mark{margin:0 auto 28px}.maintenance-card h1{font:600 42px/1.05 var(--display);margin:14px 0}.maintenance-card p{color:var(--muted)}.maintenance-window{display:flex;justify-content:center;gap:30px;margin-top:28px}.maintenance-window span{display:grid;gap:4px;font-size:12px;text-transform:uppercase;letter-spacing:.07em}.maintenance-window b{font-size:16px;text-transform:none;letter-spacing:0}
@media(max-width:1100px){.report-filters .form-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:700px){.report-filters .form-grid{grid-template-columns:1fr 1fr}.health-grid{grid-template-columns:1fr 1fr}.table-tools{flex-wrap:wrap}.table-tools .field{flex-basis:100%}}

.system-modal .table{table-layout:fixed}.system-modal .table th,.system-modal .table td{white-space:normal;overflow-wrap:anywhere}.system-modal .table .client-actions{flex-wrap:wrap}.compact-setting{max-width:360px}.compact-note{margin:8px 0 18px;font-size:13px}

/* 1.0.33 — refinamentos de listas, filtros, marca d'água e privacidade */
.page-intro:before{border-color:var(--brand-primary)!important;opacity:.16!important}
.modal-banner-head:after{border-color:var(--brand-primary)!important;opacity:.16!important}

/* Paginação fixa em 10 linhas e ferramentas discretas. */
.table-tools{padding:9px 14px!important;gap:8px!important;align-items:center!important}
.table-tools .field{max-width:300px!important}
.table-tools .field label{display:none!important}
.table-tools input{min-height:36px!important;padding:6px 10px!important;font-size:13px!important}
.table-page-info{margin-left:auto!important;font-size:11px!important}
.table-pager button{width:32px!important;height:32px!important;min-width:32px!important}

/* Filtros ocupam menos área vertical. */
.report-filters{padding:12px 14px!important}
.report-filters .form-grid{gap:8px!important}
.report-filters .field{margin:0!important}
.report-filters .field label{font-size:10px!important;margin-bottom:4px!important}
.report-filters .field input,.report-filters .field select{min-height:36px!important;padding:6px 8px!important;font-size:13px!important}
.report-filters .form-actions{margin-top:9px!important}

/* Nenhum texto de lista/modal fica escondido por ellipsis. */
.table td{max-width:none!important;overflow:visible!important;text-overflow:clip!important}
.system-modal .table{width:100%!important;min-width:0!important;table-layout:auto!important}
.system-modal .table th,.system-modal .table td{max-width:none!important;overflow:visible!important;text-overflow:clip!important;white-space:normal!important;overflow-wrap:anywhere!important;font-size:12px!important;padding:10px 8px!important}
.system-modal .table .client-actions{gap:5px!important;flex-wrap:wrap!important}
.system-modal .table .client-actions .btn{min-width:34px!important;width:auto!important;min-height:34px!important;padding:7px 9px!important}

/* Barra estreita acima do menu em todos os ambientes. */
.client-context-bar{height:28px;flex:0 0 28px}

/* Rodapé e privacidade. */
.footer-copy a,.login-copyright a{color:inherit;text-decoration:none;border-bottom:0}
.footer-copy a:hover,.login-copyright a:hover{color:var(--brand-primary);border-color:var(--brand-primary)}
.privacy-wrap{width:min(980px,calc(100% - 32px));margin:34px auto 60px}.privacy-card{margin-top:26px;padding:44px}.privacy-card>h1{font:600 clamp(34px,4vw,52px)/1 var(--display);letter-spacing:-1.6px;margin:10px 0}.privacy-updated{color:var(--muted);margin:0 0 32px}.privacy-card section{padding:22px 0;border-top:1px solid var(--line)}.privacy-card section h2{font:600 23px/1.15 var(--display);margin:0 0 10px}.privacy-card section p{margin:0;line-height:1.7;color:color-mix(in srgb,var(--ink) 82%,#fff)}.privacy-card a{color:var(--brand-primary)}.privacy-footer{text-align:center;color:var(--muted);font-size:13px;margin-top:22px}
.recovery-subtitle{margin-top:-2px!important;margin-bottom:18px!important}

@media(max-width:850px){
 .table-tools .field{max-width:none!important}
 .table-page-info{margin-left:0!important}
 .privacy-card{padding:28px}
}

.client-context-bar{position:sticky;top:0;z-index:61}
.app-top{top:28px}
@media(max-width:850px){.client-context-bar{position:static}.app-top{top:0}}

/* 1.0.34 — responsividade, acessibilidade, notificações e listas */
.skip-link{position:fixed;left:12px;top:-60px;z-index:5000;background:#fff;color:#111;padding:10px 14px;border:2px solid var(--brand-primary);box-shadow:0 8px 24px rgba(0,0,0,.2);transition:top .18s}
.skip-link:focus{top:12px}
:where(a,button,input,select,textarea,[tabindex]):focus-visible{outline:3px solid color-mix(in srgb,var(--brand-primary) 78%,#fff);outline-offset:3px}
button,.btn,a,input,select,textarea{touch-action:manipulation}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;max-width:100%}
.btn-label{min-width:0;overflow-wrap:anywhere}
.server-pager{display:flex;align-items:center;justify-content:flex-end;gap:10px;padding:13px 16px;border-top:1px solid var(--line);font-size:12px;color:var(--muted)}
.compact-filters{padding:10px 12px!important;margin-bottom:14px}
.compact-filter-row{display:grid;grid-template-columns:minmax(180px,1fr) repeat(2,minmax(130px,190px)) auto;gap:8px;align-items:center}
.compact-filter-row input,.compact-filter-row select{min-height:36px;padding:7px 9px;font-size:13px}
.compact-filter-row .btn{min-height:36px;padding:7px 13px}

/* Notificações com mais hierarquia e ações individuais. */
.notification-dialog{width:min(760px,calc(100% - 32px))}
.notification-summary{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:0 0 15px;border-bottom:1px solid var(--line);font-size:13px}.notification-summary span{color:var(--muted)}
.notification-list{max-height:min(58vh,570px);overflow:auto}
.notification-item{position:relative;display:grid!important;grid-template-columns:10px minmax(0,1fr);gap:12px!important;padding:16px 2px!important;border-left:0!important}
.notification-dot{width:8px;height:8px;border-radius:50%;background:#bbb;margin-top:7px}.notification-item.unread .notification-dot{background:var(--brand-primary)}
.notification-content{min-width:0}.notification-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.notification-heading b{font-size:15px}.notification-state{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);white-space:nowrap}
.notification-item p{font-size:13px!important;line-height:1.5;margin:6px 0!important}.notification-meta{display:flex;gap:12px;flex-wrap:wrap;color:var(--muted);font-size:11px}.notification-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:11px}.notification-actions form{margin:0}.notification-actions .btn{min-height:34px;padding:7px 10px;font-size:11px}.notification-empty{text-align:center;padding:34px 10px;color:var(--muted)}.notification-empty b{display:block;color:var(--ink);margin-bottom:5px}

/* Central LGPD. */
.privacy-request-summary{padding:0 0 18px;margin-bottom:18px;border-bottom:1px solid var(--line)}.privacy-request-summary>b,.privacy-request-summary>span{display:block}.privacy-request-summary>span{font-size:13px;color:var(--muted);margin-top:3px}.privacy-request-summary p{line-height:1.55;margin:14px 0 0}.text-danger{color:#a82828;font-weight:700}

/* Nenhuma ação fica cortada em notebook/tablet. */
.table-card{max-width:100%;overflow:auto}
.action-table{width:100%}
.action-table td:last-child{min-width:0!important}
.action-table .client-actions{min-width:max-content}
.action-table .client-actions .btn{max-width:none}
@media(max-width:1450px) and (min-width:851px){
 .page{padding-left:22px;padding-right:22px}
 .table th,.table td{padding:12px 10px;font-size:13px}
 .action-table .client-actions .btn-icon svg{width:17px;height:17px}
}
@media(max-width:1120px) and (min-width:851px){
 .nav-shell{grid-template-columns:minmax(190px,235px) 1fr auto!important;padding-left:18px;padding-right:18px}
 .brand-copy small{font-size:7px}
 .side-link{gap:5px;padding:0 7px!important}.nav-label{font-size:12px!important}.nav-icon svg{width:15px;height:15px}
 .compact-filter-row{grid-template-columns:1fr 150px 150px auto}
}

/* Tablet */
@media(max-width:850px){
 .nav-shell{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;padding:14px 18px!important}
 .brand{min-width:0}.brand-copy{min-width:0}
 .main-nav{grid-column:1/-1;display:flex!important;width:100%;overflow-x:auto;padding-bottom:2px;scroll-snap-type:x proximity}
 .side-link{flex:0 0 auto;scroll-snap-align:start}
 .top-actions{grid-column:2;grid-row:1}
 .page{padding-left:18px!important;padding-right:18px!important}
 .page-intro{margin-left:0!important;margin-right:0!important;padding-left:18px!important;padding-right:18px!important}
 .banner-actions{width:100%;display:flex;gap:8px}.banner-actions .btn{width:auto!important}
 .compact-filter-row{grid-template-columns:1fr 1fr}.compact-filter-row input:first-child{grid-column:1/-1}.compact-filter-row .btn{width:auto!important}
 .cards,.cards.mini{grid-template-columns:repeat(2,minmax(0,1fr))}
 .system-modal-dialog,.system-modal-wide,.profile-dialog{width:min(94vw,760px)!important;max-width:94vw!important}
 .server-pager{justify-content:center;flex-wrap:wrap}
}

/* Celular: tabelas viram cartões sem esconder nenhuma coluna ou botão. */
@media(max-width:680px){
 body{font-size:16px}
 .client-context-bar{padding:0 14px;font-size:11px}
 .nav-shell{padding:12px 14px!important}.brand-mark{width:34px;height:34px;flex-basis:34px}.brand-mark strong,.brand-mark i{font-size:23px}
 .brand-name strong,.brand-name i{font-size:18px}.brand-name em{font-size:13px}.brand-version{font-size:8px}
 .page{padding-left:14px!important;padding-right:14px!important}.page-intro{margin-left:0!important;margin-right:0!important;padding:22px 14px!important}
 .page-intro h1,.page-intro.compact h1{font-size:31px!important}
 .banner-actions{position:static!important;transform:none!important;margin-top:14px;display:grid!important;grid-template-columns:1fr 1fr}.banner-actions .btn{width:100%!important}
 .cards,.cards.mini,.detail-grid{grid-template-columns:1fr!important}
 .card,.form-card{padding:22px!important}
 .compact-filter-row{grid-template-columns:1fr!important}.compact-filter-row input:first-child{grid-column:auto}
 .compact-filter-row .btn{width:100%!important}
 .notification-dialog{width:94vw!important}.notification-heading{display:block}.notification-state{display:block;margin-top:4px}.notification-actions{display:grid;grid-template-columns:1fr}.notification-actions .btn{width:100%!important}
 .app-footer{gap:18px}.footer-copy{line-height:1.6}
 .privacy-card{padding:22px!important}
}
@media(max-width:420px){
 .banner-actions{grid-template-columns:1fr}
 .login-links{flex-direction:column;align-items:flex-start}
 .top-actions{gap:4px}.top-icon{width:36px;height:36px}
}

/* Preferências do sistema operacional para acessibilidade. */
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
@media(prefers-contrast:more){:root{--line:#707070}.btn,.field input,.field select,.field textarea{border-width:2px!important}.muted{color:#555!important}}

/* 1.0.34 — acessibilidade, cookies e barra de contexto */
:root{--a11y-scale:1}
body{font-size:calc(16px * var(--a11y-scale))}
.a11y-contrast{filter:contrast(1.15)}
.a11y-contrast .muted,.a11y-contrast small{color:#3d3d3d!important}
.accessibility-dialog{width:min(520px,calc(100% - 32px))}
.accessibility-options{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.accessibility-options .btn{width:100%}
.accessibility-fab{position:fixed;right:24px;bottom:86px;z-index:900;width:44px;height:44px;border:0;border-radius:50%;background:var(--brand-dark);color:#fff;display:grid;place-items:center;box-shadow:0 12px 34px rgba(0,0,0,.2);cursor:pointer}
.accessibility-fab svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.a11y-float-panel{position:fixed;right:24px;bottom:140px;z-index:901;width:min(300px,calc(100vw - 32px));padding:16px;background:#fff;border:1px solid var(--line);box-shadow:0 18px 50px rgba(0,0,0,.2);display:grid;gap:8px}
.a11y-float-panel[hidden]{display:none}.a11y-float-panel>b{margin-bottom:4px}
.cookie-consent{position:fixed;left:24px;right:24px;bottom:24px;z-index:2500;max-width:1040px;margin:auto;background:#fff;color:var(--ink);border:1px solid var(--line);box-shadow:0 20px 70px rgba(0,0,0,.22);padding:20px 22px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.cookie-consent b{display:block;font:600 18px/1.2 var(--display);margin-bottom:5px}.cookie-consent p{margin:0;color:var(--muted);line-height:1.5;font-size:13px}.cookie-consent a{color:var(--brand-primary);font-weight:700}.cookie-consent .btn{flex:0 0 auto}
.legal-links{display:inline-flex;gap:10px;margin-left:10px}.legal-links a{white-space:nowrap}
.client-context-bar{background:var(--brand-dark)!important;color:#fff!important;justify-content:flex-end!important;padding-left:max(22px,calc((100vw - 1440px)/2 + 22px))!important;padding-right:max(22px,calc((100vw - 1440px)/2 + 22px))!important;text-align:right}
.client-context-bar span{width:100%;text-align:right}


@media(max-width:680px){
 .accessibility-options{grid-template-columns:1fr}
 .cookie-consent{left:12px;right:12px;bottom:12px;display:block;padding:17px}.cookie-consent .btn{width:100%!important;margin-top:14px}
 .accessibility-fab{right:14px;bottom:76px}.a11y-float-panel{right:14px;bottom:130px}
 .legal-links{display:flex;flex-wrap:wrap;margin-left:0;margin-top:6px}
}
/* 1.0.35 — navegação responsiva e espaçamento uniforme */
.mobile-menu-toggle{display:none;border:0;background:transparent;width:42px;height:42px;padding:9px;cursor:pointer}.mobile-menu-toggle span{display:block;height:2px;background:var(--brand-dark);margin:5px 0}
.page-intro{margin-bottom:24px!important}.page-intro+.tabs,.page-intro+.card,.page-intro+.cards,.page-intro+form{margin-top:24px!important}.tabs{margin-bottom:24px!important}.settings-section{margin-top:24px!important}
.login-copyright a{display:inline-block;margin-left:8px}.login-copyright a:first-of-type{margin-left:10px}
@media(max-width:900px){
 .login-card{width:min(560px,calc(100% - 28px))!important;grid-template-columns:1fr!important;min-height:0!important}.login-art{display:none!important}.login-panel{min-height:0!important;padding:32px!important}.login-page{min-height:100dvh;padding:18px!important;display:grid;place-items:center}.login-box{width:100%!important;max-width:440px!important;margin:auto}
 .nav-shell{grid-template-columns:minmax(0,1fr) auto auto!important}.mobile-menu-toggle{display:block;grid-column:2;grid-row:1}.top-actions{grid-column:3!important;grid-row:1!important}.main-nav{display:none!important;position:fixed;left:0;top:0;bottom:0;width:min(300px,82vw)!important;background:#fff;z-index:2200;padding:82px 18px 24px!important;box-shadow:18px 0 55px rgba(0,0,0,.18);overflow-y:auto;flex-direction:column!important}.main-nav.mobile-open{display:flex!important}.main-nav .side-link{width:100%;min-height:46px;justify-content:flex-start!important;padding:0 12px!important}
 body.mobile-nav-open:after{content:"";position:fixed;inset:0;background:rgba(0,0,0,.35);z-index:2100}
}

/* 1.0.36 — 2FA, e-mail, monitoramento e modais sem lista rolável */
.twofa-setup{display:grid;grid-template-columns:240px minmax(0,1fr);gap:24px;align-items:center;margin:18px 0}
.twofa-qr{min-height:220px;display:grid;place-items:center;background:#fff;border:1px solid var(--line);padding:10px}
.twofa-qr svg{display:block;max-width:100%;height:auto}
.twofa-details{min-width:0}.twofa-details .field{margin-bottom:12px}
.recovery-codes{padding:18px;border:1px solid color-mix(in srgb,var(--brand-primary) 38%,var(--line));background:color-mix(in srgb,var(--brand-primary) 5%,#fff);margin:18px 0}
.recovery-code-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:12px}
.recovery-code-grid code{display:block;text-align:center;padding:10px;background:#fff;border:1px solid var(--line);font-weight:700;letter-spacing:.08em}
.email-stats{display:flex;gap:12px;flex-wrap:wrap;margin:0 0 18px}.email-stats span{padding:9px 12px;border:1px solid var(--line);font-size:12px}.email-stats b{margin-left:6px}
.monitor-ok{border-top:3px solid #3b8f5b}.monitor-warning{border-top:3px solid #b98720}.monitor-error{border-top:3px solid #a82828}

/* Notificações: somente não lidas, lista compacta e sem scroll interno. */
.notification-list{max-height:none!important;overflow:visible!important}
.notification-dialog{max-height:calc(100vh - 48px);overflow:auto}
.notification-item{padding:12px 2px!important}.notification-item p{margin:4px 0!important}.notification-actions{margin-top:8px!important}

/* Listas dentro de modal nunca exigem scroll horizontal. */
.system-modal-dialog .table-card,.profile-dialog .table-card{overflow:visible!important}
.system-modal-dialog table.table,.profile-dialog table.table{width:100%!important;min-width:0!important;table-layout:fixed!important}
.system-modal-dialog table.table th,.system-modal-dialog table.table td,.profile-dialog table.table th,.profile-dialog table.table td{white-space:normal!important;overflow-wrap:anywhere!important;word-break:break-word!important;max-width:none!important;padding:8px 7px!important;font-size:12px!important}
.system-modal-dialog .client-actions,.profile-dialog .client-actions{min-width:0!important;flex-wrap:wrap!important}

/* Monitoramento e páginas operacionais seguem o grid validado. */
.monitor-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
@media(max-width:900px){.twofa-setup{grid-template-columns:1fr}.twofa-qr{width:min(240px,100%)}.recovery-code-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.monitor-grid{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.recovery-code-grid{grid-template-columns:1fr}.monitor-grid{grid-template-columns:1fr}.twofa-qr{margin:auto}}

/* 1.0.37 — ajustes móveis solicitados */
@media(max-width:760px){
  .login-card{display:block!important;background:transparent!important;min-height:0!important}
  .login-art{display:none!important}
  .login-panel{display:flex!important;width:100%!important;min-height:100dvh!important;background:var(--surface,#fff)!important;padding:24px 18px!important;align-items:center!important;justify-content:center!important}
  .login-box{display:block!important;width:min(100%,520px)!important}
  .mobile-nav-panel,.mobile-menu-panel,.nav-drawer{
    position:fixed!important;
    top:var(--mobile-header-height,72px)!important;
    left:0!important;right:0!important;
    z-index:9998!important;
    max-height:calc(100dvh - var(--mobile-header-height,72px))!important;
    overflow-y:auto!important;
    background:var(--surface,#fff)!important;
    box-shadow:0 18px 40px rgba(0,0,0,.16)!important;
  }
}

/* 1.0.38 — blocos recolhíveis em Configurações */
.settings-details{padding:0!important;overflow:visible}
.settings-details>summary{list-style:none;cursor:pointer;user-select:none;padding:24px 26px!important;margin:0!important;border:0!important;grid-template-columns:54px minmax(0,1fr) 32px!important}
.settings-details>summary::-webkit-details-marker{display:none}
.settings-details .details-chevron{display:grid!important;place-items:center!important;width:32px;height:32px;font:400 25px/1 Arial,sans-serif!important;color:var(--brand-primary)!important;transition:transform .2s ease}
.settings-details[open] .details-chevron{transform:rotate(180deg)}
.settings-details-body{padding:4px 26px 26px}
.settings-details-body>.table,.settings-details-body>table{margin-top:4px}
.settings-details .section-head:first-of-type{padding-top:24px!important}
.secret-toggle{display:inline-grid!important;place-items:center!important}
.secret-toggle svg{display:block!important;width:20px!important;height:20px!important}
@media(max-width:700px){
 .settings-details>summary{padding:20px!important;grid-template-columns:44px minmax(0,1fr) 30px!important}
 .settings-details-body{padding:2px 20px 20px}
}

/* 1.0.39 — recolhimento, login mobile, navegação mobile e Financeiro */
.settings-details .details-chevron{border:1px solid color-mix(in srgb,var(--brand-primary) 32%,var(--line));border-radius:50%;background:color-mix(in srgb,var(--brand-primary) 7%,#fff)}
.settings-details .details-chevron svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.settings-details[open] .details-chevron{transform:rotate(180deg);background:color-mix(in srgb,var(--brand-primary) 13%,#fff)}
.mobile-nav-actions{display:none}
@media(max-width:900px){
 .login-page{padding:18px!important;background:var(--brand-light)!important}
 .login-card{width:min(560px,calc(100% - 18px))!important;background:transparent!important}
 .login-panel{min-height:calc(100dvh - 54px)!important;border:1px solid var(--line);background:#fff!important;padding:32px!important}
 .app-top{position:sticky!important;top:0!important;z-index:2300!important}
 .nav-shell{grid-template-columns:minmax(0,1fr) 42px!important}
 .mobile-menu-toggle{display:block!important;grid-column:2!important;grid-row:1!important;margin-left:auto!important;position:relative;z-index:2}
 .mobile-menu-toggle span{height:2px!important;width:23px!important;margin:5px auto!important;border-radius:2px;background:var(--brand-dark)!important}
 .top-actions{display:none!important}
 .main-nav{top:var(--mobile-menu-top,82px)!important;bottom:auto!important;max-height:calc(100dvh - var(--mobile-menu-top,82px))!important;width:min(330px,88vw)!important;padding:12px 16px 18px!important;z-index:2301!important;pointer-events:auto!important}
 .main-nav.mobile-open{display:flex!important}
 .main-nav .side-link{pointer-events:auto!important}
 .mobile-nav-actions{display:grid;grid-template-columns:1fr;gap:2px;border-top:1px solid var(--line);margin-top:8px;padding-top:8px}
 .mobile-action-link{border:0;background:transparent;color:var(--ink);display:flex;align-items:center;gap:12px;width:100%;min-height:46px;padding:0 12px;font:400 16px var(--body);text-decoration:none;cursor:pointer}
 .mobile-action-link:hover{color:var(--brand-primary);background:var(--accent-soft)}
 .mobile-action-link svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
 body.mobile-nav-open:after{z-index:2200!important;pointer-events:auto}
}
@media(min-width:1101px){
 .finance-list{display:table!important;width:100%!important;table-layout:auto!important;font-size:12px}
 .finance-list thead{position:static!important;width:auto!important;height:auto!important;margin:0!important;overflow:visible!important;clip:auto!important;white-space:normal!important}
 .finance-list tbody{display:table-row-group!important}
 .finance-list tr{display:table-row!important;border:0!important;padding:0!important}
 .finance-list th,.finance-list td{display:table-cell!important;grid-template-columns:none!important;width:auto!important;max-width:none!important;padding:11px 7px!important;border-bottom:1px solid var(--line)!important;white-space:nowrap!important;overflow:visible!important}
 .finance-list td:before{display:none!important}
 .finance-list td:first-child{max-width:190px!important;overflow:hidden!important;text-overflow:ellipsis!important}
 .finance-list .table-sub{display:inline!important;margin-left:4px!important;font-size:10px!important}
 .finance-list .client-actions{display:flex!important;flex-wrap:nowrap!important;gap:4px!important;width:auto!important}
 .finance-list .client-actions form{display:inline-flex!important}
 .finance-list .client-actions .btn{width:34px!important;min-width:34px!important;height:34px!important;padding:0!important;display:inline-grid!important;place-items:center!important}
 .finance-list .client-actions .btn-label{display:none!important}
 .finance-list .client-actions .btn-icon{margin:0!important}
}

/* 1.0.40 — Relatórios em linha e revisão responsiva final */
.report-filter-line{
 display:grid!important;
 grid-template-columns:118px 118px minmax(140px,1.35fr) 112px 124px 112px auto!important;
 gap:8px!important;
 align-items:end!important;
 padding:12px 14px!important;
}
.report-filter-line .field{margin:0!important;min-width:0!important}
.report-filter-line .field label{display:block;font-size:10px!important;margin:0 0 4px!important}
.report-filter-line input,.report-filter-line select{width:100%!important;min-width:0!important;min-height:36px!important;height:36px!important;padding:6px 8px!important;font-size:12px!important}
.report-filter-actions{display:flex;align-items:center;gap:7px;white-space:nowrap}
.report-filter-actions .btn{width:auto!important;min-height:36px!important;height:36px!important;padding:7px 10px!important;font-size:11px!important;margin:0!important}

/* Financeiro usa exatamente o mesmo dimensionamento-base da listagem Clientes. */
table.action-table th,table.action-table td{font-size:inherit}
table.action-table .client-actions{gap:7px}
table.action-table .client-actions .btn{min-height:38px}

/* Notebook: mantém o filtro inteiro em uma linha. */
@media(min-width:901px) and (max-width:1250px){
 .report-filter-line{
  grid-template-columns:108px 108px minmax(120px,1fr) 100px 110px 104px auto!important;
  gap:6px!important;
  padding:10px 12px!important;
 }
 .report-filter-line input,.report-filter-line select{font-size:11px!important;padding-left:6px!important;padding-right:6px!important}
 .report-filter-actions{gap:5px}
 .report-filter-actions .btn{padding-left:8px!important;padding-right:8px!important;font-size:10px!important}
}

/* Tablet: o conteúdo passa a duas colunas sem cortar campos ou ações. */
@media(min-width:681px) and (max-width:900px){
 .report-filter-line{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important}
 .report-filter-actions{grid-column:1/-1;justify-content:flex-end}
}

/* 430px, 375px e 320px: uma coluna, sem overflow horizontal. */
@media(max-width:680px){
 .report-filter-line{grid-template-columns:1fr!important;padding:12px!important}
 .report-filter-actions{display:grid!important;grid-template-columns:1fr 1fr!important;width:100%}
 .report-filter-actions .btn{width:100%!important}
 .table-card{max-width:100%!important}
}
@media(max-width:430px){
 .report-filter-actions{grid-template-columns:1fr!important}
 .page,.login-page,.login-panel,.card,.form-card{max-width:100%!important}
}
@media(max-width:375px){
 .page{padding-left:12px!important;padding-right:12px!important}
 .page-intro{margin-left:0!important;margin-right:0!important;padding-left:12px!important;padding-right:12px!important}
 .card,.form-card{padding-left:18px!important;padding-right:18px!important}
}
@media(max-width:320px){
 .page{padding-left:10px!important;padding-right:10px!important}
 .page-intro{margin-left:0!important;margin-right:0!important;padding-left:10px!important;padding-right:10px!important}
 .card,.form-card{padding-left:15px!important;padding-right:15px!important}
 .btn{font-size:12px!important}
}


/* 1.0.42 — refinamentos solicitados: controles, marca v1.0.10 e menu mobile contínuo */
/* Controles de formulário e botões usam a mesma altura visual em todo o sistema. */
.btn,.field input,.field select,.compact-filter-row input,.compact-filter-row select,.compact-filter-row .btn,
.report-filter-line input,.report-filter-line select,.report-filter-actions .btn,.table-tools input,.table-tools select,
.table-tools .btn,.login-box .field input,.login-box .btn{height:44px!important;min-height:44px!important}
.field textarea{min-height:120px!important;height:auto!important}
input[type="checkbox"],input[type="radio"]{height:auto!important;min-height:0!important}

/* Identidade tipográfica utiliza a mesma família do menu em todo o sistema. */
.brand-mark strong,.brand-mark i,.brand-name strong,.brand-name i,.login-brand-name strong,.login-brand-name i,.footer-brand-name strong,.footer-brand-name i{
 font-family:var(--display)!important
}
.brand-mark strong{letter-spacing:-1px!important}
.brand-mark i{margin-left:0!important;letter-spacing:0!important;transform:none!important}
.brand-name strong,.login-brand-name strong,.footer-brand-name strong{letter-spacing:-.35px!important}
.brand-name i,.login-brand-name i,.footer-brand-name i{margin-left:0!important;letter-spacing:0!important}

@media(max-width:900px){
 /* O menu nasce exatamente na borda inferior do cabeçalho e se comporta como continuação dele. */
 .main-nav{
   left:0!important;right:0!important;top:var(--mobile-menu-top,82px)!important;bottom:auto!important;
   width:100%!important;max-width:none!important;margin:0!important;padding:0!important;
   background:#fff!important;border-top:1px solid var(--line)!important;border-bottom:1px solid var(--line)!important;
   box-shadow:none!important;border-radius:0!important;max-height:calc(100dvh - var(--mobile-menu-top,82px))!important;
   overflow-y:auto!important;z-index:2301!important
 }
 .main-nav .side-link,.mobile-action-link{
   width:100%!important;height:48px!important;min-height:48px!important;margin:0!important;padding:0 22px!important;
   display:flex!important;align-items:center!important;justify-content:flex-start!important;gap:12px!important;
   border:0!important;border-bottom:1px solid color-mix(in srgb,var(--brand-dark) 8%,transparent)!important;
   background:#fff!important;color:var(--ink)!important;font:400 16px/1 var(--body)!important;text-transform:none!important;
   letter-spacing:0!important;border-radius:0!important;box-shadow:none!important
 }
 .main-nav .side-link:after{display:none!important}
 .main-nav .side-link:hover,.main-nav .side-link.active,.mobile-action-link:hover{color:var(--brand-primary)!important;background:var(--accent-soft)!important}
 .mobile-nav-actions{display:block!important;margin:0!important;padding:0!important;border:0!important}
 .mobile-action-link svg,.main-nav .nav-icon svg{width:19px!important;height:19px!important;flex:0 0 19px!important}
 body.mobile-nav-open:after{display:none!important;content:none!important}
}

/* Separação jurídica compacta e consistente. */
.legal-links{gap:0!important;margin-left:8px!important}
.legal-links a+a:before{content:"·";display:inline-block;margin:0 8px;color:currentColor}

button,.btn,input:not([type="checkbox"]):not([type="radio"]),select{min-height:44px!important}
.client-actions .btn,.action-table .client-actions .btn,.finance-list .client-actions .btn,.notification-actions .btn,.table-pager button,.top-icon,.mobile-menu-toggle,.secret-toggle,.modal-close{height:44px!important;min-height:44px!important}
.mobile-only-nav-icon{display:none}
@media(max-width:900px){
 .mobile-only-nav-icon{display:inline-grid!important;place-items:center!important;width:19px!important;height:19px!important;flex:0 0 19px!important}
 .mobile-only-nav-icon svg{display:block;width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
}

/* refinamentos administrativos preservados */
.system-modal{z-index:100000!important}
.system-modal-backdrop{z-index:100001!important}
.system-modal-dialog{position:relative!important;z-index:100002!important}
.toast-stack,.flash-stack,.system-alert,.confirm-modal{z-index:110000!important}
.page-intro{height:auto!important;min-height:116px!important;overflow:visible!important}
.page-intro .banner-actions{display:flex!important;align-items:center!important;gap:10px!important;flex-wrap:wrap!important}
.action-table td:last-child form{display:inline-flex!important;align-items:center!important;margin:0!important}
.ui-icon{width:18px;height:18px;display:inline-block;vertical-align:-3px}
@media(max-width:900px){.brand-version{margin-left:6px!important}.page-intro{min-height:138px!important}}

/* 1.0.58 — navegação configurável e posicionamento profissional das Configurações */
.settings-section,.settings-details{scroll-margin-top:106px}
.tabs a.active{background:var(--brand-primary);border-color:var(--brand-primary);color:#fff}

@media(min-width:901px){
 body.menu-layout-left .nav-shell{grid-template-columns:minmax(0,1fr) auto!important}
 body.menu-layout-left .brand{grid-column:1!important}
 body.menu-layout-left .top-actions{grid-column:2!important;grid-row:1!important}
 body.menu-layout-left .main-nav{
   position:fixed!important;left:0!important;top:110px!important;bottom:0!important;
   width:238px!important;min-height:0!important;display:flex!important;flex-direction:column!important;
   align-items:stretch!important;justify-content:flex-start!important;gap:2px!important;
   padding:18px 12px 24px!important;background:#fff!important;border-right:1px solid var(--line)!important;
   box-shadow:none!important;overflow-y:auto!important;overflow-x:hidden!important;z-index:58!important
 }
 body.menu-layout-left .main-nav .side-link{
   width:100%!important;min-height:46px!important;height:46px!important;padding:0 14px!important;
   justify-content:flex-start!important;gap:10px!important;white-space:nowrap!important
 }
 body.menu-layout-left .main-nav .side-link:after{display:none!important}
 body.menu-layout-left .main-nav .mobile-only-nav-icon{display:inline-grid!important;place-items:center!important;width:20px!important;height:20px!important;flex:0 0 20px!important}
 body.menu-layout-left .main-nav .mobile-nav-actions{display:none!important}
 body.menu-layout-left .main{padding-left:238px!important}
 body.menu-layout-left .page{max-width:1440px!important}
}
@media(max-width:900px){
 body.menu-layout-left .main{padding-left:0!important}
}


/* 1.0.59 — alinhamento profissional de controles */
:root{--control-height:44px}
.field input:not([type="checkbox"]):not([type="radio"]):not([type="color"]),
.field select,
.compact-filter-row input:not([type="checkbox"]):not([type="radio"]),
.compact-filter-row select,
.report-filter-line input:not([type="checkbox"]):not([type="radio"]),
.report-filter-line select,
.table-tools input:not([type="checkbox"]):not([type="radio"]),
.table-tools select{
 height:var(--control-height)!important;
 min-height:var(--control-height)!important;
 margin:0!important;
 border-radius:0;
 font-size:14px!important;
 line-height:1.2!important;
 vertical-align:middle!important;
}
.field input:not([type="checkbox"]):not([type="radio"]):not([type="color"]),
.compact-filter-row input:not([type="checkbox"]):not([type="radio"]),
.report-filter-line input:not([type="checkbox"]):not([type="radio"]),
.table-tools input:not([type="checkbox"]):not([type="radio"]){padding:0 14px!important}
.field select,.compact-filter-row select,.report-filter-line select,.table-tools select{
 padding:0 38px 0 14px!important;
 line-height:normal!important;
 background-position:right 13px center!important;
}
.field textarea{padding:12px 14px!important;line-height:1.45!important}
.secret-input{min-height:var(--control-height)!important}
.secret-input>input{height:var(--control-height)!important;padding-top:0!important;padding-bottom:0!important}
.secret-toggle{height:var(--control-height)!important;min-height:var(--control-height)!important;top:0!important;bottom:auto!important}
.field input::placeholder,.compact-filter-row input::placeholder,.report-filter-line input::placeholder,.table-tools input::placeholder{line-height:normal!important}

/* 1.0.60 — marca d'água confinada ao banner */
.page-intro{overflow:hidden!important;isolation:isolate!important}
.page-intro:before{pointer-events:none!important;z-index:0!important}
.page-intro>*{position:relative;z-index:2}


/* 1.0.61 — controles unificados e ícones centralizados */
:root{--control-height:48px}
.btn,
.field input:not([type="checkbox"]):not([type="radio"]),.field select,
.compact-filter-row input,.compact-filter-row select,.report-filter-line input,.report-filter-line select,
.table-tools input,.table-tools select,.login-box .field input,.login-box .btn{
 height:var(--control-height)!important;min-height:var(--control-height)!important;
 box-sizing:border-box!important;line-height:1!important
}
.btn{display:inline-flex!important;align-items:center!important;justify-content:center!important}
.field input:not([type="checkbox"]):not([type="radio"]),.compact-filter-row input,.report-filter-line input,.table-tools input{
 padding:0 15px!important
}
.field select,.compact-filter-row select,.report-filter-line select,.table-tools select{
 padding:0 42px 0 15px!important;line-height:normal!important;background-position:right 15px center!important
}
.field textarea{height:auto!important;min-height:120px!important;padding:13px 15px!important;line-height:1.45!important}
.secret-input{position:relative!important;display:flex!important;align-items:center!important;min-height:var(--control-height)!important}
.secret-input>input{height:var(--control-height)!important;padding-right:52px!important}
.secret-toggle{
 position:absolute!important;right:6px!important;top:50%!important;bottom:auto!important;
 transform:translateY(-50%)!important;width:36px!important;height:36px!important;min-height:36px!important;
 padding:0!important;margin:0!important;display:grid!important;place-items:center!important;border:0!important;
 background:transparent!important;z-index:3!important
}
.secret-toggle svg{display:block!important;width:19px!important;height:19px!important;margin:0!important}
.client-actions .btn,.action-table .btn,.finance-list .btn,.notification-actions .btn{min-height:var(--control-height)!important;height:var(--control-height)!important}

/* 1.0.61 — página de pagamento profissional */
.payment-page{min-height:100svh;background:linear-gradient(180deg,color-mix(in srgb,var(--brand-primary) 8%,#f7f8fa) 0,#f7f8fa 260px)}
.payment-shell{width:min(1040px,calc(100% - 32px))!important;margin:34px auto 48px!important}
.payment-brand{justify-content:flex-start!important;margin-bottom:22px!important}
.payment-card{padding:0!important;overflow:hidden!important;border:1px solid var(--line)!important;box-shadow:0 24px 70px rgba(18,25,38,.08)!important}
.payment-hero{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(280px,.85fr);background:var(--brand-dark);color:#fff}
.payment-hero-copy{padding:34px 38px}.payment-hero-copy .eyebrow{color:rgba(255,255,255,.62)}
.payment-hero-copy h1{font:600 31px/1.05 var(--display);margin:8px 0 10px;letter-spacing:-.8px}.payment-hero-copy p{margin:0;color:rgba(255,255,255,.68)}
.payment-summary{padding:30px 36px;border-left:1px solid rgba(255,255,255,.12);display:flex;flex-direction:column;justify-content:center}
.payment-summary span{font-size:12px;text-transform:uppercase;letter-spacing:.09em;color:rgba(255,255,255,.62)}
.payment-summary b{font:600 38px/1 var(--display);margin:8px 0 10px}.payment-summary small{color:rgba(255,255,255,.62)}
.payment-body{padding:34px 38px 38px}.payment-section-title{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:18px}
.payment-section-title h2{font:600 25px/1.1 var(--display);margin:0}.payment-section-title p{margin:5px 0 0;color:var(--muted);font-size:14px}
.payment-secure{display:inline-flex;align-items:center;gap:7px;font-size:12px;color:var(--muted);white-space:nowrap}.payment-secure svg{width:17px;height:17px}
.payment-choice{display:grid!important;grid-template-columns:1fr 1fr!important;gap:14px!important;margin:0!important}
.payment-choice .payment-method-btn{height:74px!important;min-height:74px!important;padding:0 18px!important;border:1px solid var(--line)!important;background:#fff!important;color:var(--ink)!important;display:flex!important;align-items:center!important;justify-content:flex-start!important;gap:13px!important;text-align:left!important}
.payment-method-btn svg{width:24px;height:24px;flex:0 0 24px;color:var(--brand-primary)}.payment-method-btn span{display:block}
.payment-method-btn b{display:block;font-size:15px}.payment-method-btn small{display:block;color:var(--muted);font-size:12px;margin-top:3px}
.payment-method-btn:hover,.payment-method-btn:focus-visible{border-color:var(--brand-primary)!important;background:color-mix(in srgb,var(--brand-primary) 4%,#fff)!important;transform:none!important}
.checkout-host{margin-top:22px!important}.checkout-box{border:1px solid var(--line)!important;padding:26px!important;background:#fff!important}
.checkout-box h3{font:600 23px/1.1 var(--display)!important;margin:0 0 20px!important}.checkout-grid{gap:16px!important}
.mp-secure-field{height:var(--control-height)!important;min-height:var(--control-height)!important;border:1px solid color-mix(in srgb,var(--brand-dark) 18%,transparent)!important;background:#fff!important}
.checkout-box .btn{height:var(--control-height)!important;margin-top:18px}.checkout-box .btn+.btn{margin-left:10px}
.pix-qr{padding:30px!important}.pix-qr img{width:min(250px,100%)!important;padding:10px;background:#fff;border:1px solid var(--line)}
.pix-code{min-height:88px!important;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;word-break:break-all}
.payment-status{min-height:20px;margin-top:14px!important}.payment-success{padding:54px 24px!important}
.payment-success svg{width:64px!important;height:64px!important}.payment-success h2{font:600 28px var(--display)!important}
@media(max-width:760px){
 .payment-hero{grid-template-columns:1fr}.payment-summary{border-left:0;border-top:1px solid rgba(255,255,255,.12)}
 .payment-hero-copy,.payment-summary,.payment-body{padding:26px 24px}.payment-choice{grid-template-columns:1fr!important}
 .payment-section-title{display:block}.payment-secure{margin-top:12px}.checkout-grid{grid-template-columns:1fr!important}.checkout-grid .wide{grid-column:auto!important}
}

/* 1.0.65 — ações dos banners alinhadas à direita */
.banner-actions,.page-banner .banner-actions,.hero-banner .banner-actions{
 margin-left:auto!important;display:flex!important;align-items:center!important;
 justify-content:flex-end!important;gap:10px!important;flex:0 0 auto!important;
}


/* 1.0.68 — sidebar abaixo do cabeçalho fixo, divisor contínuo e saída no rodapé */
.sidebar-footer{display:none}
@media(min-width:901px){
 body.menu-layout-left .client-context-bar{position:sticky!important;top:0!important;z-index:72!important}
 body.menu-layout-left .app-top{position:sticky!important;top:28px!important;z-index:71!important;border-bottom:1px solid var(--line)!important;box-shadow:0 1px 0 var(--line)!important}
 body.menu-layout-left .main-nav{
   top:0!important;z-index:50!important;padding-top:128px!important;padding-bottom:14px!important;
 }
 body.menu-layout-left .sidebar-footer{display:block!important;margin-top:auto!important;padding-top:14px!important;border-top:1px solid var(--line)!important}
 body.menu-layout-left .sidebar-logout{display:flex!important;align-items:center!important;gap:10px!important;width:100%!important;min-height:46px!important;padding:0 14px!important;color:color-mix(in srgb,var(--brand-dark) 76%,#fff)!important;font-size:15px!important;font-weight:500!important}
 body.menu-layout-left .sidebar-logout:hover{color:var(--brand-primary)!important;background:var(--accent-soft)!important}
 body.menu-layout-left .sidebar-logout svg{width:20px!important;height:20px!important;fill:none!important;stroke:currentColor!important;stroke-width:1.7!important;stroke-linecap:round!important;stroke-linejoin:round!important}
}
@media(max-width:900px){.sidebar-footer{display:none!important}}

/* 1.0.70 — uniformidade visual, controles legíveis e camadas administrativas */
@media(min-width:901px){
 .page-intro,.page-intro.compact{height:116px!important;min-height:116px!important;padding-top:20px!important;padding-bottom:20px!important;overflow:hidden!important}
 .page-intro .banner-actions{position:absolute!important;right:34px!important;top:50%!important;transform:translateY(-50%)!important;margin:0!important;display:flex!important;align-items:center!important;justify-content:flex-end!important;flex-wrap:nowrap!important}
 .page-intro:has(.banner-actions) h1,.page-intro:has(.banner-actions) p{max-width:calc(100% - 360px)!important}
 body.menu-layout-left .nav-shell{grid-template-columns:minmax(0,1fr) 44px auto!important}
 body.menu-layout-left .brand{grid-column:1!important}
 body.menu-layout-left .mobile-menu-toggle{display:block!important;grid-column:2!important;grid-row:1!important;margin:0!important;position:relative!important;z-index:3!important}
 body.menu-layout-left .top-actions{grid-column:3!important;grid-row:1!important}
 body.menu-layout-left .main-nav{transition:transform .2s ease!important}
 
 body.menu-layout-left .main{transition:padding-left .2s ease!important}
 
 body.menu-layout-left .sidebar-footer{padding-top:8px!important}
 body.menu-layout-left .sidebar-logout{margin:0!important;border:0!important;border-radius:0!important}
}
.field input:not([type="checkbox"]):not([type="radio"]):not([type="color"]),.field select,
.compact-filter-row input:not([type="checkbox"]):not([type="radio"]),.compact-filter-row select,
.report-filter-line input:not([type="checkbox"]):not([type="radio"]),.report-filter-line select,
.table-tools input:not([type="checkbox"]):not([type="radio"]),.table-tools select{
 height:52px!important;min-height:52px!important;font-size:15px!important;line-height:1.35!important;padding-top:0!important;padding-bottom:0!important;overflow:visible!important
}
.field input[type="date"],.field input[type="time"],.field input[type="datetime-local"]{padding-right:12px!important}
.field textarea{font-size:15px!important;line-height:1.5!important;min-height:128px!important}
.btn-icon,.nav-icon{display:inline-grid!important;place-items:center!important;flex:0 0 auto!important}
.btn-icon svg,.nav-icon svg,.sidebar-logout svg{width:18px!important;height:18px!important;fill:none!important;stroke:currentColor!important;stroke-width:1.8!important;stroke-linecap:round!important;stroke-linejoin:round!important}
.btn.is-loading{opacity:.72;pointer-events:none}.btn.is-loading:after{content:"";width:14px;height:14px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:idmix-spin .7s linear infinite}@keyframes idmix-spin{to{transform:rotate(360deg)}}
.system-modal,.profile-modal{z-index:110000!important}.system-modal-backdrop,.profile-backdrop{z-index:110001!important}.system-modal-dialog,.profile-dialog{z-index:110002!important}
.flash-stack,.toast-stack,.system-alert,.confirm-modal{z-index:120000!important}
.reconciliation-card{margin-top:24px!important}.reconciliation-head{padding:28px 30px 18px!important;margin:0!important}.reconciliation-head p{margin:5px 0 0!important}.reconciliation-table{font-size:14px!important}.reconciliation-table th,.reconciliation-table td{padding:15px 14px!important}.reconciliation-table code{word-break:break-all}.reconciliation-divergent{background:#fff1f0!important;color:#a82828!important}.reconciliation-empty{margin:0 30px 30px!important}
@media(max-width:900px){.page-intro .banner-actions{position:static!important;transform:none!important;margin-top:14px!important;justify-content:flex-start!important}.page-intro{overflow:hidden!important}}

/* 1.0.71 — navegação, modais, TOTP e conciliação */
.page{padding-top:14px!important}.page-intro{margin-top:6px!important}
.system-modal[hidden],.profile-modal[hidden]{display:none!important}
.system-modal,.profile-modal{position:fixed!important;inset:0!important;display:flex!important;align-items:center!important;justify-content:center!important;padding:24px!important;z-index:110000!important}
.system-modal-dialog,.profile-dialog{position:relative!important;top:auto!important;left:auto!important;transform:none!important;margin:auto!important;max-height:calc(100dvh - 48px)!important;overflow:auto!important;z-index:110002!important}
.system-modal-backdrop,.profile-backdrop{position:absolute!important;inset:0!important;z-index:110001!important}
.flash{position:relative!important;z-index:120100!important}
.reconciliation-filters{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.reconciliation-filters .btn{width:auto!important}
.reconciliation-actions{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.reconciliation-actions form{display:inline-flex}
.reconciliation-modal-row>td{padding:0!important;border:0!important;height:0!important}.reconciliation-modal-row{height:0!important}
.reconciliation-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:22px 0}.reconciliation-summary>div{padding:14px 16px;background:var(--surface-soft,#f7f7f7);border:1px solid var(--line)}.reconciliation-summary span{display:block;font-size:11px;color:var(--muted);margin-bottom:5px}.reconciliation-summary b{display:block;font-size:14px}
.payment-timeline{list-style:none;margin:0;padding:0 0 0 4px}.payment-timeline li{position:relative;display:grid;grid-template-columns:18px 1fr;gap:12px;padding:0 0 20px}.payment-timeline li:not(:last-child):before{content:"";position:absolute;left:8px;top:16px;bottom:0;width:1px;background:var(--line)}.timeline-dot{width:17px;height:17px;border-radius:50%;border:4px solid #fff;background:var(--brand-primary);box-shadow:0 0 0 1px var(--line);z-index:1}.payment-timeline b{display:block;font-size:14px}.payment-timeline small{display:block;color:var(--muted);font-size:11px;margin-top:3px}.payment-timeline p{margin:5px 0 0;color:var(--muted);font-size:13px;line-height:1.45}
.report-filter-line input[type="date"]{min-width:148px!important;padding-left:12px!important;padding-right:38px!important;font-variant-numeric:tabular-nums!important}
@media(min-width:1251px){.report-filter-line{grid-template-columns:150px 150px minmax(140px,1.35fr) 112px 124px 112px auto!important}}
@media(min-width:901px) and (max-width:1250px){.report-filter-line{grid-template-columns:repeat(3,minmax(150px,1fr))!important}.report-filter-actions{grid-column:1/-1!important;justify-content:flex-end!important}}
@media(min-width:901px){
 body.menu-layout-left .client-context-bar{z-index:303!important}
 body.menu-layout-left .app-top{z-index:302!important}
 body.menu-layout-left .main-nav{z-index:200!important;transition:transform .2s ease!important;overflow:hidden!important}
 body.menu-layout-left .mobile-menu-toggle{display:none!important}
 body.menu-layout-left .nav-shell{grid-template-columns:minmax(0,1fr) auto!important}
 body.menu-layout-left .top-actions{grid-column:2!important;grid-row:1!important}
 
 
 
 
 
 
 
 
}
@media(max-width:900px){.system-modal,.profile-modal{padding:14px!important}.system-modal-dialog,.profile-dialog{max-height:calc(100dvh - 28px)!important}.reconciliation-summary{grid-template-columns:1fr!important}.report-filter-line input[type="date"]{min-width:0!important;width:100%!important}}

/* 1.0.72 — padrão visual global, navegação e observabilidade */
:root{--control-height:46px;--control-icon:18px}.btn,.field input:not([type="checkbox"]):not([type="radio"]):not([type="color"]),.field select,.compact-filter-row input:not([type="checkbox"]):not([type="radio"]),.compact-filter-row select,.report-filter-line input:not([type="checkbox"]):not([type="radio"]),.report-filter-line select,.table-tools input:not([type="checkbox"]):not([type="radio"]),.table-tools select{min-height:var(--control-height)!important;height:var(--control-height)!important;box-sizing:border-box!important}.btn{display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:8px!important;padding:0 16px!important;white-space:nowrap!important;line-height:1!important}.btn svg,.top-icon svg,.mobile-action-link svg,.side-link svg,.secret-toggle svg{width:var(--control-icon)!important;height:var(--control-icon)!important;flex:0 0 var(--control-icon)!important}input::placeholder,textarea::placeholder{color:color-mix(in srgb,var(--muted) 78%,transparent)!important;opacity:1!important}.table-card{overflow:visible!important}.table{width:100%!important}.table th,.table td{vertical-align:middle!important}.table .btn,.table button,.table a.btn{white-space:nowrap!important}.client-actions{flex-wrap:nowrap!important;min-width:max-content!important}.table-subline,.table-sub{display:block!important;margin-top:4px!important;color:var(--muted)!important;font-size:11px!important;line-height:1.35!important;white-space:normal!important}@media(min-width:901px){body.menu-layout-left .client-context-bar{z-index:500!important}body.menu-layout-left .app-top{z-index:499!important}body.menu-layout-left .main-nav{top:104px!important;bottom:0!important;height:auto!important;padding-top:18px!important;z-index:300!important;transform:none!important;overflow-y:auto!important}body.menu-layout-left .main{padding-left:238px!important}}.reconciliation-card{padding:0 0 22px!important}.reconciliation-head{padding-bottom:12px!important}.reconciliation-health{display:flex!important;gap:12px!important;flex-wrap:wrap!important;padding:0 30px 16px!important}.reconciliation-health>div{display:grid!important;grid-template-columns:12px auto!important;column-gap:8px!important;align-items:center!important;min-width:210px!important;padding:10px 12px!important;border:1px solid var(--line)!important;background:var(--surface-soft,#f8f8f8)!important}.reconciliation-health small{grid-column:2!important;color:var(--muted)!important;font-size:11px!important}.health-dot{width:8px!important;height:8px!important;border-radius:50%!important;background:#d39a21!important}.health-dot.ok{background:#2f8f59!important}.reconciliation-filters{padding:0 30px 18px!important}.reconciliation-table-wrap{margin:0 30px!important;overflow-x:auto!important}.reconciliation-table{min-width:900px!important;table-layout:fixed!important}.reconciliation-table th:nth-child(1){width:19%}.reconciliation-table th:nth-child(2){width:20%}.reconciliation-table th:nth-child(3){width:17%}.reconciliation-table th:nth-child(4){width:17%}.reconciliation-table th:nth-child(5){width:17%}.reconciliation-table th:nth-child(6){width:10%}.reconciliation-table td{white-space:normal!important;overflow:hidden!important}.reconciliation-table code{display:block!important;max-width:100%!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important}.money-line{display:flex!important;justify-content:space-between!important;gap:10px!important;font-size:12px!important}.money-line.net{margin-top:5px!important;padding-top:5px!important;border-top:1px solid var(--line)!important}.delivery-status{display:inline-flex!important;align-items:center!important;min-height:24px!important;padding:3px 8px!important;border-radius:999px!important;background:#f1f1f1!important;font-size:11px!important;font-weight:700!important;white-space:nowrap!important}.delivery-success{background:#eaf7ef!important;color:#226b43!important}.delivery-warn{background:#fff6df!important;color:#8a6400!important}.delivery-danger{background:#fff0ef!important;color:#a22f2f!important}.delivery-info{background:#edf4ff!important;color:#315d9d!important}.audit-filters{display:grid!important;grid-template-columns:2fr 1fr 1.4fr 150px 150px auto!important;gap:12px!important;align-items:end!important;margin-bottom:18px!important}.audit-table{min-width:960px!important}.audit-detail-grid{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:12px!important;margin:20px 0!important}.audit-detail-grid>div{padding:12px!important;border:1px solid var(--line)!important;background:var(--surface-soft,#f8f8f8)!important}.audit-detail-grid span,.audit-json>span{display:block!important;color:var(--muted)!important;font-size:11px!important;margin-bottom:5px!important}.audit-json pre{max-height:360px!important;overflow:auto!important;padding:14px!important;background:#151515!important;color:#f4f4f4!important;font-size:12px!important;white-space:pre-wrap!important;overflow-wrap:anywhere!important}.modal-row>td{padding:0!important;border:0!important;height:0!important}.filter-actions{display:flex!important;gap:8px!important;align-items:center!important}@media(max-width:1100px){.audit-filters{grid-template-columns:repeat(2,minmax(0,1fr))!important}.audit-filters .filter-actions{grid-column:1/-1!important}.reconciliation-table-wrap{margin:0 18px!important}.reconciliation-health,.reconciliation-filters{padding-left:18px!important;padding-right:18px!important}}@media(max-width:900px){.client-actions{flex-wrap:wrap!important;min-width:0!important}.audit-filters{grid-template-columns:1fr!important}.audit-filters .filter-actions{grid-column:auto!important}.reconciliation-health{display:grid!important;grid-template-columns:1fr!important}.reconciliation-health>div{min-width:0!important}.reconciliation-table{min-width:760px!important}}

/* 1.0.80 — Recovery sem timeout automático e hierarquia do menu fixo */
@media(min-width:901px){
 body.menu-layout-left .client-context-bar{z-index:521!important}
 body.menu-layout-left .app-top{z-index:520!important}
 body.menu-layout-left .main-nav{z-index:300!important}
}

/* 1.0.73 — analytics, formulários padronizados e auditoria comparativa */
.analytics-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:18px 0}.analytics-card{min-width:0;overflow:hidden}.analytics-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:22px}.analytics-head .muted{margin:5px 0 0}.dashboard-chart{margin:18px 0}.finance-chart{width:100%;overflow-x:auto;padding:4px 2px 2px}.chart-bars{display:grid;grid-template-columns:repeat(12,minmax(46px,1fr));gap:9px;align-items:end;min-width:660px;height:260px}.chart-column{display:grid;grid-template-rows:28px 1fr 22px;gap:6px;height:100%;text-align:center}.chart-value{font-size:10px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chart-track{height:100%;display:flex;align-items:flex-end;justify-content:center;border-bottom:1px solid var(--line);background:linear-gradient(to top,color-mix(in srgb,var(--brand-primary) 4%,transparent),transparent)}.chart-bar{display:block;width:min(34px,72%);height:var(--bar);min-height:3px;background:var(--brand-primary);border-radius:3px 3px 0 0}.chart-column small{font-size:10px;color:var(--muted);white-space:nowrap}.chart-empty{display:grid;place-items:center;min-height:210px;border:1px dashed var(--line);color:var(--muted);font-size:13px}.dre-totals{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.dre-totals span{display:grid;gap:2px;min-width:112px;padding:8px 10px;border:1px solid var(--line);font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.dre-totals b{font-size:13px;color:var(--ink);letter-spacing:0;text-transform:none}.dre-chart{overflow-x:auto}.dre-legend{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:12px;font-size:11px;color:var(--muted)}.dre-legend span{display:flex;align-items:center;gap:6px}.dre-legend i{width:10px;height:10px;display:inline-block}.legend-revenue{background:var(--brand-primary)}.legend-expense{background:var(--brand-dark)}.legend-result{background:color-mix(in srgb,var(--brand-primary) 48%,var(--brand-dark))}.dre-bars{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(64px,1fr);gap:10px;align-items:end;min-width:520px;height:230px}.dre-period{height:100%;display:grid;grid-template-rows:1fr 22px;gap:5px;text-align:center}.dre-group{display:flex;align-items:flex-end;justify-content:center;gap:4px;border-bottom:1px solid var(--line);height:100%}.dre-bar{display:block;width:13px;height:var(--bar);min-height:3px;border-radius:2px 2px 0 0}.dre-bar.revenue{background:var(--brand-primary)}.dre-bar.expense{background:var(--brand-dark)}.dre-bar.result{background:color-mix(in srgb,var(--brand-primary) 48%,var(--brand-dark))}.dre-bar.result.negative{background:#8f3131}.dre-period small{font-size:10px;color:var(--muted);white-space:nowrap}

/* O padrão visual do formulário Editar Cliente passa a ser a referência dos formulários operacionais. */
.system-modal-dialog>form:not(.form-card){padding:38px}.standard-system-form{padding:38px!important}.standard-system-form>.form-grid{gap:24px 26px}.standard-system-form .form-actions{margin-top:30px}.page form.card:not(.compact-filters):not(.report-filters):not(.audit-filters) .field input,.page form.card:not(.compact-filters):not(.report-filters):not(.audit-filters) .field select,.page form.card:not(.compact-filters):not(.report-filters):not(.audit-filters) .field textarea{min-height:52px;padding:15px 16px;font-size:16px}.page form.card:not(.compact-filters):not(.report-filters):not(.audit-filters){border-radius:0}

.audit-compare{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:12px;align-items:stretch;margin:20px 0}.audit-compare section{min-width:0;border:1px solid var(--line);background:#fff}.audit-compare section>span{display:block;padding:10px 12px;border-bottom:1px solid var(--line);font-size:11px;text-transform:uppercase;letter-spacing:.07em;font-weight:800}.audit-compare pre{margin:0;padding:14px;max-height:300px;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px;line-height:1.55}.audit-compare>i{align-self:center;font-style:normal;color:var(--brand-primary);font-weight:800}.audit-filters .filter-actions{display:flex;align-items:end;gap:8px;flex-wrap:wrap}

@media(max-width:1100px){.analytics-grid{grid-template-columns:1fr}.analytics-head{flex-direction:column}.dre-totals{justify-content:flex-start}}
@media(max-width:700px){.standard-system-form,.system-modal-dialog>form:not(.form-card){padding:24px}.audit-compare{grid-template-columns:1fr}.audit-compare>i{transform:rotate(90deg);justify-self:center}.chart-bars{min-width:600px}}

/* 1.0.74 — estabilização do menu superior, auditoria operacional e ações financeiras */
.nav-shell{grid-template-columns:minmax(220px,280px) minmax(0,1fr) auto!important;gap:18px!important}
.main-nav{min-width:0!important;overflow:visible!important}
.main-nav>.side-link{padding-left:12px!important;padding-right:12px!important;white-space:nowrap!important}
.top-actions{flex:0 0 auto!important}
@media (max-width:1320px) and (min-width:851px){
 .nav-shell{padding-left:24px!important;padding-right:24px!important;grid-template-columns:minmax(190px,240px) minmax(0,1fr) auto!important;gap:10px!important}
 .brand{gap:10px!important}.brand-mark{width:38px!important;height:38px!important;flex-basis:38px!important}.brand-mark strong,.brand-mark i{font-size:26px!important}.brand-name strong,.brand-name i{font-size:20px!important}.brand-name em{font-size:14px!important}
 .main-nav>.side-link{font-size:13px!important;padding-left:8px!important;padding-right:8px!important}
 .main-nav>.side-link:after{left:8px!important;right:8px!important}
}
body.menu-layout-left .nav-shell{grid-template-columns:minmax(0,1fr) auto!important}
body.menu-layout-left .main-nav{overflow-y:auto!important}
.reconciliation-table th:nth-child(6){width:13%!important}.reconciliation-table th:nth-child(1){width:18%!important}.reconciliation-table td:last-child{text-align:center!important}.reconciliation-table td:last-child .btn{min-width:112px!important;max-width:100%!important;margin:0 auto!important}.reconciliation-modal-row td{height:0!important;padding:0!important;border:0!important}
.activity-audit-table{min-width:1120px!important;table-layout:fixed!important}.activity-audit-table th:nth-child(1){width:15%!important}.activity-audit-table th:nth-child(2){width:17%!important}.activity-audit-table th:nth-child(3){width:12%!important}.activity-audit-table th:nth-child(4){width:18%!important}.activity-audit-table th:nth-child(5){width:29%!important}.activity-audit-table th:nth-child(6){width:9%!important}.activity-audit-table td{overflow-wrap:anywhere!important;white-space:normal!important}.activity-audit-table .audit-date{white-space:nowrap!important}.activity-audit-table td:last-child{text-align:center!important}.audit-detail-btn{min-width:104px!important}.audit-reference{margin:0 0 18px;padding:14px;border:1px solid var(--line);background:var(--surface-soft,#f8f8f8)}.audit-reference span{display:block;color:var(--muted);font-size:11px;margin-bottom:4px}

/* 1.0.75 — padronização contínua de tabelas, exportação, auditoria e 2FA. */
.table-export-tools{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap;margin:0 0 12px}
.table-export-label{font-size:12px;font-weight:700;color:var(--muted,#6b7280);text-transform:uppercase;letter-spacing:.04em}
.table-export-tools .btn{min-width:104px}
.audit-quick-filters{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 14px}
.audit-quick-filters .btn{min-width:112px}
.table td,.table th{overflow-wrap:normal;word-break:normal}
.table .btn{white-space:nowrap}
@media(max-width:700px){.table-export-tools{justify-content:flex-start}.audit-quick-filters{overflow-x:auto;flex-wrap:nowrap;padding-bottom:4px}.audit-quick-filters .btn{flex:0 0 auto}}

.audit-inline-change{display:grid;grid-template-columns:auto minmax(80px,1fr) auto auto minmax(80px,1fr);gap:6px;align-items:center;max-width:520px;font-size:12px}
.audit-inline-change small{color:var(--muted,#6b7280);white-space:nowrap}.audit-inline-change b{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.audit-inline-change i{font-style:normal;color:var(--muted,#6b7280)}
@media(max-width:900px){.audit-inline-change{grid-template-columns:1fr}.audit-inline-change i{transform:rotate(90deg);justify-self:start}}

/* 1.0.76 — consistência de conteúdo, filtros, checkout e e-mail. */
.payment-hero{border-top:1px solid var(--brand-primary)!important}
.payment-footer{margin-top:14px;padding:20px 24px;text-align:center;background:var(--brand-dark);color:#fff;border-top:1px solid var(--brand-primary)}
.payment-footer .footer-brand-name{display:flex;justify-content:center;align-items:center;gap:0;font-size:16px}.payment-footer .footer-brand-name i{font-style:normal;color:var(--brand-primary)}.payment-footer .footer-brand-name em{font-style:normal;font-weight:400}.payment-footer small{display:block;margin-top:3px;letter-spacing:.12em;opacity:.72}.payment-footer p{margin:10px 0 0;font-size:12px;opacity:.72}
.table-export-tools{margin:0!important;padding:8px 12px!important;gap:6px!important}.table-export-tools .btn{min-width:auto!important;min-height:32px!important;height:32px!important;padding:5px 9px!important;font-size:11px!important}
.standard-filter-form,.report-filters{gap:8px!important}.standard-filter-form .field,.report-filters .field{min-width:0}
.form-grid.compact-form,.compact-form .form-grid{grid-template-columns:1fr!important;max-width:520px}
.page-intro p,.card-head p,.section-title p,.payment-section-title p{max-width:680px}
/* 1.0.77 — pagamento, emissão e atualização silenciosa. */
.payment-hero{background:var(--brand-dark)!important;border-top:1px solid var(--brand-primary)!important}
.payment-footer{background:var(--brand-dark)!important;border-top:1px solid var(--brand-primary)!important}
.issue-charge-form .form-grid-single{grid-template-columns:minmax(0,1fr)!important;max-width:560px;width:100%}
.pix-qr{display:flex;flex-direction:column;align-items:center;text-align:center;gap:14px}
.pix-qr>h3,.pix-qr>.muted{width:100%}.pix-qr img{display:block;margin:0 auto}
.pix-copy-block{display:flex;flex-direction:column;align-items:stretch;gap:8px;width:min(520px,100%);text-align:left}
.pix-copy-block .pix-code{width:100%;height:44px;min-height:44px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}
.pix-copy-block .btn{align-self:center}.pix-actions{display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap}.pix-auto-note{text-align:center!important}
.pix-help-modal .modal-content{padding:22px}.pix-help-modal .modal-content p{margin:0 0 12px;line-height:1.55}
.live-value{transition:none!important}
@media(max-width:640px){.pix-actions{flex-direction:column;width:100%}.pix-actions .btn,.pix-copy-block .btn{width:100%}}

/* 1.0.79 — padrão único de inputs, botões, filtros e ferramentas de tabelas. */
:root{--standard-control-height:46px}
.page .field input:not([type="checkbox"]):not([type="radio"]):not([type="color"]),
.page .field select,
.page .field textarea,
.system-modal .field input:not([type="checkbox"]):not([type="radio"]):not([type="color"]),
.system-modal .field select,
.system-modal .field textarea,
.compact-filter-row input:not([type="checkbox"]):not([type="radio"]),
.compact-filter-row select,
.report-filter-line input:not([type="checkbox"]):not([type="radio"]),
.report-filter-line select,
.standard-filter-form input:not([type="checkbox"]):not([type="radio"]),
.standard-filter-form select,
.table-tools input:not([type="checkbox"]):not([type="radio"]),
.table-tools select{
 min-height:var(--standard-control-height)!important;height:var(--standard-control-height)!important;
 border:1px solid color-mix(in srgb,var(--brand-dark) 18%,transparent)!important;
 border-radius:0!important;background:#fff!important;color:var(--ink)!important;
 padding:0 15px!important;font-size:15px!important;line-height:1.2!important;box-shadow:none!important
}
.page .field textarea,.system-modal .field textarea{height:auto!important;min-height:128px!important;padding:13px 15px!important;line-height:1.5!important}
.btn{min-height:var(--standard-control-height)!important;height:var(--standard-control-height)!important;border-radius:0!important;padding:0 16px!important;gap:8px!important;font-size:13px!important}
.btn .btn-icon,.btn .btn-label{display:inline-flex!important;align-items:center!important}.btn .btn-icon{justify-content:center!important}
.compact-filters,.report-filters,.audit-filters,.standard-filter-form,.reconciliation-filters,.table-tools.standard-table-tools{
 border:1px solid var(--line)!important;background:#fff!important;border-radius:0!important;box-shadow:none!important
}
.compact-filters,.report-filters,.standard-filter-form{padding:14px!important}
.compact-filter-row,.report-filter-actions,.filter-actions{gap:8px!important;align-items:center!important}
.table-tools.standard-table-tools{display:flex!important;align-items:center!important;gap:8px!important;padding:10px 12px!important;margin:0!important;border-left:0!important;border-right:0!important;border-top:0!important;flex-wrap:wrap!important}
.table-tools.standard-table-tools .field{flex:1 1 220px!important;max-width:360px!important;margin:0!important}
.table-tools.standard-table-tools .field label{display:block!important;margin:0 0 4px!important;font-size:10px!important}
.table-tools.standard-table-tools .table-page-info{margin-left:auto!important}
.table-tools.standard-table-tools .table-export-tools{display:flex!important;align-items:center!important;gap:6px!important;padding:0!important;margin:0!important;border:0!important;background:transparent!important}
.table-tools.standard-table-tools .table-export-tools .btn{height:var(--standard-control-height)!important;min-height:var(--standard-control-height)!important;padding:0 13px!important;font-size:12px!important}
.table-card>.table-export-tools{border:1px solid var(--line)!important;border-bottom:0!important;background:#fff!important}
@media(max-width:700px){.table-tools.standard-table-tools{align-items:stretch!important}.table-tools.standard-table-tools .field{flex-basis:100%!important;max-width:none!important}.table-tools.standard-table-tools .table-page-info{width:100%!important;margin-left:0!important}.table-tools.standard-table-tools .table-export-tools{width:100%!important}.table-tools.standard-table-tools .table-export-tools .btn{flex:1 1 auto!important}}

/* 1.0.81 — cabeçalho fixo efetivamente acima da sidebar esquerda */
@media(min-width:901px){
 body.menu-layout-left .client-context-bar{z-index:622!important}
 body.menu-layout-left .app-top{z-index:620!important}
 body.menu-layout-left .app-top .brand,
 body.menu-layout-left .app-top .top-actions{position:relative!important;z-index:621!important}
 body.menu-layout-left .main-nav{top:110px!important;z-index:300!important}
}

/* 1.0.82 — divisor contínuo, alinhamento do cabeçalho e filtro único por tabela */
@media(min-width:901px){
 body.menu-layout-left .app-top{border-bottom:0!important;box-shadow:none!important;overflow:visible!important}
 body.menu-layout-left .app-top::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--line);z-index:623;pointer-events:none}
 body.menu-layout-left .nav-shell{max-width:none!important;margin:0!important;padding-left:26px!important;padding-right:26px!important}
 body.menu-layout-left .app-top .brand,body.menu-layout-left .app-top .top-actions{align-self:center!important}
 body.menu-layout-top .nav-shell{align-items:center!important}
 body.menu-layout-top .brand,body.menu-layout-top .top-actions{align-self:center!important}
}
.personalized-table-tools{gap:8px!important}
.personalized-table-tools .table-filter-search{flex:1 1 260px!important;max-width:420px!important}
.personalized-table-tools .table-filter-field{flex:0 1 190px!important;max-width:220px!important}
.personalized-table-tools .table-filter-date{flex:0 0 150px!important;max-width:150px!important}
.personalized-table-tools .table-filter-field select,.personalized-table-tools .table-filter-date input{width:100%!important}
.reconciliation-filters.personalized-table-tools{display:flex!important;align-items:flex-end!important;gap:8px!important;flex-wrap:wrap!important;padding:0 30px 18px!important}
.reconciliation-filters.personalized-table-tools .table-filter-search{margin:0!important}
@media(max-width:900px){.personalized-table-tools .table-filter-search,.personalized-table-tools .table-filter-field,.personalized-table-tools .table-filter-date{flex:1 1 100%!important;max-width:none!important}.reconciliation-filters.personalized-table-tools{padding-left:18px!important;padding-right:18px!important}}
@media(min-width:1251px){
 body.menu-layout-top .nav-shell{grid-template-columns:1fr auto 1fr!important}
 body.menu-layout-top .brand{justify-self:start!important}
 body.menu-layout-top .main-nav{justify-self:center!important}
 body.menu-layout-top .top-actions{justify-self:end!important}
}


/* 1.0.83 — alinhamento mobile, formulários, recebimentos, manutenção e ações das tabelas */
@media(max-width:900px){
 .main-nav .side-link,.mobile-action-link{box-sizing:border-box!important;width:100%!important;min-height:46px!important;padding-left:12px!important;padding-right:12px!important;gap:12px!important}
 .main-nav .side-link .nav-icon,.mobile-action-link svg{width:19px!important;min-width:19px!important;height:19px!important;display:inline-grid!important;place-items:center!important;margin:0!important}
 .mobile-nav-actions{padding-left:0!important;padding-right:0!important}
}
.form-card>.btn,.settings-details-body>.btn,.form-actions,.modal-actions{margin-top:24px!important}
.form-card .form-grid+.module-block,.form-card .module-block+.section-head{margin-top:28px}
.section-head:not(:has(>span)){grid-template-columns:1fr!important}
.payment-provider-list{display:grid;gap:12px;margin-top:24px}.payment-provider{border:1px solid var(--line);background:#fff}.payment-provider>summary{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:58px;padding:10px 16px;cursor:pointer;font-weight:700}.payment-provider-body{padding:18px 16px 20px;border-top:1px solid var(--line)}
.compact-filter-row>.table-export-tools,.filter-actions>.table-export-tools,.report-filter-actions>.table-export-tools{display:flex!important;gap:8px!important;margin:0 0 0 auto!important;padding:0!important;border:0!important;background:transparent!important}.compact-filter-row>.table-export-tools .btn,.filter-actions>.table-export-tools .btn,.report-filter-actions>.table-export-tools .btn{height:var(--standard-control-height)!important;min-height:var(--standard-control-height)!important}
.table-card>.table-export-tools{display:none!important}
.maintenance-alert{position:fixed;top:110px;left:0;right:0;z-index:610;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:9px 26px;background:#fff7e5;border-bottom:1px solid #e8c86b;color:#4b3a12;font-size:13px}.maintenance-alert small{white-space:nowrap}.maintenance-alert b{font-variant-numeric:tabular-nums}
.maintenance-login-modal{z-index:5000}.maintenance-login-modal .system-modal-backdrop{background:rgba(0,0,0,.72)}.maintenance-window{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:20px}.maintenance-window span{display:grid;gap:5px;padding:12px;border:1px solid var(--line)}
@media(max-width:900px){.maintenance-alert{top:var(--mobile-menu-top,82px);left:0;right:0;padding:9px 18px;align-items:flex-start;flex-direction:column;gap:4px}.maintenance-alert small{white-space:normal}.compact-filter-row>.table-export-tools,.filter-actions>.table-export-tools,.report-filter-actions>.table-export-tools{width:100%;margin-left:0!important}.compact-filter-row>.table-export-tools .btn,.filter-actions>.table-export-tools .btn,.report-filter-actions>.table-export-tools .btn{flex:1 1 0}.maintenance-window{grid-template-columns:1fr}}
.maintenance-alert+.main{padding-top:44px!important}
@media(max-width:900px){.maintenance-alert+.main{padding-top:72px!important}}

/* 1.0.84 — proporção global de formulários/filtros e ações de API */
.form-grid-single{grid-template-columns:minmax(0,1fr)!important;max-width:none!important;width:100%!important}
.standard-system-form>.form-grid,.form-card>.form-grid{width:100%}
.compact-filters,.report-filters,.audit-filters{overflow:visible}
.compact-filter-row,.report-filters .form-grid,.audit-filters .form-grid,.reconciliation-filters,.personalized-table-tools{align-items:end!important}
.compact-filter-row{display:flex!important;flex-wrap:nowrap!important;gap:10px!important}
.compact-filter-row>input,.compact-filter-row>select,.compact-filter-row>.field{flex:1 1 0;min-width:0}
.compact-filter-row>.btn,.compact-filter-row>.table-export-tools,.filter-actions>.table-export-tools,.report-filter-actions>.table-export-tools{flex:0 0 auto}
.table-export-tools{display:flex!important;align-items:flex-end!important;gap:8px!important;margin:0!important}
.table-export-tools .btn,.compact-filter-row>.btn{min-height:52px!important;height:52px!important;align-self:flex-end!important}
.compact-filter-row>input,.compact-filter-row>select{min-height:52px!important;height:52px!important}
.personalized-table-tools{display:flex!important;flex-wrap:nowrap!important;gap:10px!important}
.personalized-table-tools .field{margin:0!important;min-width:0!important}
.personalized-table-tools .field input,.personalized-table-tools .field select{height:52px!important;min-height:52px!important}
.provider-test-actions{display:flex;justify-content:flex-end;margin-top:24px;padding-top:18px;border-top:1px solid var(--line)}
@media(max-width:900px){
 .compact-filter-row,.personalized-table-tools,.reconciliation-filters{flex-wrap:wrap!important}
 .compact-filter-row>input,.compact-filter-row>select,.compact-filter-row>.field,.personalized-table-tools .field{flex:1 1 min(100%,220px)!important}
 .table-export-tools{flex:0 0 auto!important}
}


/* 1.0.85 — consistência financeira, filtros, notificações e Configurações mobile */
.revenue-line-chart{position:relative;width:100%;min-height:300px;padding:8px 0 28px;overflow:hidden}.revenue-line-chart svg{display:block;width:100%;height:280px;overflow:visible}.revenue-line-chart polyline{fill:none;stroke:var(--brand-primary);stroke-width:3}.revenue-line-chart circle{fill:#fff;stroke:var(--brand-primary);stroke-width:3;vector-effect:non-scaling-stroke}.chart-grid-line{stroke:var(--line);stroke-width:1;vector-effect:non-scaling-stroke}.revenue-line-labels{position:absolute;left:0;right:0;bottom:0;height:22px}.revenue-line-labels span{position:absolute;transform:translateX(-50%);font-size:11px;color:var(--muted);white-space:nowrap}.chart-range-form{margin-left:auto;flex:0 0 auto}.chart-range-form label{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted)}.chart-range-form select{height:52px;min-height:52px;padding:0 34px 0 12px}
.payment-internal-grid{grid-template-columns:1fr!important}.provider-test-actions{display:flex;justify-content:flex-start;margin-top:20px}
.reconciliation-summary{grid-template-columns:1fr!important}.payment-timeline li{grid-template-columns:17px minmax(0,1fr)!important;gap:8px!important;text-align:left!important}.payment-timeline li>div{text-align:left!important}.payment-timeline p{text-align:left!important;margin-left:0!important}.payment-timeline .timeline-dot{justify-self:start!important}
.top-icon.has-notifications,.mobile-action-link.has-notifications{animation:idmix-notification-pulse 1.25s ease-in-out infinite}.mobile-action-link.has-notifications{position:relative}.mobile-notification-badge{right:14px!important;top:50%!important;transform:translateY(-50%)!important}
@keyframes idmix-notification-pulse{0%,100%{opacity:1}50%{opacity:.42}}
@media(prefers-reduced-motion:reduce){.top-icon.has-notifications,.mobile-action-link.has-notifications{animation:none}}
@media(max-width:900px){
 .app-top .mobile-menu-toggle{display:block!important;visibility:visible!important;pointer-events:auto!important;z-index:2405!important}
 .main-nav:not(.mobile-open){display:none!important}.main-nav.mobile-open{display:flex!important;flex-direction:column!important;visibility:visible!important;opacity:1!important}
 .tabs{display:flex!important;flex-wrap:nowrap!important;overflow-x:auto!important;overscroll-behavior-x:contain;padding-bottom:4px;scrollbar-width:thin}.tabs a{flex:0 0 auto!important}
 .analytics-head{align-items:flex-start!important;flex-direction:column!important}.chart-range-form{width:100%!important;margin-left:0!important}.chart-range-form label{justify-content:space-between!important}.chart-range-form select{flex:1 1 auto!important;max-width:180px!important}
}


/* 1.0.86 — controles proporcionais, scroll transparente e menu mobile independente do cabeçalho */
:root{--standard-control-height:52px}
.page input:not([type="checkbox"]):not([type="radio"]):not([type="color"]),.page select,.page .btn,.system-modal input:not([type="checkbox"]):not([type="radio"]):not([type="color"]),.system-modal select,.system-modal .btn{min-height:var(--standard-control-height)!important;height:var(--standard-control-height)!important;box-sizing:border-box!important}
textarea{box-sizing:border-box!important}
*{scrollbar-color:transparent transparent!important}
*::-webkit-scrollbar{background:transparent!important}
*::-webkit-scrollbar-track{background:transparent!important}
*::-webkit-scrollbar-thumb{background:transparent!important;border-color:transparent!important}
[data-revenue-chart][aria-busy="true"]{opacity:.72;transition:opacity .15s ease}
@media(max-width:900px){body>.main-nav{top:var(--mobile-menu-top,110px)!important;padding-top:18px!important;z-index:2600!important;max-height:calc(100dvh - var(--mobile-menu-top,110px))!important}}


/* 1.0.88 — pente fino visual responsivo global */
:root{
 --ui-space-1:6px;--ui-space-2:10px;--ui-space-3:14px;--ui-space-4:18px;--ui-space-5:24px;--ui-space-6:30px;
 --ui-content-max:1440px;--ui-page-pad:34px;--ui-card-pad:30px;--ui-radius:0px;
}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{overflow-x:hidden}
img,svg,video,canvas{max-width:100%}
.page{width:100%;max-width:var(--ui-content-max);padding-left:var(--ui-page-pad);padding-right:var(--ui-page-pad)}
.card,.form-card,.analytics-card,.settings-section,.system-modal-dialog{min-width:0}
.card{padding:var(--ui-card-pad)}
.cards,.grid-3,.split-grid,.analytics-grid{align-items:stretch}
.cards>.card,.grid-3>.card,.analytics-grid>.card{height:100%}
.page-title,.analytics-head,.section-head{min-width:0}
.page-title>*,.analytics-head>*,.section-head>*{min-width:0}
.page-title h1,.page-title h2,.section-heading,.card h3{overflow-wrap:anywhere}

/* Controles: mesma caixa, mesma linha de base e conteúdo centralizado. */
.field{min-width:0;margin:0}
.field input:not([type="checkbox"]):not([type="radio"]):not([type="color"]),
.field select,
.compact-filter-row>input:not([type="checkbox"]):not([type="radio"]),
.compact-filter-row>select,
.report-filter-line input:not([type="checkbox"]):not([type="radio"]),
.report-filter-line select,
.table-tools input:not([type="checkbox"]):not([type="radio"]),
.table-tools select,
.btn{
 min-height:var(--standard-control-height)!important;height:var(--standard-control-height)!important;
 padding-top:0!important;padding-bottom:0!important;line-height:1.2!important;
}
.field input:not([type="checkbox"]):not([type="radio"]):not([type="color"]),.field select,
.compact-filter-row>input:not([type="checkbox"]):not([type="radio"]),.compact-filter-row>select,
.report-filter-line input:not([type="checkbox"]):not([type="radio"]),.report-filter-line select,
.table-tools input:not([type="checkbox"]):not([type="radio"]),.table-tools select{padding-left:14px!important;padding-right:14px!important}
.field textarea{padding:14px!important;line-height:1.5}
.field label{line-height:1.25;margin-bottom:8px}
.field small{line-height:1.45}
.btn{padding-left:16px!important;padding-right:16px!important;vertical-align:middle}
.btn svg{flex:none}
.form-actions,.modal-actions,.client-actions,.filter-actions,.table-export-tools,.banner-actions{align-items:center!important}
.form-actions,.modal-actions{padding-top:0}

/* Filtros e ferramentas de tabela: uma linha quando houver largura, quebra proporcional sem desalinhamento. */
.compact-filters,.report-filters,.audit-filters,.personalized-table-tools,.table-tools.standard-table-tools{width:100%}
.compact-filter-row,.personalized-table-tools,.report-filter-line,.audit-filters{column-gap:10px!important;row-gap:10px!important}
.compact-filter-row>*,.personalized-table-tools>*,.report-filter-line>*,.audit-filters>*{min-width:0}
.table-export-tools{height:var(--standard-control-height);align-items:stretch!important}
.table-export-tools .btn{margin:0!important}
.table-page-info{align-self:center}

/* Tabelas: densidade consistente e rolagem apenas quando necessária. */
.table-card{width:100%;min-width:0}
.table{font-size:14px}
.table th,.table td{padding:14px 16px!important;line-height:1.4}
.table th{font-size:11px;line-height:1.3;white-space:nowrap}
.table td{max-width:360px}
.table .badge{white-space:nowrap}

/* Blocos, títulos e descrições seguem a mesma hierarquia visual. */
.section-head{gap:16px;margin-top:36px;margin-bottom:22px;padding-top:26px}
.section-head h2{font-size:clamp(23px,2vw,29px);line-height:1.15}
.section-head small{line-height:1.4}
.settings-section,.analytics-card{padding:var(--ui-card-pad)}
.settings-details>summary,.payment-provider>summary{min-height:58px;line-height:1.35}

/* Modais permanecem dentro do viewport em qualquer dimensão. */
.system-modal-dialog,.profile-dialog{width:min(100% - 32px,1120px);max-height:calc(100dvh - 32px)}
.system-modal:not(:has(.system-modal-wide)) .system-modal-dialog{width:min(100% - 32px,680px)}
.modal-actions{flex-wrap:wrap}

/* Desktop largo: mantém conteúdo legível sem esticar controles além do necessário. */
@media(min-width:1600px){
 :root{--ui-page-pad:40px;--ui-card-pad:32px}
 .nav-shell{padding-left:40px;padding-right:40px}
}

/* Notebook/tablet horizontal. */
@media(max-width:1200px){
 :root{--ui-page-pad:26px;--ui-card-pad:26px}
 .nav-shell{padding-left:26px;padding-right:26px;gap:20px}
 .page-intro{margin-left:0;margin-right:0;padding-left:26px;padding-right:26px}
 .cards{grid-template-columns:repeat(2,minmax(0,1fr))}
 .grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}
 .module-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* Mobile/tablet vertical. */
@media(max-width:900px){
 :root{--ui-page-pad:18px;--ui-card-pad:22px}
 body{font-size:16px}
 .page{padding-bottom:56px}
 .page-intro{height:auto!important;min-height:156px;margin-left:0!important;margin-right:0!important;padding:24px 18px!important}
 .page-intro h1{font-size:clamp(30px,8vw,40px)!important;letter-spacing:-1.2px}
 .page-intro p{font-size:14px;max-width:none!important}
 .page-intro:has(>.btn) h1,.page-intro:has(>.btn) p{max-width:none!important}
 .page-title{align-items:flex-start;flex-direction:column;gap:12px;margin-bottom:22px}
 .page-title h1,.page-title h2{font-size:clamp(27px,7vw,34px)}
 .cards,.cards.mini,.grid-3,.split-grid,.analytics-grid,.module-grid{grid-template-columns:1fr!important;gap:14px}
 .card,.form-card,.settings-section,.analytics-card{padding:22px}
 .kpi{min-height:150px;padding:22px}
 .kpi b{font-size:clamp(28px,8vw,38px)}
 .form-grid{grid-template-columns:1fr!important;gap:18px}
 .section-head{grid-template-columns:42px minmax(0,1fr);gap:12px;margin:30px 0 18px;padding-top:22px}
 .section-head>span{font-size:23px}
 .section-head h2{font-size:24px}
 .form-actions,.modal-actions{justify-content:stretch!important;width:100%;gap:10px}
 .form-actions .btn,.modal-actions .btn{flex:1 1 180px}
 .compact-filter-row,.personalized-table-tools,.report-filter-line,.audit-filters{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;width:100%}
 .compact-filter-row>*,.personalized-table-tools>*,.report-filter-line>*,.audit-filters>*{width:100%!important;max-width:none!important}
 .compact-filter-row>.table-export-tools,.personalized-table-tools>.table-export-tools,.report-filter-actions,.audit-filters .filter-actions{grid-column:1/-1!important;width:100%!important}
 .table-export-tools{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));height:auto!important}
 .table-export-tools .btn{width:100%}
 .table th,.table td{padding:12px 14px!important}
 .system-modal,.profile-modal{padding:12px!important}
 .system-modal-dialog,.profile-dialog{width:100%!important;max-height:calc(100dvh - 24px)!important}
 .modal-banner-head h2{font-size:24px}
 .maintenance-card{width:calc(100% - 24px);padding:30px 22px}
 .maintenance-card h1{font-size:34px}
}

/* Telefones estreitos: controles em uma coluna sem reduzir área de toque. */
@media(max-width:640px){
 :root{--ui-page-pad:14px;--ui-card-pad:18px}
 .page-intro{margin-left:0!important;margin-right:0!important;padding-left:14px!important;padding-right:14px!important}
 .card,.form-card,.settings-section,.analytics-card{padding:18px}
 .compact-filter-row,.personalized-table-tools,.report-filter-line,.audit-filters{grid-template-columns:1fr!important}
 .compact-filter-row>.table-export-tools,.personalized-table-tools>.table-export-tools,.report-filter-actions,.audit-filters .filter-actions{grid-column:auto!important}
 .filter-actions{display:grid!important;grid-template-columns:1fr!important;width:100%}
 .filter-actions .btn{width:100%}
 .table-export-tools{grid-template-columns:1fr 1fr!important;width:100%!important}
 .form-actions,.modal-actions{display:grid!important;grid-template-columns:1fr!important}
 .form-actions .btn,.modal-actions .btn,.client-actions .btn{width:100%!important}
 .notification-item{align-items:flex-start;flex-direction:column;gap:6px}
 .notification-item small{white-space:normal}
 .system-modal-dialog,.profile-dialog{padding-left:18px!important;padding-right:18px!important;padding-bottom:18px!important}
 .modal-banner-head{margin-left:0!important;margin-right:0!important;padding-left:18px!important}
 .revenue-line-chart{min-height:250px}.revenue-line-chart svg{height:230px}
}

/* 1.0.89 — alinhamento fino de controles e tipografia, com prioridade para mobile */
:root{--mobile-control-gap:10px}
*,*::before,*::after{box-sizing:border-box}

/* Campos e controles compartilham a mesma métrica visual. */
.field{display:flex;flex-direction:column;align-items:stretch;min-width:0}
.field label{display:block!important;margin:0 0 8px!important;font-size:13px!important;line-height:1.3!important;min-height:17px;color:color-mix(in srgb,var(--brand-dark) 82%,#fff)}
.field small,.field .help,.field .muted{margin-top:7px!important;font-size:12px!important;line-height:1.45!important;text-align:left}
.page input:not([type="checkbox"]):not([type="radio"]):not([type="color"]),
.page select,
.system-modal input:not([type="checkbox"]):not([type="radio"]):not([type="color"]),
.system-modal select,
.compact-filter-row input:not([type="checkbox"]):not([type="radio"]),
.compact-filter-row select,
.personalized-table-tools input:not([type="checkbox"]):not([type="radio"]),
.personalized-table-tools select,
.report-filter-line input:not([type="checkbox"]):not([type="radio"]),
.report-filter-line select,
.audit-filters input:not([type="checkbox"]):not([type="radio"]),
.audit-filters select,
.table-tools input:not([type="checkbox"]):not([type="radio"]),
.table-tools select{
 width:100%;height:var(--standard-control-height)!important;min-height:var(--standard-control-height)!important;
 padding:0 14px!important;font-size:15px!important;line-height:normal!important;vertical-align:middle!important;
}
.page select,.system-modal select,.compact-filter-row select,.personalized-table-tools select,.report-filter-line select,.audit-filters select,.table-tools select{padding-right:36px!important}
.page textarea,.system-modal textarea{width:100%;font-size:15px!important;line-height:1.5!important}
.btn{min-width:0!important;max-width:100%;height:var(--standard-control-height)!important;min-height:var(--standard-control-height)!important;padding:0 16px!important;font-size:13px!important;line-height:1.2!important;text-align:center!important;vertical-align:middle!important}
.btn .btn-label{min-width:0;line-height:1.2;text-align:center}
.btn .btn-icon{width:18px;height:18px;flex:0 0 18px}

/* Grupos de ações alinham sempre pela mesma linha-base. */
.form-actions,.modal-actions,.client-actions,.filter-actions,.report-filter-actions,.table-export-tools,.provider-test-actions,.banner-actions{gap:var(--mobile-control-gap)!important;align-items:center!important}
.form-actions>.btn,.modal-actions>.btn,.client-actions>.btn,.filter-actions>.btn,.report-filter-actions>.btn,.table-export-tools>.btn,.provider-test-actions>.btn{margin:0!important}
.compact-filter-row,.personalized-table-tools,.report-filter-line,.audit-filters,.table-tools.standard-table-tools{align-items:end!important}
.compact-filter-row>.field,.personalized-table-tools>.field,.report-filter-line>.field,.audit-filters>.field,.table-tools.standard-table-tools>.field{margin:0!important}

/* Texto de cards e cabeçalhos não fica visualmente deslocado por margens herdadas. */
.card>h1:first-child,.card>h2:first-child,.card>h3:first-child,.form-card>h1:first-child,.form-card>h2:first-child,.form-card>h3:first-child{margin-top:0!important}
.card p:last-child,.form-card p:last-child,.settings-section p:last-child{margin-bottom:0}
.card-head,.analytics-head,.section-title{min-width:0}
.card-head h2,.card-head h3,.analytics-head h2,.analytics-head h3,.section-title h2,.section-title h3{line-height:1.2}
.card-head p,.analytics-head p,.section-title p{line-height:1.5}

@media(max-width:900px){
 /* Neutraliza a regra legada que fazia qualquer botão mobile ocupar a largura inteira. */
 .page .btn,.system-modal .btn{width:auto!important}

 .page{padding-left:18px!important;padding-right:18px!important}
 .card,.form-card,.settings-section,.analytics-card{padding:20px!important}
 .field label{font-size:12px!important;letter-spacing:.045em!important}
 .field small,.field .help,.field .muted{font-size:12px!important}

 /* Formulários: uma coluna, mesma largura e distância em todos os campos. */
 .form-grid,.form-grid-single{display:grid!important;grid-template-columns:1fr!important;gap:18px!important;width:100%!important}
 .form-grid>.field,.form-grid-single>.field{width:100%!important;max-width:none!important}
 .form-actions,.modal-actions{display:grid!important;grid-template-columns:1fr!important;width:100%!important;margin-top:24px!important}
 .form-actions>.btn,.modal-actions>.btn{width:100%!important}

 /* Filtros: controles perfeitamente alinhados e ações em bloco próprio. */
 .compact-filter-row,.personalized-table-tools,.report-filter-line,.audit-filters,.table-tools.standard-table-tools{
  display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important;width:100%!important;
 }
 .compact-filter-row>*,.personalized-table-tools>*,.report-filter-line>*,.audit-filters>*,.table-tools.standard-table-tools>*{min-width:0!important;max-width:none!important;width:100%!important}
 .compact-filter-row>.table-export-tools,.personalized-table-tools>.table-export-tools,.report-filter-actions,.audit-filters .filter-actions,.table-tools.standard-table-tools .table-export-tools,.table-tools.standard-table-tools .table-page-info{grid-column:1/-1!important}
 .table-tools.standard-table-tools .table-page-info{margin:0!important;text-align:left!important;align-self:center!important}
 .filter-actions,.report-filter-actions,.table-export-tools{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;width:100%!important;gap:10px!important}
 .filter-actions>.btn,.report-filter-actions>.btn,.table-export-tools>.btn{width:100%!important}

 /* Ações dentro de tabelas permanecem compactas, mas alinhadas e com boa área de toque. */
 .client-actions{display:flex!important;flex-wrap:wrap!important;width:auto!important;min-width:0!important;gap:8px!important}
 .client-actions>.btn,.table td>.btn,.table td form>.btn{width:auto!important;min-width:44px!important;height:44px!important;min-height:44px!important;padding:0 12px!important}
 .table td form{margin:0!important}

 /* Navegação e abas: texto e ícones compartilham o mesmo eixo. */
 .main-nav .side-link,.mobile-action-link{display:flex!important;align-items:center!important;min-height:48px!important;line-height:1.25!important;padding-top:0!important;padding-bottom:0!important}
 .main-nav .side-link .nav-icon,.mobile-action-link svg{align-self:center!important}
 .tabs a{display:inline-flex!important;align-items:center!important;min-height:44px!important;padding:0 14px!important;line-height:1.2!important}

 /* Summaries de Configurações e Pagamentos ficam centralizados verticalmente. */
 .settings-details>summary,.payment-provider>summary{display:flex!important;align-items:center!important;min-height:56px!important;padding:10px 14px!important;line-height:1.3!important}

 /* Cabeçalhos de analytics não deixam seletor desalinhado do texto. */
 .analytics-head{gap:12px!important}
 .chart-range-form{width:100%!important}
 .chart-range-form label{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(140px,180px)!important;align-items:center!important;gap:10px!important;min-height:52px!important;margin:0!important}
 .chart-range-form select{width:100%!important;max-width:none!important}
}

@media(max-width:640px){
 .page{padding-left:14px!important;padding-right:14px!important}
 .card,.form-card,.settings-section,.analytics-card{padding:18px!important}
 .compact-filter-row,.personalized-table-tools,.report-filter-line,.audit-filters,.table-tools.standard-table-tools{grid-template-columns:1fr!important}
 .compact-filter-row>.table-export-tools,.personalized-table-tools>.table-export-tools,.report-filter-actions,.audit-filters .filter-actions,.table-tools.standard-table-tools .table-export-tools,.table-tools.standard-table-tools .table-page-info{grid-column:1!important}
 .page-title{gap:10px!important}
 .page-title h1,.page-title h2{margin-bottom:0!important;line-height:1.08!important}
 .section-head{align-items:start!important}
 .section-head h2{line-height:1.15!important}
 .chart-range-form label{grid-template-columns:1fr!important;gap:7px!important}
 .chart-range-form select{width:100%!important}
}

@media(max-width:420px){
 .page{padding-left:12px!important;padding-right:12px!important}
 .card,.form-card,.settings-section,.analytics-card{padding:16px!important}
 .btn{padding-left:13px!important;padding-right:13px!important}
 .client-actions{display:grid!important;grid-template-columns:1fr!important;width:100%!important}
 .client-actions>.btn,.client-actions>form,.client-actions>form>.btn{width:100%!important}
}

/* 1.0.90 — paginação alinhada e botões mobile priorizando ícones */
.server-pager{
 display:grid!important;
 grid-template-columns:minmax(52px,1fr) auto minmax(52px,1fr)!important;
 align-items:center!important;
 column-gap:10px!important;
 row-gap:8px!important;
 width:100%;
}
.server-pager>span{
 grid-column:2!important;
 justify-self:center!important;
 align-self:center!important;
 margin:0!important;
 text-align:center!important;
 line-height:1.35!important;
}
.server-pager>a:first-child{
 grid-column:1!important;
 justify-self:end!important;
 align-self:center!important;
 margin:0!important;
}
.server-pager>a:last-child:not(:first-child){
 grid-column:3!important;
 justify-self:start!important;
 align-self:center!important;
 margin:0!important;
}
.table-pager{
 display:grid!important;
 grid-template-columns:repeat(2,44px)!important;
 align-items:center!important;
 justify-content:end!important;
 gap:8px!important;
}
.table-pager .btn{
 width:44px!important;
 min-width:44px!important;
 height:44px!important;
 min-height:44px!important;
 padding:0!important;
 margin:0!important;
 display:inline-flex!important;
 align-items:center!important;
 justify-content:center!important;
}

@media(max-width:900px){
 /* Botões que já possuem ícone preservam a ação e mostram apenas o símbolo no mobile. */
 .btn[data-icon-applied]{
  width:52px!important;
  min-width:52px!important;
  max-width:52px!important;
  height:52px!important;
  min-height:52px!important;
  padding:0!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  flex:0 0 52px!important;
 }
 .btn[data-icon-applied]>.btn-label{display:none!important}
 .btn[data-icon-applied]>.btn-icon{
  width:20px!important;
  height:20px!important;
  flex:0 0 20px!important;
  margin:0!important;
 }
 .btn[data-icon-applied]>.btn-icon svg{width:20px!important;height:20px!important}

 /* Grupos de ações deixam de reservar uma linha inteira para texto que não é exibido. */
 .form-actions,.modal-actions,.provider-test-actions,.banner-actions{
  display:flex!important;
  flex-wrap:wrap!important;
  align-items:center!important;
  justify-content:flex-end!important;
  gap:10px!important;
 }
 .form-actions>.btn[data-icon-applied],.modal-actions>.btn[data-icon-applied],
 .provider-test-actions>.btn[data-icon-applied],.banner-actions>.btn[data-icon-applied]{
  width:52px!important;
  min-width:52px!important;
  max-width:52px!important;
 }

 .server-pager{
  grid-template-columns:52px minmax(0,1fr) 52px!important;
  padding-left:12px!important;
  padding-right:12px!important;
 }
 .server-pager>a.btn[data-icon-applied]{width:52px!important;min-width:52px!important;max-width:52px!important}
 .server-pager>span{white-space:normal!important;font-size:12px!important}
}

@media(max-width:420px){
 .server-pager{grid-template-columns:48px minmax(0,1fr) 48px!important;column-gap:7px!important}
 .server-pager>a.btn[data-icon-applied]{width:48px!important;min-width:48px!important;max-width:48px!important;height:48px!important;min-height:48px!important;flex-basis:48px!important}
 .btn[data-icon-applied]{width:48px!important;min-width:48px!important;max-width:48px!important;height:48px!important;min-height:48px!important;flex-basis:48px!important}
}


/* v1.0.91 — ações mobile: priorizar botões lado a lado */
@media (max-width: 900px) {
  .actions,
  .form-actions,
  .filter-actions,
  .table-actions,
  .modal-actions,
  .banner-actions,
  .toolbar-actions,
  .page-actions,
  .btn-group {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-start;
    gap: 8px;
  }

  .actions > .btn,
  .form-actions > .btn,
  .filter-actions > .btn,
  .table-actions > .btn,
  .modal-actions > .btn,
  .banner-actions > .btn,
  .toolbar-actions > .btn,
  .page-actions > .btn,
  .btn-group > .btn {
    width: auto;
    flex: 0 0 auto;
    margin: 0;
  }

  /* Botões iconizados permanecem compactos no mobile. */
  .btn[data-mobile-icon-only="1"],
  .btn.mobile-icon-only,
  .btn:has(> .icon):has(> .btn-label) {
    width: 52px;
    min-width: 52px;
    max-width: 52px;
    padding-inline: 0;
    justify-content: center;
  }

  /* Só ocupa a linha inteira quando o componente é explicitamente de largura total. */
  .btn.btn-block,
  .btn.w-100,
  .actions > .btn.btn-block,
  .form-actions > .btn.btn-block {
    width: 100%;
    flex-basis: 100%;
  }
}


/* v1.0.92 — ações sempre em linha; sem empilhamento vertical */
.actions,
.table-actions,
td.actions,
td .actions,
[data-actions],
.action-buttons {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  align-items: center !important;
  justify-content: flex-start;
  gap: 8px;
  width: max-content;
  max-width: 100%;
}

.actions > .btn,
.table-actions > .btn,
td.actions > .btn,
td .actions > .btn,
[data-actions] > .btn,
.action-buttons > .btn {
  flex: 0 0 auto !important;
  width: auto !important;
  margin: 0 !important;
}

@media (max-width: 900px) {
  .actions,
  .table-actions,
  td.actions,
  td .actions,
  [data-actions],
  .action-buttons {
    flex-wrap: nowrap !important;
    overflow-x: auto;
    overflow-y: hidden;
    scrollbar-width: none;
  }

  .actions::-webkit-scrollbar,
  .table-actions::-webkit-scrollbar,
  td.actions::-webkit-scrollbar,
  td .actions::-webkit-scrollbar,
  [data-actions]::-webkit-scrollbar,
  .action-buttons::-webkit-scrollbar {
    width: 0;
    height: 0;
  }

  .actions > .btn,
  .table-actions > .btn,
  td.actions > .btn,
  td .actions > .btn,
  [data-actions] > .btn,
  .action-buttons > .btn {
    min-width: 52px;
    max-width: 52px;
    width: 52px !important;
    padding-inline: 0;
    justify-content: center;
  }
}


/* v1.0.93 — todos os grupos de botões de ação permanecem em linha */
.client-actions,
.form-actions,
.filter-actions,
.report-filter-actions,
.notification-actions,
.provider-test-actions,
.pix-actions,
.menu-order-actions,
.modal-actions,
.banner-actions,
.table-actions,
.actions,
.action-buttons,
[data-actions] {
  display:flex!important;
  flex-direction:row!important;
  flex-wrap:nowrap!important;
  align-items:center!important;
  justify-content:flex-start;
  gap:8px!important;
  max-width:100%;
}

/* Muitos botões de ação são envolvidos por forms; o form também precisa permanecer inline. */
.client-actions > form,
.form-actions > form,
.filter-actions > form,
.report-filter-actions > form,
.notification-actions > form,
.provider-test-actions > form,
.pix-actions > form,
.menu-order-actions > form,
.modal-actions > form,
.banner-actions > form,
.table-actions > form,
.actions > form,
.action-buttons > form,
[data-actions] > form {
  display:inline-flex!important;
  flex:0 0 auto!important;
  width:auto!important;
  margin:0!important;
}

/* O botão nunca força uma nova linha dentro de um grupo de ações. */
.client-actions .btn,
.form-actions .btn,
.filter-actions .btn,
.report-filter-actions .btn,
.notification-actions .btn,
.provider-test-actions .btn,
.pix-actions .btn,
.menu-order-actions .btn,
.modal-actions .btn,
.banner-actions .btn,
.table-actions .btn,
.actions .btn,
.action-buttons .btn,
[data-actions] .btn {
  flex:0 0 auto!important;
  margin:0!important;
}

@media (max-width:900px) {
  .client-actions,
  .form-actions,
  .filter-actions,
  .report-filter-actions,
  .notification-actions,
  .provider-test-actions,
  .pix-actions,
  .menu-order-actions,
  .modal-actions,
  .banner-actions,
  .table-actions,
  .actions,
  .action-buttons,
  [data-actions] {
    flex-wrap:nowrap!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
    overscroll-behavior-x:contain;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
  }

  .client-actions::-webkit-scrollbar,
  .form-actions::-webkit-scrollbar,
  .filter-actions::-webkit-scrollbar,
  .report-filter-actions::-webkit-scrollbar,
  .notification-actions::-webkit-scrollbar,
  .provider-test-actions::-webkit-scrollbar,
  .pix-actions::-webkit-scrollbar,
  .menu-order-actions::-webkit-scrollbar,
  .modal-actions::-webkit-scrollbar,
  .banner-actions::-webkit-scrollbar,
  .table-actions::-webkit-scrollbar,
  .actions::-webkit-scrollbar,
  .action-buttons::-webkit-scrollbar,
  [data-actions]::-webkit-scrollbar {
    width:0;
    height:0;
  }

  /* Em ações mobile, botões iconizados permanecem compactos e lado a lado. */
  .client-actions .btn[data-icon-applied],
  .table-actions .btn[data-icon-applied],
  .notification-actions .btn[data-icon-applied],
  .actions .btn[data-icon-applied],
  .action-buttons .btn[data-icon-applied],
  [data-actions] .btn[data-icon-applied] {
    width:52px!important;
    min-width:52px!important;
    max-width:52px!important;
    height:52px!important;
    min-height:52px!important;
    padding:0!important;
    justify-content:center!important;
  }
}


/* v1.0.94 — botões de filtros sempre em linha */
.filter-actions,
.filters-actions,
.table-filter-actions,
.table-filters-actions,
.report-filter-actions,
.search-actions,
.filter-bar-actions,
.filter-toolbar-actions,
.filters .actions,
.table-filter .actions,
.table-filters .actions,
.report-filter .actions,
.filter-bar .actions,
.filter-toolbar .actions {
  display:flex!important;
  flex-direction:row!important;
  flex-wrap:nowrap!important;
  align-items:center!important;
  justify-content:flex-start;
  gap:8px!important;
  width:auto!important;
  max-width:100%;
}

.filter-actions > *,
.filters-actions > *,
.table-filter-actions > *,
.table-filters-actions > *,
.report-filter-actions > *,
.search-actions > *,
.filter-bar-actions > *,
.filter-toolbar-actions > *,
.filters .actions > *,
.table-filter .actions > *,
.table-filters .actions > *,
.report-filter .actions > *,
.filter-bar .actions > *,
.filter-toolbar .actions > * {
  flex:0 0 auto!important;
  width:auto!important;
  margin:0!important;
}

.filter-actions form,
.filters-actions form,
.table-filter-actions form,
.table-filters-actions form,
.report-filter-actions form,
.search-actions form,
.filter-bar-actions form,
.filter-toolbar-actions form {
  display:inline-flex!important;
  flex:0 0 auto!important;
  width:auto!important;
  margin:0!important;
}

@media (max-width:900px) {
  .filter-actions,
  .filters-actions,
  .table-filter-actions,
  .table-filters-actions,
  .report-filter-actions,
  .search-actions,
  .filter-bar-actions,
  .filter-toolbar-actions,
  .filters .actions,
  .table-filter .actions,
  .table-filters .actions,
  .report-filter .actions,
  .filter-bar .actions,
  .filter-toolbar .actions {
    flex-wrap:nowrap!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
  }

  .filter-actions::-webkit-scrollbar,
  .filters-actions::-webkit-scrollbar,
  .table-filter-actions::-webkit-scrollbar,
  .table-filters-actions::-webkit-scrollbar,
  .report-filter-actions::-webkit-scrollbar,
  .search-actions::-webkit-scrollbar,
  .filter-bar-actions::-webkit-scrollbar,
  .filter-toolbar-actions::-webkit-scrollbar {
    width:0;
    height:0;
  }

  .filter-actions .btn,
  .filters-actions .btn,
  .table-filter-actions .btn,
  .table-filters-actions .btn,
  .report-filter-actions .btn,
  .search-actions .btn,
  .filter-bar-actions .btn,
  .filter-toolbar-actions .btn {
    flex:0 0 auto!important;
    width:52px!important;
    min-width:52px!important;
    max-width:52px!important;
    height:52px!important;
    min-height:52px!important;
    padding-inline:0!important;
    justify-content:center!important;
  }
}


/* v1.0.95 — ações reais da Central de conciliação em uma única linha */
.reconciliation-filters .reconciliation-filter-actions{
  flex:0 0 100%!important;
  width:100%!important;
  min-width:0!important;
  display:flex!important;
  flex-direction:row!important;
  flex-wrap:nowrap!important;
  align-items:center!important;
  justify-content:flex-start!important;
  gap:8px!important;
  overflow-x:auto!important;
  overflow-y:hidden!important;
  scrollbar-width:none;
  -webkit-overflow-scrolling:touch;
}
.reconciliation-filters .reconciliation-filter-actions::-webkit-scrollbar{width:0;height:0}
.reconciliation-filters .reconciliation-filter-actions>.btn,
.reconciliation-filters .reconciliation-filter-actions>.table-export-tools,
.reconciliation-filters .reconciliation-filter-actions>.table-export-tools>.btn{
  flex:0 0 auto!important;
  margin:0!important;
}
.reconciliation-filters .reconciliation-filter-actions>.table-export-tools{
  display:flex!important;
  flex-direction:row!important;
  flex-wrap:nowrap!important;
  align-items:center!important;
  gap:8px!important;
}
@media(max-width:900px){
  .reconciliation-filters .reconciliation-filter-actions>.btn,
  .reconciliation-filters .reconciliation-filter-actions>.table-export-tools>.btn{
    width:52px!important;
    min-width:52px!important;
    max-width:52px!important;
    height:52px!important;
    min-height:52px!important;
    padding:0!important;
    justify-content:center!important;
  }
}


/* v1.0.96 — ações dos filtros compactos no mesmo eixo */
.compact-filter-row > .compact-filter-actions{
  display:flex!important;
  flex-direction:row!important;
  flex-wrap:nowrap!important;
  align-items:center!important;
  justify-content:flex-start!important;
  gap:8px!important;
  width:auto!important;
  max-width:100%!important;
}
.compact-filter-actions > .btn,
.compact-filter-actions > .table-export-tools,
.compact-filter-actions > .table-export-tools > .btn{
  flex:0 0 auto!important;
  width:auto!important;
  margin:0!important;
}
.compact-filter-actions > .table-export-tools{
  display:flex!important;
  flex-direction:row!important;
  flex-wrap:nowrap!important;
  align-items:center!important;
  gap:8px!important;
  padding:0!important;
  border:0!important;
  background:transparent!important;
}
@media(max-width:900px){
  .compact-filter-row > .compact-filter-actions{
    grid-column:1/-1!important;
    width:100%!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
    scrollbar-width:none;
  }
  .compact-filter-row > .compact-filter-actions::-webkit-scrollbar{width:0;height:0}
  .compact-filter-actions > .table-export-tools{
    width:auto!important;
    margin:0!important;
  }
  .compact-filter-actions .btn{
    width:52px!important;
    min-width:52px!important;
    max-width:52px!important;
    height:52px!important;
    min-height:52px!important;
    padding:0!important;
    justify-content:center!important;
  }
}


/* v1.0.97 — Tipos de empresa: input e ação na mesma linha */
.plan-row.sector-row {
  grid-template-columns:minmax(0,1fr) auto!important;
  align-items:end!important;
}
.plan-row.sector-row > .field {min-width:0!important;}
.plan-row.sector-row > [data-sector-remove] {
  width:auto!important;
  min-width:96px!important;
  max-width:100%!important;
  height:52px!important;
  min-height:52px!important;
  padding:0 16px!important;
  margin:0!important;
  align-self:end!important;
  justify-content:center!important;
  white-space:nowrap!important;
}
@media(max-width:850px){
  .plan-row.sector-row {grid-template-columns:minmax(0,1fr) auto!important;}
}

/* v1.0.98 — tabelas sem overflow desnecessário, filtros no topo e paginação no rodapé */
.table-export-tools{position:relative!important;display:flex!important;flex-direction:row!important;flex-wrap:nowrap!important;align-items:center!important;gap:8px!important;width:auto!important;height:auto!important}
.table-export-menu{position:relative;display:inline-flex;flex:0 0 auto}
.table-export-options{position:absolute;z-index:4200;top:calc(100% + 6px);left:0;min-width:138px;padding:6px;background:#fff;border:1px solid var(--line);box-shadow:0 12px 30px rgba(0,0,0,.12)}
.table-export-options[hidden]{display:none!important}
.table-export-options button{display:block;width:100%;min-height:40px;padding:8px 12px;border:0;background:#fff;color:var(--ink);font:inherit;text-align:left;cursor:pointer}
.table-export-options button:hover,.table-export-options button:focus{background:color-mix(in srgb,var(--brand-primary) 7%,#fff);outline:none}

/* Ações dos filtros ficam imediatamente antes das linhas de títulos da tabela. */
.compact-filters,.report-filters,.audit-filters,.reconciliation-filters,.table-tools.standard-table-tools{margin-bottom:12px!important}
.table-card>.table-tools.standard-table-tools{border-bottom:1px solid var(--line)!important}

/* Contador à esquerda e navegação à direita, sempre abaixo da tabela. */
.server-pager,.table-pagination-footer{display:flex!important;flex-direction:row!important;align-items:center!important;justify-content:space-between!important;gap:12px!important;width:100%!important;padding:13px 16px!important;border-top:1px solid var(--line)!important;color:var(--muted)!important;font-size:12px!important;background:#fff}
.server-pager-count,.table-page-info{margin:0!important;text-align:left!important;white-space:nowrap!important}
.server-pager-nav,.table-pager{display:flex!important;flex-direction:row!important;align-items:center!important;justify-content:flex-end!important;gap:8px!important;margin-left:auto!important}
.server-pager-nav .btn,.table-pager .btn{flex:0 0 auto!important;margin:0!important}

/* Financeiro: quebrar conteúdo dentro da largura disponível em vez de criar scroll lateral. */
.finance-entries-table,.reconciliation-table{width:100%!important;min-width:0!important;table-layout:fixed!important}
.finance-entries-table th,.finance-entries-table td,.reconciliation-table th,.reconciliation-table td{white-space:normal!important;overflow-wrap:anywhere!important;word-break:normal!important;text-overflow:clip!important}
.finance-entries-table td code,.reconciliation-table td code{white-space:normal!important;overflow-wrap:anywhere!important;word-break:break-word!important}
.finance-entries-table .client-actions,.reconciliation-table .client-actions{min-width:0!important;max-width:100%!important}
.reconciliation-table-wrap{overflow-x:hidden!important;max-width:100%!important}
@media(min-width:901px){
  .finance-entries-table th:nth-child(1){width:18%}.finance-entries-table th:nth-child(2){width:15%}.finance-entries-table th:nth-child(3){width:11%}.finance-entries-table th:nth-child(4){width:11%}.finance-entries-table th:nth-child(5){width:11%}.finance-entries-table th:nth-child(6){width:17%}.finance-entries-table th:nth-child(7){width:17%}
  .reconciliation-table th:nth-child(1){width:19%}.reconciliation-table th:nth-child(2){width:18%}.reconciliation-table th:nth-child(3){width:16%}.reconciliation-table th:nth-child(4){width:17%}.reconciliation-table th:nth-child(5){width:18%}.reconciliation-table th:nth-child(6){width:12%}
}
@media(max-width:900px){
  .server-pager,.table-pagination-footer{flex-wrap:nowrap!important;padding:12px 0!important}
  .server-pager-count,.table-page-info{min-width:0!important;white-space:normal!important;line-height:1.35!important}
  .server-pager-nav,.table-pager{flex:0 0 auto!important}
  .table-export-options{position:fixed;left:auto;right:16px;top:auto;bottom:16px;min-width:160px}
  .finance-entries-table,.reconciliation-table{display:block!important;table-layout:auto!important}
  .reconciliation-table-wrap{overflow-x:visible!important}
}


/* v1.0.99 — especialização Dashboard / Financeiro / Relatórios */
.operational-alerts{margin-bottom:40px}
.operational-alerts>.page-title{margin-bottom:20px}
.operational-alert-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.operational-alert-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:5px 18px;align-items:center;border:1px solid var(--line);padding:20px;background:#fff}
.operational-alert-item>span{font-size:13px;letter-spacing:.075em;text-transform:uppercase;font-weight:700;color:var(--muted)}
.operational-alert-item>b{font:600 22px/1 var(--display);color:var(--brand-primary)}
.operational-alert-item>small{grid-column:1/-1;color:var(--muted);line-height:1.4}
.report-filter-summary .kpi{min-height:165px}
@media(max-width:900px){.operational-alert-list{grid-template-columns:1fr}}


/* v1.0.100 — blocos de tabela integrados, exportação e proporção responsiva */
.table-section{padding:0!important;overflow:visible!important;margin-bottom:28px}
.table-section-head{padding:28px 30px 18px;border-bottom:1px solid var(--line)}
.table-section-head .section-heading{margin:7px 0 4px}
.table-section-head p{margin:0;max-width:820px}
.table-section>.embedded-table-filter{margin:0!important;padding:18px 30px!important;border:0!important;border-bottom:1px solid var(--line)!important;background:#fff!important;box-shadow:none!important}
.table-section>.table{margin:0}
.table-section>.server-pager{margin:0}

/* Filtros da Auditoria: proporcionais e confinados ao bloco. */
.audit-table-section .audit-quick-filters{padding:18px 30px 0;margin:0;display:flex;flex-wrap:wrap;gap:8px;max-width:100%;overflow:hidden}
.audit-table-section .audit-filters{display:grid!important;grid-template-columns:minmax(220px,1.6fr) minmax(150px,.8fr) minmax(160px,.8fr) minmax(160px,.8fr) auto!important;gap:10px!important;align-items:end!important;width:100%!important;max-width:100%!important}
.audit-table-section .audit-filters>.field,.audit-table-section .audit-filters>.filter-actions{min-width:0!important;width:100%!important;margin:0!important}
.audit-table-section .audit-filters .filter-actions{display:flex!important;flex-wrap:nowrap!important;width:auto!important}

/* Tabelas das imagens: conteúdo deve caber no bloco sem extrapolar. */
.finance-entries-table,.report-entries-table,.audit-table,.reconciliation-table{max-width:100%!important;table-layout:fixed!important}
.finance-entries-table th,.finance-entries-table td,.report-entries-table th,.report-entries-table td,.audit-table th,.audit-table td,.reconciliation-table th,.reconciliation-table td{white-space:normal!important;overflow-wrap:anywhere!important;word-break:normal!important}
.finance-entries-table .client-actions{gap:6px!important;max-width:100%!important}
.finance-entries-table .client-actions .btn{font-size:12px!important;padding:10px 11px!important;min-width:0!important}
@media(min-width:901px){
 .finance-entries-table th:nth-child(1){width:16%!important}.finance-entries-table th:nth-child(2){width:13%!important}.finance-entries-table th:nth-child(3){width:10%!important}.finance-entries-table th:nth-child(4){width:10%!important}.finance-entries-table th:nth-child(5){width:10%!important}.finance-entries-table th:nth-child(6){width:14%!important}.finance-entries-table th:nth-child(7){width:27%!important}
 .report-entries-table th:nth-child(1){width:11%}.report-entries-table th:nth-child(2){width:18%}.report-entries-table th:nth-child(3){width:28%}.report-entries-table th:nth-child(4){width:17%}.report-entries-table th:nth-child(5){width:13%}.report-entries-table th:nth-child(6){width:13%}
 .audit-table th:nth-child(1){width:15%}.audit-table th:nth-child(2){width:17%}.audit-table th:nth-child(3){width:12%}.audit-table th:nth-child(4){width:17%}.audit-table th:nth-child(5){width:17%}.audit-table th:nth-child(6){width:22%}
}

.database-target-form{max-width:760px;margin-top:18px}
.database-table-clean-form{margin-top:18px}
.database-table-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:14px}
.database-table-option{display:flex;align-items:flex-start;gap:10px;border:1px solid var(--line);padding:14px;background:#fff;cursor:pointer;min-width:0}
.database-table-option input{margin-top:4px;accent-color:var(--brand-primary)}
.database-table-option span{min-width:0}.database-table-option b,.database-table-option small{display:block;overflow-wrap:anywhere}.database-table-option small{color:var(--muted);font-size:12px;margin-top:3px}

@media(max-width:1100px){
 .audit-table-section .audit-filters{grid-template-columns:repeat(2,minmax(0,1fr))!important}
 .audit-table-section .audit-filters .filter-actions{grid-column:1/-1!important}
 .database-table-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:900px){
 .table-section-head{padding:22px 18px 14px}
 .table-section>.embedded-table-filter{padding:14px 18px!important}
 .audit-table-section .audit-quick-filters{padding:14px 18px 0}
 .audit-table-section .audit-filters{grid-template-columns:1fr!important}
 .audit-table-section .audit-filters .filter-actions{grid-column:1!important;overflow-x:auto!important}
 .finance-entries-table,.report-entries-table,.audit-table,.reconciliation-table{table-layout:auto!important}
 .database-table-grid{grid-template-columns:1fr}
}


/* v1.0.101 — Financeiro e Conciliação confinados ao próprio bloco */
.finance-entries-table,
.reconciliation-table{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  table-layout:fixed!important;
}

.finance-entries-table th,
.finance-entries-table td,
.reconciliation-table th,
.reconciliation-table td{
  min-width:0!important;
  max-width:none!important;
  white-space:normal!important;
  overflow-wrap:anywhere!important;
  word-break:normal!important;
}

.finance-entries-table th:last-child,
.finance-entries-table td:last-child,
.reconciliation-table th:last-child,
.reconciliation-table td:last-child{
  width:auto!important;
  min-width:0!important;
  max-width:none!important;
}

/* Ações financeiras sempre compactas: evita que texto dos botões aumente a tabela. */
.finance-entries-table .client-actions,
.reconciliation-table .client-actions{
  display:flex!important;
  flex-direction:row!important;
  flex-wrap:nowrap!important;
  align-items:center!important;
  justify-content:flex-start!important;
  gap:5px!important;
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  overflow:visible!important;
}

.finance-entries-table .client-actions form,
.reconciliation-table .client-actions form{
  display:inline-flex!important;
  flex:0 0 34px!important;
  width:34px!important;
  min-width:34px!important;
  max-width:34px!important;
}

.finance-entries-table .client-actions .btn,
.reconciliation-table .client-actions .btn,
.reconciliation-table td:last-child>.btn{
  width:34px!important;
  min-width:34px!important;
  max-width:34px!important;
  height:34px!important;
  min-height:34px!important;
  padding:0!important;
  margin:0!important;
  gap:0!important;
  justify-content:center!important;
  overflow:hidden!important;
}

.finance-entries-table .client-actions .btn-label,
.reconciliation-table .client-actions .btn-label,
.reconciliation-table td:last-child>.btn .btn-label{
  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;
}

.finance-entries-table .btn-icon,
.reconciliation-table .btn-icon{
  margin:0!important;
  flex:0 0 auto!important;
}

.finance-entries-table .table-subline,
.reconciliation-table .table-subline,
.finance-entries-table .delivery-status,
.reconciliation-table .money-line{
  max-width:100%!important;
  white-space:normal!important;
  overflow-wrap:anywhere!important;
}

/* Distribuição de colunas baseada no conteúdo real. */
@media(min-width:901px){
  .finance-entries-table th:nth-child(1){width:18%!important}
  .finance-entries-table th:nth-child(2){width:14%!important}
  .finance-entries-table th:nth-child(3){width:10%!important}
  .finance-entries-table th:nth-child(4){width:11%!important}
  .finance-entries-table th:nth-child(5){width:11%!important}
  .finance-entries-table th:nth-child(6){width:18%!important}
  .finance-entries-table th:nth-child(7){width:18%!important}

  .reconciliation-table th:nth-child(1){width:20%!important}
  .reconciliation-table th:nth-child(2){width:18%!important}
  .reconciliation-table th:nth-child(3){width:16%!important}
  .reconciliation-table th:nth-child(4){width:17%!important}
  .reconciliation-table th:nth-child(5){width:20%!important}
  .reconciliation-table th:nth-child(6){width:9%!important}
}

@media(max-width:900px){
  .finance-entries-table,
  .reconciliation-table{
    display:block!important;
    width:100%!important;
    max-width:100%!important;
    table-layout:auto!important;
  }

  .finance-entries-table tbody,
  .reconciliation-table tbody,
  .finance-entries-table tr,
  .reconciliation-table tr,
  .finance-entries-table td,
  .reconciliation-table td{
    max-width:100%!important;
    min-width:0!important;
  }

  .finance-entries-table .client-actions,
  .reconciliation-table .client-actions{
    width:auto!important;
    max-width:100%!important;
    overflow-x:hidden!important;
  }
}


/* v1.0.103 — Central de conciliação com cinco colunas */
@media(min-width:901px){
  .reconciliation-table th:nth-child(1){width:23%!important}
  .reconciliation-table th:nth-child(2){width:21%!important}
  .reconciliation-table th:nth-child(3){width:18%!important}
  .reconciliation-table th:nth-child(4){width:27%!important}
  .reconciliation-table th:nth-child(5){width:11%!important}
}


/* v1.0.104 — correção definitiva de largura da Central de conciliação */
.reconciliation-card{
  overflow:hidden!important;
  max-width:100%!important;
}
.reconciliation-table-wrap{
  width:100%!important;
  max-width:100%!important;
  overflow:hidden!important;
}
.reconciliation-table{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  table-layout:fixed!important;
  font-size:13px!important;
}
.reconciliation-table th,
.reconciliation-table td{
  min-width:0!important;
  max-width:100%!important;
  padding:12px 10px!important;
  white-space:normal!important;
  overflow-wrap:anywhere!important;
  word-break:break-word!important;
  vertical-align:top!important;
}
.reconciliation-table code,
.reconciliation-table .table-subline,
.reconciliation-table .money-line,
.reconciliation-table .badge{
  max-width:100%!important;
  white-space:normal!important;
  overflow-wrap:anywhere!important;
}
.reconciliation-table .money-line{
  display:flex!important;
  flex-direction:column!important;
  gap:2px!important;
}
.reconciliation-table td:last-child,
.reconciliation-table th:last-child{
  width:56px!important;
  min-width:56px!important;
  max-width:56px!important;
}
.reconciliation-table td:last-child>.btn{
  width:34px!important;
  min-width:34px!important;
  max-width:34px!important;
  height:34px!important;
  min-height:34px!important;
  padding:0!important;
}
@media(min-width:901px){
  .reconciliation-table th:nth-child(1){width:24%!important}
  .reconciliation-table th:nth-child(2){width:22%!important}
  .reconciliation-table th:nth-child(3){width:18%!important}
  .reconciliation-table th:nth-child(4){width:auto!important}
  .reconciliation-table th:nth-child(5){width:56px!important}
}
@media(max-width:900px){
  .reconciliation-table{
    display:block!important;
    table-layout:auto!important;
    width:100%!important;
    max-width:100%!important;
  }
  .reconciliation-table tbody,
  .reconciliation-table tr,
  .reconciliation-table td{
    width:100%!important;
    max-width:100%!important;
  }
  .reconciliation-table td:last-child{
    width:100%!important;
    max-width:100%!important;
  }
}


/* v1.0.105 — conciliação no mesmo padrão/largura da tabela de mensalidades */
.reconciliation-card.table-section{width:100%!important;max-width:100%!important;padding:0!important;overflow:hidden!important}
.reconciliation-card .reconciliation-head{padding:28px 30px 18px!important;margin:0!important;border-bottom:1px solid var(--line)!important}
.reconciliation-card .embedded-table-filter{margin:0!important;padding:18px 30px!important;border:0!important;border-bottom:1px solid var(--line)!important;width:100%!important;max-width:100%!important}
.reconciliation-table-wrap{width:100%!important;max-width:100%!important;margin:0!important;padding:0!important;overflow:hidden!important}
.reconciliation-table{width:100%!important;max-width:100%!important;min-width:0!important;table-layout:fixed!important;margin:0!important;font-size:13px!important}
.reconciliation-table th,.reconciliation-table td{padding:13px 11px!important;min-width:0!important;max-width:none!important;white-space:normal!important;overflow-wrap:anywhere!important;word-break:break-word!important}
.reconciliation-table code,.reconciliation-table .table-subline,.reconciliation-table .money-line{max-width:100%!important;white-space:normal!important;overflow-wrap:anywhere!important}
.reconciliation-table .badge{display:inline-flex!important;max-width:100%!important;margin:0 4px 4px 0!important}
.reconciliation-table td:last-child,.reconciliation-table th:last-child{width:64px!important;min-width:64px!important;max-width:64px!important}
.reconciliation-table td:last-child>.btn{width:38px!important;min-width:38px!important;max-width:38px!important;height:38px!important;min-height:38px!important;padding:0!important;justify-content:center!important}
@media(min-width:901px){
 .reconciliation-table th:nth-child(1){width:25%!important}
 .reconciliation-table th:nth-child(2){width:23%!important}
 .reconciliation-table th:nth-child(3){width:19%!important}
 .reconciliation-table th:nth-child(4){width:auto!important}
 .reconciliation-table th:nth-child(5){width:64px!important}
}
.database-table-select-actions{display:flex;flex-direction:row;flex-wrap:nowrap;gap:8px;margin-top:14px;overflow-x:auto}
@media(max-width:900px){
 .reconciliation-card .reconciliation-head{padding:22px 18px 14px!important}
 .reconciliation-card .embedded-table-filter{padding:14px 18px!important}
 .reconciliation-table{display:block!important;table-layout:auto!important;width:100%!important;max-width:100%!important}
 .reconciliation-table tbody,.reconciliation-table tr,.reconciliation-table td{width:100%!important;max-width:100%!important}
 .reconciliation-table td:last-child{width:100%!important;max-width:100%!important}
}


/* v1.0.106 — proporção global de tabelas e controles
   Referência visual: formulário Adicionar cliente (52px / texto 15px). */
:root{--standard-control-height:52px!important}

/* Inputs, selects e botões passam a compartilhar exatamente a mesma altura e escala tipográfica. */
.page input:not([type="checkbox"]):not([type="radio"]):not([type="color"]),
.page select,
.system-modal input:not([type="checkbox"]):not([type="radio"]):not([type="color"]),
.system-modal select,
.compact-filter-row input:not([type="checkbox"]):not([type="radio"]),
.compact-filter-row select,
.personalized-table-tools input:not([type="checkbox"]):not([type="radio"]),
.personalized-table-tools select,
.report-filter-line input:not([type="checkbox"]):not([type="radio"]),
.report-filter-line select,
.audit-filters input:not([type="checkbox"]):not([type="radio"]),
.audit-filters select,
.table-tools input:not([type="checkbox"]):not([type="radio"]),
.table-tools select,
.btn{
  height:52px!important;
  min-height:52px!important;
  font-size:15px!important;
  line-height:1.25!important;
}
.btn{padding-left:16px!important;padding-right:16px!important}

/* Recupera a escala legível dos textos auxiliares que havia sido reduzida em versões anteriores. */
.field label{font-size:13px!important;line-height:1.35!important}
.field small,.field .help,.field .muted,
.table-sub,.table-subline,
.table small{
  font-size:13px!important;
  line-height:1.45!important;
}

/* Todas as tabelas usam uma única escala e distribuição proporcional.
   Nenhuma tabela ganha largura artificial ou fonte reduzida por regras especializadas antigas. */
.table,
table.table,
.table.responsive-table{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  table-layout:auto!important;
  font-size:14px!important;
}
.table th,
.table td,
.system-modal .table th,
.system-modal .table td,
.profile-dialog .table th,
.profile-dialog .table td,
.finance-entries-table th,
.finance-entries-table td,
.report-entries-table th,
.report-entries-table td,
.audit-table th,
.audit-table td,
.reconciliation-table th,
.reconciliation-table td{
  width:auto!important;
  min-width:0!important;
  max-width:none!important;
  padding:14px 16px!important;
  font-size:14px!important;
  line-height:1.45!important;
  vertical-align:middle!important;
  white-space:normal!important;
  overflow:visible!important;
  overflow-wrap:break-word!important;
  word-break:normal!important;
  text-overflow:clip!important;
}
.table th,
.system-modal .table th,
.profile-dialog .table th,
.finance-entries-table th,
.report-entries-table th,
.audit-table th,
.reconciliation-table th{
  font-size:13px!important;
  line-height:1.35!important;
  white-space:normal!important;
}

/* Ações permanecem compactas no conteúdo, mas com a mesma altura dos controles do sistema. */
.table td>.btn,
.table td form>.btn,
.table .client-actions .btn,
.reconciliation-table td:last-child>.btn{
  width:auto!important;
  min-width:52px!important;
  max-width:100%!important;
  height:52px!important;
  min-height:52px!important;
  padding:0 14px!important;
  font-size:15px!important;
}
.table .client-actions,
.table .actions{
  display:flex!important;
  flex-direction:row!important;
  flex-wrap:wrap!important;
  align-items:center!important;
  gap:8px!important;
}

/* A coluna de ações ocupa apenas o necessário; as demais dividem o espaço pelo conteúdo real. */
.action-table th:last-child,
.action-table td:last-child,
.finance-entries-table th:last-child,
.finance-entries-table td:last-child,
.reconciliation-table th:last-child,
.reconciliation-table td:last-child{
  width:1%!important;
  min-width:0!important;
  max-width:none!important;
  white-space:nowrap!important;
}

/* Tabelas continuam confinadas ao próprio bloco. Em telas estreitas, a estrutura responsiva existente é preservada. */
.table-card,
.table-section,
.reconciliation-card,
.reconciliation-table-wrap{
  max-width:100%!important;
}
@media(max-width:900px){
  .table,
  table.table,
  .table.responsive-table,
  .finance-entries-table,
  .report-entries-table,
  .audit-table,
  .reconciliation-table{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    table-layout:auto!important;
  }
  .table th,.table td,
  .finance-entries-table th,.finance-entries-table td,
  .report-entries-table th,.report-entries-table td,
  .audit-table th,.audit-table td,
  .reconciliation-table th,.reconciliation-table td{
    width:auto!important;
    max-width:100%!important;
    padding:14px 12px!important;
  }
  .action-table th:last-child,.action-table td:last-child,
  .finance-entries-table th:last-child,.finance-entries-table td:last-child,
  .reconciliation-table th:last-child,.reconciliation-table td:last-child{
    width:auto!important;
    white-space:normal!important;
  }
}
/* v1.0.110 — alinhamento de banners e dimensionamento de tabelas
   Ajuste exclusivamente visual. Mantém markup, rotas, queries e regras de negócio. */

/* Banner: conteúdo sempre ancorado à esquerda e ações à direita no desktop. */
.page-intro,
.page-intro.compact{
  position:relative!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:flex-start!important;
  justify-content:center!important;
  width:100%!important;
  text-align:left!important;
}

.page-intro > .eyebrow,
.page-intro > h1,
.page-intro > p{
  align-self:flex-start!important;
  text-align:left!important;
}

.page-intro .banner-actions{
  position:absolute!important;
  top:50%!important;
  right:34px!important;
  left:auto!important;
  transform:translateY(-50%)!important;
  display:flex!important;
  flex-direction:row!important;
  flex-wrap:nowrap!important;
  align-items:center!important;
  justify-content:flex-end!important;
  width:auto!important;
  max-width:44%!important;
  margin:0!important;
  gap:10px!important;
}

.page-intro .banner-actions > *{
  flex:0 0 auto!important;
  margin:0!important;
}

.page-intro .banner-actions .btn{
  width:auto!important;
  max-width:none!important;
  white-space:nowrap!important;
}

.page-intro:has(.banner-actions) > h1,
.page-intro:has(.banner-actions) > p{
  max-width:calc(56% - 24px)!important;
}

/* Tabelas: acompanham exatamente a largura útil do bloco/card. */
.table-card,
.table-section,
.reconciliation-card{
  box-sizing:border-box!important;
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
}

.table-card > table.table,
.table-section > table.table,
.table-card .responsive-table,
.table-section .responsive-table,
.reconciliation-table-wrap,
.reconciliation-table{
  box-sizing:border-box!important;
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  margin-left:0!important;
  margin-right:0!important;
}

.table-card > table.table,
.table-section > table.table,
.table.responsive-table,
.finance-entries-table,
.report-entries-table,
.audit-table,
.reconciliation-table{
  table-layout:auto!important;
}

.table-card > .responsive-table,
.table-section > .responsive-table,
.reconciliation-table-wrap{
  overflow-x:auto!important;
  overflow-y:hidden!important;
  overscroll-behavior-x:contain!important;
  -webkit-overflow-scrolling:touch!important;
}

/* Evita que conteúdo ou ações forcem a tabela além do bloco. */
.table th,
.table td{
  box-sizing:border-box!important;
  min-width:0!important;
}

.table td{
  overflow-wrap:break-word!important;
  word-break:normal!important;
}

.table .client-actions,
.table .actions,
.table-actions{
  max-width:100%!important;
}

/* Mantém ações compactas sem criar uma coluna maior que o necessário. */
.action-table th:last-child,
.action-table td:last-child,
.finance-entries-table th:last-child,
.finance-entries-table td:last-child,
.reconciliation-table th:last-child,
.reconciliation-table td:last-child{
  width:1%!important;
  white-space:nowrap!important;
}

/* Responsividade: texto e botões do banner continuam organizados sem sobreposição. */
@media(max-width:900px){
  .page-intro,
  .page-intro.compact{
    align-items:flex-start!important;
    justify-content:center!important;
    text-align:left!important;
  }

  .page-intro .banner-actions{
    position:static!important;
    top:auto!important;
    right:auto!important;
    left:auto!important;
    transform:none!important;
    width:100%!important;
    max-width:100%!important;
    margin-top:16px!important;
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:10px!important;
  }

  .page-intro .banner-actions .btn{
    width:100%!important;
    min-width:0!important;
    white-space:normal!important;
  }

  .page-intro:has(.banner-actions) > h1,
  .page-intro:has(.banner-actions) > p{
    max-width:100%!important;
  }

  .table-card,
  .table-section,
  .reconciliation-card,
  .reconciliation-table-wrap{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
  }

  .table-card > table.table,
  .table-section > table.table,
  .table.responsive-table,
  .finance-entries-table,
  .report-entries-table,
  .audit-table,
  .reconciliation-table{
    width:100%!important;
    max-width:100%!important;
  }
}

@media(max-width:580px){
  .page-intro .banner-actions{
    grid-template-columns:1fr!important;
  }
}
/* v1.0.111 — coerência tipográfica e respiro interno das tabelas
   Ajuste exclusivamente visual. Não altera markup, rotas, queries ou regras de negócio. */

:root{
  --ui-text-body:16px;
  --ui-text-content:15px;
  --ui-text-control:15px;
  --ui-text-button:14px;
  --ui-text-label:13px;
  --ui-text-table:14px;
  --ui-text-table-head:12px;
  --ui-text-small:13px;
  --ui-text-badge:12px;
  --ui-table-gutter:24px;
}

/* Escala tipográfica consistente para textos corridos e auxiliares. */
body{
  font-size:var(--ui-text-body)!important;
  line-height:1.55!important;
}

.page-intro p,
.page-title p,
.card p,
.form-card p,
.table-section-head p,
.section-head small,
.settings-section p,
.analytics-card p,
.payment-section-title p,
.notice,
.flash{
  font-size:var(--ui-text-content)!important;
  line-height:1.5!important;
}

.small,
.table-sub,
.help-text,
.field-help,
.muted.small{
  font-size:var(--ui-text-small)!important;
  line-height:1.45!important;
}

/* Labels e controles seguem uma escala única, sem competir visualmente com títulos. */
.field label,
.form-field label,
label.field-label,
.control-label{
  font-size:var(--ui-text-label)!important;
  line-height:1.35!important;
  font-weight:700!important;
}

input:not([type="checkbox"]):not([type="radio"]),
select,
textarea{
  font-size:var(--ui-text-control)!important;
  line-height:1.35!important;
}

/* Todos os botões textuais usam exatamente o mesmo tamanho de fonte.
   Inclui Exportar, Filtrar, Imprimir, Salvar e ações de tabelas. */
.btn,
button.btn,
a.btn,
input.btn,
.report-filter-actions .btn,
.table-export-tools .btn,
.table-tools .btn,
.client-actions .btn,
.notification-actions .btn,
.table td>.btn,
.table td form>.btn,
.reconciliation-table td:last-child>.btn,
.banner-actions .btn{
  font-size:var(--ui-text-button)!important;
  line-height:1.2!important;
  font-weight:700!important;
  letter-spacing:.055em!important;
}

/* Mantém a hierarquia dos títulos já validada, apenas harmonizando subtítulos de cards. */
.card h3,
.form-card h3,
.settings-section h3,
.analytics-card h3{
  font-size:22px!important;
  line-height:1.18!important;
  letter-spacing:-.55px!important;
}

/* Tabelas com escala de leitura coerente. */
.table,
table.table,
.finance-entries-table,
.report-entries-table,
.audit-table,
.reconciliation-table{
  font-size:var(--ui-text-table)!important;
  line-height:1.42!important;
}

.table th,
.finance-entries-table th,
.report-entries-table th,
.audit-table th,
.reconciliation-table th{
  font-size:var(--ui-text-table-head)!important;
  line-height:1.3!important;
  letter-spacing:.065em!important;
}

.table td,
.finance-entries-table td,
.report-entries-table td,
.audit-table td,
.reconciliation-table td{
  font-size:var(--ui-text-table)!important;
}

/* Badges e abas permanecem auxiliares, sem competir com botões. */
.badge{
  font-size:var(--ui-text-badge)!important;
  line-height:1.25!important;
}

.tabs a{
  font-size:var(--ui-text-button)!important;
}

/* -----------------------------------------------------------
   Respiro das tabelas dentro dos blocos/cards
   ----------------------------------------------------------- */

/* O card continua com 100% da área disponível.
   Somente a tabela/wrapper recebe recuo interno visual. */
.table-card,
.table-section,
.reconciliation-card{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  overflow:visible!important;
}

/* Tabela direta no card/bloco. */
.table-card > table.table,
.table-section > table.table{
  width:calc(100% - (var(--ui-table-gutter) * 2))!important;
  max-width:calc(100% - (var(--ui-table-gutter) * 2))!important;
  margin-left:var(--ui-table-gutter)!important;
  margin-right:var(--ui-table-gutter)!important;
  margin-top:12px!important;
  margin-bottom:24px!important;
}

/* Quando já existe wrapper responsivo, o recuo fica no wrapper,
   evitando margem duplicada na própria tabela. */
.table-card > .responsive-table:not(table),
.table-section > .responsive-table:not(table),
.reconciliation-table-wrap{
  box-sizing:border-box!important;
  width:calc(100% - (var(--ui-table-gutter) * 2))!important;
  max-width:calc(100% - (var(--ui-table-gutter) * 2))!important;
  min-width:0!important;
  margin-left:var(--ui-table-gutter)!important;
  margin-right:var(--ui-table-gutter)!important;
  margin-top:12px!important;
  margin-bottom:24px!important;
  overflow-x:auto!important;
  overflow-y:hidden!important;
  overscroll-behavior-x:contain!important;
  -webkit-overflow-scrolling:touch!important;
}

/* Tabelas internas ao wrapper usam toda a largura útil do wrapper,
   e não toda a largura do card. */
.table-card > .responsive-table:not(table) > table,
.table-section > .responsive-table:not(table) > table,
.reconciliation-table-wrap > table{
  width:100%!important;
  max-width:100%!important;
  margin:0!important;
}

/* Preserva cabeçalhos, filtros e paginação alinhados à estrutura do card. */
.table-card > .table-export-tools,
.table-section > .table-export-tools,
.table-card > .embedded-table-filter,
.table-section > .embedded-table-filter,
.table-card > .server-pager,
.table-section > .server-pager{
  box-sizing:border-box!important;
}

/* Tablet: reduz o recuo, mantendo a tabela claramente dentro do bloco. */
@media(max-width:900px){
  :root{
    --ui-table-gutter:16px;
  }

  body{
    font-size:15px!important;
  }

  .page-intro p,
  .page-title p,
  .card p,
  .form-card p,
  .table-section-head p,
  .notice,
  .flash{
    font-size:14px!important;
  }

  /* Mesmo no mobile todos os botões com texto mantêm a mesma escala. */
  .btn,
  button.btn,
  a.btn,
  input.btn,
  .report-filter-actions .btn,
  .table-export-tools .btn,
  .table-tools .btn,
  .client-actions .btn,
  .notification-actions .btn,
  .table td>.btn,
  .table td form>.btn,
  .banner-actions .btn{
    font-size:var(--ui-text-button)!important;
  }

  .table-card > table.table,
  .table-section > table.table,
  .table-card > .responsive-table:not(table),
  .table-section > .responsive-table:not(table),
  .reconciliation-table-wrap{
    width:calc(100% - (var(--ui-table-gutter) * 2))!important;
    max-width:calc(100% - (var(--ui-table-gutter) * 2))!important;
    margin-left:var(--ui-table-gutter)!important;
    margin-right:var(--ui-table-gutter)!important;
  }
}

/* Celular: respiro menor, sem encostar a tabela nas bordas do card. */
@media(max-width:580px){
  :root{
    --ui-table-gutter:10px;
  }

  .table-card > table.table,
  .table-section > table.table,
  .table-card > .responsive-table:not(table),
  .table-section > .responsive-table:not(table),
  .reconciliation-table-wrap{
    width:calc(100% - (var(--ui-table-gutter) * 2))!important;
    max-width:calc(100% - (var(--ui-table-gutter) * 2))!important;
    margin-left:var(--ui-table-gutter)!important;
    margin-right:var(--ui-table-gutter)!important;
  }

  .table th,
  .table td,
  .finance-entries-table th,
  .finance-entries-table td,
  .report-entries-table th,
  .report-entries-table td,
  .audit-table th,
  .audit-table td,
  .reconciliation-table th,
  .reconciliation-table td{
    padding-left:10px!important;
    padding-right:10px!important;
  }
}
/* v1.0.112 — ações sempre lado a lado e linhas de tabela contínuas
   Ajuste exclusivamente visual. Mantém markup, rotas, queries e regras de negócio. */

/* -----------------------------------------------------------
   Grupos de ações: nunca empilhar botões verticalmente.
   Quando faltar espaço, o próprio grupo permite rolagem horizontal.
   ----------------------------------------------------------- */
.banner-actions,
.client-actions,
.form-actions,
.filter-actions,
.filters-actions,
.table-filter-actions,
.table-filters-actions,
.report-filter-actions,
.search-actions,
.filter-bar-actions,
.filter-toolbar-actions,
.table-export-tools,
.table-tools,
.notification-actions,
.provider-test-actions,
.pix-actions,
.menu-order-actions,
.modal-actions,
.table-actions,
.actions,
.action-buttons,
[data-actions],
.reconciliation-filter-actions,
.compact-filter-actions{
  display:flex!important;
  flex-direction:row!important;
  flex-wrap:nowrap!important;
  align-items:center!important;
  gap:8px!important;
  min-width:0!important;
  max-width:100%!important;
}

/* Cada botão continua sendo uma unidade horizontal e não ocupa a linha inteira. */
.banner-actions > *,
.client-actions > *,
.form-actions > *,
.filter-actions > *,
.filters-actions > *,
.table-filter-actions > *,
.table-filters-actions > *,
.report-filter-actions > *,
.search-actions > *,
.filter-bar-actions > *,
.filter-toolbar-actions > *,
.table-export-tools > *,
.table-tools > *,
.notification-actions > *,
.provider-test-actions > *,
.pix-actions > *,
.menu-order-actions > *,
.modal-actions > *,
.table-actions > *,
.actions > *,
.action-buttons > *,
[data-actions] > *,
.reconciliation-filter-actions > *,
.compact-filter-actions > *{
  flex:0 0 auto!important;
  width:auto!important;
  max-width:none!important;
  margin-top:0!important;
  margin-bottom:0!important;
}

/* Botões textuais mantêm tamanho natural e ficam sempre lado a lado. */
.banner-actions .btn,
.client-actions .btn,
.form-actions .btn,
.filter-actions .btn,
.filters-actions .btn,
.table-filter-actions .btn,
.table-filters-actions .btn,
.report-filter-actions .btn,
.search-actions .btn,
.filter-bar-actions .btn,
.filter-toolbar-actions .btn,
.table-export-tools .btn,
.table-tools .btn,
.notification-actions .btn,
.provider-test-actions .btn,
.pix-actions .btn,
.menu-order-actions .btn,
.modal-actions .btn,
.table-actions .btn,
.actions .btn,
.action-buttons .btn,
[data-actions] .btn,
.reconciliation-filter-actions .btn,
.compact-filter-actions .btn{
  flex:0 0 auto!important;
  width:auto!important;
  min-width:max-content!important;
  max-width:none!important;
  white-space:nowrap!important;
}

/* Banner: preserva ações à direita e horizontalmente em desktop. */
.page-intro .banner-actions{
  display:flex!important;
  flex-direction:row!important;
  flex-wrap:nowrap!important;
  align-items:center!important;
  justify-content:flex-end!important;
  width:auto!important;
  max-width:46%!important;
  overflow-x:auto!important;
  overflow-y:hidden!important;
  scrollbar-width:thin;
}

/* -----------------------------------------------------------
   Tabelas: eliminar espaçamento visual entre registros.
   ----------------------------------------------------------- */
.table,
table.table,
.finance-entries-table,
.report-entries-table,
.audit-table,
.reconciliation-table{
  border-collapse:collapse!important;
  border-spacing:0!important;
}

/* Nenhuma linha recebe margem, gap ou separação externa. */
.table thead,
.table tbody,
.table tfoot,
.table tr,
.finance-entries-table thead,
.finance-entries-table tbody,
.finance-entries-table tfoot,
.finance-entries-table tr,
.report-entries-table thead,
.report-entries-table tbody,
.report-entries-table tfoot,
.report-entries-table tr,
.audit-table thead,
.audit-table tbody,
.audit-table tfoot,
.audit-table tr,
.reconciliation-table thead,
.reconciliation-table tbody,
.reconciliation-table tfoot,
.reconciliation-table tr{
  margin:0!important;
  padding:0!important;
  border-spacing:0!important;
  row-gap:0!important;
}

/* Células ficam contínuas verticalmente; separação apenas pela borda existente. */
.table th,
.table td,
.finance-entries-table th,
.finance-entries-table td,
.report-entries-table th,
.report-entries-table td,
.audit-table th,
.audit-table td,
.reconciliation-table th,
.reconciliation-table td{
  margin:0!important;
}

/* Neutraliza regras responsivas antigas que transformavam linhas em blocos
   com aparência de cartões separados e criavam "linhas vazias". */
@media(max-width:900px){
  .banner-actions,
  .client-actions,
  .form-actions,
  .filter-actions,
  .filters-actions,
  .table-filter-actions,
  .table-filters-actions,
  .report-filter-actions,
  .search-actions,
  .filter-bar-actions,
  .filter-toolbar-actions,
  .table-export-tools,
  .table-tools,
  .notification-actions,
  .provider-test-actions,
  .pix-actions,
  .menu-order-actions,
  .modal-actions,
  .table-actions,
  .actions,
  .action-buttons,
  [data-actions],
  .reconciliation-filter-actions,
  .compact-filter-actions{
    display:flex!important;
    flex-direction:row!important;
    flex-wrap:nowrap!important;
    align-items:center!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
    -webkit-overflow-scrolling:touch!important;
    scrollbar-width:thin;
  }

  .page-intro .banner-actions{
    position:static!important;
    transform:none!important;
    display:flex!important;
    grid-template-columns:none!important;
    flex-direction:row!important;
    flex-wrap:nowrap!important;
    justify-content:flex-start!important;
    width:100%!important;
    max-width:100%!important;
    margin-top:16px!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
  }

  .page-intro .banner-actions > *,
  .page-intro .banner-actions .btn{
    flex:0 0 auto!important;
    width:auto!important;
    min-width:max-content!important;
    max-width:none!important;
    white-space:nowrap!important;
  }
}

/* Mesmo em celulares estreitos os botões continuam lado a lado.
   Não há conversão para uma coluna. */
@media(max-width:580px){
  .page-intro .banner-actions{
    display:flex!important;
    grid-template-columns:none!important;
    flex-direction:row!important;
    flex-wrap:nowrap!important;
  }

  .page-intro .banner-actions .btn{
    width:auto!important;
    min-width:max-content!important;
    max-width:none!important;
    white-space:nowrap!important;
  }
}
/* v1.0.113 — ações horizontais, tabelas responsivas e configuração consistente
   Alteração exclusivamente visual. Não altera HTML, PHP, JS, rotas, queries ou banco. */

:root{
  --ui-table-inline-space:24px;
  --ui-table-cell-x:12px;
  --ui-table-cell-y:12px;
}

/* ==========================================================
   1. AÇÕES DA PÁGINA — SEM EMPILHAMENTO VERTICAL
   ========================================================== */

/* Sobrescreve regras legadas de grid/1 coluna. */
.page .banner-actions,
.page .client-actions,
.page .form-actions,
.page .filter-actions,
.page .filters-actions,
.page .table-filter-actions,
.page .table-filters-actions,
.page .report-filter-actions,
.page .search-actions,
.page .filter-bar-actions,
.page .filter-toolbar-actions,
.page .table-export-tools,
.page .table-tools,
.page .notification-actions,
.page .provider-test-actions,
.page .pix-actions,
.page .menu-order-actions,
.page .table-actions,
.page .action-buttons,
.page .reconciliation-filter-actions,
.page .compact-filter-actions,
.system-modal .modal-actions{
  display:flex!important;
  grid-template-columns:none!important;
  flex-direction:row!important;
  flex-wrap:nowrap!important;
  align-items:center!important;
  gap:8px!important;
  width:auto!important;
  min-width:0!important;
  max-width:100%!important;
}

/* Forms que ficam dentro de grupos de ação também são unidades horizontais. */
.page .banner-actions > form,
.page .client-actions > form,
.page .form-actions > form,
.page .filter-actions > form,
.page .filters-actions > form,
.page .table-filter-actions > form,
.page .table-filters-actions > form,
.page .report-filter-actions > form,
.page .search-actions > form,
.page .filter-bar-actions > form,
.page .filter-toolbar-actions > form,
.page .table-export-tools > form,
.page .table-tools > form,
.page .notification-actions > form,
.page .provider-test-actions > form,
.page .pix-actions > form,
.page .menu-order-actions > form,
.page .table-actions > form,
.page .action-buttons > form,
.page .reconciliation-filter-actions > form,
.page .compact-filter-actions > form,
.system-modal .modal-actions > form{
  display:inline-flex!important;
  flex:0 0 auto!important;
  width:auto!important;
  min-width:0!important;
  max-width:none!important;
  margin:0!important;
}

/* Botões nunca viram blocos de largura total dentro das áreas de ação. */
.page .banner-actions > .btn,
.page .banner-actions > form > .btn,
.page .client-actions > .btn,
.page .client-actions > form > .btn,
.page .form-actions > .btn,
.page .form-actions > form > .btn,
.page .filter-actions > .btn,
.page .filter-actions > form > .btn,
.page .filters-actions > .btn,
.page .filters-actions > form > .btn,
.page .table-filter-actions > .btn,
.page .table-filter-actions > form > .btn,
.page .table-filters-actions > .btn,
.page .table-filters-actions > form > .btn,
.page .report-filter-actions > .btn,
.page .report-filter-actions > form > .btn,
.page .search-actions > .btn,
.page .search-actions > form > .btn,
.page .filter-bar-actions > .btn,
.page .filter-bar-actions > form > .btn,
.page .filter-toolbar-actions > .btn,
.page .filter-toolbar-actions > form > .btn,
.page .table-export-tools > .btn,
.page .table-export-tools > form > .btn,
.page .table-tools > .btn,
.page .table-tools > form > .btn,
.page .notification-actions > .btn,
.page .notification-actions > form > .btn,
.page .provider-test-actions > .btn,
.page .provider-test-actions > form > .btn,
.page .pix-actions > .btn,
.page .pix-actions > form > .btn,
.page .menu-order-actions > .btn,
.page .menu-order-actions > form > .btn,
.page .table-actions > .btn,
.page .table-actions > form > .btn,
.page .action-buttons > .btn,
.page .action-buttons > form > .btn,
.page .reconciliation-filter-actions > .btn,
.page .reconciliation-filter-actions > form > .btn,
.page .compact-filter-actions > .btn,
.page .compact-filter-actions > form > .btn,
.system-modal .modal-actions > .btn,
.system-modal .modal-actions > form > .btn{
  display:inline-flex!important;
  flex:0 0 auto!important;
  width:auto!important;
  min-width:max-content!important;
  max-width:none!important;
  margin:0!important;
  white-space:nowrap!important;
}

/* Botões diretamente sequenciais também deixam de receber margem vertical legada. */
.page form > .btn + .btn,
.page .card > .btn + .btn,
.page .settings-section > .btn + .btn,
.page .plan-row > .btn + .btn{
  margin-top:0!important;
  margin-left:8px!important;
}

/* ==========================================================
   2. TODAS AS TABELAS — RESPONSIVAS DENTRO DOS BLOCOS
   ========================================================== */

/* Mantém semântica real de tabela em todos os breakpoints. */
.page table,
.page .table,
.page table.table,
.page .finance-entries-table,
.page .report-entries-table,
.page .audit-table,
.page .reconciliation-table{
  display:table!important;
  box-sizing:border-box!important;
  width:calc(100% - (var(--ui-table-inline-space) * 2))!important;
  max-width:calc(100% - (var(--ui-table-inline-space) * 2))!important;
  min-width:0!important;
  margin-left:var(--ui-table-inline-space)!important;
  margin-right:var(--ui-table-inline-space)!important;
  table-layout:fixed!important;
  border-collapse:collapse!important;
  border-spacing:0!important;
}

/* Quando a tabela já está dentro de um wrapper com respiro, não duplica margem. */
.page .responsive-table:not(table) > table,
.page .reconciliation-table-wrap > table,
.page .settings-details-body > .responsive-table:not(table) > table{
  width:100%!important;
  max-width:100%!important;
  margin-left:0!important;
  margin-right:0!important;
}

.page table thead,
.page .table thead,
.page .finance-entries-table thead,
.page .report-entries-table thead,
.page .audit-table thead,
.page .reconciliation-table thead{
  display:table-header-group!important;
}

.page table tbody,
.page .table tbody,
.page .finance-entries-table tbody,
.page .report-entries-table tbody,
.page .audit-table tbody,
.page .reconciliation-table tbody{
  display:table-row-group!important;
}

.page table tfoot,
.page .table tfoot,
.page .finance-entries-table tfoot,
.page .report-entries-table tfoot,
.page .audit-table tfoot,
.page .reconciliation-table tfoot{
  display:table-footer-group!important;
}

.page table tr,
.page .table tr,
.page .finance-entries-table tr,
.page .report-entries-table tr,
.page .audit-table tr,
.page .reconciliation-table tr{
  display:table-row!important;
  width:auto!important;
  max-width:none!important;
  margin:0!important;
  padding:0!important;
}

.page table th,
.page table td,
.page .table th,
.page .table td,
.page .finance-entries-table th,
.page .finance-entries-table td,
.page .report-entries-table th,
.page .report-entries-table td,
.page .audit-table th,
.page .audit-table td,
.page .reconciliation-table th,
.page .reconciliation-table td{
  display:table-cell!important;
  box-sizing:border-box!important;
  min-width:0!important;
  max-width:none!important;
  padding:var(--ui-table-cell-y) var(--ui-table-cell-x)!important;
  white-space:normal!important;
  overflow:visible!important;
  text-overflow:clip!important;
  overflow-wrap:anywhere!important;
  word-break:normal!important;
  vertical-align:middle!important;
}

/* Conteúdos comuns de célula nunca forçam a largura da coluna. */
.page table td a,
.page table td code,
.page table td span,
.page table td strong,
.page table td small,
.page .table td a,
.page .table td code,
.page .table td span,
.page .table td strong,
.page .table td small,
.page .reconciliation-table .table-subline,
.page .reconciliation-table .money-line{
  max-width:100%!important;
  overflow-wrap:anywhere!important;
  word-break:break-word!important;
}

/* Ações dentro de tabelas permanecem horizontais e compactas. */
.page table td .client-actions,
.page .table td .client-actions,
.page .reconciliation-table td .client-actions{
  display:flex!important;
  flex-direction:row!important;
  flex-wrap:nowrap!important;
  align-items:center!important;
  gap:6px!important;
  width:auto!important;
  min-width:0!important;
  max-width:100%!important;
  overflow-x:auto!important;
  overflow-y:hidden!important;
}

.page table td .client-actions > form,
.page .table td .client-actions > form,
.page .reconciliation-table td .client-actions > form{
  display:inline-flex!important;
  flex:0 0 auto!important;
  width:auto!important;
  margin:0!important;
}

.page table td .client-actions > .btn,
.page table td .client-actions > form > .btn,
.page .table td .client-actions > .btn,
.page .table td .client-actions > form > .btn,
.page .reconciliation-table td .client-actions > .btn,
.page .reconciliation-table td .client-actions > form > .btn{
  flex:0 0 auto!important;
  width:auto!important;
  min-width:max-content!important;
  max-width:none!important;
  margin:0!important;
}

/* Wrappers nunca ultrapassam os cards. */
.page .responsive-table:not(table),
.page .reconciliation-table-wrap{
  box-sizing:border-box!important;
  width:calc(100% - (var(--ui-table-inline-space) * 2))!important;
  max-width:calc(100% - (var(--ui-table-inline-space) * 2))!important;
  min-width:0!important;
  margin-left:var(--ui-table-inline-space)!important;
  margin-right:var(--ui-table-inline-space)!important;
  overflow-x:hidden!important;
  overflow-y:visible!important;
}

/* ==========================================================
   3. CONCILIAÇÃO — SEM LINHA ENTRE REGISTROS
   ========================================================== */

.page .reconciliation-table tbody tr,
.page .reconciliation-table tbody td{
  border-top:0!important;
  border-bottom:0!important;
  box-shadow:none!important;
  outline:0!important;
}

.page .reconciliation-table tbody tr + tr td{
  border-top:0!important;
}

/* Preserva somente a leitura do cabeçalho. */
.page .reconciliation-table thead th{
  border-top:0!important;
  border-bottom:1px solid var(--line)!important;
}

/* Linha técnica/modal continua sem ocupar espaço visual. */
.page .reconciliation-table .reconciliation-modal-row,
.page .reconciliation-table tr.reconciliation-modal-row{
  height:0!important;
  min-height:0!important;
  margin:0!important;
  padding:0!important;
}

.page .reconciliation-table .reconciliation-modal-row td,
.page .reconciliation-table tr.reconciliation-modal-row td{
  height:0!important;
  min-height:0!important;
  padding:0!important;
  border:0!important;
}

/* ==========================================================
   4. CONFIGURAÇÕES — ESPAÇAMENTO E RESPONSIVIDADE UNIFORMES
   ========================================================== */

.page .settings-section,
.page .settings-details{
  box-sizing:border-box!important;
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
}

.page .settings-details{
  overflow:hidden!important;
}

.page .settings-details > summary{
  box-sizing:border-box!important;
  width:100%!important;
  min-height:62px!important;
  padding:16px 20px!important;
  gap:14px!important;
  align-items:center!important;
}

.page .settings-details-body{
  box-sizing:border-box!important;
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  padding:20px!important;
}

.page .settings-details-body > table,
.page .settings-details-body > .table{
  width:100%!important;
  max-width:100%!important;
  margin-left:0!important;
  margin-right:0!important;
}

.page .settings-details-body .form-grid,
.page .settings-section .form-grid{
  width:100%!important;
  min-width:0!important;
  gap:18px!important;
}

.page .settings-details-body .field,
.page .settings-section .field{
  min-width:0!important;
}

/* ==========================================================
   5. TABLET / MOBILE
   ========================================================== */

@media(max-width:900px){
  :root{
    --ui-table-inline-space:16px;
    --ui-table-cell-x:9px;
    --ui-table-cell-y:10px;
  }

  /* Áreas de ação continuam horizontais; se necessário, rolam lateralmente. */
  .page .banner-actions,
  .page .client-actions,
  .page .form-actions,
  .page .filter-actions,
  .page .filters-actions,
  .page .table-filter-actions,
  .page .table-filters-actions,
  .page .report-filter-actions,
  .page .search-actions,
  .page .filter-bar-actions,
  .page .filter-toolbar-actions,
  .page .table-export-tools,
  .page .table-tools,
  .page .notification-actions,
  .page .provider-test-actions,
  .page .pix-actions,
  .page .menu-order-actions,
  .page .table-actions,
  .page .action-buttons,
  .page .reconciliation-filter-actions,
  .page .compact-filter-actions,
  .system-modal .modal-actions{
    display:flex!important;
    grid-template-columns:none!important;
    flex-direction:row!important;
    flex-wrap:nowrap!important;
    width:100%!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
    -webkit-overflow-scrolling:touch!important;
    scrollbar-width:thin;
  }

  .page .banner-actions > .btn,
  .page .banner-actions > form > .btn,
  .page .client-actions > .btn,
  .page .client-actions > form > .btn,
  .page .form-actions > .btn,
  .page .form-actions > form > .btn,
  .page .filter-actions > .btn,
  .page .filter-actions > form > .btn,
  .page .report-filter-actions > .btn,
  .page .report-filter-actions > form > .btn,
  .page .table-export-tools > .btn,
  .page .table-export-tools > form > .btn,
  .system-modal .modal-actions > .btn,
  .system-modal .modal-actions > form > .btn{
    width:auto!important;
    min-width:max-content!important;
    max-width:none!important;
  }

  /* Nenhuma tabela vira cards/linhas empilhadas no tablet/mobile. */
  .page table,
  .page .table,
  .page .finance-entries-table,
  .page .report-entries-table,
  .page .audit-table,
  .page .reconciliation-table{
    display:table!important;
    table-layout:fixed!important;
  }

  .page table tr,
  .page .table tr,
  .page .finance-entries-table tr,
  .page .report-entries-table tr,
  .page .audit-table tr,
  .page .reconciliation-table tr{
    display:table-row!important;
  }

  .page table th,
  .page table td,
  .page .table th,
  .page .table td,
  .page .finance-entries-table th,
  .page .finance-entries-table td,
  .page .report-entries-table th,
  .page .report-entries-table td,
  .page .audit-table th,
  .page .audit-table td,
  .page .reconciliation-table th,
  .page .reconciliation-table td{
    display:table-cell!important;
    width:auto!important;
    min-width:0!important;
    max-width:none!important;
    line-height:1.45!important;
  }

  .page .reconciliation-table th:last-child,
  .page .reconciliation-table td:last-child{
    width:64px!important;
    min-width:64px!important;
    max-width:64px!important;
  }

  .page .settings-details > summary{
    padding:14px 16px!important;
  }

  .page .settings-details-body{
    padding:16px!important;
  }
}

@media(max-width:580px){
  :root{
    --ui-table-inline-space:10px;
    --ui-table-cell-x:6px;
    --ui-table-cell-y:8px;
  }

  /* Mantém as ações sempre em uma única linha. */
  .page .banner-actions,
  .page .client-actions,
  .page .form-actions,
  .page .filter-actions,
  .page .filters-actions,
  .page .table-filter-actions,
  .page .table-filters-actions,
  .page .report-filter-actions,
  .page .search-actions,
  .page .filter-bar-actions,
  .page .filter-toolbar-actions,
  .page .table-export-tools,
  .page .table-tools,
  .page .notification-actions,
  .page .provider-test-actions,
  .page .pix-actions,
  .page .menu-order-actions,
  .page .table-actions,
  .page .action-buttons,
  .page .reconciliation-filter-actions,
  .page .compact-filter-actions,
  .system-modal .modal-actions{
    flex-wrap:nowrap!important;
    grid-template-columns:none!important;
  }


  .page .settings-details > summary{
    min-height:56px!important;
    padding:12px 14px!important;
  }

  .page .settings-details-body{
    padding:14px!important;
  }
}
/* v1.0.114 — selects de filtro, valores horizontais e tabelas sem colunas ocultas
   Ajuste visual/estrutural de filtros. Mantém parâmetros, queries e regras de negócio. */

:root{
  --ui-table-min-width:760px;
}

/* Filtros multiopção convertidos para select. */
.reconciliation-filters{
  display:flex!important;
  flex-direction:row!important;
  align-items:flex-end!important;
  gap:16px!important;
  flex-wrap:wrap!important;
}

.reconciliation-filters .table-filter-search{
  flex:1 1 320px!important;
  min-width:220px!important;
}

.reconciliation-status-filter{
  flex:0 1 220px!important;
  min-width:180px!important;
  margin:0!important;
}

.reconciliation-status-filter select{
  width:100%!important;
}

.audit-filters{
  align-items:end!important;
}

/* Valores da conciliação na mesma linha:
   Bruto R$ ... | Taxas - R$ ... | Líquido R$ ... */
.reconciliation-table td:nth-child(3){
  white-space:normal!important;
}

.reconciliation-table .money-line{
  display:inline-flex!important;
  flex-direction:row!important;
  align-items:baseline!important;
  gap:5px!important;
  width:auto!important;
  min-width:0!important;
  margin:0 14px 0 0!important;
  padding:0!important;
  white-space:nowrap!important;
  vertical-align:baseline!important;
}

.reconciliation-table .money-line:last-child{
  margin-right:0!important;
}

.reconciliation-table .money-line small,
.reconciliation-table .money-line b{
  display:inline!important;
  width:auto!important;
  margin:0!important;
  padding:0!important;
  white-space:nowrap!important;
}

/* ==========================================================
   Todas as tabelas: nenhuma coluna é escondida.
   Desktop: ocupa o wrapper.
   Tablet/mobile: mantém todas as colunas e permite rolagem horizontal.
   ========================================================== */

.page .responsive-table:not(table),
.page .reconciliation-table-wrap{
  box-sizing:border-box!important;
  width:calc(100% - (var(--ui-table-inline-space) * 2))!important;
  max-width:calc(100% - (var(--ui-table-inline-space) * 2))!important;
  min-width:0!important;
  margin-left:var(--ui-table-inline-space)!important;
  margin-right:var(--ui-table-inline-space)!important;
  overflow-x:auto!important;
  overflow-y:visible!important;
  overscroll-behavior-x:contain!important;
  -webkit-overflow-scrolling:touch!important;
}

/* Tabelas diretas também permanecem acessíveis e sem clipping. */
.page table,
.page .table,
.page table.table,
.page .finance-entries-table,
.page .report-entries-table,
.page .audit-table,
.page .reconciliation-table{
  display:table!important;
  box-sizing:border-box!important;
  table-layout:auto!important;
  border-collapse:collapse!important;
  border-spacing:0!important;
  overflow:visible!important;
}

/* Tabela dentro de wrapper: usa no mínimo toda a largura útil e pode crescer
   conforme o conteúdo, sem eliminar qualquer coluna. */
.page .responsive-table:not(table) > table,
.page .reconciliation-table-wrap > table{
  width:100%!important;
  max-width:none!important;
  min-width:var(--ui-table-min-width)!important;
  margin:0!important;
  table-layout:auto!important;
}

/* Tabela que também é o próprio elemento .responsive-table. */
.page table.responsive-table{
  width:calc(100% - (var(--ui-table-inline-space) * 2))!important;
  max-width:none!important;
  min-width:var(--ui-table-min-width)!important;
  margin-left:var(--ui-table-inline-space)!important;
  margin-right:var(--ui-table-inline-space)!important;
  table-layout:auto!important;
}

/* Tabelas mais densas precisam de largura mínima própria para preservar colunas. */
.page .finance-entries-table{
  min-width:900px!important;
}

.page .audit-table{
  min-width:980px!important;
}

.page .reconciliation-table{
  min-width:900px!important;
}

.page table th,
.page table td,
.page .table th,
.page .table td,
.page .finance-entries-table th,
.page .finance-entries-table td,
.page .report-entries-table th,
.page .report-entries-table td,
.page .audit-table th,
.page .audit-table td,
.page .reconciliation-table th,
.page .reconciliation-table td{
  display:table-cell!important;
  visibility:visible!important;
  opacity:1!important;
  min-width:0!important;
  max-width:none!important;
  overflow:visible!important;
  text-overflow:clip!important;
  white-space:normal!important;
  overflow-wrap:break-word!important;
  word-break:normal!important;
}

/* Campos curtos não quebram de forma ruim. */
.page table th,
.page .table th,
.page .badge,
.page .audit-date,
.page .reconciliation-table td:last-child{
  white-space:nowrap!important;
}

/* Coluna de ações nunca some nem é cortada. */
.page table th:last-child,
.page table td:last-child,
.page .table th:last-child,
.page .table td:last-child{
  visibility:visible!important;
  opacity:1!important;
}

/* Conciliação: remove qualquer separador/linha vazia entre registros de dados. */
.page .reconciliation-table{
  border-collapse:collapse!important;
  border-spacing:0!important;
}

.page .reconciliation-table tbody > tr:not(.reconciliation-modal-row){
  margin:0!important;
  padding:0!important;
  border:0!important;
  box-shadow:none!important;
}

.page .reconciliation-table tbody > tr:not(.reconciliation-modal-row) > td{
  margin:0!important;
  border-top:0!important;
  border-bottom:0!important;
  box-shadow:none!important;
}

.page .reconciliation-table .reconciliation-modal-row,
.page .reconciliation-table .reconciliation-modal-row > td{
  height:0!important;
  min-height:0!important;
  max-height:0!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  line-height:0!important;
}

/* Tablet/mobile: mantém todas as colunas; reduz apenas densidade visual. */
@media(max-width:900px){
  :root{
    --ui-table-min-width:760px;
  }

  .page table.responsive-table,
  .page .responsive-table:not(table) > table,
  .page .reconciliation-table-wrap > table{
    max-width:none!important;
  }

  .page .finance-entries-table{
    min-width:880px!important;
  }

  .page .audit-table{
    min-width:940px!important;
  }

  .page .reconciliation-table{
    min-width:860px!important;
  }

  .reconciliation-table .money-line{
    margin-right:10px!important;
  }
}

@media(max-width:580px){
  :root{
    --ui-table-min-width:720px;
  }

  .reconciliation-filters{
    align-items:stretch!important;
  }

  .reconciliation-filters .table-filter-search,
  .reconciliation-status-filter{
    flex:1 1 100%!important;
    width:100%!important;
    min-width:0!important;
  }

  .page .finance-entries-table{
    min-width:840px!important;
  }

  .page .audit-table{
    min-width:900px!important;
  }

  .page .reconciliation-table{
    min-width:820px!important;
  }

  .reconciliation-table .money-line{
    margin-right:8px!important;
  }
}


/* v1.0.117 — autenticação alinhada à direita e reforço responsivo sem regressão */
.login-actions{
  display:flex;
  justify-content:flex-end;
  align-items:center;
  gap:10px;
  width:100%;
  margin-top:22px;
}
.login-box .login-actions .btn,
.login-box form .login-actions .btn{
  width:auto!important;
  max-width:100%;
  margin-top:0!important;
}
.login-links-right{
  justify-content:flex-end!important;
  align-items:center!important;
  text-align:right;
}
.login-back-row{
  width:100%;
  margin-top:13px;
}
.login-back-row .login-back{
  margin-top:0;
}

/* Proteções de largura: complementam o sistema responsivo existente sem
   alterar a estratégia já validada de tabelas com rolagem horizontal. */
.main,
.page,
.card,
.form-card,
.table-card,
.settings-details,
.settings-details-body,
.system-modal-dialog,
.profile-dialog,
.login-card,
.login-panel,
.login-box{
  min-width:0;
}
.page img,
.page video,
.page canvas,
.system-modal-dialog img,
.system-modal-dialog video,
.system-modal-dialog canvas{
  max-width:100%;
  height:auto;
}
.field,
.form-grid > *,
.cards > *,
.grid-3 > *,
.split-grid > *,
.module-grid > *{
  min-width:0;
}
.field input,
.field select,
.field textarea{
  max-width:100%;
}
.page-title > *,
.table-section-head > *,
.section-head > *{
  min-width:0;
}

@media(max-width:900px){
  .page-title,
  .table-section-head{
    max-width:100%;
  }
  .system-modal-dialog,
  .profile-dialog{
    max-width:calc(100vw - 28px)!important;
  }
  .login-panel{
    width:100%;
  }
}

@media(max-width:580px){
  .login-panel{
    padding:26px 20px!important;
  }
  .login-box .login-actions{
    margin-top:18px;
  }
  .login-box .login-actions .btn,
  .login-box form .login-actions .btn{
    width:auto!important;
    min-width:min(210px,100%);
  }
  .login-links-right{
    flex-direction:row!important;
    justify-content:flex-end!important;
    align-items:center!important;
  }
  .login-links-right a{
    max-width:100%;
    overflow-wrap:anywhere;
  }
}

@media(max-width:380px){
  .login-box .login-actions .btn,
  .login-box form .login-actions .btn{
    width:100%!important;
    min-width:0;
  }
}

/* v1.0.123 — ações, tabela e paginação consolidadas
   Mantém o scroll exclusivamente na tabela, paginação estacionária fora do scroll,
   tipografia normal do sistema e botões do banner no mesmo padrão compacto das ações. */
:root{
  --responsive-table-min:720px;
  --responsive-gap:12px;
  --table-inner-gutter:30px;
  --filter-action-width:168px;
  --compact-action-height:38px;
  --compact-action-font:12px;
  --compact-action-padding-x:11px;
}

/* Contenção base: nenhum componente operacional pode ampliar o viewport. */
.main,
.page,
.page > *,
.card,
.form-card,
.table-card,
.table-section,
.table-section-head,
.embedded-table-filter,
.settings-section,
.analytics-card,
.system-modal-dialog,
.profile-dialog{
  min-width:0;
  max-width:100%;
}

/* Banners seguem exatamente o eixo horizontal dos demais blocos da página. */
.page .page-intro,
.page .page-intro.compact{
  box-sizing:border-box!important;
  width:100%!important;
  max-width:100%!important;
  margin-left:0!important;
  margin-right:0!important;
}

.page .page-intro .banner-actions{
  right:30px!important;
}

/* Card não rola. O scroll pertence exclusivamente ao quadro interno da tabela. */
.page .table-card,
.page .table-section{
  overflow:visible!important;
}

.page .table-scroll,
.page .reconciliation-table-wrap{
  display:block!important;
  box-sizing:border-box!important;
  width:calc(100% - (var(--table-inner-gutter) * 2))!important;
  max-width:calc(100% - (var(--table-inner-gutter) * 2))!important;
  min-width:0!important;
  margin:16px var(--table-inner-gutter) 24px!important;
  border:1px solid var(--line)!important;
  background:#fff!important;
  overflow-x:auto!important;
  overflow-y:hidden!important;
  overscroll-behavior-x:contain!important;
  -webkit-overflow-scrolling:touch!important;
  scrollbar-width:thin;
}

.page .table-scroll > table,
.page .table-scroll > table.table,
.page .reconciliation-table-wrap > table{
  display:table!important;
  width:100%!important;
  max-width:none!important;
  min-width:100%!important;
  margin:0!important;
  border:0!important;
  table-layout:auto!important;
}

/* A borda externa fica no wrapper para permanecer íntegra durante o scroll. */
.page .table-scroll > table tr:last-child > td,
.page .reconciliation-table-wrap > table tr:last-child > td{
  border-bottom:0!important;
}

/* Larguras mínimas especializadas preservam leitura sem empurrar a página. */
.page .table-scroll > .finance-entries-table{min-width:900px!important}
.page .table-scroll > .audit-table{min-width:980px!important}
.page .reconciliation-table-wrap > .reconciliation-table{min-width:900px!important}

/* Todos os botões pertencentes a filtros usam a mesma medida no mesmo viewport. */
.page .compact-filters .btn,
.page .embedded-table-filter .btn,
.page .report-filters .btn,
.page .audit-filters .btn,
.page .reconciliation-filters .btn,
.page .report-filter-actions .btn,
.page .reconciliation-filter-actions .btn,
.page .filter-actions .btn{
  box-sizing:border-box!important;
  flex:0 0 var(--filter-action-width)!important;
  width:var(--filter-action-width)!important;
  min-width:var(--filter-action-width)!important;
  max-width:100%!important;
  min-height:var(--standard-control-height)!important;
  height:var(--standard-control-height)!important;
  padding:0 16px!important;
  white-space:normal!important;
  text-align:center!important;
}

/* Componentes de filtro compartilham a mesma estratégia de quebra. */
.page .compact-filter-row,
.page .report-filter-line,
.page .audit-filters,
.page .reconciliation-filters,
.page .personalized-table-tools,
.page .table-tools.standard-table-tools{
  min-width:0!important;
  max-width:100%!important;
}

.page .compact-filter-row > *,
.page .report-filter-line > *,
.page .audit-filters > *,
.page .reconciliation-filters > *,
.page .personalized-table-tools > *,
.page .table-tools.standard-table-tools > *{
  min-width:0!important;
  max-width:100%!important;
}

@media(max-width:1200px){
  .page .compact-filter-row,
  .page .report-filter-line,
  .page .audit-filters,
  .page .reconciliation-filters,
  .page .personalized-table-tools,
  .page .table-tools.standard-table-tools{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:var(--responsive-gap)!important;
    align-items:end!important;
    width:100%!important;
  }

  .page .compact-filter-row > input:not([type="hidden"]),
  .page .compact-filter-row > select,
  .page .compact-filter-row > .field,
  .page .report-filter-line > .field,
  .page .audit-filters > .field,
  .page .reconciliation-filters > .field,
  .page .reconciliation-filters > form.field,
  .page .personalized-table-tools > .field,
  .page .table-tools.standard-table-tools > .field{
    width:100%!important;
    min-width:0!important;
    max-width:none!important;
  }

  .page .compact-filter-row > .btn,
  .page .compact-filter-row > .table-export-tools,
  .page .report-filter-actions,
  .page .audit-filters > .filter-actions,
  .page .reconciliation-filter-actions,
  .page .personalized-table-tools > .table-export-tools,
  .page .table-tools.standard-table-tools > .table-export-tools,
  .page .table-tools.standard-table-tools > .table-page-info{
    grid-column:1/-1!important;
  }

  .page .filter-actions,
  .page .report-filter-actions,
  .page .reconciliation-filter-actions{
    display:flex!important;
    flex-direction:row!important;
    flex-wrap:wrap!important;
    align-items:center!important;
    gap:10px!important;
    width:100%!important;
    min-width:0!important;
    overflow:visible!important;
  }
}

@media(max-width:900px){
  :root{
    --responsive-table-min:720px;
    --table-inner-gutter:18px;
  }

  .page .page-intro .banner-actions{
    position:static!important;
    transform:none!important;
    width:100%!important;
    max-width:100%!important;
    margin-top:16px!important;
    display:flex!important;
    flex-wrap:wrap!important;
    justify-content:flex-start!important;
    overflow:visible!important;
  }

  .page .table-scroll > table,
  .page .table-scroll > table.table,
  .page .reconciliation-table-wrap > table{
    width:max-content!important;
    min-width:max(100%,var(--responsive-table-min))!important;
  }

  .page .table-scroll > .finance-entries-table{min-width:880px!important}
  .page .table-scroll > .audit-table{min-width:940px!important}
  .page .reconciliation-table-wrap > .reconciliation-table{min-width:860px!important}
}

@media(max-width:640px){
  :root{
    --table-inner-gutter:14px;
  }

  .page .compact-filter-row,
  .page .report-filter-line,
  .page .audit-filters,
  .page .reconciliation-filters,
  .page .personalized-table-tools,
  .page .table-tools.standard-table-tools{
    grid-template-columns:minmax(0,1fr)!important;
  }

  .page .compact-filter-row > .btn,
  .page .compact-filter-row > .table-export-tools,
  .page .report-filter-actions,
  .page .audit-filters > .filter-actions,
  .page .reconciliation-filter-actions,
  .page .personalized-table-tools > .table-export-tools,
  .page .table-tools.standard-table-tools > .table-export-tools,
  .page .table-tools.standard-table-tools > .table-page-info{
    grid-column:1!important;
  }

  .page .filter-actions,
  .page .report-filter-actions,
  .page .reconciliation-filter-actions{
    display:grid!important;
    grid-template-columns:minmax(0,1fr)!important;
  }

  .page .compact-filters .btn,
  .page .embedded-table-filter .btn,
  .page .report-filters .btn,
  .page .audit-filters .btn,
  .page .reconciliation-filters .btn,
  .page .report-filter-actions .btn,
  .page .reconciliation-filter-actions .btn,
  .page .filter-actions .btn{
    flex:1 1 auto!important;
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    height:auto!important;
    min-height:var(--standard-control-height)!important;
  }

  .page .table-scroll > .finance-entries-table{min-width:840px!important}
  .page .table-scroll > .audit-table{min-width:900px!important}
  .page .reconciliation-table-wrap > .reconciliation-table{min-width:820px!important}
}



/* v1.0.123 — acabamento definitivo de banners, tabelas e paginação */
/* Botões do banner usam a mesma densidade visual das ações compactas da tabela. */
.page .page-intro .banner-actions .btn,
.page .page-intro .banner-actions > form > .btn{
  box-sizing:border-box!important;
  width:auto!important;
  min-width:0!important;
  max-width:100%!important;
  height:var(--compact-action-height)!important;
  min-height:var(--compact-action-height)!important;
  padding:0 var(--compact-action-padding-x)!important;
  font-size:var(--compact-action-font)!important;
  line-height:1!important;
  white-space:nowrap!important;
  flex:0 0 auto!important;
}

/* O texto da tabela segue a tipografia normal do sistema; o scroll resolve a largura. */
.page .table-scroll > table,
.page .table-scroll > table.table,
.page .reconciliation-table-wrap > table{
  font-size:16px!important;
  line-height:1.45!important;
}
.page .table-scroll > table th,
.page .reconciliation-table-wrap > table th{
  font-size:13px!important;
  line-height:1.35!important;
}
.page .table-scroll > table td,
.page .reconciliation-table-wrap > table td{
  font-size:16px!important;
  line-height:1.45!important;
  padding:16px 14px!important;
}

/* Quando existe paginação, ela vira o rodapé estacionário da tabela e não participa do scroll horizontal. */
.page .table-scroll:has(+ .server-pager),
.page .reconciliation-table-wrap:has(+ .server-pager){
  margin-bottom:0!important;
}
.page .table-scroll + .server-pager,
.page .reconciliation-table-wrap + .server-pager{
  box-sizing:border-box!important;
  position:relative!important;
  left:auto!important;
  right:auto!important;
  transform:none!important;
  width:calc(100% - (var(--table-inner-gutter) * 2))!important;
  max-width:calc(100% - (var(--table-inner-gutter) * 2))!important;
  min-width:0!important;
  margin:0 var(--table-inner-gutter) 24px!important;
  padding:12px 14px!important;
  border:1px solid var(--line)!important;
  border-top:0!important;
  background:#fff!important;
  overflow:visible!important;
  white-space:normal!important;
}

@media(max-width:900px){
  .page .page-intro .banner-actions{
    gap:8px!important;
    overflow:visible!important;
  }
  .page .page-intro .banner-actions .btn[data-icon-applied],
  .page .page-intro .banner-actions > form > .btn[data-icon-applied]{
    width:auto!important;
    min-width:0!important;
    max-width:100%!important;
    height:var(--compact-action-height)!important;
    min-height:var(--compact-action-height)!important;
    flex:0 0 auto!important;
    padding:0 var(--compact-action-padding-x)!important;
  }
  .page .page-intro .banner-actions .btn[data-icon-applied] > .btn-label,
  .page .page-intro .banner-actions > form > .btn[data-icon-applied] > .btn-label{
    display:inline!important;
  }
}

@media(max-width:640px){
  .page .table-scroll > table td,
  .page .reconciliation-table-wrap > table td{
    font-size:16px!important;
    padding:14px 12px!important;
  }
  .page .table-scroll > table th,
  .page .reconciliation-table-wrap > table th{
    font-size:13px!important;
    padding:13px 12px!important;
  }
  .page .table-scroll + .server-pager,
  .page .reconciliation-table-wrap + .server-pager{
    padding:10px!important;
  }
}


/* v1.0.125 — filtros uniformes e paginação estacionária
   Esta camada substitui as exceções móveis antigas que reduziam apenas alguns
   botões de filtro para 52/48px. Todos os botões do mesmo grupo agora usam a
   mesma medida; a paginação permanece fora do scroll horizontal da tabela. */
:root{
  --filter-button-width:176px;
  --filter-button-height:44px;
}

/* Um único contrato visual para todas as ações que pertencem a filtros. */
.page .compact-filter-row > .btn,
.page .compact-filter-row > form,
.page .filter-actions > .btn,
.page .filter-actions > form,
.page .report-filter-actions > .btn,
.page .report-filter-actions > form,
.page .reconciliation-filter-actions > .btn,
.page .reconciliation-filter-actions > form,
.page .table-export-tools > .btn,
.page .table-export-tools > form,
.page .embedded-table-filter .btn,
.page .audit-filters .btn,
.page .reconciliation-filters .btn,
.page .report-filters .btn,
.page .personalized-table-tools .btn,
.page .table-tools.standard-table-tools .btn{
  box-sizing:border-box!important;
  flex:0 0 var(--filter-button-width)!important;
  width:var(--filter-button-width)!important;
  min-width:var(--filter-button-width)!important;
  max-width:var(--filter-button-width)!important;
  height:var(--filter-button-height)!important;
  min-height:var(--filter-button-height)!important;
  margin:0!important;
}

.page .compact-filter-row > form,
.page .filter-actions > form,
.page .report-filter-actions > form,
.page .reconciliation-filter-actions > form,
.page .table-export-tools > form{
  display:flex!important;
  align-items:stretch!important;
}

.page .compact-filter-row > form > .btn,
.page .filter-actions > form > .btn,
.page .report-filter-actions > form > .btn,
.page .reconciliation-filter-actions > form > .btn,
.page .table-export-tools > form > .btn{
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  height:100%!important;
  min-height:var(--filter-button-height)!important;
}

/* Ícone não altera mais o tamanho do botão do filtro nem oculta seu texto. */
.page .compact-filters .btn[data-icon-applied],
.page .embedded-table-filter .btn[data-icon-applied],
.page .filter-actions .btn[data-icon-applied],
.page .report-filter-actions .btn[data-icon-applied],
.page .reconciliation-filter-actions .btn[data-icon-applied],
.page .table-export-tools .btn[data-icon-applied],
.page .audit-filters .btn[data-icon-applied],
.page .reconciliation-filters .btn[data-icon-applied],
.page .report-filters .btn[data-icon-applied],
.page .personalized-table-tools .btn[data-icon-applied],
.page .table-tools.standard-table-tools .btn[data-icon-applied]{
  flex:0 0 var(--filter-button-width)!important;
  width:var(--filter-button-width)!important;
  min-width:var(--filter-button-width)!important;
  max-width:var(--filter-button-width)!important;
  height:var(--filter-button-height)!important;
  min-height:var(--filter-button-height)!important;
  padding:0 16px!important;
}
.page .compact-filters .btn[data-icon-applied] > .btn-label,
.page .embedded-table-filter .btn[data-icon-applied] > .btn-label,
.page .filter-actions .btn[data-icon-applied] > .btn-label,
.page .report-filter-actions .btn[data-icon-applied] > .btn-label,
.page .reconciliation-filter-actions .btn[data-icon-applied] > .btn-label,
.page .table-export-tools .btn[data-icon-applied] > .btn-label,
.page .audit-filters .btn[data-icon-applied] > .btn-label,
.page .reconciliation-filters .btn[data-icon-applied] > .btn-label,
.page .report-filters .btn[data-icon-applied] > .btn-label,
.page .personalized-table-tools .btn[data-icon-applied] > .btn-label,
.page .table-tools.standard-table-tools .btn[data-icon-applied] > .btn-label{
  display:inline!important;
}

/* A paginação é o rodapé fixo estrutural da tabela: não rola horizontalmente. */
.page .table-scroll:has(+ .server-pager),
.page .reconciliation-table-wrap:has(+ .server-pager){
  margin-bottom:0!important;
  border-bottom-left-radius:0!important;
  border-bottom-right-radius:0!important;
}
.page .table-scroll + .server-pager,
.page .reconciliation-table-wrap + .server-pager{
  display:grid!important;
  grid-template-columns:minmax(72px,1fr) auto minmax(72px,1fr)!important;
  align-items:center!important;
  position:relative!important;
  inset:auto!important;
  z-index:1!important;
  width:calc(100% - (var(--table-inner-gutter) * 2))!important;
  max-width:calc(100% - (var(--table-inner-gutter) * 2))!important;
  min-width:0!important;
  margin:0 var(--table-inner-gutter) 24px!important;
  overflow:hidden!important;
  overscroll-behavior:none!important;
  border:1px solid var(--line)!important;
  border-top:0!important;
  background:#fff!important;
}
.page .table-scroll + .server-pager > span,
.page .reconciliation-table-wrap + .server-pager > span{
  grid-column:2!important;
  justify-self:center!important;
  min-width:0!important;
  text-align:center!important;
}
.page .table-scroll + .server-pager > a:first-child,
.page .reconciliation-table-wrap + .server-pager > a:first-child{
  grid-column:1!important;
  justify-self:start!important;
}
.page .table-scroll + .server-pager > a:last-child:not(:first-child),
.page .reconciliation-table-wrap + .server-pager > a:last-child:not(:first-child){
  grid-column:3!important;
  justify-self:end!important;
}

@media(max-width:640px){
  .page .compact-filter-row > .btn,
  .page .compact-filter-row > form,
  .page .filter-actions > .btn,
  .page .filter-actions > form,
  .page .report-filter-actions > .btn,
  .page .report-filter-actions > form,
  .page .reconciliation-filter-actions > .btn,
  .page .reconciliation-filter-actions > form,
  .page .table-export-tools > .btn,
  .page .table-export-tools > form,
  .page .embedded-table-filter .btn,
  .page .audit-filters .btn,
  .page .reconciliation-filters .btn,
  .page .report-filters .btn,
  .page .personalized-table-tools .btn,
  .page .table-tools.standard-table-tools .btn,
  .page .compact-filters .btn[data-icon-applied],
  .page .embedded-table-filter .btn[data-icon-applied],
  .page .filter-actions .btn[data-icon-applied],
  .page .report-filter-actions .btn[data-icon-applied],
  .page .reconciliation-filter-actions .btn[data-icon-applied],
  .page .table-export-tools .btn[data-icon-applied],
  .page .audit-filters .btn[data-icon-applied],
  .page .reconciliation-filters .btn[data-icon-applied],
  .page .report-filters .btn[data-icon-applied],
  .page .personalized-table-tools .btn[data-icon-applied],
  .page .table-tools.standard-table-tools .btn[data-icon-applied]{
    flex:1 1 100%!important;
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    height:var(--filter-button-height)!important;
    min-height:var(--filter-button-height)!important;
  }

  .page .table-scroll + .server-pager,
  .page .reconciliation-table-wrap + .server-pager{
    grid-template-columns:52px minmax(0,1fr) 52px!important;
    column-gap:8px!important;
    padding:10px!important;
  }
}
\n\n


/* v1.0.128 — contrato único de paginação.
   Existe apenas um pager por tabela, sempre fora da área rolável.
   O rodapé não se move horizontalmente e os botões usam o mesmo padrão compacto. */
:root{
  --pager-button-width:96px;
  --pager-button-height:38px;
}

.page .server-pager{
  box-sizing:border-box!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  align-items:center!important;
  gap:12px!important;
  width:auto!important;
  max-width:none!important;
  min-width:0!important;
  margin:0 var(--table-inner-gutter) 24px!important;
  padding:12px 14px!important;
  border:1px solid var(--line)!important;
  border-top:0!important;
  background:#fff!important;
  overflow:visible!important;
  position:relative!important;
  inset:auto!important;
  z-index:1!important;
}

.page .server-pager-count{
  min-width:0!important;
  text-align:left!important;
  white-space:normal!important;
  overflow:visible!important;
}

.page .server-pager-nav{
  display:flex!important;
  align-items:center!important;
  justify-content:flex-end!important;
  gap:8px!important;
  min-width:0!important;
  max-width:100%!important;
  margin:0!important;
  overflow:visible!important;
}

.page .server-pager-nav > .btn{
  box-sizing:border-box!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:var(--pager-button-width)!important;
  min-width:var(--pager-button-width)!important;
  max-width:var(--pager-button-width)!important;
  height:var(--pager-button-height)!important;
  min-height:var(--pager-button-height)!important;
  padding:0 10px!important;
  margin:0!important;
  white-space:nowrap!important;
  overflow:visible!important;
  flex:0 0 var(--pager-button-width)!important;
}

.page .server-pager-disabled{
  opacity:.45!important;
  cursor:not-allowed!important;
  pointer-events:none!important;
  user-select:none!important;
}

@media(max-width:640px){
  .page .server-pager{
    grid-template-columns:1fr!important;
    gap:10px!important;
    padding:10px!important;
  }

  .page .server-pager-count{
    text-align:center!important;
  }

  .page .server-pager-nav{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
    gap:8px!important;
    width:100%!important;
  }

  .page .server-pager-nav > .btn{
    width:100%!important;
    min-width:0!important;
    max-width:none!important;
    height:var(--pager-button-height)!important;
    min-height:var(--pager-button-height)!important;
    flex:initial!important;
    padding-inline:8px!important;
  }
}

/* v1.0.2 — padronização global dos botões de ação dos modais.
   O botão X permanece compacto; ações textuais seguem o controle padrão do sistema. */
.system-modal .modal-actions > .btn,
.system-modal .modal-actions > form > .btn,
.profile-dialog .modal-actions > .btn,
.profile-dialog .modal-actions > form > .btn,
.notification-dialog .modal-actions > .btn,
.notification-dialog .modal-actions > form > .btn,
[data-modal] .modal-actions > .btn,
[data-modal] .modal-actions > form > .btn{
  box-sizing:border-box!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;
  width:auto!important;min-width:max-content!important;max-width:100%!important;
  height:var(--standard-control-height)!important;min-height:var(--standard-control-height)!important;
  padding:0 16px!important;margin:0!important;font-size:13px!important;line-height:1.2!important;white-space:nowrap!important;
}
@media(max-width:900px){
  .system-modal .modal-actions,.profile-dialog .modal-actions,.notification-dialog .modal-actions,[data-modal] .modal-actions{
    display:flex!important;flex-direction:row!important;flex-wrap:wrap!important;align-items:center!important;
    justify-content:flex-end!important;gap:8px!important;width:100%!important;overflow:visible!important;
  }
  .system-modal .modal-actions > .btn,.system-modal .modal-actions > form > .btn,
  .profile-dialog .modal-actions > .btn,.profile-dialog .modal-actions > form > .btn,
  .notification-dialog .modal-actions > .btn,.notification-dialog .modal-actions > form > .btn,
  [data-modal] .modal-actions > .btn,[data-modal] .modal-actions > form > .btn{
    flex:0 0 auto!important;width:auto!important;min-width:max-content!important;
    height:var(--standard-control-height)!important;min-height:var(--standard-control-height)!important;
  }
}


/* v1.0.3 — modais com banner integral e ações sem compressão.
   Substitui conflitos antigos de direção/tamanho dentro dos modais. */
.system-modal-dialog,
.profile-dialog,
.notification-dialog{
  box-sizing:border-box!important;
  overflow-x:hidden!important;
}

.system-modal-dialog > .modal-banner-head,
.profile-dialog > .modal-banner-head,
.notification-dialog > .modal-banner-head{
  box-sizing:border-box!important;
  width:auto!important;
  min-width:0!important;
  max-width:none!important;
  margin-left:calc(-1 * var(--modal-content-gutter, 36px))!important;
  margin-right:calc(-1 * var(--modal-content-gutter, 36px))!important;
  padding-left:var(--modal-content-gutter, 36px)!important;
  padding-right:var(--modal-content-gutter, 36px)!important;
}

.system-modal-dialog{--modal-content-gutter:36px}
.system-modal-wide,
.profile-dialog{--modal-content-gutter:38px}
.notification-dialog{--modal-content-gutter:36px}

.system-modal .modal-actions,
.profile-dialog .modal-actions,
.notification-dialog .modal-actions,
[data-modal] .modal-actions,
.system-modal .form-actions,
.profile-dialog .form-actions,
.notification-dialog .form-actions,
[data-modal] .form-actions{
  display:flex!important;
  flex-direction:row!important;
  flex-wrap:wrap!important;
  align-items:center!important;
  justify-content:flex-end!important;
  gap:10px!important;
  width:100%!important;
  min-width:0!important;
  overflow:visible!important;
}

.system-modal .modal-actions > .btn,
.system-modal .modal-actions > form,
.profile-dialog .modal-actions > .btn,
.profile-dialog .modal-actions > form,
.notification-dialog .modal-actions > .btn,
.notification-dialog .modal-actions > form,
[data-modal] .modal-actions > .btn,
[data-modal] .modal-actions > form,
.system-modal .form-actions > .btn,
.system-modal .form-actions > form,
.profile-dialog .form-actions > .btn,
.profile-dialog .form-actions > form,
.notification-dialog .form-actions > .btn,
.notification-dialog .form-actions > form,
[data-modal] .form-actions > .btn,
[data-modal] .form-actions > form{
  flex:0 0 auto!important;
  width:auto!important;
  min-width:0!important;
  max-width:100%!important;
  margin:0!important;
}

.system-modal .modal-actions > form > .btn,
.profile-dialog .modal-actions > form > .btn,
.notification-dialog .modal-actions > form > .btn,
[data-modal] .modal-actions > form > .btn,
.system-modal .form-actions > form > .btn,
.profile-dialog .form-actions > form > .btn,
.notification-dialog .form-actions > form > .btn,
[data-modal] .form-actions > form > .btn,
.system-modal .modal-actions > .btn,
.profile-dialog .modal-actions > .btn,
.notification-dialog .modal-actions > .btn,
[data-modal] .modal-actions > .btn,
.system-modal .form-actions > .btn,
.profile-dialog .form-actions > .btn,
.notification-dialog .form-actions > .btn,
[data-modal] .form-actions > .btn{
  box-sizing:border-box!important;
  width:auto!important;
  min-width:112px!important;
  max-width:100%!important;
  height:var(--standard-control-height)!important;
  min-height:var(--standard-control-height)!important;
  padding:0 16px!important;
  margin:0!important;
  flex:0 0 auto!important;
  white-space:nowrap!important;
  overflow:visible!important;
}

@media(max-width:850px){
  .system-modal-dialog,
  .system-modal-wide,
  .profile-dialog,
  .notification-dialog{
    --modal-content-gutter:24px;
  }
}

@media(max-width:580px){
  .system-modal .modal-actions,
  .profile-dialog .modal-actions,
  .notification-dialog .modal-actions,
  [data-modal] .modal-actions,
  .system-modal .form-actions,
  .profile-dialog .form-actions,
  .notification-dialog .form-actions,
  [data-modal] .form-actions{
    flex-direction:row!important;
    flex-wrap:wrap!important;
  }

  .system-modal .modal-actions > .btn,
  .system-modal .modal-actions > form,
  .profile-dialog .modal-actions > .btn,
  .profile-dialog .modal-actions > form,
  .notification-dialog .modal-actions > .btn,
  .notification-dialog .modal-actions > form,
  [data-modal] .modal-actions > .btn,
  [data-modal] .modal-actions > form,
  .system-modal .form-actions > .btn,
  .system-modal .form-actions > form,
  .profile-dialog .form-actions > .btn,
  .profile-dialog .form-actions > form,
  .notification-dialog .form-actions > .btn,
  .notification-dialog .form-actions > form,
  [data-modal] .form-actions > .btn,
  [data-modal] .form-actions > form{
    flex:1 1 140px!important;
    min-width:140px!important;
  }

  .system-modal .modal-actions > form > .btn,
  .profile-dialog .modal-actions > form > .btn,
  .notification-dialog .modal-actions > form > .btn,
  [data-modal] .modal-actions > form > .btn,
  .system-modal .form-actions > form > .btn,
  .profile-dialog .form-actions > form > .btn,
  .notification-dialog .form-actions > form > .btn,
  [data-modal] .form-actions > form > .btn{
    width:100%!important;
  }
}


/* v1.0.4 — navegação de paginação legível.
   Paginação usa ícones próprios + texto sempre que houver espaço, sem quebra de linha. */
.page .server-pager-nav > .btn,
.page .table-pager > .btn{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:7px!important;
  width:auto!important;
  min-width:108px!important;
  max-width:none!important;
  height:40px!important;
  min-height:40px!important;
  padding:0 13px!important;
  flex:0 0 auto!important;
  white-space:nowrap!important;
  overflow:visible!important;
}

.page .server-pager-nav > .btn > .btn-label,
.page .table-pager > .btn > .btn-label{
  display:inline-flex!important;
  width:auto!important;
  height:auto!important;
  min-width:0!important;
  margin:0!important;
  padding:0!important;
  position:static!important;
  clip:auto!important;
  overflow:visible!important;
  white-space:nowrap!important;
}

.page .server-pager-nav > .btn > .btn-icon,
.page .table-pager > .btn > .btn-icon{
  display:inline-flex!important;
  flex:0 0 auto!important;
  width:18px!important;
  height:18px!important;
  margin:0!important;
}

.page .server-pager-nav > .btn > .btn-icon svg,
.page .table-pager > .btn > .btn-icon svg{
  width:18px!important;
  height:18px!important;
}

/* Sobrescreve regras antigas que convertiam paginação iconizada em botão somente-ícone. */
@media(max-width:640px){
  .page .server-pager-nav > .btn,
  .page .table-pager > .btn{
    min-width:0!important;
    width:100%!important;
    max-width:none!important;
    padding:0 10px!important;
    white-space:nowrap!important;
  }

  .page .server-pager-nav > .btn[data-icon-applied] > .btn-label,
  .page .table-pager > .btn[data-icon-applied] > .btn-label{
    display:inline-flex!important;
  }
}

/* Somente em larguras realmente críticas prioriza o ícone para não quebrar o layout. */
@media(max-width:360px){
  .page .server-pager-nav > .btn,
  .page .table-pager > .btn{
    min-width:40px!important;
    width:40px!important;
    max-width:40px!important;
    padding:0!important;
  }

  .page .server-pager-nav > .btn[data-icon-applied] > .btn-label,
  .page .table-pager > .btn[data-icon-applied] > .btn-label{
    position:absolute!important;
    width:1px!important;
    height:1px!important;
    margin:-1px!important;
    padding:0!important;
    overflow:hidden!important;
    clip:rect(0,0,0,0)!important;
    white-space:nowrap!important;
  }
}



/* v1.0.9 — padronização visual desktop: tipografia, controles e alinhamentos.
   Tablet e celular permanecem para uma revisão dedicada posterior. */
:root{--control-height:44px;--control-pad-x:14px}
body,button,input,select,textarea{font-family:var(--body)!important}
:where(h1,h2,h3,h4,h5,h6,.section-heading,.page-title h1,.page-title h2,.page-intro h1,.modal-banner-head h2,.brand-name strong,.brand-name i,.footer-brand-name strong,.footer-brand-name i){font-family:var(--body)!important}
.footer-copy a,.login-copyright a,.legal-links a{border-bottom:0!important;text-decoration:none!important}
.footer-copy a:hover,.login-copyright a:hover,.legal-links a:hover{text-decoration:none!important}

@media(min-width:901px){
  :where(.btn,.field input:not([type=checkbox]):not([type=radio]):not([type=color]),.field select,.compact-filter-row input,.compact-filter-row select,.report-filter-line input,.report-filter-line select,.table-tools input,.table-tools select,.login-box .field input){
    height:var(--control-height)!important;
    min-height:var(--control-height)!important;
    line-height:1.2!important;
  }
  :where(.btn,.compact-filter-row .btn,.report-filter-actions .btn,.table-tools .btn){
    min-height:var(--control-height)!important;
    height:var(--control-height)!important;
    padding-top:0!important;
    padding-bottom:0!important;
    padding-left:var(--control-pad-x)!important;
    padding-right:var(--control-pad-x)!important;
    font-size:13px!important;
    line-height:1!important;
    align-items:center!important;
    justify-content:center!important;
  }
  :where(.field input:not([type=checkbox]):not([type=radio]):not([type=color]),.field select,.compact-filter-row input,.compact-filter-row select,.report-filter-line input,.report-filter-line select,.table-tools input,.table-tools select,.login-box .field input){
    padding-top:0!important;
    padding-bottom:0!important;
    padding-left:var(--control-pad-x)!important;
    padding-right:var(--control-pad-x)!important;
    font-size:13px!important;
  }
  input[type=color]{height:var(--control-height)!important;min-height:var(--control-height)!important}
  :where(.top-icon,.mobile-menu-toggle,.secret-toggle,.modal-close,.client-actions .btn,.action-table .client-actions .btn,.finance-list .client-actions .btn,.table-pager button){
    height:var(--control-height)!important;
    min-height:var(--control-height)!important;
  }
  :where(.form-actions,.modal-actions,.compact-filter-row,.report-filter-line,.report-filter-actions,.table-tools,.plan-row,.sector-row,.provider-test-actions,.banner-actions,.client-actions){
    align-items:flex-end!important;
  }
  :where(.form-actions,.modal-actions,.provider-test-actions,.banner-actions,.client-actions){display:flex;gap:10px}
  :where(.form-actions,.modal-actions,.provider-test-actions,.banner-actions,.client-actions) > form{margin:0!important}
  :where(.field){align-self:end}
  .field label{min-height:18px;display:flex;align-items:flex-end}
  .secret-input{height:var(--control-height)!important}
  .secret-input>input{height:100%!important}
  .secret-toggle{top:0!important;bottom:0!important;margin:auto 0!important}
}

/* 1.0.10 V3 — padronização final dos controles desktop */
@media(min-width:901px){
  :root{--desktop-control-height:52px}
  button:not(.modal-close):not(.mobile-menu-toggle):not(.top-icon):not(.secret-toggle):not(.accessibility-fab):not(.back-to-top),
  .btn,
  input:not([type="checkbox"]):not([type="radio"]):not([type="color"]):not([type="hidden"]),
  select{
    box-sizing:border-box!important;
    height:var(--desktop-control-height)!important;
    min-height:var(--desktop-control-height)!important;
    max-height:var(--desktop-control-height)!important;
  }
  .btn,
  button:not(.modal-close):not(.mobile-menu-toggle):not(.top-icon):not(.secret-toggle):not(.accessibility-fab):not(.back-to-top){
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    padding-top:0!important;
    padding-bottom:0!important;
    line-height:1!important;
    vertical-align:middle!important;
  }
  .field input:not([type="checkbox"]):not([type="radio"]):not([type="color"]),
  .field select,
  .compact-filter-row input:not([type="checkbox"]):not([type="radio"]),
  .compact-filter-row select,
  .report-filter-line input:not([type="checkbox"]):not([type="radio"]),
  .report-filter-line select,
  .table-tools input:not([type="checkbox"]):not([type="radio"]),
  .table-tools select{
    padding-top:0!important;
    padding-bottom:0!important;
    line-height:normal!important;
  }
  .compact-filter-row,
  .form-actions,
  .filter-actions,
  .table-tools,
  .report-filter-actions{
    align-items:flex-end!important;
  }
}


/* 1.0 — iconografia global consistente */
.btn-icon svg,
.nav-icon svg,
.top-icon svg,
.mobile-action-link svg,
.sidebar-logout svg,
.secret-toggle svg,
.ui-icon{
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}


/* 1.1 — botões de banner com tamanho único no desktop */
@media(min-width:901px){
  .banner .btn,
  .banner-actions .btn,
  .hero-banner .btn,
  .hero-banner-actions .btn,
  .notice-banner .btn,
  .alert-banner .btn,
  .system-banner .btn,
  [class*="banner"] .btn{
    box-sizing:border-box!important;
    width:160px!important;
    min-width:160px!important;
    max-width:160px!important;
    height:var(--desktop-control-height,52px)!important;
    min-height:var(--desktop-control-height,52px)!important;
    max-height:var(--desktop-control-height,52px)!important;
    padding:0 14px!important;
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    gap:8px!important;
    line-height:1!important;
    white-space:nowrap;
  }
  .banner-actions,
  .hero-banner-actions,
  .notice-banner-actions,
  .alert-banner-actions,
  .system-banner-actions,
  [class*="banner"] .actions{
    display:flex;
    align-items:center!important;
    gap:10px!important;
    flex-wrap:wrap;
  }
}


/* 1.2 — correções finais de banners, modais e paginação */
@media(min-width:901px){
  .page .page-intro .banner-actions .btn,
  .page .page-intro .banner-actions > form > .btn,
  .page .banner-actions .btn,
  .page .banner-actions > form > .btn{
    box-sizing:border-box!important;
    width:auto!important;
    min-width:190px!important;
    max-width:none!important;
    height:56px!important;
    min-height:56px!important;
    max-height:56px!important;
    padding:0 22px!important;
    font-size:14px!important;
    line-height:1!important;
    font-weight:700!important;
    gap:9px!important;
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    flex:0 0 auto!important;
    white-space:nowrap!important;
  }
  .page .banner-actions .btn-icon,
  .page .page-intro .banner-actions .btn-icon{
    width:19px!important;
    height:19px!important;
    flex:0 0 19px!important;
  }
}

/* Cabeçalho/banner de TODO modal ocupa 100% da largura interna, sem recuo lateral. */
.system-modal-dialog,
.profile-dialog,
.notification-dialog,
[class*="modal-dialog"]{
  --modal-banner-gutter:36px;
}
.system-modal-wide,
.profile-dialog{
  --modal-banner-gutter:38px;
}
.notification-dialog{
  --modal-banner-gutter:36px;
}
.system-modal-dialog > .modal-banner-head,
.profile-dialog > .modal-banner-head,
.notification-dialog > .modal-banner-head,
[class*="modal-dialog"] > .modal-banner-head{
  box-sizing:border-box!important;
  display:flex!important;
  width:calc(100% + (2 * var(--modal-banner-gutter)))!important;
  min-width:calc(100% + (2 * var(--modal-banner-gutter)))!important;
  max-width:none!important;
  margin-left:calc(-1 * var(--modal-banner-gutter))!important;
  margin-right:calc(-1 * var(--modal-banner-gutter))!important;
  padding-left:var(--modal-banner-gutter)!important;
  padding-right:var(--modal-banner-gutter)!important;
}

/* Paginação visual: somente os ícones ‹ e ›. */
.page .server-pager-nav > .btn,
.page .table-pager > .btn{
  width:44px!important;
  min-width:44px!important;
  max-width:44px!important;
  height:44px!important;
  min-height:44px!important;
  max-height:44px!important;
  padding:0!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  font-size:26px!important;
  line-height:1!important;
  letter-spacing:0!important;
}
.page .server-pager-nav > .btn .btn-icon,
.page .server-pager-nav > .btn .btn-label,
.page .table-pager > .btn .btn-icon,
.page .table-pager > .btn .btn-label{
  display:none!important;
}


/* 1.4 — todas as tabelas com filtro/paginação e Notificações igual ao Perfil */

/* A barra criada automaticamente para qualquer tabela segue o mesmo grid global. */
.page .table-card > .table-tools.standard-table-tools,
.page .table-tools.standard-table-tools{
  width:100%;
  box-sizing:border-box;
}

/* Modal de Notificações usa exatamente o shell do modal de Perfil.
   Apenas a lista interna pode rolar quando houver muitas notificações. */
[data-notifications-dialog]{
  width:min(560px,calc(100% - 32px))!important;
  max-width:none!important;
  max-height:calc(100vh - 48px)!important;
  overflow:hidden!important;
  padding:0 38px 38px!important;
}
[data-notifications-dialog] > .modal-banner-head{
  margin:0 -38px 30px!important;
  width:auto!important;
  min-width:0!important;
  max-width:none!important;
  padding-left:38px!important;
  padding-right:38px!important;
}
[data-notifications-dialog] .notification-summary{
  flex:0 0 auto;
}
[data-notifications-dialog] .notification-list{
  max-height:min(46vh,420px)!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
}
[data-notifications-dialog] > form:last-child{
  flex:0 0 auto;
}

@media(max-width:850px){
  [data-notifications-dialog]{
    width:min(560px,calc(100% - 32px))!important;
    padding-left:24px!important;
    padding-right:24px!important;
    padding-bottom:28px!important;
  }
  [data-notifications-dialog] > .modal-banner-head{
    margin-left:-24px!important;
    margin-right:-24px!important;
    padding-left:24px!important;
    padding-right:24px!important;
  }
}


/* 1.5 — modal de Privacidade ampliado horizontalmente */
#privacy-modal .system-modal-dialog,
#privacyModal .system-modal-dialog,
[data-modal="privacy"] .system-modal-dialog,
[data-privacy-modal] .system-modal-dialog,
.system-modal-dialog.privacy-dialog,
.privacy-dialog{
  width:80vw!important;
  max-width:80vw!important;
}

@media(max-width:850px){
  #privacy-modal .system-modal-dialog,
  #privacyModal .system-modal-dialog,
  [data-modal="privacy"] .system-modal-dialog,
  [data-privacy-modal] .system-modal-dialog,
  .system-modal-dialog.privacy-dialog,
  .privacy-dialog{
    width:calc(100vw - 32px)!important;
    max-width:calc(100vw - 32px)!important;
  }
}


/* 1.6 — banners acomodam integralmente os botões e rolagem ao topo é suave */
html{
  scroll-behavior:smooth;
}
.page .page-intro,
.page [class*="banner"],
.page .banner-actions,
.page .page-intro .banner-actions{
  overflow:visible!important;
}
.page .banner-actions,
.page .page-intro .banner-actions{
  box-sizing:border-box!important;
  min-height:64px!important;
  padding-top:4px!important;
  padding-bottom:4px!important;
  align-items:center!important;
}
.page .banner-actions > form{
  margin:0!important;
  padding:0!important;
  overflow:visible!important;
  display:flex!important;
  align-items:center!important;
}
@media(min-width:901px){
  .page .page-intro .banner-actions .btn,
  .page .page-intro .banner-actions > form > .btn,
  .page .banner-actions .btn,
  .page .banner-actions > form > .btn{
    margin-top:0!important;
    margin-bottom:0!important;
    transform:none!important;
  }
}


/* 1.7 — refinamento visual, modais fluidos e interações estáveis */

/* Botões não se deslocam ao passar o mouse. */
.btn:hover,
button.btn:hover,
a.btn:hover{
  transform:none!important;
}

/* Dashboard: "Atenção operacional" como cards no padrão de "Situação agora",
   com barra superior mais grossa e sem círculo decorativo. */
.operational-alerts{
  padding:0!important;
  border:0!important;
  box-shadow:none!important;
  background:transparent!important;
  overflow:visible!important;
}
.operational-alerts > .page-title{
  padding:0!important;
  margin:0 0 20px!important;
}
.operational-alert-list{
  display:grid!important;
  grid-template-columns:repeat(auto-fit,minmax(210px,1fr))!important;
  gap:20px!important;
  margin:0!important;
}
.operational-alert-item{
  position:relative!important;
  min-height:180px!important;
  display:flex!important;
  flex-direction:column!important;
  justify-content:space-between!important;
  align-items:flex-start!important;
  gap:14px!important;
  padding:30px 28px 26px!important;
  border:1px solid var(--line)!important;
  border-top:8px solid var(--brand-primary)!important;
  background:#fff!important;
  box-shadow:0 10px 28px color-mix(in srgb,var(--brand-dark) 5%,transparent)!important;
  color:var(--ink)!important;
  overflow:hidden!important;
}
.operational-alert-item::before,
.operational-alert-item::after{
  content:none!important;
  display:none!important;
}
.operational-alert-item > span{
  font-size:13px!important;
  text-transform:uppercase!important;
  letter-spacing:.09em!important;
  font-weight:700!important;
  color:var(--muted)!important;
}
.operational-alert-item > b{
  font:600 clamp(27px,2.2vw,38px)/1 var(--display)!important;
  letter-spacing:-1.2px!important;
  color:var(--ink)!important;
  margin-top:auto!important;
}
.operational-alert-item > small{
  color:var(--muted)!important;
  line-height:1.45!important;
}
.operational-alert-item:hover{
  transform:none!important;
  border-top-color:var(--brand-primary)!important;
  filter:none!important;
}

/* Filtros da conciliação: todos os controles terminam na mesma linha. */
.page .reconciliation-filters{
  display:grid!important;
  grid-template-columns:minmax(280px,1fr) minmax(190px,240px) auto!important;
  align-items:end!important;
  gap:12px!important;
}
.page .reconciliation-filters > .field,
.page .reconciliation-filters > form.field,
.page .reconciliation-filters .table-filter-search,
.page .reconciliation-filters .reconciliation-status-filter{
  margin:0!important;
  align-self:end!important;
}
.page .reconciliation-filters label{
  display:block!important;
  min-height:20px!important;
  margin:0 0 7px!important;
}
.page .reconciliation-filters input:not([type="hidden"]),
.page .reconciliation-filters select,
.page .reconciliation-filters .btn,
.page .reconciliation-filter-actions .btn{
  box-sizing:border-box!important;
  height:52px!important;
  min-height:52px!important;
  max-height:52px!important;
  margin:0!important;
  align-self:end!important;
}
.page .reconciliation-filter-actions{
  display:flex!important;
  align-items:flex-end!important;
  align-self:end!important;
  gap:8px!important;
  margin:0!important;
  min-height:52px!important;
}

/* Modais: largura guiada pelo conteúdo, com limites globais seguros.
   Privacidade permanece como exceção deliberada em 80vw. */
.system-modal-dialog,
.profile-dialog,
[data-notifications-dialog]{
  box-sizing:border-box!important;
  width:fit-content!important;
  min-width:min(420px,calc(100vw - 32px))!important;
  max-width:min(760px,calc(100vw - 32px))!important;
  height:auto!important;
  min-height:0!important;
  max-height:calc(100vh - 48px)!important;
}
.system-modal-wide,
.reconciliation-history-modal{
  max-width:min(960px,calc(100vw - 32px))!important;
}
#privacy-modal .system-modal-dialog,
#privacyModal .system-modal-dialog,
[data-modal="privacy"] .system-modal-dialog,
[data-privacy-modal] .system-modal-dialog,
.system-modal-dialog.privacy-dialog,
.privacy-dialog{
  width:80vw!important;
  min-width:0!important;
  max-width:80vw!important;
}

/* Marca-d'água do banner permanece totalmente dentro do próprio banner. */
.page-intro::before{
  width:150px!important;
  height:150px!important;
  border-width:28px!important;
  right:28px!important;
  top:50%!important;
  transform:translateY(-50%)!important;
  box-sizing:border-box!important;
}
.page-intro{
  isolation:isolate!important;
}
.page-intro::before{
  z-index:0!important;
}
.page-intro > *{
  z-index:2!important;
}

/* Um único espaço visual entre TECH e a versão no logotipo. */
.brand-version,
.login-brand-name .brand-version{
  margin-left:.35em!important;
}

/* Mobile: mantém os filtros e modais utilizáveis. */
@media(max-width:900px){
  .page .reconciliation-filters{
    grid-template-columns:1fr!important;
  }
  .system-modal-dialog,
  .profile-dialog,
  [data-notifications-dialog],
  .system-modal-wide,
  .reconciliation-history-modal{
    width:calc(100vw - 32px)!important;
    min-width:0!important;
    max-width:calc(100vw - 32px)!important;
  }
}



/* 1.10 — ajuste solicitado sobre a base visual 1.7 */
.operational-alert-item{
  border-top-width:3px!important;
}


/* 1.11 — marca-d'água grande, recortada somente dentro do banner */
.page-intro{
  position:relative!important;
  overflow:visible!important;
  isolation:isolate!important;
}
.page-intro::before{
  content:none!important;
  display:none!important;
}
.page-intro > .banner-watermark-clip{
  position:absolute!important;
  inset:0!important;
  overflow:hidden!important;
  pointer-events:none!important;
  z-index:0!important;
  border-radius:inherit!important;
}
.page-intro > .banner-watermark-clip > .banner-watermark-shape{
  position:absolute!important;
  width:clamp(320px,34vw,520px)!important;
  height:clamp(320px,34vw,520px)!important;
  right:-110px!important;
  top:50%!important;
  transform:translateY(-50%)!important;
  border:clamp(54px,5.2vw,82px) solid color-mix(in srgb,var(--brand-primary) 13%,transparent)!important;
  border-radius:50%!important;
  box-sizing:border-box!important;
}
.page-intro > :not(.banner-watermark-clip){
  position:relative!important;
  z-index:2!important;
}
.page-intro .banner-actions{
  position:relative!important;
  z-index:3!important;
  overflow:visible!important;
}
@media(max-width:850px){
  .page-intro > .banner-watermark-clip > .banner-watermark-shape{
    width:300px!important;
    height:300px!important;
    right:-145px!important;
    border-width:54px!important;
  }
}



/* 1.12 — marca-d'água real de 300px em banners e modais */
.page-intro,
.system-modal-dialog,
.profile-dialog,
[data-notifications-dialog]{
  position:relative!important;
}
.page-intro::before{
  content:none!important;
  display:none!important;
}
.page-intro > .ui-watermark-clip,
.system-modal-dialog > .ui-watermark-clip,
.profile-dialog > .ui-watermark-clip,
[data-notifications-dialog] > .ui-watermark-clip{
  position:absolute!important;
  inset:0!important;
  overflow:hidden!important;
  pointer-events:none!important;
  z-index:0!important;
  border-radius:inherit!important;
}
.ui-watermark-shape{
  position:absolute!important;
  width:300px!important;
  height:300px!important;
  right:-86px!important;
  top:50%!important;
  transform:translateY(-50%)!important;
  border:52px solid color-mix(in srgb,var(--brand-primary) 12%,transparent)!important;
  border-radius:50%!important;
  box-sizing:border-box!important;
  pointer-events:none!important;
}
.system-modal-dialog > .ui-watermark-clip > .ui-watermark-shape,
.profile-dialog > .ui-watermark-clip > .ui-watermark-shape,
[data-notifications-dialog] > .ui-watermark-clip > .ui-watermark-shape{
  right:-112px!important;
  top:-70px!important;
  transform:none!important;
  border-color:color-mix(in srgb,var(--brand-primary) 8%,transparent)!important;
}
.page-intro > :not(.ui-watermark-clip),
.system-modal-dialog > :not(.ui-watermark-clip),
.profile-dialog > :not(.ui-watermark-clip),
[data-notifications-dialog] > :not(.ui-watermark-clip){
  position:relative!important;
  z-index:2!important;
}
.page-intro .banner-actions,
.system-modal-dialog .modal-actions,
.system-modal-dialog .actions,
.profile-dialog .modal-actions,
.profile-dialog .actions{
  position:relative!important;
  z-index:3!important;
}
@media(max-width:600px){
  .ui-watermark-shape{
    width:300px!important;
    height:300px!important;
    right:-155px!important;
  }
}


/* 1.13 — ações do banner independentes da marca-d'água */
@media(min-width:901px){
  .page .page-intro{
    position:relative!important;
  }
  .page .page-intro .banner-actions{
    position:absolute!important;
    right:34px!important;
    left:auto!important;
    top:50%!important;
    transform:translateY(-50%)!important;
    margin:0!important;
    display:flex!important;
    align-items:center!important;
    justify-content:flex-end!important;
    flex-wrap:nowrap!important;
    width:auto!important;
    min-width:0!important;
    z-index:4!important;
  }
  .page .page-intro .banner-actions > form{
    display:flex!important;
    align-items:center!important;
    justify-content:flex-end!important;
    width:auto!important;
    margin:0!important;
  }
}


/* 1.15 — modais seguem exatamente a lógica visual dos banners:
   uma única marca-d'água de 300px, em camada absoluta, sem duplicação. */
.system-modal-dialog::before,
.system-modal-dialog::after,
.profile-dialog::before,
.profile-dialog::after,
[data-notifications-dialog]::before,
[data-notifications-dialog]::after{
  content:none!important;
  display:none!important;
  background:none!important;
  border:0!important;
  box-shadow:none!important;
}

/* A marca do modal usa a mesma geometria principal do banner. */
.system-modal-dialog > .ui-watermark-clip > .ui-watermark-shape,
.profile-dialog > .ui-watermark-clip > .ui-watermark-shape,
[data-notifications-dialog] > .ui-watermark-clip > .ui-watermark-shape{
  width:300px!important;
  height:300px!important;
  right:-86px!important;
  top:50%!important;
  transform:translateY(-50%)!important;
  border:52px solid color-mix(in srgb,var(--brand-primary) 12%,transparent)!important;
  border-radius:50%!important;
}

/* Conteúdo e ações permanecem acima da marca, sem deslocamento. */
.system-modal-dialog > :not(.ui-watermark-clip),
.profile-dialog > :not(.ui-watermark-clip),
[data-notifications-dialog] > :not(.ui-watermark-clip){
  position:relative!important;
  z-index:2!important;
}
.system-modal-dialog .modal-actions,
.system-modal-dialog .actions,
.profile-dialog .modal-actions,
.profile-dialog .actions,
[data-notifications-dialog] .modal-actions,
[data-notifications-dialog] .actions{
  position:relative!important;
  z-index:3!important;
}


/* 1.16 — padrão global de dimensão mínima dos modais.
   Referência: modal de confirmação. Modais podem crescer conforme o conteúdo,
   mas não ficam menores que este padrão no desktop. */
:root{
  --modal-confirm-min-width:520px;
  --modal-confirm-min-height:220px;
}

.system-modal-dialog,
.profile-dialog,
[data-notifications-dialog]{
  min-width:min(var(--modal-confirm-min-width),calc(100vw - 32px))!important;
  min-height:var(--modal-confirm-min-height)!important;
  box-sizing:border-box!important;
}

/* Mantém exceções que precisam ser naturalmente maiores, sem reduzir o mínimo. */
.system-modal-dialog.wide,
.system-modal-dialog.modal-wide,
.profile-dialog.wide{
  min-width:min(var(--modal-confirm-min-width),calc(100vw - 32px))!important;
}

/* Em telas pequenas o modal respeita integralmente a viewport. */
@media(max-width:600px){
  .system-modal-dialog,
  .profile-dialog,
  [data-notifications-dialog]{
    width:calc(100vw - 24px)!important;
    min-width:0!important;
    max-width:calc(100vw - 24px)!important;
    min-height:var(--modal-confirm-min-height)!important;
  }
}


/* 1.17 — padrão global único para botões dos banners de página */
.page .page-intro .banner-actions .btn,
.page .page-intro .banner-actions button,
.page .page-intro .banner-actions input[type="submit"],
.page .page-intro .banner-actions a.btn{
  width:190px!important;
  min-width:190px!important;
  max-width:190px!important;
  height:56px!important;
  min-height:56px!important;
  padding:0 22px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  box-sizing:border-box!important;
  white-space:nowrap!important;
  line-height:1!important;
}

.page .page-intro .banner-actions form{
  width:auto!important;
}

@media(max-width:900px){
  .page .page-intro .banner-actions .btn,
  .page .page-intro .banner-actions button,
  .page .page-intro .banner-actions input[type="submit"],
  .page .page-intro .banner-actions a.btn{
    width:100%!important;
    min-width:0!important;
    max-width:none!important;
  }
}


/* 1.19 — PADRÕES GLOBAIS OBRIGATÓRIOS
   Modais, banners, tabelas, controles e responsividade passam a obedecer a uma única fonte visual. */
:root{
  --idmix-control-height:52px;
  --idmix-control-pad-x:18px;
  --idmix-modal-min-width:520px;
  --idmix-modal-banner-height:116px;
  --idmix-table-page-size:10;
}

/* Todos os botões têm a mesma ALTURA dos inputs. A largura é definida pelo conteúdo. */
:where(.btn,button:not(.modal-close):not(.mobile-menu-toggle):not(.top-icon):not(.secret-toggle):not(.accessibility-fab):not(.back-to-top),input[type="submit"],input[type="button"],input[type="reset"]){
  box-sizing:border-box!important;
  width:max-content!important;
  min-width:0!important;
  max-width:100%!important;
  height:var(--idmix-control-height)!important;
  min-height:var(--idmix-control-height)!important;
  max-height:var(--idmix-control-height)!important;
  padding:0 var(--idmix-control-pad-x)!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:8px!important;
  line-height:1!important;
  white-space:nowrap!important;
  flex:0 0 auto!important;
}
:where(input:not([type="checkbox"]):not([type="radio"]):not([type="color"]):not([type="hidden"]):not([type="submit"]):not([type="button"]):not([type="reset"]),select){
  box-sizing:border-box!important;
  height:var(--idmix-control-height)!important;
  min-height:var(--idmix-control-height)!important;
}
textarea{min-height:104px!important;resize:vertical}
:where(.modal-close,.mobile-menu-toggle,.top-icon,.secret-toggle,.accessibility-fab,.back-to-top,.table-pager button,.server-pager-nav .btn){
  width:var(--idmix-control-height)!important;
  min-width:var(--idmix-control-height)!important;
  max-width:var(--idmix-control-height)!important;
  height:var(--idmix-control-height)!important;
  min-height:var(--idmix-control-height)!important;
  max-height:var(--idmix-control-height)!important;
  padding:0!important;
}

/* Banners de páginas: botões não têm mais largura fixa; seguem a regra global dos inputs. */
.page .page-intro .banner-actions :where(.btn,button,input[type="submit"],input[type="button"]),
.page .banner-actions :where(.btn,button,input[type="submit"],input[type="button"]){
  width:max-content!important;
  min-width:0!important;
  max-width:100%!important;
  height:var(--idmix-control-height)!important;
  min-height:var(--idmix-control-height)!important;
  max-height:var(--idmix-control-height)!important;
  padding:0 var(--idmix-control-pad-x)!important;
}

/* TODO modal funcional usa no desktop, no mínimo, a largura do modal de confirmação. */
:where(.system-modal-dialog,.profile-dialog,.notification-dialog,[data-notifications-dialog],[role="dialog"]){
  box-sizing:border-box!important;
  min-width:min(var(--idmix-modal-min-width),calc(100vw - 32px))!important;
  min-height:220px!important;
}

/* O banner do modal replica a linguagem do banner do Dashboard. */
:where(.system-modal-dialog,.profile-dialog,.notification-dialog,[data-notifications-dialog],[role="dialog"]) > .modal-banner-head{
  box-sizing:border-box!important;
  position:relative!important;
  top:auto!important;
  overflow:hidden!important;
  isolation:isolate!important;
  display:flex!important;
  align-items:center!important;
  width:calc(100% + (2 * var(--modal-banner-gutter,36px)))!important;
  min-width:calc(100% + (2 * var(--modal-banner-gutter,36px)))!important;
  height:var(--idmix-modal-banner-height)!important;
  min-height:var(--idmix-modal-banner-height)!important;
  margin:0 calc(-1 * var(--modal-banner-gutter,36px)) 28px!important;
  padding:20px calc(var(--modal-banner-gutter,36px) + 52px) 20px var(--modal-banner-gutter,36px)!important;
  background:var(--brand-dark)!important;
  color:#fff!important;
  border-radius:inherit inherit 0 0!important;
}
:where(.system-modal-dialog,.profile-dialog,.notification-dialog,[data-notifications-dialog],[role="dialog"]) > .modal-banner-head::before,
:where(.system-modal-dialog,.profile-dialog,.notification-dialog,[data-notifications-dialog],[role="dialog"]) > .modal-banner-head::after{
  content:none!important;
  display:none!important;
}
.modal-banner-head > .ui-watermark-clip{
  position:absolute!important;
  inset:0!important;
  overflow:hidden!important;
  pointer-events:none!important;
  z-index:0!important;
  border-radius:inherit!important;
}
.modal-banner-head > .ui-watermark-clip > .ui-watermark-shape,
.page-intro > .ui-watermark-clip > .ui-watermark-shape{
  position:absolute!important;
  width:300px!important;
  height:300px!important;
  right:-86px!important;
  top:50%!important;
  transform:translateY(-50%)!important;
  border:52px solid color-mix(in srgb,var(--brand-primary) 12%,transparent)!important;
  border-radius:50%!important;
  box-sizing:border-box!important;
  pointer-events:none!important;
}
.modal-banner-head > :not(.ui-watermark-clip){position:relative!important;z-index:2!important}
.modal-banner-head h2{
  margin:0!important;
  font-size:clamp(28px,3vw,38px)!important;
  line-height:1.02!important;
  letter-spacing:-1.2px!important;
  font-weight:600!important;
}
.modal-banner-head .modal-close{position:absolute!important;right:18px!important;top:50%!important;transform:translateY(-50%)!important;z-index:4!important;color:#fff!important}

/* Nunca permita segunda marca-d'água em modal. A única válida fica dentro do banner. */
:where(.system-modal-dialog,.profile-dialog,.notification-dialog,[data-notifications-dialog],[role="dialog"]) > .ui-watermark-clip,
:where(.system-modal-dialog,.profile-dialog,.notification-dialog,[data-notifications-dialog],[role="dialog"]) > .banner-watermark-clip,
:where(.system-modal-dialog,.profile-dialog,.notification-dialog,[data-notifications-dialog],[role="dialog"]) > .banner-watermark-shape,
:where(.system-modal-dialog,.profile-dialog,.notification-dialog,[data-notifications-dialog],[role="dialog"]) > .modal-watermark,
:where(.system-modal-dialog,.profile-dialog,.notification-dialog,[data-notifications-dialog],[role="dialog"]) > .watermark{
  display:none!important;
}

/* Tabelas: mesma barra, filtro e paginação em qualquer parte do sistema. */
.table-tools.standard-table-tools,
.personalized-table-tools{
  width:100%!important;
  box-sizing:border-box!important;
  display:flex!important;
  align-items:flex-end!important;
  gap:10px!important;
  flex-wrap:wrap!important;
}
.table-tools .table-filter-search{flex:1 1 260px!important;min-width:min(260px,100%)!important}
.table-tools .table-filter-search input{width:100%!important}
.table-pagination-footer,
.server-pager{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:12px!important;
  flex-wrap:wrap!important;
}
.table-pager,.server-pager-nav{display:flex!important;align-items:center!important;gap:8px!important}
.table-pager > .btn,.server-pager-nav > .btn{font-size:22px!important}

/* Renderização: blocos abaixo da dobra não precisam ser pintados antes de entrar na viewport. */
.page > :where(.card,.table-card,.form-card,.settings-section,details):not(.page-intro){
  content-visibility:auto;
  contain-intrinsic-size:auto 480px;
}

@media(max-width:600px){
  :root{--idmix-modal-banner-height:108px}
  :where(.system-modal-dialog,.profile-dialog,.notification-dialog,[data-notifications-dialog],[role="dialog"]){
    width:calc(100vw - 24px)!important;
    min-width:0!important;
    max-width:calc(100vw - 24px)!important;
  }
  :where(.system-modal-dialog,.profile-dialog,.notification-dialog,[data-notifications-dialog],[role="dialog"]) > .modal-banner-head{
    width:calc(100% + 48px)!important;
    min-width:calc(100% + 48px)!important;
    margin-left:-24px!important;
    margin-right:-24px!important;
    padding-left:24px!important;
    padding-right:72px!important;
  }
  :where(.btn,button:not(.modal-close):not(.mobile-menu-toggle):not(.top-icon):not(.secret-toggle):not(.accessibility-fab):not(.back-to-top),input[type="submit"],input[type="button"],input[type="reset"]){
    width:max-content!important;
    max-width:100%!important;
  }
  .table-tools.standard-table-tools{display:grid!important;grid-template-columns:1fr!important}
}


/* ============================================================
   1.20 — correção definitiva dos botões de banner
   Regra global: altura igual aos inputs; largura pelo conteúdo.
   Nenhum conteúdo textual/ícone pode ultrapassar o próprio botão.
   ============================================================ */
.page .page-intro .banner-actions,
.page .banner-actions{
  overflow:visible!important;
  max-width:none!important;
}

.page .page-intro .banner-actions > *,
.page .banner-actions > *{
  flex:0 0 auto!important;
  width:auto!important;
  min-width:0!important;
  max-width:none!important;
}

.page .page-intro .banner-actions :is(.btn,button,input[type="submit"],input[type="button"]),
.page .page-intro .banner-actions > form > :is(.btn,button,input[type="submit"],input[type="button"]),
.page .banner-actions :is(.btn,button,input[type="submit"],input[type="button"]),
.page .banner-actions > form > :is(.btn,button,input[type="submit"],input[type="button"]){
  box-sizing:border-box!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  flex:0 0 auto!important;

  width:auto!important;
  min-width:max-content!important;
  max-width:none!important;

  height:var(--idmix-control-height,52px)!important;
  min-height:var(--idmix-control-height,52px)!important;
  max-height:var(--idmix-control-height,52px)!important;

  padding-left:var(--idmix-control-pad-x,18px)!important;
  padding-right:var(--idmix-control-pad-x,18px)!important;
  gap:8px!important;

  white-space:nowrap!important;
  overflow:visible!important;
  text-overflow:clip!important;
  line-height:1.15!important;
}

.page .page-intro .banner-actions .btn-label,
.page .banner-actions .btn-label{
  display:inline-block!important;
  flex:0 0 auto!important;
  min-width:max-content!important;
  max-width:none!important;
  white-space:nowrap!important;
  overflow:visible!important;
}

.page .page-intro .banner-actions .btn-icon,
.page .banner-actions .btn-icon{
  flex:0 0 auto!important;
}

/* Em telas estreitas, o botão continua contendo o texto.
   O grupo pode quebrar linha em vez de cortar o conteúdo. */
@media(max-width:900px){
  .page .page-intro .banner-actions,
  .page .banner-actions{
    display:flex!important;
    flex-wrap:wrap!important;
    overflow:visible!important;
  }
  .page .page-intro .banner-actions :is(.btn,button,input[type="submit"],input[type="button"]),
  .page .banner-actions :is(.btn,button,input[type="submit"],input[type="button"]){
    width:auto!important;
    min-width:max-content!important;
    max-width:100%!important;
  }
}

/* ============================================================
   1.20 — padrão visual único para controles de tabelas
   ============================================================ */
.idmix-table-standard-tools{
  width:100%!important;
  display:flex!important;
  align-items:flex-end!important;
  gap:10px!important;
  flex-wrap:wrap!important;
  box-sizing:border-box!important;
  margin:0 0 12px!important;
}
.idmix-table-standard-tools .field{
  flex:1 1 280px!important;
  min-width:min(280px,100%)!important;
  margin:0!important;
}
.idmix-table-standard-tools input[type="search"]{
  width:100%!important;
}
.idmix-table-standard-footer{
  width:100%!important;
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:12px!important;
  flex-wrap:wrap!important;
  box-sizing:border-box!important;
  margin:12px 0 0!important;
}
.idmix-table-standard-pager{
  display:flex!important;
  align-items:center!important;
  gap:8px!important;
}
.idmix-table-standard-pager .btn{
  width:var(--idmix-control-height,52px)!important;
  min-width:var(--idmix-control-height,52px)!important;
  max-width:var(--idmix-control-height,52px)!important;
  height:var(--idmix-control-height,52px)!important;
  min-height:var(--idmix-control-height,52px)!important;
  max-height:var(--idmix-control-height,52px)!important;
  padding:0!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  font-size:22px!important;
}


/* ============================================================
   1.21 — tamanho mínimo GLOBAL de modais
   Referência obrigatória: modal de confirmação.
   A regra alcança todas as estruturas de diálogo do sistema,
   não apenas classes específicas usadas por alguns módulos.
   ============================================================ */
:root{
  --idmix-modal-min-width:520px;
  --idmix-modal-min-height:220px;
}

/* Todos os containers funcionais de modal/dialog conhecidos */
:is(
  .system-modal-dialog,
  .profile-dialog,
  [data-notifications-dialog],
  .modal-dialog,
  .modal-content,
  .dialog,
  [role="dialog"],
  [aria-modal="true"]
){
  box-sizing:border-box!important;
  min-width:min(var(--idmix-modal-min-width),calc(100vw - 32px))!important;
  min-height:var(--idmix-modal-min-height)!important;
}

/* Quando role/dialog está no overlay e o conteúdo real é um filho,
   aplica o mínimo ao primeiro painel interno também. */
:is([role="dialog"],[aria-modal="true"]) > :is(
  .modal-dialog,
  .modal-content,
  .dialog-content,
  .dialog-panel,
  .system-modal-dialog,
  .profile-dialog,
  .card
){
  box-sizing:border-box!important;
  min-width:min(var(--idmix-modal-min-width),calc(100vw - 32px))!important;
  min-height:var(--idmix-modal-min-height)!important;
}

/* Neutraliza larguras históricas pequenas sem impedir modais maiores.
   Não fixa width em 520: apenas garante o mínimo. */
:is(
  .system-modal-dialog,
  .profile-dialog,
  [data-notifications-dialog],
  .modal-dialog,
  .modal-content,
  .dialog,
  [role="dialog"],
  [aria-modal="true"]
){
  width:auto;
  max-width:min(96vw,1200px);
}

/* Exceções explicitamente largas continuam maiores. */
:is(
  .system-modal-dialog,
  .profile-dialog,
  .modal-dialog,
  .modal-content,
  .dialog,
  [role="dialog"],
  [aria-modal="true"]
).wide,
:is(
  .system-modal-dialog,
  .profile-dialog,
  .modal-dialog,
  .modal-content,
  .dialog,
  [role="dialog"],
  [aria-modal="true"]
).modal-wide,
:is(
  .system-modal-dialog,
  .profile-dialog,
  .modal-dialog,
  .modal-content,
  .dialog,
  [role="dialog"],
  [aria-modal="true"]
)[data-modal-size="wide"]{
  min-width:min(760px,calc(100vw - 32px))!important;
}

/* Mobile: nunca estoura a viewport. */
@media(max-width:600px){
  :is(
    .system-modal-dialog,
    .profile-dialog,
    [data-notifications-dialog],
    .modal-dialog,
    .modal-content,
    .dialog,
    [role="dialog"],
    [aria-modal="true"]
  ){
    width:calc(100vw - 24px)!important;
    min-width:0!important;
    max-width:calc(100vw - 24px)!important;
    min-height:var(--idmix-modal-min-height)!important;
  }

  :is([role="dialog"],[aria-modal="true"]) > :is(
    .modal-dialog,
    .modal-content,
    .dialog-content,
    .dialog-panel,
    .system-modal-dialog,
    .profile-dialog,
    .card
  ){
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
  }
}


/* ============================================================
   1.23 — correção do padrão de modais e tabelas
   ============================================================ */

/* MODAIS
   Não usar largura baseada no conteúdo.
   Modal comum = largura padrão fixa de 520px no desktop.
   Modais explicitamente largos continuam usando seus tamanhos próprios.
*/
:is(
  .system-modal-dialog,
  .profile-dialog,
  [data-notifications-dialog],
  .modal-dialog,
  .modal-content,
  .dialog,
  [role="dialog"],
  [aria-modal="true"]
){
  box-sizing:border-box!important;
  width:min(520px,calc(100vw - 32px))!important;
  min-width:min(520px,calc(100vw - 32px))!important;
  max-width:min(520px,calc(100vw - 32px))!important;
  min-height:220px!important;
}

/* Se o atributo de diálogo está no overlay, o painel interno recebe
   o tamanho padrão em vez do overlay inteiro. */
:is([role="dialog"],[aria-modal="true"]) > :is(
  .modal-dialog,
  .modal-content,
  .dialog-content,
  .dialog-panel,
  .system-modal-dialog,
  .profile-dialog,
  .card
){
  box-sizing:border-box!important;
  width:min(520px,calc(100vw - 32px))!important;
  min-width:min(520px,calc(100vw - 32px))!important;
  max-width:min(520px,calc(100vw - 32px))!important;
}

/* Modais largos somente quando explicitamente definidos como largos. */
:is(
  .system-modal-dialog,
  .profile-dialog,
  .modal-dialog,
  .modal-content,
  .dialog
).wide,
:is(
  .system-modal-dialog,
  .profile-dialog,
  .modal-dialog,
  .modal-content,
  .dialog
).modal-wide,
:is(
  .system-modal-dialog,
  .profile-dialog,
  .modal-dialog,
  .modal-content,
  .dialog
)[data-modal-size="wide"]{
  width:min(760px,calc(100vw - 32px))!important;
  min-width:min(760px,calc(100vw - 32px))!important;
  max-width:min(760px,calc(100vw - 32px))!important;
}

/* Privacidade permanece um caso explicitamente largo. */
:is(
  .system-modal-dialog,
  .modal-dialog,
  .modal-content,
  .dialog
)[data-modal-size="privacy"],
.privacy-dialog,
.privacy-modal-dialog{
  width:min(80vw,1100px)!important;
  min-width:min(760px,calc(100vw - 32px))!important;
  max-width:min(80vw,1100px)!important;
}

@media(max-width:600px){
  :is(
    .system-modal-dialog,
    .profile-dialog,
    [data-notifications-dialog],
    .modal-dialog,
    .modal-content,
    .dialog
  ){
    width:calc(100vw - 24px)!important;
    min-width:calc(100vw - 24px)!important;
    max-width:calc(100vw - 24px)!important;
  }
}


/* ============================================================
   1.24 — upload ajustado dentro do campo + modais large
   ============================================================ */

/* INPUT FILE
   Mantém botão, nome do arquivo e conteúdo visual dentro do controle.
*/
input[type="file"]{
  box-sizing:border-box!important;
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  height:var(--idmix-control-height,52px)!important;
  min-height:var(--idmix-control-height,52px)!important;
  padding:0 12px 0 0!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
  line-height:var(--idmix-control-height,52px)!important;
}

input[type="file"]::file-selector-button{
  box-sizing:border-box!important;
  height:100%!important;
  min-height:100%!important;
  margin:0 12px 0 0!important;
  padding:0 16px!important;
  border:0!important;
  border-right:1px solid rgba(15,23,42,.12)!important;
  border-radius:0!important;
  font:inherit!important;
  line-height:1!important;
  cursor:pointer!important;
  vertical-align:middle!important;
}

/* Safari/WebKit legado */
input[type="file"]::-webkit-file-upload-button{
  box-sizing:border-box!important;
  height:100%!important;
  min-height:100%!important;
  margin:0 12px 0 0!important;
  padding:0 16px!important;
  border:0!important;
  border-right:1px solid rgba(15,23,42,.12)!important;
  border-radius:0!important;
  font:inherit!important;
  line-height:1!important;
  cursor:pointer!important;
  vertical-align:middle!important;
}

/* Wrappers de upload não podem deixar o conteúdo escapar. */
.file-upload,
.upload-field,
.input-upload,
.field:has(input[type="file"]){
  min-width:0!important;
  max-width:100%!important;
  overflow:hidden!important;
  box-sizing:border-box!important;
}

/* MODAIS
   Novo padrão global: large modal.
   Modal comum deixa de usar 520px e passa a 760px no desktop.
*/
:root{
  --idmix-modal-large-width:760px;
}

:is(
  .system-modal-dialog,
  .profile-dialog,
  [data-notifications-dialog],
  .modal-dialog,
  .modal-content,
  .dialog
){
  box-sizing:border-box!important;
  width:min(var(--idmix-modal-large-width),calc(100vw - 32px))!important;
  min-width:min(var(--idmix-modal-large-width),calc(100vw - 32px))!important;
  max-width:min(var(--idmix-modal-large-width),calc(100vw - 32px))!important;
  min-height:220px!important;
}

/* Quando o atributo de diálogo estiver no overlay, o painel interno recebe
   o padrão large sem redimensionar o overlay inteiro. */
:is([role="dialog"],[aria-modal="true"]) > :is(
  .modal-dialog,
  .modal-content,
  .dialog-content,
  .dialog-panel,
  .system-modal-dialog,
  .profile-dialog,
  .card
){
  box-sizing:border-box!important;
  width:min(var(--idmix-modal-large-width),calc(100vw - 32px))!important;
  min-width:min(var(--idmix-modal-large-width),calc(100vw - 32px))!important;
  max-width:min(var(--idmix-modal-large-width),calc(100vw - 32px))!important;
}

/* Modais extra-largos continuam explicitamente maiores. */
:is(
  .system-modal-dialog,
  .profile-dialog,
  .modal-dialog,
  .modal-content,
  .dialog
).modal-xl,
:is(
  .system-modal-dialog,
  .profile-dialog,
  .modal-dialog,
  .modal-content,
  .dialog
)[data-modal-size="xl"]{
  width:min(960px,calc(100vw - 32px))!important;
  min-width:min(960px,calc(100vw - 32px))!important;
  max-width:min(960px,calc(100vw - 32px))!important;
}

/* Privacidade permanece na regra ampla específica. */
:is(
  .system-modal-dialog,
  .modal-dialog,
  .modal-content,
  .dialog
)[data-modal-size="privacy"],
.privacy-dialog,
.privacy-modal-dialog{
  width:min(80vw,1100px)!important;
  min-width:min(var(--idmix-modal-large-width),calc(100vw - 32px))!important;
  max-width:min(80vw,1100px)!important;
}

@media(max-width:600px){
  :is(
    .system-modal-dialog,
    .profile-dialog,
    [data-notifications-dialog],
    .modal-dialog,
    .modal-content,
    .dialog
  ){
    width:calc(100vw - 24px)!important;
    min-width:calc(100vw - 24px)!important;
    max-width:calc(100vw - 24px)!important;
  }
}


/* 1.28 — bloco de retorno de versão sempre identificável em Atualizações */
.page-updates > .update-rollback-card{
  border-width:1px!important;
}
.page-updates > .update-rollback-card .section-heading{
  margin-bottom:8px!important;
}




/* ============================================================
   1.31 — tabelas consolidadas, dropdown Exportar e espaçamento
   ============================================================ */
.page > :where(.card,.form-card,.table-card,.settings-section,details) + :where(.card,.form-card,.table-card,.settings-section,details),
.page-updates > .card + .card{
  margin-top:20px!important;
}
.page-updates{display:grid!important;grid-template-columns:1fr!important;gap:20px!important;margin-top:20px!important;}
.page-updates > .card{margin:0!important;}

.idmix-table-toolbar,.reconciliation-filters,.compact-filters,.report-filters,.audit-filters{
  position:relative!important;
}
.idmix-table-toolbar{
  display:flex!important;align-items:flex-end!important;justify-content:space-between!important;gap:12px!important;flex-wrap:wrap!important;width:100%!important;margin:0 0 12px!important;
}
.idmix-table-search{flex:1 1 320px!important;min-width:220px!important;margin:0!important;}
.idmix-table-search input{width:100%!important;}
.idmix-table-actions{display:flex!important;align-items:center!important;justify-content:flex-end!important;gap:8px!important;flex:0 0 auto!important;margin-left:auto!important;}
.idmix-export-dropdown{position:relative!important;display:inline-flex!important;}
.idmix-export-menu{position:absolute!important;top:calc(100% + 6px)!important;right:0!important;z-index:1200!important;min-width:150px!important;padding:6px!important;background:#fff!important;border:1px solid var(--line)!important;box-shadow:0 12px 30px rgba(15,23,42,.16)!important;}
.idmix-export-menu[hidden]{display:none!important;}
.idmix-export-menu button{display:block!important;width:100%!important;min-height:42px!important;padding:0 12px!important;border:0!important;background:transparent!important;text-align:left!important;font:inherit!important;cursor:pointer!important;}
.idmix-export-menu button:hover,.idmix-export-menu button:focus-visible{background:color-mix(in srgb,var(--brand-primary) 8%,#fff)!important;}
.table.idmix-table-131{width:100%!important;border-collapse:collapse!important;border-radius:0!important;}
.table.idmix-table-131 th,.table.idmix-table-131 td{vertical-align:middle!important;}
.idmix-table-pagination-131{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:12px!important;flex-wrap:wrap!important;width:100%!important;margin-top:12px!important;}
.idmix-table-pager-131{display:flex!important;gap:6px!important;align-items:center!important;flex-wrap:wrap!important;}
.idmix-table-pager-131 .btn{width:44px!important;min-width:44px!important;height:44px!important;min-height:44px!important;padding:0!important;}
.version-restore-card .restore-version-grid{margin:16px 0!important;}
@media(max-width:700px){.idmix-table-actions{width:100%!important;margin-left:0!important;justify-content:flex-start!important}.idmix-export-menu{left:0!important;right:auto!important}.idmix-table-pagination-131{align-items:flex-start!important}.page-updates{gap:16px!important}}


/* ============================================================
   1.32 — padrão visual único das tabelas
   ============================================================ */
.idmix-table-toolbar-132{
  display:flex!important;
  width:100%!important;
  align-items:flex-end!important;
  justify-content:space-between!important;
  gap:12px!important;
  flex-wrap:wrap!important;
  margin:0 0 12px!important;
  padding:0!important;
  border:0!important;
  background:transparent!important;
}
.idmix-table-toolbar-132 .idmix-table-search{
  flex:1 1 320px!important;
  min-width:220px!important;
  margin:0!important;
}
.idmix-table-toolbar-132 .idmix-table-search label{
  display:block!important;
  margin:0 0 6px!important;
  font-weight:600!important;
}
.idmix-table-toolbar-132 .idmix-table-search input{
  width:100%!important;
  height:52px!important;
  min-height:52px!important;
}
.idmix-table-toolbar-132 .idmix-table-actions{
  display:flex!important;
  align-items:center!important;
  justify-content:flex-end!important;
  gap:8px!important;
  flex-wrap:wrap!important;
  margin:0!important;
}
.idmix-table-toolbar-132 .btn{
  width:auto!important;
  min-width:max-content!important;
  height:52px!important;
  min-height:52px!important;
}

/* Um único campo Buscar: a busca nativa das páginas fica como
   mecanismo server-side invisível, sem criar segundo campo na UI. */
form.embedded-table-filter input[type="search"][data-idmix-native-search="1"]{
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  opacity:0!important;
  pointer-events:none!important;
  overflow:hidden!important;
}
form.embedded-table-filter .field:has(> input[type="search"][data-idmix-native-search="1"]){
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  overflow:hidden!important;
  padding:0!important;
  margin:0!important;
}
form.embedded-table-filter .compact-filter-row > input[type="search"][data-idmix-native-search="1"]{
  position:absolute!important;
}
/* Botão Filtrar não é necessário: select/data já atualizam automaticamente. */
form.embedded-table-filter button.btn-primary:not([type="button"]),
form.embedded-table-filter .filter-actions > button:not([name="export"]){
  display:none!important;
}

/* Filtros específicos continuam visíveis como segunda linha de refinamento. */
form.embedded-table-filter{
  width:100%!important;
  margin:0 0 12px!important;
}
form.embedded-table-filter .compact-filter-row,
form.embedded-table-filter.report-filter-line,
form.embedded-table-filter.audit-filters{
  gap:10px!important;
}

/* A tabela em si é sempre o mesmo padrão estrutural. */
table.idmix-table-132{
  display:table!important;
  width:100%!important;
  max-width:100%!important;
  margin:0!important;
  border-collapse:collapse!important;
  border-spacing:0!important;
  table-layout:auto!important;
  border-radius:0!important;
  background:#fff!important;
}
table.idmix-table-132 > :not(caption) > * > *{
  padding:14px 16px!important;
  vertical-align:middle!important;
  border-bottom:1px solid var(--line)!important;
  background:transparent!important;
}
table.idmix-table-132 > thead > tr > th{
  min-height:52px!important;
  font-size:13px!important;
  font-weight:700!important;
  white-space:nowrap!important;
  border-bottom:2px solid var(--line)!important;
}
table.idmix-table-132 > tbody > tr:nth-of-type(odd) > *{
  background:color-mix(in srgb,var(--brand-primary) 2%,#fff)!important;
}
table.idmix-table-132 > tbody > tr:hover > *{
  background:color-mix(in srgb,var(--brand-primary) 5%,#fff)!important;
}
table.idmix-table-132 tr[hidden]{
  display:none!important;
}

/* Paginação local única */
.idmix-table-footer-132{
  display:flex!important;
  width:100%!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:12px!important;
  flex-wrap:wrap!important;
  margin:12px 0 0!important;
}
.idmix-table-pager-132{
  display:flex!important;
  align-items:center!important;
  gap:6px!important;
  flex-wrap:wrap!important;
}
.idmix-table-pager-132 .btn{
  width:44px!important;
  min-width:44px!important;
  height:44px!important;
  min-height:44px!important;
  padding:0!important;
}

/* Exportar abre somente para baixo. */
.idmix-export-dropdown{
  position:relative!important;
  display:inline-flex!important;
}
.idmix-export-menu{
  position:absolute!important;
  top:calc(100% + 6px)!important;
  right:0!important;
  bottom:auto!important;
  z-index:1300!important;
  min-width:150px!important;
  padding:6px!important;
  background:#fff!important;
  border:1px solid var(--line)!important;
  box-shadow:0 12px 28px rgba(15,23,42,.14)!important;
}
.idmix-export-menu[hidden]{display:none!important;}
.idmix-export-menu button{
  display:flex!important;
  width:100%!important;
  min-height:42px!important;
  align-items:center!important;
  padding:0 12px!important;
  border:0!important;
  background:transparent!important;
  color:var(--ink)!important;
  text-align:left!important;
  cursor:pointer!important;
}
.idmix-export-menu button:hover{
  background:color-mix(in srgb,var(--brand-primary) 7%,#fff)!important;
}

/* Mata apenas controles globais legados que poderiam reaparecer. */
.idmix-table-pagination-131,
.idmix-bs-table-toolbar,
.idmix-bs-table-footer,
.idmix-table-standard-tools,
.idmix-table-standard-footer{
  display:none!important;
}

@media(max-width:700px){
  .idmix-table-toolbar-132{
    align-items:stretch!important;
  }
  .idmix-table-toolbar-132 .idmix-table-search,
  .idmix-table-toolbar-132 .idmix-table-actions{
    flex:1 1 100%!important;
    width:100%!important;
  }
  .idmix-table-toolbar-132 .idmix-table-actions{
    justify-content:flex-start!important;
  }
}


/* ============================================================
   1.33 — layout definitivo das tabelas
   ============================================================ */

/* Barras antigas não participam mais do layout. */
.idmix-table-toolbar-132,
.idmix-table-footer-132,
.idmix-table-pagination-131,
.idmix-bs-table-toolbar,
.idmix-bs-table-footer,
.idmix-table-standard-tools,
.idmix-table-standard-footer{
  display:none!important;
}

/* O formulário/filtro nativo continua funcional, porém invisível.
   Os controles visíveis são clones sincronizados na barra única. */
.idmix-native-filter-host-133,
.idmix-native-filter-host-133[hidden]{
  display:none!important;
}

/* Uma única barra, alinhada à mesma largura da tabela. */
.idmix-table-toolbar-133{
  display:grid!important;
  grid-template-columns:minmax(260px,1fr) auto auto!important;
  align-items:end!important;
  gap:12px!important;
  width:100%!important;
  max-width:100%!important;
  margin:0 0 14px!important;
  padding:0!important;
  border:0!important;
  background:transparent!important;
  box-sizing:border-box!important;
}
.idmix-table-search-133{
  min-width:0!important;
  margin:0!important;
}
.idmix-table-search-133 label,
.idmix-table-filter-extra label{
  display:block!important;
  margin:0 0 6px!important;
  font-size:12px!important;
  line-height:1.2!important;
  font-weight:700!important;
  letter-spacing:.04em!important;
  text-transform:uppercase!important;
  color:var(--muted)!important;
}
.idmix-table-search-133 input,
.idmix-table-filter-extra select,
.idmix-table-filter-extra input{
  width:100%!important;
  min-width:0!important;
  height:52px!important;
  min-height:52px!important;
  margin:0!important;
}

.idmix-table-filters-133{
  display:flex!important;
  align-items:end!important;
  gap:10px!important;
  min-width:0!important;
  flex-wrap:wrap!important;
}
.idmix-table-filter-extra{
  min-width:180px!important;
  margin:0!important;
}

.idmix-table-actions-133{
  display:flex!important;
  align-items:center!important;
  justify-content:flex-end!important;
  gap:8px!important;
  margin:0!important;
  white-space:nowrap!important;
}
.idmix-table-actions-133 > .btn,
.idmix-table-actions-133 .idmix-export-toggle{
  width:auto!important;
  min-width:max-content!important;
  height:52px!important;
  min-height:52px!important;
  margin:0!important;
}

/* Exportar sempre abre abaixo. */
.idmix-export-dropdown{
  position:relative!important;
  display:inline-flex!important;
}
.idmix-export-menu{
  position:absolute!important;
  top:calc(100% + 6px)!important;
  right:0!important;
  bottom:auto!important;
  left:auto!important;
  z-index:1500!important;
  min-width:160px!important;
  padding:6px!important;
  background:#fff!important;
  border:1px solid var(--line)!important;
  box-shadow:0 14px 32px rgba(15,23,42,.16)!important;
}
.idmix-export-menu[hidden]{display:none!important;}
.idmix-export-menu button{
  display:flex!important;
  width:100%!important;
  min-height:42px!important;
  align-items:center!important;
  padding:0 12px!important;
  border:0!important;
  background:transparent!important;
  color:var(--ink)!important;
  text-align:left!important;
  cursor:pointer!important;
}
.idmix-export-menu button:hover{
  background:color-mix(in srgb,var(--brand-primary) 7%,#fff)!important;
}

/* Mesmo recuo horizontal para barra, tabela e rodapé dentro de table-section. */
.table-section > .idmix-table-toolbar-133{
  width:calc(100% - 60px)!important;
  margin:18px 30px 14px!important;
}
.table-section > .table-scroll,
.table-section > .table-responsive,
.table-section > .reconciliation-table-wrap{
  width:calc(100% - 60px)!important;
  max-width:calc(100% - 60px)!important;
  margin:0 30px!important;
}

/* Cards que não usam table-section (ex.: Últimos clientes do Dashboard). */
.table-card:not(.table-section) > .idmix-table-toolbar-133{
  width:100%!important;
  margin:18px 0 14px!important;
}
.table-card:not(.table-section) > .table-scroll,
.table-card:not(.table-section) > .table-responsive{
  width:100%!important;
  max-width:100%!important;
  margin:0!important;
}

/* Estrutura da tabela: sem caixa solta, sem espaços gigantes. */
table.idmix-table-133{
  display:table!important;
  width:100%!important;
  max-width:100%!important;
  margin:0!important;
  border-collapse:collapse!important;
  border-spacing:0!important;
  table-layout:auto!important;
  border-radius:0!important;
  border-top:1px solid var(--line)!important;
  border-bottom:1px solid var(--line)!important;
  background:#fff!important;
}
table.idmix-table-133 > :not(caption) > * > *{
  padding:14px 16px!important;
  min-height:52px!important;
  vertical-align:middle!important;
  border:0!important;
  border-bottom:1px solid var(--line)!important;
  box-shadow:none!important;
}
table.idmix-table-133 > thead > tr > th{
  height:52px!important;
  font-size:13px!important;
  font-weight:700!important;
  letter-spacing:.04em!important;
  text-transform:uppercase!important;
  color:var(--muted)!important;
  white-space:nowrap!important;
  background:#fff!important;
  border-bottom:2px solid var(--line)!important;
}
table.idmix-table-133 > tbody > tr:nth-of-type(odd) > *{
  background:color-mix(in srgb,var(--brand-primary) 2%,#fff)!important;
}
table.idmix-table-133 > tbody > tr:hover > *{
  background:color-mix(in srgb,var(--brand-primary) 5%,#fff)!important;
}
table.idmix-table-133 tr[hidden]{
  display:none!important;
}

/* Estado vazio é uma linha da própria tabela, sem virar "1 registro". */
table.idmix-table-133 tbody tr td[colspan].muted{
  height:66px!important;
  padding:18px 16px!important;
  color:var(--muted)!important;
}

/* Rodapé local único. */
.idmix-table-footer-133{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:12px!important;
  width:100%!important;
  min-height:48px!important;
  margin:12px 0 0!important;
  padding:0!important;
  border:0!important;
  background:transparent!important;
}
.table-section > .idmix-table-footer-133{
  width:calc(100% - 60px)!important;
  margin:12px 30px 20px!important;
}
.idmix-table-pager-133{
  display:flex!important;
  align-items:center!important;
  justify-content:flex-end!important;
  gap:6px!important;
  margin-left:auto!important;
}
.idmix-table-pager-133 .btn{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:44px!important;
  min-width:44px!important;
  height:44px!important;
  min-height:44px!important;
  margin:0!important;
  padding:0!important;
}

/* Rodapé server-side: elimina a caixa alta/vazia exibida nas imagens. */
.table-card > .server-pager,
.table-section > .server-pager,
.page .server-pager{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:12px!important;
  width:auto!important;
  min-height:48px!important;
  height:auto!important;
  margin:12px 0 0!important;
  padding:0!important;
  border:0!important;
  background:transparent!important;
  box-shadow:none!important;
}
.table-section > .server-pager{
  width:calc(100% - 60px)!important;
  margin:12px 30px 20px!important;
}
.server-pager-count{
  margin:0!important;
  padding:0!important;
  color:var(--muted)!important;
  white-space:normal!important;
}
.server-pager-nav{
  display:flex!important;
  align-items:center!important;
  justify-content:flex-end!important;
  gap:6px!important;
  margin:0 0 0 auto!important;
}
.server-pager-nav > .btn,
.server-pager-disabled{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:44px!important;
  min-width:44px!important;
  height:44px!important;
  min-height:44px!important;
  padding:0!important;
  margin:0!important;
}

/* Não mostra paginação inútil como 1 de 1 com setas desabilitadas. */
.server-pager[data-idmix-single-page="1"] .server-pager-nav{
  display:none!important;
}

/* Mobile mantém a mesma organização sem quebrar largura. */
@media(max-width:980px){
  .idmix-table-toolbar-133{
    grid-template-columns:1fr!important;
    align-items:stretch!important;
  }
  .idmix-table-filters-133{
    display:grid!important;
    grid-template-columns:repeat(auto-fit,minmax(180px,1fr))!important;
    width:100%!important;
  }
  .idmix-table-actions-133{
    justify-content:flex-start!important;
  }
}
@media(max-width:700px){
  .table-section > .idmix-table-toolbar-133,
  .table-section > .table-scroll,
  .table-section > .table-responsive,
  .table-section > .reconciliation-table-wrap,
  .table-section > .idmix-table-footer-133,
  .table-section > .server-pager{
    width:calc(100% - 36px)!important;
    max-width:calc(100% - 36px)!important;
    margin-left:18px!important;
    margin-right:18px!important;
  }
  .idmix-table-actions-133{
    width:100%!important;
    flex-wrap:wrap!important;
  }
}


/* ============================================================
   1.37 — menu lateral na Cor de contraste
   ============================================================ */
@media(min-width:901px){
  body.menu-layout-left .main-nav{
    background:var(--brand-dark)!important;
    border-right:1px solid color-mix(in srgb,var(--brand-light) 16%,transparent)!important;
  }
  body.menu-layout-left .main-nav .side-link{
    color:color-mix(in srgb,var(--brand-light) 92%,#fff)!important;
    background:transparent!important;
  }
  body.menu-layout-left .main-nav .side-link:hover,
  body.menu-layout-left .main-nav .side-link.active{
    color:#fff!important;
    background:color-mix(in srgb,var(--brand-primary) 22%,var(--brand-dark))!important;
  }
  body.menu-layout-left .main-nav .side-link svg{
    color:currentColor!important;
    stroke:currentColor!important;
  }
  body.menu-layout-left .sidebar-menu-logout{
    display:flex!important;
    width:100%!important;
    min-height:46px!important;
    height:46px!important;
    margin:2px 0 0!important;
    padding:0 14px!important;
    align-items:center!important;
    justify-content:flex-start!important;
    gap:10px!important;
    border-top:1px solid color-mix(in srgb,var(--brand-light) 16%,transparent)!important;
  }
  body.menu-layout-left .sidebar-menu-logout svg{
    width:20px!important;
    height:20px!important;
    fill:none!important;
    stroke:currentColor!important;
    stroke-width:1.7!important;
    stroke-linecap:round!important;
    stroke-linejoin:round!important;
  }
  body.menu-layout-left .sidebar-footer{
    display:none!important;
  }
}


/* ============================================================
   1.38 — Cor de contraste somente na área inteira do menu
   ============================================================ */
@media(min-width:901px){
  body.menu-layout-left .main-nav{
    background:var(--brand-dark)!important;
    background-color:var(--brand-dark)!important;
  }

  /* Os links não recebem a Cor de contraste como fundo individual. */
  body.menu-layout-left .main-nav .side-link,
  body.menu-layout-left .main-nav .sidebar-menu-logout{
    background:transparent!important;
  }

  /* Hover/ativo continuam distinguíveis sem criar blocos na cor de contraste. */
  body.menu-layout-left .main-nav .side-link:hover,
  body.menu-layout-left .main-nav .side-link.active,
  body.menu-layout-left .main-nav .sidebar-menu-logout:hover{
    background:rgba(255,255,255,.08)!important;
  }
}


/* ============================================================
   1.39 — menu lateral, destaque e rodapé em largura total
   ============================================================ */
@media(min-width:901px){
  /* O rodapé volta a ocupar toda a largura da viewport, como no menu superior. */
  body.menu-layout-left .app-footer{
    width:calc(100% + 238px)!important;
    max-width:none!important;
    margin-left:-238px!important;
    margin-right:0!important;
    box-sizing:border-box!important;
  }

  /* Sair integra o menu sem divisor entre Configurações e Sair. */
  body.menu-layout-left .main-nav .sidebar-menu-logout{
    border-top:0!important;
  }

  /* Base dos links: sem borda/listra permanente. */
  body.menu-layout-left .main-nav .side-link{
    position:relative!important;
    border-left:0!important;
    color:color-mix(in srgb,var(--brand-light) 92%,#fff)!important;
    transition:background .18s ease,color .18s ease!important;
  }

  /* Barra esquerda de 3px na Cor de destaque ao passar o mouse.
     Mantém a mesma referência também no item selecionado. */
  body.menu-layout-left .main-nav .side-link::before{
    content:""!important;
    position:absolute!important;
    left:0!important;
    top:8px!important;
    bottom:8px!important;
    width:3px!important;
    background:var(--brand-primary)!important;
    transform:scaleY(0)!important;
    transform-origin:center!important;
    transition:transform .18s ease!important;
  }
  body.menu-layout-left .main-nav .side-link:hover::before,
  body.menu-layout-left .main-nav .side-link.active::before{
    transform:scaleY(1)!important;
  }

  /* Hover: realce leve sobre o fundo de contraste. */
  body.menu-layout-left .main-nav .side-link:hover{
    color:#fff!important;
    background:rgba(255,255,255,.08)!important;
  }

  /* Selecionado: texto/ícone na Cor de destaque e efeito mais claro. */
  body.menu-layout-left .main-nav .side-link.active{
    color:var(--brand-primary)!important;
    background:rgba(255,255,255,.13)!important;
  }
  body.menu-layout-left .main-nav .side-link.active svg{
    color:var(--brand-primary)!important;
    stroke:currentColor!important;
  }
}


/* ============================================================
   1.40 — correção estrutural do rodapé e estados reais do menu
   ============================================================ */
@media(min-width:901px){
  /* O footer é agora irmão do main: não herda/reage ao recuo de 238px. */
  body.menu-layout-left .app-footer{
    width:100%!important;
    max-width:none!important;
    margin-left:0!important;
    margin-right:0!important;
    position:relative!important;
    left:auto!important;
    right:auto!important;
    box-sizing:border-box!important;
  }

  body.menu-layout-left .main-nav .side-link,
  body.menu-layout-left .main-nav .sidebar-menu-logout{
    position:relative!important;
    background:transparent!important;
    border-left:0!important;
    box-shadow:none!important;
    color:color-mix(in srgb,var(--brand-light) 92%,#fff)!important;
  }

  /* Desativa a tentativa anterior por pseudo-elemento. */
  body.menu-layout-left .main-nav .side-link::before{
    content:none!important;
    display:none!important;
  }

  /* HOVER:
     linha interna de 3px na Cor de destaque + fundo perceptivelmente mais claro. */
  body.menu-layout-left .main-nav .side-link:hover,
  body.menu-layout-left .main-nav .sidebar-menu-logout:hover{
    box-shadow:inset 3px 0 0 var(--brand-primary)!important;
    background:color-mix(in srgb,var(--brand-light) 13%,var(--brand-dark))!important;
    color:#fff!important;
  }

  /* SELECIONADO:
     Cor de destaque no texto/ícone + linha de 3px + efeito ainda mais claro. */
  body.menu-layout-left .main-nav .side-link.active{
    box-shadow:inset 3px 0 0 var(--brand-primary)!important;
    background:color-mix(in srgb,var(--brand-light) 18%,var(--brand-dark))!important;
    color:var(--brand-primary)!important;
  }
  body.menu-layout-left .main-nav .side-link.active svg{
    color:var(--brand-primary)!important;
    stroke:currentColor!important;
  }

  /* Continua sem qualquer divisor entre Configurações e Sair. */
  body.menu-layout-left .main-nav .sidebar-menu-logout{
    border-top:0!important;
  }
}


/* ============================================================
   1.41 — sem client-context-bar, footer sobre sidebar e menu
   ============================================================ */

/* A barra de contexto foi removida do DOM; neutraliza qualquer regra histórica. */
.client-context-bar{
  display:none!important;
  height:0!important;
  min-height:0!important;
}

/* Cabeçalho volta ao topo em todos os layouts. */
.app-top{
  top:0!important;
}

@media(min-width:901px){
  /* Sidebar começa imediatamente abaixo do cabeçalho de 82px. */
  body.menu-layout-left .main-nav{
    top:82px!important;
    padding-top:18px!important;
  }

  /* O rodapé atravessa a viewport inteira e pinta por cima da sidebar. */
  body.menu-layout-left .app-footer{
    position:relative!important;
    z-index:700!important;
    width:100%!important;
    max-width:none!important;
    margin-left:0!important;
    margin-right:0!important;
    left:auto!important;
    right:auto!important;
  }

  /* O conteúdo do item selecionado usa a mesma cor do link normal. */
  body.menu-layout-left .main-nav .side-link.active,
  body.menu-layout-left .main-nav .side-link.active svg{
    color:color-mix(in srgb,var(--brand-light) 92%,#fff)!important;
    stroke:currentColor!important;
  }

  /* Mantém a identificação pelo fundo mais claro e pela barra de 3px. */
  body.menu-layout-left .main-nav .side-link.active{
    box-shadow:inset 3px 0 0 var(--brand-primary)!important;
    background:color-mix(in srgb,var(--brand-light) 18%,var(--brand-dark))!important;
  }
}

/* Alerta de manutenção acompanha o novo topo sem a barra de contexto. */
.maintenance-alert{
  top:82px!important;
}


/* ============================================================
   1.42 — navegação Configurações + hierarquia fixa do menu
   ============================================================ */
:root{
  --idmix-fixed-menu-height:82px;
}

/* Menu fixo superior: começa exatamente em 0px. */
.app-top,
body.menu-layout-left .app-top{
  position:sticky!important;
  top:0!important;
  z-index:720!important;
}

/* Menu lateral: começa exatamente abaixo do menu fixo. */
@media(min-width:901px){
  body.menu-layout-left .main-nav{
    top:var(--idmix-fixed-menu-height)!important;
    bottom:0!important;
    height:auto!important;
    padding-top:18px!important;
    z-index:300!important;
  }
}

/* Navegação das Configurações: ícone específico + texto. */
.settings-tabs a{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  gap:8px!important;
}
.settings-tab-icon{
  display:inline-flex!important;
  width:18px!important;
  height:18px!important;
  flex:0 0 18px!important;
  align-items:center!important;
  justify-content:center!important;
}
.settings-tab-icon svg{
  display:block!important;
  width:18px!important;
  height:18px!important;
  fill:none!important;
  stroke:currentColor!important;
  stroke-width:1.7!important;
  stroke-linecap:round!important;
  stroke-linejoin:round!important;
}
.settings-tab-label{
  min-width:0!important;
}


/* ============================================================
   1.43 — rodapé acima da sidebar, marcadores e alinhamentos
   ============================================================ */

/* Um único marcador visual em todo título/kicker que usa o "risco".
   Mesma largura e mesma espessura no banner, nos blocos e nos modais. */
:root{
  --idmix-title-marker-width:24px;
  --idmix-title-marker-height:2px;
}

/* Evita qualquer segundo risco decorativo nesses mesmos elementos. */
.eyebrow::after,
.section-kicker::after{
  content:none!important;
  display:none!important;
}

/* O texto do banner passa a iniciar exatamente na mesma coluna visual
   do conteúdo interno dos cards/blocos. */
.page > .page-intro,
.page > .page-intro.compact{
  padding-left:var(--ui-card-pad)!important;
  padding-right:var(--ui-card-pad)!important;
}

/* Configurações: botões irmãos dentro do mesmo bloco usam a mesma linha-base.
   Corrige a regra histórica que zerava a margem superior apenas no segundo botão. */
.page .settings-section > .btn,
.page form.settings-section > .btn,
.page .settings-details-body > .btn{
  margin-top:24px!important;
  vertical-align:middle!important;
}

.page .settings-section > .btn + .btn,
.page form.settings-section > .btn + .btn,
.page .settings-details-body > .btn + .btn{
  margin-top:24px!important;
  margin-left:8px!important;
}

.page .settings-section .form-actions,
.page .settings-section .provider-test-actions,
.page .settings-section .menu-order-actions{
  display:flex!important;
  align-items:center!important;
  flex-wrap:wrap!important;
  gap:8px!important;
}

.page .settings-section .form-actions > .btn,
.page .settings-section .provider-test-actions > .btn,
.page .settings-section .menu-order-actions > .btn{
  margin:0!important;
  align-self:center!important;
}

/* O header cria um stacking context próprio (z-index 720), e a sidebar
   pertence a esse contexto. Portanto o footer precisa ficar acima do
   próprio header, não apenas acima do z-index interno da sidebar. */
@media(min-width:901px){
  body.menu-layout-left .app-footer{
    position:relative!important;
    z-index:900!important;
    isolation:isolate!important;
    width:100%!important;
    max-width:none!important;
    margin-left:0!important;
    margin-right:0!important;
  }
}

/* Responsivo: mantém os botões de Configurações alinhados e sem colisão. */
@media(max-width:640px){
  .page .settings-section > .btn,
  .page form.settings-section > .btn,
  .page .settings-details-body > .btn,
  .page .settings-section > .btn + .btn,
  .page form.settings-section > .btn + .btn,
  .page .settings-details-body > .btn + .btn{
    width:100%!important;
    margin-left:0!important;
    margin-top:10px!important;
  }
}


/* ============================================================
   1.44 — painel de atualizações e rodapé sem sobreposição
   ============================================================ */
@media(min-width:901px){
  body.menu-layout-left{--idmix-footer-overlap:0px}
  body.menu-layout-left .main-nav{
    bottom:var(--idmix-footer-overlap)!important;
    transition:bottom .08s linear,transform .2s ease!important;
  }
  body.menu-layout-left .app-footer{
    position:relative!important;
    z-index:5000!important;
  }
}
.settings-update-section{padding:0!important;background:transparent!important;border:0!important}
.settings-update-section>.card:first-child{margin-bottom:12px!important}
.settings-update-panel>.card:first-child{margin-top:0!important}


/* ============================================================
   1.46 — marcador, logotipo e bloco único de Atualizações
   ============================================================ */

/* O link do logotipo termina junto ao conteúdo do logotipo. */
.app-top .nav-shell > a.brand{
  display:inline-flex!important;
  flex:0 0 auto!important;
  width:fit-content!important;
  min-width:0!important;
  max-width:max-content!important;
  align-self:center!important;
}
.app-top .nav-shell > a.brand .brand-copy{
  flex:0 0 auto!important;
}


/* ============================================================
   1.48 — fonte única do marcador de títulos
   ============================================================ */
:root{
  --idmix-title-marker-width:24px;
  --idmix-title-marker-height:2px;
}

.section-kicker::before{
  content:"";
  display:block;
  box-sizing:border-box;
  inline-size:var(--idmix-title-marker-width);
  min-inline-size:var(--idmix-title-marker-width);
  max-inline-size:var(--idmix-title-marker-width);
  block-size:var(--idmix-title-marker-height);
  min-block-size:var(--idmix-title-marker-height);
  max-block-size:var(--idmix-title-marker-height);
  flex:0 0 var(--idmix-title-marker-width);
  padding:0;
  margin:0;
  border:0;
  outline:0;
  box-shadow:none;
  transform:none;
  background:var(--brand-primary);
}

/* 13 e 14 não têm tratamento visual próprio: são cards normais,
   exatamente como o bloco 12. */
#atualizacoes.card.settings-details,
#auditoria.card.settings-details{
  background:#fff!important;
}


/* ============================================================
   1.49 — Dashboard: eixo horizontal único + kicker consolidado
   ============================================================ */

:root{
  --idmix-dashboard-gutter:30px;
}

/* O kicker nunca carrega margem própria. O posicionamento pertence ao bloco pai. */
.section-kicker{
  margin:0!important;
}

/* Uma única geometria para todos os riscos de section-kicker. */
.section-kicker::before{
  content:""!important;
  display:block!important;
  box-sizing:border-box!important;
  width:24px!important;
  min-width:24px!important;
  max-width:24px!important;
  height:2px!important;
  min-height:2px!important;
  max-height:2px!important;
  flex:0 0 24px!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  outline:0!important;
  box-shadow:none!important;
  transform:none!important;
  background:var(--brand-primary)!important;
}

/* Banner, títulos de seção e cabeçalhos de blocos começam no mesmo eixo. */
.dashboard-page > .page-intro{
  padding-left:var(--idmix-dashboard-gutter)!important;
  padding-right:var(--idmix-dashboard-gutter)!important;
}

/* O conteúdo interno dos cards usa o mesmo gutter de referência. */
.dashboard-page .dashboard-overview > .card,
.dashboard-page .operational-alert-item{
  padding-left:var(--idmix-dashboard-gutter)!important;
  padding-right:var(--idmix-dashboard-gutter)!important;
}

/* Botão Subir página: acompanha a parte visível do rodapé. */
.back-to-top{
  bottom:calc(24px + var(--idmix-footer-overlap,0px))!important;
  transition:bottom .08s linear,opacity .2s,visibility .2s,transform .2s!important;
}

@media(max-width:900px){
  :root{
    --idmix-dashboard-gutter:18px;
  }
  .back-to-top{
    bottom:calc(16px + var(--idmix-footer-overlap,0px))!important;
  }
}


/* ============================================================
   1.52 — visualizar senha centralizado no input
   ============================================================ */
.password-field,
.password-wrap,
.input-password-wrap{
  position:relative!important;
}

.password-field input,
.password-wrap input,
.input-password-wrap input,
input[type="password"][data-password-input]{
  padding-right:52px!important;
}

.password-toggle,
.toggle-password,
[data-password-toggle]{
  position:absolute!important;
  top:50%!important;
  right:10px!important;
  bottom:auto!important;
  left:auto!important;
  width:36px!important;
  min-width:36px!important;
  max-width:36px!important;
  height:36px!important;
  min-height:36px!important;
  max-height:36px!important;
  padding:0!important;
  margin:0!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  line-height:1!important;
  transform:translateY(-50%)!important;
  border:0!important;
  background:transparent!important;
}

.password-toggle svg,
.toggle-password svg,
[data-password-toggle] svg{
  display:block!important;
  width:20px!important;
  height:20px!important;
  margin:0!important;
  flex:0 0 20px!important;
}


/* ============================================================
   1.53 — banner dos modais fixo no topo do próprio modal
   ============================================================ */

/* O modal é o contexto de rolagem; cabeçalho/banner permanece no topo. */
.modal-card,
.modal-dialog,
.modal-content{
  position:relative!important;
}

/* Padrões de banner/cabeçalho usados nos modais do sistema. */
.modal-card > .modal-banner,
.modal-card > .modal-banner-head,
.modal-dialog > .modal-banner,
.modal-dialog > .modal-banner-head,
.modal-content > .modal-banner,
.modal-content > .modal-banner-head,
.modal-card > .modal-header,
.modal-dialog > .modal-header,
.modal-content > .modal-header{
  position:sticky!important;
  top:0!important;
  z-index:30!important;
  margin-top:0!important;
  flex:0 0 auto!important;
}

/* Garante que o conteúdo role por baixo do banner, sem deslocá-lo. */
.modal-body,
.modal-card > .modal-body,
.modal-dialog > .modal-body,
.modal-content > .modal-body{
  position:relative!important;
  z-index:1!important;
}

/* O banner não herda arredondamento/folga que o afaste da borda superior. */
.modal-card > .modal-banner:first-child,
.modal-card > .modal-banner-head:first-child,
.modal-dialog > .modal-banner:first-child,
.modal-dialog > .modal-banner-head:first-child,
.modal-content > .modal-banner:first-child,
.modal-content > .modal-banner-head:first-child{
  top:0!important;
  margin-top:0!important;
}


/* ============================================================
   1.54 — banner realmente fixo no topo do modal
   ============================================================ */
html.idmix-modal-open,
body.idmix-modal-open{
  overflow:hidden!important;
}

.profile-dialog,
.system-modal-dialog,
.modal-card,
.modal-dialog,
.modal-content{
  display:flex!important;
  flex-direction:column!important;
  overflow:hidden!important;
  max-height:calc(100dvh - 48px)!important;
}

.profile-dialog,
.system-modal-dialog{
  padding:0!important;
}

.profile-dialog > .modal-banner-head,
.system-modal-dialog > .modal-banner-head,
.modal-card > .modal-banner-head,
.modal-dialog > .modal-banner-head,
.modal-content > .modal-banner-head,
.profile-dialog > .modal-banner,
.system-modal-dialog > .modal-banner,
.modal-card > .modal-banner,
.modal-dialog > .modal-banner,
.modal-content > .modal-banner,
.profile-dialog > .modal-header,
.system-modal-dialog > .modal-header,
.modal-card > .modal-header,
.modal-dialog > .modal-header,
.modal-content > .modal-header{
  position:relative!important;
  top:auto!important;
  flex:0 0 auto!important;
  width:100%!important;
  margin:0!important;
  z-index:30!important;
}

.idmix-modal-scroll-body{
  flex:1 1 auto!important;
  min-height:0!important;
  width:100%!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
  overscroll-behavior:contain!important;
  -webkit-overflow-scrolling:touch!important;
}

.profile-dialog > .idmix-modal-scroll-body{
  padding:28px 38px 38px!important;
}

.system-modal-dialog > .idmix-modal-scroll-body{
  padding:30px 36px 36px!important;
}

.system-modal-wide > .idmix-modal-scroll-body{
  padding:30px 38px 38px!important;
}

.profile-dialog > .modal-banner-head,
.system-modal-dialog > .modal-banner-head,
.system-modal-wide > .modal-banner-head{
  margin:0!important;
  padding:18px 64px 20px 28px!important;
  min-height:92px!important;
}

.profile-dialog > .modal-banner-head .modal-close,
.system-modal-dialog > .modal-banner-head .modal-close,
.modal-card > .modal-banner-head .modal-close,
.modal-dialog > .modal-banner-head .modal-close,
.modal-content > .modal-banner-head .modal-close{
  position:absolute!important;
  top:50%!important;
  right:20px!important;
  transform:translateY(-50%)!important;
  margin:0!important;
}

@media(max-width:640px){
  .profile-dialog,
  .system-modal-dialog,
  .modal-card,
  .modal-dialog,
  .modal-content{
    max-height:calc(100dvh - 24px)!important;
  }
  .profile-dialog > .idmix-modal-scroll-body,
  .system-modal-dialog > .idmix-modal-scroll-body,
  .system-modal-wide > .idmix-modal-scroll-body{
    padding:22px 18px 24px!important;
  }
}
