{"id":279,"date":"2026-08-31T10:18:57","date_gmt":"2026-08-31T10:18:57","guid":{"rendered":"https:\/\/massgraduates.com\/?page_id=279"},"modified":"2026-09-01T03:45:04","modified_gmt":"2026-09-01T03:45:04","slug":"categorized-pyqs-launchpad","status":"publish","type":"page","link":"https:\/\/massgraduates.com\/index.php\/categorized-pyqs-launchpad\/","title":{"rendered":"categorized pyqs launchpad"},"content":{"rendered":"\n<!-- =========================================================\nCATEGORISED PYQ 360 \u2014 BASIC INFO ONLY (extracted from CLAT Booster)\nSame design system, same backend connection, same JS-critical IDs\nAll && replaced with nested if \u2014 WordPress-compatible\n============================================================ -->\n<meta charset=\"UTF-8\">\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n<title>Categorised PYQ Launchpad 360<\/title>\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Sora:wght@400;500;600;700;800&amp;family=Inter:wght@400;500;600;700&amp;display=swap\" rel=\"stylesheet\">\n\n<style>\n    \/* ======================================================================\n       DESIGN SYSTEM \u2014 premium, refined, consistent\n       ====================================================================== *\/\n    #lp360-root {\n        --lp-brand: #E85D3A;\n        --lp-brand-light: #FF7A3D;\n        --lp-brand-dark: #C94A2A;\n        --lp-gold: #FFC542;\n        --lp-cyan: #33C3F0;\n        --lp-purple: #8B5CF6;\n        --lp-green: #22C55E;\n        --lp-red: #EF4444;\n        --lp-orange2: #F97316;\n        --lp-teal: #14B8A6;\n        --lp-yellow: #FACC15;\n        --lp-purple2: #A78BFA;\n        --lp-amber: #F59E0B;\n\n        --lp-brand-glow: 0 8px 32px rgba(255, 65, 108, 0.4);\n\n        --lp-dark-1: #0d1024;\n        --lp-dark-2: #1b1240;\n        --lp-text-dark: #0b0e1a;\n        --lp-text-gray: #5b6478;\n        --lp-text-gray-light: #8e96a8;\n        --lp-bg-canvas: #f4f6fa;\n        --lp-card-bg: #ffffff;\n        --lp-border-subtle: #e9ecf2;\n        --lp-shadow-sm: 0 2px 8px rgba(15, 23, 42, 0.06);\n        --lp-shadow-md: 0 6px 20px rgba(15, 23, 42, 0.07);\n\n        --lp-bg-green-soft: #022C22;\n        --lp-bg-red-soft: #450A0A;\n        --lp-bg-amber-soft: #451A03;\n\n        --lp-radius-lg: 20px;\n        --lp-radius-md: 14px;\n        --lp-radius-sm: 10px;\n        --lp-radius-xs: 6px;\n\n        --lp-space-1: 4px;\n        --lp-space-2: 8px;\n        --lp-space-3: 12px;\n        --lp-space-4: 16px;\n        --lp-space-5: 20px;\n        --lp-space-6: 24px;\n        --lp-space-7: 32px;\n        --lp-space-8: 40px;\n\n        font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n        color: var(--lp-text-dark);\n        box-sizing: border-box;\n        max-width: 100%;\n    }\n    #lp360-root *,\n    #lp360-root *::before,\n    #lp360-root *::after {\n        box-sizing: border-box;\n        max-width: 100%;\n    }\n\n    #lp360-root .lp360-page-title,\n    #lp360-root .lp360-gauge-value,\n    #lp360-root .lp360-hero-metric-value,\n    #lp360-root .lp360-time-card-value,\n    #lp360-root .lp360-breakdown-total,\n    #lp360-root .lp360-breakdown-list li b {\n        font-family: 'Sora', 'Inter', sans-serif;\n    }\n\n    \/* ======================================================================\n       SHELL\n       ====================================================================== *\/\n    .lp360-shell {\n        max-width: 1100px;\n        margin: 0 auto;\n        padding: var(--lp-space-6);\n        background: var(--lp-bg-canvas);\n        border-radius: var(--lp-radius-lg);\n        overflow-x: hidden;\n    }\n\n    \/* ======================================================================\n       HEADER\n       ====================================================================== *\/\n    .lp360-page-header {\n        text-align: center;\n        margin-bottom: var(--lp-space-5);\n    }\n    .lp360-page-title {\n        font-size: clamp(28px, 3.6vw, 40px);\n        font-weight: 800;\n        letter-spacing: -0.5px;\n        margin: 0;\n        color: var(--lp-text-dark);\n    }\n    .lp360-page-title span {\n        background: linear-gradient(90deg, var(--lp-brand-light), var(--lp-gold));\n        -webkit-background-clip: text;\n        background-clip: text;\n        color: transparent;\n    }\n\n    \/* ======================================================================\n       SECTION CARD\n       ====================================================================== *\/\n    .lp360-section-card {\n        background: var(--lp-card-bg);\n        border-radius: var(--lp-radius-lg);\n        box-shadow: var(--lp-shadow-sm);\n        border: 1px solid var(--lp-border-subtle);\n        padding: var(--lp-space-4) var(--lp-space-5) var(--lp-space-5);\n        margin-bottom: var(--lp-space-6);\n        overflow: hidden;\n        transition: box-shadow 0.25s ease;\n    }\n    .lp360-section-card:hover {\n        box-shadow: var(--lp-shadow-md);\n    }\n\n    .lp360-tracker-header {\n        margin-bottom: var(--lp-space-3);\n    }\n    .lp360-tracker-title {\n        font-size: 20px;\n        font-weight: 800;\n        margin: 0 0 2px;\n        color: var(--lp-text-dark);\n        font-family: 'Sora','Inter',sans-serif;\n    }\n    .lp360-tracker-title span {\n        color: var(--lp-brand-light);\n    }\n\n    \/* ======================================================================\n       HERO CARD\n       ====================================================================== *\/\n    .lp360-hero-card {\n        background: linear-gradient(135deg, var(--lp-dark-1) 40%, var(--lp-dark-2) 100%);\n        box-shadow: var(--lp-brand-glow);\n        color: #ffffff;\n        border-radius: var(--lp-radius-md);\n        padding: var(--lp-space-4) var(--lp-space-5);\n        display: grid;\n        grid-template-columns: 1fr auto 1fr auto 1fr;\n        align-items: center;\n        gap: var(--lp-space-3);\n        box-shadow: 0 8px 24px rgba(13, 16, 36, 0.25);\n        margin: 0;\n    }\n    .lp360-hero-divider {\n        width: 1px;\n        height: 100px;\n        background: rgba(255,255,255,0.1);\n        justify-self: center;\n    }\n\n    .lp360-gauge-wrap {\n        position: relative;\n        width: 190px;\n        height: 190px;\n        margin: 0 auto;\n    }\n    .lp360-gauge-svg {\n        width: 100%;\n        height: 100%;\n        transform: rotate(-125deg);\n        filter: drop-shadow(0 0 20px rgba(255,122,61,0.35));\n    }\n    .lp360-gauge-track {\n        fill: none;\n        stroke: rgba(255,255,255,0.08);\n        stroke-width: 12;\n    }\n    .lp360-gauge-progress {\n        fill: none;\n        stroke-width: 12;\n        stroke-linecap: round;\n        stroke-dasharray: 691;\n        stroke-dashoffset: 691;\n        transition: stroke-dashoffset 1.1s cubic-bezier(0.2,0.7,0.2,1);\n    }\n    .lp360-gauge-center {\n        position: absolute;\n        inset: 0;\n        display: flex;\n        flex-direction: column;\n        align-items: center;\n        justify-content: center;\n        text-align: center;\n    }\n    .lp360-gauge-label {\n        font-size: 11px;\n        letter-spacing: 2.5px;\n        color: #cbd5e1;\n        font-weight: 700;\n        text-transform: uppercase;\n        margin-bottom: 6px;\n    }\n    .lp360-gauge-value {\n        display: inline-flex;\n        align-items: baseline;\n        font-size: 44px;\n        font-weight: 800;\n        line-height: 1;\n        background: linear-gradient(90deg, var(--lp-gold), var(--lp-brand-light));\n        -webkit-background-clip: text;\n        background-clip: text;\n        color: transparent;\n    }\n    .lp360-gauge-value small {\n        font-size: 20px;\n        color: #94a3b8;\n        -webkit-text-fill-color: #94a3b8;\n        font-weight: 600;\n    }\n    .lp360-gauge-minibar {\n        width: 60%;\n        max-width: 110px;\n        height: 6px;\n        background: rgba(255,255,255,0.1);\n        border-radius: 6px;\n        margin: 10px auto 0;\n        overflow: hidden;\n    }\n    .lp360-gauge-minibar-fill {\n        height: 100%;\n        width: 0%;\n        border-radius: 6px;\n        background: linear-gradient(90deg, var(--lp-teal), var(--lp-cyan));\n        transition: width 1s ease 0.2s;\n    }\n\n    .lp360-hero-metric {\n        text-align: center;\n        color: #fff;\n    }\n    .lp360-icon-badge {\n        width: 54px;\n        height: 54px;\n        border-radius: 50%;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        margin: 0 auto 8px;\n    }\n    .lp360-icon-badge svg {\n        width: 26px;\n        height: 26px;\n    }\n    .lp360-icon-badge--cyan {\n        background: radial-gradient(circle, #1c5f78, #123047);\n        color: var(--lp-cyan);\n        box-shadow: 0 0 0 6px rgba(51,195,240,0.08);\n    }\n    .lp360-icon-badge--purple {\n        background: radial-gradient(circle, #4a2f86, #2a1a52);\n        color: var(--lp-purple2);\n        box-shadow: 0 0 0 6px rgba(139,92,246,0.1);\n    }\n    .lp360-hero-metric-label {\n        display: block;\n        font-size: 12px;\n        letter-spacing: 1.8px;\n        color: #cbd5e1;\n        font-weight: 700;\n        text-transform: uppercase;\n        margin-bottom: 8px;\n    }\n    .lp360-hero-metric-value {\n        display: inline-flex;\n        align-items: baseline;\n        justify-content: center;\n        font-size: 32px;\n        font-weight: 800;\n        color: var(--lp-cyan);\n        padding: 8px 20px;\n        border-radius: 14px;\n        background: rgba(51,195,240,0.1);\n        box-shadow: inset 0 0 0 1.5px rgba(51,195,240,0.3);\n        min-width: 120px;\n        font-family: 'Sora', 'Inter', sans-serif;\n    }\n    #lp360-total-attempt {\n        color: #a78bfa;\n        background: rgba(139,92,246,0.15);\n        box-shadow: inset 0 0 0 1.5px rgba(167,139,250,0.35);\n    }\n    .lp360-hero-metric-footer {\n        font-size: 12px;\n        color: #8b93a7;\n        margin-top: 8px;\n        font-weight: 600;\n    }\n\n    \/* ======================================================================\n       TIME CARDS\n       ====================================================================== *\/\n    .lp360-time-cards {\n        display: flex;\n        background: transparent;\n        border: none;\n        margin: 0;\n        gap: var(--lp-space-4);\n    }\n    .lp360-time-card {\n        flex: 1;\n        padding: var(--lp-space-4) var(--lp-space-4);\n        text-align: center;\n        display: flex;\n        flex-direction: column;\n        align-items: center;\n        gap: 2px;\n        position: relative;\n        background: transparent;\n        border: none;\n        box-shadow: none;\n        border-radius: var(--lp-radius-md);\n    }\n    .lp360-time-card:last-child {\n        border-right: none;\n    }\n    .lp360-time-card > * {\n        max-width: 220px;\n    }\n    .lp360-time-card--red {\n        background: #fef2f2;\n        border: 1px solid #fecaca;\n        box-shadow: 0 4px 12px rgba(239, 68, 68, 0.05);\n        color: var(--lp-red);\n    }\n    .lp360-time-card--orange {\n        background: #fff7ed;\n        border: 1px solid #fed7aa;\n        box-shadow: 0 4px 12px rgba(249, 115, 22, 0.05);\n        color: var(--lp-orange2);\n    }\n    .lp360-time-card--blue {\n        background: #eff6ff;\n        border: 1px solid #bfdbfe;\n        box-shadow: 0 4px 12px rgba(59, 130, 246, 0.05);\n        color: #2563eb;\n    }\n\n    .lp360-icon-badge--red-soft {\n        background: #fbdada;\n        color: var(--lp-red);\n    }\n    .lp360-icon-badge--orange-soft {\n        background: #fde3c8;\n        color: var(--lp-orange2);\n    }\n    .lp360-icon-badge--blue-soft {\n        background: #d9e8fb;\n        color: #2563eb;\n    }\n    .lp360-time-card .lp360-icon-badge {\n        margin: 0 auto 4px;\n        width: 38px;\n        height: 38px;\n        background: #fff;\n        color: currentColor;\n        box-shadow: 0 2px 8px rgba(0,0,0,0.04);\n    }\n    .lp360-time-card .lp360-icon-badge svg {\n        width: 18px;\n        height: 18px;\n    }\n\n    .lp360-time-card .lp360-time-card-label {\n        font-size: 11px;\n        letter-spacing: 0.8px;\n        font-weight: 700;\n        text-transform: uppercase;\n        line-height: 1.3;\n        color: currentColor;\n    }\n\n    .lp360-time-card .lp360-time-card-value {\n        display: inline-flex;\n        align-items: baseline;\n        gap: 2px;\n        font-size: 26px;\n        font-weight: 800;\n        padding: 4px 14px;\n        border-radius: 10px;\n        font-family: 'Sora', 'Inter', sans-serif;\n        color: currentColor;\n    }\n    .lp360-time-card-value small {\n        font-size: 12px;\n        font-weight: 600;\n        color: currentColor;\n        opacity: 0.7;\n    }\n\n    .lp360-time-card .lp360-mini-rule {\n        display: block;\n        width: 28px;\n        height: 2px;\n        background: currentColor;\n        opacity: 0.2;\n        margin: 4px auto;\n        color: currentColor;\n    }\n\n    .lp360-time-card .lp360-time-card-badge {\n        display: inline-block;\n        padding: 3px 14px;\n        border-radius: 999px;\n        font-weight: 700;\n        text-transform: uppercase;\n        letter-spacing: 0.5px;\n        font-size: 12px;\n        color: currentColor;\n        background: #fff;\n        border: 1px solid currentColor;\n        box-shadow: none;\n    }\n\n    \/* ======================================================================\n       BREAKDOWN\n       ====================================================================== *\/\n    .lp360-breakdown-unified {\n        background: transparent;\n        border-radius: 0;\n        border: none;\n        padding: 0;\n        margin: 0;\n        display: grid;\n        grid-template-columns: 1fr 1fr 1fr;\n        gap: 0;\n        overflow: hidden;\n        border-top: 1px solid var(--lp-border-subtle);\n    }\n    .lp360-breakdown-col {\n        padding: var(--lp-space-3) var(--lp-space-4);\n        position: relative;\n        background: transparent;\n        color: #ffffff;\n    }\n    .lp360-breakdown-col h3 { color: #ffffff !important; }\n    .lp360-breakdown-col .lp360-breakdown-head { color: #ffffff; }\n    .lp360-breakdown-col:nth-child(1) { background: var(--lp-bg-green-soft); border-left: 4px solid var(--lp-green); }\n    .lp360-breakdown-col:nth-child(2) { background: var(--lp-bg-red-soft); border-left: 4px solid var(--lp-red); }\n    .lp360-breakdown-col:nth-child(3) { background: var(--lp-bg-amber-soft); border-left: 4px solid var(--lp-amber); }\n    .lp360-breakdown-col + .lp360-breakdown-col {\n        border-left: 1px solid var(--lp-border-subtle);\n    }\n    .lp360-breakdown-head {\n        display: flex;\n        align-items: center;\n        gap: var(--lp-space-3);\n        margin-bottom: var(--lp-space-3);\n    }\n    .lp360-round-icon {\n        width: 38px;\n        height: 38px;\n        border-radius: 50%;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        flex-shrink: 0;\n    }\n    .lp360-round-icon svg {\n        width: 18px;\n        height: 18px;\n    }\n    .lp360-round-icon--green {\n        background: var(--lp-green);\n    }\n    .lp360-round-icon--red {\n        background: var(--lp-red);\n    }\n    .lp360-round-icon--orange {\n        background: var(--lp-orange2);\n    }\n\n    .lp360-breakdown-label {\n        font-size: 11px;\n        font-weight: 700;\n        letter-spacing: 1.2px;\n        text-transform: uppercase;\n        color: var(--lp-text-gray);\n        margin-bottom: 2px;\n    }\n    .lp360-breakdown-col--green .lp360-breakdown-label {\n        color: var(--lp-green);\n    }\n    .lp360-breakdown-col--red .lp360-breakdown-label {\n        color: var(--lp-red);\n    }\n    .lp360-breakdown-col--orange .lp360-breakdown-label {\n        color: var(--lp-orange2);\n    }\n\n    .lp360-breakdown-total {\n        display: inline-block;\n        font-size: 26px;\n        font-weight: 800;\n        padding: 0 12px;\n        border-radius: 8px;\n        font-family: 'Sora', 'Inter', sans-serif;\n    }\n    .lp360-breakdown-col--green .lp360-breakdown-total {\n        color: var(--lp-green);\n        background: rgba(34,197,94,0.1);\n    }\n    .lp360-breakdown-col--red .lp360-breakdown-total {\n        color: var(--lp-red);\n        background: rgba(239,68,68,0.1);\n    }\n    .lp360-breakdown-col--orange .lp360-breakdown-total {\n        color: var(--lp-orange2);\n        background: rgba(249,115,22,0.1);\n    }\n\n    .lp360-breakdown-list {\n        list-style: none;\n        margin: 0;\n        padding: 0;\n    }\n    .lp360-breakdown-list li {\n        display: flex;\n        align-items: center;\n        gap: var(--lp-space-2);\n        font-size: 13.5px;\n        color: #374151;\n        font-weight: 500;\n        padding: 10px 14px;\n        margin-bottom: 8px;\n        border-radius: var(--lp-radius-md);\n        background: #f8fafc;\n        border: 1px solid #f1f5f9;\n        transition: all 0.2s ease;\n    }\n    .lp360-breakdown-list li:hover {\n        background: #fff;\n        border-color: #e2e8f0;\n        box-shadow: 0 2px 4px rgba(0,0,0,0.02);\n    }\n    .lp360-breakdown-col--green .lp360-breakdown-list li,\n    .lp360-breakdown-col--red .lp360-breakdown-list li,\n    .lp360-breakdown-col--orange .lp360-breakdown-list li {\n        background: rgba(255, 255, 255, 0.05);\n        border: 1px solid rgba(255, 255, 255, 0.1);\n        color: #ffffff;\n    }\n    .lp360-breakdown-col--green .lp360-breakdown-list li:hover,\n    .lp360-breakdown-col--red .lp360-breakdown-list li:hover,\n    .lp360-breakdown-col--orange .lp360-breakdown-list li:hover {\n        background: rgba(255, 255, 255, 0.1);\n    }\n    .lp360-breakdown-list li:last-child {\n        margin-bottom: 0;\n    }\n    .lp360-breakdown-list li b {\n        margin-left: auto;\n        font-weight: 700;\n        color: #ffffff;\n        font-size: 14px;\n        background: rgba(255, 255, 255, 0.15);\n        box-shadow: none;\n        padding: 4px 12px;\n        border-radius: 999px;\n        min-width: 32px;\n        text-align: center;\n        font-family: 'Sora', 'Inter', sans-serif;\n    }\n    .lp360-mini-icon {\n        width: 24px;\n        height: 24px;\n        border-radius: 50%;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        flex-shrink: 0;\n    }\n    .lp360-mini-icon svg {\n        width: 12px;\n        height: 12px;\n    }\n    .lp360-breakdown-list li .lp360-mini-icon {\n        background: rgba(255, 255, 255, 0.15);\n        color: #ffffff;\n        box-shadow: none;\n    }\n    .lp360-mini-icon--green {\n        background: #e6f7ec;\n        color: var(--lp-green);\n    }\n    .lp360-mini-icon--red {\n        background: #fdeaea;\n        color: var(--lp-red);\n    }\n    .lp360-mini-icon--orange {\n        background: #fdecd9;\n        color: var(--lp-orange2);\n    }\n\n    \/* ======================================================================\n       NO ATTEMPTS OVERLAY\n       ====================================================================== *\/\n    @keyframes lp360FadeIn {\n        from { opacity: 0; transform: translateY(6px); }\n        to { opacity: 1; transform: translateY(0); }\n    }\n    @keyframes lp360PopoverSlideUp {\n        from { opacity: 0; transform: translateY(30px) scale(0.95); }\n        to { opacity: 1; transform: translateY(0) scale(1); }\n    }\n    @keyframes lp360GradientMove {\n        0% { background-position: 0% 50%; }\n        50% { background-position: 100% 50%; }\n        100% { background-position: 0% 50%; }\n    }\n    .lp360-no-attempts-overlay {\n        position: fixed;\n        inset: 0;\n        z-index: 99999;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        background: rgba(0, 0, 0, 0.55);\n        backdrop-filter: blur(12px) saturate(1.2);\n        -webkit-backdrop-filter: blur(12px) saturate(1.2);\n        padding: 20px;\n        animation: lp360FadeIn 0.5s ease;\n    }\n    .lp360-no-attempts-card {\n        background: var(--lp-bg-amber-soft);\n        border-left: 4px solid var(--lp-amber);\n        border-radius: 32px;\n        max-width: 560px;\n        width: 100%;\n        padding: 40px 32px 32px;\n        box-shadow: 0 40px 80px rgba(0, 0, 0, 0.25), 0 0 0 1px rgba(232, 93, 58, 0.15) inset, 0 0 0 2px rgba(255, 255, 255, 0.5) inset;\n        text-align: center;\n        animation: lp360PopoverSlideUp 0.6s cubic-bezier(0.34, 1.56, 0.64, 1);\n        position: relative;\n        overflow: hidden;\n    }\n    .lp360-no-attempts-card::before {\n        content: '';\n        position: absolute;\n        top: 0; left: 0; right: 0;\n        height: 5px;\n        background: linear-gradient(90deg, var(--lp-brand-light), var(--lp-gold), var(--lp-brand-light));\n        background-size: 200% 100%;\n        animation: lp360GradientMove 3s ease infinite;\n    }\n    .lp360-no-attempts-icon {\n        width: 80px;\n        height: 80px;\n        border-radius: 50%;\n        background: linear-gradient(135deg, var(--lp-brand-light), var(--lp-gold));\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        margin: 0 auto 20px;\n        box-shadow: 0 10px 40px rgba(232, 93, 58, 0.35);\n    }\n    .lp360-no-attempts-icon svg {\n        width: 44px;\n        height: 44px;\n        stroke: #fff;\n        stroke-width: 2;\n        fill: none;\n    }\n    .lp360-no-attempts-title {\n        font-family: 'Sora', 'Inter', sans-serif;\n        font-size: 26px;\n        font-weight: 800;\n        letter-spacing: -0.3px;\n        color: var(--lp-text-dark);\n        margin: 0 0 12px;\n    }\n    .lp360-no-attempts-message {\n        font-size: 17px;\n        line-height: 1.7;\n        color: #374151;\n        margin: 0 0 20px;\n    }\n    .lp360-no-attempts-badge {\n        display: inline-block;\n        padding: 8px 24px;\n        border-radius: 999px;\n        background: linear-gradient(90deg, var(--lp-brand-light), var(--lp-gold));\n        color: #fff;\n        font-weight: 700;\n        font-size: 13px;\n        letter-spacing: 1px;\n        text-transform: uppercase;\n        box-shadow: 0 6px 20px rgba(232, 93, 58, 0.25);\n    }\n\n    \/* ======================================================================\n       RESPONSIVE\n       ====================================================================== *\/\n    @media (max-width: 1024px) {\n        .lp360-hero-card {\n            grid-template-columns: 1fr;\n            gap: var(--lp-space-4);\n            text-align: center;\n            padding: var(--lp-space-4);\n        }\n        .lp360-hero-divider {\n            width: 60%;\n            height: 1px;\n        }\n        .lp360-gauge-wrap {\n            width: 160px;\n            height: 160px;\n            margin-bottom: var(--lp-space-4);\n        }\n        .lp360-gauge-minibar {\n            position: absolute;\n            bottom: -16px;\n            left: 50%;\n            transform: translateX(-50%);\n            width: 60%;\n            max-width: 110px;\n            margin: 0;\n        }\n        .lp360-gauge-value {\n            font-size: 38px;\n        }\n        .lp360-gauge-value small {\n            font-size: 18px;\n        }\n        .lp360-hero-metric-value {\n            font-size: 28px;\n            padding: 6px 16px;\n            min-width: 100px;\n        }\n        .lp360-time-cards {\n            flex-direction: column;\n            border-radius: var(--lp-radius-md);\n            border-top: none;\n            border-bottom: none;\n        }\n        .lp360-time-card {\n            border-right: none;\n            border-bottom: 1px solid var(--lp-border-subtle);\n            padding: var(--lp-space-3);\n        }\n        .lp360-time-card:last-child {\n            border-bottom: none;\n        }\n        .lp360-breakdown-unified {\n            grid-template-columns: 1fr 1fr;\n        }\n        .lp360-breakdown-col:nth-child(3) {\n            grid-column: span 2;\n            border-left: none;\n            border-top: 1px solid var(--lp-border-subtle);\n        }\n    }\n\n    @media (max-width: 860px) {\n        .lp360-hero-metric-value {\n            min-width: 0;\n        }\n        .lp360-breakdown-unified {\n            display: flex;\n            flex-direction: column;\n            width: 100%;\n        }\n        .lp360-breakdown-col {\n            border-left: none !important;\n            border-top: 1px solid var(--lp-border-subtle);\n            padding: var(--lp-space-3) 0;\n            width: 100%;\n        }\n        .lp360-breakdown-col:first-child {\n            border-top: none;\n            padding-top: 0;\n        }\n        .lp360-breakdown-col:last-child {\n            padding-bottom: 0;\n        }\n        .lp360-breakdown-head {\n            justify-content: flex-start;\n        }\n        .lp360-breakdown-list li {\n            justify-content: flex-start;\n        }\n    }\n\n    @media (max-width: 640px) {\n        .lp360-shell {\n            padding: var(--lp-space-3);\n            border-radius: var(--lp-radius-md);\n        }\n        .lp360-section-card {\n            padding: var(--lp-space-3);\n            border-radius: var(--lp-radius-md);\n        }\n        .lp360-hero-card {\n            padding: var(--lp-space-3);\n            border-radius: var(--lp-radius-sm);\n        }\n        .lp360-gauge-wrap {\n            width: 130px;\n            height: 130px;\n            margin-bottom: var(--lp-space-3);\n        }\n        .lp360-gauge-minibar {\n            bottom: -14px;\n            width: 55%;\n            max-width: 90px;\n        }\n        .lp360-gauge-value {\n            font-size: 32px;\n        }\n        .lp360-gauge-value small {\n            font-size: 15px;\n        }\n        .lp360-gauge-label {\n            font-size: 9px;\n            letter-spacing: 1.5px;\n        }\n        .lp360-hero-metric-value {\n            font-size: 22px;\n            padding: 4px 12px;\n            min-width: 80px;\n        }\n        .lp360-hero-metric-label {\n            font-size: 10px;\n        }\n        .lp360-icon-badge {\n            width: 44px;\n            height: 44px;\n        }\n        .lp360-icon-badge svg {\n            width: 20px;\n            height: 20px;\n        }\n        .lp360-time-cards {\n            flex-direction: column;\n        }\n        .lp360-time-card-value {\n            font-size: 22px;\n        }\n        .lp360-tracker-title {\n            font-size: 20px;\n        }\n        .lp360-no-attempts-card {\n            padding: 28px 20px 24px;\n            border-radius: 24px;\n            max-width: 400px;\n        }\n        .lp360-no-attempts-title {\n            font-size: 22px;\n        }\n        .lp360-no-attempts-message {\n            font-size: 15px;\n        }\n        .lp360-no-attempts-icon {\n            width: 64px;\n            height: 64px;\n        }\n        .lp360-no-attempts-icon svg {\n            width: 34px;\n            height: 34px;\n        }\n    }\n\n    @media (max-width: 480px) {\n        .lp360-shell {\n            padding: var(--lp-space-2);\n        }\n        .lp360-section-card {\n            padding: var(--lp-space-2);\n        }\n        .lp360-hero-card {\n            padding: var(--lp-space-3) var(--lp-space-2);\n        }\n        .lp360-gauge-wrap {\n            width: 110px;\n            height: 110px;\n        }\n        .lp360-gauge-minibar {\n            bottom: -12px;\n            width: 50%;\n            max-width: 70px;\n        }\n        .lp360-gauge-value {\n            font-size: 26px;\n        }\n        .lp360-gauge-value small {\n            font-size: 13px;\n        }\n        .lp360-gauge-label {\n            font-size: 8px;\n            letter-spacing: 1px;\n        }\n        .lp360-hero-metric-value {\n            font-size: 18px;\n            padding: 4px 10px;\n            min-width: 60px;\n        }\n        .lp360-icon-badge {\n            width: 36px;\n            height: 36px;\n        }\n        .lp360-icon-badge svg {\n            width: 16px;\n            height: 16px;\n        }\n        .lp360-time-card-value {\n            font-size: 20px;\n            padding: 4px 10px;\n        }\n        .lp360-breakdown-total {\n            font-size: 20px;\n        }\n        .lp360-tracker-title {\n            font-size: 18px;\n        }\n        .lp360-no-attempts-card {\n            padding: 24px 16px 20px;\n            max-width: 340px;\n        }\n        .lp360-no-attempts-title {\n            font-size: 20px;\n        }\n       \n.lp360-no-attempts-message {\n            font-size: 14px;\n        }\n    }\n\n    \/* ======================================================================\n       ANSWER KEY SECTION\n       ====================================================================== *\/\n    .lp360-answer-key-card {\n        background: var(--lp-card-bg);\n        border-radius: var(--lp-radius-lg);\n        padding: var(--lp-space-4);\n        box-shadow: var(--lp-shadow-sm);\n        border: 1px solid var(--lp-border-subtle);\n        margin: 0;\n        text-align: center;\n    }\n    .lp360-answer-key-card .lp360-answer-key-placeholder {\n        font-size: 16px;\n        color: var(--lp-text-gray);\n        padding: var(--lp-space-8) var(--lp-space-4);\n    }\n    @media (max-width: 640px) {\n        .lp360-answer-key-card .lp360-answer-key-placeholder {\n            padding: var(--lp-space-6) var(--lp-space-4);\n            font-size: 15px;\n        }\n    }\n    @media (max-width: 480px) {\n        .lp360-answer-key-card .lp360-answer-key-placeholder {\n            padding: var(--lp-space-5) var(--lp-space-3);\n            font-size: 14px;\n        }\n    }\n<\/style>\n<div id=\"lp360-root\">\n    <div class=\"lp360-shell\">\n\n        <!-- HEADER -->\n        <header class=\"lp360-page-header\">\n            <h1 class=\"lp360-page-title\">Categorised PYQ <span>Launchpad 360<\/span><\/h1>\n        <\/header>\n\n        <!-- ========== BASIC INFO CARD (only section) ========== -->\n        <div class=\"lp360-section-card\">\n            <div class=\"lp360-tracker-header\">\n                <h3 class=\"lp360-tracker-title\">Basic <span>Info<\/span><\/h3>\n            <\/div>\n\n            <!-- Hero -->\n            <div class=\"lp360-hero-card\">\n                <div class=\"lp360-hero-gauge\">\n                    <div class=\"lp360-gauge-wrap\">\n                        <svg viewBox=\"0 0 260 260\" class=\"lp360-gauge-svg\">\n                            <defs>\n                                <linearGradient id=\"lp360GaugeGrad\" x1=\"0%\" y1=\"0%\" x2=\"100%\" y2=\"100%\">\n                                    <stop offset=\"0%\" stop-color=\"#FFC542\"><\/stop>\n                                    <stop offset=\"100%\" stop-color=\"#FF7A3D\"><\/stop>\n                                <\/linearGradient>\n                            <\/defs>\n                            <circle cx=\"130\" cy=\"130\" r=\"110\" class=\"lp360-gauge-track\"><\/circle>\n                            <circle cx=\"130\" cy=\"130\" r=\"110\" class=\"lp360-gauge-progress\" id=\"lp360-gauge-progress\" stroke=\"url(#lp360GaugeGrad)\"><\/circle>\n                        <\/svg>\n                        <div class=\"lp360-gauge-center\">\n                            <span class=\"lp360-gauge-label\">YOUR SCORE<\/span>\n                            <div class=\"lp360-gauge-value\">\n                                <span id=\"lp360-score-obtained\">0<\/span><small>\/<span id=\"lp360-score-total\">100<\/span><\/small>\n                            <\/div>\n                            <div class=\"lp360-gauge-minibar\">\n                                <div class=\"lp360-gauge-minibar-fill\" id=\"lp360-gauge-minibar-fill\"><\/div>\n                            <\/div>\n                        <\/div>\n                    <\/div>\n                <\/div>\n                <div class=\"lp360-hero-divider\"><\/div>\n                <div class=\"lp360-hero-metric\">\n                    <div class=\"lp360-icon-badge lp360-icon-badge--cyan\">\n                        <svg viewBox=\"0 0 28 28\"><path d=\"M14 10v4l3 2M14 2a12 12 0 100 24 12 12 0 000-24z\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><\/path><\/svg>\n                    <\/div>\n                    <span class=\"lp360-hero-metric-label\">TIME USED<\/span>\n                    <div class=\"lp360-hero-metric-value\" id=\"lp360-time-used\">0<\/div>\n                    <div class=\"lp360-hero-metric-footer\"> <\/div>\n                <\/div>\n                <div class=\"lp360-hero-divider\"><\/div>\n                <div class=\"lp360-hero-metric\">\n                    <div class=\"lp360-icon-badge lp360-icon-badge--purple\">\n                        <svg viewBox=\"0 0 28 28\"><path d=\"M14 2l3 7.5L24 10l-5.5 5 2 7.5-6.5-4-6.5 4 2-7.5L4 10l7.5-.5z\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><\/path><\/svg>\n                    <\/div>\n                    <span class=\"lp360-hero-metric-label\">TOTAL ATTEMPT<\/span>\n                    <div class=\"lp360-hero-metric-value\" id=\"lp360-total-attempt\">0<\/div>\n                    <div class=\"lp360-hero-metric-footer\">Questions attempted<\/div>\n                <\/div>\n            <\/div>\n\n            <!-- Time cards -->\n            <div class=\"lp360-time-cards\">\n                <div class=\"lp360-time-card lp360-time-card--red\">\n                    <div class=\"lp360-icon-badge lp360-icon-badge--red-soft\">\n                        <svg viewBox=\"0 0 24 24\"><path d=\"M12 8v4l3 2M12 2a10 10 0 100 20 10 10 0 000-20z\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><\/path><\/svg>\n                    <\/div>\n                    <div class=\"lp360-time-card-label\">MAX TIME PER QUESTION<\/div>\n                    <div class=\"lp360-time-card-value\"><span id=\"lp360-max-time\"><\/span><\/div>\n                    <span class=\"lp360-mini-rule\"><\/span>\n                    <div class=\"lp360-time-card-badge\" id=\"lp360-max-tag\">Q0<\/div>\n                <\/div>\n                <div class=\"lp360-time-card lp360-time-card--orange\">\n                    <div class=\"lp360-icon-badge lp360-icon-badge--orange-soft\">\n                        <svg viewBox=\"0 0 24 24\"><path d=\"M12 8v4l3 2M12 2a10 10 0 100 20 10 10 0 000-20z\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><\/path><\/svg>\n                    <\/div>\n                    <div class=\"lp360-time-card-label\">MIN TIME PER QUESTION<\/div>\n                    <div class=\"lp360-time-card-value\"><span id=\"lp360-min-time\"><\/span><\/div>\n                    <span class=\"lp360-mini-rule\"><\/span>\n                    <div class=\"lp360-time-card-badge\" id=\"lp360-min-tag\">Q0<\/div>\n                <\/div>\n                <div class=\"lp360-time-card lp360-time-card--blue\">\n                    <div class=\"lp360-icon-badge lp360-icon-badge--blue-soft\">\n                        <svg viewBox=\"0 0 24 24\"><path d=\"M12 8v4l3 2M12 2a10 10 0 100 20 10 10 0 000-20z\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><\/path><\/svg>\n                    <\/div>\n                    <div class=\"lp360-time-card-label\">AVERAGE TIME PER QUESTION<\/div>\n                    <div class=\"lp360-time-card-value\"><span id=\"lp360-avg-time\"><\/span><\/div>\n                    <span class=\"lp360-mini-rule\"><\/span>\n                <\/div>\n            <\/div>\n\n            <!-- Breakdown -->\n            <div class=\"lp360-breakdown-unified\">\n                <!-- Correct -->\n                <div class=\"lp360-breakdown-col lp360-breakdown-col--green\">\n                    <div class=\"lp360-breakdown-head\">\n                        <div class=\"lp360-round-icon lp360-round-icon--green\">\n                            <svg viewBox=\"0 0 24 24\"><path d=\"M20 6L9 17l-5-5\" fill=\"none\" stroke=\"#fff\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><\/path><\/svg>\n                        <\/div>\n                        <div>\n                            <div class=\"lp360-breakdown-label\">CORRECT<\/div>\n                            <div class=\"lp360-breakdown-total\" id=\"lp360-correct-total\">0<\/div>\n                        <\/div>\n                    <\/div>\n                    <ul class=\"lp360-breakdown-list\">\n                        <li><span class=\"lp360-mini-icon lp360-mini-icon--green\"><svg viewBox=\"0 0 24 24\"><path d=\"M20 21v-2a4 4 0 00-4-4H8a4 4 0 00-4 4v2M12 11a4 4 0 100-8 4 4 0 000 8z\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><\/path><\/svg><\/span>Single Attempt Correct <b id=\"lp360-correct-single\">0<\/b><\/li>\n                        <li><span class=\"lp360-mini-icon lp360-mini-icon--green\"><svg viewBox=\"0 0 24 24\"><path d=\"M17 21v-2a4 4 0 00-4-4H5a4 4 0 00-4 4v2M9 11a4 4 0 100-8 4 4 0 000 8zM23 21v-2a4 4 0 00-3-3.87M16 3.13a4 4 0 010 7.75\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><\/path><\/svg><\/span>Multiple Attempt Correct <b id=\"lp360-correct-multiple\">0<\/b><\/li>\n                        <li><span class=\"lp360-mini-icon lp360-mini-icon--green\"><svg viewBox=\"0 0 24 24\"><path d=\"M5 4l14 8-14 8V4z\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><\/path><\/svg><\/span>Skipped Attempt Correct <b id=\"lp360-correct-skipped\">0<\/b><\/li>\n                    <\/ul>\n                <\/div>\n                <!-- Incorrect -->\n                <div class=\"lp360-breakdown-col lp360-breakdown-col--red\">\n                    <div class=\"lp360-breakdown-head\">\n                        <div class=\"lp360-round-icon lp360-round-icon--red\">\n                            <svg viewBox=\"0 0 24 24\"><path d=\"M18 6L6 18M6 6l12 12\" fill=\"none\" stroke=\"#fff\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><\/path><\/svg>\n                        <\/div>\n                        <div>\n                            <div class=\"lp360-breakdown-label\">INCORRECT<\/div>\n                            <div class=\"lp360-breakdown-total\" id=\"lp360-incorrect-total\">0<\/div>\n                        <\/div>\n                    <\/div>\n                    <ul class=\"lp360-breakdown-list\">\n                        <li><span class=\"lp360-mini-icon lp360-mini-icon--red\"><svg viewBox=\"0 0 24 24\"><path d=\"M20 21v-2a4 4 0 00-4-4H8a4 4 0 00-4 4v2M12 11a4 4 0 100-8 4 4 0 000 8z\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><\/path><\/svg><\/span>Single Attempt Incorrect <b id=\"lp360-incorrect-single\">0<\/b><\/li>\n                        <li><span class=\"lp360-mini-icon lp360-mini-icon--red\"><svg viewBox=\"0 0 24 24\"><path d=\"M17 21v-2a4 4 0 00-4-4H5a4 4 0 00-4 4v2M9 11a4 4 0 100-8 4 4 0 000 8zM23 21v-2a4 4 0 00-3-3.87M16 3.13a4 4 0 010 7.75\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><\/path><\/svg><\/span>Multiple Attempt Incorrect <b id=\"lp360-incorrect-multiple\">0<\/b><\/li>\n                        <li><span class=\"lp360-mini-icon lp360-mini-icon--red\"><svg viewBox=\"0 0 24 24\"><path d=\"M5 4l14 8-14 8V4z\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><\/path><\/svg><\/span>Skipped Attempt Incorrect <b id=\"lp360-incorrect-skipped\">0<\/b><\/li>\n                    <\/ul>\n                <\/div>\n                <!-- Unattempted -->\n                <div class=\"lp360-breakdown-col lp360-breakdown-col--orange\">\n                    <div class=\"lp360-breakdown-head\">\n                        <div class=\"lp360-round-icon lp360-round-icon--orange\">\n                            <svg viewBox=\"0 0 24 24\"><path d=\"M12 17h.01M12 8v4M12 2a10 10 0 100 20 10 10 0 000-20z\" fill=\"none\" stroke=\"#fff\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><\/path><\/svg>\n                        <\/div>\n                        <div>\n                            <div class=\"lp360-breakdown-label\">UNATTEMPTED<\/div>\n                            <div class=\"lp360-breakdown-total\" id=\"lp360-unattempted-total\">0<\/div>\n                        <\/div>\n                    <\/div>\n                    <ul class=\"lp360-breakdown-list\">\n                        <li><span class=\"lp360-mini-icon lp360-mini-icon--orange\"><svg viewBox=\"0 0 24 24\"><path d=\"M5 4l14 8-14 8V4z\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><\/path><\/svg><\/span>Skipped <b id=\"lp360-unattempted-skipped\">0<\/b><\/li>\n                        <li><span class=\"lp360-mini-icon lp360-mini-icon--orange\"><svg viewBox=\"0 0 24 24\"><rect x=\"4\" y=\"3\" width=\"16\" height=\"18\" rx=\"2\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><\/rect><path d=\"M8 8h8M8 12h8M8 16h5\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"><\/path><\/svg><\/span>Not Viewed <b id=\"lp360-unattempted-notviewed\">0<\/b><\/li>\n                    <\/ul>\n              <\/div>\n            <\/div>\n        <\/div>\n        <!-- \/Basic Info card -->\n\n        <!-- ========== ANSWER KEY CARD ========== -->\n        <div class=\"lp360-section-card\">\n            <div class=\"lp360-tracker-header\">\n                <h3 class=\"lp360-tracker-title\">Answer <span>Key<\/span><\/h3>\n            <\/div>\n            <div class=\"lp360-answer-key-card\">\n                <div class=\"lp360-answer-key-placeholder\">\n                    [Answer key content goes here]\n                <\/div>\n            <\/div>\n        <\/div>\n        <!-- \/Answer Key card -->\n\n    <\/div><!-- \/.lp360-shell -->\n<\/div><!-- \/#lp360-root -->  \n\n<!-- ==============================================================\nJAVASCRIPT - all && replaced with nested if, same fetch\/data-shape\nas CLAT Booster's Basic Info section\n=============================================================== -->\n<script>\n(function() {\n    \"use strict\";\n    console.log('\u2705 Categorised PYQ Basic Info script started');\n\n    \/\/ ---- Universal time formatting ----\n    function formatTimeDisplay(seconds) {\n        var s = Math.round(Number(seconds) || 0);\n        if (s < 0) s = 0;\n        if (s < 60) {\n            return s + ' sec';\n        }\n        var m = Math.floor(s \/ 60);\n        var rem = s % 60;\n        if (rem === 0) {\n            return m + ' min';\n        }\n        return m + ' min ' + rem + ' sec';\n    }\n\n    \/\/ ---- Render Basic Info ----\n    function renderBasicInfo(data) {\n        if (!data) { return; }\n        var el = document.getElementById.bind(document);\n        var obtained = 0;\n        var total = 100;\n        if (data.score) {\n            obtained = Number(data.score.obtained) || 0;\n            total = Number(data.score.total) || 100;\n        }\n        var pct = total > 0 ? Math.max(0, Math.min(1, obtained \/ total)) : 0;\n\n        el('lp360-score-obtained').textContent = obtained;\n        el('lp360-score-total').textContent = total;\n\n        var circumference = 691;\n        var progress = document.getElementById('lp360-gauge-progress');\n        if (progress) {\n            progress.style.strokeDasharray = circumference;\n            progress.style.strokeDashoffset = circumference;\n            requestAnimationFrame(function() {\n                progress.style.strokeDashoffset = circumference - (circumference * pct);\n            });\n        }\n        var minibar = el('lp360-gauge-minibar-fill');\n        if (minibar) {\n            requestAnimationFrame(function() {\n                minibar.style.width = (pct * 100) + '%';\n            });\n        }\n\n        el('lp360-time-used').textContent = formatTimeDisplay(data.timeUsedSeconds);\n        el('lp360-total-attempt').textContent = (data.totalAttempts != null) ? data.totalAttempts : 0;\n\n        var tpq = data.timePerQuestion || {};\n        if (tpq.max) {\n            el('lp360-max-time').textContent = formatTimeDisplay(tpq.max.value);\n            var maxTagEl = el('lp360-max-tag');\n            maxTagEl.textContent = tpq.max.questionTag || '';\n            maxTagEl.setAttribute('data-qnum', (tpq.max.questionTag || '').replace('Q', ''));\n        }\n        if (tpq.min) {\n            el('lp360-min-time').textContent = formatTimeDisplay(tpq.min.value);\n            var minTagEl = el('lp360-min-tag');\n            minTagEl.textContent = tpq.min.questionTag || '';\n            minTagEl.setAttribute('data-qnum', (tpq.min.questionTag || '').replace('Q', ''));\n        }\n        if (tpq.avg) {\n            el('lp360-avg-time').textContent = formatTimeDisplay(tpq.avg.value);\n        }\n\n        var b = data.breakdown || {};\n        if (b.correct) {\n            el('lp360-correct-total').textContent = b.correct.total || 0;\n            el('lp360-correct-single').textContent = b.correct.single || 0;\n            el('lp360-correct-multiple').textContent = b.correct.multiple || 0;\n            el('lp360-correct-skipped').textContent = b.correct.skipped || 0;\n        }\n        if (b.incorrect) {\n            el('lp360-incorrect-total').textContent = b.incorrect.total || 0;\n            el('lp360-incorrect-single').textContent = b.incorrect.single || 0;\n            el('lp360-incorrect-multiple').textContent = b.incorrect.multiple || 0;\n            el('lp360-incorrect-skipped').textContent = b.incorrect.skipped || 0;\n        }\n        if (b.unattempted) {\n            el('lp360-unattempted-total').textContent = b.unattempted.total || 0;\n            el('lp360-unattempted-skipped').textContent = b.unattempted.skipped || 0;\n            el('lp360-unattempted-notviewed').textContent = b.unattempted.notViewed || 0;\n        }\n    }\n\n    \/\/ ---- Show no-attempts overlay ----\n    function showNoAttemptsOverlay(message) {\n        var existing = document.querySelector('.lp360-no-attempts-overlay');\n        if (existing) {\n            document.body.removeChild(existing);\n        }\n\n        var overlay = document.createElement('div');\n        overlay.className = 'lp360-no-attempts-overlay';\n        overlay.innerHTML =\n            '<div class=\"lp360-no-attempts-card\">' +\n            '<div class=\"lp360-no-attempts-icon\">' +\n            '<svg viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\">' +\n            '<circle cx=\"12\" cy=\"12\" r=\"10\"\/>' +\n            '<path d=\"M12 8v4M12 16h.01\"\/>' +\n            '<\/svg>' +\n            '<\/div>' +\n            '<h2 class=\"lp360-no-attempts-title\">No Questions Attempted<\/h2>' +\n            '<p class=\"lp360-no-attempts-message\">' + message + '<\/p>' +\n            '<span class=\"lp360-no-attempts-badge\">Please Try Again<\/span>' +\n            '<\/div>';\n\n        document.body.appendChild(overlay);\n\n        overlay.addEventListener('click', function(e) {\n            if (e.target === overlay) {\n                document.body.removeChild(overlay);\n            }\n        });\n\n        document.addEventListener('keydown', function handler(e) {\n            if (e.key === 'Escape') {\n                var o = document.querySelector('.lp360-no-attempts-overlay');\n                if (o) {\n                    document.body.removeChild(o);\n                }\n                document.removeEventListener('keydown', handler);\n            }\n        });\n    }\n\n    \/\/ ---- Main render from API ----\n    function renderFullPage(apiResponse) {\n        var analytics = apiResponse.analytics_json;\n        var result = apiResponse.result || {};\n\n        var basic = analytics.basic_info || {};\n        var basicInfoData = {\n            score: {\n                obtained: basic.total_score || 0,\n                total: result.max_score || 100\n            },\n            timeUsedSeconds: basic.total_time || 0,\n            totalAttempts: basic.total_attempts || 0,\n            timePerQuestion: {\n                max: { value: basic.max_time_q ? basic.max_time_q.time : 0, questionTag: basic.max_time_q ? 'Q' + basic.max_time_q.question : '' },\n                min: { value: basic.min_time_q ? basic.min_time_q.time : 0, questionTag: basic.min_time_q ? 'Q' + basic.min_time_q.question : '' },\n                avg: { value: basic.avg_time_per_q || 0 }\n            },\n            breakdown: {\n                correct: {\n                    total: (basic.correct_counts ? basic.correct_counts.single + basic.correct_counts.multiple + basic.correct_counts.reviewed + basic.correct_counts.skipped : 0),\n                    single: basic.correct_counts ? basic.correct_counts.single : 0,\n                    multiple: basic.correct_counts ? basic.correct_counts.multiple : 0,\n                    reviewed: basic.correct_counts ? basic.correct_counts.reviewed : 0,\n                    skipped: basic.correct_counts ? basic.correct_counts.skipped : 0\n                },\n                incorrect: {\n                    total: (basic.incorrect_counts ? basic.incorrect_counts.single + basic.incorrect_counts.multiple + basic.incorrect_counts.reviewed + basic.incorrect_counts.skipped : 0),\n                    single: basic.incorrect_counts ? basic.incorrect_counts.single : 0,\n                    multiple: basic.incorrect_counts ? basic.incorrect_counts.multiple : 0,\n                    reviewed: basic.incorrect_counts ? basic.incorrect_counts.reviewed : 0,\n                    skipped: basic.incorrect_counts ? basic.incorrect_counts.skipped : 0\n                },\n                unattempted: {\n                    total: (basic.unattempted_counts ? basic.unattempted_counts.skipped + basic.unattempted_counts.reviewed_unattempted + basic.unattempted_counts.not_viewed : 0),\n                    skipped: basic.unattempted_counts ? basic.unattempted_counts.skipped : 0,\n                    reviewed: basic.unattempted_counts ? basic.unattempted_counts.reviewed_unattempted : 0,\n                    notViewed: basic.unattempted_counts ? basic.unattempted_counts.not_viewed : 0\n                }\n            }\n        };\n        renderBasicInfo(basicInfoData);\n    }\n\n    \/\/ ---- Fetch and render ----\n    var API_BASE = 'https:\/\/launchpad-api-770009272949.asia-south1.run.app';\n    var params = new URLSearchParams(window.location.search);\n    var attemptId = params.get('attempt_id');\n    var examTypeParam = params.get('exam_type');\n    var tokenParam = params.get('token');\n    var expiresParam = params.get('expires');\n    if (attemptId) {\n        var AMP = String.fromCharCode(38); \/\/ built at runtime, not a literal '&' in the page source \u2014 avoids WordPress's wptexturize converting it to &#038;\n        var url = API_BASE + '\/api\/analytics-by-attempt\/' + attemptId;\n        var urlParams = [];\n        if (examTypeParam) {\n            urlParams.push('exam_type=' + encodeURIComponent(examTypeParam));\n        }\n        if (tokenParam) {\n            urlParams.push('token=' + encodeURIComponent(tokenParam));\n        }\n        if (expiresParam) {\n            urlParams.push('expires=' + encodeURIComponent(expiresParam));\n        }\n        if (urlParams.length) {\n            url = url + '?' + urlParams.join(AMP);\n        }\n        console.log('\ud83d\udd0d Attempt ID found:', attemptId);\n        console.log('\ud83d\ude80 Fetching URL:', url);\n        fetch(url)\n        .then(function(response) {\n            console.log('\ud83d\udce1 Response status:', response.status);\n            if (!response.ok) {\n                throw new Error('Network response was not ok: ' + response.status);\n            }\n            return response.json();\n        })\n        .then(function(data) {\n            console.log('\u2705 Data received:', data);\n            if (data.analytics_json) {\n                if (typeof data.analytics_json === 'string') {\n                    try {\n                        data.analytics_json = JSON.parse(data.analytics_json);\n                    } catch (e) {\n                        console.error('Failed to parse analytics_json:', e);\n                    }\n                }\n            }\n            var isInsufficient = false;\n            if (data.analytics_json) {\n                if (data.analytics_json.insufficient_data) {\n                    isInsufficient = true;\n                }\n            }\n            if (isInsufficient) {\n                var noAttemptsMsg = data.analytics_json.insufficient_data_message;\n                if (!noAttemptsMsg) {\n                    noAttemptsMsg = 'You have not attempted enough questions so that the algorithm is unable to properly analyse your capabilities. Please retake the exam with consistent answering.';\n                }\n                showNoAttemptsOverlay(noAttemptsMsg);\n                return;\n            }\n            renderFullPage(data);\n        })\n        .catch(function(error) {\n            console.error('\u274c Fetch error:', error);\n            var shell = document.querySelector('.lp360-shell');\n            if (shell) {\n                shell.innerHTML =\n                    '<div style=\"text-align:center;padding:40px;color:#EF4444;\"><h2>\u26a0\ufe0f Unable to load analytics<\/h2><p>' +\n                    error.message + '<\/p><p>Please check your attempt ID or try again later.<\/p><\/div>';\n            }\n        });\n    } else {\n        var shell = document.querySelector('.lp360-shell');\n        if (shell) {\n            shell.innerHTML =\n                '<div style=\"text-align:center;padding:40px;\"><h2>Missing Attempt ID<\/h2><p>Please provide a valid attempt_id in the URL.<\/p><\/div>';\n        }\n    }\n\n})();\n<\/script>\n","protected":false},"excerpt":{"rendered":"<p>Categorised PYQ Launchpad 360 Categorised PYQ Launchpad 360 Basic Info YOUR SCORE 0\/100 TIME USED 0 TOTAL ATTEMPT 0 Questions [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"full-width-container","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-279","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/massgraduates.com\/index.php\/wp-json\/wp\/v2\/pages\/279","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/massgraduates.com\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/massgraduates.com\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/massgraduates.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/massgraduates.com\/index.php\/wp-json\/wp\/v2\/comments?post=279"}],"version-history":[{"count":2,"href":"https:\/\/massgraduates.com\/index.php\/wp-json\/wp\/v2\/pages\/279\/revisions"}],"predecessor-version":[{"id":318,"href":"https:\/\/massgraduates.com\/index.php\/wp-json\/wp\/v2\/pages\/279\/revisions\/318"}],"wp:attachment":[{"href":"https:\/\/massgraduates.com\/index.php\/wp-json\/wp\/v2\/media?parent=279"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}