:root{--brand:#1e6b45;--accent:#00b140;--accent-soft:#e6f6ec;--accent-line:#bfe8cf;--copper:#c8742a;--copper-soft:#fbe6d2;--blue:#3d7fd6;--blue-soft:#e1ecfa;--ink:#1f3d2e;--ink-2:#3f6b54;--muted:#6f8f7d;--line:#e3ece6;--paper:#fff;--surface:#f6faf7;--card:#fff;--error:#c0392b;--ok:#00b140;--s1:#1e8a61;--s2:#3d7fd6;--s3:#c8742a;--font:Inter,"Segoe UI","Helvetica Neue",Arial,sans-serif;--display:var(--font);--mono:ui-monospace,Menlo,monospace;--r:10px;--r-sm:6px;--r-pill:999px;--shadow:0 1px 2px #1e6b450f,0 4px 16px #1e6b450f;--s-1:4px;--s-2:8px;--s-3:12px;--s-4:16px;--s-5:20px;--s-6:24px;--s-8:32px;--s-10:40px;--s-12:48px}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--paper);color:var(--ink);font-family:var(--font);margin:0;font-size:15px;line-height:1.55}a{color:inherit;text-decoration:none}button{font:inherit}h1,h2,h3{font-family:var(--font);color:var(--brand);margin:0 0 var(--s-3);letter-spacing:-.01em;font-weight:700;line-height:1.2}h1{font-size:26px}h2{font-size:20px}h3{font-size:16px}p{margin:0 0 var(--s-3)}.muted{color:var(--muted)}.small{font-size:13px}.btn{border-radius:var(--r-pill);border:1px solid var(--accent);background:var(--accent);color:#fff;cursor:pointer;justify-content:center;align-items:center;gap:8px;padding:11px 20px;font-size:14px;font-weight:600;transition:background .15s,transform 50ms;display:inline-flex}.btn:hover{background:#00993a;border-color:#00993a}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.5;cursor:default}.btn.secondary{color:var(--brand);border-color:var(--accent-line);background:#fff}.btn.secondary:hover{background:var(--accent-soft);border-color:var(--accent)}.btn.ghost{border-color:var(--line);color:var(--ink-2);background:0 0}.btn.ghost:hover{background:var(--surface)}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:var(--s-5);box-shadow:var(--shadow)}.field{margin-bottom:var(--s-4);flex-direction:column;gap:6px;display:flex}.field label{color:var(--ink-2);font-size:14px;font-weight:600}.input,select.input,textarea.input{border:1px solid var(--line);border-radius:var(--r-sm);width:100%;font:inherit;color:var(--ink);background:#fff;padding:12px 14px;font-size:16px}.input:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:var(--accent)}.input::placeholder{color:#a3b8ac}.grid{gap:var(--s-4);display:grid}.grid.c2{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.grid.c3{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.grid.c4{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.kpi{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:var(--s-4);box-shadow:var(--shadow)}.kpi b{color:var(--brand);font-size:30px;font-weight:700;line-height:1;display:block}.kpi span{color:var(--muted);margin-top:8px;font-size:13px;display:block}table.tbl{border-collapse:collapse;background:var(--card);border:1px solid var(--line);border-radius:var(--r);width:100%;font-size:14px;overflow:hidden}.tbl th{text-align:left;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--line);background:var(--surface);padding:10px 12px;font-size:12px}.tbl td{border-bottom:1px solid var(--line);vertical-align:top;padding:11px 12px}.tbl tr:last-child td{border-bottom:0}.tbl td.n{text-align:right;font-variant-numeric:tabular-nums}.pill{border-radius:var(--r-pill);background:var(--accent-soft);color:var(--brand);white-space:nowrap;padding:3px 10px;font-size:12px;font-weight:600;display:inline-block}.pill.warn{background:var(--copper-soft);color:var(--copper)}.pill.blue{background:var(--blue-soft);color:var(--blue)}.pill.grey{background:var(--surface);color:var(--muted);border:1px solid var(--line)}.error{color:var(--error);font-size:14px}.progress{background:var(--line);border-radius:999px;height:8px;overflow:hidden}.progress div{background:var(--accent);height:100%;transition:width .3s}.row{gap:var(--s-3);flex-wrap:wrap;align-items:center;display:flex}.between{justify-content:space-between}.tabular{font-variant-numeric:tabular-nums}@media (max-width:700px){h1{font-size:22px}.card{padding:var(--s-4)}}.twoCol{grid-template-columns:minmax(0,1fr) 340px;align-items:start;gap:24px;display:grid}.twoCol>aside{position:sticky;top:20px}@media (max-width:900px){.twoCol{grid-template-columns:1fr}.twoCol>aside{position:static}}
