.budget-app{--paper:var(--background);--surface:var(--card);--ink:var(--foreground);--muted:var(--muted-foreground);--faint:color-mix(in oklab, var(--muted-foreground) 70%, var(--background));--rule:var(--border);--rule2:color-mix(in oklab, var(--border) 60%, var(--background));--real:#4db396;--real-soft:#173a31;--arz:#ddae45;--arz-soft:#3a2f14;--ext:#4e6b80;--over:#f2685e;--over-soft:#3d1d1a;--warn:#f0a445;--warn-soft:#3a2a14;--ok:#4db396;--focus:var(--ring);--shadow:none;--f:inherit;--lightningcss-light: ;--lightningcss-dark:initial;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}.budget-app *,.budget-app :before,.budget-app :after{box-sizing:inherit}.budget-app [hidden]{display:none!important}.budget-app{background:var(--paper);color:var(--ink);font-family:var(--f);-webkit-font-smoothing:antialiased;margin:0;font-size:15px;line-height:1.5}.budget-app button,.budget-app input,.budget-app select,.budget-app textarea{font:inherit;color:inherit}.budget-app :focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:3px}.budget-app .wrap{max-width:1280px;margin:0 auto;padding:0 20px}.budget-app header.top{background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius)}.budget-app .top .wrap{flex-wrap:wrap;align-items:center;gap:16px;padding-top:12px;padding-bottom:0;display:flex}.budget-app .brand{flex-direction:column;margin-right:auto;padding-bottom:10px;display:flex}.budget-app .brand b{letter-spacing:-.01em;font-size:19px;font-weight:760;font-stretch:112%;line-height:1.15}.budget-app .brand span{color:var(--muted);font-size:13px}.budget-app .actions{flex-wrap:wrap;gap:8px;padding-bottom:10px;display:flex}.budget-app .btn{border:1px solid var(--rule);background:var(--surface);cursor:pointer;white-space:nowrap;border-radius:6px;padding:7px 12px;font-size:14px;font-weight:560}.budget-app .btn:hover{border-color:var(--muted)}.budget-app .btn.primary{background:var(--ink);color:var(--paper);border-color:var(--ink)}.budget-app .btn.small{padding:3px 8px;font-size:13px}.budget-app .btn.ghost{color:var(--muted);background:0 0;border-color:#0000}.budget-app .btn.ghost:hover{color:var(--ink)}.budget-app nav.tabs{scrollbar-width:none;gap:2px;width:100%;display:flex;overflow-x:auto}.budget-app nav.tabs button{cursor:pointer;color:var(--muted);white-space:nowrap;background:0 0;border:0;border-bottom:3px solid #0000;padding:10px 14px 11px;font-weight:560}.budget-app nav.tabs button[aria-selected=true]{color:var(--ink);border-bottom-color:var(--ink)}.budget-app nav.tabs .count{background:var(--over-soft);min-width:18px;color:var(--over);text-align:center;border-radius:9px;margin-left:6px;padding:0 5px;font-size:12px;font-weight:700;display:inline-block}.budget-app main.wrap{padding-top:32px;padding-bottom:80px}.budget-app section.panel{display:none}.budget-app section.panel.on{display:block}.budget-app h1{letter-spacing:-.015em;max-width:26ch;margin:0 0 6px;font-size:clamp(24px,3.2vw,34px);font-weight:720;font-stretch:108%;line-height:1.15}.budget-app h2{letter-spacing:-.005em;margin:40px 0 4px;font-size:19px;font-weight:700;font-stretch:104%}.budget-app h3{margin:22px 0 6px;font-size:15px;font-weight:680}.budget-app p.lead{color:var(--muted);max-width:72ch;margin:0 0 22px}.budget-app p.note{color:var(--muted);max-width:78ch;margin:6px 0 12px;font-size:13.5px}.budget-app .num{font-variant-numeric:tabular-nums;font-stretch:88%}.budget-app .muted{color:var(--muted)}.budget-app .page-head{margin:0 0 20px}.budget-app .page-head h1{margin:0}.budget-app .cards{margin:0 0 22px!important}.budget-app .controls{margin:0 0 26px!important}.budget-app h2{margin:40px 0 12px!important}.budget-app h3{margin:0 0 10px!important}.budget-app .grid2{margin-bottom:8px}.budget-app .btn .count,.budget-app #cfgBtn .count{background:var(--over-soft);min-width:18px;color:var(--over);text-align:center;border-radius:9px;margin-left:6px;padding:0 5px;font-size:12px;font-weight:700;display:inline-block}.budget-app #cfgBtn[aria-pressed=true]{border-color:var(--ink)}.budget-app button.link{color:var(--ink);cursor:pointer;text-align:left;font:inherit;text-decoration:underline;-webkit-text-decoration-color:var(--rule);-webkit-text-decoration-color:var(--rule);text-decoration-color:var(--rule);text-underline-offset:3px;background:0 0;border:0;padding:0}.budget-app button.link:hover{-webkit-text-decoration-color:var(--ink);-webkit-text-decoration-color:var(--ink);text-decoration-color:var(--ink)}.budget-app table.proj tr.sub td{background:var(--arz-soft)}.budget-app table.proj tr.canc td:not(.grp){opacity:.55}.budget-app table.proj tr.canc .pname{text-decoration:line-through}.budget-app table.proj tr.canc td .btn{opacity:1}.budget-app table.proj tr.sub td.grp{background:var(--paper)}.budget-app table.proj td.arz{padding-left:22px}.budget-app table.proj td.arz input.cell.wide{min-width:150px}.budget-app td.arz-extra{white-space:nowrap}.budget-app td.arz-extra label{color:var(--muted);margin-right:6px;font-size:12px}.budget-app td.arz-extra input.wide{margin-left:4px;display:inline-block;width:150px!important}.budget-app dialog.drill{border:1px solid var(--rule);background:var(--surface);width:min(1100px,94vw);max-height:86vh;color:var(--ink);border-radius:10px;padding:0}.budget-app dialog.drill::backdrop{background:#0e151c80}.budget-app dialog.drill .dh{border-bottom:1px solid var(--rule);background:var(--surface);z-index:2;align-items:start;gap:12px;padding:16px 20px;display:flex;position:sticky;top:0}.budget-app dialog.drill .db{max-height:calc(86vh - 70px);padding:14px 20px 20px;overflow:auto}.budget-app tr.new td,.budget-app table.c27 tr.fase td{background:var(--arz-soft)}.budget-app table.c27 td.fase-name{padding-left:26px}.budget-app table.c27 td.fase-name input{min-width:260px}.budget-app table.forn tr.detail>td{background:var(--paper);padding:4px 10px 8px 26px}.budget-app table.forn td svg{display:block}.budget-app .subtabs{background:var(--rule2);border-radius:8px;flex-wrap:wrap;gap:4px;width:max-content;max-width:100%;margin:0 0 26px;padding:4px;display:flex;margin-top:4px!important}.budget-app .subtabs button{cursor:pointer;color:var(--muted);background:0 0;border:0;border-radius:6px;padding:6px 12px;font-size:14px;font-weight:580}.budget-app .subtabs button[aria-selected=true]{background:var(--surface);color:var(--ink);box-shadow:0 1px 2px #00000014}.budget-app .subtabs .count{background:var(--over-soft);min-width:18px;color:var(--over);text-align:center;border-radius:9px;margin-left:6px;padding:0 5px;font-size:12px;font-weight:700;display:inline-block}.budget-app .cards{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;margin:14px 0 6px;display:grid}.budget-app .stat.tot{background:var(--ink);border-color:var(--ink);color:var(--paper)}.budget-app .stat.tot>span,.budget-app .stat.tot small{color:var(--paper);opacity:.75}.budget-app .kpis{color:var(--muted);flex-wrap:wrap;gap:8px 22px;margin:4px 0 0;font-size:14px;display:flex}.budget-app .kpis a{font-weight:600;text-decoration:none}.budget-app table.proj{font-size:13.5px}.budget-app table.proj th,.budget-app table.proj td{padding:6px 8px}.budget-app table.proj select.cell{max-width:165px}.budget-app table.proj input.cell{width:100px}.budget-app table.proj td.name{min-width:170px}.budget-app table.proj td.grp{background:var(--paper);border-left:1px solid var(--rule2);vertical-align:top}.budget-app table.proj tr.gstart td{border-top:1px solid var(--rule)}.budget-app .rulers{gap:18px;margin:26px 0 8px;display:grid}.budget-app .ruler{grid-template-columns:150px 1fr 270px;align-items:center;gap:18px;display:grid}.budget-app .ruler .lbl b{font-size:16px;font-weight:700;display:block}.budget-app .ruler .lbl span{font-size:13px}.budget-app .track{height:30px;position:relative}.budget-app .track .base{background:var(--rule2);border-radius:2px;position:absolute;inset:11px 0}.budget-app .track .seg{position:absolute;top:6px;bottom:6px}.budget-app .track .seg.real{background:var(--real)}.budget-app .track .seg.ext{background:repeating-linear-gradient(135deg,var(--ext) 0 4px,transparent 4px 7px);box-shadow:inset 0 0 0 1px var(--ext)}.budget-app .track .seg.arz{background:var(--arz)}.budget-app .track .seg.overflow{background:var(--over);opacity:.9;top:3px;bottom:3px}.budget-app .track .budget{background:var(--ink);width:2px;position:absolute;top:0;bottom:0;transform:translate(-1px)}.budget-app .track .budget:after{content:attr(data-l);color:var(--muted);white-space:nowrap;font-size:11px;position:absolute;top:-17px;left:50%;transform:translate(-50%)}.budget-app .track .tick{background:var(--faint);width:1px;height:8px;position:absolute;top:22px}.budget-app .ruler .vals{text-align:right;grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.budget-app .ruler .vals div span{color:var(--muted);font-size:11.5px;display:block}.budget-app .ruler .vals div b{font-size:15px;font-weight:680}.budget-app .ruler.total{border-top:1px solid var(--rule);padding-top:16px}.budget-app .legend{color:var(--muted);flex-wrap:wrap;gap:18px;margin:10px 0 0;font-size:13px;display:flex}.budget-app .legend i{vertical-align:-1px;border-radius:1px;width:14px;height:10px;margin-right:6px;display:inline-block}.budget-app .pos{color:var(--ok)}.budget-app .neg{color:var(--over)}.budget-app .controls{background:var(--surface);border:1px solid var(--rule);border-radius:8px;flex-wrap:wrap;align-items:end;gap:14px 22px;margin:24px 0 8px;padding:14px 16px;display:flex}.budget-app .controls label{color:var(--muted);flex-direction:column;gap:4px;font-size:13px;display:flex}.budget-app .controls label.chk{color:var(--ink);flex-direction:row;align-items:center;gap:8px;font-size:14px}.budget-app select,.budget-app input[type=text],.budget-app input[type=number],.budget-app input[type=search]{border:1px solid var(--rule);background:var(--surface);border-radius:5px;min-height:34px;padding:6px 8px}.budget-app input.cell{text-align:right;font-variant-numeric:tabular-nums;width:118px;min-height:28px;padding:3px 6px}.budget-app input.cell.wide{text-align:left;width:100%}.budget-app input.cell.set{border-color:var(--arz);background:var(--arz-soft)}.budget-app select.cell{max-width:210px;min-height:28px;padding:2px 4px}.budget-app .tbl-wrap{background:var(--surface);border:1px solid var(--rule);box-shadow:var(--shadow);border-radius:8px;margin:10px 0;overflow-x:auto}.budget-app table{border-collapse:collapse;width:100%;font-size:14px}.budget-app th,.budget-app td{text-align:left;vertical-align:middle;border-bottom:1px solid var(--rule2);padding:7px 10px}.budget-app th{color:var(--muted);background:var(--surface);z-index:1;border-bottom:1px solid var(--rule);font-size:12.5px;font-weight:620;position:sticky;top:0}.budget-app td.r,.budget-app th.r{text-align:right}.budget-app td.r{font-variant-numeric:tabular-nums;white-space:nowrap;font-stretch:88%}.budget-app tr.bu td{background:var(--rule2);font-weight:700}.budget-app tr.bu td:first-child{font-stretch:106%}.budget-app tr.tot td{border-top:2px solid var(--ink);font-weight:760}.budget-app tr.dim td{color:var(--faint)}.budget-app td.name{min-width:220px}.budget-app td.name small{color:var(--muted);font-size:12px;line-height:1.3;display:block}.budget-app .chip{white-space:nowrap;border-radius:10px;padding:1px 8px;font-size:12px;font-weight:650;display:inline-block}.budget-app .chip.estouro,.budget-app .chip.alto{background:var(--over-soft);color:var(--over)}.budget-app .chip.atencao,.budget-app .chip.medio{background:var(--warn-soft);color:var(--warn)}.budget-app .chip.ok{background:var(--real-soft);color:var(--real)}.budget-app .chip.sem-orcamento{background:var(--over-soft);color:var(--over)}.budget-app .chip.baixo,.budget-app .chip.info{background:var(--rule2);color:var(--muted)}.budget-app .chip.novo{background:var(--arz-soft);color:var(--arz)}.budget-app .bar{background:var(--rule2);border-radius:4px;min-width:90px;height:8px;position:relative;overflow:hidden}.budget-app .bar i{background:var(--real);border-radius:4px;position:absolute;top:0;bottom:0;left:0}.budget-app .bar i.w{background:var(--warn)}.budget-app .bar i.o{background:var(--over)}.budget-app .grid2{grid-template-columns:1fr 1fr;gap:22px;display:grid}.budget-app .grid3{grid-template-columns:repeat(3,1fr);gap:14px;display:grid}.budget-app .stat{background:var(--surface);border:1px solid var(--rule);border-radius:8px;padding:14px 16px}.budget-app .stat>span{color:var(--muted);font-size:13px;display:block}.budget-app .stat b{font-variant-numeric:tabular-nums;margin-top:2px;font-size:22px;font-weight:720;font-stretch:92%;display:block}.budget-app .stat small{color:var(--muted);font-size:12.5px}.budget-app .chart{background:var(--surface);border:1px solid var(--rule);border-radius:8px;margin:10px 0;padding:12px 14px}.budget-app .chart svg{width:100%;height:auto;display:block}.budget-app .chart text{fill:var(--muted);font-size:11px;font-family:var(--f)}.budget-app .drop{border:2px dashed var(--rule);text-align:center;background:var(--surface);cursor:pointer;border-radius:10px;padding:34px 20px}.budget-app .drop.over{border-color:var(--ink);background:var(--rule2)}.budget-app .drop b{margin-bottom:4px;font-size:17px;display:block}.budget-app .src{border-bottom:1px solid var(--rule2);align-items:baseline;gap:10px;padding:8px 0;font-size:14px;display:flex}.budget-app .toast{left:50%;bottom:calc(20px + env(safe-area-inset-bottom,0px));background:var(--ink);color:var(--paper);z-index:50;border-radius:8px;max-width:92vw;padding:10px 16px;font-size:14px;position:fixed;transform:translate(-50%);box-shadow:0 4px 18px #0003}.budget-app .busy{z-index:60;color:#fff;background:#0e151c73;justify-content:center;align-items:center;font-weight:600;display:flex;position:fixed;inset:0}.budget-app .flex{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.budget-app .spacer{flex:1}.budget-app .callout{border-left:3px solid var(--arz);background:var(--surface);border-radius:0 6px 6px 0;max-width:90ch;margin:12px 0;padding:10px 14px;font-size:14px}.budget-app .callout.red{border-left-color:var(--over)}.budget-app .callout ul{margin:6px 0 0;padding-left:18px}.budget-app details summary{cursor:pointer;margin:10px 0;font-weight:620}@media (width<=900px){.budget-app header.top{position:static}.budget-app .ruler{grid-template-columns:1fr;gap:6px}.budget-app .ruler .vals{text-align:left}.budget-app .grid2,.budget-app .grid3{grid-template-columns:1fr}}@media (prefers-reduced-motion:no-preference){.budget-app .rulers .seg{transition:width .35s,left .35s}}
