:root{--green:#0a7a4b;--green-dark:#065c38;--sand:#f6f3ee;--ink:#1a1a1a;--muted:#667;--border:#d9d2c5;--danger:#b42318;--warn:#b54708;--ok:#067647}
*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--sand);color:var(--ink);line-height:1.45}
a{color:var(--green-dark);text-decoration:none}a:hover{text-decoration:underline}
.topbar{background:var(--green);color:#fff;display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;padding:.6rem 1rem;position:sticky;top:0;z-index:20}
.brand{color:#fff;font-weight:700;font-size:1.1rem;margin-right:1rem;text-decoration:none}
.nav{display:flex;flex-wrap:wrap;gap:.35rem .75rem}
.nav a{color:#e8fff3;font-size:.85rem;text-decoration:none;padding:.2rem .35rem;border-radius:4px}
.nav a:hover{background:rgba(255,255,255,.15);text-decoration:none}
.nav-toggle{display:none;background:#fff;color:var(--green);border:0;border-radius:6px;padding:.35rem .6rem;font-size:1.1rem}
.container{max-width:1100px;margin:1rem auto;padding:0 1rem 2rem}
.footer{text-align:center;color:var(--muted);font-size:.8rem;padding:1.5rem}
.card{background:#fff;border:1px solid var(--border);border-radius:10px;padding:1rem 1.1rem;margin-bottom:1rem;box-shadow:0 1px 2px rgba(0,0,0,.04)}
.h1{margin:0 0 1rem;font-size:1.4rem}.h2{margin:0 0 .75rem;font-size:1.15rem}
.grid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}
.stat{background:#fff;border:1px solid var(--border);border-radius:10px;padding:1rem}
.stat .n{font-size:1.5rem;font-weight:700;color:var(--green)}.stat .l{color:var(--muted);font-size:.85rem}
table{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--border);border-radius:8px;overflow:hidden;font-size:.92rem}
th,td{padding:.5rem .6rem;border-bottom:1px solid var(--border);text-align:left;vertical-align:top}
th{background:#eef7f1;font-weight:600}tr:hover td{background:#fafafa}
.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.btn{display:inline-block;background:var(--green);color:#fff!important;border:0;border-radius:6px;padding:.45rem .85rem;font-size:.9rem;cursor:pointer;text-decoration:none!important}
.btn:hover{background:var(--green-dark)}.btn-secondary{background:#555}.btn-danger{background:var(--danger)}.btn-sm{padding:.25rem .55rem;font-size:.8rem}
.toolbar{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem;align-items:center}
label{display:block;font-size:.85rem;color:var(--muted);margin:.4rem 0 .15rem}
input,select,textarea{width:100%;max-width:100%;padding:.45rem .55rem;border:1px solid var(--border);border-radius:6px;font:inherit;background:#fff}
.form-grid{display:grid;gap:.75rem 1rem;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.alert{padding:.65rem .85rem;border-radius:8px;margin-bottom:.75rem}.alert-success,.alert-ok{background:#e8f8ef;color:var(--ok)}
.alert-danger{background:#fdecec;color:var(--danger)}.alert-warning{background:#fff4e5;color:var(--warn)}
.badge{display:inline-block;padding:.1rem .45rem;border-radius:999px;font-size:.75rem;background:#eef7f1}
.badge-demo{background:#fff4e5;color:var(--warn)}.badge-void{background:#fdecec;color:var(--danger)}
.login-wrap{max-width:400px;margin:4rem auto}.login-wrap .card{padding:1.5rem}
.muted{color:var(--muted);font-size:.85rem}
.lines-table input{min-width:70px}
@media(max-width:800px){
  .nav-toggle{display:inline-block;margin-left:auto}
  .nav{display:none;width:100%;flex-direction:column}
  .nav.open{display:flex}
  table{display:block;overflow-x:auto}
}
@media print{
  .topbar,.footer,.toolbar,.no-print{display:none!important}
  body{background:#fff}.container{margin:0;max-width:none}
}
