/* ============================================
   MATERIAL DESIGN 3 - QUICKCPSTEST
   Clean, Accessible, SEO-Friendly Layout
   ============================================ */

/* ===== RESET & BASE ===== */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

html, body {
    overflow-x: hidden;
    max-width: 100%;
    width: 100%;
}

/* ===== MATERIAL-STYLE COLOR SYSTEM (WCAG Compliant) ===== */
:root {
    /* Primary Colors - Google Blue */
    --md-primary: #1A73E8;           /* Main brand color */
    --md-primary-dark: #1557B0;      /* Darker shade for hover */
    --md-primary-light: #4285F4;     /* Lighter shade */
    --md-primary-container: #E8F0FE; /* Light background */
    --md-primary-hover: #1967D2;     /* Hover state */
    
    /* Secondary Colors - Google Orange */
    --md-secondary: #E37400;         /* Accent color */
    --md-secondary-dark: #C56000;    /* Darker shade for hover */
    --md-secondary-light: #F29900;   /* Lighter shade */
    --md-secondary-container: #FEF7E0; /* Light background */
    --md-secondary-hover: #D06900;   /* Hover state */
    
    /* Success, Warning, Error */
    --md-success: #1E8E3E;           /* Green - WCAG compliant */
    --md-success-light: #E6F4EA;
    --md-warning: #F9AB00;           /* Yellow - WCAG compliant */
    --md-warning-light: #FEF7E0;
    --md-error: #D93025;             /* Red - WCAG compliant */
    --md-error-light: #FCE8E6;
    
    /* Background Colors */
    --md-background: #FFFFFF;        /* Main background */
    --md-surface: #FFFFFF;           /* Card/surface background */
    --md-surface-variant: #F8F9FA;   /* Subtle variant */
    --md-surface-container: #F1F3F4; /* Container background */
    
    /* Text Colors (WCAG AA Compliant) */
    --md-text-primary: #202124;      /* Primary text - 15.3:1 contrast */
    --md-text-secondary: #5F6368;    /* Secondary text - 7.0:1 contrast */
    --md-text-disabled: #80868B;     /* Disabled text - 4.6:1 contrast */
    --md-text-on-primary: #FFFFFF;   /* Text on primary color */
    --md-text-on-secondary: #FFFFFF; /* Text on secondary color */
    
    /* Legacy aliases for compatibility */
    --md-on-surface: #202124;
    --md-on-surface-variant: #5F6368;
    --md-on-surface-disabled: #80868B;
    --md-on-primary: #FFFFFF;
    
    /* Backwards compatibility aliases for old variable names */
    --white: var(--md-surface);
    --primary: var(--md-primary);
    --primary-dark: var(--md-primary-dark);
    --primary-light: var(--md-primary-light);
    --secondary: var(--md-secondary);
    --success: var(--md-success);
    --warning: var(--md-warning);
    --danger: var(--md-error);
    --dark: var(--md-text-primary);
    --dark-light: #334155;
    --light: var(--md-surface-container);
    --text: var(--md-text-primary);
    --text-light: var(--md-text-secondary);
    --border: var(--md-outline);
    --shadow: rgba(0, 0, 0, 0.1);
    --shadow-lg: rgba(0, 0, 0, 0.2);
    
    /* Border & Divider */
    --md-outline: #DADCE0;           /* Standard border */
    --md-outline-variant: #E8EAED;   /* Subtle border */
    --md-divider: #E8EAED;           /* Divider lines */
    
    /* Interactive States */
    --md-hover-overlay: rgba(26, 115, 232, 0.04);
    --md-focus-overlay: rgba(26, 115, 232, 0.12);
    --md-pressed-overlay: rgba(26, 115, 232, 0.16);
    --md-selected-overlay: rgba(26, 115, 232, 0.08);
    
    /* Elevation Shadows (Material Design) */
    --md-elevation-1: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);
    --md-elevation-2: 0 3px 6px rgba(0, 0, 0, 0.15), 0 2px 4px rgba(0, 0, 0, 0.12);
    --md-elevation-3: 0 10px 20px rgba(0, 0, 0, 0.15), 0 3px 6px rgba(0, 0, 0, 0.10);
    --md-elevation-4: 0 15px 25px rgba(0, 0, 0, 0.15), 0 5px 10px rgba(0, 0, 0, 0.05);
    
    /* Typography Scale (rem-based, 16px = 1rem) */
    --md-display-large: 3.5rem;    /* 56px */
    --md-display-medium: 2.75rem;  /* 44px */
    --md-display-small: 2.25rem;   /* 36px */
    --md-headline-large: 2rem;     /* 32px */
    --md-headline-medium: 1.75rem; /* 28px */
    --md-headline-small: 1.5rem;   /* 24px */
    --md-title-large: 1.375rem;    /* 22px */
    --md-title-medium: 1rem;       /* 16px */
    --md-title-small: 0.875rem;    /* 14px */
    --md-body-large: 1rem;         /* 16px */
    --md-body-medium: 0.875rem;    /* 14px */
    --md-body-small: 0.75rem;      /* 12px */
    --md-label-large: 0.875rem;    /* 14px */
    --md-label-medium: 0.75rem;    /* 12px */
    --md-label-small: 0.6875rem;   /* 11px */
    
    /* Material Design Spacing (8dp grid, rem-based) */
    /* 8px Grid System - All spacing in multiples of 8px */
    --md-spacing-1: 0.5rem;   /* 8px - 1x base unit */
    --md-spacing-2: 1rem;     /* 16px - 2x */
    --md-spacing-3: 1.5rem;   /* 24px - 3x */
    --md-spacing-4: 2rem;     /* 32px - 4x */
    --md-spacing-5: 2.5rem;   /* 40px - 5x */
    --md-spacing-6: 3rem;     /* 48px - 6x */
    --md-spacing-8: 4rem;     /* 64px - 8x */
    --md-spacing-10: 5rem;    /* 80px - 10x */
    --md-spacing-12: 6rem;    /* 96px - 12x */
    --md-spacing-16: 8rem;    /* 128px - 16x */
    --md-spacing-20: 10rem;   /* 160px - 20x */
    
    /* Touch Target Minimum (WCAG 2.5.5) */
    --md-touch-target: 2.75rem; /* 44px minimum */
    
    /* Border Radius (rem-based) */
    --md-radius-extra-small: 0.25rem;  /* 4px */
    --md-radius-small: 0.5rem;         /* 8px */
    --md-radius-medium: 0.75rem;       /* 12px */
    --md-radius-large: 1rem;           /* 16px */
    --md-radius-extra-large: 1.75rem;  /* 28px */
    --md-radius-full: 624.9375rem;     /* 9999px */
    
    /* Transitions */
    --md-transition-short: 150ms cubic-bezier(0.4, 0, 0.2, 1);
    --md-transition-medium: 250ms cubic-bezier(0.4, 0, 0.2, 1);
    --md-transition-long: 350ms cubic-bezier(0.4, 0, 0.2, 1);
}

/* ===== GOOGLE-RECOMMENDED TYPOGRAPHY ===== */
body {
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Helvetica Neue', Arial, sans-serif;
    font-size: 1rem; /* 16px base */
    line-height: 1.5;
    color: var(--md-text-primary);
    background: var(--md-background);
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    font-weight: 400;
    overflow-x: hidden;
    max-width: 100vw;
}

/* Headings use Montserrat */
h1, h2, h3, h4, h5, h6,
.hero h1,
.info-card h3,
.article-content h2,
.article-content h3,
.history-section h3 {
    font-family: 'Montserrat', 'Inter', sans-serif;
    line-height: 1.2;
    font-weight: 600;
    margin: 0;
    color: var(--md-text-primary);
}

/* Heading Hierarchy */
h1 {
    font-size: 3.5rem; /* 56px */
    font-weight: 700;
    letter-spacing: -0.02em;
}

h2 {
    font-size: 2.5rem; /* 40px */
    font-weight: 700;
    letter-spacing: -0.01em;
}

h3 {
    font-size: 1.75rem; /* 28px */
    font-weight: 600;
}

h4 {
    font-size: 1.5rem; /* 24px */
    font-weight: 600;
}

h5 {
    font-size: 1.25rem; /* 20px */
    font-weight: 600;
}

h6 {
    font-size: 1.125rem; /* 18px */
    font-weight: 600;
}

/* Body Text */
p {
    font-size: 1rem; /* 16px */
    line-height: 1.5;
    margin: 0 0 1rem 0;
}

/* Labels and Small Text */
label,
.label,
.stat-label,
.history-col {
    font-size: 0.875rem; /* 14px */
    line-height: 1.4;
}

small,
.small-text {
    font-size: 0.75rem; /* 12px */
    line-height: 1.4;
}

/* Typography Classes */
.md-display-large { font-size: var(--md-display-large); font-weight: 400; line-height: 1.12; letter-spacing: -0.25px; }
.md-display-medium { font-size: var(--md-display-medium); font-weight: 400; line-height: 1.16; }
.md-display-small { font-size: var(--md-display-small); font-weight: 400; line-height: 1.22; }
.md-headline-large { font-size: var(--md-headline-large); font-weight: 400; line-height: 1.25; }
.md-headline-medium { font-size: var(--md-headline-medium); font-weight: 400; line-height: 1.29; }
.md-headline-small { font-size: var(--md-headline-small); font-weight: 400; line-height: 1.33; }
.md-title-large { font-size: var(--md-title-large); font-weight: 500; line-height: 1.27; }
.md-title-medium { font-size: var(--md-title-medium); font-weight: 500; line-height: 1.5; letter-spacing: 0.15px; }
.md-title-small { font-size: var(--md-title-small); font-weight: 500; line-height: 1.43; letter-spacing: 0.1px; }
.md-body-large { font-size: var(--md-body-large); font-weight: 400; line-height: 1.5; letter-spacing: 0.5px; }
.md-body-medium { font-size: var(--md-body-medium); font-weight: 400; line-height: 1.43; letter-spacing: 0.25px; }
.md-body-small { font-size: var(--md-body-small); font-weight: 400; line-height: 1.33; letter-spacing: 0.4px; }
.md-label-large { font-size: var(--md-label-large); font-weight: 500; line-height: 1.43; letter-spacing: 0.1px; }
.md-label-medium { font-size: var(--md-label-medium); font-weight: 500; line-height: 1.33; letter-spacing: 0.5px; }
.md-label-small { font-size: var(--md-label-small); font-weight: 500; line-height: 1.45; letter-spacing: 0.5px; }

/* ===== MATERIAL COMPONENTS ===== */

/* Container */
.container {
    width: 100%;
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 var(--md-spacing-4);
    box-sizing: border-box;
}

/* Material Card */
.md-card {
    background: var(--md-surface);
    border-radius: var(--md-radius-large);
    box-shadow: var(--md-elevation-1);
    transition: box-shadow var(--md-transition-medium);
}

.md-card:hover {
    box-shadow: var(--md-elevation-2);
}

.md-card-elevated {
    box-shadow: var(--md-elevation-2);
}

.md-card-elevated:hover {
    box-shadow: var(--md-elevation-3);
}

/* Material Button */
.md-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--md-spacing-2);
    padding: var(--md-spacing-2) var(--md-spacing-6);
    min-height: var(--md-touch-target); /* 44px minimum */
    border: none;
    border-radius: var(--md-radius-medium); /* 6px rounded corners */
    font-family: inherit;
    font-size: var(--md-label-large);
    font-weight: 500;
    letter-spacing: 0.1px;
    text-transform: none;
    cursor: pointer;
    transition: all 0.2s ease-in-out; /* Smooth, responsive transitions */
    position: relative;
    overflow: hidden;
}

