:root{--paper:#F4F6F2;--panel:#fff;--ink:#16201B;--inkSoft:#3A463F;--muted:#6E776D;--line:#E4E7E1;--pine:#1F5C46;--pine2:#2E8B6B;--pineDeep:#123A2C;--gold:#A9791E;--gold2:#D9A93C;--goldSoft:#F7EFD9;--cost:#BC5F32;--costSoft:#FBEDE4;--okSoft:#E9F2EB;--serif:"Source Serif 4",Georgia,serif;--sh:0 1px 2px rgba(22,32,27,.04),0 6px 20px rgba(22,32,27,.05)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;background:var(--paper);color:var(--ink);font-family:system-ui,-apple-system,Segoe UI,sans-serif;-webkit-font-smoothing:antialiased}img,svg{max-width:100%}.num,.serif,h1,h2,.v,.hv{font-variant-numeric:lining-nums tabular-nums;font-feature-settings:"lnum" 1,"tnum" 1}.serif{font-family:var(--serif);font-weight:400}a{color:inherit;text-decoration:none}button,select,input{font:inherit}button{cursor:pointer}.muted{color:var(--muted)}.login{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:24px;background:radial-gradient(1100px 520px at 50% -8%,#E7EFE9 0%,var(--paper) 62%)}.loginbox{width:100%;max-width:420px;background:#fff;border:1px solid var(--line);border-radius:20px;padding:34px;box-shadow:var(--sh)}.wordmark{font-family:var(--serif);letter-spacing:.22em;font-size:29px}.eyebrow{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.16em;margin-top:6px}header.top{background:linear-gradient(100deg,var(--pineDeep),var(--ink) 62%);color:#fff;padding:12px 18px;display:flex;align-items:center;justify-content:space-between;gap:12px;position:sticky;top:0;z-index:30;flex-wrap:wrap;box-shadow:0 2px 14px #123a2c38}.brand{display:flex;align-items:baseline;gap:10px;min-width:0}.brand b{font-family:var(--serif);letter-spacing:.18em;font-size:17px;font-weight:400}.brand span{color:#9db0a4;font-size:10px;text-transform:uppercase;letter-spacing:.12em}.nav{display:flex;gap:3px;padding:3px;border-radius:10px;background:#ffffff1a;flex-wrap:wrap}.nav a{padding:6px 13px;border-radius:7px;font-size:13.5px;color:#c8d5cc}.nav a.ativo{background:#fff;color:var(--pineDeep);font-weight:600}.acoes{display:flex;gap:8px;align-items:center}.btn{border:1px solid rgba(255,255,255,.16);background:#ffffff17;color:#fff;border-radius:9px;padding:7px 13px;font-size:13.5px}.btn:hover{background:#ffffff2b}.btn.ghost{background:transparent;border-color:var(--line);color:var(--inkSoft)}.btn.ghost:hover{background:var(--paper)}.btn.solid{background:linear-gradient(160deg,var(--pine2),var(--pine));border-color:var(--pine);color:#fff}.btn:disabled{opacity:.55;cursor:not-allowed}.pill{background:var(--goldSoft);color:var(--gold);border:1px solid #EAD9AE;border-radius:999px;padding:5px 11px;font-size:11.5px;font-weight:600}main{padding:18px;display:flex;flex-direction:column;gap:16px;max-width:1160px;margin:0 auto;overflow-x:clip}h1.title{font-family:var(--serif);font-size:clamp(21px,4.6vw,30px);margin:0;font-weight:400}.panel{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:19px;box-shadow:var(--sh)}.panel h2{font-family:var(--serif);font-size:17px;margin:0 0 4px;font-weight:400}.cap{color:var(--muted);font-size:12px;margin-bottom:15px}.grid{display:grid;gap:13px}.g-kpi{grid-template-columns:repeat(auto-fit,minmax(152px,1fr))}.g-2{grid-template-columns:repeat(auto-fit,minmax(330px,1fr))}.g-cards{grid-template-columns:repeat(auto-fill,minmax(218px,1fr))}.kpi{background:linear-gradient(168deg,#fbfcfa,#eff2ed);border:1px solid var(--line);border-radius:12px;padding:14px}.kpi .l{color:var(--muted);font-size:10.5px;text-transform:uppercase;letter-spacing:.09em}.kpi .v{font-family:var(--serif);font-size:21px;line-height:1.12;margin-top:8px}.kpi .s{color:var(--muted);font-size:11.5px;margin-top:5px}.kpi.ok{background:linear-gradient(168deg,#eff7f1,#e1eee5);border-color:#cbe0d2}.kpi.ok .v{color:var(--pine)}.kpi.warn{background:linear-gradient(168deg,#fdf1ea,#f7e1d5);border-color:#edcfbb}.kpi.warn .v{color:var(--cost)}.kpi.gold{background:linear-gradient(168deg,#fdf8ec,#f5e9cd);border-color:#ebdcb6}.kpi.gold .l,.kpi.gold .v,.kpi.gold .s{color:var(--gold)}.hero{background:linear-gradient(135deg,#0F3327 0%,var(--pine) 55%,#2A7355 100%);color:#fff;border-radius:18px;padding:22px;box-shadow:0 10px 34px #123a2c42;position:relative;overflow:hidden}.hero:after{content:"";position:absolute;right:-70px;top:-70px;width:230px;height:230px;border-radius:50%;background:radial-gradient(circle,rgba(217,169,60,.22),transparent 68%)}.heroGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;position:relative;z-index:1}.hero .hl{font-size:10.5px;text-transform:uppercase;letter-spacing:.13em;color:#a9c4b5}.hero .hv{font-family:var(--serif);font-size:clamp(24px,4.6vw,34px);line-height:1.05;margin-top:7px}.hero .hs{color:#bdd3c6;font-size:12.5px;margin-top:5px}.htag{display:inline-block;background:#ffffff2e;color:#eaf3ee;font-size:9px;text-transform:uppercase;letter-spacing:.11em;padding:2px 7px;border-radius:999px;margin-left:8px;vertical-align:middle;font-weight:600}.hbar{background:#ffffff29;border-radius:999px;height:9px;overflow:hidden;margin-top:11px}.hbar>i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--gold2),#F0D28A)}table{width:100%;border-collapse:separate;border-spacing:0;font-size:13.5px}th{color:var(--muted);font-size:10.5px;text-transform:uppercase;letter-spacing:.07em;font-weight:400;padding:0 12px 9px 0;white-space:nowrap}th:last-child,td:last-child{padding-right:0}td{padding:9px 12px 9px 0;border-top:1px solid var(--line);white-space:nowrap}.r{text-align:right}.l{text-align:left}tr.hi td{background:var(--costSoft)}tbody tr:hover td{background:#fafbf9}.scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}.bar{background:#e8ebe6;border-radius:999px;height:11px;overflow:hidden;min-width:78px}.bar>i{display:block;height:100%;border-radius:999px}.alert{background:linear-gradient(168deg,#FDF1EA,var(--costSoft));border:1px solid #EDCFBB;color:#8f4522;border-radius:14px;padding:15px;display:flex;gap:11px;font-size:13.5px;line-height:1.5}.erro{background:var(--costSoft);border:1px solid #EDCFBB;color:#8f4522;border-radius:10px;padding:11px;font-size:13px;margin-bottom:12px}.ins{display:flex;gap:12px;align-items:flex-start;padding:13px 0;border-top:1px solid var(--line)}.ins:first-of-type{border-top:none;padding-top:0}.dot{width:9px;height:9px;border-radius:999px;margin-top:5px;flex:none}.ins .tx{font-size:13.5px;color:var(--inkSoft);line-height:1.55}.card{background:linear-gradient(168deg,#fbfcfa,#eff2ed);border:1px solid var(--line);border-radius:14px;padding:15px;display:block;transition:.16s}.card:hover{border-color:var(--pine);box-shadow:var(--sh);transform:translateY(-2px)}.empty{text-align:center;padding:34px 18px;color:var(--muted);font-size:13.5px;line-height:1.6}.fld{margin-bottom:14px}.fld label{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.09em;color:var(--muted);margin-bottom:6px}.fld input{width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:10px;font-size:14px;background:var(--paper)}.fld input:focus{outline:none;border-color:var(--pine);background:#fff}.tag{display:inline-block;background:var(--okSoft);color:var(--pine);border:1px solid #CBE0D2;border-radius:7px;padding:2px 8px;font-size:11.5px;margin:2px 4px 2px 0}.info{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;border:1px solid var(--muted);color:var(--muted);border-radius:999px;font-size:9px;font-style:italic;font-family:Georgia,serif;line-height:1;cursor:help;position:relative;vertical-align:middle;margin-left:4px;-webkit-user-select:none;user-select:none}.info:hover,.info:focus{border-color:var(--pine);color:var(--pine);outline:none}.tipbox{position:absolute;bottom:calc(100% + 9px);left:50%;transform:translate(-50%);background:var(--ink);color:#fff;padding:9px 11px;border-radius:9px;font-size:11.5px;font-style:normal;font-family:system-ui,-apple-system,Segoe UI,sans-serif;line-height:1.45;letter-spacing:normal;text-transform:none;text-align:left;width:max-content;max-width:230px;opacity:0;visibility:hidden;transition:opacity .14s,visibility .14s;z-index:40;box-shadow:0 8px 24px #16201b3d;pointer-events:none;font-weight:400}.tipbox:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:5px solid transparent;border-top-color:var(--ink)}.info:hover .tipbox,.info:focus .tipbox{opacity:1;visibility:visible}.cmvLegenda{display:flex;flex-wrap:wrap;gap:16px;margin-top:12px;font-size:12px;color:var(--inkSoft)}.cmvLegenda span{display:inline-flex;align-items:center;gap:7px}.cmvLegenda i{width:14px;height:3px;border-radius:2px;display:inline-block}.cmvLegenda i.dotLeg{width:9px;height:9px;border-radius:999px}.modalBg{position:fixed;inset:0;background:#12201b80;backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;padding:18px;z-index:50}.modal{background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:22px;width:100%;max-width:460px;box-shadow:0 24px 60px #12201b57;max-height:90dvh;overflow-y:auto}.modal h2{font-family:var(--serif);font-size:19px;margin:0;font-weight:400}.chartWrap{position:relative}.chartTip{position:absolute;top:0;transform:translate(-50%);background:var(--ink);color:#fff;padding:7px 11px;border-radius:9px;pointer-events:none;white-space:nowrap;z-index:15;box-shadow:0 8px 22px #16201b47}.ctNome{font-size:9.5px;text-transform:uppercase;letter-spacing:.1em;color:#a9c4b5}.ctV{font-family:var(--serif);font-size:15px;margin-top:1px;line-height:1.1}.donutWrap{display:flex;flex-direction:column;gap:16px}.donutBox{position:relative;width:100%;max-width:200px;margin:0 auto;aspect-ratio:1}.donutSvg{width:100%;display:block}.donutSvg circle{transition:opacity .16s,stroke-width .16s}.fatiaDim{opacity:.3}.fatiaHi{stroke-width:5.2}.donutCenter{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;pointer-events:none;padding:0 14%}.dcL{font-size:9.5px;text-transform:uppercase;letter-spacing:.11em;color:var(--muted)}.dcV{font-family:var(--serif);font-size:21px;margin-top:3px;line-height:1.05}.dcS{font-size:11px;color:var(--muted);margin-top:2px}.donutTip{position:absolute;transform:translate(-50%,-118%);background:var(--ink);color:#fff;padding:9px 12px;border-radius:10px;pointer-events:none;white-space:nowrap;z-index:20;box-shadow:0 10px 28px #16201b4d}.dtNome{font-size:10px;text-transform:uppercase;letter-spacing:.11em;color:#a9c4b5}.dtV{font-family:var(--serif);font-size:18px;margin-top:2px;line-height:1.1}.dtS{font-size:11px;color:#bdd3c6;margin-top:2px}.legendCol{display:flex;flex-direction:column;gap:14px;min-width:0}.legend{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:1px}.legend li{display:flex;align-items:center;gap:9px;padding:5px 7px;border-radius:8px;cursor:default;transition:.14s;font-size:13px}.legend li:hover{background:var(--paper)}.legDim{opacity:.4}.legDot{width:10px;height:10px;border-radius:3px;flex:none}.legNome{flex:1;color:var(--inkSoft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.legPct{font-weight:600;color:var(--ink)}.concentra{background:linear-gradient(168deg,#fbfcfa,#eff2ed);border:1px solid var(--line);border-radius:12px;padding:13px}.concentra .l{color:var(--muted);font-size:10.5px;text-transform:uppercase;letter-spacing:.09em}.concentra .v{font-family:var(--serif);font-size:22px;color:var(--pine);margin-top:6px}.concentra .s{color:var(--muted);font-size:11.5px;margin-top:3px}.g-35{grid-template-columns:minmax(300px,35%) 1fr}@media (max-width:820px){.g-35{grid-template-columns:1fr}}tr.parcial td{background:linear-gradient(90deg,var(--okSoft),rgba(233,242,235,0) 70%);border-top-color:#cbe0d2}tr.parcial td:first-child{box-shadow:inset 3px 0 0 var(--pine);padding-left:11px;border-radius:7px 0 0 7px}tr.parcial:hover td{background:linear-gradient(90deg,#e1eee5,#e9f2eb00 70%)}.parcialTag{color:var(--pine);font-size:10px;margin-left:7px;text-transform:uppercase;letter-spacing:.06em;font-weight:600}.chkgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(158px,1fr));gap:8px;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--paper)}.chkgrid .chk{display:flex;align-items:center;gap:10px;margin:0;padding:9px 11px;border-radius:10px;background:var(--panel);border:1px solid var(--line);cursor:pointer;font-size:13.5px;font-weight:400;color:var(--inkSoft);text-transform:none;letter-spacing:normal;transition:.14s;-webkit-user-select:none;user-select:none}.chkgrid .chk:hover{border-color:var(--pine2)}.chkgrid .chk:has(input:checked){background:var(--okSoft);border-color:#cbe0d2}.chkgrid .nome{text-transform:none;letter-spacing:normal;line-height:1.25}.chk input{position:absolute;opacity:0;width:0;height:0;margin:0}.chk .box{width:19px;height:19px;flex:none;border:1.6px solid #C2CBC3;border-radius:6px;background:#fff;display:grid;place-items:center;transition:.14s}.chk .box svg{width:12px;height:12px;color:#fff;opacity:0;transform:scale(.5);transition:.14s}.chk input:checked+.box{background:linear-gradient(160deg,var(--pine2),var(--pine));border-color:var(--pine)}.chk input:checked+.box svg{opacity:1;transform:scale(1)}.chk input:focus-visible+.box{box-shadow:0 0 0 3px #2e8b6b40}.hint{font-size:11.5px;color:var(--muted);margin-top:6px;text-transform:none;letter-spacing:normal}.hint.err{color:var(--cost)}.chips{display:flex;gap:6px;flex-wrap:wrap}.chip{border:1px solid var(--line);background:var(--panel);color:var(--inkSoft);border-radius:9px;padding:7px 13px;font-size:13.5px;transition:.14s;white-space:nowrap}.chip:hover{border-color:var(--pine2);background:var(--paper)}.chip.on{background:var(--okSoft);border-color:var(--pine);color:var(--pine);font-weight:600}table input:not([type=checkbox]),table select{font:inherit;padding:7px 9px;border:1px solid var(--line);border-radius:8px;background:var(--paper);color:var(--ink);max-width:100%}table input:not([type=checkbox]):focus,table select:focus{outline:none;border-color:var(--pine);background:#fff}.inp{font:inherit;padding:9px 12px;border:1px solid var(--line);border-radius:10px;background:var(--paper);color:var(--ink)}.inp:focus{outline:none;border-color:var(--pine);background:#fff}@media (max-width:720px){main{padding:14px}.panel{padding:15px}header.top{padding:10px 14px}}@media (max-width:640px){header.top{gap:9px 12px}.brand{order:1}.acoes{order:2;margin-left:auto}.nav{order:3;flex-basis:100%;flex-wrap:nowrap;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none;-webkit-overflow-scrolling:touch}.nav::-webkit-scrollbar{display:none}.nav a{flex:none;white-space:nowrap;padding:8px 14px}.btn{padding:8px 14px}input,select,textarea,.fld input{font-size:16px}.heroGrid{grid-template-columns:1fr;gap:15px}.hero{padding:18px}}@media (max-width:560px){.brand span{display:none}}.scroll{background:linear-gradient(90deg,var(--panel) 30%,rgba(255,255,255,0)) left center,linear-gradient(90deg,rgba(255,255,255,0),var(--panel) 70%) right center,radial-gradient(farthest-side at 0 50%,#16201b24,#16201b00) left center,radial-gradient(farthest-side at 100% 50%,#16201b24,#16201b00) right center;background-repeat:no-repeat;background-size:36px 100%,36px 100%,13px 100%,13px 100%;background-attachment:local,local,scroll,scroll}@media (max-width:520px){.loginbox{padding:26px 22px}main{gap:13px}.tipbox{max-width:min(230px,76vw)}.donutTip{max-width:min(230px,76vw);white-space:normal}.chartTip{max-width:min(220px,72vw);white-space:normal}.kpi .v{font-size:19px}.hero{padding:16px}}@media (max-width:640px){.chips{flex-wrap:nowrap;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none;-webkit-overflow-scrolling:touch;scroll-snap-type:x proximity;padding-bottom:2px}.chips::-webkit-scrollbar{display:none}.chip{flex:none;scroll-snap-align:start}main>.chips{margin-inline:-14px;padding-inline:14px}.scroll th:first-child,.scroll td:first-child{position:sticky;left:0;z-index:2;background:var(--panel);padding-right:14px}tr.hi td:first-child{background:#fbede4}tr.parcial td:first-child{background:#eff7f1}table{font-size:13px}th{font-size:10px}.btn,.chip{min-height:38px}table .btn{min-height:36px;padding:8px 12px}}@media (max-width:560px){.modalBg{align-items:flex-end;padding:0}.modal{width:100%;max-width:none;border-radius:18px 18px 0 0;max-height:92dvh;padding:18px 16px calc(18px + env(safe-area-inset-bottom))}}
