*{box-sizing:border-box}body{margin:0;background:#f4f7f3;color:#1c2b21;font:15px/1.55 Inter,Arial,sans-serif}.topbar{background:linear-gradient(110deg,#123b27,#197044);color:white;padding:14px max(18px,calc((100% - 1160px)/2));display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{display:flex;align-items:center;gap:12px;color:white;text-decoration:none;font-weight:700}.brand small{display:block;font-weight:400;opacity:.8;font-size:12px}.brand-mark{width:46px;height:46px;border-radius:12px;background:#ffffff20;border:1px solid #ffffff50;display:grid;place-items:center;font-weight:800}.topbar nav{display:flex;gap:7px;flex-wrap:wrap}.topbar nav a{color:white;text-decoration:none;padding:8px 11px;border-radius:8px}.topbar nav a:hover{background:#ffffff22}.menu-toggle{display:none}.container{max-width:1160px;margin:28px auto;padding:0 18px;min-height:65vh}.hero{background:linear-gradient(120deg,#174a30,#267a4b);color:white;border-radius:18px;padding:34px;margin-bottom:22px}.hero h1{font-size:clamp(25px,4vw,38px);line-height:1.15;margin:0 0 12px}.hero p{max-width:700px;opacity:.9}.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:15px}.card{background:white;border:1px solid #e4eae3;border-radius:14px;padding:18px;box-shadow:0 4px 14px #1b38200a}.metric{font-size:31px;font-weight:800;color:#17643a}.muted{color:#718077}.section{margin-top:22px}.section-head{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:14px}h1,h2,h3{line-height:1.25}h2{font-size:21px;margin:0 0 14px}h3{margin:0 0 7px}.btn{display:inline-block;border:0;background:#17643a;color:white;padding:10px 15px;border-radius:8px;text-decoration:none;cursor:pointer;font-weight:600}.btn.light{background:#e9f2eb;color:#195b36}.btn.danger{background:#a52c2c}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:0 14px}.field{margin-bottom:12px}.field.full{grid-column:1/-1}label{display:block;font-size:13px;font-weight:700;margin-bottom:5px}input,select,textarea{width:100%;padding:10px 11px;border:1px solid #ccd7ce;border-radius:8px;background:white;font:inherit}textarea{min-height:90px}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;background:white}th,td{padding:11px 12px;border-bottom:1px solid #e8eee8;text-align:left;vertical-align:top}th{background:#f0f5f0;color:#35513d;font-size:13px}.badge{display:inline-block;padding:3px 9px;background:#e8f3e9;color:#225b36;border-radius:20px;font-size:12px}.alert{padding:12px 14px;border-radius:9px;margin:0 0 15px}.success{background:#e5f5e8;color:#205d32}.warning{background:#fff3d9;color:#76510c}.danger{background:#fde8e8;color:#8b2525}.footer{text-align:center;padding:22px;color:#718077;font-size:13px}.search-row{display:grid;grid-template-columns:2fr 1fr 1fr auto;gap:10px;margin-bottom:14px}.announcement{padding:14px 0;border-bottom:1px solid #e8eee8}.login-card,.install-card{max-width:440px;margin:55px auto}.login-card .brand-mark,.install-card .brand-mark{background:#17643a;color:white;margin-bottom:15px}.actions{display:flex;gap:7px;flex-wrap:wrap}.empty{padding:25px;text-align:center;color:#718077}.footer a{color:inherit}@media(max-width:760px){.topbar{flex-wrap:wrap}.menu-toggle{display:block;background:#ffffff20;color:white;border:0;padding:9px;border-radius:7px}.topbar nav{display:none;width:100%;flex-direction:column}.nav-open .topbar nav{display:flex}.grid{grid-template-columns:repeat(2,1fr)}.search-row{grid-template-columns:1fr 1fr}.form-grid{grid-template-columns:1fr}.field.full{grid-column:auto}.section-head{align-items:flex-start;flex-direction:column}}@media(max-width:420px){.grid{grid-template-columns:1fr 1fr}.metric{font-size:25px}.hero{padding:23px}}

.charts-grid{display:grid;grid-template-columns:1fr 1.35fr;gap:18px}
.chart-card{min-width:0;border:1px solid #e7eee7;border-radius:12px;padding:15px;background:#fff}
.chart-card canvas{width:100%!important;height:280px!important}
.chart-control{display:flex;align-items:center;gap:8px;white-space:nowrap}
.chart-control select{width:auto;min-width:120px;margin:0}
@media(max-width:760px){.charts-grid{grid-template-columns:1fr}.chart-card canvas{height:250px!important}.chart-control{white-space:normal}}
