:root{--bg:#f2f5f3;--card:#fff;--tx:#1f2a24;--mut:#76827b;--ok:#2f9e63;--ok2:#d9f1e4;--bad:#d1595c;--bad2:#e58a8c;--line:#e4e9e6;--sh:0 2px 10px #0000000d}
@media(prefers-color-scheme:dark){:root{--tx:#eaeaee;--mut:#9a9aa5;--ok2:#22332a;--sh:none}}
*{box-sizing:border-box}[hidden]{display:none!important}
body{margin:0;font:15px/1.4 system-ui,-apple-system,sans-serif;background:var(--bg);color:var(--tx)}
header{padding:14px 18px 10px;background:linear-gradient(135deg,#2f9e63,#1f7a4c);color:#fff;position:sticky;top:0;z-index:5;box-shadow:0 2px 12px #0003}
h1{margin:0 0 10px;font-size:20px}nav{display:flex;gap:6px;overflow-x:auto}
button,input,select{font:inherit;color:inherit}
button{border:1px solid var(--line);background:var(--card);padding:7px 13px;border-radius:10px;cursor:pointer;transition:transform .12s,box-shadow .12s,background .15s}
button:hover{transform:translateY(-1px);box-shadow:var(--sh)}button:active{transform:scale(.97)}
nav button{background:#ffffff26;color:#fff;border-color:transparent}nav .on{background:#fff;color:#1f7a4c;font-weight:600}
.pri{background:var(--ok);color:#fff;border-color:var(--ok)}.big{padding:10px 18px;font-weight:600;box-shadow:0 4px 12px #2f9e6355}
main{max-width:1040px;margin:0 auto;padding:16px;animation:fade .3s}
@keyframes fade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.bar{display:flex;gap:10px;align-items:center;justify-content:space-between;margin-bottom:14px;flex-wrap:wrap}
.mn{display:flex;align-items:center;gap:10px;font-size:18px;text-transform:capitalize}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-bottom:14px}
.kpi{border-radius:14px;padding:14px 16px;color:#fff;box-shadow:var(--sh);transition:transform .2s}.kpi:hover{transform:translateY(-3px)}
.kpi span{display:block;font-size:13px;opacity:.9}.kpi b{font-size:22px}
.k1{background:linear-gradient(135deg,#3aa876,#2f9e63)}.k2{background:linear-gradient(135deg,#6f8fa8,#4d6f8a)}.k3{background:linear-gradient(135deg,#2f9e63,#1f7a4c)}.k4{background:linear-gradient(135deg,#d1595c,#b0393c)}
.viz{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px;margin-bottom:14px}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,440px),1fr));gap:14px}
.card{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:16px;box-shadow:var(--sh)}
.card h3,.card h4{margin:0 0 10px}.card h4{font-size:14px;color:var(--mut);font-weight:600}
.ph{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.ph h3{margin:0}
.pill{padding:3px 11px;border-radius:99px;font-weight:600;font-size:13px}.pill.ok{background:var(--ok2);color:var(--ok)}.pill.bad{background:#d1595c22;color:var(--bad)}
.prog{height:8px;background:var(--line);border-radius:9px;overflow:hidden;margin:6px 0 10px}.prog i{display:block;height:100%;background:linear-gradient(90deg,#3aa876,#2f9e63);border-radius:9px;transition:width .6s}
.row{display:flex;justify-content:space-between;gap:8px;padding:3px 0;color:var(--mut)}.row b{color:var(--tx)}
.pos{color:var(--ok)!important}.neg{color:var(--bad)!important}
.dwrap{display:flex;align-items:center;gap:14px}.donut{width:110px;height:110px}
.dt{fill:none;stroke:var(--line);stroke-width:12}.dp{fill:none;stroke:var(--ok);stroke-width:12;stroke-linecap:round;transition:stroke-dasharray .8s}.dn{font:700 18px system-ui;fill:var(--tx)}
.leg p{margin:4px 0;font-size:13px}.leg i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px}.row2{display:flex;gap:14px;justify-content:center;font-size:12px;color:var(--mut)}
.d1{background:var(--ok)}.d2{background:var(--line)}.d3{background:var(--bad2)}
.chart{width:100%}.chart text{font-size:9px;fill:var(--mut)}.bi{fill:var(--ok)}.bo{fill:var(--bad2)}.chart rect{transition:opacity .2s}.chart rect:hover{opacity:.7}
.up{display:flex;gap:8px;align-items:center;padding:6px 8px;margin:0 -8px;border-radius:8px;cursor:pointer}.up:hover{background:var(--ok2)}.up span{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.up small{color:var(--mut)}
.bar2{display:flex;gap:6px;align-items:center;margin-bottom:12px;flex-wrap:wrap}
.chip{border-radius:99px;padding:5px 13px;font-size:13px}.chip.on{background:var(--ok);color:#fff;border-color:var(--ok)}
.srch{margin-left:auto;padding:7px 12px;border:1px solid var(--line);border-radius:99px;background:var(--card);min-width:170px}
.list{margin-top:8px}.item{display:flex;align-items:center;gap:8px;padding:9px 6px;border-top:1px solid var(--line);border-radius:8px;transition:background .15s}
.item:hover{background:var(--ok2)}.item .n{flex:1;cursor:pointer}.item small{display:block;color:var(--mut)}
.item input{width:18px;height:18px;accent-color:var(--ok)}
.paga{opacity:.5}.paga .n{text-decoration:line-through}.atrasada .n{color:var(--bad)}
.tag{font-size:11px;padding:1px 8px;border-radius:9px;background:var(--line);color:var(--mut)}.tag.atrasada{background:#d1595c22;color:var(--bad)}.tag.adiada{background:#e8a83a2b;color:#b07a10}
.ico{padding:4px 8px;border-color:transparent;background:transparent}.ico:hover{background:var(--card);border-color:var(--line)}
.empty{color:var(--mut);padding:14px 0;text-align:center}
.alert{background:#d1595c1a;border:1px solid var(--bad);color:var(--bad);padding:8px 10px;border-radius:10px;margin:8px 0}
dialog{border:none;border-radius:18px;background:var(--card);color:var(--tx);width:min(440px,94vw);box-shadow:0 20px 60px #0006;animation:fade .2s}
dialog::backdrop{background:#0006;backdrop-filter:blur(3px)}
label{display:block;margin:9px 0;font-size:13px;color:var(--mut)}label input,label select{display:block;width:100%;margin-top:4px;padding:9px;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--tx)}
.toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);background:#1f2a24;color:#fff;padding:10px 18px;border-radius:99px;box-shadow:0 6px 20px #0005;animation:fade .25s;z-index:20}
#who{position:absolute;right:16px;top:12px;font-size:13px;display:flex;gap:8px;align-items:center}#who button{padding:4px 10px;background:#ffffff26;color:#fff;border-color:transparent}
#lg{position:fixed;inset:0;background:var(--bg);display:grid;place-items:center;z-index:50}.lgf{width:min(360px,92vw)}.lgf h2{margin-top:0}
.mut{color:var(--mut)}
/* ===== temas por usuário ===== */
:root[data-theme=dark]{--tx:#eaeaee;--mut:#9a9aa5;--ok2:#22332a;--sh:none;color-scheme:dark}
:root[data-theme=light]{--tx:#1d2330;--mut:#6b7280;--ok2:#d9f1e4;--sh:0 2px 10px #0000000d;color-scheme:light}
header{background:linear-gradient(135deg,var(--hd,#4f46e5),color-mix(in srgb,var(--hd,#4f46e5) 68%,#000));color:var(--hdt,#fff)}
nav button,#who button{color:var(--hdt,#fff)}nav .on{background:var(--hdt,#fff);color:var(--hd,#4f46e5)}
.pri,.chip.on{background:var(--hd,#4f46e5);border-color:var(--hd,#4f46e5);color:var(--hdt,#fff)}
.big{box-shadow:0 4px 12px color-mix(in srgb,var(--hd,#4f46e5) 40%,transparent)}
.k1{background:linear-gradient(135deg,var(--hd,#4f46e5),color-mix(in srgb,var(--hd,#4f46e5) 65%,#000));color:var(--hdt,#fff)}
.e{margin-right:4px}.sws{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0}.sw{width:30px;height:30px;padding:0;border-radius:50%;border:2px solid var(--line)}
/* ===== janelas com X ===== */
dialog{padding:0}dialog form{padding:18px;max-height:88vh;overflow:auto}dialog h3{padding-right:34px;margin-top:0}
.x{position:absolute;right:8px;top:8px;border:none;background:transparent;font-size:18px;padding:6px 10px;z-index:2}
.acts{display:flex;gap:8px;justify-content:flex-end;margin-top:14px}
/* ===== visualizações ===== */
#vw{padding:7px 10px;border:1px solid var(--line);border-radius:10px;background:var(--card);color:var(--tx)}
.bc{background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:10px;margin-top:8px;cursor:pointer;transition:transform .15s,box-shadow .15s}
.bc:hover{transform:translateY(-2px);box-shadow:var(--sh)}.bt{display:flex;gap:8px;align-items:center}.bt b{flex:1;overflow:hidden;text-overflow:ellipsis}.bt input{width:18px;height:18px}
.bm{display:flex;justify-content:space-between;align-items:baseline;margin-top:6px;gap:8px}.bm small{color:var(--mut)}.bc.paga{opacity:.55}.bc.atrasada{border-color:var(--bad)}
.kan{display:grid;grid-template-columns:repeat(4,minmax(240px,1fr));gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:6px}
.kc{background:var(--card);border:1px solid var(--line);border-top:3px solid var(--line);border-radius:14px;padding:12px;scroll-snap-align:start;align-self:start}
.kc h4{display:flex;justify-content:space-between;gap:8px;margin:0 0 4px}.kc h4 span{font-weight:400;font-size:12px}
.k-atrasada{border-top-color:var(--bad)}.k-paga{border-top-color:var(--ok)}.k-adiada{border-top-color:#e8a83a}.k-pendente{border-top-color:var(--hd)}
.quad{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px}.quad .bc{margin:0}.gp{margin-bottom:12px}
.cal{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.ch{text-align:center;color:var(--mut);font-size:12px}
.cd{min-height:88px;border:1px solid var(--line);border-radius:8px;padding:4px;font-size:11px;background:var(--bg);min-width:0}.cd.off{background:transparent;border-color:transparent}.cd.today{outline:2px solid var(--hd)}
.dn2{font-weight:700}.cb{border-radius:5px;padding:2px 4px;margin-top:2px;background:var(--ok2);cursor:pointer;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.cb.atrasada{background:#d1595c22;color:var(--bad)}.cb.paga{opacity:.5;text-decoration:line-through}
.tw{overflow-x:auto}.yt{width:100%;border-collapse:collapse}.yt td,.yt th{padding:9px 8px;border-top:1px solid var(--line);text-align:right;white-space:nowrap}.yt td:first-child,.yt th:first-child{text-align:left}
.yt tr[data-a]{cursor:pointer}.yt tr:hover td{background:var(--ok2)}.cur td{font-weight:700}
/* ===== celular ===== */
@media(max-width:700px){
 body{padding-bottom:calc(68px + env(safe-area-inset-bottom))}
 header{padding:10px 14px;padding-top:calc(10px + env(safe-area-inset-top))}h1{font-size:17px;margin:0}#st{display:none}
 #who{top:calc(8px + env(safe-area-inset-top))}
 nav{position:fixed;left:0;right:0;bottom:0;z-index:30;display:grid;grid-template-columns:repeat(5,1fr);gap:0;background:var(--card);border-top:1px solid var(--line);padding:6px 4px calc(6px + env(safe-area-inset-bottom));overflow:visible}
 nav button{background:transparent;color:var(--mut);border:none;border-radius:10px;padding:5px 2px;display:flex;flex-direction:column;align-items:center;min-width:0}
 nav .e{font-size:20px;margin:0}nav .l{font-size:0}nav .l::after{content:attr(data-s);font-size:10px}
 nav .on{background:transparent;color:var(--hd)}nav .on .l::after{font-weight:700}
 main{padding:12px}.kpis{grid-template-columns:1fr 1fr}.kpi:last-child{grid-column:1/-1}.kpi b{font-size:18px}
 .grid,.viz{grid-template-columns:1fr}.item{flex-wrap:wrap}.ico{padding:8px 10px}.bar2{gap:5px}.srch{margin-left:0;flex:1}#vw{flex:1 1 100%}
 .kan{grid-template-columns:repeat(4,82%)}.cd{min-height:58px}.cb span{display:none}.cb{text-align:center}
 dialog{margin:auto 0 0;width:100%;max-width:100%;border-radius:18px 18px 0 0}input,select{font-size:16px!important}
 .toast{bottom:84px}
}
