/* ==========================================================================
   1. VARIABLES, THEMING & CORE DESIGN TOKENS
   ========================================================================== */
:root {
    --font-sans: 'Inter', system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
    --font-mono: 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, Courier, monospace;
    --text-xs: 0.75rem;
    --text-sm: 0.875rem;
    --text-base: 1rem;
    --text-lg: 1.125rem;
    --text-xl: 1.25rem;
    --text-2xl: 1.625rem;
    --tracking-tighter: -0.03em;
    --tracking-tight: -0.015em;
    --tracking-normal: 0em;
    --tracking-wide: 0.025em;
    --tracking-wider: 0.05em;
    --bg-color: #f8fafc;
    --app-bg: #ffffff;
    --text-color: #0f172a;
    --nav-bg: #0f172a;
    --container-bg: #ffffff;
    --border-color: #e2e8f0;
    --footer-bg: #ffffff;
    --primary-color: #166534;
    --primary-accent: #2563eb;
    --accent-yellow: #eab308; 
    --color-correct: #16a34a;
    --color-wrong: #dc2626;
    --color-warning: #d97706;
    --color-danger: #e11d48;
    --header-bg: #0f172a;
    --header-text: #ffffff;
    --top-header-bg: var(--primary-color);
    --nav-active-border: var(--accent-yellow);
    --tab-active-lbl: #cbd5e1;
    --tab-inactive-lbl: #94a3b8;
    --tab-active-val: var(--accent-yellow);
    --tab-inactive-val: #e2e8f0;
    --q-num-color: #1e3a8a;
    --option-bg: #f8fafc;
    --option-border: #cbd5e1;
    --option-hover-bg: #f1f5f9;
    --opt-sel-bg: #eff6ff;
    --opt-sel-border: #3b82f6;
    --opt-sel-text: #1e40af;
    --opt-sel-letter: #ffffff;
    --opt-sel-letter-bg: #3b82f6;
    --opt-cor-bg: #f0fdf4;
    --opt-cor-border: #22c55e;
    --opt-cor-text: #166534;
    --opt-cor-letter: #ffffff;
    --opt-cor-letter-bg: #22c55e;
    --opt-wrg-bg: #fef2f2;
    --opt-wrg-border: #ef4444;
    --opt-wrg-text: #991b1b;
    --opt-wrg-letter: #ffffff;
    --opt-wrg-letter-bg: #ef4444;
    --btn-prev-bg: #64748b; 
    --btn-clear-bg: #f59e0b;
    --btn-clear-text: #0f172a;
    --btn-clear-border: #f59e0b;
    --palette-unvisited: #94a3b8;
    --palette-unvisited-text: #ffffff;
    --stat-lbl-color: #475569;
    --modal-bg: #ffffff;
    --modal-text: #334155;
    --modal-input-bg: #ffffff;
    --timer-bg: #f1f5f9;
    --timer-text: #1e293b;
    --rs-bg-outer: #f1f5f9;
    --rs-bg-card: #ffffff;
    --rs-bg-alt-card: #f8fafc;
    --rs-btn-soft-fill: #f1f5f9;
    --rs-card-blue-bg: #eff6ff;
    --rs-card-blue-border: #bfdbfe;
    --rs-card-blue-text: #1e40af;
    --rs-card-purple-bg: #faf5ff;
    --rs-card-purple-border: #e9d5ff;
    --rs-card-purple-text: #581c87;
    --rs-card-green-bg: #f0fdf4;
    --rs-card-green-border: #bbf7d0;
    --rs-card-green-text: #166534;
    --rs-card-red-bg: #fef2f2;
    --rs-card-red-border: #fecaca;
    --rs-card-red-text: #991b1b;
    --rs-card-amber-bg: #fffbeb;
    --rs-card-amber-border: #fef3c7;
    --rs-card-amber-text: #92400e;
    --table-header-bg: #1e3a8a;
    --table-sum-row-bg: #f8fafc;
    --badge-pass-bg: #dcfce7;
    --badge-pass-text: #15803d;
    --badge-fail-bg: #fee2e2;
    --badge-fail-text: #b91c1c;
    --badge-total-bg: #dbeafe;
    --badge-total-text: #1d4ed8;
    --canvas-particle-color: rgba(22, 101, 52, 0.12);
}

body.dark-mode {
    --bg-color: #0b0f19;
    --app-bg: #111827;
    --text-color: #f3f4f6;
    --nav-bg: #030712;
    --container-bg: #1f2937;
    --border-color: #374151;
    --footer-bg: #030712;
    --primary-color: #064e3b;
    --primary-accent: #60a5fa;
    --accent-yellow: #f59e0b;
    --color-correct: #10b981;
    --color-wrong: #f43f5e;
    --color-warning: #f59e0b;
    --color-danger: #f43f5e;
    --header-bg: #030712;
    --header-text: #f3f4f6;
    --top-header-bg: var(--primary-color);
    --nav-active-border: var(--accent-yellow);
    --tab-active-lbl: #9ca3af;
    --tab-inactive-lbl: #6b7280;
    --tab-active-val: var(--accent-yellow);
    --tab-inactive-val: #4b5563;
    --q-num-color: #60a5fa;
    --option-bg: #1f2937;
    --option-border: #4b5563;
    --option-hover-bg: #2d3748;
    --opt-sel-bg: #1e293b;
    --opt-sel-border: #3b82f6;
    --opt-sel-text: #f3f4f6;
    --opt-sel-letter: #111827;
    --opt-sel-letter-bg: #3b82f6;
    --opt-cor-bg: #064e3b;
    --opt-cor-border: #10b981;
    --opt-cor-text: #ecfdf5;
    --opt-cor-letter: #111827;
    --opt-cor-letter-bg: #10b981;
    --opt-wrg-bg: #4c0519;
    --opt-wrg-border: #f43f5e;
    --opt-wrg-text: #fff1f2;
    --opt-wrg-letter: #111827;
    --opt-wrg-letter-bg: #f43f5e;
    --btn-prev-bg: #4b5563;
    --btn-clear-bg: #d97706;
    --btn-clear-text: #ffffff;
    --btn-clear-border: #d97706;
    --palette-unvisited: #4b5563;
    --palette-unvisited-text: #ffffff;
    --stat-lbl-color: #9ca3af;
    --modal-bg: #111827;
    --modal-text: #e5e7eb;
    --modal-input-bg: #1f2937;
    --timer-bg: #1f2937;
    --timer-text: #f9fafb;
    --rs-bg-outer: #030712;
    --rs-bg-card: #111827;
    --rs-bg-alt-card: #1f2937;
    --rs-btn-soft-fill: #374151;
    --rs-card-blue-bg: #1e3a8a;
    --rs-card-blue-border: #2563eb;
    --rs-card-blue-text: #93c5fd;
    --rs-card-purple-bg: #4c1d95;
    --rs-card-purple-border: #6d28d9;
    --rs-card-purple-text: #e9d5ff;
    --rs-card-green-bg: #064e3b;
    --rs-card-green-border: #059669;
    --rs-card-green-text: #a7f3d0;
    --rs-card-red-bg: #4c0519;
    --rs-card-red-border: #be123c;
    --rs-card-red-text: #fecaca;
    --rs-card-amber-bg: #78350f;
    --rs-card-amber-border: #b45309;
    --rs-card-amber-text: #fef3c7;
    --table-header-bg: #1e3a8a;
    --table-sum-row-bg: #1f2937;
    --badge-pass-bg: #064e3b;
    --badge-pass-text: #34d399;
    --badge-fail-bg: #4c0519;
    --badge-fail-text: #f87171;
    --badge-total-bg: #1e3a8a;
    --badge-total-text: #60a5fa;
    --canvas-particle-color: rgba(52, 211, 153, 0.15);
}