.md-button-filled {
    background: var(--md-primary);
    color: var(--md-text-on-primary);
    box-shadow: 0 2px 4px rgba(26, 115, 232, 0.2);
    transform: translateY(0);
}

.md-button-filled:hover {
    background: var(--md-primary-hover);
    box-shadow: 0 4px 8px rgba(26, 115, 232, 0.3);
    transform: translateY(-2px);
}

.md-button-filled:active {
    background: var(--md-primary-dark);
    box-shadow: 0 1px 2px rgba(26, 115, 232, 0.2);
    transform: translateY(0);
}

.md-button-filled:focus-visible {
    outline: 2px solid var(--md-primary);
    outline-offset: 2px;
}

.md-button-outlined {
    background: transparent;
    color: var(--md-primary);
    border: 1.5px solid var(--md-primary);
    transform: translateY(0);
}

.md-button-outlined:hover {
    background: var(--md-hover-overlay);
    border-color: var(--md-primary-hover);
    box-shadow: 0 2px 4px rgba(26, 115, 232, 0.15);
    transform: translateY(-1px);
}

.md-button-outlined:active {
    background: var(--md-pressed-overlay);
    transform: translateY(0);
}

.md-button-outlined:focus-visible {
    outline: 2px solid var(--md-primary);
    outline-offset: 2px;
}

.md-button-text {
    background: transparent;
    color: var(--md-primary);
    padding: var(--md-spacing-2) var(--md-spacing-3);
}

.md-button-text:hover {
    background: var(--md-hover-overlay);
    color: var(--md-primary-hover);
}

.md-button-text:active {
    background: var(--md-pressed-overlay);
}

.md-button-text:focus-visible {
    outline: 2px solid var(--md-primary);
    outline-offset: 2px;
}

/* Secondary Button (Orange Accent) */
.md-button-secondary {
    background: var(--md-secondary);
    color: var(--md-text-on-secondary);
    box-shadow: 0 2px 4px rgba(227, 116, 0, 0.2);
    transform: translateY(0);
}

.md-button-secondary:hover {
    background: var(--md-secondary-hover);
    box-shadow: 0 4px 8px rgba(227, 116, 0, 0.3);
    transform: translateY(-2px);
}

.md-button-secondary:active {
    background: var(--md-secondary-dark);
    box-shadow: 0 1px 2px rgba(227, 116, 0, 0.2);
    transform: translateY(0);
}

.md-button-secondary:focus-visible {
    outline: 2px solid var(--md-secondary);
    outline-offset: 2px;
}

/* Material FAB (Floating Action Button) */
.md-fab {
    width: 56px;
    height: 56px;
    border-radius: var(--md-radius-large); /* 8px rounded corners */
    background: var(--md-primary);
    color: var(--md-on-primary);
    border: none;
    box-shadow: 0 4px 12px rgba(26, 115, 232, 0.3);
    cursor: pointer;
    transition: all 0.2s ease-in-out;
    transform: translateY(0) scale(1);
}

.md-fab:hover {
    box-shadow: 0 6px 20px rgba(26, 115, 232, 0.4);
    transform: translateY(-2px) scale(1.05);
}

.md-fab:active {
    box-shadow: 0 2px 8px rgba(26, 115, 232, 0.3);
    transform: translateY(0) scale(0.95);
}

.md-fab:focus-visible {
    outline: 3px solid var(--md-primary-light);
    outline-offset: 3px;
}

/* ===== NAVBAR (Material Top App Bar) ===== */
.navbar {
    background: var(--md-surface);
    box-shadow: var(--md-elevation-2);
    position: sticky;
    top: 0;
    z-index: 1000;
    width: 100%;
    max-width: 100%;
}

.nav-container {
    width: 100%;
    max-width: 100%;
    padding: var(--md-spacing-4) var(--md-spacing-6);
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: var(--md-spacing-6);
    box-sizing: border-box;
    position: relative;
    z-index: 1000;
}

.logo {
    display: flex;
    align-items: center;
    gap: var(--md-spacing-2);
    font-family: 'Montserrat', 'Inter', sans-serif;
    font-size: var(--md-title-large);
    font-weight: 700;
    color: var(--md-primary);
    text-decoration: none;
    transition: opacity var(--md-transition-short);
}

.logo:hover {
    opacity: 0.8;
}

.logo-icon {
    font-size: var(--md-headline-medium);
    display: flex;
    align-items: center;
    line-height: 1;
}

.logo-icon img {
    width: 1.75rem; /* 28px - matches headline-medium size */
    height: 1.75rem;
    display: block;
    object-fit: contain;
    flex-shrink: 0;
}

/* Navigation Menu */
.nav-menu {
    display: flex;
    list-style: none;
    gap: var(--md-spacing-1);
    align-items: center;
    flex-wrap: wrap;
    min-width: 0;
    position: relative;
    z-index: 1001;
}

.nav-menu li {
    position: relative;
    z-index: 1002;
}

.nav-menu li.dropdown {
    z-index: 1003;
}

.nav-menu li a {
    display: flex;
    align-items: center;
    padding: var(--md-spacing-2) var(--md-spacing-4);
    color: var(--md-text-primary);
    text-decoration: none;
    border-radius: var(--md-radius-medium); /* 6px rounded corners */
    font-size: var(--md-label-large);
    font-weight: 500;
    transition: all 0.2s ease-in-out;
    position: relative;
    white-space: nowrap;
    flex-shrink: 0;
}

.nav-menu li a:hover {
    background: var(--md-hover-overlay);
    color: var(--md-primary);
    transform: translateY(-1px);
}

.nav-menu li a:active {
    background: var(--md-pressed-overlay);
    transform: translateY(0);
}

.nav-menu li a:focus-visible {
    outline: 2px solid var(--md-primary);
    outline-offset: 2px;
}

/* Burger Menu Toggle */
.menu-toggle {
    display: none;
    flex-direction: column;
    gap: 4px;
    background: none;
    border: none;
    cursor: pointer;
    width: 30px;
    height: 30px;
    justify-content: center;
    align-items: center;
    position: relative;
    z-index: 1002;
}

.menu-toggle span {
    display: block;
    width: 24px;
    height: 2px;
    background: var(--md-text-primary);
    transition: all var(--md-transition-medium);
    border-radius: 2px;
}

.menu-toggle.active span:nth-child(1) {
    transform: rotate(45deg) translate(5px, 5px);
}

.menu-toggle.active span:nth-child(2) {
    opacity: 0;
}

.menu-toggle.active span:nth-child(3) {
    transform: rotate(-45deg) translate(7px, -7px);
}

/* Mobile Menu Wrapper - Hidden on desktop */
.nav-menu-wrapper {
    position: fixed;
    top: 0;
    right: -100%;
    width: 300px;
    height: 100vh;
    background: var(--md-surface);
    box-shadow: var(--md-elevation-4);
    z-index: 1001;
    transition: right var(--md-transition-long);
    overflow-y: auto;
    display: none; /* Hidden on desktop */
    flex-direction: column;
}

.nav-menu-wrapper.active {
    right: 0;
}

.nav-menu-header {
    padding: var(--md-spacing-6) var(--md-spacing-4);
    border-bottom: 1px solid var(--md-outline-variant);
}

.nav-menu-wrapper .nav-menu {
    flex-direction: column;
    align-items: stretch;
    padding: var(--md-spacing-4) 0;
}

.nav-menu-wrapper .nav-menu li {
    width: 100%;
}

.nav-menu-wrapper .nav-menu li a {
    width: 100%;
    justify-content: flex-start;
    padding: var(--md-spacing-3) var(--md-spacing-4);
    border-radius: 0;
    color: var(--md-text-primary);
}

.nav-menu-wrapper .nav-menu li a:hover {
    background: var(--md-hover-overlay);
    color: var(--md-primary);
}

/* Mobile menu: dropdown indicator in front of Keyboard/Mouse/Games so users know they expand */
.nav-menu-wrapper .nav-menu .dropdown .dropdown-toggle:not(.language-toggle)::before {
    content: "▾ ";
    display: inline-block;
    margin-right: 0.35rem;
    font-size: 0.85em;
    color: var(--md-text-secondary);
    transition: transform var(--md-transition-short);
}
.nav-menu-wrapper .nav-menu .dropdown.active .dropdown-toggle:not(.language-toggle)::before {
    transform: rotate(-180deg);
}

/* Mobile menu: dropdowns expand inline (no overlapping) */
.nav-menu-wrapper .nav-menu .dropdown {
    position: static;
    display: block;
}

.nav-menu-wrapper .nav-menu .dropdown-menu {
    position: static;
    box-shadow: none;
    min-width: unset;
    padding: 0 0 0 var(--md-spacing-4);
    margin: 0 0 var(--md-spacing-2) 0;
    margin-top: var(--md-spacing-1);
    opacity: 1;
    transform: none;
    max-height: 0;
    overflow: hidden;
    visibility: visible;
    transition: max-height var(--md-transition-medium);
    border-left: 2px solid var(--md-outline-variant);
    border-radius: 0;
}

.nav-menu-wrapper .nav-menu .dropdown.active .dropdown-menu {
    max-height: 500px;
}

.nav-menu-wrapper .nav-menu .dropdown-menu li a {
    padding: var(--md-spacing-2) var(--md-spacing-3);
    font-size: var(--md-body-medium);
}

.nav-menu-wrapper .nav-menu .dropdown-menu li a:hover {
    transform: none;
}

/* Menu Overlay */
.menu-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.5);
    z-index: 1000;
    opacity: 0;
    visibility: hidden;
    transition: all var(--md-transition-medium);
}

.menu-overlay.active {
    opacity: 1;
    visibility: visible;
}

/* Nav Right (Language + Burger) */
.nav-right {
    display: flex;
    align-items: center;
    gap: var(--md-spacing-4);
    flex-shrink: 0;
    min-width: 0;
    position: relative;
    z-index: 1003;
}

/* Language Dropdown */
.language-dropdown {
    position: relative;
    z-index: 1003;
}

.language-toggle {
    display: flex;
    align-items: center;
    gap: var(--md-spacing-2);
}

.flag-icon {
    font-size: 20px;
}

.arrow {
    font-size: 12px;
    transition: transform var(--md-transition-short);
}

.language-dropdown.active .arrow {
    transform: rotate(180deg);
}

/* Language Menu - Ensure it's visible */
.language-menu {
    z-index: 1004 !important;
    overflow: visible !important;
}

/* Mobile Language Dropdown */
.mobile-language-dropdown {
    border-top: 1px solid var(--md-outline-variant);
    margin-top: auto;
    padding: var(--md-spacing-1); /* Reduced to 8px */
}

.mobile-language-dropdown .language-toggle {
    width: 100%;
    padding: var(--md-spacing-1) var(--md-spacing-2); /* Reduced to 8px 16px */
    justify-content: space-between;
}

.mobile-language-dropdown .language-menu {
    position: static;
    box-shadow: none;
    opacity: 1;
    visibility: visible;
    transform: none;
    max-height: 0;
    overflow: hidden;
    transition: max-height var(--md-transition-medium);
}

.mobile-language-dropdown.active .language-menu {
    max-height: 400px;
}

/* Dropdown */
.dropdown {
    position: relative;
    z-index: 1002;
}

