*{box-sizing:border-box}
body{margin:0;font:15px/1.4 system-ui,Segoe UI,sans-serif;background:#f3f5f4;color:#1b2b24}
header{display:flex;align-items:center;gap:16px;padding:10px 16px;background:#14532d;color:#fff;flex-wrap:wrap}
header nav{display:flex;gap:4px;flex:1;flex-wrap:wrap}
header nav a{color:#d9f2e3;text-decoration:none;padding:6px 10px;border-radius:6px}
header nav a.on,header nav a:hover{background:#1f7a45;color:#fff}
button.link{background:none;border:0;color:#fff;text-decoration:underline;cursor:pointer}
main{max-width:1100px;margin:20px auto;padding:0 14px}
main.wide{max-width:none}
.card{background:#fff;border:1px solid #d8e0dc;border-radius:10px;padding:18px;margin-bottom:16px}
h1{font-size:22px;margin:0 0 12px}h2{font-size:17px;margin:16px 0 8px}
label{display:block;font-weight:600;margin:10px 0 4px}
input,select,textarea{font:inherit;padding:9px 10px;border:1px solid #aab8b0;border-radius:6px;width:100%;background:#fff}
button,.btn{font:inherit;padding:10px 16px;border-radius:6px;border:1px solid #14532d;background:#14532d;color:#fff;cursor:pointer}
button.alt{background:#fff;color:#14532d}
button.danger{background:#9b1c1c;border-color:#9b1c1c}
button:disabled{opacity:.5}
.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.row>*{flex:1;min-width:140px}.row>button,.row>.fit{flex:0 0 auto;min-width:0}
.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px}
.tile{padding:18px;text-align:center;font-weight:600;background:#fff;border:2px solid #cfe0d6;color:#14532d}
.tile.sel{border-color:#14532d;background:#e6f4ec}
.err{color:#9b1c1c;margin:8px 0}.ok{color:#14532d}
.steps{display:flex;gap:6px;margin-bottom:12px;font-size:13px;color:#667}
.steps span{padding:3px 10px;border-radius:12px;background:#e4e9e6}.steps .on{background:#14532d;color:#fff}
table{border-collapse:collapse;width:100%}
th,td{padding:5px 8px;border-bottom:1px solid #e2e8e4;text-align:left}
td.n,th.n{text-align:right;font-variant-numeric:tabular-nums}
.lines td{padding:3px}.lines input{padding:7px}
.badge{padding:2px 8px;border-radius:10px;font-size:12px;background:#e4e9e6}
.badge.approved{background:#cdeedb}.badge.submitted{background:#fff0c2}.badge.rejected{background:#f8d4d4}
.scroll{overflow:auto;max-height:78vh;border:1px solid #d8e0dc;background:#fff}
.grid{font-size:12px;width:auto}.grid th{position:sticky;top:0;background:#14532d;color:#fff;z-index:1}
.grid td.nm{position:sticky;left:0;background:#fff;min-width:150px}
.grid tr.sec td{background:#d9f2e3;font-weight:700}
.grid tr.tot td{font-weight:700;background:#f1f5f3}
.grid td.bad{background:#f8d4d4;font-weight:700}.grid td.good{color:#14532d;font-weight:700}
.wk{background:#eef3f0;font-weight:700}
.grid tr.band td,.grid tr.band td.nm{background:#e3e8e5}
@media print{header,.noprint{display:none}*{-webkit-print-color-adjust:exact;print-color-adjust:exact}}