body.dark-mode .icon-moon { display: none; }
body:not(.dark-mode) .icon-sun { display: none; }


/* ==========================================================================
   2. CORE CONTAINER & GLOBAL BASE STRUCTURAL LAYOUTS
   ========================================================================== */
body {
    font-family: var(--font-sans);
    background-color: var(--bg-color);
    color: var(--text-color);
    margin: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    font-size: var(--text-sm);
    line-height: 1.5;
    letter-spacing: var(--tracking-normal);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    -webkit-touch-callout: none;
    -webkit-user-select: none;
    -khtml-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
    transition: background-color 0.25s cubic-bezier(0.4, 0, 0.2, 1), color 0.25s cubic-bezier(0.4, 0, 0.2, 1);
    padding: 16px 16px 80px 16px;
}

h1, h2, h3, h4, h5, h6 {
    letter-spacing: var(--tracking-tight);
    color: var(--text-color);
}

code, pre, kbd, .option-monospace {
    font-family: var(--font-mono) !important;
    font-size: 0.9em;
    letter-spacing: var(--tracking-normal);
}

.sc-svg-icon {
    width: 1.15em;
    height: 1.15em;
    flex-shrink: 0;
    display: inline-block;
    vertical-align: middle;
    transform-origin: center bottom;
}

.nav-short, .btn-text-short { display: none; }

.sc-progress-wrapper {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 3px;
    z-index: 5000;
}

.sc-progress-fill {
    height: 100%;
    width: 0%;
    background: linear-gradient(90deg, var(--primary-accent), var(--color-correct), var(--primary-accent));
    transition: width .15s ease-out;
    box-shadow: 0 1px 6px rgba(59, 130, 246, 0.4);
}

.sc-widget-container {
    width: 100%;
    max-width: 1320px;
    margin: 0 auto;
    padding: 16px;
    box-sizing: border-box;
    position: relative;
    background: var(--app-bg);
    border: 1px solid var(--border-color);
    border-radius: 12px;
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.03), 0 2px 4px -1px rgba(0, 0, 0, 0.02);
    transition: all .3s ease;
}

.sc-widget-container.sc-blur-active > :not(.custom-modal-overlay) {
    filter: blur(8px);
}


/* ==========================================================================
   3. UNIFIED PLATFORM WORKSPACE HEADERS & CONTROLS
   ========================================================================== */
.unified-workspace-header {
    background-color: #0f172a; 
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
    padding: 10px 24px;
    display: flex; 
    justify-content: space-between; 
    align-items: center;
    flex-wrap: nowrap; 
    gap: 16px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15); 
    z-index: 5100; 
    flex-shrink: 0;
    width: 100%;
    box-sizing: border-box;
    position: relative;
    margin-bottom: 12px;
}

.header-left-group { 
    display: flex; 
    align-items: center; 
    gap: 12px; 
    flex-shrink: 0; 
}

.back-btn {
    background-color: rgba(255, 255, 255, 0.08); 
    color: #ffffff;
    border: 1px solid rgba(255, 255, 255, 0.12); 
    padding: 6px 14px;
    border-radius: 6px; 
    cursor: pointer; 
    font-family: var(--font-sans);
    font-weight: 600;
    font-size: var(--text-sm);
    letter-spacing: var(--tracking-wide);
    display: flex; 
    align-items: center; 
    justify-content: center; 
    gap: 6px; 
    transition: all 0.15s ease; 
    white-space: nowrap;
}
.back-btn:hover {
    background-color: rgba(255, 255, 255, 0.15);
    border-color: rgba(255, 255, 255, 0.25);
}

.header-right-group { 
    display: flex; 
    align-items: center; 
    gap: 10px; 
    flex-shrink: 0; 
    justify-content: flex-end; 
    flex-grow: 1; 
}

.chapter-capsule {
    padding: 6px 14px; 
    border-radius: 6px; 
    border: 1px solid #334155;
    background-color: #1e293b; 
    color: #f8fafc;
    font-family: var(--font-sans);
    font-size: var(--text-sm); 
    font-weight: 600;
    letter-spacing: var(--tracking-tight);
    white-space: nowrap; 
    display: flex; 
    align-items: center;
}

.app-btn {
    background-color: #2563eb; 
    color: #ffffff; 
    border: 1px solid transparent;
    padding: 6px 14px; 
    border-radius: 6px; 
    cursor: pointer; 
    font-family: var(--font-sans);
    font-weight: 600;
    font-size: var(--text-sm);
    letter-spacing: var(--tracking-wide);
    display: flex; 
    align-items: center; 
    justify-content: center; 
    gap: 6px; 
    transition: all 0.15s ease; 
    white-space: nowrap;
}
.app-btn:hover {
    background-color: #1d4ed8;
}

.app-btn-outline { 
    background-color: transparent; 
    color: #f8fafc; 
    border: 1px solid #334155; 
}
.app-btn-outline:hover {
    background-color: #1e293b;
    border-color: #475569;
}

.app-btn-yt { 
    background-color: #dc2626; 
    color: #ffffff; 
}
.app-btn-yt:hover {
    background-color: #b91c1c;
}

.hide-on-mobile { 
    display: flex; 
}

.nav-right-hud {
    display: flex;
    align-items: center;
    gap: 10px;
    padding-right: 8px;
    margin-left: auto;
    flex-shrink: 0;
}

.unified-nav .timer {
    background: #1e293b !important;
    color: #f8fafc !important;
    border: 1px solid #334155 !important;
    font-family: var(--font-mono) !important;
    font-size: var(--text-base) !important;
    font-weight: 700 !important;
    padding: 6px 14px !important;
    border-radius: 6px !important;
    display: flex;
    align-items: center;
    gap: 6px;
    letter-spacing: var(--tracking-wide);
}

.tracking-eyes-container {
    display: flex;
    gap: 4px;
    align-items: center;
}
.eye-ball {
    width: 20px;
    height: 20px;
    background: #ffffff;
    border-radius: 50%;
    position: relative;
    border: 1.5px solid #334155;
    display: inline-block;
    transition: transform 0.11s ease;
}
.pupil {
    width: 7px;
    height: 7px;
    background: #0f172a;
    border-radius: 50%;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}
body.dark-mode .eye-ball { background: #1e293b; border-color: #4b5563; }
body.dark-mode .pupil { background: #f8fafc; }


/* ==========================================================================
   4. NAVIGATION FILTER SLIDER MODIFICATIONS (INLINE BEFORE TIMER)
   ========================================================================== */
.filter-slider-wrapper {
    position: relative;
    display: flex;
    align-items: center;
    gap: 8px;
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 6px;
    padding: 4px 10px;
    cursor: pointer;
    user-select: none;
    height: 38px;
    box-sizing: border-box;
    transition: background 0.15s ease;
}
.filter-slider-wrapper:hover { background: rgba(255, 255, 255, 0.08); }

.filter-slider-heading {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: var(--text-xs);
    font-weight: 700;
    letter-spacing: var(--tracking-wide);
    color: #e2e8f0;
}
.slider-toggle-indicator {
    font-size: 9px;
    transition: transform 0.2s ease;
    color: var(--accent-yellow);
}
.filter-slider-wrapper.active .slider-toggle-indicator { transform: rotate(180deg); }

.filter-slider-wrapper .interactive-legend {
    position: absolute;
    top: calc(100% + 6px);
    right: 0;
    background: #0f172a;
    border: 1px solid #334155;
    border-radius: 6px;
    padding: 6px;
    display: flex !important;
    flex-direction: row !important;
    gap: 4px !important;
    z-index: 5200;
    box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.3);
    opacity: 0;
    visibility: hidden;
    transform: translateY(-8px);
    transition: opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1), transform 0.2s cubic-bezier(0.4, 0, 0.2, 1), visibility 0.2s;
    grid-template-columns: none !important;
}
.filter-slider-wrapper.active .interactive-legend { opacity: 1; visibility: visible; transform: translateY(0); }