.dropdown-toggle {
    display: flex;
    align-items: center;
    gap: var(--md-spacing-1);
    padding: var(--md-spacing-2) var(--md-spacing-4);
    color: var(--md-text-primary);
    text-decoration: none;
    border-radius: var(--md-radius-medium); /* 6px rounded corners */
    font-size: var(--md-label-large);
    font-weight: 500;
    cursor: pointer;
    transition: all 0.2s ease-in-out;
}

.dropdown-toggle:hover {
    background: var(--md-hover-overlay);
    color: var(--md-primary);
    transform: translateY(-1px);
}

.dropdown-toggle:active {
    background: var(--md-pressed-overlay);
    transform: translateY(0);
}

.dropdown-toggle:focus-visible {
    outline: 2px solid var(--md-primary);
    outline-offset: 2px;
}

.dropdown-menu {
    position: absolute;
    top: calc(100% + var(--md-spacing-2));
    left: 0;
    background: var(--md-surface);
    border-radius: var(--md-radius-medium);
    box-shadow: var(--md-elevation-3);
    list-style: none;
    min-width: 200px;
    padding: 4px 0; /* Reduced to 4px top/bottom */
    opacity: 0;
    visibility: hidden;
    transform: translateY(-8px);
    transition: all var(--md-transition-medium);
    z-index: 1003;
    overflow: visible;
}

.dropdown.active .dropdown-menu,
.dropdown:hover .dropdown-menu {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

/* Ensure language menu dropdown is visible */
.language-dropdown.active .dropdown-menu,
.language-dropdown:hover .dropdown-menu {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
    z-index: 1004;
}

.dropdown-menu li {
    margin: 0;
}

.dropdown-menu li a {
    display: flex;
    align-items: center;
    gap: var(--md-spacing-2);
    padding: var(--md-spacing-1) var(--md-spacing-2); /* Reduced to 8px 16px */
    color: var(--md-text-primary);
    text-decoration: none;
    font-size: var(--md-body-medium);
    transition: all 0.2s ease-in-out;
    border-radius: var(--md-radius-small); /* 4px subtle rounded */
}

.dropdown-menu li a:hover {
    background: var(--md-hover-overlay);
    color: var(--md-primary);
    transform: translateX(4px);
}

.dropdown-menu li a:active {
    background: var(--md-pressed-overlay);
}

.dropdown-menu li a:focus-visible {
    outline: 2px solid var(--md-primary);
    outline-offset: 2px;
}

/* ===== MAIN CONTENT ===== */
main {
    flex: 1;
    width: 100%;
    padding: var(--md-spacing-8) 0;
}

/* Hero Section */
.hero {
    background: linear-gradient(135deg, var(--md-primary) 0%, var(--md-primary-dark) 100%);
    color: var(--md-on-primary);
    padding: var(--md-spacing-8) var(--md-spacing-6); /* Reduced: 64px vertical, 48px horizontal */
    text-align: center;
    border-radius: var(--md-radius-extra-large);
    margin-top: var(--md-spacing-8); /* 64px top margin */
    margin-bottom: var(--md-spacing-12); /* 96px bottom margin */
    box-shadow: var(--md-elevation-3);
}

.hero h1,
.hero h2,
.hero .main-title {
    font-family: 'Montserrat', 'Inter', sans-serif;
    font-size: 2.5rem; /* 40px */
    font-weight: 700;
    margin-bottom: var(--md-spacing-2); /* 16px for reduced spacing */
    line-height: 1.2;
    letter-spacing: -0.01em;
    color: var(--md-on-primary); /* White text */
}

.hero p,
.hero .subtitle {
    font-family: 'Inter', sans-serif;
    font-size: 1.125rem; /* 18px */
    font-weight: 400;
    line-height: 1.6; /* Increased from 1.5 for better readability */
    color: var(--md-on-primary); /* White text */
    max-width: 37.5rem; /* 600px */
    margin: 0 auto; /* Removed bottom margin for reduced spacing */
}

/* Banner Section */
.banner-section {
    margin-top: var(--md-spacing-8); /* 64px top margin */
    margin-bottom: var(--md-spacing-12); /* 96px bottom margin */
    text-align: center;
}

.banner-content {
    max-width: 800px;
    margin: 0 auto;
    width: 100%;
    box-sizing: border-box;
}

.banner-content h1 {
    font-family: 'Montserrat', 'Inter', sans-serif;
    font-size: 2.5rem; /* 40px */
    font-weight: 700;
    margin-bottom: var(--md-spacing-3); /* 24px */
    line-height: 1.2;
    letter-spacing: -0.01em;
    color: var(--md-text-primary);
}

.banner-content h2 {
    font-family: 'Inter', sans-serif;
    font-size: 1.5rem; /* 24px */
    font-weight: 600;
    margin-bottom: var(--md-spacing-4); /* 32px */
    line-height: 1.4;
    color: var(--md-text-primary);
}

.banner-content .eyebrow {
    font-family: 'Inter', sans-serif;
    font-size: 0.875rem; /* 14px */
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--md-text-secondary);
    margin-bottom: var(--md-spacing-2); /* 16px */
}

.banner-content h3 {
    font-family: 'Inter', sans-serif;
    font-size: 1.25rem; /* 20px */
    font-weight: 600;
    margin-bottom: var(--md-spacing-2); /* 16px */
    line-height: 1.4;
    color: var(--md-text-primary);
}

.banner-content p {
    font-family: 'Inter', sans-serif;
    font-size: 1.125rem; /* 18px */
    font-weight: 400;
    line-height: 1.6;
    color: var(--md-text-secondary);
    margin-bottom: var(--md-spacing-6); /* 48px */
}

/* Duration Selector */
.duration-selector {
    background: var(--md-surface);
    padding: var(--md-spacing-8); /* Increased from 48px to 64px */
    border-radius: var(--md-radius-large);
    margin-bottom: var(--md-spacing-8); /* Increased from 48px to 64px */
    box-shadow: var(--md-elevation-1);
}

.duration-selector h2,
.duration-selector h3 {
    font-family: 'Montserrat', 'Inter', sans-serif;
    font-size: 1.5rem; /* 24px */
    font-weight: 600;
    line-height: 1.2;
    margin-bottom: var(--md-spacing-6); /* Increased to 48px for better spacing */
    color: var(--md-on-surface);
    text-align: center;
}

.duration-buttons {
    display: flex;
    flex-wrap: wrap;
    gap: var(--md-spacing-2);
    justify-content: center;
    margin-bottom: var(--md-spacing-6); /* 48px space below duration buttons */
}

.duration-btn {
    padding: var(--md-spacing-2) var(--md-spacing-6);
    min-width: 4rem; /* 64px */
    min-height: var(--md-touch-target); /* 44px minimum */
    border: 1.5px solid var(--md-outline);
    background: var(--md-surface);
    color: var(--md-primary);
    border-radius: var(--md-radius-medium); /* 6px rounded corners */
    font-size: var(--md-label-large);
    font-weight: 500;
    cursor: pointer;
    transition: all 0.2s ease-in-out;
    transform: translateY(0);
}

/* Custom Duration Section */
.custom-duration {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--md-spacing-3); /* 24px gap between elements */
    margin-top: var(--md-spacing-6); /* 48px top margin */
    padding-top: var(--md-spacing-6); /* 48px top padding */
    border-top: 1px solid var(--md-outline-variant); /* Separator line */
}

.custom-duration label {
    font-family: 'Inter', sans-serif;
    font-size: var(--md-body-large);
    font-weight: 500;
    color: var(--md-text-primary);
    text-align: center;
}

.custom-duration input {
    width: 100%;
    max-width: 300px;
    padding: var(--md-spacing-3); /* 24px padding */
    border: 2px solid var(--md-outline);
    border-radius: var(--md-radius-medium);
    font-family: 'Inter', sans-serif;
    font-size: var(--md-body-large);
    color: var(--md-text-primary);
    background: var(--md-surface);
    transition: all 0.2s ease-in-out;
    text-align: center;
}

.custom-duration input:focus {
    outline: none;
    border-color: var(--md-primary);
    box-shadow: 0 0 0 3px var(--md-hover-overlay);
}

.custom-duration input::placeholder {
    color: var(--md-text-disabled);
}

.custom-duration button {
    min-width: 200px; /* Wider button for "Set Custom" */
}

.duration-btn:hover {
    background: var(--md-primary-container);
    border-color: var(--md-primary);
    box-shadow: 0 2px 4px rgba(26, 115, 232, 0.15);
    transform: translateY(-1px);
}

.duration-btn:active {
    transform: translateY(0);
}

.duration-btn.active {
    background: var(--md-primary);
    color: var(--md-text-on-primary);
    border-color: var(--md-primary);
    box-shadow: 0 2px 6px rgba(26, 115, 232, 0.3);
    transform: scale(1.05);
}

.duration-btn:focus-visible {
    outline: 2px solid var(--md-primary);
    outline-offset: 2px;
}

/* Test Area - Now the entire clickable container */
.test-area {
    background: var(--md-surface);
    padding: var(--md-spacing-12); /* 96px padding for spacious feel */
    border-radius: var(--md-radius-large);
    margin-bottom: var(--md-spacing-8); /* 64px bottom margin */
    box-shadow: var(--md-elevation-1);
    border: 2px solid transparent;
    min-height: 500px; /* Minimum height for the container */
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: var(--md-spacing-8); /* 64px gap between elements */
    cursor: pointer;
    transition: all 0.2s ease-in-out;
    user-select: none;
    text-align: center;
}

.test-area:hover {
    box-shadow: var(--md-elevation-2);
    border-color: var(--md-primary-light);
    transform: translateY(-2px);
}

.test-area:active {
    transform: scale(0.99);
    box-shadow: var(--md-elevation-1);
    border-color: var(--md-primary);
}

.test-area.active {
    border-color: var(--md-primary);
    background: linear-gradient(135deg, rgba(26, 115, 232, 0.02) 0%, rgba(26, 115, 232, 0.05) 100%);
    cursor: crosshair;
}

/* Remove click-box styles - no longer needed */
.click-box {
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: var(--md-spacing-8);
}

.click-content {
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--md-spacing-8);
}

.start-btn {
    padding: var(--md-spacing-3) var(--md-spacing-12); /* 24px 96px */
    min-height: 3.5rem; /* 56px for prominent CTA */
    font-family: 'Montserrat', 'Inter', sans-serif;
    font-size: 1.5rem; /* 24px */
    font-weight: 700;
    line-height: 1.2;
    background: var(--md-primary);
    color: var(--md-text-on-primary);
    border: none;
    border-radius: var(--md-radius-medium); /* 6px rounded corners */
    cursor: pointer;
    box-shadow: 0 4px 12px rgba(26, 115, 232, 0.3);
    transition: all 0.2s ease-in-out;
    transform: translateY(0) scale(1);
}

.start-btn:hover {
    background: var(--md-primary-hover);
    box-shadow: 0 6px 16px rgba(26, 115, 232, 0.4);
    transform: translateY(-3px) scale(1.02);
}

.start-btn:active {
    background: var(--md-primary-dark);
    box-shadow: 0 2px 6px rgba(26, 115, 232, 0.3);
    transform: translateY(0) scale(0.98);
}

.start-btn:focus-visible {
    outline: 3px solid var(--md-primary-light);
    outline-offset: 3px;
}

