:root{--green:#153b32;--green2:#245849;--mint:#e8f3ee;--bg:#f4f7f6;--ink:#18231f;--muted:#718079;--line:#e2eae6;--white:#fff;--red:#b83c38;--amber:#a56b13;--shadow:0 8px 28px rgba(24,55,44,.06)}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.5 Inter,system-ui,-apple-system,"Segoe UI",sans-serif}.topbar{height:auto;min-height:72px;background:var(--green);color:white;display:flex;align-items:center;padding:10px clamp(14px,3vw,42px);gap:24px;position:sticky;top:0;z-index:10;box-shadow:0 3px 16px #102d2530}.brand{display:flex;align-items:center;gap:10px;color:white;text-decoration:none;font-weight:750;font-size:17px;white-space:nowrap}.brand small{display:block;font-size:10px;letter-spacing:1.5px;color:#b8d9cc;text-transform:uppercase}.logo{font-size:27px}.nav{display:flex;align-items:center;gap:4px;flex:1;flex-wrap:wrap}.nav a{color:#d5e5dd;text-decoration:none;padding:9px 11px;border-radius:9px;font-size:13px}.nav a:hover,.nav a.active{background:#ffffff1b;color:#fff}.userbox{display:flex;align-items:center;gap:13px;white-space:nowrap;font-size:13px}.userbox small{display:block;color:#b8d9cc;font-size:10px}.logout{color:#fff;text-decoration:none;border:1px solid #ffffff55;padding:7px 10px;border-radius:8px}.menu-btn{display:none;background:transparent;border:0;color:#fff;font-size:24px}.main{max-width:1440px;margin:0 auto;padding:28px clamp(14px,3vw,42px) 60px}.page-heading{display:flex;justify-content:space-between;align-items:end;margin-bottom:22px}.page-heading h1{margin:0;font-size:clamp(24px,3vw,32px);letter-spacing:-.7px}.page-heading p{margin:5px 0 0;color:var(--muted)}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:20px}.metric{background:var(--white);border:1px solid var(--line);border-radius:15px;padding:18px;box-shadow:var(--shadow);min-height:116px}.metric span{display:block;color:var(--muted);font-size:12px;font-weight:650}.metric strong{display:block;font-size:clamp(20px,2vw,27px);margin:9px 0 4px;letter-spacing:-.6px}.metric small{color:var(--muted);font-size:11px}.metric.positive strong{color:#16845d}.metric.negative strong,.metric.warning strong{color:var(--red)}.two-col{display:grid;grid-template-columns:.85fr 1.5fr;gap:18px}.panel{background:#fff;border:1px solid var(--line);border-radius:16px;padding:20px;margin-bottom:18px;box-shadow:var(--shadow)}.panel h2{margin:0 0 16px;font-size:17px}.quick-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:9px}.quick-grid a{display:block;text-decoration:none;color:var(--green);background:var(--mint);padding:14px;border-radius:10px;font-weight:650;font-size:13px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.field{display:flex;flex-direction:column;gap:6px;font-size:12px;color:#52645b;font-weight:650}.field input,.field select,.filter input{width:100%;border:1px solid #d7e1db;background:#fff;padding:11px 12px;border-radius:9px;font:inherit;color:var(--ink);outline:none;min-height:43px}.field input:focus,.field select:focus,.filter input:focus{border-color:#3b8068;box-shadow:0 0 0 3px #3b80681c}.form-actions{grid-column:1/-1}.btn{display:inline-flex;justify-content:center;align-items:center;text-decoration:none;border:1px solid var(--line);background:#fff;color:var(--ink);padding:10px 16px;border-radius:9px;font-weight:700;font-size:13px;cursor:pointer}.btn.primary{background:var(--green);border-color:var(--green);color:#fff}.btn.full{width:100%;margin-top:16px}.table-wrap{overflow:auto;background:#fff;border:1px solid var(--line);border-radius:13px;margin:14px 0 22px}table{border-collapse:collapse;width:100%;min-width:650px;font-size:13px}th,td{text-align:left;padding:12px 14px;border-bottom:1px solid #edf1ee;white-space:nowrap}th{background:#f7faf8;color:#607068;font-size:11px;text-transform:uppercase;letter-spacing:.5px}tbody tr:last-child td{border-bottom:0}.empty{text-align:center;color:var(--muted);padding:24px}.auth-card{width:min(420px,calc(100% - 28px));margin:8vh auto;background:#fff;border:1px solid var(--line);border-radius:20px;padding:30px;box-shadow:var(--shadow)}.auth-card h1{margin:5px 0;font-size:26px}.auth-card p{color:var(--muted);margin:5px 0 20px}.auth-card form{display:grid;gap:9px}.auth-card label{font-size:12px;color:#52645b;font-weight:650}.auth-card input{padding:12px;border:1px solid #d7e1db;border-radius:9px;font:inherit}.brand-mark{font-size:35px}.muted{color:var(--muted)}.small{font-size:12px}.alert,.success,.toast{padding:11px 14px;border-radius:9px;margin:10px 0;font-size:13px}.alert,.toast.error{background:#fff0ef;color:#9b302c}.success,.toast.success{background:#e8f6ef;color:#176b4d}.toast{position:fixed;top:84px;right:18px;z-index:20;box-shadow:var(--shadow)}.filter{display:flex;align-items:end;gap:12px;flex-wrap:wrap}.filter label{display:grid;gap:5px;font-size:12px;color:var(--muted)}.filter input{min-width:160px}.empty-state{color:var(--muted)}
@media(max-width:1100px){.topbar{gap:12px}.nav a{padding:8px;font-size:12px}.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.userbox{font-size:11px}}
@media(max-width:760px){.topbar{min-height:62px;flex-wrap:wrap;padding:9px 14px}.menu-btn{display:block;margin-left:auto;order:2}.userbox{order:3;margin-left:auto}.nav{display:none;order:4;flex-basis:100%;padding:8px 0 3px}.nav-open .nav{display:grid;grid-template-columns:repeat(3,1fr)}.nav a{text-align:center;background:#ffffff0d}.brand{font-size:15px}.main{padding-top:20px}.page-heading h1{font-size:24px}.metrics{gap:9px}.metric{padding:13px;min-height:100px}.metric strong{font-size:20px}.two-col{grid-template-columns:1fr}.panel{padding:15px}.form-grid{grid-template-columns:1fr}.form-actions{grid-column:auto}.quick-grid{grid-template-columns:repeat(2,1fr)}}
@media print{.topbar,.form-actions,.filter,.btn,.toast{display:none!important}body{background:#fff}.main{max-width:none;padding:0}.panel,.metric{box-shadow:none;break-inside:avoid}.metrics{grid-template-columns:repeat(3,1fr)}table{min-width:0;font-size:10px}th,td{padding:6px}}

/* ---- v0.2 additions ---- */
.is-hidden{display:none!important}
.full{grid-column:1/-1}
.calc-box{background:var(--mint);color:var(--green);border-radius:10px;padding:12px 14px;font-weight:650;font-size:13px}
.banner{padding:12px 16px;border-radius:12px;margin-bottom:16px;font-weight:650;font-size:13px}
.banner.warn{background:#fff6e5;color:var(--amber);border:1px solid #f2dcae}
form.inline{display:inline-flex;gap:6px;align-items:center;margin:0}
form.inline input[type=password]{border:1px solid #d7e1db;border-radius:8px;padding:7px 9px;font:inherit;font-size:12px;width:140px}
.btn.small{padding:6px 10px;font-size:12px}
.btn.danger{color:var(--red);border-color:#f0c9c7}
.btn.danger:hover{background:#fff0ef}
.btn:disabled{opacity:.55;cursor:wait}
.filter .btn.small{align-self:end;min-height:43px}
.who{color:#fff;text-decoration:none}
.wrap{white-space:normal;display:inline-block;max-width:420px;word-break:break-word}
.btn:focus-visible,a:focus-visible,button:focus-visible{outline:3px solid #3b8068;outline-offset:2px}
.field input,.field select{font-size:16px} /* stops iOS/Android zoom-in on focus */
@media(max-width:760px){.btn{min-height:44px}.btn.small{min-height:38px}.toast{left:14px;right:14px;top:70px}}
@media print{form.inline,.banner{display:none!important}}
