*{box-sizing:border-box}body{margin:0;background:#f5f8f6;color:#18332b;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif}header{position:sticky;top:0;z-index:10;background:#f5f8f6ee;border-bottom:1px solid #dbe5e1}.head,main{max-width:1150px;margin:auto}.head{padding:12px 15px;display:flex;gap:10px;align-items:center}.logo{width:40px;height:40px;border-radius:12px;background:#285b4a;color:#fff;display:grid;place-items:center;font-weight:800;font-size:21px}h1{font-size:19px;margin:0}.sub,.note{font-size:12px;color:#687b74}main{padding:14px}.tabs{display:flex;gap:7px;overflow:auto;padding-bottom:11px}.tab,.btn{border:1px solid #dbe5e1;background:#fff;border-radius:999px;padding:8px 12px;font-weight:700;color:#18332b}.tab.active,.primary{background:#285b4a;color:#fff}.panel{display:none}.panel.active{display:block}.card,.entry{background:#fff;border:1px solid #dbe5e1;border-radius:14px;padding:13px}.filters{display:grid;grid-template-columns:1.4fr repeat(5,1fr);gap:7px}input,select,textarea{width:100%;border:1px solid #dbe5e1;border-radius:9px;padding:9px;background:#fff;font:inherit}.check{display:flex;gap:7px;align-items:center}.check input{width:auto}.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin-top:11px}.kpi b{font-size:25px;display:block}.kpi span{font-size:11px;color:#687b74}.two{display:grid;grid-template-columns:1fr 1fr;gap:11px;margin-top:11px}h2{font-size:16px;margin:0 0 9px}.bars{display:grid;gap:7px}.bar{display:grid;grid-template-columns:165px 1fr 38px;gap:7px;align-items:center;font-size:11px}.track{height:9px;background:#e8f1ed;border-radius:99px;overflow:hidden}.fill{height:100%;background:#78a592}.list{display:grid;gap:8px;margin-top:11px}.top{display:flex;justify-content:space-between;gap:8px}.title{font-weight:800}.meta{font-size:11px;color:#687b74;margin-top:3px}.chips{display:flex;flex-wrap:wrap;gap:4px;margin-top:7px}.chip{background:#e8f1ed;padding:4px 7px;border-radius:99px;font-size:10px}.small{font-size:11px;padding:6px 8px;border-radius:8px;border:1px solid #dbe5e1;background:#fff}.text{font-size:12px;line-height:1.45;margin-top:8px}.hidden{display:none}.modal{position:fixed;inset:0;background:#102b2388;z-index:50;display:none;align-items:flex-end;justify-content:center}.modal.open{display:flex}.sheet{background:#fff;width:min(680px,100%);max-height:92vh;overflow:auto;border-radius:20px 20px 0 0;padding:18px}.form{display:grid;gap:10px}.form label{font-size:12px;font-weight:750}.actions{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px}.warn{background:#fff5df;border:1px solid #ead7a6;padding:10px;border-radius:10px;font-size:12px}.tbl{width:100%;border-collapse:collapse;font-size:11px}.tbl td,.tbl th{padding:8px;border-bottom:1px solid #dbe5e1;text-align:left;vertical-align:top}@media(max-width:800px){.filters{grid-template-columns:1fr 1fr}.grid,.two{grid-template-columns:1fr 1fr}.bar{grid-template-columns:120px 1fr 34px}}@media(max-width:520px){main{padding:10px}.filters{grid-template-columns:1fr}.grid{grid-template-columns:1fr 1fr}.two{grid-template-columns:1fr}.bar{grid-template-columns:105px 1fr 32px}.top{display:block}}
.fieldbox{border:1px solid var(--line);border-radius:12px;padding:10px;margin:0}
.fieldbox legend{padding:0 6px;font-weight:700}
.checkgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.charthead{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap}
.piecontrols{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}
.piecheck{border:1px solid var(--line);padding:7px 10px;border-radius:999px;background:#fff}
.piewrap{display:grid;grid-template-columns:minmax(180px,300px) 1fr;gap:24px;align-items:center;margin-top:16px}
.pie{width:min(280px,70vw);aspect-ratio:1;border-radius:50%;margin:auto;background:#eef3f0}
.pielegend{display:grid;gap:7px}
.legrow{display:grid;grid-template-columns:16px minmax(0,1fr) auto;gap:8px;align-items:center}
.swatch{width:12px;height:12px;border-radius:3px;display:inline-block}
@media(max-width:700px){
 .checkgrid{grid-template-columns:1fr}
 .piewrap{grid-template-columns:1fr}
}