.reset-btn {
    padding: var(--md-spacing-2) var(--md-spacing-8); /* 16px 64px */
    min-height: var(--md-touch-target); /* 44px minimum */
    font-size: var(--md-title-medium);
    font-weight: 500;
    background: var(--md-surface);
    color: var(--md-error);
    border: 2px solid var(--md-error);
    border-radius: var(--md-radius-medium); /* 6px rounded corners */
    cursor: pointer;
    box-shadow: 0 2px 4px rgba(217, 48, 37, 0.1);
    transition: all 0.2s ease-in-out;
    transform: translateY(0);
    text-transform: lowercase;
}

.reset-btn:hover {
    background: var(--md-error-light);
    box-shadow: 0 4px 8px rgba(217, 48, 37, 0.2);
    transform: translateY(-2px);
}

.reset-btn:active {
    background: var(--md-error-light);
    box-shadow: 0 1px 2px rgba(217, 48, 37, 0.1);
    transform: translateY(0);
}

.reset-btn:focus-visible {
    outline: 2px solid var(--md-error);
    outline-offset: 2px;
}

/* Counter Display (Click Counter) */
.counter-display {
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--md-spacing-6);
}

.counter-value-box {
    width: 100%;
    max-width: 300px;
    background: var(--md-surface);
    border: 2px dashed var(--md-outline);
    border-radius: var(--md-radius-medium);
    padding: var(--md-spacing-8);
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 120px;
}

.counter-value {
    font-family: 'Montserrat', 'Inter', sans-serif;
    font-size: 4rem; /* 64px */
    font-weight: 700;
    color: var(--md-text-primary);
    line-height: 1;
    text-align: center;
}

.counter-controls {
    width: 100%;
    max-width: 400px;
    display: flex;
    gap: var(--md-spacing-2);
    justify-content: center;
}

.increment-btn,
.decrement-btn {
    flex: 1;
    min-height: 4rem; /* 64px - large touch target */
    font-family: 'Montserrat', 'Inter', sans-serif;
    font-size: 2.5rem; /* 40px */
    font-weight: 700;
    color: var(--md-text-on-primary);
    background: var(--md-primary);
    border: none;
    border-radius: var(--md-radius-medium);
    cursor: pointer;
    box-shadow: var(--md-elevation-2);
    transition: all 0.2s ease-in-out;
    display: flex;
    align-items: center;
    justify-content: center;
}

.increment-btn:hover,
.decrement-btn:hover {
    background: var(--md-primary-hover);
    box-shadow: var(--md-elevation-3);
    transform: translateY(-2px);
}

.increment-btn:active,
.decrement-btn:active {
    background: var(--md-primary-dark);
    box-shadow: var(--md-elevation-1);
    transform: translateY(0);
}

.increment-btn:focus-visible,
.decrement-btn:focus-visible {
    outline: 3px solid var(--md-primary-light);
    outline-offset: 3px;
}

.decrement-btn:disabled {
    opacity: 0.5;
    cursor: not-allowed;
    background: var(--md-surface-container);
    color: var(--md-text-disabled);
}

.decrement-btn:disabled:hover {
    transform: none;
    box-shadow: var(--md-elevation-2);
}

/* Stats Display */
.stats {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--md-spacing-8); /* Increased from 48px to 64px */
    width: 100%;
}

.stat-item {
    text-align: center;
}

.stat-value {
    font-family: 'Montserrat', 'Inter', sans-serif;
    font-size: 3rem; /* 48px */
    font-weight: 700;
    color: var(--md-primary);
    line-height: 1;
    margin-bottom: var(--md-spacing-2);
}

.stat-label {
    font-family: 'Inter', sans-serif;
    font-size: 0.875rem; /* 14px */
    color: var(--md-text-secondary);
    font-weight: 600;
    line-height: 1.4;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

/* ===== HISTORY SECTIONS ===== */
.history-section {
    background: var(--md-surface);
    border-radius: var(--md-radius-large);
    padding: var(--md-spacing-8); /* Increased from 48px to 64px */
    margin-bottom: var(--md-spacing-8); /* Increased from 48px to 64px */
    box-shadow: var(--md-elevation-1);
}

.history-section h2,
.history-section h3 {
    font-family: 'Montserrat', 'Inter', sans-serif;
    font-size: 1.75rem; /* 28px */
    font-weight: 600;
    line-height: 1.2;
    margin-bottom: var(--md-spacing-8); /* Increased to 64px for better spacing */
    text-align: center;
    color: var(--md-on-surface);
}

.leaderboard-section h2,
.leaderboard-section h3 {
    background: linear-gradient(135deg, #FFD700, #FFA500);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    font-weight: 700;
    text-align: center; /* Ensure centered */
    margin-bottom: var(--md-spacing-8); /* 64px bottom margin */
}

.results-section h2,
.results-section h3 {
    text-align: center; /* Ensure centered */
    margin-bottom: var(--md-spacing-8); /* 64px bottom margin */
}

.results-section {
    background: var(--md-surface-variant);
}

.history-container {
    max-height: 500px;
    overflow-y: auto;
    overflow-x: auto;
}

.history-table {
    width: 100%;
    border-collapse: collapse;
    min-width: 500px;
}

.history-header {
    display: grid;
    grid-template-columns: 0.6fr 1.5fr 1fr 1fr 1fr 2fr;
    gap: var(--md-spacing-4);
    padding: var(--md-spacing-4);
    background: var(--md-primary);
    color: var(--md-text-on-primary);
    font-weight: 500;
    font-size: var(--md-label-large);
    border-radius: var(--md-radius-medium) var(--md-radius-medium) 0 0;
    text-align: center;
}

.history-row {
    display: grid;
    grid-template-columns: 0.6fr 1.5fr 1fr 1fr 1fr 2fr;
    gap: var(--md-spacing-4);
    padding: var(--md-spacing-4);
    border-bottom: 1px solid var(--md-outline-variant);
    transition: background var(--md-transition-short);
    text-align: center;
    align-items: center;
}

.history-row:hover {
    background: var(--md-hover-overlay);
}

.history-row.top-rank {
    background: linear-gradient(to right, rgba(255, 215, 0, 0.1), transparent);
    border-left: 3px solid #FFD700;
}

.history-row.top-rank:hover {
    background: linear-gradient(to right, rgba(255, 215, 0, 0.15), var(--md-surface-variant));
}

.history-col {
    font-size: var(--md-body-medium);
    color: var(--md-text-primary);
}

.rank-icon {
    font-size: 24px;
}

.highlight-cps {
    font-weight: 700;
    color: var(--md-primary);
    font-size: var(--md-title-medium);
}

.no-history {
    text-align: center;
    color: var(--md-text-secondary);
    padding: var(--md-spacing-8);
    font-size: var(--md-body-large);
}

/* ===== INFO CARDS ===== */
.info-section {
    display: grid;
    grid-template-columns: repeat(3, 1fr); /* Changed to exactly 3 equal columns */
    gap: var(--md-spacing-4); /* Reduced from 64px to 32px */
    margin-bottom: var(--md-spacing-8); /* Reduced from 96px to 64px */
}

.info-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--md-spacing-4);
    margin: var(--md-spacing-6) 0;
}

.info-card {
    background: var(--md-surface);
    padding: var(--md-spacing-5); /* Reduced from 64px to 40px */
    border-radius: var(--md-radius-large); /* 8px rounded corners */
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
    border: 1px solid var(--md-outline-variant);
    transition: all 0.2s ease-in-out;
    transform: translateY(0);
    display: flex;
    flex-direction: column;
    max-width: 100%;
}

.info-card:hover {
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1);
    border-color: var(--md-primary-light);
    transform: translateY(-4px);
}

.info-card h3 {
    font-family: 'Montserrat', 'Inter', sans-serif;
    font-size: 1.25rem; /* 20px */
    font-weight: 600;
    line-height: 1.2;
    margin-bottom: var(--md-spacing-3); /* Reduced from 32px to 24px */
    color: var(--md-primary);
}

.info-card p,
.info-card li {
    font-family: 'Inter', sans-serif;
    font-size: 0.9375rem; /* 15px */
    font-weight: 400;
    color: var(--md-text-secondary);
    line-height: 1.6;
}

.info-card ul,
.info-card ol {
    padding-left: var(--md-spacing-4); /* Reduced from 40px to 32px */
    margin-top: var(--md-spacing-2); /* Reduced from 24px to 16px */
}

.info-card li {
    margin-bottom: var(--md-spacing-1); /* Reduced from 16px to 8px */
}

/* ===== ARTICLE SECTION ===== */
.article-section {
    background: var(--md-surface);
    padding: var(--md-spacing-12); /* Increased from 64px to 96px for better readability */
    border-radius: var(--md-radius-large);
    margin-bottom: var(--md-spacing-12); /* Increased from 64px to 96px */
    box-shadow: var(--md-elevation-1);
}

.article-content h2 {
    font-family: 'Montserrat', 'Inter', sans-serif;
    font-size: 2rem; /* 32px */
    font-weight: 700;
    line-height: 1.2;
    margin-top: var(--md-spacing-12); /* Increased from 64px to 96px */
    margin-bottom: var(--md-spacing-3); /* 24px for better spacing */
    color: var(--md-on-surface);
}

.article-content h2:first-child {
    margin-top: 0;
}

.article-content h3 {
    font-family: 'Montserrat', 'Inter', sans-serif;
    font-size: 1.5rem; /* 24px */
    font-weight: 600;
    line-height: 1.2;
    margin-top: var(--md-spacing-8); /* Increased from 48px to 64px */
    margin-bottom: var(--md-spacing-2); /* 16px for better spacing */
    color: var(--md-on-surface);
}

.article-content p {
    font-family: 'Inter', sans-serif;
    font-size: 1rem; /* 16px */
    font-weight: 400;
    color: var(--md-text-secondary);
    margin-bottom: var(--md-spacing-3); /* 24px for better paragraph spacing */
    line-height: 1.6; /* Increased from 1.5 for better readability */
}

.article-content ul,
.article-content ol {
    padding-left: var(--md-spacing-6);
    margin-bottom: var(--md-spacing-4);
}

.article-content li {
    font-family: 'Inter', sans-serif;
    font-size: 1rem; /* 16px */
    font-weight: 400;
    color: var(--md-text-secondary);
    margin-bottom: var(--md-spacing-2);
    line-height: 1.5;
}

.article-content a {
    color: var(--md-primary);
    text-decoration: none;
    font-weight: 500;
    transition: color var(--md-transition-short);
}

.article-content a:hover {
    color: var(--md-primary-dark);
    text-decoration: underline;
}

/* ===== FOOTER ===== */
.footer {
    background: var(--md-surface);
    padding: var(--md-spacing-6) var(--md-spacing-4); /* Reduced: 48px vertical, 32px horizontal */
    margin-top: auto;
    box-shadow: 0 -2px 10px var(--md-outline-variant);
}

.footer-content {
    max-width: 1200px;
    margin: 0 auto;
    text-align: center;
}

.footer-content p {
    font-size: var(--md-body-medium);
    color: var(--md-text-secondary);
    margin-bottom: var(--md-spacing-3); /* Reduced from 32px to 24px */
}

.footer-links {
    display: flex;
    justify-content: center;
    gap: var(--md-spacing-4); /* Reduced from 64px to 32px */
    flex-wrap: wrap;
}

.footer-links a {
    color: var(--md-primary);
    text-decoration: none;
    font-size: var(--md-body-medium);
    font-weight: 500;
    padding: var(--md-spacing-1) var(--md-spacing-2);
    border-radius: var(--md-radius-small); /* 4px rounded */
    transition: all 0.2s ease-in-out;
    display: inline-block;
}

