{"id":278,"date":"2026-08-31T10:18:24","date_gmt":"2026-08-31T10:18:24","guid":{"rendered":"https:\/\/massgraduates.com\/?page_id=278"},"modified":"2026-09-01T03:49:50","modified_gmt":"2026-09-01T03:49:50","slug":"clat-pyqs-launchpad","status":"publish","type":"page","link":"https:\/\/massgraduates.com\/index.php\/clat-pyqs-launchpad\/","title":{"rendered":"clat PYQS launchpad"},"content":{"rendered":"\n<!-- ========================================================= Launchpad Full Length PYQ Test - FINAL REDESIGN (CLAT Full length test VERSION) with fixed token access\n\nAll && replaced with nested if - WordPress-compatible\n============================================================ -->\n<meta charset=\"UTF-8\">\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n<title>CLAT 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 - 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        \/* NEW: Ultra-vibrant Gradients *\/\n        --lp-gradient-brand: linear-gradient(135deg, #FF4B2B 0%, #FF416C 100%);\n        --lp-gradient-cyan: linear-gradient(135deg, #00C6FF 0%, #0072FF 100%);\n        --lp-gradient-purple: linear-gradient(135deg, #B14BF4 0%, #4A00E0 100%);\n        --lp-gradient-green: linear-gradient(135deg, #11998E 0%, #38EF7D 100%);\n        --lp-gradient-gold: linear-gradient(135deg, #F6D365 0%, #FDA085 100%);\n\n        \/* NEW: Eye-Catching Neon Glows *\/\n        --lp-brand-glow: 0 8px 32px rgba(255, 65, 108, 0.4);\n        --lp-gold-glow: 0 8px 32px rgba(253, 160, 133, 0.45);\n        --lp-cyan-glow: 0 8px 32px rgba(0, 198, 255, 0.4);\n        \n        \/* NEW: Punchier Tinted Backgrounds *\/\n        --lp-bg-brand-soft: #271410;\n        --lp-bg-cyan-soft: #082F49;\n        --lp-bg-purple-soft: #2E1065;\n        --lp-bg-green-soft: #022C22;\n        --lp-bg-amber-soft: #451A03;\n        --lp-bg-red-soft: #450A0A;\n        --lp-bg-teal-soft: #134E4A;\n        \n        \/* NEW: Deep Vibrant Accents for Borders *\/\n        --lp-cyan-deep: #0072FF;\n        --lp-purple-deep: #7C3AED;\n        --lp-red-deep: #E11D48;\n        --lp-teal-deep: #0F766E;\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        --lp-shadow-lg: 0 12px 40px rgba(15, 23, 42, 0.09);\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-font-display,\n    #lp360-root .lp360-page-title,\n    #lp360-root .lp360-section-title h2,\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-dm-summary-value,\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       TABS\n       ====================================================================== *\/\n    .lp360-tabs {\n    display: flex;\n    justify-content: center;\n    gap: var(--lp-space-2);\n    margin-bottom: var(--lp-space-5);\n    flex-wrap: wrap;\n    position: sticky;\n    top: 0;\n    z-index: 50;\n    background: var(--lp-bg-canvas);\n    padding: var(--lp-space-3) 0;\n}\n    .lp360-tab {\n        display: inline-flex;\n        align-items: center;\n        gap: var(--lp-space-2);\n        padding: 10px 22px;\n        border-radius: 999px;\n        border: 1.5px solid var(--lp-border-subtle);\n        background: #fff;\n        color: var(--lp-text-gray);\n        font-weight: 700;\n        font-size: 14px;\n        cursor: pointer;\n        transition: all 0.2s ease;\n        white-space: nowrap;\n        font-family: 'Inter', sans-serif;\n    }\n    .lp360-tab-icon {\n        width: 17px;\n        height: 17px;\n    }\n    .lp360-tab:hover {\n        border-color: var(--lp-brand-light);\n        color: var(--lp-brand-light);\n        transform: translateY(-1px);\n    }\n    .lp360-tab.active {\n        background: linear-gradient(90deg, var(--lp-brand-light), var(--lp-gold));\n        border-color: transparent;\n        color: #fff;\n        box-shadow: 0 6px 16px rgba(232, 93, 58, 0.35);\n    }\n\n    \/* ======================================================================\n       PANELS\n       ====================================================================== *\/\n   .lp360-tab-panel {\n    display: block;\n    animation: lp360FadeIn 0.35s ease;\n}\n\n.lp360-tab-panel.active {\n    display: block;\n}\n\n.lp360-tab-panel + .lp360-tab-panel {\n    margin-top: var(--lp-space-7);\n    padding-top: var(--lp-space-6);\n    border-top: 1px solid var(--lp-border-subtle);\n}\n    @keyframes lp360FadeIn {\n        from { opacity: 0; transform: translateY(6px); }\n        to { opacity: 1; transform: translateY(0); }\n    }\n\n    \/* ======================================================================\n       SECTION CARD - unified outer container\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    .lp360-section-card .lp360-section-title {\n        margin-bottom: var(--lp-space-4);\n    }\n    .lp360-section-card .lp360-section-title h2 {\n        font-size: 20px;\n        font-weight: 800;\n        margin: 0 0 4px;\n    }\n    .lp360-section-divider {\n        height: 1px;\n        background: var(--lp-border-subtle);\n        margin: var(--lp-space-4) 0;\n        width: 100%;\n    }\n    .lp360-section-divider--strong {\n        height: 2px;\n        background: var(--lp-border-subtle);\n        margin: var(--lp-space-5) 0;\n        width: 100%;\n        opacity: 0.6;\n    }\n\n    \/* ======================================================================\n       SECTION TITLE (used inside cards)\n       ====================================================================== *\/\n    .lp360-section-title {\n        margin: 0;\n    }\n    .lp360-section-title h2 {\n        font-size: 22px;\n        font-weight: 800;\n        margin: 0 0 4px;\n        color: var(--lp-text-dark);\n        letter-spacing: -0.3px;\n    }\n    .lp360-section-title h2 span {\n        color: var(--lp-brand-light);\n    }\n    .lp360-underline {\n        display: block;\n        width: 36px;\n        height: 4px;\n        border-radius: 4px;\n        background: linear-gradient(90deg, var(--lp-brand-light), var(--lp-gold));\n    }\n\n    \/* ======================================================================\n       HERO CARD - dark gradient header inside section 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       STANDARDIZED INFO BUTTON - two-tone ring with glow\n       ====================================================================== *\/\n    .lp360-info-btn {\n        display: inline-flex;\n        align-items: center;\n        justify-content: center;\n        width: 38px;\n        height: 38px;\n        border-radius: 50%;\n        border: 3px solid rgba(255, 122, 61, 0.35);\n        background: rgba(255, 122, 61, 0.12);\n        color: #fff;\n        font-size: 0;\n        cursor: pointer;\n        transition: all 0.3s ease;\n        flex-shrink: 0;\n        -webkit-appearance: none;\n        appearance: none;\n        line-height: 0;\n        padding: 0;\n        margin: 0;\n        position: relative;\n        box-shadow: 0 0 0 0 rgba(255, 122, 61, 0);\n    }\n    .lp360-info-btn::before {\n        content: '';\n        position: absolute;\n        inset: 4px;\n        border-radius: 50%;\n        background: linear-gradient(135deg, var(--lp-brand-light), var(--lp-brand-dark));\n        z-index: 0;\n        transition: transform 0.3s ease, background 0.3s ease;\n    }\n    .lp360-info-btn::after {\n        content: 'i';\n        font-family: 'Inter', sans-serif;\n        font-weight: 800;\n        font-size: 16px;\n        color: #fff;\n        line-height: 1;\n        position: relative;\n        z-index: 1;\n        transition: transform 0.3s ease;\n    }\n    .lp360-info-btn:hover {\n        transform: scale(1.08);\n        box-shadow: 0 0 20px rgba(255, 122, 61, 0.4);\n    }\n    .lp360-info-btn:hover::before {\n        transform: scale(1.12);\n        background: linear-gradient(135deg, var(--lp-gold), var(--lp-brand-light));\n    }\n    .lp360-info-btn:hover::after {\n        transform: rotate(10deg) scale(1.05);\n    }\n\n    \n\/* ======================================================================\n   INFO POPOVER - premium, colourful, glass-morphism\n   ====================================================================== *\/\n.lp360-info-popover {\n    position: fixed;\n    inset: 0;\n    background: rgba(0,0,0,0.50);\n    backdrop-filter: blur(12px) saturate(1.3);\n    -webkit-backdrop-filter: blur(12px) saturate(1.3);\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    z-index: 10000;\n    padding: var(--lp-space-5);\n    animation: lp360FadeIn 0.3s ease;\n}\n.lp360-info-popover__content {\n    background: rgba(255,255,255,0.95);\n    backdrop-filter: blur(4px);\n    -webkit-backdrop-filter: blur(4px);\n    border-radius: 28px;\n    max-width: 520px;\n    width: 100%;\n    padding: 0;\n    box-shadow: 0 40px 80px rgba(0,0,0,0.30), 0 0 0 1px rgba(232,93,58,0.20) inset, 0 0 0 2px rgba(255,255,255,0.6) inset;\n    animation: lp360PopoverSlideUp 0.5s cubic-bezier(0.34, 1.56, 0.64, 1);\n    position: relative;\n    text-align: center;\n    border: none;\n    overflow: hidden;\n}\n.lp360-info-popover__content::before {\n    content: '';\n    position: absolute;\n    top: 0;\n    left: 0;\n    right: 0;\n    height: 6px;\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@keyframes lp360GradientMove {\n    0% { background-position: 0% 50%; }\n    50% { background-position: 100% 50%; }\n    100% { background-position: 0% 50%; }\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.lp360-info-popover__close {\n    position: absolute;\n    top: 16px;\n    right: 18px;\n    background: rgba(0,0,0,0.05);\n    border: none;\n    font-size: 24px;\n    font-weight: 400;\n    color: var(--lp-text-gray);\n    cursor: pointer;\n    line-height: 1;\n    transition: all 0.25s ease;\n    padding: 0;\n    width: 40px;\n    height: 40px;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    border-radius: 50%;\n    z-index: 5;\n}\n.lp360-info-popover__close:hover {\n    color: var(--lp-red);\n    background: rgba(239,68,68,0.15);\n    transform: rotate(90deg);\n}\n.lp360-info-popover__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: 36px auto 20px;\n    color: #fff;\n    box-shadow: 0 10px 40px rgba(232,93,58,0.40);\n    animation: lp360PopoverIconPulse 2.6s ease-in-out infinite;\n}\n@keyframes lp360PopoverIconPulse {\n    0%, 100% { box-shadow: 0 10px 40px rgba(232,93,58,0.40); }\n    50% { box-shadow: 0 10px 50px rgba(232,93,58,0.60); }\n}\n.lp360-info-popover__icon svg {\n    width: 38px;\n    height: 38px;\n}\n.lp360-info-popover__title {\n    font-family: 'Sora','Inter',sans-serif;\n    font-size: 24px;\n    font-weight: 800;\n    margin: 0 0 8px;\n    color: var(--lp-text-dark);\n    letter-spacing: -0.3px;\n    padding: 0 var(--lp-space-5);\n}\n.lp360-info-popover__desc {\n    font-size: 16px;\n    line-height: 1.7;\n    color: #374151;\n    margin: 0;\n    text-align: left;\n    padding: 0 var(--lp-space-6) var(--lp-space-5);\n}\n.lp360-info-popover__desc p {\n    margin: 0 0 0.5em;\n}\n.lp360-info-popover__desc p:last-child {\n    margin-bottom: 0;\n}\n.lp360-info-popover__badge {\n    display: inline-block;\n    margin: 0 0 28px;\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-size: 13px;\n    font-weight: 700;\n    letter-spacing: 1px;\n    text-transform: uppercase;\n    box-shadow: 0 6px 20px rgba(232,93,58,0.30);\n}\n    \/* ======================================================================\n       TIME CARDS - unified container with internal dividers\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 - unified card with internal columns (Fix 6: mobile stacking)\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       DECISION MARKER - compact table, mobile scroll (Fix 8)\n       ====================================================================== *\/\n    .lp360-decision-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        overflow: hidden;\n    }\n    .lp360-decision-card .lp360-section-title {\n        margin-bottom: var(--lp-space-3);\n    }\n    .lp360-decision-card .lp360-section-title h2 {\n        font-size: 20px;\n    }\n\n    .lp360-dm-table-scroll {\n        overflow-x: auto;\n        padding-bottom: 4px;\n        -webkit-overflow-scrolling: touch;\n        scrollbar-width: thin;\n        scrollbar-color: var(--lp-border-subtle) transparent;\n        position: relative;\n    }\n    .lp360-dm-table-scroll::-webkit-scrollbar {\n        height: 6px;\n    }\n    .lp360-dm-table-scroll::-webkit-scrollbar-track {\n        background: transparent;\n    }\n    .lp360-dm-table-scroll::-webkit-scrollbar-thumb {\n        background: var(--lp-border-subtle);\n        border-radius: 10px;\n    }\n    .lp360-dm-table-scroll::after {\n        content: '';\n        position: absolute;\n        right: 0;\n        top: 0;\n        bottom: 0;\n        width: 30px;\n        background: linear-gradient(to right, transparent, rgba(255,255,255,0.8));\n        pointer-events: none;\n        opacity: 0;\n        transition: opacity 0.3s ease;\n    }\n    .lp360-dm-table-scroll.is-scrollable::after {\n        opacity: 1;\n    }\n\n    .lp360-dm-table {\n        width: 100%;\n        border-collapse: separate;\n        border-spacing: 0 4px;\n        table-layout: auto;\n        font-size: 13px;\n        min-width: 600px;\n    }\n    .lp360-dm-table thead th {\n        font-size: 11px;\n        font-weight: 700;\n        text-align: center;\n        padding: 10px 12px;\n        white-space: nowrap;\n        letter-spacing: 0.5px;\n        text-transform: uppercase;\n        background: linear-gradient(135deg, var(--lp-brand-light), var(--lp-brand-dark));\n        color: #fff;\n        border: none;\n        position: sticky;\n        top: 0;\n        z-index: 2;\n    }\n    \/* Make interval headers match body cell size *\/\n.lp360-dm-table thead th:not(:first-child) {\n    font-size: 15px;          \/* same as tbody td font-size *\/\n    font-weight: 700;         \/* same as tbody td font-weight *\/\n    letter-spacing: 0;        \/* remove extra spacing to match numbers *\/\n    text-transform: none;     \/* optional: keep numbers as plain digits *\/\n}\n    .lp360-dm-table thead th:first-child {\n        border-radius: 10px 0 0 10px;\n        text-align: left !important;\n    }\n    .lp360-dm-table thead th:last-child {\n        border-radius: 0 10px 10px 0;\n    }\n    .lp360-dm-row-head-col {\n        min-width: 0;\n        text-align: left !important;\n        font-weight: 700 !important;\n        white-space: normal;\n        background: linear-gradient(135deg, var(--lp-brand-light), var(--lp-brand-dark)) !important;\n        color: #fff !important;\n    }\n\n    .lp360-dm-table tbody td {\n    padding: 8px 10px;\n    vertical-align: middle;\n    white-space: nowrap;\n    font-weight: 700;          \/* make numbers bolder *\/\n    font-size: 15px;           \/* slightly larger *\/\n}\n\/* Keep the first column (labels) left-aligned and normal weight *\/\n.lp360-dm-table tbody td:first-child {\n    text-align: left !important;\n    font-weight: 700;\n    font-size: 13px;\n}\n\/* All other cells (numbers) centered *\/\n.lp360-dm-table tbody td:not(:first-child) {\n    text-align: center;\n}\n    .lp360-dm-table tbody td:first-child {\n        border-radius: 10px 0 0 10px;\n        white-space: normal;\n    }\n    .lp360-dm-table tbody td:last-child {\n        border-radius: 0 10px 10px 0;\n    }\n\n    .lp360-dm-row-label {\n        display: flex;\n        align-items: center;\n        gap: var(--lp-space-2);\n        font-weight: 700;\n        font-size: 13px;\n        white-space: normal;\n        word-break: break-word;\n    }\n    .lp360-dm-row-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-dm-row-icon svg {\n        width: 12px;\n        height: 12px;\n    }\n    .lp360-dm-chip-cell {\n        display: flex;\n        flex-wrap: wrap;\n        gap: 4px;\n        justify-content: center;\n    }\n    .lp360-dm-chip, .lp360-time-card-badge {\n        cursor: pointer;\n        transition: transform 0.15s ease, box-shadow 0.15s ease;\n    }\n    .lp360-dm-chip:hover, .lp360-time-card-badge:hover {\n        transform: translateY(-2px) scale(1.06);\n        box-shadow: 0 4px 10px rgba(232,93,58,0.25);\n    }\n    .lp360-dm-chip {\n        display: inline-flex;\n        align-items: center;\n        font-size: 11px;\n        font-weight: 700;\n        padding: 3px 8px;\n        border-radius: 999px;\n        background: #fff;\n        box-shadow: 0 1px 4px rgba(15,23,42,0.06);\n        border: 1.5px solid transparent;\n        white-space: nowrap;\n    }\n\n    .lp360-dm-row--green {\n        background: #eaf8ef;\n    }\n    .lp360-dm-row--red {\n        background: #fdeaea;\n    }\n    .lp360-dm-row--teal {\n        background: #e4f7f4;\n    }\n    .lp360-dm-row--peach {\n        background: #fdecd9;\n    }\n    .lp360-dm-row--yellow {\n        background: #fdf6db;\n    }\n    .lp360-dm-row--purple {\n        background: #ede8fb;\n    }\n\n    .lp360-dm-row-icon--green {\n        background: var(--lp-green);\n    }\n    .lp360-dm-row-icon--red {\n        background: var(--lp-red);\n    }\n    .lp360-dm-row-icon--teal {\n        background: var(--lp-teal);\n    }\n    .lp360-dm-row-icon--peach {\n        background: var(--lp-orange2);\n    }\n    .lp360-dm-row-icon--yellow {\n        background: var(--lp-yellow);\n    }\n    .lp360-dm-row-icon--purple {\n        background: var(--lp-purple2);\n    }\n\/* New: Blue attempt row *\/\n.lp360-dm-row--blue {\n    background: #f0f7ff;  \/* light blue shade *\/\n}\n.lp360-dm-row-icon--blue {\n    background: #3b82f6;  \/* bright blue for icon *\/\n}\n    .lp360-dm-chip--green {\n        color: var(--lp-green);\n        border-color: #bdeccb;\n    }\n    .lp360-dm-chip--red {\n        color: var(--lp-red);\n        border-color: #f9c9c9;\n    }\n    .lp360-dm-chip--teal {\n        color: #0d9488;\n        border-color: #b8ece5;\n    }\n    .lp360-dm-chip--peach {\n        color: var(--lp-orange2);\n        border-color: #fbd6ac;\n    }\n    .lp360-dm-chip--yellow {\n        color: #b45309;\n        border-color: #f9e6a0;\n    }\n    .lp360-dm-chip--purple {\n        color: #7c3aed;\n        border-color: #d8cdf7;\n    }\n.lp360-dm-summary {\n    display: grid;\n    grid-template-columns: repeat(3, 1fr);\n    gap: var(--lp-space-4);\n    margin-top: var(--lp-space-4);\n    \/* No border-top - removed per your earlier request *\/\n}\n  \n.lp360-dm-summary-card {\n    border-radius: var(--lp-radius-md);\n    padding: var(--lp-space-4) var(--lp-space-3);\n    text-align: center;\n    background: #fafbfc;\n    box-shadow: var(--lp-shadow-sm);\n    border: 1px solid var(--lp-border-subtle);\n    transition: all 0.25s ease;\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n    gap: 4px;\n}\n.lp360-dm-summary-card:hover {\n    transform: translateY(-3px);\n    box-shadow: var(--lp-shadow-md);\n}\n.lp360-dm-summary-icon {\n    width: 44px;\n    height: 44px;\n    border-radius: 50%;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    margin-bottom: 2px;\n    background: rgba(255,255,255,0.9);\n    box-shadow: 0 2px 8px rgba(0,0,0,0.05);\n}\n.lp360-dm-summary-icon svg {\n    width: 20px;\n    height: 20px;\n}\n.lp360-dm-summary-value {\n    font-family: 'Sora','Inter',sans-serif;\n    font-size: 15px;          \/* matches table cell font size *\/\n    font-weight: 700;\n    line-height: 1.3;\n    color: var(--lp-text-dark);\n}\n.lp360-dm-summary-label {\n    font-size: 11px;          \/* matches table header label size *\/\n    font-weight: 600;\n    text-transform: uppercase;\n    letter-spacing: 0.6px;\n    color: var(--lp-text-gray);\n}\n\/* Coloured accents for each card *\/\n.lp360-dm-summary-card--blue .lp360-dm-summary-icon {\n    background: #e0f2fe;\n    color: #2563eb;\n}\n.lp360-dm-summary-card--blue .lp360-dm-summary-value {\n    color: #2563eb;\n}\n.lp360-dm-summary-card--blue {\n    border-top: 3px solid #2563eb;\n}\n.lp360-dm-summary-card--green .lp360-dm-summary-icon {\n    background: #dcfce7;\n    color: #16a34a;\n}\n.lp360-dm-summary-card--green .lp360-dm-summary-value {\n    color: #16a34a;\n}\n.lp360-dm-summary-card--green {\n    border-top: 3px solid #16a34a;\n}\n.lp360-dm-summary-card--red .lp360-dm-summary-icon {\n    background: #fee2e2;\n    color: #dc2626;\n}\n.lp360-dm-summary-card--red .lp360-dm-summary-value {\n    color: #dc2626;\n}\n.lp360-dm-summary-card--red {\n    border-top: 3px solid #dc2626;\n}\n.lp360-dm-summary-card--teal,\n.lp360-dm-summary-card--peach,\n.lp360-dm-summary-card--yellow,\n.lp360-dm-summary-card--purple {\n    border-top: 3px solid var(--lp-border-subtle);\n}\n\n.lp360-dm-inference {\n    margin: var(--lp-space-4) 0 0;\n    padding: var(--lp-space-3) var(--lp-space-4);\n    border-radius: 12px;\n    background: #fff7ed;\n    border: 1px solid #fed7aa;\n    color: #9a3412;\n    font-size: 13px;\n    font-weight: 600;\n    line-height: 1.5;\n}\n\n    \/* ======================================================================\n       STRENGTH MAP (formerly \"NCERT Mapping\") - Redesigned\n       ====================================================================== *\/\n    .lp360-ncert-wrapper-card {\n        background: transparent;\n        border: none;\n        box-shadow: none;\n        padding: 0;\n        margin: 0 0 var(--lp-space-6) 0;\n    }\n    .lp360-ncert-title-flex {\n        display: flex;\n        justify-content: space-between;\n        align-items: center;\n        margin-bottom: var(--lp-space-4);\n        position: relative;\n    }\n    .lp360-ncert-title-flex h2 {\n        margin: 0;\n        font-family: 'Sora','Inter',sans-serif;\n        font-weight: 700;\n        color: var(--lp-text-dark);\n        font-size: 20px;\n    }\n    .lp360-ncert-title-flex .lp360-underline {\n        position: absolute;\n        bottom: -8px;\n        left: 0;\n        width: 40px;\n        height: 3px;\n        background: var(--lp-brand-light);\n        border-radius: 2px;\n    }\n    .lp360-info-icon {\n        color: #2563eb;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        cursor: pointer;\n    }\n    .lp360-ncert-cards-container {\n        display: flex;\n        flex-direction: column;\n        gap: var(--lp-space-3);\n    }\n    .lp360-ncert-badge-row,\n    .lp360-ncert-band-card,\n    .lp360-ncert-analysis-card {\n        background: #ffffff;\n        border-radius: var(--lp-radius-lg);\n        border: 1px solid #eaeaea;\n        padding: var(--lp-space-4);\n        box-shadow: 0 2px 8px rgba(0,0,0,0.02);\n        display: flex;\n        align-items: center;\n    }\n    \n    \/* BADGE CARD *\/\n    .lp360-ncert-badge-row {\n        gap: var(--lp-space-5);\n        flex-wrap: wrap;\n    }\n    .lp360-ncert-badge-icon {\n        width: clamp(45px, 6vw, 60px);\n        aspect-ratio: 1\/1;\n        flex-shrink: 0;\n        position: relative;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        transition: transform 0.3s ease;\n    }\n    .lp360-ncert-badge-icon:hover {\n        transform: scale(1.05);\n    }\n    .lp360-ncert-badge-text-left {\n        display: flex;\n        flex-direction: column;\n        flex: 1;\n        min-width: 200px;\n    }\n    .lp360-ncert-badge-label {\n        font-size: 11px;\n        color: #2563eb;\n        font-weight: 700;\n        text-transform: uppercase;\n        letter-spacing: 0.5px;\n        margin-bottom: 2px;\n    }\n    .lp360-ncert-badge-value {\n        font-family: 'Sora','Inter',sans-serif;\n        font-size: 22px;\n        font-weight: 800;\n        color: var(--lp360-badge-grad-b, #dc2626);\n        margin-bottom: 4px;\n    }\n    .lp360-ncert-badge-desc {\n        font-size: 13px;\n        color: #4b5563;\n        line-height: 1.5;\n        margin: 0;\n    }\n    .lp360-ncert-divider {\n        width: 1px;\n        height: 60px;\n        background: #eaeaea;\n        flex-shrink: 0;\n    }\n    .lp360-ncert-badge-desc-wrap {\n        flex: 1.5;\n        min-width: 250px;\n        display: flex;\n        flex-direction: column;\n        gap: 6px;\n    }\n    .lp360-ncert-desc-title {\n        display: flex;\n        align-items: center;\n        gap: 8px;\n    }\n    .lp360-ncert-desc-icon {\n        color: #2563eb;\n        display: flex;\n        align-items: center;\n        background: #eff6ff;\n        padding: 6px;\n        border-radius: 50%;\n        border: 1px solid #bfdbfe;\n    }\n    .lp360-ncert-desc-icon svg {\n        width: 16px;\n        height: 16px;\n    }\n    .lp360-ncert-desc-title h4 {\n        margin: 0;\n        font-size: 14px;\n        font-weight: 700;\n        color: #111827;\n    }\n    .lp360-ncert-badge-desc-right {\n        font-size: 13px;\n        color: #4b5563;\n        line-height: 1.5;\n        margin: 0;\n    }\n\n    \/* BAND CARD *\/\n    .lp360-ncert-band-card {\n        flex-direction: column;\n        align-items: stretch;\n        gap: var(--lp-space-3);\n        background: #fffafa;\n    }\n    .lp360-ncert-band-head {\n        display: flex;\n        align-items: center;\n        gap: var(--lp-space-3);\n    }\n    .lp360-ncert-band-head h3 {\n        font-size: 15px;\n        font-weight: 700;\n        margin: 0;\n        font-family: 'Sora','Inter',sans-serif;\n        color: #111827;\n    }\n    .lp360-round-icon--peach {\n        background: linear-gradient(145deg, #f59e0b, #f97316);\n        width: 32px;\n        height: 32px;\n        border-radius: 50%;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        box-shadow: 0 2px 6px rgba(249,115,22,0.2);\n    }\n    .lp360-round-icon--peach svg {\n        width: 16px;\n        height: 16px;\n    }\n    .lp360-band-poor {\n        display: flex;\n        align-items: center;\n        gap: var(--lp-space-2);\n        color: #dc2626;\n        background: #fef2f2;\n        border-radius: var(--lp-radius-sm);\n        padding: 10px 14px;\n        font-weight: 600;\n        font-size: 12.5px;\n        border: 1px solid #fee2e2;\n        margin-top: 4px;\n    }\n    .lp360-band-poor svg {\n        width: 18px;\n        height: 18px;\n        flex-shrink: 0;\n    }\n    .lp360-band-wrap {\n        position: relative;\n        padding-top: 28px;\n    }\n    .lp360-band-tsi-badge {\n        position: absolute;\n        top: 0;\n        transform: translateX(-50%);\n        background: var(--lp-brand-light);\n        color: #fff;\n        font-weight: 800;\n        font-size: 12px;\n        padding: 4px 12px;\n        border-radius: 8px;\n        white-space: nowrap;\n        font-family: 'Sora','Inter',sans-serif;\n        box-shadow: 0 4px 12px rgba(232,93,58,0.35);\n        transition: left 0.8s cubic-bezier(0.2,0.7,0.2,1);\n    }\n    .lp360-band-tsi-badge::after {\n        content: '';\n        position: absolute;\n        bottom: -5px;\n        left: 50%;\n        transform: translateX(-50%);\n        border-width: 5px 5px 0;\n        border-style: solid;\n        border-color: var(--lp-brand-light) transparent transparent;\n    }\n    .lp360-band-track {\n        height: 10px;\n        border-radius: 999px;\n        position: relative;\n        background: linear-gradient(90deg, #ef4444 0%, #f97316 25%, #facc15 50%, #a3e635 75%, #22c55e 100%);\n        box-shadow: inset 0 1px 3px rgba(0,0,0,0.1);\n    }\n    .lp360-band-marker {\n        position: absolute;\n        top: 50%;\n        width: 22px;\n        height: 22px;\n        border-radius: 50%;\n        background: #fff;\n        border: 4px solid #fff;\n        box-shadow: 0 0 0 2px rgba(0,0,0,0.08), 0 4px 10px rgba(0,0,0,0.15);\n        transform: translate(-50%, -50%);\n        transition: left 0.8s cubic-bezier(0.2,0.7,0.2,1);\n    }\n    .lp360-band-scale {\n        display: flex;\n        justify-content: space-between;\n        margin-top: var(--lp-space-2);\n    }\n    .lp360-band-scale-label {\n        font-weight: 700;\n        font-size: 12px;\n    }\n\n    \/* ANALYSIS CARD *\/\n    .lp360-ncert-analysis-card {\n        justify-content: space-between;\n        gap: var(--lp-space-4);\n        background: #f8fbff;\n        overflow: hidden;\n        position: relative;\n    }\n    .lp360-ncert-analysis-content {\n        flex: 1;\n        display: flex;\n        flex-direction: column;\n        gap: 8px;\n        z-index: 2;\n    }\n    .lp360-ncert-analysis-header {\n        display: flex;\n        align-items: center;\n        gap: var(--lp-space-3);\n    }\n    .lp360-ncert-analysis-header h3 {\n        font-size: 15px;\n        font-weight: 700;\n        margin: 0;\n        font-family: 'Sora','Inter',sans-serif;\n        color: #111827;\n    }\n    .lp360-round-icon--blue {\n        background: linear-gradient(145deg, #60a5fa, #2563eb);\n        width: 32px;\n        height: 32px;\n        border-radius: 50%;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        box-shadow: 0 2px 6px rgba(37,99,235,0.2);\n    }\n    .lp360-round-icon--blue svg {\n        width: 16px;\n        height: 16px;\n    }\n    .lp360-ncert-analysis-content p {\n        font-size: 13px;\n        line-height: 1.6;\n        color: #374151;\n        margin: 0;\n    }\n    .lp360-ncert-analysis-image {\n        flex-shrink: 0;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        z-index: 1;\n        padding-right: 10px;\n    }\n    .lp360-ncert-analysis-image img {\n        width: 80px;\n        object-fit: contain;\n    }\n    .lp360-ncert-analysis-card::before {\n        content: '';\n        position: absolute;\n        right: 0;\n        top: 0;\n        bottom: 0;\n        width: 300px;\n        background: radial-gradient(circle at 100% 50%, rgba(59,130,246,0.05) 0%, transparent 70%);\n        pointer-events: none;\n        z-index: 0;\n    }\n\n    \/* ======================================================================\n       MIND MAP - description removed, now in popup\n       ====================================================================== *\/\n    .lp360-mindmap-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    }\n    .lp360-mindmap-title {\n        color: var(--lp-brand-light) !important;\n    }\n    .lp360-mindmap-desc {\n        display: none;\n    }\n    \/* Source-name tag (CMA: shows the NCERT chapter this mind map is drawn from) *\/\n    .lp360-mindmap-source-tag {\n        display: none;\n        align-items: center;\n        gap: 6px;\n        margin: -8px 0 16px 0;\n        padding: 6px 14px;\n        background: #fef3e2;\n        border: 1px solid #fbd7a8;\n        border-radius: 999px;\n        font-size: 11px;\n        font-weight: 700;\n        color: #9a5b0f;\n        width: fit-content;\n    }\n\n    .lp360-mindmap-diagram {\n        position: relative;\n        border: 1.5px dashed var(--lp-brand-light);\n        border-radius: var(--lp-radius-md);\n        background: #fdfcfb;\n        padding: var(--lp-space-4) var(--lp-space-3);\n        display: grid;\n        grid-template-columns: 1.2fr 0.8fr 0.7fr 0.8fr 1.2fr;\n        align-items: center;\n        gap: 4px;\n        min-height: 320px;\n    }\n    .lp360-mindmap-svg {\n        position: absolute;\n        inset: 0;\n        width: 100%;\n        height: 100%;\n        pointer-events: none;\n        z-index: 1;\n    }\n    .lp360-mm-col {\n        position: relative;\n        z-index: 2;\n        display: flex;\n        flex-direction: column;\n        gap: 6px;\n    }\n    .lp360-mm-col--node,\n    .lp360-mm-col--center {\n        align-items: center;\n        justify-content: center;\n        height: 100%;\n    }\n    .lp360-mm-col--topics .lp360-mm-topic {\n        background: #fbe7d4;\n        color: #7c3f0e;\n        font-size: 11.5px;\n        font-weight: 700;\n        padding: 6px 12px;\n        border-radius: 6px;\n        text-align: center;\n        white-space: nowrap;\n        position: relative;\n    }\n    .lp360-mm-col--topics.lp360-mm-basic .lp360-mm-topic,\n    #lp360-mm-basic-list .lp360-mm-topic {\n        background: #e2f5e6;\n        color: #166534;\n    }\n\n    .lp360-mm-node {\n        display: inline-flex;\n        align-items: center;\n        gap: 6px;\n        font-weight: 700;\n        font-size: 13px;\n        padding: 10px 16px;\n        border-radius: 10px;\n        white-space: nowrap;\n        background: #fff;\n        font-family: 'Sora','Inter',sans-serif;\n        box-shadow: 0 2px 8px rgba(0,0,0,0.04);\n    }\n    .lp360-mm-node--orange {\n        border: 2px solid var(--lp-brand-light);\n        color: var(--lp-brand-light);\n    }\n    .lp360-mm-node--green {\n        border: 2px solid var(--lp-green);\n        color: #15803d;\n    }\n    .lp360-mm-node--center {\n        border: 2px solid #1f2937;\n        color: #1f2937;\n        padding: 14px 20px;\n        font-size: 14px;\n    }\n    .lp360-mm-dot {\n        width: 8px;\n        height: 8px;\n        border-radius: 50%;\n        display: inline-block;\n    }\n    .lp360-mm-dot--orange {\n        background: var(--lp-brand-light);\n    }\n    .lp360-mm-dot--green {\n        background: var(--lp-green);\n    }\n\n    .lp360-mindmap-mobile {\n        display: none;\n        flex-direction: column;\n        align-items: center;\n        gap: var(--lp-space-3);\n        margin-top: var(--lp-space-3);\n    }\n    .lp360-mm-mobile-group {\n        width: 100%;\n        text-align: center;\n        background: #fff;\n        border-radius: var(--lp-radius-md);\n        padding: var(--lp-space-3);\n        box-shadow: 0 1px 6px rgba(0,0,0,0.03);\n        border: 1px dashed var(--lp-border-subtle);\n    }\n    .lp360-mm-mobile-heading {\n        font-weight: 800;\n        font-size: 14px;\n        margin-bottom: 6px;\n        padding: 4px 14px;\n        border-radius: 8px;\n        display: inline-block;\n        font-family: 'Sora','Inter',sans-serif;\n    }\n    .lp360-mm-mobile-heading--orange {\n        background: #fdecd9;\n        color: var(--lp-brand-light);\n    }\n    .lp360-mm-mobile-heading--green {\n        background: #e2f5e6;\n        color: #15803d;\n    }\n    .lp360-mm-mobile-tags {\n        display: flex;\n        flex-wrap: wrap;\n        gap: 6px;\n        justify-content: center;\n    }\n    .lp360-mm-mobile-tags span {\n        background: #fbe7d4;\n        color: #7c3f0e;\n        font-size: 11.5px;\n        font-weight: 700;\n        padding: 5px 10px;\n        border-radius: 6px;\n    }\n    #lp360-mm-mobile-basic span {\n        background: #e2f5e6;\n        color: #166534;\n    }\n    .lp360-mm-mobile-connector {\n        width: 2px;\n        height: 24px;\n        background: repeating-linear-gradient(to bottom, var(--lp-brand-light) 0, var(--lp-brand-light) 4px, transparent 4px, transparent 8px);\n        align-self: center;\n    }\n    .lp360-mm-mobile-group--center {\n        border: none;\n        box-shadow: none;\n        background: transparent;\n        padding: 4px;\n    }\n\n    .lp360-mindmap-summary {\n        display: grid;\n        grid-template-columns: 1fr 1fr;\n        gap: var(--lp-space-3);\n        margin-top: var(--lp-space-4);\n    }\n    .lp360-mm-summary-card {\n        display: flex;\n        align-items: center;\n        gap: var(--lp-space-3);\n        padding: var(--lp-space-3) var(--lp-space-4);\n        border-radius: var(--lp-radius-md);\n        justify-content: center;\n        flex-wrap: wrap;\n    }\n    .lp360-mm-summary-card--orange {\n        background: linear-gradient(120deg, #fdecd9, #fff8f0);\n        border: 1px solid #f6ddc0;\n    }\n    .lp360-mm-summary-card--green {\n        background: linear-gradient(120deg, #e2f5e6, #f6fdf7);\n        border: 1px solid #cdeed4;\n    }\n    .lp360-mm-summary-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-mm-summary-icon svg {\n        width: 18px;\n        height: 18px;\n    }\n    .lp360-mm-summary-card--orange .lp360-mm-summary-icon {\n        background: var(--lp-brand-light);\n    }\n    .lp360-mm-summary-card--green .lp360-mm-summary-icon {\n        background: var(--lp-green);\n    }\n    .lp360-mm-summary-text {\n        display: flex;\n        flex-direction: column;\n        gap: 1px;\n        text-align: left;\n    }\n    .lp360-mm-summary-label {\n        font-weight: 800;\n        font-size: 14px;\n        font-family: 'Sora','Inter',sans-serif;\n    }\n    .lp360-mm-summary-card--orange .lp360-mm-summary-label {\n        color: var(--lp-brand-light);\n    }\n    .lp360-mm-summary-card--green .lp360-mm-summary-label {\n        color: #15803d;\n    }\n    .lp360-mm-summary-sub {\n        font-size: 11px;\n        color: var(--lp-text-gray);\n    }\n    .lp360-mm-summary-dots {\n        flex: 1;\n        min-width: 20px;\n        border-top: 2px dotted #d6c3aa;\n        align-self: center;\n    }\n    .lp360-mm-summary-card--green .lp360-mm-summary-dots {\n        border-top-color: #b6ddbc;\n    }\n    .lp360-mm-summary-value {\n        font-family: 'Sora','Inter',sans-serif;\n        font-size: 26px;\n        font-weight: 800;\n        padding: 2px 14px;\n        border-radius: 10px;\n    }\n    .lp360-mm-summary-card--orange .lp360-mm-summary-value {\n        color: var(--lp-brand-light);\n        background: rgba(232,93,58,0.08);\n    }\n    .lp360-mm-summary-card--green .lp360-mm-summary-value {\n        color: #15803d;\n        background: rgba(34,197,94,0.1);\n    }\n\n    \/* ======================================================================\n       TRACKER PANEL - unified card with internal sections\n       ====================================================================== *\/\n    #lp360-panel-tracker.active {\n        display: block;\n    }\n    .lp360-tracker-card,\n    .lp360-accuracy-card,\n    .lp360-time-tracker-card {\n        background: transparent;\n        border-radius: 0;\n        padding: 0;\n        box-shadow: none;\n        border: none;\n        overflow: visible;\n        margin: 0;\n    }\n    .lp360-tracker-card + .lp360-tracker-card,\n    .lp360-accuracy-card + .lp360-tracker-card,\n    .lp360-tracker-card + .lp360-accuracy-card {\n        padding-top: var(--lp-space-5);\n        border-top: 1px solid var(--lp-border-subtle);\n        margin-top: var(--lp-space-4);\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    \/* Unified major headings: same style as Time Tracker *\/\n    #lp360-root .lp360-tracker-header {\n        margin-bottom: var(--lp-space-3);\n    }\n    #lp360-root .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        letter-spacing: 0;\n    }\n    #lp360-root .lp360-tracker-title span {\n        color: var(--lp-brand-light);\n    }\n    .lp360-tracker-desc {\n        display: none;\n    }\n\n    .lp360-tracker-chart-wrap {\n        position: relative;\n        width: 100%;\n        background: #fafaf9;\n        border-radius: var(--lp-radius-sm);\n        padding: 4px;\n        box-shadow: inset 0 1px 4px rgba(0,0,0,0.02);\n        overflow: visible;\n    }\n    #lp360-tracker-canvas,\n    #lp360-accuracy-canvas {\n        display: block;\n        width: 100%;\n        height: auto;\n        background: #ffffff;\n        border-radius: var(--lp-radius-xs);\n        box-shadow: 0 1px 4px rgba(0,0,0,0.02);\n        cursor: default;\n    }\n\n    \/* time tracker info - removed, now in popup *\/\n    .lp360-time-tracker-info {\n        display: none;\n    }\n\n    \/* time tracker layout *\/\n    .lp360-time-tracker-layout {\n        display: grid;\n        grid-template-columns: 35% 1fr;\n        gap: var(--lp-space-5);\n        align-items: start;\n    }\n    @media (max-width: 900px) {\n        .lp360-time-tracker-layout {\n            grid-template-columns: 1fr;\n        }\n    }\n    .lp360-time-tracker-left {\n        display: flex;\n        flex-direction: column;\n        gap: var(--lp-space-4);\n    }\n    .lp360-time-tracker-right {\n        display: flex;\n        flex-direction: column;\n        gap: var(--lp-space-4);\n        background: var(--lp-bg-cyan-soft);\n        color: #ffffff;\n        border: 1px solid var(--lp-border-subtle);\n        border-radius: var(--lp-radius-md);\n        padding: var(--lp-space-4);\n        box-shadow: var(--lp-shadow-sm);\n    }\n\n    \/* time tabs *\/\n    .lp360-time-tracker-tabs {\n        display: flex;\n        gap: 0;\n        margin-bottom: 0;\n        border-radius: var(--lp-radius-sm);\n        overflow: hidden;\n        border: 1px solid var(--lp-border-subtle);\n        background: #f9fafb;\n    }\n    .lp360-time-tab {\n        flex: 1;\n        padding: 10px 12px;\n        text-align: center;\n        font-weight: 700;\n        font-size: 13px;\n        color: #1f2937;\n        background: transparent;\n        border: none;\n        cursor: pointer;\n        transition: all 0.2s ease;\n        font-family: 'Inter', sans-serif;\n        border-right: 1px solid var(--lp-border-subtle);\n    }\n    .lp360-time-tab:last-child {\n        border-right: none;\n    }\n    .lp360-time-tab:hover {\n        background: #f3f4f6;\n    }\n    .lp360-time-tab.active {\n        background: var(--lp-brand-light);\n        color: #fff;\n        box-shadow: 0 4px 12px rgba(232,93,58,0.3);\n    }\n\n    \/* gauges *\/\n    .lp360-time-tracker-gauges {\n        display: grid;\n        grid-template-columns: repeat(3, 1fr);\n        gap: var(--lp-space-3);\n        margin-bottom: 0;\n    }\n    .lp360-gauge-column {\n        background: #fff;\n        border-radius: var(--lp-radius-md);\n        padding: var(--lp-space-2) var(--lp-space-3);\n        border: 1px solid var(--lp-border-subtle);\n        box-shadow: var(--lp-shadow-sm);\n        display: flex;\n        flex-direction: column;\n        align-items: center;\n        text-align: center;\n        transition: transform 0.2s ease, box-shadow 0.2s ease;\n    }\n    .lp360-gauge-column:hover {\n        transform: translateY(-2px);\n        box-shadow: var(--lp-shadow-md);\n    }\n    .lp360-gauge-column--orange {\n        border-top: 3px solid var(--lp-brand-light);\n    }\n    .lp360-gauge-column--green {\n        border-top: 3px solid var(--lp-green);\n    }\n    .lp360-gauge-column--amber {\n        border-top: 3px solid var(--lp-amber);\n    }\n\n    .lp360-gauge-column-header {\n        display: flex;\n        flex-direction: column;\n        align-items: center;\n        gap: var(--lp-space-1);\n        margin-bottom: var(--lp-space-2);\n        width: 100%;\n    }\n    .lp360-gauge-column-icon {\n        width: 28px;\n        height: 28px;\n        border-radius: 50%;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        flex-shrink: 0;\n        margin-bottom: 2px;\n    }\n    .lp360-gauge-column-icon.orange {\n        background: #fef0e8;\n    }\n    .lp360-gauge-column-icon.green {\n        background: #e8f5ed;\n    }\n    .lp360-gauge-column-icon.amber {\n        background: #fef3e8;\n    }\n    .lp360-gauge-column-icon svg {\n        width: 14px;\n        height: 14px;\n    }\n    .lp360-gauge-column-title {\n        font-size: 11px;\n        font-weight: 800;\n        text-align: center;\n        line-height: 1.2;\n    }\n    .lp360-gauge-column--orange .lp360-gauge-column-title {\n        color: var(--lp-brand-light);\n    }\n    .lp360-gauge-column--green .lp360-gauge-column-title {\n        color: var(--lp-green);\n    }\n    .lp360-gauge-column--amber .lp360-gauge-column-title {\n        color: var(--lp-amber);\n    }\n    .lp360-gauge-column-sub {\n        font-size: 9px;\n        color: var(--lp-text-gray);\n        text-align: center;\n        line-height: 1.2;\n    }\n\n    .lp360-gauge-column-chart {\n        width: 100%;\n        max-width: 121px;\n        margin: 2px auto var(--lp-space-1);\n        overflow: visible;\n        display: flex;\n        justify-content: center;\n    }\n    .lp360-gauge-canvas {\n        display: block;\n        width: 100%;\n        height: auto;\n    }\n    .lp360-gauge-column-value {\n        font-family: 'Sora','Inter',sans-serif;\n        font-size: 22px;\n        font-weight: 800;\n        padding: 2px 10px;\n        border-radius: 8px;\n        background: #f8f9fc;\n        line-height: 1.3;\n        margin-top: 2px;\n    }\n    .lp360-gauge-column--orange .lp360-gauge-column-value {\n        color: var(--lp-brand-light);\n        background: rgba(232,93,58,0.08);\n    }\n    .lp360-gauge-column--green .lp360-gauge-column-value {\n        color: var(--lp-green);\n        background: rgba(34,197,94,0.08);\n    }\n    .lp360-gauge-column--amber .lp360-gauge-column-value {\n        color: var(--lp-amber);\n        background: rgba(245,158,11,0.08);\n    }\n    .lp360-gauge-column-value span {\n        font-size: 11px;\n        font-weight: 700;\n    }\n\n    \/* inferences *\/\n    .lp360-time-tracker-inferences {\n        display: flex;\n        flex-direction: column;\n        gap: var(--lp-space-4);\n        width: 100%;\n        margin-top: 0;\n    }\n    .lp360-inference-block {\n        display: flex;\n        align-items: flex-start;\n        gap: var(--lp-space-4);\n        background: #f9fafb;\n        border-radius: var(--lp-radius-md);\n        padding: var(--lp-space-4) var(--lp-space-5);\n        border: 1px solid var(--lp-border-subtle);\n        transition: transform 0.15s ease;\n        width: 100%;\n        overflow: visible;\n    }\n    .lp360-inference-block:hover {\n        transform: translateY(-1px);\n    }\n    .lp360-inference-icon {\n        width: 34px;\n        height: 34px;\n        border-radius: 50%;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        flex-shrink: 0;\n    }\n    .lp360-inference-icon.orange {\n        background: var(--lp-brand-light);\n    }\n    .lp360-inference-icon.green {\n        background: var(--lp-green);\n    }\n    .lp360-inference-icon svg {\n        width: 16px;\n        height: 16px;\n        stroke: #fff;\n        stroke-width: 2.5;\n        fill: none;\n    }\n    .lp360-inference-title {\n        font-size: 12px;\n        font-weight: 800;\n        letter-spacing: 0.8px;\n        text-transform: uppercase;\n        margin-bottom: 4px;\n        color: var(--lp-text-gray);\n    }\n    .lp360-inference-block:first-child .lp360-inference-title {\n        color: var(--lp-brand-light);\n    }\n    .lp360-inference-block:last-child .lp360-inference-title {\n        color: var(--lp-green);\n    }\n    .lp360-inference-text {\n        font-size: 14px;\n        line-height: 1.6;\n        color: #374151;\n        overflow-wrap: break-word;\n        word-break: break-word;\n        white-space: normal;\n    }\n\n    \/* ======================================================================\n       PREDICTION PANEL - unified card with merged columns (Fix 2)\n       ====================================================================== *\/\n    .lp360-pred-time-grid {\n        display: grid;\n        grid-template-columns: repeat(3, 1fr);\n        gap: var(--lp-space-4);\n        margin-bottom: var(--lp-space-5);\n        align-items: stretch;\n    }\n    .lp360-pred-time-col {\n        display: flex;\n        flex-direction: column;\n        gap: 0;\n        height: 100%;\n        background: #fff;\n        border-radius: var(--lp-radius-lg);\n        border: 1px solid var(--lp-border-subtle);\n        box-shadow: var(--lp-shadow-sm);\n        overflow: hidden;\n        transition: transform 0.25s ease, box-shadow 0.25s ease;\n    }\n    .lp360-pred-time-col:hover {\n        transform: translateY(-3px);\n        box-shadow: var(--lp-shadow-md);\n    }\n\n    .lp360-pred-hero {\n        border-radius: 0;\n        padding: var(--lp-space-4) var(--lp-space-4) var(--lp-space-4);\n        text-align: center;\n        color: #fff;\n        position: relative;\n        overflow: hidden;\n        box-shadow: none;\n        flex-shrink: 0;\n    }\n    .lp360-pred-hero::after {\n        content: '';\n        position: absolute;\n        inset: 0;\n        background-image: radial-gradient(rgba(255,255,255,0.1) 1.2px, transparent 1.2px);\n        background-size: 12px 12px;\n        -webkit-mask-image: linear-gradient(120deg, transparent 40%, #000 95%);\n        mask-image: linear-gradient(120deg, transparent 40%, #000 95%);\n        pointer-events: none;\n    }\n    .lp360-pred-hero > * {\n        position: relative;\n        z-index: 1;\n    }\n    .lp360-pred-hero--basic {\n        background: linear-gradient(135deg, #5c1c10, #c2461c 65%, #7a260f);\n    }\n    .lp360-pred-hero--multi {\n        background: linear-gradient(135deg, #3a2a0c, #a97a1d 65%, #4f350c);\n    }\n    .lp360-pred-hero--analytical {\n        background: linear-gradient(135deg, #601616, #e2551c 65%, #7c1c10);\n    }\n\n    .lp360-pred-hero-icon {\n        width: 46px;\n        height: 46px;\n        border-radius: 14px;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        margin: 0 auto var(--lp-space-2);\n        box-shadow: 0 6px 14px rgba(0,0,0,0.2);\n    }\n    .lp360-pred-hero-icon svg {\n        width: 22px;\n        height: 22px;\n    }\n    .lp360-pred-hero-icon--basic {\n        background: var(--lp-orange2);\n    }\n    .lp360-pred-hero-icon--multi {\n        background: var(--lp-amber);\n    }\n    .lp360-pred-hero-icon--analytical {\n        background: var(--lp-red);\n    }\n\n    .lp360-pred-hero-label {\n        font-size: 12px;\n        font-weight: 800;\n        letter-spacing: 0.5px;\n        text-transform: uppercase;\n        line-height: 1.3;\n        padding-bottom: var(--lp-space-3);\n        margin-bottom: var(--lp-space-3);\n        border-bottom: 1px dashed rgba(255,255,255,0.25);\n        word-break: break-word;\n    }\n    .lp360-pred-hero-time {\n        display: flex;\n        align-items: baseline;\n        justify-content: center;\n        gap: 6px;\n        flex-wrap: wrap;\n    }\n    .lp360-pred-stopwatch {\n        width: 18px;\n        height: 18px;\n        align-self: center;\n        flex-shrink: 0;\n    }\n    .lp360-pred-time-value {\n        font-family: 'Sora','Inter',sans-serif;\n        font-size: 28px;\n        font-weight: 800;\n        line-height: 1;\n        display: inline-flex;\n        align-items: baseline;\n        gap: 2px;\n        flex-wrap: wrap;\n        justify-content: center;\n    }\n    .lp360-pred-time-value small {\n        font-size: 12px;\n        font-weight: 700;\n        letter-spacing: 0.5px;\n        margin-right: 4px;\n    }\n    .lp360-pred-hero--basic .lp360-pred-stopwatch,\n    .lp360-pred-hero--basic .lp360-pred-time-value {\n        color: #ffb37a;\n    }\n    .lp360-pred-hero--multi .lp360-pred-stopwatch,\n    .lp360-pred-hero--multi .lp360-pred-time-value {\n        color: var(--lp-gold);\n    }\n    .lp360-pred-hero--analytical .lp360-pred-stopwatch,\n    .lp360-pred-hero--analytical .lp360-pred-time-value {\n        color: #ff8a65;\n    }\n\n    .lp360-pred-info-card {\n        background: #fdf7f0;\n        border-radius: 0;\n        padding: var(--lp-space-3) var(--lp-space-4);\n        text-align: center;\n        box-shadow: none;\n        flex: 1;\n        display: flex;\n        flex-direction: column;\n        align-items: center;\n        transition: background 0.2s ease;\n        border: none;\n        border-top: 1px solid var(--lp-border-subtle);\n        min-height: 80px;\n        justify-content: center;\n    }\n    .lp360-pred-info-card:hover {\n        background: #fcf6ef;\n    }\n    .lp360-pred-info-card:last-child {\n        border-top: 1px solid var(--lp-border-subtle);\n    }\n    .lp360-pred-info-icon {\n        width: 34px;\n        height: 34px;\n        border-radius: 50%;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        margin-bottom: var(--lp-space-1);\n    }\n    .lp360-pred-info-icon svg {\n        width: 16px;\n        height: 16px;\n    }\n    .lp360-pred-info-icon--basic {\n        background: #fde3d5;\n        color: var(--lp-orange2);\n    }\n    .lp360-pred-info-icon--multi {\n        background: #fbedcd;\n        color: var(--lp-amber);\n    }\n    .lp360-pred-info-icon--analytical {\n        background: #fbdcd3;\n        color: #e2551c;\n    }\n    .lp360-pred-info-label {\n        font-size: 10px;\n        font-weight: 800;\n        letter-spacing: 0.8px;\n        text-transform: uppercase;\n        color: var(--lp-text-gray);\n        margin-bottom: 2px;\n    }\n    .lp360-pred-info-text {\n        font-size: 13px;\n        line-height: 1.5;\n        color: #4b5563;\n        margin: 0;\n    }\n\n    \/* Score Prediction - merged into one card *\/\n    .lp360-pred-score-grid {\n        display: grid;\n        grid-template-columns: 1fr 1.2fr 1fr;\n        gap: 0;\n        align-items: stretch;\n        margin-bottom: 2px;\n        border: 1px solid var(--lp-border-subtle);\n        border-radius: var(--lp-radius-lg);\n        overflow: hidden;\n        background: #fff;\n        box-shadow: var(--lp-shadow-sm);\n        transition: box-shadow 0.25s ease;\n    }\n    .lp360-pred-score-grid:hover {\n        box-shadow: var(--lp-shadow-md);\n    }\n    .lp360-pred-score-card {\n        border-radius: 0;\n        overflow: hidden;\n        box-shadow: none;\n        display: flex;\n        flex-direction: column;\n        background: transparent;\n        border: none;\n        transition: none;\n    }\n    .lp360-pred-score-card:hover {\n        transform: none;\n        box-shadow: none;\n    }\n    .lp360-pred-score-card + .lp360-pred-score-card {\n        border-left: 1px solid var(--lp-border-subtle);\n    }\n    .lp360-pred-score-banner {\n        display: flex;\n        align-items: center;\n        gap: var(--lp-space-3);\n        padding: var(--lp-space-3) var(--lp-space-4);\n        position: relative;\n        overflow: hidden;\n        color: #fff;\n        font-weight: 800;\n        font-size: 14px;\n        flex-shrink: 0;\n        border-radius: 0;\n    }\n    .lp360-pred-score-banner--orange {\n        background: linear-gradient(120deg, var(--lp-orange2), var(--lp-brand-light));\n        background-image: radial-gradient(rgba(255,255,255,0.3) 1.2px, transparent 1.2px), linear-gradient(120deg, var(--lp-orange2), var(--lp-brand-light));\n        background-size: 12px 12px, 100% 100%;\n    }\n    .lp360-pred-score-banner--brown {\n        background: linear-gradient(120deg, #3c2213, #6b3a1c);\n        background-image: repeating-linear-gradient(45deg, rgba(255,255,255,0.1) 0 2px, transparent 2px 12px), linear-gradient(120deg, #3c2213, #6b3a1c);\n    }\n    .lp360-pred-score-banner-icon {\n        width: 32px;\n        height: 32px;\n        border-radius: 8px;\n        background: rgba(255,255,255,0.95);\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        flex-shrink: 0;\n    }\n    .lp360-pred-score-banner--orange .lp360-pred-score-banner-icon {\n        color: var(--lp-orange2);\n    }\n    .lp360-pred-score-banner--brown .lp360-pred-score-banner-icon {\n        color: #6b3a1c;\n    }\n    .lp360-pred-score-banner-icon svg {\n        width: 18px;\n        height: 18px;\n    }\n\n    .lp360-pred-score-body {\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    }\n    .lp360-pred-score-body-icon {\n        width: 34px;\n        height: 34px;\n        border-radius: 50%;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        margin-bottom: var(--lp-space-2);\n    }\n    .lp360-pred-score-body-icon svg {\n        width: 16px;\n        height: 16px;\n    }\n    .lp360-pred-score-body-icon--orange {\n        background: #fde3d5;\n        color: var(--lp-orange2);\n    }\n    .lp360-pred-score-body-icon--brown {\n        background: #ecdfd3;\n        color: #6b3a1c;\n    }\n    .lp360-pred-score-body p {\n        font-size: 13.5px;\n        line-height: 1.6;\n        color: #4b5563;\n        margin: 0;\n    }\n\n    .lp360-pred-score-card--main {\n        background: radial-gradient(circle at 30% 100%, rgba(255,255,255,0.15), transparent 55%), linear-gradient(160deg, var(--lp-brand-light), #e2451c 70%);\n        align-items: center;\n        justify-content: space-between;\n        padding: var(--lp-space-5) var(--lp-space-4) var(--lp-space-4);\n        color: #fff;\n        box-shadow: none;\n        border: none;\n    }\n    .lp360-pred-score-title {\n        font-size: 12px;\n        font-weight: 700;\n        letter-spacing: 2px;\n        text-transform: uppercase;\n        margin-bottom: var(--lp-space-4);\n        text-align: center;\n    }\n     .lp360-pred-score-ring {\n  position: relative;\n  width: 196px;\n  height: 199px;\n  border-radius: 50%;\n  background: #ffffff;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  margin: 23px auto 0 auto;\n  flex-shrink: 0;\n  box-shadow: 0 10px 30px rgba(249, 115, 22, 0.15), 0 0 0 1px rgba(249, 115, 22, 0.05);\n  animation: lp360SphereBreathe 3.5s ease-in-out infinite;\n  transition: all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1);\n  cursor: default;\n}\n\n@keyframes lp360SphereBreathe {\n  0%, 100% { \n    transform: translateY(0) scale(1); \n    box-shadow: 0 10px 30px rgba(249, 115, 22, 0.15), 0 0 0 1px rgba(249, 115, 22, 0.05); \n  }\n  50% { \n    transform: translateY(-8px) scale(1.02); \n    box-shadow: 0 15px 40px rgba(249, 115, 22, 0.25), 0 0 0 1px rgba(249, 115, 22, 0.05); \n  }\n}\n\n.lp360-pred-score-ring:hover {\n  animation-play-state: paused;\n  transform: translateY(-12px) scale(1.05) !important;\n  box-shadow: 0 25px 50px rgba(249, 115, 22, 0.35), 0 0 20px rgba(255, 197, 66, 0.2) !important;\n}\n\n\/* Hide legacy patterns and gradients *\/\n.lp360-pred-score-ring::before,\n.lp360-pred-score-ring::after {\n  display: none; \n}\n\n.lp360-pred-score-ring-inner {\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  justify-content: center;\n  text-align: center;\n}\n\n.lp360-pred-score-obtained {\n  display: block;\n  font-family: 'Sora', 'Inter', sans-serif;\n  font-size: 58px;\n  font-weight: 800;\n  color: var(--lp-orange2);\n  line-height: 1;\n}\n\n.lp360-pred-score-divider {\n  display: block;\n  width: 80px;\n  height: 2px;\n  background: #d8dbe2;\n  margin: 12px auto;\n}\n.lp360-pred-score-total {\n  display: block;\n  font-family: 'Sora', 'Inter', sans-serif;\n  font-size: 25px;\n  font-weight: 700;\n  color: #374151;\n  line-height: 1;\n}\n\n    .lp360-pred-score-badge {\n        display: inline-flex;\n        align-items: center;\n        gap: var(--lp-space-2);\n        background: #fff;\n        color: var(--lp-orange2);\n        font-weight: 700;\n        font-size: 12px;\n        padding: 8px 16px;\n        border-radius: 999px;\n        box-shadow: 0 4px 14px rgba(0,0,0,0.12);\n        text-align: center;\n    }\n    .lp360-pred-score-badge-icon {\n        width: 18px;\n        height: 18px;\n        border-radius: 50%;\n        background: var(--lp-orange2);\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        flex-shrink: 0;\n    }\n    .lp360-pred-score-badge-icon svg {\n        width: 10px;\n        height: 10px;\n    }\n\n    \/* ======================================================================\n       COMBINED PREDICTION CARD (Fix 1: merged Ideal Time + Score)\n       ====================================================================== *\/\n.lp360-pred-combined-grid {\n        display: grid;\n        grid-template-columns: 9fr 7fr 9fr; \/* same 36:28:36 ratio, but fr units correctly subtract the gap so nothing overflows *\/\n        gap: var(--lp-space-5);\n        align-items: stretch;\n        margin-bottom: 2px;\n        min-width: 0; \/* allow grid to shrink below its content *\/\n    }\n       \n    .lp360-pred-combined-left,\n    .lp360-pred-combined-middle,\n    .lp360-pred-combined-right {\n        min-width: 0;      \/* allow columns to shrink *\/\n        max-width: 100%;   \/* never exceed container width *\/\n    }\n    .lp360-pred-combined-right {\n        overflow: hidden;  \/* clip any accidental overflow *\/\n        word-wrap: break-word;\n    }\n    .lp360-pred-combined-left {\n        display: flex;\n        flex-direction: column;\n        gap: var(--lp-space-2);\n        background: #fff;\n        border: 1px solid var(--lp-border-subtle);\n        border-radius: var(--lp-radius-lg);\n        box-shadow: var(--lp-shadow-sm);\n        padding: var(--lp-space-4) var(--lp-space-5);\n        justify-content: center;\n    }\n    .lp360-pred-combined-row {\n        display: flex;\n        align-items: center;\n        gap: var(--lp-space-3);\n        padding: var(--lp-space-2) 0;\n    }\n    .lp360-pred-combined-row + .lp360-pred-combined-row {\n        border-top: 1px dashed var(--lp-border-subtle);\n    }\n    .lp360-pred-combined-row-icon {\n        width: 40px;\n        height: 40px;\n        border-radius: 12px;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        flex-shrink: 0;\n        color: #fff;\n    }\n    .lp360-pred-combined-row-icon svg {\n        width: 20px;\n        height: 20px;\n    }\n    .lp360-pred-combined-row-icon--basic {\n        background: linear-gradient(135deg, var(--lp-orange2), var(--lp-brand-light));\n    }\n    .lp360-pred-combined-row-icon--multi {\n        background: linear-gradient(135deg, var(--lp-amber), #b9852f);\n    }\n    .lp360-pred-combined-row-icon--analytical {\n        background: linear-gradient(135deg, var(--lp-red), #c2410c);\n    }\n    .lp360-pred-combined-row-text {\n        display: flex;\n        flex-direction: column;\n        gap: 4px;\n    }\n    .lp360-pred-combined-row-label {\n        font-size: 11px;\n        font-weight: 700;\n        letter-spacing: 0.6px;\n        text-transform: uppercase;\n        color: var(--lp-text-gray);\n    }\n   .lp360-pred-combined-middle {\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n    justify-content: flex-start;\n    background: radial-gradient(circle at 30% 100%, rgba(255,255,255,0.15), transparent 55%), linear-gradient(160deg, var(--lp-brand-light), #e2451c 70%);\n    border-radius: var(--lp-radius-lg);\n    padding: var(--lp-space-4) var(--lp-space-5);\n    color: #fff;\n    box-shadow: var(--lp-shadow-sm);\n}\n    .lp360-pred-combined-right {\n        background: #fff;\n        border: 1px solid var(--lp-border-subtle);\n        border-radius: var(--lp-radius-lg);\n        box-shadow: var(--lp-shadow-sm);\n        overflow: hidden;\n        display: flex;\n        flex-direction: column;\n    }\n    .lp360-pred-combined-right-section {\n        padding: var(--lp-space-4) var(--lp-space-5);\n    }\n    .lp360-pred-combined-right-section + .lp360-pred-combined-right-section {\n        border-top: 1px solid var(--lp-border-subtle);\n    }\n    .lp360-pred-combined-right-label {\n        font-size: 10px;\n        font-weight: 800;\n        letter-spacing: 0.8px;\n        text-transform: uppercase;\n        color: var(--lp-brand-light);\n        margin-bottom: 6px;\n    }\n    .lp360-pred-combined-right-section:nth-child(2) .lp360-pred-combined-right-label {\n        color: #2563eb;\n    }\n    .lp360-pred-combined-right-section:nth-child(3) .lp360-pred-combined-right-label {\n        color: #16a34a;\n    }\n    .lp360-pred-inf-secondary {\n        display: none;\n    }\n    @media (max-width: 1024px) {\n        .lp360-pred-combined-grid {\n            grid-template-columns: 1fr;\n        }\n        .lp360-pred-combined-middle {\n            order: -1;\n        }\n    }\n    @media (max-width: 640px) {\n        .lp360-pred-combined-row-icon {\n            width: 34px;\n            height: 34px;\n        }\n        .lp360-pred-combined-right-section {\n            padding: var(--lp-space-3) var(--lp-space-4);\n        }\n    }\n\/* ====== CMA Foundation Predictions - v2: 3 cards only, boundaries not sub-cards ====== *\/\n.lp360-pred-header-bar {\n    display: flex;\n    align-items: center;\n    justify-content: space-between;\n    flex-wrap: wrap;\n    background: #fff;\n    border: 1px solid var(--lp-border-subtle);\n    border-radius: var(--lp-radius-lg);\n    padding: var(--lp-space-4) var(--lp-space-5);\n    margin-bottom: var(--lp-space-5);\n    box-shadow: var(--lp-shadow-sm);\n}\n.lp360-pred-header-title {\n    font-size: 20px;\n    font-weight: 800;\n    margin: 0 0 4px;\n    color: var(--lp-text-dark);\n    font-family: 'Sora','Inter',sans-serif;\n}\n.lp360-pred-header-title span {\n    color: var(--lp-brand-light);\n}\n.lp360-pred-card-heading {\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    gap: 8px;\n    width: 100%;\n    background: #fff5ec;\n    border: 1.5px solid var(--lp-brand-light);\n    color: var(--lp-brand-light);\n    font-weight: 800;\n    font-size: 15px;\n    padding: 10px 14px;\n    border-radius: var(--lp-radius-md);\n    margin-bottom: var(--lp-space-4);\n    font-family: 'Sora','Inter',sans-serif;\n    text-align: center;\n}\n.lp360-pred-card-heading .lp360-spark {\n    color: var(--lp-gold);\n    font-size: 13px;\n}\n.lp360-pred-combined-left {\n    background: #fffefc;\n}\n.lp360-pred-qrow {\n    display: flex;\n    align-items: center;\n    gap: var(--lp-space-4);\n    padding: var(--lp-space-3) 2px;\n}\n.lp360-pred-qrow + .lp360-pred-qrow {\n    border-top: 1px solid var(--lp-border-subtle);\n}\n.lp360-pred-qrow-sphere {\n    position: relative;\n    width: 72px;\n    height: 72px;\n    border-radius: 50%;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    flex-shrink: 0;\n    background: radial-gradient(circle at 32% 28%, #ffffff, var(--row-bg-tint) 60%);\n    color: var(--row-color);\n    box-shadow: 0 4px 12px rgba(0,0,0,0.08), inset 0 0 0 2px var(--row-border-tint);\n}\n\n.lp360-pred-qrow-sphere-value {\n    font-family: 'Sora','Inter',sans-serif;\n    font-weight: 800;\n    font-size: 18px;\n    line-height: 1.1;\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n}\n.lp360-pred-qrow-sphere-value small {\n    font-size: 9px;\n    font-weight: 700;\n    letter-spacing: 0.5px;\n    margin-top: 1px;\n}\n.lp360-pred-qrow-text {\n    flex: 1;\n    display: flex;\n    flex-direction: column;\n    gap: 8px;\n    min-width: 0;\n}\n.lp360-pred-qrow-label {\n    display: flex;\n    align-items: center;\n    justify-content: space-between;\n    gap: 8px;\n    background: var(--row-bg-tint);\n    border: 1.5px solid var(--row-border-tint);\n    color: var(--row-color);\n    font-weight: 800;\n    font-size: 13.5px;\n    padding: 8px 12px;\n    border-radius: 10px;\n    font-family: 'Sora','Inter',sans-serif;\n}\n.lp360-pred-qrow-icon {\n    width: 24px;\n    height: 24px;\n    flex-shrink: 0;\n    color: var(--row-color);\n}\n.lp360-pred-qrow-icon svg {\n    width: 100%;\n    height: 100%;\n}\n.lp360-pred-qrow-desc {\n    font-size: 12.5px;\n    line-height: 1.55;\n    color: #6b7280;\n    margin: 0;\n}\n.lp360-pred-qrow--basic {\n    --row-color: #16a34a;\n    --row-bg-tint: #eafaf0;\n    --row-border-tint: #bdeccb;\n}\n.lp360-pred-qrow--multi {\n    --row-color: #2563eb;\n    --row-bg-tint: #eff6ff;\n    --row-border-tint: #bfdbfe;\n}\n.lp360-pred-qrow--analytical {\n    --row-color: #8B5CF6;\n    --row-bg-tint: #f5f3ff;\n    --row-border-tint: #ddd6fe;\n}\n.lp360-pred-combined-middle {\n    background: linear-gradient(160deg, #fff6ec, #ffe6cc);\n    color: var(--lp-text-dark);\n}\n.lp360-pred-score-quote {\n    background: #fff;\n    border: 1.5px solid #fcd9b8;\n    border-radius: var(--lp-radius-md);\n    padding: var(--lp-space-5);\n   margin-top: calc(var(--lp-space-5) + 15px); margin-bottom: 0;\n    font-size: 13px;\n    line-height: 1.6;\n    color: #6b5240;\n    text-align: center;\n}\n.lp360-pred-score-progress {\n    width: 100%;\n    margin-top: var(--lp-space-5);\n    position: relative;\n    padding-top: 26px;\n}\n.lp360-pred-score-progress-badge {\n    position: absolute;\n    top: 0;\n    transform: translateX(-50%);\n    background: #fff;\n    color: var(--lp-brand-light);\n    font-weight: 800;\n    font-size: 11px;\n    padding: 3px 10px;\n    border-radius: 8px;\n    white-space: nowrap;\n    font-family: 'Sora','Inter',sans-serif;\n    box-shadow: 0 4px 10px rgba(0,0,0,0.15);\n    transition: left 0.8s cubic-bezier(0.2,0.7,0.2,1);\n}\n.lp360-pred-score-progress-track {\n    height: 9px;\n    border-radius: 999px;\n    background: linear-gradient(90deg, #ef4444 0%, #f97316 25%, #facc15 50%, #a3e635 75%, #22c55e 100%);\n    box-shadow: inset 0 1px 3px rgba(0,0,0,0.12);\n    position: relative;\n}\n.lp360-pred-score-progress-marker {\n    position: absolute;\n    top: 50%;\n    width: 18px;\n    height: 18px;\n    border-radius: 50%;\n    background: #fff;\n    border: 3px solid #fff;\n    box-shadow: 0 0 0 2px rgba(0,0,0,0.1), 0 4px 8px rgba(0,0,0,0.2);\n    transform: translate(-50%, -50%);\n    transition: left 0.8s cubic-bezier(0.2,0.7,0.2,1);\n}\n.lp360-pred-insight-row-head {\n    display: flex;\n    align-items: center;\n    justify-content: space-between;\n    gap: 8px;\n    margin-bottom: 6px;\n}\n.lp360-pred-insight-row-icon {\n    width: 34px;\n    height: 34px;\n    border-radius: 10px;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    flex-shrink: 0;\n    background: #fff;\n    box-shadow: 0 2px 6px rgba(0,0,0,0.06);\n}\n.lp360-pred-insight-row-icon svg {\n    width: 18px;\n    height: 18px;\n}\n.lp360-pred-insight-title {\n    font-size: 14px;\n    font-weight: 800;\n    font-family: 'Sora','Inter',sans-serif;\n}\n.lp360-pred-combined-right-section--blue {\n    background: #f0f7ff;\n}\n.lp360-pred-combined-right-section--blue .lp360-pred-insight-title,\n.lp360-pred-combined-right-section--blue .lp360-pred-insight-row-icon {\n    color: #2563eb;\n}\n.lp360-pred-combined-right-section--green {\n    background: #f0fbf3;\n}\n.lp360-pred-combined-right-section--green .lp360-pred-insight-title,\n.lp360-pred-combined-right-section--green .lp360-pred-insight-row-icon {\n    color: #16a34a;\n}\n.lp360-pred-combined-right-section--purple {\n    background: #f6f3ff;\n    flex: 1;\n}\n.lp360-pred-combined-right-section--purple .lp360-pred-insight-title,\n.lp360-pred-combined-right-section--purple .lp360-pred-insight-row-icon {\n    color: #8B5CF6;\n}\n@media (max-width: 640px) {\n    .lp360-pred-qrow-sphere {\n        width: 54px;\n        height: 54px;\n    }\n    .lp360-pred-qrow-sphere-value {\n        font-size: 14px;\n    }\n}\n\n    \/* ======================================================================\n       ANSWER KEY SECTION (Fix 11)\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\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        .lp360-dm-summary {\n            grid-template-columns: repeat(3, 1fr);\n        }\n        .lp360-ncert-analysis-grid {\n            grid-template-columns: 1fr;\n        }\n        .lp360-ncert-analysis-card + .lp360-ncert-analysis-card {\n            border-left: none;\n            border-top: 1px solid var(--lp-border-subtle);\n        }\n        .lp360-time-tracker-gauges {\n            grid-template-columns: 1fr 1fr;\n        }\n        .lp360-time-tracker-inferences {\n            grid-template-columns: 1fr;\n        }\n        .lp360-pred-score-grid {\n            grid-template-columns: 1fr;\n        }\n        .lp360-pred-score-card--main {\n            order: -1;\n        }\n       .lp360-pred-score-card + .lp360-pred-score-card {\n            border-left: none;\n            border-top: 1px solid var(--lp-border-subtle);\n        }\n        .lp360-pred-score-ring {\n  width: 178px;\n  height: 178px;\n  margin: 23px auto 0 auto;\n}        .lp360-pred-time-grid {\n            grid-template-columns: 1fr 1fr;\n        }\n        .lp360-tracker-chart-wrap {\n            overflow-x: auto;\n            -webkit-overflow-scrolling: touch;\n        }\n        .lp360-tracker-chart-wrap canvas {\n            min-width: 500px;\n            width: auto;\n            height: auto;\n        }\n    }\n\n    @media (max-width: 860px) {\n        .lp360-mindmap-diagram {\n            display: none;\n        }\n        .lp360-mindmap-mobile {\n            display: flex;\n        }\n        .lp360-mindmap-summary {\n            grid-template-columns: 1fr;\n        }\n        .lp360-hero-metric-value {\n            min-width: 0;\n        }\n        .lp360-ncert-badge-desc {\n            text-align: center;\n        }\n        .lp360-pred-hero-label {\n            font-size: 11px;\n        }\n        .lp360-pred-time-value {\n            font-size: 24px;\n        }\n        \/* Fix 6: mobile stacking using flex column *\/\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        .lp360-pred-time-grid {\n            grid-template-columns: 1fr;\n            max-width: 400px;\n            margin-left: auto;\n            margin-right: auto;\n        }\n        .lp360-pred-score-grid {\n            max-width: 400px;\n            margin-left: auto;\n            margin-right: auto;\n        }\n        .lp360-time-tracker-gauges {\n            grid-template-columns: 1fr 1fr;\n            max-width: 400px;\n            margin-left: auto;\n            margin-right: auto;\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-breakdown-unified {\n            display: flex;\n            flex-direction: column;\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-dm-summary {\n    grid-template-columns: repeat(3, 1fr);\n    gap: var(--lp-space-2);\n}\n        .lp360-tabs {\n            gap: 4px;\n        }\n        .lp360-tab {\n            padding: 8px 16px;\n            font-size: 12px;\n        }\n        .lp360-time-card-value {\n            font-size: 22px;\n        }\n        .lp360-tracker-title {\n            font-size: 20px;\n        }\n        .lp360-time-tracker-gauges {\n            grid-template-columns: 1fr;\n            max-width: 280px;\n            margin-left: auto;\n            margin-right: auto;\n        }\n        .lp360-time-tab {\n            font-size: 11px;\n            padding: 8px 4px;\n        }\n        .lp360-gauge-column-header {\n            justify-content: center;\n        }\n        .lp360-gauge-column-title,\n        .lp360-gauge-column-sub {\n            text-align: center;\n        }\n        .lp360-pred-time-grid {\n            grid-template-columns: 1fr;\n            max-width: 320px;\n        }\n        .lp360-pred-time-value {\n            font-size: 24px;\n        }\n       .lp360-pred-score-grid {\n            max-width: 320px;\n        }\n        .lp360-pred-score-ring {\n  width: 153px;\n  height: 153px;\n  margin: 23px auto 0 auto;\n}\n.lp360-pred-score-obtained {\n  font-size: 43px;\n}\n.lp360-pred-score-total {\n  font-size: 20px;\n}\n        .lp360-pred-score-badge {\n            font-size: 11px;\n            padding: 6px 12px;\n        }\n        .lp360-mm-mobile-group {\n            padding: var(--lp-space-2);\n        }\n        .lp360-mm-mobile-tags span {\n            font-size: 11px;\n            padding: 4px 8px;\n        }\n        .lp360-mm-summary-card {\n            padding: var(--lp-space-2) var(--lp-space-3);\n        }\n        .lp360-mm-summary-value {\n            font-size: 22px;\n        }\n        .lp360-ncert-badge-row {\n            flex-direction: column;\n            align-items: center;\n            text-align: center;\n        }\n        .lp360-ncert-divider {\n            width: 60%;\n            height: 1px;\n        }\n        .lp360-ncert-badge-desc {\n            text-align: center;\n        }\n        .lp360-decision-card {\n            padding: var(--lp-space-3);\n        }\n        .lp360-tracker-card,\n        .lp360-accuracy-card,\n        .lp360-time-tracker-card {\n            padding: 0;\n        }\n        .lp360-tracker-card + .lp360-tracker-card,\n        .lp360-accuracy-card + .lp360-tracker-card,\n        .lp360-tracker-card + .lp360-accuracy-card {\n            padding-top: var(--lp-space-4);\n            margin-top: var(--lp-space-3);\n        }\n        .lp360-tracker-chart-wrap canvas {\n            min-width: 400px;\n        }\n        .lp360-gauge-column-chart {\n            max-width: 110px;\n        }\n        .lp360-gauge-column-value {\n            font-size: 20px;\n        }\n        .lp360-gauge-column {\n            padding: var(--lp-space-2);\n        }\n        .lp360-pred-info-text {\n            font-size: 12px;\n        }\n        .lp360-info-popover__content {\n            max-width: 340px;\n            padding: var(--lp-space-4) var(--lp-space-3) var(--lp-space-3);\n        }\n        .lp360-info-popover__title {\n            font-size: 16px;\n        }\n        .lp360-info-popover__desc {\n            font-size: 14px;\n        }\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\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-tab {\n            padding: 6px 12px;\n            font-size: 11px;\n        }\n        .lp360-section-title h2 {\n            font-size: 18px;\n        }\n        .lp360-tracker-title {\n            font-size: 18px;\n        }\n        .lp360-pred-time-value {\n            font-size: 20px;\n        }\n      .lp360-pred-score-ring {\n  width: 153px;\n  height: 153px;\n  margin: 23px auto 0 auto;\n}\n.lp360-pred-score-obtained {\n  font-size: 43px;\n}\n.lp360-pred-score-total {\n  font-size: 20px;\n}\n        .lp360-pred-score-badge {\n            font-size: 10px;\n            padding: 4px 10px;\n        }\n        .lp360-mm-mobile-heading {\n            font-size: 12px;\n        }\n        .lp360-mm-mobile-tags span {\n            font-size: 10px;\n            padding: 3px 6px;\n        }\n        .lp360-dm-summary {\n    grid-template-columns: repeat(3, 1fr);\n    gap: var(--lp-space-1);\n}\n        .lp360-dm-summary-card {\n            padding: var(--lp-space-1) var(--lp-space-2);\n        }\n        .lp360-dm-summary-value {\n            font-size: 15px;\n        }\n        .lp360-dm-summary-label {\n            font-size: 8px;\n        }\n        .lp360-dm-table {\n            min-width: 500px;\n        }\n        .lp360-time-tracker-gauges {\n            max-width: 220px;\n        }\n        .lp360-gauge-column-chart {\n            max-width: 88px;\n        }\n        .lp360-gauge-column-value {\n            font-size: 18px;\n        }\n        .lp360-info-popover__content {\n            max-width: 300px;\n            padding: var(--lp-space-3);\n        }\n        .lp360-info-popover__title {\n            font-size: 15px;\n        }\n        .lp360-info-popover__desc {\n            font-size: 13px;\n        }\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\/* ======================================================================\n   MIND MAP INFERENCE OVERLAY\n   ====================================================================== *\/\n.lp360-mindmap-card {\n    position: relative;\n}\n.lp360-mindmap-card.has-inference .lp360-mindmap-diagram,\n.lp360-mindmap-card.has-inference .lp360-mindmap-mobile,\n.lp360-mindmap-card.has-inference .lp360-mindmap-summary {\n    filter: blur(6px);\n    pointer-events: none;\n    user-select: none;\n    transition: filter 0.4s ease;\n}\n.lp360-mindmap-overlay {\n    display: none;\n    position: absolute;\n    inset: 0;\n    align-items: center;\n    justify-content: center;\n    z-index: 10;\n    padding: var(--lp-space-4);\n    pointer-events: none;\n}\n.lp360-mindmap-card.has-inference .lp360-mindmap-overlay {\n    display: flex;\n}\n.lp360-mindmap-overlay__card {\n    background: rgba(255,255,255,0.94);\n    backdrop-filter: blur(10px);\n    -webkit-backdrop-filter: blur(10px);\n    border-radius: var(--lp-radius-md);\n    padding: var(--lp-space-4);\n    max-width: 280px;\n    width: auto;\n    box-shadow: 0 12px 32px rgba(0,0,0,0.18), 0 0 0 1px rgba(232,93,58,0.2) inset;\n    text-align: center;\n    animation: lp360FadeIn 0.5s ease;\n}\n.lp360-mindmap-overlay__card h3 {\n    font-family: 'Sora','Inter',sans-serif;\n    font-size: 14px;\n    font-weight: 800;\n    margin: 0 0 6px;\n    color: var(--lp-text-dark);\n    letter-spacing: -0.2px;\n}\n.lp360-mindmap-overlay__card p {\n    font-size: 12px;\n    line-height: 1.5;\n    color: #374151;\n    margin: 0;\n}\n.lp360-mindmap-overlay__icon {\n    width: 36px;\n    height: 36px;\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 10px;\n    color: #fff;\n    box-shadow: 0 6px 16px rgba(232,93,58,0.3);\n}\n.lp360-mindmap-overlay__icon svg {\n    width: 16px;\n    height: 16px;\n}\n\n\/* ======================================================================\n   SCORE TRACKER INFERENCE OVERLAY\n   ====================================================================== *\/\n.lp360-tracker-chart-wrap {\n    position: relative;\n}\n.lp360-tracker-chart-wrap.has-inference canvas {\n    filter: blur(6px);\n    pointer-events: none;\n    user-select: none;\n    transition: filter 0.4s ease;\n}\n.lp360-tracker-overlay {\n    display: none;\n    position: absolute;\n    inset: 0;\n    align-items: center;\n    justify-content: center;\n    z-index: 10;\n    padding: var(--lp-space-4);\n    pointer-events: none;\n}\n.lp360-tracker-chart-wrap.has-inference .lp360-tracker-overlay {\n    display: flex;\n}\n.lp360-tracker-overlay__card {\n    background: rgba(255,255,255,0.94);\n    backdrop-filter: blur(10px);\n    -webkit-backdrop-filter: blur(10px);\n    border-radius: var(--lp-radius-md);\n    padding: var(--lp-space-4);\n    max-width: 280px;\n    width: auto;\n    box-shadow: 0 12px 32px rgba(0,0,0,0.18), 0 0 0 1px rgba(232,93,58,0.2) inset;\n    text-align: center;\n    animation: lp360FadeIn 0.5s ease;\n}\n.lp360-tracker-overlay__card h3 {\n    font-family: 'Sora','Inter',sans-serif;\n    font-size: 14px;\n    font-weight: 800;\n    margin: 0 0 6px;\n    color: var(--lp-text-dark);\n    letter-spacing: -0.2px;\n}\n.lp360-tracker-overlay__card p {\n    font-size: 12px;\n    line-height: 1.5;\n    color: #374151;\n    margin: 0;\n}\n.lp360-tracker-overlay__icon {\n    width: 36px;\n    height: 36px;\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 10px;\n    color: #fff;\n    box-shadow: 0 6px 16px rgba(232,93,58,0.3);\n}\n.lp360-tracker-overlay__icon svg {\n    width: 16px;\n    height: 16px;\n}\n\/* New description style for Mind Map *\/\n.lp360-mindmap-description {\n    margin: 12px 0 16px 0;\n    padding: 12px 18px;\n    background: #fcf8f3;\n    border-radius: var(--lp-radius-sm);\n    border-left: 4px solid var(--lp-brand-light);\n    font-size: 11.5px;          \/* matches tile font size *\/\n    line-height: 1.6;\n    color: #3d3f4b;\n    font-weight: 500;\n    box-shadow: inset 0 1px 2px rgba(0,0,0,0.02);\n}\n.lp360-mindmap-description p {\n    margin: 0;\n}\n\/* Generic section description box (same style as Mind Map's) *\/\n.lp360-section-description {\n    margin: 12px 0 16px 0;\n    padding: 12px 18px;\n    background: #fcf8f3;\n    border-radius: var(--lp-radius-sm);\n    border-left: 4px solid var(--lp-brand-light);\n    font-size: 11.5px;\n    line-height: 1.6;\n    color: #3d3f4b;\n    font-weight: 500;\n    box-shadow: inset 0 1px 2px rgba(0,0,0,0.02);\n}\n.lp360-section-description p {\n    margin: 0;\n}\n\/* ======================================================================\n   NO ATTEMPTS OVERLAY - full-screen blur + premium message\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\n.lp360-no-attempts-card {\n    background: var(--lp-bg-amber-soft);\n    border-left: 4px solid var(--lp-amber);\n    box-shadow: 0 4px 15px rgba(245, 158, 11, 0.1);\n    backdrop-filter: blur(4px);\n    -webkit-backdrop-filter: blur(4px);\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;\n    left: 0;\n    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\/* Mobile adjustments *\/\n@media (max-width: 640px) {\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@media (max-width: 480px) {\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    .lp360-no-attempts-message {\n        font-size: 14px;\n    }\n}\n  \/* ===== PREDICTION SECTION REPLACEMENT CSS ===== *\/\n  #lp360-panel-prediction {\n    --brand:#E85D3A; --brand-light:#FF7A3D; --gold:#FFC542;\n    --green:#16a34a; --blue:#2563eb; --purple:#8B5CF6;\n    --text-dark:#0b0e1a; --text-gray:#5b6478;\n    --border:#e9ecf2; --bg:#f4f6fa;\n    --radius-lg:20px; --radius-md:14px;\n    --shadow:0 2px 8px rgba(15,23,42,0.06);\n    --tile-pad-y:18px; --tile-pad-x:20px;\n  }\n  #lp360-panel-prediction .section-title{margin-bottom:16px;}\n  #lp360-panel-prediction .section-title h2{font-family:'Sora',sans-serif;font-size:20px;font-weight:800;margin:0 0 6px;}\n  #lp360-panel-prediction .underline{display:block;width:36px;height:4px;border-radius:4px;background:var(--lp-gradient-brand);}\n\n  #lp360-panel-prediction .header-bar{\n    display:flex;align-items:center;background:#fff;border:1px solid var(--border);\n    border-radius:var(--radius-lg);padding:16px 20px;margin-bottom:20px;\n    box-shadow:var(--shadow);\n  }\n  #lp360-panel-prediction .header-bar h3{font-family:'Sora',sans-serif;font-size:20px;font-weight:800;margin:0 0 4px;}\n  #lp360-panel-prediction .header-bar h3 span{color:var(--brand-light);}\n\n #lp360-panel-prediction .pred-grid{\n    display:grid;\n    grid-template-columns: minmax(0, 1fr);\n    max-width: 520px;\n    margin: 0 auto;\n    gap:24px;\n    align-items:stretch;\n  }\n\n  #lp360-panel-prediction .heading-pill{\n    display:flex;align-items:center;justify-content:center;gap:8px;\n    height:40px;width:100%;\n    background:#fff;border:1.5px solid var(--brand-light);color:var(--brand-light);\n    font-weight:800;font-size:13.5px;letter-spacing:.2px;padding:0 14px;border-radius:var(--radius-md);\n    margin-bottom:16px;font-family:'Sora',sans-serif;line-height:1;\n    box-shadow:0 2px 8px rgba(232,93,58,0.08);\n  }\n  #lp360-panel-prediction .heading-pill .spark{color:var(--gold);font-size:12px;}\n\n  #lp360-panel-prediction .left-col{\n    display:flex;flex-direction:column;height:100%;\n    gap:16px;\n  }\n  #lp360-panel-prediction .left-col > div{\n    display:flex;\n    flex-direction:column;\n    height:100%;\n    min-height:100%;\n  }\n  #lp360-panel-prediction .left-col .insight-box{flex:1;}\n\n  #lp360-panel-prediction .qtype-row{\n    display:grid;\n    grid-template-columns:1fr;\n    gap:8px;\n    align-items:stretch;\n    width:94%;\n    margin:12px auto 0;\n    padding-top:0;\n  }\n  #lp360-panel-prediction .qtype-box{\n    width:100%;\n    min-height:78px;\n    border:1px solid var(--border);\n    border-radius:14px;\n    box-shadow:0 5px 14px rgba(15,23,42,0.045);\n    padding:8px 14px 9px;\n    text-align:left;\n    display:grid;\n    grid-template-columns:52px minmax(0,1fr);\n    grid-template-rows:auto auto;\n    align-items:center;\n    column-gap:12px;\n    row-gap:4px;\n    position:relative;\n    overflow:hidden;\n    transition:transform .18s ease, box-shadow .18s ease;\n  }\n  #lp360-panel-prediction .qtype-box::before{\n    content:'';\n    position:absolute;\n    left:0;\n    top:12px;\n    bottom:12px;\n    width:3px;\n    border-radius:0 4px 4px 0;\n    background:currentColor;\n    opacity:.7;\n  }\n  #lp360-panel-prediction .qtype-box:hover{\n    transform:translateY(-1px);\n    box-shadow:0 8px 18px rgba(15,23,42,0.07);\n  }\n  #lp360-panel-prediction .qtype-sphere{\n    grid-column:1;\n    grid-row:1;\n    width:52px;\n    height:52px;\n    flex-shrink:0;\n    border-radius:50%;\n    display:flex;\n    flex-direction:column;\n    align-items:center;\n    justify-content:center;\n    gap:1px;\n    background:rgba(255,255,255,.96);\n    font-family:'Sora',sans-serif;\n    line-height:1;\n  }\n  #lp360-panel-prediction .qtype-sphere .num{\n    font-size:18px;\n    font-weight:800;\n  }\n  #lp360-panel-prediction .qtype-sphere small{\n    display:block;\n    font-size:7.5px;\n    font-weight:700;\n    letter-spacing:.15px;\n    white-space:nowrap;\n  }\n  #lp360-panel-prediction .qtype-label{\n    grid-column:2;\n    grid-row:1;\n    align-self:center;\n    font-family:'Sora',sans-serif;\n    font-weight:800;\n    font-size:12.5px;\n    min-height:0;\n    line-height:1.3;\n    white-space:nowrap;\n  }\n  #lp360-panel-prediction .qtype-desc{\n    grid-column:1 \/ -1;\n    grid-row:2;\n    font-size:11.5px;\n    line-height:1.4;\n    color:var(--text-gray);\n    margin:0;\n    text-align:center;\n    white-space:nowrap;\n    overflow:hidden;\n    text-overflow:ellipsis;\n  }\n\n  #lp360-panel-prediction .qtype-box--basic{\n    background:linear-gradient(90deg,#eafaf0 0%,#f5fcf7 100%);\n    border-color:#cdeed4;\n    color:var(--green);\n  }\n  #lp360-panel-prediction .qtype-box--basic .qtype-sphere{\n    color:var(--green);\n    box-shadow:inset 0 0 0 2px #bdeccb,0 3px 10px rgba(22,163,74,.08);\n  }\n  #lp360-panel-prediction .qtype-box--basic .qtype-label{color:var(--green);}\n\n  #lp360-panel-prediction .qtype-box--multi{\n    background:linear-gradient(90deg,#eff6ff 0%,#f7faff 100%);\n    border-color:#cfe1fb;\n    color:var(--blue);\n  }\n  #lp360-panel-prediction .qtype-box--multi .qtype-sphere{\n    color:var(--blue);\n    box-shadow:inset 0 0 0 2px #bfdbfe,0 3px 10px rgba(37,99,235,.08);\n  }\n  #lp360-panel-prediction .qtype-box--multi .qtype-label{color:var(--blue);}\n\n  #lp360-panel-prediction .qtype-box--analytical{\n    background:linear-gradient(90deg,#f5f3ff 0%,#faf9ff 100%);\n    border-color:#e3dcfb;\n    color:var(--purple);\n  }\n  #lp360-panel-prediction .qtype-box--analytical .qtype-sphere{\n    color:var(--purple);\n    box-shadow:inset 0 0 0 2px #ddd6fe,0 3px 10px rgba(139,92,246,.08);\n  }\n  #lp360-panel-prediction .qtype-box--analytical .qtype-label{color:var(--purple);}\n\n  @media (max-width:1100px){\n    #lp360-panel-prediction .qtype-row{width:100%;}\n    #lp360-panel-prediction .qtype-box{\n      grid-template-columns:48px minmax(0,1fr);\n      column-gap:10px;\n      padding:8px 12px 9px;\n    }\n    #lp360-panel-prediction .qtype-sphere{width:48px;height:48px;}\n    #lp360-panel-prediction .qtype-label{font-size:12px;}\n    #lp360-panel-prediction .qtype-desc{font-size:11px;}\n  }\n\n  @media (max-width:520px){\n    #lp360-panel-prediction .qtype-box{\n      grid-template-columns:46px 1fr;\n      min-height:74px;\n      padding:8px 10px;\n    }\n    #lp360-panel-prediction .qtype-sphere{width:46px;height:46px;}\n    #lp360-panel-prediction .qtype-desc{\n      grid-column:1 \/ -1;\n      white-space:normal;\n      overflow:visible;\n      text-overflow:clip;\n      margin-top:0;\n    }\n  }\n\n  #lp360-panel-prediction .insight-box{\n    background:#fff;border:1px solid var(--border);border-radius:var(--radius-md);\n    box-shadow:var(--shadow);padding:var(--tile-pad-y) var(--tile-pad-x);\n    display:flex;flex-direction:column;justify-content:center;\n  }\n  #lp360-panel-prediction .insight-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px;}\n  #lp360-panel-prediction .insight-title{font-family:'Sora',sans-serif;font-weight:800;font-size:14.5px;}\n  #lp360-panel-prediction .insight-icon{\n    width:34px;height:34px;flex-shrink:0;border-radius:10px;display:flex;align-items:center;justify-content:center;\n  }\n  #lp360-panel-prediction .insight-icon svg{width:17px;height:17px;stroke:#fff;}\n  #lp360-panel-prediction .insight-text{font-size:13px;line-height:1.65;color:#4b5563;margin:0;}\n\n  #lp360-panel-prediction .insight-box--time{background:#f0f7ff;border-color:#d7e8fc;}\n  #lp360-panel-prediction .insight-box--time .insight-title{color:var(--blue);}\n  #lp360-panel-prediction .insight-box--time .insight-icon{background:var(--blue);box-shadow:0 4px 10px rgba(37,99,235,0.25);}\n  #lp360-panel-prediction .insight-box--mentor{background:#f6f3ff;border-color:#e3dcfb;}\n  #lp360-panel-prediction .insight-box--mentor .insight-title{color:var(--purple);}\n  #lp360-panel-prediction .insight-box--mentor .insight-icon{background:var(--purple);box-shadow:0 4px 10px rgba(139,92,246,0.25);}\n  #lp360-panel-prediction .insight-box--score{background:#f0fbf3;border-color:#cdeed4;}\n  #lp360-panel-prediction .insight-box--score .insight-title{color:var(--green);}\n  #lp360-panel-prediction .insight-box--score .insight-icon{background:var(--green);box-shadow:0 4px 10px rgba(22,163,74,0.25);}\n\n  #lp360-panel-prediction .right-col{\n    background:linear-gradient(160deg,#fff6ec,#ffe6cc);\n    border-radius:var(--radius-lg);padding:22px;\n    box-shadow:var(--shadow);\n    display:flex;flex-direction:column;align-items:center;\n    height:100%;\n    gap:16px;\n  }\n  #lp360-panel-prediction .right-col .score-quote{flex:1;display:flex;align-items:center;justify-content:center;}\n  #lp360-panel-prediction .right-col .insight-box{flex:1;width:100%;}\n  #lp360-panel-prediction .score-ring{\n    width:190px;height:190px;flex-shrink:0;border-radius:50%;\n    background: var(--lp-dark-1);\n    border: 3px solid transparent; background-clip: padding-box; position: relative;\n    display:flex;align-items:center;justify-content:center;\n    box-shadow:var(--lp-gold-glow);\n  }\n  #lp360-panel-prediction .score-ring::before {\n    content: ''; position: absolute; inset: -3px; border-radius: 50%;\n    background: var(--lp-gradient-gold); z-index: -1;\n  }\n  #lp360-panel-prediction .score-ring-inner{display:flex;flex-direction:row;align-items:baseline;justify-content:center;gap:8px;}\n  #lp360-panel-prediction .score-obtained{font-family:'Sora',sans-serif;font-size:52px;font-weight:800;color:var(--lp-brand-light);line-height:1;}\n  #lp360-panel-prediction .score-divider{width:auto;height:auto;background:transparent;margin:0;font-size:40px;color:#d8dbe2;font-weight:300;}\n  #lp360-panel-prediction .score-total{font-family:'Sora',sans-serif;font-size:32px;font-weight:700;color:#9ca3af;line-height:1;}\n  #lp360-panel-prediction .score-quote{\n    background:#fff;border:1px solid #fcd9b8;border-radius:var(--radius-md);\n    box-shadow:var(--shadow);\n    padding:var(--tile-pad-y) var(--tile-pad-x);font-size:13px;line-height:1.65;color:#6b5240;text-align:center;margin:0;width:100%;\n    flex:0 0 auto;\n  }\n  \n  @media (max-width:1080px){\n    #lp360-panel-prediction .pred-grid{gap:18px;}\n    #lp360-panel-prediction .score-ring{width:170px;height:170px;}\n    #lp360-panel-prediction .score-obtained{font-size:44px;}\n  }\n  @media (max-width:860px){\n    #lp360-panel-prediction .pred-grid{grid-template-columns:1fr;}\n    #lp360-panel-prediction .right-col{order:-1;height:auto;}\n    #lp360-panel-prediction .qtype-row{grid-template-columns:1fr;}\n  }\n\n  #lp360-panel-prediction .prediction-warning{\n    margin-top:0;\n    width:100%;\n    background:#fff7ed;\n    border:1.5px solid #fdba74;\n    border-left:5px solid #f97316;\n    border-radius:var(--radius-md);\n    box-shadow:var(--shadow);\n    padding:16px 18px;\n    display:flex;\n    align-items:flex-start;\n    gap:12px;\n  }\n  #lp360-panel-prediction .prediction-warning-icon{\n    width:34px;\n    height:34px;\n    flex-shrink:0;\n    border-radius:50%;\n    background:#f97316;\n    color:#fff;\n    display:flex;\n    align-items:center;\n    justify-content:center;\n    box-shadow:0 4px 10px rgba(249,115,22,0.25);\n  }\n  #lp360-panel-prediction .prediction-warning-icon svg{\n    width:18px;\n    height:18px;\n    stroke:currentColor;\n  }\n  #lp360-panel-prediction .prediction-warning-text{\n    font-size:13px;\n    line-height:1.7;\n    color:#7c4a19;\n    margin:0;\n  }\n  #lp360-panel-prediction .prediction-warning-text strong{\n    color:#9a3412;\n  }\n\n\n\/* ======================================================================\n   TRACKER LAYOUT UPDATE - Score left, Accuracy right\n   ====================================================================== *\/\n#lp360-panel-tracker .lp360-section-card {\n    display: grid;\n    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);\n    gap: var(--lp-space-5);\n    align-items: start;\n}\n#lp360-panel-tracker .lp360-section-card > .lp360-section-title {\n    grid-column: 1 \/ -1;\n}\n#lp360-panel-tracker .lp360-section-card > .lp360-section-divider {\n    display: none;\n}\n#lp360-panel-tracker .lp360-tracker-card,\n#lp360-panel-tracker .lp360-accuracy-card {\n    min-width: 0;\n    padding: var(--lp-space-4);\n    background: #ffffff;\n    border: 1px solid var(--lp-border-subtle);\n    border-radius: var(--lp-radius-md);\n    box-shadow: var(--lp-shadow-sm);\n}\n#lp360-panel-tracker .lp360-tracker-card {\n    grid-column: 1;\n}\n#lp360-panel-tracker .lp360-accuracy-card {\n    grid-column: 2;\n}\n\n@media (max-width: 900px) {\n    #lp360-panel-tracker .lp360-section-card {\n        grid-template-columns: 1fr;\n    }\n    #lp360-panel-tracker .lp360-tracker-card,\n    #lp360-panel-tracker .lp360-accuracy-card {\n        grid-column: 1;\n    }\n}\n\n\n\n\/* ======================================================================\n   IDEAL TIME PREDICTION - white-space filling larger concept cards\n   ====================================================================== *\/\n#lp360-panel-prediction .ideal-time-card {\n    width: 100%;\n    height: 100%;\n    min-height: 100%;\n    padding: 22px;\n    background: linear-gradient(180deg, #ffffff 0%, #fbfcff 100%);\n    border: 1px solid #e7ebf2;\n    border-radius: var(--radius-lg);\n    box-shadow: 0 10px 30px rgba(15, 23, 42, 0.10);\n    display: flex;\n    flex-direction: column;\n    align-items: stretch;\n}\n\n#lp360-panel-prediction .ideal-time-card .heading-pill {\n    flex: 0 0 auto;\n    margin-bottom: 14px;\n}\n\n#lp360-panel-prediction .ideal-time-card .lp360-section-description {\n    width: 100%;\n    margin: 0 0 18px;\n}\n\n#lp360-panel-prediction .ideal-time-card .qtype-row {\n    width: 100%;\n    margin: 0;\n    display: flex;\n    flex-direction: column;\n    gap: 16px;\n    flex: 1;\n}\n\n#lp360-panel-prediction .ideal-time-card .qtype-box {\n    flex: 1 1 0;\n    min-height: 122px;\n    padding: 18px 20px;\n    grid-template-columns: 72px minmax(0, 1fr);\n    grid-template-rows: auto auto;\n    column-gap: 18px;\n    row-gap: 10px;\n    border-radius: 20px;\n    box-shadow: 0 9px 22px rgba(15, 23, 42, 0.08);\n    align-content: center;\n}\n\n#lp360-panel-prediction .ideal-time-card .qtype-box:hover {\n    transform: translateY(-2px);\n    box-shadow: 0 14px 28px rgba(15, 23, 42, 0.12);\n}\n\n#lp360-panel-prediction .ideal-time-card .qtype-sphere {\n    grid-column: 1;\n    grid-row: 1 \/ 3;\n    align-self: center;\n    width: 72px;\n    height: 72px;\n}\n\n#lp360-panel-prediction .ideal-time-card .qtype-sphere .num {\n    font-size: 22px;\n}\n\n#lp360-panel-prediction .ideal-time-card .qtype-sphere small {\n    font-size: 8px;\n}\n\n#lp360-panel-prediction .ideal-time-card .qtype-label {\n    grid-column: 2;\n    grid-row: 1;\n    align-self: end;\n    font-size: 16px;\n    line-height: 1.35;\n    white-space: normal;\n}\n\n#lp360-panel-prediction .ideal-time-card .qtype-desc {\n    grid-column: 2;\n    grid-row: 2;\n    align-self: start;\n    margin: 0;\n    text-align: left;\n    font-size: 12px;\n    line-height: 1.45;\n    white-space: normal;\n    overflow: visible;\n    text-overflow: clip;\n}\n\n@media (max-width: 1100px) {\n    #lp360-panel-prediction .ideal-time-card {\n        padding: 18px;\n    }\n    #lp360-panel-prediction .ideal-time-card .qtype-row {\n        gap: 14px;\n    }\n    #lp360-panel-prediction .ideal-time-card .qtype-box {\n        min-height: 112px;\n        grid-template-columns: 64px minmax(0, 1fr);\n        padding: 16px 18px;\n        column-gap: 16px;\n    }\n    #lp360-panel-prediction .ideal-time-card .qtype-sphere {\n        width: 64px;\n        height: 64px;\n    }\n    #lp360-panel-prediction .ideal-time-card .qtype-label {\n        font-size: 15px;\n    }\n}\n\n@media (max-width: 520px) {\n    #lp360-panel-prediction .ideal-time-card {\n        padding: 14px;\n        min-height: auto;\n    }\n    #lp360-panel-prediction .ideal-time-card .qtype-row {\n        gap: 12px;\n    }\n    #lp360-panel-prediction .ideal-time-card .qtype-box {\n        min-height: 96px;\n        grid-template-columns: 52px minmax(0, 1fr);\n        padding: 12px 13px;\n        column-gap: 12px;\n        row-gap: 8px;\n        border-radius: 16px;\n    }\n    #lp360-panel-prediction .ideal-time-card .qtype-sphere {\n        width: 52px;\n        height: 52px;\n    }\n    #lp360-panel-prediction .ideal-time-card .qtype-label {\n        font-size: 13px;\n    }\n}\n\n\n\n\/* ======================================================================\n   IDEAL TIME DESCRIPTION - compact curved premium pill\n   ====================================================================== *\/\n#lp360-panel-prediction .ideal-time-card .qtype-desc {\n    display: inline-flex;\n    align-items: center;\n    justify-content: flex-start;\n    justify-self: start;\n    width: fit-content;\n    max-width: 100%;\n    padding: 6px 12px;\n    border-radius: 999px;\n    background: rgba(255, 255, 255, 0.88);\n    border: 1px solid rgba(148, 163, 184, 0.24);\n    box-shadow: 0 3px 10px rgba(15, 23, 42, 0.06);\n    font-size: 11px;\n    font-weight: 600;\n    line-height: 1.25;\n}\n\n#lp360-panel-prediction .ideal-time-card .qtype-box--basic .qtype-desc {\n    color: #15803d;\n    background: rgba(255, 255, 255, 0.92);\n    border-color: #bdeccb;\n}\n\n#lp360-panel-prediction .ideal-time-card .qtype-box--multi .qtype-desc {\n    color: #2563eb;\n    background: rgba(255, 255, 255, 0.92);\n    border-color: #bfdbfe;\n}\n\n#lp360-panel-prediction .ideal-time-card .qtype-box--analytical .qtype-desc {\n    color: #7c3aed;\n    background: rgba(255, 255, 255, 0.92);\n    border-color: #ddd6fe;\n}\n\n@media (max-width: 520px) {\n    #lp360-panel-prediction .ideal-time-card .qtype-desc {\n        padding: 5px 10px;\n        border-radius: 12px;\n        font-size: 10.5px;\n    }\n}\n\n\n\n\/* ======================================================================\n   TIME TRACKER MOBILE FILL - make mobile cards fill available width\n   ====================================================================== *\/\n@media (max-width: 768px) {\n    .lp360-time-tracker-right {\n        padding: 12px;\n    }\n    .lp360-time-tracker-tabs {\n        width: 100%;\n        display: grid;\n        grid-template-columns: repeat(4, 1fr);\n    }\n    .lp360-time-tab {\n        min-width: 0;\n        padding: 10px 6px;\n        line-height: 1.15;\n    }\n    .lp360-time-tracker-gauges {\n        grid-template-columns: 1fr;\n        width: 100%;\n        max-width: 100%;\n        margin-left: 0;\n        margin-right: 0;\n        gap: 14px;\n    }\n    .lp360-gauge-column {\n        width: 100%;\n        max-width: 100%;\n        padding: 14px 12px;\n        border-radius: 18px;\n    }\n    .lp360-gauge-column-chart {\n        width: 100%;\n        max-width: 180px;\n        margin: 6px auto 8px;\n    }\n}\n\n@media (max-width: 520px) {\n    .lp360-time-tracker-right {\n        padding: 10px;\n    }\n    .lp360-time-tracker-tabs {\n        border-radius: 14px;\n    }\n    .lp360-time-tab {\n        font-size: 10.5px;\n        padding: 10px 4px;\n    }\n    .lp360-time-tracker-gauges {\n        max-width: 100% !important;\n        width: 100%;\n        gap: 12px;\n    }\n    .lp360-gauge-column {\n        width: 100%;\n        padding: 14px 10px;\n    }\n    .lp360-gauge-column-header {\n        margin-bottom: 8px;\n    }\n    .lp360-gauge-column-title {\n        font-size: 12px;\n    }\n    .lp360-gauge-column-sub {\n        font-size: 10px;\n    }\n    .lp360-gauge-column-chart {\n        max-width: 165px;\n    }\n}\n\n.lp360-issue-list {\n    list-style: none;\n    margin: 10px 0 0;\n    padding: 0;\n    display: flex;\n    flex-direction: column;\n    gap: 12px;\n}\n.lp360-issue-item {\n    color: var(--lp-text-main);\n    display: flex;\n    align-items: flex-start;\n    gap: 12px;\n    background: #f8fafc;\n    border: 1px solid #f1f5f9;\n    border-radius: var(--lp-radius-md);\n    padding: 14px 16px;\n    transition: transform 0.2s ease, box-shadow 0.2s ease;\n}\n.lp360-issue-item:hover {\n    transform: translateY(-2px);\n    box-shadow: var(--lp-shadow-sm);\n}\n\n\/* Deep colorful styling removed for light theme *\/\n#lp360-critical-issues-list .lp360-issue-item-icon {\n    background: linear-gradient(135deg, #ef4444, #991b1b) !important;\n    color: #ffffff !important;\n    box-shadow: 0 4px 12px rgba(239, 68, 68, 0.4);\n}\n#lp360-moderate-issues-list .lp360-issue-item-icon {\n    background: linear-gradient(135deg, #f97316, #9a3412) !important;\n    color: #ffffff !important;\n    box-shadow: 0 4px 12px rgba(249, 115, 22, 0.4);\n}\n\n.lp360-issue-item-icon {\n    width: 26px;\n    height: 26px;\n    border-radius: 50%;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    flex-shrink: 0;\n    margin-top: 1px;\n}\n.lp360-issue-item-icon svg { width: 13px; height: 13px; }\n.lp360-issue-item-text { display: flex; flex-direction: column; gap: 4px; }\n.lp360-issue-item-pattern { font-weight: 800; font-size: 14px; font-family: 'Sora','Inter',sans-serif; color: var(--lp-text-dark) !important; }\n.lp360-issue-item-desc { font-size: 12.5px; line-height: 1.55; color: #4b5563; }\n\n<\/style>\n\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\">CLAT  <span>Launchpad 360<\/span><\/h1>\n        <\/header>\n\n        <!-- TABS -->\n        <nav class=\"lp360-tabs\" role=\"tablist\" aria-label=\"Launchpad 360 sections\">\n            <button class=\"lp360-tab active\" data-tab=\"basicinfo\" role=\"tab\" aria-selected=\"true\">\n                <svg viewBox=\"0 0 24 24\" class=\"lp360-tab-icon\"><path d=\"M12 2a10 10 0 100 20 10 10 0 000-20zm0 4v6l4 2\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><\/path><\/svg>\n                Basic Info\n            <\/button>\n            <button class=\"lp360-tab\" data-tab=\"tracker\" role=\"tab\" aria-selected=\"false\">\n                <svg viewBox=\"0 0 24 24\" class=\"lp360-tab-icon\"><path d=\"M3 17l5-5 4 4 7-9\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><\/path><\/svg>\n                Tracker\n            <\/button>\n            \n            <button class=\"lp360-tab\" data-tab=\"answerkey\" role=\"tab\" aria-selected=\"false\">\n                <svg viewBox=\"0 0 24 24\" class=\"lp360-tab-icon\"><path d=\"M4 6h16M4 12h10M4 18h6\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"><\/path><\/svg>\n                Answer Key\n            <\/button>\n        <\/nav>\n\n        <!-- ================================================================\n               PANEL: BASIC INFO\n               ================================================================ -->\n        <section class=\"lp360-tab-panel active\" id=\"lp360-panel-basicinfo\">\n\n            <!-- ========== BASIC INFO CARD ========== -->\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                           \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                            \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                          \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            <div class=\"lp360-section-divider--strong\"><\/div>\n\n            <!-- ========== DECISION MARKER CARD ========== -->\n            <div class=\"lp360-section-card\">\n                <div class=\"lp360-tracker-header\">\n                    <h3 class=\"lp360-tracker-title\">Decision <span>Marker<\/span><\/h3>\n                <\/div>\n                <div class=\"lp360-section-description\">\n                   <p>The Decision Marker shows how your test progressed over time by tracking every answer you submitted during the Full Length Test. It records when each question was answered and whether it was correct or incorrect at that moment. This helps you understand your solving pace, identify periods of strong or weak performance, and observe how your decision-making changed throughout the test.<\/p>\n                <\/div>\n\n                <div class=\"lp360-dm-table-scroll\" id=\"lp360-dm-table-scroll\">\n                    <table class=\"lp360-dm-table\" id=\"lp360-dm-table\">\n                        <thead>\n                            <tr id=\"lp360-dm-thead-row\">\n                                <th class=\"lp360-dm-row-head-col\">Categories count \/ Time intervals in minutes<\/th>\n                            <\/tr>\n                        <\/thead>\n                        <tbody id=\"lp360-dm-tbody\"><\/tbody>\n                    <\/table>\n                <\/div>\n\n                <div class=\"lp360-dm-summary\" id=\"lp360-dm-summary\"><\/div>\n<p class=\"lp360-dm-inference\" id=\"lp360-dm-inference\" style=\"display:none;\"><\/p>\n<\/div>\n\n\n        <\/section>\n\n        <!-- ================================================================\n               PANEL: TRACKER\n               ================================================================ -->\n        <section class=\"lp360-tab-panel\" id=\"lp360-panel-tracker\">\n\n            <!-- ========== TRACKER CARD ========== -->\n            <div class=\"lp360-section-card\">\n                <div class=\"lp360-tracker-header\">\n                    <h3 class=\"lp360-tracker-title\">Tracker<\/h3>\n                <\/div>\n\n                <!-- Score Tracker -->\n                <div class=\"lp360-tracker-card\">\n                    <div class=\"lp360-tracker-header\">\n                        <h3 class=\"lp360-tracker-title\">Score <span>Tracker<\/span><\/h3>\n                    <\/div>\n                    <div class=\"lp360-section-description\">\n                        <p>The Score Tracker shows how your score changes as you progress through the Full Length Test. It helps you understand whether your performance improved, remained consistent, or declined with each attempt. Every correct or incorrect answer updates your cumulative score, allowing you to identify the stages where you performed best or faced difficulties. An upward trend indicates consistent performance, while flat or downward trends suggest periods of lower accuracy or negative marking.<\/p>\n                    <\/div>\n                    <div class=\"lp360-tracker-chart-wrap\">\n                        <canvas id=\"lp360-tracker-canvas\"><\/canvas>\n                    <\/div>\n                <\/div>\n\n                <div class=\"lp360-section-divider\"><\/div>\n\n                <!-- Accuracy Tracker -->\n                <div class=\"lp360-accuracy-card\">\n                    <div class=\"lp360-tracker-header\">\n                        <h3 class=\"lp360-tracker-title\">Accuracy <span>Tracker<\/span><\/h3>\n                    <\/div>\n                    <div class=\"lp360-section-description\">\n                        <p>The Accuracy Tracker shows how your answering accuracy changed throughout the Full Length Test by plotting your accuracy against time. It helps you understand whether your accuracy remained consistent, improved, or declined during different stages of the test, providing insights into how effectively you balanced speed and precision. Click on any point in the graph to view your exact accuracy at that specific time and analyse your performance during that stage of the assessment.<\/p>\n                    <\/div>\n                    <div class=\"lp360-tracker-chart-wrap\">\n                        <canvas id=\"lp360-accuracy-canvas\"><\/canvas>\n                    <\/div>\n                <\/div>\n\n\n            <\/div>\n            <!-- \/Tracker card -->\n\n        <\/section>\n\n        <!-- \n   \n\n        <!-- ================================================================\n               PANEL: ANSWER KEY\n               ================================================================ -->\n        <section class=\"lp360-tab-panel\" id=\"lp360-panel-answerkey\">\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        <\/section>\n\n    <\/div><!-- \/.lp360-shell -->\n<\/div><!-- \/#lp360-root -->\n\n<!-- ==============================================================\nJAVASCRIPT - all && replaced with nested if, logic untouched (plus auto-scroll)\n=============================================================== -->\n<script>\n(function() {\n    \"use strict\";\nconsole.log('- Script started');\n\n    \/\/ ---- Fix 7: 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   \n \/\/ ---- Accuracy Tracker domain xMax (used for hover) ----\n    var __accuracyDomainXMax = 2;\n\n    \/\/ ---- ROW_THEME &#038; ICONS ----\n    var ROW_THEME = {\n        correct: { color: 'green', icon: 'check' },\n        incorrect: { color: 'red', icon: 'cross' },\n      \n    };\n\n    var ICONS = {\n        check: '<path d=\"M20 6L9 17l-5-5\" fill=\"none\" stroke=\"#fff\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>',\n        cross: '<path d=\"M18 6L6 18M6 6l12 12\" fill=\"none\" stroke=\"#fff\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>',\n        eye: '<path d=\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\" fill=\"none\" stroke=\"#fff\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><circle cx=\"12\" cy=\"12\" r=\"3\" fill=\"none\" stroke=\"#fff\" stroke-width=\"2\"\/>',\n        help: '<path d=\"M12 17h.01M9.5 9a2.5 2.5 0 015 0c0 1.5-2.5 2-2.5 3.5\" fill=\"none\" stroke=\"#fff\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>',\n        warning: '<path d=\"M12 8v4m0 4h.01\" fill=\"none\" stroke=\"#fff\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>',\n        skip: '<path d=\"M5 4l14 8-14 8V4z\" fill=\"none\" stroke=\"#fff\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>',\nattempt: '<circle cx=\"12\" cy=\"12\" r=\"9\" fill=\"none\" stroke=\"#fff\" stroke-width=\"2\"\/><path d=\"M12 4v16M4 12h16\" stroke=\"#fff\" stroke-width=\"2\" stroke-linecap=\"round\"\/>'\n    };\n\n    function iconSvg(name) {\n        return '<svg viewBox=\"0 0 24 24\">' + (ICONS[name] || ICONS.check) + '<\/svg>';\n    }\n\n    \/\/ ---- BADGE ICONS (full map preserved) ----\n    function getBadgeIcon(badgeName) {\n        var TIERS = {\n            red: { a: '#fca5a5', b: '#dc2626', c: '#7f1d1d', glow: 'rgba(220,38,38,0.55)' },\n            gray: { a: '#cbd5e1', b: '#6b7280', c: '#1f2937', glow: 'rgba(107,114,128,0.5)' },\n            orange: { a: '#fdba74', b: '#f97316', c: '#9a3412', glow: 'rgba(249,115,22,0.55)' },\n            gold: { a: '#fde047', b: '#ca8a04', c: '#854d0e', glow: 'rgba(202,138,4,0.55)' },\n            green: { a: '#86efac', b: '#16a34a', c: '#14532d', glow: 'rgba(22,163,74,0.55)' },\n            amber: { a: '#fde68a', b: '#d97706', c: '#78350f', glow: 'rgba(217,119,6,0.6)' }\n        };\n        var iconMap = {\n            \"Poor Scorer\": { tier: 'red', svg: '<path d=\"M12 2v14M7 10l5 5 5-5\" stroke=\"#fff\" stroke-width=\"1.5\" fill=\"none\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><path d=\"M5 20h14\" stroke=\"#fff\" stroke-width=\"1.5\" stroke-linecap=\"round\"\/>' },\n            \"Bare Minimum\": { tier: 'gray', svg: '<path d=\"M5 12l5 5L20 7\" stroke=\"#fff\" stroke-width=\"1.5\" fill=\"none\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>' },\n            \"weak performer\": { tier: 'orange', svg: '<rect x=\"3\" y=\"16\" width=\"4\" height=\"5\" rx=\"1\" fill=\"#fff\"\/><rect x=\"10\" y=\"14\" width=\"4\" height=\"7\" rx=\"1\" fill=\"#fff\" opacity=\"0.8\"\/><rect x=\"17\" y=\"17\" width=\"4\" height=\"4\" rx=\"1\" fill=\"#fff\" opacity=\"0.6\"\/>' },\n            \"Weak understander\": { tier: 'orange', svg: '<path d=\"M4 6a2 2 0 012-2h12a2 2 0 012 2v12a2 2 0 01-2 2H6a2 2 0 01-2-2V6z\" fill=\"none\" stroke=\"#fff\" stroke-width=\"1.5\" stroke-linejoin=\"round\"\/><path d=\"M12 10v3M12 16h.01\" stroke=\"#fff\" stroke-width=\"1.5\" stroke-linecap=\"round\"\/>' },\n            \"Unstable performer\": { tier: 'orange', svg: '<path d=\"M2 14l4-7 5 9 4-12 5 8 2-4\" fill=\"none\" stroke=\"#fff\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>' },\n            \"Need intensive practice\": { tier: 'orange', svg: '<circle cx=\"12\" cy=\"12\" r=\"4\" fill=\"none\" stroke=\"#fff\" stroke-width=\"1.5\"\/><path d=\"M12 2v3M12 19v3M2 12h3M19 12h3M5.5 5.5l2 2M16.5 16.5l2 2M5.5 18.5l2-2M16.5 7.5l2-2\" stroke=\"#fff\" stroke-width=\"1.5\" stroke-linecap=\"round\"\/>' },\n            \"Moderate performer\": { tier: 'gold', svg: '<path d=\"M3 15a9 9 0 0118 0\" fill=\"none\" stroke=\"#fff\" stroke-width=\"1.5\" stroke-linecap=\"round\"\/><path d=\"M12 15l5-6\" stroke=\"#fff\" stroke-width=\"1.5\" stroke-linecap=\"round\"\/><circle cx=\"12\" cy=\"15\" r=\"2\" fill=\"#fff\"\/>' },\n            \"Average Scorer\": { tier: 'gold', svg: '<path d=\"M12 2l2.5 5.5 6 .5-4.5 4 1 6-5-3-5 3 1-6-4.5-4 6-.5L12 2z\" fill=\"#fff\" opacity=\"0.5\" stroke=\"#fff\" stroke-width=\"1.2\" stroke-linejoin=\"round\"\/>' },\n            \"Concept Builder\": { tier: 'gold', svg: '<path d=\"M6 9h4V7a2 2 0 014 0v2h4a1 1 0 011 1v4h-3a2 2 0 100 4h3v4a1 1 0 01-1 1h-4v-3a2 2 0 10-4 0v3H6a1 1 0 01-1-1v-4h3a2 2 0 100-4H5v-4a1 1 0 011-1z\" fill=\"none\" stroke=\"#fff\" stroke-width=\"1.2\" stroke-linejoin=\"round\"\/>' },\n            \"Decent Effort\": { tier: 'gold', svg: '<path d=\"M8 12v9H5v-9h3zm0 0l3-7a1.5 1.5 0 012.7 1l-1 4H18a2 2 0 012 2.5l-2 5.5a2 2 0 01-2 1.5H11a3 3 0 01-3-3V12z\" fill=\"none\" stroke=\"#fff\" stroke-width=\"1.2\" stroke-linejoin=\"round\"\/>' },\n            \"Developing candidate\": { tier: 'green', svg: '<path d=\"M12 20v-8\" stroke=\"#fff\" stroke-width=\"1.5\" stroke-linecap=\"round\"\/><path d=\"M12 12c0-5 4-7 8-7 0 5-4 7-8 7z\" fill=\"#fff\" opacity=\"0.8\" stroke=\"#fff\" stroke-width=\"1\" stroke-linejoin=\"round\"\/><path d=\"M12 12c0-4-3-6-7-6 0 4 3 6 7 6z\" fill=\"#fff\" opacity=\"0.5\" stroke=\"#fff\" stroke-width=\"1\" stroke-linejoin=\"round\"\/>' },\n            \"Gradual improver\": { tier: 'green', svg: '<path d=\"M2 18h5v-3h5v-3h5v-3h5V6\" fill=\"none\" stroke=\"#fff\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><path d=\"M17 6h4v4\" fill=\"none\" stroke=\"#fff\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>' },\n            \"Right Track\": { tier: 'green', svg: '<path d=\"M12 2l8 4v7c0 5-4 8-8 10-4-2-8-5-8-10V6l8-4z\" fill=\"#fff\" opacity=\"0.15\" stroke=\"#fff\" stroke-width=\"1.5\" stroke-linejoin=\"round\"\/><path d=\"M8 12l3 3 5-6\" fill=\"none\" stroke=\"#fff\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>' },\n            \"Strong Conceptual Understander\": { tier: 'green', svg: '<path d=\"M10 3a3 3 0 00-3 3 3 3 0 00-1.5 5.5A3 3 0 007 17a3 3 0 003 3V3z\" fill=\"none\" stroke=\"#fff\" stroke-width=\"1.2\" stroke-linejoin=\"round\"\/><path d=\"M14 3a3 3 0 013 3 3 3 0 011.5 5.5A3 3 0 0117 17a3 3 0 01-3 3V3z\" fill=\"none\" stroke=\"#fff\" stroke-width=\"1.2\" stroke-linejoin=\"round\"\/><path d=\"M12 9v2M11 13h2\" stroke=\"#fff\" stroke-width=\"1.5\" stroke-linecap=\"round\"\/>' },\n            \"High performer\": { tier: 'green', svg: '<path d=\"M12 2l2.5 5.5 6 .5-4.5 4 1 6-5-3-5 3 1-6-4.5-4 6-.5L12 2z\" fill=\"#fff\" stroke=\"#fff\" stroke-width=\"1\" stroke-linejoin=\"round\"\/><path d=\"M12 2v3M17 5l-2 2M7 5l2 2\" stroke=\"#fff\" stroke-width=\"1.5\" stroke-linecap=\"round\"\/>' },\n            \"Top Performer\": { tier: 'amber', svg: '<path d=\"M5 5h14v4a6 6 0 01-14 0V5z\" fill=\"none\" stroke=\"#fff\" stroke-width=\"1.5\" stroke-linejoin=\"round\"\/><path d=\"M5 6H3.5A1.5 1.5 0 002 7.5 5.5 5.5 0 006 12M19 6h1.5A1.5 1.5 0 0122 7.5 5.5 5.5 0 0118 12\" fill=\"none\" stroke=\"#fff\" stroke-width=\"1.2\" stroke-linecap=\"round\"\/><path d=\"M12 12v5M8 18h8M9 15h6v3a2 2 0 01-2 2h-2a2 2 0 01-2-2v-3z\" fill=\"none\" stroke=\"#fff\" stroke-width=\"1.2\" stroke-linejoin=\"round\"\/>' },\n            \"Stronger performer\": { tier: 'amber', svg: '<path d=\"M12 2l8 4v7c0 5-4 8-8 10-4-2-8-5-8-10V6l8-4z\" fill=\"#fff\" opacity=\"0.15\" stroke=\"#fff\" stroke-width=\"1.5\" stroke-linejoin=\"round\"\/><path d=\"M8 11l3 3 5-6\" fill=\"none\" stroke=\"#fff\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>' },\n            \"Except solver\": { tier: 'amber', svg: '<circle cx=\"12\" cy=\"12\" r=\"8\" fill=\"none\" stroke=\"#fff\" stroke-width=\"1.5\"\/><circle cx=\"12\" cy=\"12\" r=\"4.5\" fill=\"none\" stroke=\"#fff\" stroke-width=\"1.2\"\/><circle cx=\"12\" cy=\"12\" r=\"1.5\" fill=\"#fff\"\/><path d=\"M16.5 4L20 2.5l-1.5 4.5-4 1.5z\" fill=\"#fff\" opacity=\"0.7\" stroke=\"#fff\" stroke-width=\"1\" stroke-linejoin=\"round\"\/><path d=\"M18 5.5l-4.5 4.5\" stroke=\"#fff\" stroke-width=\"1.2\" stroke-linecap=\"round\"\/>' },\n            \"National level potential\": { tier: 'amber', svg: '<path d=\"M4 2v20\" stroke=\"#fff\" stroke-width=\"1.5\" stroke-linecap=\"round\"\/><path d=\"M4 3h15l-4 5 4 5H4\" fill=\"#fff\" opacity=\"0.8\" stroke=\"#fff\" stroke-width=\"1.2\" stroke-linejoin=\"round\"\/>' },\n            \"High merit performer\": { tier: 'amber', svg: '<circle cx=\"12\" cy=\"9\" r=\"6\" fill=\"#fff\" opacity=\"0.15\" stroke=\"#fff\" stroke-width=\"1.5\"\/><path d=\"M8 14L6 21l6-3 6 3-2-7\" fill=\"none\" stroke=\"#fff\" stroke-width=\"1.2\" stroke-linejoin=\"round\"\/><path d=\"M9.5 9l1.5 1.5L15 7\" stroke=\"#fff\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>' },\n            \"Exceptional performer\": { tier: 'amber', svg: '<path d=\"M3 17L1.5 8 8 12l4-7 4 7 6.5-4L21 17H3z\" fill=\"#fff\" opacity=\"0.9\" stroke=\"#fff\" stroke-width=\"1\" stroke-linejoin=\"round\"\/><path d=\"M3 20h18\" stroke=\"#fff\" stroke-width=\"1.5\" stroke-linecap=\"round\"\/>' }\n        };\n        var fallback = {\n            tier: 'gray',\n            svg: '<circle cx=\"12\" cy=\"12\" r=\"9\" fill=\"none\" stroke=\"#fff\" stroke-width=\"1.5\"\/><path d=\"M12 8v4l3 2\" fill=\"none\" stroke=\"#fff\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>'\n        };\n        var matched = null;\n        if (iconMap[badgeName]) {\n            matched = iconMap[badgeName];\n        }\n        if (!matched) {\n            matched = fallback;\n        }\n        var tierColors = TIERS[matched.tier];\n        if (!tierColors) {\n            tierColors = TIERS.gray;\n        }\n        return {\n            svg: matched.svg,\n            gradA: tierColors.a,\n            gradB: tierColors.b,\n            gradC: tierColors.c,\n            glow: tierColors.glow\n        };\n    }\n\n    \/\/ ---- Render functions ----\n\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          \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          \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           \n            el('lp360-unattempted-notviewed').textContent = b.unattempted.notViewed || 0;\n        }\n    }\nfunction renderDecisionMarker(data) {\n    if (!data) { return; }\n    var theadRow = document.getElementById('lp360-dm-thead-row');\n    var tbody = document.getElementById('lp360-dm-tbody');\n    var summaryWrap = document.getElementById('lp360-dm-summary');\n    var inferenceEl = document.getElementById('lp360-dm-inference');\n    if (!theadRow) { return; }\n    if (!tbody) { return; }\n    if (!summaryWrap) { return; }\n    \/\/ Build header: first column label + intervals\n    var intervals = data.timeIntervals || [];\n    var headerHtml = '<th class=\"lp360-dm-row-head-col\"> Categories count \/ Time intervals in minutes <\/th>';\n    for (var i = 0; i < intervals.length; i++) {\n        headerHtml += '<th>' + intervals[i] + '<\/th>';\n    }\n    theadRow.innerHTML = headerHtml;\n    \/\/ Table shows only Correct and Incorrect rows (Attempt lives in the totals strip below)\n    var rowKeys = ['correct', 'incorrect'];\n    var rowLabels = {\n        'attempt': 'Attempt',\n        'correct': 'Correct',\n        'incorrect': 'Incorrect'\n    };\n    var rowColors = {\n        'attempt': 'blue',\n        'correct': 'green',\n        'incorrect': 'red'\n    };\n    var rowIcons = {\n        'attempt': 'attempt',\n        'correct': 'check',\n        'incorrect': 'cross'\n    };\n    \/\/ Build table rows - each cell lists the question numbers for that interval\n    var tbodyHtml = '';\n    for (var r = 0; r < rowKeys.length; r++) {\n        var key = rowKeys[r];\n        var cells = [];\n        if (data.cells) {\n            cells = data.cells[key] || [];\n        }\n        var color = rowColors[key] || 'gray';\n        var label = rowLabels[key] || key;\n        var cellsHtml = '';\n        for (var c = 0; c < intervals.length; c++) {\n            var qList = [];\n            if (c < cells.length) {\n                qList = cells[c] || [];\n            }\n            var chipsHtml = '';\n            for (var q = 0; q < qList.length; q++) {\n                chipsHtml += '<span class=\"lp360-dm-chip lp360-dm-chip--' + color + '\" data-qnum=\"' + qList[q] + '\">Q' + qList[q] + '<\/span>';\n            }\n            cellsHtml += '<td><div class=\"lp360-dm-chip-cell\">' + chipsHtml + '<\/div><\/td>';\n        }\n        tbodyHtml += '<tr class=\"lp360-dm-row--' + color + '\">' +\n            '<td><div class=\"lp360-dm-row-label\">' +\n            '<span class=\"lp360-dm-row-icon lp360-dm-row-icon--' + color + '\">' +\n            iconSvg(rowIcons[key]) + '<\/span>' +\n            label +\n            '<\/div><\/td>' + cellsHtml +\n            '<\/tr>';\n    }\n    tbody.innerHTML = tbodyHtml;\n    \/\/ Build summary cards (Total Attempt \/ Total Correct \/ Total Incorrect)\n    var summary = data.summary || [];\n    var summaryHtml = '';\n    for (var s = 0; s < summary.length; s++) {\n        var item = summary[s];\n        var scolor = rowColors[item.key] || 'gray';\n        summaryHtml += '<div class=\"lp360-dm-summary-card lp360-dm-summary-card--' + scolor + '\">' +\n            '<span class=\"lp360-dm-summary-icon\">' + iconSvg(rowIcons[item.key]) + '<\/span>' +\n            '<span class=\"lp360-dm-summary-value\">' + item.value + '<\/span>' +\n            '<span class=\"lp360-dm-summary-label\">' + item.label + '<\/span>' +\n            '<\/div>';\n    }\n    summaryWrap.innerHTML = summaryHtml;\n    \/\/ \"No attempts\" message - only shown when the backend actually sends one\n    if (inferenceEl) {\n        if (data.inference) {\n            inferenceEl.textContent = data.inference;\n            inferenceEl.style.display = 'block';\n        } else {\n            inferenceEl.textContent = '';\n            inferenceEl.style.display = 'none';\n        }\n    }\n    \/\/ Scroll detection (unchanged)\n    var scrollEl = document.getElementById('lp360-dm-table-scroll');\n    if (scrollEl) {\n        function checkScroll() {\n            if (scrollEl.scrollWidth > scrollEl.clientWidth) {\n                scrollEl.classList.add('is-scrollable');\n            } else {\n                scrollEl.classList.remove('is-scrollable');\n            }\n        }\n        scrollEl.addEventListener('scroll', checkScroll);\n        window.addEventListener('resize', checkScroll);\n        setTimeout(checkScroll, 100);\n    }\n}\n \n   function renderNcertMapping(data) {\n        if (!data) { return; }\n        var el = document.getElementById.bind(document);\n        if (data.badge) {\n            el('lp360-ncert-badge-value').textContent = data.badge.achieved || '';\n            el('lp360-ncert-badge-desc').textContent = data.badge.description || '';\n        }\n        el('lp360-reading-speed').textContent = data.readingSpeed || 'N\/A';\n        el('lp360-passage-reading-time').textContent = formatTimeDisplay(data.passageReadingTime);\n        el('lp360-avg-solving-time').textContent = formatTimeDisplay(data.averageSolvingTime);\n\n        renderIssueList('lp360-critical-issues-list', 'lp360-critical-issues-empty', data.criticalIssues || [], 'red');\n        renderIssueList('lp360-moderate-issues-list', 'lp360-moderate-issues-empty', data.moderateIssues || [], 'orange');\n    }\n\n    function renderIssueList(listId, emptyId, issues, color) {\n        var listEl = document.getElementById(listId);\n        var emptyEl = document.getElementById(emptyId);\n        if (!listEl) { return; }\n        if (!emptyEl) { return; }\n        if (!issues.length) {\n            listEl.style.display = 'none';\n            emptyEl.style.display = 'flex';\n            listEl.innerHTML = '';\n            return;\n        }\n        listEl.style.display = 'flex';\n        emptyEl.style.display = 'none';\n        var html = '';\n        for (var i = 0; i < issues.length; i++) {\n            var issue = issues[i];\n            html += '<li class=\"lp360-issue-item\">' +\n                '<span class=\"lp360-issue-item-icon lp360-mini-icon--' + color + '\">' + iconSvg('warning') + '<\/span>' +\n                '<span class=\"lp360-issue-item-text\">' +\n                '<span class=\"lp360-issue-item-pattern\">' + (issue.pattern || '') + '<\/span>' +\n                '<span class=\"lp360-issue-item-desc\">' + (issue.description || '') + '<\/span>' +\n                '<\/span><\/li>';\n        }\n        listEl.innerHTML = html;\n    }\n\/\/ ---- Strength Map: multi-section (Full-Length) support ----\n    var __strengthMapSections = [];\n    var __activeStrengthMapIndex = 0;\n\n    function mapStrengthMapSectionToData(section) {\n        if (!section) { section = {}; }\n        return {\n            badge: {\n                achieved: section.badge_name || '',\n                description: section.badge_description || ''\n            },\n            readingSpeed: section.reading_speed || 'N\/A',\n            passageReadingTime: section.real_passage_reading_time || section.passage_reading_time || 0,\n            averageSolvingTime: section.average_solving_time || 0,\n            criticalIssues: section.critical_issues || [],\n            moderateIssues: section.moderate_issues || []\n        };\n    }\n\n    function renderStrengthMapSection(index) {\n        if (!__strengthMapSections.length) { return; }\n        var safeIndex = index;\n        if (safeIndex < 0) { safeIndex = 0; }\n        if (safeIndex >= __strengthMapSections.length) { safeIndex = __strengthMapSections.length - 1; }\n        __activeStrengthMapIndex = safeIndex;\n        var sectionData = mapStrengthMapSectionToData(__strengthMapSections[safeIndex]);\n        renderNcertMapping(sectionData);\n\n        var navButtons = document.querySelectorAll('.lp360-sm-nav-btn');\n        for (var i = 0; i < navButtons.length; i++) {\n            var btnIndex = parseInt(navButtons[i].getAttribute('data-section-index'), 10);\n            if (btnIndex === safeIndex) {\n                navButtons[i].classList.add('active');\n            } else {\n                navButtons[i].classList.remove('active');\n            }\n        }\n    }\n\n    function renderStrengthMapNav(sections) {\n        var navWrapEl = document.getElementById('lp360-sm-nav-wrap');\n        var navButtonsEl = document.getElementById('lp360-sm-nav-buttons');\n        if (!navWrapEl) { return; }\n        if (!navButtonsEl) { return; }\n        if (sections.length <= 1) {\n            navWrapEl.style.display = 'none';\n            return;\n        }\n        navWrapEl.style.display = 'block';\n        var html = '';\n        for (var i = 0; i < sections.length; i++) {\n            var sectionName = sections[i].section_name;\n            if (!sectionName) { sectionName = 'Section ' + (i + 1); }\n            var activeClass = '';\n            if (i === 0) {\n                activeClass = ' active';\n            }\n            html += '<button type=\"button\" class=\"lp360-sm-nav-btn' + activeClass + '\" data-section-index=\"' + i + '\">' +\n                '<span class=\"lp360-sm-nav-btn-index\">' + (i + 1) + '<\/span>' +\n                '<span class=\"lp360-sm-nav-btn-label\">' + sectionName + '<\/span>' +\n                '<\/button>';\n        }\n        navButtonsEl.innerHTML = html;\n    }\n\n    function renderStrengthMapSections(sections) {\n        __strengthMapSections = sections;\n        renderStrengthMapNav(sections);\n        renderStrengthMapSection(0);\n    }\n\n    \/\/ ---- Tracker: Score & Accuracy (full rendering) ----\n    var __scoreTrackerData = null;\n    var __scoreTrackerPoints = null;\n\n    function renderTracker(data, hoverIndex) {\n        if (data) { __scoreTrackerData = data; } else { data = __scoreTrackerData; }\n        if (!data) { return; }\n        var attempts = data.attempts || [];\n        var scores = data.scores || [];\n        if (attempts.length === 0 || scores.length === 0) { return; }\n\n        var canvas = document.getElementById('lp360-tracker-canvas');\n        if (!canvas) { return; }\n        var rect = canvas.parentElement.getBoundingClientRect();\n        var dpr = window.devicePixelRatio || 1;\n        var cssWidth = Math.max(rect.width - 12, 600);\n        var cssHeight = Math.min(480, Math.max(300, cssWidth * 0.7));\n        canvas.style.width = cssWidth + 'px';\n        canvas.style.height = cssHeight + 'px';\n        canvas.width = cssWidth * dpr;\n        canvas.height = cssHeight * dpr;\n        var ctx = canvas.getContext('2d');\n        ctx.scale(dpr, dpr);\n\n     var margin = { top: 40, bottom: 60, left: 60, right: 30 };\n        if (cssWidth < 500) { margin.left = 50; }  \n        var chartWidth = cssWidth - margin.left - margin.right;\n        var chartHeight = cssHeight - margin.top - margin.bottom;\n\n     \/\/ ---- Y-axis fixed to -30 to 120 (full-length score) ----\nvar yMin = -30;\nvar yMax = 120;\nvar yTicks = [120, 110, 100, 90, 80, 70, 60, 50, 40, 30, 20, 10, 0, -10, -20, -30];  \n        var xMin = 0;\n        var xMax = Math.max.apply(null, attempts);\n        if (xMax < 2) { xMax = 2; }\n        var xRange = xMax - xMin;\n\n        function xToCanvas(x) { return margin.left + (x - xMin) \/ xRange * chartWidth; }\n        function yToCanvas(y) { return margin.top + chartHeight - (y - yMin) \/ (yMax - yMin) * chartHeight; }\n\n        ctx.clearRect(0, 0, cssWidth, cssHeight);\n\n        \/\/ Draw Y-axis ticks\nfor (var tIdx = 0; tIdx < yTicks.length; tIdx++) {\n    var y = yTicks[tIdx];\n    var yPos = yToCanvas(y);\n    ctx.beginPath();\n    ctx.moveTo(margin.left, yPos);\n    ctx.lineTo(margin.left + chartWidth, yPos);\n    ctx.strokeStyle = '#e5e7eb';\n    ctx.setLineDash([4, 4]);\n    ctx.lineWidth = 1;\n    ctx.stroke();\n    ctx.setLineDash([]);\n    ctx.textAlign = 'right';\n    ctx.textBaseline = 'middle';\n    ctx.font = (cssWidth < 500 ? 10 : 12) + 'px Inter, sans-serif';\n    ctx.fillStyle = (y === 0) ? '#1f2937' : (y > 0 ? '#22c55e' : '#f87171');\n    ctx.fillText(y, margin.left - 6, yPos);\n}\n\n        var xTickStep = cssWidth < 500 ? 4 : 2;\n        for (var x = 0; x <= xMax; x += xTickStep) {\n            var xPos = xToCanvas(x);\n            ctx.beginPath();\n            ctx.moveTo(xPos, margin.top);\n            ctx.lineTo(xPos, margin.top + chartHeight);\n            ctx.strokeStyle = '#e5e7eb';\n            ctx.setLineDash([4, 4]);\n            ctx.lineWidth = 1;\n            ctx.stroke();\n            ctx.setLineDash([]);\n            ctx.textAlign = 'center';\n            ctx.textBaseline = 'top';\n            ctx.font = (cssWidth < 500 ? 10 : 12) + 'px Inter, sans-serif';\n            ctx.fillStyle = '#4b5563';\n            ctx.fillText(x, xPos, margin.top + chartHeight + 6);\n        }\n\n        ctx.save();\n        ctx.textAlign = 'center';\n        ctx.textBaseline = 'middle';\n        ctx.font = (cssWidth < 500 ? 11 : 13) + 'px Inter, sans-serif';\n        ctx.fillStyle = '#1e293b';\n        ctx.translate(14, margin.top + chartHeight \/ 2);\n        ctx.rotate(-Math.PI \/ 2);\n        ctx.fillText('Score Obtained', 0, 0);\n        ctx.restore();\n\n        ctx.textAlign = 'center';\n        ctx.textBaseline = 'top';\n        ctx.font = (cssWidth < 500 ? 11 : 13) + 'px Inter, sans-serif';\n        ctx.fillStyle = '#1e293b';\n       \nctx.fillText('Attempt (Attempt Number)', margin.left + chartWidth \/ 2, cssHeight - 16);\n        var zeroY = yToCanvas(0);\n        ctx.beginPath();\n        ctx.moveTo(margin.left, zeroY);\n        ctx.lineTo(margin.left + chartWidth, zeroY);\n        ctx.strokeStyle = '#1f2937';\n        ctx.lineWidth = 1.5;\n        ctx.stroke();\n\n       var points = [];\n        for (var i = 0; i < attempts.length; i++) {\n            var yVal = scores[i];\n            if (yVal !== undefined) {\n                if (!isNaN(yVal)) {\n                    points.push({ x: attempts[i], y: yVal });\n                }\n            }\n        }\n        \/\/ ---- Inference overlay (no &#038;&#038;) ----\n        var hasInference = false;\n        if (data.inference) {\n            hasInference = true;\n        }\n       \n        var chartWrap = canvas ? canvas.parentElement : null;\n        if (chartWrap) {\n            var existingOverlay = chartWrap.querySelector('.lp360-tracker-overlay');\n            if (existingOverlay) {\n                existingOverlay.remove();\n            }\n            if (hasInference) {\n                chartWrap.classList.add('has-inference');\n                var overlay = document.createElement('div');\n                overlay.className = 'lp360-tracker-overlay';\n                overlay.innerHTML =\n                    '<div class=\"lp360-tracker-overlay__card\">' +\n                    '<div class=\"lp360-tracker-overlay__icon\">' +\n                    '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><circle cx=\"12\" cy=\"12\" r=\"10\"\/><path d=\"M12 16v-4M12 8h.01\"\/><\/svg>' +\n                    '<\/div>' +\n                    '<h3>Score Tracker<\/h3>' +\n                    '<p>' + data.inference + '<\/p>' +\n                    '<\/div>';\n                chartWrap.appendChild(overlay);\n            } else {\n                chartWrap.classList.remove('has-inference');\n            }\n        }\n        if (points.length === 1) {\n            var onlyPoint = points[0];\n            var onlyX = xToCanvas(onlyPoint.x);\n            var onlyY = yToCanvas(onlyPoint.y);\n            ctx.beginPath();\n            ctx.setLineDash([5, 5]);\n            ctx.moveTo(margin.left, onlyY);\n            ctx.lineTo(margin.left + chartWidth, onlyY);\n            ctx.strokeStyle = '#FF7A3D';\n            ctx.lineWidth = 1.5;\n            ctx.stroke();\n            ctx.setLineDash([]);\n            ctx.beginPath();\n            ctx.arc(onlyX, onlyY, 6, 0, 2 * Math.PI);\n            ctx.fillStyle = '#FF7A3D';\n            ctx.shadowColor = 'rgba(255,122,61,0.3)';\n            ctx.shadowBlur = 6;\n            ctx.fill();\n            ctx.shadowBlur = 0;\n            ctx.font = 'bold ' + (cssWidth < 500 ? 11 : 13) + 'px Inter, sans-serif';\n            ctx.textAlign = 'center';\n            ctx.fillStyle = (onlyPoint.y >= 0) ? '#22c55e' : '#ef4444';\n            ctx.fillText(onlyPoint.y, onlyX, (onlyPoint.y >= 0) ? onlyY - 18 : onlyY + 18);\n        }\n        if (points.length < 1) { return; }\n        __scoreTrackerPoints = points;\n\n        function catmullRom(pts, seg) {\n            if (pts.length < 2) { return []; }\n            var result = [];\n            for (var i = 0; i < pts.length - 1; i++) {\n                var p0 = (i === 0) ? pts[i] : pts[i - 1];\n                var p1 = pts[i];\n                var p2 = pts[i + 1];\n                var p3 = (i === pts.length - 2) ? pts[i + 1] : pts[i + 2];\n                for (var t = 0; t <= 1; t += 1 \/ seg) {\n                    var t2 = t * t, t3 = t2 * t;\n                    var x = 0.5 * ((2 * p1.x) + (-p0.x + p2.x) * t + (2 * p0.x - 5 * p1.x + 4 * p2.x - p3.x) * t2 +\n                        (-p0.x + 3 * p1.x - 3 * p2.x + p3.x) * t3);\n                    var y = 0.5 * ((2 * p1.y) + (-p0.y + p2.y) * t + (2 * p0.y - 5 * p1.y + 4 * p2.y - p3.y) * t2 +\n                        (-p0.y + 3 * p1.y - 3 * p2.y + p3.y) * t3);\n                    result.push({ x: x, y: y });\n                }\n            }\n            result.push(pts[pts.length - 1]);\n            return result;\n        }\n\n               \/\/ Draw straight lines between actual data points\n        ctx.beginPath();\n        var firstPt = points[0];\n        ctx.moveTo(xToCanvas(firstPt.x), yToCanvas(firstPt.y));\n        for (var n = 1; n < points.length; n++) {\n            var pt = points[n];\n            ctx.lineTo(xToCanvas(pt.x), yToCanvas(pt.y));\n        }\n        var lastPt = points[points.length - 1];\n        \/\/ Fill area under the curve (down to zero)\n        ctx.lineTo(xToCanvas(lastPt.x), yToCanvas(0));\n        ctx.lineTo(xToCanvas(firstPt.x), yToCanvas(0));\n        ctx.closePath();\n        var grad = ctx.createLinearGradient(0, margin.top, 0, margin.top + chartHeight);\n        grad.addColorStop(0, 'rgba(255,122,61,0.2)');\n        grad.addColorStop(1, 'rgba(255,122,61,0.02)');\n        ctx.fillStyle = grad;\n        ctx.fill();\n\n        \/\/ Draw the line itself\n        ctx.beginPath();\n        ctx.moveTo(xToCanvas(firstPt.x), yToCanvas(firstPt.y));\n        for (var n2 = 1; n2 < points.length; n2++) {\n            var pt2 = points[n2];\n            ctx.lineTo(xToCanvas(pt2.x), yToCanvas(pt2.y));\n        }\n        ctx.strokeStyle = '#FF7A3D';\n        ctx.lineWidth = 3;\n        ctx.shadowColor = 'rgba(255,122,61,0.3)';\n        ctx.shadowBlur = 8;\n        ctx.stroke();\n        ctx.shadowBlur = 0;\n\n        var pointRadius = cssWidth < 500 ? 4 : 5;\n        for (var p = 0; p < points.length; p++) {\n            var pt3 = points[p];\n            var xp = xToCanvas(pt3.x);\n            var yp = yToCanvas(pt3.y);\n            ctx.beginPath();\n            ctx.arc(xp, yp, pointRadius, 0, 2 * Math.PI);\n            ctx.fillStyle = '#FF7A3D';\n            ctx.shadowColor = 'rgba(255,122,61,0.3)';\n            ctx.shadowBlur = 6;\n            ctx.fill();\n            ctx.shadowBlur = 0;\n            ctx.font = 'bold ' + (cssWidth < 500 ? 11 : 13) + 'px Inter, sans-serif';\n            ctx.textAlign = 'center';\n            ctx.fillStyle = (pt3.y >= 0) ? '#22c55e' : '#ef4444';\n            ctx.fillText(pt3.y, xp, (pt3.y >= 0) ? yp - 18 : yp + 18);\n        }\n\n        var activeIndex = hoverIndex;\n        if (activeIndex === undefined) { activeIndex = points.length - 1; }\n        if (activeIndex >= 0) {\n            if (activeIndex < points.length) {\n                var hp = points[activeIndex];\n                var hx = xToCanvas(hp.x);\n                var hy = yToCanvas(hp.y);\n\n                ctx.beginPath();\n                ctx.arc(hx, hy, 8, 0, 2 * Math.PI);\n                ctx.strokeStyle = '#FF7A3D';\n                ctx.lineWidth = 2.5;\n                ctx.fillStyle = '#fff';\n                ctx.fill();\n                ctx.stroke();\n\n                var tipText = 'Attempt: ' + hp.x + ' | Score: ' + hp.y;\n                ctx.font = 'bold ' + (cssWidth < 500 ? 11 : 12.5) + 'px Inter, sans-serif';\n                var tipPad = 12;\n                var tipTextWidth = ctx.measureText(tipText).width;\n                var tipW = tipTextWidth + tipPad * 2;\n                var tipH = 30;\n                var tipX = hx - tipW \/ 2;\n                if (tipX < margin.left) { tipX = margin.left; }\n                if (tipX + tipW > margin.left + chartWidth) { tipX = margin.left + chartWidth - tipW; }\n                var tipY = hy - tipH - 16;\n                if (tipY < margin.top) { tipY = hy + 16; }\n                ctx.beginPath();\n                if (ctx.roundRect) { ctx.roundRect(tipX, tipY, tipW, tipH, 8); } else { ctx.rect(tipX, tipY, tipW, tipH); }\n                ctx.fillStyle = '#fff';\n                ctx.shadowColor = 'rgba(0,0,0,0.12)';\n                ctx.shadowBlur = 10;\n                ctx.fill();\n                ctx.shadowBlur = 0;\n                ctx.lineWidth = 1.8;\n                ctx.strokeStyle = '#FF7A3D';\n                ctx.stroke();\n                ctx.fillStyle = '#1f2937';\n                ctx.textAlign = 'center';\n                ctx.textBaseline = 'middle';\n                ctx.fillText(tipText, tipX + tipW \/ 2, tipY + tipH \/ 2);\n            }\n        }\n\n        if (!canvas._lp360HoverBound) {\n            canvas._lp360HoverBound = true;\n            canvas.addEventListener('mousemove', function(evt) {\n                if (!__scoreTrackerPoints) { return; }\n                var br = canvas.getBoundingClientRect();\n                var mouseX = evt.clientX - br.left;\n                var currentCssWidth = parseFloat(canvas.style.width);\n                var currentMarginL = currentCssWidth < 500 ? 50 : 60;\n                var cw = currentCssWidth - currentMarginL - 30;\n                var xMax = Math.max.apply(null, __scoreTrackerPoints.map(function(p) { return p.x; }));\n                if (xMax < 2) { xMax = 2; }\n                var dataX = (mouseX - currentMarginL) \/ cw * xMax;\n                var nearestIdx = 0, nearestDist = Infinity;\n                for (var pi = 0; pi < __scoreTrackerPoints.length; pi++) {\n                    var d = Math.abs(__scoreTrackerPoints[pi].x - dataX);\n                    if (d < nearestDist) { nearestDist = d; nearestIdx = pi; }\n                }\n                renderTracker(null, nearestIdx);\n            });\n            canvas.addEventListener('mouseleave', function() {\n                renderTracker(null, undefined);\n            });\n        }\n   \n    }\n\n    \/\/ ---- Accuracy Tracker (full) ----\n    var __accuracyTrackerData = null;\n    var __accuracyTrackerPoints = null;\n\n    function renderAccuracyTracker(data, hoverIndex) {\n        if (data) { __accuracyTrackerData = data; } else { data = __accuracyTrackerData; }\n        if (!data) { return; }\n        var timePoints = data.timePoints || [];\n        var accuracyValues = data.accuracyValues || [];\n        if (timePoints.length === 0 || accuracyValues.length === 0) { return; }\n\n        var canvas = document.getElementById('lp360-accuracy-canvas');\n        if (!canvas) { return; }\n        var rect = canvas.parentElement.getBoundingClientRect();\n        var dpr = window.devicePixelRatio || 1;\n        var cssWidth = Math.max(rect.width - 12, 600);\n        var cssHeight = Math.min(480, Math.max(300, cssWidth * 0.7));\n        canvas.style.width = cssWidth + 'px';\n        canvas.style.height = cssHeight + 'px';\n        canvas.width = cssWidth * dpr;\n        canvas.height = cssHeight * dpr;\n        var ctx = canvas.getContext('2d');\n        ctx.scale(dpr, dpr);\n\n      var margin = { top: 40, bottom: 60, left: 55, right: 30 };\n        if (cssWidth < 500) { margin.left = 48; }\n        var chartWidth = cssWidth - margin.left - margin.right;\n        var chartHeight = cssHeight - margin.top - margin.bottom;\n\n        var yMin = 0, yMax = 100;\n       var xTicksForDomain = data.xTicks || [];\nif (xTicksForDomain.length === 0) {\n    xTicksForDomain = timePoints.slice(); \/\/ fallback to timePoints\n}\nvar xMin = 0, xMax = Math.max.apply(null, xTicksForDomain);\n__accuracyDomainXMax = xMax;\n\n        var xRange = xMax - xMin;\n\n        function xToCanvas(x) { return margin.left + (x - xMin) \/ xRange * chartWidth; }\n        function yToCanvas(y) { return margin.top + chartHeight - (y - yMin) \/ (yMax - yMin) * chartHeight; }\n\n        ctx.clearRect(0, 0, cssWidth, cssHeight);\n\n        var yTickStep = 20;\n        for (var y = 0; y <= 100; y += yTickStep) {\n            var yPos = yToCanvas(y);\n            ctx.beginPath();\n            ctx.moveTo(margin.left, yPos);\n            ctx.lineTo(margin.left + chartWidth, yPos);\n            ctx.strokeStyle = '#e5e7eb';\n            ctx.setLineDash([4, 4]);\n            ctx.lineWidth = 1;\n            ctx.stroke();\n            ctx.setLineDash([]);\n            ctx.textAlign = 'right';\n            ctx.textBaseline = 'middle';\n            ctx.font = (cssWidth < 500 ? 10 : 12) + 'px Inter, sans-serif';\n            ctx.fillStyle = '#1f2937';\n            ctx.fillText(y, margin.left - 6, yPos);\n        }\n\n    \n\/\/ ---- Use xTicks for axis tick marks and grid lines ----\nvar xTicks = data.xTicks || [];\nif (xTicks.length === 0) {\n    xTicks = timePoints.slice();\n}\nvar xTicksTextArr = data.xTicksText || [];\nfor (var i = 0; i < xTicks.length; i++) {\n    var xVal = xTicks[i];\n    var xPos = xToCanvas(xVal);\n    ctx.beginPath();\n    ctx.moveTo(xPos, margin.top);\n    ctx.lineTo(xPos, margin.top + chartHeight);\n    ctx.strokeStyle = '#e5e7eb';\n    ctx.setLineDash([4, 4]);\n    ctx.lineWidth = 1;\n    ctx.stroke();\n    ctx.setLineDash([]);\n    ctx.textAlign = 'center';\n    ctx.textBaseline = 'top';\n    ctx.font = (cssWidth < 500 ? 10 : 12) + 'px Inter, sans-serif';\n    ctx.fillStyle = '#4b5563';\n    var tickLabel = xVal;\n    if (xTicksTextArr[i]) { tickLabel = xTicksTextArr[i]; }\n    ctx.fillText(tickLabel, xPos, margin.top + chartHeight + 6);\n}\n        ctx.save();\n        ctx.textAlign = 'center';\n        ctx.textBaseline = 'middle';\n        ctx.font = (cssWidth < 500 ? 11 : 13) + 'px Inter, sans-serif';\n        ctx.fillStyle = '#1e293b';\n        ctx.translate(14, margin.top + chartHeight \/ 2);\n        ctx.rotate(-Math.PI \/ 2);\n        ctx.fillText('Accuracy (%)', 0, 0);\n        ctx.restore();\n\n        ctx.textAlign = 'center';\n        ctx.textBaseline = 'top';\n        ctx.font = (cssWidth < 500 ? 11 : 13) + 'px Inter, sans-serif';\n        ctx.fillStyle = '#1e293b';\n       \nctx.fillText('Time', margin.left + chartWidth \/ 2, cssHeight - 16);\n       var labelsTextArr = data.labelsText || [];\nvar points = [];\nfor (var i = 0; i < timePoints.length; i++) {\n    var yVal = accuracyValues[i];\n    if (yVal !== undefined) {\n        if (!isNaN(yVal)) {\n            var ptLabel = timePoints[i] + ' min';\n            if (labelsTextArr[i]) { ptLabel = labelsTextArr[i]; }\n            points.push({ x: timePoints[i], y: yVal, label: ptLabel });\n        }\n    }\n}\n       if (points.length < 1) { return; }\n        __accuracyTrackerPoints = points;\nif (points.length === 1) {\n    \/\/ Single point: just plot the point, no line drawn to the origin\n    var onlyPointAcc = points[0];\n    var onlyX = xToCanvas(onlyPointAcc.x);\n    var onlyY = yToCanvas(onlyPointAcc.y);\n    \/\/ Point\n    ctx.beginPath();\n    ctx.arc(onlyX, onlyY, 6, 0, 2 * Math.PI);\n    ctx.fillStyle = '#FF7A3D';\n    ctx.shadowColor = 'rgba(255,122,61,0.3)';\n    ctx.shadowBlur = 6;\n    ctx.fill();\n    ctx.shadowBlur = 0;\n    \/\/ Label\n    ctx.font = 'bold ' + (cssWidth < 500 ? 11 : 13) + 'px Inter, sans-serif';\n    ctx.textAlign = 'center';\n    ctx.fillStyle = '#1f2937';\n    ctx.fillText(onlyPointAcc.y + '%', onlyX, onlyY - 18);\n} else {\n    \/\/ Multiple points: draw the line using only real data points, starting at the first actual point\n    var firstPt = points[0];\n    var lastPt = points[points.length - 1];\n    \/\/ Line\n    ctx.beginPath();\n    ctx.moveTo(xToCanvas(firstPt.x), yToCanvas(firstPt.y));\n    for (var n = 1; n < points.length; n++) {\n        var pt = points[n];\n        ctx.lineTo(xToCanvas(pt.x), yToCanvas(pt.y));\n    }\n    ctx.strokeStyle = '#FF7A3D';\n    ctx.lineWidth = 3;\n    ctx.shadowColor = 'rgba(255,122,61,0.3)';\n    ctx.shadowBlur = 8;\n    ctx.stroke();\n    ctx.shadowBlur = 0;\n    \/\/ Area\n    ctx.beginPath();\n    ctx.moveTo(xToCanvas(firstPt.x), yToCanvas(firstPt.y));\n    for (var n2 = 1; n2 < points.length; n2++) {\n        var pt2 = points[n2];\n        ctx.lineTo(xToCanvas(pt2.x), yToCanvas(pt2.y));\n    }\n    ctx.lineTo(xToCanvas(lastPt.x), yToCanvas(0));\n    ctx.lineTo(xToCanvas(firstPt.x), yToCanvas(0));\n    ctx.closePath();\n    var grad = ctx.createLinearGradient(0, margin.top, 0, margin.top + chartHeight);\n    grad.addColorStop(0, 'rgba(255,122,61,0.2)');\n    grad.addColorStop(1, 'rgba(255,122,61,0.02)');\n    ctx.fillStyle = grad;\n    ctx.fill();\n    \/\/ Data points\n    var pointRadius = cssWidth < 500 ? 4 : 6;\n    for (var p = 0; p < points.length; p++) {\n        var pt3 = points[p];\n        var xp = xToCanvas(pt3.x);\n        var yp = yToCanvas(pt3.y);\n        ctx.beginPath();\n        ctx.arc(xp, yp, pointRadius, 0, 2 * Math.PI);\n        ctx.fillStyle = '#FF7A3D';\n        ctx.shadowColor = 'rgba(255,122,61,0.3)';\n        ctx.shadowBlur = 6;\n        ctx.fill();\n        ctx.shadowBlur = 0;\n        ctx.beginPath();\n        ctx.arc(xp, yp, 3, 0, 2 * Math.PI);\n        ctx.fillStyle = '#fff';\n        ctx.fill();\n        \/\/ Label\n        ctx.font = 'bold ' + (cssWidth < 500 ? 11 : 13) + 'px Inter, sans-serif';\n        ctx.textAlign = 'center';\n        ctx.fillStyle = '#1f2937';\n        ctx.fillText(pt3.y + '%', xp, yp - 16);\n    }\n}\n\/\/ ---- Crosshair + enlarged point + tooltip on hover (Accuracy Tracker) ----\n        var activeIndexAcc = hoverIndex;\n        if (activeIndexAcc === undefined) { activeIndexAcc = points.length - 1; }\n        if (activeIndexAcc >= 0) {\n            if (activeIndexAcc < points.length) {\n                var hpAcc = points[activeIndexAcc];\n                var hxAcc = xToCanvas(hpAcc.x);\n                var hyAcc = yToCanvas(hpAcc.y);\n\n                ctx.beginPath();\n                ctx.arc(hxAcc, hyAcc, 8, 0, 2 * Math.PI);\n                ctx.strokeStyle = '#FF7A3D';\n                ctx.lineWidth = 2.5;\n                ctx.fillStyle = '#fff';\n                ctx.fill();\n                ctx.stroke();\n\n                var tipTextAcc = 'Time: ' + hpAcc.label + ' | Accuracy: ' + hpAcc.y + '%';\n                ctx.font = 'bold ' + (cssWidth < 500 ? 11 : 12.5) + 'px Inter, sans-serif';\n                var tipPadAcc = 12;\n                var tipTextWidthAcc = ctx.measureText(tipTextAcc).width;\n                var tipWAcc = tipTextWidthAcc + tipPadAcc * 2;\n                var tipHAcc = 30;\n                var tipXAcc = hxAcc - tipWAcc \/ 2;\n                if (tipXAcc < margin.left) { tipXAcc = margin.left; }\n                if (tipXAcc + tipWAcc > margin.left + chartWidth) { tipXAcc = margin.left + chartWidth - tipWAcc; }\n                var tipYAcc = hyAcc - tipHAcc - 16;\n                if (tipYAcc < margin.top) { tipYAcc = hyAcc + 16; }\n                ctx.beginPath();\n                if (ctx.roundRect) { ctx.roundRect(tipXAcc, tipYAcc, tipWAcc, tipHAcc, 8); } else { ctx.rect(tipXAcc, tipYAcc, tipWAcc, tipHAcc); }\n                ctx.fillStyle = '#fff';\n                ctx.shadowColor = 'rgba(0,0,0,0.12)';\n                ctx.shadowBlur = 10;\n                ctx.fill();\n                ctx.shadowBlur = 0;\n                ctx.lineWidth = 1.8;\n                ctx.strokeStyle = '#FF7A3D';\n                ctx.stroke();\n                ctx.fillStyle = '#1f2937';\n                ctx.textAlign = 'center';\n                ctx.textBaseline = 'middle';\n                ctx.fillText(tipTextAcc, tipXAcc + tipWAcc \/ 2, tipYAcc + tipHAcc \/ 2);\n            }\n        }\n            \n\/\/ ---- Hover interaction (bound once - prevents listener pile-up \/ page freeze) ----\n            if (!canvas._lp360AccHoverBound) {\n                canvas._lp360AccHoverBound = true;\n                var accHoverPending = false;\n                var accPendingIdx = null;\n                canvas.addEventListener('mousemove', function(evt) {\n                    if (!__accuracyTrackerPoints) { return; }\n                    var br = canvas.getBoundingClientRect();\n                    var mouseX = evt.clientX - br.left;\n                    var cssWidthNow = parseFloat(canvas.style.width) || br.width - 12;\n                    var marginLeftNow = cssWidthNow < 500 ? 48 : 55;\n                    var chartWidthNow = cssWidthNow - marginLeftNow - 30;\n                    var domainXMax = __accuracyDomainXMax || 2;\n                    var dataX = (mouseX - marginLeftNow) \/ chartWidthNow * domainXMax;\n                    var nearestIdx = 0, nearestDist = Infinity;\n                    for (var pi = 0; pi < __accuracyTrackerPoints.length; pi++) {\n                        var d = Math.abs(__accuracyTrackerPoints[pi].x - dataX);\n                        if (d < nearestDist) { nearestDist = d; nearestIdx = pi; }\n                    }\n                    accPendingIdx = nearestIdx;\n                    if (!accHoverPending) {\n                        accHoverPending = true;\n                        requestAnimationFrame(function() {\n                            accHoverPending = false;\n                            renderAccuracyTracker(null, accPendingIdx);\n                        });\n                    }\n                });\n                canvas.addEventListener('mouseleave', function() {\n                    renderAccuracyTracker(null, undefined);\n                });\n            }\n        \n    }\n   \n\n    \n   \n   \n\/\/ ---- Prediction ----\n  \n    \nfunction renderPrediction(data) {\n        if (!data) { return; }\n        var el = document.getElementById.bind(document);\n        if (data.clatScore) {\n            var cs = data.clatScore;\n            var obtainedEl = el('lp360-pred-score-obtained');\n            var totalEl = el('lp360-pred-score-total');\n            var infTextEl = el('lp360-pred-score-inference');\n            var confEl = el('lp360-pred-confidence');\n            var confLevelEl = el('lp360-pred-confidence-level');\n            if (obtainedEl) {\n                if (cs.obtained !== undefined) { obtainedEl.textContent = cs.obtained; }\n            }\n            if (totalEl) {\n                if (cs.total !== undefined) { totalEl.textContent = cs.total; }\n            }\n            if (infTextEl) {\n                if (cs.inference) { infTextEl.textContent = cs.inference; }\n            }\n            if (confEl) {\n                if (cs.confidence !== undefined) { confEl.textContent = Math.round(cs.confidence) + '%'; }\n            }\n            if (confLevelEl) {\n                if (cs.confidenceLevel) { confLevelEl.textContent = cs.confidenceLevel; }\n            }\n        }\n    }\n var infoDescriptions = {\n        'decision_marker': 'Shows your answer history (for every 5 minutes of the test).',\n        'ncert_mapping': 'Shows your reading speed, passage reading time, average solving time, and the recurring question patterns that need attention.',\n        'score_tracker': 'Track your progress over time. Each attempt shows how you\\'re improving and getting closer to your best score!',\n        'accuracy_tracker': 'Displays the accuracy trend over time in minutes.',\n        'clat_score_prediction': 'This score is a possible prediction of your CLAT UG mark based on your current performance in the test.'\n    };  \n\n    function showInfoPopup(key) {\n        var desc = infoDescriptions[key] || '[Add description for this section here]';\n        var existing = document.querySelector('.lp360-info-popover');\n        if (existing) {\n            document.body.removeChild(existing);\n        }\n        var popup = document.createElement('div');\n        popup.className = 'lp360-info-popover';\n        popup.setAttribute('role', 'dialog');\n        popup.setAttribute('aria-modal', 'true');\n        var label = key.replace(\/_\/g, ' ').replace(\/\\b\\w\/g, function(l) { return l.toUpperCase(); });\n        popup.innerHTML = '<div class=\"lp360-info-popover__content\">' +\n            '<button class=\"lp360-info-popover__close\" aria-label=\"Close info\">&times;<\/button>' +\n            '<div class=\"lp360-info-popover__icon\">' +\n            '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">' +\n            '<circle cx=\"12\" cy=\"12\" r=\"10\"\/><path d=\"M12 16v-4M12 8h.01\"\/>' +\n            '<\/svg>' +\n            '<\/div>' +\n            '<div class=\"lp360-info-popover__title\">' + label + '<\/div>' +\n            '<div class=\"lp360-info-popover__desc\">' + desc.replace(\/\\n\/g, '<br>') + '<\/div>' +\n            '<span class=\"lp360-info-popover__badge\">Info<\/span>' +\n            '<\/div>';\n        document.body.appendChild(popup);\n        var closeBtn = popup.querySelector('.lp360-info-popover__close');\n        closeBtn.addEventListener('click', function() {\n            document.body.removeChild(popup);\n        });\n        popup.addEventListener('click', function(e) {\n            if (e.target === popup) {\n                document.body.removeChild(popup);\n            }\n        });\n        document.addEventListener('keydown', function handler(e) {\n            if (e.key === 'Escape') {\n                var p = document.querySelector('.lp360-info-popover');\n                if (p) {\n                    document.body.removeChild(p);\n                }\n                document.removeEventListener('keydown', handler);\n            }\n        });\n    }\n    \/\/ ---- Show no-attempts overlay ----\n    function showNoAttemptsOverlay(message) {\n        \/\/ Remove any existing overlay\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        \/\/ Close overlay on click (optional - you may remove this if you don't want it to close)\n        overlay.addEventListener('click', function(e) {\n            if (e.target === overlay) {\n                document.body.removeChild(overlay);\n            }\n        });\n\n        \/\/ Close on Escape key\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 || 0) + (basic.correct_counts.multiple || 0) + (basic.correct_counts.reviewed || 0) + (basic.correct_counts.skipped || 0) : 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 || 0) + (basic.incorrect_counts.multiple || 0) + (basic.incorrect_counts.reviewed || 0) + (basic.incorrect_counts.skipped || 0) : 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 || 0) + (basic.unattempted_counts.reviewed_unattempted || 0) + (basic.unattempted_counts.not_viewed || 0) : 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\/\/ Decision Marker\nvar dm = analytics.decision_marker || {};\n\/\/ Extract numeric interval keys (minutes) from the backend response\nvar intervalKeys = [];\nfor (var key in dm) {\n    if (key !== 'inference') {\n        if (key !== 'totals') {\n            if (!isNaN(key)) {\n                intervalKeys.push(Number(key));\n            }\n        }\n    }\n}\nintervalKeys.sort(function(a, b) { return a - b; });\n\/\/ Determine the maximum key (the latest interval end)\nvar maxKey = 0;\nif (intervalKeys.length) {\n    maxKey = Math.max.apply(null, intervalKeys);\n}\n\/\/ Generate interval labels from 0 up to maxKey, step 20\nvar intervals = [];\nfor (var start = 0; start < maxKey; start += 20) {\n    var end = start + 20;\n    intervals.push(start + '-' + end + ' min');\n}\nif (intervals.length === 0) {\n    intervals.push('0-20 min');\n}\n\/\/ Prepare row data: each cell is the array of question numbers for that interval\nvar rowData = {\n    'correct': [],\n    'incorrect': []\n};\nfor (var i = 0; i < intervals.length; i++) {\n    var intervalLabel = intervals[i];\n    var parts = intervalLabel.split('-');\n    var endKey = parseInt(parts[1], 10); \/\/ e.g., \"5-10\" -> key = 10\n    var bucket = dm[endKey] || { correct: [], incorrect: [] };\n    var correctArr = bucket.correct || [];\n    var incorrectArr = bucket.incorrect || [];\n    rowData['correct'].push(correctArr);\n    rowData['incorrect'].push(incorrectArr);\n}\n\/\/ Totals come directly from the backend's \"totals\" object\nvar totals = dm.totals || { attempt: 0, correct: 0, incorrect: 0 };\nvar summary = [];\nsummary.push({ key: 'attempt', label: 'Total Attempt', value: totals.attempt || 0 });\nsummary.push({ key: 'correct', label: 'Total Correct', value: totals.correct || 0 });\nsummary.push({ key: 'incorrect', label: 'Total Incorrect', value: totals.incorrect || 0 });\nvar decisionData = {\n    timeIntervals: intervals,\n    cells: rowData,\n    summary: summary,\n    inference: dm.inference || ''\n};\nrenderDecisionMarker(decisionData);     \n    \n  \n\n        \/\/ Tracker\n        var tracker = analytics.tracker || {};\n        var scoreTracker = tracker.score_tracker || {};\n        var accuracyTracker = tracker.accuracy_tracker || {};\n        var timeTracker = tracker.time_tracker || {};\n\n       var scoreData = {\n            attempts: scoreTracker.labels || [],\n            scores: scoreTracker.scores || [],\n            inference: scoreTracker.inference || ''\n        };\n        renderTracker(scoreData);;\nvar accLabels = accuracyTracker.labels || [];\nvar accValues = accuracyTracker.accuracies || [];\nvar xTicks = accuracyTracker.x_ticks || [];\nvar xTicksText = accuracyTracker.x_ticks_text || [];\nvar labelsText = accuracyTracker.labels_text || [];\n\n\/\/ Build timePoints directly from labels (these are the exact x-coordinates)\nvar timePoints = [];\nfor (var al = 0; al < accLabels.length; al++) {\n    var label = accLabels[al];\n    var timePoint = 0;\n    if (typeof label === 'string') {\n        if (label.indexOf('-') !== -1) {\n            var parts = label.split('-');\n            timePoint = parseFloat(parts[0]) || 0;\n        } else {\n            timePoint = parseFloat(label) || 0;\n        }\n    } else {\n        timePoint = parseFloat(label) || 0;\n    }\n    timePoints.push(timePoint);\n}\n\nvar accuracyValues = [];\nfor (var av = 0; av < accValues.length; av++) {\n    accuracyValues.push(Math.round(accValues[av] * 100));\n}\n\nvar accData = {\n    timePoints: timePoints,\n    accuracyValues: accuracyValues,\n    xTicks: xTicks,\n    xTicksText: xTicksText,\n    labelsText: labelsText\n};\nrenderAccuracyTracker(accData);\n     }\n\n    \n   \/\/ ---- Fetch and render ----\n    var API_BASE = 'https:\/\/launchpad-api-770009272949.asia-south1.run.app';\nvar params = new URLSearchParams(window.location.search);\nvar attemptId = params.get('attempt_id');\nvar examTypeParam = params.get('exam_type');\nvar tokenParam = params.get('token');\nvar expiresParam = params.get('expires');\n\nif (attemptId) {\n    var url = API_BASE + '\/api\/analytics-by-attempt\/' + attemptId;\n    var queryParts = [];\n    if (examTypeParam) {\n        queryParts.push('exam_type=' + encodeURIComponent(examTypeParam));\n    }\n    if (tokenParam) {\n        queryParts.push('token=' + encodeURIComponent(tokenParam));\n    }\n    if (expiresParam) {\n        queryParts.push('expires=' + encodeURIComponent(expiresParam));\n    }\n    if (queryParts.length > 0) {\n        url = url + '?' + queryParts.join('&');\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('- 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('- Data received:', data);\n    \/\/ ---- FIX: Ensure analytics_json is an object ----\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    \/\/ ---- CHECK FOR NO ATTEMPTS (no &&) ----\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('- Fetch error:', error);\n    console.error('Error fetching analytics:', 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>- 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    \/\/ ---- Tab switching (with Answer Key) ----\n    var tabs = document.querySelectorAll('#lp360-root .lp360-tab');\n var tabOrder = ['basicinfo', 'tracker', 'answerkey']; \n  var isProgrammaticScroll = false;\n\nfunction activateTab(tabId) {\n    var allTabs = document.querySelectorAll('#lp360-root .lp360-tab');\n    for (var at = 0; at < allTabs.length; at++) {\n        allTabs[at].classList.remove('active');\n        allTabs[at].setAttribute('aria-selected', 'false');\n    }\n    var targetTab = document.querySelector('#lp360-root .lp360-tab[data-tab=\"' + tabId + '\"]');\n    if (targetTab) {\n        targetTab.classList.add('active');\n        targetTab.setAttribute('aria-selected', 'true');\n    }\n    var panels = document.querySelectorAll('#lp360-root .lp360-tab-panel');\n    for (var ap = 0; ap < panels.length; ap++) {\n        panels[ap].classList.remove('active');\n    }\n    var targetPanel = document.getElementById('lp360-panel-' + tabId);\n    if (targetPanel) {\n        targetPanel.classList.add('active');\n        var stickyOffset = 0;\n        var tabsBar = document.querySelector('#lp360-root .lp360-tabs');\n        if (tabsBar) {\n            stickyOffset = tabsBar.getBoundingClientRect().height + 16;\n        }\n        var targetTop = targetPanel.getBoundingClientRect().top + window.pageYOffset - stickyOffset;\n        isProgrammaticScroll = true;\n        window.scrollTo({\n            top: targetTop,\n            behavior: 'smooth'\n        });\n        setTimeout(function() {\n            isProgrammaticScroll = false;\n        }, 700);\n    }\n    if (tabId === 'tracker') {\n        setTimeout(function() {\n            renderTracker(null);\n            renderAccuracyTracker(null);\n        }, 50);\n    }\n    \n}\n  \n\n    for (var ti = 0; ti < tabs.length; ti++) {\n        var tab = tabs[ti];\n        tab.addEventListener('click', function() {\n            var tabId = this.getAttribute('data-tab');\n            activateTab(tabId);\n        });\n    }\n\n \/\/ ---- Scroll-position tab highlighting (replaces auto-advance) ----\nfunction updateActiveTabOnScroll() {\n    if (isProgrammaticScroll) { return; }\n    var tabsBar = document.querySelector('#lp360-root .lp360-tabs');\n    var stickyOffset = 24;\n    if (tabsBar) {\n        stickyOffset = tabsBar.getBoundingClientRect().height + 24;\n    }\n    var panels = document.querySelectorAll('#lp360-root .lp360-tab-panel');\n    var currentTabId = tabOrder[0];\n    for (var i = 0; i < panels.length; i++) {\n        var panel = panels[i];\n        var rect = panel.getBoundingClientRect();\n        if (rect.top - stickyOffset <= 0) {\n            currentTabId = panel.id.replace('lp360-panel-', '');\n        }\n    }\n    \n    \/\/ If scrolled to the bottom, force the last tab to be active\n    if ((window.innerHeight + window.pageYOffset) >= document.body.offsetHeight - 5) {\n        if (panels.length > 0) {\n            currentTabId = panels[panels.length - 1].id.replace('lp360-panel-', '');\n        }\n    }\n    var allTabs = document.querySelectorAll('#lp360-root .lp360-tab');\n    for (var at = 0; at < allTabs.length; at++) {\n        allTabs[at].classList.remove('active');\n        allTabs[at].setAttribute('aria-selected', 'false');\n    }\n    var activeTabBtn = document.querySelector('#lp360-root .lp360-tab[data-tab=\"' + currentTabId + '\"]');\n    if (activeTabBtn) {\n        activeTabBtn.classList.add('active');\n        activeTabBtn.setAttribute('aria-selected', 'true');\n    }\n    var allPanels = document.querySelectorAll('#lp360-root .lp360-tab-panel');\n    for (var ap = 0; ap < allPanels.length; ap++) {\n        allPanels[ap].classList.remove('active');\n    }\n    var activePanelEl = document.getElementById('lp360-panel-' + currentTabId);\n    if (activePanelEl) { activePanelEl.classList.add('active'); }\n}\nvar scrollSpyTimeout;\nwindow.addEventListener('scroll', function() {\n    clearTimeout(scrollSpyTimeout);\n    scrollSpyTimeout = setTimeout(updateActiveTabOnScroll, 60);\n});\nupdateActiveTabOnScroll();\n\n    \/\/ ---- Resize handler ----\n    var resizeTimer;\n    window.addEventListener('resize', function() {\n        clearTimeout(resizeTimer);\n        resizeTimer = setTimeout(function() {\n            var trackerPanel = document.getElementById('lp360-panel-tracker');\n            if (trackerPanel) {\n                if (trackerPanel.classList.contains('active')) {\n                    renderTracker(null);\n                    renderAccuracyTracker(null);\n                }\n            }\n            }, 200);\n    });\n\/\/ ---- Info button delegation ----\n    document.addEventListener('click', function(e) {\n        var btn = e.target.closest('.lp360-info-btn');\n        if (btn) {\n            var key = btn.getAttribute('data-info-key');\n            if (key) {\n                e.preventDefault();\n                showInfoPopup(key);\n            }\n        }\n    });\n\/\/ ---- Strength Map section-nav button delegation ----\n    document.addEventListener('click', function(e) {\n        var navBtn = e.target.closest('.lp360-sm-nav-btn');\n        if (navBtn) {\n            var idxAttr = navBtn.getAttribute('data-section-index');\n            var idx = parseInt(idxAttr, 10);\n            if (!isNaN(idx)) {\n                e.preventDefault();\n                renderStrengthMapSection(idx);\n            }\n        }\n    });\n\n    document.addEventListener('click', function(e) {\n        var qEl = e.target.closest('.lp360-dm-chip, .lp360-time-card-badge');\n        if (qEl) {\n            var qNum = qEl.getAttribute('data-qnum');\n            if (qNum) {\n                e.preventDefault();\n                if (typeof window.lp360JumpToAnswerKeyQuestion === 'function') {\n                    window.lp360JumpToAnswerKeyQuestion(qNum);\n                } else {\n                    var tabBtn = document.querySelector('#lp360-root .lp360-tab[data-tab=\"answerkey\"]');\n                    if (tabBtn) { tabBtn.click(); }\n                }\n            }\n        }\n    });\n\n    \/\/ ---- CMA Foundation Score Prediction progress bar (additive, presentation-only) ----\n    function updatePredScoreBar() {\n        var obtainedEl = document.getElementById('lp360-pred-score-obtained');\n        var totalEl = document.getElementById('lp360-pred-score-total');\n        var markerEl = document.getElementById('lp360-pred-score-progress-marker');\n        var badgeEl = document.getElementById('lp360-pred-score-progress-badge');\n        if (!obtainedEl) { return; }\n        if (!totalEl) { return; }\n        if (!markerEl) { return; }\n        if (!badgeEl) { return; }\n        var obtained = parseFloat(obtainedEl.textContent) || 0;\n        var total = parseFloat(totalEl.textContent) || 1;\n        var pct = 0;\n        if (total > 0) {\n            pct = (obtained \/ total) * 100;\n        }\n        if (pct < 0) { pct = 0; }\n        if (pct > 100) { pct = 100; }\n        markerEl.style.left = pct + '%';\n        badgeEl.style.left = pct + '%';\n        badgeEl.textContent = Math.round(pct) + '%';\n    }\n    var predScoreObserverTarget = document.getElementById('lp360-pred-score-obtained');\n    if (predScoreObserverTarget) {\n        var predScoreObserver = new MutationObserver(updatePredScoreBar);\n        predScoreObserver.observe(predScoreObserverTarget, { childList: true, characterData: true, subtree: true });\n        updatePredScoreBar();\n    }\n\n})();\n \n<\/script>\n","protected":false},"excerpt":{"rendered":"<p>CLAT Launchpad 360 CLAT Launchpad 360 Basic Info Tracker Answer Key Basic Info YOUR SCORE 0\/100 TIME USED 0 TOTAL [&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-278","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/massgraduates.com\/index.php\/wp-json\/wp\/v2\/pages\/278","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=278"}],"version-history":[{"count":2,"href":"https:\/\/massgraduates.com\/index.php\/wp-json\/wp\/v2\/pages\/278\/revisions"}],"predecessor-version":[{"id":323,"href":"https:\/\/massgraduates.com\/index.php\/wp-json\/wp\/v2\/pages\/278\/revisions\/323"}],"wp:attachment":[{"href":"https:\/\/massgraduates.com\/index.php\/wp-json\/wp\/v2\/media?parent=278"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}