:root{--ink:#1a2332;--mut:#5b6472;--line:#e3e7ee;--bg:#f5f7fa;--card:#ffffff;--acc:#2563eb;--ok:#16a34a}*{box-sizing:border-box;margin:0;padding:0}body{font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--ink);line-height:1.55}.wrap{max-width:980px;margin:0 auto;padding:32px 20px 64px}header.top{margin-bottom:28px}header.top h1{font-size:22px;letter-spacing:-.01em}header.top p{color:var(--mut);font-size:14px;margin-top:4px}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));grid-gap:14px;gap:14px}.card{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:16px;display:flex;flex-direction:column;gap:6px}.card .tag{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--mut)}.card h2{font-size:15px}.card p{font-size:13px;color:var(--mut)}.card .row{margin-top:auto;padding-top:8px;display:flex;justify-content:space-between;align-items:center}.st{font-size:12px;font-weight:600;padding:3px 8px;border-radius:999px}.st.ok{color:var(--ok);background:#dcfce7}.st.soon{color:var(--mut);background:#eef1f5}a.btn,button.btn{font-size:13px;font-weight:600;color:var(--acc);text-decoration:none;background:#eff4ff;border:1px solid #dbe6ff;padding:6px 12px;border-radius:7px;cursor:pointer;transition:background .15s}a.btn:hover,button.btn:hover{background:#dfeaff}.notice{margin-top:28px;font-size:12.5px;color:var(--mut);border:1px dashed var(--line);border-radius:8px;padding:10px 14px;background:#fff}.page-head{display:flex;align-items:baseline;gap:12px;margin-bottom:18px}.page-head h1{font-size:20px}.page-head a{font-size:13px;color:var(--acc);text-decoration:none}.panel{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:18px}.dim{color:var(--mut);font-size:13px}@media print{body{background:#fff}.no-print{display:none!important}.wrap{max-width:none;padding:0}}.rapor-sheet{background:#fff;border:1px solid var(--line);border-radius:6px;padding:34px 38px}.rapor-kop{text-align:center;border-bottom:3px double #1a2332;padding-bottom:10px;margin-bottom:16px}.rapor-kop h2{font-size:17px;letter-spacing:.04em}.rapor-kop p{font-size:12px;color:var(--mut);margin-top:2px}table.rapor-id{font-size:13px;margin-bottom:14px}table.rapor-id td{padding:2px 10px 2px 0}table.rapor-nilai{width:100%;border-collapse:collapse;font-size:12.5px}table.rapor-nilai td,table.rapor-nilai th{border:1px solid #b9c2cf;padding:6px 8px;vertical-align:top}table.rapor-nilai th{background:#eef1f6;font-size:11.5px;text-transform:uppercase;letter-spacing:.04em}.rapor-ttd{display:flex;justify-content:space-between;margin-top:36px;font-size:13px;text-align:center}.rapor-demo{margin-top:18px;font-size:10px;color:#b6bcc7;text-align:right}@media print{.rapor-sheet{border:none;border-radius:0;padding:0}@page{size:A4;margin:18mm 16mm}}.kartu-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));grid-gap:14px;gap:14px}.kartu{background:#fff;border:1px solid var(--line);border-radius:10px;overflow:hidden}.kartu-head{background:var(--acc);color:#fff;padding:10px 14px}.kartu-head h3{font-size:13.5px}.kartu-head p{font-size:10.5px;opacity:.85}.kartu-body{display:flex;gap:12px;padding:12px 14px;font-size:12.5px}.kartu-foto{width:74px;height:98px;border:1px solid var(--line);border-radius:4px;flex:none;display:flex;align-items:center;justify-content:center;color:#b6bcc7;font-size:10px;background:#f8fafc}.kartu-body table td{padding:2px 8px 2px 0}.kartu-foot{border-top:1px dashed var(--line);padding:8px 14px;font-size:11px;color:var(--mut)}@media print{.kartu-grid{grid-template-columns:1fr 1fr;gap:8mm}.kartu{page-break-inside:avoid;break-inside:avoid}}.sert-wrap{display:grid;grid-gap:18px;gap:18px}.sertifikat{background:#fff;border:6px double #b7a04a;padding:40px 48px;text-align:center;position:relative}.sertifikat .sert-org{font-size:12px;letter-spacing:.25em;text-transform:uppercase;color:#8a7a3a}.sertifikat h3{font-size:30px;letter-spacing:.12em;margin:14px 0 6px}.sertifikat .sert-diberi{font-size:12.5px;color:var(--mut)}.sertifikat .sert-nama{font-size:24px;font-weight:700;margin:10px 0 2px}.sertifikat .sert-isi{font-size:13.5px;max-width:520px;margin:6px auto 0}.sertifikat .sert-no{position:absolute;top:14px;left:24px;font-size:10px;color:#8a7a3a}@media print{.sertifikat{border-width:4px;padding:24mm 20mm;page-break-inside:avoid;break-inside:avoid}@page{size:A4 landscape;margin:10mm}}.jadwal-out{display:grid;grid-gap:14px;gap:14px}.jadwal-day{background:#fff;border:1px solid var(--line);border-radius:10px;overflow:hidden}.jadwal-day h4{font-size:13px;padding:10px 14px;background:#eef1f6;border-bottom:1px solid var(--line)}.jadwal-day table{width:100%;border-collapse:collapse;font-size:12.5px}.jadwal-day td,.jadwal-day th{padding:7px 14px;border-bottom:1px solid var(--line);text-align:left}.jadwal-day tr:last-child td{border-bottom:none}.jd-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));grid-gap:12px;gap:12px}.jd-form label{font-size:12.5px;font-weight:600;display:grid;grid-gap:4px;gap:4px}.trace-stat{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));grid-gap:10px;gap:10px;margin:14px 0}.trace-box{background:#fff;border:1px solid var(--line);border-radius:8px;padding:12px 14px}.trace-box b{font-size:22px;display:block}.trace-box span{font-size:12px;color:var(--mut)}.tbar{height:10px;background:#eef1f5;border-radius:999px;overflow:hidden;margin-top:6px}.tbar>i{display:block;height:100%;background:var(--acc)}.al-tahun{font-size:14px;margin-bottom:10px}.al-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));grid-gap:8px;gap:8px}.al-card{position:relative;background:#fff;border:1px solid var(--line);border-radius:8px;padding:10px 12px;display:flex;flex-direction:column;gap:2px}.al-card b{font-size:13px}.al-card span{font-size:12px;color:var(--mut)}.al-badge{position:absolute;top:-7px;right:8px;font-style:normal;font-size:10px;font-weight:600;color:var(--ok);background:#dcfce7;padding:1px 7px;border-radius:999px}.ev-hero{text-align:center;padding:26px 18px;margin-bottom:14px}.ev-hero .tag{font-size:11.5px;color:var(--mut)}.ev-hero h2{font-size:21px;margin:6px 0 8px}.ev-hero p{max-width:560px;margin:0 auto}.ev-cd{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:14px}.ev-tile{min-width:74px;text-align:center}.ev-tile b{font-size:24px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}