@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--green:#153b32;--lime:#d7ee9a;--paper:#f5f6f2;--line:#e3e7df;--muted:#798078}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:#24352d;font-family:'DM Sans',sans-serif;font-size:14px}button,input,select,textarea{font:inherit}button{cursor:pointer;border:1px solid var(--line);border-radius:8px;padding:10px 14px;background:white;color:var(--green)}button:hover{filter:brightness(.96)}button:focus-visible,a:focus-visible{outline:3px solid #9bbf52}aside{position:fixed;inset:0 auto 0 0;width:235px;background:var(--green);color:white;padding:35px 22px;display:flex;flex-direction:column}.brand{display:flex;gap:12px;align-items:center;font-weight:800;letter-spacing:2px}.brand>b{font:800 38px Manrope;background:#ffffff0e;border:1px solid #ffffff25;border-radius:12px;padding:3px 10px}.brand span{color:var(--lime)}small{display:block}.brand small{font-size:8px;letter-spacing:1.9px;margin-top:7px;color:#c0d0c2}.navlabel{font-size:8px;letter-spacing:1.5px;color:#9bb4a6;margin:45px 0 18px}nav button{display:flex;align-items:center;gap:12px;width:100%;border:0;background:none;color:#b8cdc1;text-align:left;margin:4px 0;padding:13px;font-size:13px}nav button.active{background:var(--lime);color:var(--green);font-weight:700}nav i{font-style:normal;width:20px;font-size:18px}.sidefoot{margin-top:auto;font-size:11px;color:#d7e1d7}.sidefoot small{color:#92ab9c;font-size:10px;margin-top:10px}.dot{display:inline-block;background:var(--lime);width:6px;height:6px;border-radius:50%;margin-right:6px}main{margin-left:235px;padding:38px 42px;max-width:1700px}header{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:30px}.eyebrow{font-size:9px;letter-spacing:2px;color:#788477;font-weight:700}h1{font:800 30px Manrope;margin:9px 0}p{color:var(--muted);line-height:1.6;margin:6px 0}.primary{background:var(--green);color:white;border-color:var(--green);font-weight:600}header>.primary{padding:13px 18px}.filters{display:flex;gap:16px;align-items:center;margin-bottom:25px;flex-wrap:wrap}.filters>div{display:flex;gap:4px;margin-right:auto;background:#e9ece5;padding:4px;border-radius:9px}.filters button{border:0;background:transparent;font-size:12px;padding:9px 15px}.filters button.active{background:white;box-shadow:0 2px 5px #153b3210;font-weight:700}.filters label{font-size:11px;color:var(--muted);display:flex;align-items:center;gap:9px}input,select,textarea{border:1px solid #dce2d8;border-radius:7px;background:white;color:#2f4537;padding:9px;min-width:0}.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:23px}.card,.panel{background:white;border:1px solid var(--line);border-radius:13px;padding:22px}.card .label{color:#747e73;font-size:12px;display:flex;justify-content:space-between}.card strong{display:block;font:800 28px Manrope;margin:15px 0 9px}.card small{font-size:10px;color:#92998d}.card.dark{background:var(--green);color:white;border:0}.dark .label,.dark small{color:#bfd0bd}.dark strong{color:var(--lime)}.grid{display:grid;grid-template-columns:1.65fr 1fr;gap:22px;margin-bottom:22px}.panel h2{font:700 15px Manrope;margin:0}.panelhead{display:flex;justify-content:space-between;gap:14px;align-items:center;margin-bottom:20px}.panelhead p{font-size:11px}.panelhead button{font-size:11px;padding:7px 10px}.empty{padding:36px 15px;text-align:center;color:#899184;font-size:12px}.empty .symbol{font-size:27px;color:#9cad90;display:block;margin-bottom:10px}.empty b{display:block;color:#5c6d59;font-size:13px;margin-bottom:5px}.goal{background:#eaf0df;border-color:#dce6cd}.goalnum{font:800 29px Manrope;margin:25px 0 8px}.goalnum span{font:500 12px 'DM Sans';color:#74816b}.progress{height:9px;background:#d5dfca;border-radius:20px;overflow:hidden;margin:18px 0 12px}.progress>div{height:100%;background:var(--green);border-radius:20px}.split{display:flex;justify-content:space-between;font-size:11px;color:#718066}.badge{font-size:10px;background:#eff3e9;border-radius:5px;padding:5px 8px;white-space:nowrap}.row{display:flex;justify-content:space-between;align-items:center;padding:14px 0;border-bottom:1px solid #edf0e9;gap:12px}.row:last-child{border-bottom:0}.row small{font-size:10px;color:var(--muted);margin-top:5px}.row .actions{display:flex;gap:5px;flex-wrap:wrap}.row button{padding:6px 9px;font-size:10px}.pos{color:#42835d}.neg{color:#af6554}.warn{background:#fff5de;border-color:#ebc979}.late{background:#fff0ed;border-color:#e7b1a6}.notice{border-radius:9px;padding:14px 18px;margin-bottom:20px;font-size:12px;border:1px solid #e4e9db;background:#eef3e5;color:#61744c}.chart{height:190px;display:flex;align-items:flex-end;gap:5px;padding-top:20px;border-bottom:1px solid var(--line)}.barcol{flex:1;height:100%;display:flex;align-items:flex-end;justify-content:center;position:relative;gap:2px}.barcol div{width:35%;background:#214c3d;border-radius:3px 3px 0 0;min-height:0}.barcol div.out{background:#cbdca8}.barcol small{position:absolute;bottom:-20px;color:#8e9688;font-size:8px}.legend{font-size:10px;color:#7b8676;margin-top:34px}.legend span{margin-right:20px}.calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}.day{min-height:70px;border:1px solid var(--line);border-radius:7px;padding:7px;font-size:11px}.day small{font-size:9px;margin-top:4px}.day.today{border:2px solid #8ca95f}.weekday{text-align:center;font-size:10px;color:#8a9384;padding:7px}.tablewrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:12px}th{text-align:left;font-size:10px;color:#899280;font-weight:500}td,th{padding:13px 10px;border-bottom:1px solid var(--line)}td button{padding:5px 8px;font-size:10px}footer{display:flex;justify-content:space-between;gap:20px;color:#8d9586;font-size:10px;margin-top:30px;line-height:1.8}footer button{border:0;padding:0;background:transparent;font-size:10px;color:#697d5e}dialog{border:0;border-radius:16px;box-shadow:0 20px 100px #0003;width:480px;max-width:95vw;padding:25px}dialog::backdrop{background:#112c2670;backdrop-filter:blur(3px)}.modalhead{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.modalhead h2{font:800 20px Manrope}.modalhead button{border:0}#fields{display:grid;grid-template-columns:1fr 1fr;gap:15px}#fields label{display:flex;flex-direction:column;gap:7px;font-size:12px}#fields .full{grid-column:1/-1}.modalactions{display:flex;justify-content:flex-end;gap:8px;margin-top:24px}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);padding:13px 23px;background:#153b32;color:white;border-radius:8px;display:none;z-index:100}.weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:9px}.weekdays .panel{padding:14px 9px;min-height:160px}.weekdays h3{font-size:12px}.weekdays p{font-size:10px}.weekdays strong{font-size:13px}.inlinebtn{margin-top:15px}.stack{display:grid;gap:16px}@media(min-width:1500px){main{padding:45px 60px}}@media(max-width:1100px){aside{width:195px;padding:30px 15px}main{margin-left:195px;padding:30px 24px}.cards{grid-template-columns:repeat(2,1fr)}.grid{grid-template-columns:1fr}.weekdays{grid-template-columns:repeat(4,1fr)}}@media(max-width:650px){aside{position:static;width:auto;padding:17px 16px 0}.brand>b{font-size:24px}.brand{font-size:14px}.brand small{font-size:7px}.navlabel,.sidefoot{display:none}nav{display:flex;overflow:auto;margin-top:15px;gap:4px}nav button{white-space:nowrap;width:auto;font-size:11px;padding:11px 10px}nav i{display:none}main{margin:0;padding:23px 16px}header{align-items:flex-start;gap:8px;margin-bottom:22px}h1{font-size:24px}header p{font-size:11px}header>.primary{font-size:10px;padding:11px;white-space:nowrap}.eyebrow{font-size:7px;letter-spacing:1px}.filters{gap:10px}.filters>div{width:100%;justify-content:space-between}.filters button{font-size:11px;padding:8px 12px}.filters label{font-size:10px}.filters input,.filters select{max-width:145px;font-size:11px}.cards{gap:10px}.card,.panel{padding:17px}.card strong{font-size:23px}.card .label{font-size:10px}.card small{font-size:9px}.weekdays{grid-template-columns:1fr}.weekdays .panel{min-height:auto}.day{min-height:60px;padding:4px;font-size:10px}.day small{font-size:8px}footer{flex-direction:column;gap:8px}.row{align-items:flex-start}.row .actions{justify-content:flex-end}}