.footer-links a:hover {
    color: var(--md-primary-hover);
    background: var(--md-hover-overlay);
    transform: translateY(-1px);
}

.footer-links a:active {
    transform: translateY(0);
}

.footer-links a:focus-visible {
    outline: 2px solid var(--md-primary);
    outline-offset: 2px;
}

/* ===== UTILITY CLASSES ===== */
.hidden {
    display: none !important;
}

/* Screen Reader Only - Accessible but visually hidden */
.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border-width: 0;
}

/* ===== MODAL STYLES ===== */
.modal {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.75);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 10000;
    animation: fadeIn 0.3s ease-in-out;
}

.modal.hidden {
    display: none !important;
}

@keyframes fadeIn {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}

@keyframes slideIn {
    from {
        transform: translateY(-50px);
        opacity: 0;
    }
    to {
        transform: translateY(0);
        opacity: 1;
    }
}

.modal-content {
    background: var(--md-surface);
    border-radius: var(--md-radius-large);
    padding: var(--md-spacing-8);
    max-width: 500px;
    width: 90%;
    max-height: 90vh;
    overflow-y: auto;
    position: relative;
    box-shadow: var(--md-elevation-4);
    animation: slideIn 0.3s ease-in-out;
}

.close-modal {
    position: absolute;
    top: var(--md-spacing-2);
    right: var(--md-spacing-2);
    font-size: 2rem;
    cursor: pointer;
    color: var(--md-text-secondary);
    background: none;
    border: none;
    width: 2.5rem;
    height: 2.5rem;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--md-radius-medium);
    transition: all var(--md-transition-short);
    line-height: 1;
}

.close-modal:hover {
    color: var(--md-error);
    background: var(--md-hover-overlay);
}

.modal-content h2 {
    text-align: center;
    color: var(--md-text-primary);
    margin-bottom: var(--md-spacing-6);
    font-family: 'Montserrat', 'Inter', sans-serif;
    font-size: var(--md-headline-medium);
}

.result-stats {
    margin-bottom: var(--md-spacing-6);
}

.result-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: var(--md-spacing-3);
    border-bottom: 1px solid var(--md-outline-variant);
}

.result-item:last-child {
    border-bottom: none;
}

.result-label {
    color: var(--md-text-secondary);
    font-weight: 500;
    font-size: var(--md-body-medium);
}

.result-value {
    font-size: var(--md-headline-small);
    font-weight: 700;
    color: var(--md-primary);
}

.rating {
    text-align: center;
    padding: var(--md-spacing-4);
    background: var(--md-primary-container);
    border-radius: var(--md-radius-medium);
    margin-bottom: var(--md-spacing-6);
    font-size: var(--md-title-large);
    font-weight: 600;
    color: var(--md-text-primary);
}

.modal-menu-title {
    font-weight: bold;
    color: var(--md-primary);
    font-size: 1.1rem;
}

.modal-description {
    color: var(--md-text-secondary);
    margin-bottom: var(--md-spacing-6);
}

.modal-input-wrapper {
    margin-bottom: var(--md-spacing-6);
}

.modal-input {
    width: 100%;
    padding: 1rem;
    border: 2px solid var(--md-primary);
    border-radius: var(--md-radius-medium);
    font-size: 1rem;
    font-family: 'Inter', sans-serif;
    transition: all 0.2s ease-in-out;
}

.modal-input:focus {
    outline: none;
    border-color: var(--md-primary-hover);
    box-shadow: 0 0 0 3px var(--md-hover-overlay);
}

.modal-divider {
    margin-top: var(--md-spacing-6);
    padding-top: var(--md-spacing-6);
    border-top: 2px solid var(--md-outline-variant);
}

.modal-label {
    display: block;
    margin-bottom: var(--md-spacing-2);
    font-weight: 600;
    color: var(--md-text-primary);
    font-size: 0.9375rem;
}

.modal-hint {
    font-size: 0.85rem;
    color: var(--md-text-secondary);
    margin-top: var(--md-spacing-2);
    margin-bottom: var(--md-spacing-4);
}

.modal-actions {
    display: flex;
    gap: var(--md-spacing-3);
    margin-top: var(--md-spacing-6);
}

.modal-btn {
    flex: 1;
    padding: var(--md-spacing-3) var(--md-spacing-4);
    border: none;
    border-radius: var(--md-radius-medium);
    font-size: var(--md-body-large);
    font-weight: 600;
    font-family: 'Inter', sans-serif;
    cursor: pointer;
    transition: all var(--md-transition-medium);
    min-height: var(--md-touch-target);
    display: flex;
    align-items: center;
    justify-content: center;
}

.retry-btn {
    background: var(--md-primary);
    color: var(--md-on-primary);
}

.retry-btn:hover {
    background: var(--md-primary-hover);
    box-shadow: var(--md-elevation-2);
    transform: translateY(-2px);
}

.retry-btn:active {
    transform: translateY(0);
    box-shadow: var(--md-elevation-1);
}

.share-btn {
    background: var(--md-secondary);
    color: var(--md-on-secondary);
}

.share-btn:hover {
    background: var(--md-secondary-hover);
    box-shadow: var(--md-elevation-2);
    transform: translateY(-2px);
}

.share-btn:active {
    transform: translateY(0);
    box-shadow: var(--md-elevation-1);
}

.text-center {
    text-align: center;
}

.mt-4 { margin-top: var(--md-spacing-4); }
.mb-4 { margin-bottom: var(--md-spacing-4); }
.mt-6 { margin-top: var(--md-spacing-6); }
.mb-6 { margin-bottom: var(--md-spacing-6); }
.mt-8 { margin-top: var(--md-spacing-8); }
.mb-8 { margin-bottom: var(--md-spacing-8); }

.p-4 { padding: var(--md-spacing-4); }
.p-6 { padding: var(--md-spacing-6); }
.p-8 { padding: var(--md-spacing-8); }

/* ===== FAQ ACCORDION STYLES ===== */
.faq-item {
    background: var(--md-surface);
    border: 1px solid var(--md-outline-variant);
    border-radius: var(--md-radius-medium);
    margin-bottom: var(--md-spacing-2);
    overflow: hidden;
    transition: box-shadow 0.3s ease-in-out, border-color 0.3s ease-in-out;
}

.faq-item:hover {
    box-shadow: var(--md-elevation-1);
}

.faq-question {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: var(--md-spacing-4) var(--md-spacing-5);
    cursor: pointer;
    user-select: none;
    transition: background-color var(--md-transition-short);
    border-bottom: 1px solid var(--md-outline-variant);
}

.faq-item:last-child .faq-question {
    border-bottom: none;
}

.faq-item.active .faq-question {
    border-bottom: 1px solid var(--md-outline-variant);
}

.faq-question:hover {
    background-color: var(--md-surface-variant);
}

.faq-question h3 {
    margin: 0;
    font-size: var(--md-title-medium);
    font-weight: 600;
    color: var(--md-text-primary);
    flex: 1;
    text-align: left;
    padding-right: var(--md-spacing-3);
}

.faq-icon {
    font-size: 1.5rem;
    font-weight: 400;
    color: var(--md-primary);
    min-width: 1.75rem;
    text-align: center;
    transition: transform 0.4s ease-in-out;
    line-height: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    transform: rotate(0deg);
}

.faq-item.active .faq-icon {
    transform: rotate(180deg);
}

.faq-answer {
    max-height: 0;
    overflow: hidden;
    opacity: 0;
    transition: max-height 0.4s ease-in-out, 
                padding 0.4s ease-in-out, 
                opacity 0.3s ease-in-out;
    padding: 0 var(--md-spacing-5);
}

.faq-item.active .faq-answer {
    max-height: 1000px;
    opacity: 1;
    padding: var(--md-spacing-4) var(--md-spacing-5);
    transition: max-height 0.4s ease-in-out, 
                padding 0.4s ease-in-out, 
                opacity 0.4s ease-in-out 0.1s;
}

.faq-answer p {
    margin: 0;
    color: var(--md-text-secondary);
    font-size: var(--md-body-medium);
    line-height: 1.6;
}

.faq-answer ul,
.faq-answer ol {
    margin: var(--md-spacing-3) 0;
    padding-left: var(--md-spacing-5);
    color: var(--md-text-secondary);
    font-size: var(--md-body-medium);
    line-height: 1.6;
}

.faq-answer li {
    margin-bottom: var(--md-spacing-2);
}

/* ===== RESPONSIVE DESIGN - MOBILE FIRST ===== */

/* Laptop screens (1024px to 1440px) - Prevent horizontal scroll */
@media (min-width: 1024px) and (max-width: 1440px) {
    .nav-container {
        padding: var(--md-spacing-4) var(--md-spacing-4);
        gap: var(--md-spacing-4);
    }
    
    .nav-menu {
        gap: var(--md-spacing-1);
        flex-wrap: nowrap;
    }
    
    .nav-menu li a {
        padding: var(--md-spacing-2) var(--md-spacing-3);
        font-size: 0.8125rem; /* Slightly smaller font */
        white-space: nowrap;
    }
    
    .logo {
        font-size: 1.125rem;
    }
    
    .nav-right {
        gap: var(--md-spacing-2);
    }
}

