*{box-sizing:border-box}:root{--leader-accent:#0a2a66;--leader-accent-2:#1d5cb2;--leader-ink:#172033;--leader-muted:#64748b;--leader-line:#dbe3ec;--leader-page:#f4f6f9;--leader-soft:#eef4ff;--leader-winner-text:#dbeafe;--leader-winner-soft:#bfdbfe}
body{margin:0;min-width:0;max-width:100%;overflow-x:hidden;padding-top:env(safe-area-inset-top);background:var(--leader-page);color:var(--leader-ink);font-family:Arial,sans-serif;font-size:13px}
body.tomo-leaderboard{--leader-accent:#0f766e;--leader-accent-2:#159f8f;--leader-soft:#e7f7f2;--leader-winner-text:#d8fff4;--leader-winner-soft:#a7f3d0;background:#f2fbf8}
.page{width:min(100%,760px);min-width:0;margin:auto;padding:0 12px calc(28px + env(safe-area-inset-bottom))}
.topbar{min-width:0;min-height:64px;display:flex;align-items:center;gap:9px;border-bottom:1px solid var(--leader-line)}
.topbar img{width:36px;height:36px;flex:0 0 auto;border-radius:9px}.topbar-copy{min-width:0}.topbar p,.topbar h1{margin:0}.topbar p{color:#e31d2b;font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.04em}.tomo-leaderboard .topbar p{color:var(--leader-accent)}.topbar h1{font-size:16px;margin-top:2px;overflow-wrap:anywhere}
.home{margin-left:auto;width:36px;height:36px;display:grid;place-items:center;flex:0 0 auto;border:1px solid var(--leader-line);border-radius:9px;background:#fff;color:var(--leader-accent);text-decoration:none}.home svg{width:17px}
.panel{min-width:0;overflow:hidden;border:1px solid var(--leader-line);border-radius:16px;background:#fff;box-shadow:0 10px 30px rgba(15,23,42,.05)}
.leader-type{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;padding:12px 12px 0}.leader-type button{min-width:0;min-height:40px;border:1px solid var(--leader-line);border-radius:11px;background:#fff;color:var(--leader-accent);font:inherit;font-size:11px;font-weight:900;cursor:pointer}.leader-type button.active{border-color:var(--leader-accent);background:var(--leader-accent);color:#fff;box-shadow:0 8px 18px color-mix(in srgb,var(--leader-accent) 22%,transparent)}
.filters{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:12px;border-bottom:1px solid var(--leader-line)}label{display:grid;min-width:0;gap:5px;color:var(--leader-muted);font-size:9px;font-weight:900;text-transform:uppercase}select,input{width:100%;min-width:0;min-height:38px;padding:7px 9px;border:1px solid #cbd5e1;border-radius:9px;background:#fff;color:var(--leader-ink);font:inherit;font-size:11px}.is-hidden{display:none!important}
.categories{display:flex;min-width:0;gap:6px;overflow-x:auto;padding:7px 12px 3px;scrollbar-width:none}.categories::-webkit-scrollbar{display:none}.category-item{display:flex;min-width:0;flex:none;align-items:center;gap:3px}.category{min-height:31px;padding:0 9px;border:1px solid var(--leader-line);border-radius:999px;background:#fff;color:var(--leader-accent);font:inherit;font-size:9px;font-weight:900;cursor:pointer}.category.active{border-color:var(--leader-accent);background:var(--leader-accent);color:#fff}.category-info{width:18px;height:18px;padding:0;border:1px solid #b9c9de;border-radius:50%;background:var(--leader-soft);color:var(--leader-accent);font:italic 700 12px Georgia,serif;cursor:pointer}.category-help{margin:5px 12px 8px;padding:8px 10px;border-left:3px solid var(--leader-accent);border-radius:7px;background:#f8fafc;color:var(--leader-muted);font-size:10px;line-height:1.4}.category-help[hidden]{display:none}
.winner{position:relative;min-width:0;margin:10px 12px;padding:16px;padding-right:48px;border-radius:16px;background:linear-gradient(135deg,var(--leader-accent),var(--leader-accent-2));color:#fff;box-shadow:0 14px 34px color-mix(in srgb,var(--leader-accent) 22%,transparent)}.winner small{color:var(--leader-winner-soft);font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.08em}.winner h3{margin:7px 0 2px;font-size:19px;line-height:1.2;overflow-wrap:anywhere}.winner p{margin:5px 0;color:var(--leader-winner-text);font-size:11px;line-height:1.4;overflow-wrap:anywhere}.stats{display:flex;min-width:0;gap:6px;flex-wrap:wrap;margin-top:10px}.stat{max-width:100%;padding:6px 8px;border-radius:9px;background:rgba(255,255,255,.13);font-size:9px;font-weight:800;overflow-wrap:anywhere}.winner-info{position:absolute;top:12px;right:12px;width:25px;height:25px;padding:0;border:1px solid rgba(255,255,255,.6);border-radius:50%;background:rgba(255,255,255,.14);color:#fff;font:italic 700 15px Georgia,serif;cursor:pointer}.winner-help{display:none;margin-top:10px;padding:8px 10px;border-radius:8px;background:rgba(255,255,255,.13);color:var(--leader-winner-text);font-size:10px;line-height:1.4}.winner-help.open{display:block}
.section-title{margin:14px 12px 8px;font-size:10px;text-transform:uppercase;letter-spacing:.06em}.podium{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;align-items:stretch;padding:0 12px}.podium-card{display:grid;min-width:0;min-height:104px;place-content:center;padding:9px 7px;border:1px solid var(--leader-line);border-radius:14px;background:linear-gradient(180deg,#fff,#f8fafc);text-align:center;overflow-wrap:anywhere}.podium-card.rank-1{min-height:125px;border-color:#facc15;background:linear-gradient(180deg,#fffbeb,#fff);order:2}.podium-card.rank-2{order:1}.podium-card.rank-3{order:3}.podium-card b{display:block;margin-top:4px;font-size:10px;line-height:1.25;overflow-wrap:anywhere}.podium-card span{display:block;margin-top:4px;color:var(--leader-muted);font-size:9px;line-height:1.3;overflow-wrap:anywhere}
.list{display:grid;min-width:0;gap:8px;padding:0 12px 14px}.row{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:9px;align-items:center;min-width:0;padding:10px;border:1px solid var(--leader-line);border-radius:12px;background:#fff}.rank{width:32px;height:32px;display:grid;place-items:center;border-radius:10px;background:var(--leader-soft);color:var(--leader-accent);font-weight:900}.row div:nth-child(2),.row strong{min-width:0;overflow-wrap:anywhere}.row strong{display:block;font-size:11px;line-height:1.3}.row span{display:block;margin-top:3px;color:var(--leader-muted);font-size:9px;line-height:1.4;overflow-wrap:anywhere}.row>strong{color:var(--leader-accent);font-size:16px;text-align:right}.badge{display:inline-block!important;width:max-content;max-width:100%;margin-top:5px!important;padding:4px 7px;border-radius:999px;background:var(--leader-soft);color:var(--leader-accent)!important;font-weight:900}.empty{margin:10px 12px;padding:22px 12px;border:1px dashed #cbd5e1;border-radius:13px;color:var(--leader-muted);text-align:center;line-height:1.5;overflow-wrap:anywhere}.reset{grid-column:1/-1;min-height:36px;border:1px solid var(--leader-line);border-radius:9px;background:#fff;color:var(--leader-accent);font:inherit;font-size:11px;font-weight:900;cursor:pointer}.status{min-height:20px;margin:10px 2px;color:var(--leader-muted);font-size:10px;line-height:1.45;overflow-wrap:anywhere}.pager{display:flex;align-items:center;justify-content:center;gap:8px;padding:0 12px 16px}.pager[hidden]{display:none}.pager button{min-width:104px;min-height:38px;padding:0 10px;border:1px solid var(--leader-line);border-radius:9px;background:#fff;color:var(--leader-accent);font:inherit;font-size:10px;font-weight:900;cursor:pointer}.pager button:disabled{cursor:not-allowed;opacity:.45}.pager span{min-width:90px;color:var(--leader-muted);font-size:10px;font-weight:800;text-align:center}
@media(min-width:620px){.filters{grid-template-columns:1fr 1fr 1fr 1fr auto}.reset{grid-column:auto;align-self:end;padding:0 12px}.podium-card{min-height:130px}.podium-card.rank-1{min-height:155px}}
@media(max-width:430px){.page{padding-right:8px;padding-left:8px}.topbar{min-height:58px;gap:7px}.topbar img{width:32px;height:32px;border-radius:8px}.topbar p{font-size:8px}.topbar h1{font-size:14px}.home{width:32px;height:32px}.leader-type{gap:4px;padding:9px 8px 0}.leader-type button{min-height:36px;border-radius:9px;font-size:10px}.filters{gap:6px;padding:9px}.filters label{font-size:8px}.filters select,.filters input{min-height:35px;padding:6px 7px;font-size:10px}.categories{padding:6px 8px 2px}.category{min-height:29px;padding:0 8px;font-size:8px}.winner{margin:8px;padding:13px;padding-right:42px;border-radius:13px}.winner h3{font-size:17px}.winner p{font-size:10px}.stat{padding:5px 6px;font-size:8px}.section-title{margin:11px 8px 7px;font-size:9px}.podium{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;padding:0 8px}.podium-card,.podium-card.rank-1{min-height:92px;padding:9px 6px}.podium-card.rank-1{grid-column:1/-1;order:-1}.podium-card.rank-2{order:0}.podium-card.rank-3{order:1}.podium-card b{font-size:10px}.podium-card span{font-size:8px}.list{gap:6px;padding:0 8px 12px}.row{grid-template-columns:29px minmax(0,1fr) auto;gap:7px;padding:8px}.rank{width:28px;height:28px;border-radius:8px;font-size:10px}.row strong{font-size:10px}.row span{font-size:8px}.row>strong{font-size:14px}.pager{gap:5px;padding:0 8px 13px}.pager button{min-width:82px;min-height:36px;font-size:9px}.pager span{min-width:72px;font-size:9px}.status{font-size:9px}}
/* Mobile podium v2: keep the winner full-width until desktop cards have room. */
.podium-card{word-break:break-word}
@media (min-width:431px) and (max-width:619px){
  .podium{grid-template-columns:repeat(2,minmax(0,1fr))}
  .podium-card.rank-1{grid-column:1/-1;order:-1}
  .podium-card.rank-2{order:0}
  .podium-card.rank-3{order:1}
}
@media (min-width:620px){
  .podium{grid-template-columns:repeat(3,minmax(0,1fr))}
  .podium-card.rank-1{grid-column:auto;order:2}
  .podium-card.rank-2{order:1}
  .podium-card.rank-3{order:3}
}

/* Final mobile podium guard: flex content and explicit tracks prevent long
   names or metadata from creating a hidden fourth column on narrow screens. */
.panel,.podium,.podium-card{min-width:0;max-width:100%}
.podium-card{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;white-space:normal;overflow:visible;overflow-wrap:anywhere;word-break:break-word}
.podium-card>div,.podium-card>b,.podium-card>span{width:100%;min-width:0;max-width:100%;white-space:normal;overflow-wrap:anywhere;word-break:break-word;text-overflow:clip}
@media (max-width:619px){
  .podium{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-flow:row;gap:6px}
  .podium-card{min-height:104px;padding:9px 6px}
  .podium-card.rank-1{grid-column:1/-1;grid-row:1;order:initial;min-height:112px}
  .podium-card.rank-2{grid-column:1;grid-row:2;order:initial}
  .podium-card.rank-3{grid-column:2;grid-row:2;order:initial}
}
@media (max-width:430px){
  .podium{padding-left:8px;padding-right:8px}
  .podium-card{min-height:92px;padding:8px 5px}
  .podium-card.rank-1{min-height:104px}
  .podium-card b{font-size:9px}
  .podium-card span{font-size:8px}
}
@media (min-width:620px){
  .podium-card{min-height:130px}
  .podium-card.rank-1{min-height:155px}
}

/* Petrol uses longer worker and station identities than TOMO. Keep its podium
   independent so the compact TOMO cards retain their existing presentation. */
.petrol-leaderboard{overflow-x:hidden}
.petrol-leaderboard .page,.petrol-leaderboard .panel,.petrol-leaderboard .podium{width:100%;min-width:0;max-width:100%}
.petrol-leaderboard .panel{overflow-x:hidden}
.petrol-leaderboard .podium-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px;width:100%;min-width:0;max-width:100%;padding:12px 11px;overflow:visible;text-align:left}
.petrol-leaderboard .podium-medal{display:grid;width:25px;height:25px;place-items:center;margin:0;color:inherit;font-size:19px;line-height:1}
.petrol-leaderboard .podium-content{display:grid;min-width:0;max-width:100%;gap:3px}
.petrol-leaderboard .podium-name,.petrol-leaderboard .podium-station,.petrol-leaderboard .podium-role{display:block;min-width:0;max-width:100%;white-space:normal;overflow-wrap:anywhere;word-break:break-word}
.petrol-leaderboard .podium-name{margin:0;color:var(--leader-ink);font-size:12px;line-height:1.25}
.petrol-leaderboard .podium-station{margin:0;color:var(--leader-muted);font-size:9px;line-height:1.35}
.petrol-leaderboard .podium-role{margin:0;color:var(--leader-accent);font-size:8px;font-weight:900;line-height:1.3}
.petrol-leaderboard .podium-score{display:grid;min-width:0;max-width:100%;place-items:center;padding:5px 6px;border-radius:8px;background:var(--leader-soft);color:var(--leader-accent);font-size:9px;line-height:1.1;text-align:center;white-space:normal;overflow-wrap:anywhere;word-break:break-word}
.petrol-leaderboard .podium-card.rank-1{border-color:#facc15;background:linear-gradient(135deg,#fffbeb,#fff);order:2}
@media (max-width:619px){
  .petrol-leaderboard .page{padding-right:8px;padding-left:8px}
  .petrol-leaderboard .podium{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-flow:row;gap:6px;padding-right:8px;padding-left:8px}
  .petrol-leaderboard .podium-card.rank-1{grid-column:1/-1;grid-row:1;order:initial;min-height:110px}
  .petrol-leaderboard .podium-card.rank-2{grid-column:1;grid-row:2;order:initial}
  .petrol-leaderboard .podium-card.rank-3{grid-column:2;grid-row:2;order:initial}
  .petrol-leaderboard .podium-card.rank-2,.petrol-leaderboard .podium-card.rank-3{grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr) auto;align-content:start;gap:5px;min-height:132px;padding:9px 7px;text-align:center}
  .petrol-leaderboard .podium-card.rank-2 .podium-medal,.petrol-leaderboard .podium-card.rank-3 .podium-medal{justify-self:center}
  .petrol-leaderboard .podium-card.rank-2 .podium-content,.petrol-leaderboard .podium-card.rank-3 .podium-content{align-content:start;text-align:center}
  .petrol-leaderboard .podium-card.rank-2 .podium-score,.petrol-leaderboard .podium-card.rank-3 .podium-score{justify-self:stretch}
}
@media (max-width:430px){
  .petrol-leaderboard .podium-card.rank-1{grid-template-columns:24px minmax(0,1fr) auto;gap:6px;min-height:100px;padding:9px 8px}
  .petrol-leaderboard .podium-card.rank-2,.petrol-leaderboard .podium-card.rank-3{min-height:124px;padding:8px 6px}
  .petrol-leaderboard .podium-medal{width:22px;height:22px;font-size:17px}
  .petrol-leaderboard .podium-name{font-size:10px}
  .petrol-leaderboard .podium-station{font-size:8px;line-height:1.3}
  .petrol-leaderboard .podium-role,.petrol-leaderboard .podium-score{font-size:7.5px}
}
