:root{--bg:#f5f6f4;--card:#fff;--ink:#1d2421;--muted:#66706b;--line:#e2e5e1;--brand:#1f5c4a;--brand2:#2f7d65;--alt:#8a5a14;--ok:#1f7a4d;--okbg:#e5f4ec;--bad:#b3261e;--badbg:#fbe9e7;--wait:#8a5a14;--waitbg:#fdf2dc;--r:10px}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.5 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
a{color:var(--brand)}h1{font-size:1.5rem;margin:.2rem 0 1rem}h2{font-size:1.1rem;margin:1.6rem 0 .6rem}
small,.small{font-size:.82em}.muted{color:var(--muted)}
main{max-width:1180px;margin:0 auto;padding:20px 16px 60px}
.top{background:var(--brand);color:#fff;display:flex;flex-wrap:wrap;align-items:center;gap:6px 20px;padding:10px 16px}
.top a{color:#fff;text-decoration:none}
.brand{font-weight:700;display:flex;align-items:center;gap:8px}.mark{background:#fff;color:var(--brand);border-radius:6px;padding:2px 6px;font-size:.8rem;letter-spacing:.5px}
.top nav{display:flex;gap:2px;flex-wrap:wrap;flex:1}.top nav a{padding:6px 10px;border-radius:6px;opacity:.85}.top nav a.on,.top nav a:hover{background:rgba(255,255,255,.15);opacity:1}
.pill{background:#f5c04a;color:#3a2a00;border-radius:10px;padding:0 7px;font-size:.78rem}
.me{display:flex;align-items:center;gap:12px}.me small{opacity:.7;text-transform:capitalize}.me form{margin:0}
button.link,.link{background:none;border:0;color:inherit;text-decoration:underline;cursor:pointer;font:inherit;padding:0}
main .link{color:var(--brand)}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:18px;margin-bottom:16px}
.narrow{max-width:460px}
.btn{display:inline-block;border:1px solid var(--line);background:#fff;color:var(--ink);padding:9px 14px;border-radius:8px;font:inherit;font-weight:600;text-decoration:none;cursor:pointer;line-height:1.2}
.btn:hover{border-color:#c8ccc7}.btn.primary{background:var(--brand);border-color:var(--brand);color:#fff}.btn.primary:hover{background:var(--brand2)}
.btn.alt{background:var(--alt);border-color:var(--alt)}.btn.danger{background:var(--bad);border-color:var(--bad);color:#fff}.btn.big{padding:12px 28px;font-size:1.05rem}
.actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:14px 0}
.flash{padding:10px 14px;border-radius:8px;margin-bottom:14px;background:var(--okbg);color:var(--ok)}.flash.error{background:var(--badbg);color:var(--bad)}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}
.stat{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:14px 16px;text-decoration:none;color:var(--muted)}
.stat span{display:block;font-size:1.8rem;font-weight:700;color:var(--ink)}
.titlebar{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px}
.filters{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:14px}
input,select,textarea{font:inherit;padding:9px 10px;border:1px solid #cfd4ce;border-radius:8px;background:#fff;color:var(--ink);max-width:100%}
input:focus,select:focus,textarea:focus{outline:2px solid var(--brand2);outline-offset:-1px}
label{display:flex;flex-direction:column;gap:4px;font-weight:600;font-size:.92rem}label.check{flex-direction:row;align-items:center;font-weight:400}
.form{display:flex;flex-direction:column;gap:14px;max-width:720px}.stack{display:flex;flex-direction:column;gap:12px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.seg{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.seg label{border:2px solid var(--line);border-radius:var(--r);padding:10px 12px;cursor:pointer;flex-direction:row;align-items:flex-start;gap:8px;flex-wrap:wrap}
.seg label small{width:100%;font-weight:400;color:var(--muted);margin-left:24px}.seg label.on{border-color:var(--brand);background:#eef6f2}
.tablewrap{overflow-x:auto;background:#fff;border:1px solid var(--line);border-radius:var(--r)}
table{border-collapse:collapse;width:100%}th,td{padding:9px 12px;text-align:left;border-bottom:1px solid var(--line);vertical-align:top}
th{font-size:.8rem;text-transform:uppercase;letter-spacing:.4px;color:var(--muted);background:#fafbf9;white-space:nowrap}
tr:last-child td{border-bottom:0}.num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.narr{max-width:320px}.rowlink{cursor:pointer}.rowlink:hover td{background:#f7faf8}
.debit{color:var(--bad)}.credit{color:var(--ok)}
.tag{display:inline-block;font-size:.76rem;font-weight:700;padding:2px 8px;border-radius:10px;vertical-align:middle;white-space:nowrap}
.tag.ok{background:var(--okbg);color:var(--ok)}.tag.bad{background:var(--badbg);color:var(--bad)}.tag.wait{background:var(--waitbg);color:var(--wait)}
.empty{color:var(--muted);padding:18px;text-align:center}
.sub td{background:#fafbf9;font-weight:600}.strong td{font-weight:700}
.voucher .vhead{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;border-bottom:1px solid var(--line);padding-bottom:12px;margin-bottom:12px}
.voucher .right{text-align:right}.amt{font-size:1.2rem}
.entry{margin:6px 0 14px;border:1px solid var(--line);border-radius:8px}.indent{padding-left:34px}
.signs{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:16px}
.signs div{border-top:2px solid var(--ink);padding-top:6px;display:flex;flex-direction:column}.signs .blank{border-top-style:dashed;color:var(--muted)}
.signs small{color:var(--muted)}
.decide{display:flex;flex-wrap:wrap;gap:14px;align-items:center}.decide form{margin:0}.reject{display:flex;gap:8px;flex:1;min-width:260px}.reject input{flex:1}
.history{list-style:none;padding:0;margin:0}.history li{padding:8px 0;border-bottom:1px solid var(--line)}.history b{text-transform:capitalize}
.accounts .hdr td{background:#f2f4f1;font-weight:700}.off td{opacity:.5}
.grid-acc{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;align-items:end;margin-top:12px}
details.inline{display:inline-block}details.inline[open]{display:block;margin-bottom:6px}form.inline{display:inline;margin-left:10px}
.pop{background:#fafbf9;border:1px solid var(--line);border-radius:8px;padding:10px;min-width:280px}.row{display:flex;gap:8px}
.nowrap{white-space:nowrap}summary{cursor:pointer}
.login{min-height:100vh;display:grid;place-items:center;padding:16px;margin:-20px -16px -60px}.login .card{width:100%;max-width:380px}
.brand.big{font-size:1.3rem;color:var(--brand)}.brand.big .mark{background:var(--brand);color:#fff}
@media (max-width:640px){.stats{grid-template-columns:repeat(3,1fr);gap:8px}.stat{padding:10px;font-size:.8rem}.stat span{font-size:1.4rem}.top{gap:6px 12px}.top nav{order:3;width:100%;flex:none;overflow-x:auto;flex-wrap:nowrap}.top nav a{white-space:nowrap}.me{order:2;width:auto;margin-left:auto}.voucher .right{text-align:left}.grid2,.seg{grid-template-columns:1fr}.signs{grid-template-columns:1fr}h1{font-size:1.3rem}.narr{min-width:160px}}
@media print{.top,.noprint,.decide,.titlebar .btn,.flash{display:none!important}body{background:#fff}.card{border:0;padding:0}main{padding:0}}
.files-field{display:flex;flex-direction:column;gap:8px}.files-field .lbl{font-weight:600;font-size:.92rem}
.thumbs{display:grid;grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:10px}.thumbs:empty{display:none}
.thumb{display:flex;flex-direction:column;gap:4px;border:1px solid var(--line);border-radius:8px;padding:6px;background:#fafbf9;text-decoration:none;color:var(--ink);font-weight:400;position:relative}
.thumb img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:5px;background:#eee}
.thumb .pdf{width:100%;aspect-ratio:1;display:grid;place-items:center;background:#fbe9e7;color:var(--bad);font-weight:700;border-radius:5px}
.thumb .name{font-size:.72rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.thumb .rm{font-size:.78rem;display:flex;align-items:center;gap:4px;color:var(--bad)}
.thumb.removing{opacity:.45}
.thumb .x{position:absolute;top:2px;right:2px;background:#fff;border:1px solid var(--line);border-radius:50%;width:24px;height:24px;line-height:20px;text-align:center;cursor:pointer;font-weight:700;color:var(--bad)}
.addfiles{align-self:flex-start;cursor:pointer}.addfiles.disabled{opacity:.5;pointer-events:none}
@media print{.gallery{grid-template-columns:repeat(5,1fr)}}

/* ---------- paper-slip look (matches Irmao's printed vouchers) ---------- */
.slip-tabs{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px}
.slip-tabs a{border:2px solid var(--line);border-radius:var(--r);padding:10px 14px;text-decoration:none;color:var(--ink);font-weight:700;background:#fff}
.slip-tabs a small{display:block;font-weight:400;color:var(--muted)}
.slip-tabs a.debit.on{border-color:#3aa7c4;background:var(--debit-bg)}.slip-tabs a.credit.on{border-color:#e0679a;background:var(--credit-bg)}
:root{--debit-bg:#e3f5fa;--debit-ink:#0f6f8a;--credit-bg:#fde8f0;--credit-ink:#a8336a;--slipline:#2b2b2b}
.slip{border-radius:6px;padding:22px 24px 26px;margin-bottom:16px;color:#1a1a1a;font-family:"Times New Roman",Georgia,serif;border:1px solid rgba(0,0,0,.12);box-shadow:0 1px 3px rgba(0,0,0,.06)}
.slip.debit{background:var(--debit-bg)}.slip.credit{background:var(--credit-bg)}
.slip input,.slip select,.slip textarea{font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;background:rgba(255,255,255,.85);border-color:rgba(0,0,0,.18);width:100%}
.slip-head{display:grid;grid-template-columns:auto 1fr auto;gap:18px;align-items:start;margin-bottom:16px}
.wordmark{font-family:system-ui,sans-serif;font-weight:800;font-size:2rem;letter-spacing:6px;line-height:1}
.wordmark span{display:block;font-size:.72rem;letter-spacing:7.5px;font-weight:600;margin-top:4px}
.contact{font-family:system-ui,sans-serif;font-size:.78rem;line-height:1.45;padding-top:2px}
.contact .ic{display:inline-block;width:16px;height:16px;border-radius:50%;background:#1a1a1a;color:#fff;font-size:.6rem;text-align:center;line-height:16px;margin-right:6px}
.contact .cont{padding-left:22px}
.meta{text-align:right;display:flex;flex-direction:column;align-items:flex-end;gap:8px}
.badge{background:#1a1a1a;color:#fff;border-radius:7px;padding:4px 10px;font-weight:800;font-size:1.05rem;line-height:1;text-align:center;letter-spacing:.5px}
.badge span{display:block;font-size:.72rem;letter-spacing:1px}
.vno{font-size:1.05rem}.vno b{font-family:system-ui,sans-serif}
.vdate{display:flex;align-items:center;gap:6px;font-size:1.05rem}.vdate input{width:auto}
.slip-grid{border:1.5px solid var(--slipline);background:transparent}
.slip-grid .row{display:grid;grid-template-columns:170px 1fr 170px;border-bottom:1px solid var(--slipline);min-height:44px}
.slip-grid .row:last-child{border-bottom:0}
.slip-grid .lab{padding:10px 10px;font-size:1rem;font-weight:400;display:flex;align-items:flex-start;white-space:nowrap}
.slip-grid .val{padding:6px 10px 6px 0;display:flex;flex-direction:column;gap:6px;min-width:0}
.slip-grid .amt{border-left:1.5px solid var(--slipline);padding:6px 10px;display:flex;flex-direction:column;justify-content:center}
.slip-grid .amt input{text-align:right;font-weight:700;font-size:1.05rem}
.slip-grid .row.hdr{min-height:0}.slip-grid .row.hdr .amt{font-weight:700;text-align:center;align-items:center;padding:8px}
.slip-grid .row.total .amt{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:8px;font-weight:700;padding:0}
.slip-grid .row.total .amt .t{border-right:1.5px solid var(--slipline);padding:12px 10px;height:100%}
.slip-grid .row.total .amt span:last-child{text-align:right;padding-right:10px;font-family:system-ui,sans-serif}
.slip-grid .row.total{grid-template-columns:170px 1fr 230px}
.words{font-style:italic;font-size:1.05rem;justify-content:center}
.view .val{justify-content:center;font-family:system-ui,sans-serif;font-size:.95rem}.view .amt.num{font-family:system-ui,sans-serif;font-weight:700;text-align:right;font-size:1.05rem}
.view .val.pre{white-space:pre-wrap}.view .words{font-family:"Times New Roman",serif}
.modes{display:flex;flex-wrap:wrap;gap:6px}
.modes label{flex-direction:row;align-items:center;gap:6px;border:1px solid rgba(0,0,0,.2);background:rgba(255,255,255,.7);border-radius:20px;padding:5px 12px;font-family:system-ui,sans-serif;font-weight:600;font-size:.88rem;cursor:pointer}
.modes label.on{background:#1a1a1a;color:#fff;border-color:#1a1a1a}.modes input{width:auto;margin:0}
.slip .sub{display:grid;grid-template-columns:1fr 1.4fr;gap:8px}.slip .sub label,.bankrow label{font-family:system-ui,sans-serif;font-size:.8rem;font-weight:600}
.bankrow{flex-direction:row!important;gap:10px!important;align-items:center;flex-wrap:wrap}
.bankrow>input{flex:2;min-width:140px}.bankrow label{flex:1.3;flex-direction:row;align-items:center;gap:6px;min-width:150px}
.view .bankrow span{flex:1}
.slip-signs{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin-top:40px;font-size:1rem}
.slip-signs>div{display:flex;flex-direction:column;align-items:center;text-align:center}
.slip-signs .line{width:100%;border-bottom:1.5px solid var(--slipline);min-height:30px;padding-bottom:4px;margin-bottom:4px;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;font-family:system-ui,sans-serif;font-size:.85rem;font-weight:600}
.slip-signs .line small{display:block;font-weight:400;color:var(--muted);font-size:.72rem}.slip-signs .ap{display:block}
.slip-signs>div:last-child{align-items:center}
.m-only{display:none}
.slip.debit .badge{background:#0e3d4a}.slip.credit .badge{background:#3d0e24}
@media (max-width:760px){
  .slip{padding:16px 14px 20px}
  .slip-head{grid-template-columns:1fr auto;gap:10px}.badge{font-size:.85rem;padding:4px 8px}.vno,.vdate{font-size:.9rem}.vdate input{width:150px;padding:6px}.contact{grid-column:1/-1;grid-row:2;display:flex;flex-wrap:wrap;gap:2px 14px}.contact .cont{padding-left:0}
  .wordmark{font-size:1.5rem;letter-spacing:4px}.wordmark span{letter-spacing:5px;font-size:.62rem}
  .slip-grid .row,.slip-grid .row.total{grid-template-columns:1fr}
  .slip-grid .row.hdr{display:none}
  .slip-grid .lab{padding:8px 10px 0;font-weight:700;font-size:.92rem}
  .slip-grid .val{padding:4px 10px 10px}
  .slip-grid .amt{border-left:0;padding:0 10px 10px}.slip-grid .amt:empty{display:none}
  .m-only{display:block;font-family:system-ui,sans-serif;font-size:.8rem;font-weight:700;margin-bottom:4px}
  .slip-grid .row.total .amt{border-top:1px solid var(--slipline);padding:0}
  .slip .sub{grid-template-columns:1fr}
  .slip-signs{gap:12px;margin-top:28px;font-size:.85rem}
  .view .amt.num{text-align:left;padding-top:0}
}
@media print{.slip{box-shadow:none;border:1px solid #999;-webkit-print-color-adjust:exact;print-color-adjust:exact}.slip-tabs,.files-field{display:none}}
/* ledger book look */
.book{background:#e8f6fa;border:1px solid #b9dde8;border-radius:var(--r);padding:16px}
.book-title{text-align:center;margin-bottom:10px}.book-title span{display:inline-block;border:1.5px solid #1d3b6e;border-radius:8px;padding:4px 18px;color:#1d3b6e;font-family:"Times New Roman",serif;font-weight:700;font-size:1.3rem;background:#fff}
.book-acc{margin-bottom:10px;font-size:1.02rem}.pillbox{border:1.5px solid #1d3b6e;border-radius:14px;padding:1px 10px;color:#1d3b6e;font-family:"Times New Roman",serif;margin-right:6px;background:#fff}
.bookt th{background:#fff;color:#1d3b6e;font-family:"Times New Roman",serif;text-transform:none;font-size:.92rem;letter-spacing:0;border-right:1px solid #c9e3ec}
.bookt th small{display:block;font-weight:400;font-size:.72rem;color:var(--muted)}
.bookt td{border-right:1px solid #e1eff4}.bookt td.c,.bookt th.c{text-align:center}
.bookt tr.monthtot td{color:#b3261e;font-weight:700;background:#fff7f6}.bookt tr.bf td{background:#f7fbfc}
.book .tablewrap{border-color:#b9dde8}