/* Tablet (768px and below) */
@media (max-width: 768px) {
    /* Responsive Typography */
    :root {
        --md-display-large: 2.5rem;    /* 40px - reduced from 56px */
        --md-display-medium: 2rem;     /* 32px - reduced from 44px */
        --md-display-small: 1.75rem;   /* 28px - reduced from 36px */
        --md-headline-large: 1.5rem;   /* 24px - reduced from 32px */
        --md-headline-medium: 1.375rem;/* 22px - reduced from 28px */
        --md-headline-small: 1.25rem;  /* 20px - reduced from 24px */
    }
    
    /* Container */
    .container {
        padding: var(--md-spacing-3);
        max-width: 100%;
    }
    
    /* Navigation */
    .nav-container {
        padding: var(--md-spacing-2) var(--md-spacing-3);
        gap: var(--md-spacing-3);
        grid-template-columns: auto auto 1fr; /* Logo, Burger menu, then space */
        max-width: 100%;
    }
    
    .logo {
        font-size: 1.125rem; /* 18px */
        grid-column: 1;
    }
    
    .logo-icon {
        font-size: 1.25rem; /* 20px */
    }
    
    .logo-icon img {
        width: 1.25rem; /* 20px */
        height: 1.25rem;
    }
    
    /* Hide desktop menu on mobile/tablet */
    #navMenu {
        display: none !important;
    }
    
    /* Show burger menu and align left after logo */
    .menu-toggle {
        display: flex;
        grid-column: 2;
        margin-left: var(--md-spacing-2);
        justify-self: start;
    }
    
    /* Show mobile menu wrapper */
    .nav-menu-wrapper {
        display: flex;
    }
    
    /* Hide desktop language dropdown */
    .nav-right .language-dropdown:not(.mobile-language-dropdown) {
        display: none;
    }
    
    /* Keep nav-right on the right */
    .nav-right {
        grid-column: 3;
        justify-self: end;
    }
    
    /* Hero Section */
    .hero {
        padding: var(--md-spacing-6) var(--md-spacing-4); /* Reduced: 48px 32px */
        border-radius: var(--md-radius-large); /* 8px */
        margin-top: var(--md-spacing-6); /* 48px top margin on tablet */
        margin-bottom: var(--md-spacing-8); /* 64px bottom margin on tablet */
    }
    
    .hero h1,
    .hero h2,
    .hero .main-title {
        font-size: 1.75rem; /* 28px */
        color: var(--md-on-primary); /* White text */
        margin-bottom: var(--md-spacing-2); /* 16px */
    }
    
    /* Banner Section */
    .banner-section {
        margin-top: var(--md-spacing-6); /* 48px top margin on tablet */
        margin-bottom: var(--md-spacing-8); /* 64px bottom margin on tablet */
    }
    
    .banner-content h1 {
        font-size: 1.75rem; /* 28px */
    }
    
    .banner-content p {
        font-size: 1rem; /* 16px */
        margin-bottom: var(--md-spacing-4); /* 32px */
    }
    
    .hero p,
    .hero .subtitle {
        font-size: 1rem; /* 16px */
        color: var(--md-on-primary); /* White text */
        margin: 0 auto; /* Removed bottom margin for reduced spacing */
    }
    
    /* Duration Selector */
    .duration-selector {
        padding: var(--md-spacing-6); /* 48px */
    }
    
    .duration-selector h2,
    .duration-selector h3 {
        font-size: 1.25rem; /* 20px */
        margin-bottom: var(--md-spacing-5); /* 40px on tablet */
    }
    
    .duration-buttons {
        gap: var(--md-spacing-2); /* 16px */
        flex-wrap: wrap;
        margin-bottom: var(--md-spacing-4); /* 32px on tablet */
    }
    
    .duration-btn {
        min-width: 3.5rem; /* 56px */
        padding: var(--md-spacing-2) var(--md-spacing-4); /* 16px 32px */
        font-size: 0.875rem; /* 14px */
    }
    
    /* Custom Duration */
    .custom-duration {
        gap: var(--md-spacing-2); /* 16px gap on tablet */
        margin-top: var(--md-spacing-4); /* 32px top margin */
        padding-top: var(--md-spacing-4); /* 32px top padding */
    }
    
    .custom-duration input {
        max-width: 250px;
        padding: var(--md-spacing-2); /* 16px padding */
        font-size: 0.875rem; /* 14px */
    }
    
    .custom-duration button {
        min-width: 180px; /* Slightly smaller on tablet */
    }
    
    /* Test Area */
    .test-area {
        padding: var(--md-spacing-8); /* 64px padding on tablet */
        gap: var(--md-spacing-6); /* 48px gap */
        min-height: 400px; /* Reduced for tablet */
    }
    
    /* Counter Display Tablet */
    .counter-value {
        font-size: 3.5rem; /* 56px on tablet */
    }
    
    .increment-btn,
    .decrement-btn {
        min-height: 3.75rem; /* 60px on tablet */
        font-size: 2.25rem; /* 36px on tablet */
    }
    
    .start-btn {
        font-size: 1.25rem; /* 20px */
        padding: var(--md-spacing-3) var(--md-spacing-10); /* 24px 80px */
        min-height: 3.5rem; /* 56px - still thumb-friendly */
    }
    
    .reset-btn {
        font-size: 1rem; /* 16px */
        padding: var(--md-spacing-2) var(--md-spacing-6); /* 16px 48px */
    }
    
    /* Stats */
    .stats {
        grid-template-columns: repeat(3, 1fr);
        gap: var(--md-spacing-4); /* 32px */
    }
    
    .stat-value {
        font-size: 2rem; /* 32px - reduced from 48px */
    }
    
    .stat-label {
        font-size: 0.75rem; /* 12px */
    }
    
    /* History Section */
    .history-section {
        padding: var(--md-spacing-6); /* 48px */
    }
    
    .history-section h2,
    .history-section h3 {
        font-size: 1.375rem; /* 22px */
        margin-bottom: var(--md-spacing-6); /* 48px on tablet */
        text-align: center;
    }
    
    .history-header,
    .history-row {
        grid-template-columns: 0.5fr 1.2fr 0.8fr 0.8fr 0.8fr 1.5fr;
        gap: var(--md-spacing-2);
        padding: var(--md-spacing-3) var(--md-spacing-2);
        font-size: 0.75rem; /* 12px */
    }
    
    .rank-icon {
        font-size: 1.25rem; /* 20px */
    }
    
    .highlight-cps {
        font-size: 1rem; /* 16px */
    }
    
    /* Info Section */
    .info-section {
        grid-template-columns: 1fr; /* Stack vertically on tablet */
        gap: var(--md-spacing-4); /* 32px */
    }
    
    .info-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: var(--md-spacing-4);
    }
    
    .info-card {
        padding: var(--md-spacing-4); /* 32px */
    }
    
    .info-card h2,
    .info-card h3 {
        font-size: 1.125rem; /* 18px */
        margin-bottom: var(--md-spacing-2); /* 16px */
    }
    
    .info-card p,
    .info-card li {
        font-size: 0.875rem; /* 14px */
    }
    
    /* Article Section */
    .article-section {
        padding: var(--md-spacing-8); /* 64px */
    }
    
    .article-content h2 {
        font-size: 1.5rem; /* 24px */
        margin-top: var(--md-spacing-8); /* 64px */
    }
    
    .article-content h3 {
        font-size: 1.25rem; /* 20px */
        margin-top: var(--md-spacing-6); /* 48px */
    }
    
    .article-content p,
    .article-content li {
        font-size: 0.9375rem; /* 15px */
    }
    
    /* Footer */
    .footer {
        padding: var(--md-spacing-5) var(--md-spacing-3); /* 40px 24px */
    }
    
    .footer-content p {
        margin-bottom: var(--md-spacing-2); /* 16px */
    }
    
    .footer-links {
        gap: var(--md-spacing-3); /* 24px */
        flex-direction: column;
        align-items: center;
    }
    
    .footer-links a {
        font-size: 0.875rem; /* 14px */
        padding: var(--md-spacing-2) var(--md-spacing-3); /* 16px 24px */
        min-height: var(--md-touch-target); /* 44px */
        display: flex;
        align-items: center;
    }
}

/* Mobile (480px and below) - Extra Small Screens */
@media (max-width: 480px) {
    /* Extra Small Typography */
    :root {
        --md-display-large: 2rem;      /* 32px */
        --md-display-medium: 1.75rem;  /* 28px */
        --md-display-small: 1.5rem;    /* 24px */
        --md-headline-large: 1.375rem; /* 22px */
        --md-headline-medium: 1.25rem; /* 20px */
        --md-headline-small: 1.125rem; /* 18px */
    }
    
    /* Container */
    .container {
        padding: var(--md-spacing-2); /* 16px */
    }
    
    /* Navigation */
    .nav-container {
        padding: var(--md-spacing-2);
        gap: var(--md-spacing-2);
    }
    
    .logo {
        font-size: 1rem; /* 16px */
    }
    
    /* Hero */
    .hero {
        padding: var(--md-spacing-6) var(--md-spacing-3); /* Reduced: 48px 24px */
        margin-top: var(--md-spacing-4); /* 32px top margin on mobile */
        margin-bottom: var(--md-spacing-6); /* 48px bottom margin on mobile */
    }
    
    .hero h1,
    .hero h2,
    .hero .main-title {
        font-size: 1.5rem; /* 24px */
        color: var(--md-on-primary); /* White text */
        margin-bottom: var(--md-spacing-2); /* 16px */
    }
    
    .hero p,
    .hero .subtitle {
        font-size: 0.9375rem; /* 15px */
        color: var(--md-on-primary); /* White text */
        margin: 0 auto; /* Removed bottom margin for reduced spacing */
    }
    
    /* Banner Section */
    .banner-section {
        margin-top: var(--md-spacing-4); /* 32px top margin on mobile */
        margin-bottom: var(--md-spacing-6); /* 48px bottom margin on mobile */
    }
    
    .banner-content h1 {
        font-size: 1.5rem; /* 24px */
    }
    
    .banner-content p {
        font-size: 0.9375rem; /* 15px */
        margin-bottom: var(--md-spacing-3); /* 24px */
    }
    
    /* Duration Selector */
    .duration-selector {
        padding: var(--md-spacing-4);
    }
    
    .duration-selector h2,
    .duration-selector h3 {
        font-size: 1.125rem; /* 18px */
        margin-bottom: var(--md-spacing-4); /* 32px on mobile */
    }
    
    .duration-buttons {
        gap: var(--md-spacing-1);
        margin-bottom: var(--md-spacing-3); /* 24px on mobile */
    }
    
    .duration-btn {
        min-width: 3rem; /* 48px */
        padding: var(--md-spacing-2) var(--md-spacing-3);
        font-size: 0.8125rem; /* 13px */
        min-height: var(--md-touch-target); /* Still 44px */
    }
    
    /* Custom Duration */
    .custom-duration {
        gap: var(--md-spacing-2); /* 16px gap on mobile */
        margin-top: var(--md-spacing-3); /* 24px top margin */
        padding-top: var(--md-spacing-3); /* 24px top padding */
    }
    
    .custom-duration label {
        font-size: 0.875rem; /* 14px */
    }
    
    .custom-duration input {
        max-width: 100%;
        padding: var(--md-spacing-2); /* 16px padding */
        font-size: 0.875rem; /* 14px */
    }
    
    .custom-duration button {
        min-width: 100%; /* Full width on mobile */
        width: 100%;
    }
    
    /* Test Area */
    .test-area {
        padding: var(--md-spacing-6); /* 48px padding on mobile */
        gap: var(--md-spacing-4); /* 32px gap */
        min-height: 350px; /* Reduced for mobile */
    }
    
    /* Counter Display Mobile */
    .counter-value {
        font-size: 3rem; /* 48px on mobile */
    }
    
    .counter-value-box {
        min-height: 100px;
        padding: var(--md-spacing-6);
    }
    
    .increment-btn,
    .decrement-btn {
        min-height: 3.5rem; /* 56px on mobile */
        font-size: 2rem; /* 32px on mobile */
    }
    
    .start-btn {
        font-size: 1.125rem; /* 18px */
        padding: var(--md-spacing-2) var(--md-spacing-8);
        min-height: 3.5rem; /* 56px - extra large for tapping */
    }
    
    .reset-btn {
        width: 100%;
        font-size: 0.9375rem; /* 15px */
    }
    
    /* Stats - Stack vertically on very small screens */
    .stats {
        grid-template-columns: 1fr;
        gap: var(--md-spacing-3);
    }
    
    .stat-value {
        font-size: 1.75rem; /* 28px */
    }
    
    .stat-label {
        font-size: 0.6875rem; /* 11px */
    }
    
    /* History Table - Horizontal scroll */
    .history-table {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }
    
    .history-header,
    .history-row {
        grid-template-columns: 0.4fr 1fr 0.7fr 0.7fr 0.7fr 1.3fr;
        gap: var(--md-spacing-1);
        padding: var(--md-spacing-2) var(--md-spacing-1);
        font-size: 0.6875rem; /* 11px */
        min-width: 500px; /* Prevent cramping */
    }
    
    .rank-icon {
        font-size: 1rem; /* 16px */
    }
    
    .highlight-cps {
        font-size: 0.875rem; /* 14px */
    }
    
    /* Info Cards */
    .info-section {
        gap: var(--md-spacing-4);
    }
    
    .info-grid {
        grid-template-columns: 1fr;
        gap: var(--md-spacing-3);
    }
    
    .info-card {
        padding: var(--md-spacing-3); /* 24px on mobile */
    }
    
    .info-card h2,
    .info-card h3 {
        font-size: 1rem; /* 16px */
        margin-bottom: var(--md-spacing-2); /* 16px */
    }
    
    .info-card p,
    .info-card li {
        font-size: 0.8125rem; /* 13px */
    }
    
    .info-card ul,
    .info-card ol {
        padding-left: var(--md-spacing-3); /* 24px on mobile */
    }
    
    .info-card li {
        margin-bottom: var(--md-spacing-1); /* 8px */
    }
    
    /* Article */
    .article-section {
        padding: var(--md-spacing-6);
    }
    
    .article-content h2 {
        font-size: 1.25rem; /* 20px */
    }
    
    .article-content h3 {
        font-size: 1.125rem; /* 18px */
    }
    
    .article-content p,
    .article-content li {
        font-size: 0.875rem; /* 14px */
    }
    
    /* Footer */
    .footer {
        padding: var(--md-spacing-4) var(--md-spacing-2); /* 32px 16px */
    }
    
    .footer-content p {
        margin-bottom: var(--md-spacing-2); /* 16px */
    }
    
    .footer-links {
        flex-direction: column;
        gap: var(--md-spacing-2); /* 16px */
    }
    
    .footer-links a {
        width: 100%;
        justify-content: center;
        min-height: var(--md-touch-target);
    }
    
    /* Modals */
    .modal-content {
        width: 95%;
        padding: var(--md-spacing-4);
    }
    
    .modal-actions {
        flex-direction: column;
        gap: var(--md-spacing-2);
    }
    
    .modal-btn {
        width: 100%;
        min-height: var(--md-touch-target);
    }
}