.filter-slider-wrapper .legend-item {
    padding: 3px 6px !important;
    font-size: 10px !important;
    font-weight: 700 !important;
    border-radius: 4px !important;
    border: 1px solid #334155 !important;
    background: #1e293b !important;
    color: #94a3b8 !important;
    min-height: auto !important;
    gap: 3px !important;
}
.filter-slider-wrapper .legend-item:hover { background: #2d3748 !important; color: #ffffff !important; }
.filter-slider-wrapper .legend-item.active-filter { background: var(--primary-accent) !important; border-color: var(--primary-accent) !important; color: #ffffff !important; }

.filter-slider-wrapper .legend-box {
    width: 5px !important;
    height: 5px !important;
    border-radius: 50% !important;
    border: 1px solid rgba(255, 255, 255, 0.2) !important;
    flex-shrink: 0 !important;
}


/* ==========================================================================
   4B. NAVIGATION SECTION (EXAM TAB STRUCTURES)
   ========================================================================== */
.unified-nav {
    background-color: var(--nav-bg);
    display: flex;
    align-items: stretch;
    border-bottom: 3px solid var(--accent-yellow);
    box-shadow: 0 2px 4px rgba(0, 0, 0, .08);
    border-radius: 6px;
    margin-bottom: 16px;
    position: relative;
}

.year-nav-mobile-header { display: none; }

.current-paper-label {
    color: var(--accent-yellow);
    font-weight: 800;
    font-size: var(--text-base);
    letter-spacing: var(--tracking-tight);
    display: flex;
    flex-direction: column;
    line-height: 1.2;
    padding: 10px 20px;
    justify-content: center;
    border-right: 1px solid rgba(255, 255, 255, 0.1);
}

.current-paper-label span {
    font-size: var(--text-xs);
    color: var(--tab-inactive-lbl);
    font-weight: 700;
    letter-spacing: var(--tracking-wider);
}

.year-nav-bar {
    display: flex;
    overflow-x: auto;
    white-space: nowrap;
    scrollbar-width: none;
    flex-grow: 1;
    align-items: stretch;
}
.year-nav-bar::-webkit-scrollbar { display: none; }

.year-tab {
    padding: 10px 20px;
    text-align: center;
    line-height: 1.3;
    display: flex;
    flex-direction: column;
    justify-content: center;
    cursor: pointer;
    transition: all .15s ease;
    border-bottom: 3px solid transparent;
}
.year-tab:hover { background: rgba(255, 255, 255, .05); }
.year-tab.active { background: rgba(255, 255, 255, .08); border-bottom-color: var(--accent-yellow); }


/* ==========================================================================
   5. INTERACTIVE COMPONENT WORKSPACE MAIN WRAPPER
   ========================================================================== */
.main-wrapper { display: flex; width: 100%; gap: 16px; margin-bottom: 16px; align-items: stretch; }

.cbt-container {
    flex: 3;
    background: var(--container-bg);
    border: 1px solid var(--border-color);
    border-radius: 8px;
    display: flex;
    flex-direction: column;
    position: relative;
    overflow: hidden;
}

.palette-container {
    flex: 1;
    background: var(--container-bg);
    border: 1px solid var(--border-color);
    border-radius: 8px;
    padding: 16px;
    display: flex;
    flex-direction: column;
    position: relative;
    align-self: flex-start;
}

.sc-column-bg {
    position: absolute;
    top: 0; left: 0; width: 100%; height: 100%;
    opacity: .35; pointer-events: none;
}

.cbt-container > :not(.sc-column-bg), .palette-container > :not(.sc-column-bg) { position: relative; z-index: 1; }

.progress-container { width: 100%; height: 4px; background: var(--timer-bg); }
.progress-bar { height: 100%; background: var(--primary-accent); width: 0; transition: width .4s ease; }


/* ==========================================================================
   6. QUESTION COMPONENTS & ASSESSMENT SELECTION OPTIONS
   ========================================================================== */
.content { padding: 24px 28px !important; flex-grow: 1; display: flex; flex-direction: column; }
.content-header { 
    display: flex; 
    justify-content: space-between; 
    align-items: center; 
    margin-bottom: 20px; 
    border-bottom: 1px solid var(--border-color); 
    padding-bottom: 10px; 
    width: 100%; 
    gap: 12px;
}

.question-number { font-size: var(--text-sm) !important; font-weight: 700 !important; color: var(--stat-lbl-color); text-transform: uppercase; letter-spacing: var(--tracking-wide); flex-shrink: 0; }

.question-text { 
    font-size: 1.125rem !important; 
    margin-bottom: 14px; 
    line-height: 1.5 !important; 
    color: var(--text-color); 
    font-weight: 600; 
    white-space: pre-wrap; 
    letter-spacing: var(--tracking-tight); 
}

.content .inline-shortcuts-style {
    margin: 24px auto 0 auto !important;
    padding: 6px 14px !important;
    background: var(--option-bg) !important;
    border: 1px dashed var(--option-border) !important;
    border-radius: 6px !important;
    font-size: 11px !important;
    font-weight: 600 !important;
    color: var(--stat-lbl-color) !important;
    display: flex !important;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    white-space: nowrap;
    animation: none !important;
    max-width: fit-content;
    gap: 8px;
}
.content .inline-shortcuts-style kbd { font-size: 10px !important; padding: 1px 4px !important; margin: 0 1px !important; }
.shortcut-label { font-weight: 700; color: var(--stat-lbl-color); text-transform: uppercase; font-size: 10px; letter-spacing: 0.02em; }

.question-text code {
    background-color: var(--timer-bg);
    padding: 2px 6px;
    border-radius: 4px;
    font-weight: 600;
    color: var(--primary-accent);
    text-align: justify;
}
.options { list-style-type: none; padding: 0; margin: 0; }
.options li { margin-bottom: 8px; }

.options label {
    display: flex; align-items: center; padding: 8px 14px;
    background: var(--option-bg); border: 1px solid var(--option-border);
    border-radius: 8px; cursor: pointer; font-size: 0.95rem !important; 
    font-weight: 500;
    transition: all 0.15s ease; min-height: 38px; position: relative;
    box-sizing: border-box;
    letter-spacing: var(--tracking-normal);
}
.options label:not(.disabled-label):hover { background: var(--option-hover-bg); border-color: var(--primary-accent); }
.options input { display: none; }

.option-letter {
    display: inline-flex; align-items: center; justify-content: center;
    width: 21px; height: 21px; border-radius: 50%; border: 1px solid var(--option-border);
    margin-right: 10px; font-weight: 800; font-size: 11px; background: var(--app-bg);
    color: var(--text-color); flex-shrink: 0;
}

.option-text {
    flex: 1; 
    text-align: justify;
}

.options label.selected { background: var(--opt-sel-bg); border-color: var(--opt-sel-border); font-weight: 600; color: var(--opt-sel-text); }
.options label.selected .option-letter { background: var(--opt-sel-letter-bg); color: var(--opt-sel-letter); border-color: var(--opt-sel-border); }

.options label.correct-answer { background: var(--opt-cor-bg); border-color: var(--opt-cor-border); color: var(--opt-cor-text); font-weight: 700; padding-right: 45px; }
.options label.correct-answer .option-letter { background: var(--opt-cor-letter-bg); color: var(--opt-cor-letter); border-color: var(--opt-sel-border); }
.options label.correct-answer::after { content: '✓'; position: absolute; right: 18px; font-size: var(--text-lg); font-weight: 800; color: var(--color-correct); }

.options label.wrong-answer { background: var(--opt-wrg-bg); border-color: var(--opt-wrg-border); color: var(--opt-wrg-text); padding-right: 45px; }
.options label.wrong-answer .option-letter { background: var(--opt-wrg-letter-bg); color: var(--opt-wrg-letter); border-color: var(--opt-sel-border); }
.options label.wrong-answer::after { content: '✕'; position: absolute; right: 18px; font-size: var(--text-base); font-weight: 800; color: var(--color-wrong); }

.q-tag-capsule {
    font-family: var(--font-mono) !important;
    font-size: var(--text-xs) !important; padding: 4px 10px !important; border-radius: 4px !important;
    display: inline-flex; align-items: center; background: #fff3cd; color: #856404;
    border: 1px solid #ffeeba; font-weight: 700; letter-spacing: var(--tracking-wide);
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.02); text-transform: uppercase;
    flex-shrink: 0;
}
body.dark-mode .q-tag-capsule { background: #2c2100; color: #ffda6a; border-color: #4b3a00; }


/* ==========================================================================
   7. PALETTE INNER CONTROLLER ARCHITECTURE
   ========================================================================== */
.sidebar-actions-control-matrix {
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin-top: 16px;
    padding-top: 16px;
    border-top: 1.5px dashed #cbd5e1;
    width: 100%;
    box-sizing: border-box;
}

.sidebar-actions-control-matrix button, 
.btn-submit {
    height: 48px !important; 
    border-radius: 10px !important;
    font-size: var(--text-sm) !important;
    font-weight: 700 !important;
    text-transform: uppercase;
    letter-spacing: var(--tracking-wide);
    border: none !important;
    outline: none !important;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.matrix-row-primary { width: 100%; }
.matrix-row-primary .btn-next {
    width: 100%;
    background-color: #1d56d8 !important;
    color: #ffffff !important;
}
.matrix-row-primary .btn-next:hover { background-color: #1a4bba !important; }

.matrix-row-secondary {
    display: flex !important;
    flex-direction: row !important;
    gap: 12px !important;
    width: 100% !important;
}

.matrix-row-secondary .btn-prev {
    flex: 1 !important;
    background-color: #62758f !important;
    color: #ffffff !important;
}
.matrix-row-secondary .btn-prev:hover { background-color: #4f5e73 !important; }

.matrix-row-secondary .btn-clear {
    flex: 1 !important;
    background-color: #f59e0b !important;
    color: #ffffff !important;
}
.matrix-row-secondary .btn-clear:hover { background-color: #d97706 !important; }

.matrix-divider {
    width: 100%;
    border-top: 1.5px dashed #cbd5e1;
    margin: 4px 0;
}

.sidebar-actions-control-matrix .btn-icon, 
.btn-submit .btn-icon {
    width: 18px;
    height: 18px;
    margin-right: 8px;
    display: inline-block;
    vertical-align: middle;
    flex-shrink: 0;
}

.btn-submit {
    background-color: #b91c1c !important; 
    color: #ffffff !important; 
    width: 100%;
    margin-top: 0 !important; 
    box-shadow: 0 4px 12px rgba(185, 28, 28, 0.15); 
    transition: all 0.15s ease;
}
.btn-submit:hover { background-color: #991b1b !important; }
.btn-submit.all-answered { background-color: #16a34a !important; border-color: #16a34a !important; box-shadow: 0 4px 12px rgba(22, 163, 74, 0.15); }
.btn-submit.all-answered:hover { background-color: #15803d !important; }

.submit-warning-notice {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 2px 4px;
    font-size: 13px;
    font-weight: 500;
    color: #475569;
    text-align: left;
    line-height: 1.4;
}

.warning-shield-icon {
    width: 18px;
    height: 18px;
    color: #b91c1c;
    flex-shrink: 0;
    margin-top: 1px;
}


/* ==========================================================================
   8. QUESTION PALETTE GRID OVERRIDES
   ========================================================================== */
.palette-title { text-align: center; font-weight: 700; font-size: var(--text-sm); margin-bottom: 14px; padding-bottom: 10px; border-bottom: 1px dashed var(--border-color); letter-spacing: var(--tracking-wider); text-transform: uppercase; color: var(--stat-lbl-color); }
.palette-grid-wrapper { position: relative; overflow: hidden; }
.palette-grid-wrapper::after { content: ''; position: absolute; bottom: 0; left: 0; right: 0; height: 16px; background: linear-gradient(to bottom, transparent, var(--container-bg)); pointer-events: none; }

.palette-grid { 
    display: grid; 
    grid-template-columns: repeat(5, 1fr); 
    gap: 8px; 
    max-height: 74px; 
    height: auto; 
    overflow-y: auto; 
    padding: 4px; 
    justify-items: center; 
}
.palette-btn { position: relative; display: flex; align-items: center; justify-content: center; width: 34px; height: 34px; border-radius: 6px; font-family: var(--font-mono); font-weight: 700; cursor: pointer; transition: all 0.15s ease; background-color: transparent; font-size: var(--text-sm); box-sizing: border-box; }
.palette-btn.current-question { border: 2px solid var(--app-bg) !important; box-shadow: 0 0 0 2px var(--primary-accent); z-index: 10; }
.palette-btn.filtered-out { opacity: .12; pointer-events: none; transform: scale(.9); }

.palette-btn.dsp-unvisited { border: 1px solid #94a3b8; color: #64748b; }
.palette-btn.dsp-not-answered { border: 1px solid #d97706; background-color: #fef3c7; color: #b45309; }
body.dark-mode .palette-btn.dsp-not-answered { background-color: #451a03; color: #fef3c7; border-color: #b45309; }
.palette-btn.dsp-answered { border: 1px solid #16a34a; background-color: #dcfce7; color: #15803d; }
body.dark-mode .palette-btn.dsp-answered { background-color: #064e3b; color: #a7f3d0; border-color: #10b981; }
.palette-btn.dsp-wrong { border: 1px solid #dc3545; background-color: #fce8e6; color: #c5221f; }
body.dark-mode .palette-btn.dsp-wrong { background-color: #7f1d1d; color: #fca5a5; border-color: #f43f5e; }

.mini-stats {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 4px;
    margin-bottom: 8px;
}

.stat-col-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 10px 4px;
    border-radius: 6px;
    height: 50px;
    border: none !important;
    box-shadow: none !important;
}

.stat-card-lbl { font-size: var(--text-xs); color: var(--stat-lbl-color); font-weight: 700; text-transform: uppercase; margin-bottom: 2px; letter-spacing: var(--tracking-wider); }
.stat-card-val { font-family: var(--font-mono); font-size: var(--text-xl); font-weight: 800; line-height: 1; display: inline-block; }

.stat-card-right { background-color: #e6f4ea !important; }
body.dark-mode .stat-card-right { background-color: #064e3b !important; }
.stat-card-right .stat-card-val { color: #137333 !important; }
body.dark-mode .stat-card-right .stat-card-val { color: #34d399 !important; }
.stat-card-wrong { background-color: #fce8e6 !important; }
body.dark-mode .stat-card-wrong { background-color: #4c0519 !important; }
.stat-card-wrong .stat-card-val { color: #c5221f !important; }
body.dark-mode .stat-card-wrong .stat-card-val { color: #f87171 !important; }
.stat-card-score { background-color: #e8f0fe !important; }
body.dark-mode .stat-card-score { background-color: #1e3a8a !important; }
.stat-card-score .stat-card-val { color: #1a73e8 !important; }
body.dark-mode .stat-card-score .stat-card-val { color: #60a5fa !important; }

.palette-filter-wrapper { margin-top: 12px; border-top: 1px dashed var(--border-color); padding-top: 10px; display: flex; flex-direction: column; }
.filter-header-title { font-size: var(--text-xs); font-weight: 700; text-align: center; margin: 2px 0 6px; text-transform: uppercase; letter-spacing: var(--tracking-wider); color: var(--stat-lbl-color); }


/* ==========================================================================
   9. INTERSTITIAL OVERLAYS, INSTRUCTIONS & SYSTEM VERIFICATIONS
   ========================================================================== */
.modal-title { font-size: var(--text-lg); font-weight: 700; color: var(--text-color); margin-bottom: 12px; padding-bottom: 8px; border-bottom: 1px solid var(--border-color); letter-spacing: var(--tracking-tight); }
.modal-topic-title { background-color: #f0fdf4; color: #166534; border: 1px solid #bbf7d0; padding: 6px 16px; border-radius: 20px; display: inline-flex; align-items: center; justify-content: center; font-weight: 700; margin-bottom: 16px; font-size: var(--text-base); letter-spacing: var(--tracking-tight); box-shadow: 0 1px 2px rgba(0,0,0,0.02); }
body.dark-mode .modal-topic-title { background-color: #064e3b; color: #a7f3d0; border-color: #047857; }

.custom-modal-overlay { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(15, 23, 42, .85); display: none; justify-content: center; align-items: center; z-index: 6000; backdrop-filter: blur(4px); }
.custom-modal-box { background: var(--modal-bg); color: var(--modal-text); padding: 24px; border-radius: 8px; width: 95%; max-width: 500px; border: 1px solid var(--border-color); animation: slideFade .25s cubic-bezier(0.16, 1, 0.3, 1) forwards; text-align: center; box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04); }

.instructions-container { 
    text-align: center; 
    margin-bottom: 16px; 
    display: flex;
    flex-direction: column;
    align-items: center;
}
.instructions-container h3 { color: var(--text-color); border-bottom: 1px solid var(--border-color); padding-bottom: 4px; margin-top: 0; font-size: var(--text-base); font-weight: 700; }

.instructions-list {
    display: inline-block;
    text-align: left;
    padding-left: 20px;
    margin: 0 auto 16px auto;
    margin-bottom: 10px !important;
}
.instructions-list li { font-size: var(--text-sm) !important; margin-bottom: 4px !important; line-height: 1.6 !important; color: var(--text-color); }

.palette-legend {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: center !important;
    flex-wrap: wrap !important;
    gap: 10px !important; 
    padding: 6px 10px !important;
    margin: 8px 0 10px 0 !important;
    background: var(--option-bg) !important;
    border: 1px solid var(--option-border) !important;
    border-radius: 6px !important;
    width: 100%;
    box-sizing: border-box;
}

.palette-legend > div:first-child { font-size: var(--text-xs) !important; font-weight: 700 !important; text-transform: uppercase; letter-spacing: var(--tracking-wide); color: var(--stat-lbl-color); }

.legend-item { display: flex !important; flex-direction: row !important; align-items: center !important; gap: 6px !important; font-size: var(--text-xs) !important; font-weight: 600 !important; color: var(--text-color) !important; white-space: nowrap !important; }

.legend-box { width: 12px !important; height: 12px !important; border-radius: 50% !important; border: 1px solid rgba(0, 0, 0, 0.12) !important; flex-shrink: 0 !important; }

.legend-box.unvisited { background-color: #94a3b8 !important; border-color: #64748b !important; }
.legend-box.not-answered { background-color: #fef3c7 !important; border-color: #d97706 !important; }
.legend-box.answered { background-color: #dcfce7 !important; border-color: #16a34a !important; }

body.dark-mode .legend-box.unvisited { background-color: #475569 !important; border-color: #64748b !important; }
body.dark-mode .legend-box.not-answered { background-color: #451a03 !important; border-color: #b45309 !important; }
body.dark-mode .legend-box.answered { background-color: #064e3b !important; border-color: #15803d !important; }

.input-group { display: flex; flex-direction: column; align-items: center; margin-top: 10px; }

.input-label { font-size: var(--text-xs) !important; font-weight: 700 !important; margin-bottom: 8px !important; color: var(--stat-lbl-color); text-transform: uppercase; letter-spacing: var(--tracking-wide); }

.modal-input { background: var(--modal-input-bg); color: var(--text-color); width: 85%; font-family: var(--font-sans); font-size: var(--text-base) !important; padding: 10px 14px !important; border: 1px solid var(--option-border); border-radius: 6px !important; margin-bottom: 10px !important; text-align: center; font-weight: 600; }
.modal-input:focus { outline: none; border-color: var(--primary-accent); box-shadow: 0 0 0 2px rgba(37, 99, 235, 0.15); }

.modal-btn { width: 100%; padding: 12px; border-radius: 6px; font-weight: 700; color: #fff; border: 1px solid transparent; cursor: pointer; text-transform: uppercase; letter-spacing: var(--tracking-wide); font-size: var(--text-sm); }
.modal-btn-success { background: var(--color-correct); border-color: var(--color-correct); }
.modal-btn-success:hover { background-color: #15803d; }
.modal-btn-secondary { background: var(--palette-unvisited); border-color: var(--palette-unvisited); }
.modal-btn-secondary:hover { background-color: #475569; }
.modal-btn-danger { background: var(--color-danger); border-color: var(--color-danger); }
.modal-btn-danger:hover { background-color: #be123c; }
.modal-btn-row { display: flex; gap: 12px; width: 100%; }
.modal-btn-row .modal-btn { flex: 1; }

.sc-custom-alert { position: fixed; top: 20px; left: 50%; transform: translate(-50%, -20px); background: var(--color-warning); color: #fff; border: 1px solid var(--accent-yellow); padding: 10px 20px; border-radius: 6px; font-weight: 600; font-size: var(--text-sm); z-index: 9999; opacity: 0; transition: all .3s cubic-bezier(0.16, 1, 0.3, 1); display: flex; align-items: center; gap: 8px; box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1); }
.sc-custom-alert.show { opacity: 1; transform: translate(-50%, 0); }

.verify-modal-overlay { position: fixed; top: 0; left: 0; right: 0; bottom: 0; background-color: rgba(15, 23, 42, 0.85); backdrop-filter: blur(4px); z-index: 7000; display: none; justify-content: center; align-items: center; }
.verify-modal-card { background-color: var(--modal-bg); color: var(--text-color); border-radius: 8px; border: 1px solid var(--border-color); padding: 32px 24px; width: 90%; max-width: 400px; text-align: center; box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.15); }
.verify-modal-card h2 { font-size: var(--text-lg); font-weight: 700; margin-bottom: 8px; letter-spacing: var(--tracking-tight); }
.verify-modal-card p { font-size: var(--text-sm); color: var(--stat-lbl-color); margin-bottom: 24px; line-height: 1.5; }
.verify-modal-icon { width: 64px; height: 64px; border-radius: 50%; display: flex; justify-content: center; align-items: center; margin: 0 auto 16px auto; }
.verify-modal-icon.pdf-style { background-color: #eff6ff; color: #2563eb; }
body.dark-mode .verify-modal-icon.pdf-style { background-color: #1e3a8a; color: #60a5fa; }
.verify-modal-icon.yt-style { background-color: #fef2f2; color: #dc2626; }
body.dark-mode .verify-modal-icon.yt-style { background-color: #4c0519; color: #f87171; }
.verify-actions { display: flex; gap: 12px; justify-content: center; }
.v-btn { flex: 1; padding: 10px 14px; border-radius: 6px; font-weight: 700; font-size: var(--text-sm); cursor: pointer; border: 1px solid transparent; text-transform: uppercase; letter-spacing: var(--tracking-wide); transition: all 0.15s ease; }
.v-btn-outline { background: var(--timer-bg); color: var(--timer-text); border-color: var(--border-color); }
.v-btn-outline:hover { background-color: var(--border-color); }
.v-btn-pdf { background: #2563eb; color: #ffffff; }
.v-btn-pdf:hover { background-color: #1d4ed8; }
.v-btn-yt { background: #dc2626; color: #ffffff; }
.v-btn-yt:hover { background-color: #b91c1c; }

.sidebar-hints-container {
    display: flex;
    flex-direction: row !important; 
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 8px 12px;
    background: var(--option-bg);
    border: 1px dashed var(--option-border);
    border-radius: 6px;
    font-size: var(--text-xs);
    color: var(--stat-lbl-color);
    white-space: nowrap;
    margin: 10px 0;
}

.sidebar-hints-row {
    display: flex;
    align-items: left;
    gap: 4px;
}

kbd { background: var(--app-bg); border: 1px solid var(--option-border); border-radius: 4px; padding: 2px 6px; font-family: var(--font-mono); font-weight: 700; color: var(--text-color); box-shadow: 0 1px 0px rgba(0,0,0,0.1); font-size: var(--text-xs); }
@keyframes operationalHintPulse { 0%, 100% { opacity: 0.85; } 50% { opacity: 1; } }


/* ==========================================================================
   10. POST-LOGIN LIVE FETCHING ANIMATION
   ========================================================================== */
#quiz-loading-overlay {
    min-height: 350px;
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.03);
}

.fetch-spinner {
    width: 44px;
    height: 44px;
    border: 4px solid var(--border-color);
    border-top-color: var(--primary-accent);
    border-radius: 50%;
    animation: spinQuizLoader 0.8s linear infinite;
}

@keyframes spinQuizLoader {
    to { transform: rotate(360deg); }
}


/* ==========================================================================
   11. EVALUATION SCORECARD DASHBOARD VIEW
   ========================================================================== */
#result-screen { display: none; width: 100%; box-sizing: border-box; }
.target-result-outer-container { background: var(--rs-bg-outer); padding: 16px; border-radius: 12px; max-width: 1120px; margin: 0 auto; display: flex; flex-direction: column; gap: 16px; border: 1px solid var(--border-color); }
.rs-panel-card { background: var(--rs-bg-card); border: 1px solid var(--border-color); border-radius: 8px; padding: 20px; box-shadow: 0 1px 3px rgba(0,0,0,0.02); overflow: hidden; }
.rs-panel-card.rs-variant-shade { background: var(--rs-bg-alt-card); }

.rs-top-summary-banner { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 16px; }
.rs-banner-left-brand { display: flex; align-items: center; gap: 14px; }
.rs-trophy-circle-badge { width: 48px; height: 48px; background: var(--badge-pass-bg); border-radius: 50%; display: flex; align-items: center; justify-content: center; color: var(--badge-pass-text); }
.rs-banner-message-block h2 { margin: 0 0 2px 0; font-size: var(--text-xl); font-weight: 800; letter-spacing: var(--tracking-tight); }

.rs-banner-timestamp-box { display: flex; flex-direction: column; gap: 4px; background: var(--table-sum-row-bg); border: 1px solid var(--border-color); padding: 8px 14px; border-radius: 6px; font-family: var(--font-mono); font-size: var(--text-xs); font-weight: 600; color: var(--stat-lbl-color); }
.rs-banner-timestamp-box div { display: flex; align-items: center; gap: 6px; justify-content: center; }

.rs-stats-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 12px; background: var(--rs-bg-card); padding: 14px; border-radius: 8px; border: 1px solid var(--border-color); }
.rs-quad-stat-item { border: 1px solid var(--border-color); border-radius: 6px; padding: 10px 12px; display: flex; align-items: center; gap: 10px; }
.rs-card-blue { background: var(--rs-card-blue-bg); border-color: var(--rs-card-blue-border); }
.rs-card-purple { background: var(--rs-card-purple-bg); border-color: var(--rs-card-purple-border); }
.rs-card-green { background: var(--rs-card-green-bg); border-color: var(--rs-card-green-border); }
.rs-card-red { background: var(--rs-card-red-bg); border-color: var(--rs-card-red-border); }
.rs-card-amber { background: var(--rs-card-amber-bg); border-color: var(--rs-card-amber-border); }

.rs-quad-icon-wrap { width: 36px; height: 36px; border-radius: 50%; display: flex; align-items: center; justify-content: center; background: var(--rs-bg-card); border: 1px solid var(--border-color); flex-shrink: 0; }
.rs-quad-info-stack { display: flex; flex-direction: column; gap: 1px; justify-content: center; overflow: hidden; }
.rs-quad-lbl { font-size: var(--text-xs); font-weight: 700; color: var(--text-color); text-transform: uppercase; letter-spacing: var(--tracking-wide); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; opacity: 0.75; }
.rs-quad-val { font-family: var(--font-mono); font-size: var(--text-xl); font-weight: 800; line-height: 1.1; }

.rs-card-blue .rs-quad-val { color: var(--rs-card-blue-text); }
.rs-card-purple .rs-quad-val { color: var(--rs-card-purple-text); }
.rs-card-green .rs-quad-val { color: var(--rs-card-green-text); }
.rs-card-red .rs-quad-val { color: var(--rs-card-red-text); }
.rs-card-amber .rs-quad-val { color: var(--rs-card-amber-text); }

.rs-overview-quick-split-row { display: grid; grid-template-columns: 1.1fr .9fr; gap: 16px; }
.rs-card-header-title { font-size: var(--text-sm); font-weight: 700; text-transform: uppercase; letter-spacing: var(--tracking-wider); color: var(--stat-lbl-color); display: flex; align-items: center; gap: 8px; margin-bottom: 16px; border-bottom: 1px dashed var(--border-color); padding-bottom: 8px; }

.rs-radial-flex-wrapper { display: flex; align-items: center; justify-content: space-around; gap: 16px; }
.rs-svg-radial-container { position: relative; width: 110px; height: 110px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.target-svg-ring { transform: rotate(-90deg); width: 100%; height: 100%; }
.target-ring-bg { fill: none; stroke: var(--border-color); stroke-width: 8; }
.target-ring-fill { fill: none; stroke: var(--primary-color); stroke-width: 8; stroke-dasharray: 282.74; stroke-dashoffset: 282.74; transition: stroke-dashoffset .6s ease, stroke .6s ease; stroke-linecap: round; }

.target-circle-center-text { position: absolute; display: flex; flex-direction: column; align-items: center; }
.target-circle-pct { font-family: var(--font-mono); font-size: var(--text-xl); font-weight: 800; line-height: 1; }

.rs-radial-legend-stack { display: flex; flex-direction: column; gap: 10px; flex-grow: 1; }
.rs-legend-row-item { display: flex; justify-content: space-between; font-size: var(--text-xs); font-weight: 600; padding-bottom: 2px; border-bottom: 1px dashed var(--border-color); }
.rs-legend-lbl-side { display: flex; align-items: center; gap: 6px; color: var(--stat-lbl-color); }
.rs-legend-color-dot { width: 8px; height: 8px; border-radius: 50%; }

.rs-quick-info-table-list { display: flex; flex-direction: column; gap: 8px; }
.rs-quick-row-entry { display: flex; justify-content: space-between; padding: 8px 0; border-bottom: 1px solid var(--border-color); font-size: var(--text-sm); font-weight: 600; }
.rs-quick-key-side { display: flex; align-items: center; gap: 8px; color: var(--stat-lbl-color); }

.matrix-section-container { margin-top: 0; background: transparent; border: none; padding: 0; }
.table-responsive-box { width: 100%; overflow-x: auto; border: 1px solid var(--border-color); border-radius: 6px; }
.summary-matrix-table { width: 100%; border-collapse: collapse; text-align: left; font-size: var(--text-sm); min-width: 600px; background: var(--rs-bg-card); }
.summary-matrix-table th { background: var(--table-header-bg); color: #fff; padding: 10px 14px; font-weight: 700; text-transform: uppercase; font-size: var(--text-xs); letter-spacing: var(--tracking-wider); text-align: center; }
.summary-matrix-table td { padding: 10px 14px; border-bottom: 1px solid var(--border-color); font-weight: 600; text-align: center; color: var(--text-color); }
.summary-matrix-table tr.total-sum-row td { font-weight: 800; border-top: 2px solid var(--border-color); background: var(--table-sum-row-bg); }
.badge-pct-pill { font-family: var(--font-mono); padding: 2px 8px; border-radius: 4px; font-weight: 700; font-size: var(--text-xs); box-shadow: 0 1px 2px rgba(0, 0, 0, .02); }

.rs-signature-footer { text-align: center; font-size: var(--text-xs); font-weight: 600; opacity: .7; padding: 8px 0; border-top: 1px dashed var(--border-color); margin-top: 12px; letter-spacing: var(--tracking-wide); color: var(--stat-lbl-color); }

.dashboard-action-wrapper { display: grid; grid-template-columns: repeat(3, 1fr); margin: 16px 0; gap: 12px; }
.dashboard-action-wrapper button { width: 100%; height: 44px; display: inline-flex; align-items: center; justify-content: center; font-size: var(--text-sm) !important; font-weight: 700; border-radius: 6px; text-transform: uppercase; letter-spacing: var(--tracking-wide); transition: all 0.15s ease; }
.action-outline-btn { background: var(--rs-btn-soft-fill); color: var(--text-color); border: 1px solid var(--border-color); }
.action-outline-btn:hover { background-color: var(--border-color); }
.action-accent-btn { background: var(--primary-accent); color: #fff; justify-content: center; border: 1px solid transparent; cursor: pointer; }
.action-accent-btn:hover { background-color: #1d4ed8; }

.rs-mobile-summary-table { display: none; width: 100%; border-collapse: collapse; margin-top: 12px; background: var(--rs-bg-card); border-radius: 6px; border: 1px solid var(--border-color); }
.rs-mobile-summary-table th, .rs-mobile-summary-table td { padding: 10px 14px; text-align: left; border-bottom: 1px solid var(--border-color); font-size: var(--text-sm); color: var(--text-color); }
.rs-mobile-summary-table th { background: var(--table-sum-row-bg); font-weight: 700; text-transform: uppercase; font-size: var(--text-xs); letter-spacing: var(--tracking-wider); color: var(--stat-lbl-color); }
.rs-mobile-summary-table td:last-child { font-family: var(--font-mono); font-weight: 700; text-align: right; }

/* Global Additions for Core Requirements */
@keyframes subtlePulse {
    0% { transform: scale(1); }
    50% { transform: scale(1.025); }
    100% { transform: scale(1); }
}

#btn-dashboard-main-trigger {
    animation: subtlePulse 2.0s infinite ease-in-out;
}

.action-outline-btn[onclick*="download"] {
    background-color: #f1f5f9 !important;
    color: #0f172a !important;
    border-color: #cbd5e1 !important;
}

body.dark-mode .action-outline-btn[onclick*="download"] {
    background-color: #374151 !important;
    color: #f3f4f6 !important;
    border-color: #4b5563 !important;
}


/* ==========================================================================
   12. PERMANENT SYSTEM BOUNDARY FOOTER
   ========================================================================== */
.fixed-site-footer {
    position: fixed; bottom: 0; left: 0; width: 100%;
    background-color: #030712; color: #ffffff;
    display: flex; justify-content: space-between; align-items: center;
    padding: 10px 24px; font-size: var(--text-xs); z-index: 5500;
    border-top: 1px solid rgba(255, 255, 255, 0.06);
    box-sizing: border-box; letter-spacing: var(--tracking-wide);
    font-weight: 500;
}
.fixed-site-footer .footer-right-links a { color: #ffffff; text-decoration: none; margin-left: 20px; opacity: 0.8; transition: all 0.15s ease; }
.fixed-site-footer .footer-right-links a:hover { opacity: 1; color: var(--primary-accent); }


/* ==========================================================================
   13. PLATFORM RESPONSIVE VIEWPORT BREAKPOINTS & HUD REDIRECTIONS
   ========================================================================== */
@media (max-width: 991px) {
    .main-wrapper { flex-direction: column; gap: 16px; }
    .cbt-container, .palette-container { flex: none; width: 100%; }
    
    .palette-container {
        display: flex !important;
        flex-direction: column !important;
    }
    .sidebar-actions-control-matrix {
        order: -1 !important;
        margin-top: 0 !important;
        margin-bottom: 16px !important;
        padding-top: 0 !important;
        padding-bottom: 16px !important;
        border-top: none !important;
        border-bottom: 1.5px dashed var(--border-color) !important;
    }
    .palette-title { order: 1 !important; }
    .mini-stats { order: 2 !important; }
    .palette-grid-wrapper { order: 3 !important; }
    .palette-filter-wrapper { order: 4 !important; }

    .rs-overview-quick-split-row { grid-template-columns: 1fr; }
    .rs-stats-grid { grid-template-columns: repeat(3, 1fr); }
}

@media (max-width: 850px) {
    .unified-workspace-header { padding: 8px 12px; gap: 8px; background-color: #030712; border-bottom: none; }
    .chapter-capsule, .hide-on-mobile, .nav-right-hud { display: none !important; }
    
    .unified-nav {
        flex-direction: column !important;
        position: relative !important;
    }
    
    .unified-nav .nav-right-hud {
        display: flex !important;
        position: relative !important;
        width: 100% !important;
        box-sizing: border-box !important;
        padding: 8px 12px !important;
        background: #1e293b !important;
        border-radius: 0 0 6px 6px !important;
        border-top: 1px solid rgba(255, 255, 255, 0.08) !important;
        margin: 0 !important;
    }

    .unified-nav .nav-right-hud .timer,
    .unified-nav .nav-right-hud .desktop-eyes {
        display: none !important;
    }

    .filter-slider-wrapper {
        position: relative !important;
        top: auto !important;
        right: auto !important;
        width: 100% !important;
        height: 36px !important;
        background: rgba(255, 255, 255, 0.04) !important;
        border: 1px solid rgba(255, 255, 255, 0.1) !important;
        border-radius: 6px !important;
        padding: 0 12px !important;
        display: flex !important;
        align-items: center !important;
        justify-content: space-between !important;
    }

    .filter-slider-heading {
        width: 100% !important;
        display: flex !important;
        justify-content: space-between !important;
        align-items: center !important;
    }

    .filter-slider-heading span:first-child {
        font-size: var(--text-xs) !important;
        color: #e2e8f0 !important;
    }
    
    .filter-slider-heading span:first-child::before {
        content: "🔍 " !important;
    }

    .slider-toggle-indicator {
        display: inline-block !important;
        font-size: 10px !important;
        color: var(--accent-yellow) !important;
    }

    .filter-slider-wrapper .interactive-legend {
        top: calc(100% + 4px) !important;
        right: 0 !important;
        left: 0 !important;
        width: 100% !important;
        flex-direction: column !important;
        gap: 6px !important;
        background: #0f172a !important;
        box-shadow: 0 10px 20px rgba(0, 0, 0, 0.4) !important;
        box-sizing: border-box !important;
    }

    .mobile-timer-wrapper { display: flex; align-items: center; margin-left: auto; padding-right: 4px; }
    .mobile-timer-wrapper .timer { background: #1e293b !important; color: #f8fafc !important; border: 1px solid #334155 !important; font-family: var(--font-mono) !important; font-size: var(--text-sm) !important; font-weight: 700 !important; padding: 4px 10px !important; border-radius: 6px !important; }

    .header-left-group { gap: 8px; width: 100%; }
    .header-right-group { gap: 8px; justify-content: flex-end; flex-grow: 1; }

    .app-btn, .back-btn { font-size: 0 !important; padding: 0; width: 36px; height: 36px; border-radius: 6px; gap: 0; justify-content: center; align-items: center; background-color: rgba(255, 255, 255, 0.08); border: 1px solid rgba(255, 255, 255, 0.1); }
    .app-btn svg, .back-btn svg { width: 16px; height: 16px; }
    .app-btn-yt { background-color: #dc2626 !important; border: none; }
    
    .question-text { font-size: 1.05rem !important; }
    .q-tag-capsule { font-size: var(--text-xs) !important; padding: 2px 8px !important; }
}

@media (max-width: 768px) {
    body { padding: 8px 8px 100px 8px; }
    .sc-widget-container { padding: 12px; }
    
    .nav-full, .btn-text-full { display: none; }
    .nav-short, .btn-text-short { display: inline; }
    
    .content { padding: 16px 12px !important; }
    .content-header { flex-direction: column; align-items: flex-start; gap: 6px; }
    .content-header .inline-shortcuts-style { max-width: 100%; width: 100%; }

    .question-text { font-size: 1.05rem !important; line-height: 1.45 !important; }
    .palette-container { padding-bottom: 80px; }

    .options label { padding: 6px 10px; min-height: 34px; font-size: 0.875rem !important; }

    .palette-btn { width: 30px; height: 30px; font-size: var(--text-sm); }
    .palette-grid { gap: 4px; }

    .unified-nav { flex-direction: column; border-bottom: none; }
    .year-nav-mobile-header { display: flex; justify-content: space-between; align-items: center; padding: 6px 10px; border-radius: 6px; border-bottom: 3px solid var(--accent-yellow); background-color: var(--nav-bg); }
    .year-nav-bar { display: none; flex-direction: column; width: 100%; border-radius: 0 0 6px 6px; background-color: var(--nav-bg); }
    .year-nav-bar.show-year-menu { display: flex; }
    .year-tab { text-align: left; padding: 12px 16px; border-bottom: 1px solid rgba(255, 255, 255, .05); align-items: flex-start; }
    .year-tab.active { border-left: 3px solid var(--accent-yellow); border-bottom-color: transparent; background: rgba(255, 255, 255, .05); }

    .custom-modal-box { padding: 20px 16px; }
    .target-result-outer-container { padding: 6px; gap: 10px; }
    
    /* Order elements inside scorecard frame relative to top-level layout */
    .rs-panel-card { padding: 14px; border-radius: 8px; order: 1 !important; }
    .rs-top-summary-banner { flex-direction: column; text-align: center; gap: 10px; }
    .rs-banner-left-brand { flex-direction: column; gap: 6px; }
    .rs-banner-timestamp-box { display: flex; flex-direction: row; align-items: center; gap: 16px; padding: 8px 14px; border-radius: 6px; }

    /* Hiding the requested upper circular/metric score elements on Mobile view */
    .rs-stats-grid { display: none !important; }
    .rs-overview-quick-split-row { grid-template-columns: 1fr; display: grid; order: 2 !important; }
    .rs-overview-quick-split-row > .rs-panel-card:first-child { display: none !important; }
    
    .matrix-section-container, .rs-card-header-title { display: none !important; }
    .rs-mobile-summary-table { display: table; }

    /* Exposing layout variables to break the Proceed button out to the absolute top view */
    .dashboard-action-wrapper { display: contents !important; }
    .dashboard-action-wrapper button { height: 40px; }
    
    /* Positioning layout definitions */
    #btn-dashboard-main-trigger { order: -5 !important; margin: 4px 0 12px 0 !important; }
    .action-outline-btn { order: 3 !important; margin: 4px 0 !important; }

    .fixed-site-footer { flex-direction: column; gap: 6px; text-align: center; padding: 12px; }
    .fixed-site-footer .footer-right-links a { margin: 0 8px; }
    .sc-hamburger { display: flex; background: rgba(255, 255, 255, 0.08); color: #fff; width: 32px; height: 32px; border-radius: 6px; align-items: center; justify-content: center; font-size: 16px; cursor: pointer; border: 1px solid rgba(255, 255, 255, 0.15); }
}

@media (max-width: 480px) {
    .mobile-timer-wrapper .timer { font-size: var(--text-xs) !important; padding: 2px 6px !important; }
}


/* ==========================================================================
   14. TACTILE CLICK MICRO-INTERACTIONS (ALL BUTTON TYPES)
   ========================================================================== */
button:active:not(:disabled),
.back-btn:active:not(:disabled),
.app-btn:active:not(:disabled),
.modal-btn:active:not(:disabled),
.palette-btn:active:not(:disabled),
.action-outline-btn:active:not(:disabled),
.action-accent-btn:active:not(:disabled),
.btn-submit:active:not(:disabled) {
    transform: translateY(1px) scale(0.97) !important;
    filter: brightness(0.92);
}

button, 
.back-btn, 
.app-btn, 
.modal-btn, 
.palette-btn, 
.action-outline-btn, 
.action-accent-btn,
.btn-submit {
    transition: transform 0.08s cubic-bezier(0.25, 0.46, 0.45, 0.94), 
                background-color 0.15s ease, 
                box-shadow 0.15s ease,
                border-color 0.15s ease !important;
}
