*{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:wait}

/* 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}
body{background:var(--bg);color:var(--text);font-family:'Source Sans 3',system-ui,sans-serif;font-size:13px;line-height:1.5}
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:22px;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-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}
.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}
.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}
/* 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 */
/* 1.12.0 (como o DS Financeiro 0.33.0): 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-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:none}
.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}
/* 1.19.0: clicar várias vezes no cabeçalho (para ordenar) não pinta mais os títulos de cinza (texto selecionado). */
thead th{-webkit-user-select:none;user-select:none}
.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 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-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:200px 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}
.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)}
/* Pro Service 0.25.0: Cadastros › Produtos e Reposição Armarinhos Fernando (ps-produtos.js, ps-reposicao.js) */
.ps{display:flex;flex-direction:column;gap:12px;margin:8px 0 8px}
.ps .cad-history td{white-space:normal}
.ps .card.hero{grid-column:auto;grid-row:auto}
.ps-figs{grid-template-columns:repeat(4,minmax(0,1fr));margin-top:6px}
.ps-figs .k{display:block;font-size:10.5px;color:var(--faint)}
.ps-figs .n{font-family:var(--num);font-size:20px;color:var(--strong)}
.ps-warn{color:#e0b569}.ps-bad,.ps-figs .n.ps-bad{color:#fb7185}.ps-figs .n.ps-warn{color:#e0b569}
.ps-strong{color:var(--strong);font-weight:600}
.ps-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;grid-column:1/-1;margin-top:4px}
.ps-actions .ps-del,.text-button.ps-del{color:#ee938c}
.ps-form .cad-fields{grid-template-columns:1fr 1fr 1fr}
.ps-form .cad-fields select{width:100%}
.ps-import .cad-fields{grid-template-columns:repeat(3,minmax(0,1fr))}
.ps-import .cad-fields select{width:100%}
.ps-drop{display:flex;align-items:center;justify-content:center;min-height:88px;border:1px dashed #2b3647;border-radius:12px;color:var(--muted);cursor:pointer;font-size:12px;margin-top:8px;position:relative}
.ps-drop:hover{border-color:var(--hover-line);color:var(--strong)}
.ps-drop input{position:absolute;inset:0;opacity:0;cursor:pointer}
.ps-map{margin:8px 0;font-size:12px}.ps-map summary{cursor:pointer;color:var(--muted)}.ps-map .cad-fields{margin-top:8px}
.ps-preview{max-height:320px;overflow:auto;margin-top:8px}
.ps-tag{display:inline-block;font-size:10.5px;line-height:1.35;padding:1px 7px;border-radius:999px;border:1px solid var(--line);color:var(--muted);white-space:nowrap}
.ps-tag.good{color:#5eead4;border-color:rgba(94,234,212,.35);background:rgba(94,234,212,.06)}
.ps-tag.bad{color:#fb7185;border-color:rgba(251,113,133,.4);background:rgba(251,113,133,.07)}
.ps-tag.warn{color:#fdba74;border-color:rgba(253,186,116,.35);background:rgba(253,186,116,.06)}
.ps-tag.info{color:#93c5fd;border-color:rgba(147,197,253,.35);background:rgba(147,197,253,.06)}
.ps-tag.dim{color:var(--faint)}
td .ps-tag{white-space:normal}
.ps-name{display:block;color:var(--text)}.ps-name+.mono{display:block;font-size:10.5px}
.ps-note{margin:2px 0 6px;font-size:12px;border-left:2px solid var(--line);padding-left:8px;max-width:900px}
.ps-note.good{border-color:#5eead4}.ps-note.bad{border-color:#fb7185}.ps-note.warn{border-color:#fdba74}.ps-note.info{border-color:#93c5fd}
.ps-filters{display:flex;gap:10px;flex-wrap:wrap;align-items:end}
.ps-filters label{display:flex;flex-direction:column;gap:4px;font-size:11px;color:var(--faint)}
.ps-filters select{max-width:100%}
.ps-chip-row{display:flex;flex-wrap:wrap;gap:6px}
.ps-chip{display:inline-flex;gap:8px;align-items:center;background:transparent;border:1px solid var(--line);border-radius:999px;padding:4px 10px;color:var(--muted);font-size:11.5px;cursor:pointer;text-align:left}
.ps-chip b{font-family:var(--num);font-weight:500;color:var(--strong)}
.ps-chip.bad{border-color:rgba(251,113,133,.35)}.ps-chip.warn{border-color:rgba(253,186,116,.3)}.ps-chip.info{border-color:rgba(147,197,253,.3)}.ps-chip.good{border-color:rgba(94,234,212,.3)}
.ps-chip:hover,.ps-chip.active{color:var(--strong);border-color:var(--accent)}
.ps-stores{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}
.ps-store{background:var(--card);text-align:left;cursor:pointer;font:inherit;gap:6px}
.ps-store .n{font-family:var(--num);font-size:22px;color:var(--strong)}.ps-store .n small{font-family:'Source Sans 3',system-ui,sans-serif;font-size:11px;color:var(--faint)}
.ps-bar{display:flex;height:4px;border-radius:2px;background:var(--line-soft);overflow:hidden}
.ps-bar i{display:block;height:100%}.ps-bar i.bad{background:#fb7185}.ps-bar i.good{background:#5eead4;margin-left:auto}
.ps-code{font-family:var(--mono);font-size:11px;background:#0a0f1a;border:1px solid var(--line-soft);border-radius:10px;padding:10px 12px;white-space:pre-wrap;word-break:break-all;color:#cbd5e1;margin:8px 0}
.ps-api{max-width:none}
@media(max-width:900px){.ps-form .cad-fields,.ps-import .cad-fields{grid-template-columns:1fr 1fr}}
@media(max-width:700px){.ps-figs{grid-template-columns:1fr 1fr}.ps-form .cad-fields,.ps-import .cad-fields{grid-template-columns:1fr}.ps-filters label{flex:1 1 140px}.ps-filters select{width:100%}}
.ps-form .cad-fields input,.ps-import .cad-fields input{width:100%;box-sizing:border-box}
.ps-steps{margin:0 0 10px;padding-left:18px;font-size:12px;color:var(--muted);display:grid;gap:4px}
.ps-steps b{color:var(--strong);font-weight:600}
.ps-check{display:flex;align-items:center;gap:8px;font-size:12px;margin:6px 0 10px;cursor:pointer}
.ps-check input{accent-color:var(--accent)}
.ps .cad-grid .ps-import.editing{grid-column:1/-1;order:-1}
.ps .ps-preview td:nth-child(4),.ps .ps-preview td.m,.ps .cad-list td:nth-child(2){white-space:normal;min-width:200px}
.ps-inner{display:inline-flex;flex-wrap:wrap;margin:0 0 12px}
.ps-fix{border-top:1px dashed var(--line-soft);margin-top:12px;padding-top:10px;display:grid;gap:8px}
.ps-chips{display:flex;flex-wrap:wrap;gap:6px}
.ps-chip-fix{display:inline-flex;align-items:center;gap:4px;font-size:11px;border:1px solid var(--line-soft);border-radius:999px;padding:2px 4px 2px 10px;color:var(--strong)}
.ps-chip-fix button{padding:0 6px;line-height:1.4}
.ps-fix-add{display:flex;gap:8px;flex-wrap:wrap}.ps-fix-add input{flex:1 1 220px}
.ps-std{margin:0 0 12px;border-color:rgba(251,191,36,.45)}.ps-std .cad-head{justify-content:space-between;gap:10px;flex-wrap:wrap}
.ps-std .m{margin:4px 0 0}
.ps-copy{margin:0 0 12px}.ps-copy-row{display:flex;flex-wrap:wrap;align-items:end;gap:10px;margin-top:8px}.ps-copy-row label{display:flex;flex-direction:column;gap:4px;font-size:11px;color:var(--muted)}.ps-copy .m{margin:8px 0 0}
/* 0.4.5 filtro por coluna, estilo Excel (table-tools.js) */
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)}
.ps-warncell{font-size:11px;color:#e0b569;white-space:normal;min-width:180px;max-width:320px}
/* 0.5.0 Armarinhos Fernando (af.js): ferramentas em quadros sem borda abaixo do título */
.af-host{margin-top:12px}
.af-frame{display:block;width:100%;min-height:420px;border:0;background:transparent;color-scheme:dark}
.af-frame[hidden]{display:none}
.af-host{max-width:1600px;margin:12px auto 0}
.ps-drop-sm{min-height:44px;margin:8px 0}
/* Azure por representada (0.7.0) */
.ps-az-rep{cursor:pointer}.ps-az-rep:hover td,.ps-az-rep.on td{background:var(--line-soft)}
.ps-az-detail>td{padding:8px 4px 14px;background:var(--panel)}
.ps-az-periods .table-wrap{margin-top:8px}.ps-az-periods .ps-actions{margin:6px 0}
tr.ps-conflict td{background:rgba(248,113,113,.06)}
.ps-az-files{margin:6px 0 0;padding-left:16px;font-size:11px;color:var(--muted)}.ps-az-files li{margin:2px 0;word-break:break-all}
.ps-az-err{align-items:flex-start;margin-top:8px}.ps-az-err strong{color:var(--strong);font-weight:600}
.ps-azure .ps-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:8px}
/* Sugestão com todas as linhas da matriz (0.8.3) */
td.ps-note-cell{white-space:normal;min-width:280px;max-width:360px;font-size:11px;line-height:1.4}
td.ps-note-cell.good{color:#5eead4}td.ps-note-cell.bad{color:#fb7185}td.ps-note-cell.warn{color:#fdba74}td.ps-note-cell.dim{color:var(--muted)}

.ps-rep-table th:nth-child(-n+2),.ps-rep-table td:nth-child(-n+2){position:sticky;background:var(--card);z-index:1}.ps-rep-table th:nth-child(-n+2){z-index:3}.ps-rep-table th:first-child,.ps-rep-table td:first-child{left:-8px;width:180px;min-width:180px;max-width:180px}.ps-rep-table th:nth-child(2),.ps-rep-table td:nth-child(2){left:172px;min-width:190px;box-shadow:inset -1px 0 0 var(--line)}.ps-rep-table tbody tr:hover td:nth-child(-n+2){background:#101b24}
.ps-sug-only{margin:2px 0 10px}
.segmented button.tab-alert{color:#fb7185;box-shadow:inset 0 0 0 1px rgba(251,113,133,.55)}.segmented button.tab-alert.active{background:rgba(251,113,133,.12);color:#fda4af}.segmented button.tab-off{opacity:.4;cursor:not-allowed}
.ps-rep-table .ps-tag{white-space:nowrap}.ps-rep-table .ps-mod{white-space:nowrap;font-variant-numeric:tabular-nums}
.ps-chip-label{font-size:11px;color:var(--faint);align-self:center;margin-right:2px}
.ps-sug-table th:nth-child(-n+4),.ps-sug-table td:nth-child(-n+4){position:sticky;background:var(--card);z-index:1}.ps-sug-table th:nth-child(-n+4){z-index:3}
.ps-sug-table th:nth-child(1),.ps-sug-table td:nth-child(1){left:-8px;width:150px;min-width:150px;max-width:150px}
.ps-sug-table th:nth-child(2),.ps-sug-table td:nth-child(2){left:142px;width:250px;min-width:250px;max-width:250px}
.ps-sug-table th:nth-child(3),.ps-sug-table td:nth-child(3){left:392px;width:130px;min-width:130px;max-width:130px}
.ps-sug-table th:nth-child(4),.ps-sug-table td:nth-child(4){left:522px;width:110px;min-width:110px;max-width:110px;box-shadow:inset -1px 0 0 var(--line)}
.ps-sug-table tbody tr:hover td:nth-child(-n+4){background:#101b24}
.ps-store-raw{display:block;font-size:10px;color:#fb7185}
.crit-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:16px;align-items:start}@media(max-width:900px){.crit-grid{grid-template-columns:1fr}}
.crit .ps-tag{white-space:normal}.crit-seg button{padding:3px 10px;font-size:11.5px;white-space:nowrap}.crit-def{margin-left:8px;font-size:10.5px}
.crit-list{list-style:none;margin:0;padding:0;display:grid;gap:2px}.crit-switch{display:flex;gap:10px;align-items:flex-start;padding:8px 4px;border-bottom:1px solid var(--line-soft);cursor:pointer}
.crit-switch input{margin-top:3px;accent-color:#facc15}.crit-switch b{display:block;font-weight:500;color:var(--strong);font-size:12.5px}.crit-switch small{display:block;color:var(--faint);font-size:11px;margin-top:2px}
.crit-preview{margin-top:12px;border:1px dashed var(--line);border-radius:10px;border-bottom-style:dashed}
.crit-dlg{border:1px solid var(--line);border-radius:16px;background:var(--card);color:var(--text);padding:0;max-width:min(760px,calc(100vw - 32px));width:100%;max-height:calc(100vh - 64px)}
.crit-dlg::backdrop{background:rgba(3,6,12,.65)}.crit-dlg-body{padding:18px 20px}.crit-dlg .table-wrap{max-height:calc(100vh - 260px)}.crit-dlg .ps-tag{white-space:normal}
.crit-grid.crit-one{grid-template-columns:minmax(0,640px)}
.crit-help{display:block;margin-top:5px;font-size:11.5px;color:var(--muted);line-height:1.45;max-width:520px}.crit-acts td{vertical-align:top;padding-top:10px;padding-bottom:10px}
.crit-giro{border:1px solid var(--line);border-radius:12px;padding:12px 14px;margin:8px 0 14px;display:grid;gap:6px}.crit-giro .k{margin:0;font-size:12.5px;color:var(--text)}.crit-giro b{color:#facc15;font-weight:600}
.crit-giro label{display:grid;grid-template-columns:90px 1fr;align-items:center;gap:10px;font-size:11.5px;color:var(--muted)}.crit-giro input[type=range]{accent-color:#facc15;width:100%}.crit-giro .m{margin:2px 0 0;font-size:11px}
.crit-acts td{white-space:normal}.crit-acts td:first-child{max-width:none;overflow:visible}
/* Auditoria da sugestão (1.0.7) */
.ps-audit-btn{display:block;margin-top:2px;padding:0;font-size:11px}
.ps-audit .crit-dlg-body{display:flex;flex-direction:column;gap:10px}
.ps-audit-who{margin:0;font-size:13px;line-height:1.4}
.ps-audit-res{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;border:1px solid var(--line);border-radius:12px;padding:10px 12px}
.ps-audit-res .n{font-size:20px;font-weight:600}
.ps-audit-h{margin:6px 0 0;font-size:12px;font-weight:600;color:var(--muted)}
.ps-audit-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:6px}
.ps-audit-grid>div{border:1px solid var(--line);border-radius:10px;padding:6px 8px;display:flex;flex-direction:column;gap:2px}
.ps-audit-grid .k{font-size:11px;color:var(--muted)}.ps-audit-grid .v{font-size:13px;font-weight:600}
.ps-audit-chks{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.ps-audit-chk{display:flex;gap:8px;align-items:flex-start;font-size:12px}.ps-audit-chk>span:last-child{display:flex;flex-direction:column;gap:2px}
.ps-audit-steps td{white-space:normal;font-size:12px}.ps-audit-steps td:first-child{white-space:nowrap}
.ps-audit-bands{display:flex;flex-wrap:wrap;gap:6px}.ps-audit-bands .ps-chip{cursor:default}
.ps-audit p.ps-note-cell{margin:0;font-size:12px;white-space:normal}
/* Cor por status do produto (1.0.8): etiqueta na tabela e ponto nos botões */
.ps-tag.st-ativo{color:#5eead4;border-color:rgba(94,234,212,.35);background:rgba(94,234,212,.06)}
.ps-tag.st-lanc{color:#93c5fd;border-color:rgba(147,197,253,.35);background:rgba(147,197,253,.06)}
.ps-tag.st-alvo{color:#ffd21e;border-color:rgba(255,210,30,.35);background:rgba(255,210,30,.06)}
.ps-tag.st-saz{color:#c4b5fd;border-color:rgba(196,181,253,.35);background:rgba(196,181,253,.07)}
.ps-tag.st-inativo{color:#9ca3af;border-color:rgba(156,163,175,.35);background:rgba(156,163,175,.06)}
.ps-tag.st-fora{color:#fb7185;border-color:rgba(251,113,133,.4);background:rgba(251,113,133,.07)}
.ps-tag.st-sem{color:var(--faint);border-style:dashed}
.st-dot{width:7px;height:7px;border-radius:50%;flex:none;background:var(--faint)}
.st-dot.st-ativo{background:#5eead4}.st-dot.st-lanc{background:#93c5fd}.st-dot.st-alvo{background:#ffd21e}.st-dot.st-saz{background:#c4b5fd}.st-dot.st-inativo{background:#9ca3af}.st-dot.st-fora{background:#fb7185}.st-dot.st-sem{background:transparent;border:1px dashed var(--faint)}
.ps-chip .st-dot{margin-right:-2px}
/* Barras de rolagem suaves (1.0.9): finas, escuras, clareiam ao passar o mouse; em todo o app */
::-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}
/* Auditoria do trade (1.1.0): regras na ordem, com as partes da condição */
.ps-audit-rules{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.ps-audit-rule{display:flex;gap:10px;align-items:flex-start;font-size:12px;border:1px solid var(--line-soft);border-radius:10px;padding:7px 10px}
.ps-audit-rule.skip{opacity:.45}.ps-audit-rule.hit{border-color:rgba(94,234,212,.45);background:rgba(94,234,212,.05)}
.ps-audit-rn{font-family:var(--num);color:var(--faint);min-width:18px}
.ps-audit-why{display:flex;flex-wrap:wrap;gap:4px 10px;margin-top:4px}
.ps-audit-c{font-size:11px}.ps-audit-c.ok{color:#5eead4}.ps-audit-c.ko{color:var(--faint)}
/* Risco de ruptura clicável (1.1.2): abre o Acionar o trade só com as três ações vermelhas */
.ps-fig-link{display:block;background:none;border:0;padding:0;margin:0;color:inherit;font:inherit;line-height:inherit;text-align:left;cursor:pointer;align-self:start}.ps-fig-link>.k{display:block}
.ps-fig-link:hover .k{color:var(--accent)}.ps-fig-link:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:6px}
/* Janela de lista e barra de voltar (1.1.3): análises abrem por cima, sem trocar de tela */
.ps-list.crit-dlg{max-width:min(980px,calc(100vw - 32px))}
.ps-list-bar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:6px 0 10px}.ps-list-bar input{flex:1 1 220px;min-width:0}.ps-list-bar #ps-list-go{margin-left:auto}
.ps-list-table td{vertical-align:middle;font-size:12px}.ps-list-table .ps-name{display:block;white-space:normal;max-width:340px}.ps-list-table td .ps-tag{white-space:normal}
.backbar{max-width:1600px;margin-left:auto!important;margin-right:auto!important;display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:12px 0 0;padding:10px 14px;border:1px solid rgba(255,210,30,.35);border-radius:12px;background:rgba(255,210,30,.06);font-size:12.5px}
.backbar[hidden]{display:none}.backbar button{margin-left:auto}
/* Botão Tela cheia */
.fs-btn{display:inline-flex;align-items:center;gap:6px;margin-left:auto}.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:900px){.fs-btn span{display:none}}
/* 1.1.8: status do produto vale para as três visões; legenda do que está selecionado nas janelas */
.ps-status-card{max-width:1600px;margin:12px auto 0;padding:10px 16px}.ps-status-card .ps-chip-row{margin:0}
.ps-list-sel{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:4px 0 2px;font-size:12px}
.ps-list-sel .k{margin-right:2px}
.ps-sel-tag{display:inline-flex;align-items:baseline;gap:5px;padding:3px 10px;border:1px solid rgba(255,210,30,.4);border-radius:999px;background:rgba(255,210,30,.07);color:var(--text)}
.ps-sel-tag small{color:var(--muted);font-size:10.5px}
.ps-list-why{margin:6px 0 2px;line-height:1.5}
/* Equipe (1.2.0): Quem recebe (Critérios) e Enviar para a equipe (Acionar o trade) */
.eq-card{margin:4px 0 0}.eq-tabs{margin-left:auto;margin-right:8px}
.eq-form{border:1px solid rgba(255,210,30,.35);border-radius:14px;padding:14px;margin:6px 0 12px;display:flex;flex-direction:column;gap:12px;background:rgba(255,210,30,.03)}
.eq-row{display:flex;gap:14px;flex-wrap:wrap;align-items:flex-end}.eq-row label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--muted)}.eq-row input{min-width:220px}
.eq-dest{display:flex;flex-direction:column;gap:4px}.eq-dest .k{font-size:12px}
.eq-cols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.eq-cols .k{display:block;font-size:12px;margin-bottom:4px}
.eq-checks{border:1px solid var(--line);border-radius:10px;padding:6px 8px;font-size:12px}
.eq-checks label{display:flex;gap:6px;align-items:flex-start;padding:3px 0;cursor:pointer}.eq-checks input{accent-color:#facc15;margin-top:2px}
.eq-all{border-bottom:1px solid var(--line-soft);padding-bottom:5px!important;margin-bottom:3px;color:var(--strong)}
.eq-opts{max-height:200px;overflow:auto}
.eq-actions{display:flex;gap:12px;align-items:center}
.eq-table td{font-size:12.5px;vertical-align:middle}.eq-btns{white-space:nowrap;text-align:right}.eq-btns .danger{color:#f87171}
.eq-dlg.crit-dlg{max-width:min(1080px,calc(100vw - 32px))}
.eq-send{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column}
.eq-send li{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 4px;border-bottom:1px solid var(--line-soft)}
.eq-send li.sent{opacity:.75}
.eq-who{flex:1 1 260px;display:flex;flex-direction:column;gap:2px;min-width:0}.eq-who .m{font-size:11.5px}
.eq-n{font-size:12px;padding:2px 10px;border-radius:999px;border:1px solid rgba(255,210,30,.45);color:#fde68a}.eq-n.zero{border-color:var(--line);color:var(--faint)}
.eq-wa{text-decoration:none;display:inline-flex;align-items:center;border-color:#22c55e!important;color:#86efac!important}
.eq-pre{flex-basis:100%;margin:4px 0 0;white-space:pre-wrap;font:12px/1.5 inherit;font-family:inherit;background:#0b1220;border:1px solid var(--line);border-radius:10px;padding:10px 12px;max-height:320px;overflow:auto;color:var(--text)}
@media(max-width:900px){.eq-cols{grid-template-columns:1fr}}
/* 1.2.2: nível e cópia */
.eq-cols.eq-cols4{grid-template-columns:repeat(4,minmax(0,1fr))}
.eq-level{display:inline-block;font-size:10.5px;font-weight:500;padding:1px 7px;border-radius:999px;border:1px solid var(--line);color:var(--muted);margin-left:4px;vertical-align:1px}
.eq-lv-a{border-color:rgba(250,204,21,.6);color:#fde68a}.eq-lv-c{border-color:rgba(96,165,250,.6);color:#93c5fd}
.eq-copies{flex-basis:100%;display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding-left:2px}.eq-copies .m{font-size:11.5px}
.eq-copies .eq-wa{font-size:11.5px;padding:2px 9px}
@media(max-width:1100px){.eq-cols.eq-cols4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:900px){.eq-cols.eq-cols4{grid-template-columns:1fr}}
/* 1.3.0: PDF e WhatsApp oficial */
.eq-bulk{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:8px 0 4px;padding:12px 14px;border:1px solid rgba(255,210,30,.35);border-radius:14px;background:rgba(255,210,30,.04)}
.eq-bulk-txt{flex:1 1 320px;display:flex;flex-direction:column;gap:2px}.eq-bulk-txt .m{font-size:12px}
/* 1.28.0: roteiro do promotor em Cadastros › Trade e dia da visita no envio. */
.eq-route{display:flex;flex-direction:column;gap:8px;margin:12px 0}.eq-route-t{width:100%;border-collapse:collapse;font-size:12.5px}.eq-route-t th{text-align:left;font-weight:500;color:var(--faint);font-size:11px;padding:4px 8px}.eq-route-t td{padding:5px 8px;border-top:1px solid var(--line-soft)}
.eq-days{display:inline-flex;gap:3px;flex-wrap:wrap}.eq-days button{padding:2px 7px;font-size:11px;border-radius:999px;border:1px solid var(--line);background:transparent;color:var(--muted);cursor:pointer}.eq-days button.active{background:rgba(255,210,30,.14);color:var(--accent);border-color:rgba(255,210,30,.55)}
.eq-route-add{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.eq-route-add input{min-width:200px}.eq-dayrow{flex-wrap:wrap;align-items:center}.eq-cad{max-width:1600px;margin:0 auto}
.eq-go:disabled{opacity:.5;cursor:not-allowed}
.eq-st{font-size:11.5px;white-space:nowrap}.eq-st.ok{color:#86efac}.eq-st.bad{color:#fca5a5}
.eq-copy{display:inline-flex;gap:6px;align-items:center;font-size:12px;padding:2px 9px;border:1px solid var(--line);border-radius:999px}
.eq-wa:disabled{opacity:.45;cursor:not-allowed}
.eq-how{font-size:10.5px;padding:1px 8px;border-radius:999px;border:1px solid var(--line);color:var(--muted);white-space:nowrap}
.eq-how.telegram{border-color:rgba(56,189,248,.6);color:#7dd3fc}.eq-how.whatsapp{border-color:rgba(34,197,94,.6);color:#86efac}.eq-how.none{border-style:dashed;color:var(--faint)}
.eq-tgc{display:flex;gap:6px;align-items:center;justify-content:flex-start}
.eq-guide{display:flex;flex-direction:column;gap:10px;margin-top:6px}
.eq-gcols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.eq-gcard .cad-head{gap:8px}.eq-gcard>.m{font-size:12px;margin:2px 0 8px}
.eq-steps{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:8px;font-size:12.5px}
.eq-steps li b{display:block;color:var(--strong);font-weight:600}.eq-steps li .m{font-size:12px;line-height:1.5}
.eq-code{font-family:'IBM Plex Mono',monospace;font-size:11px;background:#0b1220;border:1px solid var(--line);border-radius:6px;padding:1px 5px;color:#fde68a;word-break:break-word}
@media(max-width:900px){.eq-gcols{grid-template-columns:1fr}}

/* 1.5.1: figuras do menu douradas com pulinho (opção C escolhida pelo Diego): cheias em degradê, cinza quando o menu não está aberto */
.ic-defs{position:absolute;width:0;height:0;overflow:hidden}
aside nav button{padding:0 9px}
aside nav .ic{flex:0 0 26px;width:26px;height:26px;display:grid;place-items:center}
aside nav .ic svg{flex:0 0 22px;width:22px;height:22px}
aside nav .ic .ln{fill:none;stroke:#0b0f19;stroke-width:1.7}
aside nav .ic .fl{fill:url(#ic-gray);stroke:none;transition:opacity .15s ease}
aside nav button.active .ic .fl,aside nav button:hover .ic .fl{fill:url(#ic-gold)}
aside nav button:hover .ic{animation:ic-hop .45s ease}
@keyframes ic-hop{30%{transform:translateY(-3px) rotate(-6deg)}60%{transform:translateY(0) rotate(3deg)}}
@media(max-width:700px){aside nav button{padding:0 5px}}
@media(prefers-reduced-motion:reduce){aside nav button:hover .ic{animation:none}}

/* 1.5.0: Faturamento (sell-in): painel, pedidos e metas */
.ft-filters{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px 14px;margin:14px 0 4px}
.ft-date{display:flex;flex-direction:column;gap:3px;font-size:11px;color:var(--faint)}
.ft-quick{display:flex;flex-wrap:wrap;gap:2px}.ft-quick .on{color:var(--accent)}
.ft-month{display:flex;align-items:flex-end;gap:6px}
.ft-source{margin:14px 0 4px;font-size:11px;color:var(--faint)}
.ft-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px;flex-wrap:wrap}
.ft-head .m{margin:0}
.ft-share{display:block;width:100%;height:6px;margin-top:auto}
.ft-share .fat,.ft-legend .fat{fill:#34d399;background:#34d399}.ft-share .saldo,.ft-legend .saldo{fill:var(--accent);background:var(--accent)}.ft-share .nao,.ft-legend .nao{fill:#f87171;background:#f87171}
.ft-legend{display:flex;flex-wrap:wrap;gap:4px 10px;margin-top:6px}.ft-legend i{display:inline-block;width:8px;height:8px;border-radius:2px;margin-right:4px;vertical-align:middle}
.ft-cols{display:block;width:100%;height:150px;margin:8px 0 4px}
.ft-cols .ped{fill:#334155}.ft-cols .fat{fill:#34d399;opacity:.85}.ft-cols .hit{fill:transparent}
.ft-cols g:hover .ped{fill:#475569}.ft-cols g:hover .fat{opacity:1}
.lg-ped{background:#334155}.lg-fat{background:#34d399}
.legend-line .lg-ped,.legend-line .lg-fat{height:8px;width:8px;border-radius:2px}
.ft-hbars{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:3px}
.ft-hrow{display:grid;grid-template-columns:minmax(90px,38%) 1fr 64px;align-items:center;gap:8px;width:100%;padding:3px 4px;border:0;border-radius:6px;background:none;color:inherit;font:inherit;font-size:12px;text-align:left}
button.ft-hrow{cursor:pointer}button.ft-hrow:hover{background:#121a2a}
.ft-hl{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted)}
.ft-hrow svg{display:block;width:100%;height:8px}.ft-hrow .ped{fill:#334155}.ft-hrow .fat{fill:#34d399;opacity:.85}
.ft-hv{font-family:var(--num);font-size:11px;text-align:right;color:var(--text)}
.ft-status{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:6px}
.ft-status li{display:grid;grid-template-columns:90px 60px 1fr;align-items:center;gap:8px;font-size:12px}.ft-status b{font-family:var(--num);font-weight:500}.ft-status li>span:last-child{font-family:var(--num);text-align:right}
.ft-prog{display:flex;flex-direction:column;gap:6px;max-width:560px}
.ft-prog>div{display:grid;grid-template-columns:110px 1fr 56px;align-items:center;gap:10px;font-size:12px}
.ft-prog svg,.ft-rcard svg{display:block;width:100%;height:6px}
.ft-prog b{font-family:var(--num);font-weight:500;text-align:right}
.track{fill:#1f2937}.time{fill:#94a3b8}
.goal.bad{fill:#f87171}.goal.mid{fill:#facc15}.goal.near{fill:#38bdf8}.goal.ok{fill:#34d399}.goal.none{fill:#64748b}
.ft-tone.bad{color:#f87171}.ft-tone.mid{color:#facc15}.ft-tone.near{color:#38bdf8}.ft-tone.ok{color:#34d399}.ft-tone.none{color:var(--faint)}
.ft-head .ft-tone{margin-left:6px}
.ft-resp{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px;margin-top:8px}
.ft-rcard{display:flex;flex-direction:column;gap:5px;padding:10px 12px;border:1px solid var(--line-soft);border-radius:12px;font-size:12px}
.ft-rcard .m{margin:0}
.ft-goals .ft-off td{opacity:.45}.ft-goals .ft-total td{font-weight:600;border-top:1px solid var(--line)}
@media(max-width:700px){.ft-hrow{grid-template-columns:minmax(70px,40%) 1fr 56px}.ft-prog>div{grid-template-columns:90px 1fr 50px}}
.ft .ft-bento{margin-top:10px}
.ft .ft-bento>.card.hero{grid-column:span 3;grid-row:span 2}
.ft .ft-bento>.card.hero .headline{font-size:22px}
.ft .ft-bento .card .v{font-size:20px}
@media(max-width:1050px){.ft .ft-bento>.card.hero{grid-column:1/-1;grid-row:auto}}
@media(max-width:700px){.ft .hero-figures{grid-template-columns:repeat(2,minmax(0,1fr))}.ft .ft-bento>.card.hero .headline{font-size:19px}}
.ft-list{gap:10px}.ft-list .table-wrap{max-height:calc(100vh - 240px)}
.ft-list>.tt-search{flex:0 0 auto}
.ft-hv{white-space:nowrap}
@media(max-width:700px){.ft-hrow{grid-template-columns:minmax(70px,38%) 1fr 72px}.ft .hero-figures .n{font-size:13px}}
/* 1.5.2: gráficos iguais aos do DS Financeiro (barras finas com degradê e listas com trilho) */
.thin-bars{width:100%;height:auto;display:block;overflow:visible;margin-top:8px}
.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}
.cur-svg{opacity:.75}
.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) 60px 44px;gap:8px;align-items:center;font-size:11.5px;padding:2px 4px;border-radius:6px}
.ch-list li.pick{cursor:pointer}.ch-list li.pick:hover{background:#121a2a}
.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);white-space:nowrap}.ch-list .g{font-size:10.5px;text-align:right;font-family:var(--num);color:var(--faint)}
.ft-share .fat,.ft-legend .fat{fill:#5eead4;background:#5eead4}.ft-share .nao,.ft-legend .nao{fill:#fb7185;background:#fb7185}
.legend-line .lg-fat{background:#5eead4}.legend-line .lg-ped{background:#fb7185}
.ft-share .track,.ft-prog .track,.ft-rcard .track{fill:#1a2233}
@media(max-width:700px){.ch-list li{grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr) 56px 40px}}
.ft .ch-list .v{font-size:11.5px;color:var(--muted)}
.ft .ft-bento .ch-list .v{font-size:11.5px;color:var(--muted)}
/* 1.5.3: painel do Faturamento mais cheio (inspirado no BI) */
.ft-dash{grid-auto-rows:auto;grid-auto-flow:row dense}
.ft-dash .card{min-height:0}
.ft-sum{grid-column:span 2;gap:12px;background:radial-gradient(120% 90% at 100% 0%,rgba(255,210,30,.07),rgba(11,15,25,0) 60%),var(--card)}
.ft-sum-top{display:flex;gap:18px;align-items:flex-start}
.ft-sum-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:8px}
.ft-sum .headline{font-size:21px}
.ft-chips{display:flex;flex-wrap:wrap;gap:6px}
.ft-ring{position:relative;flex:0 0 150px;width:150px;height:150px}
.ft-ring svg{width:100%;height:100%;display:block}
.ring-track{fill:none;stroke:#1a2233;stroke-width:7}.ring-fill{fill:none;stroke:#5eead4;stroke-width:7;stroke-linecap:round}
.ft-ring-in{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;line-height:1.15}
.ft-ring-in .n{font-family:var(--num);font-size:13px;color:var(--strong)}.ft-ring-in .n.fat{color:#5eead4;margin-top:4px}
.ft-ring-in .k{font-size:9.5px;color:var(--faint)}.ft-ring-in b{margin-top:4px;font-family:var(--num);font-size:12px;font-weight:500;color:var(--accent)}
.ft-figs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 14px;border-top:1px solid var(--line-soft);padding-top:12px}
.ft-figs .k{font-size:11px;color:var(--faint)}.ft-figs .n{font-family:var(--num);font-size:15px;color:var(--text)}
.ft-goalc{grid-column:span 2;gap:10px}
.ft-big{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.ft-bignum{display:flex;flex-direction:column;gap:4px;padding:12px 14px;border:1px solid var(--line-soft);border-radius:12px;background:#0b111d}
.ft-bignum .n{font-family:var(--num);font-size:19px;color:var(--strong);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ft-bignum .k{font-size:11px;color:var(--muted)}
.ft-bignum.gold{border-color:#4a3f12;box-shadow:0 0 18px rgba(250,204,21,.08) inset}.ft-bignum.gold .n{color:#fde047}
.ft-bignum.ok .n,.ft-bignum.near .n{color:#86efac}.ft-bignum.warn .n{color:#fdba74}
.ft-goalc .ft-prog{max-width:none}
.ft-chart{grid-column:span 3}
.rate-bars .vl{fill:#cbd5e1;font-family:var(--num)}
.rate-bars .rate{fill:none;stroke:var(--accent);stroke-width:2;stroke-dasharray:6 6;pointer-events:none;vector-effect:non-scaling-stroke}
.rate-bars .rate-dot{fill:var(--accent);pointer-events:none}.rate-bars .rl{fill:var(--accent);font-family:var(--num);pointer-events:none}
.legend-line .lg-rate{background:var(--accent);height:2px}
.ft-days{contain:size;align-self:stretch}
.ft-mini .thin-bars{width:100%;height:auto;margin-top:6px}
.ft .ft-size li{grid-template-columns:minmax(0,1fr) 70px 34px 52px}
.ft .ft-size .v{text-align:right}
.ft-daylist{list-style:none;margin:6px 0 0;padding:0 4px 0 0;overflow:auto;display:flex;flex-direction:column;gap:2px;flex:1;min-height:0}
.ft-daylist li{display:grid;grid-template-columns:46px 1fr;gap:10px;align-items:center;padding:7px 6px;border-left:2px solid #1f2a3d;border-radius:0 8px 8px 0}
.ft-daylist li:hover{background:#121a2a;border-left-color:#5eead4}
.ft-day{display:flex;flex-direction:column;line-height:1.1}.ft-day b{font-family:var(--num);font-size:12px;font-weight:500;color:var(--strong)}.ft-day span{font-size:10px;color:var(--faint)}
.ft-dayv{display:flex;flex-direction:column;line-height:1.2;min-width:0}.ft-dayv .n{font-family:var(--num);font-size:13px;color:var(--text)}.ft-dayv .k{font-size:10.5px;color:var(--faint)}
.ft-wide2{grid-column:span 2}.ft-wide3{grid-column:span 3}
.ft-cols2 .ch-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:22px}
.ch-list .fill.fat{fill:#5eead4;opacity:.9}
.ft-units{gap:6px}
.ft-tree{list-style:none;margin:4px 0 0;padding:0;display:flex;flex-direction:column;gap:10px}
.ft-tree-u{display:grid;grid-template-columns:1fr auto;gap:2px 8px;width:100%;padding:6px 8px;border:1px solid var(--line-soft);border-radius:10px;background:#0b111d;color:inherit;font:inherit;text-align:left;cursor:pointer}
.ft-tree-u:hover{border-color:#2b3647}
.ft-tree-u .t{font-size:12px;color:var(--strong);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ft-tree-u .n{font-family:var(--num);font-size:12px;color:var(--text)}
.ft-tree-u svg{grid-column:1/-1;width:100%;height:4px}.ft-tree .track{fill:#1a2233}.ft-tree .fill{fill:var(--in-strong)}
.ft-tree ul{list-style:none;margin:4px 0 0 12px;padding:0 0 0 10px;border-left:1px solid var(--line-soft);display:flex;flex-direction:column;gap:2px}
.ft-tree ul li{display:flex;justify-content:space-between;gap:8px;font-size:11.5px;color:var(--muted);padding:2px 4px;border-radius:6px;cursor:pointer}
.ft-tree ul li:hover{background:#121a2a;color:var(--strong)}.ft-tree ul .n{font-family:var(--num);font-size:11px}
.ft-tree ul li.pick{flex-direction:row;gap:8px}
.ft-tree ul li.ft-tree-more{cursor:default;padding:0}.ft-tree ul li.ft-tree-more:hover{background:none}.ft-tree-more .text-button,.ft-tree-all{font-size:11px;padding:2px 4px}.ft-tree-all{margin-top:6px}
@media(max-width:1050px){.ft-sum,.ft-goalc,.ft-chart,.ft-wide2,.ft-wide3{grid-column:1/-1}.ft-days{grid-row:auto;contain:none;max-height:420px}}
@media(max-width:700px){.ft-sum-top{flex-direction:column}.ft-ring{align-self:center}.ft-figs,.ft-big{grid-template-columns:repeat(2,minmax(0,1fr))}.ft-cols2 .ch-list{grid-template-columns:minmax(0,1fr)}}
.ft-far{display:flex;flex-direction:column;gap:4px;border-top:1px solid var(--line-soft);padding-top:10px}
.ft-far .k{font-size:11px;color:var(--faint)}
.ft-far ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}
.ft-far li{display:grid;grid-template-columns:minmax(0,1fr) 110px 110px;gap:8px;font-size:12px;padding:3px 6px;border-radius:6px;cursor:pointer}
.ft-far li:hover{background:#121a2a}.ft-far li>span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ft-far .n{font-family:var(--num);font-size:11px;text-align:right;color:var(--muted)}
.ft-goal-note{margin-top:0!important}
@media(max-width:700px){.ft-far li{grid-template-columns:minmax(0,1fr) 90px}.ft-far .n{display:none}}
@media(max-width:700px){.ft-big{grid-template-columns:minmax(0,1fr)}}
.rate-bars .rate{stroke-width:1;stroke-dasharray:4 5;opacity:.9}
.ring-track,.ring-fill{stroke-width:4}

/* 1.5.7 (pedido do Diego: "não gostei dessa fonte"): o painel do Faturamento usa a fonte do texto também nos números,
   com algarismos de largura igual; % da linha em itálico e menor. */
.ft,.ft *,.ft .thin-bars text{font-family:'Source Sans 3',system-ui,sans-serif!important;font-variant-numeric:tabular-nums}
.ft .rate-bars .rl{font-weight:400;opacity:.9}
.ft .rate-bars .vl{fill:#aeb8c6;font-weight:500}
/* 1.5.8: círculo de foco no número do gráfico ao passar o mouse. */
.thin-bars .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 .rate-focus{fill:rgba(255,210,30,.12)}
.thin-bars g:hover .focus{opacity:1;transform:scale(1)}
.thin-bars g:hover .vl{fill:var(--strong)}
@media(prefers-reduced-motion:reduce){.thin-bars .focus{transition:none;transform:none}}
.ft-nogoal{font-size:11.5px;color:#fdba74}
.rate-bars g[data-range]{cursor:pointer}
/* 1.6.0: aviso de carregamento (loading.js). */
.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 .2s}
.loading-veil.on{background:rgba(8,11,19,.35);pointer-events:auto;cursor:wait} /* 1.12.0: enquanto aparece, nada responde ao clique */
.loading-card{display:flex;flex-direction:column;align-items:center;gap:6px;padding:20px 28px;border:1px solid #2a2f1a;border-radius:16px;background:#0e1422ee;box-shadow:0 12px 40px rgba(0,0,0,.45),0 0 24px rgba(255,210,30,.07);opacity:0;transform:translateY(6px) scale(.97);transition:opacity .2s,transform .2s}
.loading-veil.on .loading-card{opacity:1;transform:none}
.loading-card b{font-size:14px;font-weight:600;color:var(--strong)}
.loading-sub{font-size:11px;color:var(--faint)}
.loading-ring{position:relative;width:46px;height:46px;margin-bottom:6px}
.loading-ring i{position:absolute;inset:0;border-radius:50%;border:3px solid transparent;border-top-color:var(--accent);animation:ld-spin 1s cubic-bezier(.5,.15,.5,.85) infinite}
.loading-ring i:nth-child(2){inset:7px;border-top-color:#5eead4;animation-duration:1.4s;animation-direction:reverse}
.loading-ring i:nth-child(3){inset:16px;border:0;background:var(--accent);animation:ld-pulse 1s ease-in-out infinite}
@keyframes ld-spin{to{transform:rotate(360deg)}}
@keyframes ld-pulse{50%{transform:scale(.55);opacity:.6}}
@media(prefers-reduced-motion:reduce){.loading-ring i{animation:none;border-color:#2a3550;border-top-color:var(--accent)}.loading-ring i:nth-child(3){animation:none}.loading-card,.loading-veil{transition:none}}
.ft-outside{font-size:11.5px;color:var(--faint)}
#refresh-all.spin svg{animation:ld-spin .9s linear}
@media(prefers-reduced-motion:reduce){#refresh-all.spin svg{animation:none}}
@media(max-width:700px){#refresh-all span{display:none}}
#refresh-all+.fs-btn{margin-left:8px}
/* 1.6.2: percentual no aviso de carregamento. */
.loading-pct{font-size:20px;font-weight:600;color:var(--accent);font-variant-numeric:tabular-nums;line-height:1.1}
.loading-bar{display:block;width:150px;height:4px;border-radius:2px;background:#1a2233;overflow:hidden}
.loading-bar i{display:block;height:100%;width:0;border-radius:2px;background:linear-gradient(90deg,#5eead4,var(--accent));transition:width .2s linear}
@media(prefers-reduced-motion:reduce){.loading-bar i{transition:none}}
.loading-sub{max-width:260px;text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* 1.6.3: totais acima do cabeçalho das tabelas (kitTotals). */
thead tr.tt-total th{font-size:11.5px;font-weight:600;color:var(--accent);background:#10172a;border-bottom:1px solid var(--line);padding-top:8px;padding-bottom:8px;white-space:nowrap;font-variant-numeric:tabular-nums;cursor:default}
thead tr.tt-total th:first-child{color:var(--muted);font-weight:500}
.ft-goals thead tr.ft-total th{font-weight:600;color:var(--accent);background:#10172a}
/* 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}
.ft-goalf{align-items:center;gap:4px}.ft-goalf .k{font-size:11px;color:var(--muted);margin-right:4px}
/* 1.6.8: clique num gráfico filtra os outros (state.xf em ps-faturamento.js). */
.ft .pick{cursor:pointer}.ft .xf-off{opacity:.35;transition:opacity .15s}.ft .xf-off:hover{opacity:.75}
.ft li.xf-on,.ft g.xf-on .hit{background:rgba(250,204,21,.08)}.ft g.xf-on .hit{fill:rgba(250,204,21,.07)}
.ft li.xf-on{box-shadow:inset 2px 0 0 var(--accent);border-radius:6px}
button.ps-tag{font:inherit;font-size:10.5px;line-height:1.35;cursor:pointer;background:none}button.ps-tag.xf-on{box-shadow:0 0 0 1px var(--accent)}
.ft-xfbar{display:flex;flex-wrap:wrap;align-items:center;gap:6px;flex-basis:100%;order:9}
.ft-xfhint{font-size:11px;color:var(--faint);margin-left:4px}@media (hover:none){.ft-xfhint{display:none}}
.ft-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}
.ft-xfchip .k{color:var(--muted)}.ft-xfchip:hover{border-color:var(--accent)}
.ft .ft-daylist li.pick:focus-visible,.ft .ch-list li.pick:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
@media(prefers-reduced-motion:reduce){.ft .xf-off{transition:none}}
.ft-crumbs{display:flex;align-items:center;gap:4px;flex-wrap:wrap;font-size:11px;color:var(--faint)}.ft-crumbs .sep{opacity:.6}.ft-crumbs .on{color:var(--accent)}
.ft-chart .ft-head{flex-wrap:wrap;gap:4px 14px;justify-content:flex-start}
.ft-drill{display:flex;align-items:center;gap:8px;margin-left:auto}
.ft-chart .ft-drill~.months-pick{margin-left:0}
.ft-dbtn{display:inline-grid;place-items:center;width:26px;height:26px;padding:0;border-radius:7px;border:1px solid var(--line);background:transparent;color:var(--accent);cursor:pointer;transition:background .15s,border-color .15s}
.ft-dbtn svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.ft-dbtn:hover:not(:disabled){background:color-mix(in srgb,var(--accent) 14%,transparent);border-color:var(--accent)}
.ft-dbtn:disabled{color:var(--faint);opacity:.45;cursor:default}
/* 1.7.0 Diretoria: ícone verde no menu e a tela de vendas (este mês, mês passado, ano passado). Feita primeiro para o celular. */
aside nav .ic-dir .fl,aside nav button.active .ic-dir .fl,aside nav button:hover .ic-dir .fl{fill:url(#ic-green)}
aside nav button[data-view="dir"].active{box-shadow:inset 2px 0 0 #22c55e}
.dr{--c-tm:#4ade80;--c-pm:#94a3b8;--c-ly:#fbbf24}
.dr-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}
.dr-hero{grid-column:1/-1;flex-direction:row;align-items:center;gap:16px;padding:18px 22px;background:radial-gradient(120% 120% at 100% 0%,rgba(34,197,94,.10),rgba(11,15,25,0) 60%),var(--card)}
.dr-hero .eyebrow{font-size:11px;letter-spacing:.4px;color:var(--muted);margin:0 0 6px}
.dr-hero .headline{font-size:24px;font-weight:400}.dr-hero .lede{margin-top:4px}
.dr-kpi{grid-column:span 2;position:relative;overflow:hidden;padding-bottom:40px}
.dr-kpi .big{font-size:30px;font-weight:400;color:var(--strong);letter-spacing:-.5px;line-height:1.15}
.dr-kpi .s{font-size:12px;color:var(--muted);line-height:1.7}
.dr-kpi::before{content:'';position:absolute;left:0;top:14px;bottom:14px;width:3px;border-radius:0 3px 3px 0;background:var(--c)}
.dr-kpi.tm{--c:var(--c-tm);border-color:rgba(74,222,128,.35)}.dr-kpi.pm{--c:var(--c-pm)}.dr-kpi.ly{--c:var(--c-ly)}
.dr-spark{position:absolute;left:0;right:0;bottom:0;width:100%;height:30px;opacity:.7}
.dr-spark path{fill:none;stroke:var(--c);stroke-width:1.5;vector-effect:non-scaling-stroke}
.dr-var{display:inline-block;font-size:11px;padding:1px 7px;border-radius:999px;margin-right:6px;font-variant-numeric:tabular-nums}
.dr-var.up{color:#4ade80;background:rgba(74,222,128,.12)}.dr-var.down{color:#f87171;background:rgba(248,113,113,.12)}.dr-var.na{color:var(--faint);background:var(--line-soft)}
.dr-head{display:flex;justify-content:space-between;align-items:baseline;gap:6px 12px;flex-wrap:wrap;margin-bottom:8px}
.dr-head .m{font-size:11px;color:var(--faint);display:flex;align-items:center;gap:5px}
.dr .m{font-size:11px;color:var(--faint);margin:6px 0 0}
.dr-race-card{grid-column:span 4}.dr-pod-card{grid-column:span 2}.dr-db-card{grid-column:span 3}
.dr-race{width:100%;height:auto;display:block}.dr-race.narrow{display:none}
.dr-race .grid{stroke:var(--line);stroke-width:1;stroke-dasharray:3 5}
.dr-race text{fill:var(--faint);font-size:11px}.dr-race .el{fill:var(--muted);font-size:11px}.dr-race .ev{font-size:14px;fill:var(--strong)}
.dr-race .ln{fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.dr-race .ln.tm{stroke:var(--c-tm);stroke-width:2.5}.dr-race .ln.pm{stroke:var(--c-pm);opacity:.85}.dr-race .ln.ly{stroke:var(--c-ly);stroke-dasharray:5 5;opacity:.9}
.dr-race .area{fill:url(#drArea)}
.dr-race .dot.tm{fill:var(--c-tm)}.dr-race .dot.pm{fill:var(--c-pm)}.dr-race .dot.ly{fill:var(--c-ly)}
.dr-race .now{fill:var(--c-tm);stroke:var(--card);stroke-width:2}
.dr-race .pulse{fill:var(--c-tm);opacity:.35;transform-box:fill-box;transform-origin:center;animation:drPulse 2s ease-out infinite}
@keyframes drPulse{0%{transform:scale(.6);opacity:.5}100%{transform:scale(2.4);opacity:0}}
.dr-race .hit{fill:transparent}.dr-race .hit:hover{fill:rgba(255,255,255,.04)}
.dr-legend{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;font-size:11px;color:var(--muted);margin:8px 0 0}
.dr-legend .lg{width:16px;height:0;border-top:2px solid;margin-left:6px}.dr-legend .lg:first-child{margin-left:0}
.dr-legend .lg.tm{border-color:var(--c-tm)}.dr-legend .lg.pm{border-color:var(--c-pm)}.dr-legend .lg.ly{border-color:var(--c-ly);border-top-style:dashed}
.dr-cmp{display:flex;flex-direction:column;gap:12px;height:100%}
.dr-cmp-story{margin:0;font-size:13px;line-height:1.45;color:var(--text)}
.dr-cmp ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:14px;flex:1;justify-content:center}
.dr-cmp li{display:flex;flex-direction:column;gap:5px;padding:8px 10px;border-radius:12px;transition:background .2s}
.dr-cmp li.tm{background:rgba(74,222,128,.06)}
.dr-cmp li:hover{background:rgba(255,255,255,.04)}
.dr-cmp .top{display:flex;justify-content:space-between;align-items:baseline;gap:8px}
.dr-cmp .l{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 6px;font-size:12px;color:var(--strong);white-space:nowrap}
.dr-cmp .l small{font-size:10.5px;color:var(--faint)}
.dr-cmp .l .pt{align-self:center;width:8px;height:8px;border:0}.dr-cmp .pt.tm{background:var(--c-tm)}.dr-cmp .pt.pm{background:var(--c-pm)}.dr-cmp .pt.ly{background:var(--c-ly)}
.dr .dr-cmp .v{font-family:inherit;font-size:16px;font-weight:400;color:var(--strong);white-space:nowrap}
.dr-cmp li.tm .v{font-size:18px}
.dr-cmp .track{position:relative;height:8px;border-radius:99px;background:rgba(255,255,255,.05)}
.dr-cmp .fill{position:absolute;left:0;top:0;bottom:0;width:var(--w,0%);border-radius:99px;background:var(--c);transform-origin:left;animation:drGrowX .8s cubic-bezier(.2,.8,.2,1) both}
.dr-cmp li.tm{--c:linear-gradient(90deg,#16a34a,#86efac)}.dr-cmp li.pm{--c:linear-gradient(90deg,rgba(148,163,184,.35),var(--c-pm))}.dr-cmp li.ly{--c:linear-gradient(90deg,rgba(251,191,36,.3),var(--c-ly))}
.dr-cmp .rule{position:absolute;top:-4px;bottom:-4px;left:var(--x,0%);width:0;border-left:1.5px dashed rgba(134,239,172,.8)}
.dr-cmp li.tm .rule{display:none}
.dr-cmp .sub{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:11px;color:var(--muted)}
.dr-gap{font-size:11px;padding:1px 7px;border-radius:99px;white-space:nowrap}
.dr-gap.up{color:#4ade80;background:rgba(74,222,128,.12)}.dr-gap.down{color:#fb7185;background:rgba(251,113,133,.12)}
.dr-cmp-foot{margin:0;font-size:11px;color:var(--muted);border-top:1px solid var(--line);padding-top:8px}
@keyframes drGrowX{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes drGrow{from{transform:scaleY(0)}to{transform:scaleY(1)}}
.dr-db{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.dr-db li{display:grid;grid-template-columns:minmax(80px,1.1fr) minmax(70px,2fr) auto 52px;align-items:center;gap:10px;font-size:12px}
.dr-db .n{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text)}
.dr-db .track{position:relative;height:14px}
.dr-db .track::before{content:'';position:absolute;left:0;right:0;top:6.5px;height:1px;background:var(--line)}
.dr-db .seg{position:absolute;top:5.5px;height:3px;left:var(--a);right:calc(100% - var(--b));border-radius:2px}
.dr-db .seg.up{background:rgba(74,222,128,.55)}.dr-db .seg.down{background:rgba(248,113,113,.55)}
.dr .pt{display:inline-block;width:9px;height:9px;border-radius:50%;border:2px solid var(--card)}
.dr-db .pt{position:absolute;top:2.5px;left:var(--x);margin-left:-4.5px}
.dr .pt.ly{background:var(--c-ly)}.dr .pt.tm{background:var(--c-tm)}
.dr-db .v{text-align:right;color:var(--strong);white-space:nowrap;font-variant-numeric:tabular-nums}
.dr-db .g{text-align:right;font-size:11px;color:var(--faint);font-variant-numeric:tabular-nums}.dr-db .g.up{color:#4ade80}.dr-db .g.down{color:#f87171}
@media (hover:hover) and (pointer:fine){.dr-grid:has(> .card:hover) > .card:not(:hover){opacity:.72}}
@media(max-width:1100px){.dr-race-card,.dr-pod-card,.dr-db-card{grid-column:1/-1}}
@media(max-width:700px){
 .dr-grid{grid-template-columns:minmax(0,1fr);gap:10px}
 .dr-kpi{grid-column:1/-1;padding-bottom:36px}.dr-kpi .big{font-size:26px}
 .dr-hero{flex-direction:column;align-items:flex-start;gap:8px;padding:16px}.dr-hero .headline{font-size:20px}
 .dr-race.wide{display:none}.dr-race.narrow{display:block}.dr-race-card .dr-ends{display:grid}
 .dr-db li{grid-template-columns:minmax(0,1fr) auto 48px;grid-template-areas:"n v g" "t t t";row-gap:3px}
 .dr-db .n{grid-area:n}.dr-db .track{grid-area:t}.dr-db .v{grid-area:v}.dr-db .g{grid-area:g}
}
@media(prefers-reduced-motion:reduce){.dr-race .pulse{animation:none;opacity:0}.dr-cmp .fill{animation:none}}
.dr .dr-db .v{font-family:inherit;font-size:13px;font-weight:400;letter-spacing:0}
/* 1.7.2 previsão do mês na corrida: linha tracejada verde e faixas de 90% e 50%. */
.dr-race .band{stroke:none}.dr-race .band.b90{fill:rgba(74,222,128,.08)}.dr-race .band.b50{fill:rgba(74,222,128,.16)}
.dr-race .ln.proj{stroke:var(--c-tm);stroke-width:2;stroke-dasharray:2 5;opacity:.95}
.dr-race .pend{fill:var(--card);stroke:var(--c-tm);stroke-width:1.5}
.dr-legend .lg.proj{border-color:var(--c-tm);border-top-style:dotted}
.dr-ends{display:none;grid-template-columns:repeat(3,1fr);gap:6px;margin:8px 0 2px}
.dr-end{display:flex;flex-direction:column;gap:2px;padding:6px 8px;border-radius:10px;background:var(--panel,rgba(255,255,255,.03))}
.dr-end .k{display:flex;align-items:center;gap:5px;font-size:10.5px;color:var(--muted);line-height:1.2}
.dr .dr-end .v{font-family:inherit;font-weight:500;font-size:15px;color:var(--strong)}
.dr-end .pt{width:7px;height:7px;border-radius:50%;flex:none}.dr-end .pt.tm{background:var(--c-tm)}.dr-end .pt.pm{background:var(--c-pm)}.dr-end .pt.ly{background:var(--c-ly)}
.dr-legend .lg.band{height:8px;border:0;border-radius:2px;background:rgba(74,222,128,.22)}
.dr-hero .dr-fore{color:var(--text);max-width:820px}
/* 1.8.0 Critérios › Robô do WhatsApp */
.crit-robot-list{list-style:none;margin:0 0 8px;padding:0}.crit-robot-list li{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:8px 4px;border-bottom:1px solid var(--line-soft)}
.crit-robot-list b{display:block;font-weight:500;color:var(--strong);font-size:12.5px}.crit-robot-list small{color:var(--faint);font-size:11.5px}
.crit-robot-add{display:flex;gap:8px;flex-wrap:wrap;margin:6px 0 10px}.crit-robot-add input{flex:1 1 140px;min-width:0}
.crit-robot-steps{list-style:none;margin:0;padding:0;display:grid;gap:4px;font-size:11.5px;color:var(--muted)}.crit-robot-steps li{display:flex;gap:6px}
.crit-robot-steps li.ok span{color:#4ade80}.crit-robot-steps li.no span{color:var(--faint)}
/* 1.10.0: visual novo do DS Financeiro 0.28.3–0.28.9 (Diego: "tudo o que pedi pode replicar na Pro Service").
   Cartões sem contorno, com dois cantos recortados e fundo em degradê diagonal quase transparente que some antes do canto
   de baixo; quadradinhos internos também sem contorno; ao passar o mouse, brilho amarelo no degradê (sem borda). */
.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(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%)}
.card .card{clip-path:none;background:linear-gradient(135deg,rgba(255,255,255,.05) 0%,rgba(255,255,255,0) 90%)}
.chapter,.hero-talk,.hero-line{border-color:transparent;box-shadow:none;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,.pj-tile,.pj-wave,.ft-rcard,.ft-bignum,.ft-tree-u,.crit-giro,.ps-audit-res,.ps-audit-grid>div{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%)}
.ft-bignum.gold{border-color:transparent;box-shadow:none;background:linear-gradient(135deg,rgba(250,204,21,.10) 0%,rgba(250,204,21,.03) 45%,rgba(250,204,21,0) 92%)}
.dr-kpi.tm{border-color:transparent}
.pj-tile.rejeitado{border-color:transparent}.pj-tile.open{border-color:transparent;background:linear-gradient(135deg,rgba(251,113,133,.10) 0%,rgba(251,113,133,.03) 45%,rgba(251,113,133,0) 92%)}
.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%)}
 .card.focused:hover{border-color:transparent;box-shadow:none}
 .fact:hover,.rec-tile:hover,.pj-tile:hover,.ft-tree-u: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%)}
}
/* Atalhos de período e botão Últimos meses no gráfico por mês do Faturamento (como no DS Financeiro 0.28.4/0.28.5) */
.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.active{background:var(--accent);color:#111827}
/* Aviso de carregamento sem o retângulo: anel, texto, percentual e barra soltos sobre o véu, com um halo escuro */
.loading-card{border:0;box-shadow:none;padding:46px 70px;background:radial-gradient(closest-side,rgba(8,11,19,.92) 0%,rgba(8,11,19,.75) 55%,rgba(8,11,19,0) 100%)}
.loading-card b,.loading-pct,.loading-sub{text-shadow:0 1px 8px rgba(0,0,0,.8)}
.loading-veil.on{background:rgba(8,11,19,.5);backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}
/* 1.11.0: novo Dési (seixo escuro animado, mascot.js), igual ao DS Financeiro 0.29. 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}}
/* 1.12.0 (como o DS Financeiro 0.33): período no rodapé dos cartões; cinza = datas de cima, amarelo = botão Últimos meses. */
.months-pick button.mp-top:disabled{opacity:1;cursor:default}
#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)}
/* 1.13.0 Painel: acompanhamento das metas para a TV (Visão Baixa e Visão Probabilidade) e a tela Alternar telas. */
aside nav button[data-view="pnl"].active{box-shadow:inset 2px 0 0 #f59e0b}
.pn-bar{align-items:flex-end}.pn-bar .segmented button{padding:6px 12px}
.pn-alt{margin-left:auto;display:flex;align-items:center;gap:10px;font-size:12px;color:var(--muted)}.pn-alt .text-button{padding:4px 0}
.pn-count b{color:var(--accent);font-variant-numeric:tabular-nums;font-weight:600}
.pn-warn{color:#f0a787}
.pn-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(0,1fr);gap:16px;margin-top:12px;height:calc(100vh - 230px);min-height:520px}
:fullscreen .pn-grid{height:calc(100vh - 190px)}
.pn-table{padding:8px 18px 0;display:flex;flex-direction:column;min-height:0}
.pn-scroll{overflow:auto;flex:1;min-height:0}
.pn-table table{width:100%;border-collapse:collapse;font-style:italic;font-variant-numeric:tabular-nums}
.pn-table th{position:sticky;top:0;background:var(--card,#0f151c);z-index:1;font-size:clamp(15px,1.5vw,22px);font-weight:600;color:#9fb2c0;text-align:left;padding:10px 12px;border-bottom:1px solid #3a4a56}
.pn-table td{font-size:clamp(16px,1.6vw,27px);color:#e5ebf1;padding:clamp(6px,1vh,14px) 12px;border-bottom:1px solid rgba(255,255,255,.04)}
.pn-table td:first-child{border-right:1px solid #2c3a45}
.pn-table .n{text-align:center}
.pn-table tfoot td{position:sticky;bottom:0;background:var(--card,#0f151c);font-weight:700;border-top:1px solid #3a4a56;border-bottom:0}
.pn-empty{text-align:center;color:var(--faint);font-size:16px!important}
.pn-side{display:flex;flex-direction:column;gap:14px;min-height:0;align-items:center}
.pn-rings{display:flex;gap:18px;justify-content:center;width:100%}
.pn-ring{position:relative;width:min(44%,240px);aspect-ratio:1}
.pn-ring svg{width:100%;height:100%;display:block}.pn-track{fill:none;stroke:#1f353b;stroke-width:5}
.pn-ring-in{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;font-style:italic}
.pn-ring-in b{font-size:clamp(22px,2.8vw,44px);font-weight:700;line-height:1.1}.pn-ring-in span{font-size:clamp(11px,.9vw,15px);color:#e5ebf1;font-weight:600;margin-top:4px}
.pn-msg{width:min(100%,460px);text-align:center;font-style:italic;font-weight:700;color:#eafb33;font-size:clamp(13px,1.1vw,18px);line-height:1.4;padding:14px 18px;box-shadow:0 0 18px rgba(234,251,51,.08)}
.pn-foot{margin-top:auto;font-size:11px;color:var(--faint)}
.pn-cfg{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:14px}
.pn-cfg .card{display:flex;flex-direction:column;gap:10px;align-items:flex-start}
.pn-cfg-hero{grid-column:1/-1;flex-direction:row!important;align-items:center!important;gap:16px}
.pn-cfg .m{font-size:12px;color:var(--muted);line-height:1.6;margin:0}
.pn-cfg input[type=number]{width:120px}.pn-sec{margin-top:4px}
.pn-check{display:flex;gap:8px;align-items:center;font-size:13px;color:var(--strong)}
.pn-mp{display:flex;gap:8px;align-items:center}.pn-cfg .v{font-size:22px;color:var(--strong)}.pn-ok{color:#76f59a!important}
@media(max-width:900px){.pn-table{padding:4px 8px 0}.pn-table th{font-size:13px;padding:8px 6px}.pn-table td{font-size:16px;padding:8px 6px}.pn-grid{grid-template-columns:1fr;height:auto}.pn-scroll{max-height:60vh}.pn-cfg{grid-template-columns:1fr}.pn-alt{margin-left:0}}
.pn .pc-edfb75{color:#edfb75}.pn .pc-91f8fd{color:#91f8fd}.pn .pc-f0a787{color:#f0a787}.pn .pc-c1f39a{color:#c1f39a}.pn .pc-ffeb3b{color:#ffeb3b}.pn .pc-ff9800{color:#ff9800}.pn .pc-f44336{color:#f44336}.pn .pc-dceeff{color:#dceeff}.pn .pc-9ccfff{color:#9ccfff}.pn .pc-4fa3e3{color:#4fa3e3}.pn .pc-1976d2{color:#5b9fe6}.pn .pc-0d47a1{color:#3d7fd6}
/* 1.13.1 Painel na TV: em tela cheia, só os números (sem menu, título, abas e filtros); botão discreto aparece ao mexer o mouse. */
body.pn-tv aside,body.pn-tv header,body.pn-tv #subnav,body.pn-tv #backbar,body.pn-tv main>footer,body.pn-tv .pn-bar,body.pn-tv .pn-warn{display:none!important}
body.pn-tv main{margin-left:0!important;padding:18px 22px}
body.pn-tv #tb-pin{display:none}
body.pn-tv #content{max-width:none!important}
body.pn-tv .pn-grid{margin-top:0;height:calc(100vh - 36px)}
.pn-tvbar{position:fixed;right:16px;bottom:14px;z-index:50;display:flex;gap:8px}.pn-tvbtn{font-size:11px;padding:4px 10px;opacity:0;pointer-events:none;background:rgba(11,16,21,.7);transition:opacity .3s}
body.pn-awake .pn-tvbtn{opacity:.55;pointer-events:auto}body.pn-awake .pn-tvbtn:hover{opacity:1}
body.pn-full:not(.pn-awake){cursor:none}
@media(prefers-reduced-motion:reduce){.pn-tvbtn{transition:none}}
body.pn-tv .hover-card{display:none!important}
body.pn-tv .pn-foot{align-self:flex-start}
/* 1.13.3 Visão Baixa passando os responsáveis um por um (como o eixo de reprodução do Power BI). */
.pn-who{display:flex;align-items:baseline;gap:12px;padding:8px 12px 6px;font-style:italic;flex-wrap:wrap}
.pn-who .k{font-size:clamp(12px,1vw,16px);color:#9fb2c0}.pn-who b{font-size:clamp(20px,2.2vw,36px);color:#eafb33;font-weight:700}
.pn-dots{display:inline-flex;gap:6px;margin-left:auto;align-self:center}.pn-dots i{width:8px;height:8px;border-radius:50%;background:#2c3a45}.pn-dots i.on{background:#eafb33}
.pn-paused{font-size:12px;color:#f0a787;font-style:normal}
.pn-tvbar[hidden]{display:none!important}.pn-tvbar .pn-tvbtn[id$=prev],.pn-tvbar .pn-tvbtn[id$=next]{min-width:30px;padding:4px 8px;font-size:14px;line-height:1}.pn-tvbar #pn-tvrnext{margin-right:10px}
body.pn-tv .pn-foot{display:none}
/* 1.13.5 setas do responsável ao lado do nome: na TV só aparecem ao mexer o mouse. */
.pn-rnav{background:none;border:1px solid #2c3a45;color:#9fb2c0;border-radius:6px;font-size:clamp(16px,1.4vw,22px);line-height:1;padding:2px 10px;align-self:center;cursor:pointer;font-style:normal;transition:opacity .3s}
.pn-rnav:hover{color:#eafb33;border-color:#eafb33}
body.pn-full .pn-rnav{opacity:0;pointer-events:none}body.pn-full.pn-awake .pn-rnav{opacity:.6;pointer-events:auto}body.pn-full.pn-awake .pn-rnav:hover{opacity:1}
@media(prefers-reduced-motion:reduce){.pn-rnav{transition:none}}

/* ===== 1.14.0: layout igual ao DS Financeiro 0.51.26 (pedido do Diego: "leve tudo que mudamos de layout") ===== */
:root{--num:'Source Sans 3',system-ui,sans-serif}
/* DS 0.51.6: barras em degradê escuro (verde-água → roxo apagado) com ponta de luz; gbar-h no svg.ic-defs do index.html */
.ch-list .fill{fill:url(#gbar-h)}
.thin-bars .dot{filter:drop-shadow(0 0 4px rgba(94,234,212,.7))}
.thin-bars g:hover rect:not(.hit){filter:brightness(1.6)}
/* DS 0.51.7: a linha do % ganha uma cópia borrada por baixo (brilho) */
.rate-bars .rate-glow{fill:none;stroke:var(--accent);stroke-width:6;opacity:.22;filter:blur(4px);pointer-events:none;vector-effect:non-scaling-stroke}
.rate-bars .rate-dot{filter:drop-shadow(0 0 4px rgba(255,210,30,.8))}
/* DS 0.51.9: segmentadores, botões, datas e campos em pílula de vidro com borda que acende */
.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:#ffffff0d}
.segmented button.active:hover,.segmented button[aria-pressed=true]:hover{filter:brightness(1.12)}
.subnav-mod{color:#7c8aa0;letter-spacing:.04em}
.outline,.dp-field{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{border-color:#2dd4bf55;box-shadow:inset 0 1px 0 #ffffff0d,0 0 14px -4px #2dd4bf55;color:var(--strong)}
.dp-field svg{color:#5eead4}
.ft-quick .text-button{border-radius:8px;padding:3px 8px;transition:color .15s,background .2s}
.ft-quick .text-button:hover{background:#ffffff0d;color:var(--strong)}
.ft-quick .text-button.on{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}
@media (prefers-reduced-motion:reduce){.segmented button,.outline,.dp-field,.ft-quick .text-button{transition:none}}
/* DS 0.51.12/0.51.13: destaques (botão escolhido dos segmentadores e do menu) em vidro grafite com névoa cinza */
.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}
/* Menu (DS 0.51.11 e 0.51.13): grafite semitransparente com desfoque; ícones em repouso no cinza ic-ice; ativo em vidro grafite */
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-dir .fl{fill:url(#ic-green)}
aside nav button,#rail-pin,#rail-theme{color:#c9ccd1}
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}
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}
aside nav button[data-view="dir"].active{box-shadow:inset 2px 0 0 #22c55e,inset 0 1px 0 #ffffff24,0 4px 16px -8px #000}
aside nav button[data-view="pnl"].active{box-shadow:inset 2px 0 0 #f59e0b,inset 0 1px 0 #ffffff24,0 4px 16px -8px #000}
/* DS 0.51.14: respiro padrão de 14px entre blocos empilhados */
.ps,.cadastros{gap:14px}
/* DS 0.51.11, 0.51.12, 0.51.15 e 0.51.19: tabelas em vidro escuro, linhas pontilhadas quase invisíveis, cabeçalho pequeno em
   maiúsculas, zebra suave, linha ao passar o mouse com marcador amarelo; total sem fundo, só a cor da página (sólida, porque
   o stickHeads usa essa cor para tapar o que passa atrás do total fixo) e um fio dourado embaixo. */
table tbody>tr>td,table tbody>tr>th{border-bottom:1px dotted #ffffff14}
.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 thead th :is(button,a){text-transform:inherit;letter-spacing:inherit;font-size:inherit;font-weight:inherit;color:inherit}
.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:hover{background:none}
.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)}

@media (prefers-reduced-motion:reduce){.table-wrap tbody td{transition:none}}
thead tr.tt-total>th,thead tr.tt-total>td{color:#f8fafc;font-weight:600;font-size:12.5px;padding-top:13px;padding-bottom:13px;border-bottom:0;background:linear-gradient(to top,#ffd21e55 1px,transparent 1px) #0d121c;text-transform:none;letter-spacing:0}
thead tr.tt-total>th:first-child,thead tr.tt-total>td:first-child{color:var(--accent);text-shadow:0 0 12px #fde04766;font-weight:600;letter-spacing:.02em}
thead tr.tt-total>td.amount,thead tr.tt-total>th.amount{font-family:var(--num);letter-spacing:.01em}
/* DS 0.51.18, 0.51.25 e 0.51.26: topo recolhido. Painel de vidro por cima do conteúdo, aberto pela borda de cima (6px,
   invisível); .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>*{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}
.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)}
@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) .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}
/* Painel na TV: o topo recolhido some junto com o resto */
body.pn-tv #topbar{display:none!important}
/* 1.18.0 · Painel: barras "% da meta × onde deveria estar hoje" embaixo da tabela (Visão Probabilidade) e TV sem espaço vazio */
.pn-left{display:flex;flex-direction:column;gap:16px;min-height:0}.pn-left>.pn-table{flex:1.1 1 0}
.pn-scroll>table{height:100%}
.pn-bars{flex:1 1 0;min-height:0;padding:14px 22px;display:flex;flex-direction:column;justify-content:space-evenly;gap:8px;font-style:italic}
.pn-defs{position:absolute;width:0;height:0;overflow:hidden}
.pn-bh{display:flex;align-items:center;gap:16px;flex-wrap:wrap;font-size:clamp(14px,1.3vw,22px);font-weight:600;color:#9fb2c0}
.pn-bleg{margin-left:auto;display:flex;align-items:center;gap:8px;font-size:clamp(12px,.95vw,16px);font-weight:500}
.pn-bleg i{display:inline-block;width:3px;height:16px}.pn-bleg i.now{background:#eafb33}.pn-bleg i.full{border-left:2px dashed #6b7d8a;width:0;margin-left:10px}
.pn-brow{display:grid;grid-template-columns:clamp(120px,13vw,240px) minmax(0,1fr) clamp(76px,7vw,120px);gap:16px;align-items:center}
.pn-bn{font-size:clamp(15px,1.5vw,26px);color:#e5ebf1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pn-bv{font-size:clamp(15px,1.5vw,26px);font-weight:600;text-align:right;font-variant-numeric:tabular-nums}
.pn-bar-svg{width:100%;height:clamp(18px,3vh,34px);display:block;overflow:visible}
.pn-btrack{fill:#16212b}.pn-b100{stroke:#4a5b68;stroke-width:2;stroke-dasharray:4 4;vector-effect:non-scaling-stroke}
.pn-bnow{fill:#eafb33;filter:drop-shadow(0 0 4px rgba(234,251,51,.5))}
body.pn-full .pn-side{justify-content:space-evenly}
body.pn-full .pn-ring{width:min(46%,340px)}
body.pn-full .pn-ring-in b{font-size:clamp(26px,3.4vw,58px)}body.pn-full .pn-ring-in span{font-size:clamp(12px,1.1vw,19px)}
body.pn-full .pn-msg{width:100%;font-size:clamp(14px,1.35vw,24px);padding:20px 22px}
body.pn-full .pn-table td{font-size:clamp(18px,1.9vw,34px)}
@media(max-width:900px){.pn-left>.pn-table{flex:none}.pn-bars{flex:none;padding:12px 10px}.pn-brow{grid-template-columns:100px minmax(0,1fr) 64px;gap:8px}.pn-scroll>table{height:auto}}
.pn-click{cursor:pointer}.pn-table tr.pn-click:hover td,.pn-table tr.pn-click:focus-visible td{background:rgba(234,251,51,.05)}.pn-brow.pn-click:hover .pn-bn{color:#eafb33}
.pn-click:focus-visible{outline:1px solid #eafb33;outline-offset:-1px}
.pn-pop{position:fixed;z-index:60;pointer-events:none;padding:12px 18px 0;overflow:hidden;background:rgba(13,19,26,.97);border:1px solid #2c3a45;box-shadow:0 18px 50px rgba(0,0,0,.55);animation:pn-pop .15s ease-out}
.pn-pop .pn-scroll{overflow:hidden}.pn-pop .pn-scroll>table{height:auto}.pn-pop td{font-size:clamp(15px,1.4vw,24px)!important;padding:clamp(5px,.8vh,10px) 10px!important}.pn-pop th{font-size:clamp(13px,1.1vw,18px)!important;background:transparent}
.pn-pop-h{display:flex;align-items:baseline;gap:12px;padding:4px 10px 10px;font-style:italic}.pn-pop-h .k{font-size:clamp(12px,1vw,16px);color:#9fb2c0}.pn-pop-h b{font-size:clamp(18px,1.8vw,30px);color:#eafb33}.pn-pop-n{margin-left:auto;font-size:clamp(12px,1vw,16px);color:#9fb2c0}
.pn-out{font-size:.6em;color:#9fb2c0;font-style:normal}
@keyframes pn-pop{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.pn-pop{animation:none}}
/* Frases mais leves: texto claro e normal, números em amarelo, um fio amarelo à esquerda */
.pn-msg{color:#c9d4dd;font-weight:500;font-style:normal;box-shadow:none;border-left:3px solid rgba(234,251,51,.55);text-align:left;line-height:1.5}
.pn-msg b{color:#eafb33;font-weight:700}
.pn .card.pn-msg{display:block}.pn .pn-msg b{font-size:inherit}
.pn .card.pn-pop{background:rgba(12,17,24,.98);backdrop-filter:blur(6px)}
/* 1.18.1 · data e hora da última atualização ao lado de Buscar arquivos novos */
.last-upd{margin-left:auto;font-size:12px;color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums}.last-upd+#refresh-all{margin-left:10px}
@media(max-width:900px){.last-upd{font-size:11px;white-space:normal}}
/* 1.18.1: com as barras, a tabela dos responsáveis nunca fica menor que as linhas dela (fora da tela cheia ela rolava e escondia linhas) */
.pn-left:has(.pn-bars)>.pn-table{flex:1 0 auto}.pn-left>.pn-bars{flex:1 1 auto}
/* 1.19.6: colunas fixas das listas da Reposição com fundo cheio também nas linhas pares (o texto rolado não aparece por baixo). */
.ps-rep-table tbody tr:nth-child(even)>td:nth-child(-n+2),.ps-sug-table tbody tr:nth-child(even)>td:nth-child(-n+4){background:linear-gradient(#ffffff03,#ffffff03) var(--card)}

/* 1.19.9: linha da representada que veio do Painel (Faturamento › Metas). */
.ft-goals tr.ft-focus td{background:rgba(234,251,51,.09)!important;animation:ft-focus 2.4s ease-out}
.ft-goals tr.ft-focus td:first-child{box-shadow:inset 3px 0 0 #eafb33}
@keyframes ft-focus{from{background:rgba(234,251,51,.28)}}
@media(prefers-reduced-motion:reduce){.ft-goals tr.ft-focus td{animation:none}}
.ft-audit{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 10px;padding:8px 12px;border:1px solid rgba(234,251,51,.35);border-radius:10px;background:rgba(234,251,51,.06);font-size:13px}.ft-audit>span{margin-right:auto}.ft-audit b{color:#eafb33}
/* 1.22.0 · Painel em Semáforo (Diego: "muita referência do Excel"): anéis + frases no topo e três colunas por ritmo */
.pn-sem{display:flex!important;flex-direction:column;gap:16px;font-style:normal}
.pn-sem .k{font-size:clamp(11px,.8vw,15px);letter-spacing:.12em;text-transform:none;color:#7f91a3;font-weight:600}
.pn-top{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,2.3fr);gap:16px}
.pn-kpi{flex-direction:row!important;align-items:center;gap:clamp(12px,1.2vw,22px);padding:clamp(12px,1.4vh,20px) clamp(14px,1.3vw,24px)}
.pn-kring{width:clamp(64px,5.8vw,112px);height:auto;flex:none}.pn-ktrack{fill:none;stroke:rgba(255,255,255,.08);stroke-width:9}
.pn-kt{display:flex;flex-direction:column;gap:2px;min-width:0}.pn-kt b{font-size:clamp(26px,2.4vw,46px);font-weight:700;line-height:1.05;font-variant-numeric:tabular-nums}
.pn-ks{font-size:clamp(12px,.85vw,16px);color:#8a9bab}.pn-ks em{font-style:normal;font-weight:700}
.pn-phr{justify-content:center;gap:clamp(6px,.8vh,10px);padding:clamp(12px,1.4vh,18px) clamp(16px,1.4vw,26px)}
.pn-phr p{margin:0;font-size:clamp(14px,1.05vw,20px);line-height:1.4;color:#c9d4dd;padding-left:14px;border-left:3px solid rgba(234,251,51,.55)}.pn-phr b{color:#eafb33;font-weight:700}
.pn-lhead{display:flex;align-items:center;gap:16px;flex-wrap:wrap;min-height:28px}.pn-ltitle{font-size:clamp(14px,1.1vw,20px);color:#9fb2c0;font-weight:600}
.pn-sem .pn-who{padding:0;font-style:normal}.pn-sem .pn-who b{font-size:clamp(18px,1.6vw,28px)}
.pn-leg{margin-left:auto;font-size:clamp(12px,.85vw,15px);color:#8a9bab;display:flex;align-items:center;gap:8px}.pn-leg i{display:inline-block;width:3px;height:16px;border-radius:2px;background:#eafb33}
.pn-lanes{flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1.15fr) minmax(0,.85fr);gap:16px}
.pn-lane{min-height:0;padding:clamp(12px,1.4vh,20px) clamp(12px,1.1vw,20px);gap:10px!important;overflow:hidden}
.pn-lane h3{margin:0 0 2px;display:flex;align-items:center;gap:10px;font-size:clamp(16px,1.25vw,23px);font-weight:700;color:#e8eef4}
.pn-lane h3 i{width:13px;height:13px;border-radius:50%;flex:none}.pn-lane.up h3 i{background:#c1f39a}.pn-lane.down h3 i{background:#f0a787}.pn-lane.none h3 i{background:#5b6876}
.pn-lane h3 small{margin-left:auto;font-size:clamp(13px,.9vw,16px);color:#8a9bab;font-weight:500}
.pn-lane-list{display:flex;flex-direction:column;gap:clamp(6px,.8vh,10px);min-height:0;overflow:auto}
.pn-chip{display:grid;grid-template-columns:minmax(0,1fr) auto clamp(60px,6vw,120px) clamp(70px,5.6vw,110px);align-items:center;gap:clamp(8px,.8vw,14px);padding:clamp(8px,1.3vh,14px) clamp(10px,.9vw,16px);border-radius:14px;background:rgba(255,255,255,.04)}
.pn-chip:hover,.pn-chip:focus-visible{background:rgba(234,251,51,.06)}
.pn-cn{font-size:clamp(15px,1.15vw,22px);font-weight:600;color:#e8eef4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pn-cq{font-size:clamp(11px,.8vw,15px);color:#8a9bab;white-space:nowrap;font-variant-numeric:tabular-nums}
.pn-cp{font-size:clamp(17px,1.4vw,27px);font-weight:700;text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.pn-mini{width:100%;height:clamp(8px,1vh,12px);display:block;overflow:visible}.pn-mtrack{fill:rgba(255,255,255,.08)}.pn-mnow{fill:#eafb33}
.pn-chip.pn-dim{grid-template-columns:minmax(0,1fr) auto;padding:clamp(6px,.9vh,10px) clamp(10px,.9vw,14px);background:rgba(255,255,255,.025)}.pn-dim .pn-cn{font-size:clamp(13px,1vw,19px);color:#9aa9b7;font-weight:500}
.pn-out{margin-left:8px;font-size:.62em;color:#8a9bab;font-weight:500}
.pn-lempty{margin:6px 2px;color:#6f8192;font-size:14px}
.pn-d2 .pn-chip{padding-top:clamp(5px,.7vh,9px);padding-bottom:clamp(5px,.7vh,9px)}.pn-d2 .pn-cn{font-size:clamp(14px,1vw,19px)}.pn-d2 .pn-cp{font-size:clamp(15px,1.15vw,22px)}
.pn-d3 .pn-lane:not(.none) .pn-lane-list{display:grid;grid-template-columns:1fr 1fr;align-content:start}.pn-d3 .pn-chip{grid-template-columns:minmax(0,1fr) clamp(60px,5vw,100px);padding:6px 10px}.pn-d3 .pn-chip:not(.pn-dim) .pn-cq,.pn-d3 .pn-chip:not(.pn-dim) .pn-mini{display:none}.pn-d3 .pn-cn{font-size:clamp(13px,.9vw,17px)}.pn-d3 .pn-cp{font-size:clamp(14px,1vw,19px)}
.pn-sem .pn-empty{padding:30px;text-align:center}
body.pn-tv .pn-sem{height:calc(100vh - 52px)}
@media(max-width:900px){.pn-top,.pn-lanes{grid-template-columns:1fr}.pn-sem{height:auto!important}.pn-lane-list{overflow:visible}.pn-chip{grid-template-columns:minmax(0,1fr) auto 70px}.pn-chip .pn-mini{display:none}.pn-leg{margin-left:0}}
.pn-d3 .pn-chip.pn-dim .pn-cq{display:inline}.pn-pop table{font-style:normal}
body:not(.pn-tv) .pn-grid.pn-sem{height:auto;min-height:calc(100vh - 230px)}body:not(.pn-tv) .pn-lane-list{overflow:visible}
/* 1.22.1 · Velocímetro no lugar do anel (Diego: "círculo muito chapado") */
.pn-kpi .pn-kt{gap:6px}.pn-kpi .pn-ks{font-size:clamp(13px,.95vw,18px)}
.pn-top{grid-template-columns:minmax(0,1.25fr) minmax(0,1.35fr) minmax(0,2fr)}.pn-gauge{width:clamp(120px,9vw,190px)}.pn-kpi .pn-kt .k{white-space:nowrap}

/* 1.22.2 · Velocímetro Neon (Diego: "não está Uau!!!") */
.pn-neon{flex-direction:column!important;align-items:center;justify-content:center;gap:2px;position:relative;overflow:hidden;
 background:linear-gradient(160deg,rgba(255,255,255,.055),rgba(255,255,255,.012));text-align:center}
.pn-neon .pn-kt{display:contents}.pn-neon .k{order:-1;letter-spacing:.14em;text-transform:none;font-weight:700}
.pn-neon .pn-ks{margin-top:-4px}
.pn-neon .pn-gauge{width:clamp(180px,16vw,320px);max-width:100%;max-height:21vh;overflow:visible}
.pn-gtrack{fill:none;stroke:rgba(255,255,255,.06);stroke-width:26;stroke-linecap:round}
.pn-garc{fill:none;stroke-width:26;stroke-linecap:round;animation:pn-fill 1.1s cubic-bezier(.22,1,.36,1) both}
.pn-gmark line{stroke:#eafb33;stroke-width:4;stroke-linecap:round}
.pn-gmark text{fill:#eafb33;font-size:13px;font-weight:700;letter-spacing:.06em;font-family:inherit}
.pn-gorb{fill:#fff;animation:pn-pop .4s ease-out .9s both}
.pn-neon .pn-gval{fill:#fff;font-size:50px;font-weight:800;font-family:inherit;font-variant-numeric:tabular-nums}
@keyframes pn-fill{from{stroke-dashoffset:100}}
@keyframes pn-pop{from{opacity:0;transform:scale(.3)}}
.pn-gorb{transform-box:fill-box;transform-origin:center}
@media (prefers-reduced-motion:reduce){.pn-garc,.pn-gorb{animation:none}}
@media(max-width:900px){.pn-top{grid-template-columns:1fr}.pn-neon .pn-gauge{width:min(300px,80vw);max-height:none}.pn-kpi .pn-kt .k{white-space:normal}}
/* 1.22.3 · Neon mais enxuto (Diego: "tem que ser mais enxuto"): velocímetro à esquerda, título e explicação ao lado, cartão baixo */
.pn-neon{flex-direction:row!important;justify-content:flex-start;text-align:left;gap:clamp(10px,1vw,18px);padding:clamp(8px,1vh,14px) clamp(12px,1.1vw,20px)}
.pn-neon .pn-kt{display:flex;flex-direction:column;gap:4px}.pn-neon .k{order:0}.pn-neon .pn-ks{margin-top:0}
.pn-neon .pn-gauge{width:auto;height:clamp(96px,13.5vh,150px);max-height:none;flex:none}
.pn-top{grid-template-columns:minmax(0,1.2fr) minmax(0,1.3fr) minmax(0,2.1fr)}
@media(max-width:900px){.pn-top{grid-template-columns:1fr}.pn-neon .pn-gauge{width:auto;height:110px}}
/* 1.22.4 · velocímetro centrado no cartão, com a mesma folga em cima e embaixo */
.pn-neon{align-items:center!important;padding:clamp(12px,1.6vh,20px) clamp(14px,1.2vw,22px)}.pn-neon .pn-gauge{display:block;align-self:center}
.pn-neon .pn-kt .k{letter-spacing:.08em;white-space:normal}.pn-top{grid-template-columns:minmax(0,1.3fr) minmax(0,1.3fr) minmax(0,2fr)}
@media(max-width:900px){.pn-top{grid-template-columns:1fr}}
/* 1.22.5 · sem o cartão das frases: os dois velocímetros dividem o topo; último dia de venda embaixo dos dias corridos */
.pn-top{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.pn-neon{justify-content:center}.pn-ks .pn-last{font-style:normal;font-weight:700;color:#eafb33}
@media(max-width:900px){.pn-top{grid-template-columns:1fr}}
/* 1.22.6 · velocímetros no tamanho deles e a pista no resto do topo */
.pn-top{grid-template-columns:auto auto minmax(0,1fr)}
@media(max-width:900px){.pn-top{grid-template-columns:1fr}}
/* 1.22.7 · Pista do mês no lugar do Dési */
.pn-pista{justify-content:center;gap:2px;padding:clamp(10px,1.4vh,16px) clamp(14px,1.2vw,22px)}
.pn-pista .k{letter-spacing:.12em;text-transform:none;font-weight:700}
.pn-tsvg{width:100%;height:auto;max-height:clamp(110px,15vh,170px);overflow:visible;font-family:inherit}
.pn-ttrack{fill:rgba(255,255,255,.06)}.pn-tgap{fill:rgba(240,167,135,.18)}
.pn-tgapt{fill:#f0a787;font-size:14px;font-weight:700}.pn-taheadt{fill:#c1f39a;font-size:14px;font-weight:700}
.pn-tme{fill:#fff}.pn-tmv{fill:#fff;font-size:24px;font-weight:800;font-variant-numeric:tabular-nums}.pn-tmk{fill:#8fa2b4;font-size:12px;font-weight:700;letter-spacing:.08em}
.pn-thoje{fill:none;stroke:#eafb33;stroke-width:3;stroke-dasharray:3 3}.pn-thv{fill:#eafb33;font-size:21px;font-weight:800}.pn-thk{fill:#eafb33;font-size:12px;font-weight:700;letter-spacing:.08em}
.pn-tgoal{stroke:#e8eef4;stroke-width:4;stroke-linecap:round;filter:drop-shadow(0 0 4px rgba(232,238,244,.9)) drop-shadow(0 0 10px rgba(127,200,255,.6))}.pn-tmeta{fill:#e8eef4;font-size:19px;font-weight:800}
.pn-ttick{stroke:#5f7183}.pn-ttl{fill:#5f7183;font-size:12px}.pn-tempty{margin:8px 0 0;color:#8a9bab}
/* 1.22.9 · popup do responsável no estilo do Semáforo (sem tabela) */
.pn-pop{position:fixed;z-index:60;pointer-events:none;padding:16px 18px;display:flex;flex-direction:column;gap:8px;border:1px solid rgba(127,200,255,.18);border-radius:16px;
 background:linear-gradient(160deg,rgba(28,38,56,.97),rgba(11,15,25,.98));box-shadow:0 24px 60px rgba(0,0,0,.6),0 0 0 1px rgba(255,255,255,.03),0 0 40px rgba(127,200,255,.08);backdrop-filter:blur(8px);font-style:normal}
.pn .card.pn-pop{background:none}
.pn-pop-h{display:flex;align-items:baseline;gap:12px;padding:0 4px 6px;font-style:normal}.pn-pop-h b{font-size:clamp(20px,1.8vw,30px);color:#eafb33;font-weight:800}.pn-pop-n{margin-left:auto;font-size:clamp(12px,.9vw,15px);color:#8fa2b4;letter-spacing:.08em;text-transform:none;font-weight:700}
.pn-plist{display:flex;flex-direction:column;gap:6px}
.pn-prow{display:grid;grid-template-columns:minmax(0,1fr) auto clamp(60px,6vw,110px) clamp(64px,5vw,96px);align-items:center;gap:12px;padding:8px 12px;border-radius:12px;background:rgba(255,255,255,.045)}
.pn-prow .pn-cn{font-size:clamp(15px,1.15vw,21px);font-weight:600;color:#e8eef4;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pn-prow .pn-cq{font-size:clamp(12px,.85vw,15px);color:#8a9bab;white-space:nowrap}
.pn-prow .pn-cp{font-size:clamp(16px,1.25vw,23px);font-weight:700;text-align:right;font-variant-numeric:tabular-nums}
.pn-prow .pn-pnone{font-size:clamp(12px,.85vw,15px);color:#6f8192;font-weight:600}
.pn-pout{opacity:.75}.pn-ptot{margin-top:4px;background:rgba(127,200,255,.08);border:1px solid rgba(127,200,255,.18)}.pn-ptot .pn-cn{color:#fff;font-weight:800}
/* popup branco (Diego: "poderiam ser brancos para quebrar o contraste") */
.pn-pop{background:#fff!important;border:1px solid rgba(11,15,25,.08);box-shadow:0 24px 60px rgba(0,0,0,.55),0 0 50px rgba(127,200,255,.12);color:#0b0f19}
.pn-pop-h b{color:#0b0f19}.pn-pop-h b::after{content:"";display:block;height:4px;width:48px;margin-top:6px;border-radius:2px;background:#eafb33}
.pn-pop-n{color:#5b6b7b}
.pn-prow{background:#f2f5f8}.pn-prow .pn-cn{color:#0b0f19}.pn-prow .pn-cq{color:#5b6b7b}.pn-prow .pn-pnone{color:#8a96a3}.pn-pop .pn-out{color:#7a8796}
.pn-ptot{background:#0b0f19;border-color:#0b0f19}.pn-ptot .pn-cn{color:#fff}.pn-ptot .pn-cq{color:#9fb2c0}
.pn-pop .pn-mtrack{fill:rgba(11,15,25,.1)}.pn-pop .pn-mnow{fill:#0b0f19}.pn-ptot .pn-mtrack{fill:rgba(255,255,255,.12)}.pn-ptot .pn-mnow{fill:#eafb33}
.pn .pn-pop .pc-edfb75{color:#a38c00}.pn .pn-pop .pc-91f8fd{color:#0a8fa3}.pn .pn-pop .pc-f0a787{color:#d0532a}.pn .pn-pop .pc-c1f39a{color:#3a961c}
.pn .pn-pop .pn-ptot .pc-edfb75{color:#edfb75}.pn .pn-pop .pn-ptot .pc-91f8fd{color:#91f8fd}.pn .pn-pop .pn-ptot .pc-f0a787{color:#f0a787}.pn .pn-pop .pn-ptot .pc-c1f39a{color:#c1f39a}
/* números verde-limão no popup branco */
.pn .pn-pop .pn-cp:not(.pn-pnone),.pn .pn-pop .pn-cp[class*="pc-"]{color:#7ac70c!important;font-weight:800}
.pn .pn-pop .pn-cq{color:#7ac70c;font-weight:700}
.pn .pn-pop .pn-ptot .pn-cp:not(.pn-pnone),.pn .pn-pop .pn-ptot .pn-cq{color:#c6f432!important}
/* 1.22.10 · hora da última atualização, discreta, embaixo do último dia de venda */
.pn-upd{display:block;margin-top:2px;font-size:clamp(10px,.7vw,13px);color:#5f7183;letter-spacing:.02em}
/* 1.22.12 · filtros do topo com a mesma altura e contornos suaves (Diego: "botões de alturas diferentes; contornos mais suaves") */
.ft-filters{--fh:36px;--fb:rgba(255,255,255,.09);align-items:center}
.ft-filters details.ms summary{height:var(--fh);padding:0 14px;border-color:var(--fb);background:rgba(255,255,255,.03);transition:border-color .15s,background .15s}
.ft-filters details.ms summary:hover,.ft-filters details.ms[open] summary{border-color:rgba(255,255,255,.18);background:rgba(255,255,255,.05)}
.pn-seg{display:inline-flex;align-items:center;gap:8px;height:var(--fh);padding:0 3px 0 14px;border:1px solid var(--fb);border-radius:999px;background:rgba(255,255,255,.03);font-size:12px}
.pn-seg .segmented{border:0;border-radius:999px;gap:2px;background:none}
.pn-seg .segmented button{height:28px;padding:0 12px;border-radius:999px;color:#8d9daa}.pn-seg .segmented button.active{background:rgba(255,255,255,.1);color:#fff}
.pn-bar .ft-month{display:inline-flex;align-items:center;gap:6px}
.pn-bar .ft-month .outline.small{height:var(--fh);min-width:var(--fh);padding:0 10px;border-radius:999px;border-color:var(--fb);background:rgba(255,255,255,.03)}
.pn-bar .ft-month .ft-date{display:inline-flex;align-items:center;gap:8px;height:var(--fh);padding:0 6px 0 14px;border:1px solid var(--fb);border-radius:999px;background:rgba(255,255,255,.03);font-size:12px;color:#8d9daa}
.pn-bar .ft-month .ft-date input{height:28px;padding:0 8px;border:0;background:transparent;border-radius:999px}
.pn-bar .pn-alt .outline.small{height:var(--fh);padding:0 16px;border-radius:999px;border-color:var(--fb);background:rgba(255,255,255,.03)}
/* sem contornos (Diego: "ou tirar os contornos"): só um fundo suave */
.ft-filters{--fb:transparent}
.ft-filters details.ms summary,.pn-seg,.pn-bar .ft-month .outline.small,.pn-bar .ft-month .ft-date,.pn-bar .pn-alt .outline.small{background:rgba(255,255,255,.055)}
.ft-filters details.ms summary:hover,.ft-filters details.ms[open] summary,.pn-bar .ft-month .outline.small:hover,.pn-bar .pn-alt .outline.small:hover{border-color:transparent;background:rgba(255,255,255,.1)}
.pn-bar .ft-month .ft-date{display:inline-flex!important;flex-direction:row!important;grid-template-columns:none}
/* 1.22.13 · tabelas com menos cara de tabela (Diego: "o cabeçalho escuro poderia não ter esse fundo", ideia A "Linhas soltas"):
   o cabeçalho some no fundo do quadro (continua opaco para tapar as linhas ao rolar), e cada linha vira uma faixa arredondada
   com um respiro entre elas, sem os pontilhados nem a zebra. */
.table-wrap{background:#0f141f;box-shadow:none;padding:4px 12px 10px}
.table-wrap thead th{background-color:#0f141f!important;color:#6f8192;border-bottom:0!important;box-shadow:none}
.table-wrap table{border-collapse:separate;border-spacing:0 5px}
.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{background:rgba(255,255,255,.07)}
.table-wrap tbody tr:hover>td:first-child{box-shadow:inset 3px 0 0 var(--accent)}
.table-wrap tfoot td{background-color:#0f141f}
/* filtros do topo do Faturamento e de outras telas iguais aos do Painel: mesma altura, pílula, sem contorno */
.ft-filters .ft-month{display:inline-flex;align-items:center;gap:6px}
.ft-filters .ft-month .outline.small{height:var(--fh);min-width:var(--fh);padding:0 10px;border-radius:999px;border-color:transparent;background:rgba(255,255,255,.055);box-shadow:none}
.ft-filters .ft-month .ft-date{display:inline-flex!important;flex-direction:row!important;align-items:center;gap:8px;height:var(--fh);padding:0 4px 0 14px;border-radius:999px;background:rgba(255,255,255,.055);font-size:12px;color:#8d9daa}
.ft-filters .ft-month .ft-date .dp-field,.ft-filters .ft-month .ft-date input{height:28px;padding:0 10px;border:0;border-radius:999px;background:transparent;box-shadow:none;font-family:inherit}
.ft-filters .ft-month .ft-date .dp-field:hover{background:rgba(255,255,255,.08)}
.ft-filters>label.ft-date{display:inline-flex!important;flex-direction:row!important;align-items:center;gap:8px;height:var(--fh);padding:0 4px 0 14px;border-radius:999px;background:rgba(255,255,255,.055);font-size:12px;color:#8d9daa}
.ft-filters>label.ft-date .dp-field,.ft-filters>label.ft-date input{height:28px;padding:0 10px;border:0;border-radius:999px;background:transparent;box-shadow:none;font-family:inherit}
/* 1.22.14 · padrão novo em todas as telas (Diego: "reveja em todos os menus e telas"): 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{border-color:transparent!important;border-radius:999px;background:rgba(255,255,255,.055);box-shadow:none}
.outline{min-height:36px;padding:0 16px;display:inline-flex;align-items:center;justify-content:center;gap:8px}
.outline.small{min-height:32px;padding:0 13px}
.outline:hover,.dp-field:hover,details.ms summary:hover{background:rgba(255,255,255,.1);box-shadow:none;color:var(--strong)}
.outline.primary{background:rgba(234,251,51,.12);color:var(--accent)}.outline.primary:hover{background:rgba(234,251,51,.2)}
.dp-field{font-family:inherit;padding:5px 12px}
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.active,.segmented button[aria-pressed=true]{background:rgba(255,255,255,.13);box-shadow:none;color:#fff}
.segmented button.tab-alert{box-shadow:none;color:#fb7185}
/* menu lateral no mesmo padrão: item ativo com fundo suave, sem relevo nem sombra */
aside nav button.active,aside nav button[data-view].active{background:rgba(255,255,255,.08);box-shadow:none;border-radius:12px}
aside nav button:hover{border-radius:12px}
/* 1.22.15 Limpar seleção: desfaz todos os cliques de uma vez */
.ft-xfall{display:inline-flex;align-items:center;gap:6px;border:0;border-radius:999px;padding:5px 14px;min-height:30px;font:inherit;font-size:12px;font-weight:600;cursor:pointer;background:rgba(250,204,21,.16);color:#facc15}
.ft-xfall:hover{background:rgba(250,204,21,.26)}
.ft-xfall span{font-size:14px;line-height:1}
/* 1.22.16 Cabeçalhos das tabelas na mesma fonte do resto (sem caixa alta nem letras espaçadas) */
.table-wrap thead th{font-size:12px;font-weight:500;letter-spacing:0;text-transform:none;color:#97a1b4}
.table-wrap thead tr.tt-total th,.ft-goals thead tr.ft-total th{font-size:12.5px;font-weight:600;text-transform:none;letter-spacing:0}
/* 1.22.17 Passar o mouse num nome destaca todos os iguais da coluna em verde limão */
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}
/* 1.22.18 · mais telas no padrão novo (Diego mostrou a Reposição): chips de status e visão, listas de escolha, busca e
   cabeçalhos numéricos (estavam em fonte de máquina de escrever). */
thead th,thead th.amount{font-family:inherit}
thead th:not(.amount) .th-sort{font-family:inherit}
.ps-chip{border-color:transparent!important;background:rgba(255,255,255,.055);padding:5px 13px;min-height:30px;font-size:12px}
.ps-chip:hover{background:rgba(255,255,255,.1)}
.ps-chip.active{background:rgba(255,255,255,.13);color:#fff}
.ps-chip.bad{background:rgba(251,113,133,.08)}.ps-chip.warn{background:rgba(253,186,116,.08)}.ps-chip.info{background:rgba(147,197,253,.08)}.ps-chip.good{background:rgba(94,234,212,.08)}
.ps-chip.bad.active{background:rgba(251,113,133,.2)}.ps-chip.warn.active{background:rgba(253,186,116,.2)}.ps-chip.info.active{background:rgba(147,197,253,.2)}.ps-chip.good.active{background:rgba(94,234,212,.2)}
/* 1.27.5: Risco de ruptura (atalho que junta as vermelhas) em linha própria, com borda tracejada. */
.ps-chips>.ps-chip-row{flex-basis:100%}.ps-chip.ps-risk{border:1px dashed rgba(251,113,133,.55)!important}.ps-chips .ps-risk-row .ps-risk-note{font-size:11.5px;margin:0!important;padding:0;align-self:center;line-height:1.2}
/* 1.27.3: destino escolhido em Acionar o trade fica amarelo, como o funil de coluna filtrada. */
.ps-chip.ps-dest.active{background:rgba(255,210,30,.14);color:var(--accent);box-shadow:inset 0 0 0 1px rgba(255,210,30,.55)}.ps-chip.ps-dest.active b{color:var(--accent)}
.ps-chip-fix{border-color:transparent;background:rgba(255,255,255,.055)}
.card.ps-status-card{max-width:none;margin:14px 0 0;padding:0;background:none;clip-path:none;border:0;box-shadow:none}
.card.ps-status-card::before,.card.ps-status-card::after{display:none}
.ps-chip-row{align-items:center}
select{border-color:transparent;border-radius:999px;background-color:rgba(255,255,255,.055);min-height:36px;padding:0 14px}
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:36px;padding:0 16px}
.tt-search input:focus,input[type=search]:focus,select:focus{outline:1px solid rgba(234,251,51,.45);outline-offset:0}
select option{background:#151b27;color:#e5ebf1}
td select,.map-select,.period-select{min-height:0;padding:3px 10px}
/* 1.23.0 · Regras do cliente (Livre, Sensível, Fechada) e Escritório com o Porteiro (pedido do Diego, 27/10/2026) */
.rg .rg-group{display:flex;align-items:baseline;gap:8px;margin:18px 0 8px;font-size:13px;font-weight:600;color:var(--strong)}
.rg .rg-group small{font-size:11px;color:var(--faint);font-weight:400}
.rg-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:12px;align-items:start}
.rg-rule{display:flex;flex-direction:column;gap:6px;min-width:0}
.rg-rule.rg-off{background-image:linear-gradient(135deg,rgba(250,204,21,.07),transparent 60%)}
.rg-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.rg-head .k{flex:1;min-width:0}
.rg-tag{display:inline-block;font-size:10.5px;line-height:1.35;padding:1px 8px;border-radius:999px;background:rgba(255,255,255,.07);color:var(--muted);white-space:nowrap}
.rg-tag.livre{background:rgba(163,230,53,.14);color:#c6f432}.rg-tag.sensivel{background:rgba(252,211,77,.14);color:#fcd34d}.rg-tag.fechada{background:rgba(148,163,184,.14);color:#cbd5e1}
.rg-tag.off{background:rgba(250,204,21,.18);color:#fde047}
.rg-help{margin:0;font-size:11.5px;color:var(--muted);line-height:1.4}
.rg-now{margin:0;font-size:12.5px;color:var(--text)}.rg-now b{color:var(--strong);font-weight:600}.rg-now .m{font-size:11px;color:var(--faint)}
.rg-when{margin:0;font-size:11px;color:var(--faint)}
.rg-pend{margin:2px 0;font-size:12px;color:#fcd34d;display:flex;gap:7px;align-items:flex-start;flex-wrap:wrap}.rg-pend .of-dot{margin-top:5px}.rg-pend b{color:var(--strong);font-weight:600}
.rg-last{margin:0;font-size:11px;color:var(--faint)}
.rg-form{display:flex;flex-direction:column;gap:8px;margin-top:4px}
.rg-fields{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:6px 12px}
.rg-field{display:flex;flex-direction:column;gap:3px;font-size:11px;color:var(--faint)}
.rg-in{display:inline-flex;align-items:center;gap:6px}.rg-in input{width:86px;padding:5px 8px;border-radius:999px;border:1px solid transparent;background:rgba(255,255,255,.055);color:var(--strong);font:inherit;font-size:12.5px;text-align:right}
.rg-in input:focus{outline:1px solid rgba(234,251,51,.45)}.rg-in input:disabled{opacity:.6}.rg-in small{font-size:10.5px;color:var(--faint)}
.rg-bool{margin-top:2px}
.rg-form textarea{width:100%;resize:vertical;border-radius:12px;border:1px solid transparent;background:rgba(255,255,255,.055);color:var(--strong);font:inherit;font-size:12.5px;padding:8px 12px}
.rg-form textarea:focus{outline:1px solid rgba(234,251,51,.45)}
.rg-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.rg-actions .m{font-size:11px;color:var(--faint)}
.rg-seg{margin-top:6px;align-self:flex-start}.rg-seg button{font-size:11px;padding:4px 10px;min-height:26px}
.rg-parts-list,.rg-hist-list{list-style:none;margin:6px 0 0;padding:0;display:grid;gap:4px}
.rg-parts-list li{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap;font-size:12.5px;padding:5px 8px;border-radius:10px}.rg-parts-list li:hover{background:#ffffff06}
.rg-parts-list b{color:var(--strong);font-weight:600}.rg-parts-list .m,.rg-parts-list small{font-size:11px;color:var(--faint)}
.rg-hist-list li{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:4px 12px;align-items:center;font-size:12px;padding:5px 8px;border-radius:10px}.rg-hist-list li:hover{background:#ffffff06}
.rg-hist-list small{font-size:10.5px;color:var(--faint);white-space:nowrap}.rg-hist-list b{color:var(--strong);font-weight:600}
.rg-st{font-style:normal;font-size:11px}.rg-st.aprovada{color:#c6f432}.rg-st.recusada{color:#fca5a5}.rg-st.cancelada,.rg-st.aguardando{color:var(--faint)}
.rg-sub{display:block;margin:12px 0 2px}
@media(max-width:700px){.rg-grid{grid-template-columns:minmax(0,1fr)}.rg-hist-list li{grid-template-columns:minmax(0,1fr)}}
/* Escritório: sala, mesa de pedidos, feed e equipe (mesmas classes of-* do DS Financeiro 0.73 a 0.75) */
.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-c-alerta{color:#fcd34d}
.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;box-shadow:0 0 8px #fcd34d88}.of-dot.alerta{background:#f87171}.of-dot.sem{background:#3a4558}
.of-dot.ag-porteiro{background:#ffd21e}.of-dot.ag-conferente{background:#5eead4}.of-dot.ag-analista{background:#93c5fd}.of-dot.ag-redator{background:#c4b5fd}
.of-team ul{list-style:none;margin:6px 0 0;padding:0;display:grid;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:#c6f432}
.of-agent p{grid-column:2/-1;margin:0;font-size:11.5px;color:var(--muted);line-height:1.35}
.of-qhead{display:flex;gap:12px;align-items:center;flex-wrap:wrap;justify-content:space-between}
.of-queue ul,.of-done{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:4px}
.of-item{display:grid;grid-template-columns:auto minmax(0,1fr);gap:4px 12px;align-items:start;padding:8px 10px;border-radius:10px;font-size:12.5px}
.of-item:hover{background:#ffffff06}.of-item>.of-dot{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:3px 0 0;color:var(--muted);font-size:12px;line-height:1.4}.of-item p i{color:var(--text)}.of-item p .m{font-size:11px;color:var(--faint)}
.of-decide{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:8px}
.of-decide input{flex:1;min-width:200px;border-radius:999px;border:1px solid transparent;background:rgba(255,255,255,.055);color:var(--strong);font:inherit;font-size:12px;padding:6px 12px}
.of-decide input:focus{outline:1px solid rgba(234,251,51,.45)}
.of-feed{grid-column:span 3;min-width:0}.of-team{grid-column:span 1}
.of-live{font-size:11px;color:#fca5a5;display:inline-flex;gap:6px;align-items:center}.of-live i{width:7px;height:7px;border-radius:50%;background:#f87171;animation:of-blink 1.4s ease-in-out infinite}
.of-chat{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:2px;max-height:360px;overflow:auto}
.of-line{display:grid;grid-template-columns:auto auto minmax(0,1fr);gap:8px;align-items:center;font-size:12px;padding:4px 8px;border-radius:8px;cursor:pointer;color:var(--text)}
.of-line small{font-size:10.5px;color:var(--faint);white-space:nowrap}.of-line:hover{background:#ffffff08;color:#c6f432}
.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%;max-height:300px;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-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:#ffd21e99;filter:drop-shadow(0 0 6px #ffd21e55)}
.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;transition:opacity .25s}.of-desk:hover .of-desk-n{fill:var(--strong)}.of-desk.visit .of-desk-n,.of-desk.visit .of-chair{opacity:0}
.of-pin circle{fill:#fcd34d}.of-pin text{fill:#0b0f19;font-size:9px;font-weight:700}
.of-desk.atencao .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:#ffd21e66}
.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:#ffd21e}
.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:#ffd21e55;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)}}
@keyframes of-blink{0%,100%{opacity:1}50%{opacity:.25}}
@media (prefers-reduced-motion:reduce){.of-ag-body,.of-ag-eyes,.of-desk .of-scan,.of-desk.atencao .of-pin,.of-live i{animation:none!important}}
@media(max-width:1050px){.of-feed{grid-column:1/-1}.of-team{grid-column:1/-1}.of-team ul{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.of-room-note{display:none}.of-room{overflow-x:auto}.of-room-svg{min-width:640px;max-height:none}.of-hero-top{flex-wrap:wrap}.of-again{margin-left:auto}.of-team ul{grid-template-columns:minmax(0,1fr)}}
/* bolinha do menu Escritório: quantos pedidos esperam a DS */
aside nav button .badge{margin-left:auto;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:#fcd34d;color:#0b0f19;font-size:10.5px;font-weight:700;display:inline-flex;align-items:center;justify-content:center}
/* 1.23.1: a sala do Escritório em 3D (three.js, igual ao DS Financeiro 0.75.x), feed ao lado como o chat do YouTube, tela cheia e o cartão Aviso no WhatsApp */
.of-team{grid-column:span 2}.of-wa{grid-column:span 2}
.of-wa-list{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:6px;font-size:12.5px;color:var(--muted)}
.of-wa-list li{display:flex;gap:8px;align-items:flex-start;line-height:1.4}.of-wa-list .of-dot{margin-top:6px}.of-wa-list code{font-size:11.5px;color:var(--strong);background:#ffffff0a;padding:1px 6px;border-radius:6px}
.of3{position:relative;height:560px;border-radius:14px;overflow:hidden;background:radial-gradient(120% 90% at 50% 0%,#141c2e 0%,#0b0f19 70%);display:flex;gap:0;margin-top:8px}
.of3-stage{position:relative;flex:1;min-width:0;height:100%}
.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:.85}.of3-tag.client.hot{opacity:1;border-color:#ffd21e66}
.of3-tag.agent{border-color:#ffd21e33;opacity:.5}.of3-tag.agent.on{opacity:1}.of3-tag.agent.on small{color:#ffd21e}
.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)}
.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;gap:8px;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;margin-left:auto}
.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 ease-out}
.of3-msg time{font-size:10px;color:var(--faint);font-family:var(--num);padding-top:2px;white-space:nowrap}
.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-msg.atencao{background:#fcd34d10}.of3-msg.ok b{color:#a3e635}
.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:#c6f432}
.of3-msg.go>span::after{content:' ↗';color:var(--faint);font-size:10px}
.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=porteiro]{background:#ffd21e}.of3-av[data-ag=conferente]{background:#5eead4}.of3-av[data-ag=analista]{background:#93c5fd}.of3-av[data-ag=redator]{background:#c4b5fd}.of3-av[data-ag=sala]{background:#6b7280}.of3-av[data-ag=cliente]{background:#f9a8d4}.of3-av[data-ag=ds]{background:#a3e635}
@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;font-family:inherit}
.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:1050px){.of-team,.of-wa{grid-column:1/-1}}
@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}.of3-tag{font-size:10px;padding:3px 7px}.of3-tag small{display:none}}
@media (prefers-reduced-motion:reduce){.of3-live i,.of3-msg{animation:none}}

/* 1.24.0 · Tema claro e escuro (igual ao DS Financeiro 0.95.0): 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}
/* Bolinha branca na ponta dos velocímetros do Painel: no claro continua branca (preta parecia um borrão), com um fio para aparecer no fundo claro. */
:root[data-theme=light] .pn-gauge .pn-gorb{fill:#fff;stroke:rgba(15,23,42,.25);stroke-width:1.5}
/* 1.29.0 · Temas neon, amarelo, vermelho Ferrari e branco (Diego, 01/11/2026: "vamos copiar os temas amarelos, vermelho...todos do
   aplicativo da DS"), iguais ao DS Financeiro 0.98.0 a 0.111.0. As cores saem de theme-<tema>.css (e af/theme-<tema>.css), gerados deste
   arquivo por scripts/build-light-theme.mjs com as funções de theme-colors.js. Aqui só o toque próprio de cada tema. O botão passa
   escuro › claro › neon › amarelo › Ferrari › branco › escuro, e o ícone mostra o próximo: sol, raio, gota, gota, sol, lua. */
#rail-theme .bolt,#rail-theme .drop{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,: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}
:root[data-theme=branco] #rail-theme .sun{display:none}
:root[data-theme=branco] #rail-theme .moon{display:inline}
html:root[data-theme=neon] ::selection{background:rgba(255,60,190,.45);color:#fff}
html:root[data-theme=neon] #title{color:#f4e22a;text-shadow:0 0 14px rgba(244,226,42,.35)}
html:root[data-theme=neon] .brand{text-shadow:0 0 12px rgba(36,240,253,.35)}
html:root[data-theme=neon] aside nav button[data-view].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=amarelo] body{background:#ffd60a}
html:root[data-theme=amarelo] ::selection{background:#2a1c07;color:#ffd60a}
html:root[data-theme=amarelo] #title{color:#1c1405;text-shadow:none}
html:root[data-theme=amarelo] aside{background:#f2c200}
html:root[data-theme=amarelo] aside nav button[data-view].active{background:rgba(40,28,7,.12);box-shadow:inset 2px 0 0 #1c1405;color:#1c1405}
html:root[data-theme=ferrari] body{background:#c8000f}
html:root[data-theme=ferrari] ::selection{background:#ffdc4e;color:#5a0006}
html:root[data-theme=ferrari] #title{color:#fff;text-shadow:0 1px 0 rgba(90,0,6,.35)}
html:root[data-theme=ferrari] aside{background:#a8000c}
html:root[data-theme=ferrari] aside nav button[data-view].active{background:rgba(255,255,255,.14);box-shadow:inset 2px 0 0 #ffdc4e;color:#fff}
html:root[data-theme=branco] body{background:#fff}
html:root[data-theme=branco] ::selection{background:#111;color:#fff}
html:root[data-theme=branco] #title{color:#111;text-shadow:none}
html:root[data-theme=branco] aside{background:#fff}
html:root[data-theme=branco] aside nav button[data-view].active{background:rgba(0,0,0,.07);box-shadow:inset 2px 0 0 #111;color:#111}
html:root[data-theme=branco] .ic-defs stop{stop-color:#2a2a2a}
html:root[data-theme=amarelo] .pn-gauge .pn-gorb,html:root[data-theme=branco] .pn-gauge .pn-gorb{fill:#fff;stroke:rgba(15,23,42,.25);stroke-width:1.5}
/* 1.30.0 · Tema verde escuro (Diego, 01/11/2026: "a pro service precisaria de um verde tambem. tinha que ser um verde escuro"). Cores de
   theme-verde.css (verdeColor em theme-colors.js). Vem depois do branco: no branco o ícone é a gota (próximo = verde), no verde a lua. */
:root[data-theme=branco] #rail-theme .moon{display:none}
:root[data-theme=branco] #rail-theme .drop{display:inline}

/* 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}}
/* 01/11/2026 · Tema game trazido do kit (igual ao DS Financeiro 0.124.0); cores em theme-game.css. */
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}
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}
/* 01/11/2026 · Tema marrom trazido do kit (igual ao DS Financeiro 0.124.0); cores em theme-marrom.css. */
/* 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)}
/* 1.35.2: campo que falta preencher no cadastro do trade fica vermelho */
.eq-form input.eq-miss,.eq-form select.eq-miss{border-color:#ef4444!important;box-shadow:0 0 0 2px rgba(239,68,68,.35)!important}
.eq-form .ps-bad{color:#f87171!important;font-weight:600}
/* 1.36.0: Agenda da semana do trade */
.eq-ag{display:flex;flex-direction:column;gap:6px;margin-top:10px}
.eq-ag-row{display:grid;grid-template-columns:90px 1fr auto;gap:12px;align-items:center;padding:6px 0;border-top:1px solid var(--line-soft)}
.eq-ag-day{font-size:13px}.eq-ag-chips{display:flex;flex-wrap:wrap;gap:6px}
.eq-ag-chip{display:inline-flex;align-items:center;gap:2px;padding:2px 4px 2px 10px;border-radius:999px;border:1px solid rgba(255,210,30,.55);background:rgba(255,210,30,.12);font-size:12px}
.eq-ag-add{display:flex;gap:6px;align-items:center}.eq-ag-add input{min-width:180px}
.eq-acts{display:flex;flex-wrap:wrap;gap:6px 14px}.eq-act{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;cursor:pointer;background:none;border:0;padding:2px 0;color:inherit;text-align:left}.eq-act.off{opacity:.45}.eq-act.off .eq-tick{color:var(--muted);opacity:.35}.eq-tick{font-family:'Comic Sans MS','Segoe Print','Bradley Hand',cursive;font-size:20px;font-weight:700;line-height:1;color:#16a34a;transform:rotate(-8deg);width:18px;display:inline-block}.eq-act b{font-weight:600;color:var(--muted)}.eq-dot{width:8px;height:8px;border-radius:50%;background:var(--muted);flex:none}.eq-dot.bad{background:#dc2626}.eq-dot.warn{background:#d97706}.eq-dot.info{background:#2563eb}
.eq-rules{display:grid;gap:12px;margin-top:10px}.eq-rule{display:grid;gap:6px;padding:12px 14px;border:1px solid var(--line);border-radius:12px}.eq-rule p{margin:0}.eq-runs{margin:0;padding-left:18px;display:grid;gap:4px}
.eq-auto{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px}.eq-auto .eq-away{align-self:center}.eq-auto input[type=time]{width:auto}
.eq-ag-chip.eq-ag-none{border-color:var(--bad,#dc2626);color:var(--bad,#dc2626)}
@media (max-width:800px){.eq-ag-row{grid-template-columns:1fr}}
.eq-tabs{margin-left:12px}.eq-tabs small{opacity:.7}
.eq-miss-box .eq-checks{border-color:#ef4444!important;box-shadow:0 0 0 2px rgba(239,68,68,.35)}
.eq-away{display:flex;align-items:center;gap:6px;font-size:12.5px;align-self:end}
.eq-more{margin:8px 0}
.eq-st.warn{color:#fbbf24}
.eq-cover{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,400px),1fr));gap:12px;margin-top:14px}
.eq-cover-card{min-width:0;overflow:hidden}.eq-cover-card table{width:100%;table-layout:fixed}.eq-cover-card td,.eq-cover-card th{white-space:normal;overflow-wrap:anywhere}
.eq-cover-card{border:1px solid var(--line);border-radius:12px;padding:10px 12px}.eq-cover .ps-bad{color:#f87171;font-weight:600}
.eq-free td{background:rgba(239,68,68,.08)}
.eq-nophone{color:#f87171!important;font-weight:600;font-family:inherit}
.eq-ag-add{margin-top:10px}.eq-ag-add select{min-width:120px}
.eq-ag-table{width:100%;table-layout:fixed;margin-top:10px;border-collapse:collapse}
.eq-ag-table th{text-align:left;font-size:13px;padding:6px 6px;border-bottom:1px solid var(--line)}
.eq-ag-table td{padding:4px 6px;vertical-align:top;border-top:1px solid var(--line-soft)}
.eq-ag-table .eq-ag-chip{box-sizing:border-box;max-width:100%;white-space:normal;overflow-wrap:anywhere}
.eq-cover-none{border-style:dashed}.eq-cover-card.eq-drop{outline:2px solid rgba(255,210,30,.7);outline-offset:2px}
.eq-cover-card tr[draggable=true]{cursor:grab}.eq-cover-card select{width:100%;font-size:12px;padding:2px 4px}
.eq-cover-card th:nth-child(3),.eq-cover-card td:nth-child(3){width:120px}

/* ===== 1.40.0 (Diego, 04/11/2026: "nem tudo está no nosso padrão de fonte"): a fonte do kit ds-visual em todas as telas ===== */
/* Números na fonte do texto (Source Sans 3 com algarismos de largura igual, --num do kit) em Reposição, Cadastros, Escritório,
   Regras, Diretoria e Conversores, como o Faturamento já fazia desde a 1.5.7. A fonte de máquina de escrever (--mono) fica só em código. */
body{font-variant-numeric:tabular-nums}
/* Números grandes como no kit: 20px e peso normal (kit 0.27.2). */
.card .v{font-family:var(--num);font-size:20px;font-weight:400;letter-spacing:-.01em;line-height:1.2}
.ps-figs .n,.ps-store .n{font-size:20px;font-weight:400}
.ps-audit-res .n,.pn-cfg .v,.rec-tile b,.sp-kpi b,.loading-pct{font-weight:400}
.ps-chip b,.ft-status b,.ft-prog b,.ft-ring-in b,.ft-day b{font-weight:500}
/* Painel (TV): mesmo tamanho para ler de longe, mas sem o negrito pesado (700/800) e sem letras espaçadas nos rótulos. */
.pn-ring-in b,.pn-who b,.pn-kt b,.pn-cp,.pn-prow .pn-cp,.pn-pop-h b,.pn-neon .pn-gval,.pn-tmv,.pn-thv,.pn-tmeta{font-weight:500}
.pn .pn-pop .pn-cp:not(.pn-pnone),.pn .pn-pop .pn-cp[class*="pc-"],.pn-ptot .pn-cn{font-weight:600}
.pn-lane h3,.pn-msg,.pn-msg b,.pn-phr b,.pn-ks em,.pn-ks .pn-last,.pn .pn-pop .pn-cq,.pn-table tfoot td,.pn-tgapt,.pn-taheadt{font-weight:600}
.pn-neon .k,.pn-neon .pn-kt .k,.pn-sem .k,.pn-pista .k,.pn-pop-n,.pn-tmk,.pn-thk,.pn-gmark text{font-weight:500;letter-spacing:0}
/* O tique das ações do envio usa a fonte do app, não a letra de mão. */
.eq-tick{font-family:inherit;font-size:16px;font-weight:600}
/* 1.42.3: Enviar o dia juntando os relatórios (roda girando e a contagem, para não parecer travado) */
.eq-loading{display:flex;align-items:center;gap:16px;padding:14px 4px}
.eq-loading .loading-ring{margin:0;flex:none}
.eq-loading>div{display:flex;flex-direction:column;gap:2px}
.eq-loading b{font-size:14px;color:var(--strong)}
/* 1.43.0: Prioridade das ações (Regra de envio) */
.eq-prio{list-style:none;margin:4px 0 6px;padding:0;display:flex;flex-direction:column;gap:4px;max-width:520px}
.eq-prio li{display:flex;align-items:center;gap:8px;padding:5px 10px;border:1px solid var(--line);border-radius:10px;background:var(--panel)}
.eq-prio-n{min-width:26px;color:var(--accent);font-variant-numeric:tabular-nums}
.eq-prio-t{flex:1}
.eq-prio .text-button{min-width:28px;padding:2px 6px}
/* 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}
/* 1.48.0: ativar ou inativar a representada no dia (Visitas) */
.eq-ag-tog{position:relative;flex:none;width:24px;height:14px;margin-right:6px;padding:0;border:0;border-radius:999px;background:#4b5563;cursor:pointer}
.eq-ag-tog i{position:absolute;top:2px;left:2px;width:10px;height:10px;border-radius:50%;background:#fff;transition:left .15s}
.eq-ag-tog.on{background:var(--accent)}.eq-ag-tog.on i{left:12px;background:#111}
.eq-ag-chip.eq-ag-off{opacity:.55;border-style:dashed;background:transparent}
.eq-camp{width:100%;max-width:560px;margin-top:6px}
