:root{--green:#145c4a;--green2:#0d4638;--cream:#f5f7f3;--line:#dbe4df;--text:#24322d;--muted:#69766f;--red:#9f3030}
*{box-sizing:border-box}body{margin:0;background:var(--cream);color:var(--text);font:15px/1.45 system-ui,-apple-system,Segoe UI,sans-serif}
.topbar{display:flex;align-items:center;justify-content:space-between;gap:2rem;background:var(--green2);padding:.9rem max(1rem,calc((100vw - 1180px)/2));color:#fff}
.brand{font-size:1.25rem;font-weight:750;color:#fff;text-decoration:none}.topbar nav{display:flex;flex-wrap:wrap;gap:1rem}.topbar nav a{color:#e8f4ef;text-decoration:none}
.container{max-width:1180px;margin:0 auto;padding:2rem 1rem 4rem}h1{font-size:2rem;margin:.2rem 0 .5rem}h2{font-size:1.2rem}.lead{color:var(--muted);margin-top:0}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:1rem;margin:1.5rem 0}.card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:1.25rem;box-shadow:0 6px 22px rgba(31,61,50,.06)}
.kpi{font-size:2rem;font-weight:750;color:var(--green)}.label{color:var(--muted);font-size:.9rem}.actions{display:flex;gap:.75rem;flex-wrap:wrap;margin:1.2rem 0}
.btn{display:inline-block;border:0;border-radius:9px;padding:.72rem 1rem;background:var(--green);color:#fff;text-decoration:none;font-weight:650;cursor:pointer}.btn.secondary{background:#fff;color:var(--green);border:1px solid var(--green)}
label{display:block;font-weight:650;margin:.7rem 0 .3rem}input,select{width:100%;padding:.72rem;border:1px solid #bfcac4;border-radius:8px;background:#fff}.form-row{max-width:560px}
.alert{padding:.85rem 1rem;border-radius:9px;margin:0 0 1rem;background:#e8f4ef;border:1px solid #bad7cc}.alert.error{background:#fff0f0;border-color:#e2bcbc;color:#7b2424}.alert.warning{background:#fff8e7;border-color:#e6d29c}
.table-wrap{overflow:auto;background:#fff;border:1px solid var(--line);border-radius:12px}table{width:100%;border-collapse:collapse;min-width:900px}th,td{padding:.75rem;border-bottom:1px solid #e6ece8;text-align:left;vertical-align:top}th{background:#edf3f0;color:#50615a;font-size:.8rem;text-transform:uppercase;letter-spacing:.03em}td.num{text-align:right;white-space:nowrap}
.credit{color:#14724f;font-weight:700}.debit{color:var(--red);font-weight:700}.badge{display:inline-block;padding:.25rem .5rem;border-radius:999px;background:#eef1ef;color:#52605a;font-size:.78rem}
.login{max-width:420px;margin:8vh auto}.login .card{padding:2rem}footer{text-align:center;color:#7b8781;padding:1rem}
@media(max-width:720px){.topbar{align-items:flex-start;flex-direction:column;gap:.75rem}.container{padding-top:1.2rem}}
