*{box-sizing:border-box}body{margin:0;background:#0b1015;color:#e5ebf1;font-family:Inter,Segoe UI,Arial,sans-serif;font-size:14px}button,input,select{font:inherit}button{cursor:pointer}aside{position:fixed;inset:0 auto 0 0;width:230px;border-right:1px solid #25303a;padding:28px 14px;background:#0d131a}.brand{font-size:22px;text-decoration:none;color:#e5ebf1;display:block;margin:0 12px 48px;white-space:nowrap}.brand strong{color:#61d8e9}nav{display:grid;gap:10px}nav button{background:none;border:0;color:#8d9daa;text-align:left;padding:16px 18px;font-size:18px;display:flex;gap:16px;border-left:2px solid transparent}nav button span{font-size:14px}nav button.active{color:#70ddeb;background:#111e27;border-left-color:#64d5e6}nav button:hover{color:#e5ebf1}.sidebar-foot{position:absolute;bottom:30px;left:30px;color:#6b7d8e;font-size:11px;letter-spacing:2px;line-height:2}small{font-size:11px;letter-spacing:0}main{margin-left:230px;padding:0 38px;max-width:1800px}header{display:flex;align-items:center;gap:25px;min-height:100px;border-bottom:1px solid #1f2a33;flex-wrap:wrap}.company{font-size:15px}.company small{margin-left:22px}.dates{display:flex;gap:15px;margin-left:auto}.dates label{color:#8e9ba7;font-size:11px}input,select{background:#0d151d;color:#cdd8e1;border:1px solid #293741;border-radius:4px;padding:9px;color-scheme:dark}.demo-dot{font-size:12px;color:#9fabb6}.demo-dot:before{content:'●';color:#e0b569;margin-right:8px}.heading{display:flex;justify-content:space-between;align-items:center;padding-top:38px}.eyebrow{font-size:10px;letter-spacing:2.5px;color:#60d1e2;margin:0 0 14px}h1{font-size:34px;font-weight:550;letter-spacing:-1px;margin:0}h2{font-size:19px;font-weight:500;margin:0 0 22px}.heading p:not(.eyebrow){color:#8e9dab}.outline{border:1px solid #2c414d;color:#6dd7e8;background:transparent;padding:10px 15px;border-radius:4px}.notice{font-size:12px;color:#aa9877;margin:12px 0 30px}.metrics{display:grid;grid-template-columns:repeat(4,1fr);margin:28px 0 46px}.metric{padding:0 25px;border-left:1px solid #34424e}.metric:first-child{padding-left:0;border:0}.metric label{display:block;color:#a0afbd;margin-bottom:14px}.metric strong{font-size:clamp(22px,2.3vw,34px);font-weight:500;letter-spacing:-1px}.positive{color:#75d8b7}.negative{color:#f28d87}.cyan{color:#82daef}.chart-section{padding:0 0 30px;border-bottom:1px solid #34424e}.chart-head{display:flex;justify-content:space-between}.chart-head small{color:#8394a3}.chart{width:100%;height:280px;display:block}.chart text{fill:#899ba9;font-size:11px}.chart .grid{stroke:#293640;stroke-width:1;stroke-dasharray:4 5}.chart .line{fill:none;stroke:#64d4e8;stroke-width:2}.chart .area{fill:#18343f;opacity:.35}.table-section{padding:30px 0}.filters{display:flex;gap:10px;align-items:center;margin-bottom:20px}.filters input{min-width:220px}.filters label{color:#899aa8}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;white-space:nowrap}th,td{border-bottom:1px solid #25323c;text-align:left;padding:17px 12px;font-weight:400}th{color:#8c9daa;font-size:12px}td{font-size:13px}.amount{text-align:right;font-variant-numeric:tabular-nums}.status{font-size:12px;color:#81cadd}.status.late{color:#ee938c}.status.done{color:#8c9daa}.empty{color:#a2afba;padding:35px;text-align:center}footer{border-top:1px solid #25323c;padding:25px 0;color:#677c8c;font-size:11px;display:flex;justify-content:space-between}.connection{max-width:800px;padding:25px 0}.connection p{color:#9caebb;line-height:1.8}.connection ol{padding-left:20px;line-height:2.4;color:#b0c0cc}.balance-input{width:150px;margin-left:10px}button:focus-visible,a:focus-visible{outline:2px solid #64d4e8;outline-offset:3px}@media(max-width:1050px){aside{width:185px}.brand{font-size:18px}main{margin-left:185px;padding:0 24px}.dates{margin-left:0}.metric{padding:0 14px}.metric strong{font-size:23px}}@media(max-width:700px){aside{position:static;width:auto;padding:18px;border-right:0;border-bottom:1px solid #25303a}.brand{margin:0 0 20px}nav{display:flex;overflow:auto;gap:4px}nav button{padding:10px;font-size:14px;gap:7px;white-space:nowrap}nav button span{font-size:12px}.sidebar-foot{display:none}main{margin:0;padding:0 18px}header{gap:14px;padding:20px 0}.dates{width:100%;gap:10px}input{max-width:150px}.heading{padding-top:26px;gap:10px}h1{font-size:27px}.metrics{grid-template-columns:1fr 1fr;row-gap:28px}.metric:nth-child(3){border:0;padding-left:0}.metric strong{font-size:24px}.chart{height:220px}.filters{flex-wrap:wrap}.filters input{min-width:180px}footer span{display:none}.outline{font-size:12px}}
[hidden]{display:none!important}.auth-gate{max-width:420px;margin:12vh auto;padding:30px}.auth-gate form{display:grid;gap:22px;margin-top:30px}.auth-gate label{display:grid;gap:8px;color:#a0afbd}.auth-gate input{width:100%;max-width:none}.auth-gate p{color:#9caebb;line-height:1.7}.text-button{background:none;border:0;color:#70ddeb;padding:20px 0}.auth-gate #auth-message{color:#e0b569}button:disabled{opacity:.5;cursor:default}

/* Compact financial workspace */
body{font-size:13px}aside{width:190px;padding:22px 10px}.brand{font-size:19px;margin:0 10px 30px}nav{gap:3px}nav button{padding:12px 13px;gap:12px}nav button span{font-size:13px}main{margin-left:190px;padding:0 26px;max-width:none}header{min-height:66px;gap:16px}.heading{padding-top:22px}.eyebrow{margin-bottom:7px;letter-spacing:1.8px}h1{font-size:27px}h2{font-size:16px;margin-bottom:12px}.heading p:not(.eyebrow){margin:7px 0;font-size:12px}.notice{margin:8px 0 16px;font-size:11px;line-height:1.5}.metrics{margin:18px 0 24px}.metric{padding:0 20px}.metric label{font-size:11px;margin-bottom:7px}.metric strong{font-size:clamp(22px,2vw,29px)}.chart-section{padding-bottom:16px}.chart{height:190px}.chart-head{align-items:center}.chart-head h2{margin:0}.chart-head small{font-size:10px}.balance-input{padding:5px;width:120px}.table-section{padding:20px 0}.filters{margin-bottom:12px;gap:8px;flex-wrap:wrap}.filters span{margin-left:auto;font-size:11px;color:#8294a4}input,select{padding:7px;border-radius:3px}.outline{padding:7px 11px;font-size:12px;border-radius:3px}th,td{padding:10px 9px}th{font-size:11px;position:sticky;top:0;background:#0d151d}td{font-size:12px}tbody tr:hover{background:#101b24}td:first-child{max-width:360px;overflow:hidden;text-overflow:ellipsis}.table-wrap{max-height:560px;overflow:auto}.status{font-size:11px}.connection{max-width:1000px;padding:18px 0}.connection p{font-size:12px;line-height:1.6}.connection .filters input{min-width:145px}.sidebar-foot{bottom:22px;left:22px}.demo-dot{font-size:10px;color:#6e8293}.context-strip{display:flex;gap:20px;align-items:center;flex-wrap:wrap;padding:10px 0;border-bottom:1px solid #25323c;color:#8197a7;font-size:11px}.context-strip strong{font-weight:500;color:#a5bbc9}.context-strip .sync-line{margin-left:auto;color:#75c8d4}.financial-meta{display:flex;gap:22px;flex-wrap:wrap;padding:10px 0;margin-bottom:10px;border-bottom:1px solid #25323c;color:#8294a4;font-size:11px}.financial-meta strong{color:#d0dee7;font-weight:500;font-variant-numeric:tabular-nums}.company-cnpj{font-size:10px;color:#596c7b;letter-spacing:.3px}footer{padding:16px 0;font-size:10px}
@media(max-width:1050px){aside{width:170px}main{margin-left:170px;padding:0 18px}.metric{padding:0 12px}}
@media(max-width:700px){aside{position:static;width:auto;padding:12px}.brand{margin:0 0 12px}main{margin:0;padding:0 14px}header{padding:12px 0;gap:10px}.heading{padding-top:18px}h1{font-size:24px}.metrics{row-gap:18px}.metric:nth-child(3){padding-left:0}.chart{height:175px}.context-strip{gap:8px}.context-strip .sync-line{margin-left:0;width:100%}.financial-meta{gap:12px}.table-wrap{max-height:460px}}

/* Orçamento e planejamento (0.5.0) */
.text-button.small{padding:2px 6px;font-size:11px}.text-button.danger{color:#ee938c}.muted,.text-button.muted{color:#71879a}
.budget-bar{display:flex;gap:14px;align-items:center;flex-wrap:wrap;padding:6px 0 4px}.budget-bar label{color:#8294a4;font-size:11px}.catalog-line{margin-left:auto;color:#71879a;font-size:11px}
.segmented{display:inline-flex;border:1px solid #2c414d;border-radius:3px;overflow:hidden}.segmented button{background:none;border:0;color:#8d9daa;padding:7px 14px;font-size:12px}.segmented button.active{background:#112530;color:#70ddeb}
.budget-message{min-height:16px;margin:6px 0;color:#75c8d4;font-size:11px}.budget-message:empty{margin:0}
.forgotten{border:1px solid #4a3f2a;border-left:2px solid #e0b569;background:#14130f;padding:10px 12px;margin:8px 0 14px}.forgotten-head{display:flex;gap:10px;align-items:center;color:#e0b569;font-size:12px}.forgotten-head strong{font-weight:500}.forgotten ul{list-style:none;margin:8px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:2px 18px}.forgotten li{display:flex;gap:8px;align-items:center;font-size:12px;padding:3px 0;border-bottom:1px solid #22201a}.forgotten li span:first-child{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.budget-table{max-height:none}.budget-table th,.budget-table td{padding:5px 6px}.budget-table th{text-transform:capitalize}.budget-table .hist{color:#6f8494;font-size:11px}.budget-table th.hist{color:#5f7383}.budget-table .strong{color:#c7d6df}.budget-table td.cat-name{max-width:260px;overflow:hidden;text-overflow:ellipsis}
.money-input{width:104px;text-align:right;padding:4px 6px;font-variant-numeric:tabular-nums;background:#0b1218;border-color:#22313b}.money-input:focus{border-color:#64d4e8;outline:0}.money-input.invalid{border-color:#ee938c}
.cell-button{width:104px;text-align:right;background:none;border:1px dashed #2c414d;color:#9fc4cf;padding:4px 6px;border-radius:3px;font-size:12px}.cell-button.active{border-style:solid;border-color:#64d4e8}
.period-select{padding:3px 4px;font-size:11px}.row-actions{white-space:nowrap}.total-row td{border-top:1px solid #3a4a56;color:#d0dee7;font-weight:500}
.detail-editor{border:1px solid #2c414d;padding:10px 12px;margin:10px 0}.detail-head{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin-bottom:10px;font-size:12px}.detail-head strong{font-weight:500;color:#cfe3ea}.detail-head label{color:#8294a4;font-size:11px;margin-left:auto}
.slots{display:grid;gap:6px}.slots.days{grid-template-columns:repeat(7,minmax(0,1fr))}.slots.weeks{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.slot{display:grid;gap:3px;font-size:10px;color:#71879a}.slot .money-input{width:100%}.dow{font-size:10px;color:#5f7383;text-transform:none}
.add-category{margin-top:12px}.add-category select{min-width:320px}.hint{font-size:11px;color:#677c8c;line-height:1.6}
.accounts{border-bottom:1px solid #25323c;padding:4px 0 10px;margin-bottom:6px}.accounts-head{display:flex;gap:14px;align-items:center;font-size:12px;color:#a5bbc9}.accounts-head .text-button{padding:6px 0;font-size:12px}.accounts table{margin:6px 0}.accounts th,.accounts td{padding:6px}.balance-form{display:flex;gap:6px}.balance-form input[type=date]{padding:4px}
.plan-metrics{grid-template-columns:repeat(5,1fr);margin:10px 0 8px}.plan-metrics small{display:block;color:#71879a;margin-top:3px}.plan-chart{height:150px}.chart .zero{stroke:#ee938c;stroke-width:1;opacity:.6}
.plan-toolbar{display:flex;gap:16px;align-items:center;flex-wrap:wrap;font-size:11px;color:#71879a;padding:8px 0}.legend{margin-left:auto;display:flex;gap:6px;align-items:center}.lg{display:inline-block;width:10px;height:10px;border-left:3px solid;margin-left:8px}.lg.receber{border-color:#75d8b7}.lg.pagar{border-color:#f28d87}.lg.budget{border:1px dashed #9fb2c0}
.plan-calendar{border-top:1px solid #25323c;margin-bottom:20px}.plan-week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-bottom:1px solid #1f2a33}.plan-week.head div{font-size:10px;text-transform:none;color:#5f7383;padding:6px;letter-spacing:1px}
.plan-day{min-height:96px;padding:5px;border-left:1px solid #1a242c;min-width:0}.plan-day.out{background:#0a0e12}.plan-day.today{background:#0e1820}.plan-day.today .day-head span:first-child{color:#70ddeb}.plan-day.drop{background:#11262f;outline:1px dashed #64d4e8}.plan-day.negative-day .day-balance{color:#f28d87}
.day-head{display:flex;justify-content:space-between;font-size:11px;color:#8294a4}.day-balance{font-variant-numeric:tabular-nums;color:#c7d6df}.day-flow{display:flex;justify-content:space-between;font-size:10px;margin:2px 0 4px;font-variant-numeric:tabular-nums}
.chip{display:flex;justify-content:space-between;gap:4px;align-items:center;font-size:11px;padding:3px 5px;margin-top:3px;border-left:2px solid #4b5b67;background:#0f1820;cursor:grab;min-width:0}.chip.receber{border-left-color:#75d8b7}.chip.pagar{border-left-color:#f28d87}.chip.budget{border:1px dashed #3a4c58;border-left-width:2px;background:transparent}.chip.budget.receber{border-left:2px dashed #75d8b7}.chip.budget.pagar{border-left:2px dashed #f28d87}.chip.moved{box-shadow:inset 0 0 0 1px #3d5a66}.chip.zero{color:#5f7383;font-size:10px}
.chip-toggle{background:none;border:0;color:#b9c9d3;padding:0;font-size:11px;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;cursor:pointer}.chip-amount{font-variant-numeric:tabular-nums;color:#d0dee7;white-space:nowrap}
.chip-items{list-style:none;margin:2px 0 4px;padding:0 0 0 6px;border-left:1px solid #22313b}.chip-items li{display:flex;justify-content:space-between;gap:4px;font-size:10px;padding:2px 3px;color:#9fb2c0;cursor:grab}.chip-items li span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chip-items li:hover{background:#13212b}.chip-items small{color:#e0b569}
@media(max-width:1050px){.plan-metrics{grid-template-columns:repeat(3,1fr);row-gap:12px}.plan-day{min-height:80px}.chip-amount{display:none}}
@media(max-width:700px){.plan-calendar{overflow-x:auto}.plan-week{min-width:760px}.plan-metrics{grid-template-columns:1fr 1fr}.catalog-line{margin-left:0;width:100%}.forgotten ul{grid-template-columns:1fr}.add-category select{min-width:0;width:100%}}
.budget-table table{width:auto;min-width:100%}.row-actions .text-button.small{display:block;padding:1px 4px;text-align:left}
.group-row td{background:#0f1820;border-bottom-color:#2a3a46;color:#d6e3ea}.group-row td.cat-name{font-weight:500}.group-toggle{color:#70ddeb;margin-right:4px;font-size:12px}.cat-name.sub{padding-left:30px;color:#b9c9d3}.hidden-row{display:none}

/* Plano de contas, fluxo de caixa e orçamento por plano (0.6.0) */
.neg{color:#f28d87}td.amount.neg,input.money-input.neg{color:#f28d87}.code{color:#5f7383;font-size:10px;font-variant-numeric:tabular-nums;margin-right:2px}
.indent-1{padding-left:22px!important}.indent-2{padding-left:40px!important}.indent-3{padding-left:56px!important}
.section-row td{background:#0f1820;color:#e2edf3;font-weight:500;border-top:1px solid #2a3a46}.group-row td{background:#0c141b;color:#cfdde6}
.result-row td{background:#0f1f26;color:#82daef;font-weight:600;border-top:1px solid #2f5a66;border-bottom:1px solid #2f5a66}.result-row td.neg{color:#f28d87}
.balance-row td{color:#a5bbc9;font-style:italic;border-top:1px dashed #2a3a46}.unmapped-row td{background:#17140d;color:#e0b569}.muted-row td{color:#6f8494}.strong-row td{color:#e2edf3;font-weight:500}
.forgotten-row td.cat-name{box-shadow:inset 2px 0 0 #e0b569}
.cash-table th small{display:block;font-size:9px;color:#5f7383;font-weight:400;letter-spacing:.5px}.cash-table th.future,.cash-table td.future{background:rgba(100,212,232,.035)}.cash-table td.future{font-style:italic;color:#b9d4dc}.cash-table th.partial small{color:#e0b569}.cash-table td.total-col{color:#d0dee7;font-weight:500;border-left:1px solid #25323c}
.cash-table table{width:auto;min-width:100%}.cash-table th,.cash-table td{padding:5px 8px}.cash-table td.cat-name{max-width:320px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cash-table{max-height:none}
.cash-table.daily th,.cash-table.daily td{padding:4px 5px;font-size:11px}.cash-table.daily td.cat-name{position:sticky;left:0;background:#0b1015;z-index:1}
.import-box{display:flex;flex-wrap:wrap;gap:8px 18px;align-items:center;justify-content:space-between;border:1px solid #22313b;padding:8px 12px;margin:6px 0 10px;font-size:12px}.import-box strong{font-weight:500}.import-box .filters{margin:0}.import-box label{font-size:11px;color:#8294a4}
label.check{display:flex;gap:6px;align-items:center;font-size:11px;color:#8294a4}
.tag{font-size:10px;padding:2px 6px;border:1px solid #2c414d;border-radius:2px;color:#9fb2c0;white-space:nowrap}.tag.ok{border-color:#2f5a4c;color:#75d8b7}.tag.warn{border-color:#4a3f2a;color:#e0b569}
.map-table td{padding:5px 8px}.map-select{max-width:340px;padding:4px;font-size:12px}.map-status{max-width:280px;overflow:hidden;text-overflow:ellipsis}
.plan-structure td{padding:3px 8px}.name-input{width:100%;min-width:260px;background:transparent;border-color:transparent;padding:4px}.name-input:hover,.name-input:focus{border-color:#2c414d}.code-input{width:70px;padding:3px;font-size:11px}
.plan-structure .secao-row td{background:#0f1820}.plan-structure .secao-row .name-input{font-weight:500;color:#e2edf3}.plan-structure .grupo-row td{background:#0c141b}
.plan-setup{max-width:760px;padding:20px 0}.plan-setup p{color:#9caebb;line-height:1.7}
.repasse{margin:18px 0}.repasse table{width:auto;min-width:60%}.repasse td,.repasse th{padding:5px 10px}
.budget-table th:first-child,.cash-table th:first-child{text-transform:none}

/* ===== Tema 0.7.0: menu lateral recolhível, cartões bento, tipografia pequena ===== */
:root{--bg:#0b0f19;--panel:#0d1220;--card:#0e1422;--line:#1f2a3d;--line-soft:#1a2233;--text:#e5e7eb;--strong:#f9fafb;--muted:#9ca3af;--faint:#6b7280;--in:#93c5fd;--in-strong:#60a5fa;--out:#fdba74;--out-strong:#fb923c;--accent:#ffd21e;--mono:'IBM Plex Mono',ui-monospace,monospace;--num:'Source Sans 3',system-ui,sans-serif}
body{background:var(--bg);color:var(--text);font-family:'Source Sans 3',system-ui,sans-serif;font-size:13px;line-height:1.5;font-variant-numeric:tabular-nums}
button,input,select{font-family:inherit}
/* Menu lateral: faixa de ícones que abre por cima ao passar o mouse; fixar empurra o conteúdo */
aside{position:fixed;inset:0 auto 0 0;width:60px;z-index:30;background:var(--panel);border-right:1px solid var(--line-soft);padding:12px 8px;display:flex;flex-direction:column;gap:4px;overflow:hidden;transition:width .18s ease,box-shadow .18s ease}
aside.hot,body.rail-pinned aside{width:216px}
body:not(.rail-pinned) aside.hot{box-shadow:8px 0 24px rgba(0,0,0,.45)}
aside .label{opacity:0;white-space:nowrap;transition:opacity .12s ease}
aside.hot .label,body.rail-pinned aside .label{opacity:1}
.brand{display:flex;align-items:center;gap:10px;height:40px;padding:0 10px;margin:0 0 10px;font-size:14px;font-weight:700;color:var(--strong);text-decoration:none}
.brand .logo{flex:0 0 22px;display:inline-flex;width:22px;height:22px;border-radius:6px;background:var(--accent);color:var(--bg);align-items:center;justify-content:center;font-size:11px;font-weight:700}
aside nav{display:flex;flex-direction:column;gap:4px}
aside nav button,#rail-pin,#rail-theme{display:flex;align-items:center;gap:12px;height:40px;padding:0 11px;border:0;border-left:0;border-radius:10px;background:transparent;color:var(--muted);font-size:13px;text-align:left;cursor:pointer;width:100%}
aside nav button:hover,#rail-pin:hover,#rail-theme:hover{color:var(--strong);background:#121a2a}
aside nav button.active{background:var(--line-soft);color:var(--strong);border-left:0}
aside svg{flex:0 0 18px;width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.rail-foot{margin-top:auto;display:flex;flex-direction:column;gap:4px}
#rail-pin,#rail-theme{color:var(--faint);font-size:12px}
body.rail-pinned #rail-pin svg{transform:rotate(180deg)}
.rail-foot .version{padding:0 11px;color:#4b5563;font-size:10px;letter-spacing:.04em}
main{margin-left:60px;padding:0 24px;max-width:none;transition:margin-left .18s ease}
body.rail-pinned main{margin-left:216px}
#content,header,footer,.notice,#context-strip,.subnav{max-width:1600px;margin-left:auto;margin-right:auto}
header{min-height:56px;gap:14px;border-bottom:1px solid var(--line-soft);padding:8px 0;flex-wrap:wrap}
.page-title h1{margin:0;font-size:16px;font-weight:600;letter-spacing:0;color:#f3f4f6}
.page-title p{margin:0;font-size:11px;color:var(--faint)}
.company select{font-size:12px;padding:5px 8px}
.dates{margin-left:auto;gap:8px}.dates label{font-size:11px;color:var(--faint)}
input,select{background:var(--card);border:1px solid var(--line);border-radius:8px;color:var(--text);padding:6px 8px;font-size:12px}
.outline{border:1px solid var(--line);color:var(--text);background:transparent;border-radius:8px;padding:6px 10px;font-size:12px}
.outline:hover{border-color:#2b3647;background:#111827}
.notice{font-size:11px;color:#c9a96a;margin:10px auto 0}
.context-strip{border-bottom:0;font-size:11px;padding:8px 0;color:var(--faint)}.context-strip .sync-line{color:#7dd3fc}
h2{font-size:14px;font-weight:600;color:#f3f4f6}
.table-section,.cashflow,.budget,.planning,.plan-view,.connection{padding-top:18px}
table th{font-size:11px;font-weight:500;color:var(--faint);background:var(--bg);border-bottom:1px solid var(--line-soft)}
table td{font-size:12px;border-bottom:1px solid var(--line-soft)}
td.amount,.amount{font-family:var(--num);font-size:11.5px}
tbody tr:hover{background:#0f1626}
.table-wrap{border:1px solid var(--line);border-radius:16px;padding:4px 8px}
.money-input,.cell-button{border-radius:6px;font-family:var(--num);font-size:11px}
.section-row td{background:var(--card)}.result-row td{background:#0f1a24;color:#7dd3fc}
.neg,td.amount.neg,input.money-input.neg{color:var(--out)}.positive{color:var(--in)}.negative{color:var(--out)}.cyan{color:var(--strong)}
.forgotten{border:1px solid #3b3220;border-left:1px solid #3b3220;background:transparent;border-radius:16px;padding:12px 16px}
.import-box{border:1px solid var(--line);border-radius:16px;padding:10px 14px}
.segmented{border-color:var(--line);border-radius:8px}.segmented button{font-size:12px;padding:5px 12px}.segmented button.active{background:var(--line-soft);color:var(--strong)}
footer{border-top:1px solid var(--line-soft);color:#4b5563}
/* Cartões em grade (bento) e histórias */
.bento{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:minmax(128px,auto);gap:12px;margin:22px 0 8px}
.card{border:1px solid var(--line);border-radius:16px;padding:16px 18px;display:flex;flex-direction:column;gap:4px;min-width:0;color:inherit;text-decoration:none;background:transparent}
a.card:hover,button.card:hover{border-color:#2b3647;background:#0f1626}
button.card{font:inherit;text-align:left;cursor:pointer}
.card.hero{grid-column:span 3;grid-row:span 2;padding:22px 24px;gap:12px;background:radial-gradient(120% 90% at 100% 0%,rgba(255,210,30,.07),rgba(11,15,25,0) 60%),var(--card)}
.card.wide{grid-column:span 2}.card.full{grid-column:1/-1}
.card.dashed{border-style:dashed;border-color:#2b3647}.card.warn{border-color:#3b3220}
.card .eyebrow{font-size:11px;color:var(--faint);letter-spacing:0;margin:0}
.card .headline{margin:0;font-size:26px;line-height:1.25;font-weight:600;color:var(--strong);max-width:680px}
.card .lede{margin:0;color:var(--muted);max-width:620px}
.card .k{font-size:12px;color:var(--muted)}
.card .v{font-family:var(--num);font-size:20px;font-weight:600;letter-spacing:-.01em;line-height:1.2;color:var(--text)}
.card .m{margin-top:auto;font-size:11px;color:var(--faint)}
.card .t{font-size:13px;font-weight:600;color:#f3f4f6}
.card .p{margin:0;font-size:12px;color:var(--muted)}
.card .go{margin-top:auto;font-size:12px;color:var(--in)}
.card .row{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.v.in{color:var(--in)}.v.out{color:var(--out)}.v.accent{color:var(--accent)}.v.dim{color:var(--faint)}
.hero-figures{margin-top:auto;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.hero-figures .k{font-size:11px;color:var(--faint)}.hero-figures .n{font-family:var(--num);font-size:16px}
.spark{display:block;width:100%;height:80px;overflow:visible}.spark .zero{stroke:#1f2937;stroke-dasharray:3 4}.spark .ln{fill:none;stroke:#64748b;stroke-width:1.5}.spark .ln.out{stroke:var(--out-strong)}.spark .dot{fill:var(--accent)}
.spark line,.spark polyline{vector-effect:non-scaling-stroke}
.axis{display:flex;justify-content:space-between;font-family:var(--num);font-size:10px;color:var(--faint)}.axis .now{color:var(--accent)}
.share{display:flex;height:6px;border-radius:6px;overflow:hidden;gap:2px;margin-top:auto}.share i{display:block;height:6px}
.legend-line{display:flex;gap:14px;font-size:11px;color:var(--muted)}.legend-line i{display:inline-block;width:10px;height:2px;vertical-align:middle;margin-right:4px}
@media(max-width:1050px){.bento{grid-template-columns:repeat(2,minmax(0,1fr))}.card.hero{grid-column:1/-1}.card.wide{grid-column:span 2}.hero-figures{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){main{padding:0 12px}.bento{grid-template-columns:minmax(0,1fr)}.card.hero,.card.wide{grid-column:1/-1}.card .headline{font-size:21px}.dates{margin-left:0}aside:not(.hot){width:52px}main{margin-left:52px}}
.share{display:block;width:100%;height:6px;margin-top:auto;border-radius:6px;overflow:hidden}.hero-chart{margin-top:auto}
.legend-line i.lg-op{background:#64748b}.legend-line i.lg-net{background:var(--out-strong)}
.accent,.n.accent{color:var(--accent)}
/* Planejamento 0.7.1: filtros de visão, cartão do gráfico, % no dia, janela de detalhe */
.view-toggles{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0 2px}
.view-toggles .toggle{display:flex;align-items:center;gap:6px;border:1px solid var(--line);background:transparent;color:var(--faint);border-radius:999px;padding:4px 10px;font-size:12px;cursor:pointer}
.view-toggles .toggle i{width:8px;height:8px;border-radius:2px;background:#374151}
.view-toggles .toggle[aria-pressed="true"]{color:var(--text);border-color:#2b3647;background:#0f1626}
.view-toggles .toggle.receber[aria-pressed="true"] i{background:var(--in-strong)}.view-toggles .toggle.pagar[aria-pressed="true"] i{background:var(--out-strong)}
.view-toggles .toggle.budget i{background:transparent;border:1px dashed #4b5563}.view-toggles .toggle.budget.receber[aria-pressed="true"] i{border-color:var(--in-strong)}.view-toggles .toggle.budget.pagar[aria-pressed="true"] i{border-color:var(--out-strong)}
.plan-chart-wrap{position:relative}
.plan-chart .hit{fill:transparent;cursor:crosshair}.plan-chart .pt{fill:#64748b;opacity:.0;transition:opacity .1s}.plan-chart .pt.on{opacity:1;fill:var(--accent)}.plan-chart .guide{stroke:#374151;stroke-width:1}
.plan-chart text{font-family:var(--num);font-size:10px}
.plan-tip{position:absolute;top:8px;z-index:5;display:grid;grid-template-columns:auto auto;gap:2px 14px;min-width:190px;background:#111827;border:1px solid #2b3647;border-radius:12px;padding:10px 12px;font-size:12px;box-shadow:0 8px 24px rgba(0,0,0,.45);pointer-events:none}
.plan-tip strong{grid-column:1/-1;font-weight:600;color:var(--strong);margin-bottom:4px}.plan-tip span{color:var(--muted)}.plan-tip b{font-family:var(--num);font-weight:400;text-align:right}
.day-head small{color:#4b5563;font-size:9px;text-transform:lowercase}
.day-balance{font-family:var(--num);font-size:10.5px}
.day-flow{font-family:var(--num)}
.chip{gap:6px}.chip-toggle{flex:1 1 auto;font-size:11px}.chip-toggle small{color:var(--faint);font-size:9px}
.chip-pct{flex:0 0 auto;font-family:var(--num);font-size:9px;color:#4b5563}
.chip-amount{font-family:var(--num);font-size:10.5px}.chip.pagar .chip-amount{color:var(--out)}.chip.receber .chip-amount{color:var(--in)}
.plan-modal{position:fixed;inset:0;z-index:60;background:rgba(5,8,14,.72);display:flex;align-items:flex-start;justify-content:center;padding:6vh 16px;overflow:auto}
.modal-box{width:min(920px,100%);background:#0e1422;border:1px solid #2b3647;border-radius:18px;padding:20px 22px;box-shadow:0 24px 60px rgba(0,0,0,.6);outline:none}
.modal-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.modal-head h2{margin:2px 0 0;font-size:18px}.modal-head .eyebrow{margin:0;font-size:11px;color:var(--faint);letter-spacing:0}
.modal-figures{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:16px 0}.modal-figures .k{display:block;font-size:11px;color:var(--faint)}.modal-figures .n{font-family:var(--num);font-size:17px}
.modal-table{max-height:52vh}.modal-table td.pct{color:var(--faint)}.move-cell{display:flex;gap:6px}.move-cell input{padding:3px 6px}.moved-tag{color:#e0b569}
.modal-foot{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:14px}.modal-foot label{font-size:12px;color:var(--muted);display:flex;gap:6px;align-items:center}.modal-foot .hint{margin:0}
@media(max-width:700px){.modal-figures{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* 0.7.1: manchete do planejamento, subtotal do dia, linhas mais finas */
.card.hero.full{grid-column:1/-1;grid-row:auto}
.plan-bento{grid-auto-rows:auto;margin-top:12px}
.plan-bento .plan-chart{height:150px}
.plan-controls{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:6px 0 4px}.plan-controls .view-toggles{margin:0}
.day-sum{display:grid;grid-template-columns:auto 1fr;gap:0 6px;margin:3px 0 5px;padding:3px 0;border-top:1px dashed #1f2937;border-bottom:1px dashed #1f2937;font-size:9.5px;color:var(--faint)}
.day-sum b{font-family:var(--num);font-weight:400;text-align:right;font-size:10px}
.chart .line,.plan-chart .line{stroke-width:1}
.spark .ln{stroke-width:1}
.chart .grid{stroke-width:.6}
/* 0.8.0: cartão ao passar o mouse, listas de múltipla escolha, cartões clicáveis */
.hover-card{position:fixed;z-index:90;max-width:300px;background:#111827;border:1px solid #2b3647;border-radius:12px;padding:9px 12px;box-shadow:0 10px 28px rgba(0,0,0,.5);pointer-events:none;font-size:12px;color:var(--muted)}
.hover-card strong{display:block;color:var(--strong);font-weight:600;margin-bottom:3px}.hover-card p{margin:1px 0;font-family:inherit}
.filter-bar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:14px 0 0}
details.ms{position:relative}
details.ms summary{list-style:none;display:flex;gap:6px;align-items:center;border:1px solid var(--line);border-radius:999px;padding:4px 12px;font-size:12px;cursor:pointer;color:var(--text);background:transparent}
details.ms summary::-webkit-details-marker{display:none}details.ms summary::after{content:'▾';color:var(--faint);font-size:10px}
details.ms[open] summary{border-color:#2b3647;background:#0f1626}.ms-label{color:var(--faint)}
.ms-panel{position:absolute;z-index:40;top:calc(100% + 6px);left:0;min-width:240px;max-width:360px;background:#0e1422;border:1px solid #2b3647;border-radius:12px;padding:8px;box-shadow:0 14px 34px rgba(0,0,0,.55)}
.ms-search{width:100%;margin-bottom:6px}.ms-actions{display:flex;gap:10px;padding:2px 4px 6px;border-bottom:1px solid var(--line-soft);margin-bottom:4px}.ms-actions button{background:none;border:0;color:var(--in);font-size:11px;cursor:pointer;padding:0}
.ms-list{max-height:280px;overflow:auto;display:flex;flex-direction:column}.ms-item{display:flex;gap:8px;align-items:center;padding:4px;border-radius:6px;font-size:12px;cursor:pointer}.ms-item:hover{background:#121a2a}.ms-item span{flex:1}.ms-item small{font-family:var(--num);font-size:10px;color:var(--faint)}.ms-item[hidden]{display:none}
.card{position:relative}.card.clickable{cursor:pointer}.card.clickable:hover{border-color:#2b3647;background:#0f1626}
.card.focused{border-color:#5b4b14;box-shadow:inset 0 0 0 1px rgba(255,210,30,.25)}
.card-hit{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);border:0;padding:0;margin:-1px}
.card-hit:focus-visible{position:absolute;inset:0;width:auto;height:auto;clip:auto;margin:0;border-radius:16px;outline:2px solid #64d4e8;background:transparent}
.card .go{align-self:flex-start;margin-top:auto;background:none;border:0;padding:0;color:var(--in);font-size:12px;cursor:pointer;position:relative;z-index:1}.card .go:hover{color:#bfdbfe}
.back{padding:0 4px;margin-left:6px}
.spark .hit{fill:transparent;cursor:pointer}.spark .hit:hover{fill:rgba(255,255,255,.035)}
.chip-arrow{flex:0 0 auto;background:none;border:0;color:var(--faint);font-size:10px;padding:0 2px;cursor:pointer;line-height:1}.chip-arrow:hover{color:var(--strong)}
.chip-items{list-style:none;margin:2px 0 5px;padding:0 0 0 8px;border-left:1px solid #22313b}
.chip-items li{display:flex;justify-content:space-between;gap:6px;font-size:10px;padding:2px 4px;color:#9fb2c0;border-radius:4px;cursor:grab}.chip-items li span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chip-items li span:last-child{font-family:var(--num);white-space:nowrap}.chip-items li:hover{background:#13212b}
.day-link{background:none;border:0;padding:0;color:inherit;font:inherit;font-size:11px;cursor:pointer}.day-link:hover{color:var(--strong);text-decoration:underline}
.plan-chart .hit{cursor:pointer}
button.tag{font:inherit;font-size:10px;background:transparent;cursor:pointer}button.tag.sug:hover{background:#1c170c;border-color:#e0b569}button.tag.sug-ok{border-color:#2b3647;color:#9fb2c0}button.tag.sug-ok:hover{border-color:#ee938c;color:#ee938c}
.hint-inline{font-size:11px;color:#c9a96a}

/* 0.8.2 calendário próprio (substitui o seletor nativo) */
input.dp-native{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none;padding:0;border:0;margin:0}
label:has(>input.dp-native),.balance-form{position:relative}
.dp-field{display:inline-flex;align-items:center;gap:6px;background:var(--card);border:1px solid var(--line);border-radius:8px;color:var(--text);padding:5px 9px;font-size:12px;font-family:var(--num);font-variant-numeric:tabular-nums;line-height:1.35;cursor:pointer;transition:border-color .12s,background .12s;vertical-align:middle}
.dp-field:hover{border-color:#334155;background:#111a2b}
.dp-field[aria-expanded=true],.dp-field:focus-visible{border-color:var(--accent);outline:none;box-shadow:0 0 0 2px rgba(255,210,30,.14)}
.dp-field.empty span{color:var(--faint)}
.dp-field:disabled{opacity:.5;cursor:not-allowed}
.dp-icon{width:13px;height:13px;color:var(--faint);flex:none}
.dp-field:hover .dp-icon,.dp-field[aria-expanded=true] .dp-icon{color:var(--accent)}
.dp-pop{position:fixed;z-index:95;width:236px;background:#0e1422;border:1px solid #2b3647;border-radius:12px;padding:10px;box-shadow:0 14px 34px rgba(0,0,0,.55);font-size:12px;color:var(--text);user-select:none}
.dp-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}
.dp-nav{width:26px;height:26px;border:0;border-radius:7px;background:none;color:var(--muted);font-size:16px;line-height:1}
.dp-nav:hover{background:#162034;color:var(--strong)}
.dp-title{border:0;background:none;color:var(--strong);font-weight:600;font-size:12px;padding:4px 8px;border-radius:7px}
.dp-title span{color:var(--muted);font-weight:500}
button.dp-title:hover{background:#162034}
.dp-week,.dp-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}
.dp-week span{text-align:center;font-size:10px;color:var(--faint);padding:3px 0;text-transform:none;letter-spacing:.04em}
.dp-week span.we{color:#4b5563}
.dp-day{height:28px;border:1px solid transparent;border-radius:7px;background:none;color:var(--text);font-family:var(--num);font-size:11.5px;font-variant-numeric:tabular-nums;padding:0}
.dp-pop.with-notes{width:380px}.dp-pop.with-notes .dp-day{height:38px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px}.dp-note{font-size:8.5px;line-height:1;color:var(--faint);white-space:nowrap}.dp-note.neg{color:#f87171}.dp-note.pos{color:#5eead4}.dp-day.sel .dp-note{color:inherit}
.dp-day.out{color:#4b5563}
.dp-day:hover:not(:disabled){background:#162034;color:var(--strong)}
.dp-day.today{border-color:#334155;color:var(--in)}
.dp-day.sel{background:var(--accent);color:#0b0f19;font-weight:600;border-color:var(--accent)}
.dp-day:focus-visible,.dp-month:focus-visible{outline:none;border-color:var(--accent)}
.dp-day:disabled,.dp-month:disabled{opacity:.3;cursor:not-allowed}
.dp-months{display:grid;grid-template-columns:repeat(3,1fr);gap:4px}
.dp-month{height:34px;border:1px solid transparent;border-radius:8px;background:none;color:var(--text);font-size:12px}
.dp-month:hover:not(:disabled){background:#162034}
.dp-month.today{border-color:#334155;color:var(--in)}
.dp-month.sel{background:var(--accent);color:#0b0f19;font-weight:600}
.dp-foot{display:flex;justify-content:space-between;border-top:1px solid var(--line-soft);margin-top:8px;padding-top:7px}
.dp-link{border:0;background:none;color:var(--in);font-size:11.5px;padding:2px 4px;border-radius:6px}
.dp-link:hover{color:#bfdbfe;background:#162034}
.dp-link:disabled{opacity:.4}

/* 0.8.3 desfazer arrastes */
.from-tag{color:#e0b569;font-size:9.5px;white-space:nowrap;flex:none;margin-left:auto}
.chip-items li .from-tag,.pd-confirm td .from-tag{margin-left:0;margin-right:4px}.back-orig{padding:0 4px;font-size:10px;color:#e0b569;white-space:nowrap;flex:none}.back-orig:hover{color:var(--accent)}.view-toggles .moved-only i{background:#e0b569}
.chip-items li .from-tag+span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.undo-btn{color:var(--accent)!important}
.undo-btn:hover{text-decoration:underline}
.move-cell .text-button.small{color:#e0b569;white-space:nowrap}

/* 0.9.0 Início: histórias e o mascote Dési */
.mascot{flex:none;overflow:visible}.mascot.m-xs{width:16px;height:16px;vertical-align:-3px}.mascot.m-sm{width:26px;height:26px}.mascot.m-md{width:48px;height:48px}.mascot.m-lg{width:84px;height:84px}
.mascot{--m-body:var(--accent);--m-belly:#e6b800;--m-cheek:#fb923c}.mascot .m-body{fill:var(--m-body);transition:fill .4s}.mascot .m-belly{fill:var(--m-belly);opacity:.55}
.mascot .m-antenna{fill:none;stroke:var(--m-body);stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}.mascot .m-tip{fill:var(--in-strong)}
.mascot .m-arm{fill:none;stroke:var(--m-body);stroke-width:4.5;stroke-linecap:round}.mascot .m-hand{fill:var(--m-body)}
.mascot .m-eyes ellipse{fill:#0b0f19}.mascot .m-shine{fill:#fff}.mascot .m-cheek{fill:var(--m-cheek);opacity:.45}
.mascot .m-mouth,.mascot .m-brow{fill:none;stroke:#0b0f19;stroke-width:2.2;stroke-linecap:round}
.mascot .m-eyes{transform-box:fill-box;transform-origin:center;animation:desi-blink 5.5s infinite}
.mascot.acenando .m-arm:not(.still),.mascot.acenando .m-hand{transform-origin:53px 37px;animation:desi-wave 1.6s ease-in-out 3}
.mascot.m-lg{animation:desi-float 4s ease-in-out infinite}
.mascot .m-tip{animation:desi-pulse 2.4s ease-in-out infinite}
@keyframes desi-blink{0%,92%,100%{transform:scaleY(1)}95%{transform:scaleY(.1)}}
@keyframes desi-wave{0%,100%{transform:rotate(0)}25%{transform:rotate(-18deg)}75%{transform:rotate(14deg)}}
@keyframes desi-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}
@keyframes desi-pulse{0%,100%{opacity:1}50%{opacity:.35}}
@media (prefers-reduced-motion:reduce){.mascot *,.mascot{animation:none!important}}

.home{display:flex;flex-direction:column;gap:14px;padding-bottom:28px}
.home.loading{align-items:center;justify-content:center;min-height:50vh;color:var(--muted);font-size:13px}
.home-hero{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:14px}
.hero-talk{display:flex;gap:16px;align-items:flex-start;background:var(--card);border:1px solid var(--line-soft);border-radius:16px;padding:20px 22px}
.bubble{position:relative;background:#111a2b;border:1px solid #22304a;border-radius:14px;padding:14px 16px;flex:1;min-width:0}
.bubble::before{content:'';position:absolute;left:-7px;top:26px;width:12px;height:12px;background:#111a2b;border-left:1px solid #22304a;border-bottom:1px solid #22304a;transform:rotate(45deg)}
.bubble .talk-meta{margin:0 0 6px;font-size:11px;color:var(--faint)}
.bubble h2{margin:0 0 8px;font-size:22px;line-height:1.25;font-weight:600;color:var(--strong)}
.bubble p{margin:0;color:var(--muted);font-size:13px;line-height:1.55}
.hero-line{background:var(--card);border:1px solid var(--line-soft);border-radius:16px;padding:18px 20px;display:flex;flex-direction:column;gap:6px;min-width:0}
.hero-line .k{margin:0;font-size:11px;color:var(--faint)}.hero-line .line-story{margin:0;font-size:15px;color:var(--text);line-height:1.4}
.hero-line .hero-chart{margin-top:auto}
.chapters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.home-row{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:14px}
.chapter{background:var(--card);border:1px solid var(--line-soft);border-radius:16px;padding:16px 18px;display:flex;flex-direction:column;gap:8px;min-width:0;transition:border-color .15s}
.chapter:hover{border-color:#2b3647}
.ch-head{display:flex;align-items:center;gap:8px}.chapter .ch-title{font-size:11px;color:var(--faint);text-transform:none}
.chapter h3{margin:0;font-size:17px;line-height:1.3;font-weight:600;color:var(--strong)}
.chapter p{margin:0;color:var(--muted);font-size:12.5px;line-height:1.55}
.chapter b{font-weight:600}.chapter b.out,.chapter .out{color:var(--out)}
.chapter .go{align-self:flex-start;margin-top:auto;background:none;border:0;padding:4px 0 0;color:var(--in);font-size:12px;cursor:pointer}.chapter .go:hover{color:#bfdbfe}
.ch-chart{margin-top:4px}
.mini-bars,.mini-line{display:block;width:100%;height:70px;overflow:visible}
.mini-bars .b.in{fill:#2c4a72}.mini-bars .b.in.now{fill:#3b5b8a;opacity:.6}.mini-bars .b.neg{fill:#9a4f22}.mini-bars .b.now{opacity:.5}.mini-bars .b:hover{fill:var(--in-strong)}
.mini-line .ln{fill:none;stroke:var(--out-strong);stroke-width:1.2;vector-effect:non-scaling-stroke}.mini-line .pt{fill:var(--out-strong)}.mini-line .hit{fill:transparent}
.mini-axis{display:flex;justify-content:space-around;font-size:10px;color:var(--faint);margin-top:2px}
.ch-list{list-style:none;margin:4px 0 6px;padding:0;display:flex;flex-direction:column;gap:5px}
.ch-list li{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) 34px 52px;gap:8px;align-items:center;font-size:11.5px}
.ch-list .n{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text)}
.ch-list svg{width:100%;height:6px}.ch-list .track{fill:#1a2233}.ch-list .fill{fill:var(--in-strong)}
.ch-list .v{text-align:right;font-family:var(--num);color:var(--muted)}.ch-list .g{font-size:10.5px;text-align:right;font-family:var(--num)}.ch-list .g.up{color:#86efac}.ch-list .g.down{color:var(--out)}
.timeline{list-style:none;margin:4px 0;padding:0;display:flex;flex-direction:column}
.timeline li{display:grid;grid-template-columns:72px minmax(0,1fr) auto;gap:10px;padding:6px 0;border-bottom:1px dashed var(--line-soft);font-size:12px;align-items:center}
.timeline .when{color:var(--text);font-family:var(--num)}.timeline .when small{color:var(--faint);font-family:inherit}
.timeline .what{color:var(--muted)}.timeline .bal{font-family:var(--num);color:var(--muted);font-size:11.5px}.timeline .bal.neg{color:var(--out)}
.alert-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.alert-list li{display:flex;justify-content:space-between;gap:10px;align-items:baseline;font-size:12.5px;color:var(--muted);padding:8px 10px;background:#0f1626;border:1px solid var(--line-soft);border-radius:10px}
.chapter .quiet{color:var(--faint)}
.home-foot{display:flex;gap:6px;align-items:center;font-size:11px;color:var(--faint);margin:0}
@media(max-width:1100px){.home-hero,.home-row{grid-template-columns:minmax(0,1fr)}.chapters{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.chapters{grid-template-columns:minmax(0,1fr)}.hero-talk{flex-direction:column}.bubble::before{display:none}.bubble h2{font-size:19px}.mascot.m-lg{width:64px;height:64px}}
.facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:2px}
.fact{background:#0f1626;border:1px solid var(--line-soft);border-radius:12px;padding:10px 12px;display:flex;flex-direction:column;gap:3px;min-width:0}
.fact .fk{font-size:11.5px;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fact .fv{font-family:var(--num);font-size:15px}.fact .fv.up{color:var(--out)}.fact .fv.down{color:#86efac}
.fact .fp{font-size:11px;color:var(--faint)}
@media(max-width:900px){.facts{grid-template-columns:repeat(2,minmax(0,1fr))}}
.mascot .m-drop{fill:#93c5fd;opacity:.9}
/* 0.9.2 cor do Dési conforme o humor: feliz amarelo vivo, acenando dourado, pensando amarelo pálido, preocupado laranja */
.mascot.feliz{--m-body:#ffd21e;--m-belly:#e6b800}
.mascot.acenando{--m-body:#ffc61a;--m-belly:#e0a800}
.mascot.pensando{--m-body:#f3e3a1;--m-belly:#d8c47a;--m-cheek:#e8b48a}
.mascot.preocupado{--m-body:#fdae6b;--m-belly:#e8894a;--m-cheek:#ef6b5b}
/* 0.9.3 a grande história (análise com IA) */
.big-story{padding:22px 24px;gap:12px;background:linear-gradient(180deg,#111a2b 0%,var(--card) 60%);border-color:#22304a}
.big-story .ch-head{align-items:flex-start;gap:12px}.big-story .ch-title{font-size:12px;color:var(--text);font-weight:600}
.bs-meta{margin:2px 0 0;font-size:11px;color:var(--faint)}
.bs-title{font-size:20px!important;line-height:1.3}
.bs-story{display:flex;flex-direction:column;gap:8px;max-width:900px}.bs-story p{font-size:13.5px!important;line-height:1.65!important;color:var(--text)!important}
.bs-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:4px}
.bs-grid section{background:#0f1626;border:1px solid var(--line-soft);border-radius:12px;padding:12px 14px;min-width:0}
.bs-grid h4,.bs-market h4{margin:0 0 8px;font-size:12px;font-weight:600}.bs-grid h4.pos{color:#86efac}.bs-grid h4.neg{color:var(--out)}.bs-grid h4.accent{color:var(--accent)}
.bs-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px}
.bs-list li{font-size:12.5px;color:var(--muted);line-height:1.5}.bs-list li b{display:block;color:var(--text);font-weight:600;font-size:12px;margin-bottom:1px}
.bs-market{border-left:2px solid var(--accent);padding:2px 0 2px 12px}.bs-market h4{color:var(--text)}.bs-market p{font-size:12.5px!important}
.bs-foot{display:flex;justify-content:flex-end}
.bs-skeleton{display:flex;flex-direction:column;gap:8px}.bs-skeleton i{display:block;height:10px;border-radius:6px;background:linear-gradient(90deg,#141d2e,#1c2840,#141d2e);background-size:200% 100%;animation:bs-shine 1.4s linear infinite}
.bs-skeleton i:nth-child(2){width:85%}.bs-skeleton i:nth-child(3){width:60%}
@keyframes bs-shine{0%{background-position:200% 0}100%{background-position:-200% 0}}
@media(max-width:900px){.bs-grid{grid-template-columns:minmax(0,1fr)}}
/* 0.9.4 demonstração */
.context-strip.demo{background:#1a1606;border:1px solid #3d3410;border-radius:10px;padding:8px 12px;margin-top:10px;color:#e8d9a0;font-size:12px;align-items:center}
.demo-tag{background:var(--accent);color:#0b0f19;font-weight:600;border-radius:999px;padding:2px 9px;font-size:11px;white-space:nowrap}
/* 0.10.0 Bancos e OFX */
.banks-bento{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr)}.banks-bento .card.hero{grid-column:auto}
.import-card{gap:8px;border-style:dashed;transition:border-color .15s,background .15s}.import-card.drag{border-color:var(--accent);background:#14130a}.import-card .p{margin:0;font-size:12.5px;color:var(--muted);line-height:1.5}
.file-btn{align-self:flex-start;cursor:pointer;font-size:12px}
.bank-side{display:flex;flex-direction:column;gap:12px;min-width:0}.bank-side>.card{flex:1 1 auto}
.cora-card{gap:6px}.cora-card .p{margin:0;font-size:12.5px;color:var(--muted);line-height:1.5}.cora-card .bank-actions{flex-wrap:wrap}
.cora-form{grid-template-columns:1fr 1fr}.cora-form .file-pick .file-btn{display:inline-block;margin-top:2px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cora-msg{margin:0;font-size:12px;color:var(--muted)}.cora-msg.err{color:var(--out)}
.pending-list{list-style:none;margin:4px 0 0;padding:0;display:flex;flex-direction:column;gap:6px}
.pending{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px;align-items:center;background:#0f1626;border:1px solid var(--line-soft);border-radius:10px;padding:8px 10px;font-size:12px}
.pending .m{display:block;font-size:11px;color:var(--faint);margin-top:2px}.pending.err{grid-template-columns:minmax(0,1fr) auto;color:var(--out)}
.p-target{display:flex;flex-direction:column;gap:2px;font-size:10.5px;color:var(--faint)}.p-target select{max-width:210px}
.bank-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px;margin:12px 0}
.bank-card{gap:6px}.bank-card.off{opacity:.55}.bank-card .v{font-size:20px}.bank-card .v.neg{color:var(--out)}
.bank-head{display:flex;gap:10px;align-items:center}.bank-head>div{display:flex;flex-direction:column;min-width:0}
.bank-logo{width:30px;height:30px;border-radius:9px;background:#162034;color:var(--in);display:grid;place-items:center;font-size:11px;font-weight:600;flex:none}
.bank-name{font-size:13px;color:var(--strong);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mini-spark{width:100%;height:30px}.mini-spark polyline{fill:none;stroke:var(--in-strong);stroke-width:1;vector-effect:non-scaling-stroke}
.bank-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:auto}.bank-actions .check{font-size:11.5px;color:var(--muted);display:flex;gap:5px;align-items:center}
.bank-form{display:grid;grid-template-columns:1fr 1fr;gap:8px}.bank-form label{display:flex;flex-direction:column;gap:3px;font-size:11px;color:var(--faint)}.bank-form label:first-child{grid-column:1/-1}
.bank-card.add{border-style:dashed;align-items:center;justify-content:center;text-align:center;color:var(--muted);cursor:pointer;min-height:150px;font:inherit}
.bank-card.add:hover{border-color:var(--accent);color:var(--text)}.bank-card.add .plus{font-size:26px;color:var(--accent);line-height:1}
.bank-matrix td.carried{color:var(--faint)}.bank-matrix tr.total td{font-weight:600;border-top:1px solid var(--line)}.bank-matrix tr.off td{opacity:.5}.bank-matrix td,.bank-matrix th{padding:8px 10px;font-size:12px}
.notice-warn{background:#1a1606;border:1px solid #3d3410;border-radius:10px;padding:8px 12px;color:#e8d9a0;font-size:12px}
.outline.primary{border-color:var(--accent);color:var(--accent)}
@media(max-width:900px){.banks-bento{grid-template-columns:minmax(0,1fr)}.pending{grid-template-columns:minmax(0,1fr)}}
.banks-bento.has-pending{grid-template-columns:minmax(0,1fr) minmax(0,1.15fr)}
/* 0.11.0 Mercado Livre e Mercado Pago */
.conn-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1.4fr);gap:12px;margin:14px 0}
.conn-card{gap:8px}.conn-card .p{margin:0;font-size:12px;color:var(--muted)}.conn-card.on{border-color:#2f5a4c}
.bank-logo.ml{background:#3a3410;color:var(--accent)}.bank-logo.mp{background:#0f2a44;color:var(--in)}
.import-mkt{gap:8px}.import-mkt .filters{margin:0;flex-wrap:wrap}.import-mkt .m{font-size:11.5px;color:var(--faint);margin:0}
.mkt-hero{margin-bottom:14px}.market .chapters{margin-bottom:14px}
.rel-bars .b.top{fill:var(--in-strong)}
.ch-list .fill.out{fill:var(--out-strong)}
.top-products .ch-list li{grid-template-columns:minmax(0,2fr) minmax(0,1fr) 60px 60px}
@media(max-width:1100px){.conn-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.conn-row .import-mkt{grid-column:1/-1}}
@media(max-width:700px){.conn-row{grid-template-columns:minmax(0,1fr)}}
.fee-list li{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 62px 44px}
/* 0.11.2 página de autorização concluída (link enviado ao dono da loja) */
body.auth-done{min-height:100vh;display:grid;place-items:center;background:var(--bg);margin:0;padding:24px}
.auth-done-box{max-width:460px;background:var(--card);border:1px solid var(--line-soft);border-radius:18px;padding:28px 28px 20px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:10px}
.auth-done-box h1{margin:4px 0 0;font-size:22px;color:var(--strong)}
.auth-done-box p{margin:0;color:var(--muted);font-size:13.5px;line-height:1.6}
.auth-done-box b{color:var(--text)}
.auth-done-foot{margin-top:10px!important;font-size:11px!important;color:var(--faint)!important}
.invite-box{display:flex;flex-direction:column;gap:6px;background:#0f1626;border:1px solid var(--line-soft);border-radius:10px;padding:10px}
.invite-box input{width:100%;font-family:var(--mono);font-size:11px}
.invite-box .row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.invite-box a.outline{text-decoration:none}
.lh-pick{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:4px 0}
.confirm-box{border-color:#f5b94a;background:rgba(245,185,74,.06)}
.preview-box{display:flex;flex-direction:column;gap:3px;background:#0f1626;border:1px solid var(--line-soft);border-radius:10px;padding:8px 10px;margin:6px 0}
/* 0.12.0 várias contas do Mercado Livre / Mercado Pago por cliente */
.acct-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}
.acct-list li{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:5px 8px;border-radius:8px;background:#0f1626;font-size:12px}
.acct-list .n{color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.acct-filter{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 12px}
.acct-filter .k{font-size:11.5px;color:var(--faint)}
.acct-filter .segmented{flex-wrap:wrap}
/* 0.12.2 tabela de vendas do Mercado Livre */
.mkt-orders{margin:14px 0 6px}
.orders-head{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;flex-wrap:wrap;margin-bottom:8px}
.orders-head h2{margin:0 0 2px;font-size:15px}.orders-head .m{margin:0;font-size:11.5px;color:var(--faint)}.orders-head .filters{margin:0}
.orders-table th,.orders-table td{padding:6px 8px;font-size:12px}.orders-table td.prod{white-space:normal;min-width:280px;max-width:560px}
.orders-table td.mono{font-family:var(--num);font-size:11px;color:var(--muted)}
.orders-table tr.off td{color:var(--faint)}.orders-table .tag{font-size:10px;border:1px solid var(--line);border-radius:6px;padding:0 5px;margin-right:4px}
.mkt-orders .more{text-align:center;margin:10px 0}
/* 0.13.0 repasse: abas, recebíveis e extrato do Mercado Pago */
.mkt-tabs{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:6px 0 12px}.mkt-tabs .acct-filter{margin:0}
.rec-head{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1.4fr) minmax(0,1.3fr);gap:16px;align-items:start;margin-bottom:14px}
.rec-story .k,.rec-chart .k{font-size:11.5px;color:var(--faint);margin:0 0 6px;display:block}.rec-story p{margin:0;font-size:13px;line-height:1.6;color:var(--muted)}.rec-story b{color:var(--text)}
.rec-tiles{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.rec-tile{display:flex;flex-direction:column;gap:2px;text-align:left;background:#0f1626;border:1px solid var(--line-soft);border-radius:10px;padding:8px 10px;color:var(--text)}
.rec-tile .k{font-size:11px;color:var(--faint)}.rec-tile b{font-size:17px;font-weight:600}.rec-tile .m{font-size:10.5px;color:var(--faint)}
.rec-tile.active{border-color:var(--accent)}.rec-tile.recebido b{color:var(--in)}.rec-tile.a_receber b{color:#8fd3c0}.rec-tile.sem_previsao b{color:#e0b569}.rec-tile.cancelado b{color:var(--out)}
.rec-bars{width:100%;height:90px;display:block}.rec-bars .hit{fill:transparent}.rec-bars .seg.recebido{fill:var(--in)}.rec-bars .seg.a_receber{fill:#4f9c8a}.rec-bars .seg.sem_previsao{fill:#b88f45}.rec-bars .seg.cancelado{fill:#a35a55}
.rec-legend{display:flex;gap:12px;flex-wrap:wrap;font-size:10.5px;color:var(--faint);margin-top:4px}.rec-legend span:before{content:'';display:inline-block;width:8px;height:8px;border-radius:2px;margin-right:5px;vertical-align:-1px}
.rec-legend .lg-recebido:before{background:var(--in)}.rec-legend .lg-a_receber:before{background:#4f9c8a}.rec-legend .lg-sem_previsao:before{background:#b88f45}.rec-legend .lg-cancelado:before{background:#a35a55}
.rec-tag{font-size:10.5px;border-radius:6px;padding:1px 6px;border:1px solid var(--line);white-space:nowrap}.rec-tag.recebido{color:var(--in);border-color:#2f5a4c}.rec-tag.a_receber{color:#8fd3c0;border-color:#2f5a4c}.rec-tag.sem_previsao{color:#e0b569;border-color:#5a4a2c}.rec-tag.cancelado{color:var(--out);border-color:#5a2f2f}
.stmt-import{margin-bottom:12px}.stmt-bento{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;margin-bottom:12px}.stmt-bento .segmented{margin-top:10px}
.stmt-groups li{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) 62px 44px}
@media(max-width:1100px){.rec-head{grid-template-columns:1fr 1fr}.rec-head .rec-chart{grid-column:1/-1}}
@media(max-width:700px){.rec-head,.stmt-bento{grid-template-columns:1fr}}
.stmt-groups .v,.stmt-groups .g{font-size:11px;white-space:nowrap;line-height:1.4;margin:0}.stmt-groups .n{font-size:11.5px}
/* 0.14.0 menu por módulos */
aside nav .mod{display:flex;flex-direction:column}
aside nav .mod-btn{display:flex;align-items:center;gap:12px;height:40px;padding:0 11px;border:0;border-radius:10px;background:transparent;color:var(--muted);font-size:13px;text-align:left;cursor:pointer;width:100%}
aside nav .mod-btn:hover{color:var(--strong);background:#121a2a}
aside nav .mod.active>.mod-btn{color:var(--strong);background:var(--line-soft)}
aside nav .mod-btn .caret{margin-left:auto;flex:0 0 14px;width:14px;height:14px;transition:transform .15s ease,opacity .12s ease}

aside nav .sub{display:none;flex-direction:column;gap:1px;margin:2px 0 4px 20px;padding-left:10px;border-left:1px solid var(--line-soft)}
body.rail-open aside nav .mod.open .sub,body.rail-pinned aside nav .mod.open .sub{display:flex}
aside nav .sub-btn{height:30px;padding:0 10px;font-size:12px;border-radius:8px;color:var(--faint)}
aside nav .sub-btn.active{background:transparent;color:var(--accent)}
aside nav .sub-btn:hover{color:var(--strong);background:#121a2a}
.subnav{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:10px;margin-bottom:2px}
.subnav[hidden]{display:none}
.subnav-mod{font-size:11px;letter-spacing:.06em;text-transform:none;color:var(--faint)}
.subnav .segmented{flex-wrap:wrap}
/* 0.14.1 colunas de descontos */
.orders-table td.fee,.orders-table th.fee{color:var(--muted)}.orders-table td.strong{color:var(--text);font-weight:600}
.orders-table tfoot td{font-weight:600;color:var(--text);border-top:1px solid var(--line);padding-top:8px;position:sticky;bottom:0;background:var(--card)}
.orders-table td.prod{min-width:170px;max-width:300px}.orders-table th,.orders-table td{padding:6px 6px}
/* 0.14.2 barras finas com degradê */
.thin-bars{width:100%;height:auto;display:block;overflow:visible}
.thin-bars .grid{stroke:#243044;stroke-width:1.5;stroke-dasharray:3 7}
.thin-bars .yl,.thin-bars .xl{fill:#6b7a90;font-family:var(--num)}
.thin-bars .hit{fill:transparent}.thin-bars g:hover .hit{fill:#ffffff06}
.thin-bars .dot{fill:#5eead4;opacity:.9}.thin-bars .dot.hi{fill:#e9d5ff}
.rec-legend .lg-ok:before{background:linear-gradient(#5eead4,#7c3aed)}.rec-legend .lg-off:before{background:#fb7185}
.rec-head{grid-template-columns:minmax(0,1fr) minmax(0,1.3fr)}.rec-head .rec-chart{grid-column:1/-1;border-top:1px solid var(--line-soft);padding-top:12px}
@media(max-width:700px){.rec-head{grid-template-columns:1fr}}
/* 0.14.3 menu recolhe depois do clique; sem abrir submenus ao passar o mouse */
#context-strip[hidden]{display:none}
.num-link{background:none;border:0;padding:0;color:var(--text);font:inherit;font-weight:600;cursor:pointer;border-bottom:1px dotted var(--faint)}.num-link:hover{color:var(--accent);border-color:var(--accent)}
.rep-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:18px}.rep-grid .k{font-size:11.5px;color:var(--faint);margin:0 0 6px}
.rep-table{width:100%;white-space:nowrap}.rep-table td,.rep-table th{padding:6px 8px;font-size:12.5px}.rep-table .neg{color:var(--out)}.rep-table tr.total td,.rep-table tfoot td{font-weight:600;color:var(--text);border-top:1px solid var(--line)}
@media(max-width:700px){.rep-grid{grid-template-columns:1fr}}
.thin-bars .dot.neg{fill:#fb7185}.thin-bars g[data-drill]{cursor:pointer}
/* 0.14.4 hierarquia dos recebíveis */
.rec-chart-head{display:flex;align-items:center;gap:12px}.rec-chart-head .k{margin:0}
.rec-matrix{margin-bottom:14px}.rec-matrix .orders-head{margin-bottom:4px}
.rec-matrix tbody tr{cursor:pointer}.rec-matrix tbody tr:hover td{background:#121a2a}
.rec-matrix .tg{display:inline-block;width:16px;color:var(--faint)}
.rec-matrix tr.lvl0 td{font-weight:600;color:var(--text)}.rec-matrix tr.lvl1 td:first-child{padding-left:22px}.rec-matrix tr.lvl2 td:first-child{padding-left:40px;color:var(--muted)}
.rec-matrix tr.sel td{background:#14223a}.rec-matrix td.recebido{color:var(--in)}.rec-matrix td.a_receber{color:#8fd3c0}.rec-matrix td.sem_previsao{color:#e0b569}.rec-matrix td.cancelado{color:var(--out)}
/* 0.14.5 menu abre só com clique */
/* 0.33.0 (Diego): o menu volta a abrir ao passar o mouse; sai o bloqueio da 0.14.5 */
body.rail-open aside{width:216px;box-shadow:8px 0 24px rgba(0,0,0,.45)}
body.rail-open aside .label{opacity:1}
aside nav .mod.open .caret{transform:rotate(180deg)}
/* 0.14.7 foco no cartão ao passar o mouse (como o painel de marketing da DS) e R$ pequeno */
:root{--ease-out:cubic-bezier(.22,1,.36,1);--hover-line:rgba(255,210,30,.22);--hover-wash:linear-gradient(180deg,rgba(255,210,30,.035),rgba(255,255,255,.01));--hover-glow:0 10px 30px -18px rgba(255,210,30,.35)}
.cur{font-size:max(.62em,8.5px);font-weight:400;opacity:.7;margin-right:.2em;letter-spacing:0;vertical-align:.14em}
.cur-svg{opacity:.75}
.th-cur{font-size:.9em;font-weight:400;opacity:.6;margin-left:.3em;letter-spacing:0;text-transform:none}
.card,.chapter,.hero-talk,.hero-line,.fact,.rec-tile{transition:border-color .3s var(--ease-out),background .3s var(--ease-out),box-shadow .3s var(--ease-out),transform .3s var(--ease-out),opacity .3s var(--ease-out)}
@media (hover:hover) and (pointer:fine){
 .card:hover,a.card:hover,button.card:hover,.card.clickable:hover,.chapter:hover,.hero-talk:hover,.hero-line:hover,.fact:hover,.rec-tile:hover{border-color:var(--hover-line);background:var(--hover-wash),var(--card);box-shadow:var(--hover-glow);transform:translateY(-2px)}
 .card:hover{z-index:2}
 .card.hero:hover{background:var(--hover-wash),radial-gradient(120% 90% at 100% 0%,rgba(255,210,30,.07),rgba(11,15,25,0) 60%),var(--card)}
 .card.focused:hover{border-color:#5b4b14;box-shadow:inset 0 0 0 1px rgba(255,210,30,.25),var(--hover-glow)}
 .rec-tile.active:hover,.import-card.drag:hover{border-color:var(--accent)}
 /* Cartões com tabela, formulário ou área de soltar arquivo: só a cor, sem levantar nem apagar os vizinhos. */
 .card.rec-matrix:hover,.card.editing:hover,.import-card:hover,.import-mkt:hover,.card.hero.full:hover{transform:none}
 .bento:has(> .card:hover:not(.rec-matrix,.editing,.import-card,.import-mkt)) > .card:not(:hover),
 .bank-grid:has(> .card:hover:not(.editing)) > .card:not(:hover),
 .conn-row:has(> .card:hover:not(.import-mkt)) > .card:not(:hover,.import-mkt),
 .stmt-bento:has(> .card:hover) > .card:not(:hover),
 .chapters:has(> .chapter:hover) > .chapter:not(:hover),
 .home-hero:has(> :hover) > :not(:hover),
 .facts:has(> .fact:hover) > .fact:not(:hover),
 .rec-tiles:has(> .rec-tile:hover) > .rec-tile:not(:hover){opacity:.72}
 .bank-grid:has(> .card:hover) > .bank-card.off:not(:hover){opacity:.45}
}
@media (prefers-reduced-motion:reduce){
 .card,.chapter,.hero-talk,.hero-line,.fact,.rec-tile{transition:border-color .3s,background .3s,opacity .3s}
 .card:hover,a.card:hover,button.card:hover,.card.clickable:hover,.chapter:hover,.hero-talk:hover,.hero-line:hover,.fact:hover,.rec-tile:hover{transform:none}
}
/* 0.15.0 venda necessária (Orçamento): controles deslizantes e barra empilhada em SVG */
.sale-bento{margin-top:0}
.sale-sim .sim{display:grid;gap:14px;margin:8px 0 4px}
.ctl label{display:flex;justify-content:space-between;align-items:baseline;gap:12px;font-size:12px;color:var(--muted);margin-bottom:6px}
.ctl label b{font-family:var(--num);font-weight:500;color:var(--strong);font-variant-numeric:tabular-nums}
.ctl .src{white-space:nowrap;font-size:10px;color:var(--faint);margin-left:6px;border:1px solid var(--line);border-radius:6px;padding:0 5px}
.ctl .src.est{color:var(--accent);border-color:rgba(255,210,30,.3)}
.rng{width:100%;max-width:none;-webkit-appearance:none;appearance:none;height:3px;padding:0;border:0;border-radius:999px;background:var(--line);outline:none;cursor:pointer}
.rng:focus-visible{outline:2px solid var(--accent);outline-offset:4px}
.rng::-webkit-slider-thumb{-webkit-appearance:none;width:14px;height:14px;border-radius:50%;background:var(--accent);border:0}
.rng::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:var(--accent);border:0}
.sale-sim .m .text-button{margin-left:4px}
.sale-big{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px;margin:2px 0 4px}
.sale-big .v{white-space:nowrap;font-size:30px;letter-spacing:-.02em}
.sale-big small{font-size:12px;color:var(--faint)}
.sale-stack{display:block;width:100%;height:8px;margin:10px 0 4px;border-radius:999px;overflow:hidden}
.sp-repasse{fill:var(--in);background:var(--in)}.sp-commission{fill:var(--out);background:var(--out)}.sp-ads{fill:#fb7185;background:#fb7185}.sp-other{fill:#a78bfa;background:#a78bfa}
.sale-legend{list-style:none;margin:6px 0 0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 18px}
.sale-legend li{display:flex;align-items:center;gap:8px;font-size:11.5px;color:var(--muted)}
.sale-legend li b{margin-left:auto;font-family:var(--num);font-weight:500;color:var(--text)}
.sale-legend i{width:8px;height:8px;border-radius:50%;flex:none}
.sale-result .note{margin:10px 0 0;font-size:12px;color:var(--muted);display:flex;gap:6px;align-items:flex-start}
.sale-result .note.good{color:var(--in)}.sale-result .note.warn{color:var(--out)}
@media(max-width:700px){.sale-legend{grid-template-columns:minmax(0,1fr)}.sale-big .v{font-size:26px}}
/* 0.16.0 meta e equilíbrio: régua, perguntas do mês, composição da margem, metas e linhas real x meta x equilíbrio */
.meta{padding-top:18px}
.meta-bar{display:flex;align-items:center;gap:10px 14px;flex-wrap:wrap;margin-bottom:6px}
.meta-bar .meta-months{flex-wrap:wrap}
.meta-go{color:var(--in)}
.meta-note{font-size:12px;color:var(--muted);margin:8px 0 0;display:flex;gap:8px;align-items:center;flex-wrap:wrap}.meta-note > span{flex:1;min-width:0}
.meta-form .p{overflow-wrap:anywhere}.meta-form code.path{font-family:var(--mono);font-size:11px;color:var(--text)}
.meta-note.warn{color:#e0b569}
.meta-bento{margin-top:12px;grid-auto-rows:auto}
.meta-bento .card .v{white-space:nowrap}
.meta-bento .card .v.accent{color:var(--accent)}.meta-bento .card .v.in{color:var(--in)}
.gauge{display:block;width:100%;height:32px;margin:14px 0 6px;overflow:visible}
.gauge .g-low,.gauge-zones .g-low i{fill:rgba(251,113,133,.38);background:rgba(251,113,133,.38)}
.gauge .g-mid,.gauge-zones .g-mid i{fill:rgba(253,186,116,.38);background:rgba(253,186,116,.38)}
.gauge .g-top,.gauge-zones .g-top i{fill:rgba(94,234,212,.32);background:rgba(94,234,212,.32)}
.gauge .hit{fill:transparent}
.gauge line{stroke-width:2;stroke:var(--muted)}
.gauge .mk-real line{stroke:var(--accent);stroke-width:3}.gauge .mk-pace line{stroke:var(--accent);stroke-dasharray:3 3;opacity:.75}
.gauge .mk-be line{stroke:#fb7185}.gauge .mk-goal line{stroke:#d1d5db}
.gauge-legend,.gauge-zones{list-style:none;margin:6px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:6px 18px}
.gauge-legend li,.gauge-zones li{display:flex;align-items:center;gap:6px;font-size:11.5px;color:var(--muted)}
.gauge-legend li b{font-family:var(--num);font-weight:500;color:var(--text)}
.gauge-legend i{width:12px;height:3px;border-radius:2px;flex:none;background:var(--muted)}
.gauge-legend .mk-real i{background:var(--accent)}.gauge-legend .mk-pace i{background:repeating-linear-gradient(90deg,var(--accent) 0 3px,transparent 3px 5px)}
.gauge-legend .mk-be i{background:#fb7185}.gauge-legend .mk-goal i{background:#d1d5db}
.gauge-zones li{font-size:11px;color:var(--faint)}.gauge-zones i{width:8px;height:8px;border-radius:2px;flex:none}
.qa{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:8px}
.qa li{display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:12.5px;color:var(--text);border-bottom:1px solid var(--line-soft);padding-bottom:7px}
.qa li:last-child{border-bottom:0;padding-bottom:0}
.qa small{display:block;font-size:11px;color:var(--faint)}
.qa .tag,.meta-table .tag{border-radius:6px}
.mc-rows{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:6px}
.mc-rows li{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:12px;align-items:baseline;font-size:12.5px;color:var(--muted)}
.mc-rows li small{font-size:11px;color:var(--faint);text-align:right}
.mc-rows li b{font-family:var(--num);font-weight:500;color:var(--text);min-width:84px;text-align:right}
.mc-rows li.strong{color:var(--strong);border-top:1px solid var(--line-soft);padding-top:6px}.mc-rows li.strong b{color:var(--strong)}
.mc-rows li.muted{opacity:.7}
.mc-rows li b.neg{color:var(--out)}
.meta-fields{display:grid;gap:10px;margin:8px 0 4px}
.meta-fields label{display:grid;gap:4px;font-size:12px;color:var(--muted)}
.meta-fields .money-input{max-width:220px;text-align:right;padding:6px 8px}
.meta-fields .money-input.invalid{border-color:#ee938c}
.meta-fields .segmented{justify-self:start}
.meta-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.meta-msg{color:var(--in)}
.desi-note{flex-direction:row;align-items:flex-start;gap:14px}
.desi-note h3{margin:0 0 4px;font-size:15px;font-weight:600;color:var(--strong)}
.desi-note p{margin:0;font-size:12.5px;color:var(--muted);max-width:820px}
.line-chart{display:block;width:100%;height:auto;margin-top:8px;overflow:visible}
.line-chart .grid{stroke:#243044;stroke-width:1.5;stroke-dasharray:3 7}
.line-chart .yl,.line-chart .xl{fill:#6b7a90;font-family:var(--num)}
.line-chart path{fill:none;stroke-linecap:round;stroke-linejoin:round}
.line-chart .ln-real{stroke:var(--accent);stroke-width:1.6}.line-chart .ln-real.pace{stroke-dasharray:5 5;opacity:.8}
.line-chart .ln-goal{stroke:#9ca3af;stroke-width:1.2;stroke-dasharray:6 5}
.line-chart .ln-be{stroke:#fb7185;stroke-width:1.1;stroke-dasharray:3 4}
.line-chart .dot{fill:var(--accent)}.line-chart .dot.open{fill:var(--bg);stroke:var(--accent);stroke-width:1.5}
.line-chart .hit{fill:transparent}.line-chart g:hover .hit{fill:rgba(255,255,255,.03)}
.meta-table{margin-top:4px}.meta-table tr.open-row td{color:var(--muted)}
@media(max-width:700px){.meta-bar{align-items:flex-start}.mc-rows li{grid-template-columns:minmax(0,1fr) auto}.mc-rows li small{display:none}.desi-note{flex-direction:column}.meta-fields .money-input{max-width:none}}
/* 0.17.0 Carregar dados (um lugar só para importar) */
.load{padding-top:6px}
.load-bento{grid-template-columns:minmax(0,1fr);grid-auto-rows:auto;margin-bottom:12px}
.load-hero{grid-column:1/-1;grid-row:auto;flex-direction:row;align-items:flex-start;gap:18px}
.load-hero .lh-body{display:flex;flex-direction:column;gap:10px;min-width:0;flex:1}
.load-hero .headline{font-size:21px;max-width:900px}
.load-hero .m{font-size:11.5px;color:var(--faint);margin:0}
.lh-steps{list-style:none;margin:2px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.lh-steps li{display:flex;align-items:center;gap:6px;font-size:11.5px;color:var(--muted);border:1px solid var(--line);border-radius:999px;padding:3px 10px 3px 4px}
.lh-steps li span{display:inline-grid;place-items:center;width:18px;height:18px;border-radius:50%;font-size:10.5px;font-family:var(--num);background:var(--line-soft);color:var(--text)}
.lh-steps li.ok{border-color:#2f5a4c}.lh-steps li.ok span{background:#173a30;color:#75d8b7}
.lh-steps li.late{border-color:#4a3f2a}.lh-steps li.late span{background:#3a2f12;color:#e0b569}
.lh-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.lh-actions .sync-line{font-size:11.5px;color:#7dd3fc}
.load-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:12px;margin-bottom:10px}
.load-card{gap:10px}
.load-card.running{border-color:rgba(255,210,30,.35)}
.lc-head{display:flex;gap:10px;align-items:flex-start}
.lc-head .step{flex:none;display:grid;place-items:center;width:22px;height:22px;border-radius:50%;border:1px solid var(--line);font-family:var(--num);font-size:11px;color:var(--accent)}
.lc-title{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}
.lc-title .k{font-size:13px;color:var(--strong);font-weight:600}
.lc-title .m{font-size:11.5px;color:var(--faint)}
.lc-facts{list-style:none;margin:0;padding:0;display:grid;gap:5px}
.lc-facts li{display:flex;justify-content:space-between;gap:10px;font-size:12px;color:var(--muted);border-bottom:1px solid var(--line-soft);padding-bottom:4px}
.lc-facts li:last-child{border-bottom:0}
.lc-facts b{font-family:var(--num);font-weight:500;font-size:11.5px;color:var(--text);text-align:right}
.lc-facts .text-button.warn{color:#e0b569}
.lc-period{margin:0;flex-wrap:wrap;gap:8px}
.lc-period input.dp-native{left:0;top:0;min-width:0;max-width:1px}
.lc-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:auto}
.lc-companies{display:flex;flex-wrap:wrap;gap:6px;margin:2px 0 8px}
.lc-actions .file-btn{align-self:auto}
.lc-actions .file-btn.disabled{opacity:.5;pointer-events:none}
.lc-progress{margin:0;font-size:11.5px;color:#7dd3fc;min-height:1em}
.lc-progress:empty{display:none}
.context-strip .load-link{margin-left:auto;color:var(--accent)}
@media (hover:hover) and (pointer:fine){
 .load-card:hover{transform:none}
 .load-grid:has(> .card:hover) > .card:not(:hover){opacity:.72}
}
@media(max-width:700px){.load-hero{flex-direction:column}.load-grid{grid-template-columns:minmax(0,1fr)}}
/* 0.17.0 Lançamentos (Caixas e bancos) com categoria manual e observação */
.lanc{padding-top:6px}
.lanc-bento{grid-template-columns:minmax(0,2fr) repeat(2,minmax(0,1fr));grid-auto-rows:auto;margin-top:12px}
.lanc-bento .card.hero{grid-column:auto;grid-row:span 2;padding:18px 20px}
.lanc-bento .card:not(.hero){padding:12px 16px}
.lanc-bento .card.hero .headline{font-size:19px}
.lanc-bento .card .v{font-size:19px}
.lanc-bento button.card{color:inherit}
.lanc-empty{margin-top:14px}
.lanc-filters .segmented{display:inline-flex}
.lanc-filters input[type=search]{min-width:240px;flex:1;max-width:340px}
.lanc-msg{margin:8px 0 0;font-size:12px;color:var(--in);min-height:1em}
.lanc-msg:empty{display:none}
.lanc-wrap{margin-top:10px;max-height:calc(100vh - 220px)}
.lanc-table{width:100%;border-collapse:collapse}
.lanc-table th,.lanc-table td{padding:6px 7px;text-align:left;vertical-align:top}
.lanc-table th.amount,.lanc-table td.amount{text-align:right;white-space:nowrap}
.lanc-table td.mono{font-family:var(--num);font-size:11px;color:var(--muted);white-space:nowrap}
.lanc-table td.acc{white-space:nowrap;color:var(--muted)}
.lanc-table td.contact{max-width:170px}
.lanc-table td.desc{max-width:210px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lanc-table td.line{min-width:170px;max-width:240px}
.lanc-table td.note{max-width:180px;font-size:11.5px;color:#e8d9a0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lanc-table td.cat{min-width:150px;max-width:220px;color:var(--muted);font-size:12px}
.lanc-table td.cat .cat-txt{display:block;max-width:210px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cat-txt.none,.line-txt.none{color:#e0b569}
.line-txt{font-size:12px}
.lanc-table .pick-col{width:26px;padding-right:0}
.lanc-table tr.sel td{background:rgba(255,210,30,.05)}
.lanc-table tr.reclass td.line .cat-btn,.lanc-table tr.reclass td.line .line-txt{color:var(--accent)}
.lanc-table tr.editing-row td{background:#0f1626}
.lanc-table tfoot td{font-weight:600;color:var(--text);border-top:1px solid var(--line);padding-top:8px;position:sticky;bottom:0;background:var(--card)}
.th-sort{background:none;border:0;padding:0;color:inherit;font:inherit;cursor:pointer}
.th-sort.on{color:var(--strong)}
.cat-btn{background:none;border:0;padding:0;color:var(--text);font:inherit;font-size:12px;text-align:left;cursor:pointer;border-bottom:1px dashed #334155}
.cat-btn:hover{color:var(--accent);border-bottom-color:var(--accent)}
.cat-btn.none{color:#e0b569}
.lanc-table .tag.manual{margin-left:6px;border-color:#5b4b14;color:var(--accent);border-radius:6px}
.lanc-table td.sit{white-space:nowrap}.lanc-table .sit-tag{font-size:10.5px;padding:1px 7px;border-radius:999px;background:rgba(148,163,184,.12);color:var(--muted)}.lanc-table .sit-tag.aberto{background:rgba(250,204,21,.12);color:var(--accent)}.lanc-table .sit-tag.vencido{background:rgba(248,113,113,.14);color:#f87171}.lanc-table tr.title-row td.mono{color:var(--text)}
.lanc-table small.who{display:block;font-size:10.5px;color:var(--faint);margin-top:2px}
.add-note{opacity:0;color:var(--faint)}
.lanc-table tr:hover .add-note,.add-note:focus{opacity:1}
.edit-row td{padding:0 0 8px!important;background:transparent!important}
.lanc-editor{flex-direction:row;gap:18px;flex-wrap:wrap;margin:4px 0;max-width:min(1080px,calc(100vw - 120px));position:sticky;left:0}
.lanc-editor .ed-col,.bulk-body .ed-col{flex:1;min-width:260px;display:flex;flex-direction:column;gap:6px}
.lanc-editor .m,.bulk-bar .m{font-size:11.5px;color:var(--faint);margin:0}
.ed-note{display:grid;gap:4px}
.ed-note .k small{font-weight:400;color:var(--faint);margin-left:4px}
.ed-note textarea{background:var(--card);border:1px solid var(--line);border-radius:8px;color:var(--text);padding:6px 8px;font:inherit;font-size:12px;resize:vertical;width:100%}
.ed-note.ask .k{color:var(--accent)}
.ed-note.ask textarea{border-color:#5b4b14}
.ed-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.pick{display:flex;flex-direction:column;gap:6px}
.pick-q{width:100%}
.pick-list{max-height:210px;overflow:auto;border:1px solid var(--line);border-radius:10px;padding:4px;display:flex;flex-direction:column;gap:1px}
.pick-opt{display:flex;gap:8px;align-items:baseline;justify-content:space-between;background:none;border:0;border-radius:6px;padding:5px 8px;color:var(--text);font:inherit;font-size:12px;text-align:left;cursor:pointer}
.pick-opt span{flex:1;min-width:0}
.pick-opt small{font-size:10.5px;color:var(--faint);text-align:right}
.pick-opt small.warn{color:#e0b569}
.pick-opt em{font-style:normal;font-size:10px;color:var(--in);border:1px solid #23406a;border-radius:6px;padding:0 4px}
.pick-opt:hover{background:var(--line-soft)}
.pick-opt.on{background:#1c170c;outline:1px solid #5b4b14}
.bulk-bar{margin-top:10px;gap:10px}
.bulk-head{display:flex;justify-content:space-between;align-items:center;gap:10px}
.bulk-head .k{color:var(--accent)}
.bulk-body{display:flex;flex-wrap:wrap;gap:18px}
.lanc .more{text-align:center;margin:10px 0;display:flex;gap:10px;justify-content:center;align-items:center;flex-wrap:wrap}
@media(max-width:1100px){.lanc-bento{grid-template-columns:repeat(2,minmax(0,1fr))}.lanc-bento .card.hero{grid-column:1/-1;grid-row:auto}}
@media(max-width:700px){.lanc-bento{grid-template-columns:minmax(0,1fr)}.lanc-bento .card .v{font-size:16px}.lanc-bento .card.hero .headline{font-size:17px}.lanc-filters input[type=search]{min-width:0;max-width:none;width:100%}.add-note{opacity:1}}
.lanc-editor .m.warn,.bulk-bar .m.warn{color:#e0b569}
.lanc-editor,.bulk-bar{white-space:normal}
/* Busca e ordenação 0.17.2 (table-tools.js) */
.tt-search{display:inline-flex;align-items:center;gap:8px;flex:1 1 240px;max-width:380px;min-width:0}
.tt-search input[type=search]{flex:1;min-width:0;width:100%;max-width:none;margin:0}
.tt-count{font-size:11px;color:var(--faint);white-space:nowrap;font-variant-numeric:tabular-nums}
.tt-count:empty{display:none}
.th-sort{display:inline-flex;align-items:center;gap:3px;text-align:inherit}
th.amount .th-sort{justify-content:flex-end}
.th-arrow{font-size:10px;color:var(--accent)}
.th-arrow.idle{color:var(--faint);opacity:.45}
.th-sort:hover .th-arrow.idle,.th-sort:focus-visible .th-arrow.idle{opacity:.9}
mark.tt-hit{background:rgba(255,210,30,.16);color:inherit;border-radius:2px;padding:0 1px}
tr.tt-row-hit>td:first-child{box-shadow:inset 2px 0 0 rgba(255,210,30,.55)}
tr.tt-row-hit input.name-input,tr.tt-row-hit input.code-input{border-color:rgba(255,210,30,.35)}
tr.tt-ctx>td{opacity:.62}
.tt-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:6px 0 8px}
.tt-bar .hint-inline{font-size:11px;color:var(--faint)}
.filters .tt-search span.tt-count{margin-left:0}
.modal-search{margin:8px 0 6px}
@media(max-width:700px){.tt-search{flex:1 1 100%;max-width:none}}
.cat-hits{display:block;font-size:10.5px;color:var(--faint);text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:260px;margin-left:auto}

/* 0.17.3 sem submenus na lateral: as telas de cada módulo ficam só na barra de abas do topo */
aside nav .mod .sub,body.rail-open aside nav .mod.open .sub,body.rail-pinned aside nav .mod.open .sub{display:none}
/* 0.17.3 topo alinhado entre as telas: espaço da barra de rolagem sempre reservado (o layout não pula para o lado),
   título e subtítulo numa linha só, faixa de abas e faixa de contexto sempre com a mesma altura */
html{scrollbar-gutter:stable}
@media(min-width:701px){header{flex-wrap:nowrap}header>*{flex:0 0 auto}header>.page-title{flex:1 1 0;min-width:0}.page-title h1,.page-title p{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}}
.subnav{min-height:30px}
.context-strip{min-height:37px;display:flex;align-items:center;flex-wrap:wrap}
@media(max-width:700px){.context-strip:empty{min-height:0;padding:0}}
/* 0.17.3 o botão CSV só existe em algumas telas: nas outras o espaço dele fica reservado (invisível), para o cliente, as datas e o Sair não andarem */
#export.reserved{visibility:hidden;pointer-events:none}
@media(max-width:700px){#export.reserved{display:none}}
/* 0.17.3 título de cada tela no amarelo da marca (o mesmo #ffd21e do site) */
.page-title h1{color:var(--accent)}
/* 0.18.0 De/para (só administradores) */
.depara .dp-bento{grid-template-columns:minmax(0,1fr);grid-auto-rows:auto;margin-bottom:12px}
.dp-hero{grid-column:1/-1;flex-direction:row;align-items:flex-start;gap:18px}.dp-hero .lh-body{display:flex;flex-direction:column;gap:10px;min-width:0;flex:1}
.crit-grid{display:grid;grid-template-columns:minmax(230px,280px) minmax(0,1fr);gap:12px;align-items:start;margin-bottom:12px}
.dp-list-head{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px}
.dp-groups,.dp-groups ul,.dp-rule-card ul{list-style:none;margin:0;padding:0}
.dp-group{padding:8px 0;border-top:1px solid var(--line-soft)}.dp-group:first-child{border-top:0}
.dp-group-name{display:block;font-size:12px;color:var(--strong);margin-bottom:4px}.dp-group-name .m{margin-left:4px}
.dp-group .m{font-size:11px;color:var(--faint);margin:0}
.dp-map{display:flex;gap:6px;align-items:center;width:100%;background:none;border:1px solid transparent;border-radius:8px;padding:5px 6px;color:var(--text);text-align:left;font-size:12px}
.dp-map:hover{border-color:var(--line)}.dp-map.active{border-color:var(--accent)}
.dp-map-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dp-editor{display:flex;flex-direction:column;gap:12px;min-width:0}
.dp-origin{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:8px}
.dp-origin label:not(.file-btn){font-size:11px;color:var(--faint);display:flex;gap:6px;align-items:center}
.dp-origin #dp-header{width:60px}.dp-origin #dp-name{min-width:200px}
.dp-cols-tools{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin:8px 0}
.dp-cols-tools label{display:flex;gap:6px;align-items:center}
.dp-cols table td,.dp-cols table th{padding:6px 8px;vertical-align:middle}
.dp-cols td:first-child{max-width:260px}
.dp-cols td.m{max-width:220px;overflow:hidden;text-overflow:ellipsis;font-size:11px;color:var(--faint)}
.dp-cols tr.off .dp-from{color:var(--faint)}.dp-cols tr.gone{opacity:.7}
.dp-from{margin-right:6px}
/* 0.18.2 Critérios › Nomes das contas */
.dp-names{margin-bottom:12px}
/* 0.18.3 Critérios › Tabelas */
.dp-tname{display:block;font-family:'IBM Plex Mono',monospace;font-size:10.5px}.dp-tgroup{display:block;margin:8px 0 2px;font-size:10.5px;text-transform:none;letter-spacing:.06em}
.dp-tdetail{display:flex;flex-direction:column;gap:10px;margin-bottom:12px}.dp-tdetail code,.dp-tcols code{font-family:'IBM Plex Mono',monospace;font-size:11.5px}
.dp-migrate{grid-column:1/-1;display:flex;flex-direction:column;gap:10px}.dp-migrate .num{text-align:right;font-variant-numeric:tabular-nums}
.dp-tcols table td,.dp-tcols table th{padding:6px 8px;vertical-align:top;font-size:12px}.dp-tcols .tag{margin-left:6px;font-size:10px}.dp-tcols td:nth-child(3){min-width:220px}
.dp-tcols.table-wrap{max-height:none}.dp-tcols table{white-space:normal}.dp-tcols td:first-child,.dp-tcols td:nth-child(2){white-space:nowrap}.dp-tcols td:last-child .text-button{display:block;text-align:left}
.dp-tback .text-button{margin-right:6px}
/* 0.18.5 recebíveis: valores clicáveis */
.rec-matrix .num-link{color:inherit;font-weight:inherit;border-bottom-color:transparent}.rec-matrix .num-link:hover{border-bottom-color:currentColor}.rec-matrix .num-link.on{outline:1px solid var(--accent);outline-offset:3px;border-radius:2px}.dp-tlabel input{width:100%;min-width:130px;padding:4px 6px}#dp-tq{width:100%}.dp-names table td,.dp-names table th{padding:8px;vertical-align:middle}
.dp-names .dp-acct-id{display:block;font-size:11px;color:var(--faint);margin-top:2px}
.dp-names input{width:100%;min-width:160px}.dp-names tr.off td{opacity:.6}
.dp-name-cell,.dp-type-cell{white-space:nowrap}.dp-name-cell select,.dp-type-cell select,.dp-name-cell input{padding:4px 6px;font-size:11.5px}
.dp-name-cell input{width:150px;margin-left:6px}.dp-type-cell select+select{margin-left:6px}
.dp-preview table td,.dp-preview table th{padding:6px 8px}
.dp-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:4px 0 12px}
.dp-actions .m{font-size:11.5px;color:var(--muted)}
.dp-rules{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:12px;margin-bottom:12px}
.dp-rule{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 10px;padding:8px 0;border-top:1px solid var(--line-soft);font-size:12px}
.dp-rule:first-child{border-top:0}.dp-rule .m{grid-column:1/-1;font-size:11px;color:var(--faint);margin:0}
.dp-rule-when{color:var(--muted)!important}
.crit-months{font-size:11px;color:var(--faint);display:flex;gap:6px;align-items:center}.crit-months input{width:56px;padding:4px 6px}
@media(max-width:900px){.crit-grid{grid-template-columns:minmax(0,1fr)}.dp-hero{flex-direction:column}}
.dp-origin label{flex-wrap:wrap;max-width:100%}.dp-origin select{max-width:100%;min-width:0}
@media(max-width:700px){.dp-origin #dp-name{min-width:0;width:100%}}
/* 0.18.6: botão "Recebido com repasse ≤ 0" */
.zero-btn{display:flex;align-items:center;gap:6px;border:1px solid var(--line);background:transparent;color:var(--faint);border-radius:999px;padding:5px 11px;font-size:12px;cursor:pointer;white-space:nowrap}
.zero-btn i{width:8px;height:8px;border-radius:2px;background:#374151}
.zero-btn:hover:not(:disabled){border-color:#2b3647;color:var(--text)}
.zero-btn[aria-pressed="true"]{color:var(--text);border-color:var(--out-strong);background:#0f1626}
.zero-btn[aria-pressed="true"] i{background:var(--out-strong)}
.zero-btn:disabled{opacity:.45;cursor:default}
.orders-table td.ml-status{white-space:nowrap;color:var(--faint);font-size:12px}
/* 0.18.7: contas do Mercado Livre e do Mercado Pago na tela Carregar dados */
.load-accounts{margin-top:14px}
.mkt-accounts .ma-head{display:flex;flex-direction:column;gap:2px;margin-bottom:2px}
.mkt-accounts .ma-head .m{margin:0;font-size:12px;color:var(--faint)}
.conn-row.two{grid-template-columns:minmax(0,1fr) minmax(0,1fr);margin:8px 0 0}
@media(max-width:700px){.conn-row.two{grid-template-columns:minmax(0,1fr)}}
/* 0.19.0: painel de vendas do Início (ideia do Power BI) */
.sales-panel{display:grid;grid-template-columns:minmax(0,1fr);gap:14px}
.sp-days{gap:6px;max-height:640px;overflow:auto}
.sp-days ol{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.sp-days li{display:flex;flex-direction:column;gap:1px;padding:8px 0 8px 10px;border-left:2px solid var(--line);margin-left:2px}
.sp-days li+li{border-top:1px solid var(--line-soft)}
.sp-days .d{font-size:11px;color:var(--muted);font-weight:600}
.sp-days b{font-size:14px;color:var(--accent)}
.sp-days .m{font-size:11px;color:var(--faint)}
.sp-main{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:14px;align-content:start}
.sp-kpis{grid-column:span 4;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px 12px;align-content:start}
.sp-kpi{display:flex;flex-direction:column;gap:2px}
.sp-kpi .k{font-size:11px;color:var(--muted)}
.sp-kpi b{font-size:20px;color:var(--accent);font-weight:700}
.sp-story{grid-column:1/-1;margin:4px 0 0;font-size:12.5px;color:var(--muted);line-height:1.5}
.sp-gauge-card{grid-column:span 2;grid-row:span 2;align-items:center;gap:4px}
.sp-gauge-card .k{align-self:flex-start}
.sp-gauge{width:100%;max-width:280px}
.sp-gauge path{fill:none;stroke-width:22}
.sp-gauge .track{stroke:#e5e7eb;stroke-opacity:.14}
.sp-gauge .arc{stroke:var(--accent)}
.sp-gv{font-size:24px;color:var(--accent);margin-top:-46px}
.sp-gl{display:flex;justify-content:space-between;width:100%;max-width:280px;font-size:11px;color:var(--faint);margin-top:14px}
.sp-pace{grid-column:span 2;display:grid;place-items:center;position:relative;min-height:180px}
.sp-ring{width:170px;height:170px;grid-area:1/1}
.sp-ring circle{fill:none;stroke-width:2}
.sp-ring .track{stroke:var(--line)}
.sp-ring .arc{stroke:#fde68a;stroke-linecap:round}
.sp-in{grid-area:1/1;display:flex;flex-direction:column;align-items:center;text-align:center;gap:1px}
.sp-in b{font-size:15px;color:var(--accent)}.sp-in b.big{font-size:17px;margin-top:8px}
.sp-in span{font-size:10.5px;color:var(--muted)}
.sp-keep{grid-column:span 2;display:grid;grid-template-columns:1fr 1fr;gap:10px;align-items:center}
.sp-pill{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:4px;aspect-ratio:1;border:2px solid var(--line);border-radius:50%;padding:8px}
.sp-pill b{font-size:18px}.sp-pill span{font-size:10.5px;color:var(--muted)}
.sp-month-card{grid-column:span 3}
.sp-months{width:100%;height:auto}
.sp-months .bar{fill:#a3e635;fill-opacity:.85}
.sp-months .hit{fill:transparent}
.sp-months text{font-size:15px;fill:var(--muted)}
.sp-months text.v{fill:var(--text);font-size:15px}
.sp-months .keep{fill:none;stroke:#fb923c;stroke-width:1.5;stroke-dasharray:5 4}
.sp-months .kp circle{fill:#fb923c}.sp-months .kp text{fill:#fdba74;font-size:14px}
.sp-top{grid-column:span 3;gap:8px}
.sp-top ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.sp-top li{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) auto;gap:8px;align-items:center;font-size:12px}
.sp-top .n{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text)}
.sp-top svg{width:100%;height:6px}.sp-top .track{fill:var(--line)}.sp-top .fill{fill:#a3e635}
.sp-top .v{color:var(--text)}
@media(max-width:1100px){.sales-panel{grid-template-columns:minmax(0,1fr)}.sp-days{max-height:220px}.sp-days ol{flex-direction:row;overflow:auto;gap:10px}.sp-days li+li{border-top:0}.sp-main{grid-template-columns:repeat(2,minmax(0,1fr))}.sp-kpis,.sp-month-card,.sp-top{grid-column:1/-1}.sp-pace,.sp-keep,.sp-gauge-card{grid-column:span 1;grid-row:auto}}
@media(max-width:700px){.sp-main{grid-template-columns:minmax(0,1fr)}.sp-kpis{grid-template-columns:1fr 1fr}}
.sp-top .v{font-size:12px;font-family:inherit;white-space:nowrap}
.sp-months text{font-family:inherit}
.sp-kpis{grid-row:span 1}
.sp-missing{grid-column:1/-1;gap:6px}
.sp-missing .m{margin:0;font-size:12px;color:var(--muted)}
.sp-missing ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 18px}
.sp-missing li{display:grid;grid-template-columns:110px minmax(0,1fr) auto;gap:8px;font-size:12px;padding:3px 0;border-bottom:1px solid var(--line-soft)}
.sp-missing .mono{font-family:var(--num);color:var(--out)}.sp-missing .n{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted)}
@media(max-width:700px){.sp-missing ul{grid-template-columns:minmax(0,1fr)}}
.sp-missing .v{font-size:12px;font-family:inherit;white-space:nowrap;color:var(--text)}
.basis-toggle{display:flex;border:1px solid var(--line);border-radius:999px;overflow:hidden;flex:none}
.basis-toggle button{border:0;background:transparent;color:var(--faint);font-size:12px;padding:5px 11px;cursor:pointer;white-space:nowrap}
.basis-toggle button+button{border-left:1px solid var(--line)}
.basis-toggle button:hover{color:var(--text)}
.basis-toggle button[aria-pressed="true"]{background:#0f1626;color:var(--text);box-shadow:inset 0 -2px 0 var(--accent)}
/* Cadastros (0.19.4) */
.cadastros{padding-top:6px;display:flex;flex-direction:column;gap:12px}
.cad-hero{flex-direction:row;align-items:flex-start;gap:18px}
.cad-hero .lh-body{display:flex;flex-direction:column;gap:8px;min-width:0;flex:1}
.cad-hero .headline{font-size:20px;max-width:900px}
.cad-hero .lede{max-width:900px}
.cad-grid{display:grid;grid-template-columns:minmax(300px,420px) minmax(0,1fr);gap:12px;align-items:start}
.cad-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px;flex-wrap:wrap}
.cad-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px;align-items:end}
.cad-fields label{display:flex;flex-direction:column;gap:4px;font-size:11px;color:var(--faint)}
.cad-fields label.wide{grid-column:1/-1}
.cad-fields input{width:100%}
.cad-fields button{grid-column:1/-1;justify-self:start}
.cad-form .m[role=status]{margin:8px 0 0;min-height:1em}
.cad-inline{display:flex;gap:6px;align-items:center}
.cad-inline input{width:90px;padding:4px 6px}
.cad-missing .table-wrap{max-height:380px;overflow:auto}
.cad-list .cad-head .tt-search{min-width:260px}
.cad-row{cursor:pointer}
.cad-row.open td{background:#0f1626}
.cad-history td{background:#0b1220;padding:6px 12px}
.cad-history ul{list-style:none;margin:0;padding:0;display:grid;gap:4px;max-width:520px}
.cad-history li{display:grid;grid-template-columns:90px 120px 1fr auto;gap:10px;align-items:center;font-size:12px}
.cad-list>.m{margin:10px 0 0;font-size:11px;color:var(--faint)}
@media(max-width:900px){.cad-grid{grid-template-columns:minmax(0,1fr)}.cad-hero{flex-direction:column}}
/* Shopee (0.20.0) */
.bank-logo.sp{background:#3d1a10;color:#ff8a5c}.bank-logo.tt{background:#0f2a2c;color:#25f4ee}
.conn-row.one{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
@media(max-width:700px){.conn-row.one{grid-template-columns:minmax(0,1fr)}}
.shopee .rec-tabs{margin:4px 0 10px;flex-wrap:wrap}
.shopee .orders-table td.amount.fee{color:var(--muted)}
/* Gestão integrada 0.22.0 (prévia): caixa de 13 semanas, custo financeiro e pauta da semana */
.gi-chart{width:100%;height:auto;aspect-ratio:1000/190}.gi-chart text{font-family:var(--num);font-size:10px;fill:#71879a}.gi-chart .hit{fill:transparent;cursor:pointer}
.gi-chart .gi-min{stroke:#e0b569;stroke-width:1;stroke-dasharray:5 5;opacity:.8}.gi-chart .gi-pt{fill:#5eead4}.gi-chart .gi-pt.low{fill:#fb7185}
.gi-chart g:hover .gi-pt{r:4.5}
.gi-table td.gi-low{color:#fb7185}.gi-table th{white-space:nowrap}.gi-table tbody th{text-align:left;font-weight:500;color:var(--muted)}
.gi-min-form{display:flex;gap:8px;align-items:center;margin:6px 0 2px}.gi-min-form .money-input{max-width:150px}
.gi-pauta .gi-item{gap:6px}.gi-pauta .gi-item .text-button{align-self:flex-start;margin-top:auto}
.gi-list{list-style:none;margin:2px 0 0;padding:0;font-size:12px}.gi-list li{display:flex;justify-content:space-between;gap:10px;padding:3px 0;border-bottom:1px solid var(--line)}
.gi-list li small{color:var(--faint)}.gi-list .amount{white-space:nowrap;font-family:var(--num);font-size:11.5px}
.gestao .meta-note .outline.small{margin-left:auto}
/* Painel de vendas 0.23.0: curvas suaves, abas no gráfico por mês, faixas de % MC e venda por SKU (ideia do Power BI do Diego). */
.sp-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.sp-tabs button{font-size:11px;padding:4px 10px}
.sp-month-card{grid-column:span 4}
.sp-bands-card{grid-column:span 2;gap:8px}
.sp-top.wide,.sp-skus{grid-column:span 3}
.sp-months .base{stroke:var(--line);stroke-width:1}
.sp-months .bar{fill:url(#spBar);fill-opacity:1;transform-box:fill-box;transform-origin:50% 100%;animation:spGrow .9s cubic-bezier(.22,1,.36,1) both}
.sp-months .mo:nth-child(4) .bar{animation-delay:.06s}.sp-months .mo:nth-child(5) .bar{animation-delay:.12s}.sp-months .mo:nth-child(6) .bar{animation-delay:.18s}.sp-months .mo:nth-child(7) .bar{animation-delay:.24s}.sp-months .mo:nth-child(8) .bar{animation-delay:.3s}
.sp-months .mo.cur .bar{fill-opacity:.75}
.sp-months .mo:hover .bar{filter:brightness(1.15)}
.sp-months text.v{font-size:14px}
.sp-months .keep{fill:none;stroke:#fb923c;stroke-width:1.6;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1;animation:spDraw 1.2s .35s cubic-bezier(.22,1,.36,1) forwards}
.sp-months .keep-area{fill:url(#spArea);opacity:0;animation:spFade .8s .9s ease forwards}
.sp-months .kp{opacity:0;animation:spFade .5s 1.1s ease forwards}
.sp-months .kp circle{fill:#0b0f19;stroke:#fb923c;stroke-width:1.6}
.sp-months .kp rect{fill:#1a1408;stroke:#fb923c;stroke-opacity:.35}
.sp-months .kp text{fill:#fdba74;font-size:11.5px}
.sp-legend{display:flex;align-items:center;gap:6px;margin:0;font-size:11px;color:var(--muted)}
.sp-legend .lg{display:inline-block;width:10px;height:10px;border-radius:3px;margin-left:8px}.sp-legend .lg:first-child{margin-left:0}
.sp-legend .lg.bar{background:#a3e635}.sp-legend .lg.line{height:2px;border-radius:2px;background:#fb923c;width:14px}
.sp-bands,.sp-skus ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:7px}
.sp-bands li{display:grid;grid-template-columns:86px minmax(0,1fr) 64px;gap:8px;align-items:center;font-size:12px}
.sp-bands .n{color:var(--muted);white-space:nowrap}.sp-bands .v{text-align:right;color:var(--text);white-space:nowrap}
.sp-bands svg,.sp-skus svg{width:100%;height:8px;overflow:visible}
.sp-bands .track,.sp-skus .track{fill:var(--line-soft)}
.sp-bands .fill,.sp-skus .fill{fill:#3f4b5e;transform-box:fill-box;transform-origin:0 50%;animation:spGrowX .8s cubic-bezier(.22,1,.36,1) both}
.sp-bands li.here .fill{fill:#a3e635}.sp-bands li.here .n,.sp-bands li.here .v{color:var(--accent)}
.sp-bands li.neg .fill{fill:#fb7185}
.sp-bands-card .m{margin:0;font-size:11px;color:var(--faint)}
.sp-skus li{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) auto 52px;gap:8px;align-items:center;font-size:12px}
.sp-skus .n{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text);font-size:11.5px}
.sp-skus .fill{fill:#5eead4}
.sp-skus .v{white-space:nowrap;color:var(--text)}.sp-skus .p{text-align:right;color:var(--muted);font-size:11px}.sp-skus .p.neg{color:#fb7185}
@keyframes spGrow{from{transform:scaleY(0)}to{transform:scaleY(1)}}
@keyframes spGrowX{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes spDraw{to{stroke-dashoffset:0}}
@keyframes spFade{to{opacity:1}}
@media (prefers-reduced-motion:reduce){.sp-months .bar,.sp-bands .fill,.sp-skus .fill{animation:none}.sp-months .keep{animation:none;stroke-dashoffset:0}.sp-months .keep-area,.sp-months .kp{animation:none;opacity:1}}
@media(max-width:1100px){.sp-month-card,.sp-bands-card,.sp-top.wide,.sp-skus{grid-column:1/-1}}
.sp-bands .v,.sp-skus .v{font-family:inherit;font-size:12px}
.sp-months text{font-family:inherit}.sp-months text.l{font-size:13px}
.sp-skus{grid-column:1/-1}.sp-skus ul{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 28px}
.sp-month-card{justify-content:space-between}
@media(max-width:700px){.sp-skus ul{grid-template-columns:minmax(0,1fr)}}
.sp-months text.v{font-family:inherit;font-size:14px;fill:var(--text)}
.sp-skus ul{display:block;column-count:2;column-gap:28px}.sp-skus li{break-inside:avoid;margin-bottom:8px;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) 70px 52px}.sp-skus .v{text-align:right}
@media(max-width:700px){.sp-skus ul{column-count:1}}
@media(max-width:700px){.sp-skus li{grid-template-columns:minmax(0,1.8fr) minmax(0,.6fr) auto 44px}.sp-months text.v,.sp-months text.l{font-size:22px}.sp-months .kp text{font-size:17px}.sp-months .kp rect{display:none}.sp-tabs button{padding:4px 8px}}

/* Projetos 0.24.0 (só administradores): mapa de entregas por área */
.pj{grid-auto-rows:auto}
.pj .pj-hero{grid-row:auto;display:flex;flex-direction:column;gap:14px}
.pj-hero-top{display:flex;gap:16px;align-items:flex-start}
.pj-hero-top .headline{font-size:21px}
.pj-side{margin:0;align-self:flex-start}
.pj .hero-figures .n{display:block}
.pj-c-done{color:var(--accent)}
.pj-c-prev{color:#fde68a}
.pj-c-next{color:var(--in)}
.pj-ring-card{align-items:center;justify-content:space-between}
.pj-ring-card .k{align-self:flex-start}
.pj-ring{width:170px;height:170px}
.pj-ring circle{fill:none;stroke-width:12}
.pj-ring-bg{stroke:#1f2a3d}
.pj-arc{stroke-linecap:round}
.pj-arc.done{stroke:var(--accent)}
.pj-arc.prev{stroke:#fde68a;opacity:.75}
.pj-ring-v{fill:var(--strong);font-family:var(--num);font-size:30px;font-weight:500}
.pj-ring-l{fill:var(--faint);font-size:12px}
.pj-legend{display:flex;gap:14px;flex-wrap:wrap;font-size:11px;color:var(--faint);margin-top:8px}
.pj-legend span{display:inline-flex;align-items:center;gap:6px}
.pj-legend i{width:10px;height:10px;border-radius:3px;display:inline-block;background:#2b3647}
.pj-legend i.done{background:var(--accent)}
.pj-legend i.prev{background:#fde68a}
.pj-legend i.next{background:var(--in)}
.pj-legend i.w1{background:var(--accent);border-radius:50%}
.pj-legend i.w2{background:#5eead4;border-radius:50%}
.pj-legend i.w3{background:#a78bfa;border-radius:50%}
.pj-legend i.bar{background:linear-gradient(#a3e635,#365314)}
.pj-legend i.line{height:2px;background:#fb923c}
.pj-areas{gap:4px}
.pj-area{display:grid;grid-template-columns:150px minmax(0,1fr) 46px;gap:12px;align-items:center;background:none;border:0;border-radius:8px;padding:5px 6px;color:var(--muted);font:inherit;font-size:12.5px;text-align:left;cursor:pointer}
.pj-area:hover{background:#111a2b}
.pj-area.on{background:#16140a;color:var(--strong);box-shadow:inset 0 0 0 1px rgba(255,210,30,.25)}
.pj-area svg{width:100%;height:10px}
.pj-area .d{font-family:var(--num);font-size:12px;text-align:right;color:var(--text)}
.pj-track{fill:#1a2233}
.pj-bar.done{fill:var(--accent)}
.pj-bar.prev{fill:#fde68a;opacity:.8}
.pj-bar.next{fill:var(--in);opacity:.85}
.pj-matrix svg{width:100%;height:auto;margin-top:6px}
.pj-q{fill:#0f1626;stroke:var(--line-soft)}
.pj-q.ja{fill:#16140a;stroke:#3b3220}
.pj-q-l{fill:var(--faint);font-size:10px}
.pj-ax{fill:var(--faint);font-size:10px}
.pj-pt{stroke:var(--card);stroke-width:1.5;cursor:default}
.pj-pt.w1{fill:var(--accent)}
.pj-pt.w2{fill:#5eead4}
.pj-pt.w3{fill:#a78bfa}
.pj-matrix g:hover .pj-pt{stroke:#fff}
.pj-pace svg{width:100%;height:auto;margin-top:6px}
.pj-pace .hit{fill:transparent}
.pj-pbar{fill:url(#pjg)}
.pj-pace-g:hover .pj-pbar{filter:brightness(1.2)}
.pj-bar-v{fill:var(--text);font-family:var(--num);font-size:13px}
.pj-x{fill:var(--faint);font-size:12px}
.pj-base{stroke:var(--line)}
.pj-acc{fill:none;stroke:#fb923c;stroke-width:1.6}
.pj-acc-area{fill:url(#pja)}
.pj-pill circle{fill:var(--card);stroke:#fb923c;stroke-width:1.5}
.pj-pill rect{fill:#1c140c;stroke:#7c4a1e}
.pj-pill text{fill:#fdba74;font-family:var(--num);font-size:11px}
.pj-wave-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:8px}
.pj-wave{border:1px solid var(--line-soft);border-radius:12px;padding:12px 14px;min-width:0}
.pj-wave-h{display:flex;gap:10px;align-items:center;margin-bottom:8px}
.pj-wave-h .t{display:block;font-size:13px;font-weight:600;color:var(--strong)}
.pj-wave-h .m{display:block}
.pj-wave-n{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;font-family:var(--num);font-size:12px;color:#0b0f19;flex:none}
.pj-wave-n.w1{background:var(--accent)}
.pj-wave-n.w2{background:#5eead4}
.pj-wave-n.w3{background:#a78bfa}
.pj-wave ol{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.pj-wave li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 10px;align-items:center;font-size:12.5px;color:var(--text);border-top:1px solid var(--line-soft);padding-top:6px}
.pj-wave li small{grid-column:1;font-size:10.5px;color:var(--faint)}
.pj-wave li .pj-dots{grid-row:1;grid-column:2}
.pj-dots{display:inline-flex;gap:2px;vertical-align:middle;margin-left:4px}
.pj-dots i{width:5px;height:5px;border-radius:50%;background:#2b3647}
.pj-dots i.on{background:var(--accent)}
.pj-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px;margin-top:8px}
.pj-tile{border:1px solid var(--line-soft);border-radius:12px;padding:12px 14px;display:flex;flex-direction:column;gap:6px;min-width:0;transition:border-color .2s,transform .25s cubic-bezier(.22,1,.36,1)}
.pj-tile:hover{border-color:rgba(255,210,30,.35);transform:translateY(-2px)}
.pj-tile.possivel{border-style:dashed}
.pj-tile .t{font-size:13px;font-weight:600;color:var(--strong)}
.pj-tile .p{margin:0;font-size:12px;color:var(--muted)}
.pj-tile .m{margin-top:auto;font-size:11px;color:var(--faint)}
.pj-tile-h{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.pj-area-tag{font-size:10.5px;color:var(--faint)}
.pj-meta{display:flex;gap:12px;font-size:11px;color:var(--faint);margin-top:auto}
@media(prefers-reduced-motion:reduce){.pj-tile,.pj-tile:hover{transition:none;transform:none}}
@media(max-width:900px){.pj-wave-row{grid-template-columns:minmax(0,1fr)}.pj-area{grid-template-columns:110px minmax(0,1fr) 40px}.pj-hero-top{flex-direction:column}}
.pj-prev .mc-rows li{grid-template-columns:minmax(0,1fr) auto}
.pj-prev .mc-rows li em{display:block;font-style:normal;font-size:11px;color:#e0b569;margin-top:2px}
.pj-prev .mc-rows li .pj-ver{min-width:0;font-size:11px;color:var(--faint)}
.pj-more{margin-top:12px;align-self:flex-start}
.pj-area-line{margin-top:auto!important;padding-top:10px;border-top:1px solid var(--line-soft)}
.pj .hero-figures{grid-template-columns:repeat(5,minmax(0,1fr))}
@media(max-width:900px){.pj .hero-figures{grid-template-columns:repeat(2,minmax(0,1fr))}}
.pj-c-rej{color:#fb7185}
.pj-note{margin-top:14px}
.pj-act{align-self:flex-start;padding:0;margin-top:2px;color:var(--faint);font-size:11.5px}
.pj-act:hover{color:#fb7185}
.pj-tile.rejeitado{opacity:.78;border-style:dashed;border-color:#3a2430}
.pj-tile.rejeitado .pj-act:hover{color:var(--accent)}
.pj-tile.rejeitado .t{text-decoration:line-through;text-decoration-color:rgba(251,113,133,.5)}
.pj-why{font-size:12px;color:#fda4af}
.pj-tile.open{border-color:rgba(251,113,133,.45);transform:none}
.pj-rej-form{display:flex;flex-direction:column;gap:8px;margin-top:4px}
.pj-rej-form label{display:flex;flex-direction:column;gap:4px;font-size:11.5px;color:var(--muted)}
.pj-rej-form small{color:var(--faint)}
.pj-rej-btns{display:flex;gap:10px;align-items:center}
aside nav button[data-view="proj"] svg{stroke:var(--accent)}
/* Barras de rolagem suaves (0.25.1): finas, escuras, sem fundo branco; clareiam ao passar o mouse */
::-webkit-scrollbar{width:10px;height:10px}
::-webkit-scrollbar-track,::-webkit-scrollbar-corner{background:transparent}
::-webkit-scrollbar-thumb{background:rgba(156,163,175,.18);border-radius:999px;border:3px solid transparent;background-clip:padding-box}
::-webkit-scrollbar-thumb:hover{background:rgba(156,163,175,.42);border-width:2px;background-clip:padding-box}
::-webkit-scrollbar-thumb:active{background:rgba(255,210,30,.45);background-clip:padding-box}
::-webkit-scrollbar-button{display:none;width:0;height:0}
@supports not selector(::-webkit-scrollbar){*{scrollbar-width:thin;scrollbar-color:rgba(156,163,175,.3) transparent}}
html{color-scheme:dark}
/* Botão Tela cheia */
.fs-btn{display:inline-flex;align-items:center;gap:6px}.fs-btn svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.fs-btn+#logout{margin-left:8px}
@media(max-width:1300px){.fs-btn span{display:none}.fs-btn{padding-left:9px;padding-right:9px}}
/* Filtro por coluna, estilo Excel (0.26.0; o mesmo do Pro Service) */
tr[hidden]{display:none!important}/* linhas escondidas pelo filtro automático (0.66.7) */
th.th-f{white-space:nowrap}
.th-filter{background:none;border:0;padding:2px;margin-left:4px;cursor:pointer;vertical-align:middle;border-radius:4px;line-height:0;color:var(--faint);opacity:.55}
.th-filter svg{width:11px;height:11px;fill:none;stroke:currentColor;stroke-width:2;stroke-linejoin:round}
.th-filter:hover,.th-filter:focus-visible{opacity:1;color:var(--strong)}
.th-filter.on{opacity:1;color:var(--accent)}.th-filter.on svg{fill:currentColor}
.tt-fpop{position:fixed;z-index:96;width:270px;background:#0e1422;border:1px solid #2b3647;border-radius:12px;padding:10px;box-shadow:0 14px 34px rgba(0,0,0,.55);font-size:12px;color:var(--text);display:grid;gap:6px}
.tt-fpop .k{margin:0;font-size:11px;color:var(--faint)}
.tt-fsort{display:grid;gap:2px;border-bottom:1px solid var(--line-soft);padding-bottom:6px}
.tt-fsort button{text-align:left}
.tt-fq{width:100%;box-sizing:border-box;margin:0}
.tt-flist{max-height:240px;overflow:auto;border:1px solid var(--line-soft);border-radius:8px;padding:4px;display:grid;gap:1px}
.tt-fopt{display:flex;align-items:center;gap:8px;padding:3px 6px;border-radius:6px;cursor:pointer}
.tt-fopt:hover{background:var(--line-soft)}
.tt-fopt input{accent-color:var(--accent);margin:0}
.tt-fopt span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tt-fopt small{font-size:10.5px;color:var(--faint);font-variant-numeric:tabular-nums}
.tt-fopt.all{font-weight:600}
.tt-fnote{margin:0;font-size:11px;color:var(--faint)}.tt-fnote:empty{display:none}
.tt-fact{display:flex;justify-content:space-between;align-items:center;gap:8px}
.tt-fbar{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:0 0 8px;font-size:11px}
.tt-fbar .k{color:var(--faint)}
.tt-fchip{display:inline-flex;align-items:center;gap:4px;border:1px solid rgba(255,210,30,.35);border-radius:999px;padding:1px 4px 1px 9px;color:var(--strong)}
.tt-fchip button{background:none;border:0;color:var(--faint);cursor:pointer;padding:0 4px;font:inherit}
.tt-fchip button:hover{color:var(--accent)}
/* Janela com a lista de títulos e faixa "Voltar" (0.26.0) */
.tt-dlg{border:1px solid #2b3647;border-radius:18px;background:#0e1422;color:#e5ebf1;padding:0;width:min(1000px,calc(100vw - 32px));max-width:none;max-height:calc(100vh - 64px);box-shadow:0 24px 60px rgba(0,0,0,.6)}
.tt-dlg::backdrop{background:rgba(5,8,14,.72)}
.tt-dlg-body{padding:18px 22px;display:flex;flex-direction:column;gap:10px}
.tt-dlg-bar{display:flex;gap:12px;align-items:center;flex-wrap:wrap;font-size:12.5px}.tt-dlg-bar [data-open]{margin-left:auto}
.tt-dlg .table-wrap{max-height:calc(100vh - 290px);overflow:auto}.tt-dlg .titles-table{font-size:12.5px}
.tt-dlg .modal-head .text-button{padding:4px 6px;font-size:16px}
.backbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;max-width:1600px;margin:0 auto 14px;padding:9px 14px;border:1px solid rgba(255,210,30,.35);border-radius:12px;background:rgba(255,210,30,.06);font-size:12.5px}
.backbar button{margin-left:auto;padding:6px 12px;font-size:12.5px}
/* Corrida do mês e calendário de calor na Início (0.26.2): substituem a lista Vendas por dia */
.sp-race-card{grid-column:span 4;gap:6px}.sp-heat-card{grid-column:span 2;gap:10px;align-items:stretch}
.sp-race-story{margin:0;font-size:12.5px;color:var(--muted)}.sp-race-story b{color:var(--text)}
.sp-race{width:100%;height:auto;display:block;overflow:visible}
.sp-race text{font-family:inherit}
.sp-race .grid{stroke:var(--line-soft);stroke-width:1;stroke-dasharray:2 5}
.sp-race .gl{font-size:12px;fill:var(--faint)}
.sp-race .ax{font-size:12px;fill:var(--faint)}
.sp-race .db{fill:url(#raceBar);transform-box:fill-box;transform-origin:50% 100%;animation:spGrow .7s cubic-bezier(.22,1,.36,1) both}
.sp-race .db.best{fill:#facc15}
.sp-race .prev{fill:none;stroke:#7b8796;stroke-width:1.5;stroke-dasharray:1;stroke-dashoffset:1;animation:spDraw 1.2s ease-out .1s forwards;opacity:.8}
.sp-race .area{fill:url(#raceArea);opacity:0;animation:spFade .8s ease-out .6s forwards}
.sp-race .cum{fill:none;stroke:#facc15;stroke-width:2;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1;animation:spDraw 1.4s cubic-bezier(.5,0,.2,1) forwards}
.sp-race .proj{stroke:#facc15;stroke-width:1.5;stroke-dasharray:6 6;opacity:.7;fill:none}
.sp-race .end{fill:#0e1422;stroke:#facc15;stroke-width:1.5}
.sp-race .now{fill:#facc15;stroke:#0e1422;stroke-width:2}
.sp-race .pulse{fill:#facc15;transform-box:fill-box;transform-origin:center;animation:racePulse 1.8s ease-out infinite}
.sp-race .now-lab rect{fill:rgba(250,204,21,.12);stroke:rgba(250,204,21,.5);stroke-width:1}.sp-race .now-lab text{font-size:13px;fill:#fde68a;font-weight:600}
.sp-race .lab-l{font-size:12px;fill:#fde68a}.sp-race .val-l{font-size:17px;font-weight:700;fill:#facc15}
.sp-race .lab-p{font-size:12px;fill:var(--faint)}.sp-race .val-p{font-size:15px;font-weight:600;fill:#9aa7b5}
.sp-race .hit{fill:transparent}.sp-race .hit:hover{fill:rgba(250,204,21,.06)}
@keyframes racePulse{0%{transform:scale(1);opacity:.6}100%{transform:scale(3.2);opacity:0}}
.sp-legend .lg.cum{height:2px;width:14px;border-radius:2px;background:#facc15}
.sp-legend .lg.prev{height:2px;width:14px;border-radius:2px;background:#7b8796}
.sp-legend .lg.proj{height:0;width:14px;border-top:2px dashed #facc15;border-radius:0}
.sp-legend .lg.day{background:#fde68a;opacity:.6}
.sp-heat{width:100%;max-width:330px;height:auto;margin:0 auto;display:block}
.sp-heat text{font-family:inherit}.sp-heat .wd{font-size:11px;fill:var(--faint)}
.sp-heat .hc text{font-size:11px;fill:var(--muted);pointer-events:none}
.sp-heat .bg{fill:#151d2b;stroke:var(--line-soft);stroke-width:1}
.sp-heat .fill{fill:#facc15;opacity:0;animation:spFade .6s ease-out .2s forwards}
.sp-heat .hc.fut .bg{fill:transparent;stroke-dasharray:3 3}.sp-heat .hc.fut text{fill:var(--faint);opacity:.6}
.sp-heat .hc.zero .bg{fill:#121926}
.sp-heat .hc.best .bg{stroke:#fde68a;stroke-width:2}
.sp-heat .hc:hover .bg{stroke:#facc15}
.sp-heat .hc:not(.fut):not(.zero) text{fill:#0b1015;font-weight:700}
.sp-week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;max-width:330px;width:100%;margin:2px auto 0}
.sp-week .wb{display:flex;flex-direction:column;align-items:center;gap:4px}.sp-week svg{width:14px;height:40px}
.sp-week .tr{fill:var(--line-soft)}.sp-week .fl{fill:#7b8796;transform-box:fill-box;transform-origin:50% 100%;animation:spGrow .7s cubic-bezier(.22,1,.36,1) both}.sp-week .top .fl{fill:#facc15}
.sp-week span{font-size:10.5px;color:var(--faint)}.sp-week .top span{color:#fde68a}
.sp-week-note{margin:0;text-align:center;font-size:12px;color:var(--muted)}.sp-week-note b{color:var(--text)}
@media(max-width:1100px){.sp-race-card,.sp-heat-card{grid-column:1/-1}}
@media (prefers-reduced-motion:reduce){.sp-race .db,.sp-week .fl{animation:none}.sp-race .cum,.sp-race .prev{animation:none;stroke-dashoffset:0}.sp-race .area,.sp-heat .fill{animation:none;opacity:1}.sp-race .pulse{animation:none;opacity:0}}
.sp-loading .sk{min-height:150px;background:linear-gradient(100deg,#111827 30%,#182131 50%,#111827 70%);background-size:300% 100%;animation:spSk 1.4s linear infinite}
.sp-loading .sk.tall{min-height:300px}.sp-loading .w4{grid-column:span 4}.sp-loading .w2{grid-column:span 2}
@keyframes spSk{from{background-position:100% 0}to{background-position:0 0}}
@media (prefers-reduced-motion:reduce){.sp-loading .sk{animation:none}}
/* 0.26.2: com a tela mais larga, os círculos não crescem além do anel do ritmo e o medidor fica no meio do cartão */
.sp-keep{justify-items:center}.sp-pill{width:100%;max-width:190px}
.sp-gauge-card{justify-content:center}.sp-gauge-card .k{position:absolute;top:18px;left:20px}.sp-gauge-card{position:relative}.sp-gauge{max-width:340px}
@media(max-width:700px){.sp-race-card .sp-chart{overflow-x:auto}.sp-race{min-width:620px}}

/* 0.27.0: ícones do menu como os do Pro Service (opção 3, pedido do Diego): cinza, dourados na tela aberta e ao passar o
   mouse, com um pulinho. Gradientes em index.html (svg.ic-defs). */
.ic-defs{position:absolute;width:0;height:0;overflow:hidden}
aside nav .ic{flex:0 0 22px;width:22px;height:22px;display:grid;place-items:center}
aside nav .ic svg{flex:0 0 21px;width:21px;height:21px;stroke:none}
aside nav .ic .fl{fill:url(#ic-gray);stroke:none}
aside nav .ic .ln{fill:none;stroke:#0b0f19;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
aside nav .ic .st{fill:none;stroke:url(#ic-gray);stroke-width:1.9;stroke-linecap:round}
aside nav button.active .ic .fl,aside nav button:hover .ic .fl,aside nav .mod.active>.mod-btn .ic .fl,aside nav .mod-btn:hover .ic .fl{fill:url(#ic-gold)}
aside nav button.active .ic .st,aside nav button:hover .ic .st,aside nav .mod.active>.mod-btn .ic .st,aside nav .mod-btn:hover .ic .st{stroke:url(#ic-gold)}
aside nav button:hover .ic,aside nav .mod-btn:hover .ic{animation:ic-hop .45s ease}
@keyframes ic-hop{30%{transform:translateY(-3px) rotate(-6deg)}60%{transform:translateY(0) rotate(3deg)}}
@media(prefers-reduced-motion:reduce){aside nav button:hover .ic,aside nav .mod-btn:hover .ic{animation:none}}
.ft-outside{font-size:11.5px;color:var(--faint)}
/* 0.27.0: círculo de foco no ponto do gráfico ao passar o mouse (como no Pro Service). */
.thin-bars .focus,.line-chart .focus{fill:rgba(255,210,30,.08);stroke:var(--accent);stroke-width:1;vector-effect:non-scaling-stroke;opacity:0;transform-box:fill-box;transform-origin:center;transform:scale(.4);transition:opacity .15s,transform .2s;pointer-events:none}
.thin-bars g:hover .focus,.line-chart g:hover .focus{opacity:1;transform:scale(1)}
@media(prefers-reduced-motion:reduce){.thin-bars .focus,.line-chart .focus{transition:none;transform:none}}
/* 0.27.1: totais acima do cabeçalho (kitTotals e liftTotals em table-tools.js). */
thead tr.tt-total>th,thead tr.tt-total>td{font-weight:600;color:var(--accent);background:#10172a;border-bottom:1px solid var(--line)}
thead tr.tt-total>:first-child{color:var(--accent);font-weight:600}
thead tr.tt-total .neg{color:var(--out)}
/* Cabeçalho e linha de total fixos ao rolar (stickHeads em table-tools.js). */
.stick-th{position:sticky;z-index:2}thead tr.tt-total>.stick-th{z-index:2}
.stick-tbl{border-collapse:separate;border-spacing:0}
/* 0.27.2: números grandes com peso normal, como os cartões de metas do Pro Service (pedido do Diego). */
.card .v,.sp-kpi b,.sp-in b,.sp-pill b,.sp-gv,.sp-days b,.rec-tile b,.metric strong,.pj-ring-v,.loading-pct{font-weight:400}
/* 0.27.3: clique num gráfico filtra o painel de vendas (focusedModel em home-sales.js). */
.sp-months .mo[data-sp-focus],.sp-heat .hc[data-sp-day],.sp-race .hit[data-sp-day]{cursor:pointer}
.sp-months .mo.off,.sp-heat .hc.off{opacity:.35;transition:opacity .15s}.sp-months .mo.off:hover,.sp-heat .hc.off:hover{opacity:.7}
.sp-months .mo.sel .bar{fill:#facc15}.sp-heat .hc.sel .bg{stroke:var(--accent);stroke-width:2}
.sp-months .mo:focus-visible,.sp-heat .hc:focus-visible{outline:none}.sp-months .mo:focus-visible .bar,.sp-heat .hc:focus-visible .bg{stroke:var(--accent);stroke-width:2}
.sp-xfbar{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 10px}
.sp-xfchip{display:inline-flex;align-items:center;gap:6px;border:1px solid #4a3f12;background:rgba(250,204,21,.08);color:var(--strong);border-radius:999px;padding:3px 10px;font:inherit;font-size:11.5px;cursor:pointer}
.sp-xfchip .k{color:var(--muted)}.sp-xfchip:hover{border-color:var(--accent)}
@media(prefers-reduced-motion:reduce){.sp-months .mo.off,.sp-heat .hc.off{transition:none}}
/* 0.28.0: árvore do resultado (driver-tree.js). Árvore de cima para baixo no computador; lista recuada no celular. */
.dt-card{grid-column:1/-1;gap:10px}
.dt-wrap{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:18px;align-items:start}
.dt-box{overflow-x:auto;padding:4px 0 8px}
.dt-tree,.dt-tree ul{display:flex;justify-content:center;margin:0;padding:20px 0 0;list-style:none;position:relative}
.dt-tree{padding-top:0;min-width:640px}
.dt-tree li{position:relative;flex:1;display:flex;flex-direction:column;align-items:center;padding:20px 5px 0}
.dt-tree li::before,.dt-tree li::after{content:'';position:absolute;top:0;right:50%;width:50%;height:20px;border-top:1px solid #33405a}
.dt-tree li::after{right:auto;left:50%;border-left:1px solid #33405a}
.dt-tree li:only-child{padding-top:0}.dt-tree li:only-child::before,.dt-tree li:only-child::after{display:none}
.dt-tree li:first-child::before,.dt-tree li:last-child::after{border:0}
.dt-tree li:last-child::before{border-right:1px solid #33405a;border-radius:0 8px 0 0}
.dt-tree li:first-child::after{border-radius:8px 0 0 0}
.dt-tree ul ul::before{content:'';position:absolute;top:0;left:50%;height:20px;border-left:1px solid #33405a}
.dt-tree>li>ul::before{content:'';position:absolute;top:0;left:50%;height:20px;border-left:1px solid #33405a}
.dt-node{position:relative;display:flex;flex-direction:column;align-items:center;gap:1px;min-width:118px;max-width:190px;padding:9px 12px;border:1px solid var(--line-soft);border-radius:12px;background:#0b111d;text-align:center;transition:border-color .15s,transform .15s}
.dt-node:hover{border-color:#4a3f12;transform:translateY(-2px)}
.dt-node .k{font-size:11px;color:var(--muted)}.dt-node b{font-size:16px;font-weight:400;color:var(--strong);font-variant-numeric:tabular-nums;white-space:nowrap}.dt-node .s{font-size:10.5px;color:var(--faint)}
.dt-node.root{min-width:220px;padding:12px 18px;border-color:#4a3f12;background:linear-gradient(180deg,#141a12,#0b111d);box-shadow:0 0 22px rgba(250,204,21,.08)}
.dt-node.root b{font-size:24px;color:#fde047}
.dt-node.leaf[data-lever]{cursor:pointer;border-style:dashed;border-color:#2c3a52}
.dt-node.leaf.best{border:1px solid #facc15;box-shadow:0 0 0 3px rgba(250,204,21,.08)}
.dt-node.leaf.best::after{content:'mais forte';position:absolute;top:-9px;right:-6px;padding:1px 7px;border-radius:999px;background:#facc15;color:#0b0f19;font-size:9.5px;font-weight:600}
.dt-node.fixed{opacity:.6}
.dt-d{display:block;font-style:normal;font-size:10.5px;line-height:1.2}.dt-d.up{color:#5eead4}.dt-d.down{color:var(--out)}
.dt-side{display:flex;flex-direction:column;gap:8px;border-left:1px solid var(--line-soft);padding-left:16px}
.dt-h{margin:4px 0 0;font-size:11px;color:var(--muted)}
.dt-rank{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.dt-rank li{display:grid;grid-template-columns:16px minmax(0,1fr) 70px auto;align-items:center;gap:8px;font-size:12px}
.dt-rank .n{font-size:10.5px;color:var(--faint)}.dt-rank .t{font-size:12px;font-weight:400;color:var(--text)}.dt-rank .t small{color:var(--faint)}.dt-rank b{font-weight:400;font-variant-numeric:tabular-nums;text-align:right}
.dt-rank svg{width:70px;height:6px}.dt-rank .tr{fill:#1a2233}.dt-rank .fl{fill:#6b7280}.dt-rank li.top .fl{fill:#facc15}.dt-rank li.top b{color:#fde047}
.dt-note{margin:2px 0 4px;font-size:11.5px;color:var(--muted);line-height:1.45}.dt-note b{color:var(--text);font-weight:500}
.dt-sl{display:grid;grid-template-columns:minmax(0,1fr) 54px;gap:2px 8px;font-size:11px;color:var(--muted)}
.dt-sl input{grid-column:1;grid-row:2;accent-color:#facc15;width:100%;margin:0}.dt-sl output{grid-row:2;grid-column:2;align-self:center;text-align:right;color:var(--text);font-variant-numeric:tabular-nums}
@media(max-width:1100px){.dt-wrap{grid-template-columns:minmax(0,1fr)}.dt-side{border-left:0;padding-left:0;border-top:1px solid var(--line-soft);padding-top:10px}}
@media(max-width:700px){
 .dt-tree{min-width:0}
 .dt-tree,.dt-tree ul{display:block;padding:0}
 .dt-tree ul{margin:8px 0 0 10px;padding-left:12px;border-left:1px solid #33405a}
 .dt-tree li{display:block;padding:0 0 8px}.dt-tree li:last-child{padding-bottom:0}
 .dt-tree li::before,.dt-tree li::after,.dt-tree ul ul::before,.dt-tree>li>ul::before{display:none}
 .dt-node,.dt-node.root{align-items:flex-start;text-align:left;max-width:none;min-width:0;width:100%}
}
@media(prefers-reduced-motion:reduce){.dt-node{transition:none}.dt-node:hover{transform:none}}
/* 0.28.1: leque de probabilidade do fechamento do mês (fanCard em home-sales.js). */
.sp-fan-card{grid-column:span 2;gap:6px}
.fan-hero{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.fan-big{font-size:30px;font-weight:400;color:#fde047;line-height:1.1;font-variant-numeric:tabular-nums}
.fan-k{font-size:11.5px;color:var(--muted)}
.sp-fan{width:100%;height:auto;display:block}
.sp-fan .grid{stroke:var(--line-soft);stroke-dasharray:2 6}
.sp-fan .gl,.sp-fan .ax{font-size:12px;fill:var(--faint)}
.sp-fan .fan90{fill:url(#fanG);opacity:.55}.sp-fan .fan50{fill:#facc15;opacity:.28}
.sp-fan .mid{stroke:#fde68a;stroke-width:1.2;stroke-dasharray:4 4;fill:none}
.sp-fan .cum{stroke:#facc15;stroke-width:2;fill:none;stroke-linecap:round}
.sp-fan .prev{stroke:#6b7280;stroke-width:1.2;fill:none}
.sp-fan .goal{stroke:#9ca3af;stroke-width:1;stroke-dasharray:3 4;opacity:.7}
.sp-fan .now{fill:#facc15;stroke:#0b0f19;stroke-width:2}
.sp-fan .bt{font-size:12px;fill:var(--muted)}.sp-fan .b-all{fill:#1f2a3d}.sp-fan .b-win{fill:#facc15;opacity:.45}.sp-fan .b-line{fill:none;stroke:#fde68a;stroke-width:1.6}
.sp-fan .b-base{stroke:var(--line)}.sp-fan .b-q{stroke:#fde68a;stroke-dasharray:2 3;opacity:.7}.sp-fan .b-mid{stroke:#fde047;stroke-width:1.4}.sp-fan .b-mv{font-size:14px;fill:#fde047}
.sp-fan .b-prev{stroke:#cbd5e1;stroke-width:1.2;stroke-dasharray:4 3}.sp-fan .b-pl{font-size:12px;fill:#cbd5e1}.sp-fan .b-ax{font-size:12px;fill:var(--muted)}
.sp-fan .hit{fill:transparent}.sp-fan .hit:hover{fill:rgba(255,255,255,.035)}
.sp-fan-note{margin:0;font-size:11.5px;color:var(--muted);line-height:1.45}.sp-fan-note b{color:var(--text);font-weight:500}
.sp-legend .lg.fan{background:rgba(250,204,21,.35)}
@media(max-width:1100px){.sp-fan-card{grid-column:1/-1}}
@media(max-width:700px){.sp-months text.v,.sp-months text.l{font-size:32px}.sp-fan .gl,.sp-fan .ax,.sp-fan .bt,.sp-fan .b-pl,.sp-fan .b-ax{font-size:17px}.sp-fan .b-mv{font-size:19px}}
/* 0.28.2: ritmo do mês e margem contados em história (antes, um anel e dois círculos) */
.sp-pace,.sp-keep{display:flex;flex-direction:column;gap:10px;min-height:0;place-items:initial;justify-items:initial;align-items:stretch}
.sp-chip{font-size:10.5px;color:var(--muted);border:1px solid var(--line);border-radius:999px;padding:2px 8px;white-space:nowrap}
.sp-card-story{margin:0;font-size:12px;line-height:1.5;color:var(--muted)}.sp-card-story b{color:var(--text);font-weight:600}.sp-card-story b.positive{color:var(--in)}.sp-card-story b.neg{color:var(--out)}
.sp-delta{font-size:10.5px;white-space:nowrap;font-weight:400}
.sp-pace-body{display:grid;grid-template-columns:150px minmax(0,1fr);gap:16px;align-items:center}
.sp-pace-ring{display:grid;place-items:center;width:150px;height:150px}
.sp-ring2{grid-area:1/1;width:150px;height:150px}
.sp-ring2 circle{fill:none;stroke-width:1.6}.sp-ring2 .track{stroke:var(--line)}
.sp-ring2 .arc{stroke-linecap:round}.sp-ring2 .arc.time{stroke:#7b8796}.sp-ring2 .arc.done{stroke:#facc15;stroke-width:2.2}
.sp-pace-ring .sp-in{gap:2px}.sp-pace-ring .sp-in b{font-size:17px}.sp-pace-ring .sp-in span{font-size:10px}
.sp-pace-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.sp-pace-list li{display:flex;flex-direction:column;gap:1px;padding:7px 0}.sp-pace-list li+li{border-top:1px solid var(--line-soft)}
.sp-pace-list .k{font-size:10.5px;color:var(--faint)}
.sp-pace-list b{font-size:16px;font-weight:400;color:var(--text)}.sp-pace-list li:first-child b{color:var(--accent)}
.sp-pace-list b small{font-size:10.5px;color:var(--muted);letter-spacing:0}
.sp-pace-list li>small{font-size:10.5px;color:var(--muted)}
.sp-legend .lg.time{height:2px;width:14px;border-radius:2px;background:#7b8796}.sp-legend .lg.done{height:2px;width:14px;border-radius:2px;background:#facc15}
.sp-keep-hero{display:flex;gap:26px;align-items:flex-end}
.sp-keep-hero div{display:flex;flex-direction:column;gap:1px}
.sp-keep-hero b{font-size:26px;font-weight:400;line-height:1.1}.sp-keep-hero b.avg{font-size:17px;color:var(--muted)}
.sp-keep-hero span{font-size:10.5px;color:var(--faint)}
.sp-keep-bar{width:100%;height:12px;overflow:visible}
.sp-keep-bar .seg.keep{fill:#facc15}.sp-keep-bar .seg.cmv{fill:#fb923c;fill-opacity:.75}.sp-keep-bar .seg.fee{fill:#7b8796;fill-opacity:.45}
.sp-keep-bar .mk{stroke:var(--text);stroke-width:1.5}
.sp-keep .sp-legend{flex-wrap:wrap;row-gap:4px;font-size:10.5px}
.sp-legend .lg.keep{background:#facc15}.sp-legend .lg.cmv{background:#fb923c;opacity:.75}.sp-legend .lg.fee{background:#7b8796;opacity:.6}
.sp-legend .lg.mk{width:2px;height:10px;border-radius:0;background:var(--text)}
.sp-keep-trend{width:100%;height:auto;margin-top:auto}
.sp-keep-trend .avg{stroke:#7b8796;stroke-width:1;stroke-dasharray:3 4}
.sp-keep-trend .al{font-size:10px;fill:var(--faint)}
.sp-keep-trend .ln{fill:none;stroke:#facc15;stroke-width:1.4;stroke-opacity:.8}
.sp-keep-trend .pt circle{fill:#0b1015;stroke:#facc15;stroke-width:1.4}.sp-keep-trend .pt.cur circle{fill:#facc15}
.sp-keep-trend .v{font-size:10.5px;fill:var(--muted)}.sp-keep-trend .pt.cur .v{fill:var(--accent)}
.sp-keep-trend .l{font-size:10px;fill:var(--faint)}
.sp-keep-trend .hit{fill:transparent}.sp-keep-trend .pt:hover circle{stroke-width:2.4}
@media(max-width:700px){.sp-pace-body{grid-template-columns:120px minmax(0,1fr);gap:12px}.sp-pace-ring,.sp-ring2{width:120px;height:120px}}
.sp-keep .sp-legend .it{display:inline-flex;align-items:center;gap:6px;white-space:nowrap;margin-right:10px}.sp-keep .sp-legend .it .lg{margin-left:0}
.sp-trend-k{font-size:10.5px;color:var(--faint);margin-top:auto}.sp-keep-trend{margin-top:0}
@media(max-width:700px){.sp-pace-ring .sp-in b{font-size:14px}.sp-pace-ring .sp-in span,.sp-pace-ring .sp-delta{font-size:9.5px}}
/* 0.28.3: repasse provável com frase, ponte do faturamento ao repasse e meses */
.sp-gauge-card{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:10px}
.sp-gauge-card .sp-head .k{position:static}
.sp-gauge-wrap{display:flex;flex-direction:column;align-items:center}
.sp-gauge-wrap .sp-gauge{max-width:250px}.sp-gauge-wrap .sp-gauge path{stroke-width:18}
.sp-gauge-wrap .sp-gv{font-size:22px;margin-top:-40px}
.sp-gauge-wrap .sp-gl{max-width:250px;margin-top:8px;font-size:10.5px}
.sp-gfacts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;border-top:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft);padding:8px 0}
.sp-gfacts div{display:flex;flex-direction:column;gap:1px}.sp-gfacts .k{font-size:10.5px;color:var(--faint)}.sp-gfacts b{font-size:15px;font-weight:400}
.sp-sub{font-size:10.5px;color:var(--faint)}
.sp-bridge{list-style:none;margin:-4px 0 0;padding:0;display:flex;flex-direction:column;gap:6px}
.sp-bridge li{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) 78px;gap:8px;align-items:center;font-size:11.5px}
.sp-bridge .n{color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sp-bridge .v{white-space:nowrap;min-width:64px;text-align:right}
.sp-bridge svg{width:100%;height:8px}.sp-bridge .track{fill:var(--line-soft)}
.sp-bridge .fat .fill{fill:#7b8796;fill-opacity:.6}.sp-bridge .fee .fill{fill:#7b8796;fill-opacity:.35}.sp-bridge .cmv .fill{fill:#fb923c;fill-opacity:.75}.sp-bridge .res .fill{fill:#facc15}
.sp-bridge .res .n,.sp-bridge .res .v{color:var(--accent)}
.sp-gmonths{width:100%;height:auto;margin-top:-4px}
.sp-gmonths .b{fill:#7b8796;fill-opacity:.55}.sp-gmonths .cur .b{fill:#facc15;fill-opacity:1}
.sp-gmonths .ghost{fill:none;stroke:#facc15;stroke-width:1;stroke-dasharray:3 3}
.sp-gmonths .v{font-size:10px;fill:var(--muted)}.sp-gmonths .cur .v{fill:var(--accent)}.sp-gmonths .l{font-size:10px;fill:var(--faint)}
.sp-gmonths .hit{fill:transparent}.sp-gmonths .gm:hover .b{fill-opacity:.85}
.sp-gauge-card .k{position:static}.sp-gauge-card .sp-head .k{position:static}
.sp-gauge-card .sp-bridge .v{font-size:12px;color:var(--text)}.sp-gauge-card .sp-bridge .res .v{color:var(--accent)}
.sp-gauge-card .sp-gmonths text{font-size:11px}.sp-gauge-card .sp-gmonths text.v{font-size:11px}
.sp-gauge-wrap .sp-gauge{max-width:230px}
/* 0.28.3 (Diego: "não queria o padrãozão de retângulo"): cartão sem contorno, com dois cantos recortados na
   diagonal e um fio amarelo no recorte de cima; fundo um tom acima da tela. A borda amarela continua ao passar o mouse.
   Outras opções mostradas a ele: só os cantos marcados e aberto (só um fio no topo). */
.card{border-color:transparent;border-radius:0;box-shadow:none;clip-path:polygon(0 0,calc(100% - 22px) 0,100% 22px,100% 100%,22px 100%,0 calc(100% - 22px));
 background:linear-gradient(160deg,#141c2f 0%,#0f1524 70%)}
.card .card{clip-path:none;background:rgba(255,255,255,.025)}
@media(max-width:700px){.sp-gauge-card .sp-gmonths text,.sp-gauge-card .sp-gmonths text.v{font-size:19px}}
/* 0.28.4: atalhos de período ao lado das datas */
.dates{align-items:center}
.period-links{display:flex;align-items:center;gap:2px;flex-wrap:wrap}
.period-links button{background:none;border:0;padding:4px 7px;font-size:12px;color:var(--strong);cursor:pointer;border-radius:6px;white-space:nowrap}
.period-links button:hover{background:#121a2a}.period-links button.active{color:var(--accent)}
.period-links button[data-period=""]:not(.active){color:var(--faint)}
@media(max-width:700px){.dates{flex-wrap:wrap}.period-links{flex-basis:100%}}
/* 0.28.5: botão Últimos meses (ui.js monthsPicker), igual em todos os painéis */
.months-pick{display:inline-flex;align-items:center;gap:2px;margin-left:auto;font-size:11px;color:var(--faint)}
.months-pick .mp-k{padding:0 4px}
.months-pick button{background:transparent;border:0;color:var(--muted);font-size:11.5px;min-width:26px;padding:4px 6px;border-radius:999px;cursor:pointer}
.months-pick button:hover{color:var(--strong)}
.months-pick button.mp-top:disabled{opacity:1;cursor:default}
/* 0.33.8 (Diego): tudo se chama Período; cinza = datas de cima; amarelo = botão Últimos meses (de baixo). */
/* 0.33.5: período no rodapé do cartão, embaixo à esquerda, com dia e de onde vem (topo, Últimos meses ou próprio). */
#content .card-period{grid-column:1/-1;align-self:stretch;margin:auto 0 0;padding-top:8px;display:flex;flex-wrap:wrap;gap:4px 14px;font-size:9.5px;line-height:1.3;color:var(--faint);text-align:left;letter-spacing:.02em;font-weight:400}
#content .card-period .cp{display:inline-flex;align-items:center;gap:5px;opacity:.85;transition:opacity .15s,color .15s}
#content .card-period .cp em{font-style:normal;color:var(--muted)}
#content .card-period .cp i{width:6px;height:6px;flex:none;border-radius:50%}
#content .card-period .cp-top i{background:var(--muted)}
#content .card-period .cp-months i{background:var(--accent)}
#content .card-period .cp-months,#content .card-period .cp-months em{color:var(--accent)}
#content .card-period .cp-own i{border-radius:1px;border:1px solid var(--muted)}
#content .card-period.lit .cp{opacity:.35}
#content .cp-mark{display:inline-block;width:6px;height:6px;margin-left:6px;vertical-align:middle;border-radius:50%}
#content .cp-mark.cp-top{background:var(--muted)}
#content .cp-mark.cp-months{background:var(--accent)}
#content .cp-mark.cp-own{border-radius:1px;border:1px solid var(--muted)}
#content .card-period.lit .cp.hl{opacity:1;color:var(--text)}
.months-pick button.active{background:var(--accent);color:#111827}
.sp-xfbar{align-items:center}
.months-row{display:flex;justify-content:flex-end;margin:4px 0 -4px}
/* 0.28.6 (Diego: sem contorno em nenhum quadro; fundo em degradê diagonal que termina antes do fim do retângulo).
   O degradê sai do canto de cima à esquerda e some antes do canto de baixo à direita; cartões grandes mantêm o recorte. */
.card,.chapter,.hero-talk,.hero-line{border-color:transparent;box-shadow:none}
.card{background:linear-gradient(135deg,rgba(148,163,184,.075) 0%,rgba(148,163,184,.04) 38%,rgba(148,163,184,.015) 70%,rgba(148,163,184,0) 94%)}
.chapter,.hero-talk,.hero-line{border-radius:0;clip-path:polygon(0 0,calc(100% - 22px) 0,100% 22px,100% 100%,22px 100%,0 calc(100% - 22px));
 background:linear-gradient(135deg,rgba(148,163,184,.075) 0%,rgba(148,163,184,.04) 38%,rgba(148,163,184,.015) 70%,rgba(148,163,184,0) 94%)}
.fact,.rec-tile,.bubble{border-color:transparent;background:linear-gradient(135deg,rgba(255,255,255,.06) 0%,rgba(255,255,255,.025) 45%,rgba(255,255,255,0) 92%)}
.card .card{background:linear-gradient(135deg,rgba(255,255,255,.05) 0%,rgba(255,255,255,0) 90%)}
.sp-chip{border-color:transparent;background:rgba(255,255,255,.06)}
.bubble::before{display:none}
@media (hover:hover) and (pointer:fine){
 .card:hover,a.card:hover,button.card:hover,.card.clickable:hover,.chapter:hover,.hero-talk:hover,.hero-line:hover{border-color:transparent;box-shadow:none;
  background:linear-gradient(135deg,rgba(255,210,30,.07) 0%,rgba(148,163,184,.06) 32%,rgba(148,163,184,.02) 68%,rgba(148,163,184,0) 94%)}
 .fact:hover,.rec-tile:hover{border-color:transparent;box-shadow:none;background:linear-gradient(135deg,rgba(255,210,30,.10) 0%,rgba(255,255,255,.04) 45%,rgba(255,255,255,0) 92%)}
}
/* 0.29: novo Dési (seixo escuro animado, mascot()). Substitui o boneco amarelo; as regras antigas .m-* ficam sem efeito. */
.mascot.m-lg{animation:none}
.mascot *{transform-box:fill-box}
.mascot.m-xs .d-fxin,.mascot.m-xs .d-pop{display:none}
.mascot .d-float{transform-origin:center;animation:dz-float 4.2s ease-in-out infinite}
.mascot .d-glow{transform-origin:center;animation:dz-glow 4.2s ease-in-out infinite}
.mascot .d-eyes{transform-origin:center;animation:dz-blink 5.6s infinite}
.mascot .d-handl{transform-origin:center;animation:dz-bob 4.2s ease-in-out infinite}
.mascot .d-handr{transform-origin:center;animation:dz-bob 4.2s ease-in-out .3s infinite}
.mascot .d-tip{animation:dz-tip 2.4s ease-in-out infinite}
@keyframes dz-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-2.2px)}}
@keyframes dz-glow{0%,100%{transform:scaleX(1);opacity:.32}50%{transform:scaleX(.82);opacity:.18}}
@keyframes dz-blink{0%,92%,100%{transform:scaleY(1)}95%{transform:scaleY(.1)}}
@keyframes dz-bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-1.4px)}}
@keyframes dz-tip{0%,100%{opacity:1}50%{opacity:.45}}
.mascot.feliz .d-float{animation:dz-hop 2.6s cubic-bezier(.3,.7,.4,1) infinite}
@keyframes dz-hop{0%,60%,100%{transform:translateY(0) scale(1,1)}68%{transform:translateY(0) scale(1.04,.95)}78%{transform:translateY(-4px) scale(.98,1.03)}88%{transform:translateY(0) scale(1.02,.98)}}
.mascot.feliz .d-fx{transform-origin:center;animation:dz-twinkle 1.8s ease-in-out infinite}
@keyframes dz-twinkle{0%,100%{transform:scale(.6) rotate(0);opacity:.4}50%{transform:scale(1.15) rotate(45deg);opacity:1}}
.mascot.acenando .d-handr{transform-origin:20% 100%;animation:dz-wave 2.8s ease-in-out infinite}
@keyframes dz-wave{0%,62%,100%{transform:rotate(0)}8%,24%,40%{transform:rotate(-26deg)}16%,32%,48%{transform:rotate(14deg)}}
.mascot.acenando .d-fx{animation:dz-waves 2.8s ease-out infinite}
@keyframes dz-waves{0%,55%,100%{opacity:0}10%,45%{opacity:.85}}
.mascot.pensando .d-b1,.mascot.pensando .d-b2,.mascot.pensando .d-b3{transform-origin:center;animation:dz-bub 2.7s infinite}
.mascot.pensando .d-b2{animation-delay:.35s}.mascot.pensando .d-b3{animation-delay:.7s}
@keyframes dz-bub{0%,8%{opacity:0;transform:scale(.3)}22%,70%{opacity:1;transform:scale(1)}85%,100%{opacity:0;transform:scale(.6)}}
.mascot.pensando .d-look{animation:dz-look 4s ease-in-out infinite}
@keyframes dz-look{0%,100%{transform:translateX(0)}40%,55%{transform:translateX(-2.2px)}}
.mascot.pensando .d-sway{transform-origin:50% 100%;animation:dz-sway 4s ease-in-out infinite}
@keyframes dz-sway{0%,100%{transform:rotate(0)}50%{transform:rotate(-3deg)}}
.mascot.preocupado .d-sway{transform-origin:center;animation:dz-shiver 3.2s infinite}
@keyframes dz-shiver{0%,70%,100%{transform:translateX(0)}73%{transform:translateX(-.8px)}76%{transform:translateX(.8px)}79%{transform:translateX(-.6px)}82%{transform:translateX(.5px)}85%{transform:translateX(0)}}
.mascot.preocupado .d-fx{animation:dz-drop 2.6s ease-in infinite}
@keyframes dz-drop{0%{transform:translateY(-2px);opacity:0}15%{opacity:1}70%{transform:translateY(5px);opacity:1}100%{transform:translateY(9px);opacity:0}}
.mascot.preocupado .d-handl,.mascot.preocupado .d-handr{animation-duration:1.6s}
/* Nascer: o brilho acende, a pedra sobe, a tela liga, as mãos surgem e o sorriso se desenha */
.mascot.born .d-glow-in{transform-origin:center;animation:dz-n-glow .7s ease-out both}
.mascot.born .d-rise{transform-origin:50% 100%;animation:dz-n-rise .9s cubic-bezier(.2,.9,.3,1.2) .25s both}
.mascot.born .d-on{transform-origin:center;animation:dz-n-on .5s steps(1,end) 1s both}
.mascot.born .d-pop{transform-origin:center;animation:dz-n-pop .45s cubic-bezier(.3,1.6,.5,1) 1.35s both}
.mascot.born .d-smile{stroke-dasharray:60;animation:dz-n-draw .6s ease-out 1.55s both}
.mascot.born .d-fxin{animation:dz-n-fade .4s 1.9s both}
@keyframes dz-n-glow{from{transform:scale(0);opacity:0}to{transform:scale(1);opacity:1}}
@keyframes dz-n-rise{0%{transform:translateY(16px) scale(.5);opacity:0}60%{opacity:1}100%{transform:none;opacity:1}}
@keyframes dz-n-on{0%{opacity:0}30%{opacity:.8}45%{opacity:.1}60%,100%{opacity:1}}
@keyframes dz-n-pop{from{transform:scale(0);opacity:0}to{transform:scale(1);opacity:1}}
@keyframes dz-n-draw{from{stroke-dashoffset:60}to{stroke-dashoffset:0}}
@keyframes dz-n-fade{from{opacity:0}to{opacity:1}}
@media (prefers-reduced-motion:reduce){.mascot *,.mascot{animation:none!important}}
/* Preocupado nasce com a luz falhando, como lâmpada com mau contato, e de vez em quando a luz dá uma piscada fraca */
.mascot.preocupado.born .d-on{animation:dz-n-fail 1.6s linear 1s both}
.mascot.preocupado.born .d-smile{stroke-dasharray:none;animation:dz-n-fail 1.6s linear 1.15s both}
.mascot.preocupado.born .d-tip{animation:dz-n-fail 1.6s linear 1.3s both,dz-tip 2.4s ease-in-out 3s infinite}
.mascot.preocupado.born .d-glow-in{animation:dz-n-sputter 1.8s linear both}
.mascot.preocupado .d-eyes{animation:dz-blink 5.6s infinite,dz-dim 7s 3.2s infinite}
@keyframes dz-n-fail{0%{opacity:0}8%{opacity:.9}11%{opacity:0}19%{opacity:.25}22%{opacity:0}34%{opacity:1}37%{opacity:.15}41%{opacity:.85}52%{opacity:.3}56%{opacity:1}63%{opacity:.6}66%,100%{opacity:1}}
@keyframes dz-n-sputter{0%{transform:scale(0);opacity:0}20%{transform:scale(.9);opacity:.8}24%{opacity:.1}38%{transform:scale(1);opacity:.7}42%{opacity:.2}60%,100%{transform:scale(1);opacity:1}}
@keyframes dz-dim{0%,90%,100%{opacity:1}92%{opacity:.25}93.5%{opacity:.9}95%{opacity:.35}96.5%{opacity:1}}
@media (prefers-reduced-motion:reduce){.mascot *,.mascot{animation:none!important}}
.bling-sales tr.muted td{opacity:.5}
.bling-sales .ch-list li,.bling-stock .ch-list li{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) 62px 46px}.bling-sales .top-products .ch-list li{grid-template-columns:minmax(0,2fr) minmax(0,1fr) 62px 60px}
.bling-customers .ch-list li{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) 62px 52px}.bling-customers tr.muted td{opacity:.5}
/* 0.34: Histórico em arquivo (Azure) · o que precisa de atenção */
.az-problems{margin:8px 0 0}.az-problems .k{font-size:11px;color:var(--muted);margin:0 0 4px}
.az-problems ul{list-style:none;margin:0;padding:0;display:grid;gap:4px;max-height:220px;overflow:auto}
.az-problems li{display:grid;grid-template-columns:1fr auto;gap:2px 10px;font-size:11.5px;border-bottom:1px solid var(--line-soft);padding:3px 0 4px 8px;border-left:2px solid var(--faint)}
.az-problems li.error{border-left-color:var(--out-strong)}.az-problems li.warn{border-left-color:#e0b569}
.az-problems li .n{color:var(--text)}.az-problems li .m{grid-column:1;color:var(--muted);font-size:11px}
.az-problems li button{grid-column:2;grid-row:1/span 2;align-self:center}
.az-problems > .m{font-size:11px;color:var(--faint);margin:4px 0 0}
/* Auditoria (0.35): planilhas do Azure. Vermelho corrige, amarelo confere, cinza só informa. */
.audit.bento{grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:auto}
.audit .audit-hero{grid-column:1/-1;grid-row:auto}
.audit .audit-hero .headline{font-size:22px}
.audit .audit-tile{cursor:pointer;grid-column:span 1}
.audit .audit-tile .v{font-size:24px}
.audit .audit-tile.lv-error .v{color:var(--out-strong)}.audit .audit-tile.lv-warn .v{color:#e0b569}.audit .audit-tile.lv-info .v{color:var(--muted)}
.audit .audit-tile.on{box-shadow:inset 0 -2px 0 var(--accent)}
.audit-map-wrap{overflow-x:auto;margin-top:6px}
.audit-map{display:block;min-width:560px;width:100%;height:auto}
.audit-map text{fill:var(--muted);font-size:10px}.audit-map .am-y{fill:var(--faint);font-size:9px}
.audit-map .am-c{stroke:none}
.am-ok{fill:#3f8f6b;background:#3f8f6b}.am-error{fill:var(--out-strong);background:var(--out-strong)}.am-warn{fill:#e0b569;background:#e0b569}
.am-api{fill:var(--in-strong);background:var(--in-strong)}.am-pend{fill:#4b5563;background:#4b5563}.am-none{fill:rgba(255,255,255,.04);background:rgba(255,255,255,.06)}
.audit-map .am-c:hover{opacity:.75}
.audit-legend{display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px;font-size:10.5px;color:var(--faint);margin:6px 0 0}
.audit-legend span{display:inline-block;width:9px;height:9px;border-radius:2px;margin-right:-7px}
.audit-list{list-style:none;margin:6px 0 0;padding:0;display:grid;gap:2px}
.audit-list li{display:grid;grid-template-columns:150px 1fr;gap:1px 14px;padding:6px 0 7px 10px;border-left:2px solid var(--faint);border-bottom:1px solid var(--line-soft);font-size:12px}
.audit-list li.lv-error{border-left-color:var(--out-strong)}.audit-list li.lv-warn{border-left-color:#e0b569}
.audit-list .t{color:var(--strong);font-weight:600}.audit-list .w{color:var(--muted);font-size:11px;grid-column:1;grid-row:2}
.audit-list .d{grid-column:2;grid-row:1;color:var(--text)}.audit-list .h{grid-column:2;grid-row:2;color:var(--faint);font-size:11px}
@media (max-width:700px){.audit.bento{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.audit .audit-tile{padding:10px}.audit .audit-tile .m{display:none}.audit-map{min-width:640px}.audit-list li{grid-template-columns:1fr}.audit-list .w,.audit-list .d,.audit-list .h{grid-column:1;grid-row:auto}}

/* 0.42 · Nota "Como estão os dados" */
.dn-btn{display:inline-flex;align-items:center;gap:5px;font-size:11px}
.dn-btn svg{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.dn-btn[hidden]{display:none}
.dn-title{cursor:help}
.dn-dlg{position:fixed;top:64px;right:24px;left:auto;margin:0;width:min(400px,calc(100vw - 32px));max-height:calc(100vh - 96px);overflow:auto;background:#0f1626;color:var(--text,#e5e7eb);border:1px solid var(--line-soft);border-radius:12px;padding:12px 14px;z-index:60;box-shadow:0 18px 40px -16px rgba(0,0,0,.7)}
.dn-dlg h2{margin:0;font-size:14px;font-weight:600}
.dn-list{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:10px}
.dn-row{border-top:1px solid var(--line-soft);padding-top:8px}
.dn-top{display:flex;justify-content:space-between;gap:8px;align-items:baseline;font-size:12px}
.dn-st{font-size:10.5px;border-radius:999px;padding:1px 7px;white-space:nowrap}
.dn-ok{color:#5eead4;background:rgba(94,234,212,.08)}.dn-late{color:#f5b94a;background:rgba(245,185,74,.08)}.dn-never{color:#9ca3af;background:rgba(156,163,175,.08)}
.dn-row dl{display:grid;grid-template-columns:auto 1fr;gap:2px 10px;margin:6px 0 2px;font-size:11px}
.dn-row dt{color:var(--faint)}.dn-row dd{margin:0}
.dn-row .m,.dn-foot{font-size:10.5px;margin:2px 0}
@media(max-width:700px){.dn-dlg{right:16px;top:56px}}
.dn-dlg .m{font-size:10.5px;color:var(--faint);margin:2px 0}.dn-dlg .modal-head{margin-bottom:0}

/* 0.42.1 · Situação de cada origem no topo de Carregar dados */
.lc-status{display:flex;flex-wrap:wrap;gap:6px;margin:2px 0 12px}
.lc-chip{display:inline-flex;align-items:center;gap:6px;background:transparent;border:1px solid var(--line-soft);border-radius:999px;padding:3px 10px;font:inherit;font-size:11px;color:var(--muted,#cbd5e1);cursor:pointer}
.lc-chip:hover{border-color:rgba(245,185,74,.45);color:#f3f4f6}
.lc-chip i{width:7px;height:7px;border-radius:50%;background:#6b7280}
.lc-chip.ok i{background:#5eead4}.lc-chip.late i{background:#f5b94a}.lc-chip.never i{background:#6b7280}
.load-card.flash{box-shadow:0 0 0 1px rgba(245,185,74,.6),0 10px 30px -14px rgba(245,185,74,.45)}
/* 0.43.0 · Margem por canal e conta */
.mg-table tr.total td{font-weight:600;border-top:1px solid var(--line)}
.mg-in{width:64px;padding:2px 6px;font:inherit;font-size:12px;text-align:right;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.12);border-radius:6px;color:inherit}
.mg-in:focus{outline:none;border-color:rgba(250,204,21,.6)}
.mg-in.bad{border-color:var(--out)}
.mg-sub{font-size:13px;margin:18px 0 6px}
.mg-msg:empty{display:none}
/* 0.44.0 · Padrão Power BI */
.pbi-kpis{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:14px 18px;padding:16px 18px;margin:14px 0}
.pbi-kpi{display:flex;flex-direction:column;gap:4px;min-width:0}
.pbi-kpi .k{font-size:11px;color:var(--faint)}
.pbi-kpi b{font-size:18px;font-weight:400}
.pbi-kpi .mg-in{width:110px;font-size:14px}
.card.pbi-slicers{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:flex-start;align-items:center;gap:10px 22px;padding:12px 16px;margin:6px 0 12px}.pbi-slicers .acct-filter{margin:0;flex:0 0 auto}.pbi-slicers .mg-in{width:110px}
.pbi-view tr.pbi-ch td{font-weight:600}
.pbi-ind{padding-left:14px;color:var(--muted,#cbd5e1)}
.pbi-map li b.pbi-st{font-weight:500;font-size:11px}
.pbi-st.ok{color:var(--in)}.pbi-st.part{color:var(--accent)}.pbi-st.no{color:var(--faint)}
.pbi-flows .card{padding:16px 18px}
.pbi-where{display:block;font-size:11px;font-weight:400;color:var(--faint);margin-top:2px}
.pbi-prob td{font-size:11px;padding-top:0}.pbi-prob span{display:block}.pbi-prob .error{color:var(--out)}.pbi-prob .warn{color:var(--accent)}
.pbi-use{font-size:11px;padding:3px 6px;background:transparent;color:var(--text);border:1px solid var(--line);border-radius:6px}
.pbi-use:disabled{opacity:.6}.pbi-use option{background:var(--card);color:var(--text)}
.pbi-note-t{display:block;margin-top:3px;font-size:11px;color:var(--accent)}.pbi-note-t.m{color:var(--faint)}
.pbi-flows tr.pbi-off td{opacity:.6}.pbi-flows tr.pbi-off td:first-child,.pbi-flows tr.pbi-off td.pbi-on{opacity:1}
.pbi-flows tr.pbi-off td:first-child b,.pbi-flows tr.pbi-off td:first-child .pbi-where{opacity:.6}
.pbi-table table{width:100%}.pbi-table td,.pbi-table th{padding:8px 10px;font-size:12px;text-align:left;border-bottom:1px solid var(--line-soft)}.pbi-table th{color:var(--faint);font-weight:500}.pbi-table .amount{text-align:right}
.pbi-ring{display:inline-flex;align-items:center;gap:5px;vertical-align:middle}
.pbi-ring svg{width:16px;height:16px}
.pbi-ring circle{fill:none;stroke-width:2.4}
.pbi-ring .bg{stroke:var(--line)}
.pbi-ring .fg{stroke:var(--accent);stroke-linecap:round;transition:stroke-dashoffset .3s}
.pbi-ring b{font-weight:500;font-size:11px;color:var(--accent);font-variant-numeric:tabular-nums}
@media (prefers-reduced-motion:reduce){.pbi-ring .fg{transition:none}}
.pbi-range{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--muted)}
.pbi-range input{font-size:12px}
.pbi-view.pbi-pedidos .home-hero,.pbi-view.pbi-pedidos .pbi-kpis,.pbi-view.pbi-pedidos .chapters,.pbi-view.pbi-pedidos .pbi-dash-only,.pbi-view.pbi-dash .pbi-orders{display:none}
.subnav .pbi-mode-sw{margin-left:12px}
.pbi-month-chart{padding:14px 16px}.pbi-mc-row{display:flex;justify-content:space-around;padding-left:7%;font-size:11px;color:var(--accent)}
.pbi-bars{display:block;width:100%;height:auto;overflow:visible}.pbi-bars .hit{fill:transparent}.pbi-click{cursor:pointer}.pbi-bars .b{opacity:.9}.pbi-bars .dot{fill:#5eead4}.pbi-bars .dot.hi{fill:var(--accent)}.pbi-click.dim .dot{opacity:.3}.pbi-bars .mct{paint-order:stroke;stroke:#0b0f19;stroke-width:3px}
.pbi-bars .bv{fill:var(--accent)}.pbi-bars .d,.pbi-bars .n{fill:var(--faint)}.pbi-click:hover .b{opacity:1}.pbi-click.dim .b{opacity:.25}.pbi-click.dim .bv{opacity:.4}
.pbi-ch-card{padding:14px 18px}.pbi-ch-card .sp-head{display:flex;justify-content:space-between;gap:12px;align-items:baseline;margin-bottom:8px}.pbi-ch-card .m{font-size:11px;color:var(--faint)}
/* 0.51.2: Padrão Power BI com os gráficos no topo, Por mês e canal lado a lado e o Dési abaixo */
.pbi-day-card,.pbi-month-card{padding:14px 18px}.pbi-day-card .sp-head,.pbi-month-card .sp-head{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:4px}
.pbi-day-card .m,.pbi-month-card .m{font-size:11px;color:var(--faint)}
.pbi-duo{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:stretch}
@media (max-width:900px){.pbi-duo{grid-template-columns:1fr}}
.home-hero.pbi-hero-solo{grid-template-columns:1fr}
.pbi-bars .bt{fill:var(--text)}.pbi-months .base{stroke:#243044;stroke-width:1}.pbi-months .col{fill:#ffffff03;transition:fill .15s}.pbi-months .mo:hover .col,.pbi-months .mo.sel .col{fill:#2dd4bf0d}
.pbi-months .mcl{fill:none;stroke-width:2.4;stroke-linecap:round;pointer-events:none}.pbi-months .mcglow{fill:none;stroke-width:8;opacity:.35;filter:blur(5px);pointer-events:none}
.pbi-months .mca,.pbi-months .mch,.pbi-months .mcd,.pbi-months .mcp{pointer-events:none}.pbi-months .mch{fill:#ffd21e;opacity:.16}
.pbi-months .mcd{fill:#0e1422;stroke:#fde047;stroke-width:2;filter:drop-shadow(0 0 5px rgba(253,224,71,.8))}
.pbi-months .mcp rect{fill:#2a2410;stroke:#fde04766;stroke-width:.8}.pbi-months .mcp text{fill:#fde047;font-family:var(--num)}
.pbi-months .gr.up{fill:#5eead4}.pbi-months .gr.down{fill:#fb7185}.pbi-months .mcd{fill:var(--accent)}
/* 0.51.4: linha diária, rosca do status do repasse e mês clicável no Padrão Power BI */
.pbi-st-card{padding:14px 18px}.pbi-st-card .sp-head{display:flex;justify-content:space-between;gap:12px;align-items:baseline;margin-bottom:4px}.pbi-st-card .m{font-size:11px;color:var(--faint)}
.pbi-line .base{stroke:#243044;stroke-width:1}.pbi-line .grid{stroke:#1c2638;stroke-width:1;stroke-dasharray:2 6}
.pbi-line .ln{fill:none;stroke-width:2.2;stroke-linecap:round}.pbi-line .glow{fill:none;stroke-width:7;opacity:.35;filter:blur(5px)}
.pbi-line .avg{stroke:#ffd21e;stroke-opacity:.45;stroke-width:1;stroke-dasharray:4 5}.pbi-line .avgt{fill:#ffd21e;fill-opacity:.7}
.pbi-line .vsel{stroke:#99f6e4;stroke-opacity:0;stroke-width:1;stroke-dasharray:2 4;transition:stroke-opacity .15s}
.pbi-line .halo{fill:#2dd4bf;opacity:0;transition:opacity .15s}.pbi-line .dot{fill:#0e1422;stroke:#5eead4;stroke-width:1.6;opacity:0;transition:opacity .15s}
.pbi-line .pt.lab .dot,.pbi-line .pt:hover .dot,.pbi-line .pt.sel .dot{opacity:1}.pbi-line .pt.max .dot{fill:#5eead4;filter:drop-shadow(0 0 5px #5eead4)}
.pbi-line .pt.min .dot{stroke:#fb7185}.pbi-line .pt.min .bv{fill:#fda4af}
.pbi-line .pt:hover .halo{opacity:.18}.pbi-line .pt:hover .vsel,.pbi-line .pt.sel .vsel{stroke-opacity:.6}
.pbi-line .pt.sel .dot{fill:var(--accent);stroke:var(--accent);filter:drop-shadow(0 0 6px var(--accent))}
.pbi-line .bv.hv{opacity:0;transition:opacity .15s}.pbi-line .pt:hover .bv.hv{opacity:1}
@media (prefers-reduced-motion:reduce){.pbi-line .vsel,.pbi-line .halo,.pbi-line .dot,.pbi-line .bv.hv{transition:none}}
.pbi-donut{display:grid;grid-template-columns:minmax(0,230px) minmax(0,1fr);gap:22px;align-items:center;padding-top:4px}
.pbi-donut svg{width:100%;height:auto;display:block;overflow:visible}
.pbi-donut .trk{fill:none;stroke:#ffffff0a;stroke-width:9}.pbi-donut .seg{fill:none;stroke-width:9;transition:stroke-width .2s,opacity .2s}
.pbi-donut .arc{fill:none;stroke-width:7;stroke-linecap:round;transition:stroke-width .2s,opacity .2s}
.pbi-donut .tip{filter:drop-shadow(0 0 4px currentColor);transition:r .2s}
.pbi-donut g.pbi-click:hover .seg,.pbi-donut g.sel .seg{stroke-width:12}
.pbi-donut .dim .seg,.pbi-donut .dim .tip{opacity:.25}
.pbi-donut .c1{fill:var(--strong);font-family:var(--num);font-size:24px}.pbi-donut .c2{fill:var(--faint);font-size:10px}
.pbi-legend{list-style:none;margin:0;padding:0;display:grid;gap:10px;font-size:12px}
.pbi-legend li{display:grid;grid-template-columns:minmax(0,130px) minmax(60px,1fr) 48px 74px 64px;gap:10px;align-items:center}
.pbi-legend li.dim{opacity:.4}.pbi-legend .n{color:var(--muted);display:flex;align-items:center;gap:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pbi-legend .lb{width:100%;height:8px;display:block}.pbi-legend .lb .track{fill:#ffffff0a}
.pbi-legend .g{color:var(--accent);font-family:var(--num);text-align:right}.pbi-legend .lv{color:var(--text);font-family:var(--num);text-align:right}.pbi-legend .o{color:var(--faint);font-size:10.5px;text-align:right}
.pbi-legend .sw{flex:none;width:7px;height:7px;border-radius:50%;background:#9ca3af;box-shadow:0 0 6px currentColor}
.pbi-legend .sw[data-c=Recebido]{background:#5eead4;color:#5eead4}.pbi-legend .sw[data-c=AReceber]{background:#93c5fd;color:#93c5fd}.pbi-legend .sw[data-c=SemPreviso]{background:#ffd21e;color:#ffd21e}
.pbi-legend .sw[data-c=RepasseNegativo]{background:#fb7185;color:#fb7185}.pbi-legend .sw[data-c=CanceladoeNOTRATADO]{background:#fdba74;color:#fdba74}
@media (prefers-reduced-motion:reduce){.pbi-donut .seg,.pbi-donut .tip{transition:none}}
@media (max-width:700px){.pbi-donut{grid-template-columns:1fr}}
.pbi-view.pbi-busy{opacity:.55;pointer-events:none;transition:opacity .15s}

/* 0.51.6 (Diego: "barras mais escuras e mais uau, em todas as telas"): degradê escuro (roxo apagado → verde-água) com ponta de luz.
   Gradientes gbar-h/gbar-o em index.html (svg.ic-defs); os gráficos com defs próprios usam as mesmas paradas. */
.ch-list .fill{fill:url(#gbar-h)}.ch-list .fill.out{fill:url(#gbar-o)}.sp-skus .fill,.sp-top .fill{fill:url(#gbar-h)}
.thin-bars .dot,.pbi-bars .dot{filter:drop-shadow(0 0 4px rgba(94,234,212,.7))}
.thin-bars g:hover rect:not(.hit),.pbi-click:hover .b{filter:brightness(1.6)}
/* 0.51.8: totais do Por mês numa faixa no topo, com fio até a barra; rótulos da linha diária */
.pbi-months .tick{stroke:#2dd4bf;stroke-opacity:.18;stroke-width:1;stroke-dasharray:2 3}
.pbi-line .bv{fill:#cbd5e1;fill-opacity:.85}.pbi-line .bv.key{fill:var(--accent);fill-opacity:1;font-weight:600}.pbi-line .pt.min .bv.key{fill:#fda4af}
.pbi-line .pt:not(.lab) .dot{opacity:0}.pbi-line .pt.lab .dot{opacity:.9}
/* 0.51.9 (Diego: "nossos segmentadores e o menu não estão no padrão uau"): botões, segmentadores, datas e campos no mesmo
   degradê escuro das barras (roxo apagado → verde-água), com brilho no ativo. Vale para todas as telas. */
.segmented{background:linear-gradient(180deg,#ffffff06,#ffffff02);border:1px solid #ffffff10;border-radius:11px;padding:3px;gap:2px;box-shadow:inset 0 1px 0 #ffffff08,0 6px 18px -12px #000}
.segmented button{border-radius:8px;color:#94a3b8;padding:5px 12px;transition:color .15s,background .2s,box-shadow .2s}
.segmented button:hover{color:var(--strong);background:#2dd4bf0f}
.segmented button.active,.segmented button[aria-pressed=true]{color:#f0fdfa;background:linear-gradient(135deg,#3b2f86cc 0%,#1f6f6acc 100%);box-shadow:inset 0 1px 0 #ffffff1f,0 0 0 1px #2dd4bf33,0 4px 16px -6px #2dd4bf66}
.segmented button.active:hover,.segmented button[aria-pressed=true]:hover{filter:brightness(1.12)}
.acct-filter .k,.subnav-mod{color:#7c8aa0;letter-spacing:.04em}
.outline,.dp-field,.company select,header select{background:linear-gradient(180deg,#ffffff07,#ffffff02);border:1px solid #ffffff12;border-radius:10px;color:var(--text);box-shadow:inset 0 1px 0 #ffffff08;transition:border-color .15s,box-shadow .2s,color .15s}
.outline:hover,.dp-field:hover,.company select:hover,header select:hover{border-color:#2dd4bf55;box-shadow:inset 0 1px 0 #ffffff0d,0 0 14px -4px #2dd4bf55;color:var(--strong)}
.dp-field svg{color:#5eead4}
.period-links button{border-radius:8px;color:#cbd5e1;transition:color .15s,background .2s}
.period-links button:hover{background:#2dd4bf12;color:var(--strong)}
.period-links button.active{color:#0b0f19;background:linear-gradient(135deg,#fde047,#f59e0b);box-shadow:0 0 14px -3px #fde04799}
.mg-in,input[type=text],input[type=search],input:not([type]){background:linear-gradient(180deg,#ffffff06,#ffffff02);border:1px solid #ffffff12;border-radius:9px;transition:border-color .15s,box-shadow .2s}
.mg-in:focus,input:focus,select:focus{outline:none;border-color:#2dd4bf88;box-shadow:0 0 0 3px #2dd4bf1f}
.card.pbi-slicers{background:linear-gradient(135deg,#3b2f8612,#1f6f6a0d 60%,transparent)}
@media (prefers-reduced-motion:reduce){.segmented button,.outline,.dp-field,.period-links button{transition:none}}
aside nav button:hover,#rail-pin:hover,#rail-theme:hover{background:#2dd4bf10}
aside nav button.active{background:linear-gradient(135deg,#3b2f8699,#1f6f6a88);box-shadow:inset 0 1px 0 #ffffff14,0 0 18px -6px #2dd4bf66}
aside nav .sub-btn.active{background:linear-gradient(90deg,#fde04718,transparent);color:var(--accent)}
aside nav .sub-btn:hover{background:#2dd4bf10}
/* Menu (0.51.10 gelo; 0.51.11 Diego: "um cinza mais pro escuro meio esfumaçado"): em repouso, vidro fosco grafite com névoa
   cinza; ao passar o mouse ou no item ativo, acende em dourado como antes. Gradiente ic-ice (agora cinza) no svg.ic-defs do body. */
aside{background:radial-gradient(120% 40% at 0% 0%,#9ca3af14,transparent 70%),radial-gradient(120% 50% at 100% 85%,#6b728012,transparent 70%),linear-gradient(180deg,#2a2d3480,#1c1e2470 55%,#14161b66);backdrop-filter:blur(18px) saturate(.9);border-right:1px solid #ffffff0f;box-shadow:inset -1px 0 0 #ffffff05,8px 0 30px -18px #000}
aside nav .ic .fl{fill:url(#ic-ice)}aside nav .ic .st{stroke:url(#ic-ice)}
aside nav button,aside nav .sub-btn,#rail-pin,#rail-theme{color:#c9ccd1}
aside nav .sub-btn{color:#9ea3ab}
aside nav button:hover,#rail-pin:hover,#rail-theme:hover{background:#ffffff0d;color:var(--strong)}
aside nav button:not(.active):not(:hover) .label{color:#b4b8bf}
/* 0.51.11 (Diego: "esse total não está uau"; "cores dos números num degradê entre vermelho e verde"):
   linha de total no topo das tabelas em vidro com o degradê da casa e fio de luz; números com cor h0 (vermelho) a h6 (verde). */
thead tr.tt-total>th,thead tr.tt-total>td{background:none;color:#f8fafc;font-weight:600;font-size:12.5px;padding-top:11px;padding-bottom:11px;border-bottom:1px solid #ffffff1f;box-shadow:inset 0 1px 0 #ffffff1c}
thead tr.tt-total>:first-child{color:var(--accent);text-shadow:0 0 12px #fde04766;border-radius:10px 0 0 10px}
thead tr.tt-total>:last-child{border-radius:0 10px 10px 0}
thead tr.tt-total>td.amount,thead tr.tt-total>th.amount{font-family:var(--num);letter-spacing:.01em}
.h0{color:#f87171}.h1{color:#fb923c}.h2{color:#fbbf24}.h3{color:#facc15}.h4{color:#bef264}.h5{color:#4ade80}.h6{color:#34d399}
thead tr.tt-total>.h0,thead tr.tt-total>.h1,thead tr.tt-total>.h2,thead tr.tt-total>.h3,thead tr.tt-total>.h4,thead tr.tt-total>.h5,thead tr.tt-total>.h6{text-shadow:0 0 10px currentColor}
.pbi-more{display:block;margin:12px auto 0}
/* 0.51.11: margem por status, abaixo da rosca: medidores redondos com o % no meio */
.pbi-stm{margin-top:16px;padding-top:12px;border-top:1px solid #ffffff0d}.pbi-stm .k2{margin:0 0 6px;font-size:11px;color:var(--faint)}
.pbi-gauges{width:100%;height:auto;display:block}.pbi-gauges .hit{fill:transparent}.pbi-gauges .trk{fill:none;stroke:#ffffff0a;stroke-width:7}
.pbi-gauges .seg{fill:none;stroke-width:7;stroke-linecap:round}.pbi-gauges .glowc{opacity:.07}.pbi-gauges .tip{filter:drop-shadow(0 0 5px currentColor)}
.pbi-gauges .gp{font-size:15px;font-family:var(--num);font-weight:600;fill:#fff;paint-order:stroke;stroke:#0b0f1966;stroke-width:3px}.pbi-gauges .gn{font-size:11px;fill:var(--muted)}.pbi-gauges .gv{font-size:10px;fill:var(--faint);font-family:var(--num)}
.pbi-gauges .dim{opacity:.35}.pbi-gauges .sel .gn{fill:var(--accent)}.pbi-gauges .core{transition:opacity .2s}.pbi-gauges g:hover .core{opacity:.8}
/* 0.51.11: contas (lojas) abertas embaixo do canal escolhido */
.pbi-chs .sub .tree{stroke:#ffffff26;stroke-width:1}.pbi-chs .sn{fill:var(--muted)}.pbi-chs .sub.sel .sn{fill:var(--accent)}
/* 0.51.12 (Diego: "não pode ser menos discreto, ir para um cinza esfumaçado"; "cinza era os destaques azulados"): os
   destaques que eram azul-roxo (botão escolhido dos segmentadores e do menu) e a linha de total viram vidro grafite com
   névoa cinza; o painel dos filtros volta ao véu sutil. A tabela não deixa linhas aparecerem acima do total fixo. */
.segmented button.active,.segmented button[aria-pressed=true]{color:#fff;background:radial-gradient(80% 120% at 20% 0%,#ffffff1f,transparent 70%),linear-gradient(135deg,#565a65 0%,#3a3d46 55%,#2c2f37 100%);box-shadow:inset 0 1px 0 #ffffff2e,0 0 0 1px #ffffff1a,0 4px 16px -6px #000c}
aside nav button.active{background:radial-gradient(80% 120% at 20% 0%,#ffffff1a,transparent 70%),linear-gradient(135deg,#4b4f59e6,#30333be6);box-shadow:inset 0 1px 0 #ffffff24,0 4px 16px -8px #000}
/* cor sólida por baixo do degradê: stickHeads usa a cor de fundo na sombra que tapa a folga acima e o vão abaixo do total */
thead tr.tt-total>th,thead tr.tt-total>td{background-color:#0d121c}
thead tr.tt-total>.h0{color:#f87171}thead tr.tt-total>.h1{color:#fb923c}thead tr.tt-total>.h2{color:#fbbf24}thead tr.tt-total>.h3{color:#facc15}thead tr.tt-total>.h4{color:#bef264}thead tr.tt-total>.h5{color:#4ade80}thead tr.tt-total>.h6{color:#34d399}
aside nav .mod-btn:hover{background:#ffffff0f}aside nav .mod.active>.mod-btn{background:#ffffff14}aside nav .sub-btn:hover{background:#ffffff0d}
/* 0.51.14 (Diego: "tem alguns retângulos muito colados, fora do padrão; veja em todo o projeto"): nas telas em bloco, todo
   bloco seguido de outro ganha 14px de respiro (o mesmo gap da Início). :where zera a especificidade, então margens próprias
   maiores continuam valendo; e como as margens verticais se fundem, nunca soma duas vezes. */
:where(.market,.meta,.lanc,.planning,.plan-view,.plan-setup,.load,.depara,.connection,.cashflow,.budget,.banks)>*+*{margin-top:14px}
/* 0.51.15 (Diego: "não gostei de cinza, tira a cor de fundo"; "pontilhar as linhas da tabela, bem suave, quase não aparecendo";
   "ao clicar no mês filtrasse a tabela de cima"): total sem fundo (só a cor da página, que tapa as linhas ao rolar), linhas
   das tabelas em pontilhado quase invisível e meses clicáveis na tabela Por mês. */
thead tr.tt-total>th,thead tr.tt-total>td{box-shadow:none;border-bottom:1px dotted #ffffff26}
table tbody>tr>td,table tbody>tr>th,.pbi-table tbody td{border-bottom:1px dotted #ffffff14}
tr.pbi-mrow{cursor:pointer}tr.pbi-mrow:hover td{background:#fde0470a}tr.pbi-mrow.sel td{background:#fde04712}tr.pbi-mrow.sel td:first-child{color:var(--accent);font-weight:600}tr.pbi-mrow.dim td{opacity:.45}
.pbi-view.pbi-dash .pbi-ped-only{display:none}
/* 0.51.17: aba Pedidos escolhe entre as tabelas Por mês/Por canal e a Análise dos recebíveis do BI */
.pbi-pedsw{display:flex;align-items:center;gap:10px}.pbi-pedsw .k{font-size:11px;color:var(--faint)}
.pbi-rec tr.rc-tg{cursor:pointer}.pbi-rec tr.rc-l0 td:first-child{font-weight:600;color:var(--strong)}.pbi-rec tr.rc-l1 td:first-child{padding-left:22px}.pbi-rec tr.rc-l2 td:first-child{padding-left:42px;color:var(--muted)}
.pbi-rec .tg{display:inline-block;width:14px;color:var(--faint)}.pbi-rec td.muted{color:var(--faint)}.pbi-rec tr.sel td{background:#fde04712}.pbi-rec tr.sel td:first-child{color:var(--accent)}
.pbi-rec tr.rc-tg:hover td,.pbi-rec tr.pbi-click:hover td{background:#ffffff06}
/* 0.51.18 (Diego: "em todas as telas isso ficar num menu suspenso, recolhido, que aparece ao passar o mouse; o mesmo com o
   menu, só aparecendo o ícone da página em que estamos"). Topo: faixa fina (título · cliente · período) e painel de vidro que
   abre por cima do conteúdo; .pinned volta ao topo normal. Menu: recolhido, só a marca e o ícone da tela atual, sem fundo. */
.topbar{position:sticky;top:0;z-index:25;max-width:1600px;margin:0 auto}
.tb-strip{display:flex;align-items:center;gap:14px;height:42px;padding:0 4px;cursor:pointer;border-bottom:1px dotted #ffffff14;outline:none}
.tb-strip .tb-title{font-size:15px;font-weight:700;color:var(--accent);white-space:nowrap}
.tb-strip .tb-meta{font-size:11.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tb-strip .tb-hint{margin-left:auto;display:flex;align-items:center;gap:6px;font-size:11px;color:var(--faint)}
.tb-strip .tb-hint svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;transition:transform .18s}
.tb-strip:hover .tb-hint,.tb-strip:focus-visible .tb-hint{color:var(--accent)}
.tb-panel{position:absolute;left:-14px;right:-14px;top:0;padding:4px 14px 12px;border-radius:0 0 18px 18px;background:linear-gradient(180deg,#0b0f19f2,#0d1220eb);backdrop-filter:blur(16px);box-shadow:0 24px 50px -20px #000,inset 0 -1px 0 #ffffff0d;
 opacity:0;visibility:hidden;transform:translateY(-10px);transition:opacity .18s ease,transform .18s ease,visibility 0s linear .18s}
.topbar.open .tb-panel{opacity:1;visibility:visible;transform:none;transition:opacity .18s ease,transform .18s ease}
.topbar.open .tb-strip .tb-hint svg{transform:rotate(180deg)}
.tb-panel #top-slot>.card{margin:10px 0 0}
.tb-pin{display:block;margin:8px 0 0 auto;font-size:11px}
.topbar.pinned .tb-strip{display:none}
.topbar.pinned .tb-panel{position:static;opacity:1;visibility:visible;transform:none;background:none;box-shadow:none;backdrop-filter:none;padding:0;border-radius:0}
.topbar.pinned{position:static}
@media (prefers-reduced-motion:reduce){.tb-panel,.topbar.open .tb-panel{transition:none}}
body:not(.rail-pinned):not(.rail-open) aside:not(.hot) nav>button:not(.active),body:not(.rail-pinned):not(.rail-open) aside:not(.hot) nav>.mod:not(.active),body:not(.rail-pinned):not(.rail-open) aside:not(.hot) .rail-foot{display:none}
body:not(.rail-pinned):not(.rail-open) aside:not(.hot){background:transparent;border-right-color:transparent;box-shadow:none;backdrop-filter:none}
/* 0.51.19 (Diego: "não gostei dos estilos das nossas tabelas, não estão uau"): tabelas em vidro escuro com fio de luz no topo,
   cabeçalho em versalete pequeno e espaçado, números na fonte de números, faixas zebradas quase invisíveis, linha ao passar o
   mouse com brilho verde-azulado e marcador amarelo à esquerda, total com fio dourado embaixo. */
.table-wrap{border:0;border-radius:18px;padding:2px 10px 6px;background:radial-gradient(120% 60% at 0% 0%,#2dd4bf0d,transparent 60%),radial-gradient(100% 60% at 100% 0%,#7c3aed0f,transparent 60%),linear-gradient(180deg,#111827cc,#0b0f19cc);box-shadow:inset 0 1px 0 #ffffff12,0 24px 50px -34px #000}
.table-wrap table{border-collapse:separate;border-spacing:0}
.table-wrap thead th{font-size:10.5px;font-weight:600;letter-spacing:.07em;text-transform:none;color:#8e97ab;background-color:#0d121c;padding-top:12px;padding-bottom:10px}
.table-wrap thead th .cur,.table-wrap thead th small{text-transform:none;letter-spacing:0}
.table-wrap tbody td{transition:background .15s ease,color .15s ease}
.table-wrap td.amount{font-family:var(--num);letter-spacing:.01em}
.table-wrap tbody tr:nth-child(even)>td{background:#ffffff03}
.table-wrap tbody tr:hover>td{background:#2dd4bf0c}
.table-wrap tbody tr:hover>td:first-child{box-shadow:inset 3px 0 0 var(--accent)}
.table-wrap tbody tr.sel>td{background:#fde04710}.table-wrap tbody tr.sel>td:first-child{box-shadow:inset 3px 0 0 var(--accent)}
.table-wrap tbody tr:first-child>td{padding-top:12px}
thead tr.tt-total>th,thead tr.tt-total>td{background:linear-gradient(to top,#ffd21e55 1px,transparent 1px) #0d121c;border-bottom:0;font-size:13.5px;padding-top:13px;padding-bottom:13px}
thead tr.tt-total>:first-child{letter-spacing:.02em}
/* Recebíveis: seta para abrir/fechar, nome e valores clicáveis */
.pbi-rec .rc-name{display:inline-flex;align-items:center;gap:4px}
.pbi-rec button.tg{width:18px;height:18px;border:0;border-radius:6px;background:transparent;color:var(--faint);cursor:pointer;font-size:11px;padding:0}
.pbi-rec button.tg:hover{background:#ffffff12;color:var(--accent)}
.pbi-rec .rc-pick{border:0;background:none;color:inherit;font:inherit;cursor:pointer;padding:0}
.pbi-rec .rc-pick:hover,.pbi-rec .rc-pick.on{color:var(--accent)}
.pbi-rec .num-link{border:0;background:none;color:inherit;font:inherit;cursor:pointer;padding:2px 6px;margin:-2px -6px;border-radius:6px}
.pbi-rec .num-link:hover{background:#2dd4bf1f;color:#fff}
.pbi-rec td.on .num-link{background:#fde04726;color:var(--accent);box-shadow:0 0 0 1px #fde04755}
.pbi-rec td.strong{font-weight:600;color:var(--strong)}
.pbi-rec tr.rc-l1>td{background:#ffffff05}.pbi-rec tr.rc-l1>td:first-child{font-weight:600;color:var(--text)}
.rc-chip{margin:2px 0 4px;font-size:11.5px;color:var(--muted)}.rc-chip b{color:var(--accent);font-weight:600}
.table-wrap thead th :is(button,a){text-transform:inherit;letter-spacing:inherit;font-size:inherit;font-weight:inherit;color:inherit}
thead tr.tt-total .rc-pick{color:var(--accent);font-weight:600}
.pbi-legend .dot{flex:none;width:8px;height:8px;filter:drop-shadow(0 0 4px #ffffff40)}.pbi-legend .pbi-back .n{color:var(--accent)}.pbi-chd .pbi-legend .o{font-size:11px}
.pbi-loading{display:flex;align-items:center;gap:8px;color:var(--accent)}
/* 0.51.24: Acumulado dia a dia no estilo da linha da Venda por dia (Diego), com pílulas e a faixa de variação embaixo. */
.pbi-acc-card{margin-top:14px}
.pbi-acc-card .acc-pills{display:flex;flex-wrap:wrap;gap:8px;margin:6px 0 2px}
.acc-pill{font-size:11.5px;padding:3px 10px;border-radius:999px;background:#ffffff08;color:#e5e7eb}
.acc-pill small{font-size:10px;color:var(--faint);margin-left:2px}
.acc-pill.up{color:#5eead4;background:#2dd4bf12}.acc-pill.down{color:#fda4af;background:#fb718512}.acc-pill.gold{color:var(--accent);background:#ffd21e12}
.acc-pill.ghost{color:#cbd5e1;background:none;box-shadow:inset 0 0 0 1px #ffffff1a}
.pbi-accl .vcap{fill:var(--faint);fill-opacity:.7}
.pbi-accl .vv{fill:#cbd5e1;fill-opacity:.85}.pbi-accl .vv.up{fill:#5eead4}.pbi-accl .vv.down{fill:#fda4af}
.pbi-accl .vp{fill:var(--faint)}.pbi-accl .pt.sel .vp,.pbi-accl .pt.end .vp{fill:var(--accent)}
.pbi-accl .vv.hv,.pbi-accl .vp.hv{opacity:0;transition:opacity .15s}.pbi-accl .pt:hover .vv.hv,.pbi-accl .pt:hover .vp.hv{opacity:1}
.pbi-accl .pt.end .dot{fill:var(--accent);stroke:var(--accent);filter:drop-shadow(0 0 6px var(--accent));opacity:1}
.pbi-accl .pj{stroke:#99f6e4;stroke-opacity:.45;stroke-dasharray:4 5}.pbi-accl .pjd{fill:none;stroke:#99f6e4;stroke-opacity:.7;stroke-width:1.3}.pbi-accl .pjt{fill:#99f6e4;fill-opacity:.7}
@media (prefers-reduced-motion:reduce){.pbi-accl .vv,.pbi-accl .vp{transition:none}}
/* 0.51.26 (Diego: "esse Início está ficando fora do cabeçalho oculto; coloca ele lá para a tela ficar mais limpa"): a faixa do
   título some; sobra uma borda fina de 6px no topo (encostar o mouse ou clicar nela abre o painel, que já traz título e cliente). */
.topbar:not(.pinned) .tb-strip{height:6px;padding:0;border-bottom:0;overflow:hidden;opacity:0}
.topbar:not(.pinned) .tb-strip:focus-visible{opacity:1;height:4px;background:var(--accent)}
/* 0.51.27: faixa da média no Acumulado dia a dia — média do período no meio, cobrinha da venda de cada dia (verde-água acima,
   rosa abaixo), degraus âmbar com a média de cada 5 dias e o ritmo usado na projeção. */
.pbi-accl .bcap{fill:var(--faint);fill-opacity:.8}
.pbi-accl .avgm{stroke:#ffd21e;stroke-opacity:.5;stroke-width:1;stroke-dasharray:4 5}
.pbi-accl .sup{fill:#2dd4bf;fill-opacity:.14}.pbi-accl .sdn{fill:#fb7185;fill-opacity:.14}
.pbi-accl .snk{fill:none;stroke:#c4b5fd;stroke-width:1.8;stroke-linecap:round}.pbi-accl .snk.glow{stroke-width:6;opacity:.3;filter:blur(4px)}
.pbi-accl .b5{stroke:#fbbf24;stroke-width:2;stroke-linecap:round;opacity:.85}.pbi-accl .b5t{fill:#fcd34d;fill-opacity:.85}
.pbi-accl .sdot{stroke:#0e1422;stroke-width:1}.pbi-accl .sdot.up{fill:#5eead4}.pbi-accl .sdot.down{fill:#fda4af}.pbi-accl .sdot.part{fill:none;stroke:#cbd5e1;stroke-dasharray:2 2}
.pbi-accl .sv.up{fill:#5eead4}.pbi-accl .sv.down{fill:#fda4af}
.pbi-accl .pt:hover .sv.hv,.pbi-accl .pt.sel .sv.hv{opacity:1}
.pbi-accl .pjb{stroke:#99f6e4;stroke-opacity:.55;stroke-dasharray:4 5}
.pbi-accl .sv.hv{opacity:0;transition:opacity .15s}.pbi-accl .pt:hover .sv.hv,.pbi-accl .pt.sel .sv.hv{opacity:1}
/* 0.51.28 (Diego: "deixe a cor só no status e na margem valor e margem %", em todas as tabelas e matrizes): negativos e alertas
   nas colunas de valor ficam na cor normal (os parênteses já mostram o sinal); a cor fica na MC (.mcv, .hN) e no status. */
.gi-table td.gi-low{color:inherit} /* 0.181.0: os negativos (.neg) voltam ao vermelho em todas as tabelas (Diego, 10/11/2026) */
.orders-table td.fee,.orders-table th.fee,.shopee .orders-table td.amount.fee{color:inherit}
.pbi-accl .d.fut{fill:#64748b;opacity:.7}.pbi-accl .pjs{fill:#99f6e4;fill-opacity:.5}
/* 0.51.31 (Diego: "usar toda a tela para os dashs; com o menu recolhido, a figura do menu e o DS bem fraquinhos sem sair da tela"):
   recolhido, o menu fica por cima do conteúdo, quase invisível e sem pegar cliques; a borda esquerda (ui.js) continua abrindo. */
@media(min-width:701px){
body:not(.rail-pinned) main{margin-left:0}
body:not(.rail-pinned):not(.rail-open) aside:not(.hot){opacity:.1;pointer-events:none;transition:opacity .2s ease}
body:not(.rail-pinned):not(.rail-open) aside:not(.hot) nav .active{background:transparent;box-shadow:none}
}
/* 0.52.0 · Atualizar dados no topo: botão, janelinha com o que carregar, andamento em % e selo flutuante enquanto roda */
.upd{position:relative}
.upd[hidden]{display:none}
.upd>summary{list-style:none;display:inline-flex;align-items:center;gap:6px;font-size:11px;cursor:pointer;user-select:none}
.upd>summary::-webkit-details-marker{display:none}
.upd>summary .upd-ic{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.upd>summary.running{border-color:var(--accent);color:var(--accent)}
.upd>summary.running b{font-weight:600;font-variant-numeric:tabular-nums}
.upd-ring{width:16px;height:16px;flex:none}
.upd-ring circle{fill:none;stroke-width:3.4}
.upd-ring .bg{stroke:var(--line)}
.upd-ring .fg{stroke:var(--accent);stroke-linecap:round;transition:stroke-dashoffset .35s ease}
.upd-ring.big{width:46px;height:46px}.upd-ring.big circle{stroke-width:2.6}
.upd-ring.mini{width:13px;height:13px}
.upd-pop{position:absolute;top:calc(100% + 8px);left:0;z-index:40;width:min(380px,calc(100vw - 32px));max-height:min(72vh,620px);overflow:auto;padding:14px 16px 12px;border-radius:16px;
 background:linear-gradient(160deg,#141b2c 0%,#0d1220 70%);box-shadow:0 26px 60px -18px #000,inset 0 1px 0 #ffffff0a;display:flex;flex-direction:column;gap:10px;font-size:12px}
.upd-title{margin:0;font-size:13px;font-weight:600;color:var(--strong)}.upd-title small{font-weight:400;color:var(--faint);margin-left:4px}
.upd-groups{display:flex;flex-direction:column;gap:8px}
.upd-group .k{margin:0 0 3px;font-size:10.5px;letter-spacing:.3px;color:var(--faint)}
.upd-item{display:flex;align-items:flex-start;gap:8px;padding:4px 6px;border-radius:8px;cursor:pointer}
.upd-item:hover{background:#ffffff08}
.upd-item input{margin:2px 0 0;accent-color:var(--accent)}
.upd-item span{display:flex;flex-direction:column;color:var(--text)}
.upd-item small{font-size:10.5px;color:var(--faint)}
.upd-item.off{opacity:.45;cursor:default}
.upd-days{display:flex;align-items:center;gap:2px;font-size:11px;color:var(--faint)}
.upd-days .k{padding:0 4px}
.upd-days button{background:transparent;border:0;color:var(--muted);font-size:11.5px;min-width:26px;padding:4px 6px;border-radius:999px}
.upd-days button:hover{color:var(--strong)}
.upd-days button.active{background:#ffd21e1f;color:var(--accent)}
.upd-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.upd-actions small{font-size:10.5px}
.upd-now{display:flex;align-items:center;gap:12px}
.upd-now>div{display:flex;flex-direction:column;gap:2px;min-width:0}
.upd-pct{font-size:20px;font-weight:600;color:var(--accent);font-variant-numeric:tabular-nums;line-height:1}
.upd-where{color:var(--strong);font-size:12px}
.upd-detail{color:var(--muted);font-size:10.5px;overflow-wrap:anywhere}
.upd-steps{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}
.upd-step{display:flex;gap:8px;align-items:flex-start;color:var(--muted)}
.upd-step i{font-style:normal;width:14px;flex:none;text-align:center;font-size:11px;color:var(--faint)}
.upd-step span{display:flex;flex-direction:column;min-width:0}
.upd-step b{font-weight:500;font-size:11.5px}
.upd-step small{font-size:10.5px;color:var(--faint);overflow-wrap:anywhere}
.upd-step.run b{color:var(--strong)}
.upd-step.ok i{color:#5eead4}
.upd-step.err i,.upd-step.err small{color:#fca5a5}
.upd-step.skip{opacity:.6}
.upd-float{position:fixed;top:8px;right:16px;z-index:60;display:inline-flex;align-items:center;gap:7px;padding:5px 12px 5px 7px;border:0;border-radius:999px;font-size:11px;color:var(--text);
 background:linear-gradient(135deg,#1a2234f2,#0d1220f2);box-shadow:0 10px 30px -10px #000,inset 0 1px 0 #ffffff0d;backdrop-filter:blur(10px);max-width:min(340px,calc(100vw - 32px))}
.upd-float[hidden]{display:none}
.upd-float b{color:var(--accent);font-weight:600;font-variant-numeric:tabular-nums}
.upd-float span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.upd-float:hover{box-shadow:0 10px 30px -10px #000,0 0 0 1px #ffd21e55}
.topbar.open~.upd-float,body:has(.topbar.open) .upd-float{opacity:0;pointer-events:none}
@media (prefers-reduced-motion:reduce){.upd-ring .fg{transition:none}}
@media(max-width:700px){.upd-pop{position:fixed;left:16px;right:16px;top:60px;width:auto}}
/* 0.53.0 · Critérios › Origem dos dados e Sistemas */
.org-head .m{font-size:12px;margin:0 0 10px}
.org-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;margin-bottom:12px}
.org-card{display:flex;flex-direction:column;gap:6px;padding:14px 16px}
.org-card.empty .k{color:var(--muted)}
.org-what{font-size:11px;margin:0}
.org-list{list-style:none;margin:2px 0 0;padding:0;display:flex;flex-direction:column;gap:5px}
.org-list li{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.org-list b{font-weight:600;font-size:12.5px;color:var(--strong);min-width:90px}
.org-list select{padding:3px 6px;font-size:11.5px}
.org-add{align-self:flex-start;padding:3px 6px;font-size:11.5px;color:var(--muted);margin-top:2px}
.org-systems tr.bad input{border-color:#f87171}
.org-systems small.warn{display:block;color:#fca5a5;font-size:10.5px;margin-top:2px}
.org-systems select{padding:4px 6px}
.card.org-card{display:flex;flex-direction:column;justify-content:flex-start;align-items:stretch;text-align:left}
.org-card .org-what{text-align:left}
.org-list li{flex-wrap:nowrap}.org-list li select{flex:1;min-width:0}.org-list li .text-button{flex:none}
#content .card.org-card p.org-what{margin:0}#content .card.org-card .org-list:empty{display:none}
/* 0.54.0 · Origem dos dados em dois passos: o que precisamos (botões) e o quadro o que · origem · onde pegamos. */
.card.org-step{display:flex;flex-direction:column;gap:10px;padding:14px 16px;margin-bottom:12px;text-align:left}
.org-n{display:inline-grid;place-items:center;width:18px;height:18px;margin-right:8px;border-radius:50%;background:var(--accent);color:#111827;font-size:11px;font-weight:700}
.org-needs{display:flex;flex-wrap:wrap;gap:6px}
.org-need{padding:5px 11px;border-radius:999px;border:1px solid var(--line-soft);background:transparent;color:var(--muted);font-size:12px}
.org-need:hover{color:var(--text);border-color:#ffd21e66}
.org-need.on{background:#ffd21e1f;border-color:#ffd21e99;color:var(--text)}
.org-need.on::before{content:'✓ ';color:var(--accent)}
.org-new{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.org-new label{font-size:12px}
.org-new input{flex:1 1 220px;max-width:320px;padding:4px 8px}
.org-new select{padding:4px 6px}
.org-new>.m{font-size:11px}
.org-table{width:100%;border-collapse:collapse}
.org-table th,.org-table td{text-align:left;vertical-align:middle;padding:6px 10px;font-size:12px}
.org-table thead th{font-size:11px;font-weight:600;color:var(--faint);border-bottom:1px solid var(--line-soft)}
.org-table tbody th{vertical-align:top;font-weight:400;width:32%}
.org-table tbody th .k{display:block;font-weight:600;color:var(--strong)}
.org-table tbody th small{display:block;font-size:10.5px;color:var(--faint);margin-top:2px;line-height:1.3}
.org-table tr.org-first>*{border-top:1px solid var(--line-soft)}
.org-table tbody tr:first-child>*{border-top:0}
.org-table td b{font-weight:600;color:var(--strong)}
.org-table td .m{font-size:10.5px;color:var(--faint)}
.org-table select{padding:3px 6px;font-size:11.5px;max-width:240px}
@media(max-width:700px){.org-table tbody th{width:auto}.org-table th,.org-table td{padding:6px 6px}}
.org-wrap{overflow-x:auto}
.org-table td:last-child{width:1%;white-space:nowrap}
.org-table tbody tr:hover>*{background:#2dd4bf0a}
.org-table tbody th,.org-table tbody th small{white-space:normal}
@media(max-width:700px){.org-table,.org-table tbody{display:block}.org-table thead{display:none}
 .org-table tr{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;padding:4px 0}.org-table tr>*{border-top:0!important;padding:4px 2px}
 .org-table tr.org-first{border-top:1px solid var(--line-soft);margin-top:4px}.org-table tbody tr:first-child{border-top:0}
 .org-table tbody th{flex:1 1 100%}.org-table td{white-space:normal}.org-table td:first-child{flex:1 1 auto}.org-table td[colspan]{flex:1 1 100%}.org-table td select{max-width:160px}}
/* 0.55.0: aviso da tela marcada no passo 1 sem origem ainda (ou fora do que o cliente usa). */
.origin-note{display:flex;align-items:center;gap:12px;flex-wrap:wrap;max-width:1600px;margin:0 auto 14px;padding:9px 14px;border-radius:12px;background:linear-gradient(135deg,rgba(255,210,30,.08),rgba(148,163,184,.03) 70%);font-size:12.5px;color:var(--muted)}
.origin-note b{color:var(--text);font-weight:600}
.origin-note[hidden]{display:none}
.origin-note .text-button{margin-left:auto}
/* 0.56.0: coluna Colunas (De/para) no quadro da Origem dos dados. */
.org-cols{white-space:nowrap}.org-cols .text-button{margin-left:6px}
.org-warn{color:#fbbf24;font-size:11.5px}.org-ok{color:#5eead4;font-size:11.5px}
.org-reads{font-size:11px;color:var(--text)}.org-cols{white-space:normal;min-width:180px}
/* 0.58.0 · Regra de negócio no roteiro da leitura (Critérios › Origem dos dados) */
.org-rule-cell{min-width:190px}.org-rule-st{margin-top:3px;font-size:11px}.org-rule-st .text-button{margin-left:4px}
.org-rule-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:16px;margin-top:10px}
.org-rule-edit{display:flex;flex-direction:column;gap:5px}.org-rule-edit input{max-width:360px}
.org-rule-edit textarea{width:100%;min-height:210px;resize:vertical;font:12px/1.55 'IBM Plex Mono',monospace;padding:8px 10px;background:#0b0f19;color:var(--text);border:1px solid var(--line-soft);border-radius:8px}
.org-rule-read ol{list-style:none;margin:6px 0 0;padding:0;font-size:12px;line-height:1.45}
.org-rule-read li{display:flex;gap:8px;padding:3px 0;border-bottom:1px solid var(--line-soft)}.org-rule-read li .m{min-width:18px;text-align:right;font-size:10.5px;color:var(--faint)}
.org-rule-read li.rl-ok{color:var(--text)}.org-rule-read li.rl-note{color:var(--faint);font-style:italic}.org-rule-read li.rl-err{color:#fbbf24}
.org-help{margin-top:10px;font-size:12px}.org-help summary{cursor:pointer;color:var(--faint)}.org-help table{margin:6px 0;border-collapse:collapse}.org-help td{padding:2px 12px 2px 0}.org-help code{font-size:11.5px;color:#5eead4}
@media(max-width:700px){.org-rule-grid{grid-template-columns:1fr}}
/* 0.58.1 · várias regras por linha */
.org-chips{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:4px}
.org-chip{display:inline-flex;align-items:center;gap:2px;padding:1px 4px 1px 8px;border-radius:999px;background:#2dd4bf14;font-size:11.5px}
.org-chip.on{background:#ffd21e22}.org-chip .text-button{color:var(--strong);padding:0}
.org-x{background:none;border:0;color:var(--faint);cursor:pointer;font-size:13px;line-height:1;padding:0 4px}.org-x:hover{color:#fca5a5}
.org-rule-grid{align-items:start}
/* 0.58.2 · de/para da regra e Merge */
.org-gap{display:block;margin-top:12px}
.org-map{border-collapse:collapse;font-size:12px;margin-top:4px}.org-map th{font-size:10.5px;font-weight:600;color:var(--faint);text-align:left;padding:2px 10px 2px 0}
.org-map td{padding:3px 10px 3px 0;border-top:1px solid var(--line-soft)}.org-map td b{color:var(--strong);font-weight:600}
.org-merge-go{display:block;margin-top:6px}
.org-merge-t td.org-win{color:var(--strong);font-weight:600}.org-merge-t tr.org-src>*{background:#ffd21e0d}
.org-merge-t tbody th{width:18%}.org-merge-t .tag{font-size:10px;margin-left:4px}
.org-merge-t thead small{display:block;font-weight:400;font-size:10.5px;color:var(--faint)}
/* 0.58.4 · Merge: grade com todas as colunas, Nosso campo congelado */
.org-gwrap{overflow-x:auto}
.org-merge-t{width:auto}.org-merge-t th,.org-merge-t td{padding:4px 8px;white-space:nowrap}
.org-merge-t .org-freeze{position:sticky;left:0;z-index:1;background:var(--card);min-width:250px;box-shadow:1px 0 0 var(--line-soft)}
.org-merge-t thead .org-freeze{z-index:2}
.org-merge-t select{max-width:210px;font-size:11.5px;padding:2px 4px}
.org-merge-t td small{display:block;font-size:10px;color:var(--faint)}
.org-read{display:inline-flex;align-items:center;gap:3px;font-size:11px;color:var(--faint);margin-right:6px}
.org-gname{width:150px;font-size:12px;padding:2px 6px}.org-merge-t .org-freeze .org-x{margin-left:2px}
.org-merge-t tr.org-off .org-gname{opacity:.6}.org-merge-t tr.org-off td{opacity:.7}
.org-merge-t td.org-calc{color:var(--text);font-size:11.5px}
table.org-merge-t{width:auto!important;table-layout:auto}.org-merge-t td,.org-merge-t th{width:auto!important}
.org-merge-t td{min-width:190px}.org-merge-t select{max-width:240px;width:100%}
.fo-cols{display:flex;flex-wrap:wrap;gap:4px}.fo-cols .org-chip{margin:0}
aside nav [data-view="form"] .label{white-space:normal;line-height:1.15}
.fo-open{font-weight:600;padding:0;text-align:left}.org-table tr.org-sel>th,.org-table tr.org-sel>td{background:rgba(250,204,21,.05)}
.fo-rows{max-height:520px;overflow:auto}.fo-rows table{width:auto}.fo-rows th,.fo-rows td{white-space:nowrap;font-size:12px}.fo-rows thead th{position:sticky;top:0;background:var(--card);z-index:1}
.tag.fo-t-dado{color:#9ca3af}.tag.fo-t-busca{color:#7dd3fc;border-color:rgba(125,211,252,.35)}.tag.fo-t-calc{color:#fde047;border-color:rgba(253,224,71,.4)}
.fo-rows th .tag{margin-left:4px;font-size:10px}
.fo-dlg{width:min(96vw,1600px);max-width:96vw}.fo-dwrap{max-height:70vh;overflow:auto}.fo-dtable{width:auto}.fo-dtable th,.fo-dtable td{white-space:nowrap;font-size:12px}.fo-dtable th .tag{margin-left:4px;font-size:10px}
.tag.fo-v{color:#a7f3d0;border-color:rgba(167,243,208,.3)}.tag.fo-v-bad{color:#fde047;border-color:rgba(253,224,71,.45)}.fo-dtable td.num{text-align:right;font-variant-numeric:tabular-nums}.fo-vsum{font-size:11px;margin:4px 0}
.fo-read{display:inline-flex;align-items:center;gap:6px;background:none;border:0;padding:2px 0;color:#9ca3af;font:inherit;font-size:12px;cursor:pointer}.fo-read .fo-knob{width:24px;height:13px;border-radius:7px;background:rgba(156,163,175,.3);position:relative;transition:background .2s}.fo-read .fo-knob::after{content:"";position:absolute;top:2px;left:2px;width:9px;height:9px;border-radius:50%;background:#9ca3af;transition:transform .2s}.fo-read.on{color:#e5e7eb}.fo-read.on .fo-knob{background:rgba(253,224,71,.45)}.fo-read.on .fo-knob::after{transform:translateX(11px);background:#fde047}.fo-read:disabled{opacity:.5;cursor:default}
@media (prefers-reduced-motion:reduce){.fo-read .fo-knob,.fo-read .fo-knob::after{transition:none}}
.fe-title{font:inherit;font-weight:600;background:transparent;border:0;border-bottom:1px dashed var(--line-soft);color:inherit;padding:2px 4px;min-width:14ch}.fe-what{width:100%;margin:6px 0 4px;font:inherit;font-size:12px;background:transparent;border:0;border-bottom:1px dashed var(--line-soft);color:var(--faint);padding:4px 2px}
.fe-h{font-size:12px;font-weight:600;margin:14px 0 4px;color:var(--faint)}.fe-cols input{font:inherit;font-size:12px;background:rgba(255,255,255,.03);border:1px solid var(--line-soft);border-radius:6px;color:inherit;padding:4px 6px}.fe-cols .fe-name{width:16ch}.fe-cols .fe-how{width:100%;min-width:28ch}
.fe-probs{margin:8px 0;padding-left:18px;font-size:12px}
/* 0.61.1 (Diego: "aqui dentro a caixinha está branca"): a lista aberta das caixas de escolha (cliente no topo e as outras)
   herdava o fundo transparente e o Windows pintava de branco; agora segue o fundo escuro do app. */
select,.company select,header select{background-color:#111922}select option,select optgroup{background-color:#111922;color:#e5ebf1}select option:checked{background-color:#2a3542;color:#fde047}
/* 0.63.0 · Fonte = merge: uma coluna por origem */
.fe-grid{min-width:100%}.fe-grid th,.fe-grid td{vertical-align:top}.fe-grid .fe-org{min-width:220px;text-align:left}
.fe-grid select{font:inherit;font-size:12px;max-width:100%;width:100%;margin:2px 0}.fe-grid .fe-org-top{display:flex;align-items:center;gap:4px}.fe-grid .fe-org-top select{font-weight:600}
.fe-grid .fe-addlink{color:var(--faint)}.fe-link{margin:4px 0 2px;padding-left:6px;border-left:1px solid var(--line-soft);font-weight:400}.fe-link label{display:block}.fe-link select{width:auto;max-width:150px}
.fe-grid .fe-name{font:inherit;font-size:12px;background:rgba(255,255,255,.03);border:1px solid var(--line-soft);border-radius:6px;color:inherit;padding:4px 6px;width:17ch}
.fe-cell .tag{font-size:10px}.fe-cell .fe-how{width:100%;font:inherit;font-size:11px;background:rgba(255,255,255,.03);border:1px solid var(--line-soft);border-radius:6px;color:inherit;padding:3px 6px;margin-top:2px}
.fe-cell .fe-note{display:block;font-size:10.5px;margin-top:2px}.fe-foot th,.fe-foot td{border-top:1px solid var(--line-soft)}
.fe-grid tbody th{width:auto}.fe-grid tbody th .fe-name{color:var(--strong)}.fe-grid thead th.fe-org{color:var(--strong)}
.fe-pick{display:flex;align-items:center;gap:4px}.fe-pick select{flex:1;min-width:0}.fe-pick .tag{flex:none}
.fe-links summary{cursor:pointer;font-weight:400;margin:4px 0 2px;line-height:1.35}.fe-links[open] summary{color:var(--strong)}
@media(max-width:700px){.org-table.fe-grid{display:table}.org-table.fe-grid thead{display:table-header-group}.org-table.fe-grid tbody{display:table-row-group}.org-table.fe-grid tr{display:table-row}.org-table.fe-grid tr>*{padding:4px 4px}.fe-grid .fe-org{min-width:170px}}
.org-table tr.fo-group>th{font-size:11px;font-weight:600;color:var(--strong);padding-top:14px;border-bottom:1px solid var(--line-soft);text-transform:none}.fo-pronta{color:#fde047;border-color:rgba(253,224,71,.4)}
.fo-clist{margin:4px 0 8px}.fo-clist td,.fo-clist th{padding:4px 10px}.fo-clist tbody th{width:auto;font-weight:600;color:var(--strong)}.fo-clist-sum{margin:6px 0 2px}
.fo-clist .num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.fo-clist td:last-child .m{font-size:11px}
.fo-dlist{margin:6px 0 10px}.fo-dlist summary{cursor:pointer;font-size:12px;padding:4px 0}.fo-dlist .org-wrap{max-height:280px;overflow:auto}
.fo-dmode{margin:0;flex:none}.fo-struct{margin-top:8px;max-height:calc(100vh - 220px);overflow:auto}
/* Fonte › Supabase (0.66): todas as tabelas do banco, com as primeiras linhas e o resumo das colunas */
.db-bento{grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:auto;margin-bottom:12px}
.db-hero{grid-column:1/-1;flex-direction:row;align-items:flex-start;gap:18px}.db-hero .lh-body{display:flex;flex-direction:column;gap:10px;min-width:0;flex:1}
.db-tile{cursor:pointer}.db-tile .v{font-size:24px}.db-tile.on{box-shadow:inset 0 -2px 0 var(--accent)}
.db-item{display:flex;gap:6px;align-items:center;width:100%;background:none;border:1px solid transparent;border-radius:8px;padding:5px 6px;color:var(--text);text-align:left;font-size:12px}
.db-item:hover{border-color:var(--line)}.db-item.active{border-color:var(--accent)}
.db-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.db-tname{display:block;font-size:10px}.db-num{white-space:nowrap;font-size:11px}
.db-detail{display:flex;flex-direction:column;gap:8px;min-width:0}.db-detail-bar{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.db-all{display:flex;align-items:center;gap:6px;font-size:12px}.db-sub{margin-top:6px}
.db-stats,.db-rows{max-height:420px;overflow:auto}.db-rows td,.db-rows th{white-space:nowrap;font-size:11px;max-width:280px;overflow:hidden;text-overflow:ellipsis}
.db-stats td.num,.db-stats th.num{text-align:right}
@media (max-width:800px){.db-bento{grid-template-columns:repeat(2,minmax(0,1fr))}}
.db-owner{display:block;font-size:10px;color:var(--faint)}.db-pick{display:flex;flex-direction:row;min-height:0;gap:14px;flex-wrap:wrap;align-items:flex-end;margin-bottom:12px}
.db-pick label{display:flex;flex-direction:column;gap:4px;font-size:11px;color:var(--muted);min-width:0;flex:1 1 260px}.db-pick select{width:100%}
.db-owners{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.db-chip{background:none;border:1px solid var(--line);border-radius:999px;padding:3px 9px;font-size:11px;color:var(--text)}
.db-chip:hover{border-color:var(--accent)}.db-chip.on{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}
.db-plus{display:inline-block;width:12px;color:var(--accent);font-weight:600}
.db-tree{list-style:none;margin:2px 0 6px 14px;padding:0 0 0 8px;border-left:1px solid var(--line)}
.db-leaf{display:flex;gap:8px;align-items:flex-start;width:100%;background:none;border:1px solid transparent;border-radius:8px;padding:4px 6px;color:var(--text);text-align:left;font-size:11px}
button.db-leaf:hover{border-color:var(--line)}button.db-leaf.on{border-color:var(--accent)}
.db-leaf-k{flex:0 0 46px;color:var(--faint);font-size:10px;padding-top:1px}.db-leaf-v{flex:1;min-width:0;overflow-wrap:anywhere}
/* 0.66.5 (Diego): tabela que vem de mais de uma pasta: || verde entre as pastas */
.db-leaf-v .db-sep{display:inline-block;margin:0 6px;color:#4ade80;font-weight:700;letter-spacing:1px}
.org-table>tbody>tr>th[scope=row]{min-width:210px}/* 0.66.7: a coluna Base não espreme o nome e a explicação */
/* 0.66.9: botão Auditado em cada tabela do Fonte › Supabase (à direita do nome) */
.db-li{display:flex;flex-wrap:wrap;align-items:flex-start;gap:4px}.db-li>.db-item{flex:1;min-width:0;width:auto}.db-li>.db-audit{order:2;margin-top:5px}.db-li>.db-tree{order:3;flex-basis:calc(100% - 24px)}
.db-audit{background:none;border:1px solid var(--line);border-radius:999px;padding:2px 8px;font-size:10px;color:var(--faint);white-space:nowrap;cursor:pointer}
.db-audit:hover,.db-audit:focus-visible{color:var(--strong);border-color:var(--accent)}
.db-audit.on{color:#4ade80;border-color:rgba(74,222,128,.45)}.db-audit.big{font-size:11px;padding:3px 10px;margin-left:auto}
.db-audit:disabled{opacity:.5;cursor:default}
/* 0.66.10: Ativar / Inativar leitura no detalhe da tabela do Fonte › Supabase */
.db-read{margin:8px 0 4px;padding:8px 10px;border-radius:10px;background:rgba(255,255,255,.025)}.db-read .k{margin:0 0 4px;font-size:11px;color:var(--faint)}
.db-read ul{list-style:none;margin:0;padding:0;display:grid;gap:4px}.db-read li{display:flex;align-items:center;gap:10px;font-size:12px}
.db-read-n{flex:1;min-width:0}.db-read li.off .db-read-n{color:var(--faint)}.db-read li button{font-size:11px;padding:2px 10px}
/* 0.66.11: Carregar e Ativar/Inativar leitura por tabela no Fonte › Supabase (linha embaixo do nome) */
.db-acts{order:3;flex-basis:100%;display:flex;gap:4px;padding:0 0 4px 6px}.db-li>.db-tree{order:4}
.db-act{background:none;border:1px solid var(--line);border-radius:999px;padding:1px 8px;font-size:10px;color:var(--faint);white-space:nowrap;cursor:pointer}
.db-act:hover:not(:disabled),.db-act:focus-visible{color:var(--strong);border-color:var(--accent)}.db-act:disabled{opacity:.45;cursor:default}
.db-act.off,.db-act.part{color:#fbbf24;border-color:rgba(251,191,36,.35)}.db-act.busy{color:var(--accent)}
.db-loadmsg{margin:6px 0 0}
/* 0.66.12: círculo com percentual no botão Carregar do Fonte › Supabase */
.db-act.busy,#db-loadall{display:inline-flex;align-items:center;gap:5px}
.db-act.on{color:#4ade80;border-color:rgba(74,222,128,.35)}.db-read li .db-act{font-size:11px;padding:2px 12px}/* 0.66.14 */

/* 0.66.17 (Diego: "o estilo cyberpunk não ficou legal para o modelo que temos; vamos só suavizar"): volta o aviso da 0.28.9 (anel,
   texto, percentual e barra soltos sobre o véu, sem caixa), com tudo mais lento e macio: anel mais fino e devagar, sem o miolo pulsando
   forte, véu e entrada com fade mais longo, barra andando com desaceleração. */
.loading-veil{position:fixed;inset:0;z-index:90;display:grid;place-items:center;pointer-events:none;background:rgba(8,11,19,0);transition:background .45s var(--ease-out),backdrop-filter .45s var(--ease-out)}
.loading-veil.on{background:rgba(8,11,19,.45);pointer-events:auto;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)} /* 0.33.4: enquanto aparece, nada responde ao clique */
.loading-card{display:flex;flex-direction:column;align-items:center;gap:6px;padding:46px 70px;background:radial-gradient(closest-side,rgba(8,11,19,.9) 0%,rgba(8,11,19,.7) 55%,rgba(8,11,19,0) 100%);opacity:0;transform:translateY(4px);transition:opacity .45s var(--ease-out),transform .45s var(--ease-out)}
.loading-veil.on .loading-card{opacity:1;transform:none}
.loading-card b{font-size:13px;font-weight:500;color:var(--strong)}
.loading-card b,.loading-pct,.loading-sub{text-shadow:0 1px 8px rgba(0,0,0,.8)}
.loading-ring{position:relative;width:44px;height:44px;margin-bottom:6px}
.loading-ring i{position:absolute;inset:0;border-radius:50%;border:2px solid rgba(255,255,255,.05);border-top-color:var(--accent);animation:ld-spin 1.8s cubic-bezier(.45,.05,.55,.95) infinite}
.loading-ring i:nth-child(2){inset:8px;border-top-color:rgba(94,234,212,.8);animation-duration:2.6s;animation-direction:reverse}
.loading-ring i:nth-child(3){inset:17px;border:0;background:radial-gradient(circle,rgba(255,210,30,.85),rgba(255,210,30,.25) 70%);animation:ld-breathe 2.6s ease-in-out infinite}
.loading-pct{font-size:20px;font-weight:400;color:var(--accent);font-variant-numeric:tabular-nums;line-height:1.1}
.loading-bar{display:block;width:150px;height:3px;border-radius:2px;background:rgba(255,255,255,.06);overflow:hidden}
.loading-bar i{display:block;height:100%;width:0;border-radius:2px;background:linear-gradient(90deg,rgba(94,234,212,.8),var(--accent));transition:width .6s cubic-bezier(.22,1,.36,1)}
.loading-sub{font-size:11px;color:var(--faint);max-width:260px;text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@keyframes ld-spin{to{transform:rotate(360deg)}}
@keyframes ld-breathe{50%{transform:scale(.8);opacity:.55}}
@media(prefers-reduced-motion:reduce){.loading-ring i{animation:none}.loading-card,.loading-veil,.loading-bar i{transition:none}}
.db-pick.big{margin-left:0}.db-pick.on{color:var(--accent);border-color:rgba(255,210,30,.45)}
/* 0.66.16: última data carregada ao lado do Carregar (Fonte › Supabase). */
.db-last{font-size:10px;white-space:nowrap;align-self:center}
.db-acts{flex-wrap:wrap;align-items:center}
.db-rowmsg{flex-basis:100%;font-size:10px;line-height:1.35;padding:2px 2px 0}
.db-range{display:inline-flex;align-items:center;gap:6px;font-size:11px;color:var(--muted)}.db-range input{font-size:11px;padding:3px 6px}
/* 0.67.0: Regra de tempo da carga (tempo.js): lista de tabelas à esquerda, caixinhas de período à direita. */
.lw-intro{margin-bottom:12px}.lw-intro .m{font-size:11px;line-height:1.5}
.lw-grid{display:grid;grid-template-columns:minmax(260px,1fr) 2fr;gap:12px;align-items:start;margin-bottom:18px}
@media(max-width:900px){.lw-grid{grid-template-columns:1fr}}
.lw-list{max-height:70vh;overflow:auto}.lw-groups,.lw-groups ul,.lw-drop{list-style:none;margin:0;padding:0}
.lw-group{margin:8px 0}.lw-group>.k{display:block;font-size:11px;margin-bottom:4px}
.lw-boxes{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;align-items:start}
.lw-chip{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 8px;padding:6px 8px;margin:3px 0;border-radius:8px;background:rgba(255,255,255,.025);cursor:grab;font-size:12px}
.lw-chip:hover{background:rgba(255,210,30,.06)}.lw-chip.dragging{opacity:.4}
.lw-name{color:var(--strong)}.lw-src{font-size:10px;flex-basis:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lw-x{margin-left:auto;background:none;border:0;color:var(--faint);cursor:pointer;font-size:13px;line-height:1;padding:0 2px}.lw-x:hover{color:var(--strong)}
.lw-box{min-height:150px;transition:background .2s}.lw-box.over,.lw-list.over{background:rgba(255,210,30,.05)}
.lw-head{display:flex;align-items:center;gap:6px}.lw-title{flex:1;min-width:0;background:none;border:0;border-bottom:1px solid var(--line);color:var(--strong);font-size:13px;padding:2px 0}
.lw-rule{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:8px 0 4px;font-size:11px}.lw-rule input[type=number]{width:56px}
.lw-rule select,.lw-rule input{font-size:11px;padding:3px 6px}
.lw-when{font-size:10px;margin:0 0 6px}.lw-empty{font-size:11px;padding:10px 4px}
.lw-add{align-self:start;justify-self:start}
.dp-api-title{margin:6px 0 8px;font-size:12px}
.db-win{font-size:10px;white-space:nowrap;align-self:center;color:var(--accent)}
.lw-q{width:100%;margin:6px 0 8px;font-size:12px;padding:5px 8px}
.lw-move{cursor:grab;color:var(--muted);font-size:14px;padding:0 2px;user-select:none}.lw-move:hover{color:var(--accent)}
.lw-arrow{padding:0 3px;font-size:14px;line-height:1}.lw-box.dragging{opacity:.45}
.lw-send{margin-left:auto;font-size:10px;padding:1px 4px;max-width:130px;background:transparent;color:var(--muted);border:1px solid var(--line);border-radius:6px;cursor:pointer}.lw-send:hover{color:var(--accent)}
.lw-fold{padding:0 2px;font-size:12px;color:var(--muted);min-width:14px}.lw-fold:hover{color:var(--accent)}
.lw-shut{font-size:11px;margin:4px 0 0;padding:6px 4px}.lw-box:has(.lw-shut){min-height:0}
/* 0.68.0 · padrão visual trazido do Pro Service (1.22.13 a 1.22.17; Diego: "essa ideia tem como ir para o aplicativo da ds,
   sobre o padrão das tabelas e dos cabeçalho menu que arrumamos hoje?").
   Tabelas sem cara de Excel: o cabeçalho some no fundo do quadro (continua opaco para tapar as linhas ao rolar), na mesma
   fonte do resto, sem caixa alta; cada linha vira uma faixa arredondada com respiro, sem pontilhados nem zebra. */
.table-wrap{background:#0f141f;box-shadow:none;padding:4px 12px 10px}
.table-wrap table{border-collapse:separate;border-spacing:0 5px}
.table-wrap thead th{background-color:#0f141f!important;border-bottom:0!important;font-size:12px;font-weight:500;letter-spacing:0;text-transform:none;color:#97a1b4}
.table-wrap thead tr.tt-total>th,.table-wrap thead tr.tt-total>td{background-color:#0f141f!important;font-size:12.5px;font-weight:600;letter-spacing:0;text-transform:none}
.table-wrap tbody>tr>td,.table-wrap tbody>tr>th{border-bottom:0!important;background:rgba(255,255,255,.035)}
.table-wrap tbody tr:nth-child(even)>td{background:rgba(255,255,255,.035)}
.table-wrap tbody tr>:first-child{border-radius:12px 0 0 12px}.table-wrap tbody tr>:last-child{border-radius:0 12px 12px 0}
.table-wrap tbody tr:hover>td,.table-wrap tbody tr:hover>th{background:rgba(255,255,255,.07)}
.table-wrap tbody tr.sel>td{background:rgba(255,210,30,.08)}
.table-wrap tfoot td{background-color:#0f141f}
/* Botões, abas, datas e listas de escolha em pílula, sem contorno, com fundo suave que clareia ao passar o mouse. */
.outline,.dp-field,details.ms summary,.company select,header select{border-color:transparent!important;border-radius:999px;background:rgba(255,255,255,.055);box-shadow:none}
.outline{min-height:32px;padding:0 14px;display:inline-flex;align-items:center;justify-content:center;gap:8px}
.outline:hover,.dp-field:hover,details.ms summary:hover,details.ms[open] summary,.company select:hover,header select:hover{background:rgba(255,255,255,.1);box-shadow:none;color:var(--strong)}
.outline.primary{background:rgba(255,210,30,.12);color:var(--accent)}.outline.primary:hover{background:rgba(255,210,30,.2)}
.dp-field{font-family:inherit;padding:5px 12px;min-height:32px}
.dp-field[aria-expanded=true],.dp-field:focus-visible{background:rgba(255,255,255,.1);box-shadow:0 0 0 2px rgba(255,210,30,.18)}
details.ms summary{min-height:32px}
.segmented{border:0!important;border-radius:999px;background:rgba(255,255,255,.055);box-shadow:none;padding:3px}
.segmented button{border-radius:999px}
.segmented button:hover{background:rgba(255,255,255,.07)}
.segmented button.active,.segmented button[aria-pressed=true]{background:rgba(255,255,255,.13);box-shadow:none;color:#fff;filter:none}
.period-links button{border-radius:999px}
.period-links button:hover{background:rgba(255,255,255,.07)}
.period-links button.active{background:rgba(255,210,30,.14);color:var(--accent);box-shadow:none}
/* Menu lateral no mesmo padrão: item ativo só com fundo suave, sem relevo nem sombra. */
aside nav button.active,aside nav .mod.active>.mod-btn{background:rgba(255,255,255,.08);box-shadow:none;border-radius:12px}
aside nav .sub-btn.active{background:rgba(255,255,255,.06)}
aside nav button:hover,aside nav .mod-btn:hover,aside nav .sub-btn:hover,#rail-pin:hover,#rail-theme:hover{background:rgba(255,255,255,.05);border-radius:12px}
/* Passar o mouse num nome que se repete na coluna destaca todos os iguais em verde limão (ui.js). */
tbody td.same-hl,tbody td.same-hl *{color:#c6f432!important}
tbody td.same-hl{text-shadow:0 0 12px rgba(198,244,50,.35);transition:color .12s}
/* 0.68.0 · também do Pro Service 1.22.18: chips de filtro e de status, listas de escolha e busca em pílula, sem contorno,
   com fundo suave; o escolhido fica mais claro. */
.lc-chip,.db-chip,.sp-chip,.sp-xfchip,.tt-fchip{border-color:transparent!important;background:rgba(255,255,255,.055)}
.lc-chip:hover,.db-chip:hover,.sp-xfchip:hover{background:rgba(255,255,255,.1)}
.tt-fchip,.sp-xfchip{background:rgba(255,210,30,.12)}
select,.company select,header select{border-color:transparent;border-radius:999px;background-color:rgba(255,255,255,.055);min-height:32px;padding:0 12px}
select:hover{background-color:rgba(255,255,255,.1)}
.tt-search input,input[type=search]{border-color:transparent;border-radius:999px;background:rgba(255,255,255,.055);min-height:32px;padding:0 14px}
.tt-search input:focus,input[type=search]:focus,select:focus{border-color:transparent;outline:1px solid rgba(255,210,30,.45);outline-offset:0;box-shadow:none}
td select,.lw-rule select,.lw-send{min-height:0;padding:3px 10px}
/* Etiquetas de situação (Nunca carregado, Em dia, Manual…) também em pílula sem contorno, com um fundo da própria cor. */
.tag{border-color:transparent!important;border-radius:999px!important;background:color-mix(in srgb,currentColor 13%,transparent);padding:2px 9px}
button.tag:hover{background:color-mix(in srgb,currentColor 22%,transparent)}
/* Barra de filtros do Padrão Power BI (Situação, Status repasse, Filial, Canal) sem o cartão escuro em volta, como os chips de
   status do Pro Service; o campo MC ideal em pílula. */
.card.pbi-slicers{background:none!important;clip-path:none;border:0;box-shadow:none;padding:4px 0;margin:8px 0 12px}
.card.pbi-slicers::before,.card.pbi-slicers::after{display:none}
.card.pbi-slicers:hover{transform:none;box-shadow:none}
.pbi-slicers .mg-in,.pbi-kpi .mg-in{border-color:transparent!important;border-radius:999px;background:rgba(255,255,255,.055)!important;min-height:32px;padding:0 12px;box-shadow:none}
.table-wrap.cash-table.daily td.cat-name{background:#161b24}
.db-auto{font-size:11px;margin:6px 0 0}
.db-auto+.db-auto{margin-top:2px}
.db-auto.warn{color:var(--accent)}
/* 0.70.3: Marcar (várias marcações por tabela) e o filtro pela marcação no Fonte › Supabase. Aberto, o Marcar desce para uma
   linha inteira com as opções em pílulas (a lista rola e cortaria um menu flutuante). */
.db-li>.db-tags{order:2;margin-top:5px}.db-li>.db-tags[open]{order:3;flex-basis:100%;display:flex;flex-wrap:wrap;align-items:center;gap:4px;padding:2px 0 6px 6px;margin-top:0}
.db-tags.big{margin-left:auto;position:relative}
.db-tags>summary{list-style:none;display:inline-block}.db-tags>summary::-webkit-details-marker{display:none}
.db-tags[open]>summary{color:var(--strong);border-color:var(--accent)}
.db-tagmenu{display:flex;flex-wrap:wrap;gap:4px}
.db-tags.big .db-tagmenu{position:absolute;right:0;top:calc(100% + 4px);z-index:20;flex-direction:column;min-width:180px;padding:6px;border-radius:12px;background:var(--card);box-shadow:0 10px 28px rgba(0,0,0,.45)}
.db-tagmenu label{display:flex;align-items:center;gap:6px;padding:2px 9px;border-radius:999px;background:rgba(255,255,255,.04);font-size:10.5px;color:var(--muted);cursor:pointer;white-space:nowrap}
.db-tagmenu label:hover{color:var(--strong)}.db-tagmenu label:has(input:checked){background:rgba(74,222,128,.12);color:#4ade80}
.db-tagmenu input{accent-color:#4ade80;margin:0;width:11px;height:11px}
.db-tagbar{display:flex;flex-wrap:wrap;gap:4px;margin:0 0 8px}
.db-tagf{background:rgba(255,255,255,.04);border:0;border-radius:999px;padding:3px 10px;font-size:10.5px;color:var(--muted);cursor:pointer;white-space:nowrap}
.db-tagf:hover,.db-tagf:focus-visible{color:var(--strong)}
.db-tagf.on{background:rgba(255,210,30,.14);color:var(--accent)}
.db-tagf .m{font-size:10px;margin-left:2px}
/* 0.70.4 (Diego: "só ficou desalinhada aqui"): no título do detalhe, Marcar, Ver na Base de dados e o grupo na mesma linha.
   O botão Ver na Base de dados herdava a margem de baixo e o display:flex da barra Tabela e cliente (.db-pick). */
.dp-list-head>.db-tags.big{display:inline-flex;align-items:center}
.dp-list-head>.db-tags.big>summary.db-audit.big{margin-left:0}
button.db-audit.db-pick{display:inline-flex;align-items:center;margin-bottom:0;min-height:0;gap:0;flex-wrap:nowrap}
button.db-audit.db-pick.big{margin-left:0}
/* 0.71.0 Movimento (Diego: "algo que demonstrasse movimento, não uma troca chapada de telas e menus"). motion.js liga as classes.
   Troca de tela: a tela velha esmaece e sobe um pouco, a nova entra por baixo. Cartões em cascata (--mv-d), barras crescem,
   linhas se desenham, números contam. Destaque das abas e do menu desliza (.mv-glide). Fundo com brilho que passeia devagar.
   Animações só com fill-mode backwards: no fim nada fica preso e o levantar do cartão ao passar o mouse continua valendo. */
@keyframes mv-rise{from{opacity:0;transform:translateY(14px) scale(.985)}to{opacity:1;transform:none}}
@keyframes mv-bar{from{transform:scaleY(0)}to{transform:scaleY(1)}}
@keyframes mv-fade{from{opacity:0}to{opacity:1}}
@keyframes mv-drop{from{opacity:0;transform:translateY(-6px) scale(.98)}to{opacity:1;transform:none}}
@keyframes mv-pop{from{opacity:0;transform:translateY(10px) scale(.97)}to{opacity:1;transform:none}}
@keyframes mv-out{to{opacity:0;transform:translateY(-10px)}}
@keyframes mv-in{from{opacity:0;transform:translateY(16px)}}
@keyframes mv-aurora{0%{transform:translate3d(0,0,0) rotate(0)}50%{transform:translate3d(-6%,4%,0) rotate(8deg)}100%{transform:translate3d(4%,-3%,0) rotate(-6deg)}}
@keyframes mv-arrive{from{background-color:transparent;box-shadow:none}}
.mv-in{animation:mv-rise .62s var(--ease-out) var(--mv-d,0ms) backwards}
svg .mv-bar{transform-box:fill-box;transform-origin:50% 100%;animation:mv-bar .7s var(--ease-out) backwards}
.mv-in svg .area,.mv-in svg [fill^="url"]:not(rect){animation:mv-fade .9s ease .25s backwards}
.mv-glide{position:fixed;left:0;top:0;z-index:40;pointer-events:none;border-radius:12px;background:rgba(255,255,255,.12);box-shadow:0 0 18px -4px rgba(255,210,30,.25)}
.mv-glide.round{border-radius:999px}
.mv-arrive{animation:mv-arrive .42s ease backwards}
/* Troca de tela: o conteúdo sai subindo e o novo entra por baixo; o resto (topo, aviso de onde veio) só troca suave. */
#content{view-transition-name:mv-content}
::view-transition-old(root){animation:mv-fade .16s ease-in reverse both}
::view-transition-new(root){animation:mv-fade .3s ease .04s backwards}
::view-transition-old(mv-content){animation:mv-out .18s ease-in both}
::view-transition-new(mv-content){animation:mv-in .38s var(--ease-out) .06s backwards}
::view-transition-group(mv-content){animation-duration:.38s}
/* Janelas, cartões ao passar o mouse e listas que abrem: entram, em vez de aparecer de uma vez. */
.hover-card:not([hidden]){animation:mv-drop .16s var(--ease-out)}
dialog[open],.plan-modal .modal-box{animation:mv-pop .26s var(--ease-out)}
dialog[open]::backdrop,.plan-modal{animation:mv-fade .2s ease}
details[open]>:not(summary){animation:mv-drop .2s var(--ease-out)}
aside .label{transition:opacity .2s ease .04s,transform .25s var(--ease-out)}
aside:not(.hot) .label{transform:translateX(-6px)}
aside.hot .label,body.rail-pinned aside .label,body.rail-open aside .label{transform:none}
/* Fundo vivo: dois brilhos bem fracos (amarelo e ciano) que passeiam devagar atrás de tudo. */
body::before{content:"";position:fixed;inset:-20%;z-index:-1;pointer-events:none;background:radial-gradient(38% 32% at 78% 12%,rgba(255,210,30,.05),transparent 70%),radial-gradient(42% 36% at 18% 88%,rgba(45,212,191,.045),transparent 70%),radial-gradient(30% 28% at 50% 50%,rgba(124,58,237,.03),transparent 70%);animation:mv-aurora 38s ease-in-out infinite alternate}
@media (prefers-reduced-motion:reduce){
 .mv-in,svg .mv-bar,.mv-in svg .area,.mv-in svg [fill^="url"]:not(rect),.mv-arrive,.hover-card:not([hidden]),dialog[open],.plan-modal .modal-box,dialog[open]::backdrop,.plan-modal,details[open]>:not(summary),body::before{animation:none}
 .mv-glide{display:none}
 #content{view-transition-name:none}
 aside .label,aside:not(.hot) .label{transform:none;transition:opacity .12s}
}
/* 0.71.8: marcador "agora" no Acumulado dia a dia do mês em aberto (dia de hoje ou dia cortado nos dados, fora da linha). */
.pbi-accl .nowl{stroke:#ffd21e;stroke-width:1.2;stroke-dasharray:3 4;stroke-opacity:.8}
.pbi-accl .nowt{fill:#fde68a;fill-opacity:.9}
/* 0.71.9: janela da conta do faturamento provável (auditoria). */
.proj-dlg{width:min(640px,calc(100vw - 32px))}
.proj-table{width:100%;font-size:12.5px;border-collapse:separate;border-spacing:0 3px}
.proj-table td{padding:6px 10px;vertical-align:top}.proj-table td.m{color:var(--faint);font-size:11.5px;white-space:normal;min-width:220px}.proj-table td:first-child{white-space:nowrap}
.proj-table tr.sub td{color:#fcd34d;font-size:12px;padding-top:10px}.proj-table tr.muted td{opacity:.65}
.proj-table tr.tot td{font-weight:600;color:#fde68a;border-top:1px solid rgba(253,230,138,.25)}
.acc-pill.pbi-click{cursor:pointer}.acc-pill.pbi-click:hover{border-color:rgba(253,230,138,.5)}
/* 0.71.11: venda do dia acima do valor do acumulado, só ao passar o mouse ou no dia escolhido. */
.pbi-accl .dvt{fill:#cbd5e1;opacity:0;transition:opacity .15s;pointer-events:none}.pbi-accl .dvt.up{fill:#5eead4}.pbi-accl .dvt.down{fill:#fda4af}
.pbi-accl .pt:hover .dvt,.pbi-accl .pt.sel .dvt{opacity:1}
@media (prefers-reduced-motion:reduce){.pbi-accl .dvt{transition:none}}
/* 0.71.13: Venda de cada dia como 3º gráfico do Acumulado; Ritmo e equilíbrio (os dois círculos do BI) no lugar do Venda por dia. */
.pbi-ring-card{padding:14px 18px;display:flex;flex-direction:column}
.pbi-ring-card .sp-head{display:flex;justify-content:space-between;gap:12px;align-items:baseline}.pbi-ring-card .m{font-size:11px;color:var(--faint)}
.rg-duo{display:grid;grid-template-columns:1fr 1fr;gap:14px;flex:1;align-items:start;padding-top:4px}
.rg-pane{display:flex;flex-direction:column;align-items:center;min-width:0}.rg-t{font-size:11px;color:#cbd5e1;margin:2px 0 0;align-self:flex-start}
.rdial{width:100%;max-width:300px;display:block}.rgauge{width:100%;max-width:310px;display:block;margin-top:18px}
.rdial .rd{stroke-linecap:round}.rdial .rd.up{stroke:#5eead4}.rdial .rd.down{stroke:#c4b5fd;stroke-opacity:.85}
.rdial .rd.part{stroke:#ffd21e;stroke-dasharray:2 2}.rdial .rd.fut{stroke:#99f6e4;stroke-opacity:.28;stroke-dasharray:2 3}
.rdial .rd:hover{stroke-opacity:1;filter:drop-shadow(0 0 4px #2dd4bf)}
.rdial .rdavg{fill:none;stroke:#ffd21e;stroke-opacity:.45;stroke-width:.8;stroke-dasharray:3 4}
.rdial .rdtrack{fill:none;stroke:#ffffff0f;stroke-width:3}.rdial .rdel{fill:none;stroke:#ffd21e;stroke-width:3;stroke-linecap:round}
.rdial .rdt{fill:#64748b}.rdial .rdk{fill:var(--faint)}.rdial .rdv{fill:var(--accent);font-weight:600}
.rdial .rdp.up{fill:#5eead4}.rdial .rdp.down{fill:#fda4af}
.rgauge .gbg{fill:none;stroke-width:14;stroke-opacity:.13;stroke-linecap:round}
.rgauge .gfill{fill:none;stroke-width:14;stroke-linecap:round}.rgauge .gfill.glow{stroke-width:22;opacity:.25;filter:blur(6px)}
.rgauge .gprov{fill:none;stroke:#e2e8f0;stroke-opacity:.35;stroke-width:14;stroke-dasharray:3 3}
.rgauge .gtk{stroke:#ffffff33;stroke-width:1}.rgauge .gideal{stroke:#f8fafc;stroke-width:2.4;stroke-linecap:round}.rgauge .gidt{fill:#f8fafc}
.rgauge .gneedle{stroke-width:2.2;stroke-linecap:round}.rgauge .gneedle.up{stroke:#5eead4}.rgauge .gneedle.down{stroke:#fda4af}.rgauge .ghub.up{fill:#5eead4}.rgauge .ghub.down{fill:#fda4af}.rgauge .gnt.up{fill:#5eead4}.rgauge .gnt.down{fill:#fda4af}
.rgauge .gpct{font-weight:600}.rgauge .gpct.up{fill:#5eead4}.rgauge .gpct.down{fill:#fda4af}.rgauge .gk{fill:var(--faint)}
.rg-stats{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin-top:4px}
.rg-stats>span{display:flex;flex-direction:column;align-items:center}.rg-stats b{font-size:13px;font-weight:600;color:#e5e7eb}.rg-stats b.up{color:#5eead4}.rg-stats b.down{color:#fda4af}.rg-stats small{font-size:10px;color:var(--faint)}
.rg-verdict{font-size:11.5px;margin:8px 0 0;text-align:center;padding:5px 12px;border-radius:999px}.rg-verdict.up{color:#5eead4;background:#2dd4bf12}.rg-verdict.down{color:#fda4af;background:#fb718512}
.rg-empty{justify-content:center;text-align:center;padding:40px 10px}.rg-empty b{color:var(--accent)}
@media (prefers-reduced-motion:no-preference){.rdial .rdrays .rd{animation:rd-grow .7s cubic-bezier(.2,.8,.2,1) both;transform-box:view-box;transform-origin:150px 150px}
 .rgauge .gfill{stroke-dasharray:600;animation:g-draw 1.1s cubic-bezier(.2,.8,.2,1) both}.rgauge .gneedle,.rgauge .ghub,.rgauge .gnt{transform-box:view-box;transform-origin:150px 150px;animation:g-needle 1.2s cubic-bezier(.3,1.4,.5,1) both}}
@keyframes rd-grow{from{transform:scale(.72);opacity:0}to{transform:scale(1);opacity:1}}
@keyframes g-draw{from{stroke-dashoffset:600}to{stroke-dashoffset:0}}
@keyframes g-needle{from{transform:rotate(-90deg)}to{transform:rotate(0)}}
@media (max-width:600px){.rg-duo{grid-template-columns:1fr}}
.pbi-accl .ddot{fill:#99f6e4;stroke:#0e1422;stroke-width:1}.pbi-accl .ddot.hi{fill:var(--accent)}
.pbi-accl .dval{fill:#cbd5e1}.pbi-accl .dval.max{fill:var(--accent);font-weight:600}
.pbi-accl .dval.hv{opacity:0;transition:opacity .15s}.pbi-accl .pt:hover .dval.hv,.pbi-accl .pt.sel .dval.hv{opacity:1}
/* 0.71.15: legenda do Relógio do mês. */
.rg-t small{font-size:10px;color:var(--faint);margin-left:4px}
.rd-leg{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:4px 12px;font-size:10px;color:var(--faint);margin:0 0 4px}.rd-leg>span{white-space:nowrap;display:inline-flex;align-items:center;gap:5px}
.rd-leg .lg{display:inline-block;width:12px;height:4px;border-radius:2px}
.rd-leg .lg.up{background:#5eead4}.rd-leg .lg.down{background:#c4b5fd}.rd-leg .lg.part{background:#ffd21e}
.rd-leg .lg.fut{background:repeating-linear-gradient(90deg,#99f6e480 0 2px,transparent 2px 4px)}.rd-leg .lg.el{height:2px;background:#ffd21e;border-radius:1px}
/* 0.71.16: dia pela metade na venda de cada dia do Acumulado. */
.pbi-accl .dpart{fill:none;stroke:#ffd21e;stroke-width:1.6;stroke-dasharray:3 4;stroke-opacity:.8}
.pbi-accl .ddot.part{fill:none;stroke:#ffd21e;stroke-width:1.6}.pbi-accl .dval.part{fill:#fde68a}
/* 0.71.17: Início como página de manchetes. */
.home.heads{display:flex;flex-direction:column;gap:16px}
.home.heads.cf-host{display:block}.home.heads>.cf-main{display:flex;flex-direction:column;gap:16px}/* 0.192.4: painel de Filtros no Início */
.home-hero.hl-hero{grid-template-columns:1fr}
.hl-hero .bubble h2{margin:2px 0 8px}
.hl-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.hl-list li{position:relative;font-size:15px;line-height:1.4;padding:6px 30px 6px 14px;border-radius:12px;background:#ffffff06;cursor:pointer;transition:background .15s,transform .15s}
.hl-list li::before{content:'';position:absolute;left:0;top:9px;bottom:9px;width:3px;border-radius:2px;background:#5eead4}
.hl-list li.down::before{background:#fb7185}
.hl-list li:hover{background:#ffd21e10;transform:translateX(2px)}.hl-list li b{font-weight:600}
.hl-list b.up{color:#5eead4}.hl-list b.down{color:#fda4af}
.hl-go{position:absolute;right:12px;top:50%;transform:translateY(-50%);color:var(--faint);font-size:13px}
.hl-card{padding:14px 18px;display:flex;flex-direction:column;gap:6px}
.hl-card .sp-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px}.hl-card .m{font-size:11px;color:var(--faint)}
.hl-card .rg-pane{width:100%}.hl-card .rg-pane>.rg-t:not(:has(small)){display:none}
.hl-empty p{font-size:12px;color:var(--faint);margin:0}
/* 0.149.2: vendas ainda chegando ou demorando: o cartão espera sozinho, o resto do Início já aparece */
.hl-wait{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.hl-wait p{flex:1;min-width:160px}
.hl-cash-nums{display:flex;gap:22px;flex-wrap:wrap;margin-top:4px}
.hl-cash-nums>span{display:flex;flex-direction:column}.hl-cash-nums b{font-size:22px;font-weight:600;color:#e5e7eb}.hl-cash-nums b.up{color:#5eead4}.hl-cash-nums b.down{color:#fda4af}.hl-cash-nums small{font-size:10.5px;color:var(--faint)}
.hl-spark{margin-top:6px}.hl-spark .spark{width:100%;height:110px;display:block}
.hl-spark .axis{display:flex;justify-content:space-between;font-size:10px;color:var(--faint);margin-top:2px}.hl-spark .axis .now{color:var(--accent)}
.hl-range-k{font-size:11px;color:#cbd5e1;margin:4px 0 0}
.hl-range{width:100%;height:46px;display:block}
.hl-range .hl-mid{stroke:var(--accent);stroke-width:1.2;vector-effect:non-scaling-stroke}
.hl-range .hl-mk{stroke-width:1.4;stroke-dasharray:2 2;vector-effect:non-scaling-stroke}.hl-range .hl-mk.p{stroke:#94a3b8}.hl-range .hl-mk.b{stroke:#f8fafc}
.hl-range-l{font-size:11.5px;color:#cbd5e1;margin:0}.hl-range-l b{color:var(--accent);font-weight:600}
.hl-marks{display:flex;gap:14px;font-size:10.5px;color:var(--faint);margin:2px 0 6px}
.hl-marks i{display:inline-block;width:10px;height:0;border-top:1.5px dashed;margin-right:5px;vertical-align:middle}.hl-marks .p i{border-color:#94a3b8}.hl-marks .b i{border-color:#f8fafc}
.hl-chance{display:grid;grid-template-columns:56px 1fr;grid-template-rows:auto 6px;column-gap:10px;align-items:center;margin-top:8px}
.hl-chance svg{grid-column:2;width:100%;height:6px}.hl-pc{grid-row:1/3;font-size:24px;font-weight:600}.hl-pc.up{color:#5eead4}.hl-pc.down{color:#fda4af}
.hl-pl{font-size:11.5px;color:#cbd5e1}
.hl-chance .track{fill:#ffffff10}.hl-chance .fill.up{fill:#2dd4bf}.hl-chance .fill.down{fill:#fb7185}
.hl-att{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;font-size:12.5px}
.hl-att li{padding:6px 12px;border-radius:10px;background:#ffffff06;cursor:pointer}.hl-att li:hover{background:#ffd21e10}
.hl-att b.down{color:#fda4af}

/* 0.71.19 · Início: cada manchete abre o seu cartão, com o gráfico da tela de onde vem */
.hl-head{margin:0 0 4px;font-size:15px;line-height:1.4;padding-left:12px;border-left:3px solid #5eead4}
.hl-head.down{border-left-color:#fb7185}.hl-head b{font-weight:600}.hl-head b.up{color:#5eead4}.hl-head b.down{color:#fda4af}
.hl-src{font-size:10.5px;color:var(--faint);font-weight:400;text-transform:none;letter-spacing:0;margin-left:6px}
.hl-sale{display:grid;grid-template-columns:minmax(220px,1fr) 2.2fr;gap:18px;align-items:center}
.hl-sale .hl-acc svg{width:100%;height:auto;display:block}
@media (max-width:860px){.hl-sale{grid-template-columns:1fr}}
.hl-card{scroll-margin:80px}
.hl-card.hl-flash{animation:hl-flash 1.2s ease-out}
@keyframes hl-flash{0%{box-shadow:0 0 0 2px #ffd21e88}100%{box-shadow:0 0 0 2px #ffd21e00}}
@media (prefers-reduced-motion:reduce){.hl-card.hl-flash{animation:none}}

/* 0.71.20 · Cadastros › MC ideal por mês; risco da MC da operação no velocímetro */
.mc-table .mc-in{width:118px;text-align:right;background:#ffffff08;border:0;border-radius:999px;padding:4px 10px;color:inherit;font:inherit;font-size:12px}
.mc-table .mc-in:focus{outline:1px solid #ffd21e66}
.mc-table .mc-bar{min-width:120px}.mc-table .mc-bar svg{width:100%;height:6px;display:block}
.mc-bar .fill.op,.mc-lg.op{fill:#5eead4;background:#5eead4}.mc-bar .fill.non,.mc-lg.non{fill:#a78bfa;background:#a78bfa}
.mc-lg{display:inline-block;width:8px;height:8px;border-radius:2px;margin:0 4px 0 10px;vertical-align:middle}
.rgauge .gop{stroke:#a78bfa;stroke-width:2;stroke-dasharray:3 2}
.rgauge .gopt{fill:#c4b5fd}
.rg-stats b.op{color:#c4b5fd}
.mc-table .mc-in.mc-pct{width:72px}

/* 0.71.24 · velocímetro: MC dos últimos meses contra a MC da operação */
.rg-trend{width:100%;max-width:420px;height:auto;display:block;margin:6px auto 0}
.rg-trend .tl{fill:none;stroke:#5eead4;stroke-width:1.2;stroke-dasharray:3 3;opacity:.8}
.rg-trend .tp{fill:#0b1220;stroke:#5eead4;stroke-width:1.4}.rg-trend .tp.cur{fill:#ffd21e;stroke:#ffd21e}
.rg-trend .tv{fill:#e5e7eb}.rg-trend .tm{fill:var(--faint)}.rg-trend .tpc{fill:var(--faint)}.rg-trend .tpc.up{fill:#5eead4}.rg-trend .tpc.down{fill:#fda4af}
.rg-trend-k{font-size:10px;color:var(--faint);text-align:center;margin:0}

/* 0.71.25 · anéis de bater o olho (faturamento provável, MC ideal, MC da operação) e histórico da MC com Ideal/Operação */
.gl-trio{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:16px}
@media (max-width:1100px){.gl-trio{grid-template-columns:1fr}}
.gl-card{padding:14px 18px;display:flex;flex-direction:column;gap:6px}
.gl-card .sp-head{display:flex;justify-content:space-between;gap:12px;align-items:baseline}.gl-card .m{font-size:11px;color:var(--faint)}
.gl-donut{grid-template-columns:1fr;gap:10px}.gl-donut svg{max-width:220px;margin:0 auto}
.gl-donut .pbi-legend li{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr) auto auto}
.gl-donut .gsw{width:8px;height:8px;margin-right:6px;vertical-align:middle;display:inline-block}
.gl-donut .g.up{color:#5eead4}.gl-donut .g.down{color:#fda4af}
.gl-foot{font-size:11.5px;margin:2px 0 0;color:var(--faint);text-align:center}.gl-foot.up{color:#5eead4}.gl-foot.down{color:#fda4af}
.gl-hist-card{margin-top:16px}
.gl-hist{width:100%;height:auto;max-height:230px;display:block}
.gl-hist-card[data-glmode="ideal"] .gl-hist.op,.gl-hist-card[data-glmode="op"] .gl-hist.ideal{display:none}
.gl-hist-card[data-glmode="ideal"] [data-glset="ideal"],.gl-hist-card[data-glmode="op"] [data-glset="op"]{background:#ffffff14;color:var(--strong)}
.gl-hist .hb{fill:#5eead455}.gl-hist .hb.down{fill:#fb718555}.gl-hist .hb.up{fill:#5eead477}.gl-hist .hb.cur{stroke:#ffd21e;stroke-width:1.2;stroke-dasharray:4 3}
.gl-hist .ht{stroke:#ffd21e;stroke-width:2}.gl-hist .hv{fill:#e5e7eb}.gl-hist .hm{fill:var(--faint)}.gl-hist .hp{fill:var(--faint)}.gl-hist .hp.up{fill:#5eead4}.gl-hist .hp.down{fill:#fda4af}
.gl-hist .htl{fill:#fde68a}
.home.heads .gl-trio,.home.heads .gl-hist-card{margin-top:0}
.hl-acc svg{width:100%;height:auto;display:block}

/* 0.71.28 · Dia da virada (MC acumulada contra a operação e o ideal) ao lado do histórico */
.gl-duo .gl-hist-card{margin-top:0}.gl-duo{margin-top:16px}.home.heads .gl-duo{margin-top:0}
.vr-chips{display:flex;gap:10px;flex-wrap:wrap}
.vr-chip{display:flex;flex-direction:column;padding:6px 14px;border-radius:14px;background:#ffffff08}
.vr-chip b{font-family:var(--num);font-size:20px;font-weight:600;color:var(--strong)}.vr-chip small{font-size:10.5px;color:var(--faint)}
.vr-chip.done b{color:#5eead4}.vr-chip.prov b{color:#ffd21e}.vr-chip.miss b{color:#fda4af}
.vr-svg{width:100%;height:auto;max-height:260px;display:block}
.vr-base{stroke:#ffffff14}.vr-ax{fill:var(--faint)}
.vr-t{stroke-width:1.2;stroke-dasharray:5 4}.vr-t.op{stroke:#a78bfa}.vr-t.id{stroke:#ffd21e}
.vr-tl{fill:var(--faint)}.vr-tl.op{fill:#c4b5fd}.vr-tl.id{fill:#fde68a}
.vr-line{fill:none;stroke-width:1.6;stroke-linejoin:round}.vr-line.glow{stroke-width:6;opacity:.18;filter:blur(3px)}
.vr-proj{fill:none;stroke:#ffd21e;stroke-width:1.3;stroke-dasharray:4 4;opacity:.8}
.vr-end{fill:#ffd21e}.vr-endl{fill:#fde68a}.vr-now{fill:#0b1220;stroke:#5eead4;stroke-width:1.6}
.vr-drop{stroke:#ffffff30;stroke-dasharray:2 3}
.vr-x.op .vr-dot{fill:#a78bfa}.vr-x.id .vr-dot{fill:#ffd21e}.vr-x .vr-pulse{fill:none;stroke-width:1.2;transform-box:fill-box;transform-origin:center;animation:vr-pulse 2.4s ease-out infinite}
.vr-x.op .vr-pulse{stroke:#a78bfa}.vr-x.id .vr-pulse{stroke:#ffd21e}.vr-day{fill:var(--strong)}
@keyframes vr-pulse{0%{transform:scale(.5);opacity:.9}100%{transform:scale(1.8);opacity:0}}
@media (prefers-reduced-motion:reduce){.vr-x .vr-pulse{animation:none;opacity:.5}}
.vr-k{text-align:center;margin:0}
.gl-card{justify-content:flex-start;align-content:start}
.gl-hist-card>p.m{margin-top:2px}

/* 0.71.29 · histórico no padrão do Por mês; Dia da virada sem cartões de data */
.gl-hist .gl-100{stroke:#ffffff26;stroke-dasharray:4 4}.gl-hist .gl-100t{fill:var(--faint)}
.gl-hist .mcp.ok rect{fill:#0f2a26;stroke:#5eead455}.gl-hist .mcp.ok text{fill:#5eead4}.gl-hist .mcp.low rect{fill:#2a1420;stroke:#fb718555}.gl-hist .mcp.low text{fill:#fda4af}
.vr-say{font-size:13px;margin:2px 0 0;line-height:1.45}.vr-say b{font-weight:600}.vr-say b.up{color:#5eead4}.vr-say b.prov{color:#ffd21e}.vr-say b.down{color:#fda4af}
.vr-pill rect{fill:#0b1220e6;stroke-width:1}.vr-pill.op rect{stroke:#a78bfa88}.vr-pill.id rect{stroke:#ffd21e88}.vr-pill text{fill:var(--strong)}.vr-pill.done text{fill:#5eead4}
/* 0.71.30 · trio alinhado (subgrid: título, manchete, anel, rodapé, período na mesma altura nos três cartões), MC com botão Ideal/Operação e MC % */
@supports (grid-template-rows:subgrid){.gl-trio{grid-template-rows:repeat(5,auto);row-gap:0}.gl-trio>.gl-card{display:grid;grid-template-rows:subgrid;grid-row:span 5;row-gap:6px;align-content:stretch}.gl-trio>.gl-card>.card-period{margin-top:0;align-self:end}}
.gl-hl:empty{min-height:0}.gl-hl .hl-head{margin:0}
.gl-fw{align-self:start}.gl-fw .gl-foot{margin:0}
.gl-meta{margin:0 0 2px;text-align:center;font-size:11px;color:var(--faint)}.gl-miss{text-align:center;padding:40px 0}
.gl-sw[data-glmode="ideal"] .gl-v.op,.gl-sw[data-glmode="op"] .gl-v.ideal{display:none}
.gl-sw[data-glmode="ideal"] [data-glset="ideal"],.gl-sw[data-glmode="op"] [data-glset="op"]{background:#ffffff14;color:var(--strong)}
.gl-sw .sp-head{align-items:center}
.gl-trio .gl-donut{align-content:start;align-self:start}.gl-meta{margin:0 0 2px}
/* 0.71.31 · Formação do preço (colunas 100% com fluxos entre os meses) e MC líquida por canal */
.fp-svg{width:100%;height:auto;max-height:280px;display:block}
.fp-flow{opacity:.13}.fp-seg{stroke:#0b0f19;stroke-width:1.2}.fp-col.cur .fp-seg{opacity:.92}
.fp-pill rect{fill:#0b0f19b3}.fp-pill text{fill:#e5e7eb}.fp-pill.liq text{fill:#5eead4;font-weight:600}.fp-pill.mv text{fill:#fda4af}
.fp-m{fill:var(--strong,#e5e7eb)}.fp-s{fill:var(--faint)}
.fp-leg{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;justify-content:center;gap:4px 14px;font-size:11px;color:var(--faint)}
.fp-leg svg{width:8px;height:8px;margin-right:6px;vertical-align:middle;display:inline-block}
.vr-say b.up{color:#5eead4}.vr-say b.down{color:#fda4af}
.ch-list{list-style:none;margin:6px 0 0;padding:0;display:flex;flex-direction:column;gap:10px}
.ch-list li{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,2fr) auto 58px;gap:10px;align-items:center;font-size:12px}
.ch-list .n{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ch-list .cb{width:100%;height:10px}.ch-list .track{fill:#ffffff0d}
.ch-list .v{color:var(--faint);font-size:11px;text-align:right}.ch-list .p{text-align:center;border-radius:999px;padding:1px 0;font-size:11px}
.ch-list .p.up{color:#5eead4;background:#0f2a26}.ch-list .p.down{color:#fda4af;background:#2a1420}
.ch-list li:hover .n{color:#d9f99d}.ch-k{margin-top:auto}
/* 0.71.32 · Formação do preço com as barras da casa: cápsulas segmentadas com degradê e ponta de luz; um gráfico filtra o outro */
.fx-svg{width:100%;height:auto;max-height:300px;display:block}
.fx-svg .base{stroke:#ffffff14}.fx-col .col{fill:transparent;transition:fill .2s}.fx-col:hover .col,.fx-col.sel .col{fill:#ffffff08}
.fx-col.dim{opacity:.35}.fx-seg{transition:opacity .2s}.fx-v{fill:var(--faint)}.fx-v.cost{fill:#c4b5fd}.fx-v.mv{fill:#fda4af}.fx-v.tax{fill:#93c5fd}
.fx-glow{fill:#5eead4;opacity:.7}.fx-dot{fill:#ecfeff}.fx-line{fill:none;stroke:#5eead4;stroke-width:1;stroke-dasharray:3 4;opacity:.5}
.fx-pill rect{fill:#0f2a26;stroke:#5eead455}.fx-pill text{fill:#5eead4;font-weight:600}
.fx-t{fill:var(--strong,#e5e7eb)}.fx-m{fill:var(--strong,#e5e7eb)}.fx-s{fill:var(--faint)}
.fh-list{list-style:none;margin:6px 0 0;padding:0;display:flex;flex-direction:column;gap:6px}
.fh-list li{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,3fr) 54px 96px;gap:10px;align-items:center;font-size:12px;padding:5px 8px;border-radius:12px;transition:background .2s,opacity .2s}
.fh-list li:hover,.fh-list li.sel{background:#ffffff08}.fh-list li.dim{opacity:.35}.fh-list li:hover .n{color:#d9f99d}
.fh-list .n{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fh-bar{width:100%;height:20px;display:block}.fh-bar .track{fill:#ffffff0a}
.fh-list .p{text-align:center;border-radius:999px;padding:1px 0;font-size:11px;font-weight:600}.fh-list .p.up{color:#5eead4;background:#0f2a26}.fh-list .p.down{color:#fda4af;background:#2a1420}
.fh-list .v{color:var(--faint);font-size:11px;text-align:right;white-space:nowrap}.fh-vol{width:28px;height:6px;margin-right:6px;vertical-align:middle;display:inline-block}.fh-vol rect{fill:#a78bfa88}
.fp-card .fp-leg{margin-top:auto;padding-top:6px}.fp-clear{align-self:center}
@media (prefers-reduced-motion:reduce){.fx-col,.fh-list li,.fx-seg{transition:none}}
/* 0.71.33 · formação do preço: blocos largos com a % dentro, faixas entre os meses, fio de luz na MC líquida */
.fx-flow{opacity:.16;transition:opacity .2s}.fx-svg:hover .fx-flow{opacity:.22}
.fx-shine{fill:#ffffff;opacity:.22;pointer-events:none}
.fx-in{fill:#f1f5f9;font-weight:500;pointer-events:none}.fx-in.liq{fill:#042f2e;font-weight:700}.fx-in.mv{fill:#4c0519}
.fx-glow{fill:#5eead4;opacity:.9}.fx-edge{fill:#ecfeff}
.fh-bar{height:22px}.fh-in{fill:#f1f5f9;pointer-events:none}.fh-in.liq{fill:#042f2e;font-weight:700}.fh-in.mv{fill:#4c0519}
/* 0.71.34 · formação do preço sóbria: colunas finas, tons de grafite e violeta, só a MC líquida em verde, fios finos entre os meses */
.fx-link{fill:none;stroke:#ffffff1f;stroke-width:.8;stroke-dasharray:2 3}.fx-link.liq{stroke:#5eead466;stroke-dasharray:none;stroke-width:1}
.fx-edge{stroke:#ccfbf1;stroke-width:1.2}
.fx-v{fill:var(--faint)}.fx-v.liq{fill:#5eead4;font-weight:600}.fx-v.cost,.fx-v.mv,.fx-v.tax{fill:var(--faint)}
.fx-col:hover .col,.fx-col.sel .col{fill:#ffffff06}
.fh-bar{height:14px}.fh-list li{padding:4px 8px}
/* 0.71.35 · formação do preço com as barras da casa (Por mês): cápsulas finas, ponta de luz, MC líquida em amarelo com a curva */
.fx-svg .fx-v{fill:var(--faint)}.fx-svg .fx-ab{fill:var(--faint);opacity:.75}.fx-svg .fx-ab.hi{fill:#fde047;opacity:1}
.fx-col.dim{opacity:.4}
.fh-list li{grid-template-columns:minmax(0,1fr) minmax(0,1.6fr) 54px minmax(0,1.9fr) 70px;gap:10px;padding:6px 8px}
.fh-bar{height:14px}.fh-list .fh-mix{font-size:10.5px;color:var(--faint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fh-list .p.up{color:#5eead4;background:none}.fh-list .p.down{color:#fda4af;background:none}.fh-list .p{text-align:right}
/* 0.71.36 · por canal: margem × custo total */
.fh-list li{grid-template-columns:minmax(0,1fr) 50px minmax(0,3fr) 50px 70px}
.fh-list .p{text-align:right}.fh-list .ct{color:#a78bfa;font-size:11px}
.fh-k{display:flex;justify-content:center;gap:16px;margin:6px 0 0;font-size:10.5px;color:var(--faint)}
.fh-k span::before{content:"";display:inline-block;width:14px;height:4px;border-radius:2px;margin-right:6px;vertical-align:middle}
.fh-k .mg::before{background:#fde047}.fh-k .cs::before{background:#5b4bb0}
/* 0.71.37 (Diego: "quando expando o menu não dá espaço para a tela; olha o botão Sair"): as datas e os atalhos de período
   encolhem e quebram linha quando não cabem (menu fixado aberto ou janela estreita), e Tela cheia e Sair ficam sempre à vista. */
@media(min-width:701px){header>.dates{flex:0 1 auto;min-width:0;flex-wrap:wrap;justify-content:flex-end;row-gap:4px}header>.dates .period-links{flex-wrap:wrap;justify-content:flex-end;min-width:0}}
body.rail-pinned main{max-width:calc(100vw - 216px)}
/* 0.71.38 · formação do preço: uma cor por parte e o botão % / Valor para os dois gráficos */
.fx-svg .dot.k-cost{fill:#a78bfa}.fx-svg .dot.k-fee{fill:#60a5fa}.fx-svg .dot.k-tax{fill:#2dd4bf}.fx-svg .dot.k-mv{fill:#fb7185}.fx-svg .dot.k-liq{fill:#ffd21e}
.fx-svg .dot.k-cost{filter:drop-shadow(0 0 4px #a78bfaaa)}.fx-svg .dot.k-fee{filter:drop-shadow(0 0 4px #60a5faaa)}.fx-svg .dot.k-mv{filter:drop-shadow(0 0 4px #fb7185aa)}.fx-svg .dot.k-liq{filter:drop-shadow(0 0 4px #ffd21eaa)}
.fx-svg .fx-v.k-cost,.fx-svg .fx-ab.k-cost{fill:#c4b5fd}.fx-svg .fx-v.k-fee,.fx-svg .fx-ab.k-fee{fill:#93c5fd}.fx-svg .fx-v.k-tax,.fx-svg .fx-ab.k-tax{fill:#5eead4}.fx-svg .fx-v.k-mv,.fx-svg .fx-ab.k-mv{fill:#fda4af}.fx-svg .fx-ab.k-liq{fill:#fde047;opacity:1}
.fp-card .sp-head{align-items:center}.fp-unit button.on{background:#ffffff14;color:var(--strong)}.fp-tg{display:inline-flex;gap:6px;flex-wrap:wrap}
.fh-k .vl{opacity:.8}
.fh-list li{grid-template-columns:minmax(0,1fr) 68px minmax(0,3fr) 68px 70px}.fh-list .p,.fh-list .ct{white-space:nowrap}
/* 0.71.39 · "De outubro até o lucro": o rio que afina do faturamento provável ao lucro */
.rv-card{padding:16px 20px 12px;display:flex;flex-direction:column;gap:6px;overflow:hidden}
.rv-card[data-glmode="ideal"] .rv-v-op,.rv-card[data-glmode="op"] .rv-v-ideal{display:none}
.rv-card[data-glmode="ideal"] [data-glset="ideal"],.rv-card[data-glmode="op"] [data-glset="op"]{background:#ffffff14;color:var(--strong)}
.rv-card .sp-head{display:flex;justify-content:space-between;align-items:center}
.rv-row{display:grid;grid-template-columns:1fr 18px 1fr 18px 1fr 18px 1fr 18px 1fr;align-items:end;margin-top:4px}
.rv-c{display:flex;flex-direction:column;align-items:center;text-align:center;gap:2px;min-width:0}
.rv-l{font-size:10.5px;letter-spacing:.06em;text-transform:none;color:var(--faint)}
.rv-v{font-size:26px;font-weight:600;line-height:1.1;font-family:var(--num,inherit);color:var(--strong,#e5e7eb);white-space:nowrap}
.rv-c small{font-size:11px;color:var(--faint)}
.rv-c.fat .rv-v{color:#99f6e4}.rv-c.cost .rv-v{color:#c4b5fd}.rv-c.mc .rv-v{color:#fde047}.rv-c.des .rv-v{color:#fda4af}
.rv-c.luc .rv-v{color:#5eead4;text-shadow:0 0 18px #5eead488}.rv-c.luc.neg .rv-v{color:#fb7185;text-shadow:0 0 18px #fb718588}
.rv-op{font-style:normal;font-size:20px;color:#ffffff40;text-align:center;padding-bottom:22px}
.rv-svg{width:100%;height:170px;display:block;margin-top:6px}
.rv-band{opacity:.9}.rv-peel{opacity:.9}.rv-edge{fill:none;stroke-width:2}.rv-tick{stroke:#ffffff26;stroke-width:1}
.rv-shine{fill:none;stroke-width:2.5;stroke-dasharray:160 1040;animation:rvFlow 4.5s linear infinite}
.rv-end{fill:#5eead4;filter:drop-shadow(0 0 8px #5eead4)}.rv-end.neg{fill:#fb7185;filter:drop-shadow(0 0 8px #fb7185)}
@keyframes rvFlow{from{stroke-dashoffset:1200}to{stroke-dashoffset:0}}
@media (prefers-reduced-motion:reduce){.rv-shine{animation:none;opacity:0}}
@media (max-width:900px){.rv-row{grid-template-columns:1fr 1fr;gap:10px}.rv-op{display:none}.rv-v{font-size:20px}}
.rb-head{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:4px}
.rb-head>span{display:flex;flex-direction:column;gap:2px}
.rb-head b{font-size:24px;font-weight:600;font-family:var(--num,inherit);color:#99f6e4}.rb-head .c b{color:#c4b5fd}.rb-head .d b{color:#fda4af}.rb-head .l b{color:#5eead4;text-shadow:0 0 16px #5eead488}.rb-head .n b{color:#fb7185;text-shadow:0 0 16px #fb718588}
.rb-svg{width:100%;height:auto;display:block;margin-top:8px;overflow:visible}.rb-track{fill:#ffffff0a}.rb-sheen{fill:#ffffff;opacity:.12}
.rb-pill line{stroke:#ffffff55;stroke-width:1;stroke-dasharray:2 3}.rb-pill rect{fill:#0e1422;stroke:#ffffff22}.rb-pill .l{fill:var(--faint)}.rb-pill .v{fill:#e5e7eb;font-weight:600}
.rb-pill.mc rect{stroke:#fde04766}.rb-pill.mc .v{fill:#fde047}.rb-pill.luc rect{stroke:#5eead466}.rb-pill.luc .v{fill:#5eead4}.rb-pill.neg rect{stroke:#fb718566}.rb-pill.neg .v{fill:#fb7185}
.rb-100{stroke:#e5e7eb;stroke-width:1.2}.rb-e{fill:var(--faint)}
.rb-head span>small{font-size:10.5px;letter-spacing:.05em;text-transform:none;color:var(--faint)}.rb-head b small{font-size:12px;text-transform:none;letter-spacing:0;display:inline;margin-right:3px;opacity:.7}
.rb-svg .rb-pill .l{font-size:10px}.rb-svg .rb-pill .v{font-size:14px}.rb-svg .rb-e{font-size:10px}
.rv-card[data-rv="rio"] .rv-view.barra,.rv-card[data-rv="barra"] .rv-view.rio{display:none}
.rv-card[data-rv="rio"] [data-rvset="rio"],.rv-card[data-rv="barra"] [data-rvset="barra"]{background:#ffffff14;color:var(--strong)}
/* 0.187.0: Margem e ponto de equilíbrio (equilibrio.js), abaixo do rio no Início; 0.187.2: cores frias, anéis e áreas */
.eq-card{padding:16px 20px 14px;display:flex;flex-direction:column;gap:10px;overflow:hidden}
.eq-card .sp-head{display:flex;justify-content:space-between;align-items:center;gap:12px}
.eq-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:18px;align-items:stretch}
.eq-tiles{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.eq-tile{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;padding:14px;border-radius:16px;background:linear-gradient(150deg,rgba(56,189,248,.075),rgba(99,102,241,.035) 55%,rgba(255,255,255,.005));overflow:hidden;transition:transform .25s var(--ease-out),background .25s}
.eq-tile::before{content:"";position:absolute;inset:0 0 auto 0;height:1px;background:linear-gradient(90deg,rgba(34,211,238,0),rgba(34,211,238,.45),rgba(129,140,248,0))}
.eq-tile::after{content:"";position:absolute;right:-40px;bottom:-60px;width:170px;height:170px;border-radius:50%;background:radial-gradient(circle,rgba(56,189,248,.16),rgba(56,189,248,0) 70%);pointer-events:none}
.eq-tile.eq-be::after,.eq-tile.eq-last::after{background:radial-gradient(circle,rgba(129,140,248,.2),rgba(129,140,248,0) 70%)}
.eq-tile.eq-avg,.eq-tile.eq-last{grid-template-columns:1fr}
.eq-tile:hover{transform:translateY(-2px);background:linear-gradient(150deg,rgba(34,211,238,.12),rgba(99,102,241,.05) 60%,rgba(255,255,255,.01))}
.eq-tx{display:flex;flex-direction:column;gap:6px;min-width:0;position:relative;z-index:1}
.eq-k{font-size:11px;color:var(--muted);letter-spacing:.02em}
.eq-v{font-family:var(--num);font-size:26px;font-weight:600;color:var(--strong);line-height:1.05;font-variant-numeric:tabular-nums}
.eq-s{font-size:11px;color:var(--muted);line-height:1.4}
.eq-lg{display:flex;flex-direction:column;gap:3px;font-size:11px;color:var(--muted)}.eq-lg b{font-family:var(--num);font-weight:600;color:var(--text)}
.eq-lg i{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:6px;vertical-align:middle}
.eq-lg i.op,.eq-lg i.pv{background:#22d3ee;box-shadow:0 0 8px #22d3ee}.eq-lg i.nop{background:#a5b4fc;box-shadow:0 0 8px #818cf8}.eq-lg i.gp{background:#60a5fa;box-shadow:0 0 8px #60a5fa}
.eq-ring{width:104px;height:104px;display:block;position:relative;z-index:1}
.eq-ring .trk{fill:none;stroke:rgba(148,163,184,.12);stroke-width:9}
.eq-ring .seg{fill:none;stroke-width:9;stroke-linecap:round;animation:eqDraw 1.4s cubic-bezier(.2,.8,.2,1) both}
.eq-ring .glow{fill:none;stroke-width:12;stroke-linecap:round;opacity:.45;animation:eqDraw 1.4s cubic-bezier(.2,.8,.2,1) both}
.eq-ring .rm{font-family:var(--num);font-weight:600;fill:var(--strong)}.eq-ring .rs{fill:var(--muted)}
.eq-be.over .eq-ring .trk{stroke:rgba(34,211,238,.25)}.eq-be.over .eq-ring .glow{opacity:.8}
.eq-hit{font-family:var(--num);font-size:13px}.eq-hit.up,.eq-cov.up,.eq-delta.up{color:#99fb8e}.eq-hit.down,.eq-cov.down,.eq-delta.down{color:#fc5c53}
.eq-spark{width:100%;height:auto;display:block;overflow:visible;position:relative;z-index:1}
.eq-spark .ln{fill:none;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.eq-spark .avg{stroke:#a5b4fc;stroke-width:1;stroke-dasharray:3 3;opacity:.6}
.eq-spark circle{fill:#0e1422;stroke:#22d3ee;stroke-width:1.6}.eq-spark circle.cur{stroke:#a5b4fc;fill:#a5b4fc}
.eq-spark .sv{fill:var(--text);font-family:var(--num)}.eq-spark .sm{fill:var(--faint)}
.eq-delta{font-size:11px;font-weight:600}
@keyframes eqGrow{from{transform:scaleY(0)}}
.eq-right{display:flex;flex-direction:column;gap:6px;min-width:0}
.eq-gwrap{position:relative;display:flex;flex-direction:column;align-items:center}
.eq-gwrap>.eq-k{align-self:flex-start}
@keyframes eqDraw{from{stroke-dasharray:0 100}}
.eq-center{display:flex;flex-direction:column;align-items:center;gap:3px;margin-top:-4px}
.eq-big{font-family:var(--num);font-size:30px;font-weight:600;color:var(--strong);text-shadow:0 0 22px rgba(56,189,248,.4);line-height:1}
.eq-cov{font-size:12px;font-weight:600}
.eq-say{font-size:13px;margin:0;line-height:1.45;text-align:center}.eq-say b{font-weight:600}.eq-say b.up{color:#99fb8e}.eq-say b.down{color:#fc5c53}
.eq-tr{display:flex;flex-direction:column;gap:2px}
.eq-trend{width:100%;display:block;overflow:visible}
.eq-trend .base{stroke:rgba(148,163,184,.1)}
.eq-trend .ln{fill:none;stroke-width:2;stroke-linecap:round}.eq-trend .ln.glow{stroke-width:7;opacity:.2}
.eq-trend .ln.prov{stroke:#a5b4fc;stroke-dasharray:4 4;opacity:.85}
.eq-trend .hit{fill:transparent}.eq-trend .halo{fill:rgba(34,211,238,.14)}.eq-trend .dot{fill:#22d3ee;stroke:#0e1422;stroke-width:1.5}
.eq-trend .cur .dot{fill:#a5b4fc}.eq-trend .cur .halo{fill:rgba(165,180,252,.2)}
.eq-trend text.ev{fill:var(--strong);font-family:var(--num);font-size:10px}.eq-trend text.em{fill:var(--muted);font-size:9.5px}.eq-trend .pe text{font-size:9.5px}
.eq-trend .pe rect{fill:rgba(255,255,255,.06)}.eq-trend .pe text{font-family:var(--num);font-weight:600}
.eq-trend .pe.up rect{fill:rgba(153,251,142,.12)}.eq-trend .pe.up text{fill:#99fb8e}.eq-trend .pe.down rect{fill:rgba(252,92,83,.12)}.eq-trend .pe.down text{fill:#fc5c53}
.eq-trend .pt:hover .halo{fill:rgba(34,211,238,.28)}
.eq-dwrap{display:flex;flex-direction:column;gap:4px;position:relative;z-index:1}
.eq-days{width:100%;height:auto;display:block;overflow:visible}
.eq-days .zero{stroke:rgba(148,163,184,.14)}.eq-days .avg{stroke:#a5b4fc;stroke-width:1;stroke-dasharray:3 3;opacity:.6}
.eq-days .hit{fill:transparent}.eq-days .cb{transform-box:fill-box;transform-origin:bottom;animation:eqGrow 1s cubic-bezier(.2,.8,.2,1) both}
.eq-days .dd.neg .cb{fill:#fc5c53;opacity:.7}.eq-days .dd:hover .cb{opacity:1;filter:brightness(1.4)}
.eq-days .acc{fill:none;stroke:#22d3ee;stroke-width:1.8;stroke-linejoin:round;stroke-linecap:round;filter:drop-shadow(0 0 4px rgba(34,211,238,.5))}
.eq-days .end{fill:#22d3ee;stroke:#0e1422;stroke-width:1.5}.eq-days .dm{fill:var(--faint);font-family:var(--num)}
.eq-dlg,.eq-rlg{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:10.5px;color:var(--muted)}.eq-rlg{justify-content:center;font-size:11px}.eq-rlg b{font-family:var(--num);font-weight:600;color:var(--text)}
.eq-dlg i,.eq-rlg i{display:inline-block;width:10px;height:3px;border-radius:2px;margin-right:5px;vertical-align:middle}
.eq-dlg i.c{background:#818cf8;width:5px;height:9px}.eq-dlg i.l{background:#22d3ee}.eq-dlg i.a{background:none;border-top:1px dashed #a5b4fc;height:0}
.eq-rlg i{width:12px;height:8px}.eq-rlg i.f{background:linear-gradient(90deg,#6366f1,#38bdf8)}.eq-rlg i.p{background:repeating-linear-gradient(45deg,rgba(56,189,248,.6) 0 2px,rgba(56,189,248,.14) 2px 5px)}
.eq-rule{width:100%;max-width:560px;display:block;overflow:visible;margin:4px auto 0}
.eq-rule .zn{fill:rgba(148,163,184,.08)}.eq-rule .zn.z2{fill:rgba(148,163,184,.13)}.eq-rule .zn.z3{fill:rgba(153,251,142,.08)}
.eq-rule .val{transform-box:fill-box;transform-origin:left;animation:eqGrowX 1.4s cubic-bezier(.2,.8,.2,1) both}
.eq-rule .prv{animation:eqFade 1s 1s both}.eq-rule .glow{opacity:.5;transform-box:fill-box;transform-origin:left;animation:eqGrowX 1.4s cubic-bezier(.2,.8,.2,1) both}
.eq-rule .now{fill:#0e1422;stroke:#5eead4;stroke-width:2;filter:drop-shadow(0 0 6px rgba(94,234,212,.7));animation:eqFade .6s 1.2s both}
.eq-rule .mk line{stroke-width:1.2;stroke-dasharray:2 2}.eq-rule .mk text{font-family:var(--num)}
.eq-rule .mk.id line{stroke:#a5b4fc}.eq-rule .mk.id circle{fill:#a5b4fc}.eq-rule .mk.id text{fill:#a5b4fc}
.eq-rule .mk.op line{stroke:#22d3ee}.eq-rule .mk.op circle{fill:#22d3ee}.eq-rule .mk.op text{fill:#22d3ee}
.eq-rule .zt{fill:var(--faint)}.eq-rule .zt.z3{fill:#99fb8e;opacity:.7}.eq-rule .g0,.eq-rule .g1{fill:var(--muted);font-family:var(--num)}
@keyframes eqGrowX{from{transform:scaleX(0)}}@keyframes eqFade{from{opacity:0}}
@media (prefers-reduced-motion:reduce){.eq-rule .val,.eq-rule .glow,.eq-rule .prv,.eq-rule .now,.eq-ring .seg,.eq-ring .glow,.eq-days .cb{animation:none}.eq-tile{transition:none}.eq-tile:hover{transform:none}}
@media (max-width:1100px){.eq-grid{grid-template-columns:1fr}}
@media (max-width:560px){.eq-tiles{grid-template-columns:1fr}.eq-v{font-size:22px}.eq-ring{width:86px;height:86px}}
/* 0.188.0: venda por plataforma, marketplace e conta (equilibrio.js platCard) */
.pl-card{padding:16px 20px 14px;display:flex;flex-direction:column;gap:10px}
.pl-card .sp-head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.pl-tools{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.pl-ab button.active{background:#ffffff14;color:var(--strong)}
.pl-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}
.pl-row,.pl-hd{display:grid;grid-template-columns:22px minmax(120px,240px) minmax(0,1fr) 92px 64px 74px;align-items:center;gap:10px;padding:5px 8px;border-radius:10px}
.pl-hd{font-size:10.5px;color:var(--faint);padding-top:0;padding-bottom:2px}.pl-hd span:nth-child(n+4){text-align:right}
.pl-row{cursor:default;transition:background .2s}.pl-row:has(.pl-tg:not([disabled])){cursor:pointer}
.pl-row:hover{background:linear-gradient(90deg,rgba(255,210,30,.06),rgba(255,255,255,.01))}
.pl-kid{display:none}.pl-kid.open{display:grid;animation:plIn .35s var(--ease-out) both}
@keyframes plIn{from{opacity:0;transform:translateY(-4px)}}
.pl-tg{background:none;border:0;color:var(--muted);font-size:12px;width:22px;height:22px;border-radius:6px;padding:0;cursor:pointer}.pl-tg:hover{color:var(--accent);background:#ffffff0d}.pl-tg[disabled]{cursor:default}
.pl-n{font-size:12.5px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pl-row.d1 .pl-n{padding-left:16px;color:var(--muted);font-size:12px}.pl-row.d2 .pl-n{padding-left:32px;color:var(--muted);font-size:11.5px}
.pl-bar{width:100%;height:12px;display:block}.pl-bar .trk{fill:rgba(255,255,255,.04)}
.pl-defs{position:absolute;width:0;height:0}.pl-plat .pl-more{display:none}.pl-plat.pl-all .pl-more{display:grid}.pl-rk{font-family:var(--num);font-size:11px;color:var(--faint);text-align:center}.pl-card{position:relative}
.pl-row:hover .pl-bar .fill{filter:brightness(1.25)}
.pl-v{font-family:var(--num);font-size:13px;font-weight:600;text-align:right;color:var(--strong);white-space:nowrap}.pl-row.d1 .pl-v,.pl-row.d2 .pl-v{font-weight:500;color:var(--text)}
.pl-p,.pl-mc{font-family:var(--num);font-size:12px;text-align:right;color:var(--muted)}
.pl-n small{color:var(--faint);font-size:10.5px;margin-left:6px}.pd-note{margin:6px 0 0;font-size:11px;color:var(--faint)}.pd-ch{font-family:inherit;font-size:11.5px}.pd-wait{margin:8px 0}
@media (prefers-reduced-motion:reduce){.pl-kid.open{animation:none}}
@media (max-width:700px){.pl-row,.pl-hd{grid-template-columns:20px minmax(0,1fr) 80px 56px;gap:6px}.pl-bar,.pl-hd span:nth-child(3),.pl-p,.pl-hd span:nth-child(5){display:none}}
.rv-tools{display:flex;gap:8px;align-items:center}
/* 0.186.0: botão e janela do mini DRE do rio */
.rv-dre-btn{border-radius:999px;background:#ffffff0d;padding:4px 12px;font-size:11.5px}.rv-dre-btn:hover{background:#ffffff1a;color:var(--strong)}
.dre-dlg{width:min(720px,calc(100vw - 32px))}
.dre-body[data-dre="prov"] .dre-v.real,.dre-body[data-dre="real"] .dre-v.prov{display:none}
.dre-body[data-dre="prov"] [data-dreset="prov"],.dre-body[data-dre="real"] [data-dreset="real"]{background:#ffffff14;color:var(--strong)}.dre-dlg .table-wrap{max-height:calc(100vh - 210px)}
.dre-table{width:100%;font-size:12.5px;border-collapse:separate;border-spacing:0 2px}
.dre-table th{font-size:11px;color:var(--faint);font-weight:500;padding:4px 10px}
.dre-table td{padding:5px 10px;white-space:nowrap}.dre-table td.pct{color:var(--faint);width:90px}.dre-table td.amount{width:130px}
.dre-table tr.grp td{color:var(--strong,#e5e7eb);padding-top:9px}
.dre-table tr.kid td:first-child{padding-left:28px;color:var(--faint)}.dre-table tr.kid td{font-size:12px}
.dre-table .dre-q{font-size:10.5px;width:72px;color:var(--faint);opacity:.85}.dre-table th.dre-q{font-size:10px}
.dre-table tr.tot td{font-weight:600;color:#fde68a;border-top:1px solid rgba(253,230,138,.25);padding-top:8px}
.dre-table tr.tot.neg-row td:first-child{color:#FC5C53}
/* 0.71.40 · sem a faixa com o nome da tela, Origem, Última importação e Carregar dados; Recolher na linha de cima */
.subnav-mod{display:none}#context-strip[hidden]{display:none}
header .tb-pin{display:inline-flex;align-items:center;margin:0;font-size:12px}
header #logout{order:99}

/* 0.71.41 · MC replicada: mês que virou sem cadastro fica em amarelo até validar; validado ganha a etiqueta verde */
.table-wrap .mc-table tbody tr.mc-rep>td,.table-wrap .mc-table tbody tr.mc-rep:hover>td{background:#ffd21e12;color:#ffe27a}
.table-wrap .mc-table tbody tr.mc-rep>td:first-child{box-shadow:inset 3px 0 0 #ffd21e}
.mc-table tr.mc-rep .mc-in{background:#ffd21e14}
.mc-table td .tag{margin-left:6px}

/* 0.71.42 · Formação do preço em Valor: mês aberto até o fechamento provável (contorno claro tracejado; parte cheia é o realizado) */
.fx-svg .b.pj{fill:#ffffff06;stroke-width:1;stroke-dasharray:2 2;stroke-opacity:.75}
.fx-svg .b.pj.k-cost{stroke:#a78bfa}.fx-svg .b.pj.k-fee{stroke:#60a5fa}.fx-svg .b.pj.k-tax{stroke:#2dd4bf}.fx-svg .b.pj.k-mv{stroke:#fb7185}.fx-svg .b.pj.k-liq{stroke:#ffd21e}
.fx-svg .pjt{fill:#fde047}

/* 0.71.44 · Subtotal no cartão ao passar o mouse (linha que começa com "» ") */
.hover-card p.tip-hl{color:#ffd21e;font-weight:600}

/* 0.71.51 · Topo numa linha só (Diego: "desalinhado"): datas e atalhos de período lado a lado, mais compactos; só quebram em telas estreitas */
@media(min-width:701px){
 header>.dates{flex-wrap:nowrap;gap:6px;flex:0 0 auto;align-items:flex-end}
 header>.dates .period-links{margin-bottom:3px}
 header>.dates .period-links{flex-wrap:nowrap}
 header .period-links button{padding:4px 6px;font-size:11.5px}
 header .dp-field{padding:5px 10px}
}
@media(min-width:1440px){header .period-links button[data-period=""]:not(.active){display:none}}
@media(min-width:701px) and (max-width:1439px){header>.dates,header>.dates .period-links{flex-wrap:wrap}header>.dates{flex:0 1 auto;align-items:center}header>.dates .period-links{margin-bottom:0}}
/* 0.71.53: total dos produtos provável no Início e particularidades do cliente em Cadastros */
.rb-head span>small.rb-pv{text-transform:none;letter-spacing:0;color:#ffd21e;font-size:11px}
.cad-rules .cad-rule-list{list-style:none;margin:6px 0 4px;padding:0;display:grid;gap:6px;font-size:12.5px}
.cad-rules .cad-rule-list small{display:block;color:var(--faint);font-size:11px;margin-top:2px}
.rv-c small .rv-pb{color:#ffd21e;font-weight:600}
/* 0.71.56: motivo fora da margem nos pedidos */
.pbi-orders td.pbi-fora{color:#fcd34d;font-size:11.5px;white-space:normal;min-width:150px;max-width:240px}
/* 0.71.58: particularidades do cliente editáveis em Cadastros */
.cad-rules .cad-rule-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px 14px;margin:8px 0}
.cad-rules .cad-rule{display:flex;flex-direction:column;gap:5px;font-size:11.5px;color:var(--faint)}
.cad-rules .cad-rule>span{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.cad-rules .cad-rule.off>span{color:#fcd34d}
.cad-rules .cad-rule small{font-size:10.5px;color:var(--faint);opacity:.8}
/* 0.73.0: Escritório (só administradores) — a equipe da DS; o Conferente olha todos os clientes */
.of{grid-auto-rows:auto}
.of .of-hero{grid-column:1/-1;display:flex;flex-direction:column;gap:14px}
.of-hero-top{display:flex;gap:16px;align-items:flex-start}.of-hero-top>div{flex:1;min-width:0}
.of-hero-top .headline{font-size:20px}
.of-again{flex:0 0 auto}
.of .hero-figures .n{display:block}.of-sub{display:block;font-size:11px;color:var(--faint)}
.of-c-alerta{color:#fca5a5}
.of-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#3a4558;flex:0 0 auto}
.of-dot.ok{background:#a3e635}.of-dot.atencao{background:#fcd34d}.of-dot.alerta{background:#f87171;box-shadow:0 0 8px #f8717188}.of-dot.sem{background:#3a4558}
.of-team ul{list-style:none;margin:6px 0 0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px 16px}
.of-agent{display:grid;grid-template-columns:auto auto 1fr;gap:2px 8px;align-items:center;font-size:12.5px;opacity:.55}
.of-agent.on{opacity:1}.of-agent b{font-weight:600;color:var(--strong)}.of-agent small{font-size:10.5px;color:var(--faint)}
.of-agent.on small{color:#a3e635}
.of-agent p{grid-column:2/-1;margin:0;font-size:11.5px;color:var(--muted);line-height:1.35}
.of-matrix .of-row{display:grid;grid-template-columns:minmax(140px,1.3fr) repeat(3,minmax(0,1fr));gap:4px;align-items:center;padding:3px 6px;border-radius:9px}
.of-matrix .of-row:not(.of-head):hover{background:#ffffff06}
.of-matrix .of-head{font-size:10.5px;color:var(--faint);text-transform:none;padding-top:6px}
.of-name{display:flex;gap:8px;align-items:center;font-size:12.5px;color:var(--strong);min-width:0}
.of-cell{display:flex;gap:7px;align-items:center;background:none;border:0;border-radius:999px;padding:5px 10px;color:var(--muted);font-size:12px;text-align:left;cursor:pointer}
.of-cell:hover,.of-cell.on{background:#ffffff0d;color:var(--strong)}
.of-legend{display:flex;gap:14px;flex-wrap:wrap;font-size:11px;color:var(--faint);margin-top:8px}
.of-legend span{display:inline-flex;gap:6px;align-items:center}
.of-qhead{display:flex;gap:12px;align-items:center;flex-wrap:wrap;justify-content:space-between}
.of-pick{font-size:12px;color:var(--muted)}
.of-queue ul{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:4px}
.of-item{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;gap:4px 12px;align-items:center;padding:7px 10px;border-radius:10px;font-size:12.5px}
.of-item:hover{background:#ffffff06}
.of-item>.of-dot{align-self:start;margin-top:6px}
.of-item b{font-weight:600;color:var(--strong);margin-right:8px}.of-chk{font-size:11px;color:var(--faint)}
.of-item p{margin:2px 0 0;color:var(--muted);font-size:12px;line-height:1.4}
.of-v{font-family:var(--num);font-size:13px;color:var(--text);white-space:nowrap}
.of-rules .p{font-size:12px;color:var(--muted);margin:4px 0 8px}
.of-rule-top{display:flex;gap:18px;flex-wrap:wrap;font-size:12.5px;color:var(--muted)}
.of-days{width:46px;text-align:center;padding:4px 6px;border-radius:999px;border:1px solid #ffffff14;background:#ffffff08;color:var(--strong);font:inherit;font-size:12.5px}
.of-ch{list-style:none;margin:10px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:6px 18px}
.of-ch li{display:flex;gap:8px;align-items:center;font-size:12.5px}.of-ch li>span{flex:1;min-width:0;color:var(--text)}
.of-ch small{font-size:10.5px;color:var(--faint);width:44px}
@media(max-width:1050px){.of-team ul{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.of-team ul{grid-template-columns:minmax(0,1fr)}.of-matrix .of-row{grid-template-columns:minmax(0,1fr) repeat(3,auto)}.of-cell{padding:4px 6px;font-size:11px}.of-item{grid-template-columns:auto minmax(0,1fr)}.of-item .of-v,.of-item>button{grid-column:2}.of-hero-top{flex-wrap:wrap}.of-hero-top>div{flex:1 1 calc(100% - 80px)}.of-again{margin-left:auto}}
/* 0.74.0: a sala do Escritório — mesas dos clientes e agentes no estilo do Dési; o Conferente anda de mesa em mesa */
.of-room{gap:8px}
.of-room-head{display:flex;gap:14px;align-items:baseline;flex-wrap:wrap;justify-content:space-between}
.of-room-note{font-size:11.5px;color:var(--faint)}
.of-room-svg{width:100%;height:auto;display:block;overflow:visible}
.of-floor{fill-opacity:1;stroke:#ffffff08}.of-floor-dot{fill:#ffffff10}
.of-wall{stroke:#ffffff10;stroke-width:1;stroke-dasharray:3 5}
.of-zone{fill:var(--faint);font-size:11px;letter-spacing:.04em}
.of-top,.of-st-top{fill:#131c2d;stroke:#ffffff12;stroke-width:.8}
.of-mon{fill:#0a0f1a;stroke:#ffffff1a;stroke-width:.8}.of-stand{stroke:#ffffff1f;stroke-width:1.4;fill:none}
.of-chair{fill:#0d1422;stroke:#ffffff0d}
.of-scr{fill:#1a2335;transition:fill .4s}.of-scr-l{fill:none;stroke:#ffffff26;stroke-width:1;stroke-linecap:round;stroke-linejoin:round}
.of-desk.ok .of-scr{fill:#a3e63526}.of-desk.ok .of-scr-l{stroke:#a3e635b3}
.of-desk.atencao .of-scr{fill:#fcd34d26}.of-desk.atencao .of-scr-l{stroke:#fcd34db3}
.of-desk.alerta .of-scr{fill:#f8717133}.of-desk.alerta .of-scr-l{stroke:#f87171cc}
.of-scan{fill:#ffffff40;opacity:0}
.of-desk.visit .of-scan{animation:of-scan 1.1s ease-in-out infinite}
.of-desk.visit .of-mon{stroke:#5eead499;filter:drop-shadow(0 0 6px #5eead455)}
.of-desk-hit{fill:transparent;stroke:transparent;transition:fill .25s}
.of-desk{cursor:pointer;outline:none}.of-desk:hover .of-desk-hit,.of-desk:focus-visible .of-desk-hit{fill:#ffffff07;stroke:#ffd21e2e}
.of-desk-n{fill:var(--muted);font-size:11px}.of-desk:hover .of-desk-n{fill:var(--strong)}
.of-pin circle{fill:#f87171}.of-desk.atencao .of-pin circle{fill:#fcd34d}.of-pin text{fill:#0b0f19;font-size:9px;font-weight:700}
.of-desk.alerta .of-pin{animation:of-pin 2.4s ease-in-out infinite;transform-box:fill-box;transform-origin:center}
.of-st .of-mon.st{fill:#0a0f1a}.of-st.on .of-mon.st{stroke:#5eead466}
.of-st-n{fill:var(--text);font-size:11.5px;font-weight:600}.of-st-s{fill:var(--faint);font-size:10px}.of-st.on .of-st-s{fill:#5eead4}
.of-ag{opacity:.38}.of-ag.on{opacity:1}
.of-ag-sh{fill:#000;opacity:.45}
.of-ag-body{animation:of-float 4.2s ease-in-out infinite;transform-box:fill-box;transform-origin:center}
.of-ag.walk .of-ag-body{animation:of-step .42s ease-in-out infinite}
.of-ag-eyes{animation:dz-blink 5.6s infinite;transform-box:fill-box;transform-origin:center}
.of-ag:not(.on) .of-ag-eyes{opacity:.35;animation:none}
.of-tag{opacity:0;transition:opacity .25s}.of-ag.talk .of-tag{opacity:1}
.of-tag-bg{fill:#0b0f19e6;stroke:#5eead455;stroke-width:.8}.of-tag-t{fill:var(--strong);font-size:10px}
@keyframes of-step{0%,100%{transform:translateY(0) rotate(-3deg)}50%{transform:translateY(-3px) rotate(3deg)}}
@keyframes of-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-2px)}}
@keyframes of-scan{0%{opacity:.9;transform:translateY(0)}100%{opacity:0;transform:translateY(19px)}}
@keyframes of-pin{0%,100%{transform:scale(1)}50%{transform:scale(1.18)}}
@media (prefers-reduced-motion:reduce){.of-ag-body,.of-ag-eyes,.of-desk .of-scan,.of-desk.alerta .of-pin{animation:none!important}}
@media(max-width:700px){.of-room-note{display:none}}
@media(max-width:700px){.of-room{overflow-x:auto}.of-room-svg{min-width:760px}}
.of-desk-n{transition:opacity .25s}.of-desk.visit .of-desk-n{opacity:0}.of-desk.visit .of-chair{opacity:0}
/* 0.75.0: a sala do Escritório em 3D (three.js); etiquetas em HTML posicionadas por JS */
.of3{position:relative;height:560px;border-radius:14px;overflow:hidden;background:radial-gradient(120% 90% at 50% 0%,#141c2e 0%,#0b0f19 70%)}
.of3-canvas{width:100%;height:100%;display:block;cursor:grab;touch-action:none}.of3-canvas:active{cursor:grabbing}.of3-canvas.hover{cursor:pointer}
.of3-labels{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.of3-tag{position:absolute;transform:translate(-50%,-100%);display:flex;flex-direction:column;align-items:center;gap:1px;padding:4px 9px;border-radius:9px;background:#0b0f19d9;border:1px solid #ffffff14;white-space:nowrap;font-size:11px;line-height:1.2;transition:opacity .25s;box-shadow:0 6px 18px -10px #000}
.of3-tag b{font-weight:600;color:var(--strong)}.of3-tag small{font-size:10px;color:var(--faint)}
.of3-tag small.alerta{color:#fca5a5}.of3-tag small.atencao{color:#fcd34d}.of3-tag small.ok{color:#a3e635}
.of3-tag.client{opacity:.78}.of3-tag.client.hot{opacity:1;border-color:#ffd21e66}
.of3-tag.agent{border-color:#5eead433;opacity:.5}.of3-tag.agent.on{opacity:1}.of3-tag.agent.on small{color:#5eead4}
.of3-tag::after{content:"";position:absolute;left:50%;bottom:-5px;width:8px;height:8px;background:inherit;border-right:1px solid #ffffff14;border-bottom:1px solid #ffffff14;transform:translateX(-50%) rotate(45deg)}
@media(max-width:700px){.of3{height:380px}.of3-tag{font-size:10px;padding:3px 7px}.of3-tag small{display:none}}
/* 0.75.1: tela cheia e feed de ações ao lado da sala 3D (como o chat ao vivo do YouTube) */
.of3{display:flex;gap:0}
.of3-stage{position:relative;flex:1;min-width:0;height:100%}
.of3-chat{flex:0 0 300px;display:flex;flex-direction:column;border-left:1px solid #ffffff10;background:#0b0f19d9;min-height:0}
.of3-chat-head{display:flex;justify-content:space-between;align-items:baseline;padding:10px 14px;border-bottom:1px solid #ffffff10;font-size:12px}
.of3-chat-head b{font-weight:600;color:var(--strong)}.of3-chat-head small{color:var(--faint);font-size:10.5px}
.of3-chat-list{list-style:none;margin:0;padding:8px 10px;overflow-y:auto;flex:1;display:flex;flex-direction:column;gap:6px;scroll-behavior:smooth}
.of3-msg{display:grid;grid-template-columns:auto auto minmax(0,1fr);gap:8px;align-items:start;font-size:12px;line-height:1.35;color:var(--muted);padding:4px 6px;border-radius:8px;animation:of3-in .35s var(--ease-out,ease-out)}
.of3-msg time{font-size:10px;color:var(--faint);font-family:var(--num);padding-top:2px}
.of3-msg b{font-weight:600;color:var(--strong);margin-right:4px}
.of3-msg.alerta{background:#f8717112}.of3-msg.alerta b{color:#fca5a5}.of3-msg.atencao b{color:#fcd34d}
.of3-av{width:14px;height:14px;border-radius:50%;background:#2b3647;margin-top:1px;box-shadow:inset 0 0 0 3px #0b0f19}
.of3-av[data-ag=conferente]{background:#5eead4}.of3-av[data-ag=analista]{background:#93c5fd}.of3-av[data-ag=planejador]{background:#c4b5fd}.of3-av[data-ag=redator]{background:#ffd21e}.of3-av[data-ag=sala]{background:#6b7280}
@keyframes of3-in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.of3-bar{position:absolute;top:10px;right:10px;display:flex;gap:8px;align-items:center;z-index:2}
.of3-live{display:inline-flex;align-items:center;gap:6px;font-size:10.5px;color:#fca5a5;letter-spacing:.04em;text-transform:none;background:#0b0f19cc;padding:4px 9px;border-radius:999px;border:1px solid #ffffff12}
.of3-live i{width:7px;height:7px;border-radius:50%;background:#f87171;animation:of3-blink 1.6s ease-in-out infinite}
@keyframes of3-blink{0%,100%{opacity:1}50%{opacity:.25}}
.of3-fs{display:inline-flex;align-items:center;gap:6px;background:#0b0f19cc;border:1px solid #ffffff12;color:var(--text);font-size:11.5px;padding:5px 10px;border-radius:999px;cursor:pointer}
.of3-fs:hover{border-color:#ffd21e55;color:var(--strong)}.of3-fs svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.of3:fullscreen,.of3.fs{height:100vh;border-radius:0;background:#0b0f19}
.of3.fs .of3-chat{flex-basis:360px}.of3.fs .of3-msg{font-size:13px}
@media(max-width:900px){.of3-chat{flex-basis:220px}}
@media(max-width:700px){.of3{flex-direction:column;height:auto}.of3-stage{height:380px}.of3-chat{flex:none;height:200px;border-left:0;border-top:1px solid #ffffff10}}
@media (prefers-reduced-motion:reduce){.of3-live i,.of3-msg{animation:none}}
/* 0.75.2: feed ligado aos clientes: linha clicável abre o cliente; a mesa escolhida filtra o feed */
.of3-msg.go{cursor:pointer}.of3-msg.go:hover,.of3-msg.go:focus-visible{background:#ffffff0d;outline:none}.of3-msg.go:hover b,.of3-msg.go:focus-visible b{color:var(--lime,#d9f99d)}
.of3-msg.go>span::after{content:' ↗';color:var(--faint);font-size:10px}
.of3-chat-head{gap:8px}.of3-chat-head small{margin-left:auto}
.of3-chat-only{border:0;background:#ffd21e22;color:#ffd21e;border-radius:999px;padding:2px 8px;font:inherit;font-size:10.5px;cursor:pointer;max-width:150px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.of3-chat-only:hover{background:#ffd21e33}

/* 0.81.0 · Pareto, Meta de venda ABC e Giro do estoque (abc.js) */
.abc-slicers .abc-sel{border:0;border-radius:999px;background:rgba(255,255,255,.055);color:var(--text);min-height:32px;padding:0 12px;font-size:12px;max-width:220px}
.abc-slicers .abc-sel:focus-visible,.abc-msel .abc-sel:focus-visible,.abc-gsel .abc-sel:focus-visible{outline:1px solid var(--accent)}
.abc-slicers .abc-txt{width:120px}.abc-slicers .abc-cob{width:64px;text-align:right}.abc-slicers .acct-filter .m{font-size:11px;color:var(--faint);margin-left:6px}
.abc-msel,.abc-gsel{display:flex;margin:4px 0 8px}.abc-msel .abc-sel,.abc-gsel .abc-sel{border:0;border-radius:999px;background:rgba(255,255,255,.055);color:var(--text);min-height:30px;padding:0 12px;font-size:12px}
.abc-msel .acct-filter,.abc-gsel .acct-filter{display:flex;align-items:center;gap:8px;margin:0}
.abc-curves{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:0 0 16px}
.card.abc-curve{display:flex;gap:16px;align-items:center;padding:14px 18px}
.abc-curve-l{display:flex;flex-direction:column;align-items:center;gap:2px;min-width:64px}.abc-curve-l b{font-size:34px;font-weight:300;line-height:1}
.abc-curve-l .m{font-size:10.5px;color:var(--faint);white-space:nowrap}
.abc-curve-n{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:8px 14px;flex:1;min-width:0}
.abc-curve-n div{display:flex;flex-direction:column;gap:2px;min-width:0}.abc-curve-n .k{font-size:10.5px;color:var(--faint)}.abc-curve-n b{font-size:14px;font-weight:400;white-space:nowrap}
.abc-cA .abc-curve-l b{color:#86efac}.abc-cB .abc-curve-l b{color:#7dd3fc}.abc-cC .abc-curve-l b{color:#f0abfc}
.abc-tag{display:inline-block;min-width:22px;text-align:center;border-radius:999px;padding:1px 7px;font-size:11px;background:#ffffff0d;color:var(--muted)}
.abc-tag.abc-tA{background:#86efac1f;color:#86efac}.abc-tag.abc-tB{background:#7dd3fc1f;color:#7dd3fc}.abc-tag.abc-tC{background:#f0abfc1f;color:#f0abfc}
.abc-list li.abc-sub .n{padding-left:14px;color:var(--muted)}.abc-list li.abc-mk .n{font-weight:500}
.abc-pick li{cursor:pointer;border-radius:8px}.abc-pick li:hover .n{color:var(--accent)}.abc-pick li.on .n{color:var(--accent);font-weight:600}
.abc-dims{flex-wrap:wrap}
.card.abc-head{display:grid;grid-template-columns:minmax(0,1fr) auto;flex-direction:row;align-items:end;gap:6px 20px;padding:16px 20px;margin:0 0 14px}
.card.abc-head>.card-period{grid-column:1/-1}
.abc-head h2{margin:4px 0 6px;font-size:20px;font-weight:400}.abc-head.ok h2{color:#86efac}.abc-head.warn h2{color:var(--out)}
.abc-head .k{font-size:11px;color:var(--faint)}.abc-head p.m{margin:0;font-size:12px;color:var(--muted);max-width:760px}
.abc-head-n{display:flex;gap:22px}.abc-head-n div{display:flex;flex-direction:column;gap:2px;text-align:right}.abc-head-n b{font-size:16px;font-weight:400;white-space:nowrap}
.abc-table td.pos{color:#86efac}.abc-table td.neg{color:var(--out)}
.abc-table td.prod{max-width:320px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.abc-qwrap{display:flex;align-items:center;gap:22px;flex-wrap:wrap}
.abc-donut{width:170px;height:170px;flex:0 0 auto}.abc-donut .seg{fill:none;stroke-width:13}.abc-donut .seg:hover{stroke-width:16}
.abc-donut .t1{fill:var(--strong);font-size:16px;font-family:var(--num)}.abc-donut .t2{fill:var(--faint);font-size:8px}
.q-att{stroke:#fbbf24;background:#fbbf24}.q-ok{stroke:#86efac;background:#86efac}.q-bad{stroke:#fb7185;background:#fb7185}.q-zero{stroke:#64748b;background:#64748b}.q-none{stroke:#334155;background:#334155}
.abc-qleg{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:7px;font-size:12px;flex:1;min-width:180px}
.abc-qleg li{display:grid;grid-template-columns:10px 1fr auto;gap:8px;align-items:center}.abc-qleg i{width:10px;height:10px;border-radius:3px;display:block}.abc-qleg b{font-weight:400;font-family:var(--num)}
.abc-q{display:inline-block;border-radius:999px;padding:1px 8px;font-size:11px;white-space:nowrap;background:#ffffff0d}
.abc-q.q-att{background:#fbbf241f;color:#fbbf24}.abc-q.q-ok{background:#86efac1f;color:#86efac}.abc-q.q-bad{background:#fb71851f;color:#fb7185}.abc-q.q-zero,.abc-q.q-none{background:#ffffff0d;color:var(--muted)}
@media(max-width:1100px){.abc-curves{grid-template-columns:1fr}}
@media(max-width:700px){.card.abc-head{grid-template-columns:1fr;align-items:start}.abc-head-n div{text-align:left}}
/* 0.82.0 · Análise estratégica (Storytelling, Faixas de margem, Venda a venda) */
.estr-lines{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px;font-size:12.5px;line-height:1.5;color:var(--text)}
.estr-lines li{padding-left:14px;position:relative}.estr-lines li::before{content:"";position:absolute;left:0;top:8px;width:5px;height:5px;border-radius:2px;background:var(--accent)}
.estr-list li.lift-total .n,.estr-list li.lift-total .v{font-weight:600;color:var(--strong)}
.card.estr-top{margin:0 0 16px}.estr-top .estr-sub{margin-top:14px}
.estr-note{font-size:11.5px;color:var(--faint)}
.estr-sit{display:inline-block;width:9px;height:9px;border-radius:50%;vertical-align:middle;background:#64748b}
.estr-sit.sit-ok{background:#86efac}.estr-sit.sit-high{background:#7dd3fc}.estr-sit.sit-low{background:#fbbf24}.estr-sit.sit-neg{background:#fb7185}
.estr-table tr{cursor:pointer}.estr-table tr.estr-total td{color:var(--accent);font-weight:600}
.estr-table tr.estr-band td{font-weight:600;color:var(--strong)}.estr-table tr.estr-sub td{color:var(--text);font-weight:500}
.estr-table tr.estr-cod td{color:var(--muted)}.estr-table tr:hover td{color:var(--accent)}
.estr-var{white-space:nowrap;font-size:11.5px}.estr-var.v-estável{color:#86efac}.estr-var.v-moderada{color:#fbbf24}.estr-var.v-alta{color:#fb7185}
.card.estr-par{padding:12px 18px;margin:0 0 14px}.estr-par summary{cursor:pointer;font-size:12px;color:var(--muted)}
.estr-par-grid{display:flex;flex-wrap:wrap;gap:12px 18px;align-items:flex-end;margin:12px 0 6px}
.estr-par-grid label{display:flex;flex-direction:column;gap:4px}.estr-par-grid .k{font-size:11px;color:var(--faint)}
.estr-lim{min-width:280px}.estr-par p.m{font-size:11px;color:var(--faint);margin:4px 0 0}
.estr-pick{font-weight:500;color:var(--accent);font-size:12px}
@media(max-width:700px){.estr-lim{min-width:0;width:100%}}
/* 0.83.0 · Compras pela venda provável (Giro do estoque e Orçamento) */
.abc-table td.cmp-c{background:#7dd3fc08}.abc-table th.cmp-c{color:#7dd3fc}
.cmp-terms-t{max-height:320px;overflow:auto;margin:8px 0}.cmp-terms-t table{font-size:12px}.cmp-terms-t input{width:70px;text-align:right}
.card.cmp-bud{margin:0 0 16px}.cmp-bud .estr-par-grid select{min-width:200px}
.cmp-bud table td.diff-pos{color:#86efac}.cmp-bud table td.diff-neg{color:var(--out)}
.cmp-bud .cmp-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin:10px 0 0}
/* 0.83.2 · Janela "Como está a venda" (clique na sugestão do Giro do estoque) */
.cmp-why{font:inherit;color:inherit;padding:0;border-bottom:1px dotted #7dd3fc80;border-radius:0}.cmp-why:hover{color:#7dd3fc}
.cmp-dlg{width:min(820px,calc(100vw - 32px))}.cmp-say{font-size:13px;margin:0;color:var(--text)}
.cmp-beh{width:100%;height:auto}.cmp-beh .bar{fill:#64748b}.cmp-beh .bar.rec{fill:#7dd3fc}.cmp-beh .cmp-win{fill:#7dd3fc0f}
.cmp-beh .grid{stroke:#ffffff12;stroke-width:1}.cmp-beh .ax{fill:var(--faint);font-size:12px}
.cmp-beh .avg-s{stroke:#fbbf24;stroke-width:1.5;stroke-dasharray:6 4}.cmp-beh .avg-r{stroke:#7dd3fc;stroke-width:2}
.cmp-leg{display:flex;gap:16px;flex-wrap:wrap;font-size:11.5px;color:var(--muted)}.cmp-leg i{display:inline-block;width:14px;height:3px;margin-right:6px;vertical-align:middle;border-radius:2px}
.cmp-leg .l-s{background:#fbbf24}.cmp-leg .l-r{background:#7dd3fc}.cmp-leg .l-w{background:#7dd3fc33;height:9px}
/* 0.83.3 · Janela da sugestão: linha dia a dia, faixa dos dias e as contas passo a passo */
.cmp-beh .day-line{fill:none;stroke:#cbd5e1;stroke-width:1.2}.cmp-beh .dot{fill:#94a3b8}.cmp-beh .dot.rec{fill:#7dd3fc}.cmp-beh .dot:hover{r:5}
.cmp-leg .l-d{background:#cbd5e1;height:2px}
.cmp-days{display:flex;gap:3px;overflow-x:auto;padding:2px 0 6px}
.cmp-day{flex:0 0 auto;min-width:38px;display:flex;flex-direction:column;align-items:center;gap:2px;padding:4px 3px;border-radius:6px;background:#ffffff06;font-size:10.5px;color:var(--faint);border-bottom:2px solid transparent}
.cmp-day b{font-weight:500;font-size:12px;color:var(--text);font-family:var(--num)}
.cmp-day.in-s{border-bottom-color:#fbbf24}.cmp-day.in-r{background:#7dd3fc14}
.cmp-calcs{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.cmp-calc{border-radius:10px;background:#ffffff06;padding:10px 14px}.cmp-calc .k{margin:0 0 6px;font-size:12px}
.cmp-calc.c-s .k{color:#fbbf24}.cmp-calc.c-r .k{color:#7dd3fc}
.cmp-calc ol{margin:0;padding-left:18px;font-size:12px;line-height:1.7;color:var(--muted)}.cmp-calc b{color:var(--strong);font-weight:600}
@media(max-width:700px){.cmp-calcs{grid-template-columns:1fr}}
/* 0.83.5 · Orçamento: orçado × pago por grupo */
.card.grp-card{margin:0 0 16px}.grp-top{display:flex;flex-wrap:wrap;gap:18px 32px;align-items:flex-end}
.grp-top .pbi-kpi{display:flex;flex-direction:column;gap:2px}.grp-top .pbi-kpi .m{font-size:11px;color:var(--faint)}
.grp-table tr.grp-sec td{font-weight:600;color:var(--strong)}.grp-table tr.grp-sub td:first-child{padding-left:26px;color:var(--text)}
.grp-table td.diff-pos{color:#86efac}.grp-table td.diff-neg{color:var(--out)}
/* 0.85.0 · Saldo inicial do planejamento: escolher as contas em Bancos */
.bank-chart .ln.plan{stroke:var(--accent);stroke-opacity:.85}
.plan-pick-card{gap:4px}.plan-pick-card .v{font-size:20px}.plan-pick-card .v.neg{color:var(--out)}
.plan-pick{gap:10px;margin-top:12px}
.plan-pick-head{display:flex;flex-wrap:wrap;gap:6px 16px;align-items:baseline;justify-content:space-between}
.plan-pick .filters{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.plan-pick .pick-q{width:auto;flex:1 1 220px;max-width:340px}
.plan-pick-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:2px 14px;max-height:360px;overflow:auto}
.plan-pick-list li[hidden]{display:none}
.plan-pick-list label.check{padding:5px 8px;border-radius:8px;font-size:12px;color:var(--text);cursor:pointer}
.plan-pick-list label.check:hover{background:var(--line-soft)}
.plan-pick-list .n{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.plan-pick-list .amount{font-size:11.5px;color:var(--muted);white-space:nowrap}.plan-pick-list .amount.neg{color:var(--out)}
.plan-pick-list li:has(input:not(:checked)) .n,.plan-pick-list li:has(input:not(:checked)) .amount{opacity:.5}
.bank-legend{display:inline-flex;gap:6px;align-items:center}.bank-legend i{display:inline-block;width:14px;height:0;border-top:1px solid #64748b}.bank-legend i.plan{border-color:var(--accent);margin-left:8px}
/* 0.86.1 (Diego: "todos vamos ter um padrão e esse botão que é o padrão deve ficar azul celeste"): o botão padrão de cada filtro */
.segmented button.std{color:#7dd3fc}
.segmented button.std:hover{color:#bae6fd;background:rgba(125,211,252,.1)}
.segmented button.std.active,.segmented button.std[aria-pressed=true]{color:#082f49;background:#7dd3fc;font-weight:600}
/* 0.86.2: Status repasse com Todos, Ativo e Cancelado; os status de cada grupo embaixo, pequenos, como subgrupo */
/* 0.86.3 (Diego: "ficou super desalinhado"): os status pequenos ficam na mesma linha, logo depois dos três botões */
.st-wrap{display:inline-flex;flex-wrap:wrap;gap:4px 8px;align-items:center}
.st-sub{display:flex;flex-wrap:wrap;gap:2px;align-items:center}
.st-sub button{background:none;border:0;border-radius:999px;color:#64748b;font-size:10.5px;padding:2px 8px;cursor:pointer}
.st-sub button:hover{color:var(--strong);background:rgba(255,255,255,.06)}
.st-sub button[aria-pressed=true]{color:#cbd5e1}
.st-sub button.on{color:#e0f2fe;background:rgba(125,211,252,.14)}
.st-sub i{width:1px;height:10px;background:#334155;margin:0 6px}

/* 0.86.4–0.86.6: pílulas do Acumulado dia a dia (agora, provável, média, ritmo) no estilo das do Dia da virada (.vr-pill),
   com o ponto piscando na linha de cada uma */
.pbi-accl .acc-tag rect{fill:#0b1220e6;stroke-width:1}
.pbi-accl .acc-tag text{fill:var(--strong)}.pbi-accl .acc-tag .tk{fill:#cbd5e1}.pbi-accl .acc-tag .tv{font-weight:600}
.pbi-accl .acc-tag .tc.up{fill:#5eead4}.pbi-accl .acc-tag .tc.down{fill:#fda4af}
.pbi-accl .acc-tag.now rect,.pbi-accl .acc-tag.av rect{stroke:#ffd21e88}.pbi-accl .acc-tag.pv rect{stroke:#5eead488}
.pbi-accl .acc-tag.now .tv,.pbi-accl .acc-tag.av .tv{fill:#ffd21e}.pbi-accl .acc-tag.pv .tv{fill:#5eead4}
.pbi-accl .nowdot{fill:#ffd21e;stroke:#0e1422;stroke-width:1.5}
.pbi-accl .nowpulse,.pbi-accl .pjpulse,.pbi-accl .accpulse{fill:none;stroke-width:1.2;transform-box:fill-box;transform-origin:center;animation:vr-pulse 2.4s ease-out infinite}
.pbi-accl .nowpulse,.pbi-accl .accpulse.av{stroke:#ffd21e}.pbi-accl .pjpulse,.pbi-accl .accpulse.pv{stroke:#5eead4}
.pbi-accl .pjd{fill:#99f6e4;fill-opacity:.9}
.pbi-accl .ldd.av{fill:#ffd21e}.pbi-accl .ldd.pv{fill:#5eead4}
@media (prefers-reduced-motion:reduce){.pbi-accl .nowpulse,.pbi-accl .pjpulse,.pbi-accl .accpulse{animation:none;opacity:.5}}

/* 0.86.10: Atualizar dados como cartão no alto do Carregar dados (saiu do topo de todas as telas) */
.upd-inline{margin-bottom:14px}.upd-inline .upd-pop{position:static;width:auto;max-height:none;overflow:visible;padding:4px 2px;border:0;background:transparent;box-shadow:none;display:flex;flex-direction:column;gap:10px}
.upd-inline .upd-groups{flex-direction:row;flex-wrap:wrap;gap:18px}
/* 0.86.12: fluxo líquido e saldos no alto da matriz do fluxo de caixa */
.cash-table .balance-row.top td{border-top:0}.cash-table .balance-row.top.end td{border-bottom:6px solid transparent;background-clip:padding-box}
.cash-table .balance-row.top.end+tr td{border-top:1px solid #25323c}
/* 0.87.0: mês do Fechamento DS (planilha de fechamento da DS) no fluxo de caixa */
.cash-table th.ds small{color:#c6e86b}
/* 0.87.0: meses, saldos e fluxo líquido congelados no alto da matriz do fluxo de caixa */
.table-wrap.cash-table.cash-main{max-height:calc(100vh - 150px);overflow:auto}
.cash-main thead th{position:sticky;top:0;z-index:3;background:#0d1218}
.cash-main tr.pin td{position:sticky;z-index:2;background:#121821}.cash-main tr.pin.result-row td{background:#0f1a24}
.cash-main tr.pin td{box-shadow:0 -6px 0 #0d1218}.cash-main tr.pin.end td{border-bottom:0;box-shadow:0 -6px 0 #0d1218,0 8px 0 #0d1218}
/* 0.88: botões Fluxo mês a mês / DS x Bling x Orçado no alto da matriz. */
.cash-view{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:12px 0 8px}.cash-view label{color:#8294a4;font-size:11px}
.cash-cmp th.ds small{color:#c6e86b}.cash-cmp th.diff,.cash-cmp td.diff{color:#a9b8c6}.cash-cmp td.diff.neg{color:#ff8f8f}
.cash-cmp td.ds{color:#e6f3c4}.cash-cmp td.ds.neg{color:#ff8f8f}
.cash-view .cv-k{color:#c6e86b;font-size:11px;margin-left:6px}
.bento .card.cmp-full{grid-column:1/-1}
/* 0.88.4 (Diego: "um vermelho para os números negativos"): na matriz e no DS x Bling os negativos ficam vermelhos. */
.cash-table table td.amount.neg,.cash-table table tr.result-row td.amount.neg,.cash-table table tr.balance-row td.amount.neg{color:#f28d87}
/* 0.89: caixinha Só bancos do fechamento no topo. */
.dates .bank-scope{display:inline-flex;gap:6px;align-items:center;font-size:11px;color:#8294a4;white-space:nowrap}.dates .bank-scope[hidden]{display:none}
.budget-table th.hist small,th.amount.hist small{display:block;font-size:9px;color:#71879a;font-weight:400}th.amount.hist.ds small{color:#c6e86b}
/* 0.91.0 (Diego: relatório para alterar no Bling, desfazer um por um ou tudo, sábado e domingo na segunda, dia inteiro para outro dia). */
.plan-actions{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin:0 0 10px}
.plan-actions .pill{border:0;border-radius:999px;background:rgba(255,255,255,.055);color:#cbd5e1;padding:5px 12px;font-size:11px;display:inline-flex;gap:6px;align-items:center;max-width:420px;transition:background .2s,color .15s}
.plan-actions .pill small{color:var(--faint);font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.plan-actions .pill:hover:not(:disabled){background:rgba(255,210,30,.12);color:var(--strong)}
.plan-actions .pill:disabled{opacity:.4;cursor:default}
.plan-actions .undo-btn:not(:disabled){color:var(--accent)!important}
.plan-actions .report-btn{margin-left:auto}
.day-head[draggable="true"]{cursor:grab}
.day-from{display:flex;flex-direction:column;gap:2px;margin:2px 0 4px}
.day-from span{font-size:9.5px;color:#e0b569;background:rgba(224,181,105,.08);border-radius:6px;padding:2px 6px;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rep-box{width:min(1100px,100%)}
.rep-actions{display:flex;gap:8px;align-items:center}
.rep-head{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;font-size:11px;color:var(--muted);border-bottom:1px solid var(--line);padding-bottom:8px;margin-bottom:10px}
.rep-head b{display:block;font-size:15px;font-weight:500;color:var(--strong)}
.rep-lead{font-size:12px;line-height:1.6;color:#cbd5e1;margin:0 0 12px}
.rep-note{font-size:11px;color:var(--faint);margin:10px 0}
.rep-paper h3{font-size:12px;font-weight:500;margin:16px 0 6px;color:var(--strong)}
.rep-table{white-space:normal}
.rep-table th,.rep-table td{padding:6px 8px;font-size:11px;vertical-align:top}
.rep-table td small{display:block;color:var(--faint);font-size:9.5px}
.rep-table td.to{color:var(--accent)}
.rep-table td.to small{display:inline}
.rep-table .ck{width:34px;text-align:center}
.rep-table .box{display:inline-block;width:12px;height:12px;border:1px solid #64748b;border-radius:2px}
.print-root{display:none}
.rep-sign{display:flex;gap:40px;justify-content:space-between;margin-top:26px;font-size:11px;color:var(--muted);border:0;padding:0}
@media print{
 @page{size:A4 landscape;margin:12mm}
 html:has(body.print-report),body.print-report{background:#fff!important;margin:0}
 body.print-report>:not(.print-root){display:none!important}
 body.print-report::before,body.print-report::after{display:none!important}
 .print-root{display:block!important}
 body.print-report .rep-paper,body.print-report .rep-paper *{color:#111!important;background:#fff!important}
 body.print-report .rep-table th{position:static;border-bottom:1px solid #999}
 body.print-report .rep-table td{border-bottom:1px solid #ddd}
 body.print-report .rep-table tr{break-inside:avoid}
 body.print-report .rep-table .box{border-color:#333}
 body.print-report .rep-paper small{color:#555!important}
}
/* 0.92.0 (Diego: "um botão para ver as contas vencidas"; "um calendário em cima com o saldo inicial, total de saídas e total de entradas"). */
.segmented.plan-view{display:inline-flex;margin:4px 0 12px}
.plan-strip{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;padding:14px 16px 22px;margin:0 0 10px}
.plan-strip .k,.late-figs .k{display:block;font-size:10.5px;color:var(--faint)}
.plan-strip .n,.late-figs .n{font-family:var(--num);font-size:19px;font-variant-numeric:tabular-nums}
.plan-strip .strip-warn,.plan-strip .strip-note{grid-column:1/-1;margin:0;font-size:10.5px}
.plan-strip .strip-warn{color:#e0b569}.plan-strip .strip-note{color:var(--faint)}
.late-bento{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:0 0 12px}
.late-card{padding:14px 16px 24px}.late-card .eyebrow{margin-bottom:8px}
.plan-late-cards{margin:12px 0}.plan-late-cards .late-figs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.late-btn{all:unset;box-sizing:border-box;cursor:pointer;display:block;padding:8px 10px;border-radius:12px;background:rgba(148,163,184,.06);transition:background .15s,transform .15s}.late-btn:hover{background:rgba(250,204,21,.1);transform:translateY(-1px)}.late-btn:focus-visible{outline:1px solid var(--accent)}.late-btn.empty{cursor:default;opacity:.5}.late-btn.empty:hover{background:rgba(148,163,184,.06);transform:none}@media(prefers-reduced-motion:reduce){.late-btn:hover{transform:none}}
.late-figs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.late-head{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin:0 0 8px}
.late-before{font-size:11px;color:var(--muted);display:inline-flex;gap:6px;align-items:center}
.late-table{max-height:62vh}
@media(max-width:700px){.plan-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.late-bento{grid-template-columns:1fr}}
.plan-actions .plan-msg{order:10;flex-basis:100%;font-size:11px;color:#e0b569}
.day-head small.hol{color:#e0b569;text-transform:none}
.plan-from{display:inline-flex;gap:8px;align-items:center;font-size:11px;color:var(--muted);margin:0 0 12px 14px}.plan-from input{padding:4px 8px}
.plan-strip .strip-mode{grid-column:1/-1;margin:0;font-size:10.5px;color:var(--muted)}
/* 0.93.3: saldo dia a dia abaixo da faixa do planejamento. */
.plan-days{padding:6px 10px 22px;margin:0 0 10px}
.plan-days .table-wrap{max-height:none}
.plan-days th,.plan-days td{padding:5px 10px;font-size:11.5px}
.plan-days td small{color:var(--faint);font-size:9.5px}
.plan-days tbody tr{cursor:pointer}
.plan-days tr.today td:first-child{color:var(--accent)}
.plan-days tr.quiet td{color:var(--faint)}
.plan-days td.neg,.plan-days td.neg b{color:#f28d87!important}.plan-days td.positive{color:#93c5fd!important}
.cal-head{display:flex;gap:12px;align-items:center;font-size:11px;color:var(--faint);margin:4px 0 8px}
/* 0.93.6: Até fixo dos vencidos (preso na véspera de "Contar a partir de") */
.plan-until b{font-weight:600;color:var(--text);background:rgba(255,255,255,.05);border-radius:999px;padding:5px 12px;font-size:12px}
/* 0.94.0: saldos dos bancos por dia (Planejamento › Contas bancárias e saldos) */
.plan-saldos{margin-top:10px}.sg-card .cad-head{display:flex;gap:12px;align-items:center;flex-wrap:wrap;font-size:12px;margin-bottom:8px}
.sg-wrap{overflow:auto;max-height:560px}
.saldo-grid{border-collapse:separate;border-spacing:0;font-size:11px;width:max-content}
.saldo-grid th,.saldo-grid td{padding:3px 4px;white-space:nowrap}
.saldo-grid thead th{position:sticky;top:0;z-index:2;background:var(--card,#0e1422);font-weight:500;color:var(--muted)}
.saldo-grid th.day small{display:block;font-size:9px;color:var(--faint,#7c8aa0)}.saldo-grid th.wkend{color:#7c8aa0}.saldo-grid th.today{color:var(--accent)}
.saldo-grid .sg-flow{position:sticky;left:0;z-index:1;background:var(--card,#0e1422);width:58px}
.saldo-grid .sg-name{position:sticky;left:58px;z-index:1;background:var(--card,#0e1422);min-width:200px;max-width:240px;overflow:hidden;text-overflow:ellipsis}
.saldo-grid thead .sg-flow,.saldo-grid thead .sg-name{z-index:3}
.saldo-grid td small{display:block;font-size:9px;color:var(--faint,#7c8aa0)}
.saldo-grid .sg-in{width:92px;font-size:11px;padding:3px 5px}.saldo-grid .sg-in::placeholder{color:#5f6b78}
.saldo-grid tr.off td:not(.sg-flow){opacity:.55}
.saldo-grid tr.sg-group td{padding-top:10px;font-size:10px;letter-spacing:.04em;color:#7c8aa0;text-transform:none}
.saldo-grid tr.result-row td{font-weight:600;border-top:1px solid #25323c}.saldo-grid tr.result-row.all td{font-weight:400;color:var(--muted)}
.flow-tg{font-size:10px;padding:2px 9px;border-radius:999px;border:0;background:rgba(255,255,255,.06);color:#9ea3ab;cursor:pointer}
.flow-tg.on{background:rgba(45,212,191,.16);color:#5eead4}.flow-tg:disabled{cursor:default}
/* 0.94.1: títulos agrupados por categoria */
.grp-bar{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:6px 0 8px;font-size:12px}.grp-bar .m{color:var(--muted)}
.titles-table tr.grp-row{cursor:pointer}.titles-table tr.grp-row td{font-weight:600;color:var(--strong)}
.titles-table tr.grp-row td small{font-weight:400;color:var(--muted);margin-left:6px}
.titles-table tr.grp-row .grp-caret{display:inline-block;width:14px;color:var(--accent)}
.titles-table tr.grp-row.open td{background:rgba(255,210,30,.04)}
.titles-table tr.grp-row:focus-visible{outline:1px solid var(--accent);outline-offset:-1px}
/* 0.94.2: janela da baixa do título */
.baixa-link{padding:0;font-size:inherit;color:inherit;text-decoration:underline dotted;text-underline-offset:3px;cursor:pointer}.baixa-link:hover{color:var(--accent)}
.baixa-dlg{width:min(640px,calc(100vw - 32px))}.baixa-dlg .modal-head{display:flex;justify-content:space-between;align-items:flex-start;padding:18px 22px 6px}
.baixa-dlg .modal-head h2{font-size:17px;margin:2px 0 0}.baixa-dlg>.m,.baixa-dlg>.lede{padding:0 22px 18px;font-size:12.5px}
.bx-card{margin:8px 22px 18px;padding:14px 16px;display:flex;flex-direction:column;gap:10px}
.bx-top,.bx-figs{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px}
.bx-top .k,.bx-fig .k{display:block;font-size:10.5px;color:var(--muted);margin-bottom:2px}.bx-top b{font-size:13px}.bx-top small{color:var(--muted)}
.bx-fig .n{font-size:15px;font-variant-numeric:tabular-nums}.bx-card .m{font-size:11px;color:var(--muted);margin:0}
/* 0.94.2: submenu Saldos dos bancos destacado (pedido do Diego) */
/* 0.97.3: Saldos bancários e Atualizar dados numa cor só, a mesma do segmentador (Diego: "uma cor só pra os 2 botões que não destoem") */
aside nav .sub-btn.hl-orange,.subnav .hl-orange,aside nav .sub-btn.hl-blue,.subnav .hl-blue{color:var(--text);font-weight:600}
aside nav .sub-btn.hl-orange.active,.subnav .hl-orange.active,aside nav .sub-btn.hl-blue.active,.subnav .hl-blue.active{color:#fff;background:rgba(255,255,255,.13)}
.sg-screen{padding:14px 16px}
.saldo-grid td.sg-flow,.saldo-grid td.sg-name,.saldo-grid th.sg-flow,.saldo-grid th.sg-name{background:#111827!important}
/* 0.94.4: bancos do cliente (Bancos) */
.client-banks{display:flex;flex-direction:column;gap:8px}.cb-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;max-height:260px;overflow:auto}
.cb-list li{display:grid;grid-template-columns:28px 1fr;column-gap:10px;align-items:center;font-size:12px}.cb-list .bank-logo{grid-row:span 2;width:26px;height:26px;font-size:10px}
.cb-name{font-weight:600;color:var(--strong)}.cb-name small{font-weight:400;color:var(--muted);margin-left:6px}.cb-list .m{font-size:10.5px;color:var(--muted)}
/* 0.94.5 (Diego: "não cabe lá no cantinho do lado direito?"): submenu numa linha só; botões mais justos e, em tela estreita, rola de lado. */
.subnav .segmented{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;max-width:100%}.subnav .segmented::-webkit-scrollbar{display:none}
.subnav .segmented button{padding-left:10px;padding-right:10px;white-space:nowrap;flex:none}
/* 0.94.6: importar saldos do Google Sheets */
.sh-panel{display:flex;flex-direction:column;gap:8px;margin:4px 0 12px;padding:12px 14px;border-radius:14px;background:rgba(255,255,255,.03);font-size:12px}
.sh-row{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap}.sh-row label{display:flex;flex-direction:column;gap:3px;font-size:11px;color:var(--muted);flex:1 1 260px}
.sh-row input,.sh-row textarea{width:100%;font-size:12px}.sh-row textarea{flex:1 1 400px;min-height:44px;resize:vertical}
.sh-panel .m{font-size:11px;color:var(--muted);margin:0}.sh-msg{margin:0;font-size:12px;color:var(--in)}.sh-msg.err{color:#f28d87}
.sh-sum{margin:0}.sh-choice{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.sh-days{display:flex;flex-direction:column;gap:6px;max-height:220px;overflow:auto}.sh-month{display:flex;gap:4px;flex-wrap:wrap;align-items:center}.sh-month .k{width:62px;color:var(--muted);font-size:11px}
.sh-day{display:inline-flex;align-items:center;justify-content:center;min-width:30px;padding:3px 6px;border-radius:999px;background:rgba(255,255,255,.05);cursor:pointer;font-size:11px;font-variant-numeric:tabular-nums}
.sh-day input{position:absolute;opacity:0;pointer-events:none}.sh-day.on{background:rgba(255,210,30,.18);color:var(--accent)}
/* 0.94.6 (Diego: "tem que ir lá para cima esses saldos e ficar congelados"): totais logo abaixo das datas, presos no topo com elas. */
.saldo-grid thead{position:sticky;top:0;z-index:4}.saldo-grid thead th{position:static}
.saldo-grid thead th,.saldo-grid thead td{background:#111827}.saldo-grid thead .sg-flow,.saldo-grid thead .sg-name{position:sticky}
.saldo-grid thead tr.result-row td{border-top:1px solid #25323c}.saldo-grid thead tr.result-row.all td{border-bottom:1px solid #25323c}
/* 0.94.8: Enviar pelo WhatsApp na grade de saldos */
.sg-wa{display:inline-flex;gap:6px;align-items:center}
.sg-wa select{font-size:11px;padding:4px 8px;border-radius:999px;border:0;background:rgba(255,255,255,.06);color:inherit}
#sg-copy{color:#4ade80}
/* 0.94.9: Cadastros › Usuários */
.us-form{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end;font-size:12px}
.us-form>label{display:grid;gap:4px;color:var(--faint,#9ca3af)}
.us-form>label input,.us-form>label select{min-width:180px}
.us-field{display:grid;gap:6px}
.us-mods{display:inline-flex;flex-wrap:wrap;gap:6px}
.us-mod{display:inline-flex;align-items:center;gap:4px;font-size:11px;padding:3px 9px;border-radius:999px;background:rgba(255,255,255,.05);cursor:pointer}
.us-mod:has(input:checked){background:rgba(251,146,60,.16);color:#fdba74}
.us-mod:has(input:disabled){opacity:.7}
.us-act{white-space:nowrap}.us-act .text-button{padding:2px 6px}
.us-act select{font-size:11px;padding:2px 8px;border-radius:999px;border:0;background:rgba(255,255,255,.06);color:inherit}
.us-passrow td{display:flex;gap:10px;align-items:flex-end;font-size:12px}.us-passrow label{display:grid;gap:4px}
/* 0.94.10: Trocar senha */
.pass-form{display:grid;gap:14px;max-width:340px;font-size:12px}.pass-form label{display:grid;gap:6px;color:var(--faint,#9ca3af)}
.pass-dlg{padding:22px 26px;width:min(420px,92vw)}.pass-dlg .modal-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:14px}
/* 0.94.11: dia do relatório escolhido na coluna */
.saldo-grid th .sg-day{all:unset;cursor:pointer;display:block;text-align:right;border-radius:8px;padding:2px 6px}
.saldo-grid th .sg-day:hover,.saldo-grid th .sg-day:focus-visible{background:rgba(74,222,128,.12)}
.saldo-grid th.picked .sg-day{background:rgba(74,222,128,.18);color:#4ade80}
.saldo-grid td.picked{background:rgba(74,222,128,.06)}
.sg-pick{font-size:11px;color:#4ade80;padding:4px 10px;border-radius:999px;background:rgba(74,222,128,.08)}
/* 0.94.12: coluna Enviar (o que vai no relatório) */
.saldo-grid .sg-send{position:sticky;left:58px;z-index:1;width:72px;background:#111827!important}
.saldo-grid thead .sg-send{z-index:3}
.saldo-grid .sg-name{left:130px}
.send-tg{font-size:10px;padding:2px 9px;border-radius:999px;border:0;background:rgba(255,255,255,.06);color:#9ea3ab;cursor:pointer;outline:0}.send-tg.on{color:#4ade80;background:rgba(74,222,128,.14)}.send-tg:focus-visible{box-shadow:0 0 0 1px #4ade80}
/* 0.94.14: filtros de Fluxo, Enviar e Conta na grade de saldos */
.saldo-grid .sg-f{display:block;margin-top:4px;font-size:10px;padding:1px 8px;border-radius:999px;border:0;background:rgba(255,255,255,.06);color:#9ea3ab;cursor:pointer}
.saldo-grid .sg-f.on{background:rgba(250,204,21,.16);color:#fde047}
.saldo-grid .sg-q{display:block;margin-top:4px;width:100%;max-width:200px;font-size:11px;padding:3px 9px;border-radius:999px;border:0;background:rgba(255,255,255,.06);color:inherit}
.saldo-grid .sg-fcount{font-size:10px;color:#fde047;margin-left:4px}
.saldo-grid td.sg-flow,.saldo-grid th.sg-flow{box-shadow:-14px 0 0 #111827}
/* 0.94.15: Só bancos do fechamento alinhado com as datas; some em Saldos bancários */
.dates .bank-scope{align-self:center;margin:0;padding:0 4px;line-height:1}
.dates .bank-scope input{margin:0;width:auto;height:auto}
.dates .bank-scope.off-here{display:none!important}
.saldo-grid thead td.sg-flow,.saldo-grid thead td.sg-send,.saldo-grid thead td.sg-name{position:sticky;z-index:3}
.saldo-grid thead td.sg-flow{left:0;box-shadow:-14px 0 0 #111827}.saldo-grid thead td.sg-send{left:58px}.saldo-grid thead td.sg-name{left:130px}
/* 0.94.18 · Ordem das contas e cheques a compensar */
.saldo-grid .sg-ord{position:sticky;left:130px;z-index:1;width:54px;min-width:54px;background:#111827!important;text-align:center}
.saldo-grid .sg-name,.saldo-grid thead td.sg-name{left:184px}
.saldo-grid thead .sg-ord,.saldo-grid thead td.sg-ord{position:sticky;left:130px;z-index:3}
.sg-ord-in{width:40px;font:inherit;font-size:11px;border:0;border-radius:999px;background:rgba(255,255,255,.06);text-align:center;color:inherit;padding:3px 0}
.sg-ord-in:focus{outline:1px solid rgba(250,204,21,.5);background:rgba(255,255,255,.1)}
.sg-ord-in::placeholder{color:rgba(255,255,255,.25)}
.sg-addbox{display:flex;gap:8px;align-items:center;width:420px}
.saldo-grid tr.off td.sg-send,.saldo-grid tr.off td.sg-ord,.saldo-grid tr.off td.sg-name{opacity:1}.saldo-grid tr.off td.sg-send>*,.saldo-grid tr.off td.sg-ord>*,.saldo-grid tr.off td.sg-name>*{opacity:.55}.saldo-grid tr.off td.sg-name{color:var(--faint,#7c8799)}
.sg-addch input{flex:1;min-width:180px;font:inherit;font-size:11px;border:0;border-radius:999px;background:rgba(255,255,255,.06);color:inherit;padding:5px 12px}
.sg-addch input:focus{outline:1px solid rgba(250,204,21,.5)}
.sg-chdel{opacity:.4;margin-left:4px;padding:0 4px}.sg-chdel:hover,.sg-chdel.armed{opacity:1;color:#f87171}
/* 0.94.19 · Planejamento: A pagar | Vencidos e as datas na mesma linha */
.planning>.plan-bar{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;margin:4px 0 12px}
.plan-bar>.plan-view{padding:3px;margin:0}.segmented.plan-view>button{margin:0}.plan-bar>.plan-view button{display:inline-flex;align-items:center;line-height:1.2}
.plan-bar .plan-from{margin:0}

/* 0.95.0 · Tema claro e escuro: botão no pé do menu (sol no escuro, lua no claro). As cores do tema claro saem de
   theme-light.css, gerado deste arquivo por scripts/build-light-theme.mjs; ajustes finos do claro ficam aqui embaixo. */
#rail-theme svg{width:18px;height:18px;flex:none;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
#rail-theme .moon{display:none}
:root[data-theme=light] #rail-theme .sun{display:none}
:root[data-theme=light] #rail-theme .moon{display:inline}
/* 0.95.2 · O campo de data escondido (dp-native) fica preso à tabela que rola por dentro; antes cada linha esticava a página (Diego: espaço enorme embaixo em Vencidos) */
.table-wrap{position:relative}
/* 0.95.3 · Atualizar dados no começo do Financeiro (cor única com Saldos bancários desde 0.97.3, ver acima) */
/* 0.95.6 — resumo dia a dia: arrastar linha (dia inteiro) ou Entradas/Saídas para outra linha */
.plan-days tr.can-drag td:first-child,.plan-days td[data-drag-kind]{cursor:grab}
.plan-days tr.drop td{background:#11262f;box-shadow:inset 0 1px 0 #64d4e8,inset 0 -1px 0 #64d4e8}
.plan-days .pd-arrow{color:var(--faint);font-size:9px;display:inline-block;width:10px}
.plan-days tr.open td{background:rgba(255,255,255,.035)}
.plan-days tr.pd-detail{cursor:default}
.plan-days tr.pd-detail>td{padding:4px 10px 12px 26px;background:rgba(255,255,255,.02)}
.pd-chips{display:flex;flex-direction:column;gap:3px;max-width:560px}
.pd-sec{display:flex;flex-direction:column;gap:3px;padding:6px 0 4px}.pd-sec+.pd-sec{border-top:1px solid rgba(148,163,184,.12);margin-top:4px}.pd-sec-h{display:flex;justify-content:space-between;gap:10px;margin:0 0 2px;font-size:11px;color:var(--muted)}.pd-sec-h small{font-family:var(--num);color:var(--faint)}.pd-sec.moved .pd-sec-h span{color:var(--accent)}
.auto-form{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:14px 0 6px}.auto-min{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--muted)}.auto-min input{width:130px}.auto-paper{margin-top:10px}.auto-paper h3{margin:0 0 4px;font-size:14px}.auto-paper .m{font-size:12px;color:var(--muted);margin:4px 0}.auto-pop .modal-box{max-width:980px}
.pd-chips>.text-button{align-self:flex-start;margin-top:6px}
/* 0.96 — Planejamento: Confirmar pagamentos e recebimentos */
.confirm-ctl{display:flex;gap:6px;align-items:center;margin-left:auto}
.confirm-ctl .pill,.pd-cf-head .pill{border:0;border-radius:999px;background:rgba(255,255,255,.055);color:#cbd5e1;padding:5px 12px;font-size:11px;line-height:1.3;box-shadow:none;cursor:pointer}
.confirm-ctl .pill:hover,.pd-cf-head .pill:hover{background:rgba(255,255,255,.1);color:#fff}
.pill.cf-mode.on,#only-open.on{background:rgba(163,230,53,.16);color:#bef264}
.cf-tick{all:unset;box-sizing:border-box;display:inline-grid;place-items:center;width:15px;height:15px;flex:none;border-radius:5px;font-size:10px;line-height:1;cursor:pointer;color:transparent;background:rgba(255,255,255,.07);box-shadow:inset 0 0 0 1px rgba(255,255,255,.18);margin-right:5px;vertical-align:-2px}
.cf-tick:hover{color:#bef264;box-shadow:inset 0 0 0 1px #bef264}
.cf-tick.on{color:#0b0f19;background:#a3e635;box-shadow:none}
.cf-tick.part{color:#a3e635;background:rgba(163,230,53,.18);box-shadow:none}
.cf-tick:focus-visible{outline:2px solid #bef264;outline-offset:1px}
.chip.conf-none,.chip-items li.unconf,.pd-confirm tr.unconf td,.modal-table tr.unconf td{opacity:.55}
.chip.conf-none:hover,.chip-items li.unconf:hover,.pd-confirm tr.unconf:hover td{opacity:.9}
.plan-days td.faint{color:var(--faint)}
.pd-confirm{max-width:900px}
.pd-cf-head{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;margin:2px 0 6px;font-size:11px;color:var(--muted)}
.pd-confirm table{width:100%}
.pd-confirm th,.pd-confirm td{padding:3px 8px!important;font-size:11px!important}
.pd-confirm tr[draggable=true]{cursor:grab}
.cf-amount{width:110px;text-align:right;padding:3px 8px;font-size:11px}
/* 0.96.2 — subtotais do dia aberto (Confirmar) */
.pd-subs{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:4px 0 8px}
.pd-sub{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 16px;padding:7px 12px;border-radius:10px;background:rgba(255,255,255,.035);font-size:11px;color:var(--muted)}
.pd-sub.on{background:rgba(163,230,53,.07)}
.pd-sub .k{color:#e5e7eb;font-weight:600;min-width:110px}.pd-sub.on .k{color:#bef264}
.pd-sub .k small{color:var(--faint);font-weight:400;margin-left:3px}
.pd-sub b{font-weight:600;margin-left:3px}
@media (max-width:760px){.pd-subs{grid-template-columns:1fr}}
.cal-head .pd-all{margin-left:auto;display:flex;gap:12px}
/* 0.97.3 · Plano de contas: a regra .plan-view do Planejamento (0.92.0) virava a tela inteira numa fileira (Diego: "desalinhado"); agora só vale para o segmentador. Sem recado, a linha vazia some. */
section.plan-view>.budget-message:empty{display:none}
/* 0.100.0: WhatsApp da DS, no fim do Escritório (whatsapp.js) */
.wa-slot{grid-column:1/-1;min-width:0}.wa{gap:14px}
.wa-hero{display:flex;gap:14px;align-items:flex-start}.wa-hero .headline{font-size:16px;margin:2px 0 4px}
.wa-tpl,.wa-queue,.wa-contacts ul,.wa-sent ul,.wa-in ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.wa-tpl{flex-direction:row;flex-wrap:wrap;gap:4px 14px;font-size:11px;color:var(--muted)}
.wa-dot{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:6px;background:var(--faint)}.wa-dot.ok{background:#a3e635}
.wa-q{background:var(--line-soft);border-radius:14px;padding:10px 12px;display:flex;flex-direction:column;gap:8px}
.wa-q.erro{box-shadow:inset 3px 0 0 #fb7185}
.wa-q-head{display:flex;flex-wrap:wrap;gap:4px 10px;align-items:center;font-size:12px}.wa-q-head span{color:var(--muted)}
.wa-q-body{display:flex;gap:12px;align-items:flex-start}
.wa-thumb{width:140px;max-height:200px;object-fit:cover;object-position:top;border-radius:10px;flex:none}
.wa-att{font-size:11px;color:var(--muted);flex:none;max-width:160px}
.wa-text,#wa-body{flex:1;min-width:0;width:100%;background:var(--card);border:1px solid var(--line);border-radius:10px;color:var(--text);font:inherit;font-size:12px;padding:8px 10px;resize:vertical}
.wa-q-actions,.wa-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:flex-end}
.wa-row{justify-content:flex-start}
.wa-chip{font-size:10px;border-radius:999px;padding:1px 8px;background:var(--card);color:var(--muted)}
.wa-chip.erro{color:#fb7185}.wa-chip.lida,.wa-chip.entregue{color:#a3e635}.wa-chip.rascunho{color:var(--accent)}
.wa-new,.wa-contacts,.wa-sent,.wa-in{display:flex;flex-direction:column;gap:8px;padding-top:10px;border-top:1px solid var(--line-soft)}
.wa-cap{font-size:11px;color:var(--muted);display:flex;gap:8px;align-items:center}.wa-cap input{flex:1}
.wa-contacts li,.wa-sent li,.wa-in li{display:flex;flex-wrap:wrap;gap:4px 10px;align-items:center;font-size:12px}
.wa-contacts li span,.wa-sent li span,.wa-in li span{color:var(--muted)}.wa-contacts li.off{opacity:.5}
.wa-kinds{display:flex;gap:4px}.wa-k{border:0;border-radius:999px;font-size:10px;padding:2px 9px;background:var(--line-soft);color:var(--faint);cursor:pointer}.wa-k.on{background:rgba(163,230,53,.16);color:#bef264}
.wa-snip{flex-basis:100%;font-size:11px}
@media (max-width:700px){.wa-q-body{flex-direction:column}.wa-thumb{width:100%}}
/* 0.98.0 · Tema neon (inspiração cyberpunk; Diego: "algo tipo cyberpunk 2077"). As cores saem de theme-neon.css, gerado
   deste arquivo por scripts/build-light-theme.mjs (fundo violeta bem escuro, destaques em amarelo elétrico, ciano e magenta).
   Aqui só o toque próprio do neon: brilho nos títulos e no item ativo, aurora mais viva e linhas de varredura bem fracas.
   O html na frente vence o arquivo gerado, que tem a mesma regra sem ele. */
#rail-theme .bolt{display:none}
:root[data-theme=light] #rail-theme .moon{display:none}
:root[data-theme=light] #rail-theme .bolt{display:inline}
:root[data-theme=neon] #rail-theme .sun{display:none}
:root[data-theme=neon] #rail-theme .moon{display:inline}
html:root[data-theme=neon]{--hover-line:rgba(244,226,42,.32);--hover-glow:0 10px 30px -16px rgba(244,226,42,.42),0 0 22px -14px rgba(255,60,190,.5)}
html:root[data-theme=neon] ::selection{background:rgba(255,60,190,.45);color:#fff}
html:root[data-theme=neon] h1{color:#f4e22a;text-shadow:0 0 14px rgba(244,226,42,.35)}
html:root[data-theme=neon] .card{background:linear-gradient(135deg,rgba(255,60,190,.075) 0%,rgba(150,90,255,.045) 38%,rgba(36,240,253,.018) 70%,rgba(36,240,253,0) 94%)}
html:root[data-theme=neon] .card .card{background:linear-gradient(135deg,rgba(36,240,253,.05) 0%,rgba(36,240,253,0) 90%)}
html:root[data-theme=neon] .brand{text-shadow:0 0 12px rgba(36,240,253,.35)}
html:root[data-theme=neon] nav button.active{background:linear-gradient(135deg,rgba(255,60,190,.18),rgba(36,240,253,.10));box-shadow:inset 2px 0 0 #f4e22a,0 0 18px -8px rgba(255,60,190,.6);color:#fdfbe0}
html:root[data-theme=neon] body::before{background:radial-gradient(38% 32% at 78% 12%,rgba(255,60,190,.09),transparent 70%),radial-gradient(42% 36% at 18% 88%,rgba(36,240,253,.07),transparent 70%),radial-gradient(30% 28% at 50% 50%,rgba(244,226,42,.035),transparent 70%)}
html:root[data-theme=neon] body::after{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;background:repeating-linear-gradient(0deg,rgba(36,240,253,.018) 0 1px,transparent 1px 3px)}
/* 0.98.2 Enviar para outro dia sem arrastar (planning.js sendHtml): só o ícone do calendário, no grupo e em cada item */
.send-to{position:relative;display:inline-flex;flex:0 0 auto;opacity:.4;transition:opacity .12s}
.chip:hover .send-to,.chip-items li:hover .send-to,.send-to:focus-within{opacity:1}
.send-to .dp-field{padding:1px 4px;border-radius:6px;gap:0;cursor:pointer}
.send-to .dp-field span{display:none}
.send-to .dp-field svg{width:11px;height:11px}
.chip-items li span:has(+.send-to){font-family:var(--num);white-space:nowrap;margin-left:auto;text-align:right}
/* 0.99.13 (Diego: "desalinha ao abrir"): com o ícone de enviar, o valor do item ia para o meio; agora encosta à direita, como o do grupo. */
@media (prefers-reduced-motion:reduce){.send-to{transition:none}}
.plan-day .chip,.plan-day .chip-items li{position:relative}
.plan-day .send-to{position:absolute;right:2px;top:50%;transform:translateY(-50%);opacity:0;pointer-events:none;background:var(--card);border-radius:6px}
.plan-day .chip:hover .send-to,.plan-day .chip-items li:hover .send-to,.plan-day .send-to:focus-within{opacity:1;pointer-events:auto}
/* 0.99.0 Real x orçado no pé do Planejamento (planning.js rxoHtml) */
.plan-rxo{margin-top:14px;padding:16px 18px 24px}
.plan-rxo h3{margin:0 0 4px;font-size:13px}
.plan-rxo .rxo-story{margin:0 0 12px;font-size:12px;color:var(--muted);max-width:900px}
.rxo-figs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:12px}
.rxo-figs .k{display:block;font-size:10.5px;color:var(--faint)}
.rxo-figs .n{display:block;font-family:var(--num);font-size:18px;font-variant-numeric:tabular-nums}
.rxo-figs small{font-size:10px;color:var(--faint)}
.plan-rxo .table-wrap{max-height:560px;overflow:auto}
.plan-rxo td.amount.neg{color:#f28d87}
.plan-rxo tr.rxo-row td:first-child{padding-left:22px}
.plan-rxo tr.rxo-group td{padding-top:10px}
.plan-rxo .code{color:var(--faint);font-size:10px}
@media(max-width:700px){.rxo-figs{grid-template-columns:1fr}}
/* 0.99.1 Expandir tudo / Recolher tudo no Fluxo de caixa e no Orçamento */
.pd-all.coll-all{display:inline-flex;gap:12px;margin-left:auto;align-items:center}
.matrix-bar{display:flex;justify-content:flex-end;margin:6px 0 -2px}
.grp-table tr.grp-loose td{font-style:italic;opacity:.85}
.plan-rxo .rxo-head{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:4px}.plan-rxo .rxo-head h3{margin:0}
/* 0.99.4 (Diego: "quando expando fica difícil saber o que foi expandido"): no Real x orçado, as contas abertas vão mais para a direita, em tom mais claro, com um fio amarelo à esquerda; o grupo fica com fundo mais forte */
.plan-rxo tr.rxo-group td{background:#ffffff0d}
.plan-rxo tr.rxo-row td{color:#9fb2c0;font-size:11.5px}
.plan-rxo tr.rxo-row td:first-child{padding-left:46px;box-shadow:inset 3px 0 0 #e0b56966}
.plan-rxo tr.rxo-row td.neg{color:#d98a85}
/* 0.99.5 Baixado no Planejamento: chips do que já entrou e saiu (não se arrastam) */
.chip.paid{background:#0f1d1a;cursor:default}.chip.paid .chip-toggle{font-style:italic}
.plan-controls .plan-src{margin-right:4px}
/* 0.99.6 Relatório para o Bling bem à vista (Diego não achou o botão apagado) */
.plan-actions .report-btn{background:#e0b5691f;color:#f3d38f;font-weight:600}
.plan-actions .report-btn[data-has]{background:#e0b56940;color:#ffe2a3}
/* 0.99.8 Saldo anotado e Diferença no resumo dia a dia do Planejamento */
.plan-days td.noted{color:#c6e86b}.plan-days td.gap{color:#e0b569}.plan-days td.gap.neg{color:#f28d87}
/* 0.99.9 Saldo planejado: campo digitável no dia a dia, botão pela conta | planejado e diferença em amarelo. */
.cal-head .pl-mode{margin-left:auto}
.plan-days td.planned{padding:2px 6px}
.plan-days .pl-in{width:96px;background:transparent;border:0;border-radius:999px;padding:3px 8px;font:inherit;font-size:11.5px;color:#facc15;text-align:right}
.plan-days .pl-in::placeholder{color:var(--faint)}
.plan-days .pl-in:hover{background:#ffffff0a}.plan-days .pl-in:focus{outline:0;background:#facc1514;box-shadow:inset 0 0 0 1px #facc1555}
.plan-days td.planned.off .pl-in{color:var(--faint);text-decoration:line-through}
.plan-days td.gap.pl{color:#facc15}.plan-days td.gap.pl.neg{color:#f28d87}
/* 0.99.11 Saldo que vale: inicial vindo do planejado (amarelo) ou do anotado (verde) e saldo final anotado em pílula com etiqueta. */
.plan-days td.src-pl .sv,.plan-days td.src-noted .sv{display:inline-block;padding:2px 8px;border-radius:999px;font-weight:600}
.plan-days td.src-pl .sv{background:#facc151f;color:#facc15;box-shadow:inset 0 0 0 1px #facc1566}
.plan-days td.src-noted .sv{background:#c6e86b1a;color:#c6e86b;box-shadow:inset 0 0 0 1px #c6e86b55}
.plan-days td.src-pl.neg .sv,.plan-days td.src-noted.neg .sv{color:#f28d87}
.plan-days td.src-pl .sv::after,.plan-days td.src-noted .sv::after{display:block;font-size:8.5px;font-weight:500;letter-spacing:.04em;text-transform:lowercase;opacity:.8;text-align:right}
.plan-days td.src-pl .sv::after{content:'planejado'}.plan-days td.src-noted .sv::after{content:'anotado'}
/* 0.99.12 Real x orçado: valor clicável abre a janela com os lançamentos. */
.plan-rxo td.rxo-click{cursor:pointer}
.plan-rxo td.rxo-click:hover{text-decoration:underline;text-decoration-color:#facc1588;text-underline-offset:3px}
.rxo-pop .modal-box{max-width:1080px;width:100%}
.rxo-pop td{font-size:11.5px}
.rxo-src-tag{display:inline-block;padding:1px 7px;border-radius:999px;font-size:10px;background:#ffffff0d;color:var(--muted)}
.rxo-src-tag.open{color:#93c5fd;background:#93c5fd14}.rxo-src-tag.tit{color:#c6e86b;background:#c6e86b14}.rxo-src-tag.dir{color:#e0b569;background:#e0b56914}.rxo-src-tag.orc{color:#facc15;background:#facc1514}
/* 0.99.14 (Diego: "esse relatório do Bling só fica ativo se arrastarmos alguma coisa"): apagado sem título arrastado. */
.plan-actions .report-btn:disabled{background:#ffffff0a;color:var(--faint);font-weight:500;cursor:default}
/* 0.99.15 (Diego: "quando aberto, o retângulo atrás poderia sair, tratando-se de matriz. Mas fica o amarelinho na borda"): no Real x orçado,
   as contas dentro do grupo aberto ficam sem a faixa de fundo; só a linha amarela à esquerda, mais forte ao passar o mouse. */
.plan-rxo .table-wrap tbody>tr.rxo-row>td{background:transparent}
.plan-rxo .table-wrap tbody>tr.rxo-row:hover>td{background:rgba(255,255,255,.03)}
.plan-rxo .table-wrap tbody>tr.rxo-row:hover>td:first-child{box-shadow:inset 3px 0 0 #facc15}
/* 0.101.0 (Diego: "ao clicar no cliente ver as coisas pertinentes somente a ele"): módulo sem nenhuma tela do cliente sai da lateral. */
aside nav>.mod.mod-empty{display:none}
/* 0.102.0 · Cadastros › Bases do cliente (Contas, Impostos, Situação do pedido, Frete). */
.cad-bases .cb-seg{margin-top:12px}
/* 0.138.1: + Outra base ao lado das abas das Bases do cliente */
.cb-seg-row{display:flex;align-items:center;flex-wrap:wrap;gap:4px 12px}.cb-seg-row .cb-seg{flex:0 1 auto}.cb-seg-row .cb-more{margin-top:12px}
.cb-table .cb-in,.cb-table select{width:100%;min-width:96px;background:#ffffff08;border:0;border-radius:999px;padding:4px 10px;color:inherit;font:inherit;font-size:12px}
.cb-table .cb-in:focus,.cb-table select:focus{outline:1px solid #ffd21e66}
.cb-table .cb-in.cb-pct{width:72px;min-width:72px;text-align:right}
.cb-table td{font-size:12px;white-space:nowrap}
/* 0.103.0 · Colar da planilha nas Bases do cliente. */
.cb-paste textarea{width:100%;min-height:84px;background:#ffffff08;border:0;border-radius:12px;padding:10px 12px;color:inherit;font:12px/1.5 'IBM Plex Mono',monospace;resize:vertical}
.cb-paste textarea:focus{outline:1px solid #ffd21e66}
.cb-bad{margin:6px 0 0;padding-left:18px;color:#fbbf24}
.cb-table .cb-in.cb-money{width:110px;min-width:110px}
/* 0.105.0 · acabamento: rótulo "100% da MC ideal" do Histórico da margem com um contorno da cor do cartão, para não sumir atrás da primeira barra */
.gl-hist .gl-100t{paint-order:stroke;stroke:var(--card);stroke-width:4px;stroke-linejoin:round}
/* 0.105.0 · acabamento: "hoje" no eixo do gráfico do saldo fica no lugar do dia (antes, sempre no meio). */
.axis,.hl-spark .axis{position:relative}.axis .now[class*=at-]{position:absolute;top:0;transform:translateX(-50%)}
.axis .now.at-10{left:10%}.axis .now.at-15{left:15%}.axis .now.at-20{left:20%}.axis .now.at-25{left:25%}.axis .now.at-30{left:30%}.axis .now.at-35{left:35%}.axis .now.at-40{left:40%}.axis .now.at-45{left:45%}.axis .now.at-50{left:50%}.axis .now.at-55{left:55%}.axis .now.at-60{left:60%}.axis .now.at-65{left:65%}.axis .now.at-70{left:70%}.axis .now.at-75{left:75%}.axis .now.at-80{left:80%}.axis .now.at-85{left:85%}.axis .now.at-90{left:90%}
/* 0.106.0 · acabamento: na Venda do mês, rótulo que cai embaixo de uma pílula (agora, provável, média, ritmo) só aparece ao passar o mouse. */
.pbi-accl .b5t.hv{opacity:0;transition:opacity .15s}.pbi-accl g:hover>.b5t.hv{opacity:1}
/* 0.106.0 · acabamento: com o menu recolhido, o conteúdo começa logo depois dos ícones fantasmas (antes o "DS" ficava atrás do título do primeiro cartão). */
@media(min-width:701px){body:not(.rail-pinned) main{padding-left:58px}}
/* 0.106.0 · acabamento: cabeçalho dos cartões com a mesma altura, com ou sem botões (MC ideal/Operação, %/Valor), para os títulos lado a lado ficarem na mesma linha. */
.card>.sp-head{min-height:32px;align-items:center}
/* 0.110.0 · Temas amarelo e vermelho Ferrari (Diego: "gostei do tema neon. Tem como criar um tema amarelo e um vermelho Ferrari?").
   As cores saem de theme-amarelo.css e theme-ferrari.css, gerados deste arquivo por scripts/build-light-theme.mjs (darkPalette em
   theme-colors.js). Aqui só o toque próprio de cada um. Ícone do botão de tema = o próximo tema: gota no neon e no amarelo, lua no Ferrari. */
#rail-theme .drop{display:none}
:root[data-theme=neon] #rail-theme .moon,:root[data-theme=amarelo] #rail-theme .sun{display:none}
:root[data-theme=neon] #rail-theme .drop,:root[data-theme=amarelo] #rail-theme .drop{display:inline}
/* 0.111.0: depois do Ferrari vem o branco (sol); no branco, a lua (volta ao escuro). */
/* 0.123.0: depois do branco vem o game (controle); no game, a lua (volta ao escuro). */
#rail-theme .pad{display:none}
:root[data-theme=branco] #rail-theme .sun{display:none}
:root[data-theme=branco] #rail-theme .pad{display:inline}
:root[data-theme=game] #rail-theme .sun{display:none}
:root[data-theme=game] #rail-theme .moon{display:inline}
/* 0.110.1 (Diego: "amarelo e vermelho sem predominância do preto"): o fundo é amarelo / vermelho. */
html:root[data-theme=amarelo]{--hover-line:rgba(40,28,7,.35);--hover-glow:0 12px 28px -18px rgba(90,60,0,.45)}
html:root[data-theme=amarelo] body{background:#ffd60a}
html:root[data-theme=amarelo] ::selection{background:#2a1c07;color:#ffd60a}
html:root[data-theme=amarelo] h1{color:#1c1405;text-shadow:none}
html:root[data-theme=amarelo] .card{background:linear-gradient(135deg,rgba(255,255,255,.42) 0%,rgba(255,255,255,.22) 45%,rgba(255,255,255,.06) 92%)}
html:root[data-theme=amarelo] .card .card{background:rgba(255,255,255,.28)}
html:root[data-theme=amarelo] aside{background:#f2c200}
html:root[data-theme=amarelo] nav button.active{background:rgba(40,28,7,.12);box-shadow:inset 2px 0 0 #1c1405;color:#1c1405}
html:root[data-theme=amarelo] body::before{background:radial-gradient(45% 38% at 82% 8%,rgba(255,255,255,.35),transparent 70%),radial-gradient(40% 34% at 12% 92%,rgba(255,170,0,.25),transparent 70%)}
html:root[data-theme=ferrari]{--hover-line:rgba(255,220,78,.5);--hover-glow:0 12px 30px -16px rgba(60,0,0,.6)}
html:root[data-theme=ferrari] body{background:#c8000f}
html:root[data-theme=ferrari] ::selection{background:#ffdc4e;color:#5a0006}
html:root[data-theme=ferrari] h1{color:#fff;text-shadow:0 1px 0 rgba(90,0,6,.35)}
html:root[data-theme=ferrari] .card{background:linear-gradient(135deg,rgba(90,0,6,.34) 0%,rgba(90,0,6,.2) 45%,rgba(90,0,6,.05) 92%)}
html:root[data-theme=ferrari] .card .card{background:rgba(90,0,6,.22)}
html:root[data-theme=ferrari] aside{background:#a8000c}
html:root[data-theme=ferrari] nav button.active{background:rgba(255,255,255,.14);box-shadow:inset 2px 0 0 #ffdc4e;color:#fff}
html:root[data-theme=ferrari] body::before{background:radial-gradient(45% 38% at 82% 8%,rgba(255,90,60,.35),transparent 70%),radial-gradient(40% 34% at 12% 92%,rgba(90,0,6,.4),transparent 70%)}
/* 0.111.0 · Tema branco (Diego: "só faça mais um branco mesmo e os gráficos e letras entre o preto e o cinza. Não quero mais nenhuma
   cor"). Cores de theme-branco.css (brancoColor em theme-colors.js: tudo em cinza). Aqui: fundo branco puro e cartões em cinza bem claro. */
html:root[data-theme=branco]{--hover-line:rgba(0,0,0,.28);--hover-glow:0 12px 28px -18px rgba(0,0,0,.35)}
html:root[data-theme=branco] body{background:#fff}
html:root[data-theme=branco] ::selection{background:#111;color:#fff}
html:root[data-theme=branco] h1{color:#111;text-shadow:none}
html:root[data-theme=branco] .card{background:linear-gradient(135deg,rgba(0,0,0,.045) 0%,rgba(0,0,0,.025) 45%,rgba(0,0,0,.005) 92%)}
html:root[data-theme=branco] .card .card{background:rgba(0,0,0,.03)}
html:root[data-theme=branco] aside{background:#fff}
html:root[data-theme=branco] nav button.active{background:rgba(0,0,0,.07);box-shadow:inset 2px 0 0 #111;color:#111}
html:root[data-theme=branco] body::before{background:none}
html:root[data-theme=branco] .ic-defs stop{stop-color:#2a2a2a}html:root[data-theme=branco] .logo{background:#111;color:#fff}
/* 0.112.0 · Meta por plataforma no Padrão Power BI */
.pbi-meta-card .pm-table td,.pbi-meta-card .pm-table th{font-size:12px}
.pbi-meta-card .pm-mk{cursor:pointer}
.pbi-meta-card .pm-mk .m{font-size:10px;opacity:.6;margin-left:4px}
.pbi-meta-card .pm-sub td:first-child{padding-left:22px;opacity:.85}
.pbi-meta-card .pm-sub td{font-size:11px}
/* Copiar metas de um mês (Bases do cliente) */
.cb-copy select{background:#ffffff0d;border:0;border-radius:999px;padding:7px 12px;color:inherit;font:inherit;font-size:12px}
/* 0.115.0 · campo em conflito treme (mês de meta que já existe) */
@keyframes cb-shake{0%,100%{transform:translateX(0)}20%{transform:translateX(-6px)}40%{transform:translateX(6px)}60%{transform:translateX(-4px)}80%{transform:translateX(4px)}}
.cb-shake{animation:cb-shake .4s ease}
.cb-bad-in{outline:1px solid #fb7185;outline-offset:1px}
@media (prefers-reduced-motion:reduce){.cb-shake{animation:none}}
/* 0.123.0 · Tema game (Diego, com a foto de um jogo de briga de rua no fliperama: "tem como ter uma versão game?"). Visual original
   de fliperama à noite: cores de theme-game.css (gameColor em theme-colors.js); aqui o toque de jogo: títulos em letra de pixel
   (Press Start 2P), faixa xadrez azul e laranja no alto dos cartões como barra de placar, números grandes em itálico com contorno,
   neon magenta e amarelo no item ativo e linhas de varredura bem fracas. Os números continuam na fonte de sempre (leitura). */
html:root[data-theme=game]{--hover-line:rgba(255,214,0,.45);--hover-glow:0 10px 30px -14px rgba(255,214,0,.45),0 0 26px -16px rgba(236,0,197,.6)}
html:root[data-theme=game] ::selection{background:#ec00c5;color:#fff}
html:root[data-theme=game] h1{color:#ffd600}
/* 0.123.1 (Diego: "só não gostei dessa linha pontilhada violeta"): a faixa xadrez do alto dos cartões saiu. */
html:root[data-theme=game] .card{background:linear-gradient(135deg,rgba(47,107,255,.08) 0%,rgba(236,0,197,.05) 40%,rgba(255,214,0,.02) 75%,rgba(0,0,0,0) 94%)}
html:root[data-theme=game] .card .card{background:linear-gradient(135deg,rgba(255,214,0,.05),rgba(0,0,0,0) 90%)}
html:root[data-theme=game] .card>.sp-head .k,html:root[data-theme=game] .card>.k,html:root[data-theme=game] .card .eyebrow{color:#f2efe0}
html:root[data-theme=game] .card>.v:not(.in):not(.out):not(.dim):not(.accent),html:root[data-theme=game] .card>.row>.v:not(.in):not(.out):not(.dim):not(.accent){color:#ffd600}
html:root[data-theme=game] .brand .logo{background:#ffd600;color:#111}
html:root[data-theme=game] nav button.active{background:linear-gradient(135deg,rgba(236,0,197,.22),rgba(47,107,255,.14));box-shadow:inset 3px 0 0 #ffd600,0 0 16px -6px rgba(236,0,197,.7);color:#fff}
/* Kit ds-visual 1.4.1 (Diego, 06/11/2026): game sem as listras de fliperama e sem as manchas redondas de luz no fundo. */
html:root[data-theme=game] body::before{background:none}
/* 0.123.2 título da tela nunca cortado no topo (Diego, 01/11/2026: "Ini..." / "Histórias d..." ao lado do cliente):
   o título ocupa sempre a largura dele inteira; só o subtítulo ganha reticências; se a linha não couber, os botões descem para uma segunda linha, encostados à direita */
@media(min-width:701px){header{flex-wrap:wrap;row-gap:8px;justify-content:flex-end}header>.page-title{flex:1 0 auto;min-width:0;max-width:100%}.page-title p{width:0;min-width:100%}}
/* 0.123.3 tema game sem itálico (Diego, 01/11/2026: "não gostei do estilo dessa letra em itálico"): frase principal e números dos cartões em pé */
/* 0.123.4 tema game só nas cores (Diego, 01/11/2026: "a visão game é só nas cores, não precisa mudar algumas fontes"): saíram a letra de pixel dos títulos, o negrito e as sombras de contorno nos números; ficam as cores, o fundo e o item ativo do menu */
/* 0.124.0 · Lista de temas no pé do menu (Diego, 01/11/2026: "ali no tema poderia levar todos os que existem para todos os apps. E colocar como uma lista").
   theme-menu.js (peça do kit, igual em todos os apps). O botão mostra o tema atual; a lista abre para cima, sem contorno, fundo quase transparente,
   cada linha com a amostra das cores do tema (.tm-sw, fica igual em todos os temas: o gerador não mexe) e o certinho no atual. */
#rail-theme .tm-chev{width:12px;height:12px;margin-left:auto;flex:none;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;opacity:.55;transform:rotate(180deg);transition:transform .2s var(--ease-out)}
#rail-theme.open .tm-chev{transform:none;opacity:.9}
#rail-theme.open{color:var(--strong);background:rgba(255,255,255,.05)}
#rail-theme .ic-pal{width:18px;height:18px;flex:none;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.tm-list{display:flex;flex-direction:column;gap:1px;padding:6px;margin:0 0 2px;border-radius:14px;background:linear-gradient(160deg,rgba(255,255,255,.055),rgba(255,255,255,.015) 80%);max-height:min(340px,52vh);overflow-y:auto;scrollbar-width:thin}
.tm-list[hidden]{display:none}
.tm-item{display:flex;align-items:center;gap:10px;height:30px;padding:0 8px;border:0;border-radius:9px;background:transparent;color:var(--muted);font:inherit;font-size:12px;text-align:left;cursor:pointer;width:100%;white-space:nowrap}
.tm-item:hover,.tm-item:focus-visible{background:rgba(255,255,255,.06);color:var(--strong);outline:none}
.tm-item.on{color:var(--strong)}
.tm-name{flex:1;overflow:hidden;text-overflow:ellipsis}
.tm-ok{width:13px;height:13px;flex:none;fill:none;stroke:var(--accent);stroke-width:2;stroke-linecap:round;stroke-linejoin:round;visibility:hidden}
.tm-item.on .tm-ok{visibility:visible}
/* 01/11/2026 (Diego: a bolinha "parece bandeira de país"; depois "prefiro figuras mais simples"): a amostra é só um pontinho liso com o fundo do tema (o quadradinho parecia caixa de marcar). */
.tm-sw{width:11px;height:11px;flex:none;border-radius:50%;box-shadow:inset 0 0 0 1px rgba(128,128,128,.45)}
.tm-sw-dark{background:#0b0f19}
.tm-sw-light{background:#f6f7f9}
.tm-sw-neon{background:#0c081c}
.tm-sw-amarelo{background:#ffd60a}
.tm-sw-ferrari{background:#c8000f}
.tm-sw-branco{background:#ffffff}
.tm-sw-game{background:#08130f}
.tm-sw-limao{background:#6fd34a}
.tm-sw-cyberpunk{background:#080a14}
@media(prefers-reduced-motion:no-preference){
 .tm-list:not([hidden]){animation:tm-up .22s var(--ease-out) both}
 .tm-list:not([hidden]) .tm-item{animation:tm-in .26s var(--ease-out) both}
 .tm-list .tm-item:nth-child(2){animation-delay:.02s}.tm-list .tm-item:nth-child(3){animation-delay:.04s}.tm-list .tm-item:nth-child(4){animation-delay:.06s}
 .tm-list .tm-item:nth-child(5){animation-delay:.08s}.tm-list .tm-item:nth-child(6){animation-delay:.1s}.tm-list .tm-item:nth-child(7){animation-delay:.12s}
 .tm-list .tm-item:nth-child(8){animation-delay:.14s}.tm-list .tm-item:nth-child(9){animation-delay:.16s}
}
@keyframes tm-up{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes tm-in{from{opacity:0;transform:translateX(-6px)}to{opacity:1;transform:none}}
/* 0.124.1 logo do tema game sem a sombra vermelha (Diego, 01/11/2026: "esse logotipo está com uma sombra. Tirar") */
/* 0.126.0 Vendas: venda toda junta nas abas da esquerda; canais num submenu à parte, "Por canal", à direita (Diego, 01/11/2026) */
.subnav-chan{display:flex;align-items:center;gap:8px;margin-left:auto;padding-left:14px;border-left:1px solid var(--line)}
.subnav-grp{font-size:11px;color:var(--faint);white-space:nowrap}
.subnav-chan.on .subnav-grp{color:var(--accent)}
/* 0.127.0 Vendas › Auditoria: grupo próprio, depois do Integrador */
.subnav-chan+.subnav-aud{margin-left:0}
.va-story{font-size:18px;line-height:1.35;margin:6px 0 8px;font-weight:600}
.omie-card .segmented{flex-wrap:wrap;max-width:100%}
.omie-picks button{display:inline-flex;align-items:center;gap:6px}
.omie-ring{position:relative;display:inline-grid;place-items:center;width:30px;height:30px;flex:none;margin-left:-6px}
.omie-ring svg{position:absolute;inset:0;width:30px;height:30px}
.omie-ring circle{fill:none;stroke-width:2.6}
.omie-ring .bg{stroke:var(--line)}
.omie-ring .fg{stroke:var(--accent);stroke-linecap:round;transition:stroke-dashoffset .3s}
.omie-ring b{position:relative;font-weight:600;font-size:7.5px;letter-spacing:-.2px;color:var(--accent);font-variant-numeric:tabular-nums}
@media (prefers-reduced-motion:reduce){.omie-ring .fg{transition:none}}

/* Peça do kit: círculo de progresso (public/progresso.js). Mesmo bloco em todos os apps; mudou aqui, copie para os outros.
   Arco fino que enche com o percentual no meio; na fila pontilhado, sem total girando, pronto com certinho, erro com "!". */
.ds-ring{position:relative;display:inline-grid;place-items:center;width:30px;height:30px;flex:none;vertical-align:middle;color:var(--accent)}
.ds-ring svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.ds-ring circle{fill:none;stroke-width:2.4}
.ds-ring .bg{stroke:var(--line)}
.ds-ring .fg{stroke:currentColor;stroke-linecap:round;transition:stroke-dashoffset .35s cubic-bezier(.22,1,.36,1)}
.ds-ring b{position:relative;font-weight:600;font-size:7.5px;letter-spacing:-.2px;color:currentColor;font-variant-numeric:tabular-nums;line-height:1}
.ds-ring svg.ok{position:relative;inset:auto;width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}
.ds-ring.ds-ring-lg{width:44px;height:44px}.ds-ring.ds-ring-lg circle{stroke-width:2}.ds-ring.ds-ring-lg b{font-size:10.5px}.ds-ring.ds-ring-lg svg.ok{width:18px;height:18px}
.ds-ring.ds-ring-sm{width:18px;height:18px}.ds-ring.ds-ring-sm circle{stroke-width:3}.ds-ring.ds-ring-sm b{display:none}.ds-ring.ds-ring-sm svg.ok{width:10px;height:10px}
.ds-ring.is-wait{color:var(--faint)}.ds-ring.is-wait .bg{stroke-dasharray:2.2 3.2}
.ds-ring.is-spin svg:not(.ok){animation:ds-ring-spin 1.1s linear infinite}
.ds-ring.is-done .fg{filter:drop-shadow(0 0 3px rgba(255,210,30,.45))}
.ds-ring.is-done{animation:ds-ring-pop .5s cubic-bezier(.22,1,.36,1)}
.ds-ring.is-err{color:#f28d87}.ds-ring.is-err .bg{stroke:rgba(242,141,135,.25)}
.ds-ring:not(.is-done):not(.is-err):not(.is-wait) .fg{filter:drop-shadow(0 0 2px rgba(255,210,30,.35))}
@keyframes ds-ring-spin{to{transform:rotate(360deg)}}
@keyframes ds-ring-pop{0%{transform:scale(1)}40%{transform:scale(1.14)}100%{transform:scale(1)}}
.ds-ring-btn{display:inline-flex;align-items:center;gap:8px}
.ds-ring-btn.has-ring{padding-left:4px}
.ds-ring-btn.has-ring>span:not(.ds-ring){color:var(--strong)}
.segmented .ds-ring-btn.has-ring{padding-left:4px}
@media (prefers-reduced-motion:reduce){.ds-ring .fg{transition:none}.ds-ring.is-spin svg:not(.ok),.ds-ring.is-done{animation:none}}

/* 0.134.0: aviso de tela cheia só com a tela vazia; no resto, o círculo de progresso no botão clicado ou o selo do canto (loading.js). */
.ld-busy{position:relative}
.ds-ring.ld-mini{margin:-7px 6px -7px -6px}
/* Atualização automática: a cópia da tela antiga fica por cima até a nova estar pronta e some suave (sem flash). */
.live-ghost{position:absolute;z-index:5;pointer-events:none;margin:0;transition:opacity .22s var(--ease-out)}
.live-ghost.out{opacity:0}
#content.live-hold{visibility:hidden;pointer-events:none}
@media (prefers-reduced-motion:reduce){.live-ghost,.fila,.fila-panel,.fila .chev,.pf-chev svg{transition:none}}
/* 0.136.0 · Vendas › Integrador › Sellentt: composição da venda, segmentadores e barras por tipo */
.sv-screen .lc-facts li.total{color:var(--text);font-weight:600}
.sv-screen .lc-facts li.total b{font-weight:600}
.sv-filters .sv-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:6px}
.sv-filters .sv-row>.m{min-width:74px;font-size:11px;margin:0}
.sv-seg{flex-wrap:wrap}
.sv-seg button small{margin-left:3px;opacity:.7}
.sv-bars{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:6px}
.sv-bars li{display:grid;grid-template-columns:minmax(120px,1.2fr) 2fr auto;align-items:center;gap:10px;font-size:12px;color:var(--muted)}
.sv-bars svg{width:100%;height:6px}
.sv-bars svg .track{fill:var(--line-soft)}
.sv-bars svg .fill{fill:var(--in-strong)}
.sv-bars b{font-family:var(--num);font-weight:500;font-size:11.5px;color:var(--text);text-align:right}
@media (max-width:640px){.sv-bars li{grid-template-columns:1fr auto}.sv-bars svg{display:none}}
/* Kit ds-visual 1.1.0 · Tema cyberpunk (Diego, 03/11/2026: "criar um tema Cyberpunk"). Cores de theme-cyberpunk.css (cyberpunkColor em theme-colors.js); aqui o toque próprio. Fundo liso, sem listras nem brilhos redondos; magenta, ciano e amarelo-ácido só nos detalhes. */
html:root[data-theme=cyberpunk] #rail-theme .sun{display:none}
html:root[data-theme=cyberpunk] #rail-theme .moon{display:inline}
html:root[data-theme=cyberpunk]{--hover-line:rgba(255,62,165,.4);--hover-glow:0 10px 30px -16px rgba(255,62,165,.45),0 0 22px -16px rgba(40,218,253,.45)}
html:root[data-theme=cyberpunk] body::before,html:root[data-theme=cyberpunk] body::after{background:none;animation:none}
html:root[data-theme=cyberpunk] ::selection{background:rgba(255,62,165,.45);color:#fff}
html:root[data-theme=cyberpunk] h1{color:#fbdf2a}
html:root[data-theme=cyberpunk] .card{background:linear-gradient(135deg,rgba(255,62,165,.05) 0%,rgba(40,218,253,.02) 60%,rgba(0,0,0,0) 94%)}
html:root[data-theme=cyberpunk] .card .card{background:linear-gradient(135deg,rgba(40,218,253,.035),rgba(0,0,0,0) 90%)}
html:root[data-theme=cyberpunk] nav button.active{background:linear-gradient(90deg,rgba(255,62,165,.14),rgba(255,62,165,0));box-shadow:inset 2px 0 0 #ff3ea5;color:#fff}
/* Kit ds-visual 1.1.1 · Lista de temas flutuando acima do botão (Diego, 03/11/2026: "está escondido lá embaixo o botão do cyberpunk"): com dez temas
   a lista empurrava o pé do menu para fora da tela. Agora ela abre por cima do menu, sem empurrar nada, e nunca passa da altura da tela. */
.rail-foot{position:relative}
.tm-list{position:absolute;left:0;right:0;bottom:calc(100% + 6px);z-index:6;margin:0;max-height:calc(100vh - 110px);background:linear-gradient(160deg,rgba(255,255,255,.055),rgba(255,255,255,.015) 80%),var(--panel);box-shadow:0 18px 40px -18px rgba(0,0,0,.55)}
/* 0.142.3 Fluxo de caixa: nome da conta, valor do mês e total abrem a janela com os lançamentos (cashflow.js cfPopHtml). */
.cash-main td.cf-click{cursor:pointer}
.cash-main td.amount.cf-click:hover{text-decoration:underline;text-decoration-color:#facc1588;text-underline-offset:3px}
.cash-main td.cat-name.cf-click:hover{color:#facc15}
.cf-pop .modal-box{max-width:1120px;width:100%}
.cf-pop td{font-size:11.5px}
.cf-pop tr.cf-month td{background:rgba(250,204,21,.06)!important;color:var(--text)}
.cf-pop tr.cf-month small{color:var(--faint);margin-left:6px}
.cf-pop h3.cf-ref{font-size:12px;font-weight:600;margin:16px 0 6px;color:var(--muted)}.cf-pop h3.cf-ref small{font-weight:400;color:var(--faint)}
.cf-tag{display:inline-block;padding:1px 7px;border-radius:999px;font-size:10px;background:#ffffff0d;color:var(--muted);white-space:nowrap}
.cf-tag.open{color:#93c5fd;background:#93c5fd14}.cf-tag.tit{color:#c6e86b;background:#c6e86b14}.cf-tag.dir{color:#e0b569;background:#e0b56914}.cf-tag.orc{color:#facc15;background:#facc1514}.cf-tag.ds{color:#f0abfc;background:#f0abfc14}.cf-tag.tr{color:#94a3b8}
/* 0.146.0 Planejamento › Original × planejado (duas colunas, arrastar de um lado para o outro) */
.tc-card{margin-top:10px}
.tc-bar{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.tc-bar .sp{flex:1}
.tc-sub{margin:6px 0 10px}
.tc-cols{display:grid;grid-template-columns:1fr 28px 1fr;align-items:start}
.tc-mid{align-self:center;text-align:center;color:var(--accent,#fde047);font-size:18px}
.tc-col{min-width:0;border-radius:12px;padding:4px;transition:background .15s}
.tc-col.drop{background:rgba(253,224,71,.06)}
.tc-k{display:flex;justify-content:space-between;align-items:baseline;font-size:11px;color:var(--muted,#9ca3af);margin:0 6px 6px}.tc-k b{color:var(--text,#e5e7eb);font-size:12px}
.tc-day{display:grid;grid-template-columns:70px 1fr auto 118px;gap:8px;align-items:center;padding:6px 10px;border-radius:10px;margin-bottom:3px;background:rgba(255,255,255,.03);font-size:12px;cursor:pointer}
.tc-day:hover{background:rgba(255,255,255,.06)}
.tc-day .d{color:var(--muted,#9ca3af)}.tc-day.wkd .d{color:#f59e0b}
.tc-day .v{text-align:right;white-space:nowrap}.tc-day .s{text-align:right;font-size:11px;color:var(--muted,#9ca3af);white-space:nowrap}
.tc-day .v.neg,.tc-item .v.neg{color:#f87171}.tc-day .s.neg{color:#f87171}
.tc-day .tag{font-size:10px;color:#fde047;margin-left:6px}
.tc-day.out{opacity:.4}.tc-day.out .n,.tc-day.out .v{text-decoration:line-through}
.tc-day.in{background:rgba(253,224,71,.07);box-shadow:inset 3px 0 0 #fde047}
.tc-day.prop{box-shadow:inset 3px 0 0 #fde047;background:repeating-linear-gradient(135deg,rgba(253,224,71,.08) 0 6px,transparent 6px 12px)}
.tc-day.empty{background:transparent;padding:3px 10px;cursor:default}.tc-day.empty .n{color:var(--muted,#6b7280)}
.tc-day.drop{outline:1px dashed #fde047;background:rgba(253,224,71,.12)}
.tc-day .back-orig{margin-left:6px;padding:0 4px}
.tc-items{margin:0 0 6px 18px}
.tc-item{display:grid;grid-template-columns:1fr auto auto;gap:8px;align-items:center;padding:4px 8px;border-radius:8px;font-size:11.5px;cursor:grab}
.tc-item:hover{background:rgba(255,255,255,.05)}.tc-item small{color:var(--muted,#9ca3af)}
.tc-item .nm{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tc-item.out{opacity:.45}.tc-item.out .nm{text-decoration:line-through}.tc-item .to{font-size:10px;color:#fde047}
.tc-item.prop{color:#fde047}
.tc-foot{display:flex;flex-wrap:wrap;gap:22px;margin-top:10px;font-size:12px;color:var(--muted,#9ca3af)}.tc-foot b{color:var(--text,#e5e7eb)}
.tc-panel{margin-top:10px;display:flex;flex-wrap:wrap;gap:18px;align-items:flex-end}
.tc-step{display:flex;flex-direction:column;gap:6px}.tc-step .k{font-size:11px;color:var(--muted,#9ca3af)}
.tc-step:nth-child(2){flex-direction:row;flex-wrap:wrap;align-items:center;gap:8px}.tc-step:nth-child(2) .k{width:100%}
.tc-in{font-size:12px;display:inline-flex;gap:6px;align-items:center}
.tc-res{display:flex;flex-wrap:wrap;gap:18px;align-items:flex-end;width:100%}.tc-res .k{display:block;font-size:11px;color:var(--muted,#9ca3af)}.tc-res b{font-size:15px}
.tc-act{display:flex;gap:8px;margin-left:auto}
@media (max-width:900px){.tc-cols{grid-template-columns:1fr}.tc-mid{display:none}.tc-day{grid-template-columns:60px 1fr auto}.tc-day .s{grid-column:2/4;text-align:left}}
.tc-card .tc-day .v,.tc-card .tc-item .v{font-family:inherit;font-size:12px;line-height:1.3;color:inherit}
.tc-card .tc-day .v.neg,.tc-card .tc-item .v.neg{color:#f87171}
.card.tc-panel{display:flex;flex-direction:column;align-items:flex-start;gap:12px}
.tc-panel .tc-act{margin-left:0}
.tc-card .card.tc-panel{margin:0 0 12px;background:rgba(255,255,255,.03)}
/* 0.146.2 Saldos bancários: cabeçalho da grade com os títulos na mesma linha (Diego: "Aqui está desalinhado") */
.saldo-grid thead tr:first-child th{vertical-align:top;padding-top:6px}
.saldo-grid thead tr:first-child th.amount,.saldo-grid thead tr:first-child th.day{vertical-align:top}
/* 0.146.4 Fluxo mês a mês: meses realizados também em itálico, como o previsto (Diego escolheu "Meses realizados também") */
.cash-table.cash-main:not(.cash-cmp) td.amount{font-style:italic}
/* 0.146.5 Saldos bancários: data no meio da coluna e títulos do cabeçalho na mesma altura */
.saldo-grid thead tr:first-child th.day{text-align:center}
.saldo-grid th.day .sg-day{display:inline-block;text-align:center;padding:0 8px 2px}
.saldo-grid thead tr:first-child th.sg-ord{text-align:center}
.saldo-grid td.sg-ord{text-align:center}
/* 0.146.6 Saldos bancários: funil por coluna (como nas outras tabelas) no lugar dos botões Todas e da busca */
.tt-fpop[data-key^="saldos:"] .tt-fsort{display:none}
.saldo-grid thead th .th-filter{margin-left:4px;vertical-align:middle}
/* 0.146.10 Orçado × lançado: valor clicável abre a composição */
.grp-table td.grp-click{cursor:pointer;text-decoration:underline dotted rgba(253,224,71,.5);text-underline-offset:3px}
.grp-table td.grp-click:hover{color:var(--accent,#fde047)}
/* 0.147.4 · Carregar dados abrindo: só o círculo de progresso no meio, sem frase. */
.empty.load-ring{display:flex;justify-content:center;align-items:center;min-height:220px}

/* 0.148.0 · Pedido a pedido (pedidos-foto.js): cartões com foto, caminho até a margem e rankings. */
.pbi-view.pbi-fotos .home-hero,.pbi-view.pbi-fotos .pbi-kpis,.pbi-view.pbi-fotos .chapters,.pbi-view.pbi-fotos .pbi-dash-only,.pbi-view.pbi-fotos .pbi-ped-only{display:none}
.pf-grid{list-style:none;margin:8px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}
.pf-card{display:grid;grid-template-columns:84px minmax(0,1fr);gap:12px;padding:12px 14px;cursor:pointer;align-items:start}
.pf-card.open{grid-column:1/-1;grid-template-columns:120px minmax(0,1fr)}
.pf-pic{width:84px;height:84px;border-radius:12px;overflow:hidden;background:#ffffff0a;display:flex;align-items:center;justify-content:center}
.pf-card.open .pf-pic{width:120px;height:120px}.pf-pic img{width:100%;height:100%;object-fit:cover;display:block}
.pf-ph{font-size:15px;font-weight:700;color:var(--faint);letter-spacing:.04em}
.pf-t{font-size:12.5px;font-weight:600;line-height:1.3;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.pf-t small{color:var(--faint);font-weight:400}
.pf-sub{font-size:11px;color:var(--faint);margin-top:3px}
.pf-nums{display:flex;gap:10px;flex-wrap:wrap;align-items:baseline;margin-top:7px;font-size:12px}.pf-nums .q{color:var(--faint);font-size:11px}.pf-nums .tot{font-weight:600}
.pf-mc{border-radius:999px;padding:1px 8px;font-size:11px;font-weight:600;white-space:nowrap}.pf-mc.up{color:#5eead4;background:#0f2a26}.pf-mc.down{color:#fda4af;background:#2a1420}.pf-mc.na{color:var(--faint);background:#ffffff0a;font-weight:500}
.pf-path{grid-column:1/-1;margin-top:6px;border-top:1px solid #ffffff10;padding-top:8px;cursor:default}
.pf-steps{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:3px;font-size:12px;max-width:560px}
.pf-steps li{display:grid;grid-template-columns:minmax(0,1fr) 130px;gap:10px;align-items:center}
.pf-steps li.sub{padding-left:14px;color:var(--faint);font-size:11.5px}
.pf-steps li.tot{font-weight:600}.pf-steps li.mc{font-weight:600;border-top:1px solid #ffffff14;padding-top:5px;margin-top:3px}.pf-steps li small{color:var(--faint);font-weight:400}
.pf-steps .v{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.pf-steps .v.neg{color:#fda4af}
.pf-bar{width:100%;height:5px;display:block;margin-top:3px}.pf-bar .track{fill:#ffffff0a}.pf-bar .fill{fill:#2dd4bf}
.pf-items{list-style:none;margin:8px 0 0;padding:0;font-size:11.5px;color:var(--faint);display:flex;flex-direction:column;gap:2px}
.pf-path .m{margin:6px 0 0;font-size:11px;color:var(--faint)}
.pf-charts{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px;margin-top:16px}
.pf-rank{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:7px;counter-reset:pf}
.pf-rank li{display:grid;grid-template-columns:30px minmax(0,1.5fr) minmax(0,1.6fr) 54px 76px;gap:8px;align-items:center;font-size:12px}
.pf-rank .th{width:30px;height:30px;border-radius:8px;overflow:hidden;background:#ffffff0a;display:flex;align-items:center;justify-content:center}.pf-rank .th img{width:100%;height:100%;object-fit:cover;display:block}.pf-rank .th .pf-ph{font-size:9px}
.pf-rank .n{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pf-rank li:hover .n{color:#d9f99d}
.pf-rank .pf-bar{height:6px;margin:0}.pf-rank .pf-bar .fill{fill:#a78bfa}
.pf-rank .v{text-align:right;color:var(--faint);font-size:11px;white-space:nowrap}.pf-rank .pf-mc{text-align:center}
.pbi-fotos .more{text-align:center;margin:12px 0}
/* 0.148.2 · Pedido a pedido em tabela (um pedido por linha, o mais novo em cima) e extrato do marketplace ao abrir a linha. */
.pf-table{margin-top:10px}.pf-table table{width:100%}.pf-table th,.pf-table td{vertical-align:middle}
/* 0.149.8: lista Pedido a pedido com janela de linhas: faixas vazias em cima e embaixo (altura por JS) e sem âncora de rolagem, para a troca da janela não puxar a tela. */
.pf-table{overflow-anchor:none;max-height:calc(100vh - 150px)}.pf-sp td{padding:0!important;border:0!important;background:transparent!important;height:0}
.pf-row{cursor:pointer}.pf-row:hover td{background:#ffffff06}.pf-row.open td{background:#ffffff09}.pf-row.muted td{color:var(--faint)}
.pf-td-pic{width:44px;padding-right:0!important}
.pf-table.no-pic .pf-td-pic{display:none}
.pf-tools{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
/* 0.158.3: copiar o número do pedido (ícone ao lado do número) */
.pf-code{white-space:nowrap}.pf-copy{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;margin-left:4px;padding:0;border:0;border-radius:6px;background:transparent;color:var(--faint);cursor:pointer;vertical-align:middle;opacity:.55;transition:opacity .15s,background .15s,color .15s}
.pf-copy svg{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.pf-row:hover .pf-copy,.pf-copy:focus-visible{opacity:1}.pf-copy:hover{background:#ffffff12;color:var(--text)}.pf-copy.done{opacity:1;color:#a3e635}
.pf-copy-tmp{position:fixed;left:-9999px;top:0;opacity:0}
.pf-pic.sm{width:40px;height:40px;border-radius:9px}.pf-pic.sm .pf-ph{font-size:10px}
.pf-pic.xs{width:26px;height:26px;border-radius:6px;flex:none}.pf-pic.xs .pf-ph{font-size:8px}
.pf-table td.prod{min-width:220px;max-width:360px;overflow:hidden}.pf-table td.prod .pf-t{font-size:12px;-webkit-line-clamp:1;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pf-plat,.pf-orig{white-space:nowrap}.pf-tot td{font-weight:600;white-space:nowrap}.pbi-fotos .orders-head{display:flex;gap:12px;align-items:flex-end;justify-content:space-between;flex-wrap:wrap}.pf-int{flex-wrap:wrap}.pf-tot:hover td{background:transparent}.pf-table .pf-sku:empty{display:none}
.pf-sku,.pf-store,.pf-date small,.pf-mcc small{display:block;font-size:10.5px;color:var(--faint);font-family:var(--num);line-height:1.3}
.pf-badge{font-size:10.5px;font-weight:600;border-radius:999px;padding:1px 8px;white-space:nowrap;background:color-mix(in srgb,currentColor 13%,transparent)}
.pf-ch-mercadolivre{color:#fde047}.pf-ch-shopee{color:#fb923c}.pf-ch-shein{color:#e2e8f0}.pf-ch-amazon{color:#7dd3fc}.pf-ch-magalu,.pf-ch-magazineluiza{color:#60a5fa}.pf-ch-tiktok,.pf-ch-tiktokshop{color:#f472b6}.pf-ch-site,.pf-ch-loja{color:#a78bfa}
.pf-st{white-space:nowrap}.pf-chip{display:inline-block;font-size:10.5px;border-radius:999px;padding:1px 7px;background:rgba(148,163,184,.12);color:var(--muted);margin-right:4px;white-space:nowrap}
.pf-chip.off{color:var(--faint);text-decoration:line-through}.pf-chip.warn{background:rgba(250,204,21,.12);color:var(--accent)}.pf-chip.src{font-family:var(--num);font-size:10px;letter-spacing:.03em}
.pf-date{white-space:nowrap;font-family:var(--num);font-size:11.5px}
.pf-chev{width:22px;padding-left:0!important}.pf-chev svg{width:14px;height:14px;fill:none;stroke:var(--faint);stroke-width:2;transition:transform .2s}.pf-row.open .pf-chev svg{transform:rotate(180deg)}
.pf-detail td{padding:0 8px 12px 52px!important;background:#ffffff05}.pf-detail .pf-path{margin-top:0;border-top:0;padding-top:8px}
.pf-cols{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:18px}.pf-cols .k{margin-bottom:4px}
.pf-items li{display:flex;align-items:center;gap:8px}
.pf-ext{margin-top:12px;border-top:1px solid #ffffff10;padding-top:8px}.pf-ext>.k{margin-bottom:6px}
.pf-ext .pf-blk{display:inline-block;vertical-align:top;width:min(100%,480px);margin:0 24px 10px 0}.pf-ext .pf-blk .k small{color:var(--faint);font-weight:400;text-transform:none;margin-left:4px}
.pf-dates{list-style:none;margin:2px 0 6px;padding:0;display:flex;flex-wrap:wrap;gap:4px 16px;font-size:11px;color:var(--faint)}.pf-dates b{font-weight:500;color:var(--text);font-family:var(--num);margin-left:5px}
.pf-steps li.info{display:block;color:var(--faint);font-size:10.5px;padding-left:14px;margin-top:3px}
.pf-mini{width:100%;margin-top:6px;border-collapse:collapse;font-size:11px}.pf-mini th{font-size:10px;color:var(--faint);font-weight:500;text-align:left;padding:2px 6px}.pf-mini td{padding:2px 6px;border-top:1px solid #ffffff0a}.pf-mini td.mono{font-family:var(--num);color:var(--muted);white-space:nowrap}.pf-mini .amount{text-align:right;font-family:var(--num);white-space:nowrap}.pf-mini .amount.neg{color:#fda4af}
@media (max-width:900px){.pf-cols{grid-template-columns:1fr}.pf-detail td{padding-left:12px!important}.pf-table td.prod{max-width:200px}}

/* 0.148.1 · Fila (fila.js): selo no canto com o % geral; a setinha sobe a lista, um círculo por item, e desce de novo. */
.fila{position:fixed;bottom:18px;right:22px;z-index:85;display:flex;flex-direction:column;align-items:flex-end;gap:8px;opacity:0;transform:translateY(6px);transition:opacity .25s var(--ease-out),transform .25s var(--ease-out)}
.fila.on{opacity:1;transform:none}.fila[hidden]{display:none}
.fila-pill{display:flex;align-items:center;gap:8px;padding:3px 10px 3px 4px;border:0;border-radius:999px;background:rgba(14,20,34,.86);box-shadow:0 8px 22px -12px #000;font-size:11.5px;color:var(--muted);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);cursor:pointer;max-width:360px}
.fila-pill:hover{color:var(--strong);box-shadow:0 10px 30px -10px #000,0 0 0 1px #ffd21e55}
.fila-pill b{color:var(--accent);font-weight:600;font-variant-numeric:tabular-nums}.fila-pill b:empty{display:none}
.fila-pill span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fila-pill .chev{width:14px;height:14px;flex:none;stroke:currentColor;stroke-width:2;fill:none;stroke-linecap:round;stroke-linejoin:round;transition:transform .25s var(--ease-out)}
.fila.open .chev{transform:rotate(180deg)}
.fila-panel{width:320px;max-width:calc(100vw - 44px);max-height:52vh;overflow:auto;padding:10px 12px 12px;border-radius:14px;background:rgba(14,20,34,.92);box-shadow:0 14px 34px -14px #000;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);opacity:0;transform:translateY(14px);pointer-events:none;transition:opacity .25s var(--ease-out),transform .25s var(--ease-out)}
.fila.open .fila-panel{opacity:1;transform:none;pointer-events:auto}
.fila-panel .k{margin:0 0 6px;font-size:11px;color:var(--faint)}
.fila-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.fila-it{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px;align-items:center;font-size:12px;color:var(--text)}
.fila-it b{font-weight:600;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fila-it small{display:block;font-size:11px;color:var(--faint);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fila-it.is-done{color:var(--muted)}.fila-it.is-err b{color:#fda4af}
/* ds-visual 1.3.0 · Tema limão (Diego, 04/11/2026: "tirar 2 temas: o verde e o marrom. E criar um com graficos verdes limão e fundo igual ao nosso game";
   depois, com um print de referência ("parece que tem uma lâmpada iluminando de cima"): "mais fluorescente esse verde... bem Splinter Cell", "repara que tem degradês", "não está igual ao print").
   Cores de theme-limao.css (limaoColor em theme-colors.js): fundo, cartões e letras do game; o verde é o verde-folha aceso do print (#6fd34a),
   do claro ao escuro conforme a série. Aqui o toque do print: vidro escuro nos cartões com um fio de luz no alto, luz verde-menta vazando do
   canto de baixo e uma lâmpada no alto da tela acendendo o topo dos cartões, textura de colmeia bem fraca no fundo, traços dos indicadores e barras acesos com brilho, barras e áreas
   em degradê. A amostra da lista é um pontinho verde (o fundo é o mesmo do game). */
html:root[data-theme=limao] #rail-theme .sun{display:none}
html:root[data-theme=limao] #rail-theme .moon{display:inline}
html:root[data-theme=limao]{--hover-line:rgba(111,211,74,.55);--hover-glow:0 10px 30px -14px rgba(111,211,74,.45),0 0 26px -14px rgba(111,211,74,.55)}
html:root[data-theme=limao] body::before{inset:0;animation:none;background:radial-gradient(42% 62% at 46% -12%,rgba(150,235,120,.26),rgba(120,215,95,.1) 45%,transparent 75%),radial-gradient(70% 80% at 46% 0%,rgba(111,211,74,.07),transparent 70%),radial-gradient(55% 45% at 0% 100%,rgba(90,230,150,.18),rgba(90,230,150,.04) 55%,transparent 80%),radial-gradient(60% 55% at 50% 70%,rgba(0,0,0,.35),transparent 80%)}
html:root[data-theme=limao] body::after{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;animation:none;opacity:.5;background:radial-gradient(circle at 50% 50%,rgba(140,240,110,.07) 0 1.6px,transparent 2px) 0 0/9px 8px,radial-gradient(circle at 50% 50%,rgba(140,240,110,.07) 0 1.6px,transparent 2px) 4.5px 4px/9px 8px;-webkit-mask-image:linear-gradient(180deg,#000,rgba(0,0,0,.25) 60%,#000);mask-image:linear-gradient(180deg,#000,rgba(0,0,0,.25) 60%,#000)}
html:root[data-theme=limao] ::selection{background:#6fd34a;color:#04100a}
html:root[data-theme=limao] h1{color:#fff;text-shadow:0 0 22px rgba(111,211,74,.35)}
html:root[data-theme=limao] .eyebrow{color:#9bf06c}
html:root[data-theme=limao] .card{background:linear-gradient(180deg,rgba(170,240,150,.13) 0%,rgba(120,210,110,.05) 28%,rgba(20,40,25,.2) 70%,rgba(0,0,0,.3) 100%);box-shadow:inset 0 1px 0 rgba(210,255,190,.2),inset 0 18px 30px -24px rgba(170,245,140,.35),0 24px 50px -30px rgba(0,0,0,.85)}
html:root[data-theme=limao] .card .card{background:linear-gradient(180deg,rgba(150,230,140,.05),rgba(0,0,0,.15) 100%)}
html:root[data-theme=limao] .card>.sp-head .k,html:root[data-theme=limao] .card>.k,html:root[data-theme=limao] .card .eyebrow{color:#cfe8c8}
html:root[data-theme=limao] .card>.v:not(.in):not(.out):not(.dim):not(.accent),html:root[data-theme=limao] .card>.row>.v:not(.in):not(.out):not(.dim):not(.accent){color:#fff}
html:root[data-theme=limao] .metric{border-left:2px solid #6fd34a;box-shadow:-10px 0 18px -12px rgba(111,211,74,.95)}
html:root[data-theme=limao] .metric:first-child{box-shadow:none}
html:root[data-theme=limao] main svg:not(.mascot) :is(path,line,polyline,circle,rect)[stroke]:not([stroke=none]),html:root[data-theme=limao] main svg:not(.mascot) rect[fill]:not([fill=none]){filter:drop-shadow(0 0 5px rgba(111,211,74,.55))}
html:root[data-theme=limao] main svg:not(.mascot) rect[fill]:not([fill=none]){-webkit-mask-image:linear-gradient(90deg,rgba(0,0,0,.55),#000 80%);mask-image:linear-gradient(90deg,rgba(0,0,0,.55),#000 80%)}
html:root[data-theme=limao] .chart .area{fill:#6fd34a;opacity:.4;-webkit-mask-image:linear-gradient(180deg,#000,rgba(0,0,0,0) 95%);mask-image:linear-gradient(180deg,#000,rgba(0,0,0,0) 95%)}
html:root[data-theme=limao] .brand .logo{background:#6fd34a;color:#04100a;box-shadow:0 0 16px -2px rgba(111,211,74,.6)}
html:root[data-theme=limao] nav button.active{background:linear-gradient(90deg,rgba(111,211,74,.2),rgba(111,211,74,.03));box-shadow:inset 2px 0 0 #6fd34a,0 0 18px -8px rgba(111,211,74,.6);color:#fff}

/* 0.151.1: segundo cartão do Ambar (outra empresa do mesmo cliente) */
.am-slot2:not(:empty){margin-top:12px}
/* 0.151.3: margem da queima de estoque (fora da média) e coluna do motivo no Pedido a pedido */
.pf-mc.fora{color:var(--muted);background:transparent;box-shadow:inset 0 0 0 1px #ffffff26;font-weight:500}
.pf-fora{max-width:200px}.pf-fora small{display:block;font-size:10.5px;color:var(--faint);line-height:1.3;white-space:normal}
.pbi-mc-fora{color:var(--faint)}
/* 0.151.6: contador de pedidos com margem negativa no segmentador */
.neg-n{display:inline-block;margin-left:4px;padding:0 6px;border-radius:999px;font-size:10.5px;font-weight:700;color:#fda4af;background:#2a1420}
/* 0.151.6: alerta de margem negativa (Diego: "um botão bem diferente e bonito"), ao lado de Pedidos/Produtos e no Pedido a pedido.
   0.151.10 (Diego: "não dá para saber quando está ativo ou inativo"): virou um interruptor. Desligado = fundo escuro com contorno
   vermelho, chave à esquerda piscando e "Desligado"; ligado = vermelho cheio, chave à direita e "Filtro ligado". */
.neg-alert{display:inline-flex;align-items:center;gap:8px;white-space:nowrap;flex:none;border:0;border-radius:999px;padding:5px 12px 5px 6px;font:600 12px/1 inherit;font-family:inherit;color:#fda4af;cursor:pointer;
 background:#1c0d13;box-shadow:inset 0 0 0 1px #f43f5e88;transition:transform .15s,box-shadow .15s,background .2s,color .2s}
.neg-alert:hover{transform:translateY(-1px);box-shadow:inset 0 0 0 1px #fb7185,0 8px 20px -8px #f43f5ecc}
.neg-alert b{display:inline-block;min-width:22px;padding:3px 8px;border-radius:999px;background:#3b0d1c;color:#fecdd3;font-size:11.5px;font-family:var(--num);text-align:center}
.neg-alert .st{font-size:10.5px;font-weight:500;color:#9ca3af}
.neg-alert .sw{position:relative;width:30px;height:16px;border-radius:999px;background:#374151;flex:none;transition:background .2s}
.neg-alert .sw i{position:absolute;top:2px;left:2px;width:12px;height:12px;border-radius:50%;background:#f43f5e;box-shadow:0 0 0 0 #f43f5eaa;transition:left .2s,background .2s;animation:negPulse 1.6s ease-out infinite}
.neg-alert.on{background:linear-gradient(135deg,#9f1239 0%,#e11d48 55%,#fb7185 100%);color:#fff;box-shadow:0 0 0 2px #fda4af,0 8px 22px -6px #f43f5ecc}
.neg-alert.on .sw{background:#fff3}.neg-alert.on .sw i{left:16px;background:#fff;animation:none}
.neg-alert.on b{background:#4c0519;color:#fff}.neg-alert.on .st{color:#ffe4e6;font-weight:700}
@keyframes negPulse{0%{box-shadow:0 0 0 0 #f43f5eaa}70%{box-shadow:0 0 0 6px #f43f5e00}100%{box-shadow:0 0 0 0 #f43f5e00}}
@media (prefers-reduced-motion:reduce){.neg-alert,.neg-alert .sw,.neg-alert .sw i{animation:none;transition:none}}
/* 0.155.0 (Diego: "Tem como ter a opção de agrupar por produto aqui", print da ponta da linha Total do Pedido a pedido): chave
   Agrupar por produto. Sóbria: cinza escuro desligada; ligada, a chave vai para a direita e acende em amarelo. */
.pf-grp-td{text-align:right;padding-right:10px!important}
.pf-grp{display:inline-flex;align-items:center;gap:8px;white-space:nowrap;border:0;border-radius:999px;padding:5px 12px 5px 6px;font:600 11.5px/1 inherit;font-family:inherit;color:var(--muted);cursor:pointer;background:#ffffff0a;transition:background .2s,color .2s,transform .15s}
.pf-grp:hover{color:var(--text);background:#ffffff12;transform:translateY(-1px)}
.pf-grp .sw{position:relative;width:26px;height:14px;border-radius:999px;background:#374151;flex:none;transition:background .2s}
.pf-grp .sw i{position:absolute;top:2px;left:2px;width:10px;height:10px;border-radius:50%;background:#9ca3af;transition:left .2s,background .2s}
.pf-grp.on{color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,transparent)}.pf-grp.on .sw{background:color-mix(in srgb,var(--accent) 35%,transparent)}.pf-grp.on .sw i{left:14px;background:var(--accent)}
.pf-grp .ds-ring{flex:none}
.pf-grow td.pf-gn{white-space:nowrap;color:var(--muted);font-size:11.5px}.pf-grow td.pf-gn b{color:var(--text);font-family:var(--num)}
.pf-grow .pf-grep{color:var(--faint);white-space:nowrap}.pf-grow .pf-badge+.pf-badge{margin-left:4px}
.pf-row.pf-sub td{background:#ffffff04;font-size:11.5px}.pf-row.pf-sub td:nth-child(2){padding-left:22px}
.pf-gmore td{text-align:center;padding:6px!important}.pf-gmore .m{margin:6px 0}
@media (prefers-reduced-motion:reduce){.pf-grp,.pf-grp .sw,.pf-grp .sw i{transition:none}.pf-grp:hover{transform:none}}
/* 0.151.13 (Diego: "esse menu que ele seja visualizado ao clicar em um botão tipo uma setinha. E só passar em cima da setinha. para
   ganhar espaço"): os filtros da tela Vendas recolhidos atrás da setinha Filtros. Passar o mouse abre por cima do conteúdo; clique fixa. */
.card.pbi-slicers.fold{display:inline-flex;position:relative;flex-wrap:nowrap;padding:0;margin:6px 0 10px;gap:0;z-index:29}
/* 0.160.2 (Diego, 06/11/2026, print de Vendas: "Esse filtro está ficando por cima do menu da lateral esquerda"): os Filtros ficam abaixo do menu lateral (z-index 30), ainda acima do conteúdo. */
.pbi-fold{display:inline-flex;align-items:center;gap:8px;border:0;border-radius:999px;padding:6px 14px 6px 8px;background:rgba(255,255,255,.055);color:var(--text);font:inherit;font-size:12.5px;cursor:pointer;max-width:min(900px,calc(100vw - 140px))}
.pbi-fold svg{width:16px;height:16px;flex:none;fill:none;stroke:var(--accent);stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;transition:transform .18s ease}
.pbi-fold b{font-weight:600}.pbi-fold .fs{color:var(--muted);font-size:11.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pbi-fold:hover{background:rgba(255,210,30,.12)}
.pbi-slicers.fold .pbi-fbody{position:absolute;left:0;top:100%;width:max-content;max-width:min(1560px,calc(100vw - 120px));padding:14px 18px;margin-top:6px;display:flex;flex-wrap:wrap;align-items:center;gap:10px 22px;
 border-radius:16px;background:linear-gradient(160deg,rgba(255,255,255,.055),rgba(255,255,255,.015) 80%),var(--panel);box-shadow:0 18px 40px -16px rgba(0,0,0,.7);
 opacity:0;visibility:hidden;transform:translateY(-6px);transition:opacity .16s ease,transform .16s ease,visibility 0s linear .16s}
.pbi-slicers.fold .pbi-fbody::before{content:'';position:absolute;left:0;right:0;top:-10px;height:10px}
.pbi-slicers.fold:hover .pbi-fbody,.pbi-slicers.fold:focus-within .pbi-fbody,.pbi-slicers.fold.open .pbi-fbody{opacity:1;visibility:visible;transform:none;transition:opacity .16s ease,transform .16s ease}
.pbi-slicers.fold:hover .pbi-fold svg,.pbi-slicers.fold:focus-within .pbi-fold svg,.pbi-slicers.fold.open .pbi-fold svg{transform:rotate(90deg)}
.pbi-slicers.fold.open .pbi-fbody{position:static;margin-top:8px;width:auto;max-width:none;box-shadow:none}
.pbi-slicers.fold.open{display:flex;flex-direction:column;align-items:flex-start}
@media (prefers-reduced-motion:reduce){.pbi-fold svg,.pbi-slicers.fold .pbi-fbody{transition:none}}
.pbi-slicers.fold>.card-period{display:none}
/* 0.152.2 (Diego: "Esse por margem eu queria não parecendo tabela, mas trazendo todos esses dados aqui."): Meta por plataforma
   em cartões bento. Destaque do total em cima; um cartão por marketplace com a % grande, a barra fina (venda cheia, provável
   clarinho, meta = fim da barra) e Meta, Venda e Provável embaixo. Tom: ok (vai bater), mid (perto), low (abaixo), zero (sem meta). */
.pm-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;margin-top:10px}
.pm-tile{position:relative;display:flex;flex-direction:column;gap:8px;padding:14px 16px;border-radius:16px;background:linear-gradient(160deg,rgba(255,255,255,.045),rgba(255,255,255,.012) 70%);cursor:pointer;transition:transform .15s ease,background .15s ease}
.pm-tile:hover{transform:translateY(-2px);background:linear-gradient(160deg,rgba(255,210,30,.09),rgba(255,255,255,.015) 70%)}
.pm-tile header{display:flex;flex-wrap:nowrap;align-items:center;justify-content:flex-start;gap:6px;min-width:0;margin:0;padding:0;border:0;background:none;position:static;text-align:left}
.pm-tile header b{font-size:13px;font-weight:600;color:var(--strong);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pm-tile header small{font-size:10.5px;color:var(--faint)}
.pm-chip{margin-left:auto;font-size:10px;padding:2px 8px;border-radius:999px;background:rgba(255,255,255,.06);color:var(--muted);white-space:nowrap}
.pm-big{margin:0;display:flex;align-items:baseline;gap:8px}
.pm-big .v{font-family:var(--num);font-size:26px;font-weight:600;line-height:1;color:var(--strong)}
.pm-big small{font-size:11px;color:var(--muted)}
.pm-bar{display:block;width:100%;height:6px;border-radius:3px;overflow:hidden}
.pm-bar .pm-tr{fill:rgba(255,255,255,.07)}.pm-bar .pm-pr{fill:#ffd21e;fill-opacity:.28}.pm-bar .pm-sd{fill:#ffd21e}
.pm-nums{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:6px 12px;margin:0}
.pm-nums div{display:flex;flex-direction:column;gap:2px;min-width:0}
.pm-nums dt{font-size:10.5px;color:var(--faint)}
.pm-nums dd{margin:0;font-family:var(--num);font-size:12.5px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pm-nums dd small{font-size:10.5px;color:var(--muted);margin-left:2px}
.pm-nums dd small.positive{color:#4ade80}.pm-nums dd small.out{color:#fb923c}
.pm-tile.ok .pm-big .v{color:#4ade80}.pm-tile.ok .pm-chip{background:rgba(74,222,128,.12);color:#86efac}.pm-tile.ok .pm-bar .pm-sd{fill:#4ade80}.pm-tile.ok .pm-bar .pm-pr{fill:#4ade80}
.pm-tile.mid .pm-chip{background:rgba(255,210,30,.14);color:#fde68a}
.pm-tile.low .pm-big .v{color:#fdba74}.pm-tile.low .pm-chip{background:rgba(251,146,60,.12);color:#fdba74}
.pm-tile.zero{opacity:.55}.pm-tile.zero .pm-big .v{color:var(--muted)}
.pm-hero{grid-column:1/-1;cursor:default;padding:16px 20px;background:linear-gradient(135deg,rgba(255,210,30,.10),rgba(255,255,255,.015) 60%)}
.pm-hero:hover{transform:none}
.pm-hero .pm-big .v{font-size:34px}
.pm-hero-row{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px 40px}
.pm-hero-row .pm-nums{flex:1;grid-template-columns:repeat(3,minmax(140px,max-content));gap:6px 36px}
.pm-hero .pm-nums dd{font-size:15px}
.pm-hero .pm-bar{height:8px}
.pm-leg{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;font-size:10.5px;color:var(--faint)}
.pm-leg i{display:inline-block;width:14px;height:5px;border-radius:3px;margin-right:4px;vertical-align:middle}
.pm-leg i.sd{background:#ffd21e}.pm-leg i.pr{background:rgba(255,210,30,.3)}.pm-leg i.gl{background:rgba(255,255,255,.12)}
.pm-subs{list-style:none;margin:4px 0 0;padding:8px 0 0;display:flex;flex-direction:column;gap:6px;border-top:1px solid rgba(255,255,255,.06)}
.pm-subs li{display:grid;grid-template-columns:minmax(0,1fr) 70px 44px;align-items:center;gap:8px;font-size:11px}
.pm-subs .n{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--muted)}.pm-subs .g{text-align:right;font-family:var(--num)}
.pm-subs .pm-bar{height:4px}
.pm-tile.open{grid-row:span 2}
@media (prefers-reduced-motion:reduce){.pm-tile{transition:none}.pm-tile:hover{transform:none}}
/* 0.152.3: Início recebe o que era do Dashboard de Vendas: status do repasse ao lado de Por loja e De cada 100 (um embaixo do outro). */
.chapters.hl-ch2{grid-template-columns:minmax(0,1fr);gap:16px}
.hl-st-duo .pbi-donut{grid-template-columns:minmax(0,190px) minmax(0,1fr)}
@media (max-width:1100px){.hl-st-duo{grid-template-columns:minmax(0,1fr)}}
/* 0.152.4 (Diego: "Isso aqui também seria bom com a setinha"): recolhido, o topo é uma pílula com a setinha, o título, o cliente
   e o período, igual aos Filtros; passar o mouse abre o painel por cima. Substitui a borda invisível de 6px (0.51.26). */
.topbar:not(.pinned) .tb-strip{display:inline-flex;height:auto;opacity:1;overflow:visible;align-items:center;gap:8px;margin:10px 0 4px;padding:6px 14px 6px 8px;border:0;border-radius:999px;background:linear-gradient(rgba(255,255,255,.055),rgba(255,255,255,.055)),var(--card);backdrop-filter:blur(12px);max-width:min(900px,calc(100vw - 140px))}
.topbar:not(.pinned) .tb-strip:hover,.topbar:not(.pinned) .tb-strip:focus-visible{background:rgba(255,210,30,.12);height:auto}
.tb-strip .tb-title{font-size:12.5px;font-weight:600;color:var(--text)}
.tb-arrow{width:16px;height:16px;flex:none;fill:none;stroke:var(--accent);stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;transition:transform .18s ease}
.topbar.open .tb-arrow{transform:rotate(90deg)}
@media (prefers-reduced-motion:reduce){.tb-arrow{transition:none}}
/* 0.153.0: painel de filtros (campos-filtro.js), como o do Power BI: faixa à direita, abre por cima da tela (Ctrl + L),
   recebe colunas arrastadas e campos dos pontinhos dos cartões. */
.cf-host{display:grid;grid-template-columns:minmax(0,1fr) 30px;gap:0 10px;align-items:start}
.cf-host>.cf-main{grid-column:1;grid-row:1;min-width:0}
.cf-pane{grid-column:2;grid-row:1;position:sticky;top:10px;z-index:60;font-size:12px}
.cf-tab{display:flex;flex-direction:column;align-items:center;gap:8px;width:30px;padding:10px 0;border:0;border-radius:999px;background:rgba(255,255,255,.055);color:var(--muted);cursor:pointer;font:inherit}
.cf-tab svg{width:15px;height:15px;fill:none;stroke:var(--accent);stroke-width:2;stroke-linejoin:round}
.cf-tab .cf-tl{writing-mode:vertical-rl;transform:rotate(180deg);font-size:11.5px;white-space:nowrap}
.cf-tab .cf-n{min-width:18px;height:18px;border-radius:999px;background:var(--accent);color:#111;font-size:10.5px;line-height:18px;text-align:center;font-weight:700}
.cf-tab:hover,.cf-pane.open .cf-tab{background:rgba(255,210,30,.12);color:var(--text)}
.cf-body{position:absolute;right:calc(100% + 8px);top:0;width:330px;max-height:calc(100vh - 40px);overflow:auto;padding:14px;border-radius:14px;background:var(--panel);box-shadow:0 18px 44px -12px rgba(0,0,0,.6),0 0 0 1px rgba(255,255,255,.04);display:flex;flex-direction:column;gap:10px;opacity:0;visibility:hidden;transform:translateX(8px);transition:opacity .16s ease,transform .16s ease,visibility 0s .16s}
.cf-pane.open .cf-body,.cf-pane.drag .cf-body{opacity:1;visibility:visible;transform:none;transition:opacity .16s ease,transform .16s ease}
.cf-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.cf-head b{font-size:13px;font-weight:600}
.cf-sub{margin:0;color:var(--faint);font-size:11px}
.cf-sl{border-radius:12px;background:rgba(255,255,255,.03);padding:9px 10px;display:flex;flex-direction:column;gap:7px}
.cf-sl.on{background:linear-gradient(135deg,rgba(255,210,30,.08),rgba(255,255,255,.02))}
.cf-sh{display:flex;align-items:center;gap:6px}.cf-sh b{font-weight:600;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cf-st{color:var(--muted);font-size:11px}.cf-sl.on .cf-st{color:var(--accent)}
.cf-x{border:0;background:none;color:var(--faint);font:inherit;font-size:11px;cursor:pointer;padding:0 3px;border-radius:6px}.cf-x:hover{color:var(--text)}.cf-rm{font-size:15px;line-height:1}
.cf-only{margin:0;color:var(--faint);font-size:10.5px}
.cf-mode.segmented button{font-size:10.5px;padding:2px 9px}
.cf-q{width:100%;min-height:28px;border:0;border-radius:999px;background:rgba(255,255,255,.055);color:var(--text);font:inherit;font-size:11.5px;padding:0 11px}
.cf-vals{list-style:none;margin:0;padding:0;max-height:220px;overflow:auto;display:flex;flex-direction:column;gap:1px}
.cf-vals label{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:7px;padding:3px 5px;border-radius:7px;cursor:pointer}
.cf-vals label:hover{background:rgba(255,255,255,.04)}.cf-vals label:hover .cf-vn{color:#d9f99d}
.cf-vals input{accent-color:var(--accent);margin:0}.cf-vn{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cf-vals small{color:var(--faint);font-size:10.5px}
.cf-lim{color:var(--faint);font-size:10.5px;padding:3px 5px}
.cf-drop{display:flex;align-items:center;gap:8px;justify-content:center;padding:14px 10px;border-radius:12px;border:1px dashed rgba(255,255,255,.14);color:var(--faint);font-size:11.5px;text-align:center;transition:background .15s,border-color .15s,color .15s}
.cf-drop svg{width:14px;height:14px;flex:none;fill:none;stroke:currentColor;stroke-width:2;stroke-linejoin:round}
.cf-pane.drag .cf-drop{border-color:rgba(255,210,30,.5);color:var(--text)}
.cf-pane.over .cf-drop{background:rgba(255,210,30,.1);border-color:var(--accent);color:var(--accent)}
.cf-chips{display:flex;flex-wrap:wrap;gap:5px}
.cf-chip{border:0;border-radius:999px;background:rgba(255,255,255,.055);color:var(--muted);font:inherit;font-size:11px;padding:3px 10px;cursor:grab}
.cf-chip:hover{background:rgba(255,210,30,.12);color:var(--text)}
th.cf-drag{cursor:grab}.cf-host.cf-dragging th.cf-drag{cursor:grabbing}
/* O pontinho do canto de cada visual. */
.cf-dot{position:absolute;top:9px;right:30px;width:18px;height:18px;border:0;border-radius:999px;background:none;padding:0;cursor:pointer;display:grid;place-items:center;opacity:.55;transition:opacity .15s,background .15s}
.cf-dot i{width:6px;height:6px;border-radius:999px;background:var(--accent);box-shadow:0 0 8px rgba(255,210,30,.6)}
.cf-dot:hover,.cf-dot:focus-visible{opacity:1;background:rgba(255,210,30,.14)}
.chapter:has(>.ch-head>.cf-dot),.pbi-kpis:has(>.cf-dot),
.ch-head .cf-dot{top:12px;right:30px}.orders-head h2 .cf-dot{position:relative;top:auto;right:auto;display:inline-grid;vertical-align:middle;margin:-3px 0 0 6px}
.cf-pop{position:fixed;z-index:97;min-width:220px;background:var(--panel);border-radius:12px;padding:8px;box-shadow:0 14px 34px rgba(0,0,0,.55),0 0 0 1px rgba(255,255,255,.05);display:flex;flex-direction:column;gap:2px;font-size:12px}
.cf-pop .k{margin:0 4px 4px;font-size:11px;color:var(--faint)}
.cf-pop button{display:flex;justify-content:space-between;gap:14px;border:0;background:none;color:var(--text);font:inherit;padding:5px 8px;border-radius:8px;cursor:pointer;text-align:left}
.cf-pop button span{color:var(--accent);font-size:11px}.cf-pop button:hover:not(:disabled){background:rgba(255,210,30,.1)}
.cf-pop button:disabled{color:var(--faint);cursor:default}.cf-pop button:disabled span{color:var(--faint)}
@media (max-width:700px){.cf-body{width:min(290px,calc(100vw - 70px))}}
@media (prefers-reduced-motion:reduce){.cf-body,.cf-dot,.cf-drop{transition:none}}
/* 0.153.1 (Diego: "queria esse filtro bem diferente, tipo o botão da margem negativa"): cada valor do painel é uma pílula com
   chave liga/desliga e contador, como o Margem negativa; cada campo tem a sua cor (cf-h0..cf-h5). */
.cf-sl,.cf-chip{--c1:#2e1065;--c2:#7c3aed;--c3:#c4b5fd;--c0:#170a2e}
.cf-h1{--c1:#083344;--c2:#0891b2;--c3:#67e8f9;--c0:#061a22}
.cf-h2{--c1:#451a03;--c2:#d97706;--c3:#fcd34d;--c0:#1f1206}
.cf-h3{--c1:#022c22;--c2:#059669;--c3:#6ee7b7;--c0:#06181a}
.cf-h4{--c1:#172554;--c2:#2563eb;--c3:#93c5fd;--c0:#0b1226}
.cf-h5{--c1:#4a044e;--c2:#c026d3;--c3:#f0abfc;--c0:#1e0a22}
.cf-sl{background:linear-gradient(135deg,color-mix(in srgb,var(--c2) 9%,transparent),rgba(255,255,255,.015));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--c2) 22%,transparent)}
.cf-sl.on{background:linear-gradient(135deg,color-mix(in srgb,var(--c2) 18%,transparent),rgba(255,255,255,.02));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--c2) 55%,transparent),0 10px 24px -14px var(--c2)}
.cf-dotc{width:8px;height:8px;border-radius:50%;flex:none;background:var(--c3);box-shadow:0 0 8px var(--c2)}
.cf-sh b{color:var(--c3)}.cf-sl.on .cf-st{color:var(--c3);font-weight:700}
.cf-mode{display:flex;gap:4px}
.cf-mode button{border:0;border-radius:999px;padding:3px 10px;font:inherit;font-size:10.5px;cursor:pointer;background:rgba(255,255,255,.04);color:var(--muted)}
.cf-mode button.active{background:linear-gradient(135deg,var(--c1),var(--c2));color:#fff}
.cf-vals.cf-pills{flex-direction:row;flex-wrap:wrap;gap:6px;max-height:240px;padding:2px}
.cf-pill{display:inline-flex;align-items:center;gap:7px;max-width:100%;border:0;border-radius:999px;padding:4px 5px 4px 4px;font:600 11.5px/1 inherit;font-family:inherit;color:var(--c3);cursor:pointer;background:var(--c0);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--c2) 55%,transparent);transition:transform .15s,box-shadow .15s,background .2s,color .2s}
.cf-pill:hover{transform:translateY(-1px);box-shadow:inset 0 0 0 1px var(--c2),0 8px 18px -8px var(--c2)}
.cf-pill .cf-vn{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:inherit}
.cf-pill b{min-width:20px;padding:3px 7px;border-radius:999px;background:var(--c1);color:#fff;font-size:10.5px;font-family:var(--num);text-align:center;font-weight:600}
.cf-pill .sw{position:relative;width:24px;height:14px;border-radius:999px;background:#374151;flex:none;transition:background .2s}
.cf-pill .sw i{position:absolute;top:2px;left:2px;width:10px;height:10px;border-radius:50%;background:var(--c2);transition:left .2s,background .2s}
.cf-pill.on{background:linear-gradient(135deg,var(--c1) 0%,var(--c2) 60%,var(--c3) 140%);color:#fff;box-shadow:0 0 0 1.5px var(--c3),0 8px 20px -6px var(--c2)}
.cf-pill.on .sw{background:#fff3}.cf-pill.on .sw i{left:12px;background:#fff;box-shadow:0 0 6px #fff}
.cf-pill.on b{background:#0006}
.cf-pill.on.inv{background:#1f2937;color:#9ca3af;box-shadow:0 0 0 1.5px #6b7280;text-decoration:line-through}
.cf-pill.on.inv .sw i{background:#9ca3af;box-shadow:none}
.cf-chip{color:var(--c3);background:var(--c0);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--c2) 45%,transparent);font-weight:600}
.cf-chip:hover{background:linear-gradient(135deg,var(--c1),var(--c2));color:#fff}
.cf-tab{background:linear-gradient(180deg,#2e1065,#0891b2 60%,#059669);color:#fff;box-shadow:0 8px 22px -8px #7c3aedcc}
.cf-tab svg{stroke:#fff}.cf-tab:hover,.cf-pane.open .cf-tab{background:linear-gradient(180deg,#7c3aed,#06b6d4 60%,#10b981);color:#fff}
.cf-tab .cf-n{background:#fff;color:#2e1065;box-shadow:0 0 10px #fff9}
.cf-dot i{background:linear-gradient(135deg,#a78bfa,#22d3ee);box-shadow:0 0 8px #a78bfaaa}
@media (prefers-reduced-motion:reduce){.cf-pill,.cf-pill .sw,.cf-pill .sw i{transition:none}}
/* 0.153.3 (Diego, print: "ficou muito colorido"): painel sóbrio, no padrão do app. Fundo escuro sólido, sem arco-íris; os campos
   em cinza e só o amarelo da marca acende no que está ligado (pílula ligada como o botão Margem negativa, em amarelo). */
.cf-sl,.cf-chip,.cf-h1,.cf-h2,.cf-h3,.cf-h4,.cf-h5{--c0:rgba(255,255,255,.04);--c1:#3a2f05;--c2:#ffd21e;--c3:#fde68a}
.cf-host{grid-template-columns:minmax(0,1fr) 34px}
.cf-pane .cf-body{width:350px;padding:18px;border-radius:18px;background:var(--panel);box-shadow:0 30px 70px -20px #000,0 0 0 1px rgba(255,255,255,.06);gap:12px}
.cf-pane .cf-body::before{content:'';position:absolute;left:18px;right:18px;top:0;height:1px;background:linear-gradient(90deg,transparent,#ffd21e88,transparent);pointer-events:none}
.cf-pane .cf-head b{font-size:15px;font-weight:600;color:var(--strong)}
.cf-pane .cf-sl,.cf-pane .cf-sl.on{border-radius:14px;padding:12px;background:linear-gradient(135deg,rgba(148,163,184,.07),rgba(148,163,184,.02) 70%);box-shadow:none;filter:none}
.cf-pane .cf-sl.on{background:linear-gradient(135deg,rgba(255,210,30,.07),rgba(148,163,184,.02) 70%);box-shadow:inset 0 0 0 1px rgba(255,210,30,.18)}
.cf-pane .cf-dotc{display:block;background:#4b5563;box-shadow:none}.cf-pane .cf-sl.on .cf-dotc{background:var(--accent);box-shadow:0 0 8px #ffd21e99}
.cf-pane .cf-sh b{font-size:13px;font-weight:600;color:var(--text)}
.cf-pane .cf-st{color:var(--faint)}.cf-pane .cf-sl.on .cf-st{color:var(--accent);font-weight:600}
.cf-pane .cf-only{color:var(--faint)}
.cf-pane .cf-mode button{background:rgba(255,255,255,.04);color:var(--muted)}.cf-pane .cf-mode button.active{background:rgba(255,255,255,.1);color:var(--strong)}
.cf-pane .cf-pill{background:rgba(255,255,255,.04);color:var(--muted);box-shadow:inset 0 0 0 1px rgba(255,255,255,.07);font-size:12px}
.cf-pane .cf-pill:hover{color:var(--text);box-shadow:inset 0 0 0 1px rgba(255,210,30,.4)}
.cf-pane .cf-pill .sw{background:#374151}.cf-pane .cf-pill .sw i{background:#6b7280}
.cf-pane .cf-pill b{background:rgba(255,255,255,.06);color:var(--muted)}
.cf-pane .cf-pill.on{background:#1f1a05;color:#fde68a;box-shadow:inset 0 0 0 1px #ffd21e,0 6px 18px -8px #ffd21eaa}
.cf-pane .cf-pill.on .sw{background:#ffd21e55}.cf-pane .cf-pill.on .sw i{background:#ffd21e;box-shadow:0 0 6px #ffd21e}
.cf-pane .cf-pill.on b{background:#ffd21e;color:#111}
.cf-pane .cf-pill.on.inv{background:rgba(255,255,255,.03);color:var(--faint);box-shadow:inset 0 0 0 1px #4b5563}
.cf-pane .cf-pill.on.inv .sw i{background:#6b7280;box-shadow:none}.cf-pane .cf-pill.on.inv b{background:rgba(255,255,255,.06);color:var(--faint)}
.cf-pane .cf-chip{background:rgba(255,255,255,.05);color:var(--muted);box-shadow:none;font-weight:500}
.cf-pane .cf-chip:hover{background:rgba(255,210,30,.12);color:var(--text)}
.cf-pane .cf-tab,.cf-pane.open .cf-tab,.cf-pane .cf-tab:hover{width:34px;background:rgba(255,255,255,.055);color:var(--muted);box-shadow:none}
.cf-pane .cf-tab:hover,.cf-pane.open .cf-tab{background:rgba(255,210,30,.12);color:var(--text)}
.cf-pane .cf-tab svg{stroke:var(--accent)}.cf-pane .cf-tab .cf-n{background:var(--accent);color:#111;box-shadow:none}
.cf-dot i{background:var(--accent);box-shadow:0 0 8px rgba(255,210,30,.6)}
/* 0.153.4 (Diego: "arrastar para qualquer canto da tela… mais uma bolinha do que essa barra"): o painel fica fixo na janela (no body),
   a faixa vira uma bolinha de 48px que se arrasta, e o painel abre para o lado e a altura onde há espaço (cf-left, cf-up). */
.cf-host{display:block}
body>.cf-pane{position:fixed;z-index:90;width:48px;height:48px;grid-column:auto;grid-row:auto;font-size:12px}
.cf-pane .cf-tab,.cf-pane.open .cf-tab,.cf-pane .cf-tab:hover{position:relative;width:48px;height:48px;padding:0;border-radius:50%;display:grid;place-items:center;gap:0;cursor:grab;touch-action:none;
 background:radial-gradient(circle at 35% 30%,#2a3142,#121826 70%);box-shadow:0 10px 26px -8px #000,0 0 0 1px rgba(255,255,255,.08),inset 0 1px 0 rgba(255,255,255,.08);transition:box-shadow .2s,transform .2s}
.cf-pane .cf-tab:hover,.cf-pane.open .cf-tab{box-shadow:0 12px 30px -8px #000,0 0 0 1.5px rgba(255,210,30,.7),0 0 22px -6px rgba(255,210,30,.6)}
.cf-pane.moving .cf-tab{cursor:grabbing;transform:scale(1.08)}
.cf-pane .cf-tab svg{width:20px;height:20px}
.cf-pane .cf-tab .cf-tl{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.cf-pane .cf-tab .cf-n{position:absolute;top:-3px;right:-3px;min-width:19px;height:19px;line-height:19px;font-size:10.5px;box-shadow:0 0 0 2px var(--bg)}
.cf-pane.drag .cf-tab,.cf-pane.over .cf-tab{box-shadow:0 0 0 2px var(--accent),0 0 26px -4px var(--accent)}
body>.cf-pane .cf-body{position:absolute;top:0;left:calc(100% + 10px);right:auto;bottom:auto;max-height:min(calc(100vh - 24px),760px)}
body>.cf-pane.cf-left .cf-body{left:auto;right:calc(100% + 10px)}
body>.cf-pane.cf-up .cf-body{top:auto;bottom:0}
body>.cf-pane.moving .cf-body{opacity:0;visibility:hidden}
@media (prefers-reduced-motion:reduce){.cf-pane .cf-tab{transition:none}}
/* 0.153.4: por dentro como o painel de filtros do Power BI: cartões enxutos que abrem e fecham, com o resumo embaixo do nome;
   valores em linhas (chave, nome, quantidade à direita); sem textos de explicação. */
.cf-pane .cf-body{width:300px;padding:14px 14px 16px;gap:8px;border-radius:14px}
.cf-pane .cf-head{padding:0 2px 4px}.cf-pane .cf-head b{font-size:15px;font-weight:600}
.cf-pane .cf-all{display:inline-flex;align-items:center;gap:5px;font-size:11px;color:var(--muted)}.cf-pane .cf-all:hover{color:var(--accent)}
.cf-pane .cf-x svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;vertical-align:middle}
.cf-pane .cf-k{margin:6px 2px 0;font-size:10.5px;color:var(--faint);font-weight:600}
.cf-pane .cf-sl,.cf-pane .cf-sl.on{padding:0;border-radius:10px;gap:0;background:rgba(255,255,255,.035);box-shadow:inset 0 0 0 1px rgba(255,255,255,.05)}
.cf-pane .cf-sl.on{box-shadow:inset 3px 0 0 var(--accent),inset 0 0 0 1px rgba(255,210,30,.18)}
.cf-pane .cf-sh{gap:2px;padding:4px 6px 4px 0}
.cf-pane .cf-tg{flex:1;min-width:0;display:flex;align-items:center;gap:8px;border:0;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer;padding:6px 4px 6px 12px;border-radius:10px}
.cf-pane .cf-nm{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}
.cf-pane .cf-nm b{font-size:12.5px;font-weight:600;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cf-pane .cf-nm .cf-st{font-size:11px;color:var(--faint);font-weight:400;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cf-pane .cf-sl.on .cf-nm .cf-st{color:var(--accent);font-weight:500}
.cf-pane .cf-tg svg{width:14px;height:14px;flex:none;fill:none;stroke:var(--muted);stroke-width:2;transition:transform .15s}
.cf-pane .cf-sl.open .cf-tg svg{transform:rotate(180deg)}
.cf-pane .cf-tg:hover .cf-nm b{color:#d9f99d}
.cf-pane .cf-x{padding:4px 5px;color:var(--faint)}.cf-pane .cf-rm{font-size:15px}
.cf-pane .cf-in{display:flex;flex-direction:column;gap:7px;padding:2px 10px 10px 12px}
.cf-pane .cf-only{margin:0;font-size:10.5px;color:var(--faint)}
.cf-pane .cf-mode{display:inline-flex;align-self:flex-start;gap:0;padding:2px;border-radius:999px;background:rgba(255,255,255,.04)}
.cf-pane .cf-mode button{background:none;padding:2px 10px;font-size:10.5px}.cf-pane .cf-mode button.active{background:rgba(255,255,255,.1);color:var(--strong)}
.cf-pane .cf-q{min-height:26px;font-size:11.5px;border-radius:8px}
.cf-pane .cf-vals.cf-pills{flex-direction:column;flex-wrap:nowrap;gap:1px;max-height:230px;padding:0}
.cf-pane .cf-pill,.cf-pane .cf-pill.on,.cf-pane .cf-pill.on.inv{width:100%;border-radius:7px;padding:4px 6px 4px 2px;background:none;box-shadow:none;font-size:12px;font-weight:400;color:var(--muted);text-decoration:none}
.cf-pane .cf-pill:hover{background:rgba(255,255,255,.04);box-shadow:none;transform:none}
.cf-pane .cf-pill .cf-vn{flex:1;text-align:left}
.cf-pane .cf-pill b,.cf-pane .cf-pill.on b,.cf-pane .cf-pill.on.inv b{background:none;color:var(--faint);font-weight:400;padding:0;min-width:0}
.cf-pane .cf-pill.on{color:var(--strong)}
.cf-pane .cf-pill.on b{color:var(--accent)}
.cf-pane .cf-pill.on.inv{color:var(--faint);text-decoration:line-through}
.cf-pane .cf-drop{padding:9px 10px;border-radius:10px;font-size:11px}
.cf-pane .cf-chips{gap:4px}.cf-pane .cf-chip{font-size:11px;padding:3px 9px}
/* 0.153.5 (Diego: "não gostei do círculo"; escolheu a etiqueta com resumo): o botão vira uma etiqueta com faixa amarela à esquerda,
   "Filtros", o resumo do que está filtrado e o número; continua arrastável. */
body>.cf-pane{width:auto;height:auto}
.cf-pane .cf-tab,.cf-pane.open .cf-tab,.cf-pane .cf-tab:hover{width:auto;height:auto;display:inline-flex;flex-direction:row;align-items:center;gap:8px;padding:7px 8px 7px 12px;border-radius:12px;
 background:var(--panel);color:var(--text);font-size:12px;white-space:nowrap;box-shadow:0 0 0 1px rgba(255,255,255,.08),inset 3px 0 0 var(--accent),0 14px 30px -12px #000}
.cf-pane .cf-tab:hover,.cf-pane.open .cf-tab{box-shadow:0 0 0 1px rgba(255,210,30,.55),inset 3px 0 0 var(--accent),0 14px 30px -12px #000,0 0 22px -10px var(--accent)}
.cf-pane.drag .cf-tab,.cf-pane.over .cf-tab{box-shadow:0 0 0 2px var(--accent),inset 3px 0 0 var(--accent),0 0 26px -4px var(--accent)}
.cf-pane.moving .cf-tab{transform:scale(1.04)}
.cf-pane .cf-tab svg{width:18px;height:18px}
.cf-pane .cf-tab .cf-tl{position:static;width:auto;height:auto;overflow:visible;clip:auto;writing-mode:horizontal-tb;transform:none;font-size:12px;font-weight:600}
.cf-pane .cf-tab .cf-ts{display:block;max-width:240px;overflow:hidden;text-overflow:ellipsis;color:var(--accent);font-size:11.5px}
.cf-pane .cf-tab .cf-n{position:static;box-shadow:none}
/* 0.153.6 (Diego: "tira o amarelo da borda"): etiqueta e cartões do painel sem contorno nem faixa amarela; o amarelo fica só no texto. */
.cf-pane .cf-tab,.cf-pane.open .cf-tab,.cf-pane .cf-tab:hover{box-shadow:0 0 0 1px rgba(255,255,255,.08),0 14px 30px -12px #000}
.cf-pane .cf-tab:hover,.cf-pane.open .cf-tab{background:color-mix(in srgb,var(--panel) 88%,#fff)}
.cf-pane.drag .cf-tab,.cf-pane.over .cf-tab{box-shadow:0 0 0 1px rgba(255,255,255,.25),0 14px 30px -12px #000}
.cf-pane .cf-sl.on{box-shadow:inset 0 0 0 1px rgba(255,255,255,.05)}
/* 0.153.6 (Diego: "poderia ser mais escuro do que o aplicativo o filtro"): etiqueta e painel num fundo mais escuro que o da tela. */
.cf-pane .cf-tab,.cf-pane.open .cf-tab,.cf-pane .cf-tab:hover,.cf-pane .cf-body{background:color-mix(in srgb,var(--bg) 55%,#000)}
.cf-pane .cf-tab:hover,.cf-pane.open .cf-tab{background:color-mix(in srgb,var(--bg) 70%,#000)}
.cf-pane .cf-body{box-shadow:0 30px 70px -20px #000,0 0 0 1px rgba(255,255,255,.07)}
.cf-pane .cf-body::before{display:none}
/* 0.153.7 (Diego escolheu o interior "2c"): sem cartões dentro do painel, campos separados por um fio; valores em pílulas lado a lado,
   desligadas só com contorno fino cinza, ligada em amarelo suave (sem chave). */
.cf-pane .cf-sl,.cf-pane .cf-sl.on{background:none;box-shadow:none;border-radius:0;border-top:1px solid rgba(255,255,255,.06)}
.cf-pane .cf-tg{padding-left:2px}.cf-pane .cf-in{padding:2px 4px 12px 2px}
.cf-pane .cf-vals.cf-pills{flex-direction:row;flex-wrap:wrap;gap:5px}
.cf-pane .cf-vals .cf-pill,.cf-pane .cf-vals .cf-pill.on,.cf-pane .cf-vals .cf-pill.on.inv{width:auto;border-radius:999px;padding:5px 11px;gap:6px;background:none;box-shadow:inset 0 0 0 1px rgba(255,255,255,.07)}
.cf-pane .cf-vals .cf-pill:hover{background:rgba(255,255,255,.05);color:#d9f99d}
.cf-pane .cf-vals .cf-pill.on{background:rgba(255,210,30,.13);box-shadow:none;color:var(--accent)}
.cf-pane .cf-vals .cf-pill.on.inv{background:rgba(255,255,255,.05);box-shadow:none;color:var(--faint)}
.cf-pane .cf-vals .cf-pill .sw{display:none}
.cf-pane .cf-vals .cf-pill b{font-size:10.5px}.cf-pane .cf-vals .cf-pill.on b{color:rgba(255,210,30,.65)}
/* 0.153.8 (Diego, print do seletor "Por mês e por canal / Análise dos recebíveis": "o filtro poderia ser nessa cor"): etiqueta e painel
   no cinza do seletor em pílula (branco 5,5% sobre o fundo), em cor sólida para a tabela não aparecer por trás. */
.cf-pane .cf-tab,.cf-pane.open .cf-tab,.cf-pane .cf-tab:hover,.cf-pane .cf-body{background:color-mix(in srgb,var(--bg) 94.5%,#fff)}
.cf-pane .cf-tab:hover,.cf-pane.open .cf-tab{background:color-mix(in srgb,var(--bg) 90%,#fff)}
.cf-pane .cf-tab{box-shadow:0 10px 26px -12px #000}
.cf-pane .cf-body{box-shadow:0 30px 70px -20px #000}
/* 0.155.4: linhas que filtram o resto da tela ao clicar (como no Power BI): escolhida acesa, demais esmaecidas. */
tr.pbi-xrow{cursor:pointer}tr.pbi-xrow:hover td{background:#fde0470a}tr.pbi-xrow.sel td{background:#fde04712}tr.pbi-xrow.sel td:first-child,tr.pbi-xrow.sel td:first-child b{color:var(--accent);font-weight:600}tr.pbi-xrow.dim td{opacity:.45}
.cf-pane .cf-xs{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 6px 6px 12px;border-radius:999px;background:rgba(255,210,30,.13);color:var(--accent);font-size:12px}
/* 0.155.5: o painel lista o que filtra a tela fora dele (filtros de cima e cliques), cada um com ×. */
.cf-pane .cf-xl{display:flex;flex-direction:column;gap:4px}
.cf-pane .cf-xs{padding:3px 4px 3px 11px;font-size:11.5px}.cf-pane .cf-xs .cf-x{font-size:14px;color:var(--accent)}
/* 0.155.6: × ao lado da etiqueta tira todos os filtros. */
body>.cf-pane{display:flex;align-items:center;gap:4px}
.cf-pane .cf-tx{width:26px;height:26px;flex:none;border:0;border-radius:999px;background:color-mix(in srgb,var(--bg) 94.5%,#fff);color:var(--muted);font-size:15px;line-height:1;cursor:pointer;box-shadow:0 10px 26px -12px #000}
.cf-pane .cf-tx:hover{color:var(--accent);background:color-mix(in srgb,var(--bg) 88%,#fff)}
body>.cf-pane.moving .cf-tx{visibility:hidden}
/* 0.158.5 (Diego: "submenus com uma setinha", "ficar no meio", "tirar o espaço até as tabelas"): faixa centralizada, fechada mostra só a setinha (0.158.6). */
.subnav{justify-content:center;margin-top:6px;margin-bottom:0;min-height:0}
.subnav .pbi-mode-sw{margin-left:0}
.sub-fold{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;padding:0;border:0;border-radius:999px;background:rgba(255,255,255,.055);cursor:pointer;flex:none}
.sub-fold svg{width:15px;height:15px;fill:none;stroke:var(--accent);stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;transform:rotate(90deg);transition:transform .18s ease}
.sub-fold:hover{background:rgba(255,210,30,.12)}
.subnav.sub-closed .sub-fold svg{transform:none}
.subnav.sub-closed>:not(.sub-fold){display:none}
.context-strip:empty{min-height:0;padding:0}
.tb-panel #top-slot>.card{margin-top:6px}
.card.pbi-slicers.fold{margin:6px 0 6px}
@media (prefers-reduced-motion:reduce){.sub-fold svg{transition:none}}
/* 0.158.7 (Diego, print do espaço vazio: "esse espaço aqui, tá feio"): fechada, a setinha não ocupa uma linha; fica à esquerda, na mesma linha do Filtros. */
.subnav .sub-fold svg{transform:rotate(-90deg)}
/* 0.158.10 (Diego: "deixa aqui tipo uma etiqueta pra puxar"): fechada, só uma lingueta no meio, pendurada na linha de baixo do topo, sem ocupar altura. */
.subnav.sub-closed{position:relative;height:0;min-height:0;margin:0;overflow:visible}
.subnav.sub-closed>:not(.sub-fold){display:none}
.subnav.sub-closed .sub-fold{position:absolute;top:0;left:50%;transform:translateX(-50%);width:54px;height:16px;border-radius:0 0 10px 10px;background:rgba(255,255,255,.08);z-index:5}
.subnav.sub-closed .sub-fold:hover{background:rgba(255,210,30,.16)}
.subnav.sub-closed .sub-fold svg{width:13px;height:13px;transform:rotate(90deg)}
/* 0.158.12 (Diego: "tela cheia só ele, sem nada dos filtros… colocar em um monitor"): Modo painel do Pedido a pedido. */
html.painel aside,html.painel .topbar,html.painel .notice,html.painel footer,html.painel #context-strip{display:none!important}
html.painel main{margin-left:0!important;padding:14px 22px!important;max-width:none}
/* 0.177.4: o Pedido a pedido fica dentro de outra section.pbi-fotos (a tela, cf-host); as regras miram só a lista (mkt-orders), senão o painel escondia tudo e ficava escuro */
html.painel #content>:not(:has(section.mkt-orders.pbi-fotos)):not(section.mkt-orders.pbi-fotos),html.painel #content :has(section.mkt-orders.pbi-fotos)>:not(:has(section.mkt-orders.pbi-fotos)):not(section.mkt-orders.pbi-fotos){display:none!important}
html.painel section.mkt-orders.pbi-fotos>:not(.orders-head):not(.table-wrap):not(.pf-board){display:none}
html.painel .pbi-fotos .pf-tools>:not(.pf-painel-btn){display:none}
html.painel .pbi-fotos .pf-table{max-height:calc(100vh - 110px)}
/* 0.158.13 (Diego, print do botão Filtros: "está atrapalhando… ficar só um pouco aparecendo nesse canto; quando eu usar fica aberto"):
   o painel de filtros fica preso na beirada direita, no meio da altura, como uma lingueta; clique abre o painel para a esquerda
   (centralizado na lingueta) e ele fica aberto até clicar de novo ou fora. Sem arrastar. */
body>.cf-pane{left:auto!important;right:0!important;top:50%!important;width:auto;height:auto;transform:translateY(-50%)}
body>.cf-pane .cf-tab,body>.cf-pane.open .cf-tab,body>.cf-pane .cf-tab:hover{width:20px;height:64px;border-radius:12px 0 0 12px;cursor:pointer;box-shadow:-6px 0 18px -10px #000}
body>.cf-pane .cf-tab svg{width:14px;height:14px}
body>.cf-pane .cf-tab:hover,body>.cf-pane.open .cf-tab{width:26px}
body>.cf-pane .cf-tab .cf-n{top:-7px;right:auto;left:-7px}
body>.cf-pane:not(.open) .cf-tx{display:none}
body>.cf-pane .cf-body,body>.cf-pane.cf-left .cf-body,body>.cf-pane.cf-up .cf-body{left:auto;right:calc(100% + 10px);top:50%;bottom:auto;transform:translate(8px,-50%)}
body>.cf-pane.open .cf-body,body>.cf-pane.drag .cf-body{transform:translate(0,-50%)}
body>.cf-pane.moving .cf-body{opacity:1;visibility:visible}
html.painel body>.cf-pane{display:none}
body>.cf-pane .cf-tab,body>.cf-pane.open .cf-tab,body>.cf-pane .cf-tab:hover{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:0;max-width:none}
body>.cf-pane .cf-tab .cf-tl,body>.cf-pane .cf-tab .cf-ts{display:none}
body>.cf-pane .cf-tab .cf-n{position:absolute;min-width:16px;height:16px;line-height:16px;font-size:10px}
body>.cf-pane .cf-tx{position:absolute;top:calc(100% + 6px);right:0}
/* 0.158.14 (Diego: "é perigoso ficar escondido com um filtro feito… vou achar que é um erro e é só um filtro"): com filtro ligado,
   a lingueta abre sozinha numa etiqueta amarela com "Filtros", o resumo e o número, e o × para tirar tudo fica ao lado, sempre à vista. */
body>.cf-pane:has(.cf-n) .cf-tab,body>.cf-pane:has(.cf-n) .cf-tab:hover{flex-direction:row;width:auto;height:auto;max-width:300px;padding:8px 12px 8px 10px;gap:7px;border-radius:12px 0 0 12px;
 background:color-mix(in srgb,var(--accent) 16%,var(--bg));color:var(--text);box-shadow:-6px 0 22px -10px #000,inset 0 0 0 1px color-mix(in srgb,var(--accent) 55%,transparent)}
body>.cf-pane:has(.cf-n) .cf-tab .cf-tl{display:inline;font-size:12px;font-weight:600}
body>.cf-pane:has(.cf-n) .cf-tab .cf-ts{display:block;max-width:190px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--accent);font-size:11.5px}
body>.cf-pane:has(.cf-n) .cf-tab .cf-n{position:static}
body>.cf-pane:has(.cf-n) .cf-tx,body>.cf-pane:has(.cf-n):not(.open) .cf-tx{display:block;position:absolute;top:calc(100% + 6px);right:6px}
/* 0.151.1: página pública de privacidade (privacidade.html), mesmo cartão das páginas de autorização, mais larga e alinhada à esquerda */
.auth-done-box.doc{max-width:760px;text-align:left;align-items:stretch}
.auth-done-box.doc h2{margin:12px 0 0;font-size:15px;color:var(--strong)}
.auth-done-box.doc ul{margin:0;padding-left:18px;color:var(--muted);font-size:13.5px;line-height:1.6}
/* 0.163.0: Baixar e Importar Excel no cartão Custos cadastrados */
.cad-xls{display:inline-flex;gap:6px;align-items:center;margin-left:auto;margin-right:8px}
/* 0.165.0: Financeiro › Fechamento (lançamentos classificados pelo histórico, fech.js) */
.fc .lc-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}.fc-file{cursor:pointer;display:inline-flex;align-items:center}
.fc-month{display:inline-flex;gap:8px;align-items:center;color:var(--muted);font-size:12px}.fc-month select,.fc-filters select{background:var(--panel);color:var(--text);border:0;border-radius:999px;padding:5px 12px}
.fc-tile.warn .v{color:var(--accent)}.fc-tile.bad .v{color:var(--out)}
.fc-filters{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:6px 0 10px}.fc-q{background:var(--panel);color:var(--text);border:0;border-radius:999px;padding:6px 12px;min-width:220px}
.fc-table td{vertical-align:top}.fc-hist small{display:block;color:var(--faint);font-size:11px}
.fc-in{width:86px;background:var(--panel);color:var(--text);border:0;border-radius:6px;padding:4px 6px;font-variant-numeric:tabular-nums}.fc-in::placeholder{color:var(--faint);font-size:10px}
tr.fc-pendente .fc-in{outline:1px dashed var(--accent)}tr.fc-diferente .fc-sug .pill{color:var(--out)}.fc-same{color:var(--faint);font-size:12px}
.fc-use{font-size:11px;padding:3px 9px;white-space:nowrap}.fc-plan{color:var(--muted);font-size:12px}
.fc-pend{white-space:pre-wrap;font:12px/1.55 var(--mono);color:var(--muted);max-height:280px;overflow:auto;margin:6px 0}
.fc-proof tr.off td{color:var(--faint)}.fc-problems{margin:6px 0;padding-left:18px;color:var(--accent);font-size:12.5px}.fc-msg{margin-top:6px}
.fc-table td.fc-hist{min-width:220px;max-width:420px;white-space:normal;overflow-wrap:anywhere}.fc-table td.fc-plan{min-width:120px}
.fc-cxm tr.fc-tot td{font-weight:600;color:var(--text)}.fc-cxm td:first-child{white-space:nowrap}
/* 0.167.0: Fechamento › Saldos bancários e Contas a receber */
.fc-frase{font-size:15px;font-weight:600;margin:4px 0 6px;color:var(--text)}.fc-sb td:first-child{white-space:nowrap}
/* 0.177.0 · De <mês> até o lucro: custo do pedido, custo variável provisionado e custo variável pela API em caixas próprias */
.rv-row.n6{grid-template-columns:1fr 18px 1fr 18px 1fr 18px 1fr 18px 1fr 18px 1fr}
.rv-row.n7{grid-template-columns:1fr 14px 1fr 14px 1fr 14px 1fr 14px 1fr 14px 1fr 14px 1fr}
.rv-row.n6 .rv-v{font-size:23px}.rv-row.n7 .rv-v{font-size:20px}.rv-row.n7 .rv-l{font-size:10px}
.rv-c.cost.k-v .rv-v{color:#fcd34d}.rv-c.cost.k-a .rv-v{color:#7dd3fc}
.rb-lead{display:flex;align-items:baseline;gap:10px;margin-top:6px;flex-wrap:wrap}
.rb-lead b{font-size:34px;font-weight:600;font-family:var(--num,inherit);line-height:1.1}.rb-lead b.l{color:#5eead4}.rb-lead b.n{color:#fb7185}
.rb-lead span{font-size:12px;color:var(--faint)}
.rb-cells{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px 16px;margin-top:10px}
.rb-cell{display:flex;flex-direction:column;gap:2px;min-width:0}
.rb-cell small{font-size:10.5px;color:var(--faint)}
.rb-cell b{font-size:17px;font-weight:600;font-family:var(--num,inherit);white-space:nowrap;color:#99f6e4}
.rb-cell b small{font-size:11px;margin-right:3px;opacity:.7;color:inherit}
.rb-cell em{font-style:normal;font-size:11px;color:var(--faint)}
.rb-cell.k-c b{color:#c4b5fd}.rb-cell.k-v b{color:#fcd34d}.rb-cell.k-a b{color:#7dd3fc}.rb-cell.k-m b{color:#fde047}.rb-cell.k-d b{color:#fda4af}.rb-cell.k-l b{color:#5eead4}.rb-cell.k-n b{color:#fb7185}
.rb-legend{display:flex;gap:6px 16px;flex-wrap:wrap;font-size:11px;color:var(--faint);margin-top:2px}
.rb-lg{display:inline-flex;align-items:center;gap:6px}.rb-lg i{display:inline-block;width:14px;height:5px;border-radius:3px;background:#a78bfa}
.rb-lg.k-v i{background:#fbbf24}.rb-lg.k-a i{background:#38bdf8}.rb-lg.k-d i{background:#fb7185}.rb-lg.k-l i{background:#5eead4}.rb-lg.k-n i{background:#fb7185;opacity:.5}
@media (max-width:900px){.rv-row.n6,.rv-row.n7{grid-template-columns:1fr 1fr}}

/* 0.177.4 · Modo painel de Vendas no jeito do Painel do Pro Service: medidores, contas pelo ritmo da meta e o pedido a pedido embaixo */
.pf-board{display:none}
html.painel .pf-board{display:grid;gap:14px;margin:4px 0 14px}
html.painel section.mkt-orders.pbi-fotos{display:flex;flex-direction:column;height:calc(100vh - 28px)}
html.painel section.mkt-orders.pbi-fotos>.table-wrap{flex:1;min-height:180px}
html.painel .pbi-fotos .pf-table{max-height:none}
.pb-gauges{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.pb-g{display:flex;align-items:center;gap:16px;padding:12px 16px;border-radius:14px;background:#ffffff08}
.pb-dw{position:relative;width:150px;flex:none}.pb-dw b{position:absolute;left:0;right:0;bottom:2px;text-align:center;font-size:24px;font-weight:600;font-family:var(--num,inherit);color:var(--strong,#e5e7eb)}
.pb-dial{width:150px;height:80px;display:block}.pb-trk{fill:none;stroke:#ffffff14;stroke-width:9;stroke-linecap:round}.pb-val{fill:none;stroke:#5eead4;stroke-width:9;stroke-linecap:round}
.pb-dial.low .pb-val{stroke:#fb923c}.pb-dial.d .pb-val{stroke:#a3e635}.pb-mk{stroke:#fde047;stroke-width:2.5;stroke-linecap:round}
.pb-gt{display:flex;flex-direction:column;gap:3px;min-width:0}.pb-gt small{font-size:11px;color:var(--faint)}.pb-gt span{font-size:13px;color:var(--muted)}.pb-gt span b{color:var(--strong,#e5e7eb)}
.pb-rep{padding:12px 16px;border-radius:14px;background:#ffffff06}
.pb-rh{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;font-size:14px}.pb-rh span{font-size:12px;color:var(--muted);display:inline-flex;align-items:center;gap:8px}.pb-rh span i{display:inline-block;width:3px;height:14px;border-radius:2px;background:#fde047}
.pb-cols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.pb-col{min-width:0}.pb-col h3{display:flex;align-items:center;gap:8px;margin:0 0 8px;font-size:15px;font-weight:600}.pb-col h3 i{width:10px;height:10px;border-radius:50%;background:#5eead4}.pb-col h3 span{margin-left:auto;font-size:12px;color:var(--faint);font-weight:400}
.pb-col.low h3 i{background:#fb923c}.pb-col.none h3 i{background:#64748b}
.pb-col ul{list-style:none;margin:0;padding:0;display:grid;gap:6px;max-height:30vh;overflow:auto}
.pb-col li{display:grid;grid-template-columns:minmax(0,1.4fr) auto 90px 72px 70px;align-items:center;gap:10px;padding:8px 12px;border-radius:10px;background:#ffffff08;font-size:13px}
.pb-col li .n{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pb-col li .n small{font-weight:400;color:var(--faint);margin-left:4px}
.pb-col li .q{font-size:11px;color:var(--faint);white-space:nowrap}.pb-col li .p{text-align:right;font-size:16px;font-family:var(--num,inherit);color:#5eead4}.pb-col.low li .p{color:#fb923c}.pb-col.none li .p{color:var(--muted);font-size:13px}
.pb-col li .mc{font-style:normal;font-size:11px;color:var(--muted);text-align:right;white-space:nowrap}.pb-col li .mc.neg{color:#f87171}
.pb-col li.vazio{display:block;color:var(--faint);background:none}
.pb-bar{width:90px;height:8px}.pb-bar .t{fill:#ffffff14}.pb-bar .f{fill:#5eead4}.pb-col.low .pb-bar .f{fill:#fb923c}.pb-bar .m{fill:#fde047}
@media (max-width:1100px){.pb-gauges,.pb-cols{grid-template-columns:1fr}}
/* 0.177.6 (Diego: "o campo disponível para a lista de pedidos muito pequeno, queria que ocupasse mais tela"): medidores e contas
   compactos, e a lista de pedidos fica com pelo menos 60% da altura da tela */
html.painel .pf-board{gap:8px;margin:2px 0 8px}
html.painel .pb-gauges{gap:8px}
html.painel .pb-g{padding:6px 12px;gap:12px}
html.painel .pb-dw{width:104px}html.painel .pb-dial{width:104px;height:56px}html.painel .pb-dw b{font-size:18px;bottom:0}
html.painel .pb-gt{gap:1px}html.painel .pb-gt span{font-size:12px}
html.painel .pb-rep{padding:8px 12px}html.painel .pb-rh{margin-bottom:6px;font-size:13px}
html.painel .pb-col h3{font-size:13px;margin-bottom:5px}
html.painel .pb-col ul{gap:4px;max-height:14vh}
html.painel .pb-col li{padding:4px 10px;font-size:12px}html.painel .pb-col li .p{font-size:14px}
html.painel section.mkt-orders.pbi-fotos>.table-wrap{min-height:60vh}
html.painel .pbi-fotos .orders-head p.m{display:none}
/* 0.178.2: margem bruta ou líquida conforme o botão Líquida/Bruta da Formação do preço (price-mix.js põe mg-bruta no body) */
body:not(.mg-bruta) .mg-b,body.mg-bruta .mg-l{display:none}
.pbi-stm .k2 .mg-note{font-size:10px;color:var(--faint);font-weight:400}

/* 0.180.0: cartão Impostos no rio e na barra do Início (custo variável com imposto dentro do %). */
.rv-c.cost.k-i .rv-v{color:#bef264}.rb-cell.k-i b{color:#bef264}.rb-lg.k-i i{background:#84cc16}
.rv-row.n8{grid-template-columns:1fr 12px 1fr 12px 1fr 12px 1fr 12px 1fr 12px 1fr 12px 1fr 12px 1fr}
.rv-row.n8 .rv-v{font-size:18px}.rv-row.n8 .rv-l{font-size:10px}
@media (max-width:900px){.rv-row.n8{grid-template-columns:1fr 1fr}}
/* 0.180.1: cartão Taxa do Shopee Antecipa (k-s) e o rio com até 5 custos (n9) */
.rv-c.cost.k-s .rv-v{color:#f9a8d4}.rb-cell.k-s b{color:#f9a8d4}.rb-lg.k-s i{background:#ec4899}
.rv-row.n9{grid-template-columns:1fr 10px 1fr 10px 1fr 10px 1fr 10px 1fr 10px 1fr 10px 1fr 10px 1fr 10px 1fr}
.rv-row.n9 .rv-v{font-size:16px}.rv-row.n9 .rv-l{font-size:10px}
@media (max-width:900px){.rv-row.n9{grid-template-columns:1fr 1fr}}
/* 0.180.5 (Diego, 09/11/2026, Casa ABCD, Vendas › Pedidos: "o negativo ficasse vermelho dos numeros"): nesta tabela os valores que saem
   (Ads, Imposto, Frete, Custo, Flex pago, repasse negativo; classe neg desde 0.177.2) ficam em vermelho, por cima da regra 0.51.28.
   Coluna Produto: nome do primeiro item (cortado), +N quando o pedido tem mais, SKU pequeno embaixo; a lista toda no balão. */
.orders-table.pbi-ped td.amount.neg:not(.mcv),.orders-table.pbi-ped tr.lift-total td.amount.neg:not(.mcv){color:var(--out)}
.orders-table.pbi-ped td.pbi-prod{max-width:260px;min-width:160px}
.orders-table.pbi-ped .pbi-prod-t{display:inline-block;max-width:230px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:bottom}
.orders-table.pbi-ped .pbi-prod-s{display:block;font-size:10px;color:var(--faint)}
/* 0.181.0 (Diego, 10/11/2026: "eu queria todos os numeros [negativos] de todas as tabelas, gráficos e clientes" em vermelho, não laranja):
   vermelho do Power BI dele (#FC5C53) em .neg e no que installNegRed (app.js) marca sozinho: todo número entre parênteses na tela.
   Faixas da % MC como no pbit de cada cliente (pbi.js mcBand): vermelho, amarelo, verde e rosa. */
:root{--neg-red:#fc5c53}
.neg,td.amount.neg,input.money-input.neg,.neg-auto{color:var(--neg-red)!important}
text.neg-auto,tspan.neg-auto{fill:var(--neg-red)!important}
.mc-r{color:#fc5c53}.mc-y{color:#f6e577}.mc-g{color:#99fb8e}.mc-p{color:#fda3ed}
thead tr.tt-total>.mc-r,thead tr.tt-total>.mc-y,thead tr.tt-total>.mc-g,thead tr.tt-total>.mc-p{text-shadow:0 0 10px currentColor}
/* 0.182.0 (Diego, 10/11/2026: "mover as colunas e escolher e tirar colunas" em todas as tabelas): botão Colunas (colunas.js). */
.col-bar{position:relative;display:flex;justify-content:flex-end;margin:0 0 4px}
.col-btn{font-size:11px;padding:3px 10px;border-radius:999px;border:0;background:#ffffff0d;color:var(--muted);cursor:pointer}
.col-btn:hover,.col-btn.on{color:var(--text);background:#ffffff17}.col-btn small{color:var(--accent);margin-left:4px}
.col-panel{position:absolute;right:0;top:100%;z-index:60;width:300px;max-height:420px;overflow:auto;background:var(--panel);border-radius:12px;padding:10px;box-shadow:0 12px 32px #0009;font-size:11.5px}
.col-panel .col-head{display:flex;flex-direction:column;gap:2px;margin-bottom:6px}.col-panel .col-head span{color:var(--faint);font-size:10.5px}
.col-panel ul{list-style:none;margin:0;padding:0}.col-panel li{display:flex;align-items:center;gap:6px;padding:3px 4px;border-radius:6px;cursor:grab}
.col-panel li:hover,.col-panel li.over{background:#ffffff0f}.col-panel li.off label{color:var(--faint)}
.col-panel label{flex:1;display:flex;align-items:center;gap:6px;cursor:pointer}.col-panel .col-grip{color:var(--faint);font-size:10px}
.col-panel li button{border:0;background:none;color:var(--faint);cursor:pointer;padding:0 3px}.col-panel li button:hover{color:var(--text)}
.col-panel .col-foot{display:flex;justify-content:space-between;margin-top:8px}.col-panel .col-foot button{font-size:11px;border:0;border-radius:999px;padding:3px 10px;background:#ffffff0d;color:var(--muted);cursor:pointer}
table .col-off{display:none}td.col-open,th.col-open{white-space:nowrap;overflow:visible}
/* 0.183.0: tabela Por plataforma, marketplace e conta (três níveis) */
.pbi-ind.pbi-mk{color:var(--text,#e5e7eb)}
.pbi-ind2{padding-left:30px;color:var(--muted,#cbd5e1)}

/* 0.184.0 · Tiny: uma conta embaixo da outra no cartão do Tiny (Carregar dados › ERP). */
.tiny-card .tn-conta+.tn-conta{margin-top:14px;padding-top:12px;border-top:1px solid rgba(255,255,255,.06);}
/* 0.184.2 Queima de estoque: a mesma pílula da Margem negativa, em amarelo */
.qb-alert{color:#fde68a}
.qb-alert:hover{box-shadow:inset 0 0 0 1px #facc15,0 8px 20px -8px #eab308cc}
.qb-alert b{background:#3b2f06;color:#fef3c7}
.qb-alert .sw i{background:#facc15;box-shadow:0 0 0 0 #facc15aa;animation:none}
.qb-alert.on{background:linear-gradient(135deg,#a16207 0%,#ca8a04 55%,#facc15 100%);color:#1f1300;box-shadow:0 0 0 2px #fde68a,0 8px 22px -6px #eab308cc}
.qb-alert.on b{background:#422006;color:#fff}.qb-alert.on .st{color:#1f1300}
.qb-alert.on .sw i{background:#fff}
/* 0.185.8 (Diego, 10/11/2026: "esse botão fica muito exposto quando tem algo filtrado… Não poderia ficar tipo uma etiqueta. e a lá de cima
   que abrimos os submenus tambem poderia ser uma etiqueta"): os dois viram etiquetas de preço (ponta com furinho). Filtros: presa na beirada
   direita, só o funil e o número; com filtro fica amarela (continua à vista, 0.158.14) e o nome, o resumo e o × aparecem ao passar o mouse
   ou com o painel aberto. Submenus: a mesma etiqueta pequena, aberta à esquerda da faixa e, fechada, pendurada no meio do topo. */
body>.cf-pane:not(.open){filter:drop-shadow(-3px 4px 8px rgba(0,0,0,.45))}
body>.cf-pane .cf-tab,body>.cf-pane.open .cf-tab,body>.cf-pane .cf-tab:hover,
body>.cf-pane:has(.cf-n) .cf-tab,body>.cf-pane:has(.cf-n) .cf-tab:hover{position:relative;flex-direction:row;width:auto;height:30px;max-width:320px;padding:0 9px 0 21px;gap:6px;border-radius:0 7px 7px 0;
 clip-path:polygon(12px 0,100% 0,100% 100%,12px 100%,0 50%);background:color-mix(in srgb,var(--bg) 88%,#fff);color:var(--text);box-shadow:none;transition:background .15s}
body>.cf-pane .cf-tab::before{content:"";position:absolute;left:8px;top:50%;width:5px;height:5px;margin-top:-2.5px;border-radius:50%;background:var(--bg)}
body>.cf-pane .cf-tab:hover,body>.cf-pane.open .cf-tab{background:color-mix(in srgb,var(--bg) 80%,#fff)}
body>.cf-pane:has(.cf-n) .cf-tab,body>.cf-pane:has(.cf-n) .cf-tab:hover{background:color-mix(in srgb,var(--accent) 22%,var(--bg))}
body>.cf-pane:has(.cf-n):hover .cf-tab,body>.cf-pane.open:has(.cf-n) .cf-tab{background:color-mix(in srgb,var(--accent) 30%,var(--bg))}
body>.cf-pane .cf-tab svg{width:13px;height:13px}
body>.cf-pane .cf-tab .cf-n,body>.cf-pane:has(.cf-n) .cf-tab .cf-n{position:static;min-width:16px;height:16px;line-height:16px;font-size:10px;box-shadow:none}
body>.cf-pane .cf-tab .cf-tl,body>.cf-pane .cf-tab .cf-ts,body>.cf-pane:has(.cf-n) .cf-tab .cf-tl,body>.cf-pane:has(.cf-n) .cf-tab .cf-ts{display:none}
body>.cf-pane:hover .cf-tab .cf-tl,body>.cf-pane.open .cf-tab .cf-tl{display:inline;font-size:11.5px;font-weight:600}
body>.cf-pane:has(.cf-n):hover .cf-tab .cf-ts,body>.cf-pane.open:has(.cf-n) .cf-tab .cf-ts{display:block;max-width:190px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--accent);font-size:11px}
body>.cf-pane .cf-tx,body>.cf-pane:has(.cf-n) .cf-tx,body>.cf-pane:has(.cf-n):not(.open) .cf-tx{display:none}
body>.cf-pane:has(.cf-n):hover .cf-tx,body>.cf-pane.open:has(.cf-n) .cf-tx{display:block;position:absolute;top:calc(100% + 6px);right:6px}
.sub-fold,.subnav .sub-fold{position:relative;width:34px;height:20px;padding:0 0 0 8px;border-radius:0 5px 5px 0;clip-path:polygon(9px 0,100% 0,100% 100%,9px 100%,0 50%);background:color-mix(in srgb,var(--bg) 88%,#fff)}
.sub-fold::before{content:"";position:absolute;left:6px;top:50%;width:4px;height:4px;margin-top:-2px;border-radius:50%;background:var(--bg)}
.sub-fold:hover{background:color-mix(in srgb,var(--accent) 22%,var(--bg))}
.sub-fold svg,.subnav .sub-fold svg{width:12px;height:12px}
.subnav.sub-closed .sub-fold{top:3px;width:34px;height:20px;border-radius:0 5px 5px 0;background:color-mix(in srgb,var(--bg) 88%,#fff)}
.subnav.sub-closed .sub-fold:hover{background:color-mix(in srgb,var(--accent) 22%,var(--bg))}
.subnav.sub-closed .sub-fold svg{width:12px;height:12px}
@media (prefers-reduced-motion:reduce){body>.cf-pane .cf-tab{transition:none}}
/* 0.185.9 (Diego: "deveria ficar só a pontinha das etiquetas. a que está na lateral direita fica na horizontal e a que está no topo fica na vertical"):
   parada, só a ponta com o furinho aparece (a de Filtros saindo da beirada direita, deitada; a dos submenus pendurada no topo, em pé);
   ao passar o mouse a etiqueta desliza para fora. Com filtro, a ponta fica amarela. */
body>.cf-pane .cf-tab{transition:background .15s,transform .2s ease}
body>.cf-pane:not(:hover):not(.open) .cf-tab{transform:translateX(calc(100% - 21px))}
.subnav.sub-closed .sub-fold{top:0;width:20px;height:34px;padding:0 0 10px;border-radius:0;align-items:center;justify-content:center;
 clip-path:polygon(0 0,100% 0,100% calc(100% - 10px),50% 100%,0 calc(100% - 10px));transform:translate(-50%,-20px);transition:transform .2s ease,background .15s}
.subnav.sub-closed .sub-fold::before{left:50%;top:auto;bottom:6px;margin:0 0 0 -2px}
.subnav.sub-closed .sub-fold:hover,.subnav.sub-closed .sub-fold:focus-visible{transform:translate(-50%,0)}
@media (prefers-reduced-motion:reduce){body>.cf-pane .cf-tab,.subnav.sub-closed .sub-fold{transition:none}}
/* 0.185.9 (Diego: "a do filtro, deixa o numero abaixo dela"): com filtro, o número fica numa bolinha logo abaixo da ponta; some quando a etiqueta sai. */
body>.cf-pane .cf-nb{position:absolute;top:calc(100% + 4px);right:3px;min-width:16px;height:16px;padding:0 4px;border-radius:999px;background:var(--accent);color:#111;font-size:10px;font-weight:700;line-height:16px;text-align:center}
body>.cf-pane:hover .cf-nb,body>.cf-pane.open .cf-nb{display:none}
/* Parada, a etiqueta fica quase toda fora da tela: só a ponta (e o painel, o ×) recebe o mouse, sem área invisível sobre a tabela. */
body>.cf-pane{pointer-events:none}
body>.cf-pane .cf-tab,body>.cf-pane .cf-tx,body>.cf-pane .cf-body{pointer-events:auto}
/* 0.185.10 (Diego, 11/11/2026, print das duas etiquetas: "não gostei de nenhuma das duas"): saem as etiquetas de preço.
   Filtros: lingueta lisa, sempre inteira à vista na beirada direita (sem ponta, furinho nem deslizar): funil e, com filtro, o número
   embaixo dele, em amarelo. Clique abre o painel, como antes; o × para tirar tudo aparece com o painel aberto. */
html body>.cf-pane .cf-tab,html body>.cf-pane.open .cf-tab,html body>.cf-pane .cf-tab:hover,
html body>.cf-pane:has(.cf-n) .cf-tab,html body>.cf-pane:has(.cf-n) .cf-tab:hover,html body>.cf-pane:not(:hover):not(.open) .cf-tab{
 display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;width:24px;height:auto;min-height:44px;max-width:none;padding:9px 0;
 border-radius:10px 0 0 10px;clip-path:none;transform:none;box-shadow:-4px 0 14px -8px rgba(0,0,0,.6);
 background:color-mix(in srgb,var(--bg) 86%,#fff);color:var(--muted,var(--text));transition:background .15s,color .15s}
html body>.cf-pane:not(.open){filter:none}
html body>.cf-pane .cf-tab::before{content:none}
html body>.cf-pane .cf-tab:hover,html body>.cf-pane.open .cf-tab{background:color-mix(in srgb,var(--bg) 78%,#fff);color:var(--text)}
html body>.cf-pane:has(.cf-n) .cf-tab,html body>.cf-pane:has(.cf-n) .cf-tab:hover{background:color-mix(in srgb,var(--accent) 20%,var(--bg));color:var(--accent)}
html body>.cf-pane.open:has(.cf-n) .cf-tab,html body>.cf-pane:has(.cf-n):hover .cf-tab{background:color-mix(in srgb,var(--accent) 28%,var(--bg))}
html body>.cf-pane .cf-tab svg{width:13px;height:13px}
html body>.cf-pane .cf-tab .cf-tl,html body>.cf-pane .cf-tab .cf-ts,html body>.cf-pane:hover .cf-tab .cf-tl,html body>.cf-pane.open .cf-tab .cf-tl,
html body>.cf-pane:has(.cf-n):hover .cf-tab .cf-ts,html body>.cf-pane.open:has(.cf-n) .cf-tab .cf-ts{display:none}
html body>.cf-pane .cf-tab .cf-n,html body>.cf-pane:has(.cf-n) .cf-tab .cf-n{display:block;position:static;min-width:16px;height:16px;padding:0 4px;border-radius:999px;background:var(--accent);color:#111;font-size:10px;font-weight:700;line-height:16px;text-align:center;box-shadow:none}
html body>.cf-pane .cf-nb{display:none}
html body>.cf-pane .cf-tx{display:none}
/* 0.192.4 (Diego: "nesses filtros etiquetas precisa do x sem abrir ele"): com filtro ligado, o × aparece embaixo da etiqueta mesmo fechada */
html body>.cf-pane.cf-pane:has(.cf-n) .cf-tx{display:block;position:absolute;top:calc(100% + 6px);right:2px;width:22px;height:22px;font-size:14px}
/* 0.185.11 (Diego: "tem que ser uma etiqueta a de cima também"): a dos submenus volta a ser lingueta pendurada no meio do topo,
   lisa como a de Filtros: cantos de baixo redondos, sempre inteira à vista, setinha para baixo. Aberta, a mesma pílula com a setinha para cima, à esquerda da faixa. */
html .subnav .sub-fold,html .subnav.sub-closed .sub-fold{display:flex;align-items:center;justify-content:center;padding:0;clip-path:none;border:0;
 background:color-mix(in srgb,var(--bg) 86%,#fff);color:var(--muted);box-shadow:0 4px 14px -8px rgba(0,0,0,.6);transition:background .15s,color .15s}
html .subnav .sub-fold::before{content:none}
html .subnav .sub-fold{position:relative;width:26px;height:22px;border-radius:999px}
html .subnav .sub-fold svg{width:12px;height:12px;transform:rotate(-90deg)}
html .subnav.sub-closed .sub-fold{position:absolute;top:0;left:50%;width:44px;height:18px;border-radius:0 0 10px 10px;transform:translateX(-50%)}
html .subnav.sub-closed .sub-fold svg{transform:rotate(90deg)}
html .subnav .sub-fold:hover,html .subnav .sub-fold:focus-visible,html .subnav.sub-closed .sub-fold:hover,html .subnav.sub-closed .sub-fold:focus-visible{background:color-mix(in srgb,var(--bg) 76%,#fff);color:var(--text);transform:translateX(-50%)}
html .subnav:not(.sub-closed) .sub-fold:hover,html .subnav:not(.sub-closed) .sub-fold:focus-visible{transform:none}
/* 0.186.1 (Diego: "as duas poderiam ser tipo duas filipetas para puxar"): as duas linguetas viram o mesmo puxador: tira lisa com duas
   risquinhas de pegar (no topo deitadas, na direita em pé, acima do funil); ao passar o mouse a tira "estica" uns pixels para fora e as
   risquinhas acendem em amarelo. */
html .subnav.sub-closed .sub-fold{width:46px;height:15px;color:var(--muted);transition:height .15s ease,background .15s,color .15s}
html .subnav.sub-closed .sub-fold svg{display:none}
html .subnav.sub-closed .sub-fold::after{content:"";width:18px;height:2px;margin-top:-4px;border-radius:2px;background:currentColor;box-shadow:0 4px 0 currentColor}
html .subnav.sub-closed .sub-fold:hover,html .subnav.sub-closed .sub-fold:focus-visible{height:20px;color:var(--accent)}
html body>.cf-pane .cf-tab::before{content:"";position:static;left:auto;top:auto;flex:none;width:2px;height:14px;margin:0 4px 1px 0;border-radius:2px;background:currentColor;box-shadow:4px 0 0 currentColor;opacity:.85}
html body>.cf-pane .cf-tab,html body>.cf-pane.open .cf-tab,html body>.cf-pane .cf-tab:hover,html body>.cf-pane:has(.cf-n) .cf-tab,html body>.cf-pane:has(.cf-n) .cf-tab:hover,html body>.cf-pane:not(:hover):not(.open) .cf-tab{transition:width .15s ease,background .15s,color .15s}
html body>.cf-pane .cf-tab:hover,html body>.cf-pane.open .cf-tab,html body>.cf-pane:has(.cf-n) .cf-tab:hover{width:29px;color:var(--accent)}
@media (prefers-reduced-motion:reduce){html .subnav.sub-closed .sub-fold,html body>.cf-pane .cf-tab{transition:none!important}}
html body>.cf-pane:has(.cf-n):not(:hover):not(.open) .cf-tab{background:color-mix(in srgb,var(--accent) 20%,var(--bg));color:var(--accent)}
/* 0.186.2 (Diego: "poderiam ser azuis, né"): os dois puxadores em azul (fundo azul escuro, risquinhas e ícone azul claro; mais aceso ao passar
   o mouse). Com filtro, a de Filtros continua azul e o aviso fica no número amarelo embaixo do funil. */
html .subnav .sub-fold,html .subnav.sub-closed .sub-fold,
html body>.cf-pane .cf-tab,html body>.cf-pane.open .cf-tab,html body>.cf-pane .cf-tab:hover,html body>.cf-pane:has(.cf-n) .cf-tab,html body>.cf-pane:has(.cf-n) .cf-tab:hover,
html body>.cf-pane:not(:hover):not(.open) .cf-tab,html body>.cf-pane:has(.cf-n):not(:hover):not(.open) .cf-tab{background:color-mix(in srgb,var(--in-strong) 32%,var(--bg));color:var(--in)}
html .subnav .sub-fold:hover,html .subnav .sub-fold:focus-visible,html .subnav.sub-closed .sub-fold:hover,html .subnav.sub-closed .sub-fold:focus-visible,
html body>.cf-pane .cf-tab:hover,html body>.cf-pane.open .cf-tab,html body>.cf-pane:has(.cf-n) .cf-tab:hover,html body>.cf-pane.open:has(.cf-n) .cf-tab,html body>.cf-pane:has(.cf-n):hover .cf-tab{background:color-mix(in srgb,var(--in-strong) 50%,var(--bg));color:#fff}
html .subnav .sub-fold svg{stroke:currentColor}
/* 0.186.5 (Diego: "ficou horrível azul. coloca no tema mesmo. Mas o cinza não gostei"): os dois puxadores na cor de destaque do tema
   (--accent: amarelo no escuro, a cor própria em cada tema), fundo com um toque dessa cor e risquinhas/ícone nela; mais aceso ao passar o mouse. */
html .subnav .sub-fold,html .subnav.sub-closed .sub-fold,
html body>.cf-pane .cf-tab,html body>.cf-pane.open .cf-tab,html body>.cf-pane .cf-tab:hover,html body>.cf-pane:has(.cf-n) .cf-tab,html body>.cf-pane:has(.cf-n) .cf-tab:hover,
html body>.cf-pane:not(:hover):not(.open) .cf-tab,html body>.cf-pane:has(.cf-n):not(:hover):not(.open) .cf-tab{background:color-mix(in srgb,var(--accent) 22%,var(--bg));color:var(--accent)}
html .subnav .sub-fold:hover,html .subnav .sub-fold:focus-visible,html .subnav.sub-closed .sub-fold:hover,html .subnav.sub-closed .sub-fold:focus-visible,
html body>.cf-pane .cf-tab:hover,html body>.cf-pane.open .cf-tab,html body>.cf-pane:has(.cf-n) .cf-tab:hover,html body>.cf-pane.open:has(.cf-n) .cf-tab,html body>.cf-pane:has(.cf-n):hover .cf-tab{background:color-mix(in srgb,var(--accent) 34%,var(--bg));color:var(--accent)}

/* 0.189.8: Líquida/Bruta dentro das duas % do cartão Margem e ponto de equilíbrio */
.eq-tile .eq-mg{position:absolute;top:10px;right:10px;z-index:2;transform:scale(.82);transform-origin:top right}
.eq-tile.eq-avg,.eq-tile.eq-last{align-items:start;align-content:stretch;grid-template-rows:auto 1fr;padding-top:42px}.eq-tile.eq-avg>svg,.eq-tile.eq-last>svg{align-self:end}
/* 0.191.0 Queima de estoque no rio: cartão depois da MC líquida (+ MC da queima) */
.rv-row.n10{grid-template-columns:1fr 8px 1fr 8px 1fr 8px 1fr 8px 1fr 8px 1fr 8px 1fr 8px 1fr 8px 1fr 8px 1fr}
.rv-row.n10 .rv-v{font-size:15px}.rv-row.n10 .rv-l{font-size:9.5px}
@media (max-width:900px){.rv-row.n10{grid-template-columns:1fr 1fr}}
.rv-c.qm .rv-v{color:#facc15}.rv-c.qm .rv-l{color:#fde68a}
.rb-cell.k-q b{color:#facc15}
