
:root {
  --ink: #20364d;
  --muted: #63758a;
  --paper: #f6f8fb;
  --line: #dce4ee;
  --accent: #35658f;
  --soft: #e9f0f8;
  --success: #2f7a4f;
  --success-text: #25603c;
  --success-soft: #edf7ef;
  --success-line: #adcdb5;
  --primary: #315d87;
  --primary-hover: #254c73;
  --site-width: 1472px;
  --radius: 18px;
}
*, *::before, *::after { box-sizing: border-box; }
[hidden], [x-cloak] { display: none !important; }
html { scroll-behavior: smooth; scroll-padding-top: 24px; }
html.lenis { scroll-behavior: auto; }
body.academy { margin: 0; background: var(--paper); color: var(--ink); font-family: 'Inter', ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; font-size: 15px; line-height: 1.6; -webkit-font-smoothing: antialiased; min-height: 100vh; display: flex; flex-direction: column; }
.academy #main-content { flex: 1; min-width: 0; }
.academy h1, .academy h2, .academy h3 { text-wrap: balance; }
.academy a, .academy button, .academy summary { -webkit-tap-highlight-color: transparent; }
.academy :focus-visible { outline: 3px solid #488ab5; outline-offset: 5px; }
.academy input:not([type=radio]):not([type=checkbox]):not([type=hidden]), .academy select, .academy textarea { border: 1px solid #c7d3e0; background-color: white; border-radius: 9px; padding: 11px 13px; color: var(--ink); font-size: 16px; max-width: 100%; }
.academy input[type=checkbox], .academy input[type=radio] { accent-color: var(--accent); }
.academy button:disabled { cursor: not-allowed; }
.ui-icon { display: inline-block; flex-shrink: 0; vertical-align: middle; }
.site-container { width: min(var(--site-width), calc(100% - 64px)); margin-inline: auto; }
.skip-link { position: fixed; top: -100px; left: 20px; z-index: 100; padding: 12px 20px; background: var(--ink); color: white; border-radius: 8px; }
.skip-link:focus { top: 12px; }
.site-header { position: relative; z-index: 60; border-bottom: 1px solid var(--line); background: var(--paper); }
.header-inner { display: flex; align-items: center; justify-content: space-between; min-height: 92px; gap: 32px; }
.brand { display: inline-flex; align-items: center; flex-shrink: 0; }
.brand img { width: 210px; height: auto; }
.desktop-nav { display: flex; align-items: center; gap: 32px; font-size: 16px; font-weight: 500; line-height: 1.5; }
.desktop-nav > a:not(.button), .nav-dropdown summary { padding-block: 12px; }
.desktop-nav .nav-logout { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; padding: 0; border-radius: 8px; color: var(--muted); transition: background .2s, color .2s; }
.desktop-nav .nav-logout:hover { background: var(--soft); }
.nav-logout .ui-icon { width: 21px; height: 21px; }
.academy .desktop-nav .button { font-size: 15px; }
.desktop-nav a:not(.button):hover, .desktop-nav a[aria-current], .footer-links a:hover { color: var(--accent); }
.nav-dropdown { position: relative; }
.desktop-nav .nav-dropdown summary:hover, .desktop-nav .nav-dropdown[open] summary { color: var(--accent); }
.nav-dropdown summary { list-style: none; cursor: pointer; display: flex; align-items: center; gap: 6px; }
.nav-dropdown summary::-webkit-details-marker { display: none; }
.nav-dropdown summary .ui-icon { width: 15px; height: 15px; transition: transform .2s; }
.nav-dropdown[open] summary .ui-icon { transform: rotate(180deg); }
.nav-dropdown-panel { position: absolute; top: calc(100% + 10px); right: 0; width: 360px; padding: 20px 12px 12px; border: 1px solid var(--line); border-radius: 14px; background: white; box-shadow: 0 20px 60px #20364d18; font-size: 15px; }
.nav-dropdown-panel .eyebrow { display: block; padding: 0 12px 12px; }
.nav-dropdown-panel a { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 12px; border-radius: 6px; }
.nav-dropdown-panel a:hover { background: var(--soft); }
.nav-dropdown-panel .ui-icon { width: 16px; height: 16px; }
.mobile-menu-trigger, .account-mobile-menu { display: none; }
.academy .button { display: inline-flex; align-items: center; justify-content: center; gap: 14px; min-height: 52px; padding: 13px 23px; background: var(--primary); color: white; border: 1px solid var(--primary); border-radius: 8px; font-size: 14px; font-weight: 600; line-height: 1.4; text-decoration: none; cursor: pointer; transition: background .2s, border-color .2s, transform .2s; }
.academy .button:hover { background: var(--primary-hover); border-color: var(--primary-hover); transform: translateY(-1px); }
.academy .button-small { min-height: 42px; padding: 10px 16px; font-size: 13px; }
.button .ui-icon { width: 18px; height: 18px; }
.academy .button-secondary { background: transparent; color: var(--ink); border-color: #c7d3e0; }
.academy .button-secondary:hover { background: var(--soft); border-color: #a2bbd4; }
.academy .button-light { background: #edf3fa; color: var(--ink); border-color: #edf3fa; }
.academy .button-light:hover { background: white; border-color: white; }
.eyebrow { font-size: 10px; font-weight: 650; letter-spacing: .16em; text-transform: uppercase; color: var(--accent); }
.text-link { display: inline-flex; align-items: center; gap: 10px; font-size: 13px; font-weight: 600; color: var(--accent); }
.text-link:hover { text-decoration: underline; text-underline-offset: 5px; }
.text-link .ui-icon { width: 17px; height: 17px; }


.caption-icon { display: grid; place-items: center; width: 42px; height: 42px; background: var(--soft); border-radius: 50%; color: var(--accent); flex-shrink: 0; }
.home-section { padding-block: 76px; }
.section-heading { display: flex; justify-content: space-between; align-items: end; gap: 24px; margin-bottom: 30px; }
.section-heading h2, .club-panel h2, .closing-cta h2 { margin: 9px 0 0; font-size: clamp(27px, 3vw, 37px); line-height: 1.18; letter-spacing: -.04em; font-weight: 550; }
.section-heading p { margin: 12px 0 0; color: var(--muted); font-size: 14px; }
.review-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.review-card { margin: 0; display: flex; flex-direction: column; padding: 28px; background: white; border: 1px solid var(--line); border-radius: 12px; }
.review-stars { color: #876429; letter-spacing: .15em; font-size: 14px; }
.review-card blockquote { margin: 18px 0 24px; font-size: 14px; line-height: 1.9; color: #435870; }
.review-card figcaption { margin-top: auto; border-top: 1px solid var(--line); padding-top: 18px; font-size: 12px; }
.review-card figcaption strong { display: block; font-weight: 600; }
.review-card figcaption span { display: block; font-size: 11px; color: var(--muted); margin-top: 3px; }
.review-card figcaption time { display: block; font-size: 10px; color: var(--muted); margin-top: 8px; }
.reviews-toggle { display: block; margin: 25px auto 0; }
.club-panel { display: grid; grid-template-columns: 1.4fr 1fr; align-items: center; gap: 50px; padding: 48px; background: var(--ink); color: white; border-radius: var(--radius); }
.club-panel .eyebrow { color: #b8d2eb; }
.club-panel p { color: #c5d3e2; font-size: 14px; line-height: 1.85; margin: 18px 0 0; }
.club-panel .button { margin-top: 25px; }
.question-bank { border: 1px solid var(--line); border-radius: 12px; background: white; overflow: hidden; }
.question-bank summary { padding: 22px 25px; cursor: pointer; font-size: 14px; font-weight: 600; }
.table-scroll { overflow-x: auto; }
.question-bank table { width: 100%; border-collapse: collapse; font-size: 12px; text-align: left; }
.question-bank caption { text-align: left; padding: 0 25px 20px; color: var(--muted); }
.question-bank th, .question-bank td { padding: 13px 25px; border-top: 1px solid var(--line); }
.question-bank thead { background: #eef3f9; }
.question-bank tbody tr:hover { background: #f8fafd; }
.closing-cta { text-align: center; padding: 70px 20px; }
.closing-cta p { margin: 15px 0 23px; color: var(--muted); }


.auth-layout { display: grid; grid-template-columns: 1fr 1fr; gap: 90px; align-items: center; padding-block: 75px; max-width: 1040px; }
.auth-card { background: white; border: 1px solid var(--line); border-radius: var(--radius); padding: 35px; box-shadow: 0 15px 40px #20364d04; }
.auth-card h2 { font-size: 23px; font-weight: 550; letter-spacing: -.03em; margin: 0 0 5px; }
.auth-card .auth-subtitle { font-size: 13px; color: var(--muted); margin-bottom: 27px; }
.auth-card label { font-size: 12px; font-weight: 600; }
.auth-card .button { width: 100%; }
.auth-footer { margin-top: 25px; font-size: 12px; text-align: center; color: var(--muted); }
.auth-footer a { color: var(--accent); font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
.registration-layout { align-items: start; }
.registration-layout .auth-card { padding: 30px; }
.dashboard-page { padding-block: 45px 65px; }
.dashboard-heading { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-bottom: 32px; }
.dashboard-heading h1 { margin: 7px 0 5px; font-size: 32px; font-weight: 550; letter-spacing: -.04em; overflow-wrap: anywhere; }
.dashboard-heading p { font-size: 13px; color: var(--muted); }
.dashboard-layout { display: flex; gap: 28px; align-items: start; }
.dashboard-sidebar { width: 230px; flex-shrink: 0; position: sticky; top: 24px; }
.dashboard-sidebar > div { padding: 20px 12px; background: transparent; border: 1px solid var(--line); border-radius: 12px; box-shadow: none; }
.dashboard-sidebar nav { margin-top: 17px; }
.dashboard-sidebar .eyebrow { padding-left: 12px; }
.dashboard-sidebar .dashboard-link { display: flex; align-items: center; min-height: 43px; padding: 10px 13px; border-radius: 7px; font-size: 12px; color: var(--muted); }
.dashboard-sidebar .dashboard-link:hover { color: var(--ink); background: var(--soft); }
.dashboard-sidebar .dashboard-link[aria-current=page] { color: white; background: var(--primary); }
.dashboard-content { flex: 1; min-width: 0; }
.dashboard-content > div { border-radius: 14px; box-shadow: none; border-color: var(--line); }
.learning-empty { padding: 30px 15px; text-align: center; }
.learning-empty .caption-icon { margin: 0 auto 18px; }
.learning-empty h2 { font-size: 21px; font-weight: 550; letter-spacing: -.025em; }
.learning-empty p { max-width: 340px; margin: 12px auto 22px; font-size: 13px; color: var(--muted); }
.test-intro { max-width: 650px; margin-inline: auto; padding: 50px 24px 70px; }
.test-intro h1 { font-size: 34px; font-weight: 550; letter-spacing: -.04em; line-height: 1.2; margin: 18px 0 8px; color: var(--ink); }
.test-intro .test-subtitle { color: var(--muted); margin-bottom: 28px; }
.test-intro > .test-card { padding: 30px; border: 1px solid var(--line); border-radius: var(--radius); background: white; box-shadow: 0 12px 35px #20364d04; }
.test-facts { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; padding-bottom: 24px; margin-bottom: 24px; border-bottom: 1px solid var(--line); }
.test-facts div { display: flex; align-items: center; gap: 12px; }
.test-facts .ui-icon { color: var(--accent); }
.test-facts strong { display: block; font-size: 18px; font-weight: 550; }
.test-facts small { display: block; font-size: 11px; color: var(--muted); }
.test-intro label { text-align: left; }
.test-intro select { margin-top: 8px; }
.test-intro button[type=submit]:not(:disabled) { background: var(--primary); min-height: 48px; }
.test-intro button[type=submit]:not(:disabled):hover { background: var(--primary-hover); }
.test-page { width: min(820px, calc(100% - 40px)); margin: 0 auto; padding: 42px 0 130px; }
.test-page-heading { display: flex; justify-content: space-between; align-items: center; gap: 25px; margin-bottom: 30px; }
.test-page-heading h1 { font-size: 27px; font-weight: 550; letter-spacing: -.035em; line-height: 1.3; margin: 10px 0; }
.test-page-heading p { color: var(--muted); font-size: 13px; }
.test-timer { position: sticky; top: 12px; margin: 0 0 24px auto; z-index: 40; width: fit-content; display: flex; align-items: center; gap: 9px; background: var(--ink); color: white; border-radius: 8px; padding: 10px 15px; font-size: 12px; box-shadow: 0 3px 10px #20364d10; }
.test-timer #timer { font-variant-numeric: tabular-nums; }
.question-card { padding: 28px; border-radius: 14px; border: 1px solid var(--line); background: white; margin-bottom: 22px; scroll-margin-top: 24px; }
.question-card > p { line-height: 1.8; }
.answer-option { display: flex; align-items: baseline; border: 1px solid var(--line); border-radius: 8px; padding: 13px 16px; font-size: 14px; transition: background .15s, border-color .15s; }
.answer-option strong { font-size: 11px; display: inline-flex; align-items: center; justify-content: center; width: 25px; height: 25px; background: #eef2f7; border-radius: 5px; margin-right: 12px; flex-shrink: 0; }
.answer-option:hover { background: #f3f7fc; border-color: #adc4dd; }
.question-card input:checked + .answer-option { background: #eaf2fb; border-color: var(--accent); color: #2b5278; }
.question-card input:checked + .answer-option strong { background: var(--accent); color: white; }
.question-card input:focus-visible + .answer-option { outline: 3px solid #488ab5; outline-offset: 3px; }
.test-session .site-footer { padding-bottom: 160px; }
.test-session #submit-area { border-color: var(--line); }
.test-session #submit-button { border-radius: 8px; min-height: 44px; }
.pricing-page { max-width: 960px; padding-block: 60px 75px; }
.pricing-header { text-align: center; margin-bottom: 38px; }
.pricing-header h1 { font-size: 43px; letter-spacing: -.045em; line-height: 1.15; font-weight: 550; margin: 15px 0; }
.pricing-header p { color: var(--muted); max-width: 500px; margin-inline: auto; }
.pricing-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.price-card { border: 1px solid var(--line); background: white; border-radius: var(--radius); padding: 32px; display: flex; flex-direction: column; }
.price-card h2 { font-size: 23px; font-weight: 550; margin: 10px 0; }
.price-card > p { color: var(--muted); font-size: 13px; }
.price-card ul { list-style: none; padding: 24px 0; margin: 24px 0; border-block: 1px solid var(--line); display: grid; gap: 15px; font-size: 13px; }
.price-card li { display: flex; align-items: start; gap: 10px; }
.price-card li .ui-icon { width: 18px; height: 18px; color: var(--accent); }
.price-card .button { margin-top: auto; }
.price-card-featured { border-color: #a2bcd7; background: #eff4fa; }
.pricing-legal { margin: 25px auto 40px; text-align: center; color: var(--muted); font-size: 11px; max-width: 650px; }


.site-footer { background: #edf2f8; border-top: 1px solid var(--line); }
.cookie-banner { position: fixed; z-index: 80; bottom: 20px; left: 20px; max-width: 410px; padding: 23px; background: #fff; border: 1px solid var(--line); box-shadow: 0 8px 40px #20364d24; border-radius: 13px; }
.cookie-banner strong { font-size: 13px; font-weight: 600; }
.cookie-banner p { font-size: 12px; color: var(--muted); margin: 8px 0 18px; }
.cookie-banner p a { text-decoration: underline; text-underline-offset: 3px; }
.cookie-actions { display: flex; justify-content: end; gap: 8px; }

@media (max-width: 1100px) {
  .desktop-nav { gap: 20px; }
  .auth-layout { gap: 45px; }
}
@media (max-width: 899px) {
  .site-container { width: calc(100% - 48px); }
  .header-inner { min-height: 77px; }
  .brand img { width: 187px; }
  .desktop-nav { display: none; }
  .mobile-menu-trigger { display: inline-flex; }
  .club-panel { gap: 25px; padding: 32px; }
  .dashboard-layout { flex-direction: column; }
  .dashboard-sidebar { width: 100%; position: static; }
  .dashboard-desktop-nav { display: none; }
  .account-mobile-menu { display: block; }
  .dashboard-content { width: 100%; }
}
@media (max-width: 639px) {
  .site-container { width: calc(100% - 40px); }
  .home-section { padding-block: 48px; }
  .section-heading { align-items: start; flex-direction: column; gap: 15px; }
  .section-heading h2 { font-size: 30px; }
  .review-card { padding: 23px; }
  .club-panel { padding: 29px 24px; gap: 30px; }
  .question-bank summary { padding: 20px; }
  .question-bank th, .question-bank td { padding: 12px 16px; }
  .closing-cta { padding-block: 48px; }
  .closing-cta p { font-size: 14px; }
  .auth-layout { padding-block: 38px 50px; gap: 27px; }
  .auth-card, .registration-layout .auth-card { padding: 25px; }
  .dashboard-heading { align-items: start; flex-direction: column; }
  .dashboard-page { padding-top: 30px; }
  .dashboard-heading h1 { font-size: 27px; }
  .test-intro { padding-top: 32px; }
  .test-intro h1 { font-size: 29px; }
  .test-intro > .test-card { padding: 23px; }
  .test-page { padding-top: 28px; }
  .test-page-heading h1 { font-size: 24px; }
  .question-card { padding: 21px 17px; }
  .answer-option { padding: 12px; font-size: 13px; }
  .pricing-header h1 { font-size: 36px; }
  .price-card { padding: 27px; }
  .cookie-banner { left: 12px; right: 12px; bottom: 12px; max-width: none; padding: 20px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}

.home-hero { position: relative; width: 100%; height: 38rem; overflow: hidden; }
.home-hero img { width: 100%; height: 100%; object-fit: cover; object-position: center; }
.home-introduction { max-width: 1024px; padding-block: 64px; text-align: center; }
.home-heading { font-size: clamp(26px, 3vw, 34px); font-weight: 550; letter-spacing: -.035em; line-height: 1.3; margin-bottom: 24px; }
.home-introduction-copy { font-size: 17px; line-height: 1.85; color: var(--muted); }
.home-introduction-copy p + p { margin-top: 20px; }
.home-introduction-copy .button { margin-top: 28px; }
.home-features { background: #edf2f8; border-block: 1px solid var(--line); }
.home-feature-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.home-feature { background: white; border: 1px solid var(--line); border-radius: 12px; padding: 28px; }
.home-feature h3 { color: var(--ink); font-size: 17px; }
.home-feature p { color: var(--muted); font-size: 14px; line-height: 1.8; }
.feature-icon { margin-bottom: 18px; color: var(--accent); }
.feature-icon svg { width: 28px; height: 28px; margin: 0; }
.home-clubs-copy { max-width: 850px; text-align: center; }
.home-legal { padding-block: 20px; color: var(--muted); font-size: 11px; text-align: center; }
.footer-compact { padding-block: 19px; display: flex; align-items: center; justify-content: space-between; gap: 16px; font-size: 12px; color: var(--muted); }
.footer-compact nav { display: flex; flex-wrap: wrap; gap: 12px 22px; }
.footer-compact a:hover { color: var(--accent); text-decoration: underline; }
.nav-dropdown-panel { padding: 10px; }
.nav-dropdown-panel::before { content: ''; position: absolute; top: -12px; left: 0; right: 0; height: 12px; }
.academy .button:disabled, .academy .button:disabled:hover { background: #e5eaf1; border-color: #d4ddea; color: #6b7a8d; cursor: not-allowed; transform: none; }
.academy .button-danger { background: #a84742; border-color: #a84742; }
.academy .button-danger:hover { background: #8c3935; border-color: #8c3935; }
.auth-simple { display: block; max-width: 510px; padding-block: 50px; }
.auth-simple .auth-card h1 { font-size: 27px; font-weight: 550; letter-spacing: -.035em; margin-bottom: 28px; }
.registration-layout { max-width: 580px; }
.account-surface { background: white; border: 1px solid var(--line); border-radius: 14px; }
.account-section { padding: 30px; min-width: 0; }
.account-ui #main-content > .account-section { width: min(var(--site-width), calc(100% - 64px)); margin: 40px auto; background: white; border: 1px solid var(--line); border-radius: 14px; }
.account-ui #main-content { padding-bottom: 30px; }
.account-ui h1 { color: var(--ink); font-size: 27px; font-weight: 550; letter-spacing: -.035em; line-height: 1.3; text-align: left; }
.account-ui h2 { color: var(--ink); font-weight: 550; letter-spacing: -.025em; }
.account-ui .account-panel { box-shadow: none; border: 1px solid var(--line); border-radius: 12px; }
.account-ui .text-blue-600, .account-ui .text-blue-700, .account-ui .text-indigo-600 { color: var(--accent); }
.account-ui .bg-blue-50, .account-ui .bg-indigo-50 { background-color: var(--soft); }
.account-ui .bg-green-50, .account-ui .bg-green-100 { background-color: var(--success-soft); }
.account-ui .bg-blue-100 { background-color: #e1ebf7; }
.account-ui .border-blue-500 { border-color: var(--accent); }
.account-ui .bg-green-500, .account-ui .bg-green-600 { background-color: var(--success); }
.account-ui .bg-yellow-300, .account-ui .bg-yellow-400 { background-color: #d1ab60; }
.account-ui .bg-red-500, .account-ui .bg-red-600 { background-color: #b4544c; }
.account-ui .text-green-600, .account-ui .text-green-700, .account-ui .text-green-800 { color: var(--success-text); }
.account-ui .text-red-600, .account-ui .text-red-700 { color: #a84742; }
.account-ui .shadow, .account-ui .shadow-sm { box-shadow: none; }
.account-ui details { border-color: var(--line); background: #f8fafd; }
.account-ui details summary { font-size: 13px; color: var(--ink); }
.account-ui label { font-size: 13px; font-weight: 550; }
.account-ui .question-tile { max-width: 100%; }
.account-ui .question-tile:has(input:checked) { background: #eaf2fb; border-color: var(--accent); }
.account-ui .question-tile:hover { background: #f0f5fb; }
.account-ui .account-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.account-ui .account-table thead { background: #eef3f9; color: var(--muted); font-size: 11px; letter-spacing: .03em; }
.account-ui .account-table th { font-weight: 600; white-space: nowrap; }
.account-ui .account-table th, .account-ui .account-table td { padding: 14px 18px; border-color: var(--line); }
.account-ui .account-table td { border-bottom: 1px solid var(--line); }
.account-ui .account-table tbody tr:last-child td { border-bottom: 0; }
.account-ui .account-table tbody tr:hover { background: #f7f9fc; }
.account-ui .account-table a { color: var(--accent); text-decoration: underline; text-underline-offset: 3px; }
.settings-content { max-width: 720px; }
.settings-section { border-top: 1px solid var(--line); padding-top: 25px; margin-top: 25px; }
.settings-section h2 { font-size: 19px; }
.settings-section select { max-width: 360px; display: block; }
.settings-danger h2 { color: #a84742; }
.account-page-narrow { max-width: 680px; padding-block: 40px; }
.password-panel { background: white; padding: 30px; }
.password-panel input { width: 100%; display: block; margin-top: 7px; }
.password-panel .errorlist { color: #a84742; font-size: 13px; }
.test-toolbar { position: fixed; bottom: 0; left: 0; width: 100%; z-index: 50; background: #f6f8fbf5; backdrop-filter: blur(12px); border-top: 1px solid var(--line); padding-bottom: env(safe-area-inset-bottom); }
.test-toolbar-inner { width: min(1120px, calc(100% - 48px)); margin-inline: auto; display: flex; align-items: center; justify-content: space-between; gap: 24px; padding-block: 15px; }
.test-progress { min-width: 0; }
.test-progress-label { font-size: 11px; color: var(--muted); margin-bottom: 8px; font-variant-numeric: tabular-nums; }
.question-index { display: flex; flex-wrap: wrap; gap: 6px; }
.question-index-item { width: 29px; height: 29px; flex-shrink: 0; display: inline-flex; align-items: center; justify-content: center; border: 1px solid #c7d3e0; border-radius: 50%; color: #60758c; background: white; font-size: 11px; font-weight: 600; font-variant-numeric: tabular-nums; }
.question-index-item:hover { border-color: var(--accent); }
.question-index-item.is-answered { background: var(--accent); border-color: var(--accent); color: white; }
.question-index-item.is-correct { background: var(--success); border-color: var(--success); color: white; }
.question-index-item.is-incorrect { background: #f6e8e5; color: #9b4741; border-color: #cda09b; }
.test-toolbar .button { flex-shrink: 0; min-height: 46px; }
.result-summary { display: flex; align-items: center; gap: 28px; padding: 26px 30px; margin-bottom: 30px; border: 1px solid var(--line); border-radius: 14px; background: white; }
.result-score { font-size: 52px; line-height: 1; font-weight: 550; letter-spacing: -.04em; font-variant-numeric: tabular-nums; }
.result-score > span { font-size: 25px; }
.result-passed .result-score { color: var(--success); }
.result-failed .result-score { color: #a84742; }
.result-summary p { color: var(--muted); font-size: 13px; margin-top: 10px; }
.status-badge { display: inline-flex; align-items: center; padding: 4px 10px; border: 1px solid var(--line); border-radius: 5px; font-size: 11px; font-weight: 600; }
.status-success { color: var(--success-text); border-color: var(--success-line); background: var(--success-soft); }
.status-error { color: #9b4741; border-color: #e0bdb7; background: #fcf0ed; }
.result-question-heading { display: flex; justify-content: space-between; align-items: center; margin-bottom: 17px; }
.question-number { color: var(--muted); font-size: 12px; }
.result-answer { align-items: start; }
.result-answer:hover { background: white; border-color: var(--line); }
.result-answer.answer-correct { background: var(--success-soft); border-color: var(--success-line); color: var(--success-text); }
.result-answer.answer-correct strong { background: var(--success); color: white; }
.result-answer.answer-incorrect { background: #fcf0ed; border-color: #d5a7a0; color: #8f3e37; }
.result-answer.answer-incorrect strong { background: #a84742; color: white; }
.answer-note { display: block; font-size: 11px; font-weight: 600; margin-top: 6px; }
.result-question-footer { margin-top: 20px; padding-top: 15px; border-top: 1px solid var(--line); }
.answer-explanation summary { color: var(--accent); cursor: pointer; font-size: 13px; font-weight: 550; }
.answer-explanation p { background: #f0f5fb; border-radius: 8px; padding: 16px; margin-top: 12px; font-size: 14px; line-height: 1.8; }
.report-link { display: block; margin: 14px 0 0 auto; color: var(--muted); font-size: 11px; text-decoration: underline; text-underline-offset: 3px; }
.report-dialog { width: min(460px, calc(100% - 32px)); padding: 28px; border: 1px solid var(--line); border-radius: 14px; color: var(--ink); }
.report-dialog::backdrop { background: #20364d66; backdrop-filter: blur(3px); }
.report-dialog h2 { font-size: 21px; font-weight: 550; margin-bottom: 20px; }
.report-dialog label { display: block; font-size: 13px; margin-bottom: 8px; }
.dialog-actions { display: flex; justify-content: end; gap: 10px; margin-top: 18px; }
.report-error { color: #a84742; font-size: 13px; margin-top: 10px; }
.training-heading { margin-bottom: 24px; }
.training-heading p { margin-top: 8px; color: var(--muted); font-size: 14px; }
.training-student-filter { display: flex; align-items: center; gap: 16px; padding-bottom: 26px; border-bottom: 1px solid var(--line); margin-bottom: 28px; }
.training-student-filter label { white-space: nowrap; }
.training-student-filter select { width: 360px; }
.training-report { min-width: 0; }
.training-report-heading { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 14px; margin-bottom: 20px; }
.training-report-heading h2 { font-size: 18px; line-height: 1.4; }
.training-legend { display: flex; flex-wrap: wrap; gap: 12px; list-style: none; padding: 0; color: var(--muted); font-size: 11px; }
.training-legend li { display: flex; align-items: center; gap: 5px; white-space: nowrap; }
.score-key { display: inline-block; width: 8px; height: 8px; border-radius: 50%; }
.training-legend .score-low { background: #b4544c; }
.training-legend .score-medium { background: #c49945; }
.training-legend .score-high { background: var(--success); }
.training-period { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 14px; }
.training-period-label { font-size: 12px; color: var(--muted); font-variant-numeric: tabular-nums; }
.training-period-buttons { display: flex; gap: 6px; }
.training-period-buttons button { padding: 7px 11px; min-height: 36px; border: 1px solid var(--line); border-radius: 6px; background: white; color: var(--ink); font-size: 12px; }
.training-period-buttons button:hover:not(:disabled) { background: var(--soft); border-color: #adc4dd; }
.training-period-buttons button:disabled { color: #8796a8; background: #f6f8fb; }
.training-table-container { max-width: 100%; overflow-x: auto; border: 1px solid var(--line); border-radius: 10px; }
.training-table { width: 100%; border-collapse: collapse; text-align: center; font-size: 13px; }
.is-paged .training-table { table-layout: fixed; }
.training-table th, .training-table td { padding: 13px 8px; border-bottom: 1px solid var(--line); vertical-align: middle; }
.training-table thead th { background: #eef3f9; color: var(--ink); font-size: 12px; font-weight: 600; line-height: 1.5; min-width: 76px; }
.training-table th:first-child { text-align: left; padding-left: 18px; width: var(--topic-width, 220px); }
.training-table tbody th { font-weight: 500; line-height: 1.5; overflow-wrap: anywhere; }
.training-table tr:last-child > * { border-bottom: 0; }
.training-table tbody tr:hover { background: #f8fafd; }
.training-week-year { display: block; font-size: 10px; font-weight: 400; color: var(--muted); }
.training-score { display: inline-block; min-width: 49px; padding: 6px 5px; border-radius: 6px; font-size: 12px; font-weight: 600; font-variant-numeric: tabular-nums; }
.training-score.score-low { color: #9b4741; background: #f8eeeb; }
.training-score.score-medium { color: #886120; background: #f7f1e2; }
.training-score.score-high { color: var(--success-text); background: var(--success-soft); }
.score-missing { color: #8796a8; }
.training-empty { padding-block: 10px; color: var(--muted); font-size: 14px; }
@media (max-width: 899px) {
  .home-feature-grid { grid-template-columns: repeat(2, 1fr); }
  .footer-compact { flex-direction: column; align-items: start; gap: 10px; }
  .account-section { padding: 24px; }
}
@media (max-width: 639px) {
  .home-hero { height: 26rem; }
  .training-student-filter { flex-direction: column; align-items: stretch; gap: 8px; padding-bottom: 20px; margin-bottom: 24px; }
  .training-student-filter select { width: 100%; }
  .training-table th:first-child { padding-left: 12px; }
  .training-table th, .training-table td { padding-block: 14px; font-size: 12px; }
  .review-grid, .club-panel, .pricing-grid { grid-template-columns: 1fr; }
  .home-introduction { padding-block: 40px; }
  .home-introduction-copy { font-size: 15px; }
  .home-feature-grid { grid-template-columns: 1fr; }
  .home-feature { padding: 24px; }
  .home-heading { font-size: 27px; }
  .account-section { padding: 23px 17px; }
  .account-ui h1 { font-size: 24px; }
  .account-ui .account-panel { padding: 20px; }
  .account-ui .account-table th, .account-ui .account-table td { padding: 12px; }
  .account-ui .account-table { font-size: 12px; }
  .account-ui #main-content > .account-section { width: calc(100% - 32px); margin-block: 24px; }
  .footer-compact { font-size: 11px; padding-block: 15px; }
  .footer-compact nav { gap: 8px 16px; }
  .test-toolbar-inner { width: calc(100% - 32px); flex-wrap: wrap; gap: 12px; padding-block: 12px; }
  .test-progress { width: 100%; }
  .test-toolbar .button { width: 100%; min-height: 42px; padding-block: 10px; }
  .question-index { gap: 4px; }
  .question-index-item { width: 25px; height: 25px; font-size: 10px; }
  .result-summary { gap: 22px; padding: 24px; }
  .result-score { font-size: 44px; }
  .test-session .site-footer { padding-bottom: 185px; }
}

.account-nav-group + .account-nav-group { border-top: 1px solid var(--line); margin-top: 15px; padding-top: 15px; }
.account-nav-label { padding: 0 13px; margin-bottom: 6px; font-size: 10px; color: var(--muted); font-weight: 600; letter-spacing: .1em; text-transform: uppercase; }
.account-mobile-menu { background: white; border: 1px solid var(--line); border-radius: 10px; }
.account-mobile-menu summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; cursor: pointer; list-style: none; padding: 13px 17px; }
.account-mobile-menu summary::-webkit-details-marker, .mobile-account-menu summary::-webkit-details-marker { display: none; }
.account-menu-label { display: block; color: var(--muted); font-size: 10px; margin-bottom: 2px; }
.account-mobile-menu summary strong { font-size: 13px; font-weight: 600; }
.account-mobile-menu summary .ui-icon, .mobile-account-menu summary .ui-icon { width: 17px; height: 17px; transition: transform .2s; }
.account-mobile-menu[open] > summary .ui-icon, .mobile-account-menu[open] > summary .ui-icon { transform: rotate(180deg); }
.dashboard-sidebar .account-mobile-menu nav { margin: 0; padding: 16px 10px; border-top: 1px solid var(--line); }
.review-expansion { overflow: hidden; }
.review-expansion > .review-grid { padding-top: 20px; }
.navigation-open, .navigation-open body { overflow: hidden; }
.mobile-menu-trigger, .mobile-menu-close { align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: 8px; color: var(--ink); background: transparent; cursor: pointer; }
.mobile-menu-trigger:hover, .mobile-menu-close:hover { background: var(--soft); }
.mobile-menu-close { display: inline-flex; }
.mobile-drawer { position: fixed; inset: 0 0 0 auto; margin: 0; padding: 0; width: min(360px, calc(100% - 24px)); max-width: none; height: 100%; height: 100dvh; max-height: none; border: 0; background: white; color: var(--ink); box-shadow: -12px 0 50px #20364d20; }
.mobile-drawer[open] { display: flex; flex-direction: column; }
.mobile-drawer::backdrop { background: #14283c66; animation: navigation-backdrop .26s ease-out both; }
.mobile-drawer.is-closing::backdrop { animation: navigation-backdrop .18s ease-in reverse both; }
@keyframes navigation-backdrop { from { opacity: 0; } to { opacity: 1; } }
.mobile-drawer-header { display: flex; justify-content: space-between; align-items: center; padding: max(14px, env(safe-area-inset-top)) 18px 14px; border-bottom: 1px solid var(--line); flex-shrink: 0; }
.mobile-drawer-header h2 { font-size: 17px; font-weight: 600; }
.mobile-drawer-links { flex: 1; overflow-y: auto; overscroll-behavior: contain; padding: 12px; }
.mobile-drawer-links a { display: flex; align-items: center; justify-content: space-between; min-height: 47px; padding: 12px 13px; gap: 12px; border-radius: 7px; font-size: 15px; }
.mobile-drawer-links a:hover, .mobile-drawer-links a[aria-current=page] { background: var(--soft); color: var(--accent); }
.mobile-drawer-links a[aria-current=page] { font-weight: 600; }
.mobile-drawer-links .ui-icon { width: 16px; height: 16px; color: var(--muted); }
.mobile-home-link { font-weight: 600; }
.mobile-topic-links { padding-top: 16px; margin-top: 8px; border-top: 1px solid var(--line); }
.mobile-account-menu { border-top: 1px solid var(--line); margin-top: 16px; padding-top: 6px; }
.mobile-account-menu summary { display: flex; align-items: center; justify-content: space-between; padding: 13px; list-style: none; cursor: pointer; font-size: 15px; font-weight: 600; }
.mobile-account-menu .account-nav-group { margin: 8px 0 0; padding-top: 8px; border: 0; }
.mobile-drawer-footer { display: flex; align-items: center; gap: 10px; padding: 16px 18px max(16px, env(safe-area-inset-bottom)); background: var(--paper); border-top: 1px solid var(--line); flex-shrink: 0; }
.mobile-drawer-footer .button { flex: 1; padding: 12px; min-height: 44px; font-size: 13px; }
.mobile-user { display: flex; align-items: center; gap: 11px; flex: 1; min-width: 0; }
.mobile-avatar { display: grid; place-items: center; width: 40px; height: 40px; flex-shrink: 0; background: var(--soft); color: var(--accent); border: 1px solid var(--line); border-radius: 50%; font-weight: 600; }
.mobile-user > span:last-child { min-width: 0; }
.mobile-user strong { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 13px; font-weight: 600; }
.mobile-user small { display: block; font-size: 11px; color: var(--muted); }
.mobile-logout { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 8px; color: var(--muted); }
.mobile-logout:hover { background: var(--soft); color: var(--ink); }
.mobile-logout .ui-icon { width: 20px; height: 20px; }
.club-request-page { max-width: 620px; padding-block: 50px 65px; }
.club-request-page h1 { font-size: 27px; font-weight: 550; letter-spacing: -.035em; line-height: 1.3; margin-bottom: 28px; }
.club-request-form { display: grid; gap: 23px; }
.club-request-form label { display: block; margin-bottom: 7px; }
.club-request-form input, .club-request-form textarea { width: 100%; box-shadow: none; }
.club-request-form textarea { min-height: 150px; height: 170px; resize: vertical; }
.form-errors { color: #a84742; font-size: 12px; margin-top: 7px; }
.field-help { color: var(--muted); font-size: 12px; margin-top: 7px; }
.club-request-success p { color: var(--muted); font-size: 14px; margin-bottom: 25px; }
.request-success-icon { display: inline-flex; padding: 10px; border-radius: 50%; background: var(--success-soft); color: var(--success); margin-bottom: 22px; }
@media (min-width: 640px) and (max-width: 899px) {
  .dashboard-sidebar .account-mobile-menu nav { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
  .account-mobile-menu .account-nav-group + .account-nav-group { border: 0; padding: 0; margin: 0; }
}
@media (max-width: 639px) {
  .club-request-page { padding-block: 30px 45px; }
  .club-request-page .auth-card { padding: 25px 21px; }
  .club-request-page h1 { font-size: 24px; }
}
