:root{--navy:#1f3a5f;--teal:#2a7f8e;--bg:#f3f6fa;--card:#fff;--line:#d9e1ec;--txt:#1d2733;--mut:#6b7a8d;
--green:#2e7d32;--red:#c62828;--orange:#ef6c00;--blue:#1565c0;--purple:#6a1b9a;--input:#fffbea}
*{box-sizing:border-box}
body{margin:0;font-family:Arial,Helvetica,sans-serif;font-size:14px;color:var(--txt);background:var(--bg)}
a{color:var(--blue);text-decoration:none}
.layout{display:flex;min-height:100vh}
.sidebar{width:220px;background:var(--navy);color:#fff;display:flex;flex-direction:column;position:sticky;top:0;height:100vh;flex-shrink:0}
.brand{padding:18px 16px;font-weight:700;font-size:16px;border-bottom:1px solid rgba(255,255,255,.12)}
.brand small{display:block;font-weight:400;font-size:10px;letter-spacing:2px;opacity:.7;margin-top:4px}
.sidebar nav{flex:1;padding:10px 0;overflow:auto}
.sidebar nav a{display:flex;align-items:center;gap:10px;color:#cfd9e8;padding:10px 16px;border-left:3px solid transparent}
.sidebar nav a:hover{background:rgba(255,255,255,.07);color:#fff}
.sidebar nav a.active{background:rgba(255,255,255,.12);color:#fff;border-left-color:#4fd1c5;font-weight:700}
.ico{width:18px;text-align:center}
.sidefoot{padding:14px 16px;font-size:12px;border-top:1px solid rgba(255,255,255,.12)}
.sidefoot a{color:#9fd8e0}
.main{flex:1;min-width:0}
.topbar{display:flex;align-items:center;gap:12px;background:var(--navy);color:#fff;padding:10px 20px}
.topbar h1{margin:0;font-size:20px;flex:1}
.burger{display:none;background:none;border:0;color:#fff;font-size:22px;cursor:pointer}
.monthnav{display:flex;align-items:center;gap:6px}
.monthnav a{color:#fff;font-size:22px;padding:0 8px;background:rgba(255,255,255,.12);border-radius:6px}
.monthnav input{padding:6px 8px;border-radius:6px;border:0;font-size:14px}
.subbar{background:#eaf1f8;color:#44546a;font-style:italic;font-size:12px;padding:6px 20px}
.content{padding:20px;max-width:1400px}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px;margin-bottom:20px}
.card{background:var(--card);border:1px solid var(--line);border-top:4px solid var(--c,#999);border-radius:8px;padding:12px 14px;text-align:center}
.card .lbl{font-size:11px;font-weight:700;color:var(--mut);letter-spacing:.5px;text-transform:uppercase}
.card .val{font-size:26px;font-weight:700;margin:6px 0;color:var(--c,#333)}
.card .note{font-size:11px;color:var(--mut);font-style:italic}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:20px}
.panel{background:var(--card);border:1px solid var(--line);border-radius:8px;margin-bottom:20px;overflow:hidden}
.grid2 .panel{margin-bottom:0}
.panel>h2{margin:0;padding:10px 14px;font-size:13px;letter-spacing:.5px;text-transform:uppercase;color:#fff;background:var(--teal)}
.panel>h2.red{background:var(--red)}.panel>h2.green{background:var(--green)}.panel>h2.blue{background:var(--blue)}.panel>h2.orange{background:var(--orange)}
.panel .body{padding:14px}
.scroll{overflow-x:auto}
table{border-collapse:collapse;width:100%}
th{background:#dce6f1;color:var(--navy);font-size:12px;text-align:center;padding:8px 6px;border:1px solid var(--line);white-space:nowrap}
td{padding:6px 8px;border:1px solid var(--line);font-size:13px}
td.r{text-align:right;font-variant-numeric:tabular-nums}td.c{text-align:center}
tr.total td{background:#dce6f1;font-weight:700;color:var(--navy)}
tr:hover td{background:#fafcff}tr.total:hover td{background:#dce6f1}
.pos{color:var(--green);font-weight:700}.neg{color:var(--red);font-weight:700}
.badge{display:inline-block;padding:2px 9px;border-radius:10px;font-size:11px;font-weight:700}
.b-Paid,.b-Achieved,.b-On\ track,.b-Goal\ met{background:#c6efce;color:#006100}
.b-Partial,.b-Near\ limit,.b-Unpaid,.b-Due,.b-Pending,.b-Below\ target,.b-Unbudgeted{background:#ffeb9c;color:#9c5700}
.b-In\ progress{background:#ddebf7;color:#1f4e78}
.b-Overdue,.b-Over\ budget{background:#ffc7ce;color:#9c0006}
.b-Closed{background:#d9d9d9;color:#404040}.b-Not\ started{background:#ededed;color:#595959}
.bar{background:#e6edf5;border-radius:10px;height:14px;position:relative;min-width:90px}
.bar i{display:block;height:100%;border-radius:10px;background:#2a9d8f}
.bar span{position:absolute;inset:0;text-align:center;font-size:10px;line-height:14px;font-weight:700;color:#10333a}
form.entry{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;padding:14px;background:#f9fbfd;border-bottom:1px solid var(--line);align-items:end}
form.entry label{font-size:11px;font-weight:700;color:var(--mut);display:block;margin-bottom:3px}
input[type=text],input[type=number],input[type=date],input[type=email],input[type=password],input[type=month],select{
 width:100%;padding:8px;border:1px solid #c3cfdd;border-radius:6px;font-size:13px;background:var(--input);font-family:inherit}
input:focus,select:focus{outline:2px solid #4fd1c5;border-color:#4fd1c5}
.btn{display:inline-block;padding:8px 14px;border:0;border-radius:6px;background:var(--teal);color:#fff;font-size:13px;font-weight:700;cursor:pointer}
.btn:hover{filter:brightness(1.1)}.btn.sec{background:#8794a6}.btn.danger{background:var(--red)}.btn.sm{padding:4px 9px;font-size:11px}
.btn.green{background:var(--green)}
.actions{white-space:nowrap;text-align:center}.actions form{display:inline}
.flash{padding:10px 14px;border-radius:6px;margin-bottom:14px;font-weight:700}
.flash.ok{background:#c6efce;color:#006100}.flash.err{background:#ffc7ce;color:#9c0006}.flash.info{background:#ddebf7;color:#1f4e78}
.hint{color:var(--mut);font-size:12px;font-style:italic;padding:8px 14px}
.toolbar{display:flex;gap:10px;margin-bottom:14px;flex-wrap:wrap;align-items:center}
.chartbox{position:relative;height:430px}.chartbox.sm{height:360px}
.kv{display:flex;justify-content:space-between;padding:8px 14px;border-bottom:1px solid var(--line)}.kv:last-child{border:0}
.authwrap{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--navy),var(--teal));padding:20px}
.authbox{background:#fff;border-radius:12px;padding:30px;width:100%;max-width:400px;box-shadow:0 10px 40px rgba(0,0,0,.25)}
.authbox h1{margin:0 0 4px;color:var(--navy);font-size:22px}.authbox p.sub{margin:0 0 18px;color:var(--mut)}
.authbox label{display:block;font-size:12px;font-weight:700;color:var(--mut);margin:12px 0 4px}
.authbox .btn{width:100%;margin-top:18px;padding:11px}
.authbox .alt{text-align:center;margin-top:14px;font-size:13px}
.inline-edit input{padding:5px 6px}
@media(max-width:900px){
 .sidebar{position:fixed;left:-240px;z-index:50;transition:left .2s}.sidebar.open{left:0}
 .burger{display:block}.grid2{grid-template-columns:1fr}.content{padding:12px}.topbar h1{font-size:16px}
}
@media print{.sidebar,.topbar .monthnav,.burger,form.entry,.toolbar,.actions{display:none!important}.content{padding:0}}
.grid2>div>.panel{margin-bottom:20px}.grid2>div>.panel:last-child{margin-bottom:0}
