*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Arial,sans-serif;background:#f5f7fb;color:#172033}body{overflow-x:hidden}.sidebar{position:fixed;inset:0 auto 0 0;width:230px;background:#14213d;padding:18px;color:#fff;overflow:auto}.brand{font-size:20px;font-weight:800;padding:10px 8px 24px}.sidebar a{display:block;color:#dbe5ff;text-decoration:none;padding:10px;border-radius:8px;margin:3px 0}.sidebar a:hover{background:#263961}.content{margin-left:230px;padding:22px 24px;min-height:100vh}.authwrap{min-height:100vh;display:flex;align-items:center;justify-content:center}.card{background:#fff;border:1px solid #e5e9f2;border-radius:14px;padding:20px;margin-bottom:18px;box-shadow:0 4px 18px #18284b0c}.login{width:430px}.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.grid2{grid-template-columns:repeat(2,1fr)}.grid3{grid-template-columns:repeat(3,1fr)}.formgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.span3{grid-column:1/-1}.kpi b{display:block;font-size:28px;margin-top:8px}input,select,textarea{width:100%;padding:0 10px;border:1px solid #ccd4e2;border-radius:8px;background:#fff;font:inherit}input,select{height:38px}textarea{min-height:90px;padding:10px}label{display:block;font-weight:600;margin:8px 0}.btn{display:inline-flex;align-items:center;justify-content:center;height:38px;min-height:38px;padding:0 14px;border:0;border-radius:8px;text-decoration:none;background:#e8edf6;color:#172033;cursor:pointer;font:600 14px/1 Arial,sans-serif;white-space:nowrap;gap:6px}.primary{background:#2f66e8;color:#fff}.success{background:#16865c;color:#fff}.danger{background:#d33;color:#fff}.actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.actions form{margin:0}.alert{padding:12px;border-radius:8px;background:#eef4ff;margin-bottom:14px}.alert.error{background:#fff0f0}.alert.success{background:#edfff6}table{width:100%;border-collapse:collapse;background:#fff}th,td{padding:9px;border-bottom:1px solid #edf0f5;text-align:left}th{background:#f8fafc}.muted{color:#667085}.badge{display:inline-flex;align-items:center;height:30px;padding:0 10px;border-radius:999px;background:#eef4ff;margin:3px;font-size:13px}.progress{height:14px;background:#e8edf6;border-radius:99px;overflow:hidden}.progress-bar{height:100%;width:0;background:#2f66e8;transition:width .2s}.chart-wrap{overflow:auto}.chart-row{display:grid;grid-template-columns:150px 1fr 90px;gap:10px;align-items:center;margin:8px 0}.bar-track{height:22px;background:#edf1f7;border-radius:5px;overflow:hidden}.bar-fill{height:100%;background:#2f66e8}.donut{width:150px;height:150px;border-radius:50%;margin:auto;background:conic-gradient(#2f66e8 0 50%,#16865c 50% 75%,#f59e0b 75% 100%);position:relative}.donut:after{content:"";position:absolute;inset:35px;background:#fff;border-radius:50%}.date-hint{font-size:12px;color:#667085;font-weight:400}.settings-nav{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}.settings-nav a{padding:9px 12px;background:#eef4ff;border-radius:8px;text-decoration:none;color:#172033}.section-title{display:flex;justify-content:space-between;align-items:center;gap:12px}.chart-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.list-table{overflow:auto}.list-table table{min-width:520px}.compact-input{width:110px;height:34px;padding:0 8px}
/* v2.1.4 compact dashboard: dashboard itself never creates page scrollbars on desktop */
.dashboard-shell{height:calc(100vh - 44px);min-height:0;display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;gap:10px;overflow:hidden}.dashboard-head{display:flex;align-items:center;justify-content:space-between;gap:20px}.dashboard-head h1{margin:0 0 4px}.dashboard-head p{margin:0}.kpi-grid{grid-template-columns:repeat(4,1fr);gap:10px}.dashboard-shell .card{margin:0;padding:13px 15px}.dashboard-shell .kpi b{font-size:24px;margin-top:4px}.dashboard-shell .kpi small{display:block;color:#667085;margin-top:4px}.dashboard-charts{display:grid;grid-template-columns:1.25fr .75fr;grid-template-rows:1fr 1fr;gap:10px;min-height:0;overflow:hidden}.dashboard-charts>.card{min-height:0;overflow:hidden}.chart-card h2{margin:0;font-size:17px}.chart-card .section-title{margin-bottom:5px}.svg-chart{width:100%;height:calc(100% - 42px);overflow:hidden}.svg-chart svg{display:block;width:100%;height:100%;min-height:0}.chart-bar{fill:#2f66e8}.chart-axis{stroke:#d7deea;stroke-width:2}.chart-label{fill:#667085;font-size:13px}.chart-value{fill:#172033;font-size:12px;font-weight:700}.line-chart{stroke:#2f66e8;stroke-width:4;stroke-linejoin:round;stroke-linecap:round}.line-point{fill:#fff;stroke:#2f66e8;stroke-width:3}.donut-layout{height:100%;display:grid;grid-template-columns:175px 1fr;align-items:center;gap:10px;min-height:0}.donut-svg svg{width:175px;height:175px;display:block}.donut-track,.donut-male,.donut-female{fill:none;stroke-width:22}.donut-track{stroke:#edf1f7}.donut-male{stroke:#2f66e8}.donut-female{stroke:#16865c}.donut-total{font-size:29px;font-weight:800;fill:#172033}.donut-caption{font-size:12px;fill:#667085}.legend{display:grid;gap:8px}.legend>div{display:flex;align-items:center;gap:8px;font-size:13px}.legend b{margin-left:auto}.legend-dot{width:10px;height:10px;border-radius:50%;display:inline-block}.legend-dot.male{background:#2f66e8}.legend-dot.female{background:#16865c}.legend-dot.other{background:#f59e0b}.fee-status-grid{height:calc(100% - 42px);display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:minmax(0,1fr);gap:7px;align-content:stretch}.fee-status-item{border:1px solid #edf0f5;border-radius:8px;padding:6px 8px;min-width:0;overflow:hidden}.fee-status-top{display:flex;justify-content:space-between;gap:6px;font-size:12px}.fee-status-top span{font-weight:700}.fee-status-values{display:flex;gap:8px;justify-content:space-between;color:#667085;font-size:10px;margin:3px 0;white-space:nowrap}.mini-progress.wide{display:block;width:100%;min-width:0;margin:0;height:5px}.fee-status-card .list-table{height:auto;overflow:hidden}.mini-progress{height:7px;min-width:65px;background:#edf1f7;border-radius:99px;overflow:hidden;display:inline-block;vertical-align:middle;margin-right:5px}.mini-progress span{display:block;height:100%;background:#16865c;border-radius:99px}.dashboard-actions{padding:9px 13px!important}.dashboard-actions h2{font-size:15px;margin:0}.dashboard-actions .btn{height:34px;min-height:34px;padding:0 11px;font-size:13px}
.template-grid{display:grid;grid-template-columns:minmax(300px,.75fr) minmax(620px,1.6fr);gap:16px;align-items:stretch}.certificate-template-panel{min-width:0}.template-upload-form{display:grid;grid-template-columns:1fr 1.2fr auto;gap:12px;align-items:end}.template-upload-form label{margin:0}.template-upload-form .btn{height:38px}
@media(max-width:1200px){.fee-status-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.kpi-grid{grid-template-columns:repeat(2,1fr)}.dashboard-shell{height:auto;min-height:0;overflow:visible}.dashboard-charts{grid-template-columns:1fr;grid-template-rows:auto}.template-grid{grid-template-columns:1fr}.template-upload-form{grid-template-columns:1fr 1fr auto}}@media(max-width:900px){.sidebar{position:relative;width:100%;height:auto}.content{margin-left:0}.grid,.formgrid,.chart-grid{grid-template-columns:1fr}.dashboard-shell{height:auto;min-height:0;overflow:visible}.dashboard-charts{overflow:visible}.dashboard-charts>.card{min-height:220px}.dashboard-actions{margin-bottom:0!important}.donut-layout{grid-template-columns:1fr;justify-items:center}.template-upload-form{grid-template-columns:1fr}}@media(max-width:700px){.fee-status-grid{grid-template-columns:1fr}.kpi-grid{grid-template-columns:1fr}.dashboard-head{align-items:flex-start;flex-direction:column}.dashboard-shell .card{padding:12px}.dashboard-charts>.card{min-height:210px}}@media print{.sidebar,.no-print{display:none!important}.content{margin:0;padding:0}.card{box-shadow:none;border:0}.dashboard-shell{height:auto;overflow:visible}.dashboard-charts{display:block}.chart-card{break-inside:avoid;margin-bottom:12px!important}}