/* Extra Small Mobile (360px and below) - Smallest common phone size */
@media (max-width: 360px) {
    /* Ultra Compact Typography */
    .hero h1,
    .hero .main-title {
        font-size: 1.375rem; /* 22px */
    }
    
    .banner-content h1 {
        font-size: 1.25rem; /* 20px */
    }
    
    /* Compact Spacing */
    .hero {
        padding: var(--md-spacing-6) var(--md-spacing-2); /* 48px 16px */
        margin-top: var(--md-spacing-3); /* 24px top margin on extra small */
        margin-bottom: var(--md-spacing-4); /* 32px bottom margin on extra small */
    }
    
    /* Banner Section */
    .banner-section {
        margin-top: var(--md-spacing-3); /* 24px top margin on extra small */
        margin-bottom: var(--md-spacing-4); /* 32px bottom margin on extra small */
    }
    
    .banner-content h1 {
        font-size: 1.375rem; /* 22px */
    }
    
    .banner-content p {
        font-size: 0.875rem; /* 14px */
        margin-bottom: var(--md-spacing-2); /* 16px */
    }
    
    .duration-selector,
    .info-card,
    .article-section {
        padding: var(--md-spacing-3); /* 24px */
    }
    
    /* Test Area */
    .test-area {
        padding: var(--md-spacing-4); /* 32px padding on extra small */
        gap: var(--md-spacing-3); /* 24px gap */
        min-height: 300px; /* Reduced for extra small */
    }
    
    .start-btn {
        font-size: 1rem; /* 16px */
        padding: var(--md-spacing-2) var(--md-spacing-6); /* 16px 48px */
        min-height: 3rem; /* 48px - still thumb-friendly */
    }
    
    /* Ultra compact duration buttons */
    .duration-btn {
        min-width: 2.75rem; /* 44px - minimum touch target */
        padding: var(--md-spacing-1) var(--md-spacing-2);
        font-size: 0.75rem; /* 12px */
    }
    
    /* Custom Duration */
    .custom-duration {
        gap: var(--md-spacing-2); /* 16px gap */
        margin-top: var(--md-spacing-2); /* 16px top margin */
        padding-top: var(--md-spacing-2); /* 16px top padding */
    }
    
    .custom-duration label {
        font-size: 0.8125rem; /* 13px */
    }
    
    .custom-duration input {
        padding: var(--md-spacing-2); /* 16px padding */
        font-size: 0.8125rem; /* 13px */
    }
}

/* ===== AIM TRAINER GAME STYLES ===== */
.game-controls-section {
    margin: var(--md-spacing-6) 0;
}

.game-stats-bar {
    background: var(--md-surface);
    border: 1px solid var(--md-outline-variant);
    border-radius: var(--md-radius-medium);
    padding: var(--md-spacing-4);
    margin-bottom: var(--md-spacing-4);
    text-align: center;
}

.stat-display {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: var(--md-spacing-4);
    flex-wrap: wrap;
    font-size: 1.25rem;
    font-weight: 600;
    color: var(--md-text-primary);
}

.stat-display span {
    padding: var(--md-spacing-1) var(--md-spacing-3);
    background: var(--md-surface-variant);
    border-radius: var(--md-radius-small);
}

.game-area-container {
    margin: var(--md-spacing-4) 0;
}

.game-frame {
    width: 100%;
    height: 500px;
    background: linear-gradient(135deg, #e0e7ff 0%, #dbeafe 100%);
    border-radius: var(--md-radius-large);
    position: relative;
    overflow: hidden;
    cursor: crosshair;
    border: 2px solid var(--md-outline-variant);
}

.game-overlay {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(255, 255, 255, 0.95);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    z-index: 10;
    border-radius: var(--md-radius-large);
    text-align: center;
    padding: var(--md-spacing-6);
}

.game-overlay h2 {
    font-size: 2rem;
    margin-bottom: var(--md-spacing-2);
    color: var(--md-text-primary);
    text-align: center;
    width: 100%;
}

.game-overlay p {
    font-size: 1.125rem;
    margin-bottom: var(--md-spacing-4);
    color: var(--md-text-secondary);
    text-align: center;
    width: 100%;
}

.game-overlay button,
.game-overlay .primary-btn {
    background: linear-gradient(135deg, var(--md-primary) 0%, var(--md-primary-dark) 100%);
    color: white;
    border: none;
    padding: var(--md-spacing-4) var(--md-spacing-8);
    font-size: 1.125rem;
    font-weight: 600;
    border-radius: var(--md-radius-medium);
    cursor: pointer;
    transition: all 0.3s ease;
    box-shadow: 0 4px 12px rgba(26, 115, 232, 0.3);
    min-width: 160px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.game-overlay button:hover,
.game-overlay .primary-btn:hover {
    background: linear-gradient(135deg, var(--md-primary-dark) 0%, var(--md-primary) 100%);
    box-shadow: 0 6px 20px rgba(26, 115, 232, 0.4);
    transform: translateY(-2px);
}

.game-overlay button:active,
.game-overlay .primary-btn:active {
    transform: translateY(0);
    box-shadow: 0 2px 8px rgba(26, 115, 232, 0.3);
}

.aim-target {
    position: absolute;
    background: linear-gradient(135deg, #3b82f6, #2563eb);
    border-radius: 50%;
    cursor: pointer;
    transition: transform 0.1s, box-shadow 0.1s;
    box-shadow: 0 4px 15px rgba(59, 130, 246, 0.4);
    user-select: none;
    border: 3px solid white;
}

.aim-target:hover {
    transform: scale(1.05);
    box-shadow: 0 6px 20px rgba(59, 130, 246, 0.6);
}

.aim-target:active {
    transform: scale(0.95);
}

.hit-effect {
    position: absolute;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: var(--md-success);
    pointer-events: none;
    animation: hitPulse 0.6s ease-out;
}

@keyframes hitPulse {
    0% {
        transform: scale(0);
        opacity: 1;
    }
    100% {
        transform: scale(3);
        opacity: 0;
    }
}

.miss-indicator {
    position: absolute;
    color: var(--md-error);
    font-weight: 700;
    font-size: 1.25rem;
    pointer-events: none;
    animation: missFade 1s ease-out;
}

@keyframes missFade {
    0% {
        opacity: 1;
        transform: translateY(0);
    }
    100% {
        opacity: 0;
        transform: translateY(-20px);
    }
}

.game-settings-panel {
    background: var(--md-surface);
    border: 1px solid var(--md-outline-variant);
    border-radius: var(--md-radius-medium);
    padding: var(--md-spacing-4);
    margin: var(--md-spacing-4) 0;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: var(--md-spacing-4);
}

.setting-group {
    display: flex;
    flex-direction: column;
    gap: var(--md-spacing-2);
}

.setting-group label {
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--md-text-secondary);
}

.setting-group input[type="range"] {
    width: 100%;
    height: 6px;
    border-radius: 3px;
    background: var(--md-surface-variant);
    outline: none;
    -webkit-appearance: none;
}

.setting-group input[type="range"]::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: var(--md-primary);
    cursor: pointer;
}

.setting-group input[type="range"]::-moz-range-thumb {
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: var(--md-primary);
    cursor: pointer;
    border: none;
}

.setting-value {
    font-weight: 600;
    color: var(--md-primary);
    font-size: 1rem;
}

.game-action-bar {
    display: flex;
    justify-content: center;
    gap: var(--md-spacing-3);
    margin-top: var(--md-spacing-4);
}

.game-action-bar button,
#startPauseBtn {
    background: linear-gradient(135deg, var(--md-primary) 0%, var(--md-primary-dark) 100%);
    color: white;
    border: none;
    padding: var(--md-spacing-3) var(--md-spacing-8);
    font-size: 1rem;
    font-weight: 600;
    border-radius: var(--md-radius-medium);
    cursor: pointer;
    transition: all 0.3s ease;
    box-shadow: 0 4px 12px rgba(26, 115, 232, 0.3);
    min-width: 140px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.game-action-bar button:hover,
#startPauseBtn:hover {
    background: linear-gradient(135deg, var(--md-primary-dark) 0%, var(--md-primary) 100%);
    box-shadow: 0 6px 20px rgba(26, 115, 232, 0.4);
    transform: translateY(-2px);
}

.game-action-bar button:active,
#startPauseBtn:active {
    transform: translateY(0);
    box-shadow: 0 2px 8px rgba(26, 115, 232, 0.3);
}

.game-action-bar .ghost-btn {
    background: transparent;
    color: var(--md-primary);
    border: 2px solid var(--md-primary);
    box-shadow: none;
}

.game-action-bar .ghost-btn:hover {
    background: var(--md-primary-container);
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(26, 115, 232, 0.2);
}

.final-result {
    background: var(--md-surface);
    border: 1px solid var(--md-outline-variant);
    border-radius: var(--md-radius-medium);
    padding: var(--md-spacing-6);
    margin: var(--md-spacing-6) 0;
    text-align: center;
    display: none;
}

/* Results and Leaderboard Section */
.results-leaderboard-section {
    margin: var(--md-spacing-8) 0;
}

.results-leaderboard-grid {
    display: block;
    gap: var(--md-spacing-6);
}

.results-box,
.leaderboard-box {
    margin-bottom: var(--md-spacing-6);
}

.results-box:last-child,
.leaderboard-box:last-child {
    margin-bottom: 0;
}

.results-box,
.leaderboard-box {
    background: var(--md-surface);
    border: 1px solid var(--md-outline-variant);
    border-radius: var(--md-radius-large);
    padding: var(--md-spacing-5);
    box-shadow: var(--md-elevation-1);
}

.results-box h3,
.leaderboard-box h3 {
    font-family: 'Montserrat', 'Inter', sans-serif;
    font-size: 1.5rem;
    font-weight: 600;
    margin-bottom: var(--md-spacing-4);
    color: var(--md-text-primary);
    text-align: center;
}

