
:root{--bg:#f4f5f7;--ink:#22262c;--muted:#717780;--line:#e6e8eb;--orange:#e87935;--dark:#1d2127;--green:#27805e;font-family:'Segoe UI',Arial,sans-serif;color:var(--ink);background:var(--bg);font-size:14px}*{box-sizing:border-box}body{margin:0}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button,a.button{cursor:pointer}button{border:0}button:disabled{opacity:.7;cursor:wait}a:focus-visible,button:focus-visible{outline:3px solid #f5b990;outline-offset:3px}h1,h2,h3,p{margin-top:0}h1{font-size:32px;letter-spacing:-1px;font-weight:650;margin-bottom:10px}h2{font-size:18px;font-weight:650;margin-bottom:8px}h3{font-size:17px}p{line-height:1.65}small,.small{font-size:12px;line-height:1.6}.muted{color:var(--muted)}.strong{font-weight:600}.sidebar{width:220px;position:fixed;inset:0 auto 0 0;background:var(--dark);color:white;padding:38px 20px;display:flex;flex-direction:column}.brand{display:block;font-size:39px;font-weight:800;letter-spacing:-3px;line-height:1}.brand span{color:var(--orange)}.brand small{display:block;font-size:9px;letter-spacing:2px;font-weight:500;margin-top:12px;color:#a2a6ad}.sidebar .brand{margin:0 14px 62px}.nav-caption{font-size:10px;letter-spacing:1.5px;color:#9198a3;margin:0 14px 15px}nav{display:grid;gap:6px}nav a{padding:13px 15px;border-radius:6px;color:#b9bec7;font-size:14px}nav a:hover{background:#292e36;color:white}nav a.active{background:#36302d;color:#ffb380;border-left:3px solid var(--orange);padding-left:12px}.sidebar-bottom{margin-top:auto;color:#aab0b9;font-size:11px;display:flex;align-items:center;gap:6px}.local-dot{width:6px;height:6px;border-radius:50%;background:#73b79a}.version{margin-left:auto;color:#747d89}.app{margin-left:220px}.topbar{height:82px;background:white;border-bottom:1px solid var(--line);padding:0 40px;display:flex;align-items:center;justify-content:space-between;font-size:13px}.user{display:flex;align-items:center;gap:24px}.user small{display:block;color:var(--muted);font-size:11px;margin-top:3px}.text-button{color:var(--muted);background:none;padding:8px}.app main{max-width:1500px;margin:auto;padding:40px}.heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:28px}.heading p{color:var(--muted);margin:0}.eyebrow{color:var(--orange);letter-spacing:1.8px;font-size:10px;font-weight:700;margin-bottom:12px}.filter{min-width:220px}.filter label{font-size:11px;color:var(--muted);margin-bottom:5px}.kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin:28px 0 20px}.kpis article{background:white;border:1px solid var(--line);padding:25px 22px;border-radius:9px}.kpis span{color:var(--muted);font-size:12px}.kpis strong{display:block;font-size:26px;font-weight:650;letter-spacing:-.9px;margin:17px 0 9px;white-space:nowrap}.kpis small{color:#8a9098;font-size:11px}.kpis .accent{background:var(--dark);color:white;border-color:var(--dark)}.kpis .accent span,.kpis .accent small{color:#b0b6bf}.kpis .accent strong{color:#ffb380}.kpis em{font-style:normal;font-size:17px;margin-left:3px}.negative strong,.danger-text{color:#ad4343}.secondary-kpis{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line);background:#fff;border-radius:9px;margin-bottom:30px;padding:20px 0}.secondary-kpis div{padding:0 22px;border-right:1px solid var(--line)}.secondary-kpis div:last-child{border:0}.secondary-kpis span{display:block;color:var(--muted);font-size:12px;margin-bottom:7px}.secondary-kpis strong{font-size:18px;font-weight:600}.panel{background:white;border:1px solid var(--line);border-radius:9px;margin-bottom:24px;overflow:hidden}.panel-heading{padding:22px 25px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:16px}.panel-heading h2,.panel-heading p{margin:0}.panel-heading p{margin-top:6px}.panel-body{padding:24px}.panel-body>p{color:var(--muted)}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;text-align:left;font-size:13px}th{background:#fafafb;color:#818791;font-size:10px;letter-spacing:.5px;text-transform:uppercase;padding:15px 23px;font-weight:650;white-space:nowrap}td{border-top:1px solid #eff0f2;padding:20px 23px;white-space:nowrap}td:first-child{white-space:normal;min-width:220px}td small{display:block;color:var(--muted);margin-top:5px}td strong{font-weight:600}td a:hover{text-decoration:underline}progress{display:block;width:100px;height:5px;margin-top:8px;border:0;border-radius:3px;background:#eee}progress::-webkit-progress-bar{background:#eee;border-radius:3px}progress::-webkit-progress-value{background:var(--orange);border-radius:3px}.empty{text-align:center;padding:64px 25px}.empty p{color:var(--muted);max-width:440px;margin:0 auto 25px}.empty-mark{font-size:28px;color:var(--orange);background:#fcf1e9;border-radius:12px;display:inline-grid;place-items:center;width:60px;height:60px;margin-bottom:24px}.compact{padding:34px}.compact p{margin-bottom:0}.primary,.secondary{display:inline-block;border-radius:6px;padding:12px 18px;font-weight:600;font-size:13px;text-align:center}.primary{background:var(--orange);color:white}.primary:hover{background:#d96926}.secondary{background:white;border:1px solid #d9dde2;color:#454b55}.secondary:hover{background:#f4f5f7}.full{width:100%;margin-top:8px}.notice{border-left:3px solid #48a47b;background:#eef8f2;padding:15px 20px;margin-bottom:25px;border-radius:4px;color:#2d664c;line-height:1.6}.alert{background:#fff0ef;color:#a44138;padding:12px;border-radius:5px;margin:20px 0}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;padding:25px}.span-2{grid-column:span 2}label{display:block;font-size:12px;font-weight:600}input,select,textarea{display:block;width:100%;border:1px solid #dce0e5;background:white;border-radius:5px;padding:12px;color:var(--ink);margin-top:8px;outline:none}input:focus,select:focus,textarea:focus{border-color:var(--orange);box-shadow:0 0 0 3px #e8793515}input[readonly]{background:#f6f7f8}input[type=file]{border:0;padding:12px 0;font-size:12px}textarea{resize:vertical}.form-actions{display:flex;justify-content:flex-end;align-items:center;gap:12px}.form-actions span{margin-right:auto}.padded{padding:22px}.badge{display:inline-block;border-radius:20px;padding:6px 11px;font-size:11px;font-weight:600}.pendente{background:#fff3df;color:#9b6a11}.aprovada{background:#e8f5ee;color:#28754e}.recusada{background:#fdeeed;color:#ad514a}.counter{padding:9px 14px;border-radius:6px;background:#fff0e5;color:#aa602e;font-size:12px}.approval{padding:25px}.approval-top{display:flex;justify-content:space-between;gap:20px}.approval-top p{color:var(--muted)}.approval-amount{font-size:25px}.approval-info{display:grid;grid-template-columns:2fr 1fr 1fr;gap:20px;background:#f8f9fa;border-radius:6px;padding:18px;margin-bottom:20px}.approval-info span,.approval-info small{display:block;color:var(--muted);font-size:11px;margin-bottom:5px}.approval-info strong{font-size:12px;font-weight:600}.request-notes{color:#606874;font-size:13px}.decision-form{display:grid;grid-template-columns:1fr 1fr 1fr;gap:18px;border-top:1px solid var(--line);padding-top:20px;margin-top:20px}.decision-form .form-actions{grid-column:1/-1}.two-columns{display:grid;grid-template-columns:1.1fr 1fr;gap:24px}.upload{border:1px dashed #cdd1d6;border-radius:6px;padding:20px;margin:20px 0}.upload small{font-weight:400;color:var(--muted)}summary{cursor:pointer;color:#b86937;margin:20px 0}details label{margin:14px 0}footer{display:flex;justify-content:space-between;color:#959ba4;padding:10px 40px 25px;font-size:11px}.login-layout{min-height:100vh;display:grid;grid-template-columns:1fr 1fr}.login-intro{background:var(--dark);color:white;padding:55px 65px;display:flex;flex-direction:column;justify-content:space-between}.login-intro h1{font-size:48px;line-height:1.2;letter-spacing:-1.5px;margin:25px 0}.login-intro p{max-width:370px;color:#adb4bf}.login-intro>small{color:#89929e;letter-spacing:2px;font-size:10px}.login-panel{display:grid;place-items:center;padding:40px;background:white}.login-box{max-width:360px;width:100%}.login-box h2{font-size:28px;letter-spacing:-.7px}.login-box form{margin:32px 0 22px}.login-box label{margin-bottom:20px}.login-box p.small{margin-top:22px}
@media(min-width:1450px){.kpis strong{font-size:30px}}
@media(max-width:1100px){.sidebar{width:180px;padding:30px 12px}.app{margin-left:180px}.app main{padding:28px}.topbar{padding:0 28px}.kpis{grid-template-columns:repeat(2,1fr)}.two-columns{grid-template-columns:1fr}.login-intro{padding:45px}.login-intro h1{font-size:40px}}
@media(max-width:700px){.sidebar{position:static;width:100%;padding:18px 20px}.sidebar .brand{font-size:29px;margin:0 0 18px}.brand small,.nav-caption,.sidebar-bottom{display:none}.sidebar nav{display:flex;gap:4px;overflow:auto}.sidebar nav a{font-size:12px;padding:10px;white-space:nowrap}.sidebar nav a.active{border-left:0;border-bottom:2px solid var(--orange)}.app{margin:0}.topbar{height:65px;padding:0 20px}.topbar>span{display:none}.user{width:100%;justify-content:space-between}.app main{padding:25px 18px}.heading{display:block}.heading .filter,.heading .button,.heading .counter{margin-top:20px;display:block}.heading h1{font-size:28px}.kpis{gap:10px}.kpis article{padding:20px 14px}.kpis strong{font-size:21px}.kpis small{font-size:10px}.secondary-kpis{grid-template-columns:1fr;padding:0}.secondary-kpis div{border-right:0;border-bottom:1px solid var(--line);padding:15px 18px;display:flex;align-items:center;justify-content:space-between}.secondary-kpis span{margin:0;font-size:11px}.secondary-kpis strong{font-size:15px}.panel-heading{padding:20px}.form-grid,.decision-form{grid-template-columns:1fr;padding:20px}.span-2{grid-column:auto}.form-actions{flex-wrap:wrap}.form-actions span{flex-basis:100%}.form-actions button{flex:1}.approval{padding:20px}.approval-top{flex-direction:column;gap:0}.approval-amount{margin-bottom:20px}.approval-info{grid-template-columns:1fr 1fr}.approval-info>div:first-child{grid-column:1/-1}.decision-form{padding:20px 0 0}.login-layout{grid-template-columns:1fr}.login-intro{padding:30px}.login-intro h1{font-size:30px;margin:20px 0}.login-intro p,.login-intro>small{display:none}.login-intro .eyebrow{margin-top:25px}.login-panel{padding:35px 25px}footer{padding:10px 20px 25px}footer span{display:none}}


[hidden]{display:none!important}.public-request{max-width:900px;margin:0 auto;padding:32px 20px}.public-request>.brand{margin-bottom:32px}.public-request .heading{margin-top:24px}

.approval-filters{padding:22px}.filter-fields{display:flex;align-items:end;gap:16px;flex-wrap:wrap}.filter-fields label{flex:1;min-width:180px}.approval-tabs{display:flex;gap:12px;margin-top:24px}.budget-summary{background:#f8f9fa;padding:20px;border-radius:6px;margin:22px 0}.budget-values{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:16px 0}.budget-values span{font-size:12px;color:var(--muted)}.budget-values strong{display:block;color:var(--ink);margin-top:8px;font-size:17px}.budget-warning{background:#fff3df;color:#855411;border-left:3px solid #dc9a31;padding:14px;border-radius:4px;line-height:1.6}.decision-form{grid-template-columns:1fr 1fr}.proof-adjustment summary{display:inline-block}.proof-adjustment form{max-width:600px}.proof-adjustment button{margin-top:15px}@media(max-width:700px){.budget-values{grid-template-columns:1fr 1fr}.decision-form{grid-template-columns:1fr}.approval-tabs{flex-wrap:wrap}}

.approval p,.approval h2,.approval a{overflow-wrap:anywhere}

.approval-confirm{border:0;border-radius:10px;padding:26px;max-width:480px;width:calc(100% - 32px);box-shadow:0 20px 80px #0003}.approval-confirm::backdrop{background:#0008}.approval-confirm .form-actions{padding:24px 0 0}

.receipt-copy{text-align:left;margin:24px 0}.receipt-copy pre{white-space:pre-wrap;overflow-wrap:anywhere;font:inherit;line-height:1.7;background:#f8f9fa;padding:20px;border-radius:6px}

.approval-info-wide{grid-column:1/-1;min-width:0}.approval-info .request-notes{margin:0;font-weight:600;white-space:pre-wrap;overflow-wrap:anywhere}.approval-info .approval-document{display:flex;align-items:baseline;gap:6px;flex-wrap:wrap}.approval-info .approval-document span{margin:0}.approval-document a{font-size:12px;text-decoration:underline;text-underline-offset:3px}

.approval-info .request-notes,.approval-info .approval-document a{color:var(--ink)}.approval-proof>span{color:var(--muted);font-size:11px}.approval-proof>a{color:var(--ink);font-size:12px;text-decoration:underline;text-underline-offset:3px}

.brand .brand-logo{display:block;width:105px;max-width:100%;background:linear-gradient(to right,var(--ink) 72%,var(--orange) 72%);mask:url(/static/ae3-logo.png) center/contain no-repeat;-webkit-mask:url(/static/ae3-logo.png) center/contain no-repeat}.brand-logo img{display:block;width:100%;height:auto;opacity:0}.sidebar .brand-logo,.login-intro .brand-logo{background:linear-gradient(to right,#fff 72%,var(--orange) 72%)}.login-intro .brand-logo{width:120px}.public-request>.brand .brand-logo{width:110px}.brand .brand-logo+small{margin-top:8px}@media(max-width:700px){.sidebar .brand-logo{width:90px}.login-intro .brand-logo{width:105px}}

.approval-pagination{display:flex;align-items:center;justify-content:center;gap:16px;flex-wrap:wrap}.approval-pagination a{color:var(--ink)}

.management-tabs{display:flex;gap:12px;margin-bottom:24px}.management-tabs a{color:var(--ink)}.management-tabs .primary{color:white}.management-selector{padding:20px;max-width:600px}.management-comparisons{display:grid;grid-template-columns:1fr 1fr;gap:24px}.cost-ranking{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 16px;margin-bottom:24px}.cost-ranking>a,.cost-ranking>span{overflow-wrap:anywhere}.cost-ranking small{display:block;color:var(--muted)}.cost-ranking progress{width:100%;grid-column:1/-1}.cost-ranking>small{grid-column:1/-1}@media(max-width:900px){.management-comparisons{grid-template-columns:1fr}.cost-ranking{grid-template-columns:1fr}.cost-ranking strong{font-size:16px}}

.sidebar .management-menu{min-width:0}.sidebar .management-menu>summary{list-style:none;margin:0;padding:13px 15px;border-radius:6px;color:#b9bec7;font-size:14px;display:flex;align-items:center;justify-content:space-between;gap:12px}.sidebar .management-menu>summary::-webkit-details-marker{display:none}.sidebar .management-menu>summary::after{content:'▾';font-size:12px;transition:transform .15s}.sidebar .management-menu[open]>summary::after{transform:rotate(180deg)}.sidebar .management-menu>summary:hover{background:#292e36;color:white}.sidebar .management-menu>summary.active{background:#36302d;color:#ffb380;border-left:3px solid var(--orange);padding-left:12px}.sidebar .management-menu>summary:focus-visible{outline:3px solid #f5b990;outline-offset:3px}.sidebar .management-submenu{display:grid;gap:4px;padding:6px 0 0 12px}.sidebar .management-submenu a{font-size:13px;padding:10px 12px}.sidebar .management-submenu a.active{border:0;padding-left:12px}@media(max-width:700px){.sidebar .management-menu{flex-shrink:0}.sidebar .management-menu>summary{font-size:12px;padding:10px}.sidebar .management-menu>summary.active{border-left:0;border-bottom:2px solid var(--orange);padding-left:10px}.sidebar .management-submenu{padding-left:0}.sidebar .management-submenu a{font-size:12px}}

.work-columns{overflow-x:auto;padding:30px 2px 4px}.work-columns-plot{display:flex;gap:20px;min-width:100%;align-items:stretch}.work-column{flex:1 0 110px;min-width:0;max-width:220px;display:grid;grid-template-rows:220px auto 1fr;gap:12px;text-align:center}.work-column-track{height:220px;display:flex;align-items:flex-end;justify-content:center;border-bottom:1px solid var(--line);background:repeating-linear-gradient(to top,transparent 0,transparent 54px,#eff0f2 54px,#eff0f2 55px)}.work-column-fill{position:relative;width:60%;max-width:80px;background:var(--orange);border-radius:5px 5px 0 0;min-height:2px}.work-column-fill strong{position:absolute;bottom:100%;left:50%;transform:translateX(-50%);padding-bottom:8px;font-size:12px;white-space:nowrap;color:var(--ink)}.work-column-name{font-size:12px;font-weight:600;line-height:1.5;overflow-wrap:anywhere}.work-column small{font-size:11px;color:var(--muted)}.work-column:hover .work-column-fill{filter:brightness(.93)}.work-column:focus-visible{outline:3px solid #f5b990;outline-offset:2px}@media(max-width:700px){.work-columns-plot{gap:14px}.work-column{flex-basis:120px}}

.monthly-columns .work-column{flex-basis:72px;grid-template-rows:180px auto;gap:10px}.monthly-columns .work-columns-plot{gap:10px}.monthly-columns{padding-top:30px;margin-top:24px}.monthly-columns .work-column-track{height:180px;background:repeating-linear-gradient(to top,transparent 0,transparent 44px,#eff0f2 44px,#eff0f2 45px)}.monthly-columns .work-column-fill{width:50%;max-width:60px}.monthly-columns .work-column-fill strong{font-size:11px}.monthly-columns .work-column-name{font-size:11px}

.work-status-panel{padding:24px;display:flex;justify-content:space-between;align-items:center;gap:24px}.work-status-panel p{margin:8px 0 0}.work-status-panel form{min-width:280px}.status-controls{display:flex;gap:10px;align-items:center}.status-controls select{min-width:150px}.status-controls button{white-space:nowrap}.work-status{display:inline-block;font-size:12px;font-weight:600;letter-spacing:0;text-transform:none;padding:5px 10px;border-radius:20px;background:#edf0f5;color:#536074;white-space:nowrap;vertical-align:middle}.work-status[data-status="Ativa"]{background:#e7f4ed;color:#22754f}.work-status[data-status="Pausada"]{background:#fff3df;color:#91620b}.work-status[data-status="Concluída"]{background:#e9edf8;color:#40558a}.comparison-selector{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) auto;align-items:end;gap:18px;padding:24px}.comparison-selector label{min-width:0}.comparison-table{table-layout:fixed;min-width:760px}.comparison-table th,.comparison-table td{white-space:normal;overflow-wrap:anywhere;vertical-align:top;padding:20px}.comparison-table thead th{font-size:15px;text-transform:none;letter-spacing:0;color:var(--ink);background:#f7f8fa}.comparison-table thead th a:hover{text-decoration:underline}.comparison-table th small{display:block;font-size:12px;font-weight:400;text-transform:none;letter-spacing:0;color:var(--muted);margin:6px 0}.comparison-table tbody th{font-size:13px;text-transform:none;letter-spacing:0;color:var(--ink);background:white;border-top:1px solid var(--line)}.comparison-table td{font-size:15px}.comparison-table .comparison-highlight th,.comparison-table .comparison-highlight td{background:#fff7f0}.comparison-table progress{width:100%;max-width:180px}.comparison-table td .danger-text{color:#ad4343}@media(max-width:900px){.work-status-panel{align-items:stretch;flex-direction:column}.comparison-selector{grid-template-columns:1fr 1fr}.work-status-panel form{min-width:0}}@media(max-width:600px){.comparison-selector{grid-template-columns:1fr}.comparison-table{min-width:680px}.status-controls{flex-wrap:wrap}}

.work-management-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:24px;align-items:stretch;margin-bottom:24px}.work-management-row>.panel{margin:0;min-width:0}.work-management-row .management-selector{max-width:none;display:flex;flex-direction:column;justify-content:center;padding:24px}.work-management-row .work-status-panel{flex-direction:column;align-items:stretch;gap:16px}.work-management-row .work-status-panel form{min-width:0}.work-management-row .status-controls select{flex:1}@media(max-width:1000px){.work-management-row{grid-template-columns:1fr}}

.work-management-row{grid-template-columns:minmax(0,1.4fr) minmax(320px,1fr);gap:24px;margin-bottom:10px}.work-management-row .management-selector,.work-management-row .work-status-panel{padding:20px 24px;justify-content:center;gap:0}.work-management-row label{margin:0}.work-management-row select{margin-top:8px}.work-management-row .status-controls{align-items:end}.work-management-row .status-controls button{height:44px}.work-status-note{margin:0 0 20px}.comparison-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:20px}.comparison-card{padding:24px;border-top:3px solid var(--series)}.series-0{--series:#db7132}.series-1{--series:#277b98}.series-2{--series:#8761b4}.series-dot{display:inline-block;width:10px;height:10px;background:var(--series);border-radius:50%;margin-right:8px;flex-shrink:0}.comparison-card h2{font-size:16px}.comparison-card dl{display:grid;gap:12px;margin:20px 0}.comparison-card dl div{display:flex;justify-content:space-between;gap:12px}.comparison-card dt{color:var(--muted);font-size:12px}.comparison-card dd{margin:0;font-weight:600}.chart-key{display:flex;flex-wrap:wrap;gap:12px 24px;margin-bottom:20px;font-size:12px}.chart-key span{display:flex;align-items:center}.chart-key i{display:inline-block;width:10px;height:10px;margin-right:8px}.key-budget{background:#cbd2db}.key-cost{background:var(--orange)}.m2-columns{display:flex;gap:36px;overflow-x:auto;padding:36px 10px 12px}.m2-group{flex:1;min-width:220px;text-align:center}.m2-track{height:190px;display:flex;align-items:flex-end;justify-content:center;gap:24px;border-bottom:1px solid var(--line);margin-bottom:16px;background:repeating-linear-gradient(to top,transparent 0,transparent 46px,#f0f1f3 47px,#f0f1f3 48px)}.m2-bar{position:relative;width:60px;border-radius:4px 4px 0 0}.m2-bar span{position:absolute;bottom:100%;left:50%;transform:translateX(-50%);white-space:nowrap;font-size:12px;padding-bottom:8px;font-weight:600}.m2-group>strong{font-size:13px}.stage-comparison{padding:18px 0;border-bottom:1px solid var(--line);margin-bottom:12px}.stage-comparison h3{font-size:14px;margin-bottom:16px}.stage-comparison h3 small{display:block;font-weight:400;color:var(--muted)}.stage-series{display:grid;grid-template-columns:minmax(120px,220px) minmax(80px,1fr) 100px;gap:20px;align-items:center;margin:12px 0}.stage-series>strong{font-size:12px;text-align:right}.stage-track{height:9px;background:#f0f1f3;border-radius:5px;overflow:hidden}.stage-track>div{height:100%;background:var(--series);border-radius:5px}.cash-chart{overflow-x:auto}.cash-chart svg{display:block;width:100%;min-width:620px}.cash-chart text{font-size:10px;fill:var(--muted)}.chart-grid{stroke:#e6e8eb;stroke-width:1}.cash-line{fill:none;stroke:var(--series);stroke-width:3}.cash-point{fill:var(--series);stroke:white;stroke-width:1}.comparison-details>summary{padding:20px 24px;background:white;border:1px solid var(--line);border-radius:8px;margin-bottom:20px;font-weight:600;cursor:pointer}#work-status{height:44px}.cash-chart+details{margin:16px 0}.cash-chart+details>summary{cursor:pointer;color:var(--muted);font-size:12px}@media(max-width:1000px){.work-management-row{grid-template-columns:1fr}}@media(max-width:600px){.stage-series{grid-template-columns:1fr 85px;gap:8px}.stage-series>span{grid-column:1/-1}.comparison-cards{grid-template-columns:1fr}}

.supplier-pending-link{display:inline-block;text-decoration:underline;text-underline-offset:4px}.supplier-pending-link small{display:block;font-weight:400;margin-top:8px;color:var(--muted)}.supplier-pending-link:hover{color:var(--orange)}
.measurement-key{margin-top:32px}.measurement-cash-chart{display:flex;gap:22px;overflow-x:auto;padding:24px 4px 16px}.measurement-month{flex:1;min-width:126px;text-align:center}.measurement-bars{height:210px;display:flex;align-items:flex-end;justify-content:center;gap:6px;border-bottom:1px solid #ddd;background:repeating-linear-gradient(to top,transparent 0,transparent 51px,#eff0f2 51px,#eff0f2 52px);margin-bottom:14px}.measurement-bars>div{width:24px;border-radius:4px 4px 0 0}.measurement-month>small{display:block;font-size:11px;margin-top:7px;white-space:nowrap}.measurement-month>strong{font-size:12px}
.measurement-receipt-form{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap}.measurement-receipt-form label{margin:0;display:flex;flex-direction:column;gap:8px}.measurement-receipt-form input[type=date]{height:44px;box-sizing:border-box;margin:0}.measurement-receipt-form button{height:44px;margin:0;white-space:nowrap;padding:0 18px}.measurement-receipt-form .form-actions{margin:0;padding:0}
#etapas-medicao .stage-track{height:14px} #etapas-medicao .stage-series{grid-template-columns:minmax(95px,180px) minmax(80px,1fr) 120px} @media(max-width:600px){#etapas-medicao .stage-series{grid-template-columns:1fr 100px}}
.secondary-kpis.area-kpis{border:0;border-radius:0;box-shadow:none;margin-bottom:0}

.work-period-filter{display:grid;grid-template-columns:minmax(220px,2fr) repeat(2,minmax(140px,1fr)) auto auto;gap:16px;align-items:end}.period-explanation{grid-column:1/-1;margin:0}@media(max-width:1000px){.work-period-filter{grid-template-columns:1fr 1fr}.work-period-filter>label:first-of-type{grid-column:1/-1}}

.work-budget-overview > .panel-body > .kpis{margin-top:0}.work-budget-overview .area-indicators-heading{border-top:1px solid var(--line);padding-top:22px;margin-top:22px}

.work-finance-panel > .kpis{margin:0;padding-top:20px;padding-bottom:14px}.work-finance-panel > p.panel-body{margin:0;padding-top:6px;padding-bottom:10px}.work-finance-panel > details.panel-body{padding-top:6px;padding-bottom:20px}.work-finance-panel > details > summary{margin:8px 0 14px}

.measurement-month .monthly-balance{font-weight:600}.measurement-month .monthly-balance.danger-text{color:#ad4343}

.material-summary-link{display:inline-block;max-width:210px;white-space:normal;font-size:12px;line-height:1.5;text-decoration:underline;color:var(--muted)}

.kpis small .period-emphasis{display:inline;font-size:inherit;letter-spacing:normal;margin:0;font-weight:700;color:inherit;white-space:normal}

.floating-table-header{position:fixed;z-index:40;overflow:hidden;pointer-events:none;background:#fafafb;box-shadow:0 2px 5px #00000018}.floating-table-header table{table-layout:fixed;margin:0}.floating-table-header th{box-sizing:border-box;background:#fafafb}@media print{.floating-table-header{display:none!important}}

[data-edit-description] button[hidden]{display:none}

.client-work-status{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.client-work-status select{width:145px;min-height:42px;border-radius:8px;background-color:#fff}.client-work-status button{min-height:42px;padding:10px 16px;border-radius:8px;white-space:nowrap}
.finance-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}.finance-card{padding:22px;border:1px solid var(--line);border-radius:9px}.finance-card span{display:block;color:var(--muted);font-size:13px;margin-bottom:12px}.finance-card strong{font-size:24px;display:block}.finance-filters{display:flex;gap:18px;align-items:end;flex-wrap:wrap}.finance-filters label{flex:1}.finance-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.finance-groups details{padding:20px;background:#fafafa;border:1px solid var(--line);border-radius:8px}.finance-groups summary strong,.finance-plan summary strong{margin-left:12px}.finance-plan{border-top:1px solid var(--line)}.finance-plan .finance-cards{margin:20px 0}.finance-document{text-decoration:underline}.negative{color:#c92b2b!important}@media(max-width:1000px){.finance-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.finance-cards,.finance-groups{grid-template-columns:1fr}}
.finance-category-layout{display:grid;grid-template-columns:minmax(240px,320px) minmax(0,1fr);gap:28px;align-items:center}
.finance-donut-box{text-align:center}.finance-donut{width:100%;max-width:300px;overflow:visible}
.finance-donut circle[role=button]{cursor:pointer;transition:stroke-width .15s;pointer-events:stroke}
.finance-donut circle[role=button]:hover,.finance-donut circle[role=button]:focus{stroke-width:40;outline:none;filter:brightness(.92)}
.donut-caption{font-size:12px;fill:#667586}.donut-total{font-size:17px;font-weight:700;fill:#20262d}
.category-dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:8px}
.finance-category-layout .finance-groups{gap:14px}.finance-category-layout summary{white-space:normal}
@media(max-width:900px){.finance-category-layout{grid-template-columns:1fr}.finance-donut{max-width:250px}}
.finance-bars{display:flex;gap:22px;overflow-x:auto;padding:8px 0 16px;align-items:flex-start}.finance-bar-column{flex:1;min-width:115px;text-align:center;display:flex;flex-direction:column;gap:8px}.finance-bar-track{height:180px;display:flex;align-items:flex-end;justify-content:center;border-bottom:1px solid #dce1e7}.finance-bar{width:50px;max-width:70%;background:#293b50;border-radius:5px 5px 0 0;min-height:2px}.finance-bar:hover,.finance-bar:focus{background:#ee7b2e;outline:2px solid #20262d;outline-offset:3px}.finance-bar.is-negative{background:#c72c35}.finance-bar-column span{font-size:13px}.finance-bar-column small{font-size:11px;max-width:180px;align-self:center}
.finance-tabs{display:flex;gap:12px;margin:0 0 24px;flex-wrap:wrap}.finance-bank-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px}.finance-bank-card{border:1px solid #e1e5ea;border-radius:10px;padding:24px}.finance-bank-card p{display:flex;justify-content:space-between;gap:15px}.finance-bank-total{border-top:1px solid #e1e5ea;margin-top:20px;padding-top:16px;display:flex;flex-direction:column;gap:8px}.finance-bank-total>strong{font-size:25px}.finance-work-list details{padding:16px 0;border-bottom:1px solid #e1e5ea}.finance-work-list summary{display:flex;justify-content:space-between;gap:20px;cursor:pointer}.finance-extra>summary{padding:24px;cursor:pointer}.finance-extra>.panel{margin:16px}meter{display:block;width:160px;height:12px;margin-top:8px}.finance-step{margin:28px 0 18px}.finance-step h2{margin-bottom:8px}
a.finance-bank-card{display:block;color:inherit;text-decoration:none;transition:border-color .15s,box-shadow .15s}a.finance-bank-card:hover,a.finance-bank-card:focus-visible,a.finance-bank-card.selected{border-color:#ed7a2e;box-shadow:0 0 0 2px #ed7a2e33}.finance-income-link{color:inherit;text-decoration:none;cursor:pointer}.finance-income-link:hover,.finance-income-link:focus-visible{border-color:#ed7a2e}.finance-link-label{text-decoration:underline;color:#a95020;margin-top:12px}.finance-chart-controls{display:flex;justify-content:space-between;gap:16px;margin-bottom:12px}
.bank-chart .finance-bar{background:var(--bank-bar-color,#293b50)}.bank-chart .finance-bar:hover,.bank-chart .finance-bar:focus{background:var(--bank-bar-color,#293b50);filter:brightness(.88)}.bank-chart .finance-bar.is-negative{background:#c72c35}.bank-chart .panel-heading>div{width:100%}.bank-chart .finance-chart-controls{margin-top:20px;align-items:center;flex-wrap:wrap}.finance-bank-options{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.finance-bank-options .selected{border-color:#ed7a2e;background:#fff1e7}.bank-chart{scroll-margin-top:20px}
.finance-bank-consolidated{background:#f7f9fc;border-color:#d2dce7}.finance-bank-consolidated .finance-bank-total>strong{color:#293b50}.finance-bank-consolidated .finance-bank-total>strong.negative{color:#c72c35}

.finance-return-actions{display:flex;justify-content:flex-end;margin-bottom:24px}
.yield-legend{display:flex;flex-wrap:wrap;gap:24px;margin-top:16px}.yield-legend span{display:flex;align-items:center;gap:8px}.yield-legend i{display:inline-block;width:12px;height:12px;border-radius:3px}.yield-month{flex:1;min-width:205px;display:flex;flex-direction:column;gap:10px;text-align:center}.yield-month>span{font-size:12px}.yield-pair{height:180px;display:flex;gap:10px;justify-content:center;border-bottom:1px solid #dce1e7}.yield-slot{height:100%;width:40px;display:flex;align-items:flex-end}.yield-bar{width:100%;min-height:2px;border-radius:5px 5px 0 0}.yield-bar:hover,.yield-bar:focus-visible{filter:brightness(.85);outline:2px solid #293b50;outline-offset:3px}
.finance-work-link{text-decoration:underline;text-underline-offset:3px}.finance-work-link:hover{color:#a95020}


/* Lower the desktop login block while keeping short and mobile screens comfortable. */
@media(min-width:701px) and (min-height:650px){.login-panel{padding-top:160px;padding-bottom:40px}}

@media(min-width:701px) and (min-height:650px){.login-intro>div:not(.brand),.login-panel .login-box{position:relative;top:-16px}.login-panel .login-box{top:-40px}}

.finance-composition{border-top:1px solid var(--line);padding-top:14px;margin:18px 0 0;font-size:12px}
.finance-composition div{display:flex;justify-content:space-between;gap:12px;margin-top:9px}.finance-composition dd{margin:0;white-space:nowrap;font-weight:600}
#finance-works tfoot td,.table-wrap tfoot td{background:#f3f6fa;font-weight:650}
.finance-category-layout{align-items:start;gap:32px}.finance-donut-box{max-width:340px;margin:auto}.finance-donut{max-width:280px;display:block;margin:auto}
.finance-groups details{background:#fff;border:1px solid #dce3ec;border-radius:10px;padding:16px 20px}.finance-groups summary{color:#293b50;margin:8px 0;line-height:1.6}.finance-groups summary strong{display:block;margin:8px 0 0;font-size:18px}
[data-chart-info]{background:#f5f7fa;padding:16px;border-radius:8px;min-height:70px}.category-breakdown p{display:flex;justify-content:space-between;gap:16px;margin:9px 0}.category-breakdown strong{white-space:nowrap}

.finance-composition dd small{display:block;text-align:right;color:var(--muted);margin-top:3px}.negative{color:#c62828!important}

.public-finance{max-width:1000px;margin:0 auto;padding:32px 20px}.public-finance>.brand{margin-bottom:32px}

#finance-confirmation{border:1px solid var(--line);border-radius:12px;max-width:560px;width:calc(100% - 32px);padding:28px;max-height:85vh;overflow:auto}#finance-confirmation::backdrop{background:#1d212799}[data-confirm-summary]{background:#f5f7fa;padding:16px;border-radius:8px;margin:16px 0}[data-confirm-summary] p{margin:5px 0;overflow-wrap:anywhere}

.finance-ledger-scroll{max-height:70vh;overflow:auto}.finance-ledger-scroll thead th{position:sticky;top:0;z-index:2;background:#f5f7fa}.finance-ledger-scroll td small{white-space:normal;min-width:180px}

.month-detail-dialog{border:1px solid var(--line);border-radius:12px;padding:28px;width:min(900px,94vw);max-height:85vh}.month-detail-dialog::backdrop{background:#1d212799}.month-detail-dialog form{margin-top:20px}.approval-filters .filter-fields{flex-wrap:wrap}

.finance-ledger{width:100%;min-width:860px;table-layout:fixed}.finance-ledger th,.finance-ledger td{padding:18px 16px;white-space:normal;overflow-wrap:anywhere}.finance-ledger th:nth-child(1){width:10%}.finance-ledger th:nth-child(2){width:14%}.finance-ledger th:nth-child(3){width:17%}.finance-ledger th:nth-child(4){width:21%}.finance-ledger th:nth-child(5){width:13%}.finance-ledger th:nth-child(6){width:25%}.finance-ledger td:first-child{white-space:nowrap}.finance-ledger .ledger-value{font-variant-numeric:tabular-nums}.finance-ledger small{font-size:12px;line-height:1.5}.finance-ledger summary{line-height:1.45}.finance-ledger form{display:grid;grid-template-columns:1fr;min-width:0;gap:12px;margin-top:12px}.finance-ledger input,.finance-ledger select{min-width:0;width:100%;box-sizing:border-box}.finance-ledger .danger-text{color:#c92b2b}
.pending-cards{grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:24px}.pending-cards .finance-card{background:white}@media(max-width:700px){.pending-cards{grid-template-columns:1fr}}

/* Form controls: public requests and internal screens, including iOS. */
.form-grid > *,
.decision-form > *,
.work-period-filter > *,
.comparison-selector > * {
  min-width: 0;
}
input, select, textarea {
  min-width: 0;
  max-width: 100%;
}
input[type="date"], input[type="month"] {
  appearance: none;
  -webkit-appearance: none;
  width: 100%;
  min-inline-size: 0;
  max-inline-size: 100%;
  min-height: 46px;
  line-height: 1.4;
  text-align: left;
}
input[type="date"]::-webkit-date-and-time-value,
input[type="month"]::-webkit-date-and-time-value {
  min-height: 1.4em;
  text-align: left;
}
input[type="date"]::-webkit-datetime-edit,
input[type="month"]::-webkit-datetime-edit {
  padding: 0;
}
@media (max-width: 700px) {
  .filter-fields label, .finance-filters label {
    min-width: 0;
    flex: 1 1 100%;
  }
  .measurement-receipt-form label {
    min-width: 0;
    width: 100%;
  }
}
@media (max-width: 600px) {
  .work-period-filter {
    grid-template-columns: minmax(0,1fr);
  }
}

.request-validation-message { white-space: pre-line; }

/* Labels remain emphasized; control values use regular text throughout. */
input, select, textarea { font-size: 14px; font-weight: 400; letter-spacing: normal; }
select { font-size: 14px; text-overflow: ellipsis; }
@media (max-width: 700px) {
  .secondary-kpis.area-kpis > div {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    align-items: start;
    gap: 12px;
    padding: 16px 0;
  }
  .secondary-kpis.area-kpis span {
    min-width: 0;
    font-size: 12px;
    line-height: 1.5;
  }
  .secondary-kpis.area-kpis strong {
    min-width: 0;
    text-align: right;
    font-size: 15px;
    line-height: 1.5;
    font-variant-numeric: tabular-nums;
    overflow-wrap: anywhere;
  }
  .area-kpis .supplier-pending-link { display: block; }
  .area-kpis .supplier-pending-link small { margin-top: 4px; font-size: 11px; }
}

.amount-help-mobile { display: none; }
@media (max-width: 700px) {
  .amount-help-desktop { display: none; }
  .amount-help-mobile { display: inline; }
}

/* Keep this after the desktop rules: applies to every application form. */
@media (max-width: 900px), (pointer: coarse) {
  input, select, textarea, input[type="file"] {
    font-size: 16px;
    font-weight: 400;
  }
}

.table-wrap td.empty-state { font-size: 14px; line-height: 1.5; }
.filter-validation-message { color: #a52828; font-size: 14px; line-height: 1.5; flex-basis: 100%; grid-column: 1 / -1; margin: 0; }

/* Prevent mobile text inflation in wide financial tables. Manual zoom remains available. */
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
.table-wrap td.empty-state { font-size: 14px; font-weight: 400; -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
.alert[role="alert"], .filter-validation-message, .filter-error { color: #a52828; }
.filter-status { font-size: 14px; line-height: 1.5; flex-basis: 100%; grid-column: 1 / -1; margin: 0; }

/* Validation alerts must override the generic .panel-body > p muted color. */
.filter-validation-message[role="alert"], .filter-error[role="alert"] {
  color: #a52828;
}

/* Explicit customer work permissions. */
.client-work-grants{border:1px solid var(--line);border-radius:6px;padding:16px;min-width:0}
.client-work-grants label{display:flex;align-items:flex-start;gap:10px;margin:10px 0;font-weight:400}
.client-work-grants input[type="checkbox"]{width:18px;height:18px;flex:0 0 18px;margin:3px 0;padding:0}
.client-work-grants span{overflow-wrap:anywhere}.client-work-grants small{display:block}

/* Keep ledger column headers visible inside the scroll area. */
.finance-ledger-scroll .finance-ledger{border-collapse:separate;border-spacing:0}
.finance-ledger-scroll .finance-ledger thead th{position:sticky;top:0;z-index:3;background:#f5f7fa;box-shadow:0 1px 0 var(--line)}
.ledger-request-link{color:#b85d26;text-decoration:underline;text-underline-offset:3px}
.ledger-request-link:focus-visible{outline:2px solid var(--orange);outline-offset:3px}

/* Separate sale total from reference costs, preserving mobile card sizing. */
.budget-summary-kpis{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;align-items:stretch}
.budget-summary-kpis>article{padding:20px 16px;display:flex;flex-direction:column;min-width:0}
.budget-summary-kpis>article>span{font-size:12px;line-height:1.4;min-height:2.8em}
.budget-summary-kpis>article>strong{font-size:clamp(18px,1.35vw,22px);line-height:1.25;letter-spacing:-.5px;min-height:1.25em;margin:4px 0 10px;white-space:normal;overflow-wrap:normal;font-variant-numeric:tabular-nums}
.budget-summary-kpis>article>small{font-size:11px;line-height:1.55}
.budget-summary-kpis>article>strong em{font-size:14px}
@media(min-width:1400px){.budget-summary-kpis{grid-template-columns:repeat(5,minmax(0,1fr))}}
@media(max-width:1000px){.budget-summary-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.budget-summary-kpis{grid-template-columns:1fr}}

/* Retorno institucional no login */
.login-panel{position:relative}
.login-panel .login-institutional-return{
    position:absolute;
    top:22px;
    right:24px;
    display:inline-flex;
    align-items:center;
    padding:8px 12px;
    border:1px solid #dce0e5;
    border-radius:6px;
    background:#fff;
    color:var(--ink);
    font-size:12px;
    font-weight:500;
    line-height:1.4;
    text-decoration:none;
}
.login-institutional-return:hover{
    border-color:var(--orange);
    background:#fff7f1;
}
.login-institutional-return:focus-visible{
    outline:2px solid var(--orange);
    outline-offset:3px;
}
@media(max-width:700px){
    .login-panel{padding-top:75px}
    .login-panel .login-institutional-return{
        top:18px;
        right:20px;
        font-size:11px;
        padding:7px 10px;
    }
}
/* Destaque dos links de troca de área no login. */
.login-box > p.small a[href="/entrar"],
.login-box > p.small a[href="/entrar/cliente"] {
  text-decoration: underline;
  text-underline-offset: 3px;
  text-decoration-thickness: 1px;
}

/* Budget list fits its desktop container; long labels wrap within their column. */
.budget-list-table{width:100%;min-width:0;table-layout:fixed}.budget-list-table th,.budget-list-table td{padding:14px 12px;white-space:normal;overflow-wrap:anywhere}.budget-list-table th{font-size:11px;line-height:1.5}.budget-list-table small{overflow-wrap:anywhere}.budget-list-table td{font-size:13px}
.month-detail-dialog .month-movements-table th,.month-detail-dialog .month-movements-table td{padding:9px 12px;line-height:1.4;white-space:normal;vertical-align:top}.month-movements-table td:last-child{white-space:nowrap;text-align:right;font-variant-numeric:tabular-nums}.month-movements-table .month-expense{color:#ad4343}.month-movements-table .month-receipt{color:#28754e}.month-movements-table tfoot th,.month-movements-table tfoot td{font-weight:600;background:#f7f8fa}.month-movements-table .month-balance th,.month-movements-table .month-balance td{border-top:2px solid var(--line)}.stage-budget-panel td.danger-text,.budget-summary-kpis strong.danger-text{color:#ad4343}
@media(max-width:700px){.budget-list-table{min-width:650px}.month-detail-dialog{padding:16px}.month-detail-dialog .month-movements-table th,.month-detail-dialog .month-movements-table td{padding:7px 8px}}

/* Compact monthly details: color and sign belong only to monetary cells. */
.month-movements-table{table-layout:fixed;width:100%}.month-movements-table .month-date-column{width:110px}.month-movements-table .month-type-column{width:100px}.month-movements-table .month-value-column{width:140px}.month-movements-table td:nth-child(3){overflow-wrap:anywhere}.month-movements-table td:first-child{white-space:nowrap}.month-movements-table td.month-expense{color:#ad4343}.month-movements-table td.month-receipt{color:#28754e}
@media(max-width:700px){.month-movements-table .month-date-column{width:23%}.month-movements-table .month-type-column{width:20%}.month-movements-table .month-value-column{width:25%}.month-movements-table td:first-child,.month-movements-table td:last-child{white-space:normal;overflow-wrap:anywhere}.month-detail-dialog .month-movements-table th,.month-detail-dialog .month-movements-table td{font-size:12px;padding:7px 6px}}
