:root{--oliva:#3d411f;--tinta:#26281a;--suave:#6b6d55;--linha:#ddd8c4;--fundo:#f2efe4;--cartao:#fff;--bt:#fff;--side:#3d411f;--sidet:#e9e6d0;--ok:#2f6b3a;--okbg:#e3efdc;--pen:#7a5b12;--penbg:#f3e8c6;--atr:#8a2f26;--atrbg:#f5ddd8}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--oliva:#d9d6b8;--tinta:#ece9d6;--suave:#a9ab92;--linha:#3a3d24;--fundo:#1c1e10;--cartao:#262914;--bt:#1c1e10;--side:#14160a;--sidet:#d9d6b8;--ok:#a8d5a2;--okbg:#2c3d28;--pen:#e6cf8a;--penbg:#3d3519;--atr:#f0b3a9;--atrbg:#47231e;color-scheme:dark}}
:root[data-theme="dark"]{--oliva:#d9d6b8;--tinta:#ece9d6;--suave:#a9ab92;--linha:#3a3d24;--fundo:#1c1e10;--cartao:#262914;--bt:#1c1e10;--side:#14160a;--sidet:#d9d6b8;--ok:#a8d5a2;--okbg:#2c3d28;--pen:#e6cf8a;--penbg:#3d3519;--atr:#f0b3a9;--atrbg:#47231e;color-scheme:dark}
*{box-sizing:border-box;margin:0}
body{background:var(--fundo);color:var(--tinta);font:15px/1.5 "Plus Jakarta Sans",system-ui,sans-serif;padding-block:20px;padding-inline:16px}
.app{max-width:1000px;margin:0 auto;display:grid;grid-template-columns:210px minmax(0,1fr);gap:20px;align-items:start}
.side{background:var(--side);color:var(--sidet);border-radius:16px;padding:16px 12px;display:grid;gap:16px;position:sticky;top:12px}
.logo{width:100%;max-width:170px;height:auto;margin-inline:auto}
.me{display:flex;gap:10px;align-items:center;min-width:0}
.me b{display:block;font-size:.92rem;line-height:1.2;overflow-wrap:anywhere}
.me small{opacity:.75;font-size:.74rem}
.av{width:44px;height:44px;border-radius:50%;flex:none;background:#6b6d55 center/cover no-repeat;display:grid;place-items:center;font-weight:700;color:#f2efe4;font-size:.95rem}
.av.g{width:84px;height:84px;font-size:1.6rem}
nav{display:grid;gap:2px}
nav button{font:inherit;font-size:14px;font-weight:600;text-align:left;padding:9px 12px;border-radius:10px;border:0;background:transparent;color:var(--sidet);opacity:.8;cursor:pointer}
nav button[aria-selected="true"]{background:rgba(255,255,255,.14);opacity:1}
.rod{font-size:11px;opacity:.6}
main{display:grid;gap:16px;min-width:0}
main>section{display:grid;gap:14px;min-width:0}
main>section[hidden]{display:none}
h1{font:400 26px/1.15 "DM Serif Display",Georgia,serif;color:var(--oliva);text-wrap:balance}
h2{font:400 18px/1.2 "DM Serif Display",Georgia,serif;color:var(--oliva)}
.sub{color:var(--suave);font-size:13px}
.aviso{font-size:12px;color:var(--suave);border:1px dashed var(--linha);border-radius:10px;padding:8px 12px}
.cab{display:flex;gap:14px;align-items:center}
.cartao{border:1px solid var(--linha);border-radius:12px;background:var(--cartao);padding:14px;display:grid;gap:10px;min-width:0}
.resumo{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px}
.dl{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:10px;align-items:center;padding:8px 0;border-bottom:1px solid var(--linha);font-size:14px}
.dl .bt{padding:4px 10px;font-size:12px}
select{font:inherit;font-size:14px;color:var(--tinta);background:var(--fundo);border:1px solid var(--linha);border-radius:8px;padding:8px 10px;width:100%}
.resumo div,.pv div{min-width:0}
.resumo>div{border:1px solid var(--linha);border-radius:12px;background:var(--cartao);padding:10px 12px}
small.k{display:block;color:var(--suave);font-size:11px;letter-spacing:.04em;text-transform:uppercase}
.resumo b,.pv b{font-size:1.1rem;font-variant-numeric:tabular-nums}
.pv{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.barra{height:12px;border-radius:99px;background:var(--linha);overflow:hidden}
.barra i{display:block;height:100%;background:var(--oliva);border-radius:99px}
.lista{display:grid;gap:8px}
.lin{border:1px solid var(--linha);border-radius:12px;background:var(--cartao);overflow:hidden}
.topo{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;padding:12px 14px;width:100%;text-align:left;font:inherit;color:inherit;background:none;border:0;cursor:pointer}
.nome{font-weight:700}
.meta{color:var(--suave);font-size:12.5px;font-variant-numeric:tabular-nums}
.chip{font-size:11.5px;font-weight:700;padding:3px 10px;border-radius:999px;white-space:nowrap}
.chip.pago,.chip.conf{background:var(--okbg);color:var(--ok)}.chip.pen,.chip.aguarda{background:var(--penbg);color:var(--pen)}.chip.atr{background:var(--atrbg);color:var(--atr)}
.det{display:grid;gap:10px;padding:12px 14px 14px;border-top:1px solid var(--linha)}
.det[hidden]{display:none}
label.cp{display:grid;gap:4px;font-size:12px;color:var(--suave)}
input[type=text],input[type=number],input[type=date],input[type=time],textarea{font:inherit;font-size:14px;color:var(--tinta);background:var(--fundo);border:1px solid var(--linha);border-radius:8px;padding:8px 10px;width:100%}
textarea{min-height:104px;resize:vertical;line-height:1.45}
.acoes{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.bt{font:inherit;font-size:13px;font-weight:700;padding:8px 14px;border-radius:10px;border:1px solid var(--oliva);background:var(--oliva);color:var(--bt);cursor:pointer;text-decoration:none}
.bt.v{background:transparent;color:var(--oliva)}
.nf{display:flex;gap:6px;align-items:center;font-size:13px;color:var(--suave)}
.dia{font:400 17px/1.2 "DM Serif Display",Georgia,serif;color:var(--oliva);margin-top:6px}
.gc{font-size:12px;color:var(--suave);text-decoration:underline}
.nota{font-size:12.5px;color:var(--suave)}
.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
svg{display:block;width:100%;height:auto;max-width:100%}
svg text{font-family:"Plus Jakarta Sans",system-ui,sans-serif;font-size:10px;fill:var(--suave)}
svg .vl{fill:var(--tinta)}
.leg{display:flex;flex-wrap:wrap;gap:12px;font-size:12px;color:var(--suave)}
.leg i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:5px;vertical-align:-1px}
@media(max-width:760px){
 .app{grid-template-columns:minmax(0,1fr)}
 .side{position:static;grid-template-columns:minmax(0,1fr);gap:10px}
 nav{display:flex;overflow-x:auto;gap:4px}
 nav button{white-space:nowrap}
 .rod{display:none}
 .grid2{grid-template-columns:minmax(0,1fr)}
}

/* ---- app real ---- */
[hidden]{display:none!important}
body.fora .app{display:none}
#auth{max-width:440px;margin:6vh auto 0}
.acard{background:var(--side);color:var(--sidet);border-radius:16px;padding:24px 20px;display:grid;gap:14px}
.acard h1{color:var(--sidet);font-size:24px}
.acard .sub{color:var(--sidet);opacity:.75}
.acard form{display:grid;gap:12px}
.acard label.cp{color:var(--sidet);opacity:.9}
.acard input{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.22);color:var(--sidet)}
.acard .bt{background:var(--sidet);color:var(--side);border-color:var(--sidet)}
.acard .bt.v{background:transparent;color:var(--sidet)}
.acard a.lk,.acard button.lk{font:inherit;font-size:13px;color:var(--sidet);background:none;border:0;text-decoration:underline;cursor:pointer;padding:0;text-align:left}
.acard .erro{color:#f5c2b8;font-size:13px;min-height:1.2em}
.acard .ok{color:#cfe8c8;font-size:13px}
.cod{font:700 19px/1.4 ui-monospace,Menlo,Consolas,monospace;letter-spacing:.08em;padding:14px;border:1px dashed currentColor;border-radius:10px;text-align:center;overflow-wrap:anywhere;user-select:all}
input[type=password],input[type=email]{font:inherit;font-size:14px;color:var(--tinta);background:var(--fundo);border:1px solid var(--linha);border-radius:8px;padding:8px 10px;width:100%}
.acard input[type=password],.acard input[type=email]{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.22);color:var(--sidet)}
.banner{border-radius:10px;padding:10px 14px;font-size:13.5px;background:var(--penbg);color:var(--pen)}
.banner.atr{background:var(--atrbg);color:var(--atr)}
.estado{font-size:11.5px;opacity:.7}
.toast{position:fixed;left:50%;bottom:20px;transform:translateX(-50%);background:var(--oliva);color:var(--bt);padding:10px 16px;border-radius:10px;font-size:13px;z-index:9;max-width:92vw;text-align:center}
.step{display:flex;gap:8px;align-items:center;font-size:13px;color:var(--suave)}
.step b{min-width:1.6em;text-align:center;color:var(--tinta)}
.step .bt{padding:3px 11px}
.grp{display:flex;flex-wrap:wrap;gap:6px}
.bt.pe{border-color:var(--atr);color:var(--atr)}
.vazio{border:1px dashed var(--linha);border-radius:12px;padding:18px;text-align:center;color:var(--suave);font-size:14px}
input:focus-visible,select:focus-visible,textarea:focus-visible,button:focus-visible,a:focus-visible{outline:2px solid var(--pen);outline-offset:2px}

.dl.ex{grid-template-columns:auto minmax(0,1fr) auto auto;gap:8px}
.dl.ex .nf{display:flex;margin-top:2px;font-size:12px}
b.ent{color:var(--ok)}b.sai{color:var(--atr)}
