.exam-timer-settings,.exam-rankings,.exam-ready{border:1px solid #bdcbd7;border-radius:12px;padding:16px;margin:14px 0;background:#f6f9fc;color:#17324a}
.exam-timer-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}
.exam-timer-grid fieldset{min-width:0;border:1px solid #bdcbd7;border-radius:8px;padding:12px}
.exam-timer-grid legend{font-weight:700}
.exam-timer-grid select,.ranking-filters select{display:block;max-width:100%;min-height:40px;margin:6px 0;padding:7px;border:1px solid #9bafbf;border-radius:6px;background:#fff;color:#17324a}
.exam-timer-grid input[type=number]{width:70px;min-height:38px;padding:6px;margin:5px;border:1px solid #9bafbf;border-radius:6px;background:#fff;color:#17324a}
.exam-timer-settings p,.exam-rankings p,.exam-ready p{font-size:14px;line-height:1.5}
.exam-timer-settings h3{margin:0 0 12px}.exam-ready h3{margin-top:0}
.exam-timer-bar{position:sticky;top:72px;z-index:40;display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:12px 16px;margin:16px 0;border:1px solid #227b6f;border-radius:10px;background:#e8f7f0;color:#16473e;box-shadow:0 3px 12px #0001}
.exam-timer-bar[hidden],.exam-ready[hidden]{display:none}
.exam-timer-bar.is-submitted{position:static}
.exam-timer-bar strong{font-size:22px;font-variant-numeric:tabular-nums;letter-spacing:1px}
.exam-timer-bar small{flex-basis:100%;font-size:12px}.exam-timer-bar.time-low{background:#fff0e5;border-color:#ba3a10;color:#822b10}
.exam-rankings summary{cursor:pointer;font-size:18px;font-weight:700}.ranking-filters{display:flex;flex-wrap:wrap;align-items:end;gap:12px;margin:14px 0}
.ranking-filters label{flex:1;min-width:130px}.ranking-filters label:last-of-type{flex:2;min-width:200px}
.ranking-table-wrap{overflow-x:auto}.exam-rankings table{width:100%;border-collapse:collapse;font-size:14px}
.exam-rankings th,.exam-rankings td{padding:10px 8px;text-align:left;border-bottom:1px solid #bdcbd7;white-space:nowrap}
.exam-rankings th:nth-child(2),.exam-rankings td:nth-child(2){white-space:normal;min-width:140px;max-width:250px;overflow-wrap:anywhere}
.ranking-self{background:#dcefe8;font-weight:700}.exam-rankings button,.exam-ready button{margin:5px}
.dark-mode .exam-timer-settings,.dark-mode .exam-rankings,.dark-mode .exam-ready{background:#1d2935;color:#edf4f8;border-color:#4c6170}
.dark-mode .exam-timer-grid fieldset,.dark-mode .exam-rankings td,.dark-mode .exam-rankings th{border-color:#4c6170}
.dark-mode .exam-timer-grid input[type=number],.dark-mode .exam-timer-grid select,.dark-mode .ranking-filters select{background:#111b24;color:#edf4f8;border-color:#5e788a}
.dark-mode .exam-timer-bar{background:#163e35;color:#d9fff0;border-color:#4eac91}.dark-mode .exam-timer-bar.time-low{background:#4a2415;color:#ffe3d2;border-color:#d87648}.dark-mode .ranking-self{background:#204d42}
body.exam-expanded .exam-timer-bar{top:8px}
@media(max-width:650px){body.site-page>main>.left-column,body.site-page>main>.right-column{flex:1 1 100%;min-width:0;width:100%}.exam-timer-grid{grid-template-columns:minmax(0,1fr)}}
@media(max-width:768px){.exam-rankings[open]~#exam-layout #sidebar-controls{position:static;transform:none;max-width:100%;width:100%}.exam-rankings{scroll-margin-top:180px}}
@media print{.exam-timer-settings,.exam-timer-bar,.exam-rankings,.exam-ready{display:none!important}}

/* Bubble leaderboard: the same five local avatars in the welcome card and board. */
.hero-leaderboard{margin:28px auto 22px;width:100%;max-width:640px;box-sizing:border-box;padding:20px 8px 8px;border-top:1px solid #ffffff20;border-bottom:1px solid #ffffff20}
.hero-ranking-heading{display:flex;align-items:center;justify-content:center;gap:7px;flex-wrap:wrap;font-size:10px;font-weight:800;letter-spacing:.14em;color:#ffd19b}
.ranking-live-dot{width:6px;height:6px;flex:none;border-radius:50%;background:#fb923c;box-shadow:0 0 0 4px #fb923c14}
.hero-ranking-mode{font-size:10px;letter-spacing:0;font-weight:500;color:#bac9ed;padding-left:6px}
.exam-main-panel .hero-ranking-status{font-size:12px!important;line-height:1.45;color:#b9c9eb!important;margin:12px 0 4px!important}
.exam-main-panel .hero-ranking-link{display:inline-flex;align-items:center;gap:8px;padding:6px 10px;margin:0 0 6px;border:0;background:transparent;color:#fff;font-size:12px;font-weight:700;border-radius:6px;box-shadow:none}
.exam-main-panel .hero-ranking-link:hover{background:#ffffff12}.hero-ranking-link:focus-visible{outline:2px solid #fbba74;outline-offset:3px}

#examRankings{padding:0;overflow:hidden;border:1px solid #dce4ef;border-radius:22px;background:#fff;box-shadow:0 8px 28px #17324a08;color:#213248}
#examRankings>summary{display:flex;align-items:center;gap:12px;list-style:none;padding:20px 22px;font-size:19px;color:#172c50}
#examRankings>summary::-webkit-details-marker{display:none}
.ranking-summary-icon{display:grid;place-items:center;width:38px;height:38px;flex:none;border-radius:12px;background:#edf2ff;color:#315cbd;font-size:24px}
#examRankings>summary small{display:block;font-size:12px;font-weight:400;color:#748198;margin-top:3px}
.ranking-summary-chevron{margin-left:auto;color:#748198;transition:transform .2s}
#examRankings[open]>summary .ranking-summary-chevron{transform:rotate(180deg)}
#examRankings>summary:focus-visible{outline:3px solid #6c92e2;outline-offset:-4px}
.ranking-stage{position:relative;isolation:isolate;overflow:hidden;margin:0 16px 18px;padding:25px 20px 22px;border-radius:17px;background:radial-gradient(ellipse at 85% 0%,#365ba3 0%,transparent 55%),linear-gradient(130deg,#101f48,#193878 75%,#253765);color:#fff}
.ranking-stage::after{content:'';position:absolute;inset:auto -80px -165px;width:280px;height:230px;border-radius:50%;background:#fb923c19;filter:blur(36px);z-index:-1;pointer-events:none}
.ranking-stage-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}
.ranking-eyebrow{display:block;font-size:9px;font-weight:800;letter-spacing:.15em;line-height:1.4;color:#eebf8a}
#examRankings .ranking-stage h3{margin:7px 0 0;color:#fff;font-size:clamp(24px,3vw,31px);font-weight:750;line-height:1.15;letter-spacing:-.04em}
.ranking-period-pill{border:1px solid #ffffff29;background:#ffffff0d;color:#dbe6ff;padding:7px 10px;border-radius:30px;font-size:10px;white-space:nowrap}
#examRankings .ranking-stage-copy{margin:9px 0 0;color:#acbedf;font-size:12px;line-height:1.5}
.ranking-bubbles{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));align-items:end;gap:8px;padding:32px 0 4px;min-width:0;text-align:center}
.rank-spot{display:flex;flex-direction:column;align-items:center;min-width:0;position:relative;padding:14px 0 0;animation:rank-spot-in .28s ease-out both;animation-delay:var(--spot-delay,0ms)}
.rank-spot[data-slot="1"]{grid-column:3;grid-row:1;padding-top:0}
.rank-spot[data-slot="2"]{grid-column:2;grid-row:1}.rank-spot[data-slot="3"]{grid-column:4;grid-row:1}
.rank-spot[data-slot="4"]{grid-column:1;grid-row:1}.rank-spot[data-slot="5"]{grid-column:5;grid-row:1}
.rank-avatar-frame{position:relative;width:clamp(50px,6vw,76px);height:clamp(50px,6vw,76px);margin-bottom:16px;border-radius:50%;padding:4px;border:1px solid #a9bee24a;background:#ffffff08;box-shadow:0 7px 18px #08142c44}
.rank-spot[data-slot="1"] .rank-avatar-frame{width:clamp(68px,8vw,100px);height:clamp(68px,8vw,100px);margin-bottom:18px}
.rank-spot[data-rank="1"] .rank-avatar-frame{border-color:#f1be6c;background:#f6bd5f21;box-shadow:0 0 0 5px #f6bd5f0c,0 12px 28px #070f2944}
.rank-spot[data-rank="2"] .rank-avatar-frame{border-color:#bacbe5}.rank-spot[data-rank="3"] .rank-avatar-frame{border-color:#dda180}
.rank-avatar{border-radius:50%;overflow:hidden;width:100%;height:100%}.rank-avatar svg{display:block;width:100%;height:100%}
.rank-number{position:absolute;bottom:-10px;left:50%;transform:translateX(-50%);display:grid;place-items:center;min-width:28px;height:23px;border:1px solid #5d769e;border-radius:16px;background:#243d67;color:#dce9ff;font-size:10px;font-weight:800;padding:0 5px}
.rank-spot[data-rank="1"] .rank-number{background:#fac87d;color:#49321c;border-color:#ffe5b6}
.rank-crown{position:absolute;top:-24px;left:50%;width:27px;height:23px;transform:translateX(-50%) rotate(-7deg);color:#f7bd65;filter:drop-shadow(0 3px 5px #08142c66)}
.rank-crown svg{display:block;width:100%;height:100%}
.rank-username{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;overflow-wrap:anywhere;max-width:100%;min-height:34px;color:#f0f5ff;font-size:13px;font-weight:750;line-height:1.3}
.rank-you-label{position:absolute;top:15px;right:0;font-size:7px;font-weight:900;letter-spacing:.06em;padding:3px 5px;border-radius:20px;background:#b8e3d0;color:#184b3d}
.rank-ratio{display:block;margin-top:7px;color:#f7ce91;font-weight:750;font-size:15px;font-variant-numeric:tabular-nums;letter-spacing:-.025em}
.rank-score{display:block;margin-top:3px;font-size:9px;line-height:1.4;color:#a9bedf}
.rank-spot.is-unclaimed .rank-avatar{opacity:.55;filter:saturate(.65)}.rank-spot.is-unclaimed .rank-username{color:#adc0e0;font-weight:500}
.rank-spot.is-unclaimed .rank-number{background:#20375d;color:#a0b4d6;border-color:#577099}.rank-spot.is-unclaimed .rank-avatar-frame{border-style:dashed;border-color:#8099c375;box-shadow:none;background:transparent}
.rank-spot.is-unclaimed .rank-ratio{color:#a3b7d9}
.ranking-bubbles[aria-busy="true"]{opacity:.55;transition:opacity .15s}
.ranking-bubbles-compact{gap:8px;padding:30px 6px 0}.ranking-bubbles-compact .rank-avatar-frame{width:72px;height:72px;margin-bottom:15px}
.ranking-bubbles-compact .rank-spot[data-slot="1"] .rank-avatar-frame{width:94px;height:94px}
.ranking-bubbles-compact .rank-username{font-size:13px;min-height:34px}.ranking-bubbles-compact .rank-ratio{font-size:14px;margin-top:4px}.ranking-bubbles-compact .rank-score{display:none}
#examRankings .ranking-filters{gap:12px;margin:0 20px 16px;align-items:end;padding-bottom:18px;border-bottom:1px solid #e9edf4}
#examRankings .ranking-filters label{margin:0;font-size:10px;letter-spacing:.02em;color:#718098;font-weight:650}
#examRankings .ranking-filters label:last-of-type{min-width:170px}
#examRankings .ranking-filters select{width:100%;font-size:12px;margin:6px 0 0;border:1px solid #e2e7ef;background:#f7f9fc;border-radius:9px;min-height:40px;padding:8px 10px;color:#253e65}
#examRankings .ranking-filters button{font-size:11px;min-height:40px;margin:0;padding:8px 13px;border-radius:9px;background:#213f79}
#examRankings .ranking-status{margin:0 22px 14px;font-size:11px;color:#7a879b}
.ranking-personal{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;margin:0 20px 18px;padding:18px 20px;border:1px solid #dce6f5;border-radius:13px;background:linear-gradient(110deg,#f1f5fc,#fafcff)}
.ranking-personal .ranking-eyebrow{color:#7c8eaa;font-size:9px}
.ranking-personal-position{display:block;margin-top:5px;color:#234175;font-size:22px;font-weight:800;letter-spacing:-.035em}
.ranking-personal-stats{display:flex;gap:18px;flex-wrap:wrap}.ranking-personal-stat{display:flex;flex-direction:column;gap:4px}
.ranking-personal-stat strong{font-size:15px;font-weight:750;color:#2c446a;font-variant-numeric:tabular-nums}.ranking-personal-stat small{font-size:9px;color:#8090a6}
#examRankings .ranking-personal-note{margin:0;color:#7a8aa2;font-size:11px;max-width:220px}
.ranking-full-standings,.ranking-how-it-works{margin:0 20px 14px}
#examRankings .ranking-full-standings>summary{display:flex;justify-content:space-between;align-items:center;font-size:12px;font-weight:700;list-style:none;padding:10px 0;color:#365788}
#examRankings .ranking-full-standings>summary::-webkit-details-marker{display:none}
#examRankings .ranking-how-it-works>summary{font-size:11px;color:#8a96a8;font-weight:500;margin-bottom:10px}
#examRankings .ranking-how-it-works p{font-size:11px;line-height:1.6;color:#7a879b}
#examRankings .ranking-table-wrap{border:1px solid #e6ebf3;border-radius:10px;margin-bottom:12px}
#examRankings .ranking-table-wrap table{font-size:11px}.ranking-table-wrap caption{padding:10px;text-align:left;color:#8290a7;font-size:10px}
#examRankings .ranking-table-wrap th,#examRankings .ranking-table-wrap td{padding:10px 12px;border-bottom-color:#edf1f6}
#examRankings .ranking-table-wrap th{background:#f6f8fb;color:#73839a;font-size:9px;text-transform:uppercase;letter-spacing:.05em}
.dark-mode #examRankings{background:#152131;border-color:#304158;color:#e2eaf6}
.dark-mode #examRankings>summary{color:#e2eaf6}.dark-mode .ranking-summary-icon{background:#243a5e;color:#a9c4f5}
.dark-mode #examRankings .ranking-filters{border-color:#2b3a50}.dark-mode #examRankings .ranking-filters select{background:#1b2a40;border-color:#344760;color:#dbe7fa}
.dark-mode .ranking-personal{background:linear-gradient(110deg,#1c304e,#192a40);border-color:#324c70}
.dark-mode .ranking-personal-position,.dark-mode .ranking-personal-stat strong{color:#c3d6f5}
.dark-mode #examRankings .ranking-table-wrap{border-color:#304158}.dark-mode #examRankings .ranking-table-wrap th{background:#1d2e45;color:#b6c7df}
.dark-mode #examRankings .ranking-table-wrap td{border-color:#2b3a50}
.dark-mode #examRankings .ranking-full-standings>summary{color:#a9c4f5}
@keyframes rank-spot-in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:540px){
  #examRankings>summary{padding:16px;font-size:17px}.ranking-stage{margin:0 10px 16px;padding:20px 14px 18px}
  .ranking-stage-heading{align-items:start}.ranking-period-pill{font-size:9px;padding:6px 8px}
  .ranking-bubbles:not(.ranking-bubbles-compact){grid-template-columns:repeat(6,minmax(0,1fr));row-gap:20px;padding-top:30px}
  #rankingPodium .rank-spot[data-slot="1"]{grid-column:3/span 2;grid-row:1}#rankingPodium .rank-spot[data-slot="2"]{grid-column:1/span 2;grid-row:1}#rankingPodium .rank-spot[data-slot="3"]{grid-column:5/span 2;grid-row:1}
  #rankingPodium .rank-spot[data-slot="4"]{grid-column:2/span 2;grid-row:2}#rankingPodium .rank-spot[data-slot="5"]{grid-column:4/span 2;grid-row:2}
  #rankingPodium .rank-avatar-frame{width:60px;height:60px}#rankingPodium .rank-spot[data-slot="1"] .rank-avatar-frame{width:78px;height:78px}
  .rank-username{font-size:11px;min-height:29px}.rank-score{font-size:8px}.rank-you-label{top:10px;right:0}
  .hero-leaderboard{padding:18px 0 4px;margin:24px -4px 20px}.hero-ranking-mode{flex-basis:100%;padding-left:0;font-size:10px;margin-top:2px}
  .hero-ranking-heading{font-size:9px}.ranking-bubbles-compact{gap:4px;padding-left:0;padding-right:0}
  .ranking-bubbles-compact .rank-avatar-frame{width:36px;height:36px;padding:3px}.ranking-bubbles-compact .rank-spot[data-slot="1"] .rank-avatar-frame{width:49px;height:49px}
  .ranking-bubbles-compact .rank-number{font-size:8px;min-width:23px;height:19px;bottom:-9px}
  .ranking-bubbles-compact .rank-crown{width:22px;top:-21px}.ranking-bubbles-compact .rank-username{font-size:9px;min-height:25px}
  .ranking-bubbles-compact .rank-ratio{font-size:10px}.ranking-bubbles-compact .rank-you-label{font-size:6px;top:9px;right:-1px;padding:2px 3px}
  #examRankings .ranking-filters{margin:0 14px 14px;gap:10px}#examRankings .ranking-filters label{min-width:110px}#examRankings .ranking-filters label:last-of-type{flex-basis:100%}
  #examRankings .ranking-status{margin-left:16px;margin-right:16px}.ranking-personal{margin:0 12px 14px;padding:16px;gap:14px}
  .ranking-personal-position{font-size:20px}.ranking-personal-stats{gap:16px}.ranking-personal-stat strong{font-size:14px}
  .ranking-full-standings,.ranking-how-it-works{margin-left:16px;margin-right:16px}
}
@media(prefers-reduced-motion:reduce){.rank-spot{animation:none}.ranking-summary-chevron{transition:none}}
