:root{
  --bg:#f4f6fa;--card:#fff;--ink:#1d2433;--muted:#6b7385;--line:#e3e7ef;
  --pri:#1f5eff;--pri2:#e8efff;--ok:#12a150;--warn:#d98a00;--bad:#d93636;
  --proj:#8a63d2;
}
*{box-sizing:border-box}
body{margin:0;font-family:"Segoe UI",Roboto,Arial,sans-serif;background:var(--bg);color:var(--ink);font-size:14px}
header{background:#101a33;color:#fff;padding:14px 24px;display:flex;align-items:center;gap:24px;flex-wrap:wrap}
header h1{font-size:18px;margin:0;font-weight:600}
header .sub{color:#aab4cc;font-size:12px}
nav{display:flex;gap:4px;flex-wrap:wrap;margin-left:auto}
nav button{background:transparent;border:0;color:#cdd5ea;padding:8px 14px;border-radius:6px;cursor:pointer;font-size:14px}
nav button.active,nav button:hover{background:#24315a;color:#fff}
main{max-width:1280px;margin:0 auto;padding:20px}
section.tab{display:none}section.tab.active{display:block}
.card{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:18px;margin-bottom:18px}
.card h2{font-size:16px;margin:0 0 12px}
.card h3{font-size:14px;margin:16px 0 8px}
.grid{display:grid;gap:14px}
.g4{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.g2{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}
.kpi{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:16px}
.kpi .l{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.03em}
.kpi .v{font-size:22px;font-weight:700;margin-top:6px}
.kpi .s{color:var(--muted);font-size:12px;margin-top:4px}
table{width:100%;border-collapse:collapse;font-size:13px}
th,td{padding:7px 8px;border-bottom:1px solid var(--line);text-align:right;white-space:nowrap}
th{background:#f7f9fc;color:var(--muted);font-weight:600;position:sticky;top:0}
td:first-child,th:first-child{text-align:left}
td.l,th.l{text-align:left}
tr.proj td{color:var(--proj);font-style:italic}
tr.tot td{font-weight:700;background:#f7f9fc}
.scroll{overflow:auto;max-height:560px}
.badge{display:inline-block;padding:2px 8px;border-radius:10px;font-size:11px;font-weight:600}
.b-real{background:#e5f6ec;color:var(--ok)}.b-proj{background:#efe8fb;color:var(--proj)}
.b-warn{background:#fff3dc;color:var(--warn)}.b-bad{background:#fde8e8;color:var(--bad)}
.b-info{background:var(--pri2);color:var(--pri)}
label{display:block;font-size:12px;color:var(--muted);margin-bottom:4px}
input,select{width:100%;padding:7px 9px;border:1px solid var(--line);border-radius:6px;font-size:14px;background:#fff}
input[type=checkbox]{width:auto}
td input,td select{padding:4px 6px;font-size:12px}
.btn{background:var(--pri);color:#fff;border:0;border-radius:6px;padding:8px 14px;cursor:pointer;font-size:14px}
.btn.sec{background:#fff;color:var(--ink);border:1px solid var(--line)}
.btn.danger{background:var(--bad)}
.btn.sm{padding:4px 10px;font-size:12px}
.row{display:flex;gap:10px;align-items:end;flex-wrap:wrap}
.row>div{flex:1;min-width:140px}
.drop{border:2px dashed #b7c3dd;border-radius:10px;padding:30px;text-align:center;color:var(--muted);cursor:pointer;background:#fafbff}
.drop.over{border-color:var(--pri);background:var(--pri2)}
.note{background:#fff8e6;border:1px solid #f2dca3;border-radius:8px;padding:10px 14px;font-size:13px;margin-bottom:14px}
.note.info{background:#eef3ff;border-color:#c9d7ff}
.muted{color:var(--muted)}
.chart-box{position:relative;height:320px}
#toast{position:fixed;bottom:20px;right:20px;background:#101a33;color:#fff;padding:12px 18px;border-radius:8px;display:none;max-width:420px;z-index:10}
.cal-item{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--line)}
.cal-item.past{opacity:.5}
footer{text-align:center;color:var(--muted);font-size:12px;padding:20px}
@media print{header nav,.btn,.drop{display:none}section.tab{display:block}}
.savest{font-size:12px;color:#cdd5ea;margin-left:auto}
label.chk{font-size:14px;color:var(--ink);display:flex;gap:8px;align-items:center;margin:6px 0}
label.chk input{width:auto}
#tblNotas select{min-width:110px;font-size:12px;padding:3px 4px}
.cardhead{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px;margin-bottom:8px}
.cardhead h2{margin:0}
.sitfilt{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:13px}
.chip{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:14px;cursor:pointer;font-size:12px;font-weight:600;border:1px solid transparent;user-select:none}
.chip input{width:auto;margin:0}
.c-real{background:#e5f6ec;color:var(--ok)}.c-parc{background:#fff4e0;color:#b26a00}.c-proj{background:#efe8fb;color:var(--proj)}
.chip:has(input:not(:checked)){background:#f1f2f5;color:#98a0b3;border-color:#dde1ea}
/* ---- Aprendizado PIS/COFINS ---- */
.apcard{margin-bottom:14px}
.ap-head{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:8px}
.ap-trat{font-size:13px;text-align:right}
.aptbl{width:100%;border-collapse:collapse}
.aptbl th,.aptbl td{padding:5px 8px;text-align:right;border-bottom:1px solid #edf0f5;font-size:13px}
.aptbl th.ap-tx{text-align:left;font-size:14px;background:#f6f8fc;width:70px;border-right:1px solid #e3e7ef}
.aptbl tr.ap-app td{background:#fbfcff}
.aptbl tr.ap-man td{background:#fffdf3}
.aptbl tr.ap-dif td{font-size:12px;border-bottom:2px solid #dfe4ee}
.aptbl .l{text-align:left;white-space:nowrap}
.apin{width:120px;text-align:right;padding:4px 6px;font-size:13px}
.ap-ok{color:var(--ok);font-weight:600}.ap-bad{color:var(--bad);font-weight:700}
.ap-foot{margin-top:8px;display:flex;flex-direction:column;gap:6px}
.ap-foot details summary{cursor:pointer;font-weight:600;font-size:13px;color:var(--brand,#1f5eff)}
.ap-regra{margin-top:8px;align-items:flex-end}
.ap-regra>div{flex:1 1 120px}
.ap-sel{background:#f6f8fc;border:1px solid #e3e7ef;border-radius:8px;padding:8px 10px;margin:4px 0 10px;display:flex;flex-direction:column;gap:6px}
.ap-nav{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.ap-nav select{flex:1 1 320px;max-width:640px;font-size:13px;padding:4px 6px}
.ap-comp{font-size:12px;line-height:1.5}
.ap-acoes{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:12px;padding-top:10px;border-top:1px dashed #e0e5ee}
#apImpRes .note{margin-top:10px}
@media print{
  body.print-ap header,body.print-ap footer,body.print-ap section.tab:not(#tab-aprendizado){display:none!important}
  body.print-ap #tab-aprendizado{display:block!important}
  body.print-ap .ap-acoes,body.print-ap .ap-foot details,body.print-ap .ap-nav button,body.print-ap #apImpRes{display:none!important}
  body.print-ap .apcard{break-inside:avoid;box-shadow:none;border:1px solid #ccc}
  body.print-ap .apin{border:none;background:transparent}
  body.print-ap .apin:placeholder-shown{color:transparent}
  body.print-ap .apin::placeholder{color:transparent}
  body.print-ap select{border:none;appearance:none;-webkit-appearance:none;background:transparent}
  body.print-ap .scroll{overflow:visible}
}

/* ---------- login / nuvem ---------- */
.login-ov{position:fixed;inset:0;background:rgba(15,25,50,.72);display:flex;align-items:center;justify-content:center;z-index:9999}
.login-box{background:#fff;border-radius:12px;padding:24px 26px;width:min(420px,92vw);box-shadow:0 10px 40px rgba(0,0,0,.3)}
.login-box h2{margin:0 0 8px}.login-box p{font-size:13px;color:#555;margin:0 0 12px}
.login-box input[type=password]{width:100%;padding:10px;font-size:15px;border:1px solid #cfd6e4;border-radius:8px;box-sizing:border-box}
.lg-chk{display:flex;gap:6px;align-items:center;font-size:13px;margin-top:10px}
#cloudInfo .btn{padding:6px 12px}
@media print{.login-ov{display:none}}

/* ---------- faturamento por mês ---------- */
.fattbl a{color:var(--pri);text-decoration:none;font-weight:600}.fattbl a:hover{text-decoration:underline}
.fattbl tr.fat-proj td{color:#5d6475}
.fatbar{position:relative;min-width:170px;height:22px;display:flex;align-items:center;justify-content:flex-end}
.fatbar span{position:absolute;left:0;top:3px;bottom:3px;border-radius:4px;background:#d9e5ff}
.fatbar span.parcial{background:#ffe8bf}.fatbar span.proj{background:#e9e1f8}
.fatbar b{position:relative;padding-right:2px}

/* ---------- usuários ---------- */
.hdr-dir{margin-left:auto;display:flex;align-items:center;gap:12px}
.hdr-dir .savest{margin-left:0}
.userbox{position:relative}
.userchip{background:rgba(255,255,255,.12);color:#fff;border:1px solid rgba(255,255,255,.25);border-radius:18px;padding:5px 12px;font-size:12px;cursor:pointer;white-space:nowrap}
.userchip:hover{background:rgba(255,255,255,.2)}
.uadm{background:#ffd76a;color:#3a2b00;border-radius:8px;padding:0 6px;font-size:10px;font-weight:700;margin-left:3px}
.usermenu{position:absolute;right:0;top:calc(100% + 6px);background:#fff;border-radius:8px;box-shadow:0 8px 28px rgba(0,0,0,.25);min-width:230px;z-index:1000;overflow:hidden;padding:4px 0}
.usermenu button{display:block;width:100%;text-align:left;background:none;border:0;padding:9px 14px;font-size:13px;cursor:pointer;color:#1b2335}
.usermenu button:hover{background:#eef3ff}
.login-box label{display:block;font-size:12px;color:#555;margin-bottom:3px}
.login-box input[type=email],.login-box input[type=text]{width:100%;padding:10px;font-size:15px;border:1px solid #cfd6e4;border-radius:8px;box-sizing:border-box}
.login-box .ap-bad:empty{display:none}
.usr-acoes{white-space:nowrap}.usr-acoes .btn{padding:4px 10px;font-size:12px;margin-right:4px}
.senha-box{background:#f7f9fc;border:1px solid #dfe5f1;border-radius:8px;padding:10px 12px;font-size:13px;line-height:1.8;word-break:break-all}
.senha-box b{font-family:ui-monospace,Consolas,monospace}
[hidden]{display:none!important}