.results-table-container {
    max-height: 400px;
    overflow-y: auto;
    overflow-x: auto;
    border-radius: var(--md-radius-small);
}

.results-table {
    width: 100%;
    border-collapse: collapse;
    min-width: 500px;
}

.results-table thead {
    background: var(--md-surface-variant);
    position: sticky;
    top: 0;
    z-index: 1;
}

.results-table th {
    padding: var(--md-spacing-3);
    text-align: left;
    font-weight: 600;
    font-size: 0.875rem;
    color: var(--md-text-secondary);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    border-bottom: 2px solid var(--md-outline-variant);
}

.results-table td {
    padding: var(--md-spacing-3);
    border-bottom: 1px solid var(--md-outline-variant);
    font-size: 0.9375rem;
    color: var(--md-text-primary);
}

.results-table tbody tr:hover {
    background: var(--md-surface-variant);
}

.results-table tbody tr:last-child td {
    border-bottom: none;
}

.no-results {
    text-align: center;
    color: var(--md-text-secondary);
    font-style: italic;
    padding: var(--md-spacing-6) !important;
}

.rank-badge {
    display: inline-block;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: var(--md-primary);
    color: white;
    text-align: center;
    line-height: 28px;
    font-weight: 600;
    font-size: 0.875rem;
}

.rank-badge.gold {
    background: linear-gradient(135deg, #FFD700, #FFA500);
}

.rank-badge.silver {
    background: linear-gradient(135deg, #C0C0C0, #808080);
}

.rank-badge.bronze {
    background: linear-gradient(135deg, #CD7F32, #8B4513);
}

.final-result.active {
    display: block;
}

.final-result h3 {
    font-size: 1.5rem;
    margin-bottom: var(--md-spacing-4);
    color: var(--md-text-primary);
}

.result-stats {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: var(--md-spacing-4);
    margin-bottom: var(--md-spacing-4);
}

.result-stat {
    padding: var(--md-spacing-3);
    background: var(--md-surface-variant);
    border-radius: var(--md-radius-small);
}

.result-stat-label {
    font-size: 0.875rem;
    color: var(--md-text-secondary);
    display: block;
    margin-bottom: var(--md-spacing-1);
}

.result-stat-value {
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--md-primary);
}

@media (max-width: 768px) {
    .game-frame {
        height: 400px;
    }
    
    .game-settings-panel {
        grid-template-columns: 1fr;
    }
    
    .stat-display {
        font-size: 1rem;
        gap: var(--md-spacing-2);
    }
    
    .game-overlay {
        padding: var(--md-spacing-4);
    }
    
    .game-overlay h2 {
        font-size: 1.5rem;
    }
    
    .game-overlay p {
        font-size: 1rem;
    }
    
    .game-overlay button,
    .game-overlay .primary-btn {
        padding: var(--md-spacing-3) var(--md-spacing-6);
        font-size: 1rem;
        min-width: 140px;
    }
    
    .game-action-bar button,
    #startPauseBtn {
        padding: var(--md-spacing-2) var(--md-spacing-6);
        font-size: 0.9375rem;
        min-width: 120px;
    }
    
    .results-leaderboard-grid {
        display: block;
    }
    
    .results-box,
    .leaderboard-box {
        margin-bottom: var(--md-spacing-4);
    }
    
    .results-table-container {
        max-height: 300px;
    }
    
    .results-table {
        min-width: 450px;
    }
    
    .results-box h3,
    .leaderboard-box h3 {
        font-size: 1.25rem;
    }
}

/* ===== LEADERBOARD FILTERS ===== */
.leaderboard-filters {
    margin: var(--md-spacing-6) 0;
    padding: var(--md-spacing-4);
    background: var(--md-surface);
    border-radius: var(--md-radius-large);
    box-shadow: var(--md-elevation-1);
}

.filter-buttons {
    display: flex;
    flex-wrap: wrap;
    gap: var(--md-spacing-2);
    justify-content: center;
}

.filter-btn {
    padding: var(--md-spacing-2) var(--md-spacing-4);
    background: var(--md-surface-variant);
    border: 2px solid var(--md-outline-variant);
    border-radius: var(--md-radius-medium);
    color: var(--md-text-primary);
    font-size: 0.9375rem;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.3s ease;
    white-space: nowrap;
}

.filter-btn:hover {
    background: var(--md-primary-container);
    border-color: var(--md-primary);
    color: var(--md-primary);
    transform: translateY(-2px);
}

.filter-btn.active {
    background: linear-gradient(135deg, var(--md-primary) 0%, var(--md-primary-dark) 100%);
    border-color: var(--md-primary);
    color: white;
    box-shadow: 0 4px 12px rgba(26, 115, 232, 0.3);
}

.filter-btn.active:hover {
    background: linear-gradient(135deg, var(--md-primary-dark) 0%, var(--md-primary) 100%);
    transform: translateY(-2px);
    box-shadow: 0 6px 16px rgba(26, 115, 232, 0.4);
}

/* ===== LEADERBOARD CONTAINER ===== */
.leaderboard-container {
    background: var(--md-surface);
    border-radius: var(--md-radius-large);
    padding: var(--md-spacing-6);
    margin: var(--md-spacing-6) 0;
    box-shadow: var(--md-elevation-1);
}

.leaderboard-header {
    text-align: center;
    margin-bottom: var(--md-spacing-6);
    padding-bottom: var(--md-spacing-4);
    border-bottom: 2px solid var(--md-outline-variant);
}

.leaderboard-header h2 {
    font-size: 1.75rem;
    font-weight: 600;
    color: var(--md-text-primary);
    margin-bottom: var(--md-spacing-2);
}

.leaderboard-header p {
    font-size: 1rem;
    color: var(--md-text-secondary);
}

#leaderboardList {
    display: flex;
    flex-direction: column;
    gap: var(--md-spacing-3);
}

.leaderboard-item {
    display: flex;
    align-items: center;
    gap: var(--md-spacing-4);
    padding: var(--md-spacing-4);
    background: var(--md-surface-variant);
    border-radius: var(--md-radius-medium);
    border: 1px solid var(--md-outline-variant);
    transition: all 0.3s ease;
}

.leaderboard-item:hover {
    background: var(--md-surface);
    box-shadow: var(--md-elevation-2);
    transform: translateX(4px);
}

.leaderboard-item.rank-1 {
    background: linear-gradient(135deg, #FFD70020, #FFA50020);
    border-color: #FFD700;
}

.leaderboard-item.rank-2 {
    background: linear-gradient(135deg, #C0C0C020, #80808020);
    border-color: #C0C0C0;
}

.leaderboard-item.rank-3 {
    background: linear-gradient(135deg, #CD7F3220, #8B451320);
    border-color: #CD7F32;
}

.leaderboard-item .rank-badge {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 56px;
    height: 56px;
    border-radius: 50%;
    font-size: 1.125rem;
    font-weight: 700;
    text-align: center;
    color: white;
    background: var(--md-primary);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
    flex-shrink: 0;
    position: relative;
    border: 3px solid transparent;
    overflow: hidden;
}

.leaderboard-item .rank-badge::before {
    content: '';
    position: absolute;
    top: 10px;
    left: 50%;
    transform: translateX(-50%);
    width: 20px;
    height: 20px;
    background: radial-gradient(circle, rgba(255, 255, 255, 0.6) 0%, transparent 70%);
    border-radius: 50%;
    opacity: 0.7;
}

/* Gold Badge - 1st Place */
.leaderboard-item.rank-1 .rank-badge {
    background: linear-gradient(135deg, #FFD700 0%, #FFA500 50%, #FF8C00 100%);
    box-shadow: 0 4px 20px rgba(255, 215, 0, 0.5), 
                0 0 0 2px rgba(255, 215, 0, 0.3),
                inset 0 2px 4px rgba(255, 255, 255, 0.3);
    border-color: #FFD700;
    color: #1a1a1a;
    font-size: 1.375rem;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
}

.leaderboard-item.rank-1 .rank-badge::before {
    background: radial-gradient(circle, rgba(255, 255, 255, 0.9) 0%, transparent 70%);
    opacity: 0.8;
}

/* Silver Badge - 2nd Place */
.leaderboard-item.rank-2 .rank-badge {
    background: linear-gradient(135deg, #E8E8E8 0%, #C0C0C0 50%, #A8A8A8 100%);
    box-shadow: 0 4px 20px rgba(192, 192, 192, 0.5),
                0 0 0 2px rgba(192, 192, 192, 0.3),
                inset 0 2px 4px rgba(255, 255, 255, 0.4);
    border-color: #C0C0C0;
    color: #1a1a1a;
    font-size: 1.375rem;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
}

.leaderboard-item.rank-2 .rank-badge::before {
    background: radial-gradient(circle, rgba(255, 255, 255, 0.8) 0%, transparent 70%);
    opacity: 0.7;
}

/* Bronze Badge - 3rd Place */
.leaderboard-item.rank-3 .rank-badge {
    background: linear-gradient(135deg, #CD7F32 0%, #B87333 50%, #8B4513 100%);
    box-shadow: 0 4px 20px rgba(205, 127, 50, 0.5),
                0 0 0 2px rgba(205, 127, 50, 0.3),
                inset 0 2px 4px rgba(255, 255, 255, 0.2);
    border-color: #CD7F32;
    color: white;
    font-size: 1.375rem;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
}

.leaderboard-item.rank-3 .rank-badge::before {
    background: radial-gradient(circle, rgba(255, 255, 255, 0.5) 0%, transparent 70%);
    opacity: 0.6;
}

.player-info {
    flex: 1;
}

.player-name {
    font-size: 1.125rem;
    font-weight: 600;
    color: var(--md-text-primary);
    margin-bottom: var(--md-spacing-2);
}

.player-stats {
    display: flex;
    flex-wrap: wrap;
    gap: var(--md-spacing-4);
}

.stat-item {
    display: flex;
    flex-direction: column;
    gap: var(--md-spacing-1);
}

.stat-label {
    font-size: 0.75rem;
    color: var(--md-text-secondary);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.stat-value {
    font-size: 1rem;
    font-weight: 600;
    color: var(--md-primary);
}

.record-date {
    font-size: 0.875rem;
    color: var(--md-text-secondary);
    white-space: nowrap;
}

.no-records {
    text-align: center;
    padding: var(--md-spacing-8);
    color: var(--md-text-secondary);
    font-style: italic;
}

@media (max-width: 768px) {
    .filter-buttons {
        gap: var(--md-spacing-2);
    }
    
    .filter-btn {
        padding: var(--md-spacing-2) var(--md-spacing-3);
        font-size: 0.875rem;
    }
    
    .leaderboard-container {
        padding: var(--md-spacing-4);
    }
    
    .leaderboard-item {
        flex-direction: column;
        align-items: flex-start;
        gap: var(--md-spacing-3);
    }
    
    .player-stats {
        width: 100%;
        gap: var(--md-spacing-3);
    }
    
    .record-date {
        align-self: flex-end;
    }
}

/* ===== ACCESSIBILITY ===== */
@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
    }
}

/* Focus Visible (Keyboard Navigation) */
*:focus-visible {
    outline: 2px solid var(--md-primary);
    outline-offset: 2px;
}

/* High Contrast Mode Support */
@media (prefers-contrast: high) {
    :root {
        --md-outline: rgba(0, 0, 0, 0.24);
        --md-outline-variant: rgba(0, 0, 0, 0.12);
    }
}
