
:root{--sp-blue:#0b4f8a;--sp-navy:#0d2f4f;--sp-orange:#f47b20;--sp-bg:#f4f7fb;--sp-border:#e3eaf1;--sp-text:#20384d;--sp-muted:#708293;--sp-white:#fff}
*{box-sizing:border-box}.student-auth-body,.student-portal-body{margin:0;background:var(--sp-bg);color:var(--sp-text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}.student-auth-shell{min-height:100vh;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(360px,.9fr);background:linear-gradient(135deg,#082e54,#0b5b98)}.student-auth-brand{padding:8vh 8vw;color:#fff;display:flex;flex-direction:column;justify-content:center;position:relative;overflow:hidden}.student-auth-brand:after{content:"";position:absolute;width:420px;height:420px;border-radius:50%;background:rgba(244,123,32,.22);right:-150px;bottom:-130px}.student-auth-brand img{width:170px;border-radius:18px;margin-bottom:32px;position:relative;z-index:1}.student-auth-brand>span{font-size:12px;letter-spacing:.25em;font-weight:800;color:#ffb36f}.student-auth-brand h1{font-size:clamp(38px,5vw,68px);line-height:1.02;max-width:680px;margin:12px 0 18px;position:relative;z-index:1}.student-auth-brand p{font-size:18px;max-width:580px;color:#d8e8f5;line-height:1.6}.student-auth-points{display:flex;flex-wrap:wrap;gap:10px;margin-top:28px}.student-auth-points span{padding:10px 14px;border:1px solid rgba(255,255,255,.18);border-radius:999px;background:rgba(255,255,255,.08);font-size:13px}.student-auth-card{background:#fff;margin:6vh 5vw;padding:44px;border-radius:30px;align-self:center;box-shadow:0 28px 80px rgba(0,0,0,.18)}.student-auth-card h2{font-size:34px;color:var(--sp-navy);margin:24px 0 8px}.student-auth-card>p{color:var(--sp-muted);margin-top:0}.student-auth-back{color:var(--sp-blue);text-decoration:none;font-weight:700}.student-auth-foot{text-align:center;color:var(--sp-muted);margin-top:20px}.student-auth-foot a{color:var(--sp-blue);font-weight:700}
.student-portal-shell{min-height:100vh;display:grid;grid-template-columns:260px minmax(0,1fr)}.student-sidebar{position:sticky;top:0;height:100vh;background:linear-gradient(180deg,#0d3154,#082846);padding:24px 18px;color:#fff;display:flex;flex-direction:column}.student-brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:#fff;padding:6px 8px 26px}.student-brand img{width:54px;height:54px;object-fit:cover;border-radius:14px;background:#fff}.student-brand b,.student-brand small{display:block}.student-brand small{font-size:11px;color:#bdd4e7;margin-top:3px}.student-sidebar nav{display:grid;gap:7px}.student-sidebar nav a{display:flex;gap:12px;align-items:center;padding:12px 14px;border-radius:14px;text-decoration:none;color:#dceaf5;font-weight:700}.student-sidebar nav a:hover,.student-sidebar nav a.active{background:#fff;color:var(--sp-navy)}.student-sidebar nav a span{width:24px;text-align:center}.student-logout{margin-top:auto;color:#fff;text-decoration:none;padding:12px 14px;border-radius:14px;background:rgba(255,255,255,.08)}.student-main{padding:30px 38px 60px;min-width:0}.student-topbar{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:24px}.student-eyebrow,.student-card-head span,.student-section-heading span,.student-hero-card>div>span{font-size:11px;letter-spacing:.14em;text-transform:uppercase;font-weight:800;color:var(--sp-orange)}.student-topbar h1{margin:5px 0 4px;color:var(--sp-navy);font-size:30px}.student-topbar p{margin:0;color:var(--sp-muted)}.student-mobile-logout{display:none}.student-mobile-nav{display:none}.student-hero-card{background:linear-gradient(135deg,#0d3154,#0b5e9c);color:#fff;padding:30px;border-radius:26px;display:flex;justify-content:space-between;align-items:center;box-shadow:0 18px 40px rgba(13,49,84,.15);overflow:hidden;position:relative}.student-hero-card:after{content:"";position:absolute;width:220px;height:220px;border-radius:50%;right:-80px;top:-100px;background:rgba(244,123,32,.28)}.student-hero-card h2{font-size:30px;margin:7px 0}.student-hero-card p{color:#d4e5f2;margin:0}.student-hero-stat{position:relative;z-index:1;text-align:right}.student-hero-stat b{font-size:26px;display:block}.student-hero-stat small{color:#d4e5f2}.student-kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:18px 0}.student-kpi-grid a{background:#fff;border:1px solid var(--sp-border);border-radius:20px;padding:20px;text-decoration:none;color:var(--sp-text);box-shadow:0 8px 25px rgba(27,50,75,.04)}.student-kpi-grid span{font-size:23px}.student-kpi-grid b{font-size:26px;color:var(--sp-navy);display:block;margin-top:12px}.student-kpi-grid small{color:var(--sp-muted)}.student-content-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.student-card{background:#fff;border:1px solid var(--sp-border);border-radius:22px;padding:22px;margin-bottom:18px;box-shadow:0 8px 28px rgba(28,48,70,.04)}.student-card-head,.student-section-heading{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-bottom:18px}.student-card-head h3,.student-section-heading h2{color:var(--sp-navy);margin:4px 0 0}.student-card-head a{color:var(--sp-blue);text-decoration:none;font-weight:700;font-size:13px}.student-list-row{display:flex;align-items:center;gap:12px;padding:13px 0;border-top:1px solid #eef2f6}.student-list-row:first-of-type{border-top:0}.student-list-row>div:nth-child(2){min-width:0;flex:1}.student-list-row b,.student-list-row span,.student-list-row small{display:block}.student-list-row span,.student-list-row small{font-size:12px;color:var(--sp-muted);margin-top:3px}.student-date-box,.student-icon-box{width:48px;height:48px;border-radius:14px;background:#edf5fb;color:var(--sp-blue);display:flex;flex-direction:column;align-items:center;justify-content:center;flex:none}.student-date-box b{font-size:18px}.student-date-box small{font-size:10px;margin:0}.student-chip{display:inline-flex!important;align-items:center;padding:6px 10px;border-radius:999px;background:#e9f4fc;color:var(--sp-blue)!important;font-weight:800!important;text-decoration:none;font-size:11px!important}.student-status{display:inline-flex!important;padding:6px 9px!important;border-radius:999px;font-weight:800!important;font-size:11px!important;white-space:nowrap}.student-status.paid,.student-status.approved{background:#e9f8ef;color:#17844a!important}.student-status.partial,.student-status.pending{background:#fff4dc;color:#996400!important}.student-status.unpaid,.student-status.rejected{background:#fdecec;color:#bb3030!important}.student-status.cancelled{background:#edf0f3;color:#697986!important}.student-empty{text-align:center;color:var(--sp-muted);padding:34px 10px}.student-section-heading{align-items:end;margin:6px 0 20px}.student-section-heading h2{font-size:31px}.student-section-heading p{color:var(--sp-muted);margin:6px 0 0}.student-balance{text-align:right;background:#fff;border:1px solid var(--sp-border);border-radius:18px;padding:14px 18px}.student-balance small,.student-balance b{display:block}.student-balance small{color:var(--sp-muted)}.student-balance b{font-size:22px;color:var(--sp-navy);margin-top:4px}.student-table-wrap{overflow:auto}.student-table{width:100%;border-collapse:collapse;min-width:720px}.student-table th{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:#7b8c9b;text-align:left;padding:11px;border-bottom:1px solid var(--sp-border)}.student-table td{padding:13px 11px;border-bottom:1px solid #edf1f5;font-size:14px}.student-table td small{display:block;color:var(--sp-muted);font-size:11px;margin-top:3px}.student-score{display:inline-flex;padding:7px 11px;border-radius:10px;background:#eef6fc;color:var(--sp-blue);font-weight:800}.student-payment-summary{display:flex;justify-content:space-between;border-radius:15px;background:#f4f8fb;padding:15px;margin-bottom:16px}.student-payment-summary b{font-size:20px;color:var(--sp-navy)}.student-payment-method-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:20px}.student-payment-method-grid article{border:1px solid var(--sp-border);border-radius:18px;padding:16px}.student-payment-method-grid article>span{font-size:10px;color:var(--sp-orange);font-weight:800;letter-spacing:.1em}.student-payment-method-grid h4{margin:5px 0 10px;color:var(--sp-navy)}.student-payment-method-grid b,.student-payment-method-grid small{display:block}.student-payment-method-grid small{color:var(--sp-muted);margin-top:4px}.student-payment-method-grid img{display:block;max-width:190px;max-height:190px;margin:10px auto;object-fit:contain}.student-cert-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.student-cert-card{background:linear-gradient(145deg,#fff,#f8fbfe);border:1px solid var(--sp-border);border-radius:24px;padding:22px;box-shadow:0 9px 30px rgba(20,45,72,.05)}.student-cert-icon{font-size:36px}.student-cert-card>span{font-size:11px;color:var(--sp-orange);font-weight:800}.student-cert-card h3{color:var(--sp-navy);margin:8px 0}.student-cert-card p{color:var(--sp-text);margin:0}.student-cert-card small{display:block;color:var(--sp-muted);margin:7px 0 16px}.student-profile-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.student-profile-grid>div{padding:13px;border:1px solid var(--sp-border);border-radius:14px}.student-profile-grid small,.student-profile-grid b{display:block}.student-profile-grid small{color:var(--sp-muted);font-size:11px;margin-bottom:4px}.student-profile-grid b{color:var(--sp-navy)}
@media(max-width:980px){.student-auth-shell{grid-template-columns:1fr}.student-auth-brand{display:none}.student-auth-card{margin:5vh auto;width:min(92%,520px)}.student-portal-shell{display:block}.student-sidebar{display:none}.student-main{padding:20px 16px 92px}.student-topbar h1{font-size:25px}.student-mobile-logout{display:inline-flex;text-decoration:none;color:var(--sp-blue);font-weight:800}.student-mobile-nav{display:flex;position:fixed;z-index:50;bottom:0;left:0;right:0;background:#fff;border-top:1px solid var(--sp-border);padding:7px 5px calc(7px + env(safe-area-inset-bottom));justify-content:space-around;box-shadow:0 -10px 30px rgba(17,42,66,.08)}.student-mobile-nav a{display:flex;flex-direction:column;align-items:center;gap:2px;color:#738391;text-decoration:none;font-size:18px}.student-mobile-nav a.active{color:var(--sp-blue)}.student-mobile-nav small{font-size:9px}.student-kpi-grid{grid-template-columns:repeat(2,1fr)}.student-content-grid{grid-template-columns:1fr}.student-cert-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:620px){.student-auth-card{padding:28px 22px}.student-hero-card{display:block}.student-hero-stat{text-align:left;margin-top:18px}.student-section-heading{display:block}.student-balance{text-align:left;margin-top:12px}.student-payment-method-grid,.student-cert-grid,.student-profile-grid{grid-template-columns:1fr}.student-kpi-grid a{padding:15px}.student-kpi-grid b{font-size:22px}}

/* v1.12: navigasi ke Bank Soal */
@media(max-width:980px){.student-mobile-nav a{min-width:0;flex:1 1 0;text-align:center}.student-mobile-nav a span{font-size:17px}.student-mobile-nav a small{font-size:8px;white-space:nowrap;letter-spacing:-.15px}}
@media(max-width:620px){.student-card-head{flex-wrap:wrap}.student-card-head .btn{margin-top:6px}}
