:root{--bg:#f4f1e8;--card:#fff;--ink:#1b1b18;--mut:#5c5a50;--line:#d6d1c0;--green:#1f4d2b;--green2:#2e6b3f;--red:#b3261e;--warn:#9a5b00;--sel:#e7f0e1}
*{box-sizing:border-box}
html{font-size:20px}
body{margin:0;background:var(--bg);color:var(--ink);font-family:system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;line-height:1.35}
a{color:var(--green2)}
.pad{padding:1rem}.muted{color:var(--mut)}.sub{color:var(--mut);font-size:.8rem}.neg{color:var(--red)}.nw{white-space:nowrap}.err{color:var(--red);font-weight:600;min-height:1.2em}
.top{position:sticky;top:0;z-index:5;display:flex;flex-wrap:wrap;align-items:center;gap:.4rem .8rem;background:var(--green);color:#fff;padding:.5rem .8rem;padding-top:calc(.5rem + env(safe-area-inset-top))}
.brand{color:#fff;font-weight:700;text-decoration:none;font-size:1.1rem}
#tabs{display:flex;gap:.3rem;flex:1;flex-wrap:wrap}
#tabs a{color:#fff;text-decoration:none;padding:.35rem .7rem;border-radius:.5rem}
#tabs a.on{background:#fff;color:var(--green);font-weight:700}
.chip{border:0;border-radius:2rem;padding:.3rem .8rem;font:inherit;font-size:.75rem;cursor:pointer;background:#fff;color:var(--ink)}
.chip.ok{background:#d8f0d2}.chip.warn{background:#ffe3a8}.chip.bad{background:#ffc9c4}.chip.off{background:#e3e3e3}.chip.busy{background:#cfe3ff}
main{max-width:1100px;margin:0 auto;padding:.8rem}
h1{font-size:1.5rem;margin:.1rem 0 .5rem}h2{font-size:1.15rem;margin:.1rem 0 .5rem}h3{font-size:1rem;margin:.8rem 0 .3rem}
.card{background:var(--card);border:1px solid var(--line);border-radius:.8rem;padding:.9rem 1rem;margin-bottom:.8rem}
.big-label{display:block;font-weight:700;font-size:1.2rem;margin:.3rem 0}
.in,.big-input,select,textarea{font:inherit;width:100%;padding:.6rem .7rem;border:2px solid #9d9885;border-radius:.5rem;background:#fff;color:var(--ink)}
.in:focus,.big-input:focus,select:focus,textarea:focus,.btn:focus-visible,tr[tabindex]:focus,a.row:focus{outline:3px solid #2b7cd3;outline-offset:1px}
.big-input{font-size:1.4rem;padding:.8rem 1rem}.in.short{max-width:12rem}
.amt{text-align:right}
a.row{display:flex;justify-content:space-between;gap:1rem;align-items:center;background:var(--card);border:1px solid var(--line);border-radius:.6rem;padding:.6rem .9rem;margin:.4rem 0;color:inherit;text-decoration:none}
a.row:hover{background:var(--sel)}
.r-side{text-align:right;white-space:nowrap}.note{color:var(--warn);font-size:.8rem}
.head{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap}
.head h1{margin:0}.saldo{font-size:1.8rem;font-weight:700}.head-r{text-align:right}
.bem{margin-top:.5rem;background:#fff8dc;padding:.4rem .6rem;border-radius:.4rem;font-size:.9rem}
.row-btns{display:flex;flex-wrap:wrap;gap:.6rem;margin:.6rem 0}
.btn{font:inherit;display:inline-block;padding:.6rem 1.1rem;border:2px solid var(--green);border-radius:.6rem;background:#fff;color:var(--green);text-decoration:none;cursor:pointer;font-weight:600}
.btn.primary{background:var(--green);color:#fff}.btn.danger{border-color:var(--red);color:var(--red)}.btn.danger:hover{background:var(--red);color:#fff}
.btn[disabled]{opacity:.4;cursor:default}
.linkbtn{font:inherit;font-size:.85rem;background:none;border:0;color:var(--green2);text-decoration:underline;cursor:pointer;padding:.2rem .4rem}
.chipbtn{font:inherit;font-size:.85rem;border:2px solid var(--line);background:#fff;border-radius:2rem;padding:.25rem .8rem;cursor:pointer;margin:.15rem}
.chipbtn.on{background:var(--green);color:#fff;border-color:var(--green)}
.tools{display:flex;flex-wrap:wrap;align-items:center;gap:.2rem .4rem;margin-bottom:.4rem}.tools .gap{margin-left:.8rem}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(11rem,1fr));gap:.6rem}
.grid label,.editform>label,.login label,.stmt label{display:block;font-size:.8rem;font-weight:600;color:var(--mut)}
.grid .wide{grid-column:span 2}.grid .in{margin-top:.15rem}
.chk{display:flex!important;align-items:center;gap:.5rem;font-size:.95rem!important;color:var(--ink)!important;margin:.3rem 0}.chk input{width:1.3rem;height:1.3rem}
.checks{display:flex;flex-wrap:wrap;gap:.2rem 1.2rem}
.prev{margin:.5rem 0;padding:.4rem .6rem;background:var(--sel);border-radius:.4rem;font-size:.95rem;min-height:2rem}
.scroll{overflow-x:auto}
table.bk{width:100%;border-collapse:collapse;font-size:.85rem;font-variant-numeric:tabular-nums}
table.bk th{text-align:left;border-bottom:2px solid var(--ink);padding:.3rem .4rem;font-size:.75rem;color:var(--mut)}
table.bk td{border-bottom:1px solid var(--line);padding:.35rem .4rem;vertical-align:top}
table.bk .num{text-align:right;white-space:nowrap}table.bk td.txt{min-width:9rem}
table.bk tbody tr[tabindex]{cursor:pointer}table.bk tbody tr[tabindex]:hover{background:var(--sel)}
tr.closed td{color:#8b8878}tr.editing td{background:#fff3c4}
.foot{margin-top:.5rem;font-size:.9rem}
.toast{position:fixed;left:50%;bottom:1.2rem;transform:translate(-50%,200%);background:#222;color:#fff;padding:.7rem 1.2rem;border-radius:.6rem;transition:transform .2s;z-index:20;max-width:92vw}
.toast.show{transform:translate(-50%,0)}.toast .linkbtn{color:#9fd1ff;font-size:1rem}
.modal{position:fixed;inset:0;background:rgba(0,0,0,.45);display:none;align-items:center;justify-content:center;z-index:30;padding:1rem}
.modal.show{display:flex}.dlg{background:#fff;border-radius:.8rem;padding:1.2rem;max-width:30rem;width:100%}
.bar{height:.8rem;background:#ddd;border-radius:1rem;overflow:hidden}.bar>div{height:100%;width:5%;background:var(--green2);transition:width .3s}
.login{max-width:30rem;margin:2rem auto}.login label{margin:.5rem 0}
.sheet{background:#fff;border:1px solid var(--line);padding:1.5rem;font-size:.95rem}
.sheet-top{display:flex;justify-content:space-between;gap:2rem;margin-bottom:2rem}.sheet .recipient{min-width:14rem;margin-top:.5rem}
.sheet .total{text-align:right;font-size:1.05rem}
@media (max-width:640px){html{font-size:18px}.grid .wide{grid-column:span 1}.sheet-top{flex-direction:column}}
@media print{
  html{font-size:11pt}body{background:#fff}.noprint,.top,.toast,.modal{display:none!important}
  main{max-width:none;padding:0}.card{border:0;padding:0}.sheet{border:0;padding:0}
  table.bk{font-size:10pt}table.bk tr{page-break-inside:avoid}thead{display:table-header-group}
  tr.closed td{color:#555}
  @page{size:A4;margin:18mm 15mm}
}
