:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#19322d;background:#f2f5f2;font-size:16px}
*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}a{color:inherit}
.loading,.auth{min-height:100vh;display:grid;place-content:center;text-align:center;padding:2rem}
.auth-card{background:#fff;border:1px solid #dce6df;border-radius:20px;padding:2.5rem;max-width:440px;box-shadow:0 20px 70px #17372a14}
.auth-card h1{margin:.2rem 0;font-size:2rem}.auth-card p{color:#5c7067;line-height:1.5}.auth-card .btn{display:inline-block;text-decoration:none;margin-top:.8rem}
.shell{display:grid;grid-template-columns:242px minmax(0,1fr);min-height:100vh}
.sidebar{background:#203a35;color:#eaf2e9;padding:24px 14px;display:flex;flex-direction:column;gap:22px}
.brand{font-size:1.33rem;font-weight:800;letter-spacing:.025em;padding:0 12px}.brand small{display:block;font-size:.75rem;font-weight:500;opacity:.65;letter-spacing:.12em;text-transform:uppercase;margin-top:3px}
.nav{display:grid;gap:4px}.nav button{background:transparent;color:#d4e4d9;border:0;border-radius:10px;text-align:left;padding:12px 14px;font-size:.92rem;min-height:44px}.nav button:hover,.nav button.active{background:#3e5b50;color:#fff}
.identity{margin-top:auto;padding:12px;overflow-wrap:anywhere;font-size:.77rem;color:#b9cfc2;border-top:1px solid #60766e}.identity strong{display:block;color:white;font-size:.88rem;margin-bottom:4px}.identity a{display:inline-block;margin-top:12px;text-decoration:underline}
.main{min-width:0;padding:26px clamp(16px,3vw,48px) 60px;max-width:1600px;width:100%;margin:auto}
.topline{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:24px}.topline h1{font-size:clamp(1.5rem,2vw,2rem);letter-spacing:-.025em;margin:0}.topline .sub{color:#687c70;font-size:.88rem;margin-top:3px}
.topline select{max-width:240px}.card,.panel{background:#fff;border:1px solid #dce5dd;border-radius:16px;box-shadow:0 8px 26px #17372a09}.panel{padding:20px;margin-bottom:18px}.panel h2{font-size:1.08rem;margin:0 0 16px}.panel h3{font-size:.95rem;margin:18px 0 10px}
.grid{display:grid;gap:14px}.cards{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:20px}.metric{padding:18px}.metric .label{font-size:.78rem;color:#63776b;margin-bottom:10px}.metric .value{font-size:1.45rem;font-weight:750;letter-spacing:-.03em}.metric .hint{color:#788a7d;font-size:.77rem;margin-top:5px}
.twocol{grid-template-columns:repeat(2,minmax(0,1fr))}.threecol{grid-template-columns:repeat(3,minmax(0,1fr))}
.btn{border:1px solid #244d3f;background:#254e3e;color:#fff;border-radius:10px;min-height:43px;padding:9px 15px;font-weight:650;white-space:normal}.btn:hover{background:#176548}.btn.secondary{background:#fff;color:#244d3f;border-color:#c9d9ce}.btn.secondary:hover{background:#f1f7f1}.btn.danger{background:#fff;color:#a73535;border-color:#e4b9b9}.btn.small{min-height:35px;padding:6px 10px;font-size:.78rem}
.actions{display:flex;flex-wrap:wrap;gap:8px}.form{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.form.two{grid-template-columns:repeat(2,minmax(0,1fr))}.field{display:flex;flex-direction:column;gap:5px}.field.wide{grid-column:1/-1}.field label{font-weight:650;font-size:.78rem;color:#465d4e}.field input,.field select,.field textarea,.topline select{border:1px solid #cdd9d0;border-radius:9px;min-height:42px;padding:9px 10px;background:#fff;color:#203a35;width:100%}.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid #79a287;outline-offset:1px}.field textarea{min-height:74px;resize:vertical}.form .btn{align-self:end}.help{font-size:.82rem;color:#63786b;line-height:1.5}.muted{color:#698072}.warning{color:#9d6222}.negative{color:#a73535}.ok{color:#246947}
.table-wrap{overflow-x:auto;border:1px solid #e2eae4;border-radius:12px}.table{width:100%;border-collapse:collapse;text-align:left;font-size:.86rem;min-width:620px}.table th{background:#f1f5f1;color:#4b6655;font-size:.74rem;text-transform:uppercase;letter-spacing:.045em;font-weight:700}.table th,.table td{padding:11px 13px;border-bottom:1px solid #e8eee9;vertical-align:middle}.table tr:last-child td{border-bottom:0}.table tbody tr:hover{background:#f8faf8}.table td.numeric,.table th.numeric{text-align:right;font-variant-numeric:tabular-nums}
.item-card{padding:20px;margin-bottom:16px}.item-top{display:flex;justify-content:space-between;align-items:start;gap:12px}.item-top h3{margin:0 0 3px;font-size:1.02rem}.item-meta{font-size:.8rem;color:#64796a}.item-stats{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin:18px 0}.item-stats div{background:#f5f8f5;border-radius:9px;padding:10px}.item-stats small{display:block;color:#6c8071;font-size:.72rem}.item-stats strong{font-size:.93rem}.progress{height:8px;border-radius:8px;background:#e5ece5;overflow:hidden}.progress span{display:block;height:100%;background:#638656;max-width:100%}
.bars{display:grid;gap:12px}.bar-row{display:grid;grid-template-columns:150px 1fr 120px;align-items:center;gap:10px;font-size:.82rem}.bar-track{height:14px;background:#eef3ee;border-radius:6px;overflow:hidden}.bar-fill{height:100%;background:#719567}
.toast{position:fixed;bottom:20px;right:20px;background:#203a35;color:#fff;padding:12px 16px;border-radius:10px;box-shadow:0 10px 35px #142a2760;max-width:min(420px,calc(100vw - 40px));z-index:10}.toast.error{background:#a13b3b}
.empty{padding:30px;color:#72877a;text-align:center;border:1px dashed #ccd9cf;border-radius:12px}
.mobilebar{display:none}
@media(max-width:980px){.shell{grid-template-columns:1fr}.sidebar{padding:12px 18px;gap:8px}.brand{font-size:1.1rem}.brand small{display:none}.nav{display:flex;overflow-x:auto;scrollbar-width:thin}.nav button{white-space:nowrap}.identity{display:none}.main{padding:20px 16px 48px}.cards{grid-template-columns:repeat(2,minmax(0,1fr))}.mobilebar{display:block;color:#557267;font-size:.78rem;margin-left:12px}}
@media(max-width:620px){.cards,.twocol,.threecol,.form,.form.two{grid-template-columns:1fr}.topline{align-items:stretch;flex-direction:column}.topline select{max-width:none}.item-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.item-top{flex-direction:column}.bar-row{grid-template-columns:95px 1fr 70px}.panel,.item-card{padding:15px}.metric .value{font-size:1.25rem}.table-wrap{overflow:visible;border:0}.table{display:block;min-width:0}.table thead{display:none}.table tbody{display:grid;gap:10px}.table tr{display:grid;border:1px solid #e0e9e1;border-radius:10px;overflow:hidden}.table td{display:flex;justify-content:space-between;gap:12px;text-align:right;padding:8px 11px;min-width:0;overflow-wrap:anywhere}.table td:before{content:attr(data-label);color:#688071;font-weight:650;text-align:left;flex:0 0 40%}.table td:last-child{border-bottom:0}.table td .inline-rate{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:5px}.table td select{max-width:145px}}

/* Entry fields and calculated figures use separate colors. */
input,select,textarea{background:#fff7e5!important;border:1px solid #c4b692!important}
.metric .value{background:#edf6ef;border-radius:8px;padding:6px}
.item-stats>div:first-child{background:#fff7e5}
.item-stats>div:not(:first-child){background:#edf6ef}
.table th,.table td{border:1px solid #d0ddd2}
.table td[data-label="Allocated"]{background:#fff7e5}
.table td[data-label="Used"],.table td[data-label="Balance"],.table td[data-label="On hand"]{background:#edf6ef}
.inline-rate input{max-width:130px;min-width:0}
.role-projects{max-height:220px;overflow:auto}
@media(max-width:700px){.table td{border:1px solid #d0ddd2}.inline-rate{flex-wrap:wrap}}
