:root{--primary:#2563eb;--bg:#f6f7fb;--text:#172033;--muted:#667085;--card:#fff;--border:#e5e7eb;--danger:#dc2626;--success:#16a34a;--warning:#d97706;--info:#0284c7}
*{box-sizing:border-box}body{margin:0;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;background:var(--bg);color:var(--text);line-height:1.55}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}.container{max-width:1180px;margin:0 auto;padding:28px 18px}.topbar{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.9);backdrop-filter:blur(16px);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:12px 22px}.brand a{font-size:20px;font-weight:900;color:var(--text)}.brand small{display:block;color:var(--muted);font-size:12px;margin-top:-4px}.topbar nav{display:flex;gap:14px;align-items:center;flex-wrap:wrap}.topbar nav a{color:#334155;font-weight:650}.footer{text-align:center;color:var(--muted);padding:30px}.hero{display:grid;grid-template-columns:1.2fr .8fr;gap:28px;align-items:center;padding:54px 0}.hero h1{font-size:54px;line-height:1.02;margin:10px 0 18px;letter-spacing:-1.5px}.hero p{font-size:19px;color:#475467;max-width:720px}.hero-panel{background:#0f172a;color:white;padding:28px;border-radius:28px;box-shadow:0 20px 70px rgba(15,23,42,.25)}.hero-panel h3{margin-top:0}.eyebrow{display:inline-flex;background:rgba(37,99,235,.12);color:var(--primary);font-weight:800;border-radius:999px;padding:6px 12px;text-transform:uppercase;font-size:12px;letter-spacing:.6px}.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:22px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;background:var(--primary);color:#fff!important;padding:11px 17px;border-radius:12px;font-weight:800;cursor:pointer;box-shadow:0 10px 20px rgba(37,99,235,.18);text-decoration:none}.btn:hover{text-decoration:none;filter:brightness(.97)}.btn.ghost{background:#fff;color:var(--text)!important;border:1px solid var(--border);box-shadow:none}.btn.mini{padding:7px 10px;border-radius:9px;font-size:13px}.btn.block{width:100%}.card{background:var(--card);border:1px solid var(--border);border-radius:22px;padding:24px;box-shadow:0 10px 32px rgba(16,24,40,.05);margin-bottom:22px}.card.narrow{max-width:520px;margin:28px auto}.card.wide{max-width:980px;margin:22px auto}.mini-card{background:#f8fafc;border:1px solid var(--border);border-radius:16px;padding:18px}.grid{display:grid;gap:18px}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}.page-head{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:20px}.page-head h1{margin:0}.page-head p{margin:4px 0 0;color:var(--muted)}h1,h2,h3{line-height:1.2}h1{font-size:36px;margin-top:0}h2{font-size:24px}p.muted,.muted{color:var(--muted)}.lead{font-size:18px;color:#475467}.checklist{padding:0;margin:0;list-style:none}.checklist li{margin:12px 0;padding-left:28px;position:relative}.checklist li:before{content:"✓";position:absolute;left:0;top:0;color:#22c55e;font-weight:900}label{display:block;font-weight:750;margin:12px 0 6px}input,select,textarea{width:100%;border:1px solid #d0d5dd;border-radius:12px;padding:11px 12px;font:inherit;background:#fff;color:var(--text)}textarea{resize:vertical}.grid-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 16px}.grid-form label{margin:0}.grid-form .full{grid-column:1/-1}.alert{padding:12px 14px;border-radius:12px;margin:12px 0;font-weight:700}.alert.success{background:#dcfce7;color:#166534}.alert.danger{background:#fee2e2;color:#991b1b}.alert.warning{background:#fef3c7;color:#92400e}.alert.info{background:#dbeafe;color:#1d4ed8}.badge{display:inline-flex;border-radius:999px;padding:4px 9px;font-size:12px;font-weight:800;text-transform:capitalize;background:#f1f5f9;color:#475569}.badge.success{background:#dcfce7;color:#166534}.badge.danger{background:#fee2e2;color:#991b1b}.badge.warning{background:#fef3c7;color:#92400e}.badge.info{background:#e0f2fe;color:#075985}.badge.muted{background:#f1f5f9;color:#64748b}.stat{background:#fff;border:1px solid var(--border);border-radius:22px;padding:22px;box-shadow:0 10px 32px rgba(16,24,40,.05)}.stat b{display:block;font-size:32px;line-height:1;color:var(--primary)}.stat span{color:var(--muted);font-weight:700}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse}th,td{text-align:left;border-bottom:1px solid var(--border);padding:11px 10px;vertical-align:top}th{font-size:13px;color:#475467;background:#f8fafc}tr:hover td{background:#fcfcfd}.inline-form{display:flex;gap:7px;align-items:center;flex-wrap:wrap}.inline-form select,.inline-form input{width:auto;min-width:120px}.public-program{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:22px;align-items:start}.poster{width:100%;max-height:430px;object-fit:cover;border-radius:18px;margin-bottom:18px;border:1px solid var(--border)}.info-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:18px 0}.info-grid div{background:#f8fafc;border:1px solid var(--border);border-radius:14px;padding:13px}.info-grid b{display:block;font-size:12px;color:#667085;text-transform:uppercase;letter-spacing:.3px}.info-grid span{font-weight:750}.side-signup{position:sticky;top:86px}.center{text-align:center}.qr-img{max-width:100%;border-radius:12px}.qr-fallback{font-size:12px;background:#f8fafc;border:1px dashed var(--border);padding:12px;border-radius:12px}.breakword{word-break:break-all}.big-number{font-size:44px;font-weight:900;color:var(--primary);margin:0}blockquote{border-left:4px solid var(--primary);padding:10px 14px;margin:12px 0;background:#f8fafc;border-radius:0 12px 12px 0}.verified{border-color:#bbf7d0;background:#f0fdf4}@media(max-width:900px){.hero,.public-program,.grid.two,.grid.three,.grid.four{grid-template-columns:1fr}.hero h1{font-size:38px}.topbar{align-items:flex-start;gap:10px;flex-direction:column}.side-signup{position:static}.info-grid{grid-template-columns:1fr}.grid-form{grid-template-columns:1fr}}
/* V1.2.0 polish */
body{background:radial-gradient(circle at top left,#eef6ff 0,#f7f9fd 34%,#f6f7fb 100%)}
.hero{position:relative}.hero:before{content:"";position:absolute;inset:16px -50px auto auto;width:330px;height:330px;background:radial-gradient(circle,rgba(20,184,166,.16),transparent 70%);pointer-events:none}.hero h1 span,.text-gradient{background:linear-gradient(90deg,#2563eb,#14b8a6);-webkit-background-clip:text;background-clip:text;color:transparent}.hero-panel{background:linear-gradient(145deg,#0f172a,#111c38);border:1px solid rgba(255,255,255,.08)}.topbar{box-shadow:0 10px 35px rgba(15,23,42,.05)}.card,.stat{transition:.18s transform,.18s box-shadow}.card:hover,.stat:hover{transform:translateY(-1px);box-shadow:0 16px 45px rgba(16,24,40,.08)}.btn.danger{background:#dc2626}.btn.success{background:#16a34a}.btn.warning{background:#d97706}.toolbar{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.kpi-label{font-size:12px;text-transform:uppercase;letter-spacing:.5px;color:#64748b;font-weight:900}.progress{height:9px;background:#e5e7eb;border-radius:99px;overflow:hidden}.progress>i{display:block;height:100%;background:linear-gradient(90deg,#2563eb,#14b8a6)}.empty{padding:26px;border:1px dashed #cbd5e1;border-radius:16px;background:#f8fafc;color:#64748b;text-align:center}.notice-install{background:#fff7ed;color:#9a3412;border:1px solid #fed7aa}.print-only{display:none}@media print{.topbar,.footer,.btn,.actions,.no-print{display:none!important}.print-only{display:block}.card{box-shadow:none;border:0}.container{max-width:none;padding:0}body{background:white}}

/* V1.3.0 Modul Kursus */
.checkline{display:flex!important;gap:10px;align-items:center;background:#f8fafc;border:1px solid var(--border);border-radius:12px;padding:11px 12px;font-weight:800}.checkline input{width:auto}.page-head .actions{margin-top:0}.mini-card small{color:var(--muted)}.program-side .mini-card{margin-bottom:12px}.table-wrap small.breakword,.breakword{overflow-wrap:anywhere}.full small{display:block;margin-top:6px;color:var(--muted);font-weight:600}.card.wide .alert a{font-weight:900;color:inherit;text-decoration:underline}
