:root{font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;color:#17221a;background:#f4f7f5}*{box-sizing:border-box}body{margin:0}.auth-wrap{min-height:100vh;display:grid;place-items:center;padding:20px}.auth-card{width:min(430px,100%);background:#fff;border-radius:22px;padding:28px;box-shadow:0 10px 35px #0001;text-align:center}.logo{width:92px;height:92px;object-fit:contain}.auth-card h1{font-size:23px;margin:14px 0 2px}.muted,small{color:#68736c}.auth-card form{text-align:left;margin-top:22px}label{display:block;font-weight:600;margin:14px 0}input{width:100%;padding:13px;border:1px solid #ccd5cf;border-radius:11px;font-size:16px;margin-top:7px}button{border:0;border-radius:11px;padding:12px 16px;font-weight:700;cursor:pointer}.primary{width:100%;background:#1f7a3f;color:#fff;font-size:16px}.msg{min-height:24px;color:#b42318;margin-top:12px}.top{position:sticky;top:0;z-index:5;background:#1f7a3f;color:#fff;padding:14px max(16px,calc((100% - 1000px)/2));display:flex;justify-content:space-between;align-items:center}.top small{display:block;color:#e4f2e8;margin-top:2px}.iconbtn{background:#fff;color:#1f7a3f}.container{max-width:1000px;margin:auto;padding:18px 16px 40px}.student-card{background:#fff;border-radius:18px;padding:18px;box-shadow:0 3px 16px #0000000b;margin-bottom:16px}.student-card h1{font-size:22px;margin:0 0 6px}.student-meta{color:#5e6962;line-height:1.6}.summary-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.summary{background:#fff;border-radius:15px;padding:14px}.summary b{font-size:21px;display:block;margin-top:4px}.module-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.module-grid a{background:#fff;text-decoration:none;color:#17221a;border-radius:16px;padding:18px 10px;text-align:center;box-shadow:0 3px 16px #0000000b;font-size:26px}.module-grid span{display:block;font-size:14px;font-weight:700;margin-top:8px}.card{background:#fff;border-radius:16px;padding:16px;margin:12px 0;box-shadow:0 3px 16px #0000000b}.row{display:flex;justify-content:space-between;gap:10px;padding:8px 0;border-bottom:1px solid #edf0ee}.row:last-child{border-bottom:0}.badge{display:inline-block;padding:4px 8px;border-radius:999px;background:#eaf5ee;font-size:12px;font-weight:700}.danger{color:#b42318}.success{color:#087443}.back{display:inline-block;margin:14px 0;text-decoration:none;color:#1f7a3f;font-weight:700}.table-wrap{overflow:auto}.table{width:100%;border-collapse:collapse}.table th,.table td{padding:10px;border-bottom:1px solid #e6ebe7;text-align:left;white-space:nowrap}.empty{padding:30px;text-align:center;color:#68736c}.q{padding:14px 0;border-bottom:1px solid #e6ebe7}.q label{font-weight:500}.choice{display:block;margin:7px 0;padding:8px;background:#f6f8f6;border-radius:9px}.pay{background:#1f7a3f;color:white}.link{color:#1f7a3f;font-weight:700}@media(max-width:700px){.summary-grid{grid-template-columns:repeat(2,1fr)}.module-grid{grid-template-columns:repeat(2,1fr)}}
