:root{--teal:#0f766e;--teal-dark:#115e59;--ink:#12312e;--muted:#64748b;--bg:#eef6f4;--card:#fff;--line:#d9e7e3;--green:#16a34a;--red:#dc2626;--orange:#ea580c;--blue:#2563eb}*{box-sizing:border-box}body{margin:0;font-family:Arial,Helvetica,sans-serif;background:var(--bg);color:var(--ink)}button,input,select{font:inherit}.student-app{display:grid;grid-template-columns:280px 1fr;min-height:100vh}.student-sidebar{background:linear-gradient(180deg,#0d625b,#0b514c);color:#fff;padding:28px 20px;position:sticky;top:0;height:100vh;display:flex;flex-direction:column}.student-brand,.login-brand{display:flex;align-items:center;gap:14px}.student-brand>span,.login-brand>span{width:58px;height:58px;border-radius:18px;background:#fff;color:var(--teal-dark);display:grid;place-items:center;font-family:Georgia,serif;font-size:30px;font-weight:700}.student-brand strong,.login-brand strong{display:block;font-size:20px}.student-brand small,.login-brand small{font-size:11px;font-weight:700;letter-spacing:1.5px;color:#9ee9df}.student-sidebar nav{display:grid;gap:6px;margin-top:32px}.student-sidebar nav a,.student-sidebar-foot button{display:flex;align-items:center;gap:13px;padding:13px 15px;border-radius:13px;color:#fff;text-decoration:none;font-weight:700;background:transparent;border:0;width:100%;cursor:pointer}.student-sidebar nav a span,.student-sidebar-foot button span{width:24px;text-align:center;color:#9ee9df}.student-sidebar nav a.active{background:#fff;color:var(--teal-dark)}.student-sidebar nav a.active span{color:var(--teal)}.student-sidebar-foot{margin-top:auto;border-top:1px solid #ffffff22;padding-top:16px}.student-sidebar-foot small{display:block;margin:13px 14px;color:#9ee9df}.student-page{min-width:0}.student-topbar{height:106px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 38px;gap:15px;position:sticky;top:0;z-index:10}.student-topbar>div{display:grid;gap:5px}.student-topbar small{color:var(--muted)}.student-avatar{margin-left:auto;width:54px;height:54px;border-radius:17px;background:var(--teal);color:#fff;display:grid;place-items:center;font-weight:800}.mobile-menu{display:none;border:0;background:transparent;font-size:24px}.student-content{padding:34px 38px 60px;max-width:1500px}.student-heading{margin-bottom:25px}.student-heading p{text-transform:uppercase;letter-spacing:2px;font-size:11px;font-weight:800;color:var(--teal);margin:0 0 8px}.student-heading h1{font-family:Georgia,serif;font-size:38px;margin:0 0 8px}.student-heading span{color:var(--muted)}.student-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:20px}.student-metrics article{background:#fff;border:1px solid var(--line);border-radius:20px;padding:20px;display:flex;gap:14px;align-items:center}.student-metrics article>span{width:48px;height:48px;border-radius:15px;background:#dff7f1;color:var(--teal);display:grid;place-items:center;font-weight:800}.student-metrics small,.student-metrics strong{display:block}.student-metrics small{color:var(--muted);margin-bottom:4px}.student-metrics strong{font-size:20px}.student-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-bottom:20px}.student-card{background:#fff;border:1px solid var(--line);border-radius:24px;padding:25px;margin-bottom:20px}.card-head{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:20px}.card-head small{color:var(--teal);font-weight:800;text-transform:uppercase;letter-spacing:1px}.card-head h2{font-family:Georgia,serif;font-size:26px;margin:4px 0 0}.card-head a{color:var(--teal);font-weight:700;text-decoration:none}.card-head form{display:flex;gap:8px}.card-head input,.card-head button{padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:#fff}.empty{padding:26px;text-align:center;color:var(--muted);background:#f8fbfa;border-radius:16px}.today-list,.schedule-day ol{list-style:none;padding:0;margin:0;display:grid;gap:9px}.today-list li,.schedule-day li{display:flex;align-items:center;gap:13px;padding:12px;background:#f7faf9;border-radius:13px}.today-list b,.schedule-day li>b{width:34px;height:34px;border-radius:11px;background:var(--teal);color:#fff;display:grid;place-items:center}.today-list strong,.today-list small,.schedule-day strong,.schedule-day small{display:block}.today-list small,.schedule-day small{color:var(--muted);margin-top:3px}.compact-list{display:grid;gap:10px}.compact-list>div{display:grid;gap:3px;padding:10px 0;border-bottom:1px solid var(--line)}.compact-list time,.compact-list small{color:var(--muted);font-size:12px}.journal-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.journal-list article{padding:16px;background:#f7faf9;border-radius:15px}.journal-list time,.journal-list small{color:var(--muted);font-size:12px}.journal-list h3{margin:8px 0}.journal-list p{line-height:1.5}.attendance-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:20px}.attendance-summary div{padding:18px;text-align:center;border-radius:16px;background:#f0fdf4}.attendance-summary .sakit{background:#fff7ed}.attendance-summary .izin{background:#eff6ff}.attendance-summary .alpa{background:#fff1f2}.attendance-summary strong,.attendance-summary span{display:block}.attendance-summary strong{font-size:26px}.responsive-table{overflow:auto}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:13px;border-bottom:1px solid var(--line)}th{font-size:12px;color:var(--muted);text-transform:uppercase}.status-pill{display:inline-flex;padding:5px 9px;border-radius:999px;background:#edf2f1;font-size:12px;font-weight:700}.status-pill.hadir{background:#dcfce7;color:#166534}.status-pill.sakit{background:#ffedd5;color:#9a3412}.status-pill.izin{background:#dbeafe;color:#1d4ed8}.status-pill.alpa{background:#fee2e2;color:#991b1b}.balance-hero{background:linear-gradient(135deg,#0f766e,#115e59);color:#fff;border-radius:25px;padding:30px;margin-bottom:20px}.balance-hero small,.balance-hero strong,.balance-hero span{display:block}.balance-hero strong{font-size:38px;margin:8px 0}.balance-hero span{color:#b8efe7}.transaction-list{display:grid;gap:8px}.transaction-list article{display:grid;grid-template-columns:45px 1fr auto;gap:12px;align-items:center;padding:13px;border-radius:14px;background:#f8faf9}.transaction-list article>span{width:40px;height:40px;border-radius:13px;display:grid;place-items:center;background:#dcfce7;color:#166534}.transaction-list article.withdrawal>span{background:#fee2e2;color:#991b1b}.transaction-list strong,.transaction-list small{display:block}.transaction-list small{color:var(--muted);margin-top:3px}.transaction-list b{color:#166534}.transaction-list .withdrawal b{color:#991b1b}.transaction-list .canceled{opacity:.5;text-decoration:line-through}.schedule-day{margin-bottom:20px}.schedule-day h3{border-bottom:1px solid var(--line);padding-bottom:8px}.schedule-day>p{color:var(--muted)}.picket-days{display:grid;gap:10px}.picket-days>div{display:flex;align-items:center;gap:12px;padding:16px;background:#f0fdfa;border-radius:15px}.picket-days span{font-size:24px;color:var(--teal)}.picket-days strong,.picket-days small{display:block}.picket-days small{margin-left:auto;color:var(--muted)}.agenda-timeline{display:grid;gap:12px}.agenda-timeline article{display:grid;grid-template-columns:65px 1fr;gap:16px;padding:15px;background:#f8faf9;border-radius:16px}.agenda-timeline article.canceled{opacity:.55}.agenda-timeline time{width:60px;height:60px;border-radius:15px;background:var(--teal);color:#fff;display:grid;place-items:center}.agenda-timeline time strong,.agenda-timeline time small{display:block;text-align:center}.agenda-timeline h3{margin:8px 0}.agenda-timeline p{color:var(--muted);line-height:1.5}.privacy-note{padding:13px 15px;background:#eff6ff;color:#1e40af;border-radius:13px;margin-bottom:15px}.shared-note-list{display:grid;gap:14px}.shared-note-list article{padding:18px;border:1px solid var(--line);border-radius:17px}.shared-note-list article>div{display:flex;justify-content:space-between;gap:10px}.shared-note-list time{color:var(--muted);font-size:12px}.shared-note-list h3{margin:12px 0}.shared-note-list p{line-height:1.6}.shared-note-list aside{background:#f0fdfa;border-radius:13px;padding:13px;margin-top:12px}.profile-list{margin:0;display:grid}.profile-list>div{display:grid;grid-template-columns:160px 1fr;gap:15px;padding:13px 0;border-bottom:1px solid var(--line)}.profile-list dt{color:var(--muted)}.profile-list dd{margin:0;font-weight:700;line-height:1.5}.profile-help{color:var(--muted)}.menu-backdrop{display:none}.login-body{min-height:100vh;background:linear-gradient(135deg,#e8f6f2,#f8fafc);display:grid;place-items:center;padding:20px}.login-shell{width:min(460px,100%)}.login-card{background:#fff;border:1px solid var(--line);border-radius:28px;padding:34px;box-shadow:0 25px 70px #0f766e18}.login-brand>div{display:grid}.login-brand strong{color:var(--ink);font-size:22px}.login-brand small{color:var(--teal)}.login-intro{color:var(--muted);line-height:1.6;margin:25px 0}.login-form{display:grid;gap:15px}.login-form label{display:grid;gap:7px;font-weight:700}.login-form input,.login-form select{width:100%;padding:13px;border:1px solid #cbd5e1;border-radius:12px;background:#fff}.login-form button{padding:14px;border:0;border-radius:13px;background:var(--teal);color:#fff;font-weight:800;cursor:pointer}.login-help{font-size:12px;color:var(--muted);line-height:1.5;margin:18px 0 0}.student-alert{padding:12px 14px;border-radius:12px;margin-bottom:15px}.student-alert.error{background:#fee2e2;color:#991b1b}@media(max-width:1050px){.student-app{display:block}.student-sidebar{position:fixed;z-index:40;width:280px;transform:translateX(-100%);transition:.2s}.menu-open .student-sidebar{transform:translateX(0)}.mobile-menu{display:block}.menu-backdrop{position:fixed;inset:0;z-index:30;border:0;background:#0f172a88}.menu-open .menu-backdrop{display:block}.student-topbar{padding:0 18px;height:82px}.student-content{padding:22px 16px 50px}.student-metrics{grid-template-columns:repeat(2,1fr)}.journal-list{grid-template-columns:1fr}}@media(max-width:700px){.student-heading h1{font-size:29px}.student-grid{grid-template-columns:1fr}.student-metrics{grid-template-columns:1fr}.student-card{padding:18px;border-radius:19px}.card-head{align-items:flex-start}.attendance-summary{grid-template-columns:repeat(2,1fr)}.profile-list>div{grid-template-columns:1fr;gap:5px}.journal-list{grid-template-columns:1fr}.transaction-list article{grid-template-columns:42px 1fr}.transaction-list b{grid-column:2}.student-avatar{width:44px;height:44px}.student-topbar>div strong{font-size:13px}.student-topbar>div small{font-size:11px}}

/* v1.2.2: pembayaran siswa */
.student-metrics{grid-template-columns:repeat(5,minmax(0,1fr))}.payment-student-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.student-bill-list{display:grid;gap:12px}.student-bill-list>article{display:grid;grid-template-columns:1fr 190px;gap:14px;padding:16px;border:1px solid var(--line);border-radius:16px}.student-bill-list h3{margin:10px 0 5px}.student-bill-list small{color:var(--muted)}.student-bill-list aside{display:grid;justify-items:end;gap:5px;text-align:right}.student-bill-list aside strong{font-size:18px}.student-bill-list aside b{color:#991b1b}.student-bill-list article.paid aside b,.student-bill-list article.waived aside b{color:#166534}.status-pill.partial{background:#fef3c7;color:#92400e}.status-pill.paid,.status-pill.waived{background:#dcfce7;color:#166534}.status-pill.unpaid{background:#fee2e2;color:#991b1b}.status-pill.canceled{background:#e5e7eb;color:#4b5563}.student-payment-history{display:grid;gap:9px}.student-payment-history article{display:grid;grid-template-columns:42px 1fr 110px;gap:12px;align-items:center;padding:13px;background:#f8faf9;border-radius:14px}.student-payment-history article>span{width:40px;height:40px;border-radius:12px;background:#dcfce7;color:#166534;display:grid;place-items:center;font-weight:800}.student-payment-history small,.student-payment-history strong{display:block}.student-payment-history small{color:var(--muted);margin-top:4px}.student-payment-history aside{display:grid;justify-items:end;gap:5px}.student-payment-history aside a{color:var(--teal);font-weight:700;text-decoration:none}.student-payment-history .canceled{opacity:.5;text-decoration:line-through}@media(max-width:1200px){.student-metrics{grid-template-columns:repeat(3,1fr)}}@media(max-width:700px){.student-metrics,.payment-student-metrics{grid-template-columns:1fr}.student-bill-list>article{grid-template-columns:1fr}.student-bill-list aside{justify-items:start;text-align:left}.student-payment-history article{grid-template-columns:42px 1fr}.student-payment-history aside{grid-column:2;justify-items:start}}
@media(max-width:1050px) and (min-width:701px){.student-metrics{grid-template-columns:repeat(2,1fr)}}


/* v1.2.3 - keamanan akun */
.student-alert.success{background:#ecfdf5;border:1px solid #a7e4cf;color:#08664d;margin-bottom:16px}.security-grid{align-items:start}.security-form{display:grid;gap:14px}.security-form label{display:grid;gap:6px;font-weight:700;font-size:13px}.security-form input{width:100%;padding:12px 13px;border:1px solid #c9dcd9;border-radius:12px;font:inherit}.security-form input:focus{outline:2px solid #73cdb8;border-color:transparent}.security-form label small{color:#718783;font-weight:400}.security-form button{border:0;background:#0f766e;color:#fff;padding:12px 16px;border-radius:12px;font-weight:800;cursor:pointer}.security-form button:hover{background:#0b625c}

/* v1.2.6.5 — copyright portal siswa */
.student-copyright{display:flex;align-items:center;justify-content:center;gap:7px;margin:0 38px 22px;padding:14px 12px;border-top:1px solid var(--line);color:var(--muted);text-align:center;font-size:12px}
.student-copyright span{font-weight:800;color:var(--teal-dark)}
.student-copyright small{font-size:12px}
.student-copyright small::before{content:'·';margin-right:7px;color:#94a3b8}
.login-shell .student-copyright{margin:16px 4px 0;border-top:0;padding:4px 8px}
@media(max-width:700px){.student-copyright{flex-direction:column;gap:2px;margin:0 16px 16px}.student-copyright small::before{display:none}}
@media print{.student-copyright{display:none!important}}
