*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:#f8fafc;color:#1e293b}button{cursor:pointer;font-family:inherit}input,select,textarea{font-family:inherit}.app{display:flex;height:100vh;overflow:hidden}.sidebar{width:220px;min-width:220px;background:#1e293b;color:#fff;display:flex;flex-direction:column;padding:0}.sidebarBrand{display:flex;align-items:center;gap:12px;padding:24px 16px;border-bottom:1px solid #334155}.sidebarBrand h2{font-size:15px;font-weight:700;color:#f1f5f9}.sidebarBrand p{font-size:11px;color:#94a3b8;margin-top:2px}.brandDot{width:32px;height:32px;border-radius:8px;flex-shrink:0}.sidebar nav{display:flex;flex-direction:column;gap:2px;padding:12px 8px;flex:1}.sidebar nav button{background:none;border:none;color:#94a3b8;text-align:left;padding:10px 12px;border-radius:8px;font-size:14px;font-weight:500;transition:all .15s}.sidebar nav button:hover{background:#334155;color:#f1f5f9}.sidebar nav button.active{background:#16a34a;color:#fff}.sidebarUser{padding:16px;border-top:1px solid #334155}.sidebarUser p{font-size:13px;color:#94a3b8;margin-bottom:8px}.sidebarUser button{background:none;border:1px solid #334155;color:#94a3b8;padding:6px 12px;border-radius:6px;font-size:12px}.sidebarUser button:hover{border-color:#ef4444;color:#ef4444}.main{flex:1;overflow-y:auto;padding:24px}.topBar{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:24px;gap:16px;flex-wrap:wrap}.topBar h1{font-size:22px;font-weight:700;color:#0f172a}.topBar p{font-size:14px;color:#64748b;margin-top:2px}.summaryGrid{display:grid;gap:16px;margin-bottom:24px}.summaryCard{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:20px}.summaryCard p{font-size:12px;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.4px}.summaryCard h2{font-size:28px;font-weight:700;color:#0f172a;margin-top:6px}.tableCard{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:20px;margin-bottom:20px}.tableCard h3{font-size:15px;font-weight:600;color:#0f172a;margin-bottom:16px}table{width:100%;border-collapse:collapse;font-size:14px}th{text-align:left;padding:10px 12px;font-size:11px;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.4px;border-bottom:1px solid #e2e8f0}td{padding:10px 12px;border-bottom:1px solid #f1f5f9;vertical-align:middle}tr:last-child td{border-bottom:none}.emptyRow{text-align:center;color:#94a3b8;padding:32px!important}.btn{padding:8px 16px;border-radius:8px;border:none;font-size:13px;font-weight:600;background:#16a34a;color:#fff;transition:background .15s}.btn:hover{background:#15803d}.btn.secondary{background:#f1f5f9;color:#334155}.btn.secondary:hover{background:#e2e8f0}.btn.danger{background:#ef4444}.btn.danger:hover{background:#dc2626}.saveBtn{padding:8px 16px;border-radius:8px;border:none;font-size:13px;font-weight:600;background:#16a34a;color:#fff}.saveBtn:hover{background:#15803d}.deleteBtn{padding:6px 12px;border-radius:6px;border:none;font-size:12px;font-weight:600;background:#fee2e2;color:#ef4444}.deleteBtn:hover{background:#fecaca}.badge{display:inline-block;padding:2px 8px;border-radius:9999px;font-size:11px;font-weight:600;text-transform:capitalize}.badge-pending{background:#fef9c3;color:#854d0e}.badge-confirmed{background:#dbeafe;color:#1e40af}.badge-attended{background:#dcfce7;color:#166534}.badge-cancelled{background:#f1f5f9;color:#64748b}.badge-upcoming{background:#e0f2fe;color:#0369a1}.badge-active{background:#dcfce7;color:#166534}.badge-past{background:#f1f5f9;color:#64748b}.badge-artist{background:#faf5ff;color:#7e22ce}.badge-golfer{background:#fff7ed;color:#c2410c}.badge-family{background:#ecfdf5;color:#065f46}.formRow{display:grid;gap:12px;margin-bottom:12px}.formRow.cols2{grid-template-columns:1fr 1fr}.formRow.cols3{grid-template-columns:1fr 1fr 1fr}label{display:flex;flex-direction:column;gap:4px;font-size:12px;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.4px}input,select,textarea{padding:8px 12px;border:1px solid #e2e8f0;border-radius:8px;font-size:14px;color:#1e293b;background:#fff;outline:none;transition:border-color .15s}input:focus,select:focus,textarea:focus{border-color:#16a34a}textarea{resize:vertical;min-height:80px}.modalOverlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;z-index:100;display:flex;align-items:center;justify-content:center;padding:16px}.modal{background:#fff;border-radius:16px;padding:28px;width:100%;max-width:520px;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px #00000040}.modal h2{font-size:18px;font-weight:700;margin-bottom:20px}.modalActions{display:flex;justify-content:flex-end;gap:8px;margin-top:20px}.filterBar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:16px}.filterBar input,.filterBar select{padding:8px 12px;border:1px solid #e2e8f0;border-radius:8px;font-size:13px}.filterBtn{padding:7px 14px;border-radius:8px;border:1px solid #e2e8f0;background:#fff;font-size:13px;font-weight:500;color:#64748b}.filterBtn.active{background:#16a34a;color:#fff;border-color:#16a34a}.publicPage{min-height:100vh;background:#f0fdf4}.publicHeader{background:linear-gradient(135deg,#16a34a,#15803d);color:#fff;padding:40px 24px;text-align:center}.publicHeader h1{font-size:32px;font-weight:800;margin-bottom:8px}.publicHeader p{font-size:16px;color:#bbf7d0}.publicContainer{max-width:860px;margin:0 auto;padding:32px 16px}.eventCard{background:#fff;border-radius:16px;border:1px solid #d1fae5;padding:24px;margin-bottom:20px;box-shadow:0 2px 8px #16a34a14}.eventCard h2{font-size:20px;font-weight:700;color:#0f172a;margin-bottom:8px}.eventMeta{display:flex;gap:16px;flex-wrap:wrap;margin:12px 0}.eventMeta span{font-size:13px;color:#64748b;display:flex;align-items:center;gap:4px}.feesGrid{display:flex;gap:10px;flex-wrap:wrap;margin:12px 0}.feeBadge{padding:4px 12px;border-radius:9999px;font-size:12px;font-weight:600}.feeBadge.artist{background:#faf5ff;color:#7e22ce}.feeBadge.golfer{background:#fff7ed;color:#c2410c}.feeBadge.family{background:#ecfdf5;color:#065f46}.registerBtn{display:inline-block;background:#16a34a;color:#fff;padding:10px 24px;border-radius:10px;text-decoration:none;font-weight:700;font-size:14px;border:none;transition:background .15s}.registerBtn:hover{background:#15803d}.regFormCard{background:#fff;border-radius:16px;border:1px solid #d1fae5;padding:28px;box-shadow:0 4px 16px #16a34a14}.regFormCard h2{font-size:20px;font-weight:700;margin-bottom:4px}.regFormCard .sub{color:#64748b;font-size:14px;margin-bottom:24px}.mpesaBox{background:#f0fdf4;border:1px solid #bbf7d0;border-radius:12px;padding:16px;margin:16px 0}.mpesaBox h4{font-size:13px;font-weight:700;color:#15803d;margin-bottom:8px}.mpesaBox p{font-size:13px;color:#166534;line-height:1.6}.mpesaBox strong{font-size:20px;color:#15803d}.confirmCard{background:#fff;border-radius:16px;border:1px solid #d1fae5;padding:32px;text-align:center;box-shadow:0 4px 16px #16a34a14}.confirmIcon{font-size:48px;margin-bottom:12px}.confirmCard h2{font-size:22px;font-weight:700;margin-bottom:8px}.confirmCard p{color:#64748b;font-size:14px;line-height:1.6}.qrImage{width:200px;height:200px;border:6px solid #f0fdf4;border-radius:12px;margin:16px auto;display:block}.checkinSuccess{background:#f0fdf4;border:2px solid #16a34a;border-radius:12px;padding:24px;text-align:center;margin-bottom:20px}.checkinSuccess h3{color:#16a34a;font-size:20px;margin-bottom:8px}.checkinError{background:#fef2f2;border:2px solid #ef4444;border-radius:12px;padding:20px;text-align:center;margin-bottom:20px}.checkinError p{color:#ef4444;font-size:15px}.progressBarTrack{background:#e2e8f0;border-radius:9999px;height:6px;margin-top:8px;overflow:hidden}.progressBarFill{background:#16a34a;height:100%;border-radius:9999px;transition:width .3s}.errMsg{color:#ef4444;font-size:13px;margin-top:8px}.infoBox{background:#eff6ff;border:1px solid #bfdbfe;border-radius:8px;padding:12px 16px;font-size:13px;color:#1e40af}
